diff options
Diffstat (limited to 'asm')
105 files changed, 78677 insertions, 119071 deletions
diff --git a/asm/battle_811DA74.s b/asm/battle_811DA74.s index dc3cd456f..13a7f974e 100644 --- a/asm/battle_811DA74.s +++ b/asm/battle_811DA74.s @@ -182,15 +182,15 @@ _0811DBBC: .4byte 0x02017810 sub_811DBC0: @ 811DBC0 push {r4-r6,lr} movs r6, 0 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0811DBE4 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0811DC18 - ldr r0, _0811DC04 @ =gUnknown_020239F8 + ldr r0, _0811DC04 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -214,7 +214,7 @@ _0811DBE4: bne _0811DC50 b _0811DC4E .align 2, 0 -_0811DC04: .4byte gUnknown_020239F8 +_0811DC04: .4byte gBattleTypeFlags _0811DC08: .4byte gSprites _0811DC0C: .4byte gUnknown_03004340 _0811DC10: .4byte gUnknown_02024A60 @@ -330,11 +330,11 @@ sub_811DCA0: @ 811DCA0 lsls r1, 2 adds r1, r4 strb r2, [r1, 0x9] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0811DD56 - ldr r0, _0811DDC4 @ =gUnknown_020239F8 + ldr r0, _0811DDC4 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -426,7 +426,7 @@ _0811DDB4: .align 2, 0 _0811DDBC: .4byte gUnknown_02024A60 _0811DDC0: .4byte 0x02017810 -_0811DDC4: .4byte gUnknown_020239F8 +_0811DDC4: .4byte gBattleTypeFlags _0811DDC8: .4byte gUnknown_0300434C _0811DDCC: .4byte gSprites _0811DDD0: .4byte gUnknown_03004340 @@ -1021,7 +1021,7 @@ sub_811E29C: @ 811E29C ands r0, r1 cmp r0, 0 bne _0811E302 - ldr r0, _0811E2D0 @ =gUnknown_020239F8 + ldr r0, _0811E2D0 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -1038,7 +1038,7 @@ sub_811E29C: @ 811E29C b _0811E302 .align 2, 0 _0811E2CC: .4byte gPaletteFade -_0811E2D0: .4byte gUnknown_020239F8 +_0811E2D0: .4byte gBattleTypeFlags _0811E2D4: .4byte gUnknown_03004330 _0811E2D8: .4byte gUnknown_02024A60 _0811E2DC: .4byte sub_811E258 @@ -1078,7 +1078,7 @@ dp01_tbl3_exec_completed: @ 811E314 adds r0, r1 ldr r1, _0811E35C @ =sub_811DA94 str r1, [r0] - ldr r0, _0811E360 @ =gUnknown_020239F8 + ldr r0, _0811E360 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -1102,7 +1102,7 @@ dp01_tbl3_exec_completed: @ 811E314 _0811E354: .4byte gUnknown_03004330 _0811E358: .4byte gUnknown_02024A60 _0811E35C: .4byte sub_811DA94 -_0811E360: .4byte gUnknown_020239F8 +_0811E360: .4byte gBattleTypeFlags _0811E364: .4byte gUnknown_02023A60 _0811E368: ldr r2, _0811E384 @ =gUnknown_02024A64 @@ -3628,7 +3628,7 @@ sub_811F864: @ 811F864 lsrs r0, 16 mov r8, r0 ldr r0, _0811F9B4 @ =sub_80312F0 - bl object_new_hidden_with_callback + bl CreateInvisibleSpriteWithCallback ldr r1, _0811F9B8 @ =gUnknown_0300434C mov r9, r1 add r9, r6 @@ -3900,7 +3900,7 @@ sub_811FAE4: @ 811FAE4 push {r4-r6,lr} mov r6, r8 push {r6} - ldr r0, _0811FB14 @ =gUnknown_020239F8 + ldr r0, _0811FB14 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -3921,7 +3921,7 @@ _0811FB0A: bl sub_803FC34 b _0811FB34 .align 2, 0 -_0811FB14: .4byte gUnknown_020239F8 +_0811FB14: .4byte gBattleTypeFlags _0811FB18: .4byte gUnknown_02024A60 _0811FB1C: .4byte 0x0000fff0 _0811FB20: .4byte gLinkPlayers @@ -5467,11 +5467,11 @@ _08120748: mov r9, r0 ldrh r0, [r1, 0x8] strb r0, [r7] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08120768 - ldr r0, _0812078C @ =gUnknown_020239F8 + ldr r0, _0812078C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -5494,7 +5494,7 @@ _08120768: b _081207EC .align 2, 0 _08120788: .4byte gUnknown_02024A60 -_0812078C: .4byte gUnknown_020239F8 +_0812078C: .4byte gBattleTypeFlags _08120790: .4byte gUnknown_02023A60 _08120794: .4byte gUnknown_02024A6A _08120798: diff --git a/asm/battle_ai.s b/asm/battle_ai.s index 78e928ac7..829768e17 100644 --- a/asm/battle_ai.s +++ b/asm/battle_ai.s @@ -5,7 +5,7 @@ .syntax unified .text - + thumb_func_start BattleAICmd_if_status_in_party BattleAICmd_if_status_in_party: @ 8108964 push {r4-r7,lr} @@ -212,7 +212,7 @@ _08108AE8: .4byte gAIScriptPtr thumb_func_start BattleAICmd_unk_36 BattleAICmd_unk_36: @ 8108AEC push {lr} - ldr r2, _08108B3C @ =word_2024DB8 + ldr r2, _08108B3C @ =gBattleWeather ldrh r1, [r2] movs r0, 0x7 ands r0, r1 @@ -255,7 +255,7 @@ _08108B2E: pop {r0} bx r0 .align 2, 0 -_08108B3C: .4byte word_2024DB8 +_08108B3C: .4byte gBattleWeather _08108B40: .4byte 0x02016800 _08108B44: .4byte gAIScriptPtr thumb_func_end BattleAICmd_unk_36 @@ -1649,7 +1649,7 @@ _08109598: .4byte gUnknown_02024CA8 thumb_func_start BattleAICmd_unk_4C BattleAICmd_unk_4C: @ 810959C ldr r2, _081095B4 @ =0x02016800 - ldr r0, _081095B8 @ =gUnknown_020239F8 + ldr r0, _081095B8 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -1661,7 +1661,7 @@ BattleAICmd_unk_4C: @ 810959C bx lr .align 2, 0 _081095B4: .4byte 0x02016800 -_081095B8: .4byte gUnknown_020239F8 +_081095B8: .4byte gBattleTypeFlags _081095BC: .4byte gAIScriptPtr thumb_func_end BattleAICmd_unk_4C diff --git a/asm/battle_anim.s b/asm/battle_anim.s new file mode 100644 index 000000000..a64d0414a --- /dev/null +++ b/asm/battle_anim.s @@ -0,0 +1,4729 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_8075624 +sub_8075624: @ 8075624 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _080756B8 @ =gUnknown_0202F7B0 + movs r1, 0 + strb r1, [r0] + ldr r0, _080756BC @ =gUnknown_0202F7B1 + strb r1, [r0] + ldr r0, _080756C0 @ =gUnknown_0202F7B2 + strb r1, [r0] + ldr r0, _080756C4 @ =gUnknown_0202F7B3 + strb r1, [r0] + ldr r0, _080756C8 @ =gUnknown_0202F7B4 + movs r1, 0 + str r1, [r0] + ldr r0, _080756CC @ =gUnknown_0202F7B8 + str r1, [r0] + ldr r0, _080756D0 @ =gUnknown_0202F7BC + movs r2, 0 + strh r1, [r0] + ldr r0, _080756D4 @ =gUnknown_0202F7BE + strb r2, [r0] + ldr r4, _080756D8 @ =gUnknown_0202F7C2 + ldr r5, _080756DC @ =gUnknown_0202F7C4 + ldr r6, _080756E0 @ =gUnknown_0202F7C5 + ldr r7, _080756E4 @ =gUnknown_0202F7C6 + ldr r0, _080756E8 @ =gUnknown_0202F7C8 + mov r12, r0 + ldr r1, _080756EC @ =gUnknown_0202F7C9 + mov r8, r1 + ldr r0, _080756F0 @ =gUnknown_0202F7D2 + mov r9, r0 + ldr r1, _080756F4 @ =0x0000ffff + adds r3, r1, 0 + ldr r1, _080756F8 @ =gUnknown_03004B10 + movs r2, 0x7 +_0807566E: + ldrh r0, [r1] + orrs r0, r3 + strh r0, [r1] + adds r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _0807566E + ldr r1, _080756FC @ =gBattleAnimArgs + movs r2, 0 + adds r0, r1, 0 + adds r0, 0xE +_08075684: + strh r2, [r0] + subs r0, 0x2 + cmp r0, r1 + bge _08075684 + movs r1, 0 + movs r0, 0xFF + strb r0, [r4] + movs r0, 0x1 + negs r0, r0 + strb r0, [r4, 0x1] + strb r1, [r5] + strb r1, [r6] + movs r0, 0 + strh r1, [r7] + mov r1, r12 + strb r0, [r1] + mov r1, r8 + strb r0, [r1] + mov r1, r9 + strb r0, [r1] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080756B8: .4byte gUnknown_0202F7B0 +_080756BC: .4byte gUnknown_0202F7B1 +_080756C0: .4byte gUnknown_0202F7B2 +_080756C4: .4byte gUnknown_0202F7B3 +_080756C8: .4byte gUnknown_0202F7B4 +_080756CC: .4byte gUnknown_0202F7B8 +_080756D0: .4byte gUnknown_0202F7BC +_080756D4: .4byte gUnknown_0202F7BE +_080756D8: .4byte gUnknown_0202F7C2 +_080756DC: .4byte gUnknown_0202F7C4 +_080756E0: .4byte gUnknown_0202F7C5 +_080756E4: .4byte gUnknown_0202F7C6 +_080756E8: .4byte gUnknown_0202F7C8 +_080756EC: .4byte gUnknown_0202F7C9 +_080756F0: .4byte gUnknown_0202F7D2 +_080756F4: .4byte 0x0000ffff +_080756F8: .4byte gUnknown_03004B10 +_080756FC: .4byte gBattleAnimArgs + thumb_func_end sub_8075624 + + thumb_func_start move_anim_start_t1 +move_anim_start_t1: @ 8075700 + push {lr} + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + ldr r2, _08075724 @ =gUnknown_0202F7C8 + ldr r0, _08075728 @ =gUnknown_02024C07 + ldrb r0, [r0] + strb r0, [r2] + ldr r2, _0807572C @ =gUnknown_0202F7C9 + ldr r0, _08075730 @ =gUnknown_02024C08 + ldrb r0, [r0] + strb r0, [r2] + ldr r0, _08075734 @ =gBattleAnims_Moves + movs r2, 0x1 + bl move_something + pop {r0} + bx r0 + .align 2, 0 +_08075724: .4byte gUnknown_0202F7C8 +_08075728: .4byte gUnknown_02024C07 +_0807572C: .4byte gUnknown_0202F7C9 +_08075730: .4byte gUnknown_02024C08 +_08075734: .4byte gBattleAnims_Moves + thumb_func_end move_anim_start_t1 + + thumb_func_start move_something +move_something: @ 8075738 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + str r0, [sp] + lsls r1, 16 + lsrs r1, 16 + mov r8, r1 + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080757D8 + bl sub_8079E24 + movs r0, 0 + bl sub_8043EB4 + movs r4, 0 + mov r0, r8 + lsls r0, 2 + mov r10, r0 + ldr r6, _0807578C @ =gUnknown_02024A6A + movs r7, 0x64 + ldr r5, _08075790 @ =gUnknown_0202F7CA +_08075774: + lsls r0, r4, 24 + lsrs r0, 24 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _08075798 + ldrh r0, [r6] + muls r0, r7 + ldr r1, _08075794 @ =gEnemyParty + b _0807579E + .align 2, 0 +_0807578C: .4byte gUnknown_02024A6A +_08075790: .4byte gUnknown_0202F7CA +_08075794: .4byte gEnemyParty +_08075798: + ldrh r0, [r6] + muls r0, r7 + ldr r1, _080757C0 @ =gPlayerParty +_0807579E: + adds r0, r1 + movs r1, 0xB + bl GetMonData + strh r0, [r5] + adds r6, 0x2 + adds r5, 0x2 + adds r4, 0x1 + cmp r4, 0x3 + ble _08075774 + ldr r3, _080757C4 @ =gUnknown_0202F7C6 + ldr r5, _080757C8 @ =gUnknown_0202F7C2 + ldr r1, _080757CC @ =gUnknown_0202F7B1 + mov r12, r1 + ldr r7, _080757D0 @ =gUnknown_0202F7AC + ldr r6, _080757D4 @ =sub_80759D0 + b _080757FC + .align 2, 0 +_080757C0: .4byte gPlayerParty +_080757C4: .4byte gUnknown_0202F7C6 +_080757C8: .4byte gUnknown_0202F7C2 +_080757CC: .4byte gUnknown_0202F7B1 +_080757D0: .4byte gUnknown_0202F7AC +_080757D4: .4byte sub_80759D0 +_080757D8: + ldr r3, _08075808 @ =gUnknown_0202F7C6 + ldr r5, _0807580C @ =gUnknown_0202F7C2 + mov r0, r8 + lsls r0, 2 + mov r10, r0 + ldr r1, _08075810 @ =gUnknown_0202F7B1 + mov r12, r1 + ldr r7, _08075814 @ =gUnknown_0202F7AC + ldr r6, _08075818 @ =sub_80759D0 + ldr r2, _0807581C @ =0x02019348 + ldr r1, _08075820 @ =gUnknown_0202F7CA + movs r4, 0x3 +_080757F0: + ldrh r0, [r2] + strh r0, [r1] + adds r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080757F0 +_080757FC: + mov r0, r9 + cmp r0, 0 + bne _08075824 + strh r0, [r3] + b _08075828 + .align 2, 0 +_08075808: .4byte gUnknown_0202F7C6 +_0807580C: .4byte gUnknown_0202F7C2 +_08075810: .4byte gUnknown_0202F7B1 +_08075814: .4byte gUnknown_0202F7AC +_08075818: .4byte sub_80759D0 +_0807581C: .4byte 0x02019348 +_08075820: .4byte gUnknown_0202F7CA +_08075824: + mov r1, r8 + strh r1, [r3] +_08075828: + ldr r1, _0807587C @ =gBattleAnimArgs + movs r2, 0 + adds r0, r1, 0 + adds r0, 0xE +_08075830: + strh r2, [r0] + subs r0, 0x2 + cmp r0, r1 + bge _08075830 + movs r0, 0xFF + strb r0, [r5] + movs r0, 0x1 + negs r0, r0 + strb r0, [r5, 0x1] + ldr r0, [sp] + add r0, r10 + ldr r0, [r0] + ldr r1, _08075880 @ =gUnknown_0202F7A4 + str r0, [r1] + movs r0, 0x1 + mov r1, r12 + strb r0, [r1] + movs r0, 0 + ldr r1, _08075884 @ =gUnknown_0202F7B0 + strb r0, [r1] + str r6, [r7] + ldr r0, _08075888 @ =0x0000ffff + adds r2, r0, 0 + ldr r1, _0807588C @ =gUnknown_03004B10 + movs r4, 0x7 +_08075862: + ldrh r0, [r1] + orrs r0, r2 + strh r0, [r1] + adds r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _08075862 + mov r1, r9 + cmp r1, 0 + beq _080758AE + movs r4, 0 + ldr r2, _08075890 @ =gUnknown_081C7160 + b _08075896 + .align 2, 0 +_0807587C: .4byte gBattleAnimArgs +_08075880: .4byte gUnknown_0202F7A4 +_08075884: .4byte gUnknown_0202F7B0 +_08075888: .4byte 0x0000ffff +_0807588C: .4byte gUnknown_03004B10 +_08075890: .4byte gUnknown_081C7160 +_08075894: + adds r4, 0x1 +_08075896: + lsls r0, r4, 1 + adds r0, r2 + ldrh r0, [r0] + ldr r1, _080758D0 @ =0x0000ffff + cmp r0, r1 + beq _080758AE + cmp r8, r0 + bne _08075894 + ldr r0, _080758D4 @ =gMPlay_BGM + movs r2, 0x80 + bl m4aMPlayVolumeControl +_080758AE: + ldr r0, _080758D8 @ =gUnknown_030042C4 + movs r1, 0 + strh r1, [r0] + ldr r0, _080758DC @ =gUnknown_03004240 + strh r1, [r0] + ldr r0, _080758E0 @ =gUnknown_03004200 + strh r1, [r0] + ldr r0, _080758E4 @ =gUnknown_03004244 + strh r1, [r0] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080758D0: .4byte 0x0000ffff +_080758D4: .4byte gMPlay_BGM +_080758D8: .4byte gUnknown_030042C4 +_080758DC: .4byte gUnknown_03004240 +_080758E0: .4byte gUnknown_03004200 +_080758E4: .4byte gUnknown_03004244 + thumb_func_end move_something + + thumb_func_start move_anim_8072740 +move_anim_8072740: @ 80758E8 + push {r4,lr} + adds r4, r0, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite + ldr r1, _08075904 @ =gUnknown_0202F7B2 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08075904: .4byte gUnknown_0202F7B2 + thumb_func_end move_anim_8072740 + + thumb_func_start move_anim_task_del +move_anim_task_del: @ 8075908 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + ldr r1, _08075920 @ =gUnknown_0202F7B2 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08075920: .4byte gUnknown_0202F7B2 + thumb_func_end move_anim_task_del + + thumb_func_start move_anim_related_task_del +move_anim_related_task_del: @ 8075924 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + ldr r1, _0807593C @ =gUnknown_0202F7B3 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0807593C: .4byte gUnknown_0202F7B3 + thumb_func_end move_anim_related_task_del + + thumb_func_start sub_8075940 +sub_8075940: @ 8075940 + push {r4,lr} + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0 + ldr r4, _08075958 @ =0x0000ffff + ldr r1, _0807595C @ =gUnknown_03004B10 +_0807594C: + ldrh r0, [r1] + cmp r0, r4 + bne _08075960 + strh r3, [r1] + b _08075968 + .align 2, 0 +_08075958: .4byte 0x0000ffff +_0807595C: .4byte gUnknown_03004B10 +_08075960: + adds r1, 0x2 + adds r2, 0x1 + cmp r2, 0x7 + ble _0807594C +_08075968: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8075940 + + thumb_func_start sub_8075970 +sub_8075970: @ 8075970 + push {r4,lr} + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0 + ldr r0, _0807598C @ =0x0000ffff + adds r4, r0, 0 + ldr r1, _08075990 @ =gUnknown_03004B10 +_0807597E: + ldrh r0, [r1] + cmp r0, r3 + bne _08075994 + orrs r0, r4 + strh r0, [r1] + b _0807599C + .align 2, 0 +_0807598C: .4byte 0x0000ffff +_08075990: .4byte gUnknown_03004B10 +_08075994: + adds r1, 0x2 + adds r2, 0x1 + cmp r2, 0x7 + ble _0807597E +_0807599C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8075970 + + thumb_func_start move_anim_waiter +move_anim_waiter: @ 80759A4 + push {lr} + ldr r2, _080759BC @ =gUnknown_0202F7B0 + ldrb r1, [r2] + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, 0 + bgt _080759C8 + ldr r0, _080759C0 @ =gUnknown_0202F7AC + ldr r1, _080759C4 @ =sub_80759D0 + str r1, [r0] + movs r0, 0 + b _080759CA + .align 2, 0 +_080759BC: .4byte gUnknown_0202F7B0 +_080759C0: .4byte gUnknown_0202F7AC +_080759C4: .4byte sub_80759D0 +_080759C8: + subs r0, r1, 0x1 +_080759CA: + strb r0, [r2] + pop {r0} + bx r0 + thumb_func_end move_anim_waiter + + thumb_func_start sub_80759D0 +sub_80759D0: @ 80759D0 + push {r4,lr} + ldr r4, _08075A00 @ =gUnknown_0837F4B8 +_080759D4: + ldr r0, _08075A04 @ =gUnknown_0202F7A4 + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _08075A08 @ =gUnknown_0202F7B0 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bne _080759F8 + ldr r0, _08075A0C @ =gUnknown_0202F7B1 + ldrb r0, [r0] + cmp r0, 0 + bne _080759D4 +_080759F8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08075A00: .4byte gUnknown_0837F4B8 +_08075A04: .4byte gUnknown_0202F7A4 +_08075A08: .4byte gUnknown_0202F7B0 +_08075A0C: .4byte gUnknown_0202F7B1 + thumb_func_end sub_80759D0 + + thumb_func_start ma00_load_graphics +ma00_load_graphics: @ 8075A10 + push {r4-r6,lr} + ldr r6, _08075A5C @ =gUnknown_0202F7A4 + ldr r0, [r6] + adds r1, r0, 0x1 + str r1, [r6] + ldrb r4, [r0, 0x1] + ldrb r0, [r1, 0x1] + lsls r0, 8 + orrs r4, r0 + lsls r5, r4, 3 + ldr r0, _08075A60 @ =gBattleAnimPicTable - (10000 * 8) + adds r0, r5, r0 + bl LoadCompressedObjectPic + ldr r0, _08075A64 @ =gBattleAnimPaletteTable - (10000 * 8) + adds r5, r0 + adds r0, r5, 0 + bl LoadCompressedObjectPalette + ldr r0, [r6] + adds r0, 0x2 + str r0, [r6] + ldr r0, _08075A68 @ =0xffffd8f0 + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + bl sub_8075940 + ldr r1, _08075A6C @ =gUnknown_0202F7B0 + movs r0, 0x1 + strb r0, [r1] + ldr r1, _08075A70 @ =gUnknown_0202F7AC + ldr r0, _08075A74 @ =move_anim_waiter + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08075A5C: .4byte gUnknown_0202F7A4 +_08075A60: .4byte gBattleAnimPicTable - (10000 * 8) +_08075A64: .4byte gBattleAnimPaletteTable - (10000 * 8) +_08075A68: .4byte 0xffffd8f0 +_08075A6C: .4byte gUnknown_0202F7B0 +_08075A70: .4byte gUnknown_0202F7AC +_08075A74: .4byte move_anim_waiter + thumb_func_end ma00_load_graphics + + thumb_func_start ma01_080728D0 +ma01_080728D0: @ 8075A78 + push {r4-r6,lr} + ldr r6, _08075AB8 @ =gUnknown_0202F7A4 + ldr r0, [r6] + adds r1, r0, 0x1 + str r1, [r6] + ldrb r4, [r0, 0x1] + ldrb r0, [r1, 0x1] + lsls r0, 8 + orrs r4, r0 + ldr r1, _08075ABC @ =gBattleAnimPicTable + ldr r0, _08075AC0 @ =0xffffd8f0 + adds r4, r0 + lsls r0, r4, 3 + adds r0, r1 + ldrh r5, [r0, 0x6] + adds r0, r5, 0 + bl FreeSpriteTilesByTag + adds r0, r5, 0 + bl FreeSpritePaletteByTag + ldr r0, [r6] + adds r0, 0x2 + str r0, [r6] + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + bl sub_8075970 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08075AB8: .4byte gUnknown_0202F7A4 +_08075ABC: .4byte gBattleAnimPicTable +_08075AC0: .4byte 0xffffd8f0 + thumb_func_end ma01_080728D0 + + thumb_func_start ma02_instanciate_template +ma02_instanciate_template: @ 8075AC4 + push {r4-r7,lr} + ldr r5, _08075B2C @ =gUnknown_0202F7A4 + ldr r1, [r5] + adds r3, r1, 0x1 + str r3, [r5] + ldrb r2, [r1, 0x1] + ldrb r0, [r3, 0x1] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r3, 0x2] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r3, 0x3] + lsls r0, 24 + adds r7, r2, r0 + adds r0, r1, 0x5 + str r0, [r5] + ldrb r4, [r1, 0x5] + adds r0, r1, 0x6 + str r0, [r5] + ldrb r0, [r1, 0x6] + adds r1, 0x7 + str r1, [r5] + cmp r0, 0 + beq _08075B14 + adds r6, r5, 0 + ldr r5, _08075B30 @ =gBattleAnimArgs + adds r3, r0, 0 +_08075AFC: + ldr r2, [r6] + ldrb r1, [r2] + ldrb r0, [r2, 0x1] + lsls r0, 8 + orrs r1, r0 + strh r1, [r5] + adds r2, 0x2 + str r2, [r6] + adds r5, 0x2 + subs r3, 0x1 + cmp r3, 0 + bne _08075AFC +_08075B14: + movs r0, 0x80 + ands r0, r4 + cmp r0, 0 + beq _08075B44 + movs r0, 0x80 + eors r4, r0 + cmp r4, 0x3F + bls _08075B34 + adds r0, r4, 0 + subs r0, 0x40 + b _08075B36 + .align 2, 0 +_08075B2C: .4byte gUnknown_0202F7A4 +_08075B30: .4byte gBattleAnimArgs +_08075B34: + negs r0, r4 +_08075B36: + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08075B40 @ =gUnknown_0202F7C9 + b _08075B56 + .align 2, 0 +_08075B40: .4byte gUnknown_0202F7C9 +_08075B44: + cmp r4, 0x3F + bls _08075B4E + adds r0, r4, 0 + subs r0, 0x40 + b _08075B50 +_08075B4E: + negs r0, r4 +_08075B50: + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08075BAC @ =gUnknown_0202F7C8 +_08075B56: + ldrb r0, [r0] + bl sub_8079E90 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r4, 24 + asrs r1, 24 + adds r0, r1 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r0, r6, 16 + asrs r0, 16 + cmp r0, 0x2 + bgt _08075B74 + movs r6, 0x3 +_08075B74: + ldr r5, _08075BB0 @ =gUnknown_0202F7C9 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + lsls r3, r6, 24 + lsrs r3, 24 + adds r0, r7, 0 + adds r1, r4, 0 + bl CreateSpriteAndAnimate + ldr r1, _08075BB4 @ =gUnknown_0202F7B2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08075BAC: .4byte gUnknown_0202F7C8 +_08075BB0: .4byte gUnknown_0202F7C9 +_08075BB4: .4byte gUnknown_0202F7B2 + thumb_func_end ma02_instanciate_template + + thumb_func_start sub_8075BB8 +sub_8075BB8: @ 8075BB8 + push {r4-r7,lr} + ldr r4, _08075C28 @ =gUnknown_0202F7A4 + ldr r1, [r4] + adds r3, r1, 0x1 + str r3, [r4] + ldrb r2, [r1, 0x1] + ldrb r0, [r3, 0x1] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r3, 0x2] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r3, 0x3] + lsls r0, 24 + adds r6, r2, r0 + adds r0, r1, 0x5 + str r0, [r4] + ldrb r7, [r1, 0x5] + adds r0, r1, 0x6 + str r0, [r4] + ldrb r0, [r1, 0x6] + adds r1, 0x7 + str r1, [r4] + cmp r0, 0 + beq _08075C08 + adds r5, r4, 0 + ldr r4, _08075C2C @ =gBattleAnimArgs + adds r3, r0, 0 +_08075BF0: + ldr r2, [r5] + ldrb r1, [r2] + ldrb r0, [r2, 0x1] + lsls r0, 8 + orrs r1, r0 + strh r1, [r4] + adds r2, 0x2 + str r2, [r5] + adds r4, 0x2 + subs r3, 0x1 + cmp r3, 0 + bne _08075BF0 +_08075C08: + adds r0, r6, 0 + adds r1, r7, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + bl _call_via_r6 + ldr r1, _08075C30 @ =gUnknown_0202F7B2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08075C28: .4byte gUnknown_0202F7A4 +_08075C2C: .4byte gBattleAnimArgs +_08075C30: .4byte gUnknown_0202F7B2 + thumb_func_end sub_8075BB8 + + thumb_func_start ma04_wait_countdown +ma04_wait_countdown: @ 8075C34 + push {r4,lr} + ldr r1, _08075C64 @ =gUnknown_0202F7A4 + ldr r0, [r1] + adds r2, r0, 0x1 + str r2, [r1] + ldr r3, _08075C68 @ =gUnknown_0202F7B0 + ldrb r0, [r0, 0x1] + strb r0, [r3] + lsls r0, 24 + cmp r0, 0 + bne _08075C52 + movs r4, 0x1 + negs r4, r4 + adds r0, r4, 0 + strb r0, [r3] +_08075C52: + adds r0, r2, 0x1 + str r0, [r1] + ldr r1, _08075C6C @ =gUnknown_0202F7AC + ldr r0, _08075C70 @ =move_anim_waiter + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08075C64: .4byte gUnknown_0202F7A4 +_08075C68: .4byte gUnknown_0202F7B0 +_08075C6C: .4byte gUnknown_0202F7AC +_08075C70: .4byte move_anim_waiter + thumb_func_end ma04_wait_countdown + + thumb_func_start sub_8075C74 +sub_8075C74: @ 8075C74 + push {lr} + ldr r0, _08075C8C @ =gUnknown_0202F7B2 + ldrb r2, [r0] + cmp r2, 0 + bne _08075C98 + ldr r0, _08075C90 @ =gUnknown_0202F7A4 + ldr r1, [r0] + adds r1, 0x1 + str r1, [r0] + ldr r0, _08075C94 @ =gUnknown_0202F7B0 + strb r2, [r0] + b _08075C9E + .align 2, 0 +_08075C8C: .4byte gUnknown_0202F7B2 +_08075C90: .4byte gUnknown_0202F7A4 +_08075C94: .4byte gUnknown_0202F7B0 +_08075C98: + ldr r1, _08075CA4 @ =gUnknown_0202F7B0 + movs r0, 0x1 + strb r0, [r1] +_08075C9E: + pop {r0} + bx r0 + .align 2, 0 +_08075CA4: .4byte gUnknown_0202F7B0 + thumb_func_end sub_8075C74 + + thumb_func_start nullsub_53 +nullsub_53: @ 8075CA8 + bx lr + thumb_func_end nullsub_53 + + thumb_func_start nullsub_88 +nullsub_88: @ 8075CAC + bx lr + thumb_func_end nullsub_88 + + thumb_func_start sub_8075CB0 +sub_8075CB0: @ 8075CB0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r0, 0 + mov r8, r0 + ldr r0, _08075CE0 @ =gUnknown_0202F7B2 + ldrb r0, [r0] + cmp r0, 0 + bne _08075CD8 + ldr r0, _08075CE4 @ =gUnknown_0202F7B3 + ldrb r0, [r0] + cmp r0, 0 + bne _08075CD8 + ldr r1, _08075CE8 @ =gUnknown_0202F7C2 + ldrb r0, [r1] + cmp r0, 0xFF + bne _08075CD8 + ldrb r0, [r1, 0x1] + cmp r0, 0xFF + beq _08075CF0 +_08075CD8: + ldr r1, _08075CEC @ =gUnknown_03004AF0 + movs r0, 0 + strh r0, [r1] + b _08075D0A + .align 2, 0 +_08075CE0: .4byte gUnknown_0202F7B2 +_08075CE4: .4byte gUnknown_0202F7B3 +_08075CE8: .4byte gUnknown_0202F7C2 +_08075CEC: .4byte gUnknown_03004AF0 +_08075CF0: + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + beq _08075D28 + ldr r1, _08075D14 @ =gUnknown_03004AF0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x5A + bhi _08075D1C +_08075D0A: + ldr r1, _08075D18 @ =gUnknown_0202F7B0 + movs r0, 0x1 + strb r0, [r1] + b _08075D8E + .align 2, 0 +_08075D14: .4byte gUnknown_03004AF0 +_08075D18: .4byte gUnknown_0202F7B0 +_08075D1C: + ldr r0, _08075D98 @ =gMPlay_SE1 + bl m4aMPlayStop + ldr r0, _08075D9C @ =gMPlay_SE2 + bl m4aMPlayStop +_08075D28: + ldr r1, _08075DA0 @ =gUnknown_03004AF0 + movs r0, 0 + strh r0, [r1] + movs r5, 0 + ldr r7, _08075DA4 @ =0x0000ffff + ldr r6, _08075DA8 @ =gBattleAnimPicTable + ldr r4, _08075DAC @ =gUnknown_03004B10 +_08075D36: + ldrh r0, [r4] + cmp r0, r7 + beq _08075D5A + lsls r0, 3 + adds r0, r6 + ldrh r0, [r0, 0x6] + bl FreeSpriteTilesByTag + ldrh r0, [r4] + lsls r0, 3 + adds r0, r6 + ldrh r0, [r0, 0x6] + bl FreeSpritePaletteByTag + ldrh r1, [r4] + adds r0, r7, 0 + orrs r0, r1 + strh r0, [r4] +_08075D5A: + adds r4, 0x2 + adds r5, 0x1 + cmp r5, 0x7 + ble _08075D36 + mov r1, r8 + cmp r1, 0 + bne _08075D8E + ldr r0, _08075DB0 @ =gMPlay_BGM + ldr r1, _08075DA4 @ =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _08075D88 + bl sub_8079E24 + movs r0, 0x1 + bl sub_8043EB4 +_08075D88: + ldr r0, _08075DB4 @ =gUnknown_0202F7B1 + mov r1, r8 + strb r1, [r0] +_08075D8E: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08075D98: .4byte gMPlay_SE1 +_08075D9C: .4byte gMPlay_SE2 +_08075DA0: .4byte gUnknown_03004AF0 +_08075DA4: .4byte 0x0000ffff +_08075DA8: .4byte gBattleAnimPicTable +_08075DAC: .4byte gUnknown_03004B10 +_08075DB0: .4byte gMPlay_BGM +_08075DB4: .4byte gUnknown_0202F7B1 + thumb_func_end sub_8075CB0 + + thumb_func_start ma09_play_sound +ma09_play_sound: @ 8075DB8 + push {r4,lr} + ldr r4, _08075DDC @ =gUnknown_0202F7A4 + ldr r0, [r4] + adds r1, r0, 0x1 + str r1, [r4] + ldrb r0, [r0, 0x1] + ldrb r1, [r1, 0x1] + lsls r1, 8 + orrs r0, r1 + bl PlaySE + ldr r0, [r4] + adds r0, 0x2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08075DDC: .4byte gUnknown_0202F7A4 + thumb_func_end ma09_play_sound + + thumb_func_start sub_8075DE0 +sub_8075DE0: @ 8075DE0 + push {r4-r7,lr} + ldr r0, _08075DF4 @ =gUnknown_0202F7A4 + ldr r2, [r0] + adds r1, r2, 0x1 + str r1, [r0] + ldrb r6, [r2, 0x1] + cmp r6, 0 + bne _08075DF8 + movs r6, 0x2 + b _08075E02 + .align 2, 0 +_08075DF4: .4byte gUnknown_0202F7A4 +_08075DF8: + cmp r6, 0x1 + bne _08075DFE + movs r6, 0x3 +_08075DFE: + cmp r6, 0 + beq _08075E06 +_08075E02: + cmp r6, 0x2 + bne _08075E10 +_08075E06: + ldr r0, _08075E0C @ =gUnknown_0202F7C8 + b _08075E12 + .align 2, 0 +_08075E0C: .4byte gUnknown_0202F7C8 +_08075E10: + ldr r0, _08075E44 @ =gUnknown_0202F7C9 +_08075E12: + ldrb r5, [r0] + adds r0, r5, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _08075ECE + adds r0, r5, 0 + bl battle_get_per_side_status + lsls r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x1 + bls _08075E3E + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08075E48 +_08075E3E: + movs r7, 0 + b _08075E4A + .align 2, 0 +_08075E44: .4byte gUnknown_0202F7C9 +_08075E48: + movs r7, 0x1 +_08075E4A: + adds r0, r5, 0 + adds r1, r7, 0 + bl sub_8076034 + ldr r0, _08075E98 @ =gUnknown_02024BE0 + adds r0, r5, r0 + ldrb r4, [r0] + ldr r0, _08075E9C @ =task_pA_ma0A_obj_to_bg_pal + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, _08075EA0 @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r2, r0, r1 + strh r4, [r2, 0x8] + ldr r1, _08075EA4 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0, 0x24] + ldrh r4, [r0, 0x20] + adds r1, r4 + strh r1, [r2, 0xA] + ldrh r1, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r1, r0 + strh r1, [r2, 0xC] + cmp r7, 0 + bne _08075EB0 + ldr r0, _08075EA8 @ =gUnknown_030042C0 + ldrh r0, [r0] + strh r0, [r2, 0xE] + ldr r0, _08075EAC @ =gUnknown_030041B4 + b _08075EB8 + .align 2, 0 +_08075E98: .4byte gUnknown_02024BE0 +_08075E9C: .4byte task_pA_ma0A_obj_to_bg_pal +_08075EA0: .4byte gTasks +_08075EA4: .4byte gSprites +_08075EA8: .4byte gUnknown_030042C0 +_08075EAC: .4byte gUnknown_030041B4 +_08075EB0: + ldr r0, _08075F04 @ =gUnknown_03004288 + ldrh r0, [r0] + strh r0, [r2, 0xE] + ldr r0, _08075F08 @ =gUnknown_03004280 +_08075EB8: + ldrh r0, [r0] + strh r0, [r2, 0x10] + ldr r0, _08075F0C @ =gTasks + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + strh r7, [r1, 0x12] + strh r5, [r1, 0x14] + ldr r0, _08075F10 @ =gUnknown_0202F7C2 + strb r3, [r0] +_08075ECE: + movs r0, 0x2 + eors r5, r0 + cmp r6, 0x1 + bls _08075F9A + adds r0, r5, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _08075F9A + adds r0, r5, 0 + bl battle_get_per_side_status + lsls r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x1 + bls _08075F00 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08075F14 +_08075F00: + movs r7, 0 + b _08075F16 + .align 2, 0 +_08075F04: .4byte gUnknown_03004288 +_08075F08: .4byte gUnknown_03004280 +_08075F0C: .4byte gTasks +_08075F10: .4byte gUnknown_0202F7C2 +_08075F14: + movs r7, 0x1 +_08075F16: + adds r0, r5, 0 + adds r1, r7, 0 + bl sub_8076034 + ldr r0, _08075F64 @ =gUnknown_02024BE0 + adds r0, r5, r0 + ldrb r4, [r0] + ldr r0, _08075F68 @ =task_pA_ma0A_obj_to_bg_pal + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, _08075F6C @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r2, r0, r1 + strh r4, [r2, 0x8] + ldr r1, _08075F70 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0, 0x24] + ldrh r4, [r0, 0x20] + adds r1, r4 + strh r1, [r2, 0xA] + ldrh r1, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r1, r0 + strh r1, [r2, 0xC] + cmp r7, 0 + bne _08075F7C + ldr r0, _08075F74 @ =gUnknown_030042C0 + ldrh r0, [r0] + strh r0, [r2, 0xE] + ldr r0, _08075F78 @ =gUnknown_030041B4 + b _08075F84 + .align 2, 0 +_08075F64: .4byte gUnknown_02024BE0 +_08075F68: .4byte task_pA_ma0A_obj_to_bg_pal +_08075F6C: .4byte gTasks +_08075F70: .4byte gSprites +_08075F74: .4byte gUnknown_030042C0 +_08075F78: .4byte gUnknown_030041B4 +_08075F7C: + ldr r0, _08075FA8 @ =gUnknown_03004288 + ldrh r0, [r0] + strh r0, [r2, 0xE] + ldr r0, _08075FAC @ =gUnknown_03004280 +_08075F84: + ldrh r0, [r0] + strh r0, [r2, 0x10] + ldr r0, _08075FB0 @ =gTasks + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + strh r7, [r1, 0x12] + strh r5, [r1, 0x14] + ldr r0, _08075FB4 @ =gUnknown_0202F7C2 + strb r3, [r0, 0x1] +_08075F9A: + ldr r1, _08075FB8 @ =gUnknown_0202F7A4 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08075FA8: .4byte gUnknown_03004288 +_08075FAC: .4byte gUnknown_03004280 +_08075FB0: .4byte gTasks +_08075FB4: .4byte gUnknown_0202F7C2 +_08075FB8: .4byte gUnknown_0202F7A4 + thumb_func_end sub_8075DE0 + + thumb_func_start b_side_obj__get_some_boolean +b_side_obj__get_some_boolean: @ 8075FBC + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08075FDC + ldr r0, _08075FD8 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + cmp r4, r0 + beq _0807601C + b _0807602C + .align 2, 0 +_08075FD8: .4byte gUnknown_0202F7C8 +_08075FDC: + adds r0, r4, 0 + bl sub_8078874 + lsls r0, 24 + cmp r0, 0 + beq _0807602C + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _0807601C + lsls r0, r5, 2 + ldr r1, _08076020 @ =0x02017800 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0807601C + ldr r2, _08076024 @ =gSprites + ldr r0, _08076028 @ =gUnknown_02024BE0 + adds r0, r5, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + blt _0807602C +_0807601C: + movs r0, 0x1 + b _0807602E + .align 2, 0 +_08076020: .4byte 0x02017800 +_08076024: .4byte gSprites +_08076028: .4byte gUnknown_02024BE0 +_0807602C: + movs r0, 0 +_0807602E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end b_side_obj__get_some_boolean + + thumb_func_start sub_8076034 +sub_8076034: @ 8076034 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x28 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r1, 24 + cmp r1, 0 + beq _0807604E + b _08076220 +_0807604E: + add r4, sp, 0x10 + adds r0, r4, 0 + bl sub_8078914 + ldr r2, [sp, 0x10] + movs r3, 0x80 + lsls r3, 6 + add r6, sp, 0x1C + add r0, sp, 0x20 + mov r10, r0 + mov r1, r9 + lsls r1, 5 + str r1, [sp, 0x24] + movs r5, 0 + ldr r1, _08076194 @ =0x040000d4 + movs r4, 0x80 + lsls r4, 5 + mov r12, r6 + ldr r7, _08076198 @ =0x85000400 + movs r0, 0x85 + lsls r0, 24 + mov r8, r0 +_0807607A: + str r5, [sp, 0x1C] + mov r0, r12 + str r0, [r1] + str r2, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _0807607A + str r5, [sp, 0x1C] + str r6, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + mov r2, r8 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + add r0, sp, 0xC + movs r1, 0 + strb r1, [r0] + strb r1, [r0] + ldr r1, [sp, 0x14] + movs r0, 0xFF + mov r3, r10 + strh r0, [r3] + ldr r0, _08076194 @ =0x040000d4 + str r3, [r0] + str r1, [r0, 0x4] + ldr r1, _0807619C @ =0x81000800 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r2, _080761A0 @ =REG_BG1CNT + ldrb r1, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r2, 0x1] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2, 0x1] + ldrb r1, [r2, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x1] + ldr r0, _080761A4 @ =gUnknown_02024BE0 + add r0, r9 + ldrb r4, [r0] + ldr r5, _080761A8 @ =gUnknown_030042C0 + ldr r0, _080761AC @ =gSprites + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x24] + ldrh r1, [r1, 0x20] + adds r0, r1 + negs r0, r0 + adds r0, 0x20 + strh r0, [r5] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _0807611C + ldr r0, _080761B0 @ =0x02019348 + ldrh r0, [r0] + bl sub_80AEB1C + lsls r0, 24 + cmp r0, 0 + beq _0807611C + ldrh r0, [r5] + subs r0, 0x1 + strh r0, [r5] +_0807611C: + ldr r3, _080761B4 @ =gUnknown_030041B4 + ldr r2, _080761AC @ =gSprites + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r1, 0x26] + ldrh r1, [r1, 0x22] + adds r0, r1 + negs r0, r0 + adds r0, 0x20 + strh r0, [r3] + ldr r0, _080761A4 @ =gUnknown_02024BE0 + add r0, r9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldr r1, _080761B8 @ =REG_BG1HOFS + ldr r0, _080761A8 @ =gUnknown_030042C0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r3] + strh r0, [r1] + ldr r4, _080761BC @ =gPlttBufferUnfaded + 0x200 + ldr r0, [sp, 0x24] + adds r4, r0, r4 + mov r2, sp + ldrb r1, [r2, 0x18] + lsls r1, 4 + adds r0, r4, 0 + movs r2, 0x20 + bl LoadPalette + mov r3, sp + ldrb r0, [r3, 0x18] + lsls r0, 5 + movs r1, 0xA0 + lsls r1, 19 + adds r0, r1 + ldr r1, _08076194 @ =0x040000d4 + str r4, [r1] + str r0, [r1, 0x4] + ldr r0, _080761C0 @ =0x84000008 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080761C4 + movs r2, 0 + b _080761CE + .align 2, 0 +_08076194: .4byte 0x040000d4 +_08076198: .4byte 0x85000400 +_0807619C: .4byte 0x81000800 +_080761A0: .4byte REG_BG1CNT +_080761A4: .4byte gUnknown_02024BE0 +_080761A8: .4byte gUnknown_030042C0 +_080761AC: .4byte gSprites +_080761B0: .4byte 0x02019348 +_080761B4: .4byte gUnknown_030041B4 +_080761B8: .4byte REG_BG1HOFS +_080761BC: .4byte gPlttBufferUnfaded + 0x200 +_080761C0: .4byte 0x84000008 +_080761C4: + mov r0, r9 + bl battle_get_per_side_status + lsls r0, 24 + lsrs r2, r0, 24 +_080761CE: + mov r0, sp + ldrb r3, [r0, 0x18] + ldr r0, [sp, 0x10] + lsls r0, 16 + lsrs r0, 16 + str r0, [sp] + ldr r4, [sp, 0x14] + movs r1, 0xFA + lsls r1, 24 + adds r0, r4, r1 + cmp r0, 0 + bge _080761EA + ldr r1, _08076218 @ =0xfa0007ff + adds r0, r4, r1 +_080761EA: + asrs r0, 11 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + ldr r0, _0807621C @ =REG_BG1CNT + ldr r0, [r0] + lsls r0, 28 + lsrs r0, 30 + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0 + bl sub_80E4EF8 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _08076210 + b _08076338 +_08076210: + bl sub_8076380 + b _08076338 + .align 2, 0 +_08076218: .4byte 0xfa0007ff +_0807621C: .4byte REG_BG1CNT +_08076220: + ldr r3, _08076348 @ =0x06006000 + movs r5, 0x80 + lsls r5, 6 + add r6, sp, 0x1C + ldr r2, _0807634C @ =gSprites + mov r10, r2 + mov r0, r9 + lsls r0, 5 + str r0, [sp, 0x24] + movs r4, 0 + ldr r1, _08076350 @ =0x040000d4 + movs r2, 0x80 + lsls r2, 5 + mov r12, r6 + ldr r7, _08076354 @ =0x85000400 + movs r0, 0x85 + lsls r0, 24 + mov r8, r0 +_08076244: + str r4, [sp, 0x1C] + mov r0, r12 + str r0, [r1] + str r3, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r3, r2 + subs r5, r2 + cmp r5, r2 + bhi _08076244 + str r4, [sp, 0x1C] + str r6, [r1] + str r3, [r1, 0x4] + lsrs r0, r5, 2 + mov r2, r8 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + add r0, sp, 0xC + movs r1, 0 + strb r1, [r0] + strb r1, [r0] + ldr r1, _08076358 @ =0x0600f000 + movs r0, 0 + str r0, [sp, 0x1C] + ldr r5, _08076350 @ =0x040000d4 + str r6, [r5] + str r1, [r5, 0x4] + ldr r0, _0807635C @ =0x85000200 + str r0, [r5, 0x8] + ldr r0, [r5, 0x8] + ldr r6, _08076360 @ =REG_BG2CNT + ldrb r1, [r6] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x2 + orrs r0, r1 + strb r0, [r6] + ldrb r1, [r6, 0x1] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x40 + orrs r0, r1 + strb r0, [r6, 0x1] + ldrb r1, [r6, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 + strb r0, [r6, 0x1] + ldr r2, _08076364 @ =gUnknown_02024BE0 + add r2, r9 + ldrb r4, [r2] + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + add r1, r10 + ldrh r0, [r1, 0x24] + ldrh r3, [r1, 0x20] + adds r0, r3 + negs r0, r0 + adds r0, 0x20 + ldr r3, _08076368 @ =gUnknown_03004288 + strh r0, [r3] + ldrh r0, [r1, 0x26] + ldrh r1, [r1, 0x22] + adds r0, r1 + negs r0, r0 + adds r0, 0x20 + ldr r1, _0807636C @ =gUnknown_03004280 + strh r0, [r1] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r10 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldr r1, _08076370 @ =REG_BG2HOFS + ldrh r0, [r3] + strh r0, [r1] + adds r1, 0x2 + ldr r2, _0807636C @ =gUnknown_03004280 + ldrh r0, [r2] + strh r0, [r1] + ldr r3, [sp, 0x24] + ldr r0, _08076374 @ =gPlttBufferUnfaded + 0x200 + adds r4, r3, r0 + adds r0, r4, 0 + movs r1, 0x90 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08076378 @ =0x05000120 + str r4, [r5] + str r0, [r5, 0x4] + ldr r0, _0807637C @ =0x84000008 + str r0, [r5, 0x8] + ldr r0, [r5, 0x8] + mov r0, r9 + bl battle_get_per_side_status + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + movs r0, 0xC0 + lsls r0, 7 + str r0, [sp] + movs r0, 0x1E + str r0, [sp, 0x4] + ldr r0, [r6] + lsls r0, 28 + lsrs r0, 30 + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0 + movs r3, 0x9 + bl sub_80E4EF8 +_08076338: + add sp, 0x28 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08076348: .4byte 0x06006000 +_0807634C: .4byte gSprites +_08076350: .4byte 0x040000d4 +_08076354: .4byte 0x85000400 +_08076358: .4byte 0x0600f000 +_0807635C: .4byte 0x85000200 +_08076360: .4byte REG_BG2CNT +_08076364: .4byte gUnknown_02024BE0 +_08076368: .4byte gUnknown_03004288 +_0807636C: .4byte gUnknown_03004280 +_08076370: .4byte REG_BG2HOFS +_08076374: .4byte gPlttBufferUnfaded + 0x200 +_08076378: .4byte 0x05000120 +_0807637C: .4byte 0x84000008 + thumb_func_end sub_8076034 + + thumb_func_start sub_8076380 +sub_8076380: @ 8076380 + push {r4-r7,lr} + sub sp, 0xC + ldr r0, _080763F8 @ =0x02019348 + ldrh r0, [r0] + bl sub_80AEB1C + lsls r0, 24 + cmp r0, 0 + beq _080763EE + mov r0, sp + bl sub_8078914 + ldr r6, [sp, 0x4] + movs r5, 0 + movs r0, 0x7 + mov r12, r0 + movs r7, 0 +_080763A2: + movs r4, 0 + adds r3, r7, r6 + mov r1, r12 + lsls r0, r1, 1 + adds r2, r0, r6 +_080763AC: + ldrh r1, [r3] + ldrh r0, [r2] + strh r0, [r3] + strh r1, [r2] + adds r3, 0x2 + subs r2, 0x2 + adds r4, 0x1 + cmp r4, 0x3 + ble _080763AC + movs r0, 0x20 + add r12, r0 + adds r7, 0x40 + adds r5, 0x1 + cmp r5, 0x7 + ble _080763A2 + movs r5, 0 + movs r1, 0x80 + lsls r1, 3 + adds r3, r1, 0 +_080763D2: + adds r2, r5, 0x1 + lsls r0, r5, 6 + adds r1, r0, r6 + movs r4, 0x7 +_080763DA: + ldrh r0, [r1] + eors r0, r3 + strh r0, [r1] + adds r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080763DA + adds r5, r2, 0 + cmp r5, 0x7 + ble _080763D2 +_080763EE: + add sp, 0xC + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080763F8: .4byte 0x02019348 + thumb_func_end sub_8076380 + + thumb_func_start sub_80763FC +sub_80763FC: @ 80763FC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r12, r1 + adds r7, r2, 0 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r3, 24 + movs r0, 0x40 + mov r9, r0 + cmp r3, 0 + bne _0807641A + movs r1, 0x20 + mov r9, r1 +_0807641A: + lsls r0, r6, 28 + lsrs r6, r0, 16 + movs r0, 0 + cmp r0, r9 + bcs _08076452 + ldr r1, _08076460 @ =0x00000fff + mov r8, r1 +_08076428: + movs r3, 0 + adds r5, r0, 0x1 + lsls r4, r0, 5 +_0807642E: + adds r1, r4, r3 + lsls r1, 1 + add r1, r12 + ldrh r2, [r1] + mov r0, r8 + ands r0, r2 + orrs r0, r6 + adds r0, r7 + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x1F + bls _0807642E + lsls r0, r5, 24 + lsrs r0, 24 + cmp r0, r9 + bcc _08076428 +_08076452: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08076460: .4byte 0x00000fff + thumb_func_end sub_80763FC + + thumb_func_start sub_8076464 +sub_8076464: @ 8076464 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + add r5, sp, 0x4 + adds r0, r5, 0 + bl sub_8078914 + cmp r4, 0 + beq _0807648C + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080764F0 +_0807648C: + ldr r2, [sp, 0x4] + movs r3, 0x80 + lsls r3, 6 + add r5, sp, 0x10 + ldr r0, _080764E0 @ =gUnknown_030042C0 + mov r9, r0 + ldr r0, _080764E4 @ =gUnknown_030041B4 + mov r10, r0 + movs r6, 0 + ldr r1, _080764E8 @ =0x040000d4 + movs r4, 0x80 + lsls r4, 5 + mov r12, r5 + ldr r7, _080764EC @ =0x85000400 + movs r0, 0x85 + lsls r0, 24 + mov r8, r0 +_080764AE: + str r6, [sp, 0x10] + mov r0, r12 + str r0, [r1] + str r2, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080764AE + str r6, [sp, 0x10] + str r5, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + mov r2, r8 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + mov r0, sp + movs r1, 0 + strb r1, [r0] + strb r1, [r0] + ldr r1, [sp, 0x8] + b _08076540 + .align 2, 0 +_080764E0: .4byte gUnknown_030042C0 +_080764E4: .4byte gUnknown_030041B4 +_080764E8: .4byte 0x040000d4 +_080764EC: .4byte 0x85000400 +_080764F0: + ldr r2, _08076568 @ =0x06006000 + movs r3, 0x80 + lsls r3, 6 + add r5, sp, 0x10 + ldr r0, _0807656C @ =gUnknown_03004288 + mov r9, r0 + ldr r0, _08076570 @ =gUnknown_03004280 + mov r10, r0 + movs r6, 0 + ldr r1, _08076574 @ =0x040000d4 + movs r4, 0x80 + lsls r4, 5 + mov r12, r5 + ldr r7, _08076578 @ =0x85000400 + movs r0, 0x85 + lsls r0, 24 + mov r8, r0 +_08076512: + str r6, [sp, 0x10] + mov r0, r12 + str r0, [r1] + str r2, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _08076512 + str r6, [sp, 0x10] + str r5, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + mov r2, r8 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + mov r0, sp + movs r1, 0 + strb r1, [r0] + strb r1, [r0] + ldr r1, _0807657C @ =0x0600f000 +_08076540: + movs r2, 0 + str r2, [sp, 0x10] + ldr r0, _08076574 @ =0x040000d4 + str r5, [r0] + str r1, [r0, 0x4] + ldr r1, _08076580 @ =0x85000200 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + mov r0, r9 + strh r2, [r0] + mov r0, r10 + strh r2, [r0] + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08076568: .4byte 0x06006000 +_0807656C: .4byte gUnknown_03004288 +_08076570: .4byte gUnknown_03004280 +_08076574: .4byte 0x040000d4 +_08076578: .4byte 0x85000400 +_0807657C: .4byte 0x0600f000 +_08076580: .4byte 0x85000200 + thumb_func_end sub_8076464 + + thumb_func_start task_pA_ma0A_obj_to_bg_pal +task_pA_ma0A_obj_to_bg_pal: @ 8076584 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080765FC @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r5, r1, r2 + ldrb r4, [r5, 0x8] + ldrb r6, [r5, 0x14] + mov r0, sp + bl sub_8078914 + ldr r0, _08076600 @ =gSprites + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldrh r2, [r1, 0x24] + ldrh r0, [r1, 0x20] + adds r2, r0 + ldrh r0, [r5, 0xA] + subs r0, r2 + lsls r0, 16 + lsrs r3, r0, 16 + ldrh r2, [r1, 0x26] + ldrh r1, [r1, 0x22] + adds r2, r1 + ldrh r0, [r5, 0xC] + subs r0, r2 + lsls r0, 16 + lsrs r2, r0, 16 + movs r1, 0x12 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _08076614 + ldr r1, _08076604 @ =gUnknown_030042C0 + lsls r0, r3, 16 + asrs r0, 16 + ldrh r3, [r5, 0xE] + adds r0, r3 + strh r0, [r1] + ldr r1, _08076608 @ =gUnknown_030041B4 + lsls r0, r2, 16 + asrs r0, 16 + ldrh r5, [r5, 0x10] + adds r0, r5 + strh r0, [r1] + lsls r2, r6, 5 + ldr r1, _0807660C @ =gPlttBufferFaded + 0x200 + adds r2, r1 + mov r0, sp + ldrb r0, [r0, 0x8] + lsls r0, 5 + ldr r3, _08076610 @ =0xfffffe00 + adds r1, r3 + adds r0, r1 + b _08076634 + .align 2, 0 +_080765FC: .4byte gTasks +_08076600: .4byte gSprites +_08076604: .4byte gUnknown_030042C0 +_08076608: .4byte gUnknown_030041B4 +_0807660C: .4byte gPlttBufferFaded + 0x200 +_08076610: .4byte 0xfffffe00 +_08076614: + ldr r1, _08076648 @ =gUnknown_03004288 + lsls r0, r3, 16 + asrs r0, 16 + ldrh r3, [r5, 0xE] + adds r0, r3 + strh r0, [r1] + ldr r1, _0807664C @ =gUnknown_03004280 + lsls r0, r2, 16 + asrs r0, 16 + ldrh r5, [r5, 0x10] + adds r0, r5 + strh r0, [r1] + lsls r2, r6, 5 + ldr r0, _08076650 @ =gPlttBufferFaded + 0x200 + adds r2, r0 + subs r0, 0xE0 +_08076634: + ldr r1, _08076654 @ =0x040000d4 + str r2, [r1] + str r0, [r1, 0x4] + ldr r0, _08076658 @ =0x84000008 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08076648: .4byte gUnknown_03004288 +_0807664C: .4byte gUnknown_03004280 +_08076650: .4byte gPlttBufferFaded + 0x200 +_08076654: .4byte 0x040000d4 +_08076658: .4byte 0x84000008 + thumb_func_end task_pA_ma0A_obj_to_bg_pal + + thumb_func_start ma0B_0807324C +ma0B_0807324C: @ 807665C + push {r4,r5,lr} + ldr r0, _08076670 @ =gUnknown_0202F7A4 + ldr r2, [r0] + adds r1, r2, 0x1 + str r1, [r0] + ldrb r4, [r2, 0x1] + cmp r4, 0 + bne _08076674 + movs r4, 0x2 + b _0807667E + .align 2, 0 +_08076670: .4byte gUnknown_0202F7A4 +_08076674: + cmp r4, 0x1 + bne _0807667A + movs r4, 0x3 +_0807667A: + cmp r4, 0 + beq _08076682 +_0807667E: + cmp r4, 0x2 + bne _0807668C +_08076682: + ldr r0, _08076688 @ =gUnknown_0202F7C8 + b _0807668E + .align 2, 0 +_08076688: .4byte gUnknown_0202F7C8 +_0807668C: + ldr r0, _080766E4 @ =gUnknown_0202F7C9 +_0807668E: + ldrb r5, [r0] + ldr r3, _080766E8 @ =gUnknown_0202F7C2 + ldrb r0, [r3] + cmp r0, 0xFF + beq _080766B4 + ldr r2, _080766EC @ =gSprites + ldr r0, _080766F0 @ =gUnknown_02024BE0 + adds r0, r5, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] +_080766B4: + cmp r4, 0x1 + bls _080766F4 + ldrb r0, [r3, 0x1] + cmp r0, 0xFF + beq _080766F4 + ldr r3, _080766EC @ =gSprites + ldr r2, _080766F0 @ =gUnknown_02024BE0 + movs r1, 0x2 + adds r0, r5, 0 + eors r0, r1 + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + b _080766F6 + .align 2, 0 +_080766E4: .4byte gUnknown_0202F7C9 +_080766E8: .4byte gUnknown_0202F7C2 +_080766EC: .4byte gSprites +_080766F0: .4byte gUnknown_02024BE0 +_080766F4: + movs r4, 0 +_080766F6: + ldr r0, _08076720 @ =sub_807672C + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08076724 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + strh r5, [r1, 0xC] + ldr r1, _08076728 @ =gUnknown_0202F7A4 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08076720: .4byte sub_807672C +_08076724: .4byte gTasks +_08076728: .4byte gUnknown_0202F7A4 + thumb_func_end ma0B_0807324C + + thumb_func_start sub_807672C +sub_807672C: @ 807672C + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _0807676C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r1, r0, r1 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + beq _080767B6 + ldrb r0, [r1, 0xC] + bl battle_get_per_side_status + lsls r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x1 + bls _08076768 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08076770 +_08076768: + movs r4, 0 + b _08076772 + .align 2, 0 +_0807676C: .4byte gTasks +_08076770: + movs r4, 0x1 +_08076772: + ldr r6, _080767BC @ =gUnknown_0202F7C2 + ldrb r0, [r6] + cmp r0, 0xFF + beq _0807678A + adds r0, r4, 0 + bl sub_8076464 + ldrb r0, [r6] + bl DestroyTask + movs r0, 0xFF + strb r0, [r6] +_0807678A: + ldr r0, _080767C0 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0x1 + ble _080767B0 + movs r0, 0x1 + eors r4, r0 + adds r0, r4, 0 + bl sub_8076464 + ldrb r0, [r6, 0x1] + bl DestroyTask + movs r0, 0xFF + strb r0, [r6, 0x1] +_080767B0: + adds r0, r5, 0 + bl DestroyTask +_080767B6: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080767BC: .4byte gUnknown_0202F7C2 +_080767C0: .4byte gTasks + thumb_func_end sub_807672C + + thumb_func_start sub_80767C4 +sub_80767C4: @ 80767C4 + push {r4,r5,lr} + ldr r0, _080767D8 @ =gUnknown_0202F7A4 + ldr r2, [r0] + adds r1, r2, 0x1 + str r1, [r0] + ldrb r5, [r2, 0x1] + cmp r5, 0 + bne _080767DC + movs r5, 0x2 + b _080767E6 + .align 2, 0 +_080767D8: .4byte gUnknown_0202F7A4 +_080767DC: + cmp r5, 0x1 + bne _080767E2 + movs r5, 0x3 +_080767E2: + cmp r5, 0 + beq _080767EA +_080767E6: + cmp r5, 0x2 + bne _080767F4 +_080767EA: + ldr r0, _080767F0 @ =gUnknown_0202F7C8 + b _080767F6 + .align 2, 0 +_080767F0: .4byte gUnknown_0202F7C8 +_080767F4: + ldr r0, _08076828 @ =gUnknown_0202F7C9 +_080767F6: + ldrb r4, [r0] + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _08076850 + adds r0, r4, 0 + bl battle_get_per_side_status + lsls r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x1 + bls _08076822 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _0807682C +_08076822: + movs r1, 0 + b _0807682E + .align 2, 0 +_08076828: .4byte gUnknown_0202F7C9 +_0807682C: + movs r1, 0x1 +_0807682E: + adds r0, r4, 0 + bl sub_8076034 + ldr r2, _08076888 @ =gSprites + ldr r0, _0807688C @ =gUnknown_02024BE0 + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] +_08076850: + movs r0, 0x2 + eors r4, r0 + cmp r5, 0x1 + bls _080768B4 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080768B4 + adds r0, r4, 0 + bl battle_get_per_side_status + lsls r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x1 + bls _08076882 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08076890 +_08076882: + movs r1, 0 + b _08076892 + .align 2, 0 +_08076888: .4byte gSprites +_0807688C: .4byte gUnknown_02024BE0 +_08076890: + movs r1, 0x1 +_08076892: + adds r0, r4, 0 + bl sub_8076034 + ldr r2, _080768C4 @ =gSprites + ldr r0, _080768C8 @ =gUnknown_02024BE0 + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] +_080768B4: + ldr r1, _080768CC @ =gUnknown_0202F7A4 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080768C4: .4byte gSprites +_080768C8: .4byte gUnknown_02024BE0 +_080768CC: .4byte gUnknown_0202F7A4 + thumb_func_end sub_80767C4 + + thumb_func_start ma23_8073484 +ma23_8073484: @ 80768D0 + push {r4-r6,lr} + ldr r0, _080768E4 @ =gUnknown_0202F7A4 + ldr r2, [r0] + adds r1, r2, 0x1 + str r1, [r0] + ldrb r5, [r2, 0x1] + cmp r5, 0 + bne _080768E8 + movs r5, 0x2 + b _080768F2 + .align 2, 0 +_080768E4: .4byte gUnknown_0202F7A4 +_080768E8: + cmp r5, 0x1 + bne _080768EE + movs r5, 0x3 +_080768EE: + cmp r5, 0 + beq _080768F6 +_080768F2: + cmp r5, 0x2 + bne _08076900 +_080768F6: + ldr r0, _080768FC @ =gUnknown_0202F7C8 + b _08076902 + .align 2, 0 +_080768FC: .4byte gUnknown_0202F7C8 +_08076900: + ldr r0, _08076960 @ =gUnknown_0202F7C9 +_08076902: + ldrb r6, [r0] + adds r0, r6, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _0807692C + ldr r2, _08076964 @ =gSprites + ldr r0, _08076968 @ =gUnknown_02024BE0 + adds r0, r6, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] +_0807692C: + cmp r5, 0x1 + bls _0807696C + movs r0, 0x2 + adds r4, r6, 0 + eors r4, r0 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _0807696C + ldr r2, _08076964 @ =gSprites + ldr r0, _08076968 @ =gUnknown_02024BE0 + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + b _0807696E + .align 2, 0 +_08076960: .4byte gUnknown_0202F7C9 +_08076964: .4byte gSprites +_08076968: .4byte gUnknown_02024BE0 +_0807696C: + movs r5, 0 +_0807696E: + ldr r0, _08076998 @ =sub_80769A4 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0807699C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r5, [r1, 0x8] + strh r6, [r1, 0xC] + ldr r1, _080769A0 @ =gUnknown_0202F7A4 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08076998: .4byte sub_80769A4 +_0807699C: .4byte gTasks +_080769A0: .4byte gUnknown_0202F7A4 + thumb_func_end ma23_8073484 + + thumb_func_start sub_80769A4 +sub_80769A4: @ 80769A4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080769E8 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r1, r0, r1 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + beq _08076A32 + ldrb r4, [r1, 0xC] + adds r0, r4, 0 + bl battle_get_per_side_status + lsls r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x1 + bls _080769E2 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080769EC +_080769E2: + movs r5, 0 + b _080769EE + .align 2, 0 +_080769E8: .4byte gTasks +_080769EC: + movs r5, 0x1 +_080769EE: + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _08076A00 + adds r0, r5, 0 + bl sub_8076464 +_08076A00: + ldr r0, _08076A38 @ =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0x1 + ble _08076A2C + movs r0, 0x2 + eors r4, r0 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _08076A2C + movs r0, 0x1 + eors r5, r0 + adds r0, r5, 0 + bl sub_8076464 +_08076A2C: + adds r0, r6, 0 + bl DestroyTask +_08076A32: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08076A38: .4byte gTasks + thumb_func_end sub_80769A4 + + thumb_func_start sub_8076A3C +sub_8076A3C: @ 8076A3C + push {r4,lr} + ldr r2, _08076A6C @ =gUnknown_0202F7A4 + ldr r0, [r2] + adds r1, r0, 0x1 + str r1, [r2] + ldrb r3, [r0, 0x1] + adds r0, r1, 0x1 + str r0, [r2] + ldrb r1, [r1, 0x1] + lsls r1, 8 + adds r0, 0x1 + str r0, [r2] + ldr r2, _08076A70 @ =REG_BLDCNT + movs r4, 0xFD + lsls r4, 6 + adds r0, r4, 0 + strh r0, [r2] + ldr r0, _08076A74 @ =REG_BLDALPHA + orrs r3, r1 + strh r3, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08076A6C: .4byte gUnknown_0202F7A4 +_08076A70: .4byte REG_BLDCNT +_08076A74: .4byte REG_BLDALPHA + thumb_func_end sub_8076A3C + + thumb_func_start sub_8076A78 +sub_8076A78: @ 8076A78 + ldr r2, _08076A98 @ =gUnknown_0202F7A4 + ldr r0, [r2] + adds r1, r0, 0x1 + str r1, [r2] + ldrb r3, [r0, 0x1] + adds r0, r1, 0x1 + str r0, [r2] + ldrb r1, [r1, 0x1] + lsls r1, 8 + adds r0, 0x1 + str r0, [r2] + ldr r0, _08076A9C @ =REG_BLDCNT + orrs r3, r1 + strh r3, [r0] + bx lr + .align 2, 0 +_08076A98: .4byte gUnknown_0202F7A4 +_08076A9C: .4byte REG_BLDCNT + thumb_func_end sub_8076A78 + + thumb_func_start sub_8076AA0 +sub_8076AA0: @ 8076AA0 + ldr r1, _08076AB4 @ =gUnknown_0202F7A4 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r0, _08076AB8 @ =REG_BLDCNT + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bx lr + .align 2, 0 +_08076AB4: .4byte gUnknown_0202F7A4 +_08076AB8: .4byte REG_BLDCNT + thumb_func_end sub_8076AA0 + + thumb_func_start ma0E_call +ma0E_call: @ 8076ABC + push {r4,lr} + ldr r4, _08076AE8 @ =gUnknown_0202F7A4 + ldr r1, [r4] + adds r3, r1, 0x1 + str r3, [r4] + ldr r2, _08076AEC @ =gUnknown_0202F7A8 + adds r0, r1, 0x5 + str r0, [r2] + ldrb r1, [r1, 0x1] + ldrb r0, [r3, 0x1] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r3, 0x2] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r3, 0x3] + lsls r0, 24 + adds r1, r0 + str r1, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08076AE8: .4byte gUnknown_0202F7A4 +_08076AEC: .4byte gUnknown_0202F7A8 + thumb_func_end ma0E_call + + thumb_func_start sub_8076AF0 +sub_8076AF0: @ 8076AF0 + ldr r0, _08076AFC @ =gUnknown_0202F7A4 + ldr r1, _08076B00 @ =gUnknown_0202F7A8 + ldr r1, [r1] + str r1, [r0] + bx lr + .align 2, 0 +_08076AFC: .4byte gUnknown_0202F7A4 +_08076B00: .4byte gUnknown_0202F7A8 + thumb_func_end sub_8076AF0 + + thumb_func_start ma10_080736AC +ma10_080736AC: @ 8076B04 + push {r4,r5,lr} + ldr r5, _08076B30 @ =gUnknown_0202F7A4 + ldr r1, [r5] + adds r0, r1, 0x1 + str r0, [r5] + ldrb r2, [r1, 0x1] + adds r3, r0, 0x1 + str r3, [r5] + ldrb r4, [r0, 0x1] + ldrb r0, [r3, 0x1] + lsls r0, 8 + orrs r4, r0 + adds r1, 0x4 + str r1, [r5] + ldr r0, _08076B34 @ =gBattleAnimArgs + lsls r2, 1 + adds r2, r0 + strh r4, [r2] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08076B30: .4byte gUnknown_0202F7A4 +_08076B34: .4byte gBattleAnimArgs + thumb_func_end ma10_080736AC + + thumb_func_start ma11_if_else +ma11_if_else: @ 8076B38 + push {lr} + ldr r3, _08076B70 @ =gUnknown_0202F7A4 + ldr r2, [r3] + adds r0, r2, 0x1 + str r0, [r3] + ldr r0, _08076B74 @ =gUnknown_0202F7C4 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08076B52 + adds r0, r2, 0x5 + str r0, [r3] +_08076B52: + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, 0x1] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x2] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 24 + adds r1, r0 + str r1, [r3] + pop {r0} + bx r0 + .align 2, 0 +_08076B70: .4byte gUnknown_0202F7A4 +_08076B74: .4byte gUnknown_0202F7C4 + thumb_func_end ma11_if_else + + thumb_func_start ma12_cond_if +ma12_cond_if: @ 8076B78 + push {r4,r5,lr} + ldr r5, _08076BA8 @ =gUnknown_0202F7A4 + ldr r4, [r5] + adds r2, r4, 0x1 + str r2, [r5] + ldrb r1, [r4, 0x1] + adds r3, r2, 0x1 + str r3, [r5] + ldr r0, _08076BAC @ =gUnknown_0202F7C4 + ldrb r0, [r0] + cmp r1, r0 + bne _08076BB0 + ldrb r1, [r2, 0x1] + ldrb r0, [r3, 0x1] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r3, 0x2] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r3, 0x3] + lsls r0, 24 + adds r1, r0 + str r1, [r5] + b _08076BB4 + .align 2, 0 +_08076BA8: .4byte gUnknown_0202F7A4 +_08076BAC: .4byte gUnknown_0202F7C4 +_08076BB0: + adds r0, r4, 0x6 + str r0, [r5] +_08076BB4: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end ma12_cond_if + + thumb_func_start sub_8076BBC +sub_8076BBC: @ 8076BBC + ldr r3, _08076BDC @ =gUnknown_0202F7A4 + ldr r0, [r3] + adds r2, r0, 0x1 + str r2, [r3] + ldrb r1, [r0, 0x1] + ldrb r0, [r2, 0x1] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x2] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 24 + adds r1, r0 + str r1, [r3] + bx lr + .align 2, 0 +_08076BDC: .4byte gUnknown_0202F7A4 + thumb_func_end sub_8076BBC + + thumb_func_start sub_8076BE0 +sub_8076BE0: @ 8076BE0 + push {lr} + ldr r0, _08076BF8 @ =gMain + ldr r1, _08076BFC @ =0x0000043d + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08076C00 + movs r0, 0 + b _08076C02 + .align 2, 0 +_08076BF8: .4byte gMain +_08076BFC: .4byte 0x0000043d +_08076C00: + movs r0, 0x1 +_08076C02: + pop {r1} + bx r1 + thumb_func_end sub_8076BE0 + + thumb_func_start ma14_load_background +ma14_load_background: @ 8076C08 + push {r4,lr} + ldr r1, _08076C3C @ =gUnknown_0202F7A4 + ldr r2, [r1] + adds r0, r2, 0x1 + str r0, [r1] + ldrb r4, [r2, 0x1] + adds r0, 0x1 + str r0, [r1] + ldr r0, _08076C40 @ =task_p5_load_battle_screen_elements + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08076C44 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + ldr r1, _08076C48 @ =gUnknown_0202F7C5 + movs r0, 0x1 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08076C3C: .4byte gUnknown_0202F7A4 +_08076C40: .4byte task_p5_load_battle_screen_elements +_08076C44: .4byte gTasks +_08076C48: .4byte gUnknown_0202F7C5 + thumb_func_end ma14_load_background + + thumb_func_start sub_8076C4C +sub_8076C4C: @ 8076C4C + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r2, _08076C8C @ =gUnknown_0202F7A4 + ldr r1, [r2] + adds r0, r1, 0x1 + str r0, [r2] + ldrb r3, [r1, 0x1] + mov r8, r3 + ldrb r7, [r0, 0x1] + ldrb r6, [r0, 0x2] + adds r1, 0x4 + str r1, [r2] + ldr r0, _08076C90 @ =task_p5_load_battle_screen_elements + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08076C98 + ldr r1, _08076C94 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r6, [r0, 0x8] + b _08076CCA + .align 2, 0 +_08076C8C: .4byte gUnknown_0202F7A4 +_08076C90: .4byte task_p5_load_battle_screen_elements +_08076C94: .4byte gTasks +_08076C98: + ldr r0, _08076CB4 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08076CBC + ldr r1, _08076CB8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r7, [r0, 0x8] + b _08076CCA + .align 2, 0 +_08076CB4: .4byte gUnknown_0202F7C9 +_08076CB8: .4byte gTasks +_08076CBC: + ldr r1, _08076CDC @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + mov r1, r8 + strh r1, [r0, 0x8] +_08076CCA: + ldr r1, _08076CE0 @ =gUnknown_0202F7C5 + movs r0, 0x1 + strb r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08076CDC: .4byte gTasks +_08076CE0: .4byte gUnknown_0202F7C5 + thumb_func_end sub_8076C4C + + thumb_func_start task_p5_load_battle_screen_elements +task_p5_load_battle_screen_elements: @ 8076CE4 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _08076D18 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r6, [r4, 0x1C] + movs r0, 0x1C + ldrsh r3, [r4, r0] + adds r7, r1, 0 + cmp r3, 0 + bne _08076D1C + str r3, [sp] + movs r0, 0xE8 + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginHardwarePaletteFade + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + b _08076DAC + .align 2, 0 +_08076D18: .4byte gTasks +_08076D1C: + ldr r2, _08076D38 @ =gPaletteFade + ldrb r1, [r2, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08076DAC + cmp r3, 0x1 + bne _08076D40 + adds r0, r6, 0x1 + strh r0, [r4, 0x1C] + ldr r1, _08076D3C @ =gUnknown_0202F7C5 + movs r0, 0x2 + strb r0, [r1] + b _08076D84 + .align 2, 0 +_08076D38: .4byte gPaletteFade +_08076D3C: .4byte gUnknown_0202F7C5 +_08076D40: + cmp r3, 0x2 + bne _08076D84 + ldrh r0, [r4, 0x8] + lsls r2, r0, 16 + asrs r1, r2, 16 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _08076D58 + bl dp01t_11_3_message_for_player_only + b _08076D5E +_08076D58: + lsrs r0, r2, 16 + bl sub_8076DB8 +_08076D5E: + movs r0, 0x1 + str r0, [sp] + movs r0, 0xE8 + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginHardwarePaletteFade + ldr r1, _08076D80 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x1C] + adds r1, 0x1 + strh r1, [r0, 0x1C] + b _08076DAC + .align 2, 0 +_08076D80: .4byte gTasks +_08076D84: + ldrb r1, [r2, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _08076DAC + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r7 + movs r1, 0x1C + ldrsh r0, [r0, r1] + cmp r0, 0x3 + bne _08076DAC + adds r0, r5, 0 + bl DestroyTask + ldr r0, _08076DB4 @ =gUnknown_0202F7C5 + strb r4, [r0] +_08076DAC: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08076DB4: .4byte gUnknown_0202F7C5 + thumb_func_end task_p5_load_battle_screen_elements + + thumb_func_start sub_8076DB8 +sub_8076DB8: @ 8076DB8 + push {r4-r7,lr} + lsls r0, 16 + lsrs r6, r0, 16 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08076E70 + ldr r7, _08076E54 @ =gBattleAnimBackgroundTable + lsls r0, r6, 1 + adds r0, r6 + lsls r4, r0, 2 + adds r0, r7, 0 + adds r0, 0x8 + adds r0, r4, r0 + ldr r5, [r0] + bl sub_8076BE0 + lsls r0, 24 + ldr r1, _08076E58 @ =0x02018000 + cmp r0, 0 + beq _08076DE8 + ldr r0, _08076E5C @ =0xffffc800 + adds r1, r0 +_08076DE8: + adds r0, r5, 0 + bl sub_800D238 + bl sub_80789BC + lsls r0, 24 + lsrs r5, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + ldr r1, _08076E58 @ =0x02018000 + cmp r0, 0 + beq _08076E06 + ldr r0, _08076E5C @ =0xffffc800 + adds r1, r0 +_08076E06: + movs r2, 0x80 + lsls r2, 1 + adds r0, r5, 0 + movs r3, 0 + bl sub_80763FC + bl sub_8076BE0 + lsls r0, 24 + ldr r2, _08076E58 @ =0x02018000 + cmp r0, 0 + beq _08076E22 + ldr r0, _08076E5C @ =0xffffc800 + adds r2, r0 +_08076E22: + ldr r1, _08076E60 @ =0x0600d000 + ldr r0, _08076E64 @ =0x040000d4 + str r2, [r0] + str r1, [r0, 0x4] + ldr r1, _08076E68 @ =0x84000200 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + adds r0, r4, r7 + ldr r0, [r0] + ldr r1, _08076E6C @ =0x06002000 + bl LZDecompressVram + adds r0, r7, 0x4 + adds r0, r4, r0 + ldr r4, [r0] + bl sub_80789BC + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 20 + adds r0, r4, 0 + movs r2, 0x20 + bl LoadCompressedPalette + b _08076E9E + .align 2, 0 +_08076E54: .4byte gBattleAnimBackgroundTable +_08076E58: .4byte 0x02018000 +_08076E5C: .4byte 0xffffc800 +_08076E60: .4byte 0x0600d000 +_08076E64: .4byte 0x040000d4 +_08076E68: .4byte 0x84000200 +_08076E6C: .4byte 0x06002000 +_08076E70: + ldr r5, _08076EA4 @ =gBattleAnimBackgroundTable + lsls r4, r6, 1 + adds r4, r6 + lsls r4, 2 + adds r0, r5, 0 + adds r0, 0x8 + adds r0, r4, r0 + ldr r0, [r0] + ldr r1, _08076EA8 @ =0x0600d000 + bl LZDecompressVram + adds r0, r4, r5 + ldr r0, [r0] + ldr r1, _08076EAC @ =0x06008000 + bl LZDecompressVram + adds r5, 0x4 + adds r4, r5 + ldr r0, [r4] + movs r1, 0x20 + movs r2, 0x20 + bl LoadCompressedPalette +_08076E9E: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08076EA4: .4byte gBattleAnimBackgroundTable +_08076EA8: .4byte 0x0600d000 +_08076EAC: .4byte 0x06008000 + thumb_func_end sub_8076DB8 + + thumb_func_start dp01t_11_3_message_for_player_only +dp01t_11_3_message_for_player_only: @ 8076EB0 + push {lr} + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08076EC2 + bl sub_80AB2AC + b _08076EC6 +_08076EC2: + bl sub_800D7B8 +_08076EC6: + pop {r0} + bx r0 + thumb_func_end dp01t_11_3_message_for_player_only + + thumb_func_start ma15_load_battle_screen_elements +ma15_load_battle_screen_elements: @ 8076ECC + push {lr} + ldr r1, _08076EFC @ =gUnknown_0202F7A4 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r0, _08076F00 @ =task_p5_load_battle_screen_elements + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08076F04 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _08076F08 @ =0x0000ffff + strh r0, [r1, 0x8] + ldr r1, _08076F0C @ =gUnknown_0202F7C5 + movs r0, 0x1 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08076EFC: .4byte gUnknown_0202F7A4 +_08076F00: .4byte task_p5_load_battle_screen_elements +_08076F04: .4byte gTasks +_08076F08: .4byte 0x0000ffff +_08076F0C: .4byte gUnknown_0202F7C5 + thumb_func_end ma15_load_battle_screen_elements + + thumb_func_start ma16_wait_for_battle_screen_elements_s2 +ma16_wait_for_battle_screen_elements_s2: @ 8076F10 + push {lr} + ldr r0, _08076F28 @ =gUnknown_0202F7C5 + ldrb r0, [r0] + cmp r0, 0x2 + bne _08076F34 + ldr r1, _08076F2C @ =gUnknown_0202F7A4 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r1, _08076F30 @ =gUnknown_0202F7B0 + movs r0, 0 + b _08076F38 + .align 2, 0 +_08076F28: .4byte gUnknown_0202F7C5 +_08076F2C: .4byte gUnknown_0202F7A4 +_08076F30: .4byte gUnknown_0202F7B0 +_08076F34: + ldr r1, _08076F40 @ =gUnknown_0202F7B0 + movs r0, 0x1 +_08076F38: + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08076F40: .4byte gUnknown_0202F7B0 + thumb_func_end ma16_wait_for_battle_screen_elements_s2 + + thumb_func_start sub_8076F44 +sub_8076F44: @ 8076F44 + push {lr} + ldr r0, _08076F5C @ =gUnknown_0202F7C5 + ldrb r2, [r0] + cmp r2, 0 + bne _08076F68 + ldr r0, _08076F60 @ =gUnknown_0202F7A4 + ldr r1, [r0] + adds r1, 0x1 + str r1, [r0] + ldr r0, _08076F64 @ =gUnknown_0202F7B0 + strb r2, [r0] + b _08076F6E + .align 2, 0 +_08076F5C: .4byte gUnknown_0202F7C5 +_08076F60: .4byte gUnknown_0202F7A4 +_08076F64: .4byte gUnknown_0202F7B0 +_08076F68: + ldr r1, _08076F74 @ =gUnknown_0202F7B0 + movs r0, 0x1 + strb r0, [r1] +_08076F6E: + pop {r0} + bx r0 + .align 2, 0 +_08076F74: .4byte gUnknown_0202F7B0 + thumb_func_end sub_8076F44 + + thumb_func_start ma18_load_background_probably +ma18_load_background_probably: @ 8076F78 + push {r4,lr} + ldr r4, _08076F94 @ =gUnknown_0202F7A4 + ldr r1, [r4] + adds r0, r1, 0x1 + str r0, [r4] + ldrb r0, [r1, 0x1] + bl sub_8076DB8 + ldr r0, [r4] + adds r0, 0x1 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08076F94: .4byte gUnknown_0202F7A4 + thumb_func_end ma18_load_background_probably + + thumb_func_start sub_8076F98 +sub_8076F98: @ 8076F98 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _08076FDC + ldr r0, _08076FD4 @ =gUnknown_0202F7C8 + ldrb r2, [r0] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r1, _08076FD8 @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08076FDC + adds r0, r2, 0 + bl battle_side_get_owner + lsls r0, 24 + movs r4, 0xC0 + cmp r0, 0 + beq _0807706E + movs r4, 0x3F + b _0807706E + .align 2, 0 +_08076FD4: .4byte gUnknown_0202F7C8 +_08076FD8: .4byte 0x02017810 +_08076FDC: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08077004 + ldr r0, _08076FFC @ =gUnknown_0202F7C8 + ldr r1, _08077000 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _08077068 + cmp r0, 0x2 + bne _08077068 + cmp r4, 0x3F + beq _0807707A + b _08077068 + .align 2, 0 +_08076FFC: .4byte gUnknown_0202F7C8 +_08077000: .4byte gUnknown_0202F7C9 +_08077004: + ldr r0, _0807702C @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08077042 + ldr r0, _08077030 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _0807706E + lsls r0, r4, 24 + asrs r1, r0, 24 + cmp r1, 0x3F + bne _08077034 + movs r4, 0xC0 + b _0807706E + .align 2, 0 +_0807702C: .4byte gUnknown_0202F7C8 +_08077030: .4byte gUnknown_0202F7C9 +_08077034: + movs r0, 0x40 + negs r0, r0 + cmp r1, r0 + beq _0807706E + negs r0, r1 + lsls r0, 24 + b _0807706C +_08077042: + ldr r0, _08077064 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08077068 + lsls r0, r4, 24 + asrs r0, 24 + movs r1, 0x40 + negs r1, r1 + cmp r0, r1 + bne _0807706E + movs r4, 0x3F + b _0807706E + .align 2, 0 +_08077064: .4byte gUnknown_0202F7C9 +_08077068: + lsls r0, r4, 24 + negs r0, r0 +_0807706C: + lsrs r4, r0, 24 +_0807706E: + lsls r0, r4, 24 + asrs r0, 24 + cmp r0, 0x3F + ble _0807707A + movs r4, 0x3F + b _08077088 +_0807707A: + lsls r0, r4, 24 + asrs r0, 24 + movs r1, 0x40 + negs r1, r1 + cmp r0, r1 + bge _08077088 + movs r4, 0xC0 +_08077088: + lsls r0, r4, 24 + asrs r0, 24 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8076F98 + + thumb_func_start sub_8077094 +sub_8077094: @ 8077094 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080770D8 + ldr r0, _080770D0 @ =gUnknown_0202F7C8 + ldrb r2, [r0] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r1, _080770D4 @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080770D8 + adds r0, r2, 0 + bl battle_side_get_owner + lsls r0, 24 + movs r4, 0xC0 + cmp r0, 0 + beq _080770F6 + movs r4, 0x3F + b _080770F6 + .align 2, 0 +_080770D0: .4byte gUnknown_0202F7C8 +_080770D4: .4byte 0x02017810 +_080770D8: + ldr r0, _08077100 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080770F0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080770F6 +_080770F0: + lsls r0, r4, 24 + negs r0, r0 + lsrs r4, r0, 24 +_080770F6: + lsls r0, r4, 24 + asrs r0, 24 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08077100: .4byte gUnknown_0202F7C8 + thumb_func_end sub_8077094 + + thumb_func_start sub_8077104 +sub_8077104: @ 8077104 + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + asrs r2, r0, 16 + cmp r2, 0x3F + ble _08077114 + movs r1, 0x3F + b _0807711E +_08077114: + movs r0, 0x40 + negs r0, r0 + cmp r2, r0 + bge _0807711E + ldr r1, _08077128 @ =0x0000ffc0 +_0807711E: + lsls r0, r1, 16 + asrs r0, 16 + pop {r1} + bx r1 + .align 2, 0 +_08077128: .4byte 0x0000ffc0 + thumb_func_end sub_8077104 + + thumb_func_start sub_807712C +sub_807712C: @ 807712C + push {lr} + lsls r2, 16 + lsrs r2, 16 + adds r3, r2, 0 + lsls r0, 16 + asrs r0, 16 + lsls r1, 16 + asrs r1, 16 + cmp r0, r1 + bge _0807714A + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0 + bge _0807715A + b _08077158 +_0807714A: + cmp r0, r1 + ble _08077160 + lsls r0, r3, 16 + asrs r0, 16 + cmp r0, 0 + bge _08077158 + negs r0, r0 +_08077158: + negs r0, r0 +_0807715A: + lsls r0, 16 + lsrs r0, 16 + b _08077162 +_08077160: + movs r0, 0 +_08077162: + lsls r0, 16 + asrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_807712C + + thumb_func_start ma19_08073BC8 +ma19_08073BC8: @ 807716C + push {r4,r5,lr} + ldr r5, _080771A0 @ =gUnknown_0202F7A4 + ldr r0, [r5] + adds r1, r0, 0x1 + str r1, [r5] + ldrb r4, [r0, 0x1] + ldrb r0, [r1, 0x1] + lsls r0, 8 + orrs r4, r0 + movs r0, 0x2 + ldrsb r0, [r1, r0] + bl sub_8076F98 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + adds r0, r4, 0 + bl PlaySE12WithPanning + ldr r0, [r5] + adds r0, 0x3 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080771A0: .4byte gUnknown_0202F7A4 + thumb_func_end ma19_08073BC8 + + thumb_func_start ma1A_8073C00 +ma1A_8073C00: @ 80771A4 + push {r4,lr} + ldr r4, _080771CC @ =gUnknown_0202F7A4 + ldr r1, [r4] + adds r0, r1, 0x1 + str r0, [r4] + movs r0, 0x1 + ldrsb r0, [r1, r0] + bl sub_8076F98 + lsls r0, 24 + asrs r0, 24 + bl SE12PanpotControl + ldr r0, [r4] + adds r0, 0x1 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080771CC: .4byte gUnknown_0202F7A4 + thumb_func_end ma1A_8073C00 + + thumb_func_start ma1B_8073C2C +ma1B_8073C2C: @ 80771D0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _08077280 @ =gUnknown_0202F7A4 + mov r10, r0 + ldr r0, [r0] + adds r1, r0, 0x1 + mov r2, r10 + str r1, [r2] + ldrb r0, [r0, 0x1] + mov r9, r0 + ldrb r0, [r1, 0x1] + lsls r0, 8 + mov r2, r9 + orrs r2, r0 + mov r9, r2 + ldrb r4, [r1, 0x3] + ldrb r6, [r1, 0x4] + ldrb r7, [r1, 0x5] + movs r0, 0x2 + ldrsb r0, [r1, r0] + bl sub_8076F98 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, 24 + asrs r4, 24 + adds r0, r4, 0 + bl sub_8076F98 + mov r8, r0 + lsls r5, 24 + asrs r5, 24 + mov r0, r8 + lsls r0, 24 + asrs r0, 24 + mov r8, r0 + lsls r6, 24 + asrs r6, 24 + adds r0, r5, 0 + mov r1, r8 + adds r2, r6, 0 + bl sub_807712C + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _08077284 @ =c3_08073CEC + movs r1, 0x1 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08077288 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r5, [r1, 0x8] + mov r2, r8 + strh r2, [r1, 0xA] + lsls r4, 24 + asrs r4, 24 + strh r4, [r1, 0xC] + strh r7, [r1, 0xE] + strh r5, [r1, 0x10] + mov r0, r9 + adds r1, r5, 0 + bl PlaySE12WithPanning + ldr r1, _0807728C @ =gUnknown_0202F7B3 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + mov r1, r10 + ldr r0, [r1] + adds r0, 0x6 + str r0, [r1] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08077280: .4byte gUnknown_0202F7A4 +_08077284: .4byte c3_08073CEC +_08077288: .4byte gTasks +_0807728C: .4byte gUnknown_0202F7B3 + thumb_func_end ma1B_8073C2C + + thumb_func_start c3_08073CEC +c3_08073CEC: @ 8077290 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r7, 0 + ldr r1, _080772D4 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0x18] + adds r1, r0, 0x1 + strh r1, [r2, 0x18] + lsls r0, 16 + asrs r0, 16 + movs r3, 0xE + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _08077314 + strh r7, [r2, 0x18] + ldrh r6, [r2, 0x8] + ldrh r3, [r2, 0xA] + movs r4, 0x10 + ldrsh r0, [r2, r4] + movs r4, 0xC + ldrsh r1, [r2, r4] + adds r0, r1 + lsls r0, 16 + lsrs r4, r0, 16 + strh r4, [r2, 0x10] + cmp r1, 0 + bne _080772D8 + lsls r2, r3, 16 + b _080772FC + .align 2, 0 +_080772D4: .4byte gTasks +_080772D8: + lsls r1, r6, 16 + lsls r0, r3, 16 + asrs r3, r0, 16 + adds r2, r0, 0 + cmp r1, r2 + bge _080772EE + lsls r0, r4, 16 + asrs r0, 16 + cmp r0, r3 + blt _080772F8 + b _080772FC +_080772EE: + lsls r0, r4, 16 + asrs r0, 16 + cmp r0, r3 + bgt _080772F8 + movs r7, 0x1 +_080772F8: + cmp r7, 0 + beq _0807730C +_080772FC: + lsrs r4, r2, 16 + adds r0, r5, 0 + bl DestroyTask + ldr r1, _0807731C @ =gUnknown_0202F7B3 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] +_0807730C: + lsls r0, r4, 24 + asrs r0, 24 + bl SE12PanpotControl +_08077314: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0807731C: .4byte gUnknown_0202F7B3 + thumb_func_end c3_08073CEC + + thumb_func_start sub_8077320 +sub_8077320: @ 8077320 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + ldr r0, _080773A4 @ =gUnknown_0202F7A4 + mov r9, r0 + ldr r0, [r0] + adds r1, r0, 0x1 + mov r2, r9 + str r1, [r2] + ldrb r0, [r0, 0x1] + mov r8, r0 + ldrb r0, [r1, 0x1] + lsls r0, 8 + mov r2, r8 + orrs r2, r0 + mov r8, r2 + ldrb r4, [r1, 0x2] + ldrb r5, [r1, 0x3] + ldrb r6, [r1, 0x4] + ldrb r1, [r1, 0x5] + mov r10, r1 + ldr r0, _080773A8 @ =c3_08073CEC + movs r1, 0x1 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080773AC @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + lsls r4, 24 + asrs r4, 24 + strh r4, [r1, 0x8] + lsls r5, 24 + asrs r5, 24 + strh r5, [r1, 0xA] + lsls r6, 24 + asrs r6, 24 + strh r6, [r1, 0xC] + mov r0, r10 + strh r0, [r1, 0xE] + strh r4, [r1, 0x10] + mov r0, r8 + adds r1, r4, 0 + bl PlaySE12WithPanning + ldr r1, _080773B0 @ =gUnknown_0202F7B3 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + mov r1, r9 + ldr r0, [r1] + adds r0, 0x6 + str r0, [r1] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080773A4: .4byte gUnknown_0202F7A4 +_080773A8: .4byte c3_08073CEC +_080773AC: .4byte gTasks +_080773B0: .4byte gUnknown_0202F7B3 + thumb_func_end sub_8077320 + + thumb_func_start sub_80773B4 +sub_80773B4: @ 80773B4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _08077464 @ =gUnknown_0202F7A4 + mov r10, r0 + ldr r0, [r0] + adds r1, r0, 0x1 + mov r2, r10 + str r1, [r2] + ldrb r0, [r0, 0x1] + mov r9, r0 + ldrb r0, [r1, 0x1] + lsls r0, 8 + mov r2, r9 + orrs r2, r0 + mov r9, r2 + ldrb r4, [r1, 0x3] + ldrb r0, [r1, 0x4] + mov r8, r0 + ldrb r7, [r1, 0x5] + movs r0, 0x2 + ldrsb r0, [r1, r0] + bl sub_8077094 + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + lsls r4, 24 + asrs r4, 24 + adds r0, r4, 0 + bl sub_8077094 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + mov r1, r8 + lsls r1, 24 + asrs r1, 24 + mov r8, r1 + mov r0, r8 + bl sub_8077094 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _08077468 @ =c3_08073CEC + movs r1, 0x1 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0807746C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + lsls r6, 24 + asrs r6, 24 + strh r6, [r1, 0x8] + lsls r5, 24 + asrs r5, 24 + strh r5, [r1, 0xA] + lsls r4, 24 + asrs r4, 24 + strh r4, [r1, 0xC] + strh r7, [r1, 0xE] + strh r6, [r1, 0x10] + mov r0, r9 + adds r1, r6, 0 + bl PlaySE12WithPanning + ldr r1, _08077470 @ =gUnknown_0202F7B3 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + mov r2, r10 + ldr r0, [r2] + adds r0, 0x6 + str r0, [r2] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08077464: .4byte gUnknown_0202F7A4 +_08077468: .4byte c3_08073CEC +_0807746C: .4byte gTasks +_08077470: .4byte gUnknown_0202F7B3 + thumb_func_end sub_80773B4 + + thumb_func_start ma1C_8073ED0 +ma1C_8073ED0: @ 8077474 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + ldr r6, _080774EC @ =gUnknown_0202F7A4 + ldr r0, [r6] + adds r1, r0, 0x1 + str r1, [r6] + ldrb r5, [r0, 0x1] + ldrb r0, [r1, 0x1] + lsls r0, 8 + orrs r5, r0 + ldrb r0, [r1, 0x3] + mov r8, r0 + ldrb r2, [r1, 0x4] + mov r9, r2 + movs r0, 0x2 + ldrsb r0, [r1, r0] + bl sub_8076F98 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080774F0 @ =sub_80774FC + movs r1, 0x1 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080774F4 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r5, [r1, 0x8] + lsls r4, 24 + asrs r4, 24 + strh r4, [r1, 0xA] + mov r2, r8 + strh r2, [r1, 0xC] + mov r2, r9 + strh r2, [r1, 0xE] + mov r2, r8 + strh r2, [r1, 0x18] + ldr r1, [r1] + bl _call_via_r1 + ldr r1, _080774F8 @ =gUnknown_0202F7B3 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r6] + adds r0, 0x5 + str r0, [r6] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080774EC: .4byte gUnknown_0202F7A4 +_080774F0: .4byte sub_80774FC +_080774F4: .4byte gTasks +_080774F8: .4byte gUnknown_0202F7B3 + thumb_func_end ma1C_8073ED0 + + thumb_func_start sub_80774FC +sub_80774FC: @ 80774FC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _08077550 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0x18] + adds r1, r0, 0x1 + strh r1, [r2, 0x18] + lsls r0, 16 + asrs r0, 16 + movs r3, 0xC + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _0807754A + movs r0, 0 + strh r0, [r2, 0x18] + ldrh r0, [r2, 0x8] + ldrb r1, [r2, 0xA] + ldrh r4, [r2, 0xE] + subs r4, 0x1 + strh r4, [r2, 0xE] + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + asrs r1, 24 + bl PlaySE12WithPanning + cmp r4, 0 + bne _0807754A + adds r0, r5, 0 + bl DestroyTask + ldr r1, _08077554 @ =gUnknown_0202F7B3 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] +_0807754A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08077550: .4byte gTasks +_08077554: .4byte gUnknown_0202F7B3 + thumb_func_end sub_80774FC + + thumb_func_start ma1D_08073FB4 +ma1D_08073FB4: @ 8077558 + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r6, _080775BC @ =gUnknown_0202F7A4 + ldr r0, [r6] + adds r1, r0, 0x1 + str r1, [r6] + ldrb r5, [r0, 0x1] + ldrb r0, [r1, 0x1] + lsls r0, 8 + orrs r5, r0 + ldrb r0, [r1, 0x3] + mov r8, r0 + movs r0, 0x2 + ldrsb r0, [r1, r0] + bl sub_8076F98 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080775C0 @ =sub_80775CC + movs r1, 0x1 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080775C4 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r5, [r1, 0x8] + lsls r4, 24 + asrs r4, 24 + strh r4, [r1, 0xA] + mov r0, r8 + strh r0, [r1, 0xC] + ldr r1, _080775C8 @ =gUnknown_0202F7B3 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r6] + adds r0, 0x4 + str r0, [r6] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080775BC: .4byte gUnknown_0202F7A4 +_080775C0: .4byte sub_80775CC +_080775C4: .4byte gTasks +_080775C8: .4byte gUnknown_0202F7B3 + thumb_func_end ma1D_08073FB4 + + thumb_func_start sub_80775CC +sub_80775CC: @ 80775CC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _08077608 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0xC] + subs r1, r0, 0x1 + strh r1, [r2, 0xC] + lsls r0, 16 + cmp r0, 0 + bgt _08077600 + ldrh r0, [r2, 0x8] + movs r1, 0xA + ldrsb r1, [r2, r1] + bl PlaySE12WithPanning + adds r0, r4, 0 + bl DestroyTask + ldr r1, _0807760C @ =gUnknown_0202F7B3 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] +_08077600: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08077608: .4byte gTasks +_0807760C: .4byte gUnknown_0202F7B3 + thumb_func_end sub_80775CC + + thumb_func_start sub_8077610 +sub_8077610: @ 8077610 + push {r4-r6,lr} + ldr r4, _08077678 @ =gUnknown_0202F7A4 + ldr r1, [r4] + adds r3, r1, 0x1 + str r3, [r4] + ldrb r2, [r1, 0x1] + ldrb r0, [r3, 0x1] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r3, 0x2] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r3, 0x3] + lsls r0, 24 + adds r6, r2, r0 + adds r0, r1, 0x5 + str r0, [r4] + ldrb r0, [r1, 0x5] + adds r1, 0x6 + str r1, [r4] + cmp r0, 0 + beq _0807765A + adds r5, r4, 0 + ldr r4, _0807767C @ =gBattleAnimArgs + adds r3, r0, 0 +_08077642: + ldr r2, [r5] + ldrb r1, [r2] + ldrb r0, [r2, 0x1] + lsls r0, 8 + orrs r1, r0 + strh r1, [r4] + adds r2, 0x2 + str r2, [r5] + adds r4, 0x2 + subs r3, 0x1 + cmp r3, 0 + bne _08077642 +_0807765A: + adds r0, r6, 0 + movs r1, 0x1 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + bl _call_via_r6 + ldr r1, _08077680 @ =gUnknown_0202F7B3 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08077678: .4byte gUnknown_0202F7A4 +_0807767C: .4byte gBattleAnimArgs +_08077680: .4byte gUnknown_0202F7B3 + thumb_func_end sub_8077610 + + thumb_func_start ma20_wait_for_something +ma20_wait_for_something: @ 8077684 + push {r4,r5,lr} + ldr r0, _080776BC @ =gUnknown_0202F7B3 + ldrb r5, [r0] + cmp r5, 0 + bne _080776CC + bl IsSEPlaying + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _080776E4 + ldr r4, _080776C0 @ =gUnknown_03004AF0 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x5A + bls _080776D2 + ldr r0, _080776C4 @ =gMPlay_SE1 + bl m4aMPlayStop + ldr r0, _080776C8 @ =gMPlay_SE2 + bl m4aMPlayStop + strh r5, [r4] + b _080776F6 + .align 2, 0 +_080776BC: .4byte gUnknown_0202F7B3 +_080776C0: .4byte gUnknown_03004AF0 +_080776C4: .4byte gMPlay_SE1 +_080776C8: .4byte gMPlay_SE2 +_080776CC: + ldr r1, _080776DC @ =gUnknown_03004AF0 + movs r0, 0 + strh r0, [r1] +_080776D2: + ldr r1, _080776E0 @ =gUnknown_0202F7B0 + movs r0, 0x1 + strb r0, [r1] + b _080776F6 + .align 2, 0 +_080776DC: .4byte gUnknown_03004AF0 +_080776E0: .4byte gUnknown_0202F7B0 +_080776E4: + ldr r0, _080776FC @ =gUnknown_03004AF0 + movs r2, 0 + strh r1, [r0] + ldr r1, _08077700 @ =gUnknown_0202F7A4 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r0, _08077704 @ =gUnknown_0202F7B0 + strb r2, [r0] +_080776F6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080776FC: .4byte gUnknown_03004AF0 +_08077700: .4byte gUnknown_0202F7A4 +_08077704: .4byte gUnknown_0202F7B0 + thumb_func_end ma20_wait_for_something + + thumb_func_start ma21_08074164 +ma21_08074164: @ 8077708 + push {r4-r6,lr} + ldr r5, _08077748 @ =gUnknown_0202F7A4 + ldr r4, [r5] + adds r3, r4, 0x1 + str r3, [r5] + ldrb r2, [r4, 0x1] + ldrb r1, [r3, 0x1] + ldrb r0, [r3, 0x2] + lsls r0, 8 + orrs r1, r0 + ldr r0, _0807774C @ =gBattleAnimArgs + lsls r2, 1 + adds r2, r0 + lsls r1, 16 + asrs r1, 16 + movs r6, 0 + ldrsh r0, [r2, r6] + cmp r1, r0 + bne _08077750 + ldrb r1, [r3, 0x3] + ldrb r0, [r3, 0x4] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r3, 0x5] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r3, 0x6] + lsls r0, 24 + adds r1, r0 + str r1, [r5] + b _08077756 + .align 2, 0 +_08077748: .4byte gUnknown_0202F7A4 +_0807774C: .4byte gBattleAnimArgs +_08077750: + adds r0, r4, 0 + adds r0, 0x8 + str r0, [r5] +_08077756: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end ma21_08074164 + + thumb_func_start sub_807775C +sub_807775C: @ 807775C + push {r4,lr} + ldr r4, _0807778C @ =gUnknown_0202F7A4 + ldr r0, [r4] + adds r0, 0x1 + str r0, [r4] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08077790 + ldr r2, [r4] + ldrb r1, [r2] + ldrb r0, [r2, 0x1] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x2] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 24 + adds r1, r0 + str r1, [r4] + b _08077796 + .align 2, 0 +_0807778C: .4byte gUnknown_0202F7A4 +_08077790: + ldr r0, [r4] + adds r0, 0x4 + str r0, [r4] +_08077796: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_807775C + + thumb_func_start sub_807779C +sub_807779C: @ 807779C + push {r4,lr} + ldr r0, _080777B0 @ =gUnknown_0202F7A4 + ldr r1, [r0] + ldrb r2, [r1, 0x1] + adds r1, 0x2 + str r1, [r0] + cmp r2, 0 + beq _080777B8 + ldr r0, _080777B4 @ =gUnknown_0202F7C9 + b _080777BA + .align 2, 0 +_080777B0: .4byte gUnknown_0202F7A4 +_080777B4: .4byte gUnknown_0202F7C9 +_080777B8: + ldr r0, _080777FC @ =gUnknown_0202F7C8 +_080777BA: + ldrb r0, [r0] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080777F4 + cmp r4, 0 + beq _080777D6 + cmp r4, 0x3 + bne _080777F4 +_080777D6: + ldr r3, _08077800 @ =REG_BG1CNT + ldrb r2, [r3] + movs r1, 0x4 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + movs r2, 0x1 + orrs r0, r2 + strb r0, [r3] + ldr r2, _08077804 @ =REG_BG2CNT + ldrb r0, [r2] + ands r1, r0 + movs r0, 0x2 + orrs r1, r0 + strb r1, [r2] +_080777F4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080777FC: .4byte gUnknown_0202F7C8 +_08077800: .4byte REG_BG1CNT +_08077804: .4byte REG_BG2CNT + thumb_func_end sub_807779C + + thumb_func_start sub_8077808 +sub_8077808: @ 8077808 + push {lr} + ldr r0, _08077840 @ =gUnknown_0202F7A4 + ldr r1, [r0] + adds r1, 0x1 + str r1, [r0] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _0807783A + ldr r3, _08077844 @ =REG_BG1CNT + ldrb r2, [r3] + movs r1, 0x4 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + movs r2, 0x1 + orrs r0, r2 + strb r0, [r3] + ldr r2, _08077848 @ =REG_BG2CNT + ldrb r0, [r2] + ands r1, r0 + movs r0, 0x2 + orrs r1, r0 + strb r1, [r2] +_0807783A: + pop {r0} + bx r0 + .align 2, 0 +_08077840: .4byte gUnknown_0202F7A4 +_08077844: .4byte REG_BG1CNT +_08077848: .4byte REG_BG2CNT + thumb_func_end sub_8077808 + + thumb_func_start sub_807784C +sub_807784C: @ 807784C + push {r4-r7,lr} + ldr r1, _0807787C @ =gUnknown_0202F7A4 + ldr r0, [r1] + ldrb r6, [r0, 0x1] + adds r0, 0x2 + str r0, [r1] + ldr r7, _08077880 @ =gUnknown_0202F7C8 + ldrb r0, [r7] + bl battle_side_get_owner + adds r4, r0, 0 + ldr r5, _08077884 @ =gUnknown_0202F7C9 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + beq _080778C2 + cmp r6, 0 + beq _08077888 + ldrb r0, [r5] + b _0807788A + .align 2, 0 +_0807787C: .4byte gUnknown_0202F7A4 +_08077880: .4byte gUnknown_0202F7C8 +_08077884: .4byte gUnknown_0202F7C9 +_08077888: + ldrb r0, [r7] +_0807788A: + bl battle_get_per_side_status + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080778C2 + cmp r4, 0 + beq _080778A4 + cmp r4, 0x3 + bne _080778C2 +_080778A4: + ldr r3, _080778C8 @ =REG_BG1CNT + ldrb r2, [r3] + movs r1, 0x4 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + movs r2, 0x1 + orrs r0, r2 + strb r0, [r3] + ldr r2, _080778CC @ =REG_BG2CNT + ldrb r0, [r2] + ands r1, r0 + movs r0, 0x2 + orrs r1, r0 + strb r1, [r2] +_080778C2: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080778C8: .4byte REG_BG1CNT +_080778CC: .4byte REG_BG2CNT + thumb_func_end sub_807784C + + thumb_func_start ma2B_make_side_invisible +ma2B_make_side_invisible: @ 80778D0 + push {r4,lr} + ldr r4, _08077904 @ =gUnknown_0202F7A4 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _080778F8 + ldr r1, _08077908 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080778F8: + ldr r0, [r4] + adds r0, 0x2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08077904: .4byte gUnknown_0202F7A4 +_08077908: .4byte gSprites + thumb_func_end ma2B_make_side_invisible + + thumb_func_start ma2C_make_side_visible +ma2C_make_side_visible: @ 807790C + push {r4,lr} + ldr r4, _08077944 @ =gUnknown_0202F7A4 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _08077936 + ldr r1, _08077948 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] +_08077936: + ldr r0, [r4] + adds r0, 0x2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08077944: .4byte gUnknown_0202F7A4 +_08077948: .4byte gSprites + thumb_func_end ma2C_make_side_visible + + thumb_func_start sub_807794C +sub_807794C: @ 807794C + push {r4-r7,lr} + ldr r1, _08077998 @ =gUnknown_0202F7A4 + ldr r0, [r1] + ldrb r7, [r0, 0x1] + adds r0, 0x2 + str r0, [r1] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080779F6 + bl IsDoubleBattle + lsls r0, 24 + cmp r0, 0 + beq _080779F6 + ldr r6, _0807799C @ =gUnknown_0202F7C8 + ldrb r0, [r6] + bl battle_side_get_owner + adds r4, r0, 0 + ldr r5, _080779A0 @ =gUnknown_0202F7C9 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080779F6 + cmp r7, 0 + bne _080779A4 + ldrb r0, [r6] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0 + b _080779B0 + .align 2, 0 +_08077998: .4byte gUnknown_0202F7A4 +_0807799C: .4byte gUnknown_0202F7C8 +_080779A0: .4byte gUnknown_0202F7C9 +_080779A4: + ldrb r0, [r5] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x1 +_080779B0: + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _080779F6 + ldr r1, _080779EC @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r2, r0, r1 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + cmp r4, 0x2 + bne _080779E0 + ldrb r0, [r2, 0x5] + movs r1, 0xC + orrs r0, r1 + strb r0, [r2, 0x5] +_080779E0: + cmp r4, 0x1 + bne _080779F0 + movs r0, 0 + bl sub_8076464 + b _080779F6 + .align 2, 0 +_080779EC: .4byte gSprites +_080779F0: + movs r0, 0x1 + bl sub_8076464 +_080779F6: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_807794C + + thumb_func_start sub_80779FC +sub_80779FC: @ 80779FC + push {r4-r7,lr} + ldr r1, _08077A48 @ =gUnknown_0202F7A4 + ldr r0, [r1] + ldrb r7, [r0, 0x1] + adds r0, 0x2 + str r0, [r1] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _08077A88 + bl IsDoubleBattle + lsls r0, 24 + cmp r0, 0 + beq _08077A88 + ldr r6, _08077A4C @ =gUnknown_0202F7C8 + ldrb r0, [r6] + bl battle_side_get_owner + adds r4, r0, 0 + ldr r5, _08077A50 @ =gUnknown_0202F7C9 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _08077A88 + cmp r7, 0 + bne _08077A54 + ldrb r0, [r6] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0 + b _08077A60 + .align 2, 0 +_08077A48: .4byte gUnknown_0202F7A4 +_08077A4C: .4byte gUnknown_0202F7C8 +_08077A50: .4byte gUnknown_0202F7C9 +_08077A54: + ldrb r0, [r5] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x1 +_08077A60: + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _08077A88 + cmp r4, 0x2 + bne _08077A88 + ldr r1, _08077A90 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + movs r2, 0x8 + orrs r1, r2 + strb r1, [r0, 0x5] +_08077A88: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08077A90: .4byte gSprites + thumb_func_end sub_80779FC + + thumb_func_start ma2F_stop_music +ma2F_stop_music: @ 8077A94 + push {lr} + ldr r0, _08077AB0 @ =gMPlay_SE1 + bl m4aMPlayStop + ldr r0, _08077AB4 @ =gMPlay_SE2 + bl m4aMPlayStop + ldr r1, _08077AB8 @ =gUnknown_0202F7A4 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08077AB0: .4byte gMPlay_SE1 +_08077AB4: .4byte gMPlay_SE2 +_08077AB8: .4byte gUnknown_0202F7A4 + thumb_func_end ma2F_stop_music + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_anim_807B69C.s b/asm/battle_anim_807B69C.s new file mode 100644 index 000000000..cef472d03 --- /dev/null +++ b/asm/battle_anim_807B69C.s @@ -0,0 +1,960 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start unref_sub_807B69C +unref_sub_807B69C: @ 807B69C + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _0807B740 @ =gUnknown_02024BE0 + adds r0, r4, r0 + ldrb r6, [r0] + ldr r0, _0807B744 @ =sub_807B7E0 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _0807B748 @ =gBattleAnimPicTable + (136 * 8) + bl LoadCompressedObjectPic + ldr r0, _0807B74C @ =gBattleAnimPaletteTable + (136 * 8) + bl LoadCompressedObjectPalette + ldr r1, _0807B750 @ =gTasks + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r1, r0, r1 + strh r4, [r1, 0x8] + cmp r5, 0 + beq _0807B75C + movs r0, 0x1F + strh r0, [r1, 0xA] + movs r5, 0 + lsls r0, r6, 4 + ldr r7, _0807B754 @ =gSprites + adds r0, r6 + lsls r0, 2 + adds r6, r0, r7 +_0807B6F0: + movs r0, 0x20 + ldrsh r1, [r6, r0] + ldrh r2, [r6, 0x22] + adds r2, 0x20 + lsls r2, 16 + asrs r2, 16 + ldr r0, _0807B758 @ =gSpriteTemplate_83931F8 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r3, r0, r7 + lsls r0, r5, 1 + adds r0, r5 + lsls r1, r0, 4 + adds r0, r1 + strh r0, [r3, 0x2E] + movs r0, 0xFF + lsls r0, 8 + strh r0, [r3, 0x30] + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + cmp r5, 0x4 + bls _0807B734 + movs r0, 0x15 + strh r0, [r3, 0x3A] +_0807B734: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x9 + bls _0807B6F0 + b _0807B7BC + .align 2, 0 +_0807B740: .4byte gUnknown_02024BE0 +_0807B744: .4byte sub_807B7E0 +_0807B748: .4byte gBattleAnimPicTable + (136 * 8) +_0807B74C: .4byte gBattleAnimPaletteTable + (136 * 8) +_0807B750: .4byte gTasks +_0807B754: .4byte gSprites +_0807B758: .4byte gSpriteTemplate_83931F8 +_0807B75C: + movs r0, 0xF8 + lsls r0, 7 + strh r0, [r1, 0xA] + movs r5, 0 + lsls r0, r6, 4 + ldr r7, _0807B7D8 @ =gSprites + adds r0, r6 + lsls r0, 2 + adds r6, r0, r7 +_0807B76E: + movs r2, 0x20 + ldrsh r1, [r6, r2] + ldrh r2, [r6, 0x22] + subs r2, 0x20 + lsls r2, 16 + asrs r2, 16 + ldr r0, _0807B7DC @ =gSpriteTemplate_83931F8 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r3, r0, r7 + lsls r0, r5, 1 + adds r0, r5 + lsls r1, r0, 4 + adds r0, r1 + strh r0, [r3, 0x2E] + movs r0, 0x80 + lsls r0, 1 + strh r0, [r3, 0x30] + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + cmp r5, 0x4 + bls _0807B7B2 + movs r0, 0x15 + strh r0, [r3, 0x3A] +_0807B7B2: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x9 + bls _0807B76E +_0807B7BC: + ldr r0, _0807B7D8 @ =gSprites + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + movs r0, 0x1 + strh r0, [r1, 0x3C] + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0807B7D8: .4byte gSprites +_0807B7DC: .4byte gSpriteTemplate_83931F8 + thumb_func_end unref_sub_807B69C + + thumb_func_start sub_807B7E0 +sub_807B7E0: @ 807B7E0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _0807B838 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r1, [r4, 0xC] + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0x2 + bne _0807B866 + movs r0, 0 + strh r0, [r4, 0xC] + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 20 + movs r2, 0x80 + lsls r2, 17 + adds r0, r2 + lsrs r0, 16 + ldrb r2, [r4, 0x10] + ldrh r3, [r4, 0xA] + movs r1, 0x10 + bl BlendPalette + ldrh r2, [r4, 0x12] + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _0807B83C + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _0807B86A + movs r0, 0x1 + eors r0, r2 + strh r0, [r4, 0x12] + b _0807B86A + .align 2, 0 +_0807B838: .4byte gTasks +_0807B83C: + ldrh r1, [r4, 0x10] + subs r0, r1, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + cmp r0, 0 + bge _0807B86A + strh r1, [r4, 0x10] + movs r0, 0x1 + eors r0, r2 + strh r0, [r4, 0x12] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _0807B86A + adds r0, r5, 0 + bl DestroyTask + b _0807B86A +_0807B866: + adds r0, r1, 0x1 + strh r0, [r4, 0xC] +_0807B86A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_807B7E0 + + thumb_func_start sub_807B870 +sub_807B870: @ 807B870 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x3A] + movs r3, 0x3A + ldrsh r0, [r2, r3] + cmp r0, 0 + bne _0807B89C + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r3] + ldr r1, _0807B898 @ =sub_807B8A4 + str r1, [r2, 0x1C] + adds r0, r2, 0 + bl _call_via_r1 + b _0807B8A0 + .align 2, 0 +_0807B898: .4byte sub_807B8A4 +_0807B89C: + subs r0, r1, 0x1 + strh r0, [r2, 0x3A] +_0807B8A0: + pop {r0} + bx r0 + thumb_func_end sub_807B870 + + thumb_func_start sub_807B8A4 +sub_807B8A4: @ 807B8A4 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x20 + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Sin + strh r0, [r4, 0x26] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x7F + bgt _0807B8D0 + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1D + b _0807B8D6 +_0807B8D0: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1F +_0807B8D6: + strb r0, [r1] + ldrh r0, [r4, 0x2E] + adds r0, 0x8 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x38] + adds r0, r1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x34 + bne _0807B918 + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _0807B912 + adds r0, r4, 0 + bl DestroySpriteAndFreeResources + b _0807B918 +_0807B912: + adds r0, r4, 0 + bl DestroySprite +_0807B918: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_807B8A4 + + thumb_func_start sub_807B920 +sub_807B920: @ 807B920 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r4, _0807B9B0 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 8 + ldr r1, _0807B9B4 @ =0xffe00000 + adds r0, r1 + lsrs r5, r0, 16 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 8 + ldr r2, _0807B9B8 @ =0xffdc0000 + adds r0, r2 + lsrs r4, r0, 16 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _0807B95E + lsls r0, r5, 16 + ldr r1, _0807B9BC @ =0xfffa0000 + adds r0, r1 + lsrs r5, r0, 16 +_0807B95E: + ldr r1, _0807B9C0 @ =REG_BLDCNT + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r2, 0x80 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _0807B9C4 @ =gSpriteTemplate_83931E0 + lsls r1, r5, 16 + asrs r1, 16 + lsls r2, r4, 16 + asrs r2, 16 + movs r3, 0x4 + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, _0807B9C8 @ =gSprites + adds r0, r1 + ldr r1, _0807B9CC @ =gSubspriteTables_83931D8 + bl SetSubspriteTables + ldr r1, _0807B9D0 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + strh r4, [r0, 0x26] + ldr r1, _0807B9D4 @ =sub_807B9D8 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0807B9B0: .4byte gUnknown_0202F7C9 +_0807B9B4: .4byte 0xffe00000 +_0807B9B8: .4byte 0xffdc0000 +_0807B9BC: .4byte 0xfffa0000 +_0807B9C0: .4byte REG_BLDCNT +_0807B9C4: .4byte gSpriteTemplate_83931E0 +_0807B9C8: .4byte gSprites +_0807B9CC: .4byte gSubspriteTables_83931D8 +_0807B9D0: .4byte gTasks +_0807B9D4: .4byte sub_807B9D8 + thumb_func_end sub_807B920 + + thumb_func_start sub_807B9D8 +sub_807B9D8: @ 807B9D8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0807BA04 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + adds r2, r0, 0 + strh r0, [r1, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _0807BA0C + ldr r0, _0807BA08 @ =sub_807BA24 + str r0, [r1] + movs r0, 0 + strh r0, [r1, 0xA] + b _0807BA1C + .align 2, 0 +_0807BA04: .4byte gTasks +_0807BA08: .4byte sub_807BA24 +_0807BA0C: + lsls r0, r2, 24 + lsrs r0, 24 + ldr r2, _0807BA20 @ =REG_BLDALPHA + movs r1, 0x10 + subs r1, r0 + lsls r1, 8 + orrs r1, r0 + strh r1, [r2] +_0807BA1C: + pop {r0} + bx r0 + .align 2, 0 +_0807BA20: .4byte REG_BLDALPHA + thumb_func_end sub_807B9D8 + + thumb_func_start sub_807BA24 +sub_807BA24: @ 807BA24 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0807BABC @ =0x0000271a + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _0807BAC0 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0xA] + adds r1, r0, 0x1 + strh r1, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xD + ble _0807BAB4 + ldrh r0, [r5, 0xC] + adds r0, 0x1 + movs r6, 0 + strh r0, [r5, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _0807BAB4 + ldr r3, _0807BAC4 @ =gPlttBufferFaded + lsls r2, 4 + mov r12, r2 + ldr r1, _0807BAC8 @ =0x0000010d + add r1, r12 + lsls r1, 1 + adds r1, r3 + ldrh r4, [r1] + movs r2, 0x87 + lsls r2, 1 + add r2, r12 + lsls r2, 1 + adds r2, r3 + ldrh r0, [r2] + strh r0, [r1] + ldr r0, _0807BACC @ =0x0000010f + add r0, r12 + lsls r0, 1 + adds r0, r3 + ldrh r1, [r0] + strh r1, [r2] + strh r4, [r0] + strh r6, [r5, 0xC] + ldrh r0, [r5, 0xE] + adds r0, 0x1 + strh r0, [r5, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _0807BAB4 + strh r6, [r5, 0xE] + strh r6, [r5, 0xA] + ldrh r0, [r5, 0x10] + adds r0, 0x1 + strh r0, [r5, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _0807BAB4 + movs r0, 0x9 + strh r0, [r5, 0xA] + ldr r0, _0807BAD0 @ =sub_807BAD4 + str r0, [r5] +_0807BAB4: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0807BABC: .4byte 0x0000271a +_0807BAC0: .4byte gTasks +_0807BAC4: .4byte gPlttBufferFaded +_0807BAC8: .4byte 0x0000010d +_0807BACC: .4byte 0x0000010f +_0807BAD0: .4byte sub_807BAD4 + thumb_func_end sub_807BA24 + + thumb_func_start sub_807BAD4 +sub_807BAD4: @ 807BAD4 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0807BB04 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r2, r1, r2 + ldrh r0, [r2, 0xA] + subs r0, 0x1 + adds r3, r0, 0 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _0807BB0C + ldr r0, _0807BB08 @ =sub_807BB24 + str r0, [r2] + movs r0, 0 + strh r0, [r2, 0xA] + b _0807BB1C + .align 2, 0 +_0807BB04: .4byte gTasks +_0807BB08: .4byte sub_807BB24 +_0807BB0C: + lsls r0, r3, 24 + lsrs r0, 24 + ldr r2, _0807BB20 @ =REG_BLDALPHA + movs r1, 0x10 + subs r1, r0 + lsls r1, 8 + orrs r1, r0 + strh r1, [r2] +_0807BB1C: + pop {r0} + bx r0 + .align 2, 0 +_0807BB20: .4byte REG_BLDALPHA + thumb_func_end sub_807BAD4 + + thumb_func_start sub_807BB24 +sub_807BB24: @ 807BB24 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + adds r2, r0, 0 + ldr r1, _0807BB64 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0, r1 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + movs r3, 0 + strh r0, [r1, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x25 + bne _0807BB6C + ldrh r0, [r1, 0x26] + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _0807BB68 @ =gSprites + adds r4, r0 + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite + b _0807BB7E + .align 2, 0 +_0807BB64: .4byte gTasks +_0807BB68: .4byte gSprites +_0807BB6C: + cmp r0, 0x27 + bne _0807BB7E + ldr r0, _0807BB84 @ =REG_BLDCNT + strh r3, [r0] + adds r0, 0x2 + strh r3, [r0] + adds r0, r2, 0 + bl move_anim_task_del +_0807BB7E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807BB84: .4byte REG_BLDCNT + thumb_func_end sub_807BB24 + + thumb_func_start sub_807BB88 +sub_807BB88: @ 807BB88 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r3, 0 + ldr r0, _0807BBA8 @ =0x02017840 + ldrh r0, [r0] + subs r0, 0xF + cmp r0, 0x2B + bls _0807BB9C + b _0807BD20 +_0807BB9C: + lsls r0, 2 + ldr r1, _0807BBAC @ =_0807BBB0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807BBA8: .4byte 0x02017840 +_0807BBAC: .4byte _0807BBB0 + .align 2, 0 +_0807BBB0: + .4byte _0807BC60 + .4byte _0807BC66 + .4byte _0807BC6C + .4byte _0807BC72 + .4byte _0807BC78 + .4byte _0807BC7E + .4byte _0807BC84 + .4byte _0807BC8A + .4byte _0807BC90 + .4byte _0807BC96 + .4byte _0807BC9C + .4byte _0807BCA2 + .4byte _0807BCA8 + .4byte _0807BCAE + .4byte _0807BD20 + .4byte _0807BD20 + .4byte _0807BD20 + .4byte _0807BD20 + .4byte _0807BD20 + .4byte _0807BD20 + .4byte _0807BD20 + .4byte _0807BD20 + .4byte _0807BD20 + .4byte _0807BD20 + .4byte _0807BCB4 + .4byte _0807BCB8 + .4byte _0807BCBC + .4byte _0807BCC0 + .4byte _0807BCC4 + .4byte _0807BCC8 + .4byte _0807BCCC + .4byte _0807BCD0 + .4byte _0807BCD8 + .4byte _0807BCE0 + .4byte _0807BCE8 + .4byte _0807BCF0 + .4byte _0807BCF8 + .4byte _0807BD00 + .4byte _0807BD20 + .4byte _0807BD20 + .4byte _0807BD08 + .4byte _0807BD0C + .4byte _0807BD10 + .4byte _0807BD18 +_0807BC60: + movs r5, 0 + movs r2, 0 + b _0807BD28 +_0807BC66: + movs r5, 0 + movs r2, 0x1 + b _0807BD28 +_0807BC6C: + movs r5, 0 + movs r2, 0x3 + b _0807BD28 +_0807BC72: + movs r5, 0 + movs r2, 0x5 + b _0807BD28 +_0807BC78: + movs r5, 0 + movs r2, 0x6 + b _0807BD28 +_0807BC7E: + movs r5, 0 + movs r2, 0x2 + b _0807BD28 +_0807BC84: + movs r5, 0 + movs r2, 0x4 + b _0807BD28 +_0807BC8A: + movs r5, 0x1 + movs r2, 0 + b _0807BD28 +_0807BC90: + movs r5, 0x1 + movs r2, 0x1 + b _0807BD28 +_0807BC96: + movs r5, 0x1 + movs r2, 0x3 + b _0807BD28 +_0807BC9C: + movs r5, 0x1 + movs r2, 0x5 + b _0807BD28 +_0807BCA2: + movs r5, 0x1 + movs r2, 0x6 + b _0807BD28 +_0807BCA8: + movs r5, 0x1 + movs r2, 0x2 + b _0807BD28 +_0807BCAE: + movs r5, 0x1 + movs r2, 0x4 + b _0807BD28 +_0807BCB4: + movs r5, 0 + b _0807BCD2 +_0807BCB8: + movs r5, 0 + b _0807BCDA +_0807BCBC: + movs r5, 0 + b _0807BCE2 +_0807BCC0: + movs r5, 0 + b _0807BCEA +_0807BCC4: + movs r5, 0 + b _0807BCF2 +_0807BCC8: + movs r5, 0 + b _0807BCFA +_0807BCCC: + movs r5, 0 + b _0807BD02 +_0807BCD0: + movs r5, 0x1 +_0807BCD2: + movs r2, 0 + movs r3, 0x1 + b _0807BD28 +_0807BCD8: + movs r5, 0x1 +_0807BCDA: + movs r2, 0x1 + movs r3, 0x1 + b _0807BD28 +_0807BCE0: + movs r5, 0x1 +_0807BCE2: + movs r2, 0x3 + movs r3, 0x1 + b _0807BD28 +_0807BCE8: + movs r5, 0x1 +_0807BCEA: + movs r2, 0x5 + movs r3, 0x1 + b _0807BD28 +_0807BCF0: + movs r5, 0x1 +_0807BCF2: + movs r2, 0x6 + movs r3, 0x1 + b _0807BD28 +_0807BCF8: + movs r5, 0x1 +_0807BCFA: + movs r2, 0x2 + movs r3, 0x1 + b _0807BD28 +_0807BD00: + movs r5, 0x1 +_0807BD02: + movs r2, 0x4 + movs r3, 0x1 + b _0807BD28 +_0807BD08: + movs r5, 0 + b _0807BD12 +_0807BD0C: + movs r5, 0 + b _0807BD1A +_0807BD10: + movs r5, 0x1 +_0807BD12: + movs r2, 0xFF + movs r3, 0 + b _0807BD28 +_0807BD18: + movs r5, 0x1 +_0807BD1A: + movs r2, 0xFF + movs r3, 0x1 + b _0807BD28 +_0807BD20: + adds r0, r4, 0 + bl move_anim_task_del + b _0807BD4A +_0807BD28: + ldr r0, _0807BD50 @ =gBattleAnimArgs + movs r1, 0 + strh r5, [r0] + strh r2, [r0, 0x2] + strh r1, [r0, 0x4] + strh r1, [r0, 0x6] + strh r3, [r0, 0x8] + ldr r1, _0807BD54 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0807BD58 @ =sub_80E32E0 + str r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 +_0807BD4A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0807BD50: .4byte gBattleAnimArgs +_0807BD54: .4byte gTasks +_0807BD58: .4byte sub_80E32E0 + thumb_func_end sub_807BB88 + + thumb_func_start move_anim_start_t2 +move_anim_start_t2: @ 807BD5C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r0, _0807BD98 @ =gUnknown_0202F7C8 + strb r4, [r0] + ldr r0, _0807BD9C @ =gUnknown_0202F7C9 + strb r4, [r0] + ldr r0, _0807BDA0 @ =gBattleAnims_StatusConditions + movs r2, 0 + bl move_something + ldr r0, _0807BDA4 @ =sub_807BDAC + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0807BDA8 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807BD98: .4byte gUnknown_0202F7C8 +_0807BD9C: .4byte gUnknown_0202F7C9 +_0807BDA0: .4byte gBattleAnims_StatusConditions +_0807BDA4: .4byte sub_807BDAC +_0807BDA8: .4byte gTasks + thumb_func_end move_anim_start_t2 + + thumb_func_start sub_807BDAC +sub_807BDAC: @ 807BDAC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0807BDF0 @ =gUnknown_0202F7AC + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _0807BDF4 @ =gUnknown_0202F7B1 + ldrb r0, [r0] + cmp r0, 0 + bne _0807BDEA + ldr r1, _0807BDF8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0x8 + ldrsh r0, [r0, r1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + ldr r0, _0807BDFC @ =0x02017810 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, 0 + bl DestroyTask +_0807BDEA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807BDF0: .4byte gUnknown_0202F7AC +_0807BDF4: .4byte gUnknown_0202F7B1 +_0807BDF8: .4byte gTasks +_0807BDFC: .4byte 0x02017810 + thumb_func_end sub_807BDAC + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_anim_80A7E7C.s b/asm/battle_anim_80A7E7C.s deleted file mode 100644 index 362acec8b..000000000 --- a/asm/battle_anim_80A7E7C.s +++ /dev/null @@ -1,2589 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_80A7E7C -sub_80A7E7C: @ 80A7E7C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080A7E9C @ =gUnknown_03004B00 - ldrb r0, [r4] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - bne _080A7EA0 - adds r0, r5, 0 - bl move_anim_task_del - b _080A7EDC - .align 2, 0 -_080A7E9C: .4byte gUnknown_03004B00 -_080A7EA0: - ldr r1, _080A7EE4 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r4, 0x2] - strh r1, [r0, 0x24] - ldrh r1, [r4, 0x4] - strh r1, [r0, 0x26] - ldr r1, _080A7EE8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x8] - ldrh r1, [r4, 0x6] - strh r1, [r0, 0xA] - ldrh r1, [r4, 0x8] - strh r1, [r0, 0xC] - ldrh r1, [r4, 0x8] - strh r1, [r0, 0xE] - ldrh r1, [r4, 0x2] - strh r1, [r0, 0x10] - ldrh r1, [r4, 0x4] - strh r1, [r0, 0x12] - ldr r1, _080A7EEC @ =sub_80A7EF0 - str r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 -_080A7EDC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A7EE4: .4byte gSprites -_080A7EE8: .4byte gTasks -_080A7EEC: .4byte sub_80A7EF0 - thumb_func_end sub_80A7E7C - - thumb_func_start sub_80A7EF0 -sub_80A7EF0: @ 80A7EF0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080A7F2C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r3, r0, r1 - ldrh r0, [r3, 0xE] - movs r2, 0xE - ldrsh r5, [r3, r2] - adds r7, r1, 0 - cmp r5, 0 - bne _080A7F96 - ldr r2, _080A7F30 @ =gSprites - movs r6, 0x8 - ldrsh r1, [r3, r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - movs r6, 0x24 - ldrsh r0, [r1, r6] - adds r6, r2, 0 - cmp r0, 0 - bne _080A7F34 - ldrh r0, [r3, 0x10] - strh r0, [r1, 0x24] - b _080A7F36 - .align 2, 0 -_080A7F2C: .4byte gTasks -_080A7F30: .4byte gSprites -_080A7F34: - strh r5, [r1, 0x24] -_080A7F36: - lsls r2, r4, 2 - adds r0, r2, r4 - lsls r0, 3 - adds r3, r0, r7 - movs r0, 0x8 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r6 - movs r5, 0x26 - ldrsh r0, [r1, r5] - cmp r0, 0 - bne _080A7F56 - ldrh r0, [r3, 0x12] - b _080A7F58 -_080A7F56: - movs r0, 0 -_080A7F58: - strh r0, [r1, 0x26] - adds r0, r2, r4 - lsls r0, 3 - adds r2, r0, r7 - ldrh r0, [r2, 0xC] - strh r0, [r2, 0xE] - ldrh r0, [r2, 0xA] - subs r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r3, r0, 16 - cmp r3, 0 - bne _080A7F9A - movs r0, 0x8 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r3, [r0, 0x24] - movs r5, 0x8 - ldrsh r1, [r2, r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r3, [r0, 0x26] - adds r0, r4, 0 - bl move_anim_task_del - b _080A7F9A -_080A7F96: - subs r0, 0x1 - strh r0, [r3, 0xE] -_080A7F9A: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A7EF0 - - thumb_func_start sub_80A7FA0 -sub_80A7FA0: @ 80A7FA0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - ldr r2, _080A7FC8 @ =gUnknown_03004B00 - ldrh r0, [r2] - movs r3, 0 - ldrsh r1, [r2, r3] - cmp r1, 0x3 - bgt _080A7FCC - lsls r0, 24 - lsrs r0, 24 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xFF - bne _080A8022 - b _080A8026 - .align 2, 0 -_080A7FC8: .4byte gUnknown_03004B00 -_080A7FCC: - cmp r1, 0x8 - beq _080A8018 - movs r1, 0 - ldrsh r0, [r2, r1] - cmp r0, 0x5 - beq _080A7FEC - cmp r0, 0x5 - bgt _080A7FE2 - cmp r0, 0x4 - beq _080A7FE8 - b _080A7FF4 -_080A7FE2: - cmp r0, 0x6 - beq _080A7FF0 - b _080A7FF4 -_080A7FE8: - movs r0, 0 - b _080A7FF6 -_080A7FEC: - movs r0, 0x2 - b _080A7FF6 -_080A7FF0: - movs r0, 0x1 - b _080A7FF6 -_080A7FF4: - movs r0, 0x3 -_080A7FF6: - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - bne _080A800C - movs r6, 0x1 -_080A800C: - ldr r0, _080A8014 @ =gUnknown_02024BE0 - adds r0, r4, r0 - b _080A8020 - .align 2, 0 -_080A8014: .4byte gUnknown_02024BE0 -_080A8018: - ldr r1, _080A8030 @ =gUnknown_02024BE0 - ldr r0, _080A8034 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - adds r0, r1 -_080A8020: - ldrb r3, [r0] -_080A8022: - cmp r6, 0 - beq _080A8038 -_080A8026: - adds r0, r5, 0 - bl move_anim_task_del - b _080A8076 - .align 2, 0 -_080A8030: .4byte gUnknown_02024BE0 -_080A8034: .4byte gUnknown_0202F7C8 -_080A8038: - ldr r1, _080A807C @ =gSprites - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldr r2, _080A8080 @ =gUnknown_03004B00 - ldrh r1, [r2, 0x2] - strh r1, [r0, 0x24] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0x26] - ldr r1, _080A8084 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r3, [r0, 0x8] - ldrh r1, [r2, 0x6] - strh r1, [r0, 0xA] - ldrh r1, [r2, 0x8] - strh r1, [r0, 0xC] - ldrh r1, [r2, 0x8] - strh r1, [r0, 0xE] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0x10] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0x12] - ldr r1, _080A8088 @ =sub_80A808C - str r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 -_080A8076: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A807C: .4byte gSprites -_080A8080: .4byte gUnknown_03004B00 -_080A8084: .4byte gTasks -_080A8088: .4byte sub_80A808C - thumb_func_end sub_80A7FA0 - - thumb_func_start sub_80A808C -sub_80A808C: @ 80A808C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080A80D0 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r3, r0, r1 - ldrh r2, [r3, 0xE] - movs r4, 0xE - ldrsh r0, [r3, r4] - mov r12, r1 - cmp r0, 0 - bne _080A8144 - ldr r2, _080A80D4 @ =gSprites - movs r7, 0x8 - ldrsh r1, [r3, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - movs r0, 0x24 - ldrsh r1, [r4, r0] - ldrh r5, [r3, 0x10] - movs r7, 0x10 - ldrsh r0, [r3, r7] - adds r7, r2, 0 - cmp r1, r0 - bne _080A80D8 - negs r0, r5 - strh r0, [r4, 0x24] - b _080A80DA - .align 2, 0 -_080A80D0: .4byte gTasks -_080A80D4: .4byte gSprites -_080A80D8: - strh r5, [r4, 0x24] -_080A80DA: - lsls r3, r6, 2 - adds r1, r3, r6 - lsls r1, 3 - add r1, r12 - movs r0, 0x8 - ldrsh r2, [r1, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r7 - movs r0, 0x26 - ldrsh r2, [r4, r0] - mov r8, r2 - ldrh r5, [r1, 0x12] - movs r2, 0x12 - ldrsh r0, [r1, r2] - cmp r8, r0 - bne _080A8104 - negs r0, r5 - strh r0, [r4, 0x26] - b _080A8106 -_080A8104: - strh r5, [r4, 0x26] -_080A8106: - adds r0, r3, r6 - lsls r0, 3 - mov r4, r12 - adds r3, r0, r4 - ldrh r0, [r3, 0xC] - strh r0, [r3, 0xE] - ldrh r0, [r3, 0xA] - subs r0, 0x1 - strh r0, [r3, 0xA] - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - bne _080A8148 - movs r0, 0x8 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x24] - movs r4, 0x8 - ldrsh r1, [r3, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - adds r0, r6, 0 - bl move_anim_task_del - b _080A8148 -_080A8144: - subs r0, r2, 0x1 - strh r0, [r3, 0xE] -_080A8148: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A808C - - thumb_func_start sub_80A8154 -sub_80A8154: @ 80A8154 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080A8174 @ =gUnknown_03004B00 - ldrb r0, [r4] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xFF - bne _080A8178 - adds r0, r5, 0 - bl move_anim_task_del - b _080A81C6 - .align 2, 0 -_080A8174: .4byte gUnknown_03004B00 -_080A8178: - ldr r0, _080A81CC @ =gSprites - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r4, 0x2] - ldrh r2, [r1, 0x24] - adds r0, r2 - movs r2, 0 - strh r0, [r1, 0x24] - ldrh r0, [r4, 0x4] - ldrh r6, [r1, 0x26] - adds r0, r6 - strh r0, [r1, 0x26] - ldr r0, _080A81D0 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - strh r3, [r1, 0x8] - strh r2, [r1, 0xA] - ldrh r0, [r4, 0x6] - strh r0, [r1, 0xC] - strh r2, [r1, 0xE] - ldrh r0, [r4, 0x8] - strh r0, [r1, 0x10] - movs r2, 0x2 - ldrsh r0, [r4, r2] - lsls r0, 1 - strh r0, [r1, 0x12] - movs r6, 0x4 - ldrsh r0, [r4, r6] - lsls r0, 1 - strh r0, [r1, 0x14] - ldr r2, _080A81D4 @ =sub_80A81D8 - str r2, [r1] - adds r0, r5, 0 - bl _call_via_r2 -_080A81C6: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A81CC: .4byte gSprites -_080A81D0: .4byte gTasks -_080A81D4: .4byte sub_80A81D8 - thumb_func_end sub_80A8154 - - thumb_func_start sub_80A81D8 -sub_80A81D8: @ 80A81D8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080A8230 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r2, [r4, 0xE] - movs r3, 0xE - ldrsh r0, [r4, r3] - adds r6, r1, 0 - cmp r0, 0 - beq _080A81F6 - b _080A8308 -_080A81F6: - ldrh r1, [r4, 0xA] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A8238 - ldr r2, _080A8234 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x12] - ldrh r3, [r0, 0x24] - adds r1, r3 - strh r1, [r0, 0x24] - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x14] - ldrh r3, [r0, 0x26] - adds r1, r3 - strh r1, [r0, 0x26] - adds r3, r2, 0 - b _080A8262 - .align 2, 0 -_080A8230: .4byte gTasks -_080A8234: .4byte gSprites -_080A8238: - ldr r3, _080A82C4 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x24] - ldrh r2, [r4, 0x12] - subs r1, r2 - strh r1, [r0, 0x24] - movs r2, 0x8 - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x26] - ldrh r2, [r4, 0x14] - subs r1, r2 - strh r1, [r0, 0x26] -_080A8262: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r6 - ldrh r0, [r4, 0x10] - strh r0, [r4, 0xE] - ldrh r0, [r4, 0xA] - adds r2, r0, 0x1 - strh r2, [r4, 0xA] - lsls r0, r2, 16 - asrs r0, 16 - movs r6, 0xC - ldrsh r1, [r4, r6] - cmp r0, r1 - blt _080A830C - movs r0, 0x1 - ands r2, r0 - cmp r2, 0 - beq _080A82C8 - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - movs r2, 0x12 - ldrsh r0, [r4, r2] - lsrs r2, r0, 31 - adds r0, r2 - asrs r0, 1 - ldrh r6, [r1, 0x24] - adds r0, r6 - strh r0, [r1, 0x24] - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - movs r2, 0x14 - ldrsh r0, [r4, r2] - lsrs r2, r0, 31 - adds r0, r2 - asrs r0, 1 - ldrh r3, [r1, 0x26] - adds r0, r3 - strh r0, [r1, 0x26] - b _080A8300 - .align 2, 0 -_080A82C4: .4byte gSprites -_080A82C8: - movs r6, 0x8 - ldrsh r0, [r4, r6] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - ldrh r0, [r2, 0x24] - subs r0, r1 - strh r0, [r2, 0x24] - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - movs r3, 0x14 - ldrsh r1, [r4, r3] - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - ldrh r0, [r2, 0x26] - subs r0, r1 - strh r0, [r2, 0x26] -_080A8300: - adds r0, r5, 0 - bl move_anim_task_del - b _080A830C -_080A8308: - subs r0, r2, 0x1 - strh r0, [r4, 0xE] -_080A830C: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A81D8 - - thumb_func_start sub_80A8314 -sub_80A8314: @ 80A8314 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _080A8364 @ =gUnknown_03004B00 - ldrb r0, [r5] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A8368 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r2, [r5, 0x2] - strh r2, [r1, 0x24] - ldr r2, _080A836C @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r2 - strh r0, [r1, 0x8] - ldrh r0, [r5, 0x2] - strh r0, [r1, 0xA] - ldrh r0, [r5, 0x4] - strh r0, [r1, 0xC] - ldrh r0, [r5, 0x6] - strh r0, [r1, 0xE] - ldrh r0, [r5, 0x8] - strh r0, [r1, 0x10] - ldr r2, _080A8370 @ =sub_80A8374 - str r2, [r1] - adds r0, r4, 0 - bl _call_via_r2 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A8364: .4byte gUnknown_03004B00 -_080A8368: .4byte gSprites -_080A836C: .4byte gTasks -_080A8370: .4byte sub_80A8374 - thumb_func_end sub_80A8314 - - thumb_func_start sub_80A8374 -sub_80A8374: @ 80A8374 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, _080A8400 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r3, r0, r2 - ldrb r5, [r3, 0x8] - ldrh r4, [r3, 0xA] - ldrh r1, [r3, 0x18] - adds r0, r1, 0x1 - strh r0, [r3, 0x18] - movs r7, 0xC - ldrsh r0, [r3, r7] - lsls r1, 16 - asrs r1, 16 - mov r12, r2 - ldr r7, _080A8404 @ =gSprites - cmp r0, r1 - bne _080A83C6 - movs r0, 0 - strh r0, [r3, 0x18] - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r1, r0, r7 - ldrh r3, [r1, 0x24] - movs r0, 0x24 - ldrsh r2, [r1, r0] - lsls r0, r4, 16 - asrs r0, 16 - cmp r2, r0 - bne _080A83BE - negs r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 -_080A83BE: - lsls r0, r4, 16 - asrs r0, 16 - adds r0, r3 - strh r0, [r1, 0x24] -_080A83C6: - lsls r2, r6, 2 - adds r2, r6 - lsls r2, 3 - add r2, r12 - strh r4, [r2, 0xA] - ldrh r1, [r2, 0xE] - ldrh r0, [r2, 0x1A] - adds r1, r0 - strh r1, [r2, 0x1A] - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r0, r7 - lsls r1, 16 - asrs r1, 24 - strh r1, [r0, 0x26] - ldrh r0, [r2, 0x10] - subs r0, 0x1 - strh r0, [r2, 0x10] - lsls r0, 16 - cmp r0, 0 - bne _080A83F8 - adds r0, r6, 0 - bl move_anim_task_del -_080A83F8: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A8400: .4byte gTasks -_080A8404: .4byte gSprites - thumb_func_end sub_80A8374 - - thumb_func_start sub_80A8408 -sub_80A8408: @ 80A8408 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0x1 - ldr r4, _080A847C @ =gUnknown_03004B00 - ldrb r0, [r4] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r7, r0, 24 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x5 - ble _080A842C - movs r0, 0x5 - strh r0, [r4, 0x8] -_080A842C: - movs r1, 0 - movs r2, 0x8 - ldrsh r0, [r4, r2] - adds r3, r4, 0 - ldr r2, _080A8480 @ =gTasks - mov r12, r2 - lsls r4, r5, 2 - ldr r2, _080A8484 @ =sub_80A8488 - mov r8, r2 - cmp r1, r0 - bge _080A8452 - adds r2, r0, 0 -_080A8444: - lsls r0, r6, 25 - lsrs r6, r0, 24 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, r2 - blt _080A8444 -_080A8452: - adds r0, r4, r5 - lsls r0, 3 - add r0, r12 - strh r7, [r0, 0x8] - ldrh r1, [r3, 0x2] - strh r1, [r0, 0xA] - ldrh r1, [r3, 0x4] - strh r1, [r0, 0xC] - ldrh r1, [r3, 0x6] - strh r1, [r0, 0xE] - strh r6, [r0, 0x10] - mov r1, r8 - str r1, [r0] - adds r0, r5, 0 - bl _call_via_r8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A847C: .4byte gUnknown_03004B00 -_080A8480: .4byte gTasks -_080A8484: .4byte sub_80A8488 - thumb_func_end sub_80A8408 - - thumb_func_start sub_80A8488 -sub_80A8488: @ 80A8488 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _080A84F8 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldrb r4, [r5, 0x8] - movs r1, 0x12 - ldrsh r0, [r5, r1] - movs r2, 0xA - ldrsh r1, [r5, r2] - bl Sin - ldr r2, _080A84FC @ =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r4, r1, r2 - strh r0, [r4, 0x24] - movs r1, 0x12 - ldrsh r0, [r5, r1] - movs r2, 0xC - ldrsh r1, [r5, r2] - bl Cos - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r1, [r5, 0xC] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r5, 0x10] - ldrh r1, [r5, 0x12] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x12] - cmp r0, 0 - bne _080A84E0 - ldrh r0, [r5, 0xE] - subs r0, 0x1 - strh r0, [r5, 0xE] -_080A84E0: - movs r2, 0xE - ldrsh r0, [r5, r2] - cmp r0, 0 - bne _080A84F2 - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - adds r0, r6, 0 - bl move_anim_task_del -_080A84F2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A84F8: .4byte gTasks -_080A84FC: .4byte gSprites - thumb_func_end sub_80A8488 - - thumb_func_start sub_80A8500 -sub_80A8500: @ 80A8500 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A8528 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080A851C - ldr r1, _080A852C @ =gUnknown_03004B00 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] -_080A851C: - adds r0, r4, 0 - bl sub_80A8408 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A8528: .4byte gUnknown_0202F7C8 -_080A852C: .4byte gUnknown_03004B00 - thumb_func_end sub_80A8500 - - thumb_func_start sub_80A8530 -sub_80A8530: @ 80A8530 - push {r4,lr} - adds r4, r0, 0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080A8558 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080A8560 - ldr r1, _080A855C @ =gUnknown_03004B00 - ldrh r0, [r1, 0x2] - negs r0, r0 - b _080A8564 - .align 2, 0 -_080A8558: .4byte gUnknown_0202F7C8 -_080A855C: .4byte gUnknown_03004B00 -_080A8560: - ldr r1, _080A8590 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x2] -_080A8564: - strh r0, [r4, 0x30] - ldrh r2, [r1] - movs r0, 0 - strh r2, [r4, 0x2E] - strh r0, [r4, 0x32] - ldr r1, _080A8594 @ =gUnknown_02024BE0 - ldr r0, _080A8598 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r4, 0x34] - strh r2, [r4, 0x36] - ldr r1, _080A859C @ =sub_80A85A4 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080A85A0 @ =sub_8078458 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A8590: .4byte gUnknown_03004B00 -_080A8594: .4byte gUnknown_02024BE0 -_080A8598: .4byte gUnknown_0202F7C8 -_080A859C: .4byte sub_80A85A4 -_080A85A0: .4byte sub_8078458 - thumb_func_end sub_80A8530 - - thumb_func_start sub_80A85A4 -sub_80A85A4: @ 80A85A4 - push {lr} - ldrh r1, [r0, 0x36] - strh r1, [r0, 0x2E] - ldrh r1, [r0, 0x30] - negs r1, r1 - strh r1, [r0, 0x30] - ldr r1, _080A85C0 @ =sub_8078458 - str r1, [r0, 0x1C] - ldr r1, _080A85C4 @ =move_anim_8072740 - bl oamt_set_x3A_32 - pop {r0} - bx r0 - .align 2, 0 -_080A85C0: .4byte sub_8078458 -_080A85C4: .4byte move_anim_8072740 - thumb_func_end sub_80A85A4 - - thumb_func_start sub_80A85C8 -sub_80A85C8: @ 80A85C8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r5, _080A8608 @ =gUnknown_03004B00 - ldrb r0, [r5, 0x4] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - ldrh r2, [r5] - movs r1, 0 - strh r2, [r4, 0x2E] - strh r1, [r4, 0x30] - ldrh r1, [r5, 0x2] - strh r1, [r4, 0x32] - strh r0, [r4, 0x34] - strh r2, [r4, 0x36] - ldr r1, _080A860C @ =sub_80A8614 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080A8610 @ =sub_8078458 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A8608: .4byte gUnknown_03004B00 -_080A860C: .4byte sub_80A8614 -_080A8610: .4byte sub_8078458 - thumb_func_end sub_80A85C8 - - thumb_func_start sub_80A8614 -sub_80A8614: @ 80A8614 - push {lr} - ldrh r1, [r0, 0x36] - strh r1, [r0, 0x2E] - ldrh r1, [r0, 0x32] - negs r1, r1 - strh r1, [r0, 0x32] - ldr r1, _080A8630 @ =sub_8078458 - str r1, [r0, 0x1C] - ldr r1, _080A8634 @ =move_anim_8072740 - bl oamt_set_x3A_32 - pop {r0} - bx r0 - .align 2, 0 -_080A8630: .4byte sub_8078458 -_080A8634: .4byte move_anim_8072740 - thumb_func_end sub_80A8614 - - thumb_func_start sub_80A8638 -sub_80A8638: @ 80A8638 - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r0, 0 - ldr r0, _080A8650 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A865C - ldr r1, _080A8654 @ =gUnknown_02024BE0 - ldr r0, _080A8658 @ =gUnknown_0202F7C8 - b _080A8660 - .align 2, 0 -_080A8650: .4byte gUnknown_03004B00 -_080A8654: .4byte gUnknown_02024BE0 -_080A8658: .4byte gUnknown_0202F7C8 -_080A865C: - ldr r1, _080A86C0 @ =gUnknown_02024BE0 - ldr r0, _080A86C4 @ =gUnknown_0202F7C9 -_080A8660: - ldrb r0, [r0] - adds r0, r1 - ldrb r7, [r0] - ldr r5, _080A86C8 @ =gUnknown_03004B00 - ldrh r0, [r5, 0x4] - movs r3, 0 - strh r0, [r6, 0x2E] - ldr r0, _080A86CC @ =gSprites - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - adds r4, r0 - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r6, 0x30] - ldrh r0, [r4, 0x20] - strh r0, [r6, 0x32] - ldrh r0, [r4, 0x26] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r6, 0x34] - ldrh r0, [r4, 0x22] - strh r0, [r6, 0x36] - adds r0, r6, 0 - str r3, [sp] - bl sub_8078A5C - ldr r3, [sp] - strh r3, [r6, 0x34] - strh r3, [r6, 0x36] - ldrh r0, [r4, 0x24] - strh r0, [r6, 0x38] - ldrh r0, [r4, 0x26] - strh r0, [r6, 0x3A] - adds r2, r6, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r1, 0x2 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080A86D0 - strh r3, [r6, 0x32] - b _080A86D6 - .align 2, 0 -_080A86C0: .4byte gUnknown_02024BE0 -_080A86C4: .4byte gUnknown_0202F7C9 -_080A86C8: .4byte gUnknown_03004B00 -_080A86CC: .4byte gSprites -_080A86D0: - cmp r0, 0x2 - bne _080A86D6 - strh r3, [r6, 0x30] -_080A86D6: - ldr r0, _080A86EC @ =gUnknown_03004B00 - ldrh r1, [r0, 0x2] - lsls r0, r7, 8 - orrs r0, r1 - strh r0, [r6, 0x3C] - ldr r0, _080A86F0 @ =sub_80A86F4 - str r0, [r6, 0x1C] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A86EC: .4byte gUnknown_03004B00 -_080A86F0: .4byte sub_80A86F4 - thumb_func_end sub_80A8638 - - thumb_func_start sub_80A86F4 -sub_80A86F4: @ 80A86F4 - push {r4-r6,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x3C] - lsls r1, r0, 24 - lsrs r4, r1, 24 - adds r5, r4, 0 - lsls r0, 16 - asrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _080A8730 @ =gSprites - adds r3, r1, r0 - ldrh r0, [r2, 0x2E] - movs r6, 0x2E - ldrsh r1, [r2, r6] - cmp r1, 0 - bne _080A8734 - cmp r4, 0x1 - bhi _080A871E - strh r1, [r3, 0x24] -_080A871E: - cmp r5, 0x2 - beq _080A8726 - cmp r5, 0 - bne _080A8728 -_080A8726: - strh r1, [r3, 0x26] -_080A8728: - adds r0, r2, 0 - bl move_anim_8072740 - b _080A875E - .align 2, 0 -_080A8730: .4byte gSprites -_080A8734: - subs r0, 0x1 - strh r0, [r2, 0x2E] - ldrh r1, [r2, 0x30] - ldrh r0, [r2, 0x34] - adds r1, r0 - strh r1, [r2, 0x34] - ldrh r0, [r2, 0x32] - ldrh r4, [r2, 0x36] - adds r0, r4 - strh r0, [r2, 0x36] - lsls r1, 16 - asrs r1, 24 - ldrh r6, [r2, 0x38] - adds r1, r6 - strh r1, [r3, 0x24] - ldrh r0, [r2, 0x36] - lsls r0, 16 - asrs r0, 24 - ldrh r2, [r2, 0x3A] - adds r0, r2 - strh r0, [r3, 0x26] -_080A875E: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A86F4 - - thumb_func_start sub_80A8764 -sub_80A8764: @ 80A8764 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _080A8778 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A8780 - ldr r0, _080A877C @ =gUnknown_0202F7C8 - b _080A8782 - .align 2, 0 -_080A8778: .4byte gUnknown_03004B00 -_080A877C: .4byte gUnknown_0202F7C8 -_080A8780: - ldr r0, _080A8800 @ =gUnknown_0202F7C9 -_080A8782: - ldrb r2, [r0] - ldr r0, _080A8804 @ =gUnknown_02024BE0 - adds r0, r2, r0 - ldrb r6, [r0] - adds r0, r2, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080A87AC - ldr r1, _080A8808 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - movs r2, 0x6 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - bne _080A87AC - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080A87AC: - ldr r2, _080A8808 @ =gUnknown_03004B00 - ldrh r0, [r2, 0x8] - movs r4, 0 - strh r0, [r5, 0x2E] - ldr r0, _080A880C @ =gSprites - lsls r1, r6, 4 - adds r1, r6 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x20] - strh r0, [r5, 0x30] - ldrh r0, [r2, 0x2] - ldrh r3, [r1, 0x20] - adds r0, r3 - strh r0, [r5, 0x32] - ldrh r0, [r1, 0x22] - strh r0, [r5, 0x34] - ldrh r0, [r2, 0x4] - ldrh r1, [r1, 0x22] - adds r0, r1 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_8078A5C - strh r4, [r5, 0x34] - strh r4, [r5, 0x36] - strh r6, [r5, 0x38] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080A8810 @ =move_anim_8072740 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080A8814 @ =sub_80784A8 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A8800: .4byte gUnknown_0202F7C9 -_080A8804: .4byte gUnknown_02024BE0 -_080A8808: .4byte gUnknown_03004B00 -_080A880C: .4byte gSprites -_080A8810: .4byte move_anim_8072740 -_080A8814: .4byte sub_80784A8 - thumb_func_end sub_80A8764 - - thumb_func_start sub_80A8818 -sub_80A8818: @ 80A8818 - push {r4-r7,lr} - adds r6, r0, 0 - adds r2, r6, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080A8838 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A8840 - ldr r0, _080A883C @ =gUnknown_0202F7C8 - b _080A8842 - .align 2, 0 -_080A8838: .4byte gUnknown_03004B00 -_080A883C: .4byte gUnknown_0202F7C8 -_080A8840: - ldr r0, _080A88C0 @ =gUnknown_0202F7C9 -_080A8842: - ldrb r1, [r0] - ldr r0, _080A88C4 @ =gUnknown_02024BE0 - adds r0, r1, r0 - ldrb r7, [r0] - adds r0, r1, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080A886C - ldr r1, _080A88C8 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - movs r2, 0x6 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - bne _080A886C - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080A886C: - ldr r5, _080A88C8 @ =gUnknown_03004B00 - ldrh r0, [r5, 0x8] - strh r0, [r6, 0x2E] - ldr r0, _080A88CC @ =gSprites - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - adds r4, r0 - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r6, 0x30] - ldrh r1, [r5, 0x2] - adds r0, r1 - strh r0, [r6, 0x32] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r6, 0x34] - ldrh r1, [r5, 0x4] - adds r0, r1 - strh r0, [r6, 0x36] - adds r0, r6, 0 - bl sub_8078A5C - ldrh r0, [r4, 0x24] - lsls r0, 8 - strh r0, [r6, 0x34] - ldrh r0, [r4, 0x26] - lsls r0, 8 - strh r0, [r6, 0x36] - strh r7, [r6, 0x38] - ldrh r0, [r5, 0xA] - strh r0, [r6, 0x3A] - lsls r0, 16 - cmp r0, 0 - bne _080A88D4 - ldr r1, _080A88D0 @ =move_anim_8072740 - adds r0, r6, 0 - bl oamt_set_x3A_32 - b _080A88DC - .align 2, 0 -_080A88C0: .4byte gUnknown_0202F7C9 -_080A88C4: .4byte gUnknown_02024BE0 -_080A88C8: .4byte gUnknown_03004B00 -_080A88CC: .4byte gSprites -_080A88D0: .4byte move_anim_8072740 -_080A88D4: - ldr r1, _080A88E8 @ =sub_80A88F0 - adds r0, r6, 0 - bl oamt_set_x3A_32 -_080A88DC: - ldr r0, _080A88EC @ =sub_80784A8 - str r0, [r6, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A88E8: .4byte sub_80A88F0 -_080A88EC: .4byte sub_80784A8 - thumb_func_end sub_80A8818 - - thumb_func_start sub_80A88F0 -sub_80A88F0: @ 80A88F0 - push {r4,lr} - ldr r4, _080A891C @ =gSprites - movs r1, 0x38 - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - movs r3, 0 - strh r3, [r1, 0x24] - movs r1, 0x38 - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r3, [r1, 0x26] - bl move_anim_8072740 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A891C: .4byte gSprites - thumb_func_end sub_80A88F0 - - thumb_func_start sub_80A8920 -sub_80A8920: @ 80A8920 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, _080A89A4 @ =gUnknown_03004B00 - movs r0, 0x6 - ldrsh r1, [r5, r0] - movs r0, 0x80 - lsls r0, 8 - bl __divsi3 - lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, _080A89A8 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080A8952 - ldrh r0, [r5, 0x2] - negs r0, r0 - strh r0, [r5, 0x2] - ldrh r0, [r5, 0xA] - negs r0, r0 - strh r0, [r5, 0xA] -_080A8952: - ldrb r0, [r5] - bl obj_id_for_side_relative_to_move - ldr r1, _080A89AC @ =gTasks - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 3 - adds r4, r1 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x8] - movs r1, 0x2 - ldrsh r0, [r5, r1] - lsls r0, 8 - movs r2, 0x6 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r4, 0xA] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0xC] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0xE] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x10] - movs r1, 0xA - ldrsh r0, [r5, r1] - lsls r0, 8 - movs r2, 0xC - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r4, 0x12] - ldrh r0, [r5, 0xC] - strh r0, [r4, 0x14] - strh r7, [r4, 0x16] - ldr r0, _080A89B0 @ =sub_80A89B4 - str r0, [r4] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A89A4: .4byte gUnknown_03004B00 -_080A89A8: .4byte gUnknown_0202F7C8 -_080A89AC: .4byte gTasks -_080A89B0: .4byte sub_80A89B4 - thumb_func_end sub_80A8920 - - thumb_func_start sub_80A89B4 -sub_80A89B4: @ 80A89B4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A8A0C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r5, r1, r2 - ldrb r1, [r5, 0x8] - ldrh r0, [r5, 0xA] - ldrh r2, [r5, 0x1E] - adds r0, r2 - strh r0, [r5, 0x1E] - ldr r2, _080A8A10 @ =gSprites - lsls r4, r1, 4 - adds r4, r1 - lsls r4, 2 - adds r4, r2 - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - ldrh r0, [r5, 0x1C] - lsrs r0, 8 - movs r2, 0xC - ldrsh r1, [r5, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r5, 0x16] - ldrh r1, [r5, 0x1C] - adds r0, r1 - strh r0, [r5, 0x1C] - ldrh r0, [r5, 0xE] - subs r0, 0x1 - strh r0, [r5, 0xE] - lsls r0, 16 - cmp r0, 0 - bne _080A8A04 - ldr r0, _080A8A14 @ =sub_80A8A18 - str r0, [r5] -_080A8A04: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A8A0C: .4byte gTasks -_080A8A10: .4byte gSprites -_080A8A14: .4byte sub_80A8A18 - thumb_func_end sub_80A89B4 - - thumb_func_start sub_80A8A18 -sub_80A8A18: @ 80A8A18 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _080A8A3C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r1, [r4, 0x10] - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080A8A40 - subs r0, r1, 0x1 - strh r0, [r4, 0x10] - b _080A8A74 - .align 2, 0 -_080A8A3C: .4byte gTasks -_080A8A40: - ldrb r0, [r4, 0x8] - ldrh r2, [r4, 0x12] - ldrh r1, [r4, 0x20] - adds r2, r1 - strh r2, [r4, 0x20] - ldr r3, _080A8A7C @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - lsls r2, 16 - asrs r2, 24 - ldrh r0, [r4, 0x1E] - lsls r0, 16 - asrs r0, 24 - adds r2, r0 - strh r2, [r1, 0x24] - ldrh r0, [r4, 0x14] - subs r0, 0x1 - strh r0, [r4, 0x14] - lsls r0, 16 - cmp r0, 0 - bne _080A8A74 - adds r0, r5, 0 - bl move_anim_task_del -_080A8A74: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A8A7C: .4byte gSprites - thumb_func_end sub_80A8A18 - - thumb_func_start sub_80A8A80 -sub_80A8A80: @ 80A8A80 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080A8AA4 @ =gUnknown_03004B00 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0x2 - beq _080A8AAE - cmp r0, 0x2 - bgt _080A8AA8 - cmp r0, 0 - blt _080A8AE0 - ldrb r0, [r1] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r2, r0, 24 - b _080A8AE8 - .align 2, 0 -_080A8AA4: .4byte gUnknown_03004B00 -_080A8AA8: - cmp r0, 0x3 - beq _080A8AB8 - b _080A8AE0 -_080A8AAE: - ldr r5, _080A8AB4 @ =gUnknown_0202F7C8 - b _080A8ABA - .align 2, 0 -_080A8AB4: .4byte gUnknown_0202F7C8 -_080A8AB8: - ldr r5, _080A8AD8 @ =gUnknown_0202F7C9 -_080A8ABA: - ldrb r0, [r5] - movs r4, 0x2 - eors r0, r4 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080A8AE0 - ldr r1, _080A8ADC @ =gUnknown_02024BE0 - ldrb r0, [r5] - eors r0, r4 - adds r0, r1 - ldrb r2, [r0] - b _080A8AE8 - .align 2, 0 -_080A8AD8: .4byte gUnknown_0202F7C9 -_080A8ADC: .4byte gUnknown_02024BE0 -_080A8AE0: - adds r0, r6, 0 - bl move_anim_task_del - b _080A8B28 -_080A8AE8: - ldr r1, _080A8B08 @ =gTasks - lsls r4, r6, 2 - adds r0, r4, r6 - lsls r0, 3 - adds r5, r0, r1 - strh r2, [r5, 0x8] - ldr r0, _080A8B0C @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080A8B14 - ldr r0, _080A8B10 @ =gUnknown_03004B00 - ldrh r0, [r0, 0x2] - b _080A8B1A - .align 2, 0 -_080A8B08: .4byte gTasks -_080A8B0C: .4byte gUnknown_0202F7C9 -_080A8B10: .4byte gUnknown_03004B00 -_080A8B14: - ldr r0, _080A8B30 @ =gUnknown_03004B00 - ldrh r0, [r0, 0x2] - negs r0, r0 -_080A8B1A: - strh r0, [r5, 0xA] - ldr r0, _080A8B34 @ =gTasks - adds r1, r4, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _080A8B38 @ =sub_80A8B3C - str r0, [r1] -_080A8B28: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A8B30: .4byte gUnknown_03004B00 -_080A8B34: .4byte gTasks -_080A8B38: .4byte sub_80A8B3C - thumb_func_end sub_80A8A80 - - thumb_func_start sub_80A8B3C -sub_80A8B3C: @ 80A8B3C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A8B80 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r2, [r1, 0x8] - ldr r3, _080A8B84 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r1, 0xA] - ldrh r2, [r0, 0x24] - adds r1, r2 - strh r1, [r0, 0x24] - movs r2, 0x24 - ldrsh r1, [r0, r2] - movs r2, 0x20 - ldrsh r0, [r0, r2] - adds r1, r0 - adds r1, 0x20 - movs r0, 0x98 - lsls r0, 1 - cmp r1, r0 - bls _080A8B7A - adds r0, r4, 0 - bl move_anim_task_del -_080A8B7A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A8B80: .4byte gTasks -_080A8B84: .4byte gSprites - thumb_func_end sub_80A8B3C - - thumb_func_start sub_80A8B88 -sub_80A8B88: @ 80A8B88 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r6, _080A8BD8 @ =gUnknown_0202F7C8 - ldrb r0, [r6] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080A8BA4 - ldr r1, _080A8BDC @ =gUnknown_03004B00 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] -_080A8BA4: - ldr r4, _080A8BDC @ =gUnknown_03004B00 - ldrb r0, [r4, 0x8] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A8BE0 @ =gTasks - lsls r3, r5, 2 - adds r1, r3, r5 - lsls r1, 3 - adds r2, r1, r2 - ldrh r1, [r4] - strh r1, [r2, 0x8] - ldrh r1, [r4, 0x2] - strh r1, [r2, 0xA] - ldrh r1, [r4, 0x4] - strh r1, [r2, 0xC] - ldrh r1, [r4, 0x6] - strh r1, [r2, 0xE] - strh r0, [r2, 0x10] - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A8BE4 - ldrb r0, [r6] - b _080A8BE8 - .align 2, 0 -_080A8BD8: .4byte gUnknown_0202F7C8 -_080A8BDC: .4byte gUnknown_03004B00 -_080A8BE0: .4byte gTasks -_080A8BE4: - ldr r0, _080A8C00 @ =gUnknown_0202F7C9 - ldrb r0, [r0] -_080A8BE8: - strh r0, [r2, 0x12] - ldr r1, _080A8C04 @ =gTasks - adds r0, r3, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0x20] - ldr r1, _080A8C08 @ =sub_80A8C0C - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A8C00: .4byte gUnknown_0202F7C9 -_080A8C04: .4byte gTasks -_080A8C08: .4byte sub_80A8C0C - thumb_func_end sub_80A8B88 - - thumb_func_start sub_80A8C0C -sub_80A8C0C: @ 80A8C0C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080A8C5C @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r1 - ldrb r7, [r4, 0x10] - ldrh r0, [r4, 0xC] - ldrh r1, [r4, 0x1C] - adds r0, r1 - lsls r1, r0, 16 - strh r0, [r4, 0x1C] - lsrs r1, 24 - mov r8, r1 - mov r0, r8 - movs r2, 0xA - ldrsh r1, [r4, r2] - bl Sin - lsls r0, 16 - lsrs r5, r0, 16 - mov r9, r5 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A8C64 - ldr r0, _080A8C60 @ =gSprites - lsls r2, r7, 4 - adds r1, r2, r7 - lsls r1, 2 - adds r1, r0 - strh r5, [r1, 0x24] - mov r9, r0 - adds r4, r2, 0 - b _080A8CAA - .align 2, 0 -_080A8C5C: .4byte gTasks -_080A8C60: .4byte gSprites -_080A8C64: - ldrb r0, [r4, 0x12] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080A8C8C - ldr r1, _080A8C88 @ =gSprites - lsls r2, r7, 4 - adds r0, r2, r7 - lsls r0, 2 - adds r3, r0, r1 - lsls r0, r5, 16 - asrs r0, 16 - mov r9, r1 - adds r4, r2, 0 - cmp r0, 0 - bge _080A8CA8 - b _080A8CA6 - .align 2, 0 -_080A8C88: .4byte gSprites -_080A8C8C: - ldr r1, _080A8D2C @ =gSprites - lsls r2, r7, 4 - adds r0, r2, r7 - lsls r0, 2 - adds r3, r0, r1 - mov r4, r9 - lsls r0, r4, 16 - asrs r0, 16 - mov r9, r1 - adds r4, r2, 0 - cmp r0, 0 - bge _080A8CA6 - negs r0, r0 -_080A8CA6: - negs r0, r0 -_080A8CA8: - strh r0, [r3, 0x26] -_080A8CAA: - mov r5, r8 - cmp r5, 0x7F - bls _080A8CCC - ldr r1, _080A8D30 @ =gTasks - lsls r2, r6, 2 - adds r0, r2, r6 - lsls r0, 3 - adds r3, r0, r1 - movs r5, 0x1E - ldrsh r0, [r3, r5] - adds r5, r1, 0 - cmp r0, 0 - bne _080A8CCC - movs r1, 0x20 - ldrsh r0, [r3, r1] - cmp r0, 0x1 - beq _080A8CEE -_080A8CCC: - mov r2, r8 - cmp r2, 0x7E - bhi _080A8D20 - ldr r1, _080A8D30 @ =gTasks - lsls r2, r6, 2 - adds r0, r2, r6 - lsls r0, 3 - adds r3, r0, r1 - movs r5, 0x1E - ldrsh r0, [r3, r5] - adds r5, r1, 0 - cmp r0, 0x1 - bne _080A8D20 - movs r1, 0x20 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080A8D20 -_080A8CEE: - adds r1, r2, r6 - lsls r1, 3 - adds r1, r5 - ldrh r0, [r1, 0x1E] - movs r2, 0x1 - eors r0, r2 - strh r0, [r1, 0x1E] - ldrh r0, [r1, 0x20] - eors r0, r2 - strh r0, [r1, 0x20] - ldrh r0, [r1, 0xE] - subs r0, 0x1 - strh r0, [r1, 0xE] - lsls r0, 16 - asrs r3, r0, 16 - cmp r3, 0 - bne _080A8D20 - adds r0, r4, r7 - lsls r0, 2 - add r0, r9 - strh r3, [r0, 0x24] - strh r3, [r0, 0x26] - adds r0, r6, 0 - bl move_anim_task_del -_080A8D20: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A8D2C: .4byte gSprites -_080A8D30: .4byte gTasks - thumb_func_end sub_80A8C0C - - thumb_func_start sub_80A8D34 -sub_80A8D34: @ 80A8D34 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r6, _080A8D80 @ =gUnknown_03004B00 - ldrb r0, [r6, 0x6] - bl obj_id_for_side_relative_to_move - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldrb r1, [r6, 0x8] - adds r0, r5, 0 - bl sub_8078E70 - ldr r1, _080A8D84 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r6] - strh r1, [r0, 0x8] - ldrh r1, [r6, 0x2] - strh r1, [r0, 0xA] - ldrh r1, [r6, 0x4] - strh r1, [r0, 0xC] - ldrh r1, [r6, 0x4] - strh r1, [r0, 0xE] - strh r5, [r0, 0x10] - movs r1, 0x80 - lsls r1, 1 - strh r1, [r0, 0x1C] - strh r1, [r0, 0x1E] - ldr r1, _080A8D88 @ =sub_80A8D8C - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A8D80: .4byte gUnknown_03004B00 -_080A8D84: .4byte gTasks -_080A8D88: .4byte sub_80A8D8C - thumb_func_end sub_80A8D34 - - thumb_func_start sub_80A8D8C -sub_80A8D8C: @ 80A8D8C - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _080A8DEC @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x8] - ldrh r1, [r4, 0x1C] - adds r0, r1 - strh r0, [r4, 0x1C] - ldrh r0, [r4, 0xA] - ldrh r3, [r4, 0x1E] - adds r0, r3 - strh r0, [r4, 0x1E] - ldrb r0, [r4, 0x10] - adds r6, r0, 0 - movs r0, 0x1C - ldrsh r1, [r4, r0] - movs r3, 0x1E - ldrsh r2, [r4, r3] - adds r0, r6, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - bne _080A8DFC - ldrh r2, [r4, 0xE] - movs r3, 0xE - ldrsh r0, [r4, r3] - cmp r0, 0 - ble _080A8DF0 - ldrh r0, [r4, 0x8] - negs r0, r0 - strh r0, [r4, 0x8] - ldrh r0, [r4, 0xA] - negs r0, r0 - strh r0, [r4, 0xA] - strh r2, [r4, 0xC] - strh r1, [r4, 0xE] - b _080A8DFC - .align 2, 0 -_080A8DEC: .4byte gTasks -_080A8DF0: - adds r0, r6, 0 - bl sub_8078F40 - adds r0, r5, 0 - bl move_anim_task_del -_080A8DFC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A8D8C - - thumb_func_start sub_80A8E04 -sub_80A8E04: @ 80A8E04 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, _080A8E40 @ =gUnknown_03004B00 - ldrb r0, [r4, 0x4] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r1, 0 - bl sub_8078E70 - ldr r1, _080A8E44 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2, 0xA] - ldrh r0, [r4] - strh r0, [r2, 0xC] - movs r3, 0x6 - ldrsh r0, [r4, r3] - cmp r0, 0x1 - beq _080A8E48 - strh r1, [r2, 0xE] - b _080A8E54 - .align 2, 0 -_080A8E40: .4byte gUnknown_03004B00 -_080A8E44: .4byte gTasks -_080A8E48: - ldrh r0, [r4] - ldrh r1, [r4, 0x2] - adds r3, r0, 0 - muls r3, r1 - adds r0, r3, 0 - strh r0, [r2, 0xE] -_080A8E54: - ldr r1, _080A8E80 @ =gTasks - lsls r4, r7, 2 - adds r0, r4, r7 - lsls r0, 3 - adds r5, r0, r1 - ldr r6, _080A8E84 @ =gUnknown_03004B00 - ldrh r0, [r6, 0x2] - strh r0, [r5, 0x10] - mov r0, r8 - strh r0, [r5, 0x12] - ldrh r0, [r6, 0x6] - strh r0, [r5, 0x14] - bl sub_8076BE0 - lsls r0, 24 - mov r8, r4 - cmp r0, 0 - beq _080A8E88 - movs r0, 0x1 - strh r0, [r5, 0x16] - b _080A8EAC - .align 2, 0 -_080A8E80: .4byte gTasks -_080A8E84: .4byte gUnknown_03004B00 -_080A8E88: - movs r1, 0x4 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080A8E98 - ldr r0, _080A8E94 @ =gUnknown_0202F7C8 - b _080A8E9A - .align 2, 0 -_080A8E94: .4byte gUnknown_0202F7C8 -_080A8E98: - ldr r0, _080A8EF0 @ =gUnknown_0202F7C9 -_080A8E9A: - ldrb r0, [r0] - bl battle_side_get_owner - movs r1, 0 - lsls r0, 24 - cmp r0, 0 - bne _080A8EAA - movs r1, 0x1 -_080A8EAA: - strh r1, [r5, 0x16] -_080A8EAC: - ldr r0, _080A8EF4 @ =gTasks - mov r2, r8 - adds r1, r2, r7 - lsls r1, 3 - adds r4, r1, r0 - movs r3, 0x16 - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080A8ED8 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080A8ED8 - movs r1, 0xE - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4, 0xE] - movs r2, 0x10 - ldrsh r0, [r4, r2] - negs r0, r0 - strh r0, [r4, 0x10] -_080A8ED8: - ldr r0, _080A8EF4 @ =gTasks - mov r3, r8 - adds r1, r3, r7 - lsls r1, 3 - adds r1, r0 - ldr r0, _080A8EF8 @ =sub_80A8FD8 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A8EF0: .4byte gUnknown_0202F7C9 -_080A8EF4: .4byte gTasks -_080A8EF8: .4byte sub_80A8FD8 - thumb_func_end sub_80A8E04 - - thumb_func_start sub_80A8EFC -sub_80A8EFC: @ 80A8EFC - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080A8F38 @ =gUnknown_03004B00 - ldrb r0, [r4, 0x4] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r1, 0 - bl sub_8078E70 - ldr r1, _080A8F3C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xA] - ldrh r1, [r4] - strh r1, [r0, 0xC] - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A8F44 - ldr r0, _080A8F40 @ =gUnknown_0202F7C8 - b _080A8F46 - .align 2, 0 -_080A8F38: .4byte gUnknown_03004B00 -_080A8F3C: .4byte gTasks -_080A8F40: .4byte gUnknown_0202F7C8 -_080A8F44: - ldr r0, _080A8F74 @ =gUnknown_0202F7C9 -_080A8F46: - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080A8F58 - ldrh r0, [r4, 0x2] - negs r0, r0 - strh r0, [r4, 0x2] -_080A8F58: - ldr r0, _080A8F78 @ =gUnknown_03004B00 - movs r2, 0x6 - ldrsh r1, [r0, r2] - adds r6, r0, 0 - cmp r1, 0x1 - beq _080A8F80 - ldr r2, _080A8F7C @ =gTasks - lsls r3, r5, 2 - adds r0, r3, r5 - lsls r0, 3 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0xE] - b _080A8F9A - .align 2, 0 -_080A8F74: .4byte gUnknown_0202F7C9 -_080A8F78: .4byte gUnknown_03004B00 -_080A8F7C: .4byte gTasks -_080A8F80: - ldr r3, _080A8FD0 @ =gTasks - lsls r4, r5, 2 - adds r0, r4, r5 - lsls r0, 3 - adds r0, r3 - ldrh r2, [r6] - ldrh r1, [r6, 0x2] - adds r7, r2, 0 - muls r7, r1 - adds r1, r7, 0 - strh r1, [r0, 0xE] - adds r2, r3, 0 - adds r3, r4, 0 -_080A8F9A: - adds r1, r3, r5 - lsls r1, 3 - adds r1, r2 - ldrh r0, [r6, 0x2] - strh r0, [r1, 0x10] - mov r0, r8 - strh r0, [r1, 0x12] - ldrh r0, [r6, 0x6] - strh r0, [r1, 0x14] - movs r0, 0x1 - strh r0, [r1, 0x16] - movs r2, 0xE - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1, 0xE] - movs r7, 0x10 - ldrsh r0, [r1, r7] - negs r0, r0 - strh r0, [r1, 0x10] - ldr r0, _080A8FD4 @ =sub_80A8FD8 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A8FD0: .4byte gTasks -_080A8FD4: .4byte sub_80A8FD8 - thumb_func_end sub_80A8EFC - - thumb_func_start sub_80A8FD8 -sub_80A8FD8: @ 80A8FD8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080A9030 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x10] - ldrh r1, [r4, 0xE] - adds r0, r1 - strh r0, [r4, 0xE] - ldrb r0, [r4, 0x12] - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0xE] - adds r1, r2, 0 - bl obj_id_set_rotscale - movs r2, 0x16 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080A900C - ldrb r0, [r4, 0x12] - bl sub_8078F9C -_080A900C: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - movs r2, 0xC - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _080A9052 - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080A9034 - cmp r0, 0x1 - ble _080A903A - cmp r0, 0x2 - beq _080A9042 - b _080A903A - .align 2, 0 -_080A9030: .4byte gTasks -_080A9034: - ldrb r0, [r4, 0x12] - bl sub_8078F40 -_080A903A: - adds r0, r5, 0 - bl move_anim_task_del - b _080A9052 -_080A9042: - movs r0, 0 - strh r0, [r4, 0xA] - movs r2, 0x10 - ldrsh r0, [r4, r2] - negs r0, r0 - strh r0, [r4, 0x10] - movs r0, 0x1 - strh r0, [r4, 0x14] -_080A9052: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A8FD8 - - thumb_func_start sub_80A9058 -sub_80A9058: @ 80A9058 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _080A9084 @ =gUnknown_03004B00 - movs r2, 0 - ldrsh r1, [r0, r2] - mov r8, r0 - cmp r1, 0 - bne _080A9090 - ldr r4, _080A9088 @ =gTasks - lsls r5, r7, 2 - adds r0, r5, r7 - lsls r0, 3 - adds r6, r0, r4 - ldr r0, _080A908C @ =gUnknown_0202F7BC - ldrh r0, [r0] - movs r1, 0xC - bl __udivsi3 - b _080A90A4 - .align 2, 0 -_080A9084: .4byte gUnknown_03004B00 -_080A9088: .4byte gTasks -_080A908C: .4byte gUnknown_0202F7BC -_080A9090: - ldr r4, _080A912C @ =gTasks - lsls r5, r7, 2 - adds r0, r5, r7 - lsls r0, 3 - adds r6, r0, r4 - ldr r0, _080A9130 @ =gUnknown_0202F7B8 - ldr r0, [r0] - movs r1, 0xC - bl __divsi3 -_080A90A4: - strh r0, [r6, 0x26] - lsls r0, 16 - adds r1, r4, 0 - cmp r0, 0 - bgt _080A90B2 - movs r0, 0x1 - strh r0, [r6, 0x26] -_080A90B2: - movs r2, 0x26 - ldrsh r0, [r6, r2] - cmp r0, 0x10 - ble _080A90BE - movs r0, 0x10 - strh r0, [r6, 0x26] -_080A90BE: - adds r4, r5, r7 - lsls r4, 3 - adds r4, r1 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - movs r5, 0 - strh r1, [r4, 0x24] - ldrh r2, [r4, 0x26] - movs r0, 0x1 - ands r0, r2 - adds r1, r0 - strh r1, [r4, 0x22] - strh r5, [r4, 0x20] - mov r1, r8 - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x1C] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x1E] - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x16] - ldr r2, _080A9134 @ =gSprites - movs r0, 0x16 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x24] - strh r0, [r4, 0x18] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x26] - strh r0, [r4, 0x1A] - strh r5, [r4, 0x8] - mov r1, r8 - ldrh r0, [r1, 0x2] - strh r0, [r4, 0xA] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0xC] - ldr r0, _080A9138 @ =sub_80A913C - str r0, [r4] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A912C: .4byte gTasks -_080A9130: .4byte gUnknown_0202F7B8 -_080A9134: .4byte gSprites -_080A9138: .4byte sub_80A913C - thumb_func_end sub_80A9058 - - thumb_func_start sub_80A913C -sub_80A913C: @ 80A913C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080A9190 @ =gTasks - adds r3, r0, r1 - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] - lsls r0, 16 - asrs r0, 16 - movs r2, 0xA - ldrsh r1, [r3, r2] - cmp r0, r1 - ble _080A921A - movs r0, 0 - strh r0, [r3, 0x8] - ldrh r0, [r3, 0x20] - adds r1, r0, 0x1 - movs r0, 0x1 - ands r1, r0 - strh r1, [r3, 0x20] - movs r2, 0x1C - ldrsh r0, [r3, r2] - cmp r0, 0 - beq _080A91AE - cmp r1, 0 - beq _080A9198 - ldr r2, _080A9194 @ =gSprites - movs r0, 0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x22] - ldrh r2, [r3, 0x18] - adds r1, r2 - b _080A91AC - .align 2, 0 -_080A9190: .4byte gTasks -_080A9194: .4byte gSprites -_080A9198: - ldr r2, _080A91D4 @ =gSprites - movs r0, 0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x18] - ldrh r2, [r3, 0x24] - subs r1, r2 -_080A91AC: - strh r1, [r0, 0x24] -_080A91AE: - movs r1, 0x1E - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _080A91E8 - movs r2, 0x20 - ldrsh r4, [r3, r2] - cmp r4, 0 - beq _080A91D8 - ldr r2, _080A91D4 @ =gSprites - movs r0, 0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x26] - strh r1, [r0, 0x26] - b _080A91E8 - .align 2, 0 -_080A91D4: .4byte gSprites -_080A91D8: - ldr r2, _080A9220 @ =gSprites - movs r0, 0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r4, [r0, 0x26] -_080A91E8: - ldrh r0, [r3, 0xC] - subs r0, 0x1 - strh r0, [r3, 0xC] - lsls r0, 16 - asrs r4, r0, 16 - cmp r4, 0 - bne _080A921A - ldr r2, _080A9220 @ =gSprites - movs r0, 0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r4, [r0, 0x24] - movs r0, 0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r4, [r0, 0x26] - adds r0, r5, 0 - bl move_anim_task_del -_080A921A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A9220: .4byte gSprites - thumb_func_end sub_80A913C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_anim_80CA710.s b/asm/battle_anim_80CA710.s index d784aa4b7..ae6709650 100644 --- a/asm/battle_anim_80CA710.s +++ b/asm/battle_anim_80CA710.s @@ -10,7 +10,7 @@ sub_80CA710: @ 80CA710 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, _080CA744 @ =gUnknown_03004B00 + ldr r5, _080CA744 @ =gBattleAnimArgs ldrh r0, [r5] ldrh r1, [r4, 0x20] adds r0, r1 @@ -33,13 +33,13 @@ sub_80CA710: @ 80CA710 negs r0, r0 b _080CA74E .align 2, 0 -_080CA744: .4byte gUnknown_03004B00 +_080CA744: .4byte gBattleAnimArgs _080CA748: .4byte gUnknown_0202F7C8 _080CA74C: ldrh r0, [r5, 0x8] _080CA74E: strh r0, [r4, 0x34] - ldr r0, _080CA760 @ =gUnknown_03004B00 + ldr r0, _080CA760 @ =gBattleAnimArgs ldrh r0, [r0, 0xA] strh r0, [r4, 0x36] ldr r0, _080CA764 @ =sub_80CA768 @@ -48,7 +48,7 @@ _080CA74E: pop {r0} bx r0 .align 2, 0 -_080CA760: .4byte gUnknown_03004B00 +_080CA760: .4byte gBattleAnimArgs _080CA764: .4byte sub_80CA768 thumb_func_end sub_80CA710 @@ -98,7 +98,7 @@ sub_80CA7B0: @ 80CA7B0 adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 - ldr r0, _080CA7F0 @ =gUnknown_03004B00 + ldr r0, _080CA7F0 @ =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] ldr r5, _080CA7F4 @ =gUnknown_0202F7C8 @@ -123,7 +123,7 @@ sub_80CA7B0: @ 80CA7B0 pop {r0} bx r0 .align 2, 0 -_080CA7F0: .4byte gUnknown_03004B00 +_080CA7F0: .4byte gBattleAnimArgs _080CA7F4: .4byte gUnknown_0202F7C8 _080CA7F8: .4byte sub_8078B34 _080CA7FC: .4byte move_anim_8074EE0 @@ -135,7 +135,7 @@ sub_80CA800: @ 80CA800 adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 - ldr r5, _080CA848 @ =gUnknown_03004B00 + ldr r5, _080CA848 @ =gBattleAnimArgs ldrb r1, [r5, 0x6] adds r0, r4, 0 bl StartSpriteAnim @@ -163,7 +163,7 @@ sub_80CA800: @ 80CA800 pop {r0} bx r0 .align 2, 0 -_080CA848: .4byte gUnknown_03004B00 +_080CA848: .4byte gBattleAnimArgs _080CA84C: .4byte gUnknown_0202F7C9 _080CA850: .4byte sub_8078B34 _080CA854: .4byte move_anim_8072740 @@ -175,7 +175,7 @@ sub_80CA858: @ 80CA858 adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 - ldr r6, _080CA8A8 @ =gUnknown_03004B00 + ldr r6, _080CA8A8 @ =gBattleAnimArgs ldrh r0, [r6, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] @@ -207,7 +207,7 @@ sub_80CA858: @ 80CA858 pop {r0} bx r0 .align 2, 0 -_080CA8A8: .4byte gUnknown_03004B00 +_080CA8A8: .4byte gBattleAnimArgs _080CA8AC: .4byte gUnknown_0202F7C9 _080CA8B0: .4byte sub_80CA8B4 thumb_func_end sub_80CA858 @@ -297,7 +297,7 @@ sub_80CA928: @ 80CA928 strh r0, [r5, 0xA] movs r0, 0x6 strh r0, [r5, 0x8] - ldr r1, _080CA99C @ =gUnknown_03004B00 + ldr r1, _080CA99C @ =gBattleAnimArgs movs r0, 0xF strh r0, [r1] strh r2, [r1, 0x2] @@ -329,7 +329,7 @@ _080CA990: bx r0 .align 2, 0 _080CA998: .4byte gTasks -_080CA99C: .4byte gUnknown_03004B00 +_080CA99C: .4byte gBattleAnimArgs _080CA9A0: .4byte gSpriteTemplate_83D631C _080CA9A4: .4byte gUnknown_0202F7C9 thumb_func_end sub_80CA928 @@ -340,7 +340,7 @@ sub_80CA9A8: @ 80CA9A8 adds r4, r0, 0 movs r1, 0x1 bl sub_8078764 - ldr r6, _080CA9EC @ =gUnknown_03004B00 + ldr r6, _080CA9EC @ =gBattleAnimArgs ldrh r0, [r6, 0x6] strh r0, [r4, 0x2E] ldr r5, _080CA9F0 @ =gUnknown_0202F7C8 @@ -366,7 +366,7 @@ sub_80CA9A8: @ 80CA9A8 pop {r0} bx r0 .align 2, 0 -_080CA9EC: .4byte gUnknown_03004B00 +_080CA9EC: .4byte gBattleAnimArgs _080CA9F0: .4byte gUnknown_0202F7C8 _080CA9F4: .4byte sub_80CA9F8 thumb_func_end sub_80CA9A8 @@ -528,12 +528,12 @@ sub_80CAB18: @ 80CAB18 lsls r0, 24 cmp r0, 0 beq _080CAB38 - ldr r1, _080CAB7C @ =gUnknown_03004B00 + ldr r1, _080CAB7C @ =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080CAB38: - ldr r4, _080CAB7C @ =gUnknown_03004B00 + ldr r4, _080CAB7C @ =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] ldr r5, _080CAB80 @ =gUnknown_0202F7C9 @@ -564,7 +564,7 @@ _080CAB38: bx r0 .align 2, 0 _080CAB78: .4byte gUnknown_0202F7C8 -_080CAB7C: .4byte gUnknown_03004B00 +_080CAB7C: .4byte gBattleAnimArgs _080CAB80: .4byte gUnknown_0202F7C9 _080CAB84: .4byte sub_80CAB88 thumb_func_end sub_80CAB18 @@ -634,7 +634,7 @@ sub_80CABF8: @ 80CABF8 adds r4, r0, 0 movs r1, 0x1 bl sub_8078764 - ldr r5, _080CAC3C @ =gUnknown_03004B00 + ldr r5, _080CAC3C @ =gBattleAnimArgs ldrb r1, [r5, 0x8] adds r0, r4, 0 bl StartSpriteAnim @@ -662,7 +662,7 @@ _080CAC22: pop {r0} bx r0 .align 2, 0 -_080CAC3C: .4byte gUnknown_03004B00 +_080CAC3C: .4byte gBattleAnimArgs _080CAC40: .4byte sub_80CAC44 thumb_func_end sub_80CABF8 @@ -761,7 +761,7 @@ sub_80CACEC: @ 80CACEC lsls r0, 24 cmp r0, 0 bne _080CAD06 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _080CAD0E @@ -812,7 +812,7 @@ sub_80CAD54: @ 80CAD54 adds r4, r0, 0 movs r1, 0 bl sub_80787B0 - ldr r5, _080CAD9C @ =gUnknown_03004B00 + ldr r5, _080CAD9C @ =gBattleAnimArgs ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] @@ -841,7 +841,7 @@ sub_80CAD54: @ 80CAD54 pop {r0} bx r0 .align 2, 0 -_080CAD9C: .4byte gUnknown_03004B00 +_080CAD9C: .4byte gBattleAnimArgs _080CADA0: .4byte gUnknown_0202F7C8 _080CADA4: .4byte sub_80CADA8 thumb_func_end sub_80CAD54 @@ -914,7 +914,7 @@ sub_80CAE20: @ 80CAE20 adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 - ldr r5, _080CAE68 @ =gUnknown_03004B00 + ldr r5, _080CAE68 @ =gBattleAnimArgs ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] @@ -943,7 +943,7 @@ sub_80CAE20: @ 80CAE20 pop {r0} bx r0 .align 2, 0 -_080CAE68: .4byte gUnknown_03004B00 +_080CAE68: .4byte gBattleAnimArgs _080CAE6C: .4byte gUnknown_0202F7C8 _080CAE70: .4byte sub_80CAE74 thumb_func_end sub_80CAE20 @@ -1020,7 +1020,7 @@ sub_80CAED8: @ 80CAED8 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] - ldr r1, _080CAF18 @ =gUnknown_03004B00 + ldr r1, _080CAF18 @ =gBattleAnimArgs ldrh r0, [r1] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x2] @@ -1034,7 +1034,7 @@ sub_80CAED8: @ 80CAED8 bx r0 .align 2, 0 _080CAF14: .4byte gUnknown_0202F7C8 -_080CAF18: .4byte gUnknown_03004B00 +_080CAF18: .4byte gBattleAnimArgs _080CAF1C: .4byte sub_80CAF20 thumb_func_end sub_80CAED8 @@ -1148,12 +1148,12 @@ sub_80CAFD0: @ 80CAFD0 lsls r0, 24 cmp r0, 0 beq _080CAFF0 - ldr r1, _080CB028 @ =gUnknown_03004B00 + ldr r1, _080CB028 @ =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080CAFF0: - ldr r6, _080CB028 @ =gUnknown_03004B00 + ldr r6, _080CB028 @ =gBattleAnimArgs ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] movs r1, 0xC @@ -1179,7 +1179,7 @@ _080CAFF0: b _080CB050 .align 2, 0 _080CB024: .4byte gUnknown_0202F7C8 -_080CB028: .4byte gUnknown_03004B00 +_080CB028: .4byte gBattleAnimArgs _080CB02C: .4byte gUnknown_0202F7C9 _080CB030: ldr r0, _080CB07C @ =gUnknown_0202F7C9 @@ -1199,7 +1199,7 @@ _080CB030: adds r0, r1 _080CB050: strh r0, [r5, 0x36] - ldr r0, _080CB080 @ =gUnknown_03004B00 + ldr r0, _080CB080 @ =gBattleAnimArgs ldrh r0, [r0, 0xA] strh r0, [r5, 0x38] adds r0, r5, 0 @@ -1219,7 +1219,7 @@ _080CB050: b _080CB08A .align 2, 0 _080CB07C: .4byte gUnknown_0202F7C9 -_080CB080: .4byte gUnknown_03004B00 +_080CB080: .4byte gBattleAnimArgs _080CB084: .4byte gUnknown_0202F7C8 _080CB088: movs r0, 0 @@ -1333,7 +1333,7 @@ sub_80CB144: @ 80CB144 lsls r0, 24 cmp r0, 0 bne _080CB170 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1350,7 +1350,7 @@ _080CB170: ldrh r0, [r4, 0x22] adds r0, 0x20 strh r0, [r4, 0x22] - ldr r1, _080CB19C @ =gUnknown_03004B00 + ldr r1, _080CB19C @ =gBattleAnimArgs ldrh r0, [r1] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x2] @@ -1368,7 +1368,7 @@ _080CB170: bx r0 .align 2, 0 _080CB198: .4byte gUnknown_0202F7C9 -_080CB19C: .4byte gUnknown_03004B00 +_080CB19C: .4byte gBattleAnimArgs _080CB1A0: .4byte sub_80CB1A4 thumb_func_end sub_80CB144 @@ -1480,7 +1480,7 @@ sub_80CB25C: @ 80CB25C movs r1, 0x80 orrs r0, r1 strb r0, [r2] - ldr r4, _080CB290 @ =gUnknown_03004B00 + ldr r4, _080CB290 @ =gBattleAnimArgs ldrb r1, [r4, 0x4] adds r0, r5, 0 bl StartSpriteAffineAnim @@ -1494,7 +1494,7 @@ sub_80CB25C: @ 80CB25C pop {r0} bx r0 .align 2, 0 -_080CB290: .4byte gUnknown_03004B00 +_080CB290: .4byte gBattleAnimArgs _080CB294: .4byte sub_80CB298 thumb_func_end sub_80CB25C @@ -1502,7 +1502,7 @@ _080CB294: .4byte sub_80CB298 sub_80CB298: @ 80CB298 push {r4,lr} adds r4, r0, 0 - ldr r0, _080CB2C8 @ =gUnknown_03004B00 + ldr r0, _080CB2C8 @ =gBattleAnimArgs ldrh r1, [r0, 0xE] ldr r0, _080CB2CC @ =0x0000ffff cmp r1, r0 @@ -1525,7 +1525,7 @@ _080CB2C2: pop {r0} bx r0 .align 2, 0 -_080CB2C8: .4byte gUnknown_03004B00 +_080CB2C8: .4byte gBattleAnimArgs _080CB2CC: .4byte 0x0000ffff _080CB2D0: .4byte sub_80CB2D4 thumb_func_end sub_80CB298 @@ -1623,7 +1623,7 @@ _080CB370: adds r0, r4 lsls r0, 3 adds r0, r1 - ldr r2, _080CB3A0 @ =gUnknown_03004B00 + ldr r2, _080CB3A0 @ =gBattleAnimArgs ldrh r1, [r2] strh r1, [r0, 0x8] ldrh r1, [r2, 0x2] @@ -1639,7 +1639,7 @@ _080CB396: bx r0 .align 2, 0 _080CB39C: .4byte gTasks -_080CB3A0: .4byte gUnknown_03004B00 +_080CB3A0: .4byte gBattleAnimArgs _080CB3A4: .4byte sub_80CB3A8 thumb_func_end sub_80CB340 @@ -1718,7 +1718,7 @@ sub_80CB438: @ 80CB438 push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 - ldr r0, _080CB484 @ =gUnknown_03004B00 + ldr r0, _080CB484 @ =gBattleAnimArgs ldrh r1, [r0, 0xE] ldr r0, _080CB488 @ =0x0000ffff cmp r1, r0 @@ -1752,7 +1752,7 @@ sub_80CB438: @ 80CB438 strh r0, [r6, 0x8] b _080CB4C2 .align 2, 0 -_080CB484: .4byte gUnknown_03004B00 +_080CB484: .4byte gBattleAnimArgs _080CB488: .4byte 0x0000ffff _080CB48C: .4byte gTasks _080CB490: .4byte gSprites @@ -1806,7 +1806,7 @@ _080CB4DE: lsls r0, 24 cmp r0, 0 bne _080CB4F6 - ldr r1, _080CB534 @ =gUnknown_03004B00 + ldr r1, _080CB534 @ =gBattleAnimArgs movs r2, 0 ldrsh r0, [r1, r2] negs r0, r0 @@ -1816,7 +1816,7 @@ _080CB4F6: movs r1, 0 bl sub_8077ABC lsls r0, 24 - ldr r4, _080CB534 @ =gUnknown_03004B00 + ldr r4, _080CB534 @ =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4] adds r0, r1 @@ -1841,7 +1841,7 @@ _080CB4F6: b _080CB58A .align 2, 0 _080CB530: .4byte gUnknown_0202F7C9 -_080CB534: .4byte gUnknown_03004B00 +_080CB534: .4byte gBattleAnimArgs _080CB538: adds r2, r5, 0 adds r2, 0x3E @@ -1911,7 +1911,7 @@ sub_80CB59C: @ 80CB59C lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r4, _080CB618 @ =gUnknown_03004B00 + ldr r4, _080CB618 @ =gBattleAnimArgs ldrh r0, [r4] strh r0, [r5, 0x24] ldrh r0, [r4, 0x2] @@ -1951,7 +1951,7 @@ _080CB608: bx r0 .align 2, 0 _080CB614: .4byte gUnknown_0202F7C8 -_080CB618: .4byte gUnknown_03004B00 +_080CB618: .4byte gBattleAnimArgs _080CB61C: .4byte sub_80CB710 thumb_func_end sub_80CB59C @@ -2001,7 +2001,7 @@ sub_80CB620: @ 80CB620 lsrs r3, r4, 16 mov r10, r3 asrs r4, 16 - ldr r6, _080CB704 @ =gUnknown_03004B00 + ldr r6, _080CB704 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r6, r1] muls r0, r4 @@ -2062,7 +2062,7 @@ sub_80CB620: @ 80CB620 .align 2, 0 _080CB6FC: .4byte gUnknown_0202F7C8 _080CB700: .4byte gUnknown_0202F7C9 -_080CB704: .4byte gUnknown_03004B00 +_080CB704: .4byte gBattleAnimArgs _080CB708: .4byte sub_80CB710 _080CB70C: .4byte gUnknown_03000728 thumb_func_end sub_80CB620 @@ -2128,7 +2128,7 @@ sub_80CB768: @ 80CB768 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 - ldr r4, _080CB7E8 @ =gUnknown_03004B00 + ldr r4, _080CB7E8 @ =gBattleAnimArgs lsrs r0, 24 ldrh r2, [r4] adds r0, r2 @@ -2179,7 +2179,7 @@ _080CB7DE: bx r0 .align 2, 0 _080CB7E4: .4byte gUnknown_0202F7C8 -_080CB7E8: .4byte gUnknown_03004B00 +_080CB7E8: .4byte gBattleAnimArgs thumb_func_end sub_80CB768 thumb_func_start sub_80CB7EC @@ -2556,7 +2556,7 @@ sub_80CBAA4: @ 80CBAA4 adds r0, r4, 0 movs r1, 0 bl sub_8078764 - ldr r0, _080CBAE4 @ =gUnknown_03004B00 + ldr r0, _080CBAE4 @ =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r4, 0x30] _080CBABE: @@ -2580,7 +2580,7 @@ _080CBADE: pop {r0} bx r0 .align 2, 0 -_080CBAE4: .4byte gUnknown_03004B00 +_080CBAE4: .4byte gBattleAnimArgs thumb_func_end sub_80CBAA4 thumb_func_start sub_80CBAE8 @@ -2725,7 +2725,7 @@ sub_80CBBF0: @ 80CBBF0 lsls r0, 24 cmp r0, 0 bne _080CBC18 - ldr r0, _080CBC14 @ =gUnknown_03004B00 + ldr r0, _080CBC14 @ =gBattleAnimArgs ldrh r1, [r0, 0x2] strh r1, [r4, 0x30] movs r1, 0x78 @@ -2733,9 +2733,9 @@ sub_80CBBF0: @ 80CBBF0 adds r5, r0, 0 b _080CBC3A .align 2, 0 -_080CBC14: .4byte gUnknown_03004B00 +_080CBC14: .4byte gBattleAnimArgs _080CBC18: - ldr r0, _080CBC74 @ =gUnknown_03004B00 + ldr r0, _080CBC74 @ =gBattleAnimArgs movs r1, 0x2 ldrsh r3, [r0, r1] adds r1, r3, 0 @@ -2782,7 +2782,7 @@ _080CBC3A: movs r0, 0x1F b _080CBC82 .align 2, 0 -_080CBC74: .4byte gUnknown_03004B00 +_080CBC74: .4byte gBattleAnimArgs _080CBC78: .4byte sub_80CBC8C _080CBC7C: adds r1, r4, 0 @@ -3827,7 +3827,7 @@ _080CC470: .4byte gTasks sub_80CC474: @ 80CC474 push {r4-r7,lr} adds r4, r0, 0 - ldr r0, _080CC488 @ =gUnknown_03004B00 + ldr r0, _080CC488 @ =gBattleAnimArgs movs r1, 0xC ldrsh r0, [r0, r1] cmp r0, 0 @@ -3835,7 +3835,7 @@ sub_80CC474: @ 80CC474 ldr r0, _080CC48C @ =gUnknown_0202F7C8 b _080CC492 .align 2, 0 -_080CC488: .4byte gUnknown_03004B00 +_080CC488: .4byte gBattleAnimArgs _080CC48C: .4byte gUnknown_0202F7C8 _080CC490: ldr r0, _080CC4B0 @ =gUnknown_0202F7C9 @@ -3848,19 +3848,19 @@ _080CC492: beq _080CC4BC movs r0, 0 strh r0, [r4, 0x36] - ldr r1, _080CC4B4 @ =gUnknown_03004B00 + ldr r1, _080CC4B4 @ =gBattleAnimArgs ldrh r0, [r1, 0x6] strh r0, [r4, 0x32] ldr r0, _080CC4B8 @ =0x0000fff0 b _080CC4CC .align 2, 0 _080CC4B0: .4byte gUnknown_0202F7C9 -_080CC4B4: .4byte gUnknown_03004B00 +_080CC4B4: .4byte gBattleAnimArgs _080CC4B8: .4byte 0x0000fff0 _080CC4BC: movs r0, 0x1 strh r0, [r4, 0x36] - ldr r1, _080CC4F0 @ =gUnknown_03004B00 + ldr r1, _080CC4F0 @ =gBattleAnimArgs ldrh r0, [r1, 0x6] negs r0, r0 strh r0, [r4, 0x32] @@ -3886,7 +3886,7 @@ _080CC4CC: beq _080CC4FE b _080CC56C .align 2, 0 -_080CC4F0: .4byte gUnknown_03004B00 +_080CC4F0: .4byte gBattleAnimArgs _080CC4F4: cmp r0, 0x2 beq _080CC508 @@ -4111,7 +4111,7 @@ _080CC650: bne _080CC6AA strh r7, [r5, 0x1E] _080CC6AA: - ldr r0, _080CC6C8 @ =gUnknown_03004B00 + ldr r0, _080CC6C8 @ =gBattleAnimArgs movs r2, 0xE ldrsh r1, [r0, r2] movs r0, 0x1 @@ -4126,7 +4126,7 @@ _080CC6BE: bx r0 .align 2, 0 _080CC6C4: .4byte gUnknown_083D6984 -_080CC6C8: .4byte gUnknown_03004B00 +_080CC6C8: .4byte gBattleAnimArgs thumb_func_end sub_80CC5F8 thumb_func_start sub_80CC6CC @@ -4134,7 +4134,7 @@ sub_80CC6CC: @ 80CC6CC push {r4-r7,lr} sub sp, 0x4 adds r6, r0, 0 - ldr r1, _080CC6E4 @ =gUnknown_03004B00 + ldr r1, _080CC6E4 @ =gBattleAnimArgs movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 @@ -4143,7 +4143,7 @@ sub_80CC6CC: @ 80CC6CC bl move_anim_8072740 b _080CC7C2 .align 2, 0 -_080CC6E4: .4byte gUnknown_03004B00 +_080CC6E4: .4byte gBattleAnimArgs _080CC6E8: movs r3, 0 ldrsh r0, [r1, r3] @@ -4166,7 +4166,7 @@ _080CC6FA: bl sub_8077ABC lsls r0, 24 lsrs r2, r0, 24 - ldr r0, _080CC738 @ =gUnknown_03004B00 + ldr r0, _080CC738 @ =gBattleAnimArgs ldrh r1, [r0, 0x8] strh r1, [r6, 0x2E] movs r3, 0x2 @@ -4185,7 +4185,7 @@ _080CC6FA: b _080CC74C .align 2, 0 _080CC734: .4byte gUnknown_0202F7C9 -_080CC738: .4byte gUnknown_03004B00 +_080CC738: .4byte gBattleAnimArgs _080CC73C: strh r5, [r6, 0x20] strh r2, [r6, 0x22] @@ -4323,7 +4323,7 @@ sub_80CC82C: @ 80CC82C lsls r0, 24 cmp r0, 0 beq _080CC854 - ldr r2, _080CC850 @ =gUnknown_03004B00 + ldr r2, _080CC850 @ =gBattleAnimArgs ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 @@ -4332,9 +4332,9 @@ sub_80CC82C: @ 80CC82C b _080CC860 .align 2, 0 _080CC84C: .4byte gUnknown_0202F7C8 -_080CC850: .4byte gUnknown_03004B00 +_080CC850: .4byte gBattleAnimArgs _080CC854: - ldr r0, _080CC878 @ =gUnknown_03004B00 + ldr r0, _080CC878 @ =gBattleAnimArgs ldrh r1, [r0] ldrh r2, [r4, 0x20] adds r1, r2 @@ -4353,7 +4353,7 @@ _080CC860: pop {r0} bx r0 .align 2, 0 -_080CC878: .4byte gUnknown_03004B00 +_080CC878: .4byte gBattleAnimArgs _080CC87C: .4byte sub_8078600 _080CC880: .4byte move_anim_8072740 thumb_func_end sub_80CC82C @@ -4374,7 +4374,7 @@ sub_80CC884: @ 80CC884 _080CC89E: ldr r0, _080CC8C0 @ =sub_80CC810 str r0, [r5, 0x1C] - ldr r4, _080CC8C4 @ =gUnknown_03004B00 + ldr r4, _080CC8C4 @ =gBattleAnimArgs movs r0, 0 ldrsh r1, [r4, r0] adds r0, r5, 0 @@ -4389,14 +4389,14 @@ _080CC89E: .align 2, 0 _080CC8BC: .4byte gUnknown_0202F7C8 _080CC8C0: .4byte sub_80CC810 -_080CC8C4: .4byte gUnknown_03004B00 +_080CC8C4: .4byte gBattleAnimArgs thumb_func_end sub_80CC884 thumb_func_start sub_80CC8C8 sub_80CC8C8: @ 80CC8C8 push {r4,lr} adds r4, r0, 0 - ldr r1, _080CC908 @ =gUnknown_03004B00 + ldr r1, _080CC908 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -4425,7 +4425,7 @@ sub_80CC8C8: @ 80CC8C8 pop {r0} bx r0 .align 2, 0 -_080CC908: .4byte gUnknown_03004B00 +_080CC908: .4byte gBattleAnimArgs _080CC90C: .4byte move_anim_8074EE0 _080CC910: .4byte sub_8078504 thumb_func_end sub_80CC8C8 @@ -4458,7 +4458,7 @@ sub_80CC914: @ 80CC914 _080CC948: ldr r0, _080CC968 @ =sub_80CCB00 str r0, [r5, 0x1C] - ldr r0, _080CC96C @ =gUnknown_03004B00 + ldr r0, _080CC96C @ =gBattleAnimArgs movs r2, 0x4 ldrsh r1, [r0, r2] adds r3, r0, 0 @@ -4472,7 +4472,7 @@ _080CC948: .align 2, 0 _080CC964: .4byte gUnknown_0202F7C9 _080CC968: .4byte sub_80CCB00 -_080CC96C: .4byte gUnknown_03004B00 +_080CC96C: .4byte gBattleAnimArgs _080CC970: ldrh r0, [r5, 0x20] ldrh r1, [r3] @@ -4522,7 +4522,7 @@ sub_80CC9BC: @ 80CC9BC mov r7, r8 push {r7} adds r6, r0, 0 - ldr r0, _080CC9D8 @ =gUnknown_03004B00 + ldr r0, _080CC9D8 @ =gBattleAnimArgs movs r1, 0x6 ldrsh r0, [r0, r1] cmp r0, 0x1 @@ -4533,7 +4533,7 @@ sub_80CC9BC: @ 80CC9BC beq _080CC9FC b _080CCA58 .align 2, 0 -_080CC9D8: .4byte gUnknown_03004B00 +_080CC9D8: .4byte gBattleAnimArgs _080CC9DC: ldr r5, _080CC9F8 @ =gUnknown_0202F7C9 ldrb r0, [r5] @@ -4619,7 +4619,7 @@ _080CCA72: _080CCA8A: ldr r0, _080CCAA8 @ =sub_80CCB00 str r0, [r6, 0x1C] - ldr r0, _080CCAAC @ =gUnknown_03004B00 + ldr r0, _080CCAAC @ =gBattleAnimArgs movs r2, 0x4 ldrsh r1, [r0, r2] adds r3, r0, 0 @@ -4633,7 +4633,7 @@ _080CCA8A: .align 2, 0 _080CCAA4: .4byte gUnknown_0202F7C9 _080CCAA8: .4byte sub_80CCB00 -_080CCAAC: .4byte gUnknown_03004B00 +_080CCAAC: .4byte gBattleAnimArgs _080CCAB0: ldrh r0, [r6, 0x20] ldrh r1, [r3] @@ -4858,7 +4858,7 @@ _080CCC4C: .4byte gSprites sub_80CCC50: @ 80CCC50 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, _080CCC70 @ =gUnknown_03004B00 + ldr r4, _080CCC70 @ =gBattleAnimArgs ldrh r0, [r4, 0x4] strh r0, [r5, 0x2E] ldr r0, _080CCC74 @ =gUnknown_0202F7C8 @@ -4872,7 +4872,7 @@ sub_80CCC50: @ 80CCC50 subs r0, r1 b _080CCC7E .align 2, 0 -_080CCC70: .4byte gUnknown_03004B00 +_080CCC70: .4byte gBattleAnimArgs _080CCC74: .4byte gUnknown_0202F7C8 _080CCC78: ldrh r0, [r4] @@ -4880,7 +4880,7 @@ _080CCC78: adds r0, r1 _080CCC7E: strh r0, [r5, 0x20] - ldr r4, _080CCCAC @ =gUnknown_03004B00 + ldr r4, _080CCCAC @ =gBattleAnimArgs ldrb r1, [r4, 0xA] adds r0, r5, 0 bl StartSpriteAnim @@ -4901,7 +4901,7 @@ _080CCC7E: pop {r0} bx r0 .align 2, 0 -_080CCCAC: .4byte gUnknown_03004B00 +_080CCCAC: .4byte gBattleAnimArgs _080CCCB0: .4byte sub_80CCCB4 thumb_func_end sub_80CCC50 @@ -4972,7 +4972,7 @@ sub_80CCD24: @ 80CCD24 lsls r0, 24 cmp r0, 0 beq _080CCD3A - ldr r1, _080CCD98 @ =gUnknown_03004B00 + ldr r1, _080CCD98 @ =gBattleAnimArgs ldrh r0, [r1, 0x2] adds r0, 0x8 strh r0, [r1, 0x2] @@ -4982,7 +4982,7 @@ _080CCD3A: movs r1, 0 bl sub_8077EE4 lsls r0, 24 - ldr r4, _080CCD98 @ =gUnknown_03004B00 + ldr r4, _080CCD98 @ =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4] adds r0, r1 @@ -5021,7 +5021,7 @@ _080CCD78: strb r1, [r5, 0x5] b _080CCDB8 .align 2, 0 -_080CCD98: .4byte gUnknown_03004B00 +_080CCD98: .4byte gBattleAnimArgs _080CCD9C: .4byte gUnknown_0202F7C8 _080CCDA0: ldrb r0, [r6] @@ -5036,7 +5036,7 @@ _080CCDA0: orrs r0, r1 strb r0, [r5, 0x5] _080CCDB8: - ldr r0, _080CCDF8 @ =gUnknown_03004B00 + ldr r0, _080CCDF8 @ =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r5, 0x2E] ldr r0, _080CCDFC @ =0x00002828 @@ -5067,7 +5067,7 @@ _080CCDB8: pop {r0} bx r0 .align 2, 0 -_080CCDF8: .4byte gUnknown_03004B00 +_080CCDF8: .4byte gBattleAnimArgs _080CCDFC: .4byte 0x00002828 _080CCE00: .4byte REG_BLDCNT _080CCE04: .4byte REG_BLDALPHA @@ -5507,7 +5507,7 @@ _080CD138: sub_80CD140: @ 80CD140 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, _080CD184 @ =gUnknown_03004B00 + ldr r5, _080CD184 @ =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r5, r1] cmp r0, 0 @@ -5538,7 +5538,7 @@ _080CD154: pop {r0} bx r0 .align 2, 0 -_080CD184: .4byte gUnknown_03004B00 +_080CD184: .4byte gBattleAnimArgs _080CD188: .4byte move_anim_8072740 _080CD18C: .4byte sub_8078394 thumb_func_end sub_80CD140 @@ -5547,7 +5547,7 @@ _080CD18C: .4byte sub_8078394 sub_80CD190: @ 80CD190 push {r4-r6,lr} adds r5, r0, 0 - ldr r0, _080CD1A4 @ =gUnknown_03004B00 + ldr r0, _080CD1A4 @ =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 @@ -5555,13 +5555,13 @@ sub_80CD190: @ 80CD190 ldr r0, _080CD1A8 @ =gUnknown_0202F7C8 b _080CD1AE .align 2, 0 -_080CD1A4: .4byte gUnknown_03004B00 +_080CD1A4: .4byte gBattleAnimArgs _080CD1A8: .4byte gUnknown_0202F7C8 _080CD1AC: ldr r0, _080CD1F0 @ =gUnknown_0202F7C9 _080CD1AE: ldrb r6, [r0] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _080CD1F8 @@ -5572,7 +5572,7 @@ _080CD1AE: lsls r0, 24 cmp r0, 0 beq _080CD1F8 - ldr r4, _080CD1F4 @ =gUnknown_03004B00 + ldr r4, _080CD1F4 @ =gBattleAnimArgs ldrb r1, [r4, 0xC] adds r2, r5, 0 adds r2, 0x20 @@ -5591,9 +5591,9 @@ _080CD1AE: b _080CD248 .align 2, 0 _080CD1F0: .4byte gUnknown_0202F7C9 -_080CD1F4: .4byte gUnknown_03004B00 +_080CD1F4: .4byte gBattleAnimArgs _080CD1F8: - ldr r4, _080CD218 @ =gUnknown_03004B00 + ldr r4, _080CD218 @ =gBattleAnimArgs movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0 @@ -5608,7 +5608,7 @@ _080CD1F8: movs r1, 0x1 b _080CD22E .align 2, 0 -_080CD218: .4byte gUnknown_03004B00 +_080CD218: .4byte gBattleAnimArgs _080CD21C: adds r0, r6, 0 movs r1, 0x2 @@ -5625,13 +5625,13 @@ _080CD22E: ldrh r4, [r4, 0x2] adds r0, r4 strh r0, [r5, 0x22] - ldr r0, _080CD268 @ =gUnknown_03004B00 + ldr r0, _080CD268 @ =gBattleAnimArgs movs r2, 0 ldrsh r1, [r0, r2] adds r0, r5, 0 bl sub_807867C _080CD248: - ldr r1, _080CD268 @ =gUnknown_03004B00 + ldr r1, _080CD268 @ =gBattleAnimArgs ldrh r0, [r1, 0xA] strh r0, [r5, 0x2E] ldrh r0, [r1, 0x6] @@ -5647,7 +5647,7 @@ _080CD248: pop {r0} bx r0 .align 2, 0 -_080CD268: .4byte gUnknown_03004B00 +_080CD268: .4byte gBattleAnimArgs _080CD26C: .4byte move_anim_8072740 _080CD270: .4byte sub_8078394 thumb_func_end sub_80CD190 @@ -5663,7 +5663,7 @@ sub_80CD274: @ 80CD274 lsls r0, 24 cmp r0, 0 bne _080CD2A8 - ldr r0, _080CD2A4 @ =gUnknown_03004B00 + ldr r0, _080CD2A4 @ =gBattleAnimArgs ldrh r1, [r0] ldrh r2, [r4, 0x20] adds r1, r2 @@ -5675,9 +5675,9 @@ sub_80CD274: @ 80CD274 b _080CD2C2 .align 2, 0 _080CD2A0: .4byte gUnknown_0202F7C8 -_080CD2A4: .4byte gUnknown_03004B00 +_080CD2A4: .4byte gBattleAnimArgs _080CD2A8: - ldr r2, _080CD2CC @ =gUnknown_03004B00 + ldr r2, _080CD2CC @ =gBattleAnimArgs ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 @@ -5696,7 +5696,7 @@ _080CD2C2: pop {r0} bx r0 .align 2, 0 -_080CD2CC: .4byte gUnknown_03004B00 +_080CD2CC: .4byte gBattleAnimArgs _080CD2D0: .4byte sub_80CD2D4 thumb_func_end sub_80CD274 @@ -5755,7 +5755,7 @@ sub_80CD328: @ 80CD328 lsls r0, 24 cmp r0, 0 bne _080CD360 - ldr r1, _080CD35C @ =gUnknown_03004B00 + ldr r1, _080CD35C @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -5769,9 +5769,9 @@ sub_80CD328: @ 80CD328 b _080CD37E .align 2, 0 _080CD358: .4byte gUnknown_0202F7C8 -_080CD35C: .4byte gUnknown_03004B00 +_080CD35C: .4byte gBattleAnimArgs _080CD360: - ldr r2, _080CD388 @ =gUnknown_03004B00 + ldr r2, _080CD388 @ =gBattleAnimArgs ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 @@ -5792,7 +5792,7 @@ _080CD37E: pop {r0} bx r0 .align 2, 0 -_080CD388: .4byte gUnknown_03004B00 +_080CD388: .4byte gBattleAnimArgs _080CD38C: .4byte 0x0000ffff _080CD390: .4byte sub_80CD394 thumb_func_end sub_80CD328 @@ -6165,7 +6165,7 @@ _080CD650: .4byte sub_80CD654 sub_80CD654: @ 80CD654 push {lr} adds r2, r0, 0 - ldr r0, _080CD670 @ =gUnknown_03004B00 + ldr r0, _080CD670 @ =gBattleAnimArgs ldrh r1, [r0, 0xE] ldr r0, _080CD674 @ =0x0000ffff cmp r1, r0 @@ -6179,7 +6179,7 @@ _080CD66C: pop {r0} bx r0 .align 2, 0 -_080CD670: .4byte gUnknown_03004B00 +_080CD670: .4byte gBattleAnimArgs _080CD674: .4byte 0x0000ffff _080CD678: .4byte sub_80CD67C thumb_func_end sub_80CD654 @@ -6231,7 +6231,7 @@ _080CD6C4: sub_80CD6CC: @ 80CD6CC push {r4,lr} adds r3, r0, 0 - ldr r0, _080CD6EC @ =gUnknown_03004B00 + ldr r0, _080CD6EC @ =gBattleAnimArgs ldrh r0, [r0] strh r0, [r3, 0x6] lsls r0, 16 @@ -6246,7 +6246,7 @@ sub_80CD6CC: @ 80CD6CC strh r0, [r3, 0x22] b _080CD742 .align 2, 0 -_080CD6EC: .4byte gUnknown_03004B00 +_080CD6EC: .4byte gBattleAnimArgs _080CD6F0: cmp r0, 0x2 bne _080CD70C @@ -6329,7 +6329,7 @@ sub_80CD774: @ 80CD774 strb r0, [r2] movs r0, 0 strh r0, [r3, 0x2E] - ldr r0, _080CD79C @ =gUnknown_03004B00 + ldr r0, _080CD79C @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 @@ -6340,7 +6340,7 @@ sub_80CD774: @ 80CD774 beq _080CD7A6 b _080CD7C0 .align 2, 0 -_080CD79C: .4byte gUnknown_03004B00 +_080CD79C: .4byte gBattleAnimArgs _080CD7A0: cmp r0, 0x2 beq _080CD7B8 @@ -6785,7 +6785,7 @@ sub_80CDAC8: @ 80CDAC8 lsrs r2, r0, 24 strh r2, [r5, 0xA] strh r4, [r5, 0xC] - ldr r0, _080CDB18 @ =gUnknown_03004B00 + ldr r0, _080CDB18 @ =gBattleAnimArgs movs r3, 0 ldrsh r1, [r0, r3] cmp r1, 0 @@ -6799,7 +6799,7 @@ sub_80CDAC8: @ 80CDAC8 _080CDB0C: .4byte gTasks _080CDB10: .4byte gUnknown_02024BE0 _080CDB14: .4byte gUnknown_0202F7C8 -_080CDB18: .4byte gUnknown_03004B00 +_080CDB18: .4byte gBattleAnimArgs _080CDB1C: strh r1, [r5, 0xC] movs r0, 0x8 @@ -7129,7 +7129,7 @@ _080CDD6C: sub_80CDD74: @ 80CDD74 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, _080CDD88 @ =gUnknown_03004B00 + ldr r6, _080CDD88 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 @@ -7137,7 +7137,7 @@ sub_80CDD74: @ 80CDD74 ldr r4, _080CDD8C @ =gUnknown_0202F7C8 b _080CDD92 .align 2, 0 -_080CDD88: .4byte gUnknown_03004B00 +_080CDD88: .4byte gBattleAnimArgs _080CDD8C: .4byte gUnknown_0202F7C8 _080CDD90: ldr r4, _080CDDD0 @ =gUnknown_0202F7C9 @@ -7219,7 +7219,7 @@ sub_80CDE24: @ 80CDE24 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 - ldr r1, _080CDE6C @ =gUnknown_03004B00 + ldr r1, _080CDE6C @ =gBattleAnimArgs ldr r2, _080CDE70 @ =0x0000ffd0 adds r0, r2 ldrh r1, [r1] @@ -7244,7 +7244,7 @@ sub_80CDE24: @ 80CDE24 bx r0 .align 2, 0 _080CDE68: .4byte gUnknown_0202F7C9 -_080CDE6C: .4byte gUnknown_03004B00 +_080CDE6C: .4byte gBattleAnimArgs _080CDE70: .4byte 0x0000ffd0 _080CDE74: .4byte sub_80CDEC0 thumb_func_end sub_80CDE24 @@ -7338,7 +7338,7 @@ _080CDF08: sub_80CDF0C: @ 80CDF0C push {r4-r6,lr} adds r5, r0, 0 - ldr r6, _080CDF20 @ =gUnknown_03004B00 + ldr r6, _080CDF20 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 @@ -7346,7 +7346,7 @@ sub_80CDF0C: @ 80CDF0C ldr r4, _080CDF24 @ =gUnknown_0202F7C8 b _080CDF2A .align 2, 0 -_080CDF20: .4byte gUnknown_03004B00 +_080CDF20: .4byte gBattleAnimArgs _080CDF24: .4byte gUnknown_0202F7C8 _080CDF28: ldr r4, _080CDF64 @ =gUnknown_0202F7C9 @@ -7369,7 +7369,7 @@ _080CDF2A: strh r0, [r5, 0x22] movs r0, 0 strh r0, [r5, 0x2E] - ldr r0, _080CDF68 @ =gUnknown_03004B00 + ldr r0, _080CDF68 @ =gBattleAnimArgs ldrh r0, [r0, 0x6] strh r0, [r5, 0x30] ldr r0, _080CDF6C @ =sub_80CDF70 @@ -7379,7 +7379,7 @@ _080CDF2A: bx r0 .align 2, 0 _080CDF64: .4byte gUnknown_0202F7C9 -_080CDF68: .4byte gUnknown_03004B00 +_080CDF68: .4byte gBattleAnimArgs _080CDF6C: .4byte sub_80CDF70 thumb_func_end sub_80CDF0C @@ -7556,7 +7556,7 @@ sub_80CE09C: @ 80CE09C movs r1, 0 bl sub_8077ABC lsls r0, 24 - ldr r5, _080CE100 @ =gUnknown_03004B00 + ldr r5, _080CE100 @ =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r5] adds r0, r1 @@ -7581,7 +7581,7 @@ _080CE0E0: adds r0, 0x1 strh r0, [r6, 0x2E] _080CE0E6: - ldr r0, _080CE100 @ =gUnknown_03004B00 + ldr r0, _080CE100 @ =gBattleAnimArgs ldrh r1, [r0, 0xE] ldr r0, _080CE104 @ =0x0000ffff cmp r1, r0 @@ -7594,7 +7594,7 @@ _080CE0F6: bx r0 .align 2, 0 _080CE0FC: .4byte gUnknown_0202F7C8 -_080CE100: .4byte gUnknown_03004B00 +_080CE100: .4byte gBattleAnimArgs _080CE104: .4byte 0x0000ffff thumb_func_end sub_80CE09C @@ -7612,13 +7612,13 @@ sub_80CE108: @ 80CE108 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _080CE134 - ldr r1, _080CE12C @ =gUnknown_03004B00 + ldr r1, _080CE12C @ =gBattleAnimArgs ldr r0, _080CE130 @ =0x0000ffff strh r0, [r1, 0xE] b _080CE16C .align 2, 0 _080CE128: .4byte gTasks -_080CE12C: .4byte gUnknown_03004B00 +_080CE12C: .4byte gBattleAnimArgs _080CE130: .4byte 0x0000ffff _080CE134: cmp r0, 0x2 @@ -7673,7 +7673,7 @@ sub_80CE17C: @ 80CE17C movs r1, 0x40 orrs r0, r1 strb r0, [r2] - ldr r0, _080CE1A4 @ =gUnknown_03004B00 + ldr r0, _080CE1A4 @ =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] ldr r0, _080CE1A8 @ =sub_80CE1AC @@ -7682,7 +7682,7 @@ sub_80CE17C: @ 80CE17C pop {r0} bx r0 .align 2, 0 -_080CE1A4: .4byte gUnknown_03004B00 +_080CE1A4: .4byte gBattleAnimArgs _080CE1A8: .4byte sub_80CE1AC thumb_func_end sub_80CE17C @@ -7789,7 +7789,7 @@ unref_sub_80CE260: @ 80CE260 ldrb r0, [r0] cmp r4, r0 bcs _080CE2BC - ldr r6, _080CE2CC @ =gUnknown_03004B00 + ldr r6, _080CE2CC @ =gBattleAnimArgs ldr r5, _080CE2D0 @ =gUnknown_03004340 _080CE274: movs r1, 0 @@ -7834,7 +7834,7 @@ _080CE2BC: bx r0 .align 2, 0 _080CE2C8: .4byte gUnknown_02024A68 -_080CE2CC: .4byte gUnknown_03004B00 +_080CE2CC: .4byte gBattleAnimArgs _080CE2D0: .4byte gUnknown_03004340 thumb_func_end unref_sub_80CE260 @@ -7881,7 +7881,7 @@ sub_80CE30C: @ 80CE30C movs r0, 0x28 b _080CE32A _080CE322: - ldr r0, _080CE34C @ =gUnknown_03004B00 + ldr r0, _080CE34C @ =gBattleAnimArgs ldrh r1, [r0] strh r1, [r4, 0x20] ldrh r0, [r0, 0x2] @@ -7903,7 +7903,7 @@ _080CE32A: pop {r0} bx r0 .align 2, 0 -_080CE34C: .4byte gUnknown_03004B00 +_080CE34C: .4byte gBattleAnimArgs _080CE350: .4byte sub_80CE354 thumb_func_end sub_80CE30C @@ -7931,7 +7931,7 @@ sub_80CE36C: @ 80CE36C movs r1, 0x2 bl sub_8077ABC lsls r0, 24 - ldr r2, _080CE3A8 @ =gUnknown_03004B00 + ldr r2, _080CE3A8 @ =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r2] adds r0, r1 @@ -7952,7 +7952,7 @@ sub_80CE36C: @ 80CE36C bx r0 .align 2, 0 _080CE3A4: .4byte gUnknown_0202F7C8 -_080CE3A8: .4byte gUnknown_03004B00 +_080CE3A8: .4byte gBattleAnimArgs _080CE3AC: .4byte sub_80CE3B0 thumb_func_end sub_80CE36C @@ -8320,7 +8320,7 @@ _080CE66C: .4byte gPaletteFade sub_80CE670: @ 80CE670 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, _080CE6F4 @ =gUnknown_03004B00 + ldr r6, _080CE6F4 @ =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r6, r1] cmp r0, 0x1 @@ -8383,7 +8383,7 @@ _080CE68E: ldr r0, _080CE6FC @ =0xffffec00 b _080CE726 .align 2, 0 -_080CE6F4: .4byte gUnknown_03004B00 +_080CE6F4: .4byte gBattleAnimArgs _080CE6F8: .4byte gUnknown_0202F7C9 _080CE6FC: .4byte 0xffffec00 _080CE700: @@ -8923,7 +8923,7 @@ sub_80CEB0C: @ 80CEB0C sub sp, 0x4 adds r5, r0, 0 bl sub_8078650 - ldr r4, _080CEB64 @ =gUnknown_03004B00 + ldr r4, _080CEB64 @ =gBattleAnimArgs ldrb r1, [r4] adds r0, r5, 0 bl StartSpriteAnim @@ -8961,7 +8961,7 @@ _080CEB48: movs r3, 0x28 b _080CEB86 .align 2, 0 -_080CEB64: .4byte gUnknown_03004B00 +_080CEB64: .4byte gBattleAnimArgs _080CEB68: .4byte gUnknown_083D712C _080CEB6C: ldr r4, _080CEBBC @ =gUnknown_0202F7C9 @@ -9172,7 +9172,7 @@ sub_80CECE8: @ 80CECE8 lsrs r0, 24 cmp r0, 0x1 bne _080CED06 - ldr r1, _080CED70 @ =gUnknown_03004B00 + ldr r1, _080CED70 @ =gBattleAnimArgs movs r2, 0x2 ldrsh r0, [r1, r2] negs r0, r0 @@ -9182,7 +9182,7 @@ _080CED06: movs r1, 0x2 bl sub_8077ABC lsls r0, 24 - ldr r4, _080CED70 @ =gUnknown_03004B00 + ldr r4, _080CED70 @ =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 @@ -9226,7 +9226,7 @@ _080CED06: bx r0 .align 2, 0 _080CED6C: .4byte gUnknown_0202F7C8 -_080CED70: .4byte gUnknown_03004B00 +_080CED70: .4byte gBattleAnimArgs _080CED74: .4byte sub_80CED78 thumb_func_end sub_80CECE8 @@ -9297,7 +9297,7 @@ _080CEDEA: sub_80CEDF0: @ 80CEDF0 push {r4-r6,lr} adds r5, r0, 0 - ldr r0, _080CEE10 @ =gUnknown_03004B00 + ldr r0, _080CEE10 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 @@ -9312,7 +9312,7 @@ sub_80CEDF0: @ 80CEDF0 movs r6, 0x10 b _080CEE16 .align 2, 0 -_080CEE10: .4byte gUnknown_03004B00 +_080CEE10: .4byte gBattleAnimArgs _080CEE14: ldr r6, _080CEE50 @ =0x0000fff0 _080CEE16: @@ -9356,7 +9356,7 @@ sub_80CEE60: @ 80CEE60 ldrh r0, [r4, 0x22] adds r0, 0x8 strh r0, [r4, 0x22] - ldr r5, _080CEED8 @ =gUnknown_03004B00 + ldr r5, _080CEED8 @ =gBattleAnimArgs ldrb r1, [r5, 0x2] adds r0, r4, 0 bl StartSpriteAnim @@ -9409,7 +9409,7 @@ _080CEEAC: pop {r0} bx r0 .align 2, 0 -_080CEED8: .4byte gUnknown_03004B00 +_080CEED8: .4byte gBattleAnimArgs _080CEEDC: .4byte gUnknown_083D712C _080CEEE0: .4byte 0x0000ffe0 _080CEEE4: .4byte sub_80CEEE8 @@ -9514,7 +9514,7 @@ _080CEF90: sub_80CEF9C: @ 80CEF9C push {r4,r5,lr} adds r5, r0, 0 - ldr r0, _080CEFB0 @ =gUnknown_03004B00 + ldr r0, _080CEFB0 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -9522,7 +9522,7 @@ sub_80CEF9C: @ 80CEF9C ldr r0, _080CEFB4 @ =gUnknown_0202F7C8 b _080CEFBA .align 2, 0 -_080CEFB0: .4byte gUnknown_03004B00 +_080CEFB0: .4byte gBattleAnimArgs _080CEFB4: .4byte gUnknown_0202F7C8 _080CEFB8: ldr r0, _080CEFF8 @ =gUnknown_0202F7C9 @@ -9538,7 +9538,7 @@ _080CEFBA: negs r1, r0 orrs r1, r0 lsrs r1, 31 - ldr r0, _080CEFFC @ =gUnknown_03004B00 + ldr r0, _080CEFFC @ =gBattleAnimArgs ldrh r0, [r0, 0x2] strh r0, [r5, 0x2E] adds r0, r1, 0x2 @@ -9555,7 +9555,7 @@ _080CEFBA: bx r0 .align 2, 0 _080CEFF8: .4byte gUnknown_0202F7C9 -_080CEFFC: .4byte gUnknown_03004B00 +_080CEFFC: .4byte gBattleAnimArgs _080CF000: .4byte sub_80CF008 _080CF004: .4byte sub_8078600 thumb_func_end sub_80CEF9C @@ -9593,7 +9593,7 @@ _080CF03C: .4byte sub_8078600 sub_80CF040: @ 80CF040 push {r4,lr} adds r4, r0, 0 - ldr r0, _080CF054 @ =gUnknown_03004B00 + ldr r0, _080CF054 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -9601,7 +9601,7 @@ sub_80CF040: @ 80CF040 ldr r0, _080CF058 @ =gUnknown_0202F7C8 b _080CF05E .align 2, 0 -_080CF054: .4byte gUnknown_03004B00 +_080CF054: .4byte gBattleAnimArgs _080CF058: .4byte gUnknown_0202F7C8 _080CF05C: ldr r0, _080CF07C @ =gUnknown_0202F7C9 @@ -9657,7 +9657,7 @@ _080CF0B8: .4byte sub_80785E4 sub_80CF0BC: @ 80CF0BC push {r4-r6,lr} adds r4, r0, 0 - ldr r0, _080CF0D0 @ =gUnknown_03004B00 + ldr r0, _080CF0D0 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -9665,7 +9665,7 @@ sub_80CF0BC: @ 80CF0BC ldr r0, _080CF0D4 @ =gUnknown_0202F7C8 b _080CF0DA .align 2, 0 -_080CF0D0: .4byte gUnknown_03004B00 +_080CF0D0: .4byte gBattleAnimArgs _080CF0D4: .4byte gUnknown_0202F7C8 _080CF0D8: ldr r0, _080CF12C @ =gUnknown_0202F7C9 @@ -9803,7 +9803,7 @@ _080CF1C4: .4byte gSineTable sub_80CF1C8: @ 80CF1C8 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, _080CF1DC @ =gUnknown_03004B00 + ldr r0, _080CF1DC @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -9811,7 +9811,7 @@ sub_80CF1C8: @ 80CF1C8 ldr r0, _080CF1E0 @ =gUnknown_0202F7C8 b _080CF1E6 .align 2, 0 -_080CF1DC: .4byte gUnknown_03004B00 +_080CF1DC: .4byte gBattleAnimArgs _080CF1E0: .4byte gUnknown_0202F7C8 _080CF1E4: ldr r0, _080CF208 @ =gUnknown_0202F7C9 @@ -9903,7 +9903,7 @@ sub_80CF280: @ 80CF280 push {r4,r5,lr} adds r4, r0, 0 bl sub_8078650 - ldr r5, _080CF2C4 @ =gUnknown_03004B00 + ldr r5, _080CF2C4 @ =gBattleAnimArgs movs r0, 0 ldrsh r1, [r5, r0] adds r0, r4, 0 @@ -9931,7 +9931,7 @@ sub_80CF280: @ 80CF280 pop {r0} bx r0 .align 2, 0 -_080CF2C4: .4byte gUnknown_03004B00 +_080CF2C4: .4byte gBattleAnimArgs _080CF2C8: .4byte move_anim_8074EE0 _080CF2CC: .4byte sub_8078278 thumb_func_end sub_80CF280 @@ -9940,7 +9940,7 @@ _080CF2CC: .4byte sub_8078278 sub_80CF2D0: @ 80CF2D0 push {r4,lr} adds r4, r0, 0 - ldr r0, _080CF2E4 @ =gUnknown_03004B00 + ldr r0, _080CF2E4 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -9948,7 +9948,7 @@ sub_80CF2D0: @ 80CF2D0 ldr r0, _080CF2E8 @ =gUnknown_0202F7C8 b _080CF2EE .align 2, 0 -_080CF2E4: .4byte gUnknown_03004B00 +_080CF2E4: .4byte gBattleAnimArgs _080CF2E8: .4byte gUnknown_0202F7C8 _080CF2EC: ldr r0, _080CF308 @ =gUnknown_0202F7C9 @@ -10098,7 +10098,7 @@ sub_80CF3C4: @ 80CF3C4 lsls r0, 24 cmp r0, 0 beq _080CF41C - ldr r0, _080CF418 @ =gUnknown_03004B00 + ldr r0, _080CF418 @ =gBattleAnimArgs ldrh r1, [r5, 0x20] ldrh r2, [r0] subs r1, r2 @@ -10109,9 +10109,9 @@ sub_80CF3C4: @ 80CF3C4 _080CF40C: .4byte gUnknown_0202F7C8 _080CF410: .4byte gUnknown_02024BE0 _080CF414: .4byte gUnknown_0202F7C9 -_080CF418: .4byte gUnknown_03004B00 +_080CF418: .4byte gBattleAnimArgs _080CF41C: - ldr r1, _080CF450 @ =gUnknown_03004B00 + ldr r1, _080CF450 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r5, 0x20] adds r0, r2 @@ -10138,7 +10138,7 @@ _080CF426: pop {r0} bx r0 .align 2, 0 -_080CF450: .4byte gUnknown_03004B00 +_080CF450: .4byte gBattleAnimArgs _080CF454: .4byte sub_80CF374 thumb_func_end sub_80CF3C4 @@ -10148,7 +10148,7 @@ sub_80CF458: @ 80CF458 adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 - ldr r1, _080CF484 @ =gUnknown_03004B00 + ldr r1, _080CF484 @ =gBattleAnimArgs ldrh r0, [r1, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x6] @@ -10164,7 +10164,7 @@ sub_80CF458: @ 80CF458 pop {r0} bx r0 .align 2, 0 -_080CF484: .4byte gUnknown_03004B00 +_080CF484: .4byte gBattleAnimArgs _080CF488: .4byte sub_80782D8 _080CF48C: .4byte sub_80CF490 thumb_func_end sub_80CF458 @@ -10373,7 +10373,7 @@ sub_80CF610: @ 80CF610 push {r4,r5,lr} adds r4, r0, 0 bl sub_8078650 - ldr r5, _080CF658 @ =gUnknown_03004B00 + ldr r5, _080CF658 @ =gBattleAnimArgs movs r0, 0 ldrsh r1, [r5, r0] adds r0, r4, 0 @@ -10403,7 +10403,7 @@ sub_80CF610: @ 80CF610 strb r1, [r2] b _080CF674 .align 2, 0 -_080CF658: .4byte gUnknown_03004B00 +_080CF658: .4byte gBattleAnimArgs _080CF65C: .4byte gUnknown_0202F7C8 _080CF660: movs r1, 0x4 @@ -10481,13 +10481,13 @@ sub_80CF6DC: @ 80CF6DC lsls r0, 24 cmp r0, 0 beq _080CF700 - ldr r1, _080CF6FC @ =gUnknown_03004B00 + ldr r1, _080CF6FC @ =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] b _080CF722 .align 2, 0 -_080CF6FC: .4byte gUnknown_03004B00 +_080CF6FC: .4byte gBattleAnimArgs _080CF700: ldr r0, _080CF7C8 @ =gUnknown_0202F7C8 ldrb r0, [r0] @@ -10495,7 +10495,7 @@ _080CF700: lsls r0, 24 cmp r0, 0 beq _080CF722 - ldr r1, _080CF7CC @ =gUnknown_03004B00 + ldr r1, _080CF7CC @ =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] @@ -10514,7 +10514,7 @@ _080CF722: movs r1, 0x2 bl sub_8077ABC lsls r0, 24 - ldr r6, _080CF7CC @ =gUnknown_03004B00 + ldr r6, _080CF7CC @ =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r6, 0x4] adds r0, r1 @@ -10584,7 +10584,7 @@ _080CF794: bx r0 .align 2, 0 _080CF7C8: .4byte gUnknown_0202F7C8 -_080CF7CC: .4byte gUnknown_03004B00 +_080CF7CC: .4byte gBattleAnimArgs _080CF7D0: .4byte gUnknown_0202F7C9 _080CF7D4: .4byte 0xffffa000 _080CF7D8: .4byte sub_8078B34 @@ -11043,7 +11043,7 @@ sub_80CFB04: @ 80CFB04 adds r0, r1 movs r1, 0x2 strh r1, [r0, 0x10] - ldr r3, _080CFB64 @ =gUnknown_03004B00 + ldr r3, _080CFB64 @ =gBattleAnimArgs ldrh r0, [r3] negs r0, r0 strh r0, [r3] @@ -11060,7 +11060,7 @@ sub_80CFB04: @ 80CFB04 b _080CFBCA .align 2, 0 _080CFB60: .4byte gTasks -_080CFB64: .4byte gUnknown_03004B00 +_080CFB64: .4byte gBattleAnimArgs _080CFB68: movs r0, 0x1 orrs r0, r1 @@ -11084,7 +11084,7 @@ _080CFB70: lsls r0, 3 adds r0, r1 strh r3, [r0, 0x10] - ldr r2, _080CFBC0 @ =gUnknown_03004B00 + ldr r2, _080CFBC0 @ =gBattleAnimArgs ldrh r0, [r2] negs r0, r0 strh r0, [r2] @@ -11104,7 +11104,7 @@ _080CFB70: _080CFBB4: .4byte gUnknown_02024A72 _080CFBB8: .4byte gUnknown_0202F7C9 _080CFBBC: .4byte gTasks -_080CFBC0: .4byte gUnknown_03004B00 +_080CFBC0: .4byte gBattleAnimArgs _080CFBC4: movs r0, 0x1 orrs r0, r1 @@ -11131,7 +11131,7 @@ _080CFBCA: lsrs r0, 24 strh r0, [r4, 0x1C] mov r9, r0 - ldr r0, _080CFC2C @ =gUnknown_020239F8 + ldr r0, _080CFC2C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -11154,7 +11154,7 @@ _080CFBCA: .align 2, 0 _080CFC24: .4byte gUnknown_0202F7C8 _080CFC28: .4byte gTasks -_080CFC2C: .4byte gUnknown_020239F8 +_080CFC2C: .4byte gBattleTypeFlags _080CFC30: .4byte gUnknown_0202F7C9 _080CFC34: mov r5, sp @@ -11180,7 +11180,7 @@ _080CFC56: lsls r1, 3 adds r1, r0 mov r2, sp - ldr r3, _080CFC98 @ =gUnknown_03004B00 + ldr r3, _080CFC98 @ =gBattleAnimArgs ldrh r0, [r3] ldrh r2, [r2] adds r0, r2 @@ -11205,7 +11205,7 @@ _080CFC56: .align 2, 0 _080CFC90: .4byte gUnknown_0202F7C9 _080CFC94: .4byte gTasks -_080CFC98: .4byte gUnknown_03004B00 +_080CFC98: .4byte gBattleAnimArgs _080CFC9C: subs r0, r1, r2 _080CFC9E: @@ -11213,7 +11213,7 @@ _080CFC9E: lsrs r0, 16 lsls r4, r0, 16 asrs r4, 16 - ldr r5, _080CFD14 @ =gUnknown_03004B00 + ldr r5, _080CFD14 @ =gBattleAnimArgs ldrh r1, [r5, 0x4] movs r0, 0x2 negs r0, r0 @@ -11263,7 +11263,7 @@ _080CFC9E: strh r1, [r6, 0x18] b _080CFD3C .align 2, 0 -_080CFD14: .4byte gUnknown_03004B00 +_080CFD14: .4byte gBattleAnimArgs _080CFD18: .4byte gTasks _080CFD1C: subs r4, r1 @@ -11286,7 +11286,7 @@ _080CFD3C: adds r0, r3, r7 lsls r0, 3 adds r5, r0, r1 - ldr r4, _080CFD80 @ =gUnknown_03004B00 + ldr r4, _080CFD80 @ =gBattleAnimArgs ldrh r0, [r4, 0x6] strh r0, [r5, 0xE] ldrh r1, [r4, 0x8] @@ -11314,7 +11314,7 @@ _080CFD3C: b _080CFDC4 .align 2, 0 _080CFD7C: .4byte gTasks -_080CFD80: .4byte gUnknown_03004B00 +_080CFD80: .4byte gBattleAnimArgs _080CFD84: .4byte gUnknown_0202F7C9 _080CFD88: .4byte 0x0000ffc0 _080CFD8C: @@ -11476,7 +11476,7 @@ sub_80CFE9C: @ 80CFE9C movs r1, 0x3 bl sub_8077ABC lsls r0, 24 - ldr r4, _080CFF40 @ =gUnknown_03004B00 + ldr r4, _080CFF40 @ =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4, 0x6] adds r0, r1 @@ -11537,7 +11537,7 @@ _080CFEE0: bx r0 .align 2, 0 _080CFF3C: .4byte gUnknown_0202F7C9 -_080CFF40: .4byte gUnknown_03004B00 +_080CFF40: .4byte gBattleAnimArgs _080CFF44: .4byte gUnknown_0202F7C8 _080CFF48: .4byte sub_8078C00 _080CFF4C: .4byte move_anim_8072740 @@ -11791,7 +11791,7 @@ sub_80D0118: @ 80D0118 adds r0, 0x10 strh r0, [r4, 0x22] _080D0136: - ldr r1, _080D016C @ =gUnknown_03004B00 + ldr r1, _080D016C @ =gBattleAnimArgs ldrh r0, [r1, 0x8] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x4] @@ -11815,7 +11815,7 @@ _080D0136: bx r0 .align 2, 0 _080D0168: .4byte gUnknown_0202F7C8 -_080D016C: .4byte gUnknown_03004B00 +_080D016C: .4byte gBattleAnimArgs _080D0170: .4byte sub_8078114 _080D0174: .4byte move_anim_8072740 thumb_func_end sub_80D0118 @@ -11831,7 +11831,7 @@ sub_80D0178: @ 80D0178 movs r0, 0x10 mov r8, r0 ldr r6, _080D01F8 @ =0x0000fff0 - ldr r0, _080D01FC @ =gUnknown_03004B00 + ldr r0, _080D01FC @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -11884,7 +11884,7 @@ _080D01A4: .align 2, 0 _080D01F4: .4byte 0x0000ffe0 _080D01F8: .4byte 0x0000fff0 -_080D01FC: .4byte gUnknown_03004B00 +_080D01FC: .4byte gBattleAnimArgs _080D0200: .4byte gUnknown_0202F7C9 _080D0204: .4byte sub_8078B34 _080D0208: .4byte sub_80D020C @@ -11920,7 +11920,7 @@ sub_80D0228: @ 80D0228 movs r2, 0x10 mov r9, r2 ldr r6, _080D02C0 @ =0x0000fff0 - ldr r7, _080D02C4 @ =gUnknown_03004B00 + ldr r7, _080D02C4 @ =gBattleAnimArgs ldrh r1, [r7] movs r2, 0 ldrsh r0, [r7, r2] @@ -11983,7 +11983,7 @@ _080D025C: .align 2, 0 _080D02BC: .4byte 0x0000ffe0 _080D02C0: .4byte 0x0000fff0 -_080D02C4: .4byte gUnknown_03004B00 +_080D02C4: .4byte gBattleAnimArgs _080D02C8: .4byte gUnknown_0202F7C9 _080D02CC: .4byte sub_80D02D0 thumb_func_end sub_80D0228 @@ -12580,7 +12580,7 @@ sub_80D074C: @ 80D074C lsls r0, 3 ldr r1, _080D0770 @ =gTasks adds r4, r0, r1 - ldr r5, _080D0774 @ =gUnknown_03004B00 + ldr r5, _080D0774 @ =gBattleAnimArgs movs r1, 0x2 ldrsh r0, [r5, r1] cmp r0, 0 @@ -12590,7 +12590,7 @@ sub_80D074C: @ 80D074C b _080D079E .align 2, 0 _080D0770: .4byte gTasks -_080D0774: .4byte gUnknown_03004B00 +_080D0774: .4byte gBattleAnimArgs _080D0778: ldrb r0, [r5] bl obj_id_for_side_relative_to_move @@ -12887,7 +12887,7 @@ _080D09BC: .4byte sub_8078394 sub_80D09C0: @ 80D09C0 push {r4-r6,lr} adds r6, r0, 0 - ldr r0, _080D09D4 @ =gUnknown_03004B00 + ldr r0, _080D09D4 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -12895,7 +12895,7 @@ sub_80D09C0: @ 80D09C0 ldr r0, _080D09D8 @ =gUnknown_0202F7C8 b _080D09DE .align 2, 0 -_080D09D4: .4byte gUnknown_03004B00 +_080D09D4: .4byte gBattleAnimArgs _080D09D8: .4byte gUnknown_0202F7C8 _080D09DC: ldr r0, _080D0A3C @ =gUnknown_0202F7C9 @@ -12907,7 +12907,7 @@ _080D09DE: lsrs r0, 24 cmp r0, 0x1 bne _080D09F8 - ldr r1, _080D0A40 @ =gUnknown_03004B00 + ldr r1, _080D0A40 @ =gBattleAnimArgs movs r2, 0x2 ldrsh r0, [r1, r2] negs r0, r0 @@ -12917,7 +12917,7 @@ _080D09F8: movs r1, 0x2 bl sub_8077ABC lsls r0, 24 - ldr r4, _080D0A40 @ =gUnknown_03004B00 + ldr r4, _080D0A40 @ =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 @@ -12947,7 +12947,7 @@ _080D0A2A: bx r0 .align 2, 0 _080D0A3C: .4byte gUnknown_0202F7C9 -_080D0A40: .4byte gUnknown_03004B00 +_080D0A40: .4byte gBattleAnimArgs _080D0A44: .4byte move_anim_8074EE0 _080D0A48: .4byte sub_80785E4 thumb_func_end sub_80D09C0 @@ -13702,7 +13702,7 @@ sub_80D0FD8: @ 80D0FD8 mov r1, sp adds r1, 0x2 strh r5, [r1] - ldr r0, _080D0FFC @ =gUnknown_03004B00 + ldr r0, _080D0FFC @ =gBattleAnimArgs movs r3, 0x4 ldrsh r2, [r0, r3] adds r7, r1, 0 @@ -13712,7 +13712,7 @@ sub_80D0FD8: @ 80D0FD8 ldr r0, _080D1000 @ =gUnknown_0202F7C8 b _080D1006 .align 2, 0 -_080D0FFC: .4byte gUnknown_03004B00 +_080D0FFC: .4byte gBattleAnimArgs _080D1000: .4byte gUnknown_0202F7C8 _080D1004: ldr r0, _080D1040 @ =gUnknown_0202F7C9 @@ -13722,7 +13722,7 @@ _080D1006: movs r0, 0x1 adds r4, r0, 0 eors r4, r1 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _080D107E @@ -13757,7 +13757,7 @@ _080D1048: lsls r0, 24 cmp r0, 0 beq _080D1074 - ldr r2, _080D1070 @ =gUnknown_03004B00 + ldr r2, _080D1070 @ =gBattleAnimArgs mov r0, sp ldrh r1, [r0] subs r1, r4 @@ -13767,9 +13767,9 @@ _080D1048: strh r0, [r2] b _080D107E .align 2, 0 -_080D1070: .4byte gUnknown_03004B00 +_080D1070: .4byte gBattleAnimArgs _080D1074: - ldr r1, _080D1090 @ =gUnknown_03004B00 + ldr r1, _080D1090 @ =gBattleAnimArgs mov r0, sp ldrh r0, [r0] subs r0, r4 @@ -13784,7 +13784,7 @@ _080D107E: pop {r0} bx r0 .align 2, 0 -_080D1090: .4byte gUnknown_03004B00 +_080D1090: .4byte gBattleAnimArgs _080D1094: .4byte sub_80793C4 thumb_func_end sub_80D0FD8 @@ -13821,7 +13821,7 @@ sub_80D10B8: @ 80D10B8 mov r1, sp adds r1, 0x2 strh r6, [r1] - ldr r0, _080D10E4 @ =gUnknown_03004B00 + ldr r0, _080D10E4 @ =gBattleAnimArgs movs r2, 0xA ldrsh r0, [r0, r2] cmp r0, 0 @@ -13831,7 +13831,7 @@ sub_80D10B8: @ 80D10B8 ldr r0, _080D10EC @ =gUnknown_0202F7C9 b _080D10F6 .align 2, 0 -_080D10E4: .4byte gUnknown_03004B00 +_080D10E4: .4byte gBattleAnimArgs _080D10E8: .4byte gUnknown_0202F7C8 _080D10EC: .4byte gUnknown_0202F7C9 _080D10F0: @@ -13841,7 +13841,7 @@ _080D10F0: _080D10F6: ldrb r0, [r0] mov r8, r0 - ldr r0, _080D1118 @ =gUnknown_03004B00 + ldr r0, _080D1118 @ =gBattleAnimArgs movs r3, 0xC ldrsh r0, [r0, r3] cmp r0, 0 @@ -13854,7 +13854,7 @@ _080D10F6: .align 2, 0 _080D1110: .4byte gUnknown_0202F7C9 _080D1114: .4byte gUnknown_0202F7C8 -_080D1118: .4byte gUnknown_03004B00 +_080D1118: .4byte gBattleAnimArgs _080D111C: movs r2, 0x2 mov r10, r2 @@ -13870,7 +13870,7 @@ _080D1124: mov r1, r10 bl sub_8077ABC lsls r0, 24 - ldr r1, _080D1164 @ =gUnknown_03004B00 + ldr r1, _080D1164 @ =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r1] adds r0, r1 @@ -13890,7 +13890,7 @@ _080D1124: adds r0, r4, r0 b _080D120A .align 2, 0 -_080D1164: .4byte gUnknown_03004B00 +_080D1164: .4byte gBattleAnimArgs _080D1168: .4byte gSprites _080D116C: .4byte gUnknown_02024BE0 _080D1170: @@ -13907,7 +13907,7 @@ _080D1180: bl sub_8077ABC lsls r0, 24 lsrs r0, 24 - ldr r1, _080D11EC @ =gUnknown_03004B00 + ldr r1, _080D11EC @ =gBattleAnimArgs ldrh r1, [r1] subs r0, r1 lsls r0, 16 @@ -13955,7 +13955,7 @@ _080D1180: adds r0, 0x1 b _080D121A .align 2, 0 -_080D11EC: .4byte gUnknown_03004B00 +_080D11EC: .4byte gBattleAnimArgs _080D11F0: .4byte gMain _080D11F4: .4byte 0x0000043d _080D11F8: .4byte gSprites @@ -13985,7 +13985,7 @@ _080D121A: ldr r1, [sp, 0x4] bl sub_8077ABC lsls r0, 24 - ldr r4, _080D1270 @ =gUnknown_03004B00 + ldr r4, _080D1270 @ =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 @@ -14016,7 +14016,7 @@ _080D121A: .align 2, 0 _080D1268: .4byte gSprites _080D126C: .4byte gUnknown_02024BE0 -_080D1270: .4byte gUnknown_03004B00 +_080D1270: .4byte gBattleAnimArgs _080D1274: .4byte gMain _080D1278: .4byte 0x0000043d _080D127C: @@ -14042,7 +14042,7 @@ _080D129C: beq _080D12C0 mov r3, sp mov r2, sp - ldr r1, _080D12BC @ =gUnknown_03004B00 + ldr r1, _080D12BC @ =gBattleAnimArgs ldrh r0, [r1, 0x6] ldrh r2, [r2] adds r0, r2 @@ -14050,11 +14050,11 @@ _080D129C: adds r2, r1, 0 b _080D12CE .align 2, 0 -_080D12BC: .4byte gUnknown_03004B00 +_080D12BC: .4byte gBattleAnimArgs _080D12C0: mov r3, sp mov r0, sp - ldr r2, _080D1310 @ =gUnknown_03004B00 + ldr r2, _080D1310 @ =gBattleAnimArgs ldrh r0, [r0] ldrh r1, [r2, 0x6] subs r0, r1 @@ -14092,7 +14092,7 @@ _080D12CE: pop {r0} bx r0 .align 2, 0 -_080D1310: .4byte gUnknown_03004B00 +_080D1310: .4byte gBattleAnimArgs _080D1314: .4byte sub_80D1098 thumb_func_end sub_80D10B8 @@ -14110,7 +14110,7 @@ sub_80D1318: @ 80D1318 ldr r1, _080D135C @ =0x01010000 adds r0, r1 lsrs r0, 16 - ldr r1, _080D1360 @ =gUnknown_03004B00 + ldr r1, _080D1360 @ =gBattleAnimArgs ldrb r2, [r1, 0xA] ldrh r3, [r1, 0x8] movs r1, 0xF @@ -14129,7 +14129,7 @@ _080D133E: .align 2, 0 _080D1358: .4byte 0x000027db _080D135C: .4byte 0x01010000 -_080D1360: .4byte gUnknown_03004B00 +_080D1360: .4byte gBattleAnimArgs _080D1364: .4byte sub_80793C4 thumb_func_end sub_80D1318 @@ -14152,7 +14152,7 @@ _080D1384: lsls r0, 2 strh r0, [r4, 0x2E] strh r1, [r4, 0x30] - ldr r0, _080D13A4 @ =gUnknown_03004B00 + ldr r0, _080D13A4 @ =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r4, 0x3C] ldr r0, _080D13A8 @ =sub_80D13AC @@ -14163,7 +14163,7 @@ _080D1384: .align 2, 0 _080D139C: .4byte gUnknown_0202F7C8 _080D13A0: .4byte 0x0000ff60 -_080D13A4: .4byte gUnknown_03004B00 +_080D13A4: .4byte gBattleAnimArgs _080D13A8: .4byte sub_80D13AC thumb_func_end sub_80D1368 @@ -14391,7 +14391,7 @@ _080D1548: .4byte sub_80D154C sub_80D154C: @ 80D154C push {lr} adds r3, r0, 0 - ldr r0, _080D1574 @ =gUnknown_03004B00 + ldr r0, _080D1574 @ =gBattleAnimArgs ldrh r1, [r0, 0xE] ldr r0, _080D1578 @ =0x0000ffff cmp r1, r0 @@ -14409,7 +14409,7 @@ sub_80D154C: @ 80D154C ldr r0, _080D157C @ =sub_80D158C b _080D1582 .align 2, 0 -_080D1574: .4byte gUnknown_03004B00 +_080D1574: .4byte gBattleAnimArgs _080D1578: .4byte 0x0000ffff _080D157C: .4byte sub_80D158C _080D1580: @@ -15299,12 +15299,12 @@ sub_80D1C08: @ 80D1C08 lsls r0, 24 cmp r0, 0 beq _080D1C28 - ldr r1, _080D1C74 @ =gUnknown_03004B00 + ldr r1, _080D1C74 @ =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080D1C28: - ldr r4, _080D1C74 @ =gUnknown_03004B00 + ldr r4, _080D1C74 @ =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r5, 0x2E] ldrb r0, [r6] @@ -15337,7 +15337,7 @@ _080D1C28: bx r0 .align 2, 0 _080D1C70: .4byte gUnknown_0202F7C8 -_080D1C74: .4byte gUnknown_03004B00 +_080D1C74: .4byte gBattleAnimArgs _080D1C78: .4byte sub_8078B34 _080D1C7C: .4byte move_anim_8072740 thumb_func_end sub_80D1C08 @@ -15776,7 +15776,7 @@ sub_80D1FDC: @ 80D1FDC ldrsh r0, [r4, r1] cmp r0, 0 bne _080D2000 - ldr r1, _080D1FFC @ =gUnknown_03004B00 + ldr r1, _080D1FFC @ =gBattleAnimArgs ldrh r0, [r1] strh r0, [r4, 0x30] ldrh r0, [r1, 0x2] @@ -15785,7 +15785,7 @@ sub_80D1FDC: @ 80D1FDC strh r0, [r4, 0x2E] b _080D205C .align 2, 0 -_080D1FFC: .4byte gUnknown_03004B00 +_080D1FFC: .4byte gBattleAnimArgs _080D2000: ldrh r0, [r4, 0x30] ldrh r2, [r4, 0x36] @@ -15841,7 +15841,7 @@ _080D205C: thumb_func_start sub_80D2064 sub_80D2064: @ 80D2064 push {lr} - ldr r2, _080D2088 @ =gUnknown_03004B00 + ldr r2, _080D2088 @ =gBattleAnimArgs ldrh r1, [r2] strh r1, [r0, 0x20] movs r1, 0xA0 @@ -15857,7 +15857,7 @@ sub_80D2064: @ 80D2064 pop {r0} bx r0 .align 2, 0 -_080D2088: .4byte gUnknown_03004B00 +_080D2088: .4byte gBattleAnimArgs _080D208C: .4byte sub_80782D8 _080D2090: .4byte sub_80D2094 thumb_func_end sub_80D2064 @@ -16640,7 +16640,7 @@ sub_80D26A4: @ 80D26A4 movs r1, 0x80 orrs r0, r1 strb r0, [r2] - ldr r1, _080D26FC @ =gUnknown_03004B00 + ldr r1, _080D26FC @ =gBattleAnimArgs ldrh r0, [r1] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x2] @@ -16659,7 +16659,7 @@ sub_80D26A4: @ 80D26A4 bx r0 .align 2, 0 _080D26F8: .4byte gUnknown_0202F7C8 -_080D26FC: .4byte gUnknown_03004B00 +_080D26FC: .4byte gBattleAnimArgs _080D2700: .4byte sub_80D2704 thumb_func_end sub_80D26A4 @@ -16759,7 +16759,7 @@ _080D2790: movs r0, 0x1 strh r0, [r4, 0x38] _080D27C0: - ldr r0, _080D27D8 @ =gUnknown_03004B00 + ldr r0, _080D27D8 @ =gBattleAnimArgs ldrh r1, [r0, 0xE] ldr r0, _080D27DC @ =0x0000ffff cmp r1, r0 @@ -16771,7 +16771,7 @@ _080D27D0: pop {r0} bx r0 .align 2, 0 -_080D27D8: .4byte gUnknown_03004B00 +_080D27D8: .4byte gBattleAnimArgs _080D27DC: .4byte 0x0000ffff thumb_func_end sub_80D2704 @@ -16792,7 +16792,7 @@ sub_80D27E0: @ 80D27E0 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r4, _080D282C @ =gUnknown_03004B00 + ldr r4, _080D282C @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0xA @@ -16810,7 +16810,7 @@ sub_80D27E0: @ 80D27E0 bx r0 .align 2, 0 _080D2828: .4byte gUnknown_0202F7C8 -_080D282C: .4byte gUnknown_03004B00 +_080D282C: .4byte gBattleAnimArgs _080D2830: .4byte sub_80D2834 thumb_func_end sub_80D27E0 @@ -16900,7 +16900,7 @@ sub_80D28AC: @ 80D28AC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r4, _080D28FC @ =gUnknown_03004B00 + ldr r4, _080D28FC @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0xA @@ -16920,7 +16920,7 @@ sub_80D28AC: @ 80D28AC bx r0 .align 2, 0 _080D28F8: .4byte gUnknown_0202F7C8 -_080D28FC: .4byte gUnknown_03004B00 +_080D28FC: .4byte gBattleAnimArgs _080D2900: .4byte sub_80D287C thumb_func_end sub_80D28AC @@ -16964,7 +16964,7 @@ sub_80D2938: @ 80D2938 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D2956 - ldr r0, _080D29C8 @ =gUnknown_03004B00 + ldr r0, _080D29C8 @ =gBattleAnimArgs ldrh r1, [r0] ldrh r2, [r4, 0x20] adds r1, r2 @@ -17032,7 +17032,7 @@ _080D29C2: pop {r0} bx r0 .align 2, 0 -_080D29C8: .4byte gUnknown_03004B00 +_080D29C8: .4byte gBattleAnimArgs thumb_func_end sub_80D2938 thumb_func_start sub_80D29CC @@ -17101,7 +17101,7 @@ sub_80D2A38: @ 80D2A38 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D2A5C - ldr r1, _080D2A58 @ =gUnknown_03004B00 + ldr r1, _080D2A58 @ =gBattleAnimArgs ldrh r0, [r1] strh r0, [r4, 0x30] ldrh r0, [r1, 0x2] @@ -17110,7 +17110,7 @@ sub_80D2A38: @ 80D2A38 strh r0, [r4, 0x2E] b _080D2AB0 .align 2, 0 -_080D2A58: .4byte gUnknown_03004B00 +_080D2A58: .4byte gBattleAnimArgs _080D2A5C: ldrh r0, [r4, 0x30] ldrh r2, [r4, 0x36] @@ -17167,7 +17167,7 @@ sub_80D2ABC: @ 80D2ABC ldrsh r0, [r4, r1] cmp r0, 0 bne _080D2AF6 - ldr r1, _080D2BB8 @ =gUnknown_03004B00 + ldr r1, _080D2BB8 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -17290,7 +17290,7 @@ _080D2B80: strb r0, [r3] b _080D2BD2 .align 2, 0 -_080D2BB8: .4byte gUnknown_03004B00 +_080D2BB8: .4byte gBattleAnimArgs _080D2BBC: .4byte gUnknown_0202F7C9 _080D2BC0: .4byte 0x0000ffff _080D2BC4: @@ -17322,7 +17322,7 @@ sub_80D2BE8: @ 80D2BE8 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D2C1C - ldr r1, _080D2C18 @ =gUnknown_03004B00 + ldr r1, _080D2C18 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -17339,7 +17339,7 @@ sub_80D2BE8: @ 80D2BE8 strh r0, [r4, 0x2E] b _080D2C30 .align 2, 0 -_080D2C18: .4byte gUnknown_03004B00 +_080D2C18: .4byte gBattleAnimArgs _080D2C1C: adds r0, r4, 0 adds r0, 0x3F @@ -17360,7 +17360,7 @@ _080D2C30: sub_80D2C38: @ 80D2C38 push {r4,r5,lr} adds r5, r0, 0 - ldr r1, _080D2C50 @ =gUnknown_03004B00 + ldr r1, _080D2C50 @ =gBattleAnimArgs movs r2, 0x4 ldrsh r0, [r1, r2] cmp r0, 0 @@ -17369,7 +17369,7 @@ sub_80D2C38: @ 80D2C38 bl move_anim_8072740 b _080D2CB8 .align 2, 0 -_080D2C50: .4byte gUnknown_03004B00 +_080D2C50: .4byte gBattleAnimArgs _080D2C54: movs r2, 0 ldrsh r0, [r1, r2] @@ -17394,7 +17394,7 @@ _080D2C66: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r0, _080D2C98 @ =gUnknown_03004B00 + ldr r0, _080D2C98 @ =gBattleAnimArgs movs r2, 0x2 ldrsh r1, [r0, r2] adds r2, r0, 0 @@ -17405,7 +17405,7 @@ _080D2C66: b _080D2CA0 .align 2, 0 _080D2C94: .4byte gUnknown_0202F7C9 -_080D2C98: .4byte gUnknown_03004B00 +_080D2C98: .4byte gBattleAnimArgs _080D2C9C: ldrh r0, [r5, 0x20] subs r0, 0x20 @@ -17465,7 +17465,7 @@ sub_80D2CF8: @ 80D2CF8 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r0, _080D2D2C @ =gUnknown_03004B00 + ldr r0, _080D2D2C @ =gBattleAnimArgs ldrb r0, [r0] bl obj_id_for_side_relative_to_move adds r1, r0, 0 @@ -17485,7 +17485,7 @@ sub_80D2CF8: @ 80D2CF8 pop {r0} bx r0 .align 2, 0 -_080D2D2C: .4byte gUnknown_03004B00 +_080D2D2C: .4byte gBattleAnimArgs _080D2D30: .4byte gTasks _080D2D34: .4byte gUnknown_083D7CA8 _080D2D38: .4byte sub_80D2D3C @@ -17519,7 +17519,7 @@ _080D2D64: .4byte gTasks sub_80D2D68: @ 80D2D68 push {r4-r7,lr} adds r5, r0, 0 - ldr r0, _080D2D7C @ =gUnknown_03004B00 + ldr r0, _080D2D7C @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -17527,7 +17527,7 @@ sub_80D2D68: @ 80D2D68 ldr r0, _080D2D80 @ =gUnknown_0202F7C8 b _080D2D86 .align 2, 0 -_080D2D7C: .4byte gUnknown_03004B00 +_080D2D7C: .4byte gBattleAnimArgs _080D2D80: .4byte gUnknown_0202F7C8 _080D2D84: ldr r0, _080D2E1C @ =gUnknown_0202F7C9 @@ -17539,7 +17539,7 @@ _080D2D86: lsrs r0, 24 cmp r0, 0x1 bne _080D2DA0 - ldr r1, _080D2E20 @ =gUnknown_03004B00 + ldr r1, _080D2E20 @ =gBattleAnimArgs movs r2, 0x2 ldrsh r0, [r1, r2] negs r0, r0 @@ -17549,7 +17549,7 @@ _080D2DA0: movs r1, 0x2 bl sub_8077ABC lsls r0, 24 - ldr r7, _080D2E20 @ =gUnknown_03004B00 + ldr r7, _080D2E20 @ =gBattleAnimArgs lsrs r0, 24 ldrh r3, [r7, 0x2] adds r0, r3 @@ -17608,7 +17608,7 @@ _080D2DF0: bx r0 .align 2, 0 _080D2E1C: .4byte gUnknown_0202F7C9 -_080D2E20: .4byte gUnknown_03004B00 +_080D2E20: .4byte gBattleAnimArgs _080D2E24: .4byte 0x000003ff _080D2E28: .4byte 0xfffffc00 _080D2E2C: .4byte sub_80D2E30 @@ -17654,7 +17654,7 @@ sub_80D2E68: @ 80D2E68 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D2E8A - ldr r0, _080D2EC4 @ =gUnknown_03004B00 + ldr r0, _080D2EC4 @ =gBattleAnimArgs ldrh r1, [r0] movs r0, 0x78 subs r0, r1 @@ -17695,7 +17695,7 @@ _080D2EBC: pop {r0} bx r0 .align 2, 0 -_080D2EC4: .4byte gUnknown_03004B00 +_080D2EC4: .4byte gBattleAnimArgs thumb_func_end sub_80D2E68 thumb_func_start sub_80D2EC8 @@ -17708,7 +17708,7 @@ sub_80D2EC8: @ 80D2EC8 bne _080D2EF6 movs r5, 0x78 strh r5, [r6, 0x20] - ldr r4, _080D2F78 @ =gUnknown_03004B00 + ldr r4, _080D2F78 @ =gBattleAnimArgs movs r2, 0 ldrsh r0, [r4, r2] lsrs r1, r0, 31 @@ -17785,7 +17785,7 @@ _080D2F72: pop {r0} bx r0 .align 2, 0 -_080D2F78: .4byte gUnknown_03004B00 +_080D2F78: .4byte gBattleAnimArgs _080D2F7C: .4byte sub_80D2F80 thumb_func_end sub_80D2EC8 @@ -17876,7 +17876,7 @@ _080D300E: sub_80D3014: @ 80D3014 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, _080D3058 @ =gUnknown_020239F8 + ldr r0, _080D3058 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -17905,7 +17905,7 @@ sub_80D3014: @ 80D3014 bl StartSpriteAffineAnim b _080D3080 .align 2, 0 -_080D3058: .4byte gUnknown_020239F8 +_080D3058: .4byte gBattleTypeFlags _080D305C: .4byte gUnknown_0202F7C8 _080D3060: ldr r4, _080D30A0 @ =gUnknown_0202F7C8 @@ -17949,7 +17949,7 @@ sub_80D30AC: @ 80D30AC push {lr} lsls r0, 24 lsrs r0, 24 - ldr r3, _080D30C8 @ =gUnknown_03004B00 + ldr r3, _080D30C8 @ =gBattleAnimArgs ldr r1, _080D30CC @ =gUnknown_0202F7B4 ldr r1, [r1] ldrb r2, [r1, 0x10] @@ -17960,7 +17960,7 @@ sub_80D30AC: @ 80D30AC pop {r0} bx r0 .align 2, 0 -_080D30C8: .4byte gUnknown_03004B00 +_080D30C8: .4byte gBattleAnimArgs _080D30CC: .4byte gUnknown_0202F7B4 thumb_func_end sub_80D30AC @@ -17969,7 +17969,7 @@ update_fury_cutter_counter_copy: @ 80D30D0 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, _080D30E8 @ =gUnknown_03004B00 + ldr r2, _080D30E8 @ =gBattleAnimArgs ldr r1, _080D30EC @ =gUnknown_0202F7B4 ldr r1, [r1] ldrb r1, [r1, 0x10] @@ -17978,7 +17978,7 @@ update_fury_cutter_counter_copy: @ 80D30D0 pop {r0} bx r0 .align 2, 0 -_080D30E8: .4byte gUnknown_03004B00 +_080D30E8: .4byte gBattleAnimArgs _080D30EC: .4byte gUnknown_0202F7B4 thumb_func_end update_fury_cutter_counter_copy @@ -17997,7 +17997,7 @@ sub_80D30F0: @ 80D30F0 ldrsh r0, [r5, r1] cmp r0, 0 bne _080D3118 - ldr r1, _080D317C @ =gUnknown_03004B00 + ldr r1, _080D317C @ =gBattleAnimArgs ldrh r0, [r1] strh r0, [r5, 0xA] ldrh r0, [r1, 0x2] @@ -18050,7 +18050,7 @@ _080D3172: bx r0 .align 2, 0 _080D3178: .4byte gTasks -_080D317C: .4byte gUnknown_03004B00 +_080D317C: .4byte gBattleAnimArgs _080D3180: .4byte gSpriteTemplate_83D9130 thumb_func_end sub_80D30F0 @@ -18110,19 +18110,19 @@ sub_80D31C8: @ 80D31C8 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 - ldr r4, _080D31F4 @ =gUnknown_03004B00 + ldr r4, _080D31F4 @ =gBattleAnimArgs ldrh r1, [r4] subs r0, r1 b _080D320A .align 2, 0 _080D31F0: .4byte gUnknown_0202F7C8 -_080D31F4: .4byte gUnknown_03004B00 +_080D31F4: .4byte gBattleAnimArgs _080D31F8: ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 - ldr r4, _080D32D0 @ =gUnknown_03004B00 + ldr r4, _080D32D0 @ =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4] adds r0, r1 @@ -18148,12 +18148,12 @@ _080D320A: lsls r0, 24 cmp r0, 0 beq _080D3240 - ldr r1, _080D32D0 @ =gUnknown_03004B00 + ldr r1, _080D32D0 @ =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080D3240: - ldr r5, _080D32D0 @ =gUnknown_03004B00 + ldr r5, _080D32D0 @ =gBattleAnimArgs ldrh r0, [r5, 0xC] strh r0, [r6, 0x2E] ldrh r0, [r6, 0x20] @@ -18176,7 +18176,7 @@ _080D3240: adds r0, r6, 0 bl obj_translate_based_on_private_1_2_3_4 ldr r0, _080D32DC @ =SpriteCallbackDummy - bl object_new_hidden_with_callback + bl CreateInvisibleSpriteWithCallback adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 @@ -18219,7 +18219,7 @@ _080D3240: pop {r0} bx r0 .align 2, 0 -_080D32D0: .4byte gUnknown_03004B00 +_080D32D0: .4byte gBattleAnimArgs _080D32D4: .4byte gUnknown_0202F7C8 _080D32D8: .4byte gUnknown_0202F7C9 _080D32DC: .4byte SpriteCallbackDummy @@ -18345,7 +18345,7 @@ sub_80D33B4: @ 80D33B4 lsls r0, 24 cmp r0, 0 beq _080D33E4 - ldr r1, _080D33E0 @ =gUnknown_03004B00 + ldr r1, _080D33E0 @ =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 lsls r0, 16 @@ -18354,9 +18354,9 @@ sub_80D33B4: @ 80D33B4 b _080D33EA .align 2, 0 _080D33DC: .4byte gUnknown_0202F7C8 -_080D33E0: .4byte gUnknown_03004B00 +_080D33E0: .4byte gBattleAnimArgs _080D33E4: - ldr r0, _080D3440 @ =gUnknown_03004B00 + ldr r0, _080D3440 @ =gBattleAnimArgs ldrh r6, [r0, 0x4] adds r7, r0, 0 _080D33EA: @@ -18399,7 +18399,7 @@ _080D33EA: pop {r0} bx r0 .align 2, 0 -_080D3440: .4byte gUnknown_03004B00 +_080D3440: .4byte gBattleAnimArgs _080D3444: .4byte gUnknown_0202F7C9 _080D3448: .4byte sub_80D344C thumb_func_end sub_80D33B4 @@ -18408,7 +18408,7 @@ _080D3448: .4byte sub_80D344C sub_80D344C: @ 80D344C push {r4,lr} adds r4, r0, 0 - ldr r0, _080D3488 @ =gUnknown_03004B00 + ldr r0, _080D3488 @ =gBattleAnimArgs ldrh r1, [r0, 0xE] ldr r0, _080D348C @ =0x0000ffff cmp r1, r0 @@ -18435,7 +18435,7 @@ _080D3480: pop {r0} bx r0 .align 2, 0 -_080D3488: .4byte gUnknown_03004B00 +_080D3488: .4byte gBattleAnimArgs _080D348C: .4byte 0x0000ffff thumb_func_end sub_80D344C @@ -18449,7 +18449,7 @@ sub_80D3490: @ 80D3490 adds r4, r0 lsls r4, 3 adds r4, r1 - ldr r0, _080D34C8 @ =gUnknown_03004B00 + ldr r0, _080D34C8 @ =gBattleAnimArgs ldrh r0, [r0] strh r0, [r4, 0x8] ldr r0, _080D34CC @ =0x0000279c @@ -18467,7 +18467,7 @@ sub_80D3490: @ 80D3490 bx r0 .align 2, 0 _080D34C4: .4byte gTasks -_080D34C8: .4byte gUnknown_03004B00 +_080D34C8: .4byte gBattleAnimArgs _080D34CC: .4byte 0x0000279c _080D34D0: .4byte sub_80D34D4 thumb_func_end sub_80D3490 @@ -18574,7 +18574,7 @@ sub_80D3554: @ 80D3554 lsls r0, 8 bl __divsi3 strh r0, [r5, 0x38] - ldr r0, _080D35C0 @ =gUnknown_03004B00 + ldr r0, _080D35C0 @ =gBattleAnimArgs ldrh r2, [r0, 0x6] strh r2, [r5, 0x3C] ldrh r1, [r0, 0xE] @@ -18591,7 +18591,7 @@ sub_80D3554: @ 80D3554 b _080D35C8 .align 2, 0 _080D35BC: .4byte gUnknown_0202F7C9 -_080D35C0: .4byte gUnknown_03004B00 +_080D35C0: .4byte gBattleAnimArgs _080D35C4: lsls r0, r1, 8 strh r0, [r5, 0x3A] @@ -18661,7 +18661,7 @@ sub_80D3630: @ 80D3630 adds r1, r0 lsls r1, 3 adds r1, r2 - ldr r3, _080D3654 @ =gUnknown_03004B00 + ldr r3, _080D3654 @ =gBattleAnimArgs ldrh r0, [r3] movs r2, 0 strh r0, [r1, 0x8] @@ -18671,7 +18671,7 @@ sub_80D3630: @ 80D3630 bx lr .align 2, 0 _080D3650: .4byte gTasks -_080D3654: .4byte gUnknown_03004B00 +_080D3654: .4byte gBattleAnimArgs _080D3658: .4byte sub_80D365C thumb_func_end sub_80D3630 @@ -18680,7 +18680,7 @@ sub_80D365C: @ 80D365C push {lr} lsls r0, 24 lsrs r3, r0, 24 - ldr r2, _080D3690 @ =gUnknown_03004B00 + ldr r2, _080D3690 @ =gBattleAnimArgs ldrh r0, [r2, 0xE] adds r0, 0x3 movs r1, 0xFF @@ -18703,7 +18703,7 @@ _080D368A: pop {r0} bx r0 .align 2, 0 -_080D3690: .4byte gUnknown_03004B00 +_080D3690: .4byte gBattleAnimArgs _080D3694: .4byte gTasks thumb_func_end sub_80D365C @@ -18798,7 +18798,7 @@ sub_80D3728: @ 80D3728 lsls r0, 24 cmp r4, r0 bne _080D3772 - ldr r4, _080D37F0 @ =gUnknown_03004B00 + ldr r4, _080D37F0 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r4, r1] negs r0, r0 @@ -18820,7 +18820,7 @@ _080D376A: negs r0, r0 strh r0, [r4] _080D3772: - ldr r5, _080D37F0 @ =gUnknown_03004B00 + ldr r5, _080D37F0 @ =gBattleAnimArgs movs r1, 0xA ldrsh r0, [r5, r1] movs r1, 0xFF @@ -18879,7 +18879,7 @@ _080D37AA: .align 2, 0 _080D37E8: .4byte gUnknown_0202F7C8 _080D37EC: .4byte gUnknown_0202F7C9 -_080D37F0: .4byte gUnknown_03004B00 +_080D37F0: .4byte gBattleAnimArgs _080D37F4: .4byte sub_8078B34 _080D37F8: .4byte move_anim_8072740 thumb_func_end sub_80D3728 @@ -18890,7 +18890,7 @@ sub_80D37FC: @ 80D37FC adds r4, r0, 0 movs r1, 0x1 bl sub_8078764 - ldr r0, _080D382C @ =gUnknown_03004B00 + ldr r0, _080D382C @ =gBattleAnimArgs ldrh r1, [r0, 0x8] strh r1, [r4, 0x2E] ldrh r0, [r0, 0x4] @@ -18909,7 +18909,7 @@ sub_80D37FC: @ 80D37FC pop {r0} bx r0 .align 2, 0 -_080D382C: .4byte gUnknown_03004B00 +_080D382C: .4byte gBattleAnimArgs _080D3830: .4byte sub_8078B34 _080D3834: .4byte move_anim_8072740 thumb_func_end sub_80D37FC @@ -18918,7 +18918,7 @@ _080D3834: .4byte move_anim_8072740 sub_80D3838: @ 80D3838 push {r4,lr} adds r4, r0, 0 - ldr r0, _080D3850 @ =gUnknown_03004B00 + ldr r0, _080D3850 @ =gBattleAnimArgs movs r1, 0x6 ldrsh r0, [r0, r1] cmp r0, 0 @@ -18928,13 +18928,13 @@ sub_80D3838: @ 80D3838 bl sub_8078764 b _080D385C .align 2, 0 -_080D3850: .4byte gUnknown_03004B00 +_080D3850: .4byte gBattleAnimArgs _080D3854: adds r0, r4, 0 movs r1, 0x1 bl sub_80787B0 _080D385C: - ldr r0, _080D386C @ =gUnknown_03004B00 + ldr r0, _080D386C @ =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r4, 0x3C] ldr r0, _080D3870 @ =sub_80D3874 @@ -18943,7 +18943,7 @@ _080D385C: pop {r0} bx r0 .align 2, 0 -_080D386C: .4byte gUnknown_03004B00 +_080D386C: .4byte gBattleAnimArgs _080D3870: .4byte sub_80D3874 thumb_func_end sub_80D3838 @@ -19119,7 +19119,7 @@ _080D39CE: ldr r0, _080D39F4 @ =gBattleAnimBackgroundImage_Surf ldr r1, [sp] bl LZDecompressVram - ldr r0, _080D39F8 @ =gUnknown_03004B00 + ldr r0, _080D39F8 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -19134,7 +19134,7 @@ _080D39CE: .align 2, 0 _080D39F0: .4byte gUnknown_08E70F0C _080D39F4: .4byte gBattleAnimBackgroundImage_Surf -_080D39F8: .4byte gUnknown_03004B00 +_080D39F8: .4byte gBattleAnimArgs _080D39FC: .4byte gBattleAnimBackgroundPalette_Surf _080D3A00: ldr r0, _080D3A78 @ =gBattleAnimBackgroundImageMuddyWater_Pal @@ -20761,7 +20761,7 @@ _080D467A: ldrsh r0, [r4, r2] cmp r0, 0 bne _080D46F4 - ldr r5, _080D4708 @ =gUnknown_03004B00 + ldr r5, _080D4708 @ =gBattleAnimArgs movs r1, 0x1 mov r8, r1 mov r2, r8 @@ -20824,7 +20824,7 @@ _080D46F4: strh r0, [r4, 0x8] b _080D4722 .align 2, 0 -_080D4708: .4byte gUnknown_03004B00 +_080D4708: .4byte gBattleAnimArgs _080D470C: .4byte sub_80E1864 _080D4710: .4byte gUnknown_0202F7B2 _080D4714: @@ -21456,7 +21456,7 @@ _080D4BEC: .4byte sub_80D4988 thumb_func_start sub_80D4BF0 sub_80D4BF0: @ 80D4BF0 - ldr r2, _080D4C10 @ =gUnknown_03004B00 + ldr r2, _080D4C10 @ =gBattleAnimArgs ldrh r1, [r2] strh r1, [r0, 0x20] ldrh r1, [r2, 0x2] @@ -21473,7 +21473,7 @@ sub_80D4BF0: @ 80D4BF0 str r1, [r0, 0x1C] bx lr .align 2, 0 -_080D4C10: .4byte gUnknown_03004B00 +_080D4C10: .4byte gBattleAnimArgs _080D4C14: .4byte sub_80D4C18 thumb_func_end sub_80D4BF0 @@ -21569,7 +21569,7 @@ sub_80D4CA4: @ 80D4CA4 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] - ldr r1, _080D4CE4 @ =gUnknown_03004B00 + ldr r1, _080D4CE4 @ =gBattleAnimArgs ldrh r0, [r1, 0x4] strh r0, [r4, 0x34] ldrh r0, [r1, 0x6] @@ -21581,7 +21581,7 @@ sub_80D4CA4: @ 80D4CA4 bx r0 .align 2, 0 _080D4CE0: .4byte gUnknown_0202F7C9 -_080D4CE4: .4byte gUnknown_03004B00 +_080D4CE4: .4byte gBattleAnimArgs _080D4CE8: .4byte sub_80D4CEC thumb_func_end sub_80D4CA4 @@ -21833,7 +21833,7 @@ _080D4EBA: sub_80D4ED8: @ 80D4ED8 push {r4,lr} adds r4, r0, 0 - ldr r0, _080D4F0C @ =gUnknown_03004B00 + ldr r0, _080D4F0C @ =gBattleAnimArgs ldrh r0, [r0] strh r0, [r4, 0x2E] movs r0, 0x3C @@ -21856,7 +21856,7 @@ sub_80D4ED8: @ 80D4ED8 pop {r0} bx r0 .align 2, 0 -_080D4F0C: .4byte gUnknown_03004B00 +_080D4F0C: .4byte gBattleAnimArgs _080D4F10: .4byte move_anim_8072740 _080D4F14: .4byte sub_8078174 thumb_func_end sub_80D4ED8 @@ -21865,7 +21865,7 @@ _080D4F14: .4byte sub_8078174 sub_80D4F18: @ 80D4F18 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, _080D4F50 @ =gUnknown_03004B00 + ldr r5, _080D4F50 @ =gBattleAnimArgs movs r0, 0 ldrsh r1, [r5, r0] adds r0, r4, 0 @@ -21889,7 +21889,7 @@ sub_80D4F18: @ 80D4F18 pop {r0} bx r0 .align 2, 0 -_080D4F50: .4byte gUnknown_03004B00 +_080D4F50: .4byte gBattleAnimArgs _080D4F54: .4byte sub_8078394 _080D4F58: .4byte move_anim_8072740 thumb_func_end sub_80D4F18 @@ -21905,7 +21905,7 @@ sub_80D4F5C: @ 80D4F5C lsls r0, 24 cmp r0, 0 beq _080D4F98 - ldr r2, _080D4F94 @ =gUnknown_03004B00 + ldr r2, _080D4F94 @ =gBattleAnimArgs ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 @@ -21921,9 +21921,9 @@ sub_80D4F5C: @ 80D4F5C b _080D4FAE .align 2, 0 _080D4F90: .4byte gUnknown_0202F7C8 -_080D4F94: .4byte gUnknown_03004B00 +_080D4F94: .4byte gBattleAnimArgs _080D4F98: - ldr r1, _080D4FC4 @ =gUnknown_03004B00 + ldr r1, _080D4FC4 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -21947,7 +21947,7 @@ _080D4FAE: pop {r0} bx r0 .align 2, 0 -_080D4FC4: .4byte gUnknown_03004B00 +_080D4FC4: .4byte gBattleAnimArgs _080D4FC8: .4byte sub_80D5038 thumb_func_end sub_80D4F5C @@ -21961,7 +21961,7 @@ sub_80D4FCC: @ 80D4FCC lsls r0, 24 cmp r0, 0 beq _080D5000 - ldr r2, _080D4FFC @ =gUnknown_03004B00 + ldr r2, _080D4FFC @ =gBattleAnimArgs ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 @@ -21976,9 +21976,9 @@ sub_80D4FCC: @ 80D4FCC b _080D5018 .align 2, 0 _080D4FF8: .4byte gUnknown_0202F7C8 -_080D4FFC: .4byte gUnknown_03004B00 +_080D4FFC: .4byte gBattleAnimArgs _080D5000: - ldr r1, _080D5030 @ =gUnknown_03004B00 + ldr r1, _080D5030 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -22003,7 +22003,7 @@ _080D5018: pop {r0} bx r0 .align 2, 0 -_080D5030: .4byte gUnknown_03004B00 +_080D5030: .4byte gBattleAnimArgs _080D5034: .4byte sub_80D5038 thumb_func_end sub_80D4FCC @@ -22053,7 +22053,7 @@ sub_80D5074: @ 80D5074 lsls r0, 24 cmp r0, 0 beq _080D50A0 - ldr r0, _080D509C @ =gUnknown_03004B00 + ldr r0, _080D509C @ =gBattleAnimArgs ldrh r1, [r4, 0x20] ldrh r2, [r0] subs r1, r2 @@ -22061,9 +22061,9 @@ sub_80D5074: @ 80D5074 b _080D50B2 .align 2, 0 _080D5098: .4byte gUnknown_0202F7C8 -_080D509C: .4byte gUnknown_03004B00 +_080D509C: .4byte gBattleAnimArgs _080D50A0: - ldr r0, _080D50E0 @ =gUnknown_03004B00 + ldr r0, _080D50E0 @ =gBattleAnimArgs ldrh r1, [r0] ldrh r2, [r4, 0x20] adds r1, r2 @@ -22096,7 +22096,7 @@ _080D50B2: pop {r0} bx r0 .align 2, 0 -_080D50E0: .4byte gUnknown_03004B00 +_080D50E0: .4byte gBattleAnimArgs _080D50E4: .4byte sub_80D50E8 thumb_func_end sub_80D5074 @@ -22232,7 +22232,7 @@ sub_80D51A8: @ 80D51A8 cmp r1, r0 bne _080D51EE _080D51E6: - ldr r1, _080D5208 @ =gUnknown_03004B00 + ldr r1, _080D5208 @ =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] @@ -22247,13 +22247,13 @@ _080D51EE: .align 2, 0 _080D5200: .4byte gUnknown_0202F7C8 _080D5204: .4byte gUnknown_0202F7C9 -_080D5208: .4byte gUnknown_03004B00 +_080D5208: .4byte gBattleAnimArgs _080D520C: .4byte sub_8079534 thumb_func_end sub_80D51A8 thumb_func_start sub_80D5210 sub_80D5210: @ 80D5210 - ldr r2, _080D5224 @ =gUnknown_03004B00 + ldr r2, _080D5224 @ =gBattleAnimArgs ldrh r1, [r2] negs r1, r1 strh r1, [r2] @@ -22264,7 +22264,7 @@ sub_80D5210: @ 80D5210 str r1, [r0, 0x1C] bx lr .align 2, 0 -_080D5224: .4byte gUnknown_03004B00 +_080D5224: .4byte gBattleAnimArgs _080D5228: .4byte sub_8079534 thumb_func_end sub_80D5210 @@ -22274,7 +22274,7 @@ sub_80D522C: @ 80D522C adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 - ldr r0, _080D524C @ =gUnknown_03004B00 + ldr r0, _080D524C @ =gBattleAnimArgs ldrh r0, [r0, 0x4] movs r1, 0 strh r0, [r4, 0x3C] @@ -22285,7 +22285,7 @@ sub_80D522C: @ 80D522C pop {r0} bx r0 .align 2, 0 -_080D524C: .4byte gUnknown_03004B00 +_080D524C: .4byte gBattleAnimArgs _080D5250: .4byte sub_80D5254 thumb_func_end sub_80D522C @@ -22440,7 +22440,7 @@ sub_80D5348: @ 80D5348 sub_80D5374: @ 80D5374 push {r4,lr} adds r4, r0, 0 - ldr r1, _080D53A8 @ =gUnknown_03004B00 + ldr r1, _080D53A8 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -22464,7 +22464,7 @@ sub_80D5374: @ 80D5374 pop {r0} bx r0 .align 2, 0 -_080D53A8: .4byte gUnknown_03004B00 +_080D53A8: .4byte gBattleAnimArgs _080D53AC: .4byte move_anim_8072740 _080D53B0: .4byte sub_8078364 thumb_func_end sub_80D5374 @@ -22475,7 +22475,7 @@ sub_80D53B4: @ 80D53B4 adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 - ldr r1, _080D53E8 @ =gUnknown_03004B00 + ldr r1, _080D53E8 @ =gBattleAnimArgs ldrh r0, [r1, 0x4] strh r0, [r4, 0x30] ldrh r0, [r1, 0x6] @@ -22495,7 +22495,7 @@ sub_80D53B4: @ 80D53B4 pop {r0} bx r0 .align 2, 0 -_080D53E8: .4byte gUnknown_03004B00 +_080D53E8: .4byte gBattleAnimArgs _080D53EC: .4byte sub_80782D8 _080D53F0: .4byte sub_80D53F4 thumb_func_end sub_80D53B4 @@ -23313,7 +23313,7 @@ _080D5A1C: thumb_func_start sub_80D5A20 sub_80D5A20: @ 80D5A20 push {r4,r5,lr} - ldr r3, _080D5A64 @ =gUnknown_03004B00 + ldr r3, _080D5A64 @ =gBattleAnimArgs ldrh r1, [r3] movs r2, 0 strh r1, [r0, 0x20] @@ -23346,7 +23346,7 @@ sub_80D5A20: @ 80D5A20 pop {r0} bx r0 .align 2, 0 -_080D5A64: .4byte gUnknown_03004B00 +_080D5A64: .4byte gBattleAnimArgs _080D5A68: .4byte 0x000003ff _080D5A6C: .4byte 0xfffffc00 _080D5A70: .4byte sub_80D5A74 @@ -23460,7 +23460,7 @@ _080D5B28: adds r0, r5, 0 movs r1, 0 bl sub_80787B0 - ldr r4, _080D5B50 @ =gUnknown_03004B00 + ldr r4, _080D5B50 @ =gBattleAnimArgs ldrb r1, [r4, 0x4] adds r0, r5, 0 bl StartSpriteAnim @@ -23475,7 +23475,7 @@ _080D5B28: movs r0, 0x4 b _080D5B5A .align 2, 0 -_080D5B50: .4byte gUnknown_03004B00 +_080D5B50: .4byte gBattleAnimArgs _080D5B54: .4byte gUnknown_0202F7C8 _080D5B58: ldr r0, _080D5B78 @ =0x0000fffc @@ -23668,7 +23668,7 @@ sub_80D5CC0: @ 80D5CC0 ldrsh r0, [r4, r2] cmp r0, 0 bne _080D5CD8 - ldr r0, _080D5D4C @ =gUnknown_03004B00 + ldr r0, _080D5D4C @ =gBattleAnimArgs ldrh r0, [r0] strh r0, [r4, 0x30] adds r0, r1, 0x1 @@ -23729,7 +23729,7 @@ _080D5CD8: strb r0, [r4, 0x5] b _080D5DA0 .align 2, 0 -_080D5D4C: .4byte gUnknown_03004B00 +_080D5D4C: .4byte gBattleAnimArgs _080D5D50: .4byte gMain _080D5D54: .4byte 0x0000043d _080D5D58: .4byte gUnknown_0202F7C9 @@ -24173,7 +24173,7 @@ sub_80D6080: @ 80D6080 mov r0, sp ldrb r0, [r0, 0x8] lsls r0, 4 - ldr r1, _080D60B0 @ =gUnknown_03004B00 + ldr r1, _080D60B0 @ =gBattleAnimArgs ldrb r2, [r1] ldrh r3, [r1, 0x2] movs r1, 0x10 @@ -24185,7 +24185,7 @@ sub_80D6080: @ 80D6080 pop {r0} bx r0 .align 2, 0 -_080D60B0: .4byte gUnknown_03004B00 +_080D60B0: .4byte gBattleAnimArgs thumb_func_end sub_80D6080 thumb_func_start sub_80D60B4 @@ -24205,7 +24205,7 @@ sub_80D60B4: @ 80D60B4 movs r3, 0x8 ldrsh r0, [r2, r3] mov r9, r1 - ldr r4, _080D6110 @ =gUnknown_03004B00 + ldr r4, _080D6110 @ =gBattleAnimArgs mov r8, r4 cmp r0, 0 bne _080D60EA @@ -24236,7 +24236,7 @@ _080D60EA: b _080D6126 .align 2, 0 _080D610C: .4byte gTasks -_080D6110: .4byte gUnknown_03004B00 +_080D6110: .4byte gBattleAnimArgs _080D6114: .4byte gUnknown_02024BE0 _080D6118: .4byte gUnknown_0202F7C9 _080D611C: .4byte gUnknown_083D9794 @@ -24337,7 +24337,7 @@ sub_80D61C8: @ 80D61C8 lsls r0, 24 cmp r0, 0 beq _080D61F0 - ldr r0, _080D61EC @ =gUnknown_03004B00 + ldr r0, _080D61EC @ =gBattleAnimArgs ldrh r1, [r4, 0x20] ldrh r2, [r0] subs r1, r2 @@ -24345,9 +24345,9 @@ sub_80D61C8: @ 80D61C8 b _080D61FC .align 2, 0 _080D61E8: .4byte gUnknown_0202F7C8 -_080D61EC: .4byte gUnknown_03004B00 +_080D61EC: .4byte gBattleAnimArgs _080D61F0: - ldr r1, _080D6210 @ =gUnknown_03004B00 + ldr r1, _080D6210 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -24364,7 +24364,7 @@ _080D61FC: pop {r0} bx r0 .align 2, 0 -_080D6210: .4byte gUnknown_03004B00 +_080D6210: .4byte gBattleAnimArgs _080D6214: .4byte sub_80D6218 thumb_func_end sub_80D61C8 @@ -24395,7 +24395,7 @@ sub_80D6234: @ 80D6234 lsls r0, 24 cmp r0, 0 beq _080D625C - ldr r0, _080D6258 @ =gUnknown_03004B00 + ldr r0, _080D6258 @ =gBattleAnimArgs ldrh r1, [r4, 0x20] ldrh r0, [r0] subs r1, r0 @@ -24403,9 +24403,9 @@ sub_80D6234: @ 80D6234 b _080D6266 .align 2, 0 _080D6254: .4byte gUnknown_0202F7C8 -_080D6258: .4byte gUnknown_03004B00 +_080D6258: .4byte gBattleAnimArgs _080D625C: - ldr r0, _080D6270 @ =gUnknown_03004B00 + ldr r0, _080D6270 @ =gBattleAnimArgs ldrh r0, [r0] ldrh r1, [r4, 0x20] adds r0, r1 @@ -24417,7 +24417,7 @@ _080D6266: pop {r0} bx r0 .align 2, 0 -_080D6270: .4byte gUnknown_03004B00 +_080D6270: .4byte gBattleAnimArgs _080D6274: .4byte sub_80D6278 thumb_func_end sub_80D6234 @@ -24461,7 +24461,7 @@ sub_80D6294: @ 80D6294 lsls r0, 24 cmp r0, 0 beq _080D62E4 - ldr r2, _080D62E0 @ =gUnknown_03004B00 + ldr r2, _080D62E0 @ =gBattleAnimArgs ldrh r0, [r5, 0x20] ldrh r1, [r2] subs r0, r1 @@ -24474,9 +24474,9 @@ sub_80D6294: @ 80D6294 .align 2, 0 _080D62D8: .4byte gUnknown_0202F7C9 _080D62DC: .4byte gUnknown_0202F7C8 -_080D62E0: .4byte gUnknown_03004B00 +_080D62E0: .4byte gBattleAnimArgs _080D62E4: - ldr r0, _080D631C @ =gUnknown_03004B00 + ldr r0, _080D631C @ =gBattleAnimArgs ldrh r1, [r0] ldrh r2, [r5, 0x20] adds r1, r2 @@ -24504,7 +24504,7 @@ _080D62F8: pop {r0} bx r0 .align 2, 0 -_080D631C: .4byte gUnknown_03004B00 +_080D631C: .4byte gBattleAnimArgs _080D6320: .4byte move_anim_8074EE0 _080D6324: .4byte sub_8078114 thumb_func_end sub_80D6294 @@ -24513,7 +24513,7 @@ _080D6324: .4byte sub_8078114 sub_80D6328: @ 80D6328 push {r4-r7,lr} adds r5, r0, 0 - ldr r0, _080D6340 @ =gUnknown_03004B00 + ldr r0, _080D6340 @ =gBattleAnimArgs movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0x1 @@ -24524,7 +24524,7 @@ sub_80D6328: @ 80D6328 beq _080D634E b _080D63A0 .align 2, 0 -_080D6340: .4byte gUnknown_03004B00 +_080D6340: .4byte gBattleAnimArgs _080D6344: cmp r0, 0x2 beq _080D6358 @@ -24575,7 +24575,7 @@ _080D63A0: _080D63A2: ldrb r4, [r0] _080D63A4: - ldr r0, _080D63C8 @ =gUnknown_03004B00 + ldr r0, _080D63C8 @ =gBattleAnimArgs movs r2, 0xA ldrsh r0, [r0, r2] cmp r0, 0 @@ -24591,7 +24591,7 @@ _080D63A4: b _080D63DE .align 2, 0 _080D63C4: .4byte gUnknown_0202F7C9 -_080D63C8: .4byte gUnknown_03004B00 +_080D63C8: .4byte gBattleAnimArgs _080D63CC: adds r0, r4, 0 movs r1, 0x2 @@ -24607,7 +24607,7 @@ _080D63DE: lsrs r0, 24 strh r0, [r5, 0x22] ldr r7, _080D647C @ =gSineTable - ldr r6, _080D6480 @ =gUnknown_03004B00 + ldr r6, _080D6480 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r6, r1] lsls r0, 1 @@ -24682,7 +24682,7 @@ _080D6442: bx r0 .align 2, 0 _080D647C: .4byte gSineTable -_080D6480: .4byte gUnknown_03004B00 +_080D6480: .4byte gBattleAnimArgs _080D6484: .4byte gOamMatrices _080D6488: .4byte sub_80DA48C thumb_func_end sub_80D6328 @@ -24693,7 +24693,7 @@ sub_80D648C: @ 80D648C adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 - ldr r5, _080D6500 @ =gUnknown_03004B00 + ldr r5, _080D6500 @ =gBattleAnimArgs ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] @@ -24743,7 +24743,7 @@ sub_80D648C: @ 80D648C pop {r0} bx r0 .align 2, 0 -_080D6500: .4byte gUnknown_03004B00 +_080D6500: .4byte gBattleAnimArgs _080D6504: .4byte gUnknown_0202F7C9 _080D6508: .4byte 0x000003ff _080D650C: .4byte 0xfffffc00 @@ -24873,7 +24873,7 @@ sub_80D65DC: @ 80D65DC cmp r0, 0 bne _080D6606 _080D65FE: - ldr r1, _080D6650 @ =gUnknown_03004B00 + ldr r1, _080D6650 @ =gBattleAnimArgs ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] @@ -24883,7 +24883,7 @@ _080D6606: movs r1, 0x2 bl sub_8077ABC lsls r0, 24 - ldr r4, _080D6650 @ =gUnknown_03004B00 + ldr r4, _080D6650 @ =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 @@ -24910,7 +24910,7 @@ _080D6606: _080D6644: .4byte gMain _080D6648: .4byte 0x0000043d _080D664C: .4byte gUnknown_0202F7C9 -_080D6650: .4byte gUnknown_03004B00 +_080D6650: .4byte gBattleAnimArgs _080D6654: .4byte sub_80D658C thumb_func_end sub_80D65DC @@ -24918,7 +24918,7 @@ _080D6654: .4byte sub_80D658C sub_80D6658: @ 80D6658 push {r4-r6,lr} adds r5, r0, 0 - ldr r1, _080D6674 @ =gUnknown_03004B00 + ldr r1, _080D6674 @ =gBattleAnimArgs ldrh r0, [r1, 0x6] strh r0, [r5, 0x2E] movs r2, 0xE @@ -24931,7 +24931,7 @@ sub_80D6658: @ 80D6658 ldr r0, _080D6678 @ =gUnknown_0202F7C9 b _080D667E .align 2, 0 -_080D6674: .4byte gUnknown_03004B00 +_080D6674: .4byte gBattleAnimArgs _080D6678: .4byte gUnknown_0202F7C9 _080D667C: ldr r0, _080D670C @ =gUnknown_0202F7C8 @@ -24951,7 +24951,7 @@ _080D667E: cmp r0, 0 bne _080D66A4 _080D669C: - ldr r1, _080D6718 @ =gUnknown_03004B00 + ldr r1, _080D6718 @ =gBattleAnimArgs ldrh r0, [r1] negs r0, r0 strh r0, [r1] @@ -24960,7 +24960,7 @@ _080D66A4: movs r1, 0x2 bl sub_8077ABC lsls r0, 24 - ldr r4, _080D6718 @ =gUnknown_03004B00 + ldr r4, _080D6718 @ =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4] adds r0, r1 @@ -25008,7 +25008,7 @@ _080D66A4: _080D670C: .4byte gUnknown_0202F7C8 _080D6710: .4byte gMain _080D6714: .4byte 0x0000043d -_080D6718: .4byte gUnknown_03004B00 +_080D6718: .4byte gBattleAnimArgs _080D671C: .4byte 0x00007fff _080D6720: .4byte 0x000003ff _080D6724: .4byte 0xfffffc00 @@ -25081,7 +25081,7 @@ sub_80D679C: @ 80D679C ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 - ldr r3, _080D67D8 @ =gUnknown_03004B00 + ldr r3, _080D67D8 @ =gBattleAnimArgs movs r5, 0x6 ldrsh r0, [r3, r5] lsls r0, 2 @@ -25104,7 +25104,7 @@ sub_80D679C: @ 80D679C movs r0, 0x10 b _080D67F2 .align 2, 0 -_080D67D8: .4byte gUnknown_03004B00 +_080D67D8: .4byte gBattleAnimArgs _080D67DC: .4byte 0x000003ff _080D67E0: .4byte 0xfffffc00 _080D67E4: @@ -25119,7 +25119,7 @@ _080D67F2: orrs r1, r0 strb r1, [r4, 0x3] _080D67F6: - ldr r0, _080D6810 @ =gUnknown_03004B00 + ldr r0, _080D6810 @ =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] ldr r0, _080D6814 @ =sub_80782D8 @@ -25131,7 +25131,7 @@ _080D67F6: pop {r0} bx r0 .align 2, 0 -_080D6810: .4byte gUnknown_03004B00 +_080D6810: .4byte gBattleAnimArgs _080D6814: .4byte sub_80782D8 _080D6818: .4byte move_anim_8072740 thumb_func_end sub_80D679C @@ -25152,7 +25152,7 @@ sub_80D681C: @ 80D681C lsls r4, 3 adds r4, r1 lsls r0, 24 - ldr r5, _080D686C @ =gUnknown_03004B00 + ldr r5, _080D686C @ =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r5] adds r0, r1 @@ -25175,7 +25175,7 @@ sub_80D681C: @ 80D681C .align 2, 0 _080D6864: .4byte gUnknown_0202F7C9 _080D6868: .4byte gTasks -_080D686C: .4byte gUnknown_03004B00 +_080D686C: .4byte gBattleAnimArgs _080D6870: .4byte sub_80D6874 thumb_func_end sub_80D681C @@ -25439,7 +25439,7 @@ _080D6A66: sub_80D6A6C: @ 80D6A6C push {r4-r7,lr} adds r4, r0, 0 - ldr r0, _080D6AD4 @ =gUnknown_03004B00 + ldr r0, _080D6AD4 @ =gBattleAnimArgs ldrh r1, [r0] ldrh r2, [r4, 0x20] adds r1, r2 @@ -25489,7 +25489,7 @@ sub_80D6A6C: @ 80D6A6C pop {r0} bx r0 .align 2, 0 -_080D6AD4: .4byte gUnknown_03004B00 +_080D6AD4: .4byte gBattleAnimArgs _080D6AD8: .4byte gBattleAnimSpriteTemplate_83D9950 _080D6ADC: .4byte gSprites _080D6AE0: .4byte 0x000003ff @@ -25551,7 +25551,7 @@ sub_80D6B3C: @ 80D6B3C lsls r1, 3 ldr r0, _080D6B5C @ =gTasks adds r5, r1, r0 - ldr r0, _080D6B60 @ =gUnknown_03004B00 + ldr r0, _080D6B60 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -25560,7 +25560,7 @@ sub_80D6B3C: @ 80D6B3C b _080D6B6A .align 2, 0 _080D6B5C: .4byte gTasks -_080D6B60: .4byte gUnknown_03004B00 +_080D6B60: .4byte gBattleAnimArgs _080D6B64: .4byte gUnknown_0202F7C8 _080D6B68: ldr r4, _080D6BAC @ =gUnknown_0202F7C9 @@ -25577,7 +25577,7 @@ _080D6B6A: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x26] - ldr r2, _080D6BB0 @ =gUnknown_03004B00 + ldr r2, _080D6BB0 @ =gBattleAnimArgs ldrh r0, [r2, 0x2] movs r1, 0 strh r0, [r5, 0x14] @@ -25597,7 +25597,7 @@ _080D6B6A: bx r0 .align 2, 0 _080D6BAC: .4byte gUnknown_0202F7C9 -_080D6BB0: .4byte gUnknown_03004B00 +_080D6BB0: .4byte gBattleAnimArgs _080D6BB4: .4byte sub_80D6BB8 thumb_func_end sub_80D6B3C @@ -25785,7 +25785,7 @@ _080D6D14: .4byte sub_80D6CCC sub_80D6D18: @ 80D6D18 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, _080D6D2C @ =gUnknown_03004B00 + ldr r0, _080D6D2C @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -25793,7 +25793,7 @@ sub_80D6D18: @ 80D6D18 ldr r4, _080D6D30 @ =gUnknown_0202F7C8 b _080D6D36 .align 2, 0 -_080D6D2C: .4byte gUnknown_03004B00 +_080D6D2C: .4byte gBattleAnimArgs _080D6D30: .4byte gUnknown_0202F7C8 _080D6D34: ldr r4, _080D6D64 @ =gUnknown_0202F7C9 @@ -25828,7 +25828,7 @@ _080D6D6C: .4byte sub_80785E4 sub_80D6D70: @ 80D6D70 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, _080D6D84 @ =gUnknown_03004B00 + ldr r0, _080D6D84 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -25836,7 +25836,7 @@ sub_80D6D70: @ 80D6D70 ldr r4, _080D6D88 @ =gUnknown_0202F7C8 b _080D6D8E .align 2, 0 -_080D6D84: .4byte gUnknown_03004B00 +_080D6D84: .4byte gBattleAnimArgs _080D6D88: .4byte gUnknown_0202F7C8 _080D6D8C: ldr r4, _080D6DC8 @ =gUnknown_0202F7C9 @@ -25853,7 +25853,7 @@ _080D6D8E: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r1, _080D6DCC @ =gUnknown_03004B00 + ldr r1, _080D6DCC @ =gBattleAnimArgs ldrh r0, [r1, 0x2] strh r0, [r5, 0x24] ldrh r0, [r1, 0x4] @@ -25868,7 +25868,7 @@ _080D6D8E: bx r0 .align 2, 0 _080D6DC8: .4byte gUnknown_0202F7C9 -_080D6DCC: .4byte gUnknown_03004B00 +_080D6DCC: .4byte gBattleAnimArgs _080D6DD0: .4byte move_anim_8072740 _080D6DD4: .4byte sub_8078600 thumb_func_end sub_80D6D70 @@ -26206,7 +26206,7 @@ _080D703C: _080D7052: movs r6, 0 strh r1, [r5, 0xA] - ldr r0, _080D7080 @ =gUnknown_03004B00 + ldr r0, _080D7080 @ =gBattleAnimArgs movs r1, 0 ldrsh r2, [r0, r1] adds r3, r0, 0 @@ -26226,7 +26226,7 @@ _080D7052: b _080D70F0 .align 2, 0 _080D707C: .4byte gUnknown_0202F7C8 -_080D7080: .4byte gUnknown_03004B00 +_080D7080: .4byte gBattleAnimArgs _080D7084: .4byte 0x0000fff0 _080D7088: ldrb r0, [r4] @@ -27146,7 +27146,7 @@ sub_80D7704: @ 80D7704 bl sub_8077ABC lsls r0, 24 lsrs r6, r0, 24 - ldr r1, _080D781C @ =gUnknown_03004B00 + ldr r1, _080D781C @ =gBattleAnimArgs ldrh r0, [r1, 0x8] strh r0, [r5, 0x2E] ldrh r0, [r1] @@ -27223,7 +27223,7 @@ _080D77DE: movs r2, 0x98 lsls r2, 1 mov r12, r2 - ldr r1, _080D781C @ =gUnknown_03004B00 + ldr r1, _080D781C @ =gBattleAnimArgs mov r10, r1 cmp r0, r12 bhi _080D784A @@ -27237,7 +27237,7 @@ _080D780C: .4byte 0x000003ff _080D7810: .4byte 0xfffffc00 _080D7814: .4byte gUnknown_0202F7C9 _080D7818: .4byte gUnknown_0202F7C8 -_080D781C: .4byte gUnknown_03004B00 +_080D781C: .4byte gBattleAnimArgs _080D7820: lsls r1, r3, 16 asrs r1, 16 @@ -27351,7 +27351,7 @@ _080D78E6: sub_80D78EC: @ 80D78EC push {r4,lr} adds r4, r0, 0 - ldr r0, _080D7920 @ =gUnknown_03004B00 + ldr r0, _080D7920 @ =gBattleAnimArgs ldrh r0, [r0] strh r0, [r4, 0x2E] movs r0, 0x3C @@ -27374,7 +27374,7 @@ sub_80D78EC: @ 80D78EC pop {r0} bx r0 .align 2, 0 -_080D7920: .4byte gUnknown_03004B00 +_080D7920: .4byte gBattleAnimArgs _080D7924: .4byte move_anim_8072740 _080D7928: .4byte sub_8078174 thumb_func_end sub_80D78EC @@ -27398,7 +27398,7 @@ sub_80D792C: @ 80D792C lsls r0, 24 cmp r0, 0 beq _080D796C - ldr r0, _080D7968 @ =gUnknown_03004B00 + ldr r0, _080D7968 @ =gBattleAnimArgs ldrh r1, [r4, 0x32] ldrh r0, [r0, 0x4] subs r1, r0 @@ -27407,9 +27407,9 @@ sub_80D792C: @ 80D792C .align 2, 0 _080D7960: .4byte gUnknown_0202F7C9 _080D7964: .4byte gUnknown_0202F7C8 -_080D7968: .4byte gUnknown_03004B00 +_080D7968: .4byte gBattleAnimArgs _080D796C: - ldr r0, _080D79A4 @ =gUnknown_03004B00 + ldr r0, _080D79A4 @ =gBattleAnimArgs ldrh r0, [r0, 0x4] ldrh r1, [r4, 0x32] adds r0, r1 @@ -27420,7 +27420,7 @@ _080D7976: movs r1, 0x3 bl sub_8077ABC lsls r0, 24 - ldr r1, _080D79A4 @ =gUnknown_03004B00 + ldr r1, _080D79A4 @ =gBattleAnimArgs lsrs r0, 24 ldrh r2, [r1, 0x6] adds r0, r2 @@ -27436,7 +27436,7 @@ _080D7976: pop {r0} bx r0 .align 2, 0 -_080D79A4: .4byte gUnknown_03004B00 +_080D79A4: .4byte gBattleAnimArgs _080D79A8: .4byte gUnknown_0202F7C9 _080D79AC: .4byte move_anim_8072740 _080D79B0: .4byte sub_8078B34 @@ -27446,7 +27446,7 @@ _080D79B0: .4byte sub_8078B34 sub_80D79B4: @ 80D79B4 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, _080D79CC @ =gUnknown_03004B00 + ldr r5, _080D79CC @ =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r5, r1] cmp r0, 0 @@ -27456,7 +27456,7 @@ sub_80D79B4: @ 80D79B4 bl sub_8078764 b _080D7A06 .align 2, 0 -_080D79CC: .4byte gUnknown_03004B00 +_080D79CC: .4byte gBattleAnimArgs _080D79D0: ldr r0, _080D7A18 @ =gUnknown_0202F7C9 ldrb r0, [r0] @@ -27540,7 +27540,7 @@ sub_80D7A64: @ 80D7A64 adds r5, r0, 0 movs r1, 0x1 bl sub_80787B0 - ldr r6, _080D7AAC @ =gUnknown_03004B00 + ldr r6, _080D7AAC @ =gBattleAnimArgs ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] @@ -27568,7 +27568,7 @@ sub_80D7A64: @ 80D7A64 strh r0, [r5, 0x36] b _080D7AC6 .align 2, 0 -_080D7AAC: .4byte gUnknown_03004B00 +_080D7AAC: .4byte gBattleAnimArgs _080D7AB0: .4byte gUnknown_0202F7C9 _080D7AB4: ldr r0, _080D7AE0 @ =gUnknown_0202F7C9 @@ -27586,7 +27586,7 @@ _080D7AC6: lsls r0, 24 cmp r0, 0 beq _080D7AEC - ldr r0, _080D7AE8 @ =gUnknown_03004B00 + ldr r0, _080D7AE8 @ =gBattleAnimArgs ldrh r1, [r5, 0x32] ldrh r0, [r0, 0x4] subs r1, r0 @@ -27595,9 +27595,9 @@ _080D7AC6: .align 2, 0 _080D7AE0: .4byte gUnknown_0202F7C9 _080D7AE4: .4byte gUnknown_0202F7C8 -_080D7AE8: .4byte gUnknown_03004B00 +_080D7AE8: .4byte gBattleAnimArgs _080D7AEC: - ldr r0, _080D7B94 @ =gUnknown_03004B00 + ldr r0, _080D7B94 @ =gBattleAnimArgs ldrh r0, [r0, 0x4] ldrh r2, [r5, 0x32] adds r0, r2 @@ -27684,7 +27684,7 @@ _080D7B76: pop {r0} bx r0 .align 2, 0 -_080D7B94: .4byte gUnknown_03004B00 +_080D7B94: .4byte gBattleAnimArgs _080D7B98: .4byte sub_8078D8C _080D7B9C: .4byte sub_80D7BA0 thumb_func_end sub_80D7A64 @@ -27855,7 +27855,7 @@ sub_80D7CD4: @ 80D7CD4 adds r5, r0, 0 movs r1, 0x1 bl sub_80787B0 - ldr r1, _080D7D18 @ =gUnknown_03004B00 + ldr r1, _080D7D18 @ =gBattleAnimArgs ldrh r0, [r1, 0x8] strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] @@ -27881,7 +27881,7 @@ sub_80D7CD4: @ 80D7CD4 strh r0, [r5, 0x36] b _080D7D32 .align 2, 0 -_080D7D18: .4byte gUnknown_03004B00 +_080D7D18: .4byte gBattleAnimArgs _080D7D1C: .4byte gUnknown_0202F7C9 _080D7D20: ldr r0, _080D7D50 @ =gUnknown_0202F7C9 @@ -27899,7 +27899,7 @@ _080D7D32: lsls r0, 24 cmp r0, 0 beq _080D7D5C - ldr r0, _080D7D58 @ =gUnknown_03004B00 + ldr r0, _080D7D58 @ =gBattleAnimArgs ldrh r1, [r5, 0x32] ldrh r2, [r0, 0x4] subs r1, r2 @@ -27909,9 +27909,9 @@ _080D7D32: .align 2, 0 _080D7D50: .4byte gUnknown_0202F7C9 _080D7D54: .4byte gUnknown_0202F7C8 -_080D7D58: .4byte gUnknown_03004B00 +_080D7D58: .4byte gBattleAnimArgs _080D7D5C: - ldr r1, _080D7E10 @ =gUnknown_03004B00 + ldr r1, _080D7E10 @ =gBattleAnimArgs ldrh r0, [r1, 0x4] ldrh r2, [r5, 0x32] adds r0, r2 @@ -27981,7 +27981,7 @@ _080D7DCE: strh r0, [r5, 0x22] strh r1, [r5, 0x26] strh r1, [r5, 0x24] - ldr r1, _080D7E10 @ =gUnknown_03004B00 + ldr r1, _080D7E10 @ =gBattleAnimArgs ldr r6, _080D7E14 @ =sub_80D7E18 mov r3, sp adds r2, r7, 0 @@ -28004,7 +28004,7 @@ _080D7DEE: pop {r0} bx r0 .align 2, 0 -_080D7E10: .4byte gUnknown_03004B00 +_080D7E10: .4byte gBattleAnimArgs _080D7E14: .4byte sub_80D7E18 thumb_func_end sub_80D7CD4 @@ -28076,7 +28076,7 @@ sub_80D7E88: @ 80D7E88 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D7EF4 - ldr r5, _080D7EA8 @ =gUnknown_03004B00 + ldr r5, _080D7EA8 @ =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r5, r1] cmp r0, 0 @@ -28086,7 +28086,7 @@ sub_80D7E88: @ 80D7E88 bl sub_8078764 b _080D7EE2 .align 2, 0 -_080D7EA8: .4byte gUnknown_03004B00 +_080D7EA8: .4byte gBattleAnimArgs _080D7EAC: ldr r0, _080D7EEC @ =gUnknown_0202F7C9 ldrb r0, [r0] @@ -28142,7 +28142,7 @@ _080D7F08: sub_80D7F10: @ 80D7F10 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, _080D7F30 @ =gUnknown_03004B00 + ldr r6, _080D7F30 @ =gBattleAnimArgs movs r1, 0x8 ldrsh r0, [r6, r1] cmp r0, 0 @@ -28156,7 +28156,7 @@ sub_80D7F10: @ 80D7F10 bl sub_80787B0 b _080D7F72 .align 2, 0 -_080D7F30: .4byte gUnknown_03004B00 +_080D7F30: .4byte gBattleAnimArgs _080D7F34: ldr r4, _080D7F5C @ =gUnknown_0202F7C8 ldrb r0, [r4] @@ -28183,7 +28183,7 @@ _080D7F60: adds r0, r1 _080D7F66: strh r0, [r5, 0x20] - ldr r0, _080D7F78 @ =gUnknown_03004B00 + ldr r0, _080D7F78 @ =gBattleAnimArgs ldrh r0, [r0, 0x2] ldrh r1, [r5, 0x22] adds r0, r1 @@ -28192,7 +28192,7 @@ _080D7F72: ldr r0, _080D7F7C @ =gUnknown_0202F7C8 b _080D7FD0 .align 2, 0 -_080D7F78: .4byte gUnknown_03004B00 +_080D7F78: .4byte gBattleAnimArgs _080D7F7C: .4byte gUnknown_0202F7C8 _080D7F80: movs r1, 0xA @@ -28229,7 +28229,7 @@ _080D7FBC: adds r0, r1 _080D7FC2: strh r0, [r5, 0x20] - ldr r0, _080D7FEC @ =gUnknown_03004B00 + ldr r0, _080D7FEC @ =gBattleAnimArgs ldrh r0, [r0, 0x2] ldrh r1, [r5, 0x22] adds r0, r1 @@ -28239,12 +28239,12 @@ _080D7FCE: _080D7FD0: ldrb r0, [r0] strh r0, [r5, 0x3C] - ldr r0, _080D7FEC @ =gUnknown_03004B00 + ldr r0, _080D7FEC @ =gBattleAnimArgs movs r1, 0xA ldrsh r0, [r0, r1] cmp r0, 0 beq _080D7FE8 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _080D7FF4 @@ -28252,7 +28252,7 @@ _080D7FE8: movs r0, 0x20 b _080D7FF6 .align 2, 0 -_080D7FEC: .4byte gUnknown_03004B00 +_080D7FEC: .4byte gBattleAnimArgs _080D7FF0: .4byte gUnknown_0202F7C9 _080D7FF4: movs r0, 0x40 @@ -28268,7 +28268,7 @@ _080D7FF6: adds r0, 0x8 strh r0, [r5, 0x22] _080D800C: - ldr r1, _080D8040 @ =gUnknown_03004B00 + ldr r1, _080D8040 @ =gBattleAnimArgs ldrh r0, [r1, 0x6] strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] @@ -28292,7 +28292,7 @@ _080D800C: bx r0 .align 2, 0 _080D803C: .4byte gUnknown_0202F7C9 -_080D8040: .4byte gUnknown_03004B00 +_080D8040: .4byte gBattleAnimArgs _080D8044: .4byte sub_80D8048 thumb_func_end sub_80D7F10 @@ -29126,7 +29126,7 @@ sub_80D8700: @ 80D8700 mov r7, r8 push {r7} adds r5, r0, 0 - ldr r6, _080D87E8 @ =gUnknown_03004B00 + ldr r6, _080D87E8 @ =gBattleAnimArgs ldrh r0, [r6] strh r0, [r5, 0x2E] ldr r0, _080D87EC @ =gUnknown_0202F7C8 @@ -29209,7 +29209,7 @@ _080D8794: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r6, _080D87E8 @ =gUnknown_03004B00 + ldr r6, _080D87E8 @ =gBattleAnimArgs movs r1, 0xE ldrsh r0, [r6, r1] cmp r0, 0 @@ -29235,7 +29235,7 @@ _080D8794: movs r1, 0x3 b _080D8824 .align 2, 0 -_080D87E8: .4byte gUnknown_03004B00 +_080D87E8: .4byte gBattleAnimArgs _080D87EC: .4byte gUnknown_0202F7C8 _080D87F0: .4byte gUnknown_0202F7C9 _080D87F4: .4byte gUnknown_02024A72 @@ -30086,7 +30086,7 @@ _080D8E6A: adds r0, r5, 0 movs r1, 0x1 bl sub_80787B0 - ldr r6, _080D8ED0 @ =gUnknown_03004B00 + ldr r6, _080D8ED0 @ =gBattleAnimArgs ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] ldr r0, _080D8ED4 @ =gUnknown_0202F7C8 @@ -30127,7 +30127,7 @@ _080D8E92: bx r0 .align 2, 0 _080D8ECC: .4byte gUnknown_0202F7B4 -_080D8ED0: .4byte gUnknown_03004B00 +_080D8ED0: .4byte gBattleAnimArgs _080D8ED4: .4byte gUnknown_0202F7C8 _080D8ED8: .4byte gUnknown_0202F7C9 _080D8EDC: .4byte sub_80D8EE0 @@ -30256,7 +30256,7 @@ sub_80D8FC0: @ 80D8FC0 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r1, _080D8FE8 @ =gUnknown_03004B00 + ldr r1, _080D8FE8 @ =gBattleAnimArgs ldrb r3, [r1] lsls r3, 1 adds r3, r1 @@ -30273,7 +30273,7 @@ sub_80D8FC0: @ 80D8FC0 pop {r0} bx r0 .align 2, 0 -_080D8FE8: .4byte gUnknown_03004B00 +_080D8FE8: .4byte gBattleAnimArgs _080D8FEC: .4byte gUnknown_0202F7B4 thumb_func_end sub_80D8FC0 @@ -30281,7 +30281,7 @@ _080D8FEC: .4byte gUnknown_0202F7B4 unc_080B08A0: @ 80D8FF0 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, _080D9020 @ =gUnknown_03004B00 + ldr r5, _080D9020 @ =gBattleAnimArgs movs r0, 0 ldrsh r1, [r5, r0] adds r0, r4, 0 @@ -30301,7 +30301,7 @@ unc_080B08A0: @ 80D8FF0 pop {r0} bx r0 .align 2, 0 -_080D9020: .4byte gUnknown_03004B00 +_080D9020: .4byte gBattleAnimArgs _080D9024: .4byte sub_80782D8 _080D9028: .4byte move_anim_8072740 thumb_func_end unc_080B08A0 @@ -30310,7 +30310,7 @@ _080D9028: .4byte move_anim_8072740 sub_80D902C: @ 80D902C push {r4,r5,lr} adds r5, r0, 0 - ldr r4, _080D9070 @ =gUnknown_03004B00 + ldr r4, _080D9070 @ =gBattleAnimArgs movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0x1 @@ -30328,7 +30328,7 @@ sub_80D902C: @ 80D902C negs r0, r0 strh r0, [r4, 0x6] _080D9054: - ldr r4, _080D9070 @ =gUnknown_03004B00 + ldr r4, _080D9070 @ =gBattleAnimArgs ldrb r1, [r4, 0xC] adds r0, r5, 0 bl StartSpriteAnim @@ -30340,7 +30340,7 @@ _080D9054: pop {r0} bx r0 .align 2, 0 -_080D9070: .4byte gUnknown_03004B00 +_080D9070: .4byte gBattleAnimArgs _080D9074: .4byte gUnknown_0202F7C8 thumb_func_end sub_80D902C @@ -30352,7 +30352,7 @@ sub_80D9078: @ 80D9078 lsls r0, 24 cmp r0, 0 beq _080D9094 - ldr r0, _080D90A0 @ =gUnknown_03004B00 + ldr r0, _080D90A0 @ =gBattleAnimArgs ldrh r1, [r0, 0x2] negs r1, r1 strh r1, [r0, 0x2] @@ -30366,14 +30366,14 @@ _080D9094: pop {r0} bx r0 .align 2, 0 -_080D90A0: .4byte gUnknown_03004B00 +_080D90A0: .4byte gBattleAnimArgs thumb_func_end sub_80D9078 thumb_func_start sub_80D90A4 sub_80D90A4: @ 80D90A4 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, _080D90C4 @ =gUnknown_03004B00 + ldr r4, _080D90C4 @ =gBattleAnimArgs ldrb r1, [r4, 0x8] bl StartSpriteAnim movs r1, 0x6 @@ -30385,13 +30385,13 @@ sub_80D90A4: @ 80D90A4 bl sub_80787B0 b _080D90D0 .align 2, 0 -_080D90C4: .4byte gUnknown_03004B00 +_080D90C4: .4byte gBattleAnimArgs _080D90C8: adds r0, r5, 0 movs r1, 0x1 bl sub_8078764 _080D90D0: - ldr r0, _080D90E8 @ =gUnknown_03004B00 + ldr r0, _080D90E8 @ =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r5, 0x2E] ldr r0, _080D90EC @ =sub_80782D8 @@ -30403,7 +30403,7 @@ _080D90D0: pop {r0} bx r0 .align 2, 0 -_080D90E8: .4byte gUnknown_03004B00 +_080D90E8: .4byte gBattleAnimArgs _080D90EC: .4byte sub_80782D8 _080D90F0: .4byte move_anim_8072740 thumb_func_end sub_80D90A4 @@ -30415,7 +30415,7 @@ sub_80D90F4: @ 80D90F4 mov r6, r8 push {r6,r7} adds r5, r0, 0 - ldr r0, _080D9110 @ =gUnknown_03004B00 + ldr r0, _080D9110 @ =gBattleAnimArgs movs r2, 0 ldrsh r1, [r0, r2] mov r9, r0 @@ -30424,7 +30424,7 @@ sub_80D90F4: @ 80D90F4 ldr r0, _080D9114 @ =gUnknown_0202F7C8 b _080D911A .align 2, 0 -_080D9110: .4byte gUnknown_03004B00 +_080D9110: .4byte gBattleAnimArgs _080D9114: .4byte gUnknown_0202F7C8 _080D9118: ldr r0, _080D9260 @ =gUnknown_0202F7C9 @@ -30646,7 +30646,7 @@ sub_80D92D0: @ 80D92D0 bl sub_8078764 movs r0, 0x1E strh r0, [r4, 0x2E] - ldr r0, _080D92F0 @ =gUnknown_03004B00 + ldr r0, _080D92F0 @ =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 @@ -30656,7 +30656,7 @@ sub_80D92D0: @ 80D92D0 strh r0, [r4, 0x32] b _080D9306 .align 2, 0 -_080D92F0: .4byte gUnknown_03004B00 +_080D92F0: .4byte gBattleAnimArgs _080D92F4: ldrh r0, [r4, 0x20] adds r0, 0x14 @@ -30744,7 +30744,7 @@ sub_80D9378: @ 80D9378 lsrs r0, 24 cmp r0, 0x1 bhi _080D93A4 - ldr r1, _080D93FC @ =gUnknown_03004B00 + ldr r1, _080D93FC @ =gBattleAnimArgs movs r2, 0 ldrsh r0, [r1, r2] negs r0, r0 @@ -30759,12 +30759,12 @@ _080D93A4: lsls r0, 24 cmp r0, 0 beq _080D93C2 - ldr r1, _080D93FC @ =gUnknown_03004B00 + ldr r1, _080D93FC @ =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080D93C2: - ldr r4, _080D93FC @ =gUnknown_03004B00 + ldr r4, _080D93FC @ =gBattleAnimArgs ldrh r0, [r4, 0x6] movs r5, 0 strh r0, [r6, 0x2E] @@ -30791,7 +30791,7 @@ _080D93C2: .align 2, 0 _080D93F4: .4byte gUnknown_0202F7C8 _080D93F8: .4byte gUnknown_0202F7C9 -_080D93FC: .4byte gUnknown_03004B00 +_080D93FC: .4byte gBattleAnimArgs _080D9400: .4byte sub_80D9404 thumb_func_end sub_80D9378 @@ -30832,7 +30832,7 @@ sub_80D943C: @ 80D943C adds r4, r0, 0 movs r1, 0x1 bl sub_8078764 - ldr r5, _080D9468 @ =gUnknown_03004B00 + ldr r5, _080D9468 @ =gBattleAnimArgs ldrb r1, [r5, 0x4] adds r0, r4, 0 bl StartSpriteAnim @@ -30847,7 +30847,7 @@ sub_80D943C: @ 80D943C pop {r0} bx r0 .align 2, 0 -_080D9468: .4byte gUnknown_03004B00 +_080D9468: .4byte gBattleAnimArgs _080D946C: .4byte sub_80782D8 _080D9470: .4byte sub_80D9474 thumb_func_end sub_80D943C @@ -30885,7 +30885,7 @@ sub_80D94A8: @ 80D94A8 adds r4, r0, 0 movs r1, 0x1 bl sub_8078764 - ldr r0, _080D94C4 @ =gUnknown_03004B00 + ldr r0, _080D94C4 @ =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] ldr r0, _080D94C8 @ =sub_80D94CC @@ -30894,7 +30894,7 @@ sub_80D94A8: @ 80D94A8 pop {r0} bx r0 .align 2, 0 -_080D94C4: .4byte gUnknown_03004B00 +_080D94C4: .4byte gBattleAnimArgs _080D94C8: .4byte sub_80D94CC thumb_func_end sub_80D94A8 @@ -30968,7 +30968,7 @@ sub_80D9540: @ 80D9540 adds r0, r4, 0 movs r1, 0x1 bl sub_8078764 - ldr r1, _080D9568 @ =gUnknown_03004B00 + ldr r1, _080D9568 @ =gBattleAnimArgs ldrh r0, [r1, 0x4] strh r0, [r4, 0x30] ldrh r0, [r1, 0x6] @@ -30978,7 +30978,7 @@ sub_80D9540: @ 80D9540 strh r0, [r4, 0x2E] b _080D95C8 .align 2, 0 -_080D9568: .4byte gUnknown_03004B00 +_080D9568: .4byte gBattleAnimArgs _080D956C: ldrh r0, [r4, 0x30] ldrh r2, [r4, 0x36] @@ -31035,7 +31035,7 @@ _080D95C8: sub_80D95D0: @ 80D95D0 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, _080D95E4 @ =gUnknown_03004B00 + ldr r0, _080D95E4 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -31043,7 +31043,7 @@ sub_80D95D0: @ 80D95D0 ldr r4, _080D95E8 @ =gUnknown_0202F7C8 b _080D95EE .align 2, 0 -_080D95E4: .4byte gUnknown_03004B00 +_080D95E4: .4byte gBattleAnimArgs _080D95E8: .4byte gUnknown_0202F7C8 _080D95EC: ldr r4, _080D9634 @ =gUnknown_0202F7C9 @@ -31060,7 +31060,7 @@ _080D95EE: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r1, _080D9638 @ =gUnknown_03004B00 + ldr r1, _080D9638 @ =gBattleAnimArgs ldrh r0, [r1, 0x2] ldrh r2, [r5, 0x20] adds r0, r2 @@ -31083,7 +31083,7 @@ _080D95EE: bx r0 .align 2, 0 _080D9634: .4byte gUnknown_0202F7C9 -_080D9638: .4byte gUnknown_03004B00 +_080D9638: .4byte gBattleAnimArgs _080D963C: .4byte sub_80D9640 thumb_func_end sub_80D95D0 @@ -31160,7 +31160,7 @@ _080D96B4: .4byte 0x0000fffe sub_80D96B8: @ 80D96B8 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, _080D96DC @ =gUnknown_03004B00 + ldr r6, _080D96DC @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 @@ -31175,7 +31175,7 @@ sub_80D96B8: @ 80D96B8 adds r0, r2 b _080D96F6 .align 2, 0 -_080D96DC: .4byte gUnknown_03004B00 +_080D96DC: .4byte gBattleAnimArgs _080D96E0: .4byte gUnknown_0202F7C8 _080D96E4: ldr r4, _080D9740 @ =gUnknown_0202F7C9 @@ -31199,7 +31199,7 @@ _080D96F6: ldrh r2, [r5, 0x4] lsls r1, r2, 22 lsrs r1, 22 - ldr r3, _080D9744 @ =gUnknown_03004B00 + ldr r3, _080D9744 @ =gBattleAnimArgs movs r4, 0x2 ldrsh r0, [r3, r4] lsls r0, 4 @@ -31225,7 +31225,7 @@ _080D96F6: b _080D978A .align 2, 0 _080D9740: .4byte gUnknown_0202F7C9 -_080D9744: .4byte gUnknown_03004B00 +_080D9744: .4byte gBattleAnimArgs _080D9748: .4byte 0x000003ff _080D974C: .4byte 0xfffffc00 _080D9750: @@ -31304,7 +31304,7 @@ _080D97C8: sub_80D97CC: @ 80D97CC push {r4,r5,lr} adds r5, r0, 0 - ldr r0, _080D9818 @ =gUnknown_03004B00 + ldr r0, _080D9818 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -31337,7 +31337,7 @@ sub_80D97CC: @ 80D97CC ldr r0, _080D9824 @ =gUnknown_0202F7C9 b _080D9844 .align 2, 0 -_080D9818: .4byte gUnknown_03004B00 +_080D9818: .4byte gBattleAnimArgs _080D981C: .4byte gUnknown_02024C07 _080D9820: .4byte gUnknown_0202F7C8 _080D9824: .4byte gUnknown_0202F7C9 @@ -31432,7 +31432,7 @@ _080D98D4: .4byte sub_8078BB8 sub_80D98D8: @ 80D98D8 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, _080D9924 @ =gUnknown_03004B00 + ldr r4, _080D9924 @ =gBattleAnimArgs ldrh r0, [r4] strh r0, [r5, 0x20] movs r2, 0x78 @@ -31467,7 +31467,7 @@ sub_80D98D8: @ 80D98D8 pop {r0} bx r0 .align 2, 0 -_080D9924: .4byte gUnknown_03004B00 +_080D9924: .4byte gBattleAnimArgs _080D9928: .4byte 0x000003ff _080D992C: .4byte 0xfffffc00 _080D9930: .4byte sub_80D9934 @@ -31609,7 +31609,7 @@ _080D9A34: sub_80D9A38: @ 80D9A38 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, _080D9A6C @ =gUnknown_03004B00 + ldr r0, _080D9A6C @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -31632,7 +31632,7 @@ sub_80D9A38: @ 80D9A38 ldr r0, _080D9A78 @ =gUnknown_0202F7C8 b _080D9A82 .align 2, 0 -_080D9A6C: .4byte gUnknown_03004B00 +_080D9A6C: .4byte gBattleAnimArgs _080D9A70: .4byte gUnknown_02024C07 _080D9A74: .4byte gUnknown_0202F7C9 _080D9A78: .4byte gUnknown_0202F7C8 @@ -31756,7 +31756,7 @@ sub_80D9B48: @ 80D9B48 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r1, _080D9BC8 @ =gUnknown_03004B00 + ldr r1, _080D9BC8 @ =gBattleAnimArgs ldrh r0, [r1, 0x6] strh r0, [r5, 0x30] ldrh r0, [r1] @@ -31803,7 +31803,7 @@ _080D9BA6: bx r0 .align 2, 0 _080D9BC4: .4byte gUnknown_0202F7C9 -_080D9BC8: .4byte gUnknown_03004B00 +_080D9BC8: .4byte gBattleAnimArgs _080D9BCC: .4byte gUnknown_0202F7C4 _080D9BD0: .4byte sub_80D9B24 thumb_func_end sub_80D9B48 @@ -31812,7 +31812,7 @@ _080D9BD0: .4byte sub_80D9B24 sub_80D9BD4: @ 80D9BD4 push {r4,lr} adds r4, r0, 0 - ldr r0, _080D9BEC @ =gUnknown_03004B00 + ldr r0, _080D9BEC @ =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 @@ -31822,7 +31822,7 @@ sub_80D9BD4: @ 80D9BD4 bl sub_80787B0 b _080D9BF8 .align 2, 0 -_080D9BEC: .4byte gUnknown_03004B00 +_080D9BEC: .4byte gBattleAnimArgs _080D9BF0: adds r0, r4, 0 movs r1, 0 @@ -31916,13 +31916,13 @@ sub_80D9C80: @ 80D9C80 bne _080D9CD2 movs r0, 0 bl sub_80789D4 - ldr r0, _080D9CB4 @ =gUnknown_03004B00 + ldr r0, _080D9CB4 @ =gBattleAnimArgs ldrh r0, [r0] strh r0, [r4, 0x18] b _080D9CCA .align 2, 0 _080D9CB0: .4byte gTasks -_080D9CB4: .4byte gUnknown_03004B00 +_080D9CB4: .4byte gBattleAnimArgs _080D9CB8: ldrh r0, [r4, 0x18] subs r0, 0x1 @@ -31993,7 +31993,7 @@ _080D9D24: strh r1, [r4, 0x1A] ands r0, r2 strh r0, [r4, 0x1C] - ldr r0, _080D9D6C @ =gUnknown_03004B00 + ldr r0, _080D9D6C @ =gBattleAnimArgs movs r2, 0xE ldrsh r1, [r0, r2] movs r0, 0x1 @@ -32013,14 +32013,14 @@ _080D9D5C: .align 2, 0 _080D9D64: .4byte gUnknown_030041B0 _080D9D68: .4byte gUnknown_030041B8 -_080D9D6C: .4byte gUnknown_03004B00 +_080D9D6C: .4byte gBattleAnimArgs thumb_func_end sub_80D9C80 thumb_func_start sub_80D9D70 sub_80D9D70: @ 80D9D70 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, _080D9DC4 @ =gUnknown_03004B00 + ldr r4, _080D9DC4 @ =gBattleAnimArgs movs r1, 0x6 ldrsh r0, [r4, r1] cmp r0, 0 @@ -32057,7 +32057,7 @@ _080D9D86: pop {r0} bx r0 .align 2, 0 -_080D9DC4: .4byte gUnknown_03004B00 +_080D9DC4: .4byte gBattleAnimArgs _080D9DC8: .4byte gUnknown_0202F7C9 _080D9DCC: .4byte 0x0000ffe2 _080D9DD0: .4byte sub_80D9DD4 @@ -32084,7 +32084,7 @@ sub_80D9DF0: @ 80D9DF0 push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 - ldr r5, _080D9E64 @ =gUnknown_03004B00 + ldr r5, _080D9E64 @ =gBattleAnimArgs movs r1, 0x6 ldrsh r0, [r5, r1] cmp r0, 0 @@ -32136,7 +32136,7 @@ _080D9E36: pop {r0} bx r0 .align 2, 0 -_080D9E64: .4byte gUnknown_03004B00 +_080D9E64: .4byte gBattleAnimArgs _080D9E68: .4byte gUnknown_0202F7C9 _080D9E6C: .4byte gUnknown_0202F7C8 _080D9E70: .4byte 0x0000ffe2 @@ -32163,7 +32163,7 @@ _080D9E8C: sub_80D9E94: @ 80D9E94 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, _080D9EE0 @ =gUnknown_03004B00 + ldr r5, _080D9EE0 @ =gBattleAnimArgs ldrh r0, [r5, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] @@ -32196,7 +32196,7 @@ sub_80D9E94: @ 80D9E94 pop {r0} bx r0 .align 2, 0 -_080D9EE0: .4byte gUnknown_03004B00 +_080D9EE0: .4byte gBattleAnimArgs _080D9EE4: .4byte sub_80D9EE8 thumb_func_end sub_80D9E94 @@ -32243,12 +32243,12 @@ sub_80D9F14: @ 80D9F14 lsls r0, 24 cmp r0, 0 beq _080D9F40 - ldr r1, _080D9F7C @ =gUnknown_03004B00 + ldr r1, _080D9F7C @ =gBattleAnimArgs ldrh r0, [r1] negs r0, r0 strh r0, [r1] _080D9F40: - ldr r0, _080D9F7C @ =gUnknown_03004B00 + ldr r0, _080D9F7C @ =gBattleAnimArgs ldrh r2, [r0] ldrh r1, [r4, 0x20] adds r2, r1 @@ -32275,7 +32275,7 @@ _080D9F40: .align 2, 0 _080D9F74: .4byte gUnknown_0202F7C9 _080D9F78: .4byte gUnknown_0202F7C8 -_080D9F7C: .4byte gUnknown_03004B00 +_080D9F7C: .4byte gBattleAnimArgs _080D9F80: .4byte sub_8078B34 _080D9F84: .4byte move_anim_8072740 thumb_func_end sub_80D9F14 @@ -32284,7 +32284,7 @@ _080D9F84: .4byte move_anim_8072740 sub_80D9F88: @ 80D9F88 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, _080D9FA0 @ =gUnknown_03004B00 + ldr r5, _080D9FA0 @ =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r5, r1] cmp r0, 0 @@ -32294,7 +32294,7 @@ sub_80D9F88: @ 80D9F88 bl sub_8078764 b _080D9FDA .align 2, 0 -_080D9FA0: .4byte gUnknown_03004B00 +_080D9FA0: .4byte gBattleAnimArgs _080D9FA4: ldr r0, _080D9FE4 @ =gUnknown_0202F7C9 ldrb r0, [r0] @@ -32436,7 +32436,7 @@ sub_80DA09C: @ 80DA09C adds r4, r0 lsls r4, 3 adds r4, r1 - ldr r1, _080DA0D0 @ =gUnknown_03004B00 + ldr r1, _080DA0D0 @ =gBattleAnimArgs ldrh r0, [r1, 0x2] strh r0, [r4, 0x8] ldrh r0, [r1] @@ -32453,7 +32453,7 @@ sub_80DA09C: @ 80DA09C bx r0 .align 2, 0 _080DA0CC: .4byte gTasks -_080DA0D0: .4byte gUnknown_03004B00 +_080DA0D0: .4byte gBattleAnimArgs _080DA0D4: .4byte 0x00002719 _080DA0D8: .4byte sub_80DA0DC thumb_func_end sub_80DA09C @@ -32544,12 +32544,12 @@ sub_80DA16C: @ 80DA16C lsls r0, 24 cmp r0, 0 beq _080DA18C - ldr r1, _080DA1DC @ =gUnknown_03004B00 + ldr r1, _080DA1DC @ =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080DA18C: - ldr r4, _080DA1DC @ =gUnknown_03004B00 + ldr r4, _080DA1DC @ =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] ldrh r0, [r6, 0x20] @@ -32585,7 +32585,7 @@ _080DA18C: bx r0 .align 2, 0 _080DA1D8: .4byte gUnknown_0202F7C8 -_080DA1DC: .4byte gUnknown_03004B00 +_080DA1DC: .4byte gBattleAnimArgs _080DA1E0: .4byte gUnknown_0202F7C9 _080DA1E4: .4byte sub_80785E4 _080DA1E8: .4byte sub_80DA1EC @@ -32617,7 +32617,7 @@ sub_80DA208: @ 80DA208 lsls r0, 24 cmp r0, 0 beq _080DA234 - ldr r1, _080DA2A8 @ =gUnknown_03004B00 + ldr r1, _080DA2A8 @ =gBattleAnimArgs ldrh r0, [r1] negs r0, r0 strh r0, [r1] @@ -32635,7 +32635,7 @@ _080DA234: lsls r0, 24 cmp r0, 0 beq _080DA24C - ldr r0, _080DA2A8 @ =gUnknown_03004B00 + ldr r0, _080DA2A8 @ =gBattleAnimArgs ldrh r1, [r0, 0x2] negs r1, r1 strh r1, [r0, 0x2] @@ -32653,7 +32653,7 @@ _080DA24C: movs r1, 0x3 bl sub_8077ABC lsls r0, 24 - ldr r2, _080DA2A8 @ =gUnknown_03004B00 + ldr r2, _080DA2A8 @ =gBattleAnimArgs ldrh r1, [r2] ldrh r3, [r5, 0x20] adds r1, r3 @@ -32684,7 +32684,7 @@ _080DA24C: b _080DA2C2 .align 2, 0 _080DA2A4: .4byte gUnknown_0202F7C8 -_080DA2A8: .4byte gUnknown_03004B00 +_080DA2A8: .4byte gBattleAnimArgs _080DA2AC: .4byte gUnknown_0202F7C9 _080DA2B0: ldr r0, _080DA2F0 @ =gUnknown_0202F7C9 @@ -32696,7 +32696,7 @@ _080DA2B0: movs r1, 0x1 bl sub_807A3FC _080DA2C2: - ldr r4, _080DA2F4 @ =gUnknown_03004B00 + ldr r4, _080DA2F4 @ =gBattleAnimArgs ldrh r0, [r4, 0x4] ldrh r1, [r5, 0x32] adds r0, r1 @@ -32718,7 +32718,7 @@ _080DA2C2: bx r0 .align 2, 0 _080DA2F0: .4byte gUnknown_0202F7C9 -_080DA2F4: .4byte gUnknown_03004B00 +_080DA2F4: .4byte gBattleAnimArgs _080DA2F8: .4byte sub_8078B34 _080DA2FC: .4byte move_anim_8072740 thumb_func_end sub_80DA208 @@ -32729,7 +32729,7 @@ sub_80DA300: @ 80DA300 adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 - ldr r1, _080DA33C @ =gUnknown_03004B00 + ldr r1, _080DA33C @ =gBattleAnimArgs ldrh r0, [r1, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x6] @@ -32754,7 +32754,7 @@ sub_80DA300: @ 80DA300 pop {r0} bx r0 .align 2, 0 -_080DA33C: .4byte gUnknown_03004B00 +_080DA33C: .4byte gBattleAnimArgs _080DA340: .4byte sub_80DA348 _080DA344: .4byte gSprites thumb_func_end sub_80DA300 @@ -32825,7 +32825,7 @@ _080DA3BC: strh r0, [r5, 0x20] strh r0, [r5, 0x22] _080DA3C2: - ldr r0, _080DA404 @ =gUnknown_03004B00 + ldr r0, _080DA404 @ =gBattleAnimArgs ldrh r0, [r0] strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] @@ -32854,7 +32854,7 @@ _080DA3C2: bx r0 .align 2, 0 _080DA400: .4byte 0x0000ffe0 -_080DA404: .4byte gUnknown_03004B00 +_080DA404: .4byte gBattleAnimArgs _080DA408: .4byte gUnknown_0202F7C9 _080DA40C: .4byte sub_80DA410 thumb_func_end sub_80DA38C @@ -32973,7 +32973,7 @@ sub_80DA4D8: @ 80DA4D8 adds r7, r0, 0 adds r5, r7, 0 adds r5, 0x2E - ldr r0, _080DA4F8 @ =gUnknown_03004B00 + ldr r0, _080DA4F8 @ =gBattleAnimArgs ldrh r1, [r0, 0xE] movs r0, 0x80 lsls r0, 1 @@ -32983,7 +32983,7 @@ sub_80DA4D8: @ 80DA4D8 ldr r0, _080DA4FC @ =gUnknown_0202F7C8 b _080DA502 .align 2, 0 -_080DA4F8: .4byte gUnknown_03004B00 +_080DA4F8: .4byte gBattleAnimArgs _080DA4FC: .4byte gUnknown_0202F7C8 _080DA500: ldr r0, _080DA5B0 @ =gUnknown_0202F7C9 @@ -32994,7 +32994,7 @@ _080DA502: lsls r0, 24 cmp r0, 0 bne _080DA518 - ldr r1, _080DA5B4 @ =gUnknown_03004B00 + ldr r1, _080DA5B4 @ =gBattleAnimArgs ldrh r0, [r1] negs r0, r0 strh r0, [r1] @@ -33003,7 +33003,7 @@ _080DA518: movs r1, 0 bl sub_8077ABC lsls r0, 24 - ldr r4, _080DA5B4 @ =gUnknown_03004B00 + ldr r4, _080DA5B4 @ =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4] adds r0, r1 @@ -33074,7 +33074,7 @@ _080DA518: b _080DA5D8 .align 2, 0 _080DA5B0: .4byte gUnknown_0202F7C9 -_080DA5B4: .4byte gUnknown_03004B00 +_080DA5B4: .4byte gBattleAnimArgs _080DA5B8: .4byte gMain _080DA5BC: .4byte 0x0000043d _080DA5C0: @@ -34121,7 +34121,7 @@ _080DAD80: .4byte sub_807941C sub_80DAD84: @ 80DAD84 push {r4-r7,lr} adds r4, r0, 0 - ldr r5, _080DADCC @ =gUnknown_03004B00 + ldr r5, _080DADCC @ =gBattleAnimArgs ldrh r0, [r5] strh r0, [r4, 0x30] ldrh r0, [r5, 0x2] @@ -34154,7 +34154,7 @@ sub_80DAD84: @ 80DAD84 adds r0, r5 b _080DADEE .align 2, 0 -_080DADCC: .4byte gUnknown_03004B00 +_080DADCC: .4byte gBattleAnimArgs _080DADD0: .4byte gMain _080DADD4: .4byte 0x0000043d _080DADD8: .4byte gUnknown_02024A72 @@ -34168,7 +34168,7 @@ _080DADE0: adds r0, 0x28 _080DADEE: strh r0, [r4, 0x3C] - ldr r0, _080DAE1C @ =gUnknown_03004B00 + ldr r0, _080DAE1C @ =gBattleAnimArgs movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0 @@ -34190,7 +34190,7 @@ _080DADEE: strb r1, [r4, 0x5] b _080DAE58 .align 2, 0 -_080DAE1C: .4byte gUnknown_03004B00 +_080DAE1C: .4byte gBattleAnimArgs _080DAE20: .4byte gUnknown_0202F7C9 _080DAE24: ldr r0, _080DAE40 @ =gUnknown_0202F7C9 @@ -34442,7 +34442,7 @@ _080DAFFC: .4byte sub_80DA6F0 sub_80DB000: @ 80DB000 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, _080DB018 @ =gUnknown_03004B00 + ldr r0, _080DB018 @ =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 @@ -34452,13 +34452,13 @@ sub_80DB000: @ 80DB000 bl sub_80787B0 b _080DB024 .align 2, 0 -_080DB018: .4byte gUnknown_03004B00 +_080DB018: .4byte gBattleAnimArgs _080DB01C: adds r0, r5, 0 movs r1, 0 bl sub_8078764 _080DB024: - ldr r4, _080DB08C @ =gUnknown_03004B00 + ldr r4, _080DB08C @ =gBattleAnimArgs movs r2, 0x4 ldrsh r0, [r4, r2] cmp r0, 0 @@ -34485,7 +34485,7 @@ _080DB052: adds r0, 0x8 strh r0, [r5, 0x20] _080DB058: - ldr r4, _080DB08C @ =gUnknown_03004B00 + ldr r4, _080DB08C @ =gBattleAnimArgs ldrb r1, [r4, 0x8] adds r0, r5, 0 bl SeekSpriteAnim @@ -34511,7 +34511,7 @@ _080DB058: pop {r0} bx r0 .align 2, 0 -_080DB08C: .4byte gUnknown_03004B00 +_080DB08C: .4byte gBattleAnimArgs _080DB090: .4byte gUnknown_0202F7C8 _080DB094: .4byte gUnknown_0202F7C9 _080DB098: .4byte 0x00000ccc @@ -34586,7 +34586,7 @@ sub_80DB0E8: @ 80DB0E8 negs r5, r5 adds r1, r5, 0 bl Sin - ldr r4, _080DB188 @ =gUnknown_03004B00 + ldr r4, _080DB188 @ =gBattleAnimArgs strh r0, [r4] movs r1, 0x8 ldrsh r0, [r7, r1] @@ -34635,7 +34635,7 @@ _080DB176: .align 2, 0 _080DB180: .4byte gTasks _080DB184: .4byte gUnknown_0202F7B2 -_080DB188: .4byte gUnknown_03004B00 +_080DB188: .4byte gBattleAnimArgs _080DB18C: .4byte gBattleAnimSpriteTemplate_83DB538 _080DB190: .4byte gUnknown_0202F7C9 thumb_func_end sub_80DB0E8 @@ -34778,7 +34778,7 @@ sub_80DB288: @ 80DB288 adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 - ldr r1, _080DB2C4 @ =gUnknown_03004B00 + ldr r1, _080DB2C4 @ =gBattleAnimArgs ldrh r0, [r1, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x6] @@ -34803,7 +34803,7 @@ sub_80DB288: @ 80DB288 pop {r0} bx r0 .align 2, 0 -_080DB2C4: .4byte gUnknown_03004B00 +_080DB2C4: .4byte gBattleAnimArgs _080DB2C8: .4byte sub_80DB2D0 _080DB2CC: .4byte gSprites thumb_func_end sub_80DB288 @@ -34914,7 +34914,7 @@ sub_80DB374: @ 80DB374 beq _080DB3E0 b _080DB44C _080DB388: - ldr r0, _080DB398 @ =gUnknown_03004B00 + ldr r0, _080DB398 @ =gBattleAnimArgs movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 @@ -34922,7 +34922,7 @@ _080DB388: ldr r4, _080DB39C @ =gUnknown_0202F7C8 b _080DB3A2 .align 2, 0 -_080DB398: .4byte gUnknown_03004B00 +_080DB398: .4byte gBattleAnimArgs _080DB39C: .4byte gUnknown_0202F7C8 _080DB3A0: ldr r4, _080DB3DC @ =gUnknown_0202F7C9 @@ -35061,7 +35061,7 @@ _080DB49C: subs r0, r1 _080DB4A4: strh r0, [r5, 0x30] - ldr r2, _080DB4CC @ =gUnknown_03004B00 + ldr r2, _080DB4CC @ =gBattleAnimArgs ldrh r0, [r2] strh r0, [r5, 0x32] lsls r0, 16 @@ -35082,7 +35082,7 @@ _080DB4C0: ldr r4, _080DB4D0 @ =gUnknown_0202F7C8 b _080DB4D6 .align 2, 0 -_080DB4CC: .4byte gUnknown_03004B00 +_080DB4CC: .4byte gBattleAnimArgs _080DB4D0: .4byte gUnknown_0202F7C8 _080DB4D4: ldr r4, _080DB500 @ =gUnknown_0202F7C9 @@ -35369,7 +35369,7 @@ unref_sub_80DB6E4: @ 80DB6E4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _080DB714 @ =gUnknown_03004B00 + ldr r0, _080DB714 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -35389,7 +35389,7 @@ unref_sub_80DB6E4: @ 80DB6E4 orrs r0, r2 b _080DB73A .align 2, 0 -_080DB714: .4byte gUnknown_03004B00 +_080DB714: .4byte gBattleAnimArgs _080DB718: .4byte gSprites _080DB71C: movs r0, 0 @@ -35489,7 +35489,7 @@ _080DB7DA: lsls r0, 24 cmp r0, 0 bne _080DB810 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _080DB810 @@ -35517,7 +35517,7 @@ _080DB810: lsls r0, 24 cmp r0, 0 beq _080DB826 - ldr r1, _080DB884 @ =gUnknown_03004B00 + ldr r1, _080DB884 @ =gBattleAnimArgs ldrh r0, [r1] negs r0, r0 strh r0, [r1] @@ -35526,7 +35526,7 @@ _080DB826: movs r1, 0 bl sub_8077ABC lsls r0, 24 - ldr r4, _080DB884 @ =gUnknown_03004B00 + ldr r4, _080DB884 @ =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4] adds r0, r1 @@ -35548,7 +35548,7 @@ _080DB84A: adds r0, 0x9 strh r0, [r6, 0x22] _080DB85C: - ldr r0, _080DB884 @ =gUnknown_03004B00 + ldr r0, _080DB884 @ =gBattleAnimArgs ldrh r0, [r0, 0x4] bl IndexOfSpritePaletteTag lsls r0, 24 @@ -35566,7 +35566,7 @@ _080DB85C: bx r0 .align 2, 0 _080DB880: .4byte gUnknown_0202F7C8 -_080DB884: .4byte gUnknown_03004B00 +_080DB884: .4byte gBattleAnimArgs _080DB888: .4byte sub_80DB88C thumb_func_end sub_80DB74C @@ -35808,7 +35808,7 @@ sub_80DBA4C: @ 80DBA4C ldrsh r0, [r4, r1] cmp r0, 0 bne _080DBAD8 - ldr r5, _080DBA98 @ =gUnknown_03004B00 + ldr r5, _080DBA98 @ =gBattleAnimArgs movs r1, 0x6 ldrsh r0, [r5, r1] movs r6, 0 @@ -35820,7 +35820,7 @@ _080DBA66: lsls r0, 24 cmp r0, 0 bne _080DBAAE - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _080DBAAE @@ -35839,7 +35839,7 @@ _080DBA66: strh r0, [r4, 0x22] b _080DBAD0 .align 2, 0 -_080DBA98: .4byte gUnknown_03004B00 +_080DBA98: .4byte gBattleAnimArgs _080DBA9C: .4byte gUnknown_0202F7C8 _080DBAA0: ldrh r0, [r5] @@ -35850,7 +35850,7 @@ _080DBAA0: strh r0, [r4, 0x22] b _080DBAD0 _080DBAAE: - ldr r0, _080DBAC4 @ =gUnknown_03004B00 + ldr r0, _080DBAC4 @ =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 @@ -35860,7 +35860,7 @@ _080DBAAE: bl sub_80787B0 b _080DBAD0 .align 2, 0 -_080DBAC4: .4byte gUnknown_03004B00 +_080DBAC4: .4byte gBattleAnimArgs _080DBAC8: adds r0, r4, 0 adds r1, r6, 0 @@ -36609,7 +36609,7 @@ _080DC05C: sub_80DC068: @ 80DC068 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, _080DC0A4 @ =gUnknown_03004B00 + ldr r6, _080DC0A4 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 @@ -36636,7 +36636,7 @@ _080DC094: pop {r0} bx r0 .align 2, 0 -_080DC0A4: .4byte gUnknown_03004B00 +_080DC0A4: .4byte gBattleAnimArgs _080DC0A8: .4byte gUnknown_0202F7C8 _080DC0AC: .4byte sub_80DC020 thumb_func_end sub_80DC068 @@ -36655,7 +36655,7 @@ sub_80DC0B0: @ 80DC0B0 lsls r0, 24 cmp r0, 0 beq _080DC154 - ldr r0, _080DC110 @ =gUnknown_03004B00 + ldr r0, _080DC110 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 @@ -36686,7 +36686,7 @@ sub_80DC0B0: @ 80DC0B0 b _080DC1DE .align 2, 0 _080DC10C: .4byte gTasks -_080DC110: .4byte gUnknown_03004B00 +_080DC110: .4byte gBattleAnimArgs _080DC114: .4byte 0x0000fff6 _080DC118: .4byte gUnknown_0202F7C9 _080DC11C: .4byte gUnknown_0202F7C8 @@ -36714,7 +36714,7 @@ _080DC120: _080DC14C: .4byte gUnknown_0202F7C8 _080DC150: .4byte gUnknown_0202F7C9 _080DC154: - ldr r0, _080DC198 @ =gUnknown_03004B00 + ldr r0, _080DC198 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 @@ -36744,7 +36744,7 @@ _080DC154: adds r0, 0x8 b _080DC1DE .align 2, 0 -_080DC198: .4byte gUnknown_03004B00 +_080DC198: .4byte gBattleAnimArgs _080DC19C: .4byte 0x0000fff6 _080DC1A0: .4byte gUnknown_0202F7C9 _080DC1A4: .4byte gUnknown_0202F7C8 @@ -36917,7 +36917,7 @@ sub_80DC2D4: @ 80DC2D4 adds r0, r1, 0 subs r0, 0x20 strh r0, [r4, 0x24] - ldr r0, _080DC314 @ =gUnknown_03004B00 + ldr r0, _080DC314 @ =gBattleAnimArgs movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0x1 @@ -36930,7 +36930,7 @@ sub_80DC2D4: @ 80DC2D4 .align 2, 0 _080DC30C: .4byte gTasks _080DC310: .4byte gUnknown_0202F7C9 -_080DC314: .4byte gUnknown_03004B00 +_080DC314: .4byte gBattleAnimArgs _080DC318: cmp r0, 0x2 beq _080DC336 @@ -37213,7 +37213,7 @@ sub_80DC4F4: @ 80DC4F4 .align 2, 0 _080DC528: .4byte gTasks _080DC52C: - ldr r1, _080DC550 @ =gUnknown_03004B00 + ldr r1, _080DC550 @ =gBattleAnimArgs ldrb r0, [r1] bl duplicate_obj_of_side_rel2move_in_transparent_mode lsls r0, 16 @@ -37228,7 +37228,7 @@ _080DC52C: bl move_anim_task_del b _080DC5D6 .align 2, 0 -_080DC550: .4byte gUnknown_03004B00 +_080DC550: .4byte gBattleAnimArgs _080DC554: ldr r2, _080DC5E4 @ =gSprites lsls r4, r0, 4 @@ -37280,7 +37280,7 @@ _080DC554: lsrs r3, 30 adds r0, r4, 0 bl CalcCenterToCornerVec - ldr r1, _080DC5EC @ =gUnknown_03004B00 + ldr r1, _080DC5EC @ =gBattleAnimArgs ldrb r0, [r1] bl obj_id_for_side_relative_to_move lsls r0, 24 @@ -37303,7 +37303,7 @@ _080DC5D6: .align 2, 0 _080DC5E4: .4byte gSprites _080DC5E8: .4byte SpriteCallbackDummy -_080DC5EC: .4byte gUnknown_03004B00 +_080DC5EC: .4byte gBattleAnimArgs _080DC5F0: .4byte sub_80DC5F4 thumb_func_end sub_80DC4F4 @@ -37601,7 +37601,7 @@ sub_80DC824: @ 80DC824 adds r0, r6, 0 movs r1, 0x2 bl StartSpriteAffineAnim - ldr r0, _080DC84C @ =gUnknown_03004B00 + ldr r0, _080DC84C @ =gBattleAnimArgs ldrh r1, [r0, 0x4] negs r1, r1 strh r1, [r0, 0x4] @@ -37610,7 +37610,7 @@ sub_80DC824: @ 80DC824 strh r1, [r0] b _080DC880 .align 2, 0 -_080DC84C: .4byte gUnknown_03004B00 +_080DC84C: .4byte gBattleAnimArgs _080DC850: ldr r0, _080DC8E4 @ =gUnknown_0202F7C9 ldrb r0, [r0] @@ -37621,7 +37621,7 @@ _080DC850: adds r0, r6, 0 movs r1, 0x1 bl StartSpriteAffineAnim - ldr r1, _080DC8E8 @ =gUnknown_03004B00 + ldr r1, _080DC8E8 @ =gBattleAnimArgs ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] @@ -37640,7 +37640,7 @@ _080DC880: movs r1, 0x2 bl sub_8077EE4 lsls r0, 24 - ldr r4, _080DC8E8 @ =gUnknown_03004B00 + ldr r4, _080DC8E8 @ =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4] adds r0, r1 @@ -37681,7 +37681,7 @@ _080DC880: bx r0 .align 2, 0 _080DC8E4: .4byte gUnknown_0202F7C9 -_080DC8E8: .4byte gUnknown_03004B00 +_080DC8E8: .4byte gBattleAnimArgs _080DC8EC: .4byte sub_8078B34 _080DC8F0: .4byte move_anim_8072740 thumb_func_end sub_80DC824 @@ -37694,7 +37694,7 @@ sub_80DC8F4: @ 80DC8F4 lsls r0, 24 cmp r0, 0 beq _080DC918 - ldr r1, _080DC914 @ =gUnknown_03004B00 + ldr r1, _080DC914 @ =gBattleAnimArgs ldrh r0, [r1] negs r0, r0 strh r0, [r1] @@ -37703,7 +37703,7 @@ sub_80DC8F4: @ 80DC8F4 bl StartSpriteAffineAnim b _080DC934 .align 2, 0 -_080DC914: .4byte gUnknown_03004B00 +_080DC914: .4byte gBattleAnimArgs _080DC918: ldr r0, _080DC990 @ =gUnknown_0202F7C9 ldrb r0, [r0] @@ -37711,7 +37711,7 @@ _080DC918: lsls r0, 24 cmp r0, 0 bne _080DC934 - ldr r0, _080DC994 @ =gUnknown_03004B00 + ldr r0, _080DC994 @ =gBattleAnimArgs ldrh r1, [r0, 0x2] negs r1, r1 strh r1, [r0, 0x2] @@ -37724,7 +37724,7 @@ _080DC934: movs r1, 0x2 bl sub_8077EE4 lsls r0, 24 - ldr r4, _080DC994 @ =gUnknown_03004B00 + ldr r4, _080DC994 @ =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4] adds r0, r1 @@ -37761,7 +37761,7 @@ _080DC934: bx r0 .align 2, 0 _080DC990: .4byte gUnknown_0202F7C9 -_080DC994: .4byte gUnknown_03004B00 +_080DC994: .4byte gBattleAnimArgs _080DC998: .4byte sub_8078B34 _080DC99C: .4byte move_anim_8072740 thumb_func_end sub_80DC8F4 @@ -37774,7 +37774,7 @@ sub_80DC9A0: @ 80DC9A0 lsls r0, 24 cmp r0, 0 beq _080DC9BC - ldr r0, _080DC9FC @ =gUnknown_03004B00 + ldr r0, _080DC9FC @ =gBattleAnimArgs movs r2, 0x4 ldrsh r1, [r0, r2] lsrs r2, r1, 31 @@ -37785,7 +37785,7 @@ _080DC9BC: adds r0, r5, 0 movs r1, 0x1 bl sub_80787B0 - ldr r1, _080DC9FC @ =gUnknown_03004B00 + ldr r1, _080DC9FC @ =gBattleAnimArgs ldrh r0, [r1, 0x4] strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] @@ -37811,7 +37811,7 @@ _080DC9BC: strh r0, [r5, 0x36] b _080DCA16 .align 2, 0 -_080DC9FC: .4byte gUnknown_03004B00 +_080DC9FC: .4byte gBattleAnimArgs _080DCA00: .4byte gUnknown_0202F7C9 _080DCA04: ldr r0, _080DCA2C @ =gUnknown_0202F7C9 @@ -37825,7 +37825,7 @@ _080DCA04: _080DCA16: adds r0, r5, 0 bl sub_8078BD4 - ldr r0, _080DCA30 @ =gUnknown_03004B00 + ldr r0, _080DCA30 @ =gBattleAnimArgs ldrh r0, [r0, 0x6] strh r0, [r5, 0x38] ldr r0, _080DCA34 @ =sub_80DCA38 @@ -37835,7 +37835,7 @@ _080DCA16: bx r0 .align 2, 0 _080DCA2C: .4byte gUnknown_0202F7C9 -_080DCA30: .4byte gUnknown_03004B00 +_080DCA30: .4byte gBattleAnimArgs _080DCA34: .4byte sub_80DCA38 thumb_func_end sub_80DC9A0 @@ -37888,7 +37888,7 @@ sub_80DCA70: @ 80DCA70 lsls r0, 24 cmp r0, 0 beq _080DCAAC - ldr r0, _080DCAA8 @ =gUnknown_03004B00 + ldr r0, _080DCAA8 @ =gBattleAnimArgs ldrh r1, [r4, 0x20] ldrh r2, [r0] subs r1, r2 @@ -37897,9 +37897,9 @@ sub_80DCA70: @ 80DCA70 .align 2, 0 _080DCAA0: .4byte gUnknown_0202F7C9 _080DCAA4: .4byte gUnknown_0202F7C8 -_080DCAA8: .4byte gUnknown_03004B00 +_080DCAA8: .4byte gBattleAnimArgs _080DCAAC: - ldr r1, _080DCAE0 @ =gUnknown_03004B00 + ldr r1, _080DCAE0 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -37926,7 +37926,7 @@ _080DCAD4: pop {r0} bx r0 .align 2, 0 -_080DCAE0: .4byte gUnknown_03004B00 +_080DCAE0: .4byte gBattleAnimArgs _080DCAE4: .4byte gUnknown_0202F7C9 _080DCAE8: .4byte sub_80DCAEC thumb_func_end sub_80DCA70 @@ -38067,13 +38067,13 @@ sub_80DCBCC: @ 80DCBCC lsls r0, 24 cmp r0, 0 beq _080DCBEC - ldr r1, _080DCBE8 @ =gUnknown_03004B00 + ldr r1, _080DCBE8 @ =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] b _080DCC0E .align 2, 0 -_080DCBE8: .4byte gUnknown_03004B00 +_080DCBE8: .4byte gBattleAnimArgs _080DCBEC: ldr r0, _080DCCE8 @ =gUnknown_0202F7C8 ldrb r0, [r0] @@ -38081,7 +38081,7 @@ _080DCBEC: lsls r0, 24 cmp r0, 0 beq _080DCC0E - ldr r1, _080DCCEC @ =gUnknown_03004B00 + ldr r1, _080DCCEC @ =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] @@ -38119,7 +38119,7 @@ _080DCC0E: cmp r0, 0x1 bne _080DCC5E _080DCC4C: - ldr r0, _080DCCEC @ =gUnknown_03004B00 + ldr r0, _080DCCEC @ =gBattleAnimArgs movs r2, 0x4 ldrsh r1, [r0, r2] negs r1, r1 @@ -38138,7 +38138,7 @@ _080DCC5E: bl sub_8077ABC adds r4, r0, 0 lsls r4, 24 - ldr r6, _080DCCEC @ =gUnknown_03004B00 + ldr r6, _080DCCEC @ =gBattleAnimArgs lsrs r4, 24 ldrh r0, [r6, 0x4] adds r4, r0 @@ -38193,7 +38193,7 @@ _080DCC5E: bx r0 .align 2, 0 _080DCCE8: .4byte gUnknown_0202F7C8 -_080DCCEC: .4byte gUnknown_03004B00 +_080DCCEC: .4byte gBattleAnimArgs _080DCCF0: .4byte gUnknown_0202F7C9 _080DCCF4: .4byte sub_8078B34 _080DCCF8: .4byte move_anim_8072740 @@ -38211,12 +38211,12 @@ sub_80DCCFC: @ 80DCCFC lsls r0, 24 cmp r0, 0 beq _080DCD1C - ldr r1, _080DCD6C @ =gUnknown_03004B00 + ldr r1, _080DCD6C @ =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080DCD1C: - ldr r4, _080DCD6C @ =gUnknown_03004B00 + ldr r4, _080DCD6C @ =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] ldr r5, _080DCD70 @ =gUnknown_0202F7C9 @@ -38253,7 +38253,7 @@ _080DCD1C: bx r0 .align 2, 0 _080DCD68: .4byte gUnknown_0202F7C8 -_080DCD6C: .4byte gUnknown_03004B00 +_080DCD6C: .4byte gBattleAnimArgs _080DCD70: .4byte gUnknown_0202F7C9 _080DCD74: .4byte sub_80DCD78 thumb_func_end sub_80DCCFC @@ -38365,7 +38365,7 @@ _080DCE34: sub_80DCE40: @ 80DCE40 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, _080DCE54 @ =gUnknown_03004B00 + ldr r0, _080DCE54 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -38373,7 +38373,7 @@ sub_80DCE40: @ 80DCE40 ldr r4, _080DCE58 @ =gUnknown_0202F7C8 b _080DCE5E .align 2, 0 -_080DCE54: .4byte gUnknown_03004B00 +_080DCE54: .4byte gBattleAnimArgs _080DCE58: .4byte gUnknown_0202F7C8 _080DCE5C: ldr r4, _080DCE90 @ =gUnknown_0202F7C9 @@ -38409,7 +38409,7 @@ _080DCE98: .4byte sub_80785E4 sub_80DCE9C: @ 80DCE9C push {r4-r6,lr} adds r5, r0, 0 - ldr r6, _080DCF08 @ =gUnknown_03004B00 + ldr r6, _080DCF08 @ =gBattleAnimArgs movs r1, 0x6 ldrsh r0, [r6, r1] cmp r0, 0 @@ -38457,7 +38457,7 @@ _080DCEBC: pop {r0} bx r0 .align 2, 0 -_080DCF08: .4byte gUnknown_03004B00 +_080DCF08: .4byte gBattleAnimArgs _080DCF0C: .4byte gUnknown_0202F7C9 _080DCF10: .4byte 0x0000ffba _080DCF14: .4byte sub_80DCF1C @@ -38501,7 +38501,7 @@ _080DCF5C: .4byte sub_8078278 sub_80DCF60: @ 80DCF60 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, _080DCF88 @ =gUnknown_03004B00 + ldr r4, _080DCF88 @ =gBattleAnimArgs ldrb r1, [r4, 0xA] bl StartSpriteAnim adds r0, r5, 0 @@ -38517,7 +38517,7 @@ sub_80DCF60: @ 80DCF60 subs r0, r1 b _080DCF96 .align 2, 0 -_080DCF88: .4byte gUnknown_03004B00 +_080DCF88: .4byte gBattleAnimArgs _080DCF8C: .4byte gUnknown_0202F7C8 _080DCF90: ldrh r0, [r4] @@ -38525,7 +38525,7 @@ _080DCF90: adds r0, r1 _080DCF96: strh r0, [r5, 0x20] - ldr r3, _080DCFD8 @ =gUnknown_03004B00 + ldr r3, _080DCFD8 @ =gBattleAnimArgs ldrh r2, [r3, 0x2] ldrh r0, [r5, 0x22] adds r2, r0 @@ -38555,7 +38555,7 @@ _080DCF96: pop {r0} bx r0 .align 2, 0 -_080DCFD8: .4byte gUnknown_03004B00 +_080DCFD8: .4byte gBattleAnimArgs _080DCFDC: .4byte sub_8078394 _080DCFE0: .4byte move_anim_8074EE0 thumb_func_end sub_80DCF60 @@ -38564,7 +38564,7 @@ _080DCFE0: .4byte move_anim_8074EE0 sub_80DCFE4: @ 80DCFE4 push {r4,lr} adds r4, r0, 0 - ldr r0, _080DCFFC @ =gUnknown_03004B00 + ldr r0, _080DCFFC @ =gBattleAnimArgs movs r1, 0xC ldrsh r0, [r0, r1] cmp r0, 0 @@ -38574,13 +38574,13 @@ sub_80DCFE4: @ 80DCFE4 bl sub_80787B0 b _080DD008 .align 2, 0 -_080DCFFC: .4byte gUnknown_03004B00 +_080DCFFC: .4byte gBattleAnimArgs _080DD000: adds r0, r4, 0 movs r1, 0 bl sub_8078764 _080DD008: - ldr r1, _080DD024 @ =gUnknown_03004B00 + ldr r1, _080DD024 @ =gBattleAnimArgs ldrh r0, [r1, 0x6] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x4] @@ -38595,7 +38595,7 @@ _080DD008: pop {r0} bx r0 .align 2, 0 -_080DD024: .4byte gUnknown_03004B00 +_080DD024: .4byte gBattleAnimArgs _080DD028: .4byte sub_80DD02C thumb_func_end sub_80DCFE4 @@ -38721,7 +38721,7 @@ _080DD0C4: movs r3, 0 bl sub_80763FC _080DD120: - ldr r0, _080DD180 @ =gUnknown_03004B00 + ldr r0, _080DD180 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -38758,7 +38758,7 @@ _080DD170: .4byte 0x85000400 _080DD174: .4byte gBattleAnimBackgroundTilemap_SandstormBrew _080DD178: .4byte gBattleAnimBackgroundImage_SandstormBrew _080DD17C: .4byte gBattleAnimSpritePalette_261 -_080DD180: .4byte gUnknown_03004B00 +_080DD180: .4byte gBattleAnimArgs _080DD184: .4byte gUnknown_0202F7C8 _080DD188: .4byte gTasks _080DD18C: .4byte sub_80DD190 @@ -39039,7 +39039,7 @@ sub_80DD3AC: @ 80DD3AC ldrsh r0, [r5, r1] cmp r0, 0 bne _080DD428 - ldr r4, _080DD3F0 @ =gUnknown_03004B00 + ldr r4, _080DD3F0 @ =gBattleAnimArgs movs r2, 0x6 ldrsh r0, [r4, r2] cmp r0, 0 @@ -39066,13 +39066,13 @@ sub_80DD3AC: @ 80DD3AC strb r0, [r5, 0x3] b _080DD3FC .align 2, 0 -_080DD3F0: .4byte gUnknown_03004B00 +_080DD3F0: .4byte gBattleAnimArgs _080DD3F4: .4byte gUnknown_0202F7C8 _080DD3F8: ldr r0, _080DD41C @ =0x0000ffc0 strh r0, [r5, 0x20] _080DD3FC: - ldr r4, _080DD420 @ =gUnknown_03004B00 + ldr r4, _080DD420 @ =gBattleAnimArgs ldrh r0, [r4] strh r0, [r5, 0x22] ldr r1, _080DD424 @ =gUnknown_083DAD10 @@ -39088,7 +39088,7 @@ _080DD3FC: b _080DD484 .align 2, 0 _080DD41C: .4byte 0x0000ffc0 -_080DD420: .4byte gUnknown_03004B00 +_080DD420: .4byte gBattleAnimArgs _080DD424: .4byte gUnknown_083DAD10 _080DD428: ldrh r1, [r5, 0x30] @@ -39151,7 +39151,7 @@ _080DD48C: .4byte move_anim_8072740 sub_80DD490: @ 80DD490 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, _080DD4C8 @ =gUnknown_03004B00 + ldr r5, _080DD4C8 @ =gBattleAnimArgs ldrb r1, [r5, 0x8] bl StartSpriteAnim adds r0, r4, 0 @@ -39174,7 +39174,7 @@ sub_80DD490: @ 80DD490 pop {r0} bx r0 .align 2, 0 -_080DD4C8: .4byte gUnknown_03004B00 +_080DD4C8: .4byte gBattleAnimArgs _080DD4CC: .4byte sub_8078B34 _080DD4D0: .4byte move_anim_8072740 thumb_func_end sub_80DD490 @@ -39709,7 +39709,7 @@ _080DD8E4: .4byte gUnknown_0202F7B4 sub_80DD8E8: @ 80DD8E8 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, _080DD920 @ =gUnknown_03004B00 + ldr r5, _080DD920 @ =gBattleAnimArgs ldrb r1, [r5, 0x8] bl StartSpriteAnim ldrh r0, [r5] @@ -39735,7 +39735,7 @@ sub_80DD8E8: @ 80DD8E8 pop {r0} bx r0 .align 2, 0 -_080DD920: .4byte gUnknown_03004B00 +_080DD920: .4byte gBattleAnimArgs _080DD924: .4byte sub_80DD928 thumb_func_end sub_80DD8E8 @@ -39823,7 +39823,7 @@ sub_80DD9A4: @ 80DD9A4 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 - ldr r2, _080DD9F4 @ =gUnknown_03004B00 + ldr r2, _080DD9F4 @ =gBattleAnimArgs ldrh r3, [r2] ldrh r5, [r4, 0x20] adds r1, r3, r5 @@ -39845,7 +39845,7 @@ sub_80DD9A4: @ 80DD9A4 bx r0 .align 2, 0 _080DD9F0: .4byte gUnknown_0202F7C9 -_080DD9F4: .4byte gUnknown_03004B00 +_080DD9F4: .4byte gBattleAnimArgs _080DD9F8: .4byte sub_80DD9FC thumb_func_end sub_80DD9A4 @@ -39900,7 +39900,7 @@ sub_80DDA4C: @ 80DDA4C ldr r0, [r2] cmp r0, 0x20 bgt _080DDA60 - ldr r1, _080DDA88 @ =gUnknown_03004B00 + ldr r1, _080DDA88 @ =gBattleAnimArgs movs r0, 0 strh r0, [r1, 0xE] _080DDA60: @@ -39909,13 +39909,13 @@ _080DDA60: subs r0, 0x21 cmp r0, 0x20 bhi _080DDA70 - ldr r1, _080DDA88 @ =gUnknown_03004B00 + ldr r1, _080DDA88 @ =gBattleAnimArgs movs r0, 0x1 strh r0, [r1, 0xE] _080DDA70: cmp r2, 0x41 ble _080DDA7A - ldr r1, _080DDA88 @ =gUnknown_03004B00 + ldr r1, _080DDA88 @ =gBattleAnimArgs movs r0, 0x2 strh r0, [r1, 0xE] _080DDA7A: @@ -39925,7 +39925,7 @@ _080DDA7A: bx r0 .align 2, 0 _080DDA84: .4byte gUnknown_0202F7B8 -_080DDA88: .4byte gUnknown_03004B00 +_080DDA88: .4byte gBattleAnimArgs thumb_func_end sub_80DDA4C thumb_func_start sub_80DDA8C @@ -40015,7 +40015,7 @@ _080DDB1C: ldrh r4, [r4, 0xC] adds r0, r4 strh r0, [r6] - ldr r0, _080DDB64 @ =gUnknown_03004B00 + ldr r0, _080DDB64 @ =gBattleAnimArgs movs r2, 0xE ldrsh r1, [r0, r2] ldr r0, _080DDB68 @ =0x00000fff @@ -40034,7 +40034,7 @@ _080DDB54: .align 2, 0 _080DDB5C: .4byte gTasks _080DDB60: .4byte gUnknown_030041B8 -_080DDB64: .4byte gUnknown_03004B00 +_080DDB64: .4byte gBattleAnimArgs _080DDB68: .4byte 0x00000fff thumb_func_end sub_80DDAF0 @@ -40044,7 +40044,7 @@ sub_80DDB6C: @ 80DDB6C adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 - ldr r0, _080DDBC8 @ =gUnknown_03004B00 + ldr r0, _080DDBC8 @ =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] @@ -40082,7 +40082,7 @@ sub_80DDB6C: @ 80DDB6C pop {r0} bx r0 .align 2, 0 -_080DDBC8: .4byte gUnknown_03004B00 +_080DDBC8: .4byte gBattleAnimArgs _080DDBCC: .4byte gUnknown_0202F7C9 _080DDBD0: .4byte sub_80DDBD8 _080DDBD4: .4byte REG_BLDCNT @@ -40420,7 +40420,7 @@ sub_80DDDF0: @ 80DDDF0 movs r2, 0 movs r1, 0x80 strh r1, [r0, 0x8] - ldr r1, _080DDE74 @ =gUnknown_03004B00 + ldr r1, _080DDE74 @ =gBattleAnimArgs ldrh r1, [r1] strh r1, [r0, 0xA] strh r2, [r0, 0xC] @@ -40435,7 +40435,7 @@ sub_80DDDF0: @ 80DDDF0 _080DDE68: .4byte REG_BLDCNT _080DDE6C: .4byte gSprites _080DDE70: .4byte gTasks -_080DDE74: .4byte gUnknown_03004B00 +_080DDE74: .4byte gBattleAnimArgs _080DDE78: .4byte sub_80DDE7C thumb_func_end sub_80DDDF0 @@ -40570,7 +40570,7 @@ sub_80DDF40: @ 80DDF40 strh r0, [r4, 0x22] mov r1, r9 strh r1, [r4, 0x2E] - ldr r2, _080DDFE0 @ =gUnknown_03004B00 + ldr r2, _080DDFE0 @ =gBattleAnimArgs ldrh r1, [r2] strh r1, [r4, 0x30] ldrh r1, [r2, 0x2] @@ -40619,7 +40619,7 @@ sub_80DDF40: @ 80DDF40 bx r0 .align 2, 0 _080DDFDC: .4byte gUnknown_0202F7C8 -_080DDFE0: .4byte gUnknown_03004B00 +_080DDFE0: .4byte gBattleAnimArgs _080DDFE4: .4byte sub_80DDFE8 thumb_func_end sub_80DDF40 @@ -41643,7 +41643,7 @@ sub_80DE7B8: @ 80DE7B8 mov r5, r8 push {r5-r7} adds r7, r0, 0 - ldr r0, _080DE7F4 @ =gUnknown_03004B00 + ldr r0, _080DE7F4 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -41666,7 +41666,7 @@ sub_80DE7B8: @ 80DE7B8 ldr r4, _080DE7FC @ =gUnknown_0202F7C9 b _080DE824 .align 2, 0 -_080DE7F4: .4byte gUnknown_03004B00 +_080DE7F4: .4byte gBattleAnimArgs _080DE7F8: .4byte gUnknown_0202F7C8 _080DE7FC: .4byte gUnknown_0202F7C9 _080DE800: @@ -41715,7 +41715,7 @@ _080DE824: mov r1, r10 subs r0, r1, r6 lsls r0, 4 - ldr r5, _080DE8D0 @ =gUnknown_03004B00 + ldr r5, _080DE8D0 @ =gBattleAnimArgs movs r2, 0x2 ldrsh r1, [r5, r2] bl __divsi3 @@ -41767,7 +41767,7 @@ _080DE824: .align 2, 0 _080DE8C8: .4byte gUnknown_0202F7C9 _080DE8CC: .4byte gUnknown_0202F7C8 -_080DE8D0: .4byte gUnknown_03004B00 +_080DE8D0: .4byte gBattleAnimArgs _080DE8D4: .4byte sub_80DE8D8 thumb_func_end sub_80DE7B8 @@ -41841,7 +41841,7 @@ sub_80DE918: @ 80DE918 strh r0, [r1, 0x18] movs r0, 0x10 strh r0, [r1, 0x1A] - ldr r2, _080DEA70 @ =gUnknown_03004B00 + ldr r2, _080DEA70 @ =gBattleAnimArgs ldrh r0, [r2] strh r0, [r1, 0x1C] ldr r4, _080DEA74 @ =gUnknown_0202F7C8 @@ -41922,7 +41922,7 @@ _080DE98A: mov r2, r10 subs r0, r2, r6 lsls r0, 4 - ldr r3, _080DEA70 @ =gUnknown_03004B00 + ldr r3, _080DEA70 @ =gBattleAnimArgs movs r2, 0x2 ldrsh r1, [r3, r2] bl __divsi3 @@ -41932,12 +41932,12 @@ _080DE98A: asrs r0, 16 subs r0, r7 lsls r0, 4 - ldr r2, _080DEA70 @ =gUnknown_03004B00 + ldr r2, _080DEA70 @ =gBattleAnimArgs movs r3, 0x2 ldrsh r1, [r2, r3] bl __divsi3 strh r0, [r4, 0x34] - ldr r1, _080DEA70 @ =gUnknown_03004B00 + ldr r1, _080DEA70 @ =gBattleAnimArgs ldrh r0, [r1, 0x2] strh r0, [r4, 0x36] mov r2, r10 @@ -41974,7 +41974,7 @@ _080DEA56: .align 2, 0 _080DEA68: .4byte gTasks _080DEA6C: .4byte REG_BLDCNT -_080DEA70: .4byte gUnknown_03004B00 +_080DEA70: .4byte gBattleAnimArgs _080DEA74: .4byte gUnknown_0202F7C8 _080DEA78: .4byte gSpriteTemplate_83DAF08 _080DEA7C: .4byte gSprites @@ -42013,7 +42013,7 @@ _080DEA88: strh r0, [r4, 0x30] subs r0, r3, r7 lsls r0, 4 - ldr r3, _080DEB2C @ =gUnknown_03004B00 + ldr r3, _080DEB2C @ =gBattleAnimArgs movs r2, 0x2 ldrsh r1, [r3, r2] bl __divsi3 @@ -42022,12 +42022,12 @@ _080DEA88: ldr r1, [sp, 0xC] subs r0, r3, r1 lsls r0, 4 - ldr r2, _080DEB2C @ =gUnknown_03004B00 + ldr r2, _080DEB2C @ =gBattleAnimArgs movs r3, 0x2 ldrsh r1, [r2, r3] bl __divsi3 strh r0, [r4, 0x34] - ldr r1, _080DEB2C @ =gUnknown_03004B00 + ldr r1, _080DEB2C @ =gBattleAnimArgs ldrh r0, [r1, 0x2] strh r0, [r4, 0x36] mov r2, r10 @@ -42059,7 +42059,7 @@ _080DEB0C: .align 2, 0 _080DEB24: .4byte gSpriteTemplate_83DAF08 _080DEB28: .4byte gSprites -_080DEB2C: .4byte gUnknown_03004B00 +_080DEB2C: .4byte gBattleAnimArgs _080DEB30: .4byte sub_80DE8D8 _080DEB34: .4byte sub_80DEB38 thumb_func_end sub_80DE918 @@ -43298,7 +43298,7 @@ sub_80DF49C: @ 80DF49C strh r1, [r0, 0x2E] movs r1, 0xA strh r1, [r0, 0x30] - ldr r2, _080DF4E8 @ =gUnknown_03004B00 + ldr r2, _080DF4E8 @ =gBattleAnimArgs ldrh r1, [r2] strh r1, [r0, 0x32] ldrh r1, [r2, 0x2] @@ -43319,7 +43319,7 @@ sub_80DF49C: @ 80DF49C .align 2, 0 _080DF4E0: .4byte gUnknown_02024BE0 _080DF4E4: .4byte gUnknown_0202F7C8 -_080DF4E8: .4byte gUnknown_03004B00 +_080DF4E8: .4byte gBattleAnimArgs _080DF4EC: .4byte sub_80DF4F4 _080DF4F0: .4byte gSprites thumb_func_end sub_80DF49C @@ -43433,7 +43433,7 @@ sub_80DF5A0: @ 80DF5A0 lsls r0, 24 cmp r0, 0 beq _080DF5F0 - ldr r2, _080DF5EC @ =gUnknown_03004B00 + ldr r2, _080DF5EC @ =gBattleAnimArgs ldrh r0, [r5, 0x20] ldrh r1, [r2] subs r0, r1 @@ -43448,9 +43448,9 @@ sub_80DF5A0: @ 80DF5A0 b _080DF5FA .align 2, 0 _080DF5E8: .4byte gUnknown_0202F7C8 -_080DF5EC: .4byte gUnknown_03004B00 +_080DF5EC: .4byte gBattleAnimArgs _080DF5F0: - ldr r1, _080DF630 @ =gUnknown_03004B00 + ldr r1, _080DF630 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r5, 0x20] adds r0, r2 @@ -43483,7 +43483,7 @@ _080DF5FA: pop {r0} bx r0 .align 2, 0 -_080DF630: .4byte gUnknown_03004B00 +_080DF630: .4byte gBattleAnimArgs _080DF634: .4byte move_anim_8074EE0 _080DF638: .4byte sub_8078504 thumb_func_end sub_80DF5A0 @@ -43512,7 +43512,7 @@ sub_80DF63C: @ 80DF63C lsls r0, 24 cmp r0, 0 beq _080DF6A0 - ldr r2, _080DF69C @ =gUnknown_03004B00 + ldr r2, _080DF69C @ =gBattleAnimArgs ldrh r0, [r5, 0x20] ldrh r1, [r2, 0x2] subs r0, r1 @@ -43532,9 +43532,9 @@ sub_80DF63C: @ 80DF63C .align 2, 0 _080DF694: .4byte gUnknown_0202F7C9 _080DF698: .4byte gUnknown_0202F7C8 -_080DF69C: .4byte gUnknown_03004B00 +_080DF69C: .4byte gBattleAnimArgs _080DF6A0: - ldr r1, _080DF6E4 @ =gUnknown_03004B00 + ldr r1, _080DF6E4 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r5, 0x20] adds r0, r2 @@ -43555,7 +43555,7 @@ _080DF6A0: movs r1, 0x1 bl StartSpriteAnim _080DF6CA: - ldr r0, _080DF6E4 @ =gUnknown_03004B00 + ldr r0, _080DF6E4 @ =gBattleAnimArgs ldrh r0, [r0, 0x8] strh r0, [r5, 0x2E] ldr r0, _080DF6E8 @ =sub_8078B34 @@ -43567,7 +43567,7 @@ _080DF6CA: pop {r0} bx r0 .align 2, 0 -_080DF6E4: .4byte gUnknown_03004B00 +_080DF6E4: .4byte gBattleAnimArgs _080DF6E8: .4byte sub_8078B34 _080DF6EC: .4byte move_anim_8074EE0 thumb_func_end sub_80DF63C @@ -43576,7 +43576,7 @@ _080DF6EC: .4byte move_anim_8074EE0 sub_80DF6F0: @ 80DF6F0 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, _080DF704 @ =gUnknown_03004B00 + ldr r0, _080DF704 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -43584,7 +43584,7 @@ sub_80DF6F0: @ 80DF6F0 ldr r4, _080DF708 @ =gUnknown_0202F7C8 b _080DF70E .align 2, 0 -_080DF704: .4byte gUnknown_03004B00 +_080DF704: .4byte gBattleAnimArgs _080DF708: .4byte gUnknown_0202F7C8 _080DF70C: ldr r4, _080DF750 @ =gUnknown_0202F7C9 @@ -43601,7 +43601,7 @@ _080DF70E: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r4, _080DF754 @ =gUnknown_03004B00 + ldr r4, _080DF754 @ =gBattleAnimArgs movs r0, 0x2 ldrsh r1, [r4, r0] adds r0, r5, 0 @@ -43620,7 +43620,7 @@ _080DF70E: bx r0 .align 2, 0 _080DF750: .4byte gUnknown_0202F7C9 -_080DF754: .4byte gUnknown_03004B00 +_080DF754: .4byte gBattleAnimArgs _080DF758: .4byte sub_8078600 _080DF75C: .4byte move_anim_8074EE0 thumb_func_end sub_80DF6F0 @@ -43669,7 +43669,7 @@ sub_80DF78C: @ 80DF78C strh r5, [r6, 0x36] movs r0, 0x1 strh r0, [r6, 0x38] - ldr r0, _080DF7E4 @ =gUnknown_03004B00 + ldr r0, _080DF7E4 @ =gBattleAnimArgs ldrh r0, [r0] strh r0, [r6, 0x3A] ldr r4, _080DF7E8 @ =gUnknown_02024C07 @@ -43689,7 +43689,7 @@ sub_80DF78C: @ 80DF78C b _080DF7EE .align 2, 0 _080DF7E0: .4byte gUnknown_0202F7C8 -_080DF7E4: .4byte gUnknown_03004B00 +_080DF7E4: .4byte gBattleAnimArgs _080DF7E8: .4byte gUnknown_02024C07 _080DF7EC: lsrs r0, r1, 17 @@ -44120,7 +44120,7 @@ sub_80DFB28: @ 80DFB28 mov r6, r8 push {r6} adds r4, r0, 0 - ldr r5, _080DFBC8 @ =gUnknown_03004B00 + ldr r5, _080DFBC8 @ =gBattleAnimArgs movs r0, 0x4 ldrsh r1, [r5, r0] lsls r0, r1, 1 @@ -44193,7 +44193,7 @@ _080DFBB0: pop {r0} bx r0 .align 2, 0 -_080DFBC8: .4byte gUnknown_03004B00 +_080DFBC8: .4byte gBattleAnimArgs _080DFBCC: .4byte gUnknown_0202F7C8 _080DFBD0: .4byte sub_80DFBD8 _080DFBD4: .4byte gUnknown_03000730 @@ -44248,7 +44248,7 @@ sub_80DFC24: @ 80DFC24 adds r1, r4 lsls r1, 3 adds r1, r0 - ldr r0, _080DFC5C @ =gUnknown_03004B00 + ldr r0, _080DFC5C @ =gBattleAnimArgs ldrh r0, [r0] strh r0, [r1, 0x8] ldr r0, _080DFC60 @ =gUnknown_0202F7C8 @@ -44267,7 +44267,7 @@ sub_80DFC24: @ 80DFC24 b _080DFC74 .align 2, 0 _080DFC58: .4byte gTasks -_080DFC5C: .4byte gUnknown_03004B00 +_080DFC5C: .4byte gBattleAnimArgs _080DFC60: .4byte gUnknown_0202F7C8 _080DFC64: .4byte REG_BLDALPHA _080DFC68: .4byte REG_BLDCNT @@ -44372,7 +44372,7 @@ sub_80DFD24: @ 80DFD24 adds r1, r0 lsls r1, 3 adds r1, r2 - ldr r0, _080DFD4C @ =gUnknown_03004B00 + ldr r0, _080DFD4C @ =gBattleAnimArgs ldrh r0, [r0] strh r0, [r1, 0x8] movs r2, 0x80 @@ -44385,7 +44385,7 @@ sub_80DFD24: @ 80DFD24 bx lr .align 2, 0 _080DFD48: .4byte gTasks -_080DFD4C: .4byte gUnknown_03004B00 +_080DFD4C: .4byte gBattleAnimArgs _080DFD50: .4byte sub_80DFD58 _080DFD54: .4byte REG_BLDALPHA thumb_func_end sub_80DFD24 @@ -44619,7 +44619,7 @@ _080DFF14: sub_80DFF1C: @ 80DFF1C push {r4,r5,lr} adds r4, r0, 0 - ldr r5, _080DFF50 @ =gUnknown_03004B00 + ldr r5, _080DFF50 @ =gBattleAnimArgs ldrh r0, [r5] ldrh r1, [r4, 0x20] adds r0, r1 @@ -44643,7 +44643,7 @@ sub_80DFF1C: @ 80DFF1C pop {r0} bx r0 .align 2, 0 -_080DFF50: .4byte gUnknown_03004B00 +_080DFF50: .4byte gBattleAnimArgs _080DFF54: .4byte sub_80DFF58 thumb_func_end sub_80DFF1C @@ -44718,7 +44718,7 @@ _080DFFCA: sub_80DFFD0: @ 80DFFD0 push {r4-r7,lr} adds r4, r0, 0 - ldr r0, _080DFFE4 @ =gUnknown_03004B00 + ldr r0, _080DFFE4 @ =gBattleAnimArgs movs r2, 0 ldrsh r1, [r0, r2] adds r3, r0, 0 @@ -44727,7 +44727,7 @@ sub_80DFFD0: @ 80DFFD0 ldr r0, _080DFFE8 @ =gUnknown_0202F7C8 b _080DFFEE .align 2, 0 -_080DFFE4: .4byte gUnknown_03004B00 +_080DFFE4: .4byte gBattleAnimArgs _080DFFE8: .4byte gUnknown_0202F7C8 _080DFFEC: ldr r0, _080E001C @ =gUnknown_0202F7C9 @@ -46016,7 +46016,7 @@ _080E0A0C: .4byte gUnknown_0202F7C8 sub_80E0A10: @ 80E0A10 push {r4,lr} adds r4, r0, 0 - ldr r1, _080E0A40 @ =gUnknown_03004B00 + ldr r1, _080E0A40 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -46037,7 +46037,7 @@ sub_80E0A10: @ 80E0A10 pop {r0} bx r0 .align 2, 0 -_080E0A40: .4byte gUnknown_03004B00 +_080E0A40: .4byte gBattleAnimArgs _080E0A44: .4byte sub_8078600 _080E0A48: .4byte move_anim_8072740 thumb_func_end sub_80E0A10 @@ -46104,7 +46104,7 @@ sub_80E0A4C: @ 80E0A4C orrs r1, r0 strb r1, [r5] _080E0AC4: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _080E0B40 @@ -46274,7 +46274,7 @@ _080E0BCC: lsrs r0, 4 adds r0, 0x10 adds r1, r0, 0 - ldr r2, _080E0C84 @ =gUnknown_03004B00 + ldr r2, _080E0C84 @ =gBattleAnimArgs movs r3, 0x2 ldrsh r0, [r2, r3] cmp r0, 0 @@ -46295,7 +46295,7 @@ _080E0C74: .4byte gUnknown_08D1D54C _080E0C78: .4byte gUnknown_030042C0 _080E0C7C: .4byte gSprites _080E0C80: .4byte gUnknown_030041B4 -_080E0C84: .4byte gUnknown_03004B00 +_080E0C84: .4byte gBattleAnimArgs _080E0C88: lsls r0, r1, 4 ldrh r3, [r2, 0x4] @@ -46310,7 +46310,7 @@ _080E0C94: lsls r0, 3 adds r0, r1 strh r5, [r0, 0x8] - ldr r2, _080E0CC8 @ =gUnknown_03004B00 + ldr r2, _080E0CC8 @ =gBattleAnimArgs ldrh r1, [r2] strh r1, [r0, 0xA] ldrh r1, [r2, 0x2] @@ -46329,7 +46329,7 @@ _080E0C94: bx r0 .align 2, 0 _080E0CC4: .4byte gTasks -_080E0CC8: .4byte gUnknown_03004B00 +_080E0CC8: .4byte gBattleAnimArgs _080E0CCC: .4byte sub_80E0CD0 thumb_func_end sub_80E0A4C @@ -46498,7 +46498,7 @@ sub_80E0E24: @ 80E0E24 lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 - ldr r0, _080E0E44 @ =gUnknown_03004B00 + ldr r0, _080E0E44 @ =gBattleAnimArgs movs r2, 0 ldrsh r1, [r0, r2] adds r2, r0, 0 @@ -46510,7 +46510,7 @@ sub_80E0E24: @ 80E0E24 ldr r0, [r0] mov pc, r0 .align 2, 0 -_080E0E44: .4byte gUnknown_03004B00 +_080E0E44: .4byte gBattleAnimArgs _080E0E48: .4byte _080E0E4C .align 2, 0 _080E0E4C: @@ -46575,7 +46575,7 @@ _080E0EB6: ldrb r0, [r0, 0x5] lsrs r0, 4 adds r0, 0x10 - ldr r1, _080E0EE4 @ =gUnknown_03004B00 + ldr r1, _080E0EE4 @ =gBattleAnimArgs ldrb r1, [r1, 0x2] bl sub_8079108 _080E0ED2: @@ -46586,7 +46586,7 @@ _080E0ED2: bx r0 .align 2, 0 _080E0EE0: .4byte gSprites -_080E0EE4: .4byte gUnknown_03004B00 +_080E0EE4: .4byte gBattleAnimArgs thumb_func_end sub_80E0E24 thumb_func_start sub_80E0EE8 @@ -46598,14 +46598,14 @@ sub_80E0EE8: @ 80E0EE8 ldrb r0, [r2] cmp r0, 0x1 bhi _080E0EFC - ldr r1, _080E0F18 @ =gUnknown_03004B00 + ldr r1, _080E0F18 @ =gBattleAnimArgs movs r0, 0 strh r0, [r1, 0xE] _080E0EFC: ldrb r0, [r2] cmp r0, 0x2 bne _080E0F08 - ldr r1, _080E0F18 @ =gUnknown_03004B00 + ldr r1, _080E0F18 @ =gBattleAnimArgs movs r0, 0x1 strh r0, [r1, 0xE] _080E0F08: @@ -46615,7 +46615,7 @@ _080E0F08: bx r0 .align 2, 0 _080E0F14: .4byte gUnknown_0202F7C4 -_080E0F18: .4byte gUnknown_03004B00 +_080E0F18: .4byte gBattleAnimArgs thumb_func_end sub_80E0EE8 thumb_func_start sub_80E0F1C @@ -46743,12 +46743,12 @@ sub_80E1004: @ 80E1004 lsls r0, 24 cmp r0, 0 beq _080E1024 - ldr r1, _080E1068 @ =gUnknown_03004B00 + ldr r1, _080E1068 @ =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080E1024: - ldr r4, _080E1068 @ =gUnknown_03004B00 + ldr r4, _080E1068 @ =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] ldr r5, _080E106C @ =gUnknown_0202F7C9 @@ -46778,7 +46778,7 @@ _080E1024: bx r0 .align 2, 0 _080E1064: .4byte gUnknown_0202F7C8 -_080E1068: .4byte gUnknown_03004B00 +_080E1068: .4byte gBattleAnimArgs _080E106C: .4byte gUnknown_0202F7C9 _080E1070: .4byte sub_8078B34 _080E1074: .4byte move_anim_8072740 @@ -46827,7 +46827,7 @@ _080E10C0: lsls r0, 16 lsrs r4, r0, 16 _080E10D0: - ldr r0, _080E10FC @ =gUnknown_03004B00 + ldr r0, _080E10FC @ =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r6, 0x2E] mov r1, r8 @@ -46847,7 +46847,7 @@ _080E10D0: bx r0 .align 2, 0 _080E10F8: .4byte gUnknown_0202F7C9 -_080E10FC: .4byte gUnknown_03004B00 +_080E10FC: .4byte gBattleAnimArgs _080E1100: .4byte sub_8078B34 _080E1104: .4byte move_anim_8074EE0 thumb_func_end sub_80E1078 @@ -46867,7 +46867,7 @@ sub_80E1108: @ 80E1108 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] - ldr r6, _080E1170 @ =gUnknown_03004B00 + ldr r6, _080E1170 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 @@ -46904,7 +46904,7 @@ _080E1162: .align 2, 0 _080E1168: .4byte 0x000003ff _080E116C: .4byte 0xfffffc00 -_080E1170: .4byte gUnknown_03004B00 +_080E1170: .4byte gBattleAnimArgs _080E1174: .4byte gUnknown_0202F7C8 _080E1178: .4byte sub_80E1198 _080E117C: @@ -47029,7 +47029,7 @@ sub_80E1244: @ 80E1244 lsls r0, 3 ldr r1, _080E1264 @ =gTasks adds r1, r0, r1 - ldr r0, _080E1268 @ =gUnknown_03004B00 + ldr r0, _080E1268 @ =gBattleAnimArgs movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0 @@ -47038,7 +47038,7 @@ sub_80E1244: @ 80E1244 b _080E1272 .align 2, 0 _080E1264: .4byte gTasks -_080E1268: .4byte gUnknown_03004B00 +_080E1268: .4byte gBattleAnimArgs _080E126C: .4byte sub_80E1284 _080E1270: ldr r0, _080E1280 @ =sub_80E143C @@ -47334,7 +47334,7 @@ sub_80E149C: @ 80E149C lsls r0, 3 ldr r1, _080E14BC @ =gTasks adds r1, r0, r1 - ldr r0, _080E14C0 @ =gUnknown_03004B00 + ldr r0, _080E14C0 @ =gBattleAnimArgs movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0 @@ -47343,7 +47343,7 @@ sub_80E149C: @ 80E149C b _080E14CA .align 2, 0 _080E14BC: .4byte gTasks -_080E14C0: .4byte gUnknown_03004B00 +_080E14C0: .4byte gBattleAnimArgs _080E14C4: .4byte sub_80E14DC _080E14C8: ldr r0, _080E14D8 @ =sub_80E1560 @@ -47662,7 +47662,7 @@ _080E1724: .4byte 0xa2600001 sub_80E1728: @ 80E1728 push {r4-r7,lr} adds r5, r0, 0 - ldr r0, _080E173C @ =gUnknown_03004B00 + ldr r0, _080E173C @ =gBattleAnimArgs movs r2, 0 ldrsh r1, [r0, r2] adds r7, r0, 0 @@ -47671,7 +47671,7 @@ sub_80E1728: @ 80E1728 ldr r0, _080E1740 @ =gUnknown_0202F7C8 b _080E1746 .align 2, 0 -_080E173C: .4byte gUnknown_03004B00 +_080E173C: .4byte gBattleAnimArgs _080E1740: .4byte gUnknown_0202F7C8 _080E1744: ldr r0, _080E17A8 @ =gUnknown_0202F7C9 @@ -47747,7 +47747,7 @@ _080E17C4: sub_80E17CC: @ 80E17CC push {r4-r6,lr} adds r6, r0, 0 - ldr r0, _080E17E0 @ =gUnknown_03004B00 + ldr r0, _080E17E0 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -47755,7 +47755,7 @@ sub_80E17CC: @ 80E17CC ldr r0, _080E17E4 @ =gUnknown_0202F7C8 b _080E17EA .align 2, 0 -_080E17E0: .4byte gUnknown_03004B00 +_080E17E0: .4byte gBattleAnimArgs _080E17E4: .4byte gUnknown_0202F7C8 _080E17E8: ldr r0, _080E1848 @ =gUnknown_0202F7C9 @@ -47768,7 +47768,7 @@ _080E17EA: lsrs r0, 24 ldr r2, _080E184C @ =0x0000fff0 adds r0, r2 - ldr r4, _080E1850 @ =gUnknown_03004B00 + ldr r4, _080E1850 @ =gBattleAnimArgs movs r3, 0x2 ldrsh r1, [r4, r3] lsls r1, 5 @@ -47807,7 +47807,7 @@ _080E17EA: .align 2, 0 _080E1848: .4byte gUnknown_0202F7C9 _080E184C: .4byte 0x0000fff0 -_080E1850: .4byte gUnknown_03004B00 +_080E1850: .4byte gBattleAnimArgs _080E1854: .4byte 0x000003ff _080E1858: .4byte 0xfffffc00 _080E185C: .4byte move_anim_8072740 @@ -47824,7 +47824,7 @@ sub_80E1864: @ 80E1864 lsls r0, 3 ldr r1, _080E1888 @ =gTasks adds r4, r0, r1 - ldr r0, _080E188C @ =gUnknown_03004B00 + ldr r0, _080E188C @ =gBattleAnimArgs ldrh r2, [r0, 0x2] movs r3, 0x2 ldrsh r1, [r0, r3] @@ -47835,7 +47835,7 @@ sub_80E1864: @ 80E1864 b _080E189C .align 2, 0 _080E1888: .4byte gTasks -_080E188C: .4byte gUnknown_03004B00 +_080E188C: .4byte gBattleAnimArgs _080E1890: ldr r0, _080E18BC @ =gUnknown_0202F7BC ldrh r0, [r0] @@ -48252,7 +48252,7 @@ sub_80E1B88: @ 80E1B88 push {lr} lsls r0, 24 lsrs r1, r0, 24 - ldr r3, _080E1BA8 @ =gUnknown_03004B00 + ldr r3, _080E1BA8 @ =gBattleAnimArgs movs r2, 0 ldr r0, _080E1BAC @ =gUnknown_0202F7BC ldrh r0, [r0] @@ -48266,7 +48266,7 @@ _080E1B9C: pop {r0} bx r0 .align 2, 0 -_080E1BA8: .4byte gUnknown_03004B00 +_080E1BA8: .4byte gBattleAnimArgs _080E1BAC: .4byte gUnknown_0202F7BC thumb_func_end sub_80E1B88 @@ -48275,7 +48275,7 @@ sub_80E1BB0: @ 80E1BB0 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 - ldr r2, _080E1BC8 @ =gUnknown_03004B00 + ldr r2, _080E1BC8 @ =gBattleAnimArgs ldrh r1, [r2] movs r0, 0x1 ands r0, r1 @@ -48285,7 +48285,7 @@ sub_80E1BB0: @ 80E1BB0 ldr r0, _080E1BCC @ =gUnknown_0202F7C9 b _080E1BD2 .align 2, 0 -_080E1BC8: .4byte gUnknown_03004B00 +_080E1BC8: .4byte gBattleAnimArgs _080E1BCC: .4byte gUnknown_0202F7C9 _080E1BD0: ldr r0, _080E1C40 @ =gUnknown_0202F7C8 @@ -48361,7 +48361,7 @@ sub_80E1C58: @ 80E1C58 lsls r0, 3 ldr r1, _080E1C88 @ =gTasks adds r2, r0, r1 - ldr r0, _080E1C8C @ =gUnknown_03004B00 + ldr r0, _080E1C8C @ =gBattleAnimArgs movs r4, 0xE ldrsh r1, [r0, r4] movs r4, 0xE @@ -48378,7 +48378,7 @@ sub_80E1C58: @ 80E1C58 b _080E1CA4 .align 2, 0 _080E1C88: .4byte gTasks -_080E1C8C: .4byte gUnknown_03004B00 +_080E1C8C: .4byte gBattleAnimArgs _080E1C90: .4byte gUnknown_030041B0 _080E1C94: .4byte gUnknown_030041B8 _080E1C98: @@ -48401,7 +48401,7 @@ _080E1CB0: .4byte gUnknown_030041B8 sub_80E1CB4: @ 80E1CB4 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, _080E1CEC @ =gUnknown_03004B00 + ldr r5, _080E1CEC @ =gBattleAnimArgs ldrh r0, [r5] ldrh r1, [r4, 0x20] adds r0, r1 @@ -48426,7 +48426,7 @@ sub_80E1CB4: @ 80E1CB4 strh r0, [r4, 0x36] b _080E1D02 .align 2, 0 -_080E1CEC: .4byte gUnknown_03004B00 +_080E1CEC: .4byte gBattleAnimArgs _080E1CF0: .4byte gUnknown_0202F7C8 _080E1CF4: ldrh r0, [r5, 0x6] @@ -48436,7 +48436,7 @@ _080E1CF4: movs r1, 0x1 bl StartSpriteAnim _080E1D02: - ldr r0, _080E1D18 @ =gUnknown_03004B00 + ldr r0, _080E1D18 @ =gBattleAnimArgs ldrh r0, [r0, 0x8] strh r0, [r4, 0x34] ldr r1, _080E1D1C @ =sub_80E1D20 @@ -48447,7 +48447,7 @@ _080E1D02: pop {r0} bx r0 .align 2, 0 -_080E1D18: .4byte gUnknown_03004B00 +_080E1D18: .4byte gBattleAnimArgs _080E1D1C: .4byte sub_80E1D20 thumb_func_end sub_80E1CB4 @@ -48510,7 +48510,7 @@ sub_80E1D84: @ 80E1D84 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 - ldr r4, _080E1DBC @ =gUnknown_03004B00 + ldr r4, _080E1DBC @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r4, r1] bl sub_80E1DC4 @@ -48534,7 +48534,7 @@ sub_80E1D84: @ 80E1D84 pop {r0} bx r0 .align 2, 0 -_080E1DBC: .4byte gUnknown_03004B00 +_080E1DBC: .4byte gBattleAnimArgs _080E1DC0: .4byte sub_80E1E0C thumb_func_end sub_80E1D84 @@ -48600,7 +48600,7 @@ _080E1E28: .4byte gPaletteFade sub_80E1E2C: @ 80E1E2C push {r4,r5,lr} adds r5, r0, 0 - ldr r4, _080E1E78 @ =gUnknown_03004B00 + ldr r4, _080E1E78 @ =gBattleAnimArgs ldrh r0, [r4, 0x2] strh r0, [r5, 0x2E] strh r0, [r5, 0x30] @@ -48634,7 +48634,7 @@ sub_80E1E2C: @ 80E1E2C pop {r0} bx r0 .align 2, 0 -_080E1E78: .4byte gUnknown_03004B00 +_080E1E78: .4byte gBattleAnimArgs _080E1E7C: .4byte sub_80E1E80 thumb_func_end sub_80E1E2C @@ -48741,7 +48741,7 @@ _080E1F38: .4byte gPaletteFade sub_80E1F3C: @ 80E1F3C push {r4,lr} adds r4, r0, 0 - ldr r1, _080E1F80 @ =gUnknown_03004B00 + ldr r1, _080E1F80 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -48772,7 +48772,7 @@ sub_80E1F3C: @ 80E1F3C pop {r0} bx r0 .align 2, 0 -_080E1F80: .4byte gUnknown_03004B00 +_080E1F80: .4byte gBattleAnimArgs _080E1F84: .4byte move_anim_8074EE0 _080E1F88: .4byte sub_8078174 thumb_func_end sub_80E1F3C @@ -48787,7 +48787,7 @@ sub_80E1F8C: @ 80E1F8C adds r4, r0 lsls r4, 3 adds r4, r1 - ldr r3, _080E1FD4 @ =gUnknown_03004B00 + ldr r3, _080E1FD4 @ =gBattleAnimArgs ldrh r1, [r3] movs r5, 0 strh r1, [r4, 0x8] @@ -48813,7 +48813,7 @@ sub_80E1F8C: @ 80E1F8C bx r0 .align 2, 0 _080E1FD0: .4byte gTasks -_080E1FD4: .4byte gUnknown_03004B00 +_080E1FD4: .4byte gBattleAnimArgs _080E1FD8: .4byte sub_80E202C thumb_func_end sub_80E1F8C @@ -48927,7 +48927,7 @@ sub_80E2094: @ 80E2094 adds r4, r0 lsls r4, 3 adds r4, r1 - ldr r3, _080E20DC @ =gUnknown_03004B00 + ldr r3, _080E20DC @ =gBattleAnimArgs ldrh r1, [r3] movs r5, 0 strh r1, [r4, 0x8] @@ -48953,7 +48953,7 @@ sub_80E2094: @ 80E2094 bx r0 .align 2, 0 _080E20D8: .4byte gTasks -_080E20DC: .4byte gUnknown_03004B00 +_080E20DC: .4byte gBattleAnimArgs _080E20E0: .4byte sub_80E2140 thumb_func_end sub_80E2094 @@ -49073,7 +49073,7 @@ sub_80E21A8: @ 80E21A8 adds r4, r0 lsls r4, 3 adds r4, r1 - ldr r5, _080E220C @ =gUnknown_03004B00 + ldr r5, _080E220C @ =gBattleAnimArgs ldrh r0, [r5, 0x2] strh r0, [r4, 0x8] ldrh r0, [r5, 0x2] @@ -49112,7 +49112,7 @@ sub_80E21A8: @ 80E21A8 bx r0 .align 2, 0 _080E2208: .4byte gTasks -_080E220C: .4byte gUnknown_03004B00 +_080E220C: .4byte gBattleAnimArgs _080E2210: .4byte sub_80E2214 thumb_func_end sub_80E21A8 @@ -49269,7 +49269,7 @@ sub_80E2324: @ 80E2324 ldrb r6, [r0] ldr r0, _080E23A0 @ =gUnknown_0202F7C9 ldrb r7, [r0] - ldr r4, _080E23A4 @ =gUnknown_03004B00 + ldr r4, _080E23A4 @ =gBattleAnimArgs ldrh r1, [r4] movs r5, 0x80 lsls r5, 1 @@ -49319,7 +49319,7 @@ _080E2382: .align 2, 0 _080E239C: .4byte gUnknown_0202F7C8 _080E23A0: .4byte gUnknown_0202F7C9 -_080E23A4: .4byte gUnknown_03004B00 +_080E23A4: .4byte gBattleAnimArgs thumb_func_end sub_80E2324 thumb_func_start unref_sub_80E23A8 @@ -49342,7 +49342,7 @@ unref_sub_80E23A8: @ 80E23A8 ldrsh r0, [r4, r1] cmp r0, 0 bne _080E23EA - ldr r1, _080E24A0 @ =gUnknown_03004B00 + ldr r1, _080E24A0 @ =gBattleAnimArgs ldrh r0, [r1] strh r0, [r4, 0xC] ldrh r0, [r1, 0x2] @@ -49450,7 +49450,7 @@ _080E248E: bx r0 .align 2, 0 _080E249C: .4byte gTasks -_080E24A0: .4byte gUnknown_03004B00 +_080E24A0: .4byte gBattleAnimArgs _080E24A4: .4byte gUnknown_0202F7C8 _080E24A8: .4byte gUnknown_0202F7C9 _080E24AC: .4byte 0x0000ffff @@ -49468,7 +49468,7 @@ sub_80E24B8: @ 80E24B8 movs r1, 0x4 orrs r0, r1 strb r0, [r2] - ldr r1, _080E24EC @ =gUnknown_03004B00 + ldr r1, _080E24EC @ =gBattleAnimArgs ldrh r0, [r1] negs r0, r0 strh r0, [r4, 0x2E] @@ -49487,7 +49487,7 @@ sub_80E24B8: @ 80E24B8 beq _080E24F6 b _080E2518 .align 2, 0 -_080E24EC: .4byte gUnknown_03004B00 +_080E24EC: .4byte gBattleAnimArgs _080E24F0: cmp r0, 0x2 beq _080E2508 @@ -49523,7 +49523,7 @@ _080E2520: orrs r1, r0 ldr r0, [r1] strh r0, [r4, 0x36] - ldr r0, _080E2554 @ =gUnknown_03004B00 + ldr r0, _080E2554 @ =gBattleAnimArgs ldrh r0, [r0, 0x6] strh r0, [r4, 0x38] subs r0, 0x2 @@ -49540,7 +49540,7 @@ _080E2544: bx r0 .align 2, 0 _080E2550: .4byte gSpriteCoordOffsetY -_080E2554: .4byte gUnknown_03004B00 +_080E2554: .4byte gBattleAnimArgs _080E2558: .4byte sub_80E255C thumb_func_end sub_80E24B8 @@ -49670,7 +49670,7 @@ sub_80E260C: @ 80E260C ldrb r1, [r0] ands r2, r1 strb r2, [r0] - ldr r0, _080E2690 @ =gUnknown_03004B00 + ldr r0, _080E2690 @ =gBattleAnimArgs movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0x2 @@ -49702,7 +49702,7 @@ _080E2680: .4byte gSprites _080E2684: .4byte gUnknown_02024BE0 _080E2688: .4byte gUnknown_0202F7C8 _080E268C: .4byte gUnknown_0202F7C9 -_080E2690: .4byte gUnknown_03004B00 +_080E2690: .4byte gBattleAnimArgs _080E2694: cmp r0, 0 bne _080E269C @@ -49738,7 +49738,7 @@ sub_80E26BC: @ 80E26BC adds r2, r0 lsls r2, 3 adds r2, r1 - ldr r3, _080E2700 @ =gUnknown_03004B00 + ldr r3, _080E2700 @ =gBattleAnimArgs ldrh r1, [r3] strh r1, [r2, 0x8] ldrh r1, [r3, 0x2] @@ -49763,7 +49763,7 @@ sub_80E26BC: @ 80E26BC bx r0 .align 2, 0 _080E26FC: .4byte gTasks -_080E2700: .4byte gUnknown_03004B00 +_080E2700: .4byte gBattleAnimArgs _080E2704: .4byte gUnknown_030041B0 _080E2708: .4byte gUnknown_030041B8 _080E270C: .4byte sub_80E2710 @@ -49852,7 +49852,7 @@ _080E279A: sub_80E27A0: @ 80E27A0 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, _080E27C0 @ =gUnknown_03004B00 + ldr r4, _080E27C0 @ =gBattleAnimArgs ldrb r1, [r4, 0x6] bl StartSpriteAffineAnim movs r1, 0x4 @@ -49864,7 +49864,7 @@ sub_80E27A0: @ 80E27A0 bl sub_80787B0 b _080E27CC .align 2, 0 -_080E27C0: .4byte gUnknown_03004B00 +_080E27C0: .4byte gBattleAnimArgs _080E27C4: adds r0, r5, 0 movs r1, 0x1 @@ -49887,7 +49887,7 @@ _080E27E4: .4byte move_anim_8072740 sub_80E27E8: @ 80E27E8 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, _080E2808 @ =gUnknown_03004B00 + ldr r4, _080E2808 @ =gBattleAnimArgs ldrb r1, [r4, 0x6] bl StartSpriteAffineAnim movs r1, 0x4 @@ -49899,13 +49899,13 @@ sub_80E27E8: @ 80E27E8 bl sub_80787B0 b _080E2814 .align 2, 0 -_080E2808: .4byte gUnknown_03004B00 +_080E2808: .4byte gBattleAnimArgs _080E280C: adds r0, r5, 0 movs r1, 0x1 bl sub_8078764 _080E2814: - ldr r0, _080E282C @ =gUnknown_03004B00 + ldr r0, _080E282C @ =gBattleAnimArgs ldrh r0, [r0, 0x8] strh r0, [r5, 0x2E] ldr r0, _080E2830 @ =sub_80785E4 @@ -49917,7 +49917,7 @@ _080E2814: pop {r0} bx r0 .align 2, 0 -_080E282C: .4byte gUnknown_03004B00 +_080E282C: .4byte gBattleAnimArgs _080E2830: .4byte sub_80785E4 _080E2834: .4byte sub_80DA48C thumb_func_end sub_80E27E8 @@ -49936,7 +49936,7 @@ sub_80E2838: @ 80E2838 lsls r0, 24 cmp r0, 0 bne _080E285C - ldr r1, _080E286C @ =gUnknown_03004B00 + ldr r1, _080E286C @ =gBattleAnimArgs ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] @@ -49948,14 +49948,14 @@ _080E285C: bx r0 .align 2, 0 _080E2868: .4byte gUnknown_0202F7C8 -_080E286C: .4byte gUnknown_03004B00 +_080E286C: .4byte gBattleAnimArgs thumb_func_end sub_80E2838 thumb_func_start sub_80E2870 sub_80E2870: @ 80E2870 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, _080E28A8 @ =gUnknown_03004B00 + ldr r5, _080E28A8 @ =gBattleAnimArgs movs r0, 0x2 ldrsh r1, [r5, r0] movs r0, 0x1 @@ -49979,7 +49979,7 @@ _080E288C: bl sub_80787B0 b _080E28B4 .align 2, 0 -_080E28A8: .4byte gUnknown_03004B00 +_080E28A8: .4byte gBattleAnimArgs _080E28AC: adds r0, r4, 0 movs r1, 0 @@ -50024,7 +50024,7 @@ _080E2904: .4byte sub_80785E4 sub_80E2908: @ 80E2908 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, _080E2968 @ =gUnknown_03004B00 + ldr r5, _080E2968 @ =gBattleAnimArgs ldrb r0, [r5] bl obj_id_for_side_relative_to_move lsls r0, 24 @@ -50067,7 +50067,7 @@ sub_80E2908: @ 80E2908 pop {r0} bx r0 .align 2, 0 -_080E2968: .4byte gUnknown_03004B00 +_080E2968: .4byte gBattleAnimArgs _080E296C: .4byte gSprites _080E2970: .4byte move_anim_8074EE0 _080E2974: .4byte sub_80785E4 @@ -50077,7 +50077,7 @@ _080E2974: .4byte sub_80785E4 sub_80E2978: @ 80E2978 push {r4,lr} adds r4, r0, 0 - ldr r0, _080E2990 @ =gUnknown_03004B00 + ldr r0, _080E2990 @ =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 @@ -50087,13 +50087,13 @@ sub_80E2978: @ 80E2978 bl sub_80787B0 b _080E299C .align 2, 0 -_080E2990: .4byte gUnknown_03004B00 +_080E2990: .4byte gBattleAnimArgs _080E2994: adds r0, r4, 0 movs r1, 0x1 bl sub_8078764 _080E299C: - ldr r0, _080E29B4 @ =gUnknown_03004B00 + ldr r0, _080E29B4 @ =gBattleAnimArgs ldrh r0, [r0, 0x6] strh r0, [r4, 0x2E] ldr r1, _080E29B8 @ =move_anim_8072740 @@ -50105,7 +50105,7 @@ _080E299C: pop {r0} bx r0 .align 2, 0 -_080E29B4: .4byte gUnknown_03004B00 +_080E29B4: .4byte gBattleAnimArgs _080E29B8: .4byte move_anim_8072740 _080E29BC: .4byte sub_80782D8 thumb_func_end sub_80E2978 @@ -50114,7 +50114,7 @@ _080E29BC: .4byte sub_80782D8 sub_80E29C0: @ 80E29C0 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, _080E29E0 @ =gUnknown_03004B00 + ldr r4, _080E29E0 @ =gBattleAnimArgs ldrb r1, [r4, 0x6] bl StartSpriteAffineAnim movs r1, 0x4 @@ -50126,7 +50126,7 @@ sub_80E29C0: @ 80E29C0 bl sub_80787B0 b _080E29EC .align 2, 0 -_080E29E0: .4byte gUnknown_03004B00 +_080E29E0: .4byte gBattleAnimArgs _080E29E4: adds r0, r5, 0 movs r1, 0x1 @@ -50180,7 +50180,7 @@ sub_80E2A38: @ 80E2A38 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r4, _080E2A78 @ =gUnknown_03004B00 + ldr r4, _080E2A78 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r4, r1] bl sub_80E1DC4 @@ -50205,7 +50205,7 @@ sub_80E2A38: @ 80E2A38 pop {r0} bx r0 .align 2, 0 -_080E2A78: .4byte gUnknown_03004B00 +_080E2A78: .4byte gBattleAnimArgs thumb_func_end sub_80E2A38 thumb_func_start sub_80E2A7C @@ -50220,7 +50220,7 @@ sub_80E2A7C: @ 80E2A7C movs r0, 0x1 bl sub_80E1DC4 adds r5, r0, 0 - ldr r0, _080E2AA8 @ =gUnknown_03004B00 + ldr r0, _080E2AA8 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x7 @@ -50231,7 +50231,7 @@ sub_80E2A7C: @ 80E2A7C ldr r0, [r0] mov pc, r0 .align 2, 0 -_080E2AA8: .4byte gUnknown_03004B00 +_080E2AA8: .4byte gBattleAnimArgs _080E2AAC: .4byte _080E2AB0 .align 2, 0 _080E2AB0: @@ -50340,12 +50340,12 @@ sub_80E2B74: @ 80E2B74 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _080E2B98 @ =gUnknown_03004B00 + ldr r0, _080E2B98 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] bl sub_80E1DC4 adds r2, r0, 0 - ldr r0, _080E2B9C @ =gUnknown_0300428C + ldr r0, _080E2B9C @ =gBattleTerrain ldrb r0, [r0] cmp r0, 0x9 bhi _080E2C4A @@ -50355,8 +50355,8 @@ sub_80E2B74: @ 80E2B74 ldr r0, [r0] mov pc, r0 .align 2, 0 -_080E2B98: .4byte gUnknown_03004B00 -_080E2B9C: .4byte gUnknown_0300428C +_080E2B98: .4byte gBattleAnimArgs +_080E2B9C: .4byte gBattleTerrain _080E2BA0: .4byte _080E2BA4 .align 2, 0 _080E2BA4: @@ -50371,63 +50371,63 @@ _080E2BA4: .4byte _080E2C44 .4byte _080E2C44 _080E2BCC: - ldr r1, _080E2BD4 @ =gUnknown_03004B00 + ldr r1, _080E2BD4 @ =gBattleAnimArgs ldr r0, _080E2BD8 @ =0x00000b0c b _080E2C48 .align 2, 0 -_080E2BD4: .4byte gUnknown_03004B00 +_080E2BD4: .4byte gBattleAnimArgs _080E2BD8: .4byte 0x00000b0c _080E2BDC: - ldr r1, _080E2BE4 @ =gUnknown_03004B00 + ldr r1, _080E2BE4 @ =gBattleAnimArgs movs r0, 0x9E lsls r0, 4 b _080E2C48 .align 2, 0 -_080E2BE4: .4byte gUnknown_03004B00 +_080E2BE4: .4byte gBattleAnimArgs _080E2BE8: - ldr r1, _080E2BF0 @ =gUnknown_03004B00 + ldr r1, _080E2BF0 @ =gBattleAnimArgs ldr r0, _080E2BF4 @ =0x00002f1e b _080E2C48 .align 2, 0 -_080E2BF0: .4byte gUnknown_03004B00 +_080E2BF0: .4byte gBattleAnimArgs _080E2BF4: .4byte 0x00002f1e _080E2BF8: - ldr r1, _080E2C00 @ =gUnknown_03004B00 + ldr r1, _080E2C00 @ =gBattleAnimArgs movs r0, 0x90 lsls r0, 7 b _080E2C48 .align 2, 0 -_080E2C00: .4byte gUnknown_03004B00 +_080E2C00: .4byte gBattleAnimArgs _080E2C04: - ldr r1, _080E2C0C @ =gUnknown_03004B00 + ldr r1, _080E2C0C @ =gBattleAnimArgs ldr r0, _080E2C10 @ =0x00007ecb b _080E2C48 .align 2, 0 -_080E2C0C: .4byte gUnknown_03004B00 +_080E2C0C: .4byte gBattleAnimArgs _080E2C10: .4byte 0x00007ecb _080E2C14: - ldr r1, _080E2C1C @ =gUnknown_03004B00 + ldr r1, _080E2C1C @ =gBattleAnimArgs ldr r0, _080E2C20 @ =0x00007ecb b _080E2C48 .align 2, 0 -_080E2C1C: .4byte gUnknown_03004B00 +_080E2C1C: .4byte gBattleAnimArgs _080E2C20: .4byte 0x00007ecb _080E2C24: - ldr r1, _080E2C2C @ =gUnknown_03004B00 + ldr r1, _080E2C2C @ =gBattleAnimArgs ldr r0, _080E2C30 @ =0x00002a16 b _080E2C48 .align 2, 0 -_080E2C2C: .4byte gUnknown_03004B00 +_080E2C2C: .4byte gBattleAnimArgs _080E2C30: .4byte 0x00002a16 _080E2C34: - ldr r1, _080E2C3C @ =gUnknown_03004B00 + ldr r1, _080E2C3C @ =gBattleAnimArgs ldr r0, _080E2C40 @ =0x00000d2e b _080E2C48 .align 2, 0 -_080E2C3C: .4byte gUnknown_03004B00 +_080E2C3C: .4byte gBattleAnimArgs _080E2C40: .4byte 0x00000d2e _080E2C44: - ldr r1, _080E2C58 @ =gUnknown_03004B00 + ldr r1, _080E2C58 @ =gBattleAnimArgs ldr r0, _080E2C5C @ =0x00007fff _080E2C48: strh r0, [r1, 0x8] @@ -50439,7 +50439,7 @@ _080E2C4A: pop {r0} bx r0 .align 2, 0 -_080E2C58: .4byte gUnknown_03004B00 +_080E2C58: .4byte gBattleAnimArgs _080E2C5C: .4byte 0x00007fff thumb_func_end sub_80E2B74 @@ -50449,7 +50449,7 @@ sub_80E2C60: @ 80E2C60 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, _080E2C88 @ =gUnknown_03004B00 + ldr r0, _080E2C88 @ =gBattleAnimArgs ldrh r0, [r0] bl IndexOfSpritePaletteTag lsls r0, 24 @@ -50463,7 +50463,7 @@ sub_80E2C60: @ 80E2C60 pop {r0} bx r0 .align 2, 0 -_080E2C88: .4byte gUnknown_03004B00 +_080E2C88: .4byte gBattleAnimArgs thumb_func_end sub_80E2C60 thumb_func_start sub_80E2C8C @@ -50479,7 +50479,7 @@ sub_80E2C8C: @ 80E2C8C strh r1, [r2, 0x8] lsrs r1, 16 strh r1, [r2, 0xA] - ldr r3, _080E2CC8 @ =gUnknown_03004B00 + ldr r3, _080E2CC8 @ =gBattleAnimArgs ldrh r1, [r3, 0x2] strh r1, [r2, 0xC] ldrh r1, [r3, 0x4] @@ -50497,7 +50497,7 @@ sub_80E2C8C: @ 80E2C8C bx r0 .align 2, 0 _080E2CC4: .4byte gTasks -_080E2CC8: .4byte gUnknown_03004B00 +_080E2CC8: .4byte gBattleAnimArgs _080E2CCC: .4byte sub_80E2CD0 thumb_func_end sub_80E2C8C @@ -50601,7 +50601,7 @@ sub_80E2D78: @ 80E2D78 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r4, _080E2DAC @ =gUnknown_03004B00 + ldr r4, _080E2DAC @ =gBattleAnimArgs ldrb r0, [r4] ldrb r1, [r4, 0x2] ldrb r2, [r4, 0x4] @@ -50621,7 +50621,7 @@ sub_80E2D78: @ 80E2D78 pop {r0} bx r0 .align 2, 0 -_080E2DAC: .4byte gUnknown_03004B00 +_080E2DAC: .4byte gBattleAnimArgs _080E2DB0: .4byte gTasks _080E2DB4: .4byte sub_80E2DB8 thumb_func_end sub_80E2D78 @@ -50655,7 +50655,7 @@ sub_80E2DD8: @ 80E2DD8 lsls r1, 3 ldr r0, _080E2E04 @ =gTasks adds r1, r0 - ldr r2, _080E2E08 @ =gUnknown_03004B00 + ldr r2, _080E2E08 @ =gBattleAnimArgs ldrh r0, [r2] movs r3, 0 strh r0, [r1, 0x8] @@ -50672,7 +50672,7 @@ sub_80E2DD8: @ 80E2DD8 bx lr .align 2, 0 _080E2E04: .4byte gTasks -_080E2E08: .4byte gUnknown_03004B00 +_080E2E08: .4byte gBattleAnimArgs _080E2E0C: .4byte sub_80E2E10 thumb_func_end sub_80E2DD8 @@ -50892,7 +50892,7 @@ sub_80E2F2C: @ 80E2F2C orrs r1, r0 strb r1, [r4] _080E2FAC: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _080E3028 @@ -51274,7 +51274,7 @@ sub_80E32E0: @ 80E32E0 mov r7, r12 adds r7, 0x8 adds r5, r1, 0 - ldr r6, _080E3334 @ =gUnknown_03004B00 + ldr r6, _080E3334 @ =gBattleAnimArgs _080E3302: lsls r0, r2, 1 adds r1, r0, r4 @@ -51300,7 +51300,7 @@ _080E3302: .align 2, 0 _080E332C: .4byte gTasks _080E3330: .4byte sub_80E3338 -_080E3334: .4byte gUnknown_03004B00 +_080E3334: .4byte gBattleAnimArgs thumb_func_end sub_80E32E0 thumb_func_start sub_80E3338 @@ -51432,7 +51432,7 @@ _080E33C0: orrs r1, r0 strb r1, [r4] _080E3432: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _080E34A4 @@ -52197,7 +52197,7 @@ _080E3A26: cmp r2, 0x3 bls _080E3A18 movs r2, 0x5 - ldr r0, _080E3A54 @ =gUnknown_03004B00 + ldr r0, _080E3A54 @ =gBattleAnimArgs adds r1, r0, 0 adds r1, 0x8 _080E3A34: @@ -52215,7 +52215,7 @@ _080E3A34: bx r0 .align 2, 0 _080E3A50: .4byte gUnknown_0202F7C8 -_080E3A54: .4byte gUnknown_03004B00 +_080E3A54: .4byte gBattleAnimArgs thumb_func_end sub_80E3A08 thumb_func_start sub_80E3A58 @@ -52230,7 +52230,7 @@ sub_80E3A58: @ 80E3A58 bl CreateTask lsls r0, 24 lsrs r5, r0, 24 - ldr r4, _080E3AC4 @ =gUnknown_03004B00 + ldr r4, _080E3AC4 @ =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 @@ -52253,7 +52253,7 @@ _080E3A94: adds r1, r5 lsls r1, 3 adds r1, r0 - ldr r2, _080E3AC4 @ =gUnknown_03004B00 + ldr r2, _080E3AC4 @ =gBattleAnimArgs ldrh r0, [r2] strh r0, [r1, 0xA] ldrh r0, [r2, 0x2] @@ -52270,7 +52270,7 @@ _080E3A94: bx r0 .align 2, 0 _080E3AC0: .4byte sub_80E3AD0 -_080E3AC4: .4byte gUnknown_03004B00 +_080E3AC4: .4byte gBattleAnimArgs _080E3AC8: .4byte gUnknown_0202F7C8 _080E3ACC: .4byte gTasks thumb_func_end sub_80E3A58 @@ -52312,7 +52312,7 @@ sub_80E3AD0: @ 80E3AD0 strh r3, [r1, 0x1C] ands r2, r0 strh r2, [r1, 0x1E] - ldr r0, _080E3B48 @ =gUnknown_03004B00 + ldr r0, _080E3B48 @ =gBattleAnimArgs movs r3, 0xE ldrsh r2, [r0, r3] movs r7, 0xE @@ -52334,7 +52334,7 @@ _080E3B36: _080E3B3C: .4byte gTasks _080E3B40: .4byte gUnknown_030041B0 _080E3B44: .4byte gUnknown_030041B8 -_080E3B48: .4byte gUnknown_03004B00 +_080E3B48: .4byte gBattleAnimArgs thumb_func_end sub_80E3AD0 thumb_func_start sub_80E3B4C @@ -52346,7 +52346,7 @@ sub_80E3B4C: @ 80E3B4C ldr r0, _080E3B70 @ =gUnknown_0202F7C8 ldrb r0, [r0] bl battle_side_get_owner - ldr r1, _080E3B74 @ =gUnknown_03004B00 + ldr r1, _080E3B74 @ =gBattleAnimArgs lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0xE] @@ -52357,7 +52357,7 @@ sub_80E3B4C: @ 80E3B4C bx r0 .align 2, 0 _080E3B70: .4byte gUnknown_0202F7C8 -_080E3B74: .4byte gUnknown_03004B00 +_080E3B74: .4byte gBattleAnimArgs thumb_func_end sub_80E3B4C thumb_func_start sub_80E3B78 @@ -52369,7 +52369,7 @@ sub_80E3B78: @ 80E3B78 ldr r0, _080E3B9C @ =gUnknown_0202F7C9 ldrb r0, [r0] bl battle_side_get_owner - ldr r1, _080E3BA0 @ =gUnknown_03004B00 + ldr r1, _080E3BA0 @ =gBattleAnimArgs lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0xE] @@ -52380,7 +52380,7 @@ sub_80E3B78: @ 80E3B78 bx r0 .align 2, 0 _080E3B9C: .4byte gUnknown_0202F7C9 -_080E3BA0: .4byte gUnknown_03004B00 +_080E3BA0: .4byte gBattleAnimArgs thumb_func_end sub_80E3B78 thumb_func_start sub_80E3BA4 @@ -52388,7 +52388,7 @@ sub_80E3BA4: @ 80E3BA4 push {r4,r5,lr} lsls r0, 24 lsrs r3, r0, 24 - ldr r5, _080E3BD0 @ =gUnknown_03004B00 + ldr r5, _080E3BD0 @ =gBattleAnimArgs movs r4, 0 ldr r0, _080E3BD4 @ =gUnknown_0202F7C8 ldrb r2, [r0] @@ -52407,7 +52407,7 @@ _080E3BC0: pop {r0} bx r0 .align 2, 0 -_080E3BD0: .4byte gUnknown_03004B00 +_080E3BD0: .4byte gBattleAnimArgs _080E3BD4: .4byte gUnknown_0202F7C8 _080E3BD8: .4byte gUnknown_0202F7C9 thumb_func_end sub_80E3BA4 @@ -52437,7 +52437,7 @@ _080E3BE6: adds r2, r0 lsls r2, 2 adds r2, r6 - ldr r1, _080E3C48 @ =gUnknown_03004B00 + ldr r1, _080E3C48 @ =gBattleAnimArgs adds r2, 0x3E movs r0, 0x1 ldrb r3, [r1] @@ -52465,7 +52465,7 @@ _080E3C24: _080E3C3C: .4byte gSprites _080E3C40: .4byte gUnknown_0202F7C8 _080E3C44: .4byte gUnknown_02024BE0 -_080E3C48: .4byte gUnknown_03004B00 +_080E3C48: .4byte gBattleAnimArgs thumb_func_end sub_80E3BDC thumb_func_start sub_80E3C4C @@ -52935,16 +52935,16 @@ sub_80E4008: @ 80E4008 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, _080E4020 @ =gUnknown_03004B00 - ldr r1, _080E4024 @ =gUnknown_0300428C + ldr r2, _080E4020 @ =gBattleAnimArgs + ldr r1, _080E4024 @ =gBattleTerrain ldrb r1, [r1] strh r1, [r2] bl move_anim_task_del pop {r0} bx r0 .align 2, 0 -_080E4020: .4byte gUnknown_03004B00 -_080E4024: .4byte gUnknown_0300428C +_080E4020: .4byte gBattleAnimArgs +_080E4024: .4byte gBattleTerrain thumb_func_end sub_80E4008 thumb_func_start sub_80E4028 @@ -52954,7 +52954,7 @@ sub_80E4028: @ 80E4028 lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 - ldr r0, _080E4068 @ =gUnknown_03004B00 + ldr r0, _080E4068 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -52982,7 +52982,7 @@ _080E405A: beq _080E405A b _080E4084 .align 2, 0 -_080E4068: .4byte gUnknown_03004B00 +_080E4068: .4byte gBattleAnimArgs _080E406C: cmp r0, 0x1 bne _080E4078 @@ -52999,7 +52999,7 @@ _080E407E: adds r4, r0, 0 adds r4, 0x10 _080E4084: - ldr r0, _080E40A0 @ =gUnknown_03004B00 + ldr r0, _080E40A0 @ =gBattleAnimArgs movs r1, 0x2 ldrsh r0, [r0, r1] lsls r5, r0, 5 @@ -53011,7 +53011,7 @@ _080E4084: b _080E40AA .align 2, 0 _080E409C: .4byte gUnknown_0202F7C9 -_080E40A0: .4byte gUnknown_03004B00 +_080E40A0: .4byte gBattleAnimArgs _080E40A4: .4byte 0x02014800 _080E40A8: ldr r0, _080E40C8 @ =0x02018000 @@ -53041,7 +53041,7 @@ sub_80E40D0: @ 80E40D0 lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 - ldr r0, _080E4110 @ =gUnknown_03004B00 + ldr r0, _080E4110 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -53069,7 +53069,7 @@ _080E4102: beq _080E4102 b _080E412C .align 2, 0 -_080E4110: .4byte gUnknown_03004B00 +_080E4110: .4byte gBattleAnimArgs _080E4114: cmp r0, 0x1 bne _080E4120 @@ -53089,7 +53089,7 @@ _080E412C: lsls r1, r4, 5 ldr r0, _080E414C @ =gPlttBufferUnfaded adds r5, r1, r0 - ldr r0, _080E4150 @ =gUnknown_03004B00 + ldr r0, _080E4150 @ =gBattleAnimArgs movs r1, 0x2 ldrsh r0, [r0, r1] lsls r4, r0, 5 @@ -53102,7 +53102,7 @@ _080E412C: .align 2, 0 _080E4148: .4byte gUnknown_0202F7C9 _080E414C: .4byte gPlttBufferUnfaded -_080E4150: .4byte gUnknown_03004B00 +_080E4150: .4byte gBattleAnimArgs _080E4154: .4byte 0x02014800 _080E4158: ldr r0, _080E4174 @ =0x02018000 @@ -53128,7 +53128,7 @@ sub_80E4178: @ 80E4178 lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 - ldr r0, _080E41B8 @ =gUnknown_03004B00 + ldr r0, _080E41B8 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -53156,7 +53156,7 @@ _080E41AA: beq _080E41AA b _080E41D4 .align 2, 0 -_080E41B8: .4byte gUnknown_03004B00 +_080E41B8: .4byte gBattleAnimArgs _080E41BC: cmp r0, 0x1 bne _080E41C8 @@ -53202,14 +53202,14 @@ sub_80E4200: @ 80E4200 lsrs r1, r0, 24 cmp r1, 0 beq _080E4220 - ldr r1, _080E421C @ =gUnknown_03004B00 + ldr r1, _080E421C @ =gBattleAnimArgs movs r0, 0x1 strh r0, [r1, 0xE] b _080E4224 .align 2, 0 -_080E421C: .4byte gUnknown_03004B00 +_080E421C: .4byte gBattleAnimArgs _080E4220: - ldr r0, _080E4230 @ =gUnknown_03004B00 + ldr r0, _080E4230 @ =gBattleAnimArgs strh r1, [r0, 0xE] _080E4224: adds r0, r4, 0 @@ -53218,7 +53218,7 @@ _080E4224: pop {r0} bx r0 .align 2, 0 -_080E4230: .4byte gUnknown_03004B00 +_080E4230: .4byte gBattleAnimArgs thumb_func_end sub_80E4200 thumb_func_start sub_80E4234 @@ -53260,15 +53260,15 @@ sub_80E4264: @ 80E4264 lsls r0, 24 cmp r4, r0 bne _080E4298 - ldr r1, _080E4294 @ =gUnknown_03004B00 + ldr r1, _080E4294 @ =gBattleAnimArgs movs r0, 0x1 b _080E429C .align 2, 0 _080E428C: .4byte gUnknown_0202F7C8 _080E4290: .4byte gUnknown_0202F7C9 -_080E4294: .4byte gUnknown_03004B00 +_080E4294: .4byte gBattleAnimArgs _080E4298: - ldr r1, _080E42AC @ =gUnknown_03004B00 + ldr r1, _080E42AC @ =gBattleAnimArgs movs r0, 0 _080E429C: strh r0, [r1, 0xE] @@ -53278,7 +53278,7 @@ _080E429C: pop {r0} bx r0 .align 2, 0 -_080E42AC: .4byte gUnknown_03004B00 +_080E42AC: .4byte gBattleAnimArgs thumb_func_end sub_80E4264 thumb_func_start sub_80E42B0 @@ -53378,7 +53378,7 @@ sub_80E4368: @ 80E4368 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _080E43B0 @ =gUnknown_03004B00 + ldr r0, _080E43B0 @ =gBattleAnimArgs movs r2, 0xE ldrsh r1, [r0, r2] movs r0, 0x80 @@ -53411,7 +53411,7 @@ _080E43A8: pop {r0} bx r0 .align 2, 0 -_080E43B0: .4byte gUnknown_03004B00 +_080E43B0: .4byte gBattleAnimArgs _080E43B4: .4byte gUnknown_0202F7C8 _080E43B8: .4byte 0x02017800 _080E43BC: .4byte gTasks @@ -53422,7 +53422,7 @@ sub_80E43C0: @ 80E43C0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _080E43D8 @ =gUnknown_020239F8 + ldr r0, _080E43D8 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -53431,7 +53431,7 @@ sub_80E43C0: @ 80E43C0 ldr r0, _080E43DC @ =sub_80E4C34 b _080E4408 .align 2, 0 -_080E43D8: .4byte gUnknown_020239F8 +_080E43D8: .4byte gBattleTypeFlags _080E43DC: .4byte sub_80E4C34 _080E43E0: movs r0, 0x80 @@ -53560,7 +53560,7 @@ _080E44D0: .4byte _080E4588 .4byte _080E46B8 _080E44E4: - ldr r0, _080E44FC @ =gUnknown_020239F8 + ldr r0, _080E44FC @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -53573,7 +53573,7 @@ _080E44E4: movs r1, 0x10 b _080E450A .align 2, 0 -_080E44FC: .4byte gUnknown_020239F8 +_080E44FC: .4byte gBattleTypeFlags _080E4500: lsls r0, r4, 2 adds r0, r4 @@ -53929,7 +53929,7 @@ _080E47B0: adds r2, r0, r1 movs r3, 0x10 strh r3, [r2, 0x10] - ldr r0, _080E47D0 @ =gUnknown_020239F8 + ldr r0, _080E47D0 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -53939,7 +53939,7 @@ _080E47B0: b _080E47D8 .align 2, 0 _080E47CC: .4byte gTasks -_080E47D0: .4byte gUnknown_020239F8 +_080E47D0: .4byte gBattleTypeFlags _080E47D4: movs r0, 0x1 strh r0, [r2, 0xC] @@ -54246,7 +54246,7 @@ _080E4A14: lsls r0, 3 adds r3, r0, r1 strh r2, [r3, 0x10] - ldr r0, _080E4A5C @ =gUnknown_020239F8 + ldr r0, _080E4A5C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -54260,7 +54260,7 @@ _080E4A4C: .4byte 0x00001842 _080E4A50: .4byte REG_BLDALPHA _080E4A54: .4byte 0x00000808 _080E4A58: .4byte gTasks -_080E4A5C: .4byte gUnknown_020239F8 +_080E4A5C: .4byte gBattleTypeFlags _080E4A60: movs r0, 0x1 _080E4A62: diff --git a/asm/battle_anim_813F0F4.s b/asm/battle_anim_813F0F4.s new file mode 100644 index 000000000..bbdce5e93 --- /dev/null +++ b/asm/battle_anim_813F0F4.s @@ -0,0 +1,5740 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start unref_sub_813F0F4 +unref_sub_813F0F4: @ 813F0F4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x10] + ldr r0, _0813F2AC @ =gUnknown_0202F7C8 + ldrb r3, [r0] + ldr r0, _0813F2B0 @ =gUnknown_030042C4 + movs r1, 0 + strh r1, [r0] + ldr r0, _0813F2B4 @ =gUnknown_03004240 + strh r1, [r0] + ldr r1, _0813F2B8 @ =REG_WININ + ldr r2, _0813F2BC @ =0x00003f3f + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r4, _0813F2C0 @ =0x00003f3d + adds r0, r4, 0 + strh r0, [r1] + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r4, 0x80 + lsls r4, 8 + adds r1, r4, 0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0813F2C4 @ =REG_BLDCNT + ldr r2, _0813F2C8 @ =0x00003f42 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r4, 0x80 + lsls r4, 5 + adds r0, r4, 0 + strh r0, [r1] + ldr r2, _0813F2CC @ =REG_BG1CNT + ldrb r1, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldrb r1, [r2, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r2, 0x1] + ldrb r0, [r2, 0x1] + movs r1, 0x20 + orrs r0, r1 + strb r0, [r2, 0x1] + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + mov r9, r0 + ands r0, r1 + movs r1, 0x4 + mov r8, r1 + mov r4, r8 + orrs r0, r4 + strb r0, [r2] + ldr r0, _0813F2D0 @ =gUnknown_03004340 + adds r3, r0 + ldrb r0, [r3] + ldr r1, _0813F2D4 @ =gSprites + mov r10, r1 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + add r4, r10 + ldrb r7, [r4, 0x6] + ldrh r6, [r4, 0x38] + lsls r6, 24 + lsrs r6, 24 + ldr r0, _0813F2D8 @ =SpriteCallbackDummy + bl CreateInvisibleSpriteWithCallback + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x14] + ldr r0, _0813F2D8 @ =SpriteCallbackDummy + bl CreateInvisibleSpriteWithCallback + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x18] + ldrb r1, [r4, 0x5] + mov r0, r9 + ands r0, r1 + mov r2, r8 + orrs r0, r2 + strb r0, [r4, 0x5] + lsls r5, r7, 4 + adds r5, r7 + lsls r5, 2 + add r5, r10 + ldrb r1, [r5, 0x5] + mov r0, r9 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, 0x5] + lsls r1, r6, 4 + adds r1, r6 + lsls r1, 2 + add r1, r10 + ldrb r2, [r1, 0x5] + mov r0, r9 + ands r0, r2 + mov r2, r8 + orrs r0, r2 + strb r0, [r1, 0x5] + ldr r0, [sp, 0x14] + lsls r6, r0, 4 + adds r6, r0 + lsls r6, 2 + mov r1, r10 + adds r7, r6, r1 + adds r0, r7, 0 + adds r1, r4, 0 + movs r2, 0x44 + bl memcpy + ldr r2, [sp, 0x18] + lsls r4, r2, 4 + adds r4, r2 + lsls r4, 2 + adds r0, r4, 0 + add r0, r10 + mov r8, r0 + adds r1, r5, 0 + movs r2, 0x44 + bl memcpy + ldrb r1, [r7, 0x1] + mov r0, r9 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r7, 0x1] + mov r2, r8 + ldrb r0, [r2, 0x1] + mov r2, r9 + ands r2, r0 + orrs r2, r1 + mov r0, r8 + strb r2, [r0, 0x1] + movs r1, 0x1C + add r10, r1 + add r6, r10 + ldr r2, _0813F2D8 @ =SpriteCallbackDummy + str r2, [r6] + add r4, r10 + str r2, [r4] + mov r0, sp + bl sub_8078914 + ldr r1, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0xC] + ldr r2, _0813F2DC @ =0x040000d4 + add r0, sp, 0xC + str r0, [r2] + str r1, [r2, 0x4] + ldr r0, _0813F2E0 @ =0x85000400 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + ldr r0, _0813F2E4 @ =gUnknown_08D2EE48 + bl LZDecompressVram + ldr r0, _0813F2E8 @ =gUnknown_08D2EDFC + ldr r1, [sp] + bl LZDecompressVram + ldr r0, _0813F2EC @ =gUnknown_08D2E150 + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + ldr r1, _0813F2F0 @ =gUnknown_030042C0 + ldrh r0, [r7, 0x20] + negs r0, r0 + adds r0, 0x20 + strh r0, [r1] + ldr r1, _0813F2F4 @ =gUnknown_030041B4 + ldrh r0, [r7, 0x22] + negs r0, r0 + subs r0, 0x20 + strh r0, [r1] + ldr r1, _0813F2F8 @ =gTasks + ldr r4, [sp, 0x10] + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0xA0 + lsls r1, 2 + strh r1, [r0, 0xA] + mov r1, sp + ldrh r1, [r1, 0x14] + strh r1, [r0, 0x8] + mov r2, sp + ldrh r2, [r2, 0x18] + strh r2, [r0, 0xC] + ldr r1, _0813F2FC @ =sub_813F300 + str r1, [r0] + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0813F2AC: .4byte gUnknown_0202F7C8 +_0813F2B0: .4byte gUnknown_030042C4 +_0813F2B4: .4byte gUnknown_03004240 +_0813F2B8: .4byte REG_WININ +_0813F2BC: .4byte 0x00003f3f +_0813F2C0: .4byte 0x00003f3d +_0813F2C4: .4byte REG_BLDCNT +_0813F2C8: .4byte 0x00003f42 +_0813F2CC: .4byte REG_BG1CNT +_0813F2D0: .4byte gUnknown_03004340 +_0813F2D4: .4byte gSprites +_0813F2D8: .4byte SpriteCallbackDummy +_0813F2DC: .4byte 0x040000d4 +_0813F2E0: .4byte 0x85000400 +_0813F2E4: .4byte gUnknown_08D2EE48 +_0813F2E8: .4byte gUnknown_08D2EDFC +_0813F2EC: .4byte gUnknown_08D2E150 +_0813F2F0: .4byte gUnknown_030042C0 +_0813F2F4: .4byte gUnknown_030041B4 +_0813F2F8: .4byte gTasks +_0813F2FC: .4byte sub_813F300 + thumb_func_end unref_sub_813F0F4 + + thumb_func_start sub_813F300 +sub_813F300: @ 813F300 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _0813F34C @ =gUnknown_0202F7C8 + ldrb r0, [r0] + mov r9, r0 + ldr r1, _0813F350 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r4, r0, r1 + ldrh r1, [r4, 0xA] + ldrh r0, [r4, 0x22] + adds r1, r0 + movs r3, 0 + strh r1, [r4, 0x22] + ldr r2, _0813F354 @ =gUnknown_030041B4 + lsls r0, r1, 16 + lsrs r0, 24 + ldrh r5, [r2] + adds r0, r5 + strh r0, [r2] + movs r0, 0xFF + ands r1, r0 + strh r1, [r4, 0x22] + movs r1, 0x26 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _0813F394 + cmp r0, 0x1 + bgt _0813F358 + cmp r0, 0 + beq _0813F35E + b _0813F4B2 + .align 2, 0 +_0813F34C: .4byte gUnknown_0202F7C8 +_0813F350: .4byte gTasks +_0813F354: .4byte gUnknown_030041B4 +_0813F358: + cmp r0, 0x2 + beq _0813F3AC + b _0813F4B2 +_0813F35E: + ldrh r0, [r4, 0x1E] + adds r1, r0, 0x1 + strh r1, [r4, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bgt _0813F36E + b _0813F4B2 +_0813F36E: + strh r3, [r4, 0x1E] + ldrh r1, [r4, 0x20] + adds r1, 0x1 + strh r1, [r4, 0x20] + ldr r2, _0813F390 @ =REG_BLDALPHA + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r0, 0x8 + beq _0813F38C + b _0813F4B2 +_0813F38C: + b _0813F3A4 + .align 2, 0 +_0813F390: .4byte REG_BLDALPHA +_0813F394: + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + beq _0813F3A4 + b _0813F4B2 +_0813F3A4: + ldrh r0, [r4, 0x26] + adds r0, 0x1 + strh r0, [r4, 0x26] + b _0813F4B2 +_0813F3AC: + ldrh r0, [r4, 0x1E] + adds r1, r0, 0x1 + strh r1, [r4, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _0813F4B2 + strh r3, [r4, 0x1E] + ldrh r1, [r4, 0x20] + subs r1, 0x1 + strh r1, [r4, 0x20] + ldr r6, _0813F4C0 @ =REG_BLDALPHA + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r6] + movs r3, 0x20 + ldrsh r5, [r4, r3] + cmp r5, 0 + bne _0813F4B2 + movs r0, 0 + bl sub_8076464 + ldr r0, _0813F4C4 @ =gUnknown_030042C4 + strh r5, [r0] + ldr r0, _0813F4C8 @ =gUnknown_03004240 + strh r5, [r0] + ldr r0, _0813F4CC @ =REG_WININ + ldr r2, _0813F4D0 @ =0x00003f3f + adds r1, r2, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _0813F406 + ldr r2, _0813F4D4 @ =REG_BG1CNT + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_0813F406: + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 8 + adds r1, r3, 0 + eors r0, r1 + strh r0, [r2] + ldr r0, _0813F4D8 @ =REG_BLDCNT + strh r5, [r0] + strh r5, [r6] + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0813F4DC @ =gSprites + mov r8, r1 + add r0, r8 + bl DestroySprite + movs r2, 0xC + ldrsh r1, [r4, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + bl DestroySprite + mov r0, sp + bl sub_8078914 + ldr r2, [sp, 0x4] + str r5, [sp, 0xC] + ldr r1, _0813F4E0 @ =0x040000d4 + add r0, sp, 0xC + str r0, [r1] + str r2, [r1, 0x4] + ldr r0, _0813F4E4 @ =0x85000200 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r2, _0813F4D4 @ =REG_BG1CNT + ldrb r1, [r2, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x1] + ldr r0, _0813F4E8 @ =gUnknown_03004340 + add r0, r9 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r8 + ldrb r6, [r1, 0x6] + ldrh r4, [r1, 0x38] + lsls r4, 24 + lsrs r4, 24 + ldrb r3, [r1, 0x5] + movs r2, 0xD + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + movs r5, 0x4 + orrs r0, r5 + strb r0, [r1, 0x5] + lsls r1, r6, 4 + adds r1, r6 + lsls r1, 2 + add r1, r8 + ldrb r3, [r1, 0x5] + adds r0, r2, 0 + ands r0, r3 + orrs r0, r5 + strb r0, [r1, 0x5] + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + add r0, r8 + ldrb r1, [r0, 0x5] + ands r2, r1 + orrs r2, r5 + strb r2, [r0, 0x5] + adds r0, r7, 0 + bl move_anim_task_del +_0813F4B2: + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0813F4C0: .4byte REG_BLDALPHA +_0813F4C4: .4byte gUnknown_030042C4 +_0813F4C8: .4byte gUnknown_03004240 +_0813F4CC: .4byte REG_WININ +_0813F4D0: .4byte 0x00003f3f +_0813F4D4: .4byte REG_BG1CNT +_0813F4D8: .4byte REG_BLDCNT +_0813F4DC: .4byte gSprites +_0813F4E0: .4byte 0x040000d4 +_0813F4E4: .4byte 0x85000200 +_0813F4E8: .4byte gUnknown_03004340 + thumb_func_end sub_813F300 + + thumb_func_start sub_813F4EC +sub_813F4EC: @ 813F4EC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + ldr r1, _0813F5D0 @ =gUnknown_03004340 + ldr r0, _0813F5D4 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + ldr r7, _0813F5D8 @ =gSprites + lsls r6, r0, 4 + adds r6, r0 + lsls r6, 2 + adds r6, r7 + ldrb r0, [r6, 0x6] + str r0, [sp, 0x4] + ldrh r4, [r6, 0x38] + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0813F5DC @ =0x0000d709 + bl AllocSpritePalette + mov r8, r0 + mov r1, r8 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + ldr r0, _0813F5E0 @ =0x0000d70a + bl AllocSpritePalette + mov r9, r0 + mov r2, r9 + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + ldrb r0, [r6, 0x5] + lsrs r0, 4 + lsls r0, 4 + movs r1, 0x80 + lsls r1, 1 + adds r3, r1, 0 + orrs r0, r3 + lsls r5, r4, 4 + adds r5, r4 + lsls r5, 2 + adds r5, r7 + ldrb r4, [r5, 0x5] + lsrs r4, 4 + lsls r4, 4 + orrs r4, r3 + lsls r0, 1 + ldr r2, _0813F5E4 @ =gPlttBufferUnfaded + mov r10, r2 + add r0, r10 + mov r1, r8 + lsls r1, 4 + mov r8, r1 + adds r1, r3, r1 + movs r2, 0x20 + str r3, [sp, 0x8] + bl LoadPalette + lsls r4, 1 + add r4, r10 + mov r2, r9 + lsls r2, 4 + mov r9, r2 + ldr r3, [sp, 0x8] + add r3, r9 + adds r0, r4, 0 + adds r1, r3, 0 + movs r2, 0x20 + bl LoadPalette + ldrb r1, [r6, 0x5] + movs r2, 0xF + adds r0, r2, 0 + ands r0, r1 + mov r3, r8 + orrs r0, r3 + strb r0, [r6, 0x5] + ldr r0, [sp, 0x4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r7 + ldrb r3, [r1, 0x5] + adds r0, r2, 0 + ands r0, r3 + mov r3, r8 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r0, [r5, 0x5] + ands r2, r0 + mov r0, r9 + orrs r2, r0 + strb r2, [r5, 0x5] + ldr r0, [sp] + bl move_anim_task_del + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0813F5D0: .4byte gUnknown_03004340 +_0813F5D4: .4byte gUnknown_0202F7C8 +_0813F5D8: .4byte gSprites +_0813F5DC: .4byte 0x0000d709 +_0813F5E0: .4byte 0x0000d70a +_0813F5E4: .4byte gPlttBufferUnfaded + thumb_func_end sub_813F4EC + + thumb_func_start sub_813F5E8 +sub_813F5E8: @ 813F5E8 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + mov r8, r0 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r1, _0813F684 @ =gUnknown_03004340 + ldr r0, _0813F688 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + ldr r1, _0813F68C @ =gSprites + mov r9, r1 + lsls r5, r0, 4 + adds r5, r0 + lsls r5, 2 + add r5, r9 + ldrb r0, [r5, 0x6] + mov r10, r0 + ldrh r6, [r5, 0x38] + lsls r6, 24 + lsrs r6, 24 + ldr r0, _0813F690 @ =0x0000d709 + bl FreeSpritePaletteByTag + ldr r0, _0813F694 @ =0x0000d70a + bl FreeSpritePaletteByTag + ldr r0, _0813F698 @ =0x0000d6ff + bl IndexOfSpritePaletteTag + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0813F69C @ =0x0000d704 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsls r4, 4 + ldrb r2, [r5, 0x5] + movs r3, 0xF + adds r1, r3, 0 + ands r1, r2 + orrs r1, r4 + strb r1, [r5, 0x5] + mov r1, r10 + lsls r2, r1, 4 + add r2, r10 + lsls r2, 2 + add r2, r9 + ldrb r5, [r2, 0x5] + adds r1, r3, 0 + ands r1, r5 + orrs r1, r4 + strb r1, [r2, 0x5] + lsls r1, r6, 4 + adds r1, r6 + lsls r1, 2 + add r1, r9 + lsrs r0, 20 + ldrb r2, [r1, 0x5] + ands r3, r2 + orrs r3, r0 + strb r3, [r1, 0x5] + mov r0, r8 + bl move_anim_task_del + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0813F684: .4byte gUnknown_03004340 +_0813F688: .4byte gUnknown_0202F7C8 +_0813F68C: .4byte gSprites +_0813F690: .4byte 0x0000d709 +_0813F694: .4byte 0x0000d70a +_0813F698: .4byte 0x0000d6ff +_0813F69C: .4byte 0x0000d704 + thumb_func_end sub_813F5E8 + + thumb_func_start sub_813F6A0 +sub_813F6A0: @ 813F6A0 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0813F6C0 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _0813F6C4 @ =gBattleAnimArgs + ldrh r0, [r2] + strh r0, [r1, 0x1C] + ldrh r0, [r2, 0x2] + strh r0, [r1, 0x1E] + ldr r0, _0813F6C8 @ =sub_813F6CC + str r0, [r1] + bx lr + .align 2, 0 +_0813F6C0: .4byte gTasks +_0813F6C4: .4byte gBattleAnimArgs +_0813F6C8: .4byte sub_813F6CC + thumb_func_end sub_813F6A0 + + thumb_func_start sub_813F6CC +sub_813F6CC: @ 813F6CC + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _0813F718 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + movs r6, 0 + adds r1, r0, 0x1 + strh r1, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x1E + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _0813F78C + strh r6, [r4, 0x8] + ldr r0, _0813F71C @ =0x0000d709 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r2, r0, 24 + movs r3, 0x1C + ldrsh r0, [r4, r3] + movs r1, 0x2 + cmp r0, 0 + bne _0813F70A + movs r1, 0x6 +_0813F70A: + movs r3, 0xA + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _0813F720 + cmp r0, 0x1 + beq _0813F75C + b _0813F78C + .align 2, 0 +_0813F718: .4byte gTasks +_0813F71C: .4byte 0x0000d709 +_0813F720: + ldrh r0, [r4, 0xC] + adds r0, 0x2 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _0813F732 + movs r0, 0x10 + strh r0, [r4, 0xC] +_0813F732: + lsls r0, r2, 4 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2 + orrs r0, r1 + ldrb r2, [r4, 0xC] + ldr r3, _0813F758 @ =0x00007f74 + movs r1, 0x1 + bl BlendPalette + movs r3, 0xC + ldrsh r0, [r4, r3] + cmp r0, 0x10 + bne _0813F78C + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + b _0813F78C + .align 2, 0 +_0813F758: .4byte 0x00007f74 +_0813F75C: + ldrh r0, [r4, 0xC] + subs r0, 0x2 + strh r0, [r4, 0xC] + lsls r0, 16 + cmp r0, 0 + bge _0813F76A + strh r6, [r4, 0xC] +_0813F76A: + lsls r0, r2, 4 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2 + orrs r0, r1 + ldrb r2, [r4, 0xC] + ldr r3, _0813F794 @ =0x00007f74 + movs r1, 0x1 + bl BlendPalette + movs r3, 0xC + ldrsh r0, [r4, r3] + cmp r0, 0 + bne _0813F78C + adds r0, r5, 0 + bl move_anim_task_del +_0813F78C: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0813F794: .4byte 0x00007f74 + thumb_func_end sub_813F6CC + + thumb_func_start sub_813F798 +sub_813F798: @ 813F798 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _0813F7C4 @ =gUnknown_02024BE0 + ldr r0, _0813F7C8 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + adds r0, r1 + ldrb r5, [r0] + ldr r1, _0813F7CC @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _0813F7E6 + cmp r0, 0x1 + bgt _0813F7D0 + cmp r0, 0 + beq _0813F7D6 + b _0813F838 + .align 2, 0 +_0813F7C4: .4byte gUnknown_02024BE0 +_0813F7C8: .4byte gUnknown_0202F7C8 +_0813F7CC: .4byte gTasks +_0813F7D0: + cmp r0, 0x2 + beq _0813F818 + b _0813F838 +_0813F7D6: + adds r0, r5, 0 + movs r1, 0 + bl sub_8078E70 + movs r0, 0x80 + lsls r0, 1 + strh r0, [r4, 0x1C] + b _0813F80A +_0813F7E6: + ldrh r0, [r4, 0x1C] + adds r0, 0x30 + strh r0, [r4, 0x1C] + movs r0, 0x1C + ldrsh r2, [r4, r0] + adds r0, r5, 0 + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + adds r0, r5, 0 + bl sub_8079A64 + movs r0, 0x1C + ldrsh r1, [r4, r0] + ldr r0, _0813F814 @ =0x000002cf + cmp r1, r0 + ble _0813F838 +_0813F80A: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _0813F838 + .align 2, 0 +_0813F814: .4byte 0x000002cf +_0813F818: + adds r0, r5, 0 + bl sub_8078F40 + ldr r1, _0813F840 @ =gSprites + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + adds r0, r6, 0 + bl move_anim_task_del +_0813F838: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0813F840: .4byte gSprites + thumb_func_end sub_813F798 + + thumb_func_start sub_813F844 +sub_813F844: @ 813F844 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xC + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _0813F87C @ =gUnknown_02024BE0 + ldr r4, _0813F880 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + adds r1, r0, r1 + ldrb r1, [r1] + mov r9, r1 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _0813F88C + ldr r1, _0813F884 @ =gUnknown_02024A6A + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0813F888 @ =gPlayerParty + b _0813F89C + .align 2, 0 +_0813F87C: .4byte gUnknown_02024BE0 +_0813F880: .4byte gUnknown_0202F7C8 +_0813F884: .4byte gUnknown_02024A6A +_0813F888: .4byte gPlayerParty +_0813F88C: + ldr r1, _0813F8CC @ =gUnknown_02024A6A + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0813F8D0 @ =gEnemyParty +_0813F89C: + adds r0, r1 + movs r1, 0x26 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + bl ball_number_to_ball_processing_index + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r2, _0813F8D4 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r6, r0, r2 + movs r0, 0x8 + ldrsh r7, [r6, r0] + cmp r7, 0 + beq _0813F8D8 + cmp r7, 0x1 + beq _0813F958 + b _0813F982 + .align 2, 0 +_0813F8CC: .4byte gUnknown_02024A6A +_0813F8D0: .4byte gEnemyParty +_0813F8D4: .4byte gTasks +_0813F8D8: + ldr r5, _0813F950 @ =gUnknown_0202F7C8 + ldrb r0, [r5] + movs r1, 0 + bl sub_8077ABC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8077ABC + adds r1, r0, 0 + lsls r1, 24 + ldr r2, _0813F954 @ =gSprites + mov r3, r9 + lsls r0, r3, 4 + add r0, r9 + lsls r0, 2 + adds r0, r2 + ldrb r2, [r0, 0x5] + lsls r2, 28 + lsrs r2, 30 + adds r0, 0x43 + ldrb r3, [r0] + movs r0, 0x80 + lsls r0, 22 + adds r1, r0 + lsrs r1, 24 + mov r0, r8 + str r0, [sp] + adds r0, r4, 0 + bl sub_814086C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x1C] + str r7, [sp] + str r7, [sp, 0x4] + str r7, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80791A8 + adds r2, r0, 0 + ldrb r1, [r5] + movs r0, 0 + mov r3, r8 + bl sub_8141314 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x1E] + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] + b _0813F982 + .align 2, 0 +_0813F950: .4byte gUnknown_0202F7C8 +_0813F954: .4byte gSprites +_0813F958: + movs r1, 0x1C + ldrsh r0, [r6, r1] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrb r0, [r1, 0x4] + cmp r0, 0 + bne _0813F982 + movs r3, 0x1E + ldrsh r0, [r6, r3] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrb r0, [r1, 0x4] + cmp r0, 0 + bne _0813F982 + adds r0, r5, 0 + bl move_anim_task_del +_0813F982: + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_813F844 + + thumb_func_start sub_813F990 +sub_813F990: @ 813F990 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0813F9B4 @ =gUnknown_02024C04 + ldrh r0, [r0] + bl ball_number_to_ball_processing_index + lsls r0, 24 + lsrs r0, 24 + bl sub_80478DC + adds r0, r4, 0 + bl move_anim_task_del + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813F9B4: .4byte gUnknown_02024C04 + thumb_func_end sub_813F990 + + thumb_func_start sub_813F9B8 +sub_813F9B8: @ 813F9B8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0813F9DC @ =gUnknown_02024C04 + ldrh r0, [r0] + bl ball_number_to_ball_processing_index + lsls r0, 24 + lsrs r0, 24 + bl sub_804794C + adds r0, r4, 0 + bl move_anim_task_del + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813F9DC: .4byte gUnknown_02024C04 + thumb_func_end sub_813F9B8 + + thumb_func_start sub_813F9E0 +sub_813F9E0: @ 813F9E0 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _0813F9F4 @ =0x02017840 + ldrb r0, [r0, 0x8] + cmp r0, 0x5 + bne _0813FA00 + ldr r1, _0813F9F8 @ =gBattleAnimArgs + ldr r0, _0813F9FC @ =0x0000ffff + b _0813FA04 + .align 2, 0 +_0813F9F4: .4byte 0x02017840 +_0813F9F8: .4byte gBattleAnimArgs +_0813F9FC: .4byte 0x0000ffff +_0813FA00: + ldr r1, _0813FA10 @ =gBattleAnimArgs + movs r0, 0 +_0813FA04: + strh r0, [r1, 0xE] + adds r0, r2, 0 + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_0813FA10: .4byte gBattleAnimArgs + thumb_func_end sub_813F9E0 + + thumb_func_start ball_number_to_ball_processing_index +ball_number_to_ball_processing_index: @ 813FA14 + push {lr} + lsls r0, 16 + lsrs r0, 16 + subs r0, 0x1 + cmp r0, 0xB + bhi _0813FA8C + lsls r0, 2 + ldr r1, _0813FA2C @ =_0813FA30 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813FA2C: .4byte _0813FA30 + .align 2, 0 +_0813FA30: + .4byte _0813FA60 + .4byte _0813FA64 + .4byte _0813FA68 + .4byte _0813FA8C + .4byte _0813FA6C + .4byte _0813FA70 + .4byte _0813FA74 + .4byte _0813FA78 + .4byte _0813FA7C + .4byte _0813FA80 + .4byte _0813FA84 + .4byte _0813FA88 +_0813FA60: + movs r0, 0x4 + b _0813FA8E +_0813FA64: + movs r0, 0x3 + b _0813FA8E +_0813FA68: + movs r0, 0x1 + b _0813FA8E +_0813FA6C: + movs r0, 0x2 + b _0813FA8E +_0813FA70: + movs r0, 0x5 + b _0813FA8E +_0813FA74: + movs r0, 0x6 + b _0813FA8E +_0813FA78: + movs r0, 0x7 + b _0813FA8E +_0813FA7C: + movs r0, 0x8 + b _0813FA8E +_0813FA80: + movs r0, 0x9 + b _0813FA8E +_0813FA84: + movs r0, 0xA + b _0813FA8E +_0813FA88: + movs r0, 0xB + b _0813FA8E +_0813FA8C: + movs r0, 0 +_0813FA8E: + pop {r1} + bx r1 + thumb_func_end ball_number_to_ball_processing_index + + thumb_func_start sub_813FA94 +sub_813FA94: @ 813FA94 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + mov r10, r0 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r0, _0813FB58 @ =gUnknown_02024C04 + ldrh r0, [r0] + bl ball_number_to_ball_processing_index + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + ldr r1, _0813FB5C @ =gSpriteTemplate_820AAB4 + adds r0, r1 + movs r1, 0x20 + movs r2, 0x50 + movs r3, 0x1D + bl CreateSprite + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r1, _0813FB60 @ =gSprites + mov r9, r1 + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + adds r6, r4, r1 + movs r0, 0x22 + strh r0, [r6, 0x2E] + ldr r2, _0813FB64 @ =gUnknown_0202F7C9 + mov r8, r2 + ldrb r0, [r2] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x30] + mov r1, r8 + ldrb r0, [r1] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x10 + strh r0, [r6, 0x32] + mov r0, r9 + adds r0, 0x1C + adds r4, r0 + ldr r0, _0813FB68 @ =sub_813FD90 + str r0, [r4] + ldr r3, _0813FB6C @ =0x02017840 + ldr r1, _0813FB70 @ =gUnknown_02024BE0 + mov r2, r8 + ldrb r0, [r2] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r9 + adds r0, 0x3E + ldrb r1, [r0] + lsls r1, 29 + lsrs r1, 31 + lsls r1, 1 + ldrb r2, [r3, 0x9] + movs r0, 0x3 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x9] + ldr r1, _0813FB74 @ =gTasks + mov r2, r10 + lsls r0, r2, 2 + add r0, r10 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x8] + ldr r1, _0813FB78 @ =sub_813FB7C + str r1, [r0] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0813FB58: .4byte gUnknown_02024C04 +_0813FB5C: .4byte gSpriteTemplate_820AAB4 +_0813FB60: .4byte gSprites +_0813FB64: .4byte gUnknown_0202F7C9 +_0813FB68: .4byte sub_813FD90 +_0813FB6C: .4byte 0x02017840 +_0813FB70: .4byte gUnknown_02024BE0 +_0813FB74: .4byte gTasks +_0813FB78: .4byte sub_813FB7C + thumb_func_end sub_813FA94 + + thumb_func_start sub_813FB7C +sub_813FB7C: @ 813FB7C + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, _0813FBAC @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + ldrb r1, [r0, 0x8] + ldr r2, _0813FBB0 @ =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x2E] + ldr r0, _0813FBB4 @ =0x0000ffff + cmp r1, r0 + bne _0813FBA6 + adds r0, r3, 0 + bl move_anim_task_del +_0813FBA6: + pop {r0} + bx r0 + .align 2, 0 +_0813FBAC: .4byte gTasks +_0813FBB0: .4byte gSprites +_0813FBB4: .4byte 0x0000ffff + thumb_func_end sub_813FB7C + + thumb_func_start sub_813FBB8 +sub_813FBB8: @ 813FBB8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _0813FBD8 @ =gBattleTypeFlags + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _0813FBDC + movs r6, 0x20 + movs r5, 0xB + b _0813FBE0 + .align 2, 0 +_0813FBD8: .4byte gBattleTypeFlags +_0813FBDC: + movs r6, 0x17 + movs r5, 0x5 +_0813FBE0: + ldr r0, _0813FC9C @ =gUnknown_02024C04 + ldrh r0, [r0] + bl ball_number_to_ball_processing_index + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + bl sub_8079E90 + adds r3, r0, 0 + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 3 + ldr r1, _0813FCA0 @ =gSpriteTemplate_820AAB4 + adds r0, r1 + adds r1, r6, 0 + adds r1, 0x20 + movs r2, 0x50 + orrs r5, r2 + adds r2, r5, 0 + bl CreateSprite + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _0813FCA4 @ =gSprites + mov r9, r0 + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + adds r6, r4, r0 + movs r0, 0x22 + strh r0, [r6, 0x2E] + ldr r1, _0813FCA8 @ =gUnknown_0202F7C9 + mov r8, r1 + ldrb r0, [r1] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x30] + mov r1, r8 + ldrb r0, [r1] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x10 + strh r0, [r6, 0x32] + mov r0, r9 + adds r0, 0x1C + adds r4, r0 + ldr r0, _0813FCAC @ =SpriteCallbackDummy + str r0, [r4] + movs r0, 0 + bl battle_get_side_with_given_state + ldr r1, _0813FCB0 @ =gUnknown_02024BE0 + lsls r0, 24 + lsrs r0, 24 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r9 + movs r1, 0x1 + bl StartSpriteAnim + ldr r1, _0813FCB4 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x8] + ldr r1, _0813FCB8 @ =sub_813FCBC + str r1, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0813FC9C: .4byte gUnknown_02024C04 +_0813FCA0: .4byte gSpriteTemplate_820AAB4 +_0813FCA4: .4byte gSprites +_0813FCA8: .4byte gUnknown_0202F7C9 +_0813FCAC: .4byte SpriteCallbackDummy +_0813FCB0: .4byte gUnknown_02024BE0 +_0813FCB4: .4byte gTasks +_0813FCB8: .4byte sub_813FCBC + thumb_func_end sub_813FBB8 + + thumb_func_start sub_813FCBC +sub_813FCBC: @ 813FCBC + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r6, _0813FD1C @ =gSprites + movs r0, 0 + bl battle_get_side_with_given_state + ldr r1, _0813FD20 @ =gUnknown_02024BE0 + lsls r0, 24 + lsrs r0, 24 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x2B + ldrb r0, [r0] + cmp r0, 0x1 + bne _0813FD16 + movs r0, 0x3D + movs r1, 0 + bl PlaySE12WithPanning + ldr r0, _0813FD24 @ =gTasks + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r6, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _0813FD28 @ =sub_813FD90 + str r1, [r0] + ldr r0, _0813FD2C @ =sub_813FD34 + movs r1, 0xA + bl CreateTask + ldr r0, _0813FD30 @ =sub_813FB7C + str r0, [r4] +_0813FD16: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0813FD1C: .4byte gSprites +_0813FD20: .4byte gUnknown_02024BE0 +_0813FD24: .4byte gTasks +_0813FD28: .4byte sub_813FD90 +_0813FD2C: .4byte sub_813FD34 +_0813FD30: .4byte sub_813FB7C + thumb_func_end sub_813FCBC + + thumb_func_start sub_813FD34 +sub_813FD34: @ 813FD34 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r6, _0813FD88 @ =gSprites + movs r0, 0 + bl battle_get_side_with_given_state + ldr r4, _0813FD8C @ =gUnknown_02024BE0 + lsls r0, 24 + lsrs r0, 24 + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 27 + cmp r0, 0 + bge _0813FD80 + movs r0, 0 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0 + bl StartSpriteAnim + adds r0, r5, 0 + bl DestroyTask +_0813FD80: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0813FD88: .4byte gSprites +_0813FD8C: .4byte gUnknown_02024BE0 + thumb_func_end sub_813FD34 + + thumb_func_start sub_813FD90 +sub_813FD90: @ 813FD90 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x30] + ldrh r2, [r4, 0x32] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + strh r1, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + strh r2, [r4, 0x36] + ldr r0, _0813FDB8 @ =0x0000ffd8 + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_80786EC + ldr r0, _0813FDBC @ =sub_813FDC0 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813FDB8: .4byte 0x0000ffd8 +_0813FDBC: .4byte sub_813FDC0 + thumb_func_end sub_813FD90 + + thumb_func_start sub_813FDC0 +sub_813FDC0: @ 813FDC0 + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _0813FE5A + ldr r0, _0813FDE0 @ =0x02017840 + ldrb r0, [r0, 0x8] + cmp r0, 0x5 + bne _0813FDE8 + ldr r0, _0813FDE4 @ =sub_81407B8 + str r0, [r4, 0x1C] + b _0813FE5A + .align 2, 0 +_0813FDE0: .4byte 0x02017840 +_0813FDE4: .4byte sub_81407B8 +_0813FDE8: + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x26] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + strh r1, [r4, 0x24] + strh r1, [r4, 0x26] + adds r1, r4, 0 + adds r1, 0x2E + movs r2, 0 + adds r0, r4, 0 + adds r0, 0x3C +_0813FE10: + strh r2, [r0] + subs r0, 0x2 + cmp r0, r1 + bge _0813FE10 + movs r0, 0 + strh r0, [r4, 0x38] + ldr r0, _0813FE64 @ =sub_813FE70 + str r0, [r4, 0x1C] + ldr r0, _0813FE68 @ =gUnknown_02024C04 + ldrh r0, [r0] + bl ball_number_to_ball_processing_index + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xB + bgt _0813FE5A + cmp r5, 0 + blt _0813FE5A + ldrh r0, [r4, 0x20] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x22] + subs r1, 0x5 + lsls r1, 24 + lsrs r1, 24 + str r5, [sp] + movs r2, 0x1 + movs r3, 0x1C + bl sub_814086C + ldr r0, _0813FE6C @ =gUnknown_0202F7C9 + ldrb r1, [r0] + movs r0, 0 + movs r2, 0xE + adds r3, r5, 0 + bl sub_8141314 +_0813FE5A: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0813FE64: .4byte sub_813FE70 +_0813FE68: .4byte gUnknown_02024C04 +_0813FE6C: .4byte gUnknown_0202F7C9 + thumb_func_end sub_813FDC0 + + thumb_func_start sub_813FE70 +sub_813FE70: @ 813FE70 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _0813FEAC + ldr r0, _0813FEB4 @ =TaskDummy + movs r1, 0x32 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x38] + ldr r0, _0813FEB8 @ =sub_813FEC8 + str r0, [r4, 0x1C] + ldr r2, _0813FEBC @ =gSprites + ldr r1, _0813FEC0 @ =gUnknown_02024BE0 + ldr r0, _0813FEC4 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strh r1, [r0, 0x30] +_0813FEAC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813FEB4: .4byte TaskDummy +_0813FEB8: .4byte sub_813FEC8 +_0813FEBC: .4byte gSprites +_0813FEC0: .4byte gUnknown_02024BE0 +_0813FEC4: .4byte gUnknown_0202F7C9 + thumb_func_end sub_813FE70 + + thumb_func_start sub_813FEC8 +sub_813FEC8: @ 813FEC8 + push {r4-r7,lr} + adds r7, r0, 0 + ldr r1, _0813FF0C @ =gUnknown_02024BE0 + ldr r0, _0813FF10 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + adds r0, r1 + ldrb r4, [r0] + ldrh r0, [r7, 0x38] + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _0813FF14 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB + bne _0813FEFA + movs r0, 0x3C + bl PlaySE +_0813FEFA: + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _0813FF70 + cmp r0, 0x1 + bgt _0813FF18 + cmp r0, 0 + beq _0813FF1E + b _0813FFDC + .align 2, 0 +_0813FF0C: .4byte gUnknown_02024BE0 +_0813FF10: .4byte gUnknown_0202F7C9 +_0813FF14: .4byte gTasks +_0813FF18: + cmp r0, 0x2 + beq _0813FFB4 + b _0813FFDC +_0813FF1E: + adds r0, r4, 0 + movs r1, 0 + bl sub_8078E70 + movs r0, 0x80 + lsls r0, 1 + strh r0, [r5, 0x1C] + ldr r1, _0813FF60 @ =gUnknown_03005F0C + movs r0, 0x1C + str r0, [r1] + ldr r2, _0813FF64 @ =gUnknown_03005F14 + ldr r1, _0813FF68 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r1, r0 + ldrh r0, [r7, 0x26] + ldrh r7, [r7, 0x22] + adds r0, r7 + subs r1, r0 + strh r1, [r2] + ldr r4, _0813FF6C @ =gUnknown_03005F10 + ldrh r0, [r2] + lsls r0, 8 + movs r1, 0x1C + bl __udivsi3 + strh r0, [r4] + strh r0, [r5, 0xC] + b _0813FFCE + .align 2, 0 +_0813FF60: .4byte gUnknown_03005F0C +_0813FF64: .4byte gUnknown_03005F14 +_0813FF68: .4byte gSprites +_0813FF6C: .4byte gUnknown_03005F10 +_0813FF70: + ldrh r0, [r5, 0x1C] + adds r0, 0x20 + strh r0, [r5, 0x1C] + movs r0, 0x1C + ldrsh r2, [r5, r0] + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrh r0, [r5, 0xC] + ldrh r1, [r5, 0xE] + adds r0, r1 + strh r0, [r5, 0xE] + ldr r0, _0813FFAC @ =gSprites + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + movs r2, 0xE + ldrsh r0, [r5, r2] + negs r0, r0 + asrs r0, 8 + strh r0, [r1, 0x26] + movs r0, 0x1C + ldrsh r1, [r5, r0] + ldr r0, _0813FFB0 @ =0x0000047f + cmp r1, r0 + ble _08140004 + b _0813FFCE + .align 2, 0 +_0813FFAC: .4byte gSprites +_0813FFB0: .4byte 0x0000047f +_0813FFB4: + adds r0, r4, 0 + bl sub_8078F40 + ldr r1, _0813FFD8 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_0813FFCE: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _08140004 + .align 2, 0 +_0813FFD8: .4byte gSprites +_0813FFDC: + ldr r0, _0814000C @ =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + movs r2, 0xA + ldrsh r0, [r1, r2] + cmp r0, 0xA + ble _08140004 + adds r0, r6, 0 + bl DestroyTask + adds r0, r7, 0 + movs r1, 0x2 + bl StartSpriteAnim + movs r0, 0 + strh r0, [r7, 0x38] + ldr r0, _08140010 @ =sub_8140014 + str r0, [r7, 0x1C] +_08140004: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0814000C: .4byte gTasks +_08140010: .4byte sub_8140014 + thumb_func_end sub_813FEC8 + + thumb_func_start sub_8140014 +sub_8140014: @ 8140014 + push {r4,lr} + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0814004E + movs r1, 0 + strh r1, [r4, 0x34] + movs r0, 0x20 + strh r0, [r4, 0x36] + strh r1, [r4, 0x38] + movs r0, 0 + movs r1, 0x20 + bl Cos + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + movs r0, 0x36 + ldrsh r1, [r4, r0] + movs r0, 0 + bl Cos + negs r0, r0 + strh r0, [r4, 0x26] + ldr r0, _08140054 @ =sub_8140058 + str r0, [r4, 0x1C] +_0814004E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08140054: .4byte sub_8140058 + thumb_func_end sub_8140014 + + thumb_func_start sub_8140058 +sub_8140058: @ 8140058 + push {r4,r5,lr} + adds r4, r0, 0 + movs r5, 0 + ldrh r0, [r4, 0x34] + movs r1, 0xFF + ands r1, r0 + cmp r1, 0 + beq _0814006E + cmp r1, 0x1 + beq _081400E2 + b _0814010E +_0814006E: + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl Cos + negs r0, r0 + strh r0, [r4, 0x26] + ldrh r1, [r4, 0x38] + adds r1, 0x4 + ldrh r2, [r4, 0x34] + lsls r0, r2, 16 + asrs r0, 24 + adds r1, r0 + strh r1, [r4, 0x38] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x3F + ble _0814010E + ldrh r0, [r4, 0x36] + subs r0, 0xA + strh r0, [r4, 0x36] + ldr r1, _081400B8 @ =0x00000101 + adds r0, r2, r1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 24 + cmp r0, 0x4 + bne _081400AA + movs r5, 0x1 +_081400AA: + cmp r0, 0x2 + beq _081400CA + cmp r0, 0x2 + bgt _081400BC + cmp r0, 0x1 + beq _081400C2 + b _081400DA + .align 2, 0 +_081400B8: .4byte 0x00000101 +_081400BC: + cmp r0, 0x3 + beq _081400D2 + b _081400DA +_081400C2: + movs r0, 0x38 + bl PlaySE + b _0814010E +_081400CA: + movs r0, 0x39 + bl PlaySE + b _0814010E +_081400D2: + movs r0, 0x3A + bl PlaySE + b _0814010E +_081400DA: + movs r0, 0x3B + bl PlaySE + b _0814010E +_081400E2: + movs r2, 0x38 + ldrsh r0, [r4, r2] + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl Cos + negs r0, r0 + strh r0, [r4, 0x26] + ldrh r1, [r4, 0x38] + subs r1, 0x4 + ldrh r2, [r4, 0x34] + lsls r0, r2, 16 + asrs r0, 24 + subs r1, r0 + strh r1, [r4, 0x38] + lsls r1, 16 + cmp r1, 0 + bgt _0814010E + strh r5, [r4, 0x38] + ldr r0, _08140138 @ =0xffffff00 + ands r0, r2 + strh r0, [r4, 0x34] +_0814010E: + cmp r5, 0 + beq _0814014E + movs r5, 0 + strh r5, [r4, 0x34] + movs r0, 0x40 + movs r1, 0x20 + bl Cos + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + strh r5, [r4, 0x26] + ldr r0, _0814013C @ =0x02017840 + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _08140144 + strh r5, [r4, 0x38] + ldr r0, _08140140 @ =sub_8140410 + str r0, [r4, 0x1C] + b _0814014E + .align 2, 0 +_08140138: .4byte 0xffffff00 +_0814013C: .4byte 0x02017840 +_08140140: .4byte sub_8140410 +_08140144: + ldr r0, _08140154 @ =sub_8140158 + str r0, [r4, 0x1C] + movs r0, 0x1 + strh r0, [r4, 0x36] + strh r5, [r4, 0x38] +_0814014E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08140154: .4byte sub_8140158 + thumb_func_end sub_8140058 + + thumb_func_start sub_8140158 +sub_8140158: @ 8140158 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x34] + adds r0, 0x1 + movs r5, 0 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + bne _08140190 + strh r5, [r4, 0x34] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r0, _08140198 @ =0x02017840 + strh r5, [r0, 0xC] + ldr r0, _0814019C @ =sub_81401A0 + str r0, [r4, 0x1C] + movs r0, 0x17 + bl PlaySE +_08140190: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08140198: .4byte 0x02017840 +_0814019C: .4byte sub_81401A0 + thumb_func_end sub_8140158 + + thumb_func_start sub_81401A0 +sub_81401A0: @ 81401A0 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x34] + movs r1, 0xFF + ands r1, r0 + cmp r1, 0x6 + bls _081401B0 + b _081403C4 +_081401B0: + lsls r0, r1, 2 + ldr r1, _081401BC @ =_081401C0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081401BC: .4byte _081401C0 + .align 2, 0 +_081401C0: + .4byte _081401DC + .4byte _08140226 + .4byte _0814026C + .4byte _081402C0 + .4byte _08140310 + .4byte _08140368 + .4byte _081403C4 +_081401DC: + ldr r0, _081401F8 @ =0x02017840 + ldrh r2, [r0, 0xC] + movs r3, 0xC + ldrsh r1, [r0, r3] + adds r5, r0, 0 + cmp r1, 0xFF + ble _081401FC + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r0, 0xFF + ands r0, r2 + b _08140200 + .align 2, 0 +_081401F8: .4byte 0x02017840 +_081401FC: + adds r0, r2, 0 + adds r0, 0xB0 +_08140200: + strh r0, [r5, 0xC] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + movs r3, 0 + strh r0, [r4, 0x38] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x38] + adds r0, 0x7 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xE + bhi _08140224 + b _0814040A +_08140224: + b _081402B4 +_08140226: + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _081402CC + movs r0, 0 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x36] + negs r0, r0 + strh r0, [r4, 0x36] + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + movs r3, 0x36 + ldrsh r0, [r4, r3] + cmp r0, 0 + bge _08140262 + adds r0, r4, 0 + movs r1, 0x2 + bl ChangeSpriteAffineAnim + b _0814040A +_08140262: + adds r0, r4, 0 + movs r1, 0x1 + bl ChangeSpriteAffineAnim + b _0814040A +_0814026C: + ldr r0, _08140288 @ =0x02017840 + ldrh r2, [r0, 0xC] + movs r3, 0xC + ldrsh r1, [r0, r3] + adds r5, r0, 0 + cmp r1, 0xFF + ble _0814028C + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r0, 0xFF + ands r0, r2 + b _08140290 + .align 2, 0 +_08140288: .4byte 0x02017840 +_0814028C: + adds r0, r2, 0 + adds r0, 0xB0 +_08140290: + strh r0, [r5, 0xC] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + movs r3, 0 + strh r0, [r4, 0x38] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x38] + adds r0, 0xC + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x18 + bhi _081402B4 + b _0814040A +_081402B4: + strh r3, [r5, 0xC] + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + strh r3, [r4, 0x38] + b _0814040A +_081402C0: + ldrh r0, [r4, 0x38] + adds r1, r0, 0x1 + strh r1, [r4, 0x38] + lsls r0, 16 + cmp r0, 0 + bge _081402DA +_081402CC: + adds r0, r4, 0 + adds r0, 0x2C + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] + b _0814040A +_081402DA: + movs r0, 0 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x36] + negs r0, r0 + strh r0, [r4, 0x36] + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + movs r3, 0x36 + ldrsh r0, [r4, r3] + cmp r0, 0 + bge _08140308 + adds r0, r4, 0 + movs r1, 0x2 + bl ChangeSpriteAffineAnim + b _08140310 +_08140308: + adds r0, r4, 0 + movs r1, 0x1 + bl ChangeSpriteAffineAnim +_08140310: + ldr r0, _0814032C @ =0x02017840 + ldrh r2, [r0, 0xC] + movs r3, 0xC + ldrsh r1, [r0, r3] + adds r5, r0, 0 + cmp r1, 0xFF + ble _08140330 + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r0, 0xFF + ands r0, r2 + b _08140334 + .align 2, 0 +_0814032C: .4byte 0x02017840 +_08140330: + adds r0, r2, 0 + adds r0, 0xB0 +_08140334: + strh r0, [r5, 0xC] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + movs r3, 0 + strh r0, [r4, 0x38] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x38] + adds r0, 0x4 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x8 + bls _0814040A + strh r3, [r5, 0xC] + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + strh r3, [r4, 0x38] + ldrh r0, [r4, 0x36] + negs r0, r0 + strh r0, [r4, 0x36] + b _0814040A +_08140368: + movs r3, 0x80 + lsls r3, 1 + adds r0, r3, 0 + ldrh r1, [r4, 0x34] + adds r0, r1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r1, r0, 24 + ldr r0, _08140394 @ =0x02017840 + ldrb r0, [r0, 0x8] + cmp r1, r0 + bne _0814039C + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08140398 @ =sub_8140410 + str r0, [r4, 0x1C] + b _0814040A + .align 2, 0 +_08140394: .4byte 0x02017840 +_08140398: .4byte sub_8140410 +_0814039C: + cmp r0, 0x4 + bne _081403B0 + cmp r1, 0x3 + bne _081403B0 + ldr r0, _081403AC @ =sub_8140434 + str r0, [r4, 0x1C] + b _081403B6 + .align 2, 0 +_081403AC: .4byte sub_8140434 +_081403B0: + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] +_081403B6: + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + b _0814040A +_081403C4: + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + bne _0814040A + movs r0, 0 + strh r0, [r4, 0x38] + ldrh r1, [r4, 0x34] + ldr r0, _081403F8 @ =0xffffff00 + ands r0, r1 + strh r0, [r4, 0x34] + adds r0, r4, 0 + movs r1, 0x3 + bl StartSpriteAffineAnim + movs r3, 0x36 + ldrsh r0, [r4, r3] + cmp r0, 0 + bge _081403FC + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + b _08140404 + .align 2, 0 +_081403F8: .4byte 0xffffff00 +_081403FC: + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_08140404: + movs r0, 0x17 + bl PlaySE +_0814040A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81401A0 + + thumb_func_start sub_8140410 +sub_8140410: @ 8140410 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x38] + adds r0, 0x1 + strh r0, [r1, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + bne _0814042A + movs r0, 0 + strh r0, [r1, 0x38] + ldr r0, _08140430 @ =sub_81405F4 + str r0, [r1, 0x1C] +_0814042A: + pop {r0} + bx r0 + .align 2, 0 +_08140430: .4byte sub_81405F4 + thumb_func_end sub_8140410 + + thumb_func_start sub_8140434 +sub_8140434: @ 8140434 + adds r3, r0, 0 + adds r3, 0x2C + ldrb r1, [r3] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r3] + ldr r1, _08140450 @ =sub_8140454 + str r1, [r0, 0x1C] + movs r1, 0 + strh r1, [r0, 0x34] + strh r1, [r0, 0x36] + strh r1, [r0, 0x38] + bx lr + .align 2, 0 +_08140450: .4byte sub_8140454 + thumb_func_end sub_8140434 + + thumb_func_start sub_8140454 +sub_8140454: @ 8140454 + push {r4-r7,lr} + adds r6, r0, 0 + ldr r7, _08140484 @ =gUnknown_0202F7C9 + ldrh r0, [r6, 0x36] + adds r0, 0x1 + strh r0, [r6, 0x36] + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0x28 + beq _081404CC + cmp r1, 0x5F + bne _08140490 + ldr r0, _08140488 @ =gUnknown_02024E6D + movs r1, 0 + strb r1, [r0] + movs r0, 0x1 + bl sub_8043EB4 + bl m4aMPlayAllStop + ldr r0, _0814048C @ =0x00000173 + bl PlaySE + b _081404CC + .align 2, 0 +_08140484: .4byte gUnknown_0202F7C9 +_08140488: .4byte gUnknown_02024E6D +_0814048C: .4byte 0x00000173 +_08140490: + ldr r0, _081404D4 @ =0x0000013b + cmp r1, r0 + bne _081404CC + ldr r5, _081404D8 @ =gSprites + ldr r4, _081404DC @ =gUnknown_02024BE0 + ldrb r0, [r7] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r0, [r7] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl DestroySprite + movs r0, 0 + strh r0, [r6, 0x2E] + ldr r0, _081404E0 @ =sub_81404E4 + str r0, [r6, 0x1C] +_081404CC: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081404D4: .4byte 0x0000013b +_081404D8: .4byte gSprites +_081404DC: .4byte gUnknown_02024BE0 +_081404E0: .4byte sub_81404E4 + thumb_func_end sub_8140454 + + thumb_func_start sub_81404E4 +sub_81404E4: @ 81404E4 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _08140550 + cmp r0, 0x1 + bgt _081404FC + cmp r0, 0 + beq _08140502 + b _08140594 +_081404FC: + cmp r0, 0x2 + beq _08140580 + b _08140594 +_08140502: + strh r0, [r4, 0x30] + strh r0, [r4, 0x32] + ldrb r1, [r4, 0x1] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r4, 0x1] + ldr r1, _08140548 @ =REG_BLDCNT + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x10 + strh r0, [r1] + ldr r0, [r4, 0x14] + ldrh r0, [r0, 0x2] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + movs r1, 0x1 + lsls r1, r0 + ldr r0, _0814054C @ =0x00007fff + str r0, [sp] + adds r0, r1, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _0814058C + .align 2, 0 +_08140548: .4byte REG_BLDCNT +_0814054C: .4byte 0x00007fff +_08140550: + ldrh r0, [r4, 0x30] + adds r1, r0, 0x1 + strh r1, [r4, 0x30] + lsls r0, 16 + cmp r0, 0 + ble _081405B2 + movs r0, 0 + strh r0, [r4, 0x30] + ldrh r1, [r4, 0x32] + adds r1, 0x1 + strh r1, [r4, 0x32] + ldr r3, _0814057C @ =REG_BLDALPHA + lsls r2, r1, 8 + movs r0, 0x10 + subs r0, r1 + orrs r2, r0 + strh r2, [r3] + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0x10 + bne _081405B2 + b _0814058C + .align 2, 0 +_0814057C: .4byte REG_BLDALPHA +_08140580: + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_0814058C: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _081405B2 +_08140594: + ldr r0, _081405BC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _081405B2 + ldr r0, _081405C0 @ =REG_BLDCNT + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + strh r1, [r4, 0x2E] + ldr r0, _081405C4 @ =sub_81405C8 + str r0, [r4, 0x1C] +_081405B2: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081405BC: .4byte gPaletteFade +_081405C0: .4byte REG_BLDCNT +_081405C4: .4byte sub_81405C8 + thumb_func_end sub_81404E4 + + thumb_func_start sub_81405C8 +sub_81405C8: @ 81405C8 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _081405E0 + ldr r0, _081405DC @ =0x0000ffff + strh r0, [r4, 0x2E] + b _081405EC + .align 2, 0 +_081405DC: .4byte 0x0000ffff +_081405E0: + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite +_081405EC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81405C8 + + thumb_func_start sub_81405F4 +sub_81405F4: @ 81405F4 + push {r4-r6,lr} + sub sp, 0x4 + adds r4, r0, 0 + movs r1, 0x1 + bl StartSpriteAnim + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAffineAnim + ldr r0, _081406A8 @ =sub_81406BC + str r0, [r4, 0x1C] + ldr r0, _081406AC @ =gUnknown_02024C04 + ldrh r0, [r0] + bl ball_number_to_ball_processing_index + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xB + bgt _08140646 + cmp r5, 0 + blt _08140646 + ldrh r0, [r4, 0x20] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x22] + subs r1, 0x5 + lsls r1, 24 + lsrs r1, 24 + str r5, [sp] + movs r2, 0x1 + movs r3, 0x1C + bl sub_814086C + ldr r0, _081406B0 @ =gUnknown_0202F7C9 + ldrb r1, [r0] + movs r0, 0x1 + movs r2, 0xE + adds r3, r5, 0 + bl sub_8141314 +_08140646: + ldr r6, _081406B4 @ =gSprites + ldr r5, _081406B8 @ =gUnknown_02024BE0 + ldr r4, _081406B0 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl AnimateSprite + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x80 + lsls r1, 5 + strh r1, [r0, 0x30] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081406A8: .4byte sub_81406BC +_081406AC: .4byte gUnknown_02024C04 +_081406B0: .4byte gUnknown_0202F7C9 +_081406B4: .4byte gSprites +_081406B8: .4byte gUnknown_02024BE0 + thumb_func_end sub_81405F4 + + thumb_func_start sub_81406BC +sub_81406BC: @ 81406BC + push {r4-r7,lr} + adds r7, r0, 0 + movs r5, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _081406DA + adds r2, r7, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_081406DA: + ldr r4, _08140708 @ =gSprites + ldr r3, _0814070C @ =gUnknown_02024BE0 + ldr r2, _08140710 @ =gUnknown_0202F7C9 + ldrb r0, [r2] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r4 + adds r0, r1, 0 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 26 + cmp r0, 0 + bge _08140714 + adds r0, r1, 0 + movs r1, 0 + bl StartSpriteAffineAnim + movs r5, 0x1 + b _08140734 + .align 2, 0 +_08140708: .4byte gSprites +_0814070C: .4byte gUnknown_02024BE0 +_08140710: .4byte gUnknown_0202F7C9 +_08140714: + ldr r6, _0814079C @ =0xfffffee0 + adds r0, r6, 0 + ldrh r6, [r1, 0x30] + adds r0, r6 + strh r0, [r1, 0x30] + ldrb r0, [r2] + adds r0, r3 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 24 + strh r0, [r1, 0x26] +_08140734: + adds r0, r7, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08140796 + cmp r5, 0 + beq _08140796 + ldr r4, _081407A0 @ =gSprites + ldr r3, _081407A4 @ =gUnknown_02024BE0 + ldr r2, _081407A8 @ =gUnknown_0202F7C9 + ldrb r0, [r2] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r6, 0 + movs r5, 0 + strh r5, [r0, 0x26] + ldrb r0, [r2] + adds r0, r3 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r4 + ldr r0, _081407AC @ =0x02017840 + ldrb r1, [r0, 0x9] + lsls r1, 30 + adds r2, 0x3E + lsrs r1, 31 + lsls r1, 2 + ldrb r3, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + strh r5, [r7, 0x2E] + ldr r0, _081407B0 @ =sub_81405C8 + str r0, [r7, 0x1C] + ldr r0, _081407B4 @ =gUnknown_02024E6D + strb r6, [r0] + movs r0, 0x1 + bl sub_8043EB4 +_08140796: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0814079C: .4byte 0xfffffee0 +_081407A0: .4byte gSprites +_081407A4: .4byte gUnknown_02024BE0 +_081407A8: .4byte gUnknown_0202F7C9 +_081407AC: .4byte 0x02017840 +_081407B0: .4byte sub_81405C8 +_081407B4: .4byte gUnknown_02024E6D + thumb_func_end sub_81406BC + + thumb_func_start sub_81407B8 +sub_81407B8: @ 81407B8 + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x24] + ldrh r1, [r2, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r2, 0x20] + ldrh r0, [r2, 0x26] + ldrh r3, [r2, 0x22] + adds r0, r3 + strh r0, [r2, 0x22] + strh r1, [r2, 0x26] + strh r1, [r2, 0x24] + ldr r4, _081407F0 @ =sub_81407F4 + movs r3, 0 + movs r1, 0x5 + adds r0, r2, 0 + adds r0, 0x38 +_081407DC: + strh r3, [r0] + subs r0, 0x2 + subs r1, 0x1 + cmp r1, 0 + bge _081407DC + str r4, [r2, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081407F0: .4byte sub_81407F4 + thumb_func_end sub_81407B8 + + thumb_func_start sub_81407F4 +sub_81407F4: @ 81407F4 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x80 + lsls r0, 4 + adds r2, r0, 0 + ldrh r1, [r4, 0x2E] + adds r2, r1 + movs r0, 0xD0 + lsls r0, 3 + adds r3, r0, 0 + ldrh r1, [r4, 0x30] + adds r3, r1 + lsls r1, r3, 16 + asrs r1, 24 + ldrh r0, [r4, 0x24] + subs r0, r1 + strh r0, [r4, 0x24] + lsls r0, r2, 16 + asrs r0, 24 + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + movs r0, 0xFF + ands r2, r0 + strh r2, [r4, 0x2E] + ands r3, r0 + strh r3, [r4, 0x30] + movs r2, 0x22 + ldrsh r0, [r4, r2] + movs r2, 0x26 + ldrsh r1, [r4, r2] + adds r0, r1 + cmp r0, 0xA0 + bgt _0814084A + movs r1, 0x20 + ldrsh r0, [r4, r1] + movs r2, 0x24 + ldrsh r1, [r4, r2] + adds r0, r1 + movs r1, 0x8 + negs r1, r1 + cmp r0, r1 + bge _0814085E +_0814084A: + movs r0, 0 + strh r0, [r4, 0x2E] + ldr r0, _08140864 @ =sub_81405C8 + str r0, [r4, 0x1C] + ldr r1, _08140868 @ =gUnknown_02024E6D + movs r0, 0 + strb r0, [r1] + movs r0, 0x1 + bl sub_8043EB4 +_0814085E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08140864: .4byte sub_81405C8 +_08140868: .4byte gUnknown_02024E6D + thumb_func_end sub_81407F4 + + thumb_func_start sub_814086C +sub_814086C: @ 814086C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r4, [sp, 0x20] + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + lsls r3, 24 + lsrs r7, r3, 24 + lsls r4, 24 + lsrs r4, 24 + adds r5, r4, 0 + ldr r0, _08140910 @ =gUnknown_0840B258 + lsls r6, r5, 3 + adds r4, r6, r0 + ldrh r0, [r4, 0x6] + bl GetSpriteTileStartByTag + lsls r0, 16 + ldr r1, _08140914 @ =0xffff0000 + cmp r0, r1 + bne _081408B6 + adds r0, r4, 0 + bl LoadCompressedObjectPic + ldr r0, _08140918 @ =gUnknown_0840B2B8 + adds r0, r6, r0 + bl LoadCompressedObjectPalette +_081408B6: + ldr r1, _0814091C @ =gUnknown_0840B384 + lsls r0, r5, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _08140920 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + mov r1, r10 + strh r1, [r0, 0xA] + mov r1, r9 + strh r1, [r0, 0xC] + mov r1, r8 + strh r1, [r0, 0xE] + strh r7, [r0, 0x10] + strh r5, [r0, 0x26] + movs r0, 0xF + bl PlaySE + ldr r0, _08140924 @ =gMain + ldr r1, _08140928 @ =0x0000043d + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08140900 + ldr r1, _0814092C @ =0x02017840 + ldrb r0, [r1, 0xA] + adds r0, 0x1 + strb r0, [r1, 0xA] +_08140900: + adds r0, r4, 0 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08140910: .4byte gUnknown_0840B258 +_08140914: .4byte 0xffff0000 +_08140918: .4byte gUnknown_0840B2B8 +_0814091C: .4byte gUnknown_0840B384 +_08140920: .4byte gTasks +_08140924: .4byte gMain +_08140928: .4byte 0x0000043d +_0814092C: .4byte 0x02017840 + thumb_func_end sub_814086C + + thumb_func_start sub_8140930 +sub_8140930: @ 8140930 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r1, _081409D0 @ =gTasks + lsls r0, 2 + add r0, r9 + lsls r0, 3 + adds r7, r0, r1 + ldrh r0, [r7, 0x26] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r1, 0x8 + ldrsh r0, [r7, r1] + cmp r0, 0xF + bgt _081409E4 + ldrb r1, [r7, 0xA] + ldrb r2, [r7, 0xC] + ldrb r6, [r7, 0xE] + ldrb r3, [r7, 0x10] + mov r4, r8 + lsls r0, r4, 1 + add r0, r8 + lsls r0, 3 + ldr r4, _081409D4 @ =gSpriteTemplate_840B3B4 + adds r0, r4 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r5, _081409D8 @ =gSprites + adds r2, r4, r5 + ldr r0, _081409DC @ =gUnknown_0840B378 + add r0, r8 + ldrb r1, [r0] + adds r0, r2, 0 + str r2, [sp] + bl StartSpriteAnim + adds r5, 0x1C + adds r4, r5 + ldr r0, _081409E0 @ =sub_8140A08 + str r0, [r4] + movs r0, 0x3 + ands r6, r0 + lsls r6, 2 + ldr r2, [sp] + ldrb r1, [r2, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + orrs r0, r6 + strb r0, [r2, 0x5] + ldrb r0, [r7, 0x8] + cmp r0, 0x7 + bls _081409B6 + subs r0, 0x8 + lsls r0, 24 + lsrs r0, 24 +_081409B6: + lsls r0, 5 + strh r0, [r2, 0x2E] + movs r1, 0x8 + ldrsh r0, [r7, r1] + cmp r0, 0xF + bne _081409E4 + movs r0, 0x1 + strh r0, [r2, 0x3C] + mov r0, r9 + bl DestroyTask + b _081409F6 + .align 2, 0 +_081409D0: .4byte gTasks +_081409D4: .4byte gSpriteTemplate_840B3B4 +_081409D8: .4byte gSprites +_081409DC: .4byte gUnknown_0840B378 +_081409E0: .4byte sub_8140A08 +_081409E4: + ldr r0, _08140A04 @ =gTasks + mov r2, r9 + lsls r1, r2, 2 + add r1, r9 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_081409F6: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08140A04: .4byte gTasks + thumb_func_end sub_8140930 + + thumb_func_start sub_8140A08 +sub_8140A08: @ 8140A08 + push {lr} + adds r1, r0, 0 + ldrh r2, [r1, 0x30] + movs r3, 0x30 + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _08140A20 + ldr r0, _08140A1C @ =sub_8140A28 + str r0, [r1, 0x1C] + b _08140A24 + .align 2, 0 +_08140A1C: .4byte sub_8140A28 +_08140A20: + subs r0, r2, 0x1 + strh r0, [r1, 0x30] +_08140A24: + pop {r0} + bx r0 + thumb_func_end sub_8140A08 + + thumb_func_start sub_8140A28 +sub_8140A28: @ 8140A28 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r2, 0x30 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r2, 0x30 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0x2 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x32 + bne _08140A5C + adds r0, r4, 0 + bl sub_8141294 +_08140A5C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8140A28 + + thumb_func_start sub_8140A64 +sub_8140A64: @ 8140A64 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _08140B24 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x26] + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r0, 0xA] + str r2, [sp] + ldrb r3, [r0, 0xC] + str r3, [sp, 0x4] + ldrb r2, [r0, 0xE] + str r2, [sp, 0x8] + ldrb r0, [r0, 0x10] + str r0, [sp, 0xC] + movs r6, 0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + mov r10, r0 + ldr r3, _08140B28 @ =gSprites + mov r8, r3 + ldr r0, _08140B2C @ =gUnknown_0840B378 + adds r1, r0 + mov r9, r1 +_08140AA8: + ldr r0, _08140B30 @ =gSpriteTemplate_840B3B4 + add r0, r10 + ldr r1, [sp] + ldr r2, [sp, 0x4] + ldr r3, [sp, 0xC] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r5, r1, 2 + mov r0, r8 + adds r4, r5, r0 + mov r2, r9 + ldrb r1, [r2] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r3, _08140B34 @ =gSprites + 0x1C + adds r1, r5, r3 + ldr r0, _08140B38 @ =sub_8140ECC + str r0, [r1] + movs r0, 0x3 + ldr r2, [sp, 0x8] + ands r2, r0 + lsls r2, 2 + ldrb r0, [r4, 0x5] + movs r3, 0xD + negs r3, r3 + adds r1, r3, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x5] + lsls r0, r6, 5 + strh r0, [r4, 0x2E] + movs r0, 0xA + strh r0, [r4, 0x36] + movs r0, 0x2 + strh r0, [r4, 0x38] + movs r2, 0x1 + strh r2, [r4, 0x3A] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x7 + bls _08140AA8 + ldr r0, _08140B28 @ =gSprites + adds r0, r5, r0 + strh r2, [r0, 0x3C] + adds r0, r7, 0 + bl DestroyTask + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08140B24: .4byte gTasks +_08140B28: .4byte gSprites +_08140B2C: .4byte gUnknown_0840B378 +_08140B30: .4byte gSpriteTemplate_840B3B4 +_08140B34: .4byte gSprites + 0x1C +_08140B38: .4byte sub_8140ECC + thumb_func_end sub_8140A64 + + thumb_func_start sub_8140B3C +sub_8140B3C: @ 8140B3C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _08140BFC @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x26] + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r0, 0xA] + str r2, [sp] + ldrb r3, [r0, 0xC] + str r3, [sp, 0x4] + ldrb r2, [r0, 0xE] + str r2, [sp, 0x8] + ldrb r0, [r0, 0x10] + str r0, [sp, 0xC] + movs r6, 0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + mov r10, r0 + ldr r3, _08140C00 @ =gSprites + mov r8, r3 + ldr r0, _08140C04 @ =gUnknown_0840B378 + adds r1, r0 + mov r9, r1 +_08140B80: + ldr r0, _08140C08 @ =gSpriteTemplate_840B3B4 + add r0, r10 + ldr r1, [sp] + ldr r2, [sp, 0x4] + ldr r3, [sp, 0xC] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r5, r1, 2 + mov r0, r8 + adds r4, r5, r0 + mov r2, r9 + ldrb r1, [r2] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r3, _08140C0C @ =gSprites + 0x1C + adds r1, r5, r3 + ldr r0, _08140C10 @ =sub_8140ECC + str r0, [r1] + movs r0, 0x3 + ldr r2, [sp, 0x8] + ands r2, r0 + lsls r2, 2 + ldrb r0, [r4, 0x5] + movs r3, 0xD + negs r3, r3 + adds r1, r3, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x5] + lsls r0, r6, 5 + strh r0, [r4, 0x2E] + movs r0, 0xA + strh r0, [r4, 0x36] + movs r1, 0x1 + strh r1, [r4, 0x38] + movs r0, 0x2 + strh r0, [r4, 0x3A] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x7 + bls _08140B80 + ldr r0, _08140C00 @ =gSprites + adds r0, r5, r0 + strh r1, [r0, 0x3C] + adds r0, r7, 0 + bl DestroyTask + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08140BFC: .4byte gTasks +_08140C00: .4byte gSprites +_08140C04: .4byte gUnknown_0840B378 +_08140C08: .4byte gSpriteTemplate_840B3B4 +_08140C0C: .4byte gSprites + 0x1C +_08140C10: .4byte sub_8140ECC + thumb_func_end sub_8140B3C + + thumb_func_start sub_8140C14 +sub_8140C14: @ 8140C14 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _08140CD0 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x26] + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r0, 0xA] + str r2, [sp] + ldrb r3, [r0, 0xC] + str r3, [sp, 0x4] + ldrb r2, [r0, 0xE] + str r2, [sp, 0x8] + ldrb r0, [r0, 0x10] + str r0, [sp, 0xC] + movs r6, 0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + mov r10, r0 + ldr r3, _08140CD4 @ =gSprites + mov r8, r3 + ldr r0, _08140CD8 @ =gUnknown_0840B378 + adds r1, r0 + mov r9, r1 +_08140C58: + ldr r0, _08140CDC @ =gSpriteTemplate_840B3B4 + add r0, r10 + ldr r1, [sp] + ldr r2, [sp, 0x4] + ldr r3, [sp, 0xC] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r5, r1, 2 + mov r0, r8 + adds r4, r5, r0 + mov r2, r9 + ldrb r1, [r2] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r3, _08140CE0 @ =gSprites + 0x1C + adds r1, r5, r3 + ldr r0, _08140CE4 @ =sub_8140ECC + str r0, [r1] + movs r0, 0x3 + ldr r2, [sp, 0x8] + ands r2, r0 + lsls r2, 2 + ldrb r0, [r4, 0x5] + movs r3, 0xD + negs r3, r3 + adds r1, r3, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x5] + lsls r0, r6, 5 + strh r0, [r4, 0x2E] + movs r0, 0x4 + strh r0, [r4, 0x36] + movs r2, 0x1 + strh r2, [r4, 0x38] + strh r2, [r4, 0x3A] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x7 + bls _08140C58 + ldr r0, _08140CD4 @ =gSprites + adds r0, r5, r0 + strh r2, [r0, 0x3C] + adds r0, r7, 0 + bl DestroyTask + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08140CD0: .4byte gTasks +_08140CD4: .4byte gSprites +_08140CD8: .4byte gUnknown_0840B378 +_08140CDC: .4byte gSpriteTemplate_840B3B4 +_08140CE0: .4byte gSprites + 0x1C +_08140CE4: .4byte sub_8140ECC + thumb_func_end sub_8140C14 + + thumb_func_start sub_8140CE8 +sub_8140CE8: @ 8140CE8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _08140DAC @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x26] + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r0, 0xA] + str r2, [sp] + ldrb r3, [r0, 0xC] + str r3, [sp, 0x4] + ldrb r2, [r0, 0xE] + str r2, [sp, 0x8] + ldrb r0, [r0, 0x10] + str r0, [sp, 0xC] + movs r6, 0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + mov r10, r0 + ldr r3, _08140DB0 @ =gSprites + mov r8, r3 + ldr r0, _08140DB4 @ =gUnknown_0840B378 + adds r1, r0 + mov r9, r1 +_08140D2C: + ldr r0, _08140DB8 @ =gSpriteTemplate_840B3B4 + add r0, r10 + ldr r1, [sp] + ldr r2, [sp, 0x4] + ldr r3, [sp, 0xC] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r5, r1, 2 + mov r0, r8 + adds r4, r5, r0 + mov r2, r9 + ldrb r1, [r2] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r3, _08140DBC @ =gSprites + 0x1C + adds r1, r5, r3 + ldr r0, _08140DC0 @ =sub_8140ECC + str r0, [r1] + movs r0, 0x3 + ldr r2, [sp, 0x8] + ands r2, r0 + lsls r2, 2 + ldrb r0, [r4, 0x5] + movs r3, 0xD + negs r3, r3 + adds r1, r3, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x5] + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 3 + adds r0, r6 + strh r0, [r4, 0x2E] + movs r0, 0x5 + strh r0, [r4, 0x36] + movs r2, 0x1 + strh r2, [r4, 0x38] + strh r2, [r4, 0x3A] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x9 + bls _08140D2C + ldr r0, _08140DB0 @ =gSprites + adds r0, r5, r0 + strh r2, [r0, 0x3C] + adds r0, r7, 0 + bl DestroyTask + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08140DAC: .4byte gTasks +_08140DB0: .4byte gSprites +_08140DB4: .4byte gUnknown_0840B378 +_08140DB8: .4byte gSpriteTemplate_840B3B4 +_08140DBC: .4byte gSprites + 0x1C +_08140DC0: .4byte sub_8140ECC + thumb_func_end sub_8140CE8 + + thumb_func_start sub_8140DC4 +sub_8140DC4: @ 8140DC4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _08140DF0 @ =gTasks + lsls r2, r7, 2 + adds r0, r2, r7 + lsls r0, 3 + adds r3, r0, r1 + ldrh r1, [r3, 0x16] + movs r4, 0x16 + ldrsh r0, [r3, r4] + cmp r0, 0 + beq _08140DF4 + subs r0, r1, 0x1 + strh r0, [r3, 0x16] + b _08140EA4 + .align 2, 0 +_08140DF0: .4byte gTasks +_08140DF4: + ldrh r0, [r3, 0x26] + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r3, 0xA] + str r1, [sp] + ldrb r4, [r3, 0xC] + str r4, [sp, 0x4] + ldrb r1, [r3, 0xE] + str r1, [sp, 0x8] + ldrb r3, [r3, 0x10] + str r3, [sp, 0xC] + movs r6, 0 + str r2, [sp, 0x10] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + mov r10, r1 + ldr r3, _08140EB4 @ =gSprites + mov r8, r3 + ldr r1, _08140EB8 @ =gUnknown_0840B378 + adds r0, r1 + mov r9, r0 +_08140E20: + ldr r0, _08140EBC @ =gSpriteTemplate_840B3B4 + add r0, r10 + ldr r1, [sp] + ldr r2, [sp, 0x4] + ldr r3, [sp, 0xC] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r5, r1, 2 + mov r0, r8 + adds r4, r5, r0 + mov r3, r9 + ldrb r1, [r3] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r0, _08140EC0 @ =gSprites + 0x1C + adds r1, r5, r0 + ldr r0, _08140EC4 @ =sub_8140ECC + str r0, [r1] + movs r0, 0x3 + ldr r2, [sp, 0x8] + ands r2, r0 + lsls r2, 2 + ldrb r0, [r4, 0x5] + movs r3, 0xD + negs r3, r3 + adds r1, r3, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x5] + lsls r0, r6, 5 + strh r0, [r4, 0x2E] + movs r2, 0x8 + strh r2, [r4, 0x36] + movs r0, 0x2 + strh r0, [r4, 0x38] + strh r0, [r4, 0x3A] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x7 + bls _08140E20 + ldr r0, _08140EC8 @ =gTasks + ldr r4, [sp, 0x10] + adds r1, r4, r7 + lsls r1, 3 + adds r1, r0 + strh r2, [r1, 0x16] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _08140EA4 + ldr r0, _08140EB4 @ =gSprites + adds r0, r5, r0 + movs r1, 0x1 + strh r1, [r0, 0x3C] + adds r0, r7, 0 + bl DestroyTask +_08140EA4: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08140EB4: .4byte gSprites +_08140EB8: .4byte gUnknown_0840B378 +_08140EBC: .4byte gSpriteTemplate_840B3B4 +_08140EC0: .4byte gSprites + 0x1C +_08140EC4: .4byte sub_8140ECC +_08140EC8: .4byte gTasks + thumb_func_end sub_8140DC4 + + thumb_func_start sub_8140ECC +sub_8140ECC: @ 8140ECC + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r2, 0x30 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r2, 0x32 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x2E] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x38] + ldrh r2, [r4, 0x30] + adds r0, r2 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x3A] + ldrh r1, [r4, 0x32] + adds r0, r1 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x33 + bne _08140F1C + adds r0, r4, 0 + bl sub_8141294 +_08140F1C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8140ECC + + thumb_func_start sub_8140F24 +sub_8140F24: @ 8140F24 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _08140FE0 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x26] + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r0, 0xA] + str r2, [sp] + ldrb r3, [r0, 0xC] + str r3, [sp, 0x4] + ldrb r2, [r0, 0xE] + str r2, [sp, 0x8] + ldrb r0, [r0, 0x10] + str r0, [sp, 0xC] + movs r6, 0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + mov r10, r0 + ldr r3, _08140FE4 @ =gSprites + mov r8, r3 + ldr r0, _08140FE8 @ =gUnknown_0840B378 + adds r1, r0 + mov r9, r1 +_08140F68: + ldr r0, _08140FEC @ =gSpriteTemplate_840B3B4 + add r0, r10 + ldr r1, [sp] + ldr r2, [sp, 0x4] + ldr r3, [sp, 0xC] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r5, r1, 2 + mov r0, r8 + adds r4, r5, r0 + mov r2, r9 + ldrb r1, [r2] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r3, _08140FF0 @ =gSprites + 0x1C + adds r1, r5, r3 + ldr r0, _08140FF4 @ =sub_8140FF8 + str r0, [r1] + movs r0, 0x3 + ldr r2, [sp, 0x8] + ands r2, r0 + lsls r2, 2 + ldrb r0, [r4, 0x5] + movs r3, 0xD + negs r3, r3 + adds r1, r3, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x5] + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 2 + adds r0, r6 + strh r0, [r4, 0x2E] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0xB + bls _08140F68 + ldr r0, _08140FE4 @ =gSprites + adds r0, r5, r0 + movs r1, 0x1 + strh r1, [r0, 0x3C] + adds r0, r7, 0 + bl DestroyTask + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08140FE0: .4byte gTasks +_08140FE4: .4byte gSprites +_08140FE8: .4byte gUnknown_0840B378 +_08140FEC: .4byte gSpriteTemplate_840B3B4 +_08140FF0: .4byte gSprites + 0x1C +_08140FF4: .4byte sub_8140FF8 + thumb_func_end sub_8140F24 + + thumb_func_start sub_8140FF8 +sub_8140FF8: @ 8140FF8 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + movs r2, 0x30 + ldrsh r1, [r5, r2] + bl Sin + strh r0, [r5, 0x24] + movs r0, 0x2E + ldrsh r4, [r5, r0] + movs r2, 0x32 + ldrsh r1, [r5, r2] + adds r0, r4, 0 + bl Sin + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl Cos + strh r0, [r5, 0x26] + ldrh r0, [r5, 0x2E] + adds r0, 0x6 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x30] + adds r0, 0x1 + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x32] + adds r0, 0x1 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x34] + adds r0, 0x1 + strh r0, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x33 + bne _08141050 + adds r0, r5, 0 + bl sub_8141294 +_08141050: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8140FF8 + + thumb_func_start sub_8141058 +sub_8141058: @ 8141058 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + ldr r1, _08141104 @ =gTasks + lsls r0, 2 + ldr r2, [sp] + adds r0, r2 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x26] + lsls r1, 24 + lsrs r1, 24 + ldrb r3, [r0, 0xA] + str r3, [sp, 0x4] + ldrb r2, [r0, 0xC] + str r2, [sp, 0x8] + ldrb r3, [r0, 0xE] + str r3, [sp, 0xC] + ldrb r0, [r0, 0x10] + str r0, [sp, 0x10] + movs r0, 0 + mov r8, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + str r0, [sp, 0x14] + ldr r0, _08141108 @ =gUnknown_0840B378 + adds r1, r0 + mov r10, r1 +_0814109E: + movs r7, 0 + movs r1, 0x1 + add r1, r8 + mov r9, r1 +_081410A6: + ldr r0, _0814110C @ =gSpriteTemplate_840B3B4 + ldr r2, [sp, 0x14] + adds r0, r2, r0 + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + ldr r3, [sp, 0x10] + bl CreateSprite + lsls r0, 24 + lsrs r6, r0, 24 + lsls r4, r6, 4 + adds r4, r6 + lsls r4, 2 + ldr r3, _08141110 @ =gSprites + adds r5, r4, r3 + mov r0, r10 + ldrb r1, [r0] + adds r0, r5, 0 + bl StartSpriteAnim + ldr r1, _08141114 @ =gSprites + 0x1C + adds r4, r1 + ldr r0, _08141118 @ =sub_8140ECC + str r0, [r4] + movs r0, 0x3 + ldr r1, [sp, 0xC] + ands r1, r0 + lsls r1, 2 + ldrb r0, [r5, 0x5] + movs r3, 0xD + negs r3, r3 + adds r2, r3, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + lsls r0, r7, 5 + strh r0, [r5, 0x2E] + movs r0, 0x8 + strh r0, [r5, 0x36] + mov r0, r8 + cmp r0, 0 + bne _0814111C + movs r0, 0x2 + strh r0, [r5, 0x38] + movs r0, 0x1 + b _08141122 + .align 2, 0 +_08141104: .4byte gTasks +_08141108: .4byte gUnknown_0840B378 +_0814110C: .4byte gSpriteTemplate_840B3B4 +_08141110: .4byte gSprites +_08141114: .4byte gSprites + 0x1C +_08141118: .4byte sub_8140ECC +_0814111C: + movs r0, 0x1 + strh r0, [r5, 0x38] + movs r0, 0x2 +_08141122: + strh r0, [r5, 0x3A] + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x7 + bls _081410A6 + mov r1, r9 + lsls r0, r1, 24 + lsrs r0, 24 + mov r8, r0 + cmp r0, 0x1 + bls _0814109E + ldr r0, _08141160 @ =gSprites + lsls r1, r6, 4 + adds r1, r6 + lsls r1, 2 + adds r1, r0 + movs r0, 0x1 + strh r0, [r1, 0x3C] + ldr r0, [sp] + bl DestroyTask + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08141160: .4byte gSprites + thumb_func_end sub_8141058 + + thumb_func_start sub_8141164 +sub_8141164: @ 8141164 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _08141218 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x26] + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r0, 0xA] + str r2, [sp] + ldrb r3, [r0, 0xC] + str r3, [sp, 0x4] + ldrb r2, [r0, 0xE] + str r2, [sp, 0x8] + ldrb r0, [r0, 0x10] + str r0, [sp, 0xC] + movs r6, 0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + mov r10, r0 + ldr r3, _0814121C @ =gSprites + mov r8, r3 + ldr r0, _08141220 @ =gUnknown_0840B378 + adds r1, r0 + mov r9, r1 +_081411A8: + ldr r0, _08141224 @ =gSpriteTemplate_840B3B4 + add r0, r10 + ldr r1, [sp] + ldr r2, [sp, 0x4] + ldr r3, [sp, 0xC] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r5, r1, 2 + mov r0, r8 + adds r4, r5, r0 + mov r2, r9 + ldrb r1, [r2] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r3, _08141228 @ =gSprites + 0x1C + adds r1, r5, r3 + ldr r0, _0814122C @ =sub_8141230 + str r0, [r1] + movs r0, 0x3 + ldr r2, [sp, 0x8] + ands r2, r0 + lsls r2, 2 + ldrb r0, [r4, 0x5] + movs r3, 0xD + negs r3, r3 + adds r1, r3, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x5] + lsls r0, r6, 5 + strh r0, [r4, 0x2E] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x7 + bls _081411A8 + ldr r0, _0814121C @ =gSprites + adds r0, r5, r0 + movs r1, 0x1 + strh r1, [r0, 0x3C] + adds r0, r7, 0 + bl DestroyTask + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08141218: .4byte gTasks +_0814121C: .4byte gSprites +_08141220: .4byte gUnknown_0840B378 +_08141224: .4byte gSpriteTemplate_840B3B4 +_08141228: .4byte gSprites + 0x1C +_0814122C: .4byte sub_8141230 + thumb_func_end sub_8141164 + + thumb_func_start sub_8141230 +sub_8141230: @ 8141230 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + movs r2, 0x30 + ldrsh r1, [r5, r2] + bl Sin + strh r0, [r5, 0x24] + movs r0, 0x2E + ldrsh r4, [r5, r0] + ldrh r1, [r5, 0x2E] + movs r0, 0x3F + ands r0, r1 + movs r2, 0x32 + ldrsh r1, [r5, r2] + bl Sin + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl Cos + strh r0, [r5, 0x26] + ldrh r0, [r5, 0x2E] + adds r0, 0xA + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x30] + adds r0, 0x1 + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x32] + adds r0, 0x1 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x34] + adds r0, 0x1 + strh r0, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x33 + bne _0814128C + adds r0, r5, 0 + bl sub_8141294 +_0814128C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8141230 + + thumb_func_start sub_8141294 +sub_8141294: @ 8141294 + push {r4-r7,lr} + adds r5, r0, 0 + ldr r0, _081412B8 @ =gMain + ldr r1, _081412BC @ =0x0000043d + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _081412C0 + movs r1, 0x3C + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _081412F2 + adds r0, r5, 0 + bl DestroySpriteAndFreeResources + b _0814130E + .align 2, 0 +_081412B8: .4byte gMain +_081412BC: .4byte 0x0000043d +_081412C0: + movs r1, 0x3C + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _08141308 + ldr r1, _081412FC @ =0x02017840 + ldrb r0, [r1, 0xA] + subs r0, 0x1 + strb r0, [r1, 0xA] + lsls r0, 24 + cmp r0, 0 + bne _081412F2 + movs r7, 0 + ldr r6, _08141300 @ =gUnknown_0840B258 + ldr r4, _08141304 @ =gUnknown_0840B2B8 +_081412DC: + ldrh r0, [r6, 0x6] + bl FreeSpriteTilesByTag + ldrh r0, [r4, 0x4] + bl FreeSpritePaletteByTag + adds r6, 0x8 + adds r4, 0x8 + adds r7, 0x1 + cmp r7, 0xB + ble _081412DC +_081412F2: + adds r0, r5, 0 + bl DestroySprite + b _0814130E + .align 2, 0 +_081412FC: .4byte 0x02017840 +_08141300: .4byte gUnknown_0840B258 +_08141304: .4byte gUnknown_0840B2B8 +_08141308: + adds r0, r5, 0 + bl DestroySprite +_0814130E: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8141294 + + thumb_func_start sub_8141314 +sub_8141314: @ 8141314 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + adds r4, r0, 0 + mov r9, r2 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + lsrs r6, r1, 24 + lsls r3, 24 + lsrs r7, r3, 24 + ldr r0, _08141378 @ =sub_81413DC + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r1, _0814137C @ =gTasks + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r5, r0, r1 + strh r7, [r5, 0x26] + strh r6, [r5, 0xE] + mov r0, r9 + strh r0, [r5, 0x1C] + mov r1, r9 + lsrs r0, r1, 16 + strh r0, [r5, 0x1E] + cmp r4, 0 + bne _08141384 + lsls r0, r6, 20 + movs r2, 0x80 + lsls r2, 17 + adds r0, r2 + lsrs r0, 16 + ldr r2, _08141380 @ =gUnknown_0840B4D4 + lsls r1, r7, 1 + adds r1, r2 + ldrh r3, [r1] + movs r1, 0x10 + movs r2, 0 + bl BlendPalette + movs r0, 0x1 + strh r0, [r5, 0xA] + b _081413AA + .align 2, 0 +_08141378: .4byte sub_81413DC +_0814137C: .4byte gTasks +_08141380: .4byte gUnknown_0840B4D4 +_08141384: + lsls r0, r6, 20 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r0, 16 + ldr r2, _081413CC @ =gUnknown_0840B4D4 + lsls r1, r7, 1 + adds r1, r2 + ldrh r3, [r1] + movs r1, 0x10 + movs r2, 0x10 + bl BlendPalette + movs r0, 0x10 + strh r0, [r5, 0x8] + ldr r0, _081413D0 @ =0x0000ffff + strh r0, [r5, 0xA] + ldr r0, _081413D4 @ =sub_814146C + str r0, [r5] +_081413AA: + ldr r0, _081413D8 @ =0x00007fff + str r0, [sp] + mov r0, r9 + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + mov r0, r8 + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_081413CC: .4byte gUnknown_0840B4D4 +_081413D0: .4byte 0x0000ffff +_081413D4: .4byte sub_814146C +_081413D8: .4byte 0x00007fff + thumb_func_end sub_8141314 + + thumb_func_start sub_81413DC +sub_81413DC: @ 81413DC + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r1, _0814142C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0x10 + bgt _08141434 + movs r2, 0xE + ldrsh r0, [r4, r2] + lsls r0, 20 + movs r2, 0x80 + lsls r2, 17 + adds r0, r2 + lsrs r0, 16 + ldrb r2, [r4, 0x8] + ldr r3, _08141430 @ =gUnknown_0840B4D4 + lsls r1, 1 + adds r1, r3 + ldrh r3, [r1] + movs r1, 0x10 + bl BlendPalette + ldrh r0, [r4, 0xA] + ldrh r1, [r4, 0x8] + adds r0, r1 + strh r0, [r4, 0x8] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + b _0814145C + .align 2, 0 +_0814142C: .4byte gTasks +_08141430: .4byte gUnknown_0840B4D4 +_08141434: + ldr r0, _08141464 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0814145C + ldrh r0, [r4, 0x1C] + ldrh r1, [r4, 0x1E] + lsls r1, 16 + orrs r0, r1 + ldr r1, _08141468 @ =0x00007fff + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + adds r0, r5, 0 + bl DestroyTask +_0814145C: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08141464: .4byte gPaletteFade +_08141468: .4byte 0x00007fff + thumb_func_end sub_81413DC + + thumb_func_start sub_814146C +sub_814146C: @ 814146C + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _081414AC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081414A4 + ldr r0, _081414B0 @ =gTasks + lsls r4, r2, 2 + adds r4, r2 + lsls r4, 3 + adds r4, r0 + ldrh r0, [r4, 0x1C] + ldrh r1, [r4, 0x1E] + lsls r1, 16 + orrs r0, r1 + ldr r1, _081414B4 @ =0x00007fff + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _081414B8 @ =sub_81414BC + str r0, [r4] +_081414A4: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081414AC: .4byte gPaletteFade +_081414B0: .4byte gTasks +_081414B4: .4byte 0x00007fff +_081414B8: .4byte sub_81414BC + thumb_func_end sub_814146C + + thumb_func_start sub_81414BC +sub_81414BC: @ 81414BC + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _08141508 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r1, r0, 24 + movs r3, 0xC + ldrsh r0, [r4, r3] + cmp r0, 0x10 + bgt _08141510 + movs r2, 0xE + ldrsh r0, [r4, r2] + lsls r0, 20 + movs r3, 0x80 + lsls r3, 17 + adds r0, r3 + lsrs r0, 16 + ldrb r2, [r4, 0x8] + ldr r3, _0814150C @ =gUnknown_0840B4D4 + lsls r1, 1 + adds r1, r3 + ldrh r3, [r1] + movs r1, 0x10 + bl BlendPalette + ldrh r0, [r4, 0xA] + ldrh r1, [r4, 0x8] + adds r0, r1 + strh r0, [r4, 0x8] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + b _08141516 + .align 2, 0 +_08141508: .4byte gTasks +_0814150C: .4byte gUnknown_0840B4D4 +_08141510: + adds r0, r2, 0 + bl DestroyTask +_08141516: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81414BC + + thumb_func_start sub_814151C +sub_814151C: @ 814151C + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r7, r0, 24 + movs r0, 0 + mov r8, r0 + ldr r0, _08141550 @ =gUnknown_02024BE0 + ldr r3, _08141554 @ =gUnknown_0202F7C8 + ldrb r2, [r3] + adds r0, r2, r0 + ldrb r6, [r0] + ldr r1, _08141558 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r5, r0, r1 + movs r1, 0x1C + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _081415F4 + cmp r0, 0x1 + bgt _0814155C + cmp r0, 0 + beq _08141562 + b _081416B6 + .align 2, 0 +_08141550: .4byte gUnknown_02024BE0 +_08141554: .4byte gUnknown_0202F7C8 +_08141558: .4byte gTasks +_0814155C: + cmp r0, 0x2 + beq _08141606 + b _081416B6 +_08141562: + ldr r0, _0814159C @ =gBattleAnimArgs + ldrh r0, [r0] + strh r0, [r5, 0x1E] + movs r2, 0xA0 + lsls r2, 3 + adds r0, r2, 0 + ldrh r4, [r5, 0x8] + adds r0, r4 + strh r0, [r5, 0x8] + ldrb r0, [r3] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _081415A4 + ldr r2, _081415A0 @ =gSprites + lsls r3, r6, 4 + adds r1, r3, r6 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r5, 0x8] + lsls r0, 16 + asrs r0, 24 + ldrh r4, [r1, 0x24] + adds r0, r4 + strh r0, [r1, 0x24] + adds r4, r3, 0 + b _081415BC + .align 2, 0 +_0814159C: .4byte gBattleAnimArgs +_081415A0: .4byte gSprites +_081415A4: + ldr r3, _081415EC @ =gSprites + lsls r4, r6, 4 + adds r2, r4, r6 + lsls r2, 2 + adds r2, r3 + ldrh r1, [r5, 0x8] + lsls r1, 16 + asrs r1, 24 + ldrh r0, [r2, 0x24] + subs r0, r1 + strh r0, [r2, 0x24] + adds r2, r3, 0 +_081415BC: + ldr r1, _081415F0 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r3, r0, r1 + ldrb r0, [r3, 0x8] + strh r0, [r3, 0x8] + adds r0, r4, r6 + lsls r0, 2 + adds r0, r2 + movs r2, 0x20 + ldrsh r1, [r0, r2] + movs r4, 0x24 + ldrsh r0, [r0, r4] + adds r1, r0 + adds r1, 0x20 + movs r0, 0x98 + lsls r0, 1 + cmp r1, r0 + bls _081416B6 + ldrh r0, [r3, 0x1C] + adds r0, 0x1 + strh r0, [r3, 0x1C] + b _081416B6 + .align 2, 0 +_081415EC: .4byte gSprites +_081415F0: .4byte gTasks +_081415F4: + ldrb r1, [r5, 0x1E] + adds r0, r2, 0 + adds r2, r6, 0 + bl refresh_graphics_maybe + ldrh r0, [r5, 0x1C] + adds r0, 0x1 + strh r0, [r5, 0x1C] + b _081416B6 +_08141606: + movs r1, 0xA0 + lsls r1, 3 + adds r0, r1, 0 + ldrh r2, [r5, 0x8] + adds r0, r2 + strh r0, [r5, 0x8] + ldrb r0, [r3] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _0814163C + ldr r0, _08141638 @ =gSprites + lsls r3, r6, 4 + adds r2, r3, r6 + lsls r2, 2 + adds r2, r0 + ldrh r1, [r5, 0x8] + lsls r1, 16 + asrs r1, 24 + ldrh r0, [r2, 0x24] + subs r0, r1 + strh r0, [r2, 0x24] + adds r4, r3, 0 + b _08141654 + .align 2, 0 +_08141638: .4byte gSprites +_0814163C: + ldr r0, _08141688 @ =gSprites + lsls r2, r6, 4 + adds r1, r2, r6 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r5, 0x8] + lsls r0, 16 + asrs r0, 24 + ldrh r3, [r1, 0x24] + adds r0, r3 + strh r0, [r1, 0x24] + adds r4, r2, 0 +_08141654: + ldr r1, _0814168C @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldrb r1, [r0, 0x8] + strh r1, [r0, 0x8] + ldr r0, _08141690 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _08141694 + ldr r0, _08141688 @ =gSprites + adds r1, r4, r6 + lsls r1, 2 + adds r1, r0 + movs r4, 0x24 + ldrsh r0, [r1, r4] + cmp r0, 0 + bgt _081416AA + movs r0, 0 + strh r0, [r1, 0x24] + b _081416B0 + .align 2, 0 +_08141688: .4byte gSprites +_0814168C: .4byte gTasks +_08141690: .4byte gUnknown_0202F7C8 +_08141694: + ldr r0, _081416C0 @ =gSprites + adds r1, r4, r6 + lsls r1, 2 + adds r1, r0 + movs r3, 0x24 + ldrsh r0, [r1, r3] + cmp r0, 0 + blt _081416AA + strh r2, [r1, 0x24] + movs r4, 0x1 + mov r8, r4 +_081416AA: + mov r0, r8 + cmp r0, 0 + beq _081416B6 +_081416B0: + adds r0, r7, 0 + bl move_anim_task_del +_081416B6: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081416C0: .4byte gSprites + thumb_func_end sub_814151C + + thumb_func_start sub_81416C4 +sub_81416C4: @ 81416C4 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _081416E8 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x26 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _08141744 + cmp r0, 0x1 + bgt _081416EC + cmp r0, 0 + beq _081416F2 + b _081417B8 + .align 2, 0 +_081416E8: .4byte gTasks +_081416EC: + cmp r0, 0x2 + beq _0814177C + b _081417B8 +_081416F2: + ldr r0, _08141708 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08141714 + ldr r1, _0814170C @ =REG_BLDCNT + ldr r2, _08141710 @ =0x00003f42 + b _08141718 + .align 2, 0 +_08141708: .4byte gUnknown_0202F7C8 +_0814170C: .4byte REG_BLDCNT +_08141710: .4byte 0x00003f42 +_08141714: + ldr r1, _08141734 @ =REG_BLDCNT + ldr r2, _08141738 @ =0x00003f44 +_08141718: + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _0814173C @ =REG_BLDALPHA + movs r0, 0x10 + strh r0, [r1] + ldr r1, _08141740 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x26] + adds r1, 0x1 + strh r1, [r0, 0x26] + b _081417B8 + .align 2, 0 +_08141734: .4byte REG_BLDCNT +_08141738: .4byte 0x00003f44 +_0814173C: .4byte REG_BLDALPHA +_08141740: .4byte gTasks +_08141744: + ldrh r0, [r4, 0xA] + adds r1, r0, 0x1 + strh r1, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _081417B8 + movs r0, 0 + strh r0, [r4, 0xA] + ldrh r1, [r4, 0x8] + adds r1, 0x1 + strh r1, [r4, 0x8] + ldr r3, _08141778 @ =REG_BLDALPHA + lsls r2, r1, 8 + movs r0, 0x10 + subs r0, r1 + orrs r2, r0 + strh r2, [r3] + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x10 + bne _081417B8 + ldrh r0, [r4, 0x26] + adds r0, 0x1 + strh r0, [r4, 0x26] + b _081417B8 + .align 2, 0 +_08141778: .4byte REG_BLDALPHA +_0814177C: + ldr r1, _081417C0 @ =gUnknown_02024BE0 + ldr r3, _081417C4 @ =gUnknown_0202F7C8 + ldrb r0, [r3] + adds r0, r1 + ldrb r1, [r0] + ldr r2, _081417C8 @ =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x4] + lsls r0, 22 + lsrs r0, 17 + ldr r1, _081417CC @ =0x06010000 + adds r0, r1 + movs r1, 0 + str r1, [sp] + ldr r1, _081417D0 @ =0x040000d4 + mov r2, sp + str r2, [r1] + str r0, [r1, 0x4] + ldr r0, _081417D4 @ =0x85000200 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldrb r0, [r3] + bl sub_80324E0 + adds r0, r5, 0 + bl move_anim_task_del +_081417B8: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081417C0: .4byte gUnknown_02024BE0 +_081417C4: .4byte gUnknown_0202F7C8 +_081417C8: .4byte gSprites +_081417CC: .4byte 0x06010000 +_081417D0: .4byte 0x040000d4 +_081417D4: .4byte 0x85000200 + thumb_func_end sub_81416C4 + + thumb_func_start sub_81417D8 +sub_81417D8: @ 81417D8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, _081417FC @ =gBattleAnimArgs + ldr r1, _08141800 @ =gUnknown_0202F7C8 + ldrb r1, [r1] + lsls r1, 2 + ldr r2, _08141804 @ =0x02017800 + adds r1, r2 + ldr r1, [r1] + lsls r1, 29 + lsrs r1, 31 + strh r1, [r3, 0xE] + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_081417FC: .4byte gBattleAnimArgs +_08141800: .4byte gUnknown_0202F7C8 +_08141804: .4byte 0x02017800 + thumb_func_end sub_81417D8 + + thumb_func_start sub_8141808 +sub_8141808: @ 8141808 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08141820 @ =gUnknown_0202F7C9 + ldr r1, _08141824 @ =gUnknown_02024C0A + ldrb r1, [r1] + strb r1, [r2] + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_08141820: .4byte gUnknown_0202F7C9 +_08141824: .4byte gUnknown_02024C0A + thumb_func_end sub_8141808 + + thumb_func_start sub_8141828 +sub_8141828: @ 8141828 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r1, 0 + lsls r0, 24 + lsrs r6, r0, 24 + movs r0, 0 + mov r8, r0 + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 2 + ldr r1, _081418E0 @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + adds r5, r0, 0 + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + adds r4, r0, 0 + adds r0, r6, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _081418FC + lsrs r0, r5, 16 + ldr r7, _081418E4 @ =0x0000ffff + ands r5, r7 + eors r0, r5 + lsrs r1, r4, 16 + eors r0, r1 + ands r4, r7 + eors r0, r4 + cmp r0, 0x7 + bhi _08141882 + movs r0, 0x1 + mov r8, r0 +_08141882: + mov r0, r8 + cmp r0, 0 + beq _081418FC + ldr r0, _081418E8 @ =0x000027f9 + bl GetSpriteTileStartByTag + lsls r0, 16 + lsrs r0, 16 + cmp r0, r7 + bne _081418A2 + ldr r0, _081418EC @ =gBattleAnimPicTable + (233 * 8) + bl LoadCompressedObjectPic + ldr r0, _081418F0 @ =gBattleAnimPaletteTable + (233 * 8) + bl LoadCompressedObjectPalette +_081418A2: + ldr r5, _081418F4 @ =sub_814191C + adds r0, r5, 0 + movs r1, 0xA + bl CreateTask + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r3, _081418F8 @ =gTasks + lsls r2, r4, 2 + adds r2, r4 + lsls r2, 3 + adds r2, r3 + movs r4, 0 + strh r6, [r2, 0x8] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r3 + strh r6, [r1, 0x8] + strh r4, [r2, 0xA] + movs r0, 0x1 + strh r0, [r1, 0xA] + b _0814190E + .align 2, 0 +_081418E0: .4byte 0x02017810 +_081418E4: .4byte 0x0000ffff +_081418E8: .4byte 0x000027f9 +_081418EC: .4byte gBattleAnimPicTable + (233 * 8) +_081418F0: .4byte gBattleAnimPaletteTable + (233 * 8) +_081418F4: .4byte sub_814191C +_081418F8: .4byte gTasks +_081418FC: + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 2 + ldr r1, _08141918 @ =0x02017810 + adds r0, r1 + ldrb r1, [r0, 0x1] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0, 0x1] +_0814190E: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08141918: .4byte 0x02017810 + thumb_func_end sub_8141828 + + thumb_func_start sub_814191C +sub_814191C: @ 814191C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _08141944 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r4, r0, r1 + ldrh r1, [r4, 0x22] + movs r2, 0x22 + ldrsh r0, [r4, r2] + cmp r0, 0x3B + bgt _08141948 + adds r0, r1, 0x1 + strh r0, [r4, 0x22] + b _08141AB8 + .align 2, 0 +_08141944: .4byte gTasks +_08141948: + ldr r0, _08141998 @ =0x02017840 + ldrb r0, [r0, 0xA] + cmp r0, 0 + beq _08141952 + b _08141AB8 +_08141952: + ldrh r0, [r4, 0x1C] + adds r1, r0, 0x1 + strh r1, [r4, 0x1C] + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r0 + cmp r1, 0 + beq _08141966 + b _08141AB8 +_08141966: + ldrb r0, [r4, 0x8] + mov r8, r0 + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r5, r0, 24 + mov r0, r8 + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r2, r0, 24 + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _081419A0 + ldr r0, _0814199C @ =gBattleAnimSpriteTemplate_84024E8 + adds r1, r5, 0 + movs r3, 0x5 + bl CreateSprite + lsls r0, 24 + lsrs r5, r0, 24 + b _08141A02 + .align 2, 0 +_08141998: .4byte 0x02017840 +_0814199C: .4byte gBattleAnimSpriteTemplate_84024E8 +_081419A0: + cmp r0, 0 + blt _081419D4 + cmp r0, 0x3 + bgt _081419D4 + ldr r0, _081419CC @ =gSpriteTemplate_8402500 + adds r1, r5, 0 + movs r3, 0x5 + bl CreateSprite + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _081419D0 @ =gSprites + lsls r2, r5, 4 + adds r2, r5 + lsls r2, 2 + adds r2, r0 + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x4 + b _081419F4 + .align 2, 0 +_081419CC: .4byte gSpriteTemplate_8402500 +_081419D0: .4byte gSprites +_081419D4: + ldr r0, _08141A2C @ =gSpriteTemplate_8402500 + adds r1, r5, 0 + movs r3, 0x5 + bl CreateSprite + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _08141A30 @ =gSprites + lsls r2, r5, 4 + adds r2, r5 + lsls r2, 2 + adds r2, r0 + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x5 +_081419F4: + ldr r4, _08141A34 @ =0x000003ff + adds r0, r4, 0 + ands r1, r0 + ldr r0, _08141A38 @ =0xfffffc00 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, 0x4] +_08141A02: + ldr r2, _08141A3C @ =gTasks + lsls r1, r7, 2 + adds r0, r1, r7 + lsls r0, 3 + adds r6, r0, r2 + movs r2, 0xA + ldrsh r0, [r6, r2] + mov r9, r1 + cmp r0, 0 + bne _08141A44 + ldr r1, _08141A30 @ =gSprites + lsls r2, r5, 4 + adds r0, r2, r5 + lsls r0, 2 + adds r1, 0x1C + adds r0, r1 + ldr r1, _08141A40 @ =sub_8141B20 + str r1, [r0] + adds r4, r2, 0 + b _08141A8C + .align 2, 0 +_08141A2C: .4byte gSpriteTemplate_8402500 +_08141A30: .4byte gSprites +_08141A34: .4byte 0x000003ff +_08141A38: .4byte 0xfffffc00 +_08141A3C: .4byte gTasks +_08141A40: .4byte sub_8141B20 +_08141A44: + ldr r3, _08141AC4 @ =gSprites + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r0, r3, 0 + adds r0, 0x1C + adds r0, r1, r0 + ldr r2, _08141AC8 @ =sub_8141B74 + str r2, [r0] + adds r1, r3 + ldr r0, _08141ACC @ =0x0000ffe0 + strh r0, [r1, 0x24] + movs r0, 0x20 + strh r0, [r1, 0x26] + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + movs r1, 0x1E + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _08141A8C + mov r0, r8 + bl battle_side_get_owner + lsls r0, 24 + movs r1, 0x3F + cmp r0, 0 + bne _08141A82 + movs r1, 0xC0 +_08141A82: + lsls r1, 24 + asrs r1, 24 + movs r0, 0x66 + bl PlaySE12WithPanning +_08141A8C: + ldr r1, _08141AC4 @ =gSprites + adds r0, r4, r5 + lsls r0, 2 + adds r0, r1 + strh r7, [r0, 0x2E] + ldr r1, _08141AD0 @ =gTasks + mov r2, r9 + adds r0, r2, r7 + lsls r0, 3 + adds r2, r0, r1 + ldrh r1, [r2, 0x1E] + adds r1, 0x1 + strh r1, [r2, 0x1E] + ldrh r0, [r2, 0x20] + adds r0, 0x1 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x5 + bne _08141AB8 + ldr r0, _08141AD4 @ =sub_8141AD8 + str r0, [r2] +_08141AB8: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08141AC4: .4byte gSprites +_08141AC8: .4byte sub_8141B74 +_08141ACC: .4byte 0x0000ffe0 +_08141AD0: .4byte gTasks +_08141AD4: .4byte sub_8141AD8 + thumb_func_end sub_814191C + + thumb_func_start sub_8141AD8 +sub_8141AD8: @ 8141AD8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + adds r3, r0, 0 + ldr r1, _08141B18 @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r1, r0, r1 + movs r2, 0x20 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _08141B14 + movs r2, 0xA + ldrsh r0, [r1, r2] + cmp r0, 0x1 + bne _08141B0E + ldrb r1, [r1, 0x8] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _08141B1C @ =0x02017810 + adds r0, r1 + ldrb r1, [r0, 0x1] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0, 0x1] +_08141B0E: + adds r0, r3, 0 + bl DestroyTask +_08141B14: + pop {r0} + bx r0 + .align 2, 0 +_08141B18: .4byte gTasks +_08141B1C: .4byte 0x02017810 + thumb_func_end sub_8141AD8 + + thumb_func_start sub_8141B20 +sub_8141B20: @ 8141B20 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x18 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x18 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0xC + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _08141B6A + ldr r2, _08141B70 @ =gTasks + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0x20] + subs r1, 0x1 + strh r1, [r0, 0x20] + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite +_08141B6A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08141B70: .4byte gTasks + thumb_func_end sub_8141B20 + + thumb_func_start sub_8141B74 +sub_8141B74: @ 8141B74 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0x3 + bgt _08141B88 + adds r0, r1, 0x1 + strh r0, [r4, 0x30] + b _08141BCA +_08141B88: + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldrh r1, [r4, 0x24] + adds r1, 0x5 + strh r1, [r4, 0x24] + ldrh r0, [r4, 0x26] + subs r0, 0x5 + strh r0, [r4, 0x26] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x20 + ble _08141BCA + ldr r2, _08141BD0 @ =gTasks + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0x20] + subs r1, 0x1 + strh r1, [r0, 0x20] + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite +_08141BCA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08141BD0: .4byte gTasks + thumb_func_end sub_8141B74 + + thumb_func_start sub_8141BD4 +sub_8141BD4: @ 8141BD4 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _08141BFC @ =gBattleAnimPicTable + (269 * 8) + bl LoadCompressedObjectPic + ldr r0, _08141C00 @ =gBattleAnimPaletteTable + (269 * 8) + bl LoadCompressedObjectPalette + ldr r0, _08141C04 @ =0x0000281d + bl IndexOfSpritePaletteTag + adds r0, r4, 0 + bl move_anim_task_del + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08141BFC: .4byte gBattleAnimPicTable + (269 * 8) +_08141C00: .4byte gBattleAnimPaletteTable + (269 * 8) +_08141C04: .4byte 0x0000281d + thumb_func_end sub_8141BD4 + + thumb_func_start sub_8141C08 +sub_8141C08: @ 8141C08 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _08141C2C @ =0x0000281d + adds r0, r5, 0 + bl FreeSpriteTilesByTag + adds r0, r5, 0 + bl FreeSpritePaletteByTag + adds r0, r4, 0 + bl move_anim_task_del + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08141C2C: .4byte 0x0000281d + thumb_func_end sub_8141C08 + + thumb_func_start sub_8141C30 +sub_8141C30: @ 8141C30 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_80787B0 + movs r0, 0x1E + strh r0, [r4, 0x2E] + movs r0, 0x1 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + ldr r5, _08141CA4 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r5, 0x4] + adds r0, r1 + strh r0, [r4, 0x32] + movs r0, 0x1 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x6] + adds r0, r5 + strh r0, [r4, 0x36] + ldr r0, _08141CA8 @ =0x0000ffe0 + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_80786EC + ldr r1, _08141CAC @ =gUnknown_02024BE0 + ldr r0, _08141CB0 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08141CB4 @ =gSprites + adds r0, r1 + movs r1, 0x1 + bl StartSpriteAnim + ldr r0, _08141CB8 @ =sub_8141CBC + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08141CA4: .4byte gBattleAnimArgs +_08141CA8: .4byte 0x0000ffe0 +_08141CAC: .4byte gUnknown_02024BE0 +_08141CB0: .4byte gUnknown_0202F7C8 +_08141CB4: .4byte gSprites +_08141CB8: .4byte sub_8141CBC + thumb_func_end sub_8141C30 + + thumb_func_start sub_8141CBC +sub_8141CBC: @ 8141CBC + push {lr} + adds r3, r0, 0 + ldr r2, _08141CE4 @ =gSprites + ldr r1, _08141CE8 @ =gUnknown_02024BE0 + ldr r0, _08141CEC @ =gUnknown_0202F7C8 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x2B + ldrb r0, [r0] + cmp r0, 0x1 + bne _08141CE0 + ldr r0, _08141CF0 @ =sub_8141CF4 + str r0, [r3, 0x1C] +_08141CE0: + pop {r0} + bx r0 + .align 2, 0 +_08141CE4: .4byte gSprites +_08141CE8: .4byte gUnknown_02024BE0 +_08141CEC: .4byte gUnknown_0202F7C8 +_08141CF0: .4byte sub_8141CF4 + thumb_func_end sub_8141CBC + + thumb_func_start sub_8141CF4 +sub_8141CF4: @ 8141CF4 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _08141D16 + movs r0, 0 + strh r0, [r4, 0x2E] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08141D1C @ =sub_8141D20 + str r0, [r4, 0x1C] +_08141D16: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08141D1C: .4byte sub_8141D20 + thumb_func_end sub_8141CF4 + + thumb_func_start sub_8141D20 +sub_8141D20: @ 8141D20 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _08141D70 @ =gSprites + ldr r3, _08141D74 @ =gUnknown_02024BE0 + ldr r2, _08141D78 @ =gUnknown_0202F7C8 + ldrb r0, [r2] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 27 + cmp r0, 0 + bge _08141D68 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + ble _08141D68 + ldrb r0, [r2] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl move_anim_8072740 +_08141D68: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08141D70: .4byte gSprites +_08141D74: .4byte gUnknown_02024BE0 +_08141D78: .4byte gUnknown_0202F7C8 + thumb_func_end sub_8141D20 + + thumb_func_start sub_8141D7C +sub_8141D7C: @ 8141D7C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + bl battle_get_side_with_given_state + ldr r1, _08141DA4 @ =gUnknown_0202F7C8 + strb r0, [r1] + movs r0, 0x1 + bl battle_get_side_with_given_state + ldr r1, _08141DA8 @ =gUnknown_0202F7C9 + strb r0, [r1] + adds r0, r4, 0 + bl move_anim_task_del + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08141DA4: .4byte gUnknown_0202F7C8 +_08141DA8: .4byte gUnknown_0202F7C9 + thumb_func_end sub_8141D7C + + thumb_func_start sub_8141DAC +sub_8141DAC: @ 8141DAC + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _08141DC0 @ =0x02017840 + ldrh r1, [r0] + cmp r1, 0x53 + bne _08141DC8 + ldr r1, _08141DC4 @ =gBattleAnimArgs + movs r0, 0x1 + b _08141E00 + .align 2, 0 +_08141DC0: .4byte 0x02017840 +_08141DC4: .4byte gBattleAnimArgs +_08141DC8: + cmp r1, 0xFA + bne _08141DD8 + ldr r1, _08141DD4 @ =gBattleAnimArgs + movs r0, 0x2 + b _08141E00 + .align 2, 0 +_08141DD4: .4byte gBattleAnimArgs +_08141DD8: + cmp r1, 0x80 + bne _08141DE8 + ldr r1, _08141DE4 @ =gBattleAnimArgs + movs r0, 0x3 + b _08141E00 + .align 2, 0 +_08141DE4: .4byte gBattleAnimArgs +_08141DE8: + movs r0, 0xA4 + lsls r0, 1 + cmp r1, r0 + bne _08141DFC + ldr r1, _08141DF8 @ =gBattleAnimArgs + movs r0, 0x4 + b _08141E00 + .align 2, 0 +_08141DF8: .4byte gBattleAnimArgs +_08141DFC: + ldr r1, _08141E0C @ =gBattleAnimArgs + movs r0, 0 +_08141E00: + strh r0, [r1] + adds r0, r2, 0 + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_08141E0C: .4byte gBattleAnimArgs + thumb_func_end sub_8141DAC + + thumb_func_start sub_8141E10 +sub_8141E10: @ 8141E10 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08141E2C @ =gUnknown_0202F7C8 + ldr r1, _08141E30 @ =0x02017840 + ldrh r1, [r1] + strb r1, [r2] + ldr r2, _08141E34 @ =gUnknown_0202F7C9 + lsrs r1, 8 + strb r1, [r2] + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_08141E2C: .4byte gUnknown_0202F7C8 +_08141E30: .4byte 0x02017840 +_08141E34: .4byte gUnknown_0202F7C9 + thumb_func_end sub_8141E10 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_message.s b/asm/battle_message.s index 8f903970f..c4e4a7dd0 100644 --- a/asm/battle_message.s +++ b/asm/battle_message.s @@ -136,7 +136,7 @@ _08120BB0: .4byte _08120DE8 .4byte _08120E50 _08120BC8: - ldr r0, _08120BEC @ =gUnknown_020239F8 + ldr r0, _08120BEC @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x8 ands r0, r1 @@ -156,7 +156,7 @@ _08120BE8: ldr r6, _08120BF4 @ =gUnknown_084005DB b _08120F70 .align 2, 0 -_08120BEC: .4byte gUnknown_020239F8 +_08120BEC: .4byte gBattleTypeFlags _08120BF0: .4byte gUnknown_084005C7 _08120BF4: .4byte gUnknown_084005DB _08120BF8: @@ -203,7 +203,7 @@ _08120C40: lsls r0, 24 cmp r0, 0 bne _08120C7C - ldr r0, _08120C68 @ =gUnknown_020239F8 + ldr r0, _08120C68 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -219,7 +219,7 @@ _08120C64: ldr r6, _08120C70 @ =gUnknown_084006F1 b _08120F70 .align 2, 0 -_08120C68: .4byte gUnknown_020239F8 +_08120C68: .4byte gBattleTypeFlags _08120C6C: .4byte gUnknown_084006A4 _08120C70: .4byte gUnknown_084006F1 _08120C74: @@ -228,7 +228,7 @@ _08120C74: .align 2, 0 _08120C78: .4byte gUnknown_0840069C _08120C7C: - ldr r0, _08120C94 @ =gUnknown_020239F8 + ldr r0, _08120C94 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -241,7 +241,7 @@ _08120C7C: ldr r6, _08120C98 @ =gUnknown_0840065C b _08120F70 .align 2, 0 -_08120C94: .4byte gUnknown_020239F8 +_08120C94: .4byte gBattleTypeFlags _08120C98: .4byte gUnknown_0840065C _08120C9C: movs r0, 0x2 @@ -290,7 +290,7 @@ _08120CF0: .4byte gUnknown_08400709 _08120CF4: cmp r2, 0x1 beq _08120D04 - ldr r0, _08120D08 @ =gUnknown_020239F8 + ldr r0, _08120D08 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -300,7 +300,7 @@ _08120D04: ldr r6, _08120D0C @ =gUnknown_08400727 b _08120F70 .align 2, 0 -_08120D08: .4byte gUnknown_020239F8 +_08120D08: .4byte gBattleTypeFlags _08120D0C: .4byte gUnknown_08400727 _08120D10: ldr r6, _08120D1C @ =gUnknown_08400749 @@ -320,7 +320,7 @@ _08120D24: lsls r0, 4 cmp r1, r0 bne _08120D54 - ldr r0, _08120D48 @ =gUnknown_020239F8 + ldr r0, _08120D48 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -333,7 +333,7 @@ _08120D40: b _08120F70 .align 2, 0 _08120D44: .4byte gTrainerBattleOpponent -_08120D48: .4byte gUnknown_020239F8 +_08120D48: .4byte gBattleTypeFlags _08120D4C: .4byte gUnknown_08400771 _08120D50: .4byte gUnknown_08400781 _08120D54: @@ -354,7 +354,7 @@ _08120D5C: ldrb r3, [r0] cmp r3, 0 beq _08120D82 - ldr r0, _08120D90 @ =gUnknown_020239F8 + ldr r0, _08120D90 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -366,7 +366,7 @@ _08120D82: .align 2, 0 _08120D88: .4byte 0x00016003 _08120D8C: .4byte 0x000160c1 -_08120D90: .4byte gUnknown_020239F8 +_08120D90: .4byte gBattleTypeFlags _08120D94: .4byte gUnknown_084006B3 _08120D98: cmp r3, 0x1 @@ -387,7 +387,7 @@ _08120DAC: _08120DB0: .4byte gUnknown_084006D5 _08120DB4: .4byte gUnknown_084006C6 _08120DB8: - ldr r0, _08120DD4 @ =gUnknown_020239F8 + ldr r0, _08120DD4 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -403,7 +403,7 @@ _08120DD0: ldr r6, _08120DDC @ =gUnknown_0840068C b _08120F70 .align 2, 0 -_08120DD4: .4byte gUnknown_020239F8 +_08120DD4: .4byte gBattleTypeFlags _08120DD8: .4byte gUnknown_0840067C _08120DDC: .4byte gUnknown_0840068C _08120DE0: @@ -491,7 +491,7 @@ _08120E7C: _08120E90: .4byte gUnknown_030041C0 _08120E94: .4byte gUnknown_083FFEFC _08120E98: - ldr r0, _08120EAC @ =gUnknown_020239F8 + ldr r0, _08120EAC @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -501,7 +501,7 @@ _08120E98: ldr r6, _08120EB4 @ =gUnknown_083FFFF7 b _08120F70 .align 2, 0 -_08120EAC: .4byte gUnknown_020239F8 +_08120EAC: .4byte gBattleTypeFlags _08120EB0: .4byte gUnknown_083FFFEA _08120EB4: .4byte gUnknown_083FFFF7 _08120EB8: @@ -518,7 +518,7 @@ _08120EB8: eors r0, r1 strb r0, [r5] _08120ED2: - ldr r0, _08120EF0 @ =gUnknown_020239F8 + ldr r0, _08120EF0 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -534,7 +534,7 @@ _08120ED2: beq _08120EFE b _08120F70 .align 2, 0 -_08120EF0: .4byte gUnknown_020239F8 +_08120EF0: .4byte gBattleTypeFlags _08120EF4: .4byte gUnknown_030041C0 _08120EF8: cmp r0, 0x3 @@ -975,7 +975,7 @@ _081212A8: adds r2, r4, 0 cmp r0, 0 beq _0812131C - ldr r0, _081212D0 @ =gUnknown_020239F8 + ldr r0, _081212D0 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x8 ands r0, r1 @@ -986,7 +986,7 @@ _081212A8: b _081212E6 .align 2, 0 _081212CC: .4byte gUnknown_02024C07 -_081212D0: .4byte gUnknown_020239F8 +_081212D0: .4byte gBattleTypeFlags _081212D4: .4byte gUnknown_08400791 _081212D8: .4byte gUnknown_08400797 _081212DC: @@ -1089,7 +1089,7 @@ _081213A8: lsls r0, 24 cmp r0, 0 beq _0812140C - ldr r0, _081213F8 @ =gUnknown_020239F8 + ldr r0, _081213F8 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x8 ands r0, r1 @@ -1124,7 +1124,7 @@ _081213E8: b _08121908 .align 2, 0 _081213F4: .4byte gUnknown_02024C07 -_081213F8: .4byte gUnknown_020239F8 +_081213F8: .4byte gBattleTypeFlags _081213FC: .4byte gUnknown_08400791 _08121400: .4byte gUnknown_08400797 _08121404: .4byte gUnknown_02024A6A @@ -1145,7 +1145,7 @@ _0812141C: lsls r0, 24 cmp r0, 0 beq _08121480 - ldr r0, _0812146C @ =gUnknown_020239F8 + ldr r0, _0812146C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x8 ands r0, r1 @@ -1180,7 +1180,7 @@ _0812145C: b _08121908 .align 2, 0 _08121468: .4byte gUnknown_02024C08 -_0812146C: .4byte gUnknown_020239F8 +_0812146C: .4byte gBattleTypeFlags _08121470: .4byte gUnknown_08400791 _08121474: .4byte gUnknown_08400797 _08121478: .4byte gUnknown_02024A6A @@ -1201,7 +1201,7 @@ _08121490: lsls r0, 24 cmp r0, 0 beq _081214F4 - ldr r0, _081214E0 @ =gUnknown_020239F8 + ldr r0, _081214E0 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x8 ands r0, r1 @@ -1236,7 +1236,7 @@ _081214D0: b _08121908 .align 2, 0 _081214DC: .4byte gUnknown_02024C0A -_081214E0: .4byte gUnknown_020239F8 +_081214E0: .4byte gBattleTypeFlags _081214E4: .4byte gUnknown_08400791 _081214E8: .4byte gUnknown_08400797 _081214EC: .4byte gUnknown_02024A6A @@ -1257,7 +1257,7 @@ _08121504: lsls r0, 24 cmp r0, 0 beq _08121568 - ldr r0, _08121554 @ =gUnknown_020239F8 + ldr r0, _08121554 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x8 ands r0, r1 @@ -1292,7 +1292,7 @@ _08121544: b _08121908 .align 2, 0 _08121550: .4byte gUnknown_02024A60 -_08121554: .4byte gUnknown_020239F8 +_08121554: .4byte gBattleTypeFlags _08121558: .4byte gUnknown_08400791 _0812155C: .4byte gUnknown_08400797 _08121560: .4byte gUnknown_02024A6A @@ -1316,7 +1316,7 @@ _08121578: adds r2, r4, 0 cmp r0, 0 beq _081215E8 - ldr r0, _081215D4 @ =gUnknown_020239F8 + ldr r0, _081215D4 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x8 ands r0, r1 @@ -1353,7 +1353,7 @@ _081215BC: .align 2, 0 _081215CC: .4byte 0x02000000 _081215D0: .4byte 0x00016003 -_081215D4: .4byte gUnknown_020239F8 +_081215D4: .4byte gBattleTypeFlags _081215D8: .4byte gUnknown_08400791 _081215DC: .4byte gUnknown_08400797 _081215E0: .4byte gUnknown_02024A6A @@ -1419,7 +1419,7 @@ _08121652: .align 2, 0 _0812165C: .4byte gMoveNames _08121660: - ldr r0, _081216AC @ =gUnknown_020239F8 + ldr r0, _081216AC @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -1456,7 +1456,7 @@ _08121660: mov r4, sp b _081219E6 .align 2, 0 -_081216AC: .4byte gUnknown_020239F8 +_081216AC: .4byte gBattleTypeFlags _081216B0: .4byte gUnknown_02024C04 _081216B4: .4byte gLinkPlayers _081216B8: .4byte 0x02000000 @@ -1543,7 +1543,7 @@ _0812174C: .align 2, 0 _08121764: .4byte gTrainerBattleOpponent _08121768: - ldr r0, _08121784 @ =gUnknown_020239F8 + ldr r0, _08121784 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x80 lsls r0, 1 @@ -1556,7 +1556,7 @@ _08121768: movs r1, 0xD b _081217AE .align 2, 0 -_08121784: .4byte gUnknown_020239F8 +_08121784: .4byte gBattleTypeFlags _08121788: movs r0, 0x80 lsls r0, 4 @@ -1606,7 +1606,7 @@ _081217C0: _081217E4: .4byte gTrainerBattleOpponent _081217E8: .4byte 0x02017002 _081217EC: - ldr r0, _08121804 @ =gUnknown_020239F8 + ldr r0, _08121804 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x80 lsls r0, 1 @@ -1618,7 +1618,7 @@ _081217EC: mov r4, sp b _081219E6 .align 2, 0 -_08121804: .4byte gUnknown_020239F8 +_08121804: .4byte gBattleTypeFlags _08121808: movs r0, 0x80 lsls r0, 4 @@ -1723,7 +1723,7 @@ _081218C0: lsls r0, 24 cmp r0, 0 beq _08121934 - ldr r0, _08121920 @ =gUnknown_020239F8 + ldr r0, _08121920 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x8 ands r0, r1 @@ -1765,7 +1765,7 @@ _0812190E: .align 2, 0 _08121918: .4byte 0x02000000 _0812191C: .4byte 0x00016003 -_08121920: .4byte gUnknown_020239F8 +_08121920: .4byte gBattleTypeFlags _08121924: .4byte gUnknown_08400791 _08121928: .4byte gUnknown_08400797 _0812192C: .4byte gEnemyParty @@ -2076,7 +2076,7 @@ _08121B64: .align 2, 0 _08121B84: .4byte gPlayerParty _08121B88: - ldr r0, _08121BA0 @ =gUnknown_020239F8 + ldr r0, _08121BA0 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x8 ands r0, r1 @@ -2087,7 +2087,7 @@ _08121B88: bl StringAppend b _08121BB0 .align 2, 0 -_08121BA0: .4byte gUnknown_020239F8 +_08121BA0: .4byte gBattleTypeFlags _08121BA4: .4byte gUnknown_08400797 _08121BA8: ldr r1, _08121BD4 @ =gUnknown_08400791 @@ -2196,7 +2196,7 @@ _08121C78: ldrb r0, [r0, 0x2] lsls r0, 8 orrs r2, r0 - ldr r0, _08121CC4 @ =gUnknown_020239F8 + ldr r0, _08121CC4 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -2228,7 +2228,7 @@ _08121C78: ldr r1, _08121CDC @ =gUnknown_08400A85 b _08121CE2 .align 2, 0 -_08121CC4: .4byte gUnknown_020239F8 +_08121CC4: .4byte gBattleTypeFlags _08121CC8: .4byte gLinkPlayers _08121CCC: .4byte 0x02000000 _08121CD0: .4byte 0x000160cb diff --git a/asm/battle_party_menu.s b/asm/battle_party_menu.s new file mode 100644 index 000000000..471c5ccc0 --- /dev/null +++ b/asm/battle_party_menu.s @@ -0,0 +1,1263 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start SetUpBattlePartyMenu +SetUpBattlePartyMenu: @ 8094E58 + push {r4,r5,lr} + ldr r1, _08094E78 @ =0x0201b000 + movs r2, 0x99 + lsls r2, 2 + adds r0, r1, r2 + movs r3, 0 + ldrsh r0, [r0, r3] + adds r4, r1, 0 + cmp r0, 0xA + bls _08094E6E + b _08095048 +_08094E6E: + lsls r0, 2 + ldr r1, _08094E7C @ =_08094E80 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08094E78: .4byte 0x0201b000 +_08094E7C: .4byte _08094E80 + .align 2, 0 +_08094E80: + .4byte _08094EAC + .4byte _08094F28 + .4byte _08094F3C + .4byte _08094F4A + .4byte _08094F6C + .4byte _08094F80 + .4byte _08094F94 + .4byte _08094FA8 + .4byte _08094FBC + .4byte _08094FD0 + .4byte _08095000 +_08094EAC: + bl IsLinkDoubleBattle + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08094EDC + ldr r1, _08094ED4 @ =0x0201b000 + ldr r0, _08094ED8 @ =0x00000266 + adds r4, r1, r0 + ldrh r2, [r4] + movs r3, 0 + ldrsh r0, [r4, r3] + cmp r0, 0x6 + bne _08094EEC + movs r0, 0 + strh r0, [r4] + movs r3, 0x99 + lsls r3, 2 + adds r1, r3 + b _08094FEC + .align 2, 0 +_08094ED4: .4byte 0x0201b000 +_08094ED8: .4byte 0x00000266 +_08094EDC: + ldr r1, _08094F10 @ =0x0201b000 + ldr r0, _08094F14 @ =0x00000266 + adds r4, r1, r0 + ldrh r2, [r4] + movs r3, 0 + ldrsh r0, [r4, r3] + cmp r0, 0x5 + bgt _08094F1C +_08094EEC: + movs r3, 0x98 + lsls r3, 2 + adds r0, r1, r3 + ldrb r0, [r0] + lsls r1, r2, 24 + lsrs r1, 24 + movs r2, 0 + ldrsh r3, [r4, r2] + movs r2, 0x64 + muls r2, r3 + ldr r3, _08094F18 @ =gPlayerParty + adds r2, r3 + bl TryCreatePartyMenuMonIcon + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _08095048 + .align 2, 0 +_08094F10: .4byte 0x0201b000 +_08094F14: .4byte 0x00000266 +_08094F18: .4byte gPlayerParty +_08094F1C: + movs r0, 0 + strh r0, [r4] + movs r3, 0x99 + lsls r3, 2 + adds r1, r3 + b _08094FEC +_08094F28: + bl LoadHeldItemIconGraphics + ldr r1, _08094F38 @ =0x0201b000 + movs r0, 0x99 + lsls r0, 2 + adds r1, r0 + b _08094FEC + .align 2, 0 +_08094F38: .4byte 0x0201b000 +_08094F3C: + movs r1, 0x98 + lsls r1, 2 + adds r0, r4, r1 + ldrb r0, [r0] + bl CreateHeldItemIcons_806DC34 + b _08094FE6 +_08094F4A: + movs r3, 0x98 + lsls r3, 2 + adds r0, r4, r3 + ldrb r0, [r0] + ldr r1, _08094F68 @ =0x00000266 + adds r5, r4, r1 + ldrb r1, [r5] + bl sub_806BD58 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08094FE2 + b _08094FF8 + .align 2, 0 +_08094F68: .4byte 0x00000266 +_08094F6C: + bl PartyMenuPrintMonsLevelOrStatus + ldr r1, _08094F7C @ =0x0201b000 + movs r3, 0x99 + lsls r3, 2 + adds r1, r3 + b _08094FEC + .align 2, 0 +_08094F7C: .4byte 0x0201b000 +_08094F80: + bl PrintPartyMenuMonNicknames + ldr r1, _08094F90 @ =0x0201b000 + movs r0, 0x99 + lsls r0, 2 + adds r1, r0 + b _08094FEC + .align 2, 0 +_08094F90: .4byte 0x0201b000 +_08094F94: + bl PartyMenuTryPrintMonsHP + ldr r1, _08094FA4 @ =0x0201b000 + movs r2, 0x99 + lsls r2, 2 + adds r1, r2 + b _08094FEC + .align 2, 0 +_08094FA4: .4byte 0x0201b000 +_08094FA8: + bl nullsub_13 + ldr r1, _08094FB8 @ =0x0201b000 + movs r3, 0x99 + lsls r3, 2 + adds r1, r3 + b _08094FEC + .align 2, 0 +_08094FB8: .4byte 0x0201b000 +_08094FBC: + bl PartyMenuDrawHPBars + ldr r1, _08094FCC @ =0x0201b000 + movs r0, 0x99 + lsls r0, 2 + adds r1, r0 + b _08094FEC + .align 2, 0 +_08094FCC: .4byte 0x0201b000 +_08094FD0: + ldr r1, _08094FF4 @ =0x00000266 + adds r5, r4, r1 + ldrb r0, [r5] + bl sub_806B58C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08094FF8 +_08094FE2: + movs r0, 0 + strh r0, [r5] +_08094FE6: + movs r2, 0x99 + lsls r2, 2 + adds r1, r4, r2 +_08094FEC: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _08095048 + .align 2, 0 +_08094FF4: .4byte 0x00000266 +_08094FF8: + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + b _08095048 +_08095000: + ldr r0, _08095024 @ =gUnknown_02038473 + ldrb r4, [r0] + cmp r4, 0x3 + bne _0809503C + ldr r0, _08095028 @ =gScriptItemId + ldrh r0, [r0] + bl GetItemEffectType + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xA + bne _08095034 + ldr r0, _0809502C @ =0x0201b000 + ldr r3, _08095030 @ =0x00000259 + adds r0, r3 + movs r1, 0xFF + strb r1, [r0] + b _0809503C + .align 2, 0 +_08095024: .4byte gUnknown_02038473 +_08095028: .4byte gScriptItemId +_0809502C: .4byte 0x0201b000 +_08095030: .4byte 0x00000259 +_08095034: + ldr r0, _08095040 @ =0x0201b000 + ldr r1, _08095044 @ =0x00000259 + adds r0, r1 + strb r4, [r0] +_0809503C: + movs r0, 0x1 + b _0809504A + .align 2, 0 +_08095040: .4byte 0x0201b000 +_08095044: .4byte 0x00000259 +_08095048: + movs r0, 0 +_0809504A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end SetUpBattlePartyMenu + + thumb_func_start sub_8095050 +sub_8095050: @ 8095050 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x64 + muls r0, r1 + ldr r1, _0809508C @ =gPlayerParty + adds r0, r1 + movs r1, 0x2D + bl GetMonData + adds r5, r0, 0 + cmp r5, 0 + bne _080950C8 + ldr r0, _08095090 @ =gUnknown_02038473 + ldrb r4, [r0] + cmp r4, 0x1 + bne _0809509C + ldr r3, _08095094 @ =gTasks + ldr r2, _08095098 @ =0x0201b000 + movs r0, 0x98 + lsls r0, 2 + adds r2, r0 + ldrb r1, [r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + b _080950DE + .align 2, 0 +_0809508C: .4byte gPlayerParty +_08095090: .4byte gUnknown_02038473 +_08095094: .4byte gTasks +_08095098: .4byte 0x0201b000 +_0809509C: + ldr r3, _080950C0 @ =gTasks + ldr r2, _080950C4 @ =0x0201b000 + movs r0, 0x98 + lsls r0, 2 + adds r2, r0 + ldrb r1, [r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + strh r5, [r0, 0x10] + ldrb r1, [r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + strh r5, [r0, 0x12] + b _080950EC + .align 2, 0 +_080950C0: .4byte gTasks +_080950C4: .4byte 0x0201b000 +_080950C8: + ldr r3, _08095108 @ =gTasks + ldr r2, _0809510C @ =0x0201b000 + movs r0, 0x98 + lsls r0, 2 + adds r2, r0 + ldrb r1, [r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + movs r4, 0x2 +_080950DE: + strh r4, [r0, 0x10] + ldrb r1, [r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + strh r4, [r0, 0x12] +_080950EC: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r3 + ldrb r0, [r0, 0x10] + ldr r1, _08095110 @ =gUnknown_083B5FF4 + ldr r2, _08095114 @ =gUnknown_083B5FCC + movs r3, 0 + bl sub_806E750 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08095108: .4byte gTasks +_0809510C: .4byte 0x0201b000 +_08095110: .4byte gUnknown_083B5FF4 +_08095114: .4byte gUnknown_083B5FCC + thumb_func_end sub_8095050 + + thumb_func_start SetUpBattlePokemonMenu +SetUpBattlePokemonMenu: @ 8095118 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08095150 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0809512C + b _08095268 +_0809512C: + ldr r0, _08095154 @ =gUnknown_02038473 + ldrb r0, [r0] + cmp r0, 0x3 + bne _08095164 + ldr r5, _08095158 @ =gScriptItemId + ldrh r0, [r5] + bl GetItemEffectType + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xA + bne _08095164 + ldr r0, _0809515C @ =gUnknown_03004AE4 + ldrh r1, [r5] + ldr r2, _08095160 @ =sub_80952E4 + ldr r3, [r0] + b _080951AA + .align 2, 0 +_08095150: .4byte gPaletteFade +_08095154: .4byte gUnknown_02038473 +_08095158: .4byte gScriptItemId +_0809515C: .4byte gUnknown_03004AE4 +_08095160: .4byte sub_80952E4 +_08095164: + adds r0, r4, 0 + bl sub_806BD80 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + beq _08095178 + cmp r0, 0x2 + beq _08095214 + b _08095268 +_08095178: + ldr r0, _080951B4 @ =gUnknown_02038473 + ldrb r0, [r0] + cmp r0, 0x3 + bne _080951C8 + adds r0, r4, 0 + bl sub_806CA38 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _080951B8 @ =gPlayerParty + adds r0, r1 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0809521C + bl sub_806D5A4 + ldr r3, _080951BC @ =gUnknown_03004AE4 + ldr r0, _080951C0 @ =gScriptItemId + ldrh r1, [r0] + ldr r2, _080951C4 @ =sub_80952E4 + ldr r3, [r3] +_080951AA: + adds r0, r4, 0 + bl _call_via_r3 + b _08095268 + .align 2, 0 +_080951B4: .4byte gUnknown_02038473 +_080951B8: .4byte gPlayerParty +_080951BC: .4byte gUnknown_03004AE4 +_080951C0: .4byte gScriptItemId +_080951C4: .4byte sub_80952E4 +_080951C8: + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_806CA38 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _08095204 @ =gPlayerParty + adds r0, r1 + ldr r1, _08095208 @ =gStringVar1 + bl GetMonNickname + adds r0, r4, 0 + bl sub_806CA38 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_8095050 + ldr r1, _0809520C @ =sub_8095408 + ldr r2, _08095210 @ =SetUpBattlePokemonMenu + adds r0, r4, 0 + bl SetTaskFuncWithFollowupFunc + b _08095268 + .align 2, 0 +_08095204: .4byte gPlayerParty +_08095208: .4byte gStringVar1 +_0809520C: .4byte sub_8095408 +_08095210: .4byte SetUpBattlePokemonMenu +_08095214: + ldr r5, _08095224 @ =gUnknown_02038473 + ldrb r0, [r5] + cmp r0, 0x1 + bne _08095228 +_0809521C: + movs r0, 0x20 + bl PlaySE + b _08095268 + .align 2, 0 +_08095224: .4byte gUnknown_02038473 +_08095228: + movs r0, 0x5 + bl PlaySE + ldrb r0, [r5] + cmp r0, 0x3 + bne _08095254 + ldr r1, _08095248 @ =gUnknown_0202E8F4 + movs r0, 0 + strb r0, [r1] + ldr r1, _0809524C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095250 @ =sub_80952E4 + b _08095266 + .align 2, 0 +_08095248: .4byte gUnknown_0202E8F4 +_0809524C: .4byte gTasks +_08095250: .4byte sub_80952E4 +_08095254: + ldr r1, _08095270 @ =gUnknown_0202E8F4 + movs r0, 0 + strb r0, [r1] + ldr r1, _08095274 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095278 @ =sub_809527C +_08095266: + str r1, [r0] +_08095268: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08095270: .4byte gUnknown_0202E8F4 +_08095274: .4byte gTasks +_08095278: .4byte sub_809527C + thumb_func_end SetUpBattlePokemonMenu + + thumb_func_start sub_809527C +sub_809527C: @ 809527C + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _080952AC @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080952B0 @ =sub_80952B4 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080952AC: .4byte gTasks +_080952B0: .4byte sub_80952B4 + thumb_func_end sub_809527C + + thumb_func_start sub_80952B4 +sub_80952B4: @ 80952B4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080952DC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080952D6 + bl sub_8094D60 + adds r0, r4, 0 + bl DestroyTask + ldr r0, _080952E0 @ =sub_802E414 + bl SetMainCallback2 +_080952D6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080952DC: .4byte gPaletteFade +_080952E0: .4byte sub_802E414 + thumb_func_end sub_80952B4 + + thumb_func_start sub_80952E4 +sub_80952E4: @ 80952E4 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080952FC @ =gUnknown_0202E8F4 + ldrb r1, [r0] + cmp r1, 0 + beq _08095300 + adds r0, r4, 0 + bl sub_809527C + b _0809531E + .align 2, 0 +_080952FC: .4byte gUnknown_0202E8F4 +_08095300: + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _08095328 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809532C @ =sub_8095330 + str r1, [r0] +_0809531E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08095328: .4byte gTasks +_0809532C: .4byte sub_8095330 + thumb_func_end sub_80952E4 + + thumb_func_start sub_8095330 +sub_8095330: @ 8095330 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08095358 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08095350 + bl sub_8094D60 + adds r0, r4, 0 + bl DestroyTask + bl sub_80A6DCC +_08095350: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08095358: .4byte gPaletteFade + thumb_func_end sub_8095330 + + thumb_func_start sub_809535C +sub_809535C: @ 809535C + push {lr} + ldr r2, _08095380 @ =gPaletteFade + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + ldr r2, _08095384 @ =SetUpBattlePokemonMenu + movs r0, 0x1 + movs r1, 0xFF + movs r3, 0x5 + bl sub_806AF4C + ldr r0, _08095388 @ =sub_809538C + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_08095380: .4byte gPaletteFade +_08095384: .4byte SetUpBattlePokemonMenu +_08095388: .4byte sub_809538C + thumb_func_end sub_809535C + + thumb_func_start sub_809538C +sub_809538C: @ 809538C + push {r4,r5,lr} + ldr r4, _080953D8 @ =0x0201b260 + ldr r5, _080953DC @ =gUnknown_020384F0 +_08095392: + bl sub_806B124 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080953F4 + ldrb r0, [r4] + ldrb r1, [r5] + bl sub_806C994 + ldrb r0, [r4] + movs r1, 0 + bl sub_806BF74 + ldrb r1, [r5] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080953E0 @ =gPlayerParty + adds r0, r1 + ldr r1, _080953E4 @ =gStringVar1 + bl GetMonNickname + ldrb r0, [r4] + ldrb r1, [r5] + bl sub_8095050 + ldrb r0, [r4] + ldr r1, _080953E8 @ =sub_8095408 + ldr r2, _080953EC @ =SetUpBattlePokemonMenu + bl SetTaskFuncWithFollowupFunc + ldr r0, _080953F0 @ =sub_806AEDC + bl SetMainCallback2 + b _08095400 + .align 2, 0 +_080953D8: .4byte 0x0201b260 +_080953DC: .4byte gUnknown_020384F0 +_080953E0: .4byte gPlayerParty +_080953E4: .4byte gStringVar1 +_080953E8: .4byte sub_8095408 +_080953EC: .4byte SetUpBattlePokemonMenu +_080953F0: .4byte sub_806AEDC +_080953F4: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08095392 +_08095400: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_809538C + + thumb_func_start sub_8095408 +sub_8095408: @ 8095408 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + adds r4, r7, 0 + ldr r0, _0809543C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r3, 0x80 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _080954B8 + ldr r2, _08095440 @ =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08095444 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursor + b _080954B8 + .align 2, 0 +_0809543C: .4byte gPaletteFade +_08095440: .4byte gMain +_08095444: + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0809545A + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl MoveMenuCursor + b _080954B8 +_0809545A: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080954A4 + movs r0, 0x5 + bl PlaySE + ldr r1, _08095498 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldrb r4, [r0, 0x10] + ldr r5, _0809549C @ =gUnknown_083B5FF4 + ldr r6, _080954A0 @ =gUnknown_083B5FCC + bl GetMenuCursorPos + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_806E81C + adds r1, r0, 0 + adds r0, r7, 0 + bl _call_via_r1 + b _080954B8 + .align 2, 0 +_08095498: .4byte gTasks +_0809549C: .4byte gUnknown_083B5FF4 +_080954A0: .4byte gUnknown_083B5FCC +_080954A4: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080954B8 + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl BattlePokemonMenu_Cancel +_080954B8: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8095408 + + thumb_func_start sub_80954C0 +sub_80954C0: @ 80954C0 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080954D8 @ =gUnknown_0202E8F6 + ldrb r0, [r0] + cmp r0, 0 + bne _080954D4 + adds r0, r1, 0 + bl BattlePokemonMenu_Cancel +_080954D4: + pop {r0} + bx r0 + .align 2, 0 +_080954D8: .4byte gUnknown_0202E8F6 + thumb_func_end sub_80954C0 + + thumb_func_start BattleShowPokemonSummaryScreen +BattleShowPokemonSummaryScreen: @ 80954DC + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_806CA38 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0809552C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08095522 + adds r0, r4, 0 + bl DestroyTask + ldr r0, _08095530 @ =0x0201b000 + ldr r1, _08095534 @ =0x00000262 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + ldr r0, _08095538 @ =gPlayerParty + ldr r1, _0809553C @ =gPlayerPartyCount + ldrb r2, [r1] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldr r3, _08095540 @ =sub_809535C + movs r1, 0x4 + str r1, [sp] + adds r1, r5, 0 + bl ShowPokemonSummaryScreen +_08095522: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809552C: .4byte gPaletteFade +_08095530: .4byte 0x0201b000 +_08095534: .4byte 0x00000262 +_08095538: .4byte gPlayerParty +_0809553C: .4byte gPlayerPartyCount +_08095540: .4byte sub_809535C + thumb_func_end BattleShowPokemonSummaryScreen + + thumb_func_start BattlePokemonMenu_Summary +BattlePokemonMenu_Summary: @ 8095544 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_806CA38 + ldr r1, _0809557C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095580 @ =BattleShowPokemonSummaryScreen + str r1, [r0] + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809557C: .4byte gTasks +_08095580: .4byte BattleShowPokemonSummaryScreen + thumb_func_end BattlePokemonMenu_Summary + + thumb_func_start BattlePokemonMenu_Shift +BattlePokemonMenu_Shift: @ 8095584 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080955F8 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x10] + ldr r1, _080955FC @ =gUnknown_083B5FF4 + bl sub_806E7D0 + adds r0, r6, 0 + bl sub_806CA38 + lsls r0, 24 + lsrs r5, r0, 24 + bl IsLinkDoubleBattle + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08095610 + cmp r5, 0x1 + beq _080955C6 + cmp r5, 0x4 + beq _080955C6 + cmp r5, 0x5 + bne _08095610 +_080955C6: + bl sub_806D5A4 + ldr r4, _08095600 @ =gStringVar1 + bl sub_8040D08 + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + ldr r4, _08095604 @ =gStringVar4 + ldr r1, _08095608 @ =gOtherText_CantSwitchPokeWithYours + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_806E834 + ldr r1, _080955F8 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809560C @ =sub_80954C0 + b _0809589A + .align 2, 0 +_080955F8: .4byte gTasks +_080955FC: .4byte gUnknown_083B5FF4 +_08095600: .4byte gStringVar1 +_08095604: .4byte gStringVar4 +_08095608: .4byte gOtherText_CantSwitchPokeWithYours +_0809560C: .4byte sub_80954C0 +_08095610: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _08095654 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _0809566C + bl sub_806D5A4 + ldr r1, _08095658 @ =gStringVar1 + adds r0, r4, 0 + bl GetMonNickname + ldr r4, _0809565C @ =gStringVar4 + ldr r1, _08095660 @ =gOtherText_NoEnergyLeft + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_806E834 + ldr r1, _08095664 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095668 @ =sub_80954C0 + b _0809589A + .align 2, 0 +_08095654: .4byte gPlayerParty +_08095658: .4byte gStringVar1 +_0809565C: .4byte gStringVar4 +_08095660: .4byte gOtherText_NoEnergyLeft +_08095664: .4byte gTasks +_08095668: .4byte sub_80954C0 +_0809566C: + movs r4, 0 + ldr r0, _08095678 @ =gUnknown_02024A68 + lsls r1, r6, 2 + mov r8, r1 + b _080956A8 + .align 2, 0 +_08095678: .4byte gUnknown_02024A68 +_0809567C: + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080956A0 + adds r0, r5, 0 + bl sub_8094C20 + lsls r0, 24 + ldr r2, _080956EC @ =gUnknown_02024A6A + lsls r1, r4, 1 + adds r1, r2 + lsrs r0, 24 + ldrh r1, [r1] + cmp r0, r1 + bne _080956A0 + b _08095808 +_080956A0: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080956F0 @ =gUnknown_02024A68 +_080956A8: + ldrb r0, [r0] + cmp r4, r0 + bcc _0809567C + movs r2, 0x64 + mov r9, r2 + mov r0, r9 + muls r0, r5 + ldr r1, _080956F4 @ =gPlayerParty + mov r10, r1 + adds r7, r0, r1 + adds r0, r7, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + beq _08095708 + bl sub_806D5A4 + ldr r4, _080956F8 @ =gStringVar4 + ldr r1, _080956FC @ =gOtherText_EGGCantBattle + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_806E834 + ldr r1, _08095700 @ =gTasks + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095704 @ =sub_80954C0 + b _0809589A + .align 2, 0 +_080956EC: .4byte gUnknown_02024A6A +_080956F0: .4byte gUnknown_02024A68 +_080956F4: .4byte gPlayerParty +_080956F8: .4byte gStringVar4 +_080956FC: .4byte gOtherText_EGGCantBattle +_08095700: .4byte gTasks +_08095704: .4byte sub_80954C0 +_08095708: + adds r0, r5, 0 + bl sub_8094C20 + ldr r1, _0809574C @ =0x02000000 + ldr r2, _08095750 @ =0x0001609d + adds r1, r2 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bne _08095768 + bl sub_806D5A4 + ldr r1, _08095754 @ =gStringVar1 + adds r0, r7, 0 + bl GetMonNickname + ldr r4, _08095758 @ =gStringVar4 + ldr r1, _0809575C @ =gOtherText_AlreadySelected + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_806E834 + ldr r1, _08095760 @ =gTasks + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095764 @ =sub_80954C0 + b _0809589A + .align 2, 0 +_0809574C: .4byte 0x02000000 +_08095750: .4byte 0x0001609d +_08095754: .4byte gStringVar1 +_08095758: .4byte gStringVar4 +_0809575C: .4byte gOtherText_AlreadySelected +_08095760: .4byte gTasks +_08095764: .4byte sub_80954C0 +_08095768: + ldr r0, _08095790 @ =gUnknown_02038473 + ldrb r0, [r0] + cmp r0, 0x4 + bne _080957A0 + bl sub_806D5A4 + bl sub_8040B8C + ldr r0, _08095794 @ =gStringVar4 + movs r1, 0 + bl sub_806E834 + ldr r1, _08095798 @ =gTasks + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809579C @ =sub_80954C0 + b _0809589A + .align 2, 0 +_08095790: .4byte gUnknown_02038473 +_08095794: .4byte gStringVar4 +_08095798: .4byte gTasks +_0809579C: .4byte sub_80954C0 +_080957A0: + cmp r0, 0x2 + bne _08095854 + ldr r0, _080957EC @ =gUnknown_02024E6C + ldrb r4, [r0] + bl sub_806D5A4 + ldr r0, _080957F0 @ =gUnknown_02024A6A + lsls r4, 1 + adds r4, r0 + ldrb r0, [r4] + bl pokemon_order_func + lsls r0, 24 + lsrs r0, 24 + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + add r0, r10 + ldr r1, _080957F4 @ =gStringVar1 + bl GetMonNickname + ldr r4, _080957F8 @ =gStringVar4 + ldr r1, _080957FC @ =gOtherText_CantBeSwitched + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_806E834 + ldr r1, _08095800 @ =gTasks + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095804 @ =sub_80954C0 + b _0809589A + .align 2, 0 +_080957EC: .4byte gUnknown_02024E6C +_080957F0: .4byte gUnknown_02024A6A +_080957F4: .4byte gStringVar1 +_080957F8: .4byte gStringVar4 +_080957FC: .4byte gOtherText_CantBeSwitched +_08095800: .4byte gTasks +_08095804: .4byte sub_80954C0 +_08095808: + bl sub_806D5A4 + movs r0, 0x64 + muls r0, r5 + ldr r1, _0809583C @ =gPlayerParty + adds r0, r1 + ldr r1, _08095840 @ =gStringVar1 + bl GetMonNickname + ldr r4, _08095844 @ =gStringVar4 + ldr r1, _08095848 @ =gOtherText_AlreadyBattle + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_806E834 + ldr r1, _0809584C @ =gTasks + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095850 @ =sub_80954C0 + b _0809589A + .align 2, 0 +_0809583C: .4byte gPlayerParty +_08095840: .4byte gStringVar1 +_08095844: .4byte gStringVar4 +_08095848: .4byte gOtherText_AlreadyBattle +_0809584C: .4byte gTasks +_08095850: .4byte sub_80954C0 +_08095854: + adds r0, r5, 0 + bl sub_8094C20 + ldr r1, _080958AC @ =gUnknown_0202E8F5 + strb r0, [r1] + ldr r1, _080958B0 @ =gUnknown_0202E8F4 + movs r0, 0x1 + strb r0, [r1] + ldr r1, _080958B4 @ =gUnknown_02024A6A + ldr r0, _080958B8 @ =gUnknown_02024E6C + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrb r0, [r0] + bl pokemon_order_func + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8094C98 + mov r0, r9 + muls r0, r4 + add r0, r10 + adds r1, r7, 0 + bl sub_806E6F0 + ldr r1, _080958BC @ =gTasks + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _080958C0 @ =sub_809527C +_0809589A: + str r1, [r0] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080958AC: .4byte gUnknown_0202E8F5 +_080958B0: .4byte gUnknown_0202E8F4 +_080958B4: .4byte gUnknown_02024A6A +_080958B8: .4byte gUnknown_02024E6C +_080958BC: .4byte gTasks +_080958C0: .4byte sub_809527C + thumb_func_end BattlePokemonMenu_Shift + + thumb_func_start BattlePokemonMenu_Cancel +BattlePokemonMenu_Cancel: @ 80958C4 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + bl sub_8072DEC + ldr r0, _080958FC @ =gTasks + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + ldrb r0, [r4, 0x10] + ldr r1, _08095900 @ =gUnknown_083B5FF4 + bl sub_806E7D0 + ldrh r0, [r4, 0x12] + strh r0, [r4, 0x10] + movs r0, 0 + movs r1, 0 + bl sub_806D538 + adds r0, r5, 0 + bl SwitchTaskToFollowupFunc + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080958FC: .4byte gTasks +_08095900: .4byte gUnknown_083B5FF4 + thumb_func_end BattlePokemonMenu_Cancel + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_records.s b/asm/battle_records.s index 4960803ca..60d7b9b2b 100644 --- a/asm/battle_records.s +++ b/asm/battle_records.s @@ -47,13 +47,13 @@ _0810FFAE: bge _0810FFAE movs r0, 0x17 movs r1, 0 - bl sav12_xor_set + bl SetGameStat movs r0, 0x18 movs r1, 0 - bl sav12_xor_set + bl SetGameStat movs r0, 0x19 movs r1, 0 - bl sav12_xor_set + bl SetGameStat pop {r4,r5} pop {r0} bx r0 @@ -264,12 +264,12 @@ _0811013A: movs r4, 0x19 _0811013C: adds r0, r4, 0 - bl sub_8053108 + bl GetGameStat ldr r1, _08110154 @ =0x0000270e cmp r0, r1 bhi _0811014E adds r0, r4, 0 - bl sav12_xor_increment + bl IncrementGameStat _0811014E: pop {r4} pop {r0} @@ -367,7 +367,7 @@ sub_81101FC: @ 81101FC lsls r1, r0, 3 subs r1, r0 lsls r1, 3 - ldr r0, _08110220 @ =gUnknown_0202FFD4 + ldr r0, _08110220 @ =gTrainerCards + 0x14 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 @@ -382,7 +382,7 @@ _0811021A: pop {r0} bx r0 .align 2, 0 -_08110220: .4byte gUnknown_0202FFD4 +_08110220: .4byte gTrainerCards + 0x14 _08110224: .4byte 0x0000270f thumb_func_end sub_81101FC @@ -392,7 +392,7 @@ sub_8110228: @ 8110228 lsls r1, r0, 3 subs r1, r0 lsls r1, 3 - ldr r0, _0811024C @ =gUnknown_0202FFD6 + ldr r0, _0811024C @ =gTrainerCards + 0x16 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 @@ -407,7 +407,7 @@ _08110246: pop {r0} bx r0 .align 2, 0 -_0811024C: .4byte gUnknown_0202FFD6 +_0811024C: .4byte gTrainerCards + 0x16 _08110250: .4byte 0x0000270f thumb_func_end sub_8110228 @@ -452,7 +452,7 @@ sub_8110290: @ 8110290 lsls r2, r4, 3 subs r2, r4 lsls r2, 3 - ldr r3, _081102D8 @ =gUnknown_0202FFF0 + ldr r3, _081102D8 @ =gTrainerCards + 0x30 adds r1, r2, r3 subs r3, 0x30 adds r2, r3 @@ -477,7 +477,7 @@ sub_8110290: @ 8110290 bx r0 .align 2, 0 _081102D4: .4byte gSaveBlock1 + 0x30B8 -_081102D8: .4byte gUnknown_0202FFF0 +_081102D8: .4byte gTrainerCards + 0x30 _081102DC: .4byte gUnknown_02024D26 _081102E0: .4byte gLinkPlayers _081102E4: .4byte gLinkPlayerMapObjects @@ -488,7 +488,7 @@ PrintLinkBattleWinsLossesDraws: @ 81102E8 push {r4,lr} ldr r4, _08110338 @ =gStringVar1 movs r0, 0x17 - bl sub_8053108 + bl GetGameStat adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x1 @@ -496,7 +496,7 @@ PrintLinkBattleWinsLossesDraws: @ 81102E8 bl ConvertIntToDecimalStringN_DigitWidth6 ldr r4, _0811033C @ =gStringVar2 movs r0, 0x18 - bl sub_8053108 + bl GetGameStat adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x1 @@ -504,7 +504,7 @@ PrintLinkBattleWinsLossesDraws: @ 81102E8 bl ConvertIntToDecimalStringN_DigitWidth6 ldr r4, _08110340 @ =gStringVar3 movs r0, 0x19 - bl sub_8053108 + bl GetGameStat adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x1 diff --git a/asm/berry_blender.s b/asm/berry_blender.s index affe536ca..666882c04 100644 --- a/asm/berry_blender.s +++ b/asm/berry_blender.s @@ -4998,13 +4998,13 @@ _08050AEA: cmp r0, 0 bne _08050B00 movs r0, 0x22 - bl sav12_xor_increment + bl IncrementGameStat b _08050C82 .align 2, 0 _08050AFC: .4byte gUnknown_03004834 _08050B00: movs r0, 0x21 - bl sav12_xor_increment + bl IncrementGameStat b _08050C82 _08050B08: ldr r0, _08050B2C @ =gUnknown_03004854 @@ -5295,13 +5295,13 @@ _08050D44: ldr r0, [r1] adds r0, 0x1 str r0, [r1] - ldr r1, _08050D6C @ =gUnknown_3001BB4 + ldr r1, _08050D6C @ =gSoftResetDisabled movs r0, 0x1 strb r0, [r1] b _08050E28 .align 2, 0 _08050D68: .4byte gUnknown_03004854 -_08050D6C: .4byte gUnknown_3001BB4 +_08050D6C: .4byte gSoftResetDisabled _08050D70: bl sub_8125E2C ldr r0, _08050D7C @ =gUnknown_03004854 @@ -5389,13 +5389,13 @@ _08050E06: str r0, [r1] cmp r0, 0x5 ble _08050E28 - ldr r1, _08050E24 @ =gUnknown_3001BB4 + ldr r1, _08050E24 @ =gSoftResetDisabled movs r0, 0 strb r0, [r1] movs r0, 0x1 b _08050E2A .align 2, 0 -_08050E24: .4byte gUnknown_3001BB4 +_08050E24: .4byte gSoftResetDisabled _08050E28: movs r0, 0 _08050E2A: diff --git a/asm/berry_tag_screen.s b/asm/berry_tag_screen.s deleted file mode 100644 index 7f26885e6..000000000 --- a/asm/berry_tag_screen.s +++ /dev/null @@ -1,1115 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_8146014 -sub_8146014: @ 8146014 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - bl RunTasks - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_8146014 - - thumb_func_start sub_814602C -sub_814602C: @ 814602C - push {lr} - ldr r2, _0814604C @ =REG_BG0VOFS - ldr r0, _08146050 @ =gUnknown_030041B4 - ldrh r1, [r0] - strh r1, [r2] - ldr r0, _08146054 @ =REG_BG1VOFS - strh r1, [r0] - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 -_0814604C: .4byte REG_BG0VOFS -_08146050: .4byte gUnknown_030041B4 -_08146054: .4byte REG_BG1VOFS - thumb_func_end sub_814602C - - thumb_func_start sub_8146058 -sub_8146058: @ 8146058 - push {r4,lr} - sub sp, 0x4 - ldr r0, _08146074 @ =gMain - ldr r1, _08146078 @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xC - bls _0814606A - b _08146250 -_0814606A: - lsls r0, 2 - ldr r1, _0814607C @ =_08146080 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08146074: .4byte gMain -_08146078: .4byte 0x0000043c -_0814607C: .4byte _08146080 - .align 2, 0 -_08146080: - .4byte _081460B4 - .4byte _081460CC - .4byte _081460F0 - .4byte _081460F6 - .4byte _08146110 - .4byte _0814611C - .4byte _0814613C - .4byte _0814615C - .4byte _08146170 - .4byte _08146190 - .4byte _081461B4 - .4byte _08146204 - .4byte _08146224 -_081460B4: - bl sub_80F9438 - bl sub_80F9368 - bl sub_8146288 - ldr r1, _081460C8 @ =REG_BLDCNT - movs r0, 0 - strh r0, [r1] - b _0814620C - .align 2, 0 -_081460C8: .4byte REG_BLDCNT -_081460CC: - bl ResetPaletteFade - ldr r2, _081460E4 @ =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - ldr r1, _081460E8 @ =gMain - ldr r0, _081460EC @ =0x0000043c - adds r1, r0 - b _08146212 - .align 2, 0 -_081460E4: .4byte gPaletteFade -_081460E8: .4byte gMain -_081460EC: .4byte 0x0000043c -_081460F0: - bl ResetSpriteData - b _0814620C -_081460F6: - ldr r0, _08146104 @ =gWindowConfig_81E6E18 - bl SetUpWindowConfig - ldr r1, _08146108 @ =gMain - ldr r0, _0814610C @ =0x0000043c - adds r1, r0 - b _08146212 - .align 2, 0 -_08146104: .4byte gWindowConfig_81E6E18 -_08146108: .4byte gMain -_0814610C: .4byte 0x0000043c -_08146110: - ldr r0, _08146118 @ =gWindowConfig_81E6E18 - bl MultistepInitMenuWindowBegin - b _0814620C - .align 2, 0 -_08146118: .4byte gWindowConfig_81E6E18 -_0814611C: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - bne _08146126 - b _08146250 -_08146126: - ldr r0, _08146134 @ =0x02000000 - ldr r1, _08146138 @ =0x0001ffff - adds r0, r1 - movs r1, 0 - strb r1, [r0] - b _0814620C - .align 2, 0 -_08146134: .4byte 0x02000000 -_08146138: .4byte 0x0001ffff -_0814613C: - bl sub_81462B8 - lsls r0, 24 - cmp r0, 0 - bne _08146148 - b _08146250 -_08146148: - ldr r0, _08146154 @ =0x02000000 - ldr r1, _08146158 @ =0x0001ffff - adds r0, r1 - movs r1, 0 - strb r1, [r0] - b _0814620C - .align 2, 0 -_08146154: .4byte 0x02000000 -_08146158: .4byte 0x0001ffff -_0814615C: - bl sub_81464E4 - ldr r1, _08146168 @ =gMain - ldr r0, _0814616C @ =0x0000043c - adds r1, r0 - b _08146212 - .align 2, 0 -_08146168: .4byte gMain -_0814616C: .4byte 0x0000043c -_08146170: - ldr r0, _08146188 @ =gScriptItemId - ldrb r0, [r0] - adds r0, 0x7B - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x38 - movs r2, 0x40 - bl sub_80A7D8C - ldr r1, _0814618C @ =gUnknown_0203932C - strb r0, [r1] - b _0814620C - .align 2, 0 -_08146188: .4byte gScriptItemId -_0814618C: .4byte gUnknown_0203932C -_08146190: - ldr r0, _081461A8 @ =gScriptItemId - ldrb r0, [r0] - adds r0, 0x7B - lsls r0, 24 - lsrs r0, 24 - bl sub_8146600 - ldr r1, _081461AC @ =gMain - ldr r0, _081461B0 @ =0x0000043c - adds r1, r0 - b _08146212 - .align 2, 0 -_081461A8: .4byte gScriptItemId -_081461AC: .4byte gMain -_081461B0: .4byte 0x0000043c -_081461B4: - ldr r3, _081461EC @ =0x04000208 - ldrh r2, [r3] - movs r0, 0 - strh r0, [r3] - ldr r4, _081461F0 @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _081461F4 @ =REG_DISPSTAT - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r0, _081461F8 @ =sub_814602C - bl SetVBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _081461FC @ =gMain - ldr r0, _08146200 @ =0x0000043c - adds r1, r0 - b _08146212 - .align 2, 0 -_081461EC: .4byte 0x04000208 -_081461F0: .4byte 0x04000200 -_081461F4: .4byte REG_DISPSTAT -_081461F8: .4byte sub_814602C -_081461FC: .4byte gMain -_08146200: .4byte 0x0000043c -_08146204: - bl sub_8055870 - cmp r0, 0x1 - beq _08146250 -_0814620C: - ldr r1, _0814621C @ =gMain - ldr r2, _08146220 @ =0x0000043c - adds r1, r2 -_08146212: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08146250 - .align 2, 0 -_0814621C: .4byte gMain -_08146220: .4byte 0x0000043c -_08146224: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r2, _08146248 @ =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - ldr r0, _0814624C @ =sub_8146014 - bl SetMainCallback2 - movs r0, 0x1 - b _08146252 - .align 2, 0 -_08146248: .4byte gPaletteFade -_0814624C: .4byte sub_8146014 -_08146250: - movs r0, 0 -_08146252: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8146058 - - thumb_func_start sub_814625C -sub_814625C: @ 814625C - push {lr} -_0814625E: - bl sub_8146058 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08146278 - ldr r0, _08146274 @ =sub_8146480 - movs r1, 0 - bl CreateTask - b _08146284 - .align 2, 0 -_08146274: .4byte sub_8146480 -_08146278: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0814625E -_08146284: - pop {r0} - bx r0 - thumb_func_end sub_814625C - - thumb_func_start sub_8146288 -sub_8146288: @ 8146288 - ldr r1, _081462A8 @ =REG_BG1CNT - ldr r2, _081462AC @ =0x00000502 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - adds r2, 0xFE - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _081462B0 @ =0x00000703 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _081462B4 @ =gUnknown_030041B4 - movs r0, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_081462A8: .4byte REG_BG1CNT -_081462AC: .4byte 0x00000502 -_081462B0: .4byte 0x00000703 -_081462B4: .4byte gUnknown_030041B4 - thumb_func_end sub_8146288 - - thumb_func_start sub_81462B8 -sub_81462B8: @ 81462B8 - push {r4-r7,lr} - ldr r1, _081462D4 @ =0x02000000 - ldr r2, _081462D8 @ =0x0001ffff - adds r0, r1, r2 - ldrb r0, [r0] - mov r12, r1 - cmp r0, 0x6 - bls _081462CA - b _08146404 -_081462CA: - lsls r0, 2 - ldr r1, _081462DC @ =_081462E0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081462D4: .4byte 0x02000000 -_081462D8: .4byte 0x0001ffff -_081462DC: .4byte _081462E0 - .align 2, 0 -_081462E0: - .4byte _081462FC - .4byte _0814630C - .4byte _0814632C - .4byte _08146340 - .4byte _081463A4 - .4byte _081463C4 - .4byte _081463E4 -_081462FC: - ldr r0, _08146308 @ =gBerryCheck_Gfx - movs r1, 0xC0 - lsls r1, 19 - bl LZDecompressVram - b _081463CA - .align 2, 0 -_08146308: .4byte gBerryCheck_Gfx -_0814630C: - ldr r0, _0814631C @ =gUnknown_08E788E4 - ldr r1, _08146320 @ =0x06002800 - bl LZDecompressVram - ldr r1, _08146324 @ =0x02000000 - ldr r2, _08146328 @ =0x0001ffff - adds r1, r2 - b _081463D0 - .align 2, 0 -_0814631C: .4byte gUnknown_08E788E4 -_08146320: .4byte 0x06002800 -_08146324: .4byte 0x02000000 -_08146328: .4byte 0x0001ffff -_0814632C: - ldr r0, _08146338 @ =gUnknown_08E78A84 - ldr r1, _0814633C @ =0x06003000 - bl LZDecompressVram - b _081463CA - .align 2, 0 -_08146338: .4byte gUnknown_08E78A84 -_0814633C: .4byte 0x06003000 -_08146340: - movs r1, 0 - ldr r7, _0814635C @ =gBGTilemapBuffers + 0x1000 - adds r2, r7, 0 - ldr r6, _08146360 @ =0x00004042 - ldr r5, _08146364 @ =gSaveBlock2 - ldr r4, _08146368 @ =0x00005042 - ldr r3, _0814636C @ =0x000003ff -_0814634E: - ldrb r0, [r5, 0x8] - cmp r0, 0 - bne _08146370 - lsls r0, r1, 1 - adds r0, r2 - strh r6, [r0] - b _08146376 - .align 2, 0 -_0814635C: .4byte gBGTilemapBuffers + 0x1000 -_08146360: .4byte 0x00004042 -_08146364: .4byte gSaveBlock2 -_08146368: .4byte 0x00005042 -_0814636C: .4byte 0x000003ff -_08146370: - lsls r0, r1, 1 - adds r0, r2 - strh r4, [r0] -_08146376: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r3 - bls _0814634E - ldr r1, _08146394 @ =0x06003800 - ldr r0, _08146398 @ =0x040000d4 - str r7, [r0] - str r1, [r0, 0x4] - ldr r1, _0814639C @ =0x80000400 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r1, _081463A0 @ =0x0001ffff - add r1, r12 - b _081463D0 - .align 2, 0 -_08146394: .4byte 0x06003800 -_08146398: .4byte 0x040000d4 -_0814639C: .4byte 0x80000400 -_081463A0: .4byte 0x0001ffff -_081463A4: - ldr r0, _081463B8 @ =gBerryCheck_Pal - movs r1, 0 - movs r2, 0xC0 - bl LoadCompressedPalette - ldr r1, _081463BC @ =0x02000000 - ldr r2, _081463C0 @ =0x0001ffff - adds r1, r2 - b _081463D0 - .align 2, 0 -_081463B8: .4byte gBerryCheck_Pal -_081463BC: .4byte 0x02000000 -_081463C0: .4byte 0x0001ffff -_081463C4: - ldr r0, _081463D8 @ =gUnknown_083C1F74 - bl LoadCompressedObjectPic -_081463CA: - ldr r1, _081463DC @ =0x02000000 - ldr r0, _081463E0 @ =0x0001ffff - adds r1, r0 -_081463D0: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08146404 - .align 2, 0 -_081463D8: .4byte gUnknown_083C1F74 -_081463DC: .4byte 0x02000000 -_081463E0: .4byte 0x0001ffff -_081463E4: - ldr r0, _081463F8 @ =gUnknown_083C1F7C - bl LoadCompressedObjectPalette - ldr r0, _081463FC @ =0x02000000 - ldr r1, _08146400 @ =0x0001ffff - adds r0, r1 - movs r1, 0 - strb r1, [r0] - movs r0, 0x1 - b _08146406 - .align 2, 0 -_081463F8: .4byte gUnknown_083C1F7C -_081463FC: .4byte 0x02000000 -_08146400: .4byte 0x0001ffff -_08146404: - movs r0, 0 -_08146406: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81462B8 - - thumb_func_start sub_814640C -sub_814640C: @ 814640C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08146438 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08146432 - ldr r0, _0814643C @ =sub_80A5B40 - bl SetMainCallback2 - bl sub_80A7DD4 - bl gpu_pal_allocator_reset__manage_upper_four - adds r0, r4, 0 - bl DestroyTask -_08146432: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08146438: .4byte gPaletteFade -_0814643C: .4byte sub_80A5B40 - thumb_func_end sub_814640C - - thumb_func_start sub_8146440 -sub_8146440: @ 8146440 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _08146478 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0814647C @ =sub_814640C - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08146478: .4byte gTasks -_0814647C: .4byte sub_814640C - thumb_func_end sub_8146440 - - thumb_func_start sub_8146480 -sub_8146480: @ 8146480 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r7, r4, 0 - ldr r0, _081464DC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081464D6 - ldr r5, _081464E0 @ =gMain - ldrh r1, [r5, 0x30] - movs r6, 0xF0 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0x40 - bne _081464AC - movs r1, 0x1 - negs r1, r1 - adds r0, r4, 0 - bl sub_81466E8 -_081464AC: - ldrh r1, [r5, 0x30] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0x80 - bne _081464BE - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81466E8 -_081464BE: - ldrh r1, [r5, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081464D0 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081464D6 -_081464D0: - adds r0, r7, 0 - bl sub_8146440 -_081464D6: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081464DC: .4byte gPaletteFade -_081464E0: .4byte gMain - thumb_func_end sub_8146480 - - thumb_func_start sub_81464E4 -sub_81464E4: @ 81464E4 - push {r4-r7,lr} - ldr r4, _0814659C @ =gScriptItemId - ldrb r0, [r4] - adds r0, 0x7C - lsls r0, 24 - lsrs r0, 24 - bl GetBerryInfo - adds r5, r0, 0 - ldr r7, _081465A0 @ =gStringVar1 - ldrh r1, [r4] - subs r1, 0x84 - adds r0, r7, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - adds r0, r7, 0 - movs r1, 0xC - movs r2, 0x4 - bl MenuPrint - adds r0, r5, 0 - movs r1, 0xE - movs r2, 0x4 - bl MenuPrint - ldr r0, [r5, 0xC] - movs r1, 0x4 - movs r2, 0xE - bl MenuPrint - ldr r0, [r5, 0x10] - movs r1, 0x4 - movs r2, 0x10 - bl MenuPrint - ldrh r1, [r5, 0x8] - lsls r0, r1, 5 - subs r0, r1 - lsls r0, 2 - adds r0, r1 - lsls r0, 3 - movs r1, 0xFE - bl __divsi3 - adds r4, r0, 0 - movs r1, 0xA - bl __umodsi3 - cmp r0, 0x4 - bls _0814654E - adds r4, 0xA -_0814654E: - adds r0, r4, 0 - movs r1, 0x64 - bl __umodsi3 - movs r1, 0xA - bl __udivsi3 - adds r6, r0, 0 - adds r0, r4, 0 - movs r1, 0x64 - bl __udivsi3 - adds r4, r0, 0 - ldr r0, _081465A4 @ =gOtherText_Size - movs r1, 0xB - movs r2, 0x7 - bl MenuPrint - ldrh r0, [r5, 0x8] - cmp r0, 0 - beq _081465B0 - adds r0, r7, 0 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _081465A8 @ =gStringVar2 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _081465AC @ =gContestStatsText_Unknown1 - movs r1, 0x10 - movs r2, 0x7 - bl MenuPrint - b _081465BA - .align 2, 0 -_0814659C: .4byte gScriptItemId -_081465A0: .4byte gStringVar1 -_081465A4: .4byte gOtherText_Size -_081465A8: .4byte gStringVar2 -_081465AC: .4byte gContestStatsText_Unknown1 -_081465B0: - ldr r0, _081465E0 @ =gOtherText_ThreeQuestions2 - movs r1, 0x10 - movs r2, 0x7 - bl MenuPrint -_081465BA: - ldr r0, _081465E4 @ =gOtherText_Firm - movs r1, 0xB - movs r2, 0x9 - bl MenuPrint - ldrb r0, [r5, 0x7] - cmp r0, 0 - beq _081465EC - ldr r0, _081465E8 @ =gUnknown_0841192C - ldrb r1, [r5, 0x7] - subs r1, 0x1 - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - movs r1, 0x10 - movs r2, 0x9 - bl MenuPrint - b _081465F6 - .align 2, 0 -_081465E0: .4byte gOtherText_ThreeQuestions2 -_081465E4: .4byte gOtherText_Firm -_081465E8: .4byte gUnknown_0841192C -_081465EC: - ldr r0, _081465FC @ =gOtherText_ThreeQuestions2 - movs r1, 0x10 - movs r2, 0x9 - bl MenuPrint -_081465F6: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081465FC: .4byte gOtherText_ThreeQuestions2 - thumb_func_end sub_81464E4 - - thumb_func_start sub_8146600 -sub_8146600: @ 8146600 - push {r4,r5,lr} - lsls r0, 24 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r0, 24 - bl GetBerryInfo - adds r4, r0, 0 - movs r2, 0 - ldr r5, _08146698 @ =gUnknown_0203932E - ldr r0, _0814669C @ =0x0000ffff - adds r3, r0, 0 -_0814661A: - lsls r0, r2, 1 - adds r0, r5 - ldrh r1, [r0] - orrs r1, r3 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x4 - bls _0814661A - ldrb r0, [r4, 0x15] - cmp r0, 0 - beq _08146642 - movs r0, 0x30 - bl sub_80A7E5C - ldr r1, _08146698 @ =gUnknown_0203932E - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1] -_08146642: - ldrb r0, [r4, 0x16] - cmp r0, 0 - beq _08146656 - movs r0, 0x58 - bl sub_80A7E5C - ldr r1, _08146698 @ =gUnknown_0203932E - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x2] -_08146656: - ldrb r0, [r4, 0x17] - cmp r0, 0 - beq _0814666A - movs r0, 0x80 - bl sub_80A7E5C - ldr r1, _08146698 @ =gUnknown_0203932E - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x4] -_0814666A: - ldrb r0, [r4, 0x18] - cmp r0, 0 - beq _0814667E - movs r0, 0xA8 - bl sub_80A7E5C - ldr r1, _08146698 @ =gUnknown_0203932E - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x6] -_0814667E: - ldrb r0, [r4, 0x19] - cmp r0, 0 - beq _08146692 - movs r0, 0xD0 - bl sub_80A7E5C - ldr r1, _08146698 @ =gUnknown_0203932E - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x8] -_08146692: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08146698: .4byte gUnknown_0203932E -_0814669C: .4byte 0x0000ffff - thumb_func_end sub_8146600 - - thumb_func_start sub_81466A0 -sub_81466A0: @ 81466A0 - push {r4-r7,lr} - movs r5, 0 - movs r7, 0x1 - negs r7, r7 - ldr r6, _081466DC @ =gUnknown_0203932E -_081466AA: - lsls r0, r5, 1 - adds r4, r0, r6 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, r7 - beq _081466CA - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _081466E0 @ =gSprites - adds r0, r1 - bl DestroySprite - ldr r0, _081466E4 @ =0x0000ffff - strh r0, [r4] -_081466CA: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x4 - bls _081466AA - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081466DC: .4byte gUnknown_0203932E -_081466E0: .4byte gSprites -_081466E4: .4byte 0x0000ffff - thumb_func_end sub_81466A0 - - thumb_func_start sub_81466E8 -sub_81466E8: @ 81466E8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r2, r1, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _08146748 @ =gTasks + 0x8 - adds r6, r0, r1 - ldr r4, _0814674C @ =gUnknown_03005D10 - movs r0, 0xC - adds r0, r4 - mov r8, r0 - ldrb r1, [r0, 0x1] - ldrb r0, [r4, 0xC] - adds r1, r0 - cmp r1, 0 - bne _08146718 - lsls r0, r2, 24 - cmp r0, 0 - blt _0814678C -_08146718: - adds r0, r1, 0x1 - lsls r5, r2, 24 - mov r1, r8 - ldrb r1, [r1, 0x2] - cmp r0, r1 - bne _08146728 - cmp r5, 0 - bgt _0814678C -_08146728: - movs r0, 0x5 - bl PlaySE - mov r2, r8 - ldrb r3, [r2, 0x1] - ldrb r4, [r4, 0xC] - mov r12, r4 - adds r0, r3, r4 - asrs r2, r5, 24 - adds r1, r0, r2 - cmp r1, 0 - bge _08146750 - negs r0, r0 - strh r0, [r6, 0x2] - b _08146766 - .align 2, 0 -_08146748: .4byte gTasks + 0x8 -_0814674C: .4byte gUnknown_03005D10 -_08146750: - mov r4, r8 - ldrb r0, [r4, 0x2] - cmp r1, r0 - blt _08146764 - subs r0, r3 - mov r1, r12 - subs r0, r1 - subs r0, 0x1 - strh r0, [r6, 0x2] - b _08146766 -_08146764: - strh r2, [r6, 0x2] -_08146766: - ldr r0, _08146780 @ =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r0 - ldr r0, _08146784 @ =sub_8146798 - str r0, [r1] - cmp r5, 0 - bge _08146788 - movs r2, 0x10 - negs r2, r2 - adds r0, r2, 0 - b _0814678A - .align 2, 0 -_08146780: .4byte gTasks -_08146784: .4byte sub_8146798 -_08146788: - movs r0, 0x10 -_0814678A: - strh r0, [r6] -_0814678C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81466E8 - - thumb_func_start sub_8146798 -sub_8146798: @ 8146798 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _08146800 @ =gTasks + 0x8 - adds r0, r1 - ldr r2, _08146804 @ =gUnknown_030041B4 - ldrh r1, [r0] - ldrh r5, [r2] - adds r3, r1, r5 - movs r1, 0xFF - ands r3, r1 - strh r3, [r2] - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - ble _081467C2 - cmp r3, 0x90 - beq _081467CA -_081467C2: - cmp r0, 0 - bge _081467E0 - cmp r3, 0x70 - bne _081467E0 -_081467CA: - ldr r0, _08146808 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0xA - ldrsb r0, [r1, r0] - bl sub_8146810 - bl sub_81468BC -_081467E0: - ldr r0, _08146804 @ =gUnknown_030041B4 - ldrh r2, [r0] - cmp r2, 0 - bne _081467FA - ldr r0, _08146808 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - strh r2, [r1, 0x8] - strh r2, [r1, 0xA] - ldr r0, _0814680C @ =sub_8146480 - str r0, [r1] -_081467FA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08146800: .4byte gTasks + 0x8 -_08146804: .4byte gUnknown_030041B4 -_08146808: .4byte gTasks -_0814680C: .4byte sub_8146480 - thumb_func_end sub_8146798 - - thumb_func_start sub_8146810 -sub_8146810: @ 8146810 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - adds r4, r3, 0 - lsls r0, r3, 24 - asrs r1, r0, 24 - cmp r1, 0 - ble _08146848 - ldr r0, _08146840 @ =gUnknown_03005D10 - adds r4, r0, 0 - adds r4, 0xC - ldrb r2, [r0, 0xC] - adds r1, r2, r1 - adds r6, r0, 0 - cmp r1, 0x7 - ble _08146844 - adds r0, r3, 0 - adds r0, 0xF9 - adds r0, r2, r0 - ldrb r1, [r4, 0x1] - adds r0, r1 - strb r0, [r4, 0x1] - movs r0, 0x7 - b _0814686E - .align 2, 0 -_08146840: .4byte gUnknown_03005D10 -_08146844: - adds r0, r2, r3 - b _0814686E -_08146848: - ldr r0, _08146868 @ =gUnknown_03005D10 - adds r5, r0, 0 - adds r5, 0xC - ldrb r2, [r0, 0xC] - adds r1, r2, r1 - adds r6, r0, 0 - cmp r1, 0 - bge _0814686C - adds r0, r2, r3 - ldrb r1, [r5, 0x1] - adds r0, r1 - movs r1, 0 - strb r0, [r5, 0x1] - strb r1, [r6, 0xC] - b _08146870 - .align 2, 0 -_08146868: .4byte gUnknown_03005D10 -_0814686C: - adds r0, r2, r4 -_0814686E: - strb r0, [r6, 0xC] -_08146870: - ldr r2, _081468AC @ =gScriptItemId - movs r0, 0x3 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0, 0x1] - ldrb r0, [r0] - adds r1, r0 - ldr r0, _081468B0 @ =gUnknown_03005D24 - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1] - strh r0, [r2] - ldr r0, _081468B4 @ =gUnknown_0203932C - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _081468B8 @ =gSprites - adds r0, r1 - bl DestroySprite - bl sub_81466A0 - bl sub_80A7DD4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081468AC: .4byte gScriptItemId -_081468B0: .4byte gUnknown_03005D24 -_081468B4: .4byte gUnknown_0203932C -_081468B8: .4byte gSprites - thumb_func_end sub_8146810 - - thumb_func_start sub_81468BC -sub_81468BC: @ 81468BC - push {r4,lr} - movs r0, 0 - movs r1, 0x4 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - bl sub_81464E4 - ldr r4, _081468F8 @ =gScriptItemId - ldrb r0, [r4] - adds r0, 0x7B - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x38 - movs r2, 0x40 - bl sub_80A7D8C - ldr r1, _081468FC @ =gUnknown_0203932C - strb r0, [r1] - ldrb r0, [r4] - adds r0, 0x7B - lsls r0, 24 - lsrs r0, 24 - bl sub_8146600 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081468F8: .4byte gScriptItemId -_081468FC: .4byte gUnknown_0203932C - thumb_func_end sub_81468BC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/bike.s b/asm/bike.s index d73fa55dc..a7e3401ac 100644 --- a/asm/bike.s +++ b/asm/bike.s @@ -1947,8 +1947,8 @@ _080E5EEE: bx r1 thumb_func_end sub_80E5EC0 - thumb_func_start sub_80E5EF4 -sub_80E5EF4: @ 80E5EF4 + thumb_func_start IsBikingDisallowedByPlayer +IsBikingDisallowedByPlayer: @ 80E5EF4 push {r4,lr} sub sp, 0x4 ldr r0, _080E5F30 @ =gPlayerAvatar @@ -1985,7 +1985,7 @@ _080E5F36: pop {r4} pop {r1} bx r1 - thumb_func_end sub_80E5EF4 + thumb_func_end IsBikingDisallowedByPlayer thumb_func_start player_should_look_direction_be_enforced_upon_movement player_should_look_direction_be_enforced_upon_movement: @ 80E5F40 diff --git a/asm/braille_puzzles.s b/asm/braille_puzzles.s new file mode 100644 index 000000000..f8f2683a6 --- /dev/null +++ b/asm/braille_puzzles.s @@ -0,0 +1,606 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start ShouldDoBrailleDigEffect +ShouldDoBrailleDigEffect: @ 81473B8 + push {lr} + ldr r0, _081473E8 @ =0x0000084f + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _08147400 + ldr r2, _081473EC @ =gSaveBlock1 + ldrh r1, [r2, 0x4] + ldr r0, _081473F0 @ =0x00004718 + cmp r1, r0 + bne _08147400 + ldr r1, [r2] + ldr r0, _081473F4 @ =0x0003000a + cmp r1, r0 + beq _081473E4 + ldr r0, _081473F8 @ =0x00030009 + cmp r1, r0 + beq _081473E4 + ldr r0, _081473FC @ =0x0003000b + cmp r1, r0 + bne _08147400 +_081473E4: + movs r0, 0x1 + b _08147402 + .align 2, 0 +_081473E8: .4byte 0x0000084f +_081473EC: .4byte gSaveBlock1 +_081473F0: .4byte 0x00004718 +_081473F4: .4byte 0x0003000a +_081473F8: .4byte 0x00030009 +_081473FC: .4byte 0x0003000b +_08147400: + movs r0, 0 +_08147402: + pop {r1} + bx r1 + thumb_func_end ShouldDoBrailleDigEffect + + thumb_func_start DoBrailleDigEffect +DoBrailleDigEffect: @ 8147408 + push {lr} + ldr r2, _08147460 @ =0x0000022a + movs r0, 0x10 + movs r1, 0x8 + bl MapGridSetMetatileIdAt + ldr r2, _08147464 @ =0x0000022b + movs r0, 0x11 + movs r1, 0x8 + bl MapGridSetMetatileIdAt + movs r2, 0x8B + lsls r2, 2 + movs r0, 0x12 + movs r1, 0x8 + bl MapGridSetMetatileIdAt + ldr r2, _08147468 @ =0x00000e32 + movs r0, 0x10 + movs r1, 0x9 + bl MapGridSetMetatileIdAt + ldr r2, _0814746C @ =0x00000233 + movs r0, 0x11 + movs r1, 0x9 + bl MapGridSetMetatileIdAt + ldr r2, _08147470 @ =0x00000e34 + movs r0, 0x12 + movs r1, 0x9 + bl MapGridSetMetatileIdAt + bl DrawWholeMapView + movs r0, 0x14 + bl PlaySE + ldr r0, _08147474 @ =0x0000084f + bl FlagSet + bl ScriptContext2_Disable + pop {r0} + bx r0 + .align 2, 0 +_08147460: .4byte 0x0000022a +_08147464: .4byte 0x0000022b +_08147468: .4byte 0x00000e32 +_0814746C: .4byte 0x00000233 +_08147470: .4byte 0x00000e34 +_08147474: .4byte 0x0000084f + thumb_func_end DoBrailleDigEffect + + thumb_func_start CheckRelicanthWailord +CheckRelicanthWailord: @ 8147478 + push {r4,lr} + ldr r4, _081474B4 @ =gPlayerParty + adds r0, r4, 0 + movs r1, 0x41 + movs r2, 0 + bl GetMonData + ldr r1, _081474B8 @ =0x0000017d + cmp r0, r1 + bne _081474C0 + bl CalculatePlayerPartyCount + ldr r0, _081474BC @ =gPlayerPartyCount + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + adds r1, r4, 0 + subs r1, 0x64 + adds r0, r1 + movs r1, 0x41 + movs r2, 0 + bl GetMonData + movs r1, 0x9D + lsls r1, 1 + cmp r0, r1 + bne _081474C0 + movs r0, 0x1 + b _081474C2 + .align 2, 0 +_081474B4: .4byte gPlayerParty +_081474B8: .4byte 0x0000017d +_081474BC: .4byte gPlayerPartyCount +_081474C0: + movs r0, 0 +_081474C2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end CheckRelicanthWailord + + thumb_func_start ShouldDoBrailleStrengthEffect +ShouldDoBrailleStrengthEffect: @ 81474C8 + push {lr} + movs r0, 0x85 + lsls r0, 4 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _0814750C + ldr r2, _081474FC @ =gSaveBlock1 + ldrh r1, [r2, 0x4] + movs r0, 0xC3 + lsls r0, 3 + cmp r1, r0 + bne _0814750C + ldr r1, [r2] + ldr r0, _08147500 @ =0x0017000a + cmp r1, r0 + beq _081474F8 + ldr r0, _08147504 @ =0x00170009 + cmp r1, r0 + beq _081474F8 + ldr r0, _08147508 @ =0x0017000b + cmp r1, r0 + bne _0814750C +_081474F8: + movs r0, 0x1 + b _0814750E + .align 2, 0 +_081474FC: .4byte gSaveBlock1 +_08147500: .4byte 0x0017000a +_08147504: .4byte 0x00170009 +_08147508: .4byte 0x0017000b +_0814750C: + movs r0, 0 +_0814750E: + pop {r1} + bx r1 + thumb_func_end ShouldDoBrailleStrengthEffect + + thumb_func_start DoBrailleStrengthEffect +DoBrailleStrengthEffect: @ 8147514 + push {lr} + movs r0, 0x28 + bl FieldEffectActiveListRemove + ldr r2, _08147574 @ =0x0000022a + movs r0, 0xE + movs r1, 0x1A + bl MapGridSetMetatileIdAt + ldr r2, _08147578 @ =0x0000022b + movs r0, 0xF + movs r1, 0x1A + bl MapGridSetMetatileIdAt + movs r2, 0x8B + lsls r2, 2 + movs r0, 0x10 + movs r1, 0x1A + bl MapGridSetMetatileIdAt + ldr r2, _0814757C @ =0x00000e32 + movs r0, 0xE + movs r1, 0x1B + bl MapGridSetMetatileIdAt + ldr r2, _08147580 @ =0x00000233 + movs r0, 0xF + movs r1, 0x1B + bl MapGridSetMetatileIdAt + ldr r2, _08147584 @ =0x00000e34 + movs r0, 0x10 + movs r1, 0x1B + bl MapGridSetMetatileIdAt + bl DrawWholeMapView + movs r0, 0x14 + bl PlaySE + movs r0, 0x85 + lsls r0, 4 + bl FlagSet + bl ScriptContext2_Disable + pop {r0} + bx r0 + .align 2, 0 +_08147574: .4byte 0x0000022a +_08147578: .4byte 0x0000022b +_0814757C: .4byte 0x00000e32 +_08147580: .4byte 0x00000233 +_08147584: .4byte 0x00000e34 + thumb_func_end DoBrailleStrengthEffect + + thumb_func_start ShouldDoBrailleFlyEffect +ShouldDoBrailleFlyEffect: @ 8147588 + push {lr} + ldr r0, _081475AC @ =0x00000852 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _081475BC + ldr r2, _081475B0 @ =gSaveBlock1 + ldrh r1, [r2, 0x4] + ldr r0, _081475B4 @ =0x00004418 + cmp r1, r0 + bne _081475BC + ldr r1, [r2] + ldr r0, _081475B8 @ =0x00190008 + cmp r1, r0 + bne _081475BC + movs r0, 0x1 + b _081475BE + .align 2, 0 +_081475AC: .4byte 0x00000852 +_081475B0: .4byte gSaveBlock1 +_081475B4: .4byte 0x00004418 +_081475B8: .4byte 0x00190008 +_081475BC: + movs r0, 0 +_081475BE: + pop {r1} + bx r1 + thumb_func_end ShouldDoBrailleFlyEffect + + thumb_func_start DoBrailleFlyEffect +DoBrailleFlyEffect: @ 81475C4 + push {lr} + ldr r0, _081475D8 @ =gUnknown_0202FF84 + ldr r1, _081475DC @ =gUnknown_03005CE0 + ldrb r1, [r1] + str r1, [r0] + movs r0, 0x3C + bl FieldEffectStart + pop {r0} + bx r0 + .align 2, 0 +_081475D8: .4byte gUnknown_0202FF84 +_081475DC: .4byte gUnknown_03005CE0 + thumb_func_end DoBrailleFlyEffect + + thumb_func_start FldEff_UseFlyAncientTomb +FldEff_UseFlyAncientTomb: @ 81475E0 + push {lr} + bl oei_task_add + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08147604 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _08147608 @ =UseFlyAncientTomb_Callback + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08147604: .4byte gTasks +_08147608: .4byte UseFlyAncientTomb_Callback + thumb_func_end FldEff_UseFlyAncientTomb + + thumb_func_start UseFlyAncientTomb_Callback +UseFlyAncientTomb_Callback: @ 814760C + push {lr} + movs r0, 0x3C + bl FieldEffectActiveListRemove + bl UseFlyAncientTomb_Finish + pop {r0} + bx r0 + thumb_func_end UseFlyAncientTomb_Callback + + thumb_func_start UseFlyAncientTomb_Finish +UseFlyAncientTomb_Finish: @ 814761C + push {lr} + ldr r2, _08147674 @ =0x0000022a + movs r0, 0xE + movs r1, 0x1A + bl MapGridSetMetatileIdAt + ldr r2, _08147678 @ =0x0000022b + movs r0, 0xF + movs r1, 0x1A + bl MapGridSetMetatileIdAt + movs r2, 0x8B + lsls r2, 2 + movs r0, 0x10 + movs r1, 0x1A + bl MapGridSetMetatileIdAt + ldr r2, _0814767C @ =0x00000e32 + movs r0, 0xE + movs r1, 0x1B + bl MapGridSetMetatileIdAt + ldr r2, _08147680 @ =0x00000233 + movs r0, 0xF + movs r1, 0x1B + bl MapGridSetMetatileIdAt + ldr r2, _08147684 @ =0x00000e34 + movs r0, 0x10 + movs r1, 0x1B + bl MapGridSetMetatileIdAt + bl DrawWholeMapView + movs r0, 0x14 + bl PlaySE + ldr r0, _08147688 @ =0x00000852 + bl FlagSet + bl ScriptContext2_Disable + pop {r0} + bx r0 + .align 2, 0 +_08147674: .4byte 0x0000022a +_08147678: .4byte 0x0000022b +_0814767C: .4byte 0x00000e32 +_08147680: .4byte 0x00000233 +_08147684: .4byte 0x00000e34 +_08147688: .4byte 0x00000852 + thumb_func_end UseFlyAncientTomb_Finish + + thumb_func_start DoBrailleWait +DoBrailleWait: @ 814768C + push {lr} + ldr r0, _081476A8 @ =0x00000851 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _081476A2 + ldr r0, _081476AC @ =Task_BrailleWait + movs r1, 0x50 + bl CreateTask +_081476A2: + pop {r0} + bx r0 + .align 2, 0 +_081476A8: .4byte 0x00000851 +_081476AC: .4byte Task_BrailleWait + thumb_func_end DoBrailleWait + + thumb_func_start Task_BrailleWait +Task_BrailleWait: @ 81476B0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _081476D4 @ =gTasks + 0x8 + adds r4, r0, r1 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bhi _0814776A + lsls r0, 2 + ldr r1, _081476D8 @ =_081476DC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081476D4: .4byte gTasks + 0x8 +_081476D8: .4byte _081476DC + .align 2, 0 +_081476DC: + .4byte _081476F0 + .4byte _081476FE + .4byte _08147730 + .4byte _08147748 + .4byte _0814775A +_081476F0: + movs r1, 0xE1 + lsls r1, 5 + adds r0, r1, 0 + strh r0, [r4, 0x2] + movs r0, 0x1 + strh r0, [r4] + b _0814776A +_081476FE: + bl BrailleWait_CheckButtonPress + cmp r0, 0 + beq _08147716 + bl MenuZeroFillScreen + movs r0, 0x5 + bl PlaySE + movs r0, 0x2 + strh r0, [r4] + b _0814776A +_08147716: + ldrh r0, [r4, 0x2] + subs r0, 0x1 + strh r0, [r4, 0x2] + lsls r0, 16 + cmp r0, 0 + bne _0814776A + bl MenuZeroFillScreen + movs r0, 0x3 + strh r0, [r4] + movs r0, 0x1E + strh r0, [r4, 0x2] + b _0814776A +_08147730: + bl BrailleWait_CheckButtonPress + cmp r0, 0 + beq _08147748 + bl sub_8064E2C + adds r0, r5, 0 + bl DestroyTask + bl ScriptContext2_Disable + b _0814776A +_08147748: + ldrh r0, [r4, 0x2] + subs r0, 0x1 + strh r0, [r4, 0x2] + lsls r0, 16 + cmp r0, 0 + bne _0814776A + movs r0, 0x4 + strh r0, [r4] + b _0814776A +_0814775A: + bl sub_8064E2C + ldr r0, _08147770 @ =gUnknown_0815EF19 + bl ScriptContext1_SetupScript + adds r0, r5, 0 + bl DestroyTask +_0814776A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08147770: .4byte gUnknown_0815EF19 + thumb_func_end Task_BrailleWait + + thumb_func_start BrailleWait_CheckButtonPress +BrailleWait_CheckButtonPress: @ 8147774 + push {lr} + movs r1, 0xFF + ldr r0, _081477A4 @ =gSaveBlock2 + ldrb r2, [r0, 0x13] + cmp r2, 0x1 + bne _08147788 + movs r3, 0xC0 + lsls r3, 2 + adds r0, r3, 0 + orrs r1, r0 +_08147788: + cmp r2, 0x2 + bne _08147794 + movs r2, 0x80 + lsls r2, 2 + adds r0, r2, 0 + orrs r1, r0 +_08147794: + ldr r0, _081477A8 @ =gMain + ldrh r0, [r0, 0x2E] + ands r1, r0 + cmp r1, 0 + bne _081477AC + movs r0, 0 + b _081477AE + .align 2, 0 +_081477A4: .4byte gSaveBlock2 +_081477A8: .4byte gMain +_081477AC: + movs r0, 0x1 +_081477AE: + pop {r1} + bx r1 + thumb_func_end BrailleWait_CheckButtonPress + + thumb_func_start DoSealedChamberShakingEffect1 +DoSealedChamberShakingEffect1: @ 81477B4 + push {lr} + ldr r0, _081477E8 @ =SealedChamberShakingEffect + movs r1, 0x9 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _081477EC @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0xA] + strh r0, [r1, 0xC] + movs r0, 0x2 + strh r0, [r1, 0x10] + movs r0, 0x5 + strh r0, [r1, 0x12] + movs r0, 0x32 + strh r0, [r1, 0x14] + movs r0, 0 + bl SetCameraPanningCallback + pop {r0} + bx r0 + .align 2, 0 +_081477E8: .4byte SealedChamberShakingEffect +_081477EC: .4byte gTasks + thumb_func_end DoSealedChamberShakingEffect1 + + thumb_func_start DoSealedChamberShakingEffect2 +DoSealedChamberShakingEffect2: @ 81477F0 + push {lr} + ldr r0, _08147824 @ =SealedChamberShakingEffect + movs r1, 0x9 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08147828 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0xA] + strh r0, [r1, 0xC] + movs r0, 0x3 + strh r0, [r1, 0x10] + movs r0, 0x5 + strh r0, [r1, 0x12] + movs r0, 0x2 + strh r0, [r1, 0x14] + movs r0, 0 + bl SetCameraPanningCallback + pop {r0} + bx r0 + .align 2, 0 +_08147824: .4byte SealedChamberShakingEffect +_08147828: .4byte gTasks + thumb_func_end DoSealedChamberShakingEffect2 + + thumb_func_start SealedChamberShakingEffect +SealedChamberShakingEffect: @ 814782C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _0814788C @ =gTasks + adds r4, r0, r1 + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r1, 0xA + ldrsh r0, [r4, r1] + movs r2, 0x12 + ldrsh r1, [r4, r2] + bl __modsi3 + cmp r0, 0 + bne _08147884 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x10] + negs r0, r0 + strh r0, [r4, 0x10] + movs r0, 0x10 + ldrsh r1, [r4, r0] + movs r0, 0 + bl SetCameraPanning + movs r2, 0xC + ldrsh r1, [r4, r2] + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _08147884 + adds r0, r5, 0 + bl DestroyTask + bl EnableBothScriptContexts + bl InstallCameraPanAheadCallback +_08147884: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0814788C: .4byte gTasks + thumb_func_end SealedChamberShakingEffect + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/cable_club.s b/asm/cable_club.s index c1275ee1d..4c9dca6af 100644 --- a/asm/cable_club.s +++ b/asm/cable_club.s @@ -810,10 +810,10 @@ sub_8083314: @ 8083314 cmp r4, r0 bne _080833B6 movs r4, 0 - ldr r6, _0808333C @ =gUnknown_0202FFC0 + ldr r6, _0808333C @ =gTrainerCards b _0808335A .align 2, 0 -_0808333C: .4byte gUnknown_0202FFC0 +_0808333C: .4byte gTrainerCards _08083340: lsls r1, r4, 8 ldr r0, _08083394 @ =gBlockRecvBuffer @@ -1031,7 +1031,7 @@ sub_80834E4: @ 80834E4 ldr r2, _08083504 @ =0x00001133 adds r0, r2, 0 strh r0, [r1] - ldr r1, _08083508 @ =gUnknown_020239F8 + ldr r1, _08083508 @ =gBattleTypeFlags movs r0, 0 strh r0, [r1] movs r0, 0x2 @@ -1042,7 +1042,7 @@ sub_80834E4: @ 80834E4 .align 2, 0 _08083500: .4byte gLinkType _08083504: .4byte 0x00001133 -_08083508: .4byte gUnknown_020239F8 +_08083508: .4byte gBattleTypeFlags thumb_func_end sub_80834E4 thumb_func_start sub_808350C @@ -1055,7 +1055,7 @@ sub_808350C: @ 808350C ldr r3, _08083534 @ =0x00003311 adds r0, r3, 0 strh r0, [r1] - ldr r0, _08083538 @ =gUnknown_020239F8 + ldr r0, _08083538 @ =gBattleTypeFlags strh r2, [r0] movs r0, 0x2 movs r1, 0x4 @@ -1066,7 +1066,7 @@ sub_808350C: @ 808350C _0808352C: .4byte gScriptResult _08083530: .4byte gLinkType _08083534: .4byte 0x00003311 -_08083538: .4byte gUnknown_020239F8 +_08083538: .4byte gBattleTypeFlags thumb_func_end sub_808350C thumb_func_start sub_808353C @@ -1185,7 +1185,7 @@ sub_8083614: @ 8083614 ldr r2, _08083634 @ =0x00004411 adds r0, r2, 0 strh r0, [r1] - ldr r1, _08083638 @ =gUnknown_020239F8 + ldr r1, _08083638 @ =gBattleTypeFlags movs r0, 0 strh r0, [r1] movs r0, 0x2 @@ -1196,7 +1196,7 @@ sub_8083614: @ 8083614 .align 2, 0 _08083630: .4byte gLinkType _08083634: .4byte 0x00004411 -_08083638: .4byte gUnknown_020239F8 +_08083638: .4byte gBattleTypeFlags thumb_func_end sub_8083614 thumb_func_start sub_808363C @@ -1206,7 +1206,7 @@ sub_808363C: @ 808363C ldr r2, _0808365C @ =0x00006601 adds r0, r2, 0 strh r0, [r1] - ldr r1, _08083660 @ =gUnknown_020239F8 + ldr r1, _08083660 @ =gBattleTypeFlags movs r0, 0 strh r0, [r1] movs r0, 0x4 @@ -1217,7 +1217,7 @@ sub_808363C: @ 808363C .align 2, 0 _08083658: .4byte gLinkType _0808365C: .4byte 0x00006601 -_08083660: .4byte gUnknown_020239F8 +_08083660: .4byte gBattleTypeFlags thumb_func_end sub_808363C thumb_func_start sub_8083664 @@ -1562,20 +1562,20 @@ _08083908: beq _08083924 b _0808392E _0808390E: - ldr r1, _08083914 @ =gUnknown_020239F8 + ldr r1, _08083914 @ =gBattleTypeFlags movs r0, 0xA b _0808392C .align 2, 0 -_08083914: .4byte gUnknown_020239F8 +_08083914: .4byte gBattleTypeFlags _08083918: - ldr r1, _08083920 @ =gUnknown_020239F8 + ldr r1, _08083920 @ =gBattleTypeFlags movs r0, 0xB b _0808392C .align 2, 0 -_08083920: .4byte gUnknown_020239F8 +_08083920: .4byte gBattleTypeFlags _08083924: bl ReducePlayerPartyToThree - ldr r1, _08083948 @ =gUnknown_020239F8 + ldr r1, _08083948 @ =gBattleTypeFlags movs r0, 0x4B _0808392C: strh r0, [r1] @@ -1592,7 +1592,7 @@ _08083940: pop {r0} bx r0 .align 2, 0 -_08083948: .4byte gUnknown_020239F8 +_08083948: .4byte gBattleTypeFlags _0808394C: .4byte sub_800E7C4 _08083950: .4byte gMain _08083954: .4byte sub_8083958 @@ -1602,8 +1602,8 @@ _08083954: .4byte sub_8083958 sub_8083958: @ 8083958 push {lr} bl call_map_music_set_to_zero - bl copy_player_party_from_sav1 - bl copy_bags_and_unk_data_to_save_blocks + bl LoadPlayerParty + bl SavePlayerBag bl sub_810FEFC ldr r0, _08083990 @ =gSpecialVar_0x8004 ldrh r0, [r0] @@ -1643,8 +1643,8 @@ sub_80839A4: @ 80839A4 cmp r1, 0x5 bne _080839C0 _080839B8: - bl copy_player_party_from_sav1 - bl copy_bags_and_unk_data_to_save_blocks + bl LoadPlayerParty + bl SavePlayerBag _080839C0: movs r0, 0x7F bl copy_saved_warp2_bank_and_enter_x_to_warp1 @@ -2066,49 +2066,4 @@ _08083CE8: .4byte gTasks _08083CEC: .4byte sub_8083CA4 thumb_func_end unref_sub_8083CC8 - thumb_func_start unref_sub_8083CF0 -unref_sub_8083CF0: @ 8083CF0 - push {r4-r7,lr} - ldr r0, _08083D38 @ =0x04000128 - ldr r4, [r0] - lsls r4, 26 - lsrs r4, 30 - ldr r0, _08083D3C @ =gUnknown_03004DA0 - movs r1, 0xFF - strb r1, [r0] - ldr r1, _08083D40 @ =gUnknown_0839B24A - bl StringAppend - movs r5, 0 - ldr r0, _08083D44 @ =word_3002910 - movs r6, 0x1 - eors r4, r6 - lsls r4, 1 - adds r7, r4, r0 - movs r4, 0 -_08083D14: - ldrh r0, [r7] - asrs r0, r5 - ands r0, r6 - cmp r0, 0 - beq _08083D28 - ldr r1, _08083D48 @ =gUnknown_0839B22C - adds r1, r4, r1 - ldr r0, _08083D3C @ =gUnknown_03004DA0 - bl StringAppend -_08083D28: - adds r4, 0x3 - adds r5, 0x1 - cmp r5, 0x9 - ble _08083D14 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08083D38: .4byte 0x04000128 -_08083D3C: .4byte gUnknown_03004DA0 -_08083D40: .4byte gUnknown_0839B24A -_08083D44: .4byte word_3002910 -_08083D48: .4byte gUnknown_0839B22C - thumb_func_end unref_sub_8083CF0 - .align 2, 0 @ Don't pad with nop. diff --git a/asm/calculate_base_damage.s b/asm/calculate_base_damage.s deleted file mode 100644 index 54f53f1a2..000000000 --- a/asm/calculate_base_damage.s +++ /dev/null @@ -1,1165 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start CalculateBaseDamage -CalculateBaseDamage: @ 803BA2C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - adds r7, r0, 0 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - ldr r0, [sp, 0x4C] - ldr r1, [sp, 0x50] - ldr r2, [sp, 0x54] - ldr r4, [sp, 0x58] - lsls r3, 16 - lsrs r3, 16 - str r3, [sp, 0xC] - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x10] - lsls r4, 24 - lsrs r4, 24 - movs r5, 0 - cmp r3, 0 - bne _0803BA80 - ldr r2, _0803BA78 @ =gBattleMovePower - ldr r1, _0803BA7C @ =gBattleMoves - ldr r3, [sp, 0x8] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x1] - strh r0, [r2] - b _0803BA84 - .align 2, 0 -_0803BA78: .4byte gBattleMovePower -_0803BA7C: .4byte gBattleMoves -_0803BA80: - ldr r0, _0803BA9C @ =gBattleMovePower - strh r3, [r0] -_0803BA84: - cmp r6, 0 - bne _0803BAA4 - ldr r1, _0803BAA0 @ =gBattleMoves - ldr r6, [sp, 0x8] - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x2] - mov r9, r0 - b _0803BAAE - .align 2, 0 -_0803BA9C: .4byte gBattleMovePower -_0803BAA0: .4byte gBattleMoves -_0803BAA4: - movs r0, 0x3F - mov r9, r0 - mov r1, r9 - ands r1, r6 - mov r9, r1 -_0803BAAE: - ldrh r6, [r7, 0x2] - ldr r2, [sp, 0x4] - ldrh r2, [r2, 0x4] - str r2, [sp, 0x14] - ldrh r3, [r7, 0x8] - mov r8, r3 - ldr r0, [sp, 0x4] - ldrh r0, [r0, 0xA] - str r0, [sp, 0x18] - ldrh r0, [r7, 0x2E] - cmp r0, 0xAF - bne _0803BAE0 - ldr r1, _0803BADC @ =gEnigmaBerries - ldr r2, [sp, 0x10] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r3, [r0, 0x7] - mov r10, r3 - ldrb r0, [r0, 0x1A] - b _0803BAF6 - .align 2, 0 -_0803BADC: .4byte gEnigmaBerries -_0803BAE0: - ldrh r0, [r7, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldrh r0, [r7, 0x2E] - bl ItemId_GetHoldEffectParam - lsls r0, 24 - lsrs r0, 24 -_0803BAF6: - str r0, [sp, 0x20] - ldr r1, [sp, 0x4] - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _0803BB26 - ldr r1, _0803BB10 @ =gEnigmaBerries - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x7] - str r0, [sp, 0x1C] - b _0803BB3C - .align 2, 0 -_0803BB10: .4byte gEnigmaBerries -_0803BB14: - ldr r0, [sp, 0x20] - adds r0, 0x64 - muls r0, r6 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r6, r0, 16 - b _0803BCDC -_0803BB26: - ldr r2, [sp, 0x4] - ldrh r0, [r2, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x1C] - ldr r3, [sp, 0x4] - ldrh r0, [r3, 0x2E] - bl ItemId_GetHoldEffectParam -_0803BB3C: - adds r0, r7, 0 - adds r0, 0x20 - ldrb r1, [r0] - str r0, [sp, 0x24] - cmp r1, 0x25 - beq _0803BB4C - cmp r1, 0x4A - bne _0803BB50 -_0803BB4C: - lsls r0, r6, 17 - lsrs r6, r0, 16 -_0803BB50: - ldr r0, _0803BCB8 @ =gUnknown_020239F8 - ldrh r1, [r0] - ldr r0, _0803BCBC @ =0x00000902 - ands r0, r1 - cmp r0, 0 - beq _0803BB5E - b _0803BC78 -_0803BB5E: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0803BB98 - ldr r0, _0803BCC0 @ =gTrainerBattleOpponent - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - beq _0803BB98 - ldr r0, _0803BCC4 @ =0x00000807 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0803BB98 - ldr r0, [sp, 0x10] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0803BB98 - movs r0, 0x6E - muls r0, r6 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r6, r0, 16 -_0803BB98: - ldr r0, _0803BCB8 @ =gUnknown_020239F8 - ldrh r1, [r0] - ldr r0, _0803BCBC @ =0x00000902 - ands r0, r1 - cmp r0, 0 - bne _0803BC78 - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0803BBE2 - ldr r0, _0803BCC0 @ =gTrainerBattleOpponent - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - beq _0803BBE2 - ldr r0, _0803BCC8 @ =0x0000080b - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0803BBE2 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0803BBE2 - movs r0, 0x6E - ldr r1, [sp, 0x14] - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x14] -_0803BBE2: - ldr r0, _0803BCB8 @ =gUnknown_020239F8 - ldrh r1, [r0] - ldr r0, _0803BCBC @ =0x00000902 - ands r0, r1 - cmp r0, 0 - bne _0803BC78 - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0803BC2E - ldr r0, _0803BCC0 @ =gTrainerBattleOpponent - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - beq _0803BC2E - ldr r0, _0803BCCC @ =0x0000080d - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0803BC2E - ldr r0, [sp, 0x10] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0803BC2E - movs r0, 0x6E - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 -_0803BC2E: - ldr r0, _0803BCB8 @ =gUnknown_020239F8 - ldrh r1, [r0] - ldr r0, _0803BCBC @ =0x00000902 - ands r0, r1 - cmp r0, 0 - bne _0803BC78 - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0803BC78 - ldr r0, _0803BCC0 @ =gTrainerBattleOpponent - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - beq _0803BC78 - ldr r0, _0803BCCC @ =0x0000080d - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0803BC78 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0803BC78 - movs r0, 0x6E - ldr r3, [sp, 0x18] - muls r0, r3 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x18] -_0803BC78: - movs r2, 0 - ldr r4, _0803BCD0 @ =gHoldEffectToType - ldr r0, [sp, 0x4] - adds r0, 0x20 - str r0, [sp, 0x28] - adds r3, r4, 0 -_0803BC84: - lsls r1, r2, 1 - ldrb r0, [r3] - cmp r10, r0 - bne _0803BCD4 - adds r0, r4, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r9, r0 - bne _0803BCD4 - mov r1, r9 - cmp r1, 0x8 - bhi _0803BC9E - b _0803BB14 -_0803BC9E: - ldr r0, [sp, 0x20] - adds r0, 0x64 - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - b _0803BCDC - .align 2, 0 -_0803BCB8: .4byte gUnknown_020239F8 -_0803BCBC: .4byte 0x00000902 -_0803BCC0: .4byte gTrainerBattleOpponent -_0803BCC4: .4byte 0x00000807 -_0803BCC8: .4byte 0x0000080b -_0803BCCC: .4byte 0x0000080d -_0803BCD0: .4byte gHoldEffectToType -_0803BCD4: - adds r3, 0x2 - adds r2, 0x1 - cmp r2, 0x10 - bls _0803BC84 -_0803BCDC: - mov r3, r10 - cmp r3, 0x1D - bne _0803BCF0 - movs r0, 0x96 - muls r0, r6 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r6, r0, 16 -_0803BCF0: - mov r0, r10 - cmp r0, 0x22 - bne _0803BD28 - ldr r0, _0803BFDC @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - bne _0803BD28 - ldr r1, _0803BFE0 @ =0xfffffe69 - adds r0, r1, 0 - ldrh r2, [r7] - adds r0, r2 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _0803BD28 - movs r0, 0x96 - mov r3, r8 - muls r3, r0 - adds r0, r3, 0 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 -_0803BD28: - ldr r0, [sp, 0x1C] - cmp r0, 0x22 - bne _0803BD60 - ldr r0, _0803BFDC @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - bne _0803BD60 - ldr r1, _0803BFE0 @ =0xfffffe69 - adds r0, r1, 0 - ldr r2, [sp, 0x4] - ldrh r2, [r2] - adds r0, r2 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _0803BD60 - movs r0, 0x96 - ldr r3, [sp, 0x18] - muls r0, r3 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x18] -_0803BD60: - mov r0, r10 - cmp r0, 0x23 - bne _0803BD76 - ldrh r1, [r7] - ldr r0, _0803BFE4 @ =0x00000175 - cmp r1, r0 - bne _0803BD76 - mov r1, r8 - lsls r0, r1, 17 - lsrs r0, 16 - mov r8, r0 -_0803BD76: - ldr r2, [sp, 0x1C] - cmp r2, 0x24 - bne _0803BD8E - ldr r3, [sp, 0x4] - ldrh r1, [r3] - ldr r0, _0803BFE4 @ =0x00000175 - cmp r1, r0 - bne _0803BD8E - ldr r1, [sp, 0x18] - lsls r0, r1, 17 - lsrs r0, 16 - str r0, [sp, 0x18] -_0803BD8E: - mov r2, r10 - cmp r2, 0x2D - bne _0803BDA2 - ldrh r0, [r7] - cmp r0, 0x19 - bne _0803BDA2 - mov r3, r8 - lsls r0, r3, 17 - lsrs r0, 16 - mov r8, r0 -_0803BDA2: - ldr r0, [sp, 0x1C] - cmp r0, 0x40 - bne _0803BDB8 - ldr r1, [sp, 0x4] - ldrh r0, [r1] - cmp r0, 0x84 - bne _0803BDB8 - ldr r2, [sp, 0x14] - lsls r0, r2, 17 - lsrs r0, 16 - str r0, [sp, 0x14] -_0803BDB8: - mov r3, r10 - cmp r3, 0x41 - bne _0803BDCE - ldrh r0, [r7] - subs r0, 0x68 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _0803BDCE - lsls r0, r6, 17 - lsrs r6, r0, 16 -_0803BDCE: - ldr r1, [sp, 0x28] - ldrb r0, [r1] - cmp r0, 0x2F - bne _0803BDE6 - mov r2, r9 - cmp r2, 0xA - beq _0803BDE0 - cmp r2, 0xF - bne _0803BDE6 -_0803BDE0: - mov r3, r8 - lsrs r3, 1 - mov r8, r3 -_0803BDE6: - ldr r0, [sp, 0x24] - ldrb r4, [r0] - cmp r4, 0x37 - bne _0803BDFC - movs r0, 0x96 - muls r0, r6 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r6, r0, 16 -_0803BDFC: - cmp r4, 0x39 - bne _0803BE2A - movs r0, 0 - str r0, [sp] - movs r0, 0xE - movs r1, 0 - movs r2, 0x3A - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - beq _0803BE2A - movs r0, 0x96 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 -_0803BE2A: - ldr r2, [sp, 0x24] - ldrb r0, [r2] - cmp r0, 0x3A - bne _0803BE5C - movs r0, 0 - str r0, [sp] - movs r0, 0xE - movs r1, 0 - movs r2, 0x39 - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - beq _0803BE5C - movs r0, 0x96 - mov r3, r8 - muls r3, r0 - adds r0, r3, 0 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 -_0803BE5C: - ldr r1, [sp, 0x24] - ldrb r0, [r1] - cmp r0, 0x3E - bne _0803BE78 - ldr r0, [r7, 0x4C] - cmp r0, 0 - beq _0803BE78 - movs r0, 0x96 - muls r0, r6 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r6, r0, 16 -_0803BE78: - ldr r2, [sp, 0x28] - ldrb r0, [r2] - cmp r0, 0x3F - bne _0803BE9A - ldr r3, [sp, 0x4] - ldr r0, [r3, 0x4C] - cmp r0, 0 - beq _0803BE9A - movs r0, 0x96 - ldr r1, [sp, 0x14] - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x14] -_0803BE9A: - mov r2, r9 - cmp r2, 0xD - bne _0803BEBE - movs r0, 0 - str r0, [sp] - movs r0, 0xE - movs r1, 0 - movs r2, 0 - movs r3, 0xFD - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - beq _0803BEBE - ldr r1, _0803BFE8 @ =gBattleMovePower - ldrh r0, [r1] - lsrs r0, 1 - strh r0, [r1] -_0803BEBE: - mov r3, r9 - cmp r3, 0xA - bne _0803BEE2 - movs r0, 0 - str r0, [sp] - movs r0, 0xE - movs r1, 0 - movs r2, 0 - movs r3, 0xFE - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - beq _0803BEE2 - ldr r1, _0803BFE8 @ =gBattleMovePower - ldrh r0, [r1] - lsrs r0, 1 - strh r0, [r1] -_0803BEE2: - mov r0, r9 - cmp r0, 0xC - bne _0803BF12 - ldr r1, [sp, 0x24] - ldrb r0, [r1] - cmp r0, 0x41 - bne _0803BF12 - ldrh r0, [r7, 0x2C] - movs r1, 0x3 - bl __udivsi3 - ldrh r1, [r7, 0x28] - lsls r0, 16 - lsrs r0, 16 - cmp r1, r0 - bhi _0803BF12 - ldr r4, _0803BFE8 @ =gBattleMovePower - ldrh r1, [r4] - movs r0, 0x96 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - strh r0, [r4] -_0803BF12: - mov r2, r9 - cmp r2, 0xA - bne _0803BF42 - ldr r3, [sp, 0x24] - ldrb r0, [r3] - cmp r0, 0x42 - bne _0803BF42 - ldrh r0, [r7, 0x2C] - movs r1, 0x3 - bl __udivsi3 - ldrh r1, [r7, 0x28] - lsls r0, 16 - lsrs r0, 16 - cmp r1, r0 - bhi _0803BF42 - ldr r4, _0803BFE8 @ =gBattleMovePower - ldrh r1, [r4] - movs r0, 0x96 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - strh r0, [r4] -_0803BF42: - mov r0, r9 - cmp r0, 0xB - bne _0803BF72 - ldr r1, [sp, 0x24] - ldrb r0, [r1] - cmp r0, 0x43 - bne _0803BF72 - ldrh r0, [r7, 0x2C] - movs r1, 0x3 - bl __udivsi3 - ldrh r1, [r7, 0x28] - lsls r0, 16 - lsrs r0, 16 - cmp r1, r0 - bhi _0803BF72 - ldr r4, _0803BFE8 @ =gBattleMovePower - ldrh r1, [r4] - movs r0, 0x96 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - strh r0, [r4] -_0803BF72: - mov r2, r9 - cmp r2, 0x6 - bne _0803BFA2 - ldr r3, [sp, 0x24] - ldrb r0, [r3] - cmp r0, 0x44 - bne _0803BFA2 - ldrh r0, [r7, 0x2C] - movs r1, 0x3 - bl __udivsi3 - ldrh r1, [r7, 0x28] - lsls r0, 16 - lsrs r0, 16 - cmp r1, r0 - bhi _0803BFA2 - ldr r4, _0803BFE8 @ =gBattleMovePower - ldrh r1, [r4] - movs r0, 0x96 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - strh r0, [r4] -_0803BFA2: - ldr r2, _0803BFEC @ =gBattleMoves - ldr r0, _0803BFF0 @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x7 - bne _0803BFBC - ldr r0, [sp, 0x14] - lsrs r0, 1 - str r0, [sp, 0x14] -_0803BFBC: - mov r1, r9 - cmp r1, 0x8 - bls _0803BFC4 - b _0803C122 -_0803BFC4: - ldr r0, _0803BFF4 @ =gCritMultiplier - ldrb r1, [r0] - adds r4, r0, 0 - cmp r1, 0x2 - bne _0803C000 - movs r0, 0x19 - ldrsb r0, [r7, r0] - cmp r0, 0x6 - ble _0803BFFC - ldr r2, _0803BFF8 @ =gStatStageRatios - b _0803C006 - .align 2, 0 -_0803BFDC: .4byte gUnknown_020239F8 -_0803BFE0: .4byte 0xfffffe69 -_0803BFE4: .4byte 0x00000175 -_0803BFE8: .4byte gBattleMovePower -_0803BFEC: .4byte gBattleMoves -_0803BFF0: .4byte gUnknown_02024BE6 -_0803BFF4: .4byte gCritMultiplier -_0803BFF8: .4byte gStatStageRatios -_0803BFFC: - adds r5, r6, 0 - b _0803C01E -_0803C000: - ldr r2, _0803C050 @ =gStatStageRatios - movs r0, 0x19 - ldrsb r0, [r7, r0] -_0803C006: - lsls r0, 1 - adds r1, r0, r2 - ldrb r1, [r1] - adds r5, r6, 0 - muls r5, r1 - adds r2, 0x1 - adds r0, r2 - ldrb r1, [r0] - adds r0, r5, 0 - bl __divsi3 - adds r5, r0, 0 -_0803C01E: - ldr r0, _0803C054 @ =gBattleMovePower - ldrh r0, [r0] - muls r5, r0 - adds r0, r7, 0 - adds r0, 0x2A - ldrb r0, [r0] - lsls r0, 1 - movs r1, 0x5 - bl __divsi3 - adds r0, 0x2 - muls r5, r0 - ldrb r0, [r4] - cmp r0, 0x2 - bne _0803C05C - ldr r2, [sp, 0x4] - movs r0, 0x1A - ldrsb r0, [r2, r0] - cmp r0, 0x5 - bgt _0803C058 - ldr r2, _0803C050 @ =gStatStageRatios - ldr r3, [sp, 0x4] - movs r0, 0x1A - ldrsb r0, [r3, r0] - b _0803C064 - .align 2, 0 -_0803C050: .4byte gStatStageRatios -_0803C054: .4byte gBattleMovePower -_0803C058: - ldr r3, [sp, 0x14] - b _0803C07E -_0803C05C: - ldr r2, _0803C0DC @ =gStatStageRatios - ldr r1, [sp, 0x4] - movs r0, 0x1A - ldrsb r0, [r1, r0] -_0803C064: - lsls r0, 1 - adds r1, r0, r2 - ldrb r1, [r1] - ldr r6, [sp, 0x14] - adds r3, r6, 0 - muls r3, r1 - adds r2, 0x1 - adds r0, r2 - ldrb r1, [r0] - adds r0, r3, 0 - bl __divsi3 - adds r3, r0, 0 -_0803C07E: - adds r0, r5, 0 - adds r1, r3, 0 - bl __divsi3 - adds r5, r0, 0 - movs r1, 0x32 - bl __divsi3 - adds r5, r0, 0 - ldr r0, [r7, 0x4C] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0803C0A8 - ldr r1, [sp, 0x24] - ldrb r0, [r1] - cmp r0, 0x3E - beq _0803C0A8 - lsrs r0, r5, 31 - adds r0, r5, r0 - asrs r5, r0, 1 -_0803C0A8: - movs r0, 0x1 - ldr r2, [sp, 0xC] - ands r0, r2 - cmp r0, 0 - beq _0803C0EA - ldrb r1, [r4] - cmp r1, 0x1 - bne _0803C0EA - ldr r0, _0803C0E0 @ =gUnknown_020239F8 - ldrh r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _0803C0E4 - movs r0, 0x2 - bl sub_803C348 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0803C0E4 - adds r0, r5, 0 - movs r1, 0x3 - bl __divsi3 - lsls r5, r0, 1 - b _0803C0EA - .align 2, 0 -_0803C0DC: .4byte gStatStageRatios -_0803C0E0: .4byte gUnknown_020239F8 -_0803C0E4: - lsrs r0, r5, 31 - adds r0, r5, r0 - asrs r5, r0, 1 -_0803C0EA: - ldr r0, _0803C148 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0803C11C - ldr r0, _0803C14C @ =gBattleMoves - ldr r3, [sp, 0x8] - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x6] - cmp r0, 0x8 - bne _0803C11C - movs r0, 0x2 - bl sub_803C348 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0803C11C - lsrs r0, r5, 31 - adds r0, r5, r0 - asrs r5, r0, 1 -_0803C11C: - cmp r5, 0 - bne _0803C122 - movs r5, 0x1 -_0803C122: - mov r6, r9 - cmp r6, 0x9 - bne _0803C12A - movs r5, 0 -_0803C12A: - mov r0, r9 - cmp r0, 0x9 - bhi _0803C132 - b _0803C330 -_0803C132: - ldr r0, _0803C150 @ =gCritMultiplier - ldrb r1, [r0] - adds r4, r0, 0 - cmp r1, 0x2 - bne _0803C15C - movs r0, 0x1C - ldrsb r0, [r7, r0] - cmp r0, 0x6 - ble _0803C158 - ldr r2, _0803C154 @ =gStatStageRatios - b _0803C162 - .align 2, 0 -_0803C148: .4byte gUnknown_020239F8 -_0803C14C: .4byte gBattleMoves -_0803C150: .4byte gCritMultiplier -_0803C154: .4byte gStatStageRatios -_0803C158: - mov r5, r8 - b _0803C17A -_0803C15C: - ldr r2, _0803C1A8 @ =gStatStageRatios - movs r0, 0x1C - ldrsb r0, [r7, r0] -_0803C162: - lsls r0, 1 - adds r1, r0, r2 - ldrb r1, [r1] - mov r5, r8 - muls r5, r1 - adds r2, 0x1 - adds r0, r2 - ldrb r1, [r0] - adds r0, r5, 0 - bl __divsi3 - adds r5, r0, 0 -_0803C17A: - ldr r0, _0803C1AC @ =gBattleMovePower - ldrh r0, [r0] - muls r5, r0 - adds r0, r7, 0 - adds r0, 0x2A - ldrb r0, [r0] - lsls r0, 1 - movs r1, 0x5 - bl __divsi3 - adds r0, 0x2 - muls r5, r0 - ldrb r0, [r4] - cmp r0, 0x2 - bne _0803C1B4 - ldr r1, [sp, 0x4] - movs r0, 0x1D - ldrsb r0, [r1, r0] - cmp r0, 0x5 - bgt _0803C1B0 - ldr r2, _0803C1A8 @ =gStatStageRatios - b _0803C1BC - .align 2, 0 -_0803C1A8: .4byte gStatStageRatios -_0803C1AC: .4byte gBattleMovePower -_0803C1B0: - ldr r3, [sp, 0x18] - b _0803C1D6 -_0803C1B4: - ldr r2, _0803C21C @ =gStatStageRatios - ldr r1, [sp, 0x4] - movs r0, 0x1D - ldrsb r0, [r1, r0] -_0803C1BC: - lsls r0, 1 - adds r1, r0, r2 - ldrb r1, [r1] - ldr r6, [sp, 0x18] - adds r3, r6, 0 - muls r3, r1 - adds r2, 0x1 - adds r0, r2 - ldrb r1, [r0] - adds r0, r3, 0 - bl __divsi3 - adds r3, r0, 0 -_0803C1D6: - adds r0, r5, 0 - adds r1, r3, 0 - bl __divsi3 - adds r5, r0, 0 - movs r1, 0x32 - bl __divsi3 - adds r5, r0, 0 - movs r0, 0x2 - ldr r1, [sp, 0xC] - ands r0, r1 - cmp r0, 0 - beq _0803C22A - ldrb r1, [r4] - cmp r1, 0x1 - bne _0803C22A - ldr r0, _0803C220 @ =gUnknown_020239F8 - ldrh r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _0803C224 - movs r0, 0x2 - bl sub_803C348 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0803C224 - adds r0, r5, 0 - movs r1, 0x3 - bl __divsi3 - lsls r5, r0, 1 - b _0803C22A - .align 2, 0 -_0803C21C: .4byte gStatStageRatios -_0803C220: .4byte gUnknown_020239F8 -_0803C224: - lsrs r0, r5, 31 - adds r0, r5, r0 - asrs r5, r0, 1 -_0803C22A: - ldr r0, _0803C2A4 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0803C25C - ldr r0, _0803C2A8 @ =gBattleMoves - ldr r2, [sp, 0x8] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x6] - cmp r0, 0x8 - bne _0803C25C - movs r0, 0x2 - bl sub_803C348 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0803C25C - lsrs r0, r5, 31 - adds r0, r5, r0 - asrs r5, r0, 1 -_0803C25C: - movs r0, 0 - str r0, [sp] - movs r0, 0xE - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0803C30C - str r0, [sp] - movs r0, 0xE - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - bne _0803C30C - ldr r2, _0803C2AC @ =word_2024DB8 - ldrh r1, [r2] - movs r0, 0x1 - ands r0, r1 - adds r4, r2, 0 - cmp r0, 0 - beq _0803C2C4 - mov r3, r9 - cmp r3, 0xA - beq _0803C2B0 - cmp r3, 0xB - beq _0803C2B8 - b _0803C2C4 - .align 2, 0 -_0803C2A4: .4byte gUnknown_020239F8 -_0803C2A8: .4byte gBattleMoves -_0803C2AC: .4byte word_2024DB8 -_0803C2B0: - lsrs r0, r5, 31 - adds r0, r5, r0 - asrs r5, r0, 1 - b _0803C2C4 -_0803C2B8: - lsls r0, r5, 4 - subs r0, r5 - movs r1, 0xA - bl __divsi3 - adds r5, r0, 0 -_0803C2C4: - ldrh r1, [r4] - movs r0, 0x9F - ands r0, r1 - cmp r0, 0 - beq _0803C2DC - ldr r0, _0803C2F4 @ =gUnknown_02024BE6 - ldrh r0, [r0] - cmp r0, 0x4C - bne _0803C2DC - lsrs r0, r5, 31 - adds r0, r5, r0 - asrs r5, r0, 1 -_0803C2DC: - ldrh r1, [r4] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _0803C30C - mov r6, r9 - cmp r6, 0xA - beq _0803C2F8 - cmp r6, 0xB - beq _0803C306 - b _0803C30C - .align 2, 0 -_0803C2F4: .4byte gUnknown_02024BE6 -_0803C2F8: - lsls r0, r5, 4 - subs r0, r5 - movs r1, 0xA - bl __divsi3 - adds r5, r0, 0 - b _0803C30C -_0803C306: - lsrs r0, r5, 31 - adds r0, r5, r0 - asrs r5, r0, 1 -_0803C30C: - ldr r1, _0803C344 @ =0x02017100 - ldr r2, [sp, 0x10] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0803C330 - mov r3, r9 - cmp r3, 0xA - bne _0803C330 - lsls r0, r5, 4 - subs r0, r5 - movs r1, 0xA - bl __divsi3 - adds r5, r0, 0 -_0803C330: - adds r0, r5, 0x2 - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0803C344: .4byte 0x02017100 - thumb_func_end CalculateBaseDamage - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/choose_party.s b/asm/choose_party.s index 21988162b..c895e71e0 100644 --- a/asm/choose_party.s +++ b/asm/choose_party.s @@ -113,7 +113,7 @@ _08121EC0: muls r2, r3 ldr r3, _08121EF0 @ =gPlayerParty adds r2, r3 - bl sub_806D90C + bl TryCreatePartyMenuMonIcon b _08122020 .align 2, 0 _08121EE8: .4byte 0x00000266 @@ -127,7 +127,7 @@ _08121EF4: adds r1, r4, r0 b _08121FE8 _08121F00: - bl sub_806DA98 + bl LoadHeldItemIconGraphics ldr r1, _08121F10 @ =0x0201b000 movs r2, 0x99 lsls r2, 2 @@ -140,7 +140,7 @@ _08121F14: lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] - bl sub_806DC34 + bl CreateHeldItemIcons_806DC34 movs r2, 0x99 lsls r2, 2 adds r1, r4, r2 @@ -167,7 +167,7 @@ _08121F28: .align 2, 0 _08121F50: .4byte 0x00000266 _08121F54: - bl sub_806E334 + bl PartyMenuPrintMonsLevelOrStatus ldr r1, _08121F64 @ =0x0201b000 movs r2, 0x99 lsls r2, 2 @@ -176,7 +176,7 @@ _08121F54: .align 2, 0 _08121F64: .4byte 0x0201b000 _08121F68: - bl sub_806E0C4 + bl PrintPartyMenuMonNicknames b _08121FE0 _08121F6E: movs r5, 0 @@ -1035,7 +1035,7 @@ sub_81225D4: @ 81225D4 ldr r3, _08122658 @ =sub_81225A4 str r5, [sp] adds r1, r4, 0 - bl sub_809D8BC + bl ShowPokemonSummaryScreen _08122632: add sp, 0x4 pop {r4,r5} @@ -1348,7 +1348,7 @@ _08122890: adds r1, r4, r2 b _081228CA _081228A4: - bl sub_806DA98 + bl LoadHeldItemIconGraphics b _081228C2 _081228AA: movs r1, 0x98 @@ -1407,7 +1407,7 @@ _081228F0: adds r1, r5, 0 movs r2, 0x3 adds r3, r4, 0 - bl sub_806D880 + bl CreatePartyMenuMonIcon _08122912: ldr r0, _0812294C @ =gUnknown_02023A00 lsls r1, r5, 5 @@ -1421,7 +1421,7 @@ _08122912: adds r0, r6, 0 adds r1, r4, 0 movs r2, 0x3 - bl sub_806D99C + bl CreateMonIcon_806D99C adds r0, r6, 0 adds r1, r4, 0 bl sub_806D50C @@ -1464,7 +1464,7 @@ _08122958: lsrs r2, 16 adds r0, r6, 0 adds r1, r5, 0 - bl sub_806DCD4 + bl CreateHeldItemIcon_806DCD4 _08122984: ldr r0, _081229B4 @ =gUnknown_02023A00 lsls r1, r5, 5 @@ -1477,7 +1477,7 @@ _08122984: lsrs r1, 24 ldrh r2, [r2, 0x2] adds r0, r6, 0 - bl sub_806DCD4 + bl CreateHeldItemIcon_806DCD4 _0812299E: adds r0, r5, 0x1 lsls r0, 24 @@ -1510,9 +1510,9 @@ _081229C0: adds r0, r5, 0 movs r1, 0x3 adds r2, r4, 0 - bl sub_806E4A4 + bl PartyMenuPrintHP adds r0, r4, 0 - bl sub_80A1CD8 + bl GetMonStatusAndPokerus lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -1524,7 +1524,7 @@ _081229C0: lsrs r2, 24 adds r0, r5, 0 movs r1, 0x3 - bl sub_806E104 + bl PartyMenuPutStatusTilemap b _08122A12 .align 2, 0 _08122A00: .4byte gPlayerParty @@ -1534,7 +1534,7 @@ _08122A04: adds r2, r6 adds r0, r5, 0 movs r1, 0x3 - bl sub_806E294 + bl PartyMenuPrintLevel _08122A12: adds r4, r5, 0 muls r4, r7 @@ -1542,15 +1542,15 @@ _08122A12: adds r0, r5, 0 movs r1, 0x3 adds r2, r4, 0 - bl sub_806E3C0 + bl PartyMenuPutNicknameTilemap adds r0, r5, 0 movs r1, 0x3 adds r2, r4, 0 - bl sub_806E050 + bl PrintPartyMenuMonNickname adds r0, r5, 0 movs r1, 0x3 adds r2, r4, 0 - bl sub_806E630 + bl PartyMenuDrawHPBar _08122A36: adds r0, r5, 0x1 lsls r0, 24 @@ -1690,7 +1690,7 @@ _08122B2E: ldrh r3, [r6, 0x12] adds r0, r5, 0 movs r1, 0x3 - bl sub_806E420 + bl PartyMenuDoPrintHP ldrh r0, [r6, 0x10] cmp r0, 0 bne _08122B64 @@ -1715,7 +1715,7 @@ _08122B76: lsls r2, 24 lsrs r2, 24 movs r1, 0x3 - bl sub_806E104 + bl PartyMenuPutStatusTilemap b _08122B96 .align 2, 0 _08122B88: .4byte gUnknown_02023A14 @@ -1723,7 +1723,7 @@ _08122B8C: ldrb r2, [r6, 0xF] adds r0, r5, 0 movs r1, 0x3 - bl sub_806E1F4 + bl PartyMenuDoPrintLevel _08122B96: mov r2, r10 adds r6, r7, r2 @@ -1736,14 +1736,14 @@ _08122B96: str r5, [sp] movs r2, 0x3 adds r3, r4, 0 - bl sub_806E35C + bl PartyMenuDoPutNicknameTilemap mov r0, r9 adds r1, r5, 0 bl StringCopy mov r0, r9 bl StringGetEnd10 mov r0, r9 - bl sub_814A568 + bl SanitizeNameString adds r0, r4, 0 movs r1, 0x3 mov r2, r9 @@ -1752,7 +1752,7 @@ _08122B96: ldrh r3, [r6, 0x12] adds r0, r4, 0 movs r1, 0x3 - bl sub_806E574 + bl PartyMenuDoDrawHPBar _08122BDA: mov r0, r8 adds r0, 0x1 @@ -1873,7 +1873,7 @@ _08122CA8: muls r2, r3 ldr r3, _08122CD8 @ =gPlayerParty adds r2, r3 - bl sub_806D90C + bl TryCreatePartyMenuMonIcon b _08122D84 .align 2, 0 _08122CD0: .4byte 0x00000266 @@ -1887,14 +1887,14 @@ _08122CDC: adds r1, r4, r0 b _08122D50 _08122CE8: - bl sub_806DA98 + bl LoadHeldItemIconGraphics b _08122D48 _08122CEE: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] - bl sub_806DC34 + bl CreateHeldItemIcons_806DC34 movs r2, 0x99 lsls r2, 2 adds r1, r4, r2 @@ -1921,10 +1921,10 @@ _08122D02: .align 2, 0 _08122D28: .4byte 0x00000266 _08122D2C: - bl sub_806E334 + bl PartyMenuPrintMonsLevelOrStatus b _08122D48 _08122D32: - bl sub_806E0C4 + bl PrintPartyMenuMonNicknames ldr r1, _08122D40 @ =0x0201b000 movs r0, 0x99 lsls r0, 2 @@ -2335,7 +2335,7 @@ sub_8123034: @ 8123034 ldr r3, _081230B8 @ =sub_8123004 str r5, [sp] adds r1, r4, 0 - bl sub_809D8BC + bl ShowPokemonSummaryScreen _08123092: add sp, 0x4 pop {r4,r5} diff --git a/asm/contest.s b/asm/contest.s index 59fd22aef..c98f5db0d 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -13,12 +13,12 @@ nullsub_89: @ 80AB1AC thumb_func_start sub_80AB1B0 sub_80AB1B0: @ 80AB1B0 - ldr r1, _080AB1B8 @ =gUnknown_0203869A + ldr r1, _080AB1B8 @ =gIsLinkContest movs r0, 0 strb r0, [r1] bx lr .align 2, 0 -_080AB1B8: .4byte gUnknown_0203869A +_080AB1B8: .4byte gIsLinkContest thumb_func_end sub_80AB1B0 thumb_func_start sub_80AB1BC @@ -302,7 +302,7 @@ _080AB3DE: movs r1, 0 movs r2, 0x10 bl memset - ldr r0, _080AB474 @ =gUnknown_0203869A + ldr r0, _080AB474 @ =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -338,7 +338,7 @@ _080AB448: _080AB468: .4byte 0x02019204 _080AB46C: .4byte 0x02019260 _080AB470: .4byte 0x020192d0 -_080AB474: .4byte gUnknown_0203869A +_080AB474: .4byte gIsLinkContest _080AB478: .4byte gUnknown_02038696 thumb_func_end sub_80AB398 @@ -526,7 +526,7 @@ sub_80AB604: @ 80AB604 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _080AB648 @ =gUnknown_0203869A + ldr r0, _080AB648 @ =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -555,7 +555,7 @@ sub_80AB604: @ 80AB604 str r1, [r0] b _080AB66A .align 2, 0 -_080AB648: .4byte gUnknown_0203869A +_080AB648: .4byte gIsLinkContest _080AB64C: .4byte gPaletteFade _080AB650: .4byte sub_80AB678 _080AB654: .4byte gTasks @@ -811,7 +811,7 @@ _080AB844: mov r1, sp adds r2, r6, 0 bl CpuSet - ldr r0, _080AB8B8 @ =gUnknown_02038695 + ldr r0, _080AB8B8 @ =gContestPlayerMonIndex mov r9, r0 ldrb r0, [r0] adds r0, 0x5 @@ -850,7 +850,7 @@ _080AB844: _080AB8AC: .4byte gUnknown_08D17144 _080AB8B0: .4byte gPlttBufferUnfaded + 0x100 _080AB8B4: .4byte REG_BG0CNT -_080AB8B8: .4byte gUnknown_02038695 +_080AB8B8: .4byte gContestPlayerMonIndex _080AB8BC: .4byte 0xffffff00 _080AB8C0: .4byte 0x02018004 _080AB8C4: .4byte 0x040000d4 @@ -876,7 +876,7 @@ _080AB8CC: strb r3, [r1, 0x2] movs r2, 0x2 strb r2, [r1, 0x3] - ldr r0, _080AB92C @ =gUnknown_020239F8 + ldr r0, _080AB92C @ =gBattleTypeFlags strh r4, [r0] ldr r4, _080AB930 @ =gUnknown_02024C07 strb r2, [r4] @@ -892,7 +892,7 @@ _080AB8CC: .align 2, 0 _080AB924: .4byte 0x02019204 _080AB928: .4byte gUnknown_02024A72 -_080AB92C: .4byte gUnknown_020239F8 +_080AB92C: .4byte gBattleTypeFlags _080AB930: .4byte gUnknown_02024C07 _080AB934: .4byte gUnknown_02024C08 _080AB938: .4byte gUnknown_02024BE0 @@ -1191,7 +1191,7 @@ sub_80ABB70: @ 80ABB70 ldr r1, _080ABBC4 @ =0x84000100 str r1, [r0, 0x8] ldr r0, [r0, 0x8] - ldr r0, _080ABBC8 @ =gUnknown_02038695 + ldr r0, _080ABBC8 @ =gContestPlayerMonIndex ldrb r0, [r0] bl sub_80AF59C lsls r0, 24 @@ -1208,7 +1208,7 @@ _080ABBB8: .4byte gPlttBufferUnfaded _080ABBBC: .4byte 0x02018204 _080ABBC0: .4byte 0x040000d4 _080ABBC4: .4byte 0x84000100 -_080ABBC8: .4byte gUnknown_02038695 +_080ABBC8: .4byte gContestPlayerMonIndex _080ABBCC: .4byte gUnknown_020238CC _080ABBD0: .4byte gUnknown_083CAF84 _080ABBD4: @@ -1301,7 +1301,7 @@ sub_80ABC70: @ 80ABC70 _080ABC88: movs r0, 0x5 bl PlaySE - ldr r0, _080ABCB4 @ =gUnknown_02038695 + ldr r0, _080ABCB4 @ =gContestPlayerMonIndex ldrb r0, [r0] bl sub_80AF59C lsls r0, 24 @@ -1318,7 +1318,7 @@ _080ABC88: b _080ABCCC .align 2, 0 _080ABCB0: .4byte gMain -_080ABCB4: .4byte gUnknown_02038695 +_080ABCB4: .4byte gContestPlayerMonIndex _080ABCB8: .4byte gTasks _080ABCBC: .4byte sub_80ABCDC _080ABCC0: @@ -1367,7 +1367,7 @@ sub_80ABCDC: @ 80ABCDC movs r1, 0 bl FillWindowRect_DefaultPalette movs r6, 0 - ldr r0, _080ABD90 @ =gUnknown_02038695 + ldr r0, _080ABD90 @ =gContestPlayerMonIndex mov r8, r0 ldr r7, _080ABD94 @ =0x02019260 mov r9, r5 @@ -1425,7 +1425,7 @@ _080ABD80: .4byte gUnknown_030042A0 _080ABD84: .4byte gUnknown_03004280 _080ABD88: .4byte gUnknown_03004210 _080ABD8C: .4byte gUnknown_083CA340 -_080ABD90: .4byte gUnknown_02038695 +_080ABD90: .4byte gContestPlayerMonIndex _080ABD94: .4byte 0x02019260 _080ABD98: .4byte gUnknown_0203858E _080ABD9C: .4byte gUnknownText_UnknownFormatting2 @@ -1504,10 +1504,10 @@ _080ABE20: movs r0, 0 ldrsb r0, [r4, r0] bl sub_80AC0AC - ldr r2, _080ABE90 @ =gUnknown_02038570 + ldr r2, _080ABE90 @ =gContestMons ldrb r1, [r4] lsls r1, 1 - ldr r0, _080ABE94 @ =gUnknown_02038695 + ldr r0, _080ABE94 @ =gContestPlayerMonIndex ldrb r0, [r0] lsls r0, 6 adds r1, r0 @@ -1539,8 +1539,8 @@ _080ABE80: .4byte gUnknown_083CA340 + 0x1 _080ABE84: .4byte 0x0000ffff _080ABE88: .4byte 0x00002d9f _080ABE8C: .4byte 0x02019204 -_080ABE90: .4byte gUnknown_02038570 -_080ABE94: .4byte gUnknown_02038695 +_080ABE90: .4byte gContestMons +_080ABE94: .4byte gContestPlayerMonIndex _080ABE98: .4byte gTasks _080ABE9C: .4byte sub_80ABEA0 thumb_func_end sub_80ABCDC @@ -1553,8 +1553,8 @@ sub_80ABEA0: @ 80ABEA0 lsrs r7, r0, 24 movs r6, 0 ldr r3, _080ABEF4 @ =gMain - ldr r1, _080ABEF8 @ =gUnknown_02038570 - ldr r0, _080ABEFC @ =gUnknown_02038695 + ldr r1, _080ABEF8 @ =gContestMons + ldr r0, _080ABEFC @ =gContestPlayerMonIndex ldrb r0, [r0] lsls r0, 6 adds r1, 0x1E @@ -1590,8 +1590,8 @@ _080ABEC6: b _080AC098 .align 2, 0 _080ABEF4: .4byte gMain -_080ABEF8: .4byte gUnknown_02038570 -_080ABEFC: .4byte gUnknown_02038695 +_080ABEF8: .4byte gContestMons +_080ABEFC: .4byte gContestPlayerMonIndex _080ABF00: .4byte gTasks _080ABF04: .4byte sub_80AC0C8 _080ABF08: @@ -1629,7 +1629,7 @@ _080ABF26: str r1, [sp, 0x4] movs r1, 0 bl FillWindowRect_DefaultPalette - ldr r0, _080ABF6C @ =gUnknown_02038695 + ldr r0, _080ABF6C @ =gContestPlayerMonIndex ldrb r0, [r0] bl sub_80AF59C lsls r0, 24 @@ -1642,7 +1642,7 @@ _080ABF26: .align 2, 0 _080ABF64: .4byte gUnknown_03004210 _080ABF68: .4byte gUnknown_083CA340 -_080ABF6C: .4byte gUnknown_02038695 +_080ABF6C: .4byte gContestPlayerMonIndex _080ABF70: .4byte gUnknown_020238CC _080ABF74: .4byte gUnknown_083CAF84 _080ABF78: @@ -1713,10 +1713,10 @@ _080AC006: ldrsb r0, [r4, r0] bl sub_80AC0AC bl sub_80AED58 - ldr r2, _080AC040 @ =gUnknown_02038570 + ldr r2, _080AC040 @ =gContestMons ldrb r1, [r4] lsls r1, 1 - ldr r0, _080AC044 @ =gUnknown_02038695 + ldr r0, _080AC044 @ =gContestPlayerMonIndex ldrb r0, [r0] lsls r0, 6 adds r1, r0 @@ -1731,8 +1731,8 @@ _080AC006: b _080AC098 .align 2, 0 _080AC03C: .4byte 0x02019204 -_080AC040: .4byte gUnknown_02038570 -_080AC044: .4byte gUnknown_02038695 +_080AC040: .4byte gContestMons +_080AC044: .4byte gContestPlayerMonIndex _080AC048: ldr r4, _080AC060 @ =0x02019204 movs r0, 0 @@ -1755,10 +1755,10 @@ _080AC068: ldrsb r0, [r4, r0] bl sub_80AC0AC bl sub_80AED58 - ldr r2, _080AC0A4 @ =gUnknown_02038570 + ldr r2, _080AC0A4 @ =gContestMons ldrb r1, [r4] lsls r1, 1 - ldr r0, _080AC0A8 @ =gUnknown_02038695 + ldr r0, _080AC0A8 @ =gContestPlayerMonIndex ldrb r0, [r0] lsls r0, 6 adds r1, r0 @@ -1777,8 +1777,8 @@ _080AC098: bx r0 .align 2, 0 _080AC0A0: .4byte 0x02019204 -_080AC0A4: .4byte gUnknown_02038570 -_080AC0A8: .4byte gUnknown_02038695 +_080AC0A4: .4byte gContestMons +_080AC0A8: .4byte gContestPlayerMonIndex thumb_func_end sub_80ABEA0 thumb_func_start sub_80AC0AC @@ -1806,13 +1806,13 @@ sub_80AC0C8: @ 80AC0C8 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r0, _080AC120 @ =gUnknown_0203869A + ldr r0, _080AC120 @ =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080AC13C - ldr r4, _080AC124 @ =gUnknown_02038695 + ldr r4, _080AC124 @ =gContestPlayerMonIndex ldrb r0, [r4] bl sub_80AF15C ldrb r2, [r4] @@ -1843,8 +1843,8 @@ sub_80AC0C8: @ 80AC0C8 bl sub_80AFFE0 b _080AC14E .align 2, 0 -_080AC120: .4byte gUnknown_0203869A -_080AC124: .4byte gUnknown_02038695 +_080AC120: .4byte gIsLinkContest +_080AC124: .4byte gContestPlayerMonIndex _080AC128: .4byte 0x02019260 _080AC12C: .4byte sub_80C8A38 _080AC130: .4byte sub_80AC15C @@ -2173,7 +2173,7 @@ _080AC42C: ldr r4, _080AC484 @ =0x02019204 strb r6, [r4, 0x11] ldrb r7, [r4, 0x11] - ldr r0, _080AC488 @ =gUnknown_0203869A + ldr r0, _080AC488 @ =gIsLinkContest ldrb r1, [r0] movs r5, 0x1 adds r0, r5, 0 @@ -2210,7 +2210,7 @@ _080AC458: bl _080AD8CA .align 2, 0 _080AC484: .4byte 0x02019204 -_080AC488: .4byte gUnknown_0203869A +_080AC488: .4byte gIsLinkContest _080AC48C: .4byte sub_80C8C80 _080AC490: .4byte sub_80AD8DC _080AC494: .4byte gTasks @@ -2311,7 +2311,7 @@ _080AC542: adds r7, r4, r5 ldrb r0, [r7, 0x11] bl sub_80B28F0 - ldr r3, _080AC5D0 @ =gUnknown_02038570 + ldr r3, _080AC5D0 @ =gContestMons ldrb r2, [r7, 0x11] lsls r2, 6 adds r0, r2, r3 @@ -2360,7 +2360,7 @@ _080AC542: _080AC5C4: .4byte 0x02019348 _080AC5C8: .4byte gUnknown_02024E84 _080AC5CC: .4byte 0xfffffebc -_080AC5D0: .4byte gUnknown_02038570 +_080AC5D0: .4byte gContestMons _080AC5D4: .4byte gSprites _080AC5D8: .4byte sub_80AD8FC _080AC5DC: .4byte gTasks @@ -2428,7 +2428,7 @@ _080AC664: bl sub_80AF138 ldr r0, _080AC690 @ =gStringVar1 lsls r1, r7, 6 - ldr r2, _080AC694 @ =gUnknown_02038572 + ldr r2, _080AC694 @ =gContestMons + 0x2 adds r1, r2 bl StringCopy ldrh r1, [r5, 0x6] @@ -2446,7 +2446,7 @@ _080AC664: b _080AC6B0 .align 2, 0 _080AC690: .4byte gStringVar1 -_080AC694: .4byte gUnknown_02038572 +_080AC694: .4byte gContestMons + 0x2 _080AC698: .4byte gStringVar2 _080AC69C: .4byte gMoveNames _080AC6A0: @@ -3369,7 +3369,7 @@ _080ACE0A: bl sub_80AF138 ldr r0, _080ACE4C @ =gStringVar1 lsls r1, r7, 6 - ldr r2, _080ACE50 @ =gUnknown_02038572 + ldr r2, _080ACE50 @ =gContestMons + 0x2 adds r1, r2 bl StringCopy ldr r4, _080ACE54 @ =gStringVar4 @@ -3396,7 +3396,7 @@ _080ACE36: .align 2, 0 _080ACE48: .4byte 0x02019260 _080ACE4C: .4byte gStringVar1 -_080ACE50: .4byte gUnknown_02038572 +_080ACE50: .4byte gContestMons + 0x2 _080ACE54: .4byte gStringVar4 _080ACE58: .4byte gUnknown_083CC103 _080ACE5C: .4byte gMenuWindow @@ -3511,7 +3511,7 @@ _080ACF48: bl sub_80AF138 ldr r0, _080ACF90 @ =gStringVar1 lsls r1, r7, 6 - ldr r2, _080ACF94 @ =gUnknown_02038572 + ldr r2, _080ACF94 @ =gContestMons + 0x2 adds r1, r2 bl StringCopy ldr r4, _080ACF98 @ =gStringVar4 @@ -3541,7 +3541,7 @@ _080ACF88: bl _080AD8CA .align 2, 0 _080ACF90: .4byte gStringVar1 -_080ACF94: .4byte gUnknown_02038572 +_080ACF94: .4byte gContestMons + 0x2 _080ACF98: .4byte gStringVar4 _080ACF9C: .4byte gUnknown_083CBD52 _080ACFA0: .4byte gMenuWindow @@ -3655,7 +3655,7 @@ _080AD070: bl sub_80AF138 ldr r0, _080AD0D0 @ =gStringVar1 lsls r1, r7, 6 - ldr r2, _080AD0D4 @ =gUnknown_02038572 + ldr r2, _080AD0D4 @ =gContestMons + 0x2 adds r1, r2 bl StringCopy ldr r4, _080AD0D8 @ =gStringVar4 @@ -3685,7 +3685,7 @@ _080AD070: .align 2, 0 _080AD0CC: .4byte 0x02019260 _080AD0D0: .4byte gStringVar1 -_080AD0D4: .4byte gUnknown_02038572 +_080AD0D4: .4byte gContestMons + 0x2 _080AD0D8: .4byte gStringVar4 _080AD0DC: .4byte gUnknown_083CC075 _080AD0E0: .4byte gMenuWindow @@ -3859,7 +3859,7 @@ _080AD23A: bl sub_80AF138 ldr r0, _080AD280 @ =gStringVar1 lsls r1, r7, 6 - ldr r2, _080AD284 @ =gUnknown_02038572 + ldr r2, _080AD284 @ =gContestMons + 0x2 adds r1, r2 bl StringCopy ldr r3, _080AD288 @ =0x02019204 @@ -3887,7 +3887,7 @@ _080AD274: .4byte gUnknown_083CC2D8 _080AD278: .4byte gContestMoves _080AD27C: .4byte 0x02019260 _080AD280: .4byte gStringVar1 -_080AD284: .4byte gUnknown_02038572 +_080AD284: .4byte gContestMons + 0x2 _080AD288: .4byte 0x02019204 _080AD28C: .4byte gTasks _080AD290: @@ -4242,7 +4242,7 @@ _080AD53C: lsls r1, 20 lsrs r1, 29 lsls r1, 6 - ldr r5, _080AD5B0 @ =gUnknown_02038572 + ldr r5, _080AD5B0 @ =gContestMons + 0x2 adds r1, r5 bl StringCopy ldr r0, _080AD5B4 @ =gStringVar1 @@ -4285,7 +4285,7 @@ _080AD53C: .align 2, 0 _080AD5A8: .4byte gStringVar3 _080AD5AC: .4byte 0x02019328 -_080AD5B0: .4byte gUnknown_02038572 +_080AD5B0: .4byte gContestMons + 0x2 _080AD5B4: .4byte gStringVar1 _080AD5B8: .4byte gStringVar2 _080AD5BC: .4byte gMoveNames @@ -4365,7 +4365,7 @@ _080AD664: bl sub_80B09B0 ldr r0, _080AD6B8 @ =gStringVar1 lsls r1, r7, 6 - ldr r2, _080AD6BC @ =gUnknown_02038572 + ldr r2, _080AD6BC @ =gContestMons + 0x2 adds r1, r2 bl StringCopy ldr r0, _080AD6C0 @ =gStringVar2 @@ -4399,7 +4399,7 @@ _080AD664: .align 2, 0 _080AD6B4: .4byte 0x02019260 _080AD6B8: .4byte gStringVar1 -_080AD6BC: .4byte gUnknown_02038572 +_080AD6BC: .4byte gContestMons + 0x2 _080AD6C0: .4byte gStringVar2 _080AD6C4: .4byte gMoveNames _080AD6C8: .4byte gStringVar4 @@ -4548,7 +4548,7 @@ _080AD7E8: bl sub_80AF138 ldr r0, _080AD828 @ =gStringVar1 lsls r1, r7, 6 - ldr r2, _080AD82C @ =gUnknown_02038572 + ldr r2, _080AD82C @ =gContestMons + 0x2 adds r1, r2 bl StringCopy ldr r4, _080AD830 @ =gStringVar4 @@ -4574,7 +4574,7 @@ _080AD7E8: b _080AD8CA .align 2, 0 _080AD828: .4byte gStringVar1 -_080AD82C: .4byte gUnknown_02038572 +_080AD82C: .4byte gContestMons + 0x2 _080AD830: .4byte gStringVar4 _080AD834: .4byte gUnknown_083CB00D _080AD838: .4byte gMenuWindow @@ -4763,7 +4763,7 @@ _080AD988: beq _080ADA08 b _080ADA10 _080AD98E: - ldr r0, _080AD9D8 @ =gUnknown_0203869A + ldr r0, _080AD9D8 @ =gIsLinkContest ldrb r1, [r0] movs r6, 0x1 adds r0, r6, 0 @@ -4795,7 +4795,7 @@ _080AD9B8: strh r6, [r5, 0x8] b _080ADA10 .align 2, 0 -_080AD9D8: .4byte gUnknown_0203869A +_080AD9D8: .4byte gIsLinkContest _080AD9DC: .4byte 0x02019204 _080AD9E0: .4byte sub_80C8C80 _080AD9E4: .4byte sub_80AD8DC @@ -5031,7 +5031,7 @@ sub_80ADB88: @ 80ADB88 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r6, _080ADBEC @ =gUnknown_02038695 + ldr r6, _080ADBEC @ =gContestPlayerMonIndex ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 @@ -5043,7 +5043,7 @@ sub_80ADB88: @ 80ADB88 ldr r0, _080ADBF4 @ =gStringVar1 ldrb r1, [r6] lsls r1, 6 - ldr r2, _080ADBF8 @ =gUnknown_02038572 + ldr r2, _080ADBF8 @ =gContestMons + 0x2 adds r1, r2 bl StringCopy ldr r6, _080ADBFC @ =gStringVar4 @@ -5073,10 +5073,10 @@ sub_80ADB88: @ 80ADB88 pop {r0} bx r0 .align 2, 0 -_080ADBEC: .4byte gUnknown_02038695 +_080ADBEC: .4byte gContestPlayerMonIndex _080ADBF0: .4byte 0x02019260 _080ADBF4: .4byte gStringVar1 -_080ADBF8: .4byte gUnknown_02038572 +_080ADBF8: .4byte gContestMons + 0x2 _080ADBFC: .4byte gStringVar4 _080ADC00: .4byte gUnknown_083CB2F0 _080ADC04: .4byte gMenuWindow @@ -5324,7 +5324,7 @@ _080ADDBC: movs r5, 0 bl sub_80AF668 bl sub_80AF138 - ldr r0, _080ADE34 @ =gUnknown_02038695 + ldr r0, _080ADE34 @ =gContestPlayerMonIndex ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 @@ -5366,7 +5366,7 @@ _080ADE24: .4byte gUnknown_030042A0 _080ADE28: .4byte gUnknown_03004280 _080ADE2C: .4byte 0x02019260 _080ADE30: .4byte gUnknown_02038680 -_080ADE34: .4byte gUnknown_02038695 +_080ADE34: .4byte gContestPlayerMonIndex _080ADE38: .4byte gUnknown_03005D28 _080ADE3C: .4byte gRngValue _080ADE40: .4byte gStringVar4 @@ -5473,7 +5473,7 @@ sub_80ADEEC: @ 80ADEEC ble _080ADF40 movs r0, 0 strh r0, [r4, 0x8] - ldr r0, _080ADF24 @ =gUnknown_0203869A + ldr r0, _080ADF24 @ =gIsLinkContest ldrb r0, [r0] movs r1, 0x1 ands r1, r0 @@ -5483,7 +5483,7 @@ sub_80ADEEC: @ 80ADEEC b _080ADF3E .align 2, 0 _080ADF20: .4byte gTasks -_080ADF24: .4byte gUnknown_0203869A +_080ADF24: .4byte gIsLinkContest _080ADF28: .4byte sub_80ADF4C _080ADF2C: movs r0, 0x1 @@ -5642,27 +5642,27 @@ _080AE04C: thumb_func_start sub_80AE054 sub_80AE054: @ 80AE054 push {lr} - ldr r0, _080AE06C @ =gUnknown_0203869A + ldr r0, _080AE06C @ =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080AE068 - ldr r1, _080AE070 @ =gUnknown_02038695 + ldr r1, _080AE070 @ =gContestPlayerMonIndex movs r0, 0x3 strb r0, [r1] _080AE068: pop {r0} bx r0 .align 2, 0 -_080AE06C: .4byte gUnknown_0203869A -_080AE070: .4byte gUnknown_02038695 +_080AE06C: .4byte gIsLinkContest +_080AE070: .4byte gContestPlayerMonIndex thumb_func_end sub_80AE054 thumb_func_start sub_80AE074 sub_80AE074: @ 80AE074 push {lr} - ldr r0, _080AE088 @ =gUnknown_02038695 + ldr r0, _080AE088 @ =gContestPlayerMonIndex ldr r1, _080AE08C @ =gUnknown_0203869B ldrb r0, [r0] ldrb r1, [r1] @@ -5671,7 +5671,7 @@ sub_80AE074: @ 80AE074 movs r0, 0 b _080AE092 .align 2, 0 -_080AE088: .4byte gUnknown_02038695 +_080AE088: .4byte gContestPlayerMonIndex _080AE08C: .4byte gUnknown_0203869B _080AE090: movs r0, 0x1 @@ -5694,7 +5694,7 @@ sub_80AE098: @ 80AE098 bl StringCopy mov r0, sp bl StripExtCtrlCodes - ldr r0, _080AE0F4 @ =gUnknown_0203869A + ldr r0, _080AE0F4 @ =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -5708,7 +5708,7 @@ sub_80AE098: @ 80AE098 mov r0, sp strb r2, [r0, 0x7] _080AE0CE: - ldr r5, _080AE0F8 @ =gUnknown_02038695 + ldr r5, _080AE0F8 @ =gContestPlayerMonIndex ldrb r0, [r5] lsls r0, 6 ldr r4, _080AE0FC @ =gUnknown_0203857D @@ -5726,8 +5726,8 @@ _080AE0CE: b _080AE108 .align 2, 0 _080AE0F0: .4byte gSaveBlock2 -_080AE0F4: .4byte gUnknown_0203869A -_080AE0F8: .4byte gUnknown_02038695 +_080AE0F4: .4byte gIsLinkContest +_080AE0F8: .4byte gContestPlayerMonIndex _080AE0FC: .4byte gUnknown_0203857D _080AE100: ldrb r0, [r5] @@ -5736,8 +5736,8 @@ _080AE100: movs r1, 0xD9 _080AE108: strb r1, [r0, 0x8] - ldr r5, _080AE17C @ =gUnknown_02038570 - ldr r4, _080AE180 @ =gUnknown_02038695 + ldr r5, _080AE17C @ =gContestMons + ldr r4, _080AE180 @ =gContestPlayerMonIndex ldrb r0, [r4] lsls r0, 6 adds r1, r5, 0 @@ -5768,7 +5768,7 @@ _080AE108: bl GetMonData mov r0, sp bl StringGetEnd10 - ldr r0, _080AE188 @ =gUnknown_0203869A + ldr r0, _080AE188 @ =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -5788,10 +5788,10 @@ _080AE108: strb r0, [r1, 0xA] b _080AE19A .align 2, 0 -_080AE17C: .4byte gUnknown_02038570 -_080AE180: .4byte gUnknown_02038695 +_080AE17C: .4byte gContestMons +_080AE180: .4byte gContestPlayerMonIndex _080AE184: .4byte gPlayerParty -_080AE188: .4byte gUnknown_0203869A +_080AE188: .4byte gIsLinkContest _080AE18C: mov r0, sp ldrb r2, [r0, 0x5] @@ -5801,10 +5801,10 @@ _080AE18C: mov r0, sp strb r2, [r0, 0xA] _080AE19A: - ldr r5, _080AE2C4 @ =gUnknown_02038695 + ldr r5, _080AE2C4 @ =gContestPlayerMonIndex ldrb r0, [r5] lsls r0, 6 - ldr r1, _080AE2C8 @ =gUnknown_02038572 + ldr r1, _080AE2C8 @ =gContestMons + 0x2 mov r8, r1 add r0, r8 mov r1, sp @@ -5936,8 +5936,8 @@ _080AE19A: adds r3, 0x14 b _080AE31E .align 2, 0 -_080AE2C4: .4byte gUnknown_02038695 -_080AE2C8: .4byte gUnknown_02038572 +_080AE2C4: .4byte gContestPlayerMonIndex +_080AE2C8: .4byte gContestMons + 0x2 _080AE2CC: .4byte gPlayerParty _080AE2D0: cmp r2, 0xFF @@ -6010,8 +6010,8 @@ _080AE342: ble _080AE34C movs r7, 0xFF _080AE34C: - ldr r2, _080AE390 @ =gUnknown_02038570 - ldr r1, _080AE394 @ =gUnknown_02038695 + ldr r2, _080AE390 @ =gContestMons + ldr r1, _080AE394 @ =gContestPlayerMonIndex ldrb r0, [r1] lsls r0, 6 adds r0, r2 @@ -6044,8 +6044,8 @@ _080AE34C: pop {r0} bx r0 .align 2, 0 -_080AE390: .4byte gUnknown_02038570 -_080AE394: .4byte gUnknown_02038695 +_080AE390: .4byte gContestMons +_080AE394: .4byte gContestPlayerMonIndex thumb_func_end sub_80AE098 thumb_func_start sub_80AE398 @@ -6125,7 +6125,7 @@ _080AE412: bl __modsi3 lsls r0, 16 lsrs r0, 16 - ldr r1, _080AE474 @ =gUnknown_02038570 + ldr r1, _080AE474 @ =gContestMons lsls r2, r5, 6 adds r2, r1 mov r1, sp @@ -6164,7 +6164,7 @@ _080AE454: bx r0 .align 2, 0 _080AE470: .4byte gUnknown_083C9408 -_080AE474: .4byte gUnknown_02038570 +_080AE474: .4byte gContestMons _080AE478: .4byte gUnknown_02038694 thumb_func_end sub_80AE398 @@ -6374,7 +6374,7 @@ sub_80AE5D4: @ 80AE5D4 movs r0, 0xBA strb r0, [r3] adds r3, 0x1 - ldr r0, _080AE668 @ =gUnknown_0203869A + ldr r0, _080AE668 @ =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -6422,7 +6422,7 @@ sub_80AE5D4: @ 80AE5D4 .align 2, 0 _080AE660: .4byte gUnknown_020238CC _080AE664: .4byte gEmptyString_81E72B0 -_080AE668: .4byte gUnknown_0203869A +_080AE668: .4byte gIsLinkContest _080AE66C: .4byte gLinkPlayers _080AE670: .4byte gUnknown_03004210 _080AE674: .4byte gUnknown_02038696 @@ -6499,7 +6499,7 @@ sub_80AE6E4: @ 80AE6E4 strb r0, [r3, 0x2] adds r3, 0x3 lsls r1, r4, 6 - ldr r0, _080AE760 @ =gUnknown_02038572 + ldr r0, _080AE760 @ =gContestMons + 0x2 adds r1, r0 adds r0, r3, 0 bl sub_80AE598 @@ -6541,7 +6541,7 @@ sub_80AE6E4: @ 80AE6E4 bx r0 .align 2, 0 _080AE75C: .4byte gUnknown_020238CC -_080AE760: .4byte gUnknown_02038572 +_080AE760: .4byte gContestMons + 0x2 _080AE764: .4byte gUnknown_03004210 _080AE768: .4byte gUnknown_02038696 _080AE76C: .4byte gUnknown_083CA308 @@ -6571,7 +6571,7 @@ _080AE78C: .4byte _080AE7E0 .4byte _080AE7FC _080AE7A0: - ldr r0, _080AE7B4 @ =gUnknown_02038570 + ldr r0, _080AE7B4 @ =gContestMons lsls r2, 6 adds r1, r2, r0 adds r3, r1, 0 @@ -6582,9 +6582,9 @@ _080AE7A0: adds r1, 0x27 b _080AE80E .align 2, 0 -_080AE7B4: .4byte gUnknown_02038570 +_080AE7B4: .4byte gContestMons _080AE7B8: - ldr r0, _080AE7CC @ =gUnknown_02038570 + ldr r0, _080AE7CC @ =gContestMons lsls r2, 6 adds r1, r2, r0 adds r3, r1, 0 @@ -6595,18 +6595,18 @@ _080AE7B8: adds r1, 0x28 b _080AE80E .align 2, 0 -_080AE7CC: .4byte gUnknown_02038570 +_080AE7CC: .4byte gContestMons _080AE7D0: - ldr r1, _080AE7DC @ =gUnknown_02038570 + ldr r1, _080AE7DC @ =gContestMons lsls r2, 6 adds r3, r2, r1 adds r0, r3, 0 adds r0, 0x28 b _080AE7EA .align 2, 0 -_080AE7DC: .4byte gUnknown_02038570 +_080AE7DC: .4byte gContestMons _080AE7E0: - ldr r1, _080AE7F8 @ =gUnknown_02038570 + ldr r1, _080AE7F8 @ =gContestMons lsls r2, 6 adds r3, r2, r1 adds r0, r3, 0 @@ -6620,9 +6620,9 @@ _080AE7EA: adds r0, r1, 0 b _080AE810 .align 2, 0 -_080AE7F8: .4byte gUnknown_02038570 +_080AE7F8: .4byte gContestMons _080AE7FC: - ldr r0, _080AE828 @ =gUnknown_02038570 + ldr r0, _080AE828 @ =gContestMons lsls r2, 6 adds r1, r2, r0 adds r3, r1, 0 @@ -6647,7 +6647,7 @@ _080AE810: pop {r1} bx r1 .align 2, 0 -_080AE828: .4byte gUnknown_02038570 +_080AE828: .4byte gContestMons thumb_func_end sub_80AE770 thumb_func_start sub_80AE82C @@ -6767,9 +6767,9 @@ unref_sub_80AE908: @ 80AE908 mov r4, r8 push {r4-r6} sub sp, 0x8 - ldr r0, _080AE9D4 @ =gUnknown_02038570 + ldr r0, _080AE9D4 @ =gContestMons mov r9, r0 - ldr r1, _080AE9D8 @ =gUnknown_02038695 + ldr r1, _080AE9D8 @ =gContestPlayerMonIndex mov r8, r1 ldrb r0, [r1] lsls r0, 6 @@ -6859,8 +6859,8 @@ unref_sub_80AE908: @ 80AE908 pop {r1} bx r1 .align 2, 0 -_080AE9D4: .4byte gUnknown_02038570 -_080AE9D8: .4byte gUnknown_02038695 +_080AE9D4: .4byte gContestMons +_080AE9D8: .4byte gContestPlayerMonIndex _080AE9DC: .4byte gMonFrontPicTable _080AE9E0: .4byte gMonFrontPicCoords _080AE9E4: .4byte gUnknown_081FAF4C @@ -6900,7 +6900,7 @@ sub_80AE9FC: @ 80AE9FC str r4, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] - bl sub_800D334 + bl HandleLoadSpecialPokePic adds r0, r5, 0 mov r1, r8 adds r2, r6, 0 @@ -7856,7 +7856,7 @@ sub_80AF15C: @ 80AF15C movs r0, 0 b _080AF1AA _080AF174: - ldr r0, _080AF190 @ =gUnknown_02038695 + ldr r0, _080AF190 @ =gContestPlayerMonIndex ldrb r0, [r0] cmp r4, r0 beq _080AF198 @@ -7864,15 +7864,15 @@ _080AF174: bl sub_81288F4 bl sub_8128944 lsls r0, 24 - ldr r2, _080AF194 @ =gUnknown_02038570 + ldr r2, _080AF194 @ =gContestMons lsrs r0, 23 lsls r1, r4, 6 b _080AF1A2 .align 2, 0 -_080AF190: .4byte gUnknown_02038695 -_080AF194: .4byte gUnknown_02038570 +_080AF190: .4byte gContestPlayerMonIndex +_080AF194: .4byte gContestMons _080AF198: - ldr r2, _080AF1B0 @ =gUnknown_02038570 + ldr r2, _080AF1B0 @ =gContestMons ldr r0, _080AF1B4 @ =0x02019204 ldrb r0, [r0] lsls r0, 1 @@ -7887,7 +7887,7 @@ _080AF1AA: pop {r1} bx r1 .align 2, 0 -_080AF1B0: .4byte gUnknown_02038570 +_080AF1B0: .4byte gContestMons _080AF1B4: .4byte 0x02019204 thumb_func_end sub_80AF15C @@ -8464,7 +8464,7 @@ unref_sub_80AF5D0: @ 80AF5D0 lsrs r0, 24 lsls r1, 24 lsrs r3, r1, 24 - ldr r1, _080AF5E8 @ =gUnknown_02038695 + ldr r1, _080AF5E8 @ =gContestPlayerMonIndex ldrb r1, [r1] cmp r0, r1 beq _080AF600 @@ -8472,7 +8472,7 @@ _080AF5E2: movs r0, 0x1 b _080AF626 .align 2, 0 -_080AF5E8: .4byte gUnknown_02038695 +_080AF5E8: .4byte gContestPlayerMonIndex _080AF5EC: ldrb r0, [r4, 0x6] movs r1, 0x1 @@ -11237,7 +11237,7 @@ sub_80B09E4: @ 80B09E4 movs r1, 0x3 movs r2, 0xC0 lsls r2, 19 - bl sub_8040F80 + bl CopySpriteTiles ldrb r0, [r7] lsls r3, r0, 2 adds r3, r0 @@ -11253,7 +11253,7 @@ sub_80B09E4: @ 80B09E4 movs r1, 0x3 movs r2, 0xC0 lsls r2, 19 - bl sub_8040F80 + bl CopySpriteTiles ldrh r0, [r4, 0x4] lsls r0, 22 lsrs r0, 17 @@ -12550,7 +12550,7 @@ sub_80B146C: @ 80B146C lsrs r5, r1, 24 ldr r0, _080B14C8 @ =gStringVar1 lsls r1, r4, 6 - ldr r2, _080B14CC @ =gUnknown_02038572 + ldr r2, _080B14CC @ =gContestMons + 0x2 adds r1, r2 bl StringCopy ldr r0, _080B14D0 @ =gStringVar2 @@ -12586,7 +12586,7 @@ sub_80B146C: @ 80B146C b _080B1538 .align 2, 0 _080B14C8: .4byte gStringVar1 -_080B14CC: .4byte gUnknown_02038572 +_080B14CC: .4byte gContestMons + 0x2 _080B14D0: .4byte gStringVar2 _080B14D4: .4byte 0x02019260 _080B14D8: .4byte gMoveNames @@ -14595,7 +14595,7 @@ _080B2470: .4byte 0x02019218 _080B2474: .4byte gUnknown_02038696 _080B2478: .4byte gTasks _080B247C: - ldr r0, _080B24C0 @ =gUnknown_0203869A + ldr r0, _080B24C0 @ =gIsLinkContest ldrb r0, [r0] ands r1, r0 cmp r1, 0 @@ -14625,7 +14625,7 @@ _080B249E: strh r0, [r5, 0x8] b _080B24FC .align 2, 0 -_080B24C0: .4byte gUnknown_0203869A +_080B24C0: .4byte gIsLinkContest _080B24C4: .4byte 0x02019204 _080B24C8: .4byte sub_80C8C80 _080B24CC: .4byte sub_80AD8DC @@ -15022,7 +15022,7 @@ sub_80B2790: @ 80B2790 bl sub_80B2760 lsls r0, 16 lsrs r5, r0, 16 - ldr r1, _080B27F4 @ =gUnknown_02038570 + ldr r1, _080B27F4 @ =gContestMons lsls r0, r6, 6 adds r0, r1 ldrh r0, [r0] @@ -15056,7 +15056,7 @@ _080B27D0: b _080B28BE .align 2, 0 _080B27F0: .4byte 0x02019260 -_080B27F4: .4byte gUnknown_02038570 +_080B27F4: .4byte gContestMons _080B27F8: .4byte gUnknown_02024E84 _080B27FC: cmp r5, 0x82 @@ -15106,7 +15106,7 @@ _080B2848: ldr r4, _080B2878 @ =0x02019260 adds r0, r4 ldrb r5, [r0, 0x1B] - ldr r6, _080B287C @ =gUnknown_02038570 + ldr r6, _080B287C @ =gContestMons lsls r5, 6 adds r0, r5, r6 ldrh r0, [r0] @@ -15124,7 +15124,7 @@ _080B2848: b _080B28BE .align 2, 0 _080B2878: .4byte 0x02019260 -_080B287C: .4byte gUnknown_02038570 +_080B287C: .4byte gContestMons _080B2880: ldr r1, _080B2888 @ =gUnknown_0202F7BE movs r0, 0xFF @@ -15196,7 +15196,7 @@ sub_80B28F0: @ 80B28F0 lsrs r4, 24 ldr r6, _080B2924 @ =0x02019348 strb r4, [r6, 0x5] - ldr r5, _080B2928 @ =gUnknown_02038570 + ldr r5, _080B2928 @ =gContestMons lsls r4, 6 adds r0, r4, r5 ldrh r0, [r0] @@ -15216,14 +15216,14 @@ sub_80B28F0: @ 80B28F0 bx r0 .align 2, 0 _080B2924: .4byte 0x02019348 -_080B2928: .4byte gUnknown_02038570 +_080B2928: .4byte gContestMons thumb_func_end sub_80B28F0 thumb_func_start sub_80B292C sub_80B292C: @ 80B292C push {lr} ldr r0, _080B2958 @ =SpriteCallbackDummy - bl object_new_hidden_with_callback + bl CreateInvisibleSpriteWithCallback ldr r1, _080B295C @ =gUnknown_02024BE0 strb r0, [r1, 0x3] ldr r0, _080B2960 @ =gUnknown_02024C08 @@ -15391,7 +15391,7 @@ _080B2AB6: mov r0, r9 cmp r0, 0xFF bne _080B2AD0 - ldr r0, _080B2ACC @ =gUnknown_02038695 + ldr r0, _080B2ACC @ =gContestPlayerMonIndex ldrb r0, [r0] cmp r6, r0 beq _080B2AD0 @@ -15399,7 +15399,7 @@ _080B2AB6: b _080B2C38 .align 2, 0 _080B2AC8: .4byte gUnknown_02038690 -_080B2ACC: .4byte gUnknown_02038695 +_080B2ACC: .4byte gContestPlayerMonIndex _080B2AD0: ldr r0, _080B2AE4 @ =gScriptContestCategory ldrh r0, [r0] @@ -15450,7 +15450,7 @@ _080B2B16: ldr r0, _080B2B9C @ =0x00002dfc adds r1, r2, r0 adds r1, r4, r1 - ldr r5, _080B2BA0 @ =gUnknown_02038570 + ldr r5, _080B2BA0 @ =gContestMons lsls r6, 6 adds r0, r5, 0 adds r0, 0x38 @@ -15501,7 +15501,7 @@ _080B2B16: .align 2, 0 _080B2B98: .4byte gSaveBlock1 _080B2B9C: .4byte 0x00002dfc -_080B2BA0: .4byte gUnknown_02038570 +_080B2BA0: .4byte gContestMons _080B2BA4: .4byte 0x00002e04 _080B2BA8: .4byte 0x00002e07 _080B2BAC: .4byte 0x00002e12 @@ -15516,7 +15516,7 @@ _080B2BB8: _080B2BC0: .4byte 0x00002e06 _080B2BC4: ldr r5, _080B2C14 @ =0x02015de0 - ldr r2, _080B2C18 @ =gUnknown_02038570 + ldr r2, _080B2C18 @ =gContestMons lsls r4, r6, 6 adds r0, r2, 0 adds r0, 0x38 @@ -15537,7 +15537,7 @@ _080B2BC4: adds r1, r4, r1 str r2, [sp] bl StringCopy - ldr r0, _080B2C1C @ =gUnknown_0203869A + ldr r0, _080B2C1C @ =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -15555,8 +15555,8 @@ _080B2BC4: b _080B2C32 .align 2, 0 _080B2C14: .4byte 0x02015de0 -_080B2C18: .4byte gUnknown_02038570 -_080B2C1C: .4byte gUnknown_0203869A +_080B2C18: .4byte gContestMons +_080B2C1C: .4byte gIsLinkContest _080B2C20: .4byte gLinkPlayers + 0x8 _080B2C24: adds r0, r5, 0 diff --git a/asm/contest_ai.s b/asm/contest_ai.s index 1e5497570..a947110ec 100644 --- a/asm/contest_ai.s +++ b/asm/contest_ai.s @@ -34,7 +34,7 @@ _08128910: adds r0, r2, 0 adds r0, 0x40 strb r1, [r0] - ldr r1, _08128940 @ =gUnknown_02038570 + ldr r1, _08128940 @ =gContestMons ldrb r0, [r3] lsls r0, 6 adds r1, 0x18 @@ -46,7 +46,7 @@ _08128910: bx r0 .align 2, 0 _0812893C: .4byte 0x020192e4 -_08128940: .4byte gUnknown_02038570 +_08128940: .4byte gContestMons thumb_func_end sub_81288F4 thumb_func_start sub_8128944 @@ -1403,7 +1403,7 @@ _081292E0: thumb_func_start contest_ai_get_move_excitement contest_ai_get_move_excitement: @ 81292E4 push {r4,lr} - ldr r2, _08129318 @ =gUnknown_02038570 + ldr r2, _08129318 @ =gContestMons ldr r4, _0812931C @ =0x020192e4 ldrb r1, [r4, 0x4] lsls r1, 1 @@ -1427,7 +1427,7 @@ contest_ai_get_move_excitement: @ 81292E4 pop {r0} bx r0 .align 2, 0 -_08129318: .4byte gUnknown_02038570 +_08129318: .4byte gContestMons _0812931C: .4byte 0x020192e4 _08129320: .4byte gAIScriptPtr thumb_func_end contest_ai_get_move_excitement @@ -1582,7 +1582,7 @@ _0812942C: thumb_func_start contest_ai_get_move_effect contest_ai_get_move_effect: @ 8129434 - ldr r2, _08129460 @ =gUnknown_02038570 + ldr r2, _08129460 @ =gContestMons ldr r3, _08129464 @ =0x020192e4 ldrb r1, [r3, 0x4] lsls r1, 1 @@ -1605,7 +1605,7 @@ contest_ai_get_move_effect: @ 8129434 str r0, [r1] bx lr .align 2, 0 -_08129460: .4byte gUnknown_02038570 +_08129460: .4byte gContestMons _08129464: .4byte 0x020192e4 _08129468: .4byte gContestMoves _0812946C: .4byte gAIScriptPtr @@ -1683,7 +1683,7 @@ _081294EC: thumb_func_start contest_ai_get_move_effect_type contest_ai_get_move_effect_type: @ 81294F0 - ldr r2, _08129524 @ =gUnknown_02038570 + ldr r2, _08129524 @ =gContestMons ldr r3, _08129528 @ =0x020192e4 ldrb r1, [r3, 0x4] lsls r1, 1 @@ -1710,7 +1710,7 @@ contest_ai_get_move_effect_type: @ 81294F0 str r0, [r1] bx lr .align 2, 0 -_08129524: .4byte gUnknown_02038570 +_08129524: .4byte gContestMons _08129528: .4byte 0x020192e4 _0812952C: .4byte gContestEffects _08129530: .4byte gContestMoves @@ -1790,7 +1790,7 @@ _081295B4: thumb_func_start contest_ai_check_move_has_highest_appeal contest_ai_check_move_has_highest_appeal: @ 81295B8 push {r4-r7,lr} - ldr r2, _08129610 @ =gUnknown_02038570 + ldr r2, _08129610 @ =gContestMons ldr r3, _08129614 @ =0x020192e4 ldrb r0, [r3, 0x4] lsls r0, 1 @@ -1837,7 +1837,7 @@ _08129608: movs r0, 0x1 b _08129626 .align 2, 0 -_08129610: .4byte gUnknown_02038570 +_08129610: .4byte gContestMons _08129614: .4byte 0x020192e4 _08129618: .4byte gContestEffects _0812961C: .4byte gContestMoves @@ -1896,7 +1896,7 @@ _08129678: .4byte gAIScriptPtr thumb_func_start sub_812967C sub_812967C: @ 812967C push {r4-r7,lr} - ldr r2, _081296D4 @ =gUnknown_02038570 + ldr r2, _081296D4 @ =gContestMons ldr r3, _081296D8 @ =0x020192e4 ldrb r0, [r3, 0x4] lsls r0, 1 @@ -1943,7 +1943,7 @@ _081296CC: movs r0, 0x1 b _081296EA .align 2, 0 -_081296D4: .4byte gUnknown_02038570 +_081296D4: .4byte gContestMons _081296D8: .4byte 0x020192e4 _081296DC: .4byte gContestEffects _081296E0: .4byte gContestMoves @@ -2002,7 +2002,7 @@ _0812973C: .4byte gAIScriptPtr thumb_func_start sub_8129740 sub_8129740: @ 8129740 push {r4,lr} - ldr r2, _08129784 @ =gUnknown_02038570 + ldr r2, _08129784 @ =gContestMons ldr r4, _08129788 @ =0x020192e4 ldrb r1, [r4, 0x4] lsls r1, 1 @@ -2035,7 +2035,7 @@ sub_8129740: @ 8129740 pop {r0} bx r0 .align 2, 0 -_08129784: .4byte gUnknown_02038570 +_08129784: .4byte gContestMons _08129788: .4byte 0x020192e4 _0812978C: .4byte gContestEffects _08129790: .4byte gContestMoves @@ -2185,7 +2185,7 @@ _08129894: thumb_func_start sub_8129898 sub_8129898: @ 8129898 push {r4,lr} - ldr r2, _081298DC @ =gUnknown_02038570 + ldr r2, _081298DC @ =gContestMons ldr r4, _081298E0 @ =0x020192e4 ldrb r1, [r4, 0x4] lsls r1, 1 @@ -2218,7 +2218,7 @@ sub_8129898: @ 8129898 pop {r0} bx r0 .align 2, 0 -_081298DC: .4byte gUnknown_02038570 +_081298DC: .4byte gContestMons _081298E0: .4byte 0x020192e4 _081298E4: .4byte gContestEffects _081298E8: .4byte gContestMoves @@ -2368,7 +2368,7 @@ _081299EC: thumb_func_start contest_ai_get_move_used_count contest_ai_get_move_used_count: @ 81299F0 push {r4,lr} - ldr r3, _08129A20 @ =gUnknown_02038570 + ldr r3, _08129A20 @ =gContestMons ldr r4, _08129A24 @ =0x020192e4 ldrb r0, [r4, 0x4] lsls r0, 1 @@ -2392,7 +2392,7 @@ contest_ai_get_move_used_count: @ 81299F0 movs r0, 0 b _08129A30 .align 2, 0 -_08129A20: .4byte gUnknown_02038570 +_08129A20: .4byte gContestMons _08129A24: .4byte 0x020192e4 _08129A28: ldrb r0, [r0, 0xB] @@ -2558,7 +2558,7 @@ contest_ai_check_combo_starter: @ 8129B44 mov r7, r8 push {r7} movs r5, 0 - ldr r3, _08129BAC @ =gUnknown_02038570 + ldr r3, _08129BAC @ =gContestMons ldr r2, _08129BB0 @ =0x020192e4 ldrb r1, [r2, 0x4] lsls r1, 1 @@ -2610,7 +2610,7 @@ _08129B96: pop {r0} bx r0 .align 2, 0 -_08129BAC: .4byte gUnknown_02038570 +_08129BAC: .4byte gContestMons _08129BB0: .4byte 0x020192e4 _08129BB4: .4byte gAIScriptPtr thumb_func_end contest_ai_check_combo_starter @@ -2697,7 +2697,7 @@ contest_ai_check_combo_finisher: @ 8129C40 mov r7, r8 push {r7} movs r5, 0 - ldr r3, _08129CA8 @ =gUnknown_02038570 + ldr r3, _08129CA8 @ =gContestMons ldr r2, _08129CAC @ =0x020192e4 ldrb r1, [r2, 0x4] lsls r1, 1 @@ -2748,7 +2748,7 @@ _08129C90: pop {r0} bx r0 .align 2, 0 -_08129CA8: .4byte gUnknown_02038570 +_08129CA8: .4byte gContestMons _08129CAC: .4byte 0x020192e4 _08129CB0: .4byte gAIScriptPtr thumb_func_end contest_ai_check_combo_finisher @@ -2833,7 +2833,7 @@ _08129D38: .4byte gAIScriptPtr contest_ai_check_would_finish_combo: @ 8129D3C push {r4,r5,lr} movs r5, 0 - ldr r3, _08129D8C @ =gUnknown_02038570 + ldr r3, _08129D8C @ =gContestMons ldr r4, _08129D90 @ =0x020192e4 ldrb r0, [r4, 0x4] lsls r0, 1 @@ -2872,7 +2872,7 @@ _08129D7A: pop {r0} bx r0 .align 2, 0 -_08129D8C: .4byte gUnknown_02038570 +_08129D8C: .4byte gContestMons _08129D90: .4byte 0x020192e4 _08129D94: .4byte gAIScriptPtr thumb_func_end contest_ai_check_would_finish_combo @@ -5166,7 +5166,7 @@ sub_812ADD8: @ 812ADD8 lsls r0, 8 orrs r4, r0 movs r3, 0 - ldr r0, _0812AE0C @ =gUnknown_02038570 + ldr r0, _0812AE0C @ =gContestMons mov r12, r0 ldr r5, _0812AE10 @ =0x020192e4 adds r0, r5, 0 @@ -5183,7 +5183,7 @@ sub_812ADD8: @ 812ADD8 b _0812AE2E .align 2, 0 _0812AE08: .4byte gAIScriptPtr -_0812AE0C: .4byte gUnknown_02038570 +_0812AE0C: .4byte gContestMons _0812AE10: .4byte 0x020192e4 _0812AE14: adds r3, 0x1 diff --git a/asm/contest_link_80C2020.s b/asm/contest_link_80C2020.s index d4b9a7c0f..672eb4c1a 100644 --- a/asm/contest_link_80C2020.s +++ b/asm/contest_link_80C2020.s @@ -277,7 +277,7 @@ sub_80C226C: @ 80C226C sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 - ldr r0, _080C2288 @ =gUnknown_02038695 + ldr r0, _080C2288 @ =gContestPlayerMonIndex ldrb r0, [r0] cmp r5, r0 bne _080C2294 @@ -287,7 +287,7 @@ sub_80C226C: @ 80C226C adds r2, r0, 0 b _080C2296 .align 2, 0 -_080C2288: .4byte gUnknown_02038695 +_080C2288: .4byte gContestPlayerMonIndex _080C228C: .4byte gUnknown_020238CC _080C2290: .4byte gUnknown_083D17DC _080C2294: @@ -301,7 +301,7 @@ _080C2296: strb r0, [r2, 0x2] adds r2, 0x3 lsls r6, r5, 6 - ldr r7, _080C22EC @ =gUnknown_02038572 + ldr r7, _080C22EC @ =gContestMons + 0x2 adds r1, r6, r7 adds r0, r2, 0 bl StringCopy @@ -316,7 +316,7 @@ _080C2296: adds r0, r2, 0 bl StringCopy adds r2, r0, 0 - ldr r0, _080C22F4 @ =gUnknown_0203869A + ldr r0, _080C22F4 @ =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -332,9 +332,9 @@ _080C2296: b _080C230A .align 2, 0 _080C22E8: .4byte gUnknown_020238CC -_080C22EC: .4byte gUnknown_02038572 +_080C22EC: .4byte gContestMons + 0x2 _080C22F0: .4byte gUnknown_083D17E0 -_080C22F4: .4byte gUnknown_0203869A +_080C22F4: .4byte gIsLinkContest _080C22F8: .4byte gLinkPlayers + 0x8 _080C22FC: adds r1, r7, 0 @@ -564,7 +564,7 @@ sub_80C24F4: @ 80C24F4 ands r0, r1 cmp r0, 0 bne _080C254E - ldr r0, _080C2530 @ =gUnknown_0203869A + ldr r0, _080C2530 @ =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -582,7 +582,7 @@ sub_80C24F4: @ 80C24F4 b _080C254E .align 2, 0 _080C252C: .4byte gPaletteFade -_080C2530: .4byte gUnknown_0203869A +_080C2530: .4byte gIsLinkContest _080C2534: .4byte gOtherText_LinkStandby _080C2538: .4byte gTasks _080C253C: .4byte sub_80C255C @@ -1169,7 +1169,7 @@ _080C299C: movs r4, 0 ldr r2, _080C29F4 @ =gUnknown_02038690 ldrb r0, [r2] - ldr r1, _080C29F8 @ =gUnknown_0203869A + ldr r1, _080C29F8 @ =gIsLinkContest ldr r3, _080C29FC @ =gStringVar1 cmp r0, 0 beq _080C29D4 @@ -1198,7 +1198,7 @@ _080C29D4: b _080C2A10 .align 2, 0 _080C29F4: .4byte gUnknown_02038690 -_080C29F8: .4byte gUnknown_0203869A +_080C29F8: .4byte gIsLinkContest _080C29FC: .4byte gStringVar1 _080C2A00: .4byte gLinkPlayers + 0x8 _080C2A04: @@ -1209,7 +1209,7 @@ _080C2A04: bl StringCopy _080C2A10: ldr r0, _080C2A58 @ =gStringVar2 - ldr r1, _080C2A5C @ =gUnknown_02038572 + ldr r1, _080C2A5C @ =gContestMons + 0x2 adds r1, r4, r1 bl StringCopy ldr r1, _080C2A60 @ =gContestText_PokeWon @@ -1241,7 +1241,7 @@ _080C2A4A: .align 2, 0 _080C2A54: .4byte gUnknown_0203857D _080C2A58: .4byte gStringVar2 -_080C2A5C: .4byte gUnknown_02038572 +_080C2A5C: .4byte gContestMons + 0x2 _080C2A60: .4byte gContestText_PokeWon _080C2A64: .4byte 0x02018000 _080C2A68: .4byte 0x0000ffff @@ -1315,7 +1315,7 @@ _080C2ADC: ldrb r0, [r3] lsls r4, r7, 2 mov r10, r4 - ldr r2, _080C2BD4 @ =gUnknown_02038570 + ldr r2, _080C2BD4 @ =gContestMons ldr r5, _080C2BD8 @ =gMonFrontPicTable mov r12, r5 ldr r4, _080C2BDC @ =gMonFrontPicCoords @@ -1357,7 +1357,7 @@ _080C2B14: str r6, [sp, 0x4] str r4, [sp, 0x8] ldr r3, _080C2BE4 @ =0x02000000 - bl sub_800D334 + bl HandleLoadSpecialPokePic adds r0, r6, 0 ldr r1, [sp, 0xC] adds r2, r4, 0 @@ -1418,7 +1418,7 @@ _080C2BC4: .4byte gUnknown_030042C4 _080C2BC8: .4byte gUnknown_03004240 _080C2BCC: .4byte 0x00005050 _080C2BD0: .4byte gUnknown_02038690 -_080C2BD4: .4byte gUnknown_02038570 +_080C2BD4: .4byte gContestMons _080C2BD8: .4byte gMonFrontPicTable _080C2BDC: .4byte gMonFrontPicCoords _080C2BE0: .4byte gUnknown_081FAF4C @@ -1586,14 +1586,14 @@ sub_80C2D1C: @ 80C2D1C ands r0, r1 cmp r0, 0 beq _080C2D66 - ldr r0, _080C2D70 @ =gUnknown_0203869A + ldr r0, _080C2D70 @ =gIsLinkContest ldrb r1, [r0] adds r0, r2, 0 ands r0, r1 lsls r6, r7, 2 cmp r0, 0 bne _080C2D5A - ldr r5, _080C2D74 @ =gUnknown_02038570 + ldr r5, _080C2D74 @ =gContestMons movs r4, 0x3 _080C2D42: ldrh r0, [r5] @@ -1619,8 +1619,8 @@ _080C2D66: bx r0 .align 2, 0 _080C2D6C: .4byte gMain -_080C2D70: .4byte gUnknown_0203869A -_080C2D74: .4byte gUnknown_02038570 +_080C2D70: .4byte gIsLinkContest +_080C2D74: .4byte gContestMons _080C2D78: .4byte gTasks _080C2D7C: .4byte sub_80C2D80 thumb_func_end sub_80C2D1C @@ -1630,7 +1630,7 @@ sub_80C2D80: @ 80C2D80 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _080C2DAC @ =gUnknown_0203869A + ldr r0, _080C2DAC @ =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -1648,7 +1648,7 @@ sub_80C2D80: @ 80C2D80 str r1, [r0] b _080C2DCA .align 2, 0 -_080C2DAC: .4byte gUnknown_0203869A +_080C2DAC: .4byte gIsLinkContest _080C2DB0: .4byte gOtherText_LinkStandby _080C2DB4: .4byte gTasks _080C2DB8: .4byte sub_80C2DD8 @@ -1678,7 +1678,7 @@ sub_80C2DD8: @ 80C2DD8 ldrb r1, [r0] cmp r1, 0 bne _080C2DFC - ldr r0, _080C2E08 @ =gUnknown_0203869A + ldr r0, _080C2E08 @ =gIsLinkContest strb r1, [r0] bl sub_80C3764 ldr r1, _080C2E0C @ =gTasks @@ -1694,7 +1694,7 @@ _080C2DFC: bx r0 .align 2, 0 _080C2E04: .4byte gReceivedRemoteLinkPlayers -_080C2E08: .4byte gUnknown_0203869A +_080C2E08: .4byte gIsLinkContest _080C2E0C: .4byte gTasks _080C2E10: .4byte sub_80C2E14 thumb_func_end sub_80C2DD8 @@ -1707,7 +1707,7 @@ sub_80C2E14: @ 80C2E14 lsls r5, 24 lsrs r5, 24 ldr r1, _080C2E80 @ =gUnknown_02038690 - ldr r0, _080C2E84 @ =gUnknown_02038695 + ldr r0, _080C2E84 @ =gContestPlayerMonIndex ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -1750,7 +1750,7 @@ sub_80C2E14: @ 80C2E14 bx r0 .align 2, 0 _080C2E80: .4byte gUnknown_02038690 -_080C2E84: .4byte gUnknown_02038695 +_080C2E84: .4byte gContestPlayerMonIndex _080C2E88: .4byte gScriptContestRank _080C2E8C: .4byte 0x02000000 _080C2E90: .4byte 0x00015ddf @@ -1973,7 +1973,7 @@ sub_80C3024: @ 80C3024 cmp r3, 0 beq _080C30B0 adds r1, r6, 0 - bl sub_809D4F4 + bl GetMonIconPtr lsls r1, r5, 9 adds r0, r1 adds r0, 0x80 @@ -2031,7 +2031,7 @@ _080C30A8: .4byte 0x84000060 _080C30AC: .4byte 0x0600c000 _080C30B0: adds r1, r6, 0 - bl sub_809D4F4 + bl GetMonIconPtr lsls r1, r5, 9 adds r0, r1 adds r0, 0x80 @@ -2058,7 +2058,7 @@ sub_80C30D4: @ 80C30D4 lsls r1, 24 lsrs r6, r1, 24 movs r5, 0 - ldr r4, _080C3108 @ =gUnknown_02038570 + ldr r4, _080C3108 @ =gContestMons _080C30E4: ldrh r0, [r4] lsls r1, r5, 24 @@ -2077,7 +2077,7 @@ _080C30E4: pop {r0} bx r0 .align 2, 0 -_080C3108: .4byte gUnknown_02038570 +_080C3108: .4byte gContestMons thumb_func_end sub_80C30D4 thumb_func_start sub_80C310C @@ -2088,7 +2088,7 @@ sub_80C310C: @ 80C310C movs r5, 0xA0 lsls r5, 16 _080C3116: - ldr r1, _080C3150 @ =gUnknown_02038570 + ldr r1, _080C3150 @ =gContestMons lsls r0, r4, 6 adds r0, r1 ldrh r0, [r0] @@ -2115,7 +2115,7 @@ _080C3116: bx r0 .align 2, 0 _080C314C: .4byte gMonIconPaletteIndices -_080C3150: .4byte gUnknown_02038570 +_080C3150: .4byte gContestMons _080C3154: .4byte gMonIconPalettes thumb_func_end sub_80C310C @@ -2954,7 +2954,7 @@ sub_80C37E4: @ 80C37E4 sub sp, 0x10 movs r5, 0x1 movs r4, 0 - ldr r0, _080C3808 @ =gUnknown_0203869A + ldr r0, _080C3808 @ =gIsLinkContest ldrb r0, [r0] adds r1, r5, 0 ands r1, r0 @@ -2968,7 +2968,7 @@ sub_80C37E4: @ 80C37E4 str r2, [sp, 0x4] b _080C386A .align 2, 0 -_080C3808: .4byte gUnknown_0203869A +_080C3808: .4byte gIsLinkContest _080C380C: .4byte 0x0600e000 _080C3810: .4byte gUnknown_08E964B8 _080C3814: @@ -3813,7 +3813,7 @@ sub_80C3E60: @ 80C3E60 adds r1, r2 strh r4, [r1, 0x8] strh r5, [r1, 0xA] - ldr r0, _080C3EA0 @ =gUnknown_02038570 + ldr r0, _080C3EA0 @ =gContestMons lsls r4, 6 adds r4, r0 ldrh r0, [r4] @@ -3824,7 +3824,7 @@ sub_80C3E60: @ 80C3E60 .align 2, 0 _080C3E98: .4byte sub_80C3EA4 _080C3E9C: .4byte gTasks -_080C3EA0: .4byte gUnknown_02038570 +_080C3EA0: .4byte gContestMons thumb_func_end sub_80C3E60 thumb_func_start sub_80C3EA4 @@ -3852,7 +3852,7 @@ sub_80C3EA4: @ 80C3EA4 strh r0, [r4, 0x1C] ldrh r0, [r4, 0xC] ldrb r2, [r4, 0x1E] - ldr r1, _080C3EFC @ =gUnknown_02038570 + ldr r1, _080C3EFC @ =gContestMons lsls r3, r5, 6 adds r1, 0x38 adds r3, r1 @@ -3872,7 +3872,7 @@ _080C3EEE: bx r0 .align 2, 0 _080C3EF8: .4byte gTasks -_080C3EFC: .4byte gUnknown_02038570 +_080C3EFC: .4byte gContestMons thumb_func_end sub_80C3EA4 thumb_func_start sub_80C3F00 @@ -4638,7 +4638,7 @@ sub_80C44C0: @ 80C44C0 push {r4-r7,lr} sub sp, 0x4 ldr r1, _080C44E8 @ =gUnknown_02038690 - ldr r0, _080C44EC @ =gUnknown_02038695 + ldr r0, _080C44EC @ =gContestPlayerMonIndex ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -4659,7 +4659,7 @@ _080C44DE: mov pc, r0 .align 2, 0 _080C44E8: .4byte gUnknown_02038690 -_080C44EC: .4byte gUnknown_02038695 +_080C44EC: .4byte gContestPlayerMonIndex _080C44F0: .4byte gScriptContestCategory _080C44F4: .4byte _080C44F8 .align 2, 0 @@ -4867,11 +4867,11 @@ sub_80C4698: @ 80C4698 lsls r1, 24 lsrs r4, r1, 24 lsls r1, r4, 6 - ldr r0, _080C46E0 @ =gUnknown_02038572 + ldr r0, _080C46E0 @ =gContestMons + 0x2 adds r1, r0 adds r0, r5, 0 bl StringCopy - ldr r0, _080C46E4 @ =gUnknown_0203869A + ldr r0, _080C46E4 @ =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -4897,15 +4897,15 @@ _080C46DA: pop {r0} bx r0 .align 2, 0 -_080C46E0: .4byte gUnknown_02038572 -_080C46E4: .4byte gUnknown_0203869A +_080C46E0: .4byte gContestMons + 0x2 +_080C46E4: .4byte gIsLinkContest _080C46E8: .4byte gLinkPlayers thumb_func_end sub_80C4698 thumb_func_start sub_80C46EC sub_80C46EC: @ 80C46EC push {lr} - ldr r0, _080C4710 @ =gUnknown_0203869A + ldr r0, _080C4710 @ =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -4922,7 +4922,7 @@ sub_80C46EC: @ 80C46EC bl sub_80C4674 b _080C4730 .align 2, 0 -_080C4710: .4byte gUnknown_0203869A +_080C4710: .4byte gIsLinkContest _080C4714: .4byte gStringVar1 _080C4718: .4byte gSpecialVar_0x8006 _080C471C: .4byte gLinkPlayers + 0x8 @@ -5047,7 +5047,7 @@ sub_80C47F0: @ 80C47F0 movs r2, 0 ldr r3, _080C4830 @ =gUnknown_02038690 ldrb r0, [r3] - ldr r1, _080C4834 @ =gUnknown_0203869A + ldr r1, _080C4834 @ =gIsLinkContest ldr r4, _080C4838 @ =gStringVar3 cmp r0, 0 beq _080C4812 @@ -5077,7 +5077,7 @@ _080C4812: b _080C484C .align 2, 0 _080C4830: .4byte gUnknown_02038690 -_080C4834: .4byte gUnknown_0203869A +_080C4834: .4byte gIsLinkContest _080C4838: .4byte gStringVar3 _080C483C: .4byte gLinkPlayers + 0x8 _080C4840: @@ -5182,7 +5182,7 @@ _080C48F0: .4byte sub_80C489C thumb_func_start sub_80C48F4 sub_80C48F4: @ 80C48F4 ldr r2, _080C4908 @ =gSpecialVar_0x8004 - ldr r1, _080C490C @ =gUnknown_02038570 + ldr r1, _080C490C @ =gContestMons ldr r0, _080C4910 @ =gSpecialVar_0x8006 ldrh r0, [r0] lsls r0, 6 @@ -5192,7 +5192,7 @@ sub_80C48F4: @ 80C48F4 bx lr .align 2, 0 _080C4908: .4byte gSpecialVar_0x8004 -_080C490C: .4byte gUnknown_02038570 +_080C490C: .4byte gContestMons _080C4910: .4byte gSpecialVar_0x8006 thumb_func_end sub_80C48F4 @@ -5244,13 +5244,13 @@ _080C4968: .4byte sub_80C4914 thumb_func_start sub_80C496C sub_80C496C: @ 80C496C ldr r0, _080C4978 @ =gSpecialVar_0x8004 - ldr r1, _080C497C @ =gUnknown_02038695 + ldr r1, _080C497C @ =gContestPlayerMonIndex ldrb r1, [r1] strh r1, [r0] bx lr .align 2, 0 _080C4978: .4byte gSpecialVar_0x8004 -_080C497C: .4byte gUnknown_02038695 +_080C497C: .4byte gContestPlayerMonIndex thumb_func_end sub_80C496C thumb_func_start sub_80C4980 diff --git a/asm/contest_link_80C857C.s b/asm/contest_link_80C857C.s index b44220769..12dc3bdb5 100644 --- a/asm/contest_link_80C857C.s +++ b/asm/contest_link_80C857C.s @@ -145,14 +145,14 @@ sub_80C8660: @ 80C8660 cmp r0, 0 beq _080C868E bl GetMultiplayerId - ldr r1, _080C8698 @ =gUnknown_02038695 + ldr r1, _080C8698 @ =gContestPlayerMonIndex strb r0, [r1] bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _080C868E - ldr r1, _080C869C @ =gUnknown_0203869A + ldr r1, _080C869C @ =gIsLinkContest movs r0, 0x1 strb r0, [r1] adds r0, r4, 0 @@ -163,8 +163,8 @@ _080C868E: bx r0 .align 2, 0 _080C8694: .4byte gReceivedRemoteLinkPlayers -_080C8698: .4byte gUnknown_02038695 -_080C869C: .4byte gUnknown_0203869A +_080C8698: .4byte gContestPlayerMonIndex +_080C869C: .4byte gIsLinkContest thumb_func_end sub_80C8660 thumb_func_start sub_80C86A0 @@ -290,10 +290,10 @@ _080C876C: b _080C8896 _080C8782: ldr r0, _080C879C @ =gBlockSendBuffer - ldr r1, _080C87A0 @ =gUnknown_02038695 + ldr r1, _080C87A0 @ =gContestPlayerMonIndex ldrb r1, [r1] lsls r1, 6 - ldr r2, _080C87A4 @ =gUnknown_02038570 + ldr r2, _080C87A4 @ =gContestMons adds r1, r2 movs r2, 0x40 bl memcpy @@ -302,14 +302,14 @@ _080C8782: b _080C87BA .align 2, 0 _080C879C: .4byte gBlockSendBuffer -_080C87A0: .4byte gUnknown_02038695 -_080C87A4: .4byte gUnknown_02038570 +_080C87A0: .4byte gContestPlayerMonIndex +_080C87A4: .4byte gContestMons _080C87A8: ldr r0, _080C87C4 @ =gBlockSendBuffer - ldr r1, _080C87C8 @ =gUnknown_02038695 + ldr r1, _080C87C8 @ =gContestPlayerMonIndex ldrb r1, [r1] lsls r1, 6 - ldr r2, _080C87CC @ =gUnknown_02038570 + ldr r2, _080C87CC @ =gContestMons adds r1, r2 movs r2, 0x40 bl memcpy @@ -320,8 +320,8 @@ _080C87BA: b _080C8896 .align 2, 0 _080C87C4: .4byte gBlockSendBuffer -_080C87C8: .4byte gUnknown_02038695 -_080C87CC: .4byte gUnknown_02038570 +_080C87C8: .4byte gContestPlayerMonIndex +_080C87CC: .4byte gContestMons _080C87D0: bl sub_80C85D8 lsls r0, 24 @@ -329,7 +329,7 @@ _080C87D0: beq _080C8896 movs r7, 0 str r5, [sp] - ldr r0, _080C8818 @ =gUnknown_02038570 + ldr r0, _080C8818 @ =gContestMons ldr r6, _080C881C @ =gLinkPlayers movs r5, 0 mov r10, r0 @@ -342,7 +342,7 @@ _080C87EA: mov r0, r10 movs r2, 0x40 bl memcpy - ldr r0, _080C8824 @ =gUnknown_02038572 + ldr r0, _080C8824 @ =gContestMons + 0x2 adds r4, r5, r0 ldrh r0, [r6, 0x1A] cmp r0, 0x1 @@ -356,10 +356,10 @@ _080C87EA: bl ConvertInternationalString b _080C883E .align 2, 0 -_080C8818: .4byte gUnknown_02038570 +_080C8818: .4byte gContestMons _080C881C: .4byte gLinkPlayers _080C8820: .4byte gBlockRecvBuffer -_080C8824: .4byte gUnknown_02038572 +_080C8824: .4byte gContestMons + 0x2 _080C8828: ldrb r0, [r4, 0xA] cmp r0, 0xFC @@ -612,12 +612,12 @@ _080C8A08: lsls r0, 24 cmp r0, 0 beq _080C8A30 - ldr r0, _080C8A1C @ =gUnknown_02038695 + ldr r0, _080C8A1C @ =gContestPlayerMonIndex movs r1, 0x1 bl sub_80C857C b _080C8A2A .align 2, 0 -_080C8A1C: .4byte gUnknown_02038695 +_080C8A1C: .4byte gContestPlayerMonIndex _080C8A20: bl sub_80C85D8 lsls r0, 24 @@ -661,7 +661,7 @@ _080C8A64: lsls r0, 24 cmp r0, 0 beq _080C8AC2 - ldr r0, _080C8A8C @ =gUnknown_02038695 + ldr r0, _080C8A8C @ =gContestPlayerMonIndex ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 @@ -675,7 +675,7 @@ _080C8A64: strh r0, [r4, 0x8] b _080C8AC2 .align 2, 0 -_080C8A8C: .4byte gUnknown_02038695 +_080C8A8C: .4byte gContestPlayerMonIndex _080C8A90: .4byte 0x02019266 _080C8A94: bl sub_80C85D8 diff --git a/asm/contest_painting.s b/asm/contest_painting.s deleted file mode 100644 index 91ee2d547..000000000 --- a/asm/contest_painting.s +++ /dev/null @@ -1,1293 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_8106630 -sub_8106630: @ 8106630 - push {r4-r7,lr} - ldr r2, _0810665C @ =0x02015de0 - subs r4, r2, 0x2 - subs r5, r2, 0x1 - ldr r3, _08106660 @ =gSaveBlock1 - subs r0, 0x1 - lsls r1, r0, 5 - adds r1, r3 - ldr r3, _08106664 @ =0x00002dfc - adds r1, r3 - ldm r1!, {r3,r6,r7} - stm r2!, {r3,r6,r7} - ldm r1!, {r3,r6,r7} - stm r2!, {r3,r6,r7} - ldm r1!, {r6,r7} - stm r2!, {r6,r7} - strb r0, [r4] - movs r0, 0 - strb r0, [r5] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810665C: .4byte 0x02015de0 -_08106660: .4byte gSaveBlock1 -_08106664: .4byte 0x00002dfc - thumb_func_end sub_8106630 - - thumb_func_start CB2_ContestPainting -CB2_ContestPainting: @ 8106668 - push {lr} - bl ShowContestPainting - pop {r0} - bx r0 - thumb_func_end CB2_ContestPainting - - thumb_func_start ShowContestPainting -ShowContestPainting: @ 8106674 - push {r4-r7,lr} - sub sp, 0x4 - ldr r1, _08106694 @ =gMain - ldr r2, _08106698 @ =0x0000043c - adds r0, r1, r2 - ldrb r0, [r0] - adds r4, r1, 0 - cmp r0, 0x4 - bls _08106688 - b _081067E0 -_08106688: - lsls r0, 2 - ldr r1, _0810669C @ =_081066A0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08106694: .4byte gMain -_08106698: .4byte 0x0000043c -_0810669C: .4byte _081066A0 - .align 2, 0 -_081066A0: - .4byte _081066B4 - .4byte _081066D8 - .4byte _08106734 - .4byte _0810675C - .4byte _0810678C -_081066B4: - bl remove_some_task - movs r0, 0 - bl SetVBlankCallback - ldr r1, _081066D0 @ =gUnknown_03005E8C - ldr r0, _081066D4 @ =0x02015de0 - str r0, [r1] - movs r0, 0x1 - bl ContestPaintingInitVars - bl ContestPaintingInitBG - b _0810676E - .align 2, 0 -_081066D0: .4byte gUnknown_03005E8C -_081066D4: .4byte 0x02015de0 -_081066D8: - bl ResetPaletteFade - movs r2, 0xC0 - lsls r2, 19 - movs r3, 0xC0 - lsls r3, 9 - movs r5, 0 - ldr r1, _08106724 @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - ldr r6, _08106728 @ =0x85000400 - movs r7, 0x85 - lsls r7, 24 -_081066F2: - str r5, [sp] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _081066F2 - str r5, [sp] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - bl ResetSpriteData - ldr r1, _0810672C @ =gMain - ldr r2, _08106730 @ =0x0000043c - adds r1, r2 - b _08106774 - .align 2, 0 -_08106724: .4byte 0x040000d4 -_08106728: .4byte 0x85000400 -_0810672C: .4byte gMain -_08106730: .4byte 0x0000043c -_08106734: - ldrh r0, [r4, 0x20] - bl SeedRng - bl InitKeys - ldr r0, _08106750 @ =0x02000000 - ldr r1, _08106754 @ =0x00015ddf - adds r0, r1 - ldrb r0, [r0] - bl ContestPaintingInitWindow - ldr r2, _08106758 @ =0x0000043c - adds r1, r4, r2 - b _08106774 - .align 2, 0 -_08106750: .4byte 0x02000000 -_08106754: .4byte 0x00015ddf -_08106758: .4byte 0x0000043c -_0810675C: - ldr r1, _0810677C @ =0x02000000 - ldr r2, _08106780 @ =0x00015dde - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - bl sub_8107090 -_0810676E: - ldr r1, _08106784 @ =gMain - ldr r0, _08106788 @ =0x0000043c - adds r1, r0 -_08106774: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _081067E0 - .align 2, 0 -_0810677C: .4byte 0x02000000 -_08106780: .4byte 0x00015dde -_08106784: .4byte gMain -_08106788: .4byte 0x0000043c -_0810678C: - ldr r1, _081067E8 @ =0x02000000 - ldr r2, _081067EC @ =0x00015dde - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - bl ContestPaintingPrintCaption - ldr r0, _081067F0 @ =gUnknown_083F6140 - movs r1, 0 - movs r2, 0x2 - bl LoadPalette - movs r1, 0xA0 - lsls r1, 19 - movs r4, 0 - str r4, [sp] - ldr r0, _081067F4 @ =0x040000d4 - mov r2, sp - str r2, [r0] - str r1, [r0, 0x4] - ldr r1, _081067F8 @ =0x85000100 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - movs r0, 0x2 - bl BeginFastPaletteFade - ldr r0, _081067FC @ =VBlankCB_ContestPainting - bl SetVBlankCallback - ldr r0, _08106800 @ =gUnknown_03000750 - strb r4, [r0] - movs r1, 0x80 - lsls r1, 19 - movs r2, 0x9A - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08106804 @ =CB2_HoldContestPainting - bl SetMainCallback2 -_081067E0: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081067E8: .4byte 0x02000000 -_081067EC: .4byte 0x00015dde -_081067F0: .4byte gUnknown_083F6140 -_081067F4: .4byte 0x040000d4 -_081067F8: .4byte 0x85000100 -_081067FC: .4byte VBlankCB_ContestPainting -_08106800: .4byte gUnknown_03000750 -_08106804: .4byte CB2_HoldContestPainting - thumb_func_end ShowContestPainting - - thumb_func_start CB2_HoldContestPainting -CB2_HoldContestPainting: @ 8106808 - push {lr} - bl HoldContestPainting - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end CB2_HoldContestPainting - - thumb_func_start CB2_QuitContestPainting -CB2_QuitContestPainting: @ 8106818 - push {lr} - ldr r0, _08106828 @ =gMain - ldr r0, [r0, 0x8] - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08106828: .4byte gMain - thumb_func_end CB2_QuitContestPainting - - thumb_func_start HoldContestPainting -HoldContestPainting: @ 810682C - push {lr} - sub sp, 0x4 - ldr r3, _08106844 @ =gUnknown_03000750 - ldrb r1, [r3] - cmp r1, 0x1 - beq _08106880 - cmp r1, 0x1 - bgt _08106848 - cmp r1, 0 - beq _0810684E - b _081068E6 - .align 2, 0 -_08106844: .4byte gUnknown_03000750 -_08106848: - cmp r1, 0x2 - beq _081068C0 - b _081068E6 -_0810684E: - ldr r0, _08106874 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0810685E - movs r0, 0x1 - strb r0, [r3] -_0810685E: - ldr r0, _08106878 @ =gUnknown_03000756 - ldrb r0, [r0] - cmp r0, 0 - beq _081068E6 - ldr r1, _0810687C @ =gUnknown_03000754 - ldrh r0, [r1] - cmp r0, 0 - beq _081068E6 - subs r0, 0x1 - b _081068E4 - .align 2, 0 -_08106874: .4byte gPaletteFade -_08106878: .4byte gUnknown_03000756 -_0810687C: .4byte gUnknown_03000754 -_08106880: - ldr r0, _081068B4 @ =gMain - ldrh r2, [r0, 0x2E] - ands r1, r2 - cmp r1, 0 - bne _08106892 - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _081068A4 -_08106892: - movs r0, 0x2 - strb r0, [r3] - subs r0, 0x3 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_081068A4: - ldr r0, _081068B8 @ =gUnknown_03000756 - ldrb r0, [r0] - cmp r0, 0 - beq _081068E6 - ldr r1, _081068BC @ =gUnknown_03000754 - movs r0, 0 - b _081068E4 - .align 2, 0 -_081068B4: .4byte gMain -_081068B8: .4byte gUnknown_03000756 -_081068BC: .4byte gUnknown_03000754 -_081068C0: - ldr r0, _081068EC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081068D2 - ldr r0, _081068F0 @ =CB2_QuitContestPainting - bl SetMainCallback2 -_081068D2: - ldr r0, _081068F4 @ =gUnknown_03000756 - ldrb r0, [r0] - cmp r0, 0 - beq _081068E6 - ldr r1, _081068F8 @ =gUnknown_03000754 - ldrh r0, [r1] - cmp r0, 0x1D - bhi _081068E6 - adds r0, 0x1 -_081068E4: - strh r0, [r1] -_081068E6: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_081068EC: .4byte gPaletteFade -_081068F0: .4byte CB2_QuitContestPainting -_081068F4: .4byte gUnknown_03000756 -_081068F8: .4byte gUnknown_03000754 - thumb_func_end HoldContestPainting - - thumb_func_start ContestPaintingInitWindow -ContestPaintingInitWindow: @ 81068FC - push {r4,lr} - ldr r4, _08106914 @ =gWindowConfig_81E7160 - adds r0, r4, 0 - bl InitMenuWindow - adds r0, r4, 0 - bl SetUpWindowConfig - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08106914: .4byte gWindowConfig_81E7160 - thumb_func_end ContestPaintingInitWindow - - thumb_func_start ContestPaintingPrintCaption -ContestPaintingPrintCaption: @ 8106918 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x1 - beq _081069BE - ldr r2, _08106974 @ =gUnknown_03005E40 - ldr r6, _08106978 @ =gUnknown_03005E8C - ldr r0, [r6] - ldrb r0, [r0, 0xA] - cmp r3, 0x7 - bhi _08106988 - ldr r1, _0810697C @ =gUnknown_083F60AC - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - ldr r1, _08106980 @ =gContestText_ContestWinner - bl StringCopy - adds r2, r0, 0 - ldr r1, [r6] - adds r1, 0x16 - bl StringCopy - adds r2, r0, 0 - movs r0, 0xFC - strb r0, [r2] - movs r0, 0x16 - strb r0, [r2, 0x1] - adds r2, 0x2 - ldr r1, _08106984 @ =gOtherText_Unknown1 - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - ldr r1, [r6] - adds r1, 0xB - bl StringCopy10 - movs r1, 0x6 - b _081069AE - .align 2, 0 -_08106974: .4byte gUnknown_03005E40 -_08106978: .4byte gUnknown_03005E8C -_0810697C: .4byte gUnknown_083F60AC -_08106980: .4byte gContestText_ContestWinner -_08106984: .4byte gOtherText_Unknown1 -_08106988: - ldr r4, _081069C4 @ =gUnknown_083F60C0 - lsls r5, r0, 3 - adds r0, r5, r4 - ldr r1, [r0] - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - ldr r1, [r6] - adds r1, 0xB - bl StringCopy10 - adds r2, r0, 0 - adds r4, 0x4 - adds r5, r4 - ldr r1, [r5] - bl StringCopy - movs r1, 0x3 -_081069AE: - movs r2, 0xE - ldr r0, _081069C8 @ =gUnknown_03005E40 - lsls r1, 3 - adds r1, 0x1 - lsls r2, 3 - movs r3, 0x1 - bl MenuPrint_PixelCoords -_081069BE: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081069C4: .4byte gUnknown_083F60C0 -_081069C8: .4byte gUnknown_03005E40 - thumb_func_end ContestPaintingPrintCaption - - thumb_func_start ContestPaintingInitBG -ContestPaintingInitBG: @ 81069CC - movs r0, 0x80 - lsls r0, 19 - movs r3, 0 - strh r3, [r0] - ldr r2, _081069FC @ =0x04000200 - ldrh r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - ldr r1, _08106A00 @ =REG_BG0CNT - ldr r2, _08106A04 @ =0x00000c42 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _08106A08 @ =0x00000a45 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08106A0C @ =REG_BLDCNT - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - bx lr - .align 2, 0 -_081069FC: .4byte 0x04000200 -_08106A00: .4byte REG_BG0CNT -_08106A04: .4byte 0x00000c42 -_08106A08: .4byte 0x00000a45 -_08106A0C: .4byte REG_BLDCNT - thumb_func_end ContestPaintingInitBG - - thumb_func_start ContestPaintingInitVars -ContestPaintingInitVars: @ 8106A10 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08106A34 - ldr r0, _08106A28 @ =gUnknown_03000756 - strb r1, [r0] - ldr r0, _08106A2C @ =gUnknown_03000752 - strh r1, [r0] - ldr r0, _08106A30 @ =gUnknown_03000754 - strh r1, [r0] - b _08106A46 - .align 2, 0 -_08106A28: .4byte gUnknown_03000756 -_08106A2C: .4byte gUnknown_03000752 -_08106A30: .4byte gUnknown_03000754 -_08106A34: - ldr r1, _08106A4C @ =gUnknown_03000756 - movs r0, 0x1 - strb r0, [r1] - ldr r1, _08106A50 @ =gUnknown_03000752 - movs r0, 0xF - strh r0, [r1] - ldr r1, _08106A54 @ =gUnknown_03000754 - movs r0, 0x1E - strh r0, [r1] -_08106A46: - pop {r0} - bx r0 - .align 2, 0 -_08106A4C: .4byte gUnknown_03000756 -_08106A50: .4byte gUnknown_03000752 -_08106A54: .4byte gUnknown_03000754 - thumb_func_end ContestPaintingInitVars - - thumb_func_start ContestPaintingMosaic -ContestPaintingMosaic: @ 8106A58 - push {lr} - ldr r0, _08106A68 @ =gUnknown_03000756 - ldrb r1, [r0] - cmp r1, 0 - bne _08106A70 - ldr r0, _08106A6C @ =REG_MOSAIC - strh r1, [r0] - b _08106A92 - .align 2, 0 -_08106A68: .4byte gUnknown_03000756 -_08106A6C: .4byte REG_MOSAIC -_08106A70: - ldr r1, _08106A98 @ =REG_BG1CNT - ldr r2, _08106A9C @ =0x00000a45 - adds r0, r2, 0 - strh r0, [r1] - ldr r2, _08106AA0 @ =gUnknown_03000752 - ldr r0, _08106AA4 @ =gUnknown_03000754 - ldrh r1, [r0] - lsrs r1, 1 - strh r1, [r2] - ldr r3, _08106AA8 @ =REG_MOSAIC - lsls r0, r1, 12 - lsls r2, r1, 8 - orrs r0, r2 - lsls r2, r1, 4 - orrs r0, r2 - orrs r0, r1 - strh r0, [r3] -_08106A92: - pop {r0} - bx r0 - .align 2, 0 -_08106A98: .4byte REG_BG1CNT -_08106A9C: .4byte 0x00000a45 -_08106AA0: .4byte gUnknown_03000752 -_08106AA4: .4byte gUnknown_03000754 -_08106AA8: .4byte REG_MOSAIC - thumb_func_end ContestPaintingMosaic - - thumb_func_start VBlankCB_ContestPainting -VBlankCB_ContestPainting: @ 8106AAC - push {lr} - bl ContestPaintingMosaic - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end VBlankCB_ContestPainting - - thumb_func_start sub_8106AC4 -sub_8106AC4: @ 8106AC4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - adds r4, r1, 0 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r4, 24 - lsrs r4, 24 - ldr r7, _08106B28 @ =gUnknown_03005E8C - ldr r0, [r7] - ldr r1, [r0, 0x4] - ldr r2, [r0] - adds r0, r6, 0 - bl species_and_otid_get_pal - ldr r1, _08106B2C @ =gUnknown_03005E90 - mov r8, r1 - ldr r1, [r1] - bl LZDecompressVram - cmp r4, 0 - bne _08106B40 - lsls r0, r6, 3 - ldr r1, _08106B30 @ =gMonFrontPicTable - adds r0, r1 - ldr r1, _08106B34 @ =gMonFrontPicCoords - lsls r2, r6, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08106B38 @ =gUnknown_081FAF4C - ldr r5, [r4, 0x4] - str r5, [sp] - str r6, [sp, 0x4] - ldr r4, [r7] - ldr r4, [r4] - str r4, [sp, 0x8] - bl sub_800D334 - mov r2, r8 - ldr r1, [r2] - ldr r0, _08106B3C @ =gUnknown_03005E10 - ldr r2, [r0] - adds r0, r5, 0 - bl sub_8106B90 - b _08106B74 - .align 2, 0 -_08106B28: .4byte gUnknown_03005E8C -_08106B2C: .4byte gUnknown_03005E90 -_08106B30: .4byte gMonFrontPicTable -_08106B34: .4byte gMonFrontPicCoords -_08106B38: .4byte gUnknown_081FAF4C -_08106B3C: .4byte gUnknown_03005E10 -_08106B40: - lsls r0, r6, 3 - ldr r1, _08106B80 @ =gMonBackPicTable - adds r0, r1 - ldr r1, _08106B84 @ =gMonBackPicCoords - lsls r2, r6, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08106B88 @ =gUnknown_081FAF4C - ldr r5, [r4] - str r5, [sp] - str r6, [sp, 0x4] - ldr r4, [r7] - ldr r4, [r4] - str r4, [sp, 0x8] - bl sub_800D334 - mov r0, r8 - ldr r1, [r0] - ldr r0, _08106B8C @ =gUnknown_03005E10 - ldr r2, [r0] - adds r0, r5, 0 - bl sub_8106B90 -_08106B74: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08106B80: .4byte gMonBackPicTable -_08106B84: .4byte gMonBackPicCoords -_08106B88: .4byte gUnknown_081FAF4C -_08106B8C: .4byte gUnknown_03005E10 - thumb_func_end sub_8106AC4 - - thumb_func_start sub_8106B90 -sub_8106B90: @ 8106B90 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - mov r10, r0 - mov r9, r1 - str r2, [sp] - movs r0, 0 -_08106BA4: - movs r3, 0 - adds r1, r0, 0x1 - str r1, [sp, 0x4] - lsls r0, 3 - str r0, [sp, 0x8] -_08106BAE: - movs r1, 0 - adds r2, r3, 0x1 - mov r8, r2 - ldr r7, [sp, 0x8] - adds r0, r7, r3 - lsls r0, 5 - mov r12, r0 - lsls r4, r3, 3 -_08106BBE: - movs r3, 0 - lsls r0, r1, 2 - adds r6, r1, 0x1 - mov r2, r12 - adds r5, r2, r0 - ldr r7, [sp, 0x8] - adds r0, r7, r1 - lsls r0, 7 - ldr r1, [sp] - adds r2, r0, r1 -_08106BD2: - lsrs r0, r3, 1 - adds r0, r5, r0 - add r0, r10 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _08106BE6 - lsrs r1, 4 - b _08106BEA -_08106BE6: - movs r0, 0xF - ands r1, r0 -_08106BEA: - cmp r1, 0 - bne _08106BFC - adds r0, r4, r3 - lsls r0, 1 - adds r0, r2 - movs r7, 0x80 - lsls r7, 8 - adds r1, r7, 0 - b _08106C08 -_08106BFC: - adds r0, r4, r3 - lsls r0, 1 - adds r0, r2 - lsls r1, 1 - add r1, r9 - ldrh r1, [r1] -_08106C08: - strh r1, [r0] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x7 - bls _08106BD2 - lsls r0, r6, 16 - lsrs r1, r0, 16 - cmp r1, 0x7 - bls _08106BBE - mov r1, r8 - lsls r0, r1, 16 - lsrs r3, r0, 16 - cmp r3, 0x7 - bls _08106BAE - ldr r2, [sp, 0x4] - lsls r0, r2, 16 - lsrs r0, 16 - cmp r0, 0x7 - bls _08106BA4 - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8106B90 - - thumb_func_start sub_8106C40 -sub_8106C40: @ 8106C40 - push {r4-r7,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08106C7C @ =gPictureFramePalettes - movs r2, 0x80 - lsls r2, 1 - movs r1, 0 - bl LoadPalette - cmp r4, 0x1 - beq _08106C5E - b _08106DB4 -_08106C5E: - ldr r0, _08106C80 @ =gUnknown_03005E8C - ldr r0, [r0] - ldrb r0, [r0, 0xA] - movs r1, 0x3 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _08106D1C - lsls r0, 2 - ldr r1, _08106C84 @ =_08106C88 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08106C7C: .4byte gPictureFramePalettes -_08106C80: .4byte gUnknown_03005E8C -_08106C84: .4byte _08106C88 - .align 2, 0 -_08106C88: - .4byte _08106C9C - .4byte _08106CB4 - .4byte _08106CCC - .4byte _08106CE4 - .4byte _08106D08 -_08106C9C: - ldr r0, _08106CAC @ =gPictureFrameTiles_0 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106CB0 @ =gPictureFrameTilemap_0 - b _08106CF0 - .align 2, 0 -_08106CAC: .4byte gPictureFrameTiles_0 -_08106CB0: .4byte gPictureFrameTilemap_0 -_08106CB4: - ldr r0, _08106CC4 @ =gPictureFrameTiles_1 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106CC8 @ =gPictureFrameTilemap_1 - b _08106CF0 - .align 2, 0 -_08106CC4: .4byte gPictureFrameTiles_1 -_08106CC8: .4byte gPictureFrameTilemap_1 -_08106CCC: - ldr r0, _08106CDC @ =gPictureFrameTiles_2 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106CE0 @ =gPictureFrameTilemap_2 - b _08106CF0 - .align 2, 0 -_08106CDC: .4byte gPictureFrameTiles_2 -_08106CE0: .4byte gPictureFrameTilemap_2 -_08106CE4: - ldr r0, _08106CFC @ =gPictureFrameTiles_3 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106D00 @ =gPictureFrameTilemap_3 -_08106CF0: - ldr r1, _08106D04 @ =gUnknown_03005E10 - ldr r1, [r1] - bl RLUnCompWram - b _08106D1C - .align 2, 0 -_08106CFC: .4byte gPictureFrameTiles_3 -_08106D00: .4byte gPictureFrameTilemap_3 -_08106D04: .4byte gUnknown_03005E10 -_08106D08: - ldr r0, _08106D98 @ =gPictureFrameTiles_4 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106D9C @ =gPictureFrameTilemap_4 - ldr r1, _08106DA0 @ =gUnknown_03005E10 - ldr r1, [r1] - bl RLUnCompWram -_08106D1C: - movs r1, 0 - ldr r5, _08106DA4 @ =0x06006000 - ldr r0, _08106DA8 @ =0x00001015 - adds r4, r0, 0 -_08106D24: - movs r3, 0 - lsls r2, r1, 5 -_08106D28: - adds r0, r2, r3 - lsls r0, 1 - adds r0, r5 - strh r4, [r0] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1F - bls _08106D28 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x13 - bls _08106D24 - movs r1, 0 - ldr r0, _08106DAC @ =0x0600608c - mov r12, r0 - ldr r7, _08106DA0 @ =gUnknown_03005E10 -_08106D4C: - movs r3, 0 - adds r6, r1, 0x1 - lsls r5, r1, 5 - lsls r4, r1, 6 -_08106D54: - adds r2, r5, r3 - lsls r2, 1 - add r2, r12 - ldr r0, [r7] - adds r0, r4, r0 - lsls r1, r3, 1 - adds r0, r1 - adds r0, 0x8C - ldrh r0, [r0] - strh r0, [r2] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x11 - bls _08106D54 - lsls r0, r6, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - bls _08106D4C - movs r3, 0 - ldr r4, _08106DB0 @ =0x0600608e - ldr r2, _08106DA0 @ =gUnknown_03005E10 -_08106D80: - lsls r1, r3, 1 - adds r1, r4 - ldr r0, [r2] - adds r0, 0x8E - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xF - bls _08106D80 - b _08106E86 - .align 2, 0 -_08106D98: .4byte gPictureFrameTiles_4 -_08106D9C: .4byte gPictureFrameTilemap_4 -_08106DA0: .4byte gUnknown_03005E10 -_08106DA4: .4byte 0x06006000 -_08106DA8: .4byte 0x00001015 -_08106DAC: .4byte 0x0600608c -_08106DB0: .4byte 0x0600608e -_08106DB4: - cmp r5, 0x7 - bhi _08106DD0 - ldr r0, _08106DC8 @ =gPictureFrameTiles_5 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106DCC @ =gPictureFrameTilemap_5 - b _08106E60 - .align 2, 0 -_08106DC8: .4byte gPictureFrameTiles_5 -_08106DCC: .4byte gPictureFrameTilemap_5 -_08106DD0: - ldr r0, _08106DF0 @ =gUnknown_03005E8C - ldr r0, [r0] - ldrb r0, [r0, 0xA] - movs r1, 0x3 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _08106E86 - lsls r0, 2 - ldr r1, _08106DF4 @ =_08106DF8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08106DF0: .4byte gUnknown_03005E8C -_08106DF4: .4byte _08106DF8 - .align 2, 0 -_08106DF8: - .4byte _08106E0C - .4byte _08106E24 - .4byte _08106E3C - .4byte _08106E54 - .4byte _08106E74 -_08106E0C: - ldr r0, _08106E1C @ =gPictureFrameTiles_0 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106E20 @ =gPictureFrameTilemap_0 - b _08106E60 - .align 2, 0 -_08106E1C: .4byte gPictureFrameTiles_0 -_08106E20: .4byte gPictureFrameTilemap_0 -_08106E24: - ldr r0, _08106E34 @ =gPictureFrameTiles_1 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106E38 @ =gPictureFrameTilemap_1 - b _08106E60 - .align 2, 0 -_08106E34: .4byte gPictureFrameTiles_1 -_08106E38: .4byte gPictureFrameTilemap_1 -_08106E3C: - ldr r0, _08106E4C @ =gPictureFrameTiles_2 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106E50 @ =gPictureFrameTilemap_2 - b _08106E60 - .align 2, 0 -_08106E4C: .4byte gPictureFrameTiles_2 -_08106E50: .4byte gPictureFrameTilemap_2 -_08106E54: - ldr r0, _08106E68 @ =gPictureFrameTiles_3 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106E6C @ =gPictureFrameTilemap_3 -_08106E60: - ldr r1, _08106E70 @ =0x06006000 - bl RLUnCompVram - b _08106E86 - .align 2, 0 -_08106E68: .4byte gPictureFrameTiles_3 -_08106E6C: .4byte gPictureFrameTilemap_3 -_08106E70: .4byte 0x06006000 -_08106E74: - ldr r0, _08106E8C @ =gPictureFrameTiles_4 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106E90 @ =gPictureFrameTilemap_4 - ldr r1, _08106E94 @ =0x06006000 - bl RLUnCompVram -_08106E86: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08106E8C: .4byte gPictureFrameTiles_4 -_08106E90: .4byte gPictureFrameTilemap_4 -_08106E94: .4byte 0x06006000 - thumb_func_end sub_8106C40 - - thumb_func_start sub_8106E98 -sub_8106E98: @ 8106E98 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08106ED0 @ =gMain - ldr r1, _08106ED4 @ =gOamData_83F6138 - ldr r2, [r1, 0x4] - ldr r1, [r1] - str r1, [r4, 0x3C] - str r2, [r4, 0x40] - adds r3, r4, 0 - adds r3, 0x40 - ldrh r2, [r3] - ldr r1, _08106ED8 @ =0xfffffc00 - ands r1, r2 - strh r1, [r3] - ldrh r1, [r4, 0x3E] - ldr r0, _08106EDC @ =0xfffffe00 - ands r0, r1 - movs r1, 0x58 - orrs r0, r1 - strh r0, [r4, 0x3E] - adds r1, r4, 0 - adds r1, 0x3C - movs r0, 0x18 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08106ED0: .4byte gMain -_08106ED4: .4byte gOamData_83F6138 -_08106ED8: .4byte 0xfffffc00 -_08106EDC: .4byte 0xfffffe00 - thumb_func_end sub_8106E98 - - thumb_func_start sub_8106EE0 -sub_8106EE0: @ 8106EE0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x7 - bhi _08106EF8 - ldr r0, _08106EF4 @ =gUnknown_03005E8C - ldr r0, [r0] - ldrb r0, [r0, 0xA] - b _08106F08 - .align 2, 0 -_08106EF4: .4byte gUnknown_03005E8C -_08106EF8: - ldr r0, _08106F18 @ =gUnknown_03005E8C - ldr r0, [r0] - ldrb r0, [r0, 0xA] - movs r1, 0x3 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 -_08106F08: - cmp r0, 0x4 - bhi _08106F46 - lsls r0, 2 - ldr r1, _08106F1C @ =_08106F20 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08106F18: .4byte gUnknown_03005E8C -_08106F1C: .4byte _08106F20 - .align 2, 0 -_08106F20: - .4byte _08106F34 - .4byte _08106F38 - .4byte _08106F3C - .4byte _08106F40 - .4byte _08106F44 -_08106F34: - movs r0, 0x9 - b _08106F46 -_08106F38: - movs r0, 0xD - b _08106F46 -_08106F3C: - movs r0, 0x2 - b _08106F46 -_08106F40: - movs r0, 0x24 - b _08106F46 -_08106F44: - movs r0, 0x6 -_08106F46: - pop {r1} - bx r1 - thumb_func_end sub_8106EE0 - - thumb_func_start sub_8106F4C -sub_8106F4C: @ 8106F4C - ldr r0, _08106F5C @ =gUnknown_03005E90 - ldr r1, _08106F60 @ =0x02017e00 - str r1, [r0] - ldr r0, _08106F64 @ =gUnknown_03005E10 - ldr r2, _08106F68 @ =0xffffe000 - adds r1, r2 - str r1, [r0] - bx lr - .align 2, 0 -_08106F5C: .4byte gUnknown_03005E90 -_08106F60: .4byte 0x02017e00 -_08106F64: .4byte gUnknown_03005E10 -_08106F68: .4byte 0xffffe000 - thumb_func_end sub_8106F4C - - thumb_func_start sub_8106F6C -sub_8106F6C: @ 8106F6C - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, _08106FAC @ =gUnknown_03005E20 - ldr r0, _08106FB0 @ =gUnknown_03005E10 - ldr r0, [r0] - str r0, [r1, 0x4] - ldr r0, _08106FB4 @ =gUnknown_03005E90 - ldr r0, [r0] - str r0, [r1, 0x8] - movs r2, 0 - strb r2, [r1, 0x18] - ldr r0, _08106FB8 @ =gUnknown_03005E8C - ldr r0, [r0] - ldrb r0, [r0] - strb r0, [r1, 0x1F] - strb r2, [r1, 0x19] - strb r2, [r1, 0x1A] - movs r0, 0x40 - strb r0, [r1, 0x1B] - strb r0, [r1, 0x1C] - strb r0, [r1, 0x1D] - strb r0, [r1, 0x1E] - subs r0, r3, 0x2 - adds r4, r1, 0 - cmp r0, 0x22 - bhi _08107050 - lsls r0, 2 - ldr r1, _08106FBC @ =_08106FC0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08106FAC: .4byte gUnknown_03005E20 -_08106FB0: .4byte gUnknown_03005E10 -_08106FB4: .4byte gUnknown_03005E90 -_08106FB8: .4byte gUnknown_03005E8C -_08106FBC: .4byte _08106FC0 - .align 2, 0 -_08106FC0: - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _0810704C - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _0810704C -_0810704C: - movs r0, 0x3 - b _08107052 -_08107050: - movs r0, 0x1 -_08107052: - strh r0, [r4, 0x14] - movs r0, 0x2 - strh r0, [r4, 0x16] - strb r3, [r4] - ldr r0, _08107088 @ =0x06010000 - str r0, [r4, 0x10] - adds r0, r4, 0 - bl sub_80FC7A0 - adds r0, r4, 0 - bl sub_80FDA18 - adds r0, r4, 0 - bl sub_80FD8CC - ldr r0, _0810708C @ =gUnknown_03005E90 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 1 - movs r2, 0x80 - lsls r2, 2 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08107088: .4byte 0x06010000 -_0810708C: .4byte gUnknown_03005E90 - thumb_func_end sub_8106F6C - - thumb_func_start sub_8107090 -sub_8107090: @ 8107090 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - bl sub_8106F4C - ldr r0, _081070D0 @ =gUnknown_03005E8C - ldr r0, [r0] - ldrh r0, [r0, 0x8] - movs r1, 0 - bl sub_8106AC4 - adds r0, r4, 0 - bl sub_8106EE0 - lsls r0, 24 - lsrs r0, 24 - bl sub_8106F6C - adds r0, r4, 0 - bl sub_8106E98 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8106C40 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081070D0: .4byte gUnknown_03005E8C - thumb_func_end sub_8107090 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/credits.s b/asm/credits.s new file mode 100644 index 000000000..4c6f9d5d8 --- /dev/null +++ b/asm/credits.s @@ -0,0 +1,2713 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_8144514 +sub_8144514: @ 8144514 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r6, _08144548 @ =0x0201c000 + ldr r3, _0814454C @ =gTasks + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r2, r0, r3 + movs r1, 0x8 + ldrsh r0, [r2, r1] + cmp r0, 0x1 + beq _08144550 + cmp r0, 0x1 + bgt _0814453C + b _08144658 +_0814453C: + cmp r0, 0x2 + beq _08144584 + cmp r0, 0x3 + bne _08144546 + b _08144644 +_08144546: + b _08144658 + .align 2, 0 +_08144548: .4byte 0x0201c000 +_0814454C: .4byte gTasks +_08144550: + adds r0, r6, 0 + adds r0, 0x8A + ldrh r0, [r0] + cmp r0, 0 + bne _0814456E + movs r4, 0xA + ldrsh r0, [r2, r4] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r3 + movs r4, 0x24 + ldrsh r0, [r1, r4] + cmp r0, 0 + beq _08144658 +_0814456E: + movs r0, 0xA + ldrsh r1, [r2, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + movs r1, 0 + strh r1, [r0, 0x24] + ldrh r0, [r2, 0x8] + adds r0, 0x1 + b _08144656 +_08144584: + adds r0, r6, 0 + adds r0, 0x88 + ldrh r1, [r0] + mov r9, r0 + cmp r1, 0x44 + beq _08144658 + movs r4, 0xA + ldrsh r1, [r2, r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + ldr r1, [r0] + ldr r0, _081445EC @ =sub_8143B68 + cmp r1, r0 + bne _08144658 + adds r7, r6, 0 + adds r7, 0x8C + ldrh r0, [r7] + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + ldr r4, _081445F0 @ =gUnknown_0840CA00 + adds r5, r6, 0 + adds r5, 0x8A + ldrh r3, [r5] + lsls r2, r3, 1 + adds r1, r2, r4 + ldrb r1, [r1] + adds r4, 0x1 + adds r2, r4 + ldrb r2, [r2] + bl sub_81456B4 + lsls r0, 24 + lsrs r2, r0, 24 + ldrh r1, [r7] + adds r0, r6, 0 + adds r0, 0x8E + ldrh r0, [r0] + subs r0, 0x1 + cmp r1, r0 + bge _081445F8 + adds r0, r1, 0x1 + strh r0, [r7] + ldr r1, _081445F4 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + movs r1, 0x32 + b _0814460A + .align 2, 0 +_081445EC: .4byte sub_8143B68 +_081445F0: .4byte gUnknown_0840CA00 +_081445F4: .4byte gSprites +_081445F8: + movs r0, 0 + strh r0, [r7] + ldr r1, _08144620 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + movs r1, 0x80 + lsls r1, 2 +_0814460A: + strh r1, [r0, 0x34] + mov r1, r9 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + ldrh r0, [r5] + cmp r0, 0x2 + bne _08144624 + movs r0, 0 + b _08144626 + .align 2, 0 +_08144620: .4byte gSprites +_08144624: + adds r0, 0x1 +_08144626: + strh r0, [r5] + ldr r0, _08144640 @ =gTasks + mov r2, r8 + lsls r1, r2, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0x32 + strh r0, [r1, 0xE] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _08144658 + .align 2, 0 +_08144640: .4byte gTasks +_08144644: + ldrh r1, [r2, 0xE] + movs r3, 0xE + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _08144654 + subs r0, r1, 0x1 + strh r0, [r2, 0xE] + b _08144658 +_08144654: + movs r0, 0x1 +_08144656: + strh r0, [r2, 0x8] +_08144658: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8144514 + + thumb_func_start sub_8144664 +sub_8144664: @ 8144664 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _0814468C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r6, r1, 0 + cmp r0, 0x32 + bls _08144680 + b _0814492C +_08144680: + lsls r0, 2 + ldr r1, _08144690 @ =_08144694 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0814468C: .4byte gTasks +_08144690: .4byte _08144694 + .align 2, 0 +_08144694: + .4byte _08144760 + .4byte _08144784 + .4byte _081447D8 + .4byte _081447F0 + .4byte _0814482C + .4byte _08144850 + .4byte _0814489C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _081448A8 + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _081448C8 + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _081448EC + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _08144920 +_08144760: + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r6 + ldrh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 17 + movs r1, 0x7F + ands r0, r1 + movs r1, 0xC + bl Sin + ldr r1, _08144780 @ =gUnknown_0203935A + strh r0, [r1] + b _081447A8 + .align 2, 0 +_08144780: .4byte gUnknown_0203935A +_08144784: + ldr r7, _081447B0 @ =gUnknown_0203935A + movs r3, 0 + ldrsh r4, [r7, r3] + cmp r4, 0 + beq _081447B4 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r6 + ldrh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 17 + movs r1, 0x7F + ands r0, r1 + movs r1, 0xC + bl Sin + strh r0, [r7] +_081447A8: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + b _0814492C + .align 2, 0 +_081447B0: .4byte gUnknown_0203935A +_081447B4: + ldr r3, _081447D4 @ =gSprites + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r6 + movs r0, 0xC + ldrsh r2, [r1, r0] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + movs r2, 0x2 + strh r2, [r0, 0x2E] + strh r4, [r1, 0x12] + b _08144848 + .align 2, 0 +_081447D4: .4byte gSprites +_081447D8: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r1, r0, r6 + ldrh r2, [r1, 0x12] + movs r3, 0x12 + ldrsh r0, [r1, r3] + cmp r0, 0x3F + bgt _08144848 + adds r0, r2, 0x1 + strh r0, [r1, 0x12] + b _08144866 +_081447F0: + ldr r3, _08144828 @ =gSprites + lsls r2, r5, 2 + adds r2, r5 + lsls r2, 3 + adds r2, r6 + movs r0, 0xC + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0x3 + strh r1, [r0, 0x2E] + movs r0, 0xE + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0x1 + strh r1, [r0, 0x2E] + movs r0, 0x78 + strh r0, [r2, 0x10] + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + b _0814492C + .align 2, 0 +_08144828: .4byte gSprites +_0814482C: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r1, r0, r6 + ldrh r2, [r1, 0x10] + movs r3, 0x10 + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _08144844 + subs r0, r2, 0x1 + strh r0, [r1, 0x10] + b _0814492C +_08144844: + movs r0, 0x40 + strh r0, [r1, 0x12] +_08144848: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _0814492C +_08144850: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r6 + ldrh r1, [r4, 0x12] + movs r2, 0x12 + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _0814487C + subs r0, r1, 0x1 + strh r0, [r4, 0x12] +_08144866: + movs r1, 0x7F + ands r0, r1 + movs r1, 0x14 + bl Sin + ldr r1, _08144878 @ =gUnknown_0203935A + strh r0, [r1] + b _0814492C + .align 2, 0 +_08144878: .4byte gUnknown_0203935A +_0814487C: + ldr r2, _08144898 @ =gSprites + movs r3, 0xC + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + strh r1, [r0, 0x2E] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _0814492C + .align 2, 0 +_08144898: .4byte gSprites +_0814489C: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r6 + movs r1, 0x32 + b _0814492A +_081448A8: + ldr r3, _081448C4 @ =gSprites + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r6 + movs r0, 0xE + ldrsh r2, [r1, r0] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + movs r2, 0x2 + b _081448E0 + .align 2, 0 +_081448C4: .4byte gSprites +_081448C8: + ldr r3, _081448E8 @ =gSprites + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r6 + movs r0, 0xC + ldrsh r2, [r1, r0] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + movs r2, 0x4 +_081448E0: + strh r2, [r0, 0x2E] + movs r0, 0x32 + strh r0, [r1, 0x8] + b _0814492C + .align 2, 0 +_081448E8: .4byte gSprites +_081448EC: + ldr r3, _0814491C @ =gSprites + lsls r2, r5, 2 + adds r2, r5 + lsls r2, 3 + adds r2, r6 + movs r0, 0xC + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0x5 + strh r1, [r0, 0x2E] + movs r0, 0xE + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0x3 + strh r1, [r0, 0x2E] + movs r0, 0x32 + strh r0, [r2, 0x8] + b _0814492C + .align 2, 0 +_0814491C: .4byte gSprites +_08144920: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r6 + movs r1, 0 +_0814492A: + strh r1, [r0, 0x8] +_0814492C: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8144664 + + thumb_func_start sub_8144934 +sub_8144934: @ 8144934 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _08144958 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + movs r3, 0x8 + ldrsh r0, [r0, r3] + adds r4, r1, 0 + cmp r0, 0x4 + bhi _08144974 + lsls r0, 2 + ldr r1, _0814495C @ =_08144960 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08144958: .4byte gTasks +_0814495C: .4byte _08144960 + .align 2, 0 +_08144960: + .4byte _08144974 + .4byte _081449B8 + .4byte _081449C4 + .4byte _08144A0C + .4byte _08144A5C +_08144974: + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r2, r0, r4 + movs r1, 0xA + ldrsh r0, [r2, r1] + ldr r5, _081449C0 @ =0x00007fff + cmp r0, r5 + beq _081449B8 + movs r3, 0xC + ldrsh r1, [r2, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r3, r0, r4 + movs r0, 0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + movs r1, 0xC + ldrsh r0, [r0, r1] + cmp r0, 0x2 + bne _081449B8 + movs r1, 0xA + ldrsh r0, [r3, r1] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r4 + movs r0, 0x14 + strh r0, [r1, 0x8] + strh r5, [r2, 0xA] +_081449B8: + movs r0, 0 + bl sub_8149020 + b _08144A62 + .align 2, 0 +_081449C0: .4byte 0x00007fff +_081449C4: + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r2, r0, r4 + movs r3, 0xA + ldrsh r0, [r2, r3] + ldr r5, _08144A08 @ =0x00007fff + cmp r0, r5 + beq _08144A54 + movs r0, 0xC + ldrsh r1, [r2, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + movs r3, 0xA + ldrsh r1, [r0, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r3, r0, r4 + ldrh r1, [r3, 0x12] + movs r0, 0x80 + negs r0, r0 + ands r0, r1 + movs r1, 0xA0 + lsls r1, 2 + cmp r0, r1 + bne _08144A54 + movs r0, 0x1 + strh r0, [r3, 0x8] + strh r5, [r2, 0xA] + b _08144A54 + .align 2, 0 +_08144A08: .4byte 0x00007fff +_08144A0C: + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r2, r0, r4 + ldrh r3, [r2, 0xA] + movs r0, 0xA + ldrsh r1, [r2, r0] + ldr r5, _08144A48 @ =0x00007fff + cmp r1, r5 + beq _08144A54 + ldr r0, _08144A4C @ =0x000001f3 + cmp r1, r0 + bne _08144A50 + movs r3, 0xC + ldrsh r1, [r2, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + movs r3, 0xA + ldrsh r1, [r0, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + movs r1, 0xA + strh r1, [r0, 0x8] + strh r5, [r2, 0xA] + b _08144A54 + .align 2, 0 +_08144A48: .4byte 0x00007fff +_08144A4C: .4byte 0x000001f3 +_08144A50: + adds r0, r3, 0x1 + strh r0, [r2, 0xA] +_08144A54: + movs r0, 0x1 + bl sub_8149020 + b _08144A62 +_08144A5C: + movs r0, 0x2 + bl sub_8149020 +_08144A62: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8144934 + + thumb_func_start sub_8144A68 +sub_8144A68: @ 8144A68 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 24 + lsrs r7, r1, 24 + cmp r0, 0x4 + bls _08144A7E + b _08144DFC +_08144A7E: + lsls r0, 2 + ldr r1, _08144A88 @ =_08144A8C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08144A88: .4byte _08144A8C + .align 2, 0 +_08144A8C: + .4byte _08144AA0 + .4byte _08144B48 + .4byte _08144BF4 + .4byte _08144CA0 + .4byte _08144D50 +_08144AA0: + ldr r5, _08144B40 @ =gSprites + ldr r0, _08144B44 @ =gTasks + lsls r4, r7, 2 + adds r4, r7 + lsls r4, 3 + adds r4, r0 + movs r1, 0x12 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r1, 0x3E + ldrb r3, [r1] + movs r2, 0x5 + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + strb r0, [r1] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r3, 0 + movs r2, 0x88 + lsls r2, 1 + strh r2, [r0, 0x20] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x20] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r2, 0x2E + strh r2, [r0, 0x22] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x22] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r3, [r0, 0x2E] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r3, [r0, 0x2E] + movs r1, 0x80 + lsls r1, 6 + movs r0, 0 + movs r2, 0x20 + b _08144DF0 + .align 2, 0 +_08144B40: .4byte gSprites +_08144B44: .4byte gTasks +_08144B48: + ldr r5, _08144BEC @ =gSprites + ldr r0, _08144BF0 @ =gTasks + lsls r4, r7, 2 + adds r4, r7 + lsls r4, 3 + adds r4, r0 + movs r1, 0x12 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r1, 0x3E + ldrb r3, [r1] + movs r2, 0x5 + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + strb r0, [r1] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r3, 0 + movs r1, 0x78 + strh r1, [r0, 0x20] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x88 + lsls r1, 1 + strh r1, [r0, 0x20] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r2, 0x2E + strh r2, [r0, 0x22] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x22] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r3, [r0, 0x2E] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r3, [r0, 0x2E] + movs r1, 0x80 + lsls r1, 6 + movs r0, 0 + movs r2, 0x20 + b _08144DF0 + .align 2, 0 +_08144BEC: .4byte gSprites +_08144BF0: .4byte gTasks +_08144BF4: + ldr r5, _08144C98 @ =gSprites + ldr r0, _08144C9C @ =gTasks + lsls r4, r7, 2 + adds r4, r7 + lsls r4, 3 + adds r4, r0 + movs r1, 0x12 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r1, 0x3E + ldrb r3, [r1] + movs r2, 0x5 + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + strb r0, [r1] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r3, 0 + movs r1, 0x78 + strh r1, [r0, 0x20] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x88 + lsls r1, 1 + strh r1, [r0, 0x20] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r2, 0x2E + strh r2, [r0, 0x22] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x22] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r3, [r0, 0x2E] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r3, [r0, 0x2E] + movs r1, 0x80 + lsls r1, 6 + movs r2, 0x80 + lsls r2, 2 + movs r0, 0x1 + b _08144DF0 + .align 2, 0 +_08144C98: .4byte gSprites +_08144C9C: .4byte gTasks +_08144CA0: + ldr r5, _08144D44 @ =gSprites + ldr r0, _08144D48 @ =gTasks + lsls r4, r7, 2 + adds r4, r7 + lsls r4, 3 + adds r4, r0 + movs r1, 0x12 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r1, 0x3E + ldrb r3, [r1] + movs r2, 0x5 + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + strb r0, [r1] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r3, 0 + movs r1, 0x78 + strh r1, [r0, 0x20] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _08144D4C @ =0x0000ffe0 + strh r1, [r0, 0x20] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r2, 0x2E + strh r2, [r0, 0x22] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x22] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r3, [r0, 0x2E] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r3, [r0, 0x2E] + movs r1, 0x80 + lsls r1, 6 + movs r2, 0x80 + lsls r2, 2 + movs r0, 0x1 + b _08144DF0 + .align 2, 0 +_08144D44: .4byte gSprites +_08144D48: .4byte gTasks +_08144D4C: .4byte 0x0000ffe0 +_08144D50: + ldr r5, _08144EBC @ =gSprites + ldr r0, _08144EC0 @ =gTasks + lsls r4, r7, 2 + adds r4, r7 + lsls r4, 3 + adds r4, r0 + movs r1, 0x12 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r1, 0x3E + ldrb r3, [r1] + movs r2, 0x5 + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + strb r0, [r1] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r3, 0 + movs r1, 0x58 + strh r1, [r0, 0x20] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x98 + strh r1, [r0, 0x20] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r2, 0x2E + strh r2, [r0, 0x22] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x22] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r3, [r0, 0x2E] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r3, [r0, 0x2E] + movs r1, 0x80 + lsls r1, 6 + movs r2, 0x80 + lsls r2, 2 + movs r0, 0x2 +_08144DF0: + movs r3, 0x8 + bl sub_8148EC0 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x8] +_08144DFC: + ldr r0, _08144EC4 @ =sub_8144934 + movs r1, 0 + bl CreateTask + ldr r6, _08144EC0 @ =gTasks + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r5, r1, r6 + lsls r0, 24 + lsrs r0, 24 + movs r4, 0 + strh r0, [r5, 0xC] + movs r0, 0xC + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + mov r1, r8 + strh r1, [r0, 0x8] + movs r0, 0xC + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + strh r4, [r0, 0xA] + movs r0, 0xC + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + strh r7, [r0, 0xC] + ldr r0, _08144EC8 @ =sub_8144664 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0xA] + movs r0, 0xA + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + strh r4, [r0, 0x8] + movs r0, 0xA + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + strh r7, [r0, 0xA] + movs r0, 0xA + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + ldrh r1, [r5, 0x12] + strh r1, [r0, 0xC] + movs r0, 0xA + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + ldrh r1, [r5, 0x14] + strh r1, [r0, 0xE] + movs r0, 0xA + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + strh r4, [r0, 0x10] + mov r1, r8 + cmp r1, 0x2 + bne _08144EB0 + movs r1, 0xA + ldrsh r0, [r5, r1] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r6 + movs r0, 0x45 + strh r0, [r1, 0x12] +_08144EB0: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08144EBC: .4byte gSprites +_08144EC0: .4byte gTasks +_08144EC4: .4byte sub_8144934 +_08144EC8: .4byte sub_8144664 + thumb_func_end sub_8144A68 + + thumb_func_start sub_8144ECC +sub_8144ECC: @ 8144ECC + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r0, _08144F28 @ =gMain + ldr r1, _08144F2C @ =0x0000043c + adds r6, r0, r1 + ldrb r0, [r6] + cmp r0, 0x1 + beq _08144F38 + cmp r0, 0x1 + ble _08144EF0 + cmp r0, 0x2 + beq _08144F5C + cmp r0, 0x3 + bne _08144EF0 + b _0814508C +_08144EF0: + movs r0, 0x80 + lsls r0, 19 + movs r1, 0 + strh r1, [r0] + ldr r2, _08144F30 @ =REG_BG3HOFS + movs r0, 0x8 + strh r0, [r2] + ldr r0, _08144F34 @ =REG_BG3VOFS + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x3A + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bl ResetSpriteData + bl FreeAllSpritePalettes + movs r0, 0x1 + strb r0, [r6] + b _081450A2 + .align 2, 0 +_08144F28: .4byte gMain +_08144F2C: .4byte 0x0000043c +_08144F30: .4byte REG_BG3HOFS +_08144F34: .4byte REG_BG3VOFS +_08144F38: + ldr r1, _08144F54 @ =gUnknown_02039358 + movs r0, 0x22 + strh r0, [r1] + ldr r1, _08144F58 @ =gUnknown_0203935A + movs r0, 0 + strh r0, [r1] + adds r0, r4, 0 + bl sub_8148CB0 + ldrb r0, [r6] + adds r0, 0x1 + strb r0, [r6] + b _081450A2 + .align 2, 0 +_08144F54: .4byte gUnknown_02039358 +_08144F58: .4byte gUnknown_0203935A +_08144F5C: + ldr r0, _08144FBC @ =gSaveBlock2 + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _08144FE0 + ldr r0, _08144FC0 @ =gIntro2BrendanSpriteSheet + bl LoadCompressedObjectPic + ldr r0, _08144FC4 @ =gUnknown_08416E34 + bl LoadCompressedObjectPic + ldr r0, _08144FC8 @ =gIntro2BicycleSpriteSheet + bl LoadCompressedObjectPic + ldr r0, _08144FCC @ =gIntro2SpritePalettes + bl LoadSpritePalettes + movs r0, 0x78 + movs r1, 0x2E + bl intro_create_brendan_sprite + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _08144FD0 @ =gTasks + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + strh r2, [r4, 0x12] + ldr r6, _08144FD4 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r5, r6, 0 + adds r5, 0x1C + adds r2, r0, r5 + ldr r1, _08144FD8 @ =sub_8145378 + str r1, [r2] + adds r6, 0x8 + adds r0, r6 + ldr r1, _08144FDC @ =gUnknown_0840CA54 + str r1, [r0] + movs r0, 0x88 + lsls r0, 1 + movs r1, 0x2E + bl intro_create_may_sprite + b _08145034 + .align 2, 0 +_08144FBC: .4byte gSaveBlock2 +_08144FC0: .4byte gIntro2BrendanSpriteSheet +_08144FC4: .4byte gUnknown_08416E34 +_08144FC8: .4byte gIntro2BicycleSpriteSheet +_08144FCC: .4byte gIntro2SpritePalettes +_08144FD0: .4byte gTasks +_08144FD4: .4byte gSprites +_08144FD8: .4byte sub_8145378 +_08144FDC: .4byte gUnknown_0840CA54 +_08144FE0: + ldr r0, _0814505C @ =gIntro2MaySpriteSheet + bl LoadCompressedObjectPic + ldr r0, _08145060 @ =gUnknown_08416E24 + bl LoadCompressedObjectPic + ldr r0, _08145064 @ =gIntro2BicycleSpriteSheet + bl LoadCompressedObjectPic + ldr r0, _08145068 @ =gIntro2SpritePalettes + bl LoadSpritePalettes + movs r0, 0x78 + movs r1, 0x2E + bl intro_create_may_sprite + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _0814506C @ =gTasks + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + strh r2, [r4, 0x12] + ldr r6, _08145070 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r5, r6, 0 + adds r5, 0x1C + adds r2, r0, r5 + ldr r1, _08145074 @ =sub_8145378 + str r1, [r2] + adds r6, 0x8 + adds r0, r6 + ldr r1, _08145078 @ =gUnknown_0840CA54 + str r1, [r0] + movs r0, 0x88 + lsls r0, 1 + movs r1, 0x2E + bl intro_create_brendan_sprite +_08145034: + lsls r0, 24 + lsrs r2, r0, 24 + strh r2, [r4, 0x14] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r5, r0, r5 + ldr r1, _0814507C @ =sub_8145420 + str r1, [r5] + adds r0, r6 + ldr r1, _08145080 @ =gUnknown_0840CA94 + str r1, [r0] + ldr r1, _08145084 @ =gMain + ldr r0, _08145088 @ =0x0000043c + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _081450A2 + .align 2, 0 +_0814505C: .4byte gIntro2MaySpriteSheet +_08145060: .4byte gUnknown_08416E24 +_08145064: .4byte gIntro2BicycleSpriteSheet +_08145068: .4byte gIntro2SpritePalettes +_0814506C: .4byte gTasks +_08145070: .4byte gSprites +_08145074: .4byte sub_8145378 +_08145078: .4byte gUnknown_0840CA54 +_0814507C: .4byte sub_8145420 +_08145080: .4byte gUnknown_0840CA94 +_08145084: .4byte gMain +_08145088: .4byte 0x0000043c +_0814508C: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8144A68 + adds r0, r4, 0 + bl sub_8148E90 + movs r0, 0 + strb r0, [r6] + movs r0, 0x1 + b _081450A4 +_081450A2: + movs r0, 0 +_081450A4: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8144ECC + + thumb_func_start sub_81450AC +sub_81450AC: @ 81450AC + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08145120 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r1, [r4, 0x8] + movs r2, 0x8 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _081450D2 + lsls r0, r1, 24 + lsrs r0, 24 + bl DestroyTask + movs r0, 0 + strh r0, [r4, 0x8] +_081450D2: + ldrh r1, [r4, 0xA] + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _081450E8 + lsls r0, r1, 24 + lsrs r0, 24 + bl DestroyTask + movs r0, 0 + strh r0, [r4, 0xA] +_081450E8: + ldrh r1, [r4, 0xC] + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _081450FE + lsls r0, r1, 24 + lsrs r0, 24 + bl DestroyTask + movs r0, 0 + strh r0, [r4, 0xC] +_081450FE: + ldrh r1, [r4, 0xE] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _08145114 + lsls r0, r1, 24 + lsrs r0, 24 + bl DestroyTask + movs r0, 0 + strh r0, [r4, 0xE] +_08145114: + ldr r1, _08145124 @ =gUnknown_0203935C + movs r0, 0x1 + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08145120: .4byte gTasks +_08145124: .4byte gUnknown_0203935C + thumb_func_end sub_81450AC + + thumb_func_start sub_8145128 +sub_8145128: @ 8145128 + push {r4-r7,lr} + adds r3, r0, 0 + adds r4, r2, 0 + lsls r3, 16 + lsrs r3, 16 + lsls r1, 16 + lsrs r7, r1, 16 + lsls r4, 16 + lsrs r5, r4, 16 + ldr r0, _081451EC @ =gCreditsCopyrightEnd_Gfx + movs r6, 0xC0 + lsls r6, 19 + adds r3, r6 + adds r1, r3, 0 + bl LZ77UnCompVram + ldr r0, _081451F0 @ =gIntroCopyright_Pal + adds r1, r5, 0 + movs r2, 0x20 + bl LoadPalette + lsrs r4, 20 + lsls r4, 28 + lsrs r4, 16 + movs r2, 0 + adds r1, r4, 0x1 + ldr r3, _081451F4 @ =0x000003ff +_0814515E: + lsls r0, r2, 1 + adds r0, r7 + adds r0, r6 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, r3 + bls _0814515E + movs r2, 0 + adds r0, r4, 0x2 + adds r6, r4, 0 + adds r6, 0x17 + movs r1, 0x2B + adds r1, r4 + mov r12, r1 + adds r4, 0x42 + ldr r5, _081451F8 @ =0x060001c8 + adds r3, r0, 0 +_08145184: + lsls r0, r2, 1 + adds r0, r7 + adds r0, r5 + adds r1, r2, r3 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x14 + bls _08145184 + movs r2, 0 + ldr r5, _081451FC @ =0x06000248 + adds r3, r6, 0 +_0814519E: + lsls r0, r2, 1 + adds r0, r7 + adds r0, r5 + adds r1, r2, r3 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x13 + bls _0814519E + movs r2, 0 + ldr r5, _08145200 @ =0x060002c8 + mov r3, r12 +_081451B8: + lsls r0, r2, 1 + adds r0, r7 + adds r0, r5 + adds r1, r2, r3 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x16 + bls _081451B8 + movs r2, 0 + ldr r3, _08145204 @ =0x06000348 +_081451D0: + lsls r0, r2, 1 + adds r0, r7 + adds r0, r3 + adds r1, r2, r4 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0xB + bls _081451D0 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081451EC: .4byte gCreditsCopyrightEnd_Gfx +_081451F0: .4byte gIntroCopyright_Pal +_081451F4: .4byte 0x000003ff +_081451F8: .4byte 0x060001c8 +_081451FC: .4byte 0x06000248 +_08145200: .4byte 0x060002c8 +_08145204: .4byte 0x06000348 + thumb_func_end sub_8145128 + + thumb_func_start sub_8145208 +sub_8145208: @ 8145208 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + adds r3, r2, 0 + movs r0, 0x3F + ands r0, r2 + adds r1, r0, 0 + adds r1, 0x50 + cmp r2, 0xFF + bne _08145220 + movs r0, 0x1 + b _08145246 +_08145220: + movs r0, 0x80 + ands r0, r2 + cmp r0, 0 + beq _08145230 + movs r2, 0x80 + lsls r2, 4 + adds r0, r2, 0 + orrs r1, r0 +_08145230: + movs r0, 0x40 + ands r3, r0 + cmp r3, 0 + beq _08145244 + movs r2, 0x80 + lsls r2, 3 + adds r0, r2, 0 + orrs r1, r0 + lsls r0, r1, 16 + lsrs r1, r0, 16 +_08145244: + adds r0, r1, 0 +_08145246: + pop {r1} + bx r1 + thumb_func_end sub_8145208 + + thumb_func_start sub_814524C +sub_814524C: @ 814524C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + str r0, [sp] + ldr r0, [sp, 0x2C] + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x4] + lsls r3, 16 + lsrs r3, 16 + str r3, [sp, 0x8] + lsls r0, 16 + lsrs r0, 20 + lsls r0, 28 + lsrs r0, 16 + mov r9, r0 + movs r5, 0 +_0814527A: + movs r4, 0 + lsls r7, r5, 1 + ldr r1, [sp, 0x4] + adds r0, r1, r5 + adds r2, r5, 0x1 + mov r8, r2 + lsls r0, 6 + ldr r1, [sp, 0x8] + adds r6, r0, r1 +_0814528C: + adds r0, r7, r5 + adds r0, r4 + ldr r2, [sp] + adds r0, r2, r0 + ldrb r0, [r0] + bl sub_8145208 + mov r2, r10 + adds r1, r2, r4 + lsls r1, 1 + adds r1, r6 + movs r2, 0xC0 + lsls r2, 19 + adds r1, r2 + add r0, r9 + strh r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _0814528C + mov r1, r8 + lsls r0, r1, 24 + lsrs r5, r0, 24 + cmp r5, 0x4 + bls _0814527A + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_814524C + + thumb_func_start sub_81452D0 +sub_81452D0: @ 81452D0 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 16 + lsrs r5, r0, 16 + lsls r1, 16 + lsrs r6, r1, 16 + lsrs r1, 20 + lsls r1, 28 + lsrs r1, 16 + movs r2, 0 + ldr r7, _08145360 @ =gUnknown_0840B83C + movs r4, 0xC0 + lsls r4, 19 + adds r1, 0x1 + ldr r3, _08145364 @ =0x000003ff +_081452EE: + lsls r0, r2, 1 + adds r0, r5 + adds r0, r4 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, r3 + bls _081452EE + str r6, [sp] + adds r0, r7, 0 + movs r1, 0x3 + movs r2, 0x7 + adds r3, r5, 0 + bl sub_814524C + ldr r0, _08145368 @ =gUnknown_0840B84B + str r6, [sp] + movs r1, 0x7 + movs r2, 0x7 + adds r3, r5, 0 + bl sub_814524C + ldr r4, _0814536C @ =gUnknown_0840B85A + str r6, [sp] + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0x7 + adds r3, r5, 0 + bl sub_814524C + str r6, [sp] + adds r0, r4, 0 + movs r1, 0x10 + movs r2, 0x7 + adds r3, r5, 0 + bl sub_814524C + ldr r0, _08145370 @ =gUnknown_0840B869 + str r6, [sp] + movs r1, 0x14 + movs r2, 0x7 + adds r3, r5, 0 + bl sub_814524C + ldr r0, _08145374 @ =gUnknown_0840B878 + str r6, [sp] + movs r1, 0x18 + movs r2, 0x7 + adds r3, r5, 0 + bl sub_814524C + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08145360: .4byte gUnknown_0840B83C +_08145364: .4byte 0x000003ff +_08145368: .4byte gUnknown_0840B84B +_0814536C: .4byte gUnknown_0840B85A +_08145370: .4byte gUnknown_0840B869 +_08145374: .4byte gUnknown_0840B878 + thumb_func_end sub_81452D0 + + thumb_func_start sub_8145378 +sub_8145378: @ 8145378 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _08145390 @ =gUnknown_0203935C + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _08145394 + adds r0, r4, 0 + bl DestroySprite + b _08145418 + .align 2, 0 +_08145390: .4byte gUnknown_0203935C +_08145394: + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0x5 + bhi _08145418 + lsls r0, 2 + ldr r1, _081453A8 @ =_081453AC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081453A8: .4byte _081453AC + .align 2, 0 +_081453AC: + .4byte _081453C4 + .4byte _081453CE + .4byte _081453D4 + .4byte _081453DE + .4byte _081453E8 + .4byte _081453FE +_081453C4: + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnimIfDifferent + b _08145418 +_081453CE: + adds r0, r4, 0 + movs r1, 0x1 + b _08145402 +_081453D4: + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAnimIfDifferent + b _08145418 +_081453DE: + adds r0, r4, 0 + movs r1, 0x3 + bl StartSpriteAnimIfDifferent + b _08145418 +_081453E8: + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnimIfDifferent + ldrh r1, [r4, 0x20] + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r0, 0x78 + ble _08145418 + subs r0, r1, 0x1 + b _08145416 +_081453FE: + adds r0, r4, 0 + movs r1, 0 +_08145402: + bl StartSpriteAnimIfDifferent + ldrh r2, [r4, 0x20] + movs r0, 0x20 + ldrsh r1, [r4, r0] + movs r0, 0x20 + negs r0, r0 + cmp r1, r0 + ble _08145418 + subs r0, r2, 0x1 +_08145416: + strh r0, [r4, 0x20] +_08145418: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8145378 + + thumb_func_start sub_8145420 +sub_8145420: @ 8145420 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _08145438 @ =gUnknown_0203935C + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _0814543C + adds r0, r4, 0 + bl DestroySprite + b _081454D8 + .align 2, 0 +_08145438: .4byte gUnknown_0203935C +_0814543C: + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _08145464 + cmp r0, 0x1 + bgt _0814544E + cmp r0, 0 + beq _08145458 + b _081454D8 +_0814544E: + cmp r0, 0x2 + beq _081454A0 + cmp r0, 0x3 + beq _081454BE + b _081454D8 +_08145458: + strh r0, [r4, 0x26] + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnimIfDifferent + b _081454D8 +_08145464: + movs r1, 0x20 + ldrsh r0, [r4, r1] + cmp r0, 0xC8 + ble _08145476 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnimIfDifferent + b _0814547E +_08145476: + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAnimIfDifferent +_0814547E: + ldrh r2, [r4, 0x20] + movs r0, 0x20 + ldrsh r1, [r4, r0] + movs r0, 0x20 + negs r0, r0 + cmp r1, r0 + ble _08145490 + subs r0, r2, 0x2 + strh r0, [r4, 0x20] +_08145490: + ldr r0, _0814549C @ =gUnknown_0203935A + ldrh r0, [r0] + negs r0, r0 + strh r0, [r4, 0x26] + b _081454D8 + .align 2, 0 +_0814549C: .4byte gUnknown_0203935A +_081454A0: + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnimIfDifferent + ldrh r1, [r4, 0x3C] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _081454D8 + ldrh r0, [r4, 0x20] + adds r0, 0x1 + b _081454D6 +_081454BE: + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnimIfDifferent + ldrh r2, [r4, 0x20] + movs r0, 0x20 + ldrsh r1, [r4, r0] + movs r0, 0x20 + negs r0, r0 + cmp r1, r0 + ble _081454D8 + subs r0, r2, 0x1 +_081454D6: + strh r0, [r4, 0x20] +_081454D8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8145420 + + thumb_func_start sub_81454E0 +sub_81454E0: @ 81454E0 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + ldr r0, _081454F8 @ =gUnknown_0203935C + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _081454FC + adds r0, r5, 0 + bl DestroySprite + b _081456A6 + .align 2, 0 +_081454F8: .4byte gUnknown_0203935C +_081454FC: + ldrh r0, [r5, 0x3C] + adds r0, 0x1 + strh r0, [r5, 0x3C] + movs r2, 0x2E + ldrsh r0, [r5, r2] + cmp r0, 0xA + bhi _08145544 + lsls r0, 2 + ldr r1, _08145514 @ =_08145518 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08145514: .4byte _08145518 + .align 2, 0 +_08145518: + .4byte _08145544 + .4byte _0814559E + .4byte _08145620 + .4byte _08145660 + .4byte _08145544 + .4byte _08145544 + .4byte _08145544 + .4byte _08145544 + .4byte _08145544 + .4byte _08145544 + .4byte _08145696 +_08145544: + ldrb r1, [r5, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r5, 0x1] + movs r0, 0x30 + ldrsh r1, [r5, r0] + movs r0, 0x1F + ands r1, r0 + lsls r1, 1 + ldrb r2, [r5, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x3] + movs r0, 0x10 + strh r0, [r5, 0x32] + ldrh r4, [r5, 0x30] + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x80 + lsls r0, 9 + movs r1, 0x10 + bl __divsi3 + adds r1, r0, 0 + str r1, [sp] + adds r0, r4, 0 + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + adds r2, r5, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + movs r0, 0x1 + strh r0, [r5, 0x2E] + b _081456A6 +_0814559E: + ldrh r1, [r5, 0x32] + movs r2, 0x32 + ldrsh r0, [r5, r2] + cmp r0, 0xFF + bgt _081455D4 + adds r0, r1, 0 + adds r0, 0x8 + strh r0, [r5, 0x32] + ldrh r4, [r5, 0x30] + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x32 + ldrsh r1, [r5, r0] + movs r0, 0x80 + lsls r0, 9 + bl __divsi3 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp] + adds r0, r4, 0 + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + b _081455DA +_081455D4: + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] +_081455DA: + movs r2, 0x30 + ldrsh r1, [r5, r2] + cmp r1, 0x2 + beq _081456A6 + cmp r1, 0x2 + bgt _081455EC + cmp r1, 0x1 + beq _081455F2 + b _081456A6 +_081455EC: + cmp r1, 0x3 + beq _0814560A + b _081456A6 +_081455F2: + ldrh r1, [r5, 0x3C] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08145602 + ldrh r0, [r5, 0x22] + adds r0, 0x1 + strh r0, [r5, 0x22] +_08145602: + ldrh r0, [r5, 0x20] + subs r0, 0x2 + strh r0, [r5, 0x20] + b _081456A6 +_0814560A: + ldrh r0, [r5, 0x3C] + ands r1, r0 + cmp r1, 0 + bne _08145618 + ldrh r0, [r5, 0x22] + adds r0, 0x1 + strh r0, [r5, 0x22] +_08145618: + ldrh r0, [r5, 0x20] + adds r0, 0x2 + strh r0, [r5, 0x20] + b _081456A6 +_08145620: + ldrh r1, [r5, 0x34] + movs r2, 0x34 + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _08145630 + subs r0, r1, 0x1 + strh r0, [r5, 0x34] + b _081456A6 +_08145630: + ldr r1, _0814565C @ =REG_BLDCNT + movs r2, 0xF4 + lsls r2, 4 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x10 + strh r0, [r1] + ldrb r1, [r5, 0x1] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r5, 0x1] + movs r0, 0x10 + strh r0, [r5, 0x34] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _081456A6 + .align 2, 0 +_0814565C: .4byte REG_BLDCNT +_08145660: + ldrh r1, [r5, 0x34] + movs r2, 0x34 + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _08145684 + subs r1, 0x1 + strh r1, [r5, 0x34] + ldr r3, _08145680 @ =REG_BLDALPHA + movs r0, 0x34 + ldrsh r2, [r5, r0] + movs r0, 0x10 + subs r0, r2 + lsls r0, 8 + adds r1, r0 + strh r1, [r3] + b _081456A6 + .align 2, 0 +_08145680: .4byte REG_BLDALPHA +_08145684: + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + movs r0, 0xA + strh r0, [r5, 0x2E] + b _081456A6 +_08145696: + ldr r0, _081456B0 @ =REG_BLDCNT + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, r5, 0 + bl DestroySprite +_081456A6: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081456B0: .4byte REG_BLDCNT + thumb_func_end sub_81454E0 + + thumb_func_start sub_81456B4 +sub_81456B4: @ 81456B4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 16 + lsrs r1, 16 + mov r10, r1 + lsls r2, 16 + lsrs r2, 16 + str r2, [sp, 0x10] + lsls r3, 16 + lsrs r3, 16 + mov r9, r3 + adds r0, r6, 0 + bl NationalPokedexNumToSpecies + adds r6, r0, 0 + cmp r6, 0xC9 + beq _081456F8 + movs r0, 0x9A + lsls r0, 1 + cmp r6, r0 + beq _081456EE + movs r7, 0 + b _081456FC +_081456EE: + ldr r0, _081456F4 @ =gSaveBlock2 + ldr r7, [r0, 0x20] + b _081456FC + .align 2, 0 +_081456F4: .4byte gSaveBlock2 +_081456F8: + ldr r0, _081457E8 @ =gSaveBlock2 + ldr r7, [r0, 0x1C] +_081456FC: + lsls r0, r6, 3 + ldr r1, _081457EC @ =gMonFrontPicTable + adds r0, r1 + ldr r1, _081457F0 @ =gMonFrontPicCoords + lsls r2, r6, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _081457F4 @ =gUnknown_0840B5A0 + mov r8, r4 + mov r5, r9 + lsls r4, r5, 2 + add r4, r8 + ldr r4, [r4] + str r4, [sp] + str r6, [sp, 0x4] + str r7, [sp, 0x8] + movs r4, 0x1 + str r4, [sp, 0xC] + bl LoadSpecialPokePic + ldr r2, _081457F8 @ =0x0000ffff + adds r0, r6, 0 + movs r1, 0 + bl species_and_otid_get_pal + lsls r5, 4 + mov r8, r5 + movs r1, 0x80 + lsls r1, 1 + add r1, r8 + lsls r1, 16 + lsrs r1, 16 + movs r2, 0x20 + bl LoadCompressedPalette + mov r7, r9 + lsls r6, r7, 24 + lsrs r6, 24 + mov r0, r9 + adds r1, r6, 0 + bl sub_8143648 + ldr r0, _081457FC @ =gUnknown_02024E8C + mov r2, r10 + lsls r1, r2, 16 + asrs r1, 16 + ldr r3, [sp, 0x10] + lsls r2, r3, 16 + asrs r2, 16 + movs r3, 0 + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _08145800 @ =gSprites + lsls r2, r4, 4 + adds r2, r4 + lsls r2, 2 + adds r3, r2, r5 + ldrb r1, [r3, 0x5] + movs r0, 0xF + ands r0, r1 + mov r7, r8 + orrs r0, r7 + movs r1, 0xD + negs r1, r1 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3, 0x5] + mov r0, r9 + adds r0, 0x1 + strh r0, [r3, 0x30] + movs r0, 0x3E + adds r0, r3 + mov r8, r0 + ldrb r0, [r0] + orrs r0, r1 + mov r1, r8 + strb r0, [r1] + adds r0, r5, 0 + adds r0, 0x1C + adds r2, r0 + ldr r0, _08145804 @ =sub_81454E0 + str r0, [r2] + ldr r0, _08145808 @ =gSpriteTemplate_840CAEC + movs r2, 0x20 + ldrsh r1, [r3, r2] + movs r7, 0x22 + ldrsh r2, [r3, r7] + movs r3, 0x1 + bl CreateSprite + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r4, [r0, 0x2E] + adds r1, r6, 0 + bl StartSpriteAnimIfDifferent + adds r0, r4, 0 + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_081457E8: .4byte gSaveBlock2 +_081457EC: .4byte gMonFrontPicTable +_081457F0: .4byte gMonFrontPicCoords +_081457F4: .4byte gUnknown_0840B5A0 +_081457F8: .4byte 0x0000ffff +_081457FC: .4byte gUnknown_02024E8C +_08145800: .4byte gSprites +_08145804: .4byte sub_81454E0 +_08145808: .4byte gSpriteTemplate_840CAEC + thumb_func_end sub_81456B4 + + thumb_func_start sub_814580C +sub_814580C: @ 814580C + push {r4,lr} + adds r3, r0, 0 + ldr r4, _08145838 @ =gSprites + movs r1, 0x2E + ldrsh r0, [r3, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0xA + beq _08145830 + ldr r0, _0814583C @ =gUnknown_0203935C + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + beq _08145840 +_08145830: + adds r0, r3, 0 + bl DestroySprite + b _081458D4 + .align 2, 0 +_08145838: .4byte gSprites +_0814583C: .4byte gUnknown_0203935C +_08145840: + adds r0, r1, 0 + adds r0, 0x3E + ldrb r0, [r0] + movs r1, 0x3E + adds r1, r3 + mov r12, r1 + movs r1, 0x4 + ands r1, r0 + mov r0, r12 + ldrb r2, [r0] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + movs r2, 0x2E + ldrsh r1, [r3, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0, 0x1] + movs r0, 0xC + ands r0, r1 + ldrb r2, [r3, 0x1] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x1] + movs r0, 0x2E + ldrsh r2, [r3, r0] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x1] + lsls r0, 30 + lsrs r0, 30 + movs r2, 0x4 + negs r2, r2 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x1] + movs r2, 0x2E + ldrsh r1, [r3, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x3] + movs r1, 0x3E + ands r1, r0 + ldrb r2, [r3, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x3] + movs r0, 0x2E + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r0, [r0, 0x20] + strh r0, [r3, 0x20] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r0, [r0, 0x22] + strh r0, [r3, 0x22] +_081458D4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_814580C + + thumb_func_start sub_81458DC +sub_81458DC: @ 81458DC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r7, _0814597C @ =0x0201c000 + ldr r0, _08145980 @ =0x00004023 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + bl GetStarterPokemon + lsls r0, 16 + lsrs r0, 16 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + movs r4, 0x1 + movs r5, 0 + ldr r0, _08145984 @ =0x00000181 + mov r8, r0 +_0814590E: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8090D90 + lsls r0, 24 + adds r6, r7, 0 + adds r6, 0x90 + cmp r0, 0 + beq _0814592C + lsls r0, r5, 1 + adds r0, r6, r0 + strh r4, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_0814592C: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r8 + bls _0814590E + adds r4, r5, 0 + ldr r0, _08145984 @ =0x00000181 + lsls r1, r4, 16 + mov r9, r1 + movs r2, 0x8E + adds r2, r7 + mov r8, r2 + adds r1, r7, 0 + adds r1, 0x86 + str r1, [sp] + cmp r4, r0 + bhi _08145964 + adds r1, r6, 0 + movs r3, 0 + adds r2, r0, 0 +_08145954: + lsls r0, r4, 1 + adds r0, r1, r0 + strh r3, [r0] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r2 + bls _08145954 +_08145964: + movs r2, 0xE5 + lsls r2, 2 + adds r0, r7, r2 + strh r5, [r0] + mov r1, r9 + lsrs r0, r1, 16 + cmp r0, 0x43 + bhi _08145988 + mov r2, r8 + strh r5, [r2] + b _0814598E + .align 2, 0 +_0814597C: .4byte 0x0201c000 +_08145980: .4byte 0x00004023 +_08145984: .4byte 0x00000181 +_08145988: + movs r0, 0x44 + mov r1, r8 + strh r0, [r1] +_0814598E: + movs r5, 0 + movs r2, 0xE5 + lsls r2, 2 + adds r4, r7, r2 + mov r9, r5 + b _0814599E +_0814599A: + cmp r5, 0x43 + bhi _081459EE +_0814599E: + bl Random + lsls r0, 16 + lsrs r0, 16 + ldrh r1, [r4] + bl __umodsi3 + lsls r0, 16 + lsrs r2, r0, 16 + lsls r1, r5, 1 + adds r1, r7, r1 + lsls r0, r2, 1 + adds r3, r6, r0 + ldrh r0, [r3] + strh r0, [r1] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + mov r0, r9 + strh r0, [r3] + ldrh r0, [r4] + subs r0, 0x1 + strh r0, [r4] + lsls r0, 16 + lsrs r0, 16 + cmp r2, r0 + beq _081459E8 + ldrh r0, [r4] + lsls r0, 1 + adds r0, r6, r0 + ldrh r0, [r0] + strh r0, [r3] + ldrh r0, [r4] + lsls r0, 1 + adds r0, r6, r0 + mov r1, r9 + strh r1, [r0] +_081459E8: + ldrh r0, [r4] + cmp r0, 0 + bne _0814599A +_081459EE: + mov r2, r8 + ldrh r0, [r2] + cmp r0, 0x43 + bhi _08145A26 + adds r5, r0, 0 + movs r2, 0 + cmp r5, 0x43 + bhi _08145A5C + mov r3, r8 +_08145A00: + lsls r1, r5, 1 + adds r1, r7, r1 + lsls r0, r2, 1 + adds r0, r7, r0 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldrh r0, [r3] + cmp r2, r0 + bne _08145A1A + movs r2, 0 +_08145A1A: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x43 + bls _08145A00 + b _08145A5C +_08145A26: + movs r4, 0 + ldrh r0, [r7] + cmp r0, r10 + beq _08145A42 +_08145A2E: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + lsls r0, r4, 1 + adds r0, r7, r0 + ldrh r0, [r0] + cmp r0, r10 + beq _08145A42 + cmp r4, 0x43 + bls _08145A2E +_08145A42: + mov r1, r8 + ldrh r0, [r1] + subs r0, 0x1 + cmp r4, r0 + bge _08145A5C + lsls r0, r4, 1 + adds r0, r7, r0 + ldr r2, [sp] + ldrh r1, [r2] + strh r1, [r0] + mov r0, r10 + strh r0, [r2] + b _08145A62 +_08145A5C: + mov r2, r10 + ldr r1, [sp] + strh r2, [r1] +_08145A62: + movs r0, 0x44 + mov r1, r8 + strh r0, [r1] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81458DC + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/daycare.s b/asm/daycare.s index 68cae0daf..d78757d8f 100644 --- a/asm/daycare.s +++ b/asm/daycare.s @@ -6,70 +6,6 @@ .text - thumb_func_start pokemon_get_nick -pokemon_get_nick: @ 80412B0 - push {r4,lr} - sub sp, 0x14 - adds r4, r1, 0 - movs r1, 0x2 - mov r2, sp - bl GetMonData - adds r0, r4, 0 - mov r1, sp - bl StringCopy10 - add sp, 0x14 - pop {r4} - pop {r1} - bx r1 - thumb_func_end pokemon_get_nick - - thumb_func_start pokemon_get_nick_ -pokemon_get_nick_: @ 80412D0 - push {r4,lr} - sub sp, 0x14 - adds r4, r1, 0 - movs r1, 0x2 - mov r2, sp - bl GetBoxMonData - adds r0, r4, 0 - mov r1, sp - bl StringCopy10 - add sp, 0x14 - pop {r4} - pop {r1} - bx r1 - thumb_func_end pokemon_get_nick_ - - thumb_func_start daycare_count_pokemon -daycare_count_pokemon: @ 80412F0 - push {r4-r6,lr} - adds r6, r0, 0 - movs r5, 0 - movs r4, 0 -_080412F8: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - adds r0, r6, r0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _08041310 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_08041310: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _080412F8 - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end daycare_count_pokemon - thumb_func_start sub_8041324 sub_8041324: @ 8041324 push {r4-r7,lr} @@ -194,7 +130,7 @@ sub_80413C8: @ 80413C8 bl StringCopy adds r0, r6, 0 movs r1, 0xFC - bl sub_814A518 + bl PadNameString adds r6, 0x8 adds r0, r7, 0 adds r1, r6, 0 diff --git a/asm/decoration.s b/asm/decoration.s index c507b599d..221c749c5 100644 --- a/asm/decoration.s +++ b/asm/decoration.s @@ -764,60 +764,7 @@ sub_80FE7D4: @ 80FE7D4 _080FE7E8: .4byte gUnknown_083EC5E4 thumb_func_end sub_80FE7D4 - thumb_func_start sub_80FE7EC -sub_80FE7EC: @ 80FE7EC - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl sub_80FEC94 - ldr r0, _080FE858 @ =gUnknown_020388F6 - ldrb r0, [r0] - bl sub_80FECB8 - movs r0, 0xF - movs r1, 0xC - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r4, _080FE85C @ =gUnknown_020388F2 - ldr r0, _080FE860 @ =gUnknown_020388F4 - ldrb r0, [r0] - ldrb r1, [r4] - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl sub_80FECE0 - ldr r0, _080FE864 @ =gUnknown_020388F3 - ldrb r3, [r0] - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - ldrb r0, [r4] - str r0, [sp] - movs r0, 0xD - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x2 - bl InitMenu - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FE858: .4byte gUnknown_020388F6 -_080FE85C: .4byte gUnknown_020388F2 -_080FE860: .4byte gUnknown_020388F4 -_080FE864: .4byte gUnknown_020388F3 - thumb_func_end sub_80FE7EC + .section .text_80FE868 thumb_func_start sub_80FE868 sub_80FE868: @ 80FE868 @@ -6003,7 +5950,7 @@ _0810104C: lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl sub_8057238 + bl MetatileBehavior_IsSecretBasePC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 diff --git a/asm/easy_chat.s b/asm/easy_chat.s index e98a76c8c..a0e80e057 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -11563,7 +11563,7 @@ _080EB9C4: .4byte 0x0000ffff thumb_func_start sub_80EB9C8 sub_80EB9C8: @ 80EB9C8 push {lr} - bl IsNationalPokedex + bl IsNationalPokedexEnabled lsls r0, 24 lsrs r0, 24 pop {r1} diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s index b8dae1bba..95737cae6 100644 --- a/asm/egg_hatch.s +++ b/asm/egg_hatch.s @@ -304,7 +304,7 @@ _08042B08: adds r1, r6, 0 bl StringCopy adds r0, r4, 0 - bl sub_814A568 + bl SanitizeNameString movs r0, 0x1 b _08042B42 .align 2, 0 @@ -409,7 +409,7 @@ _08042BB4: str r5, [sp, 0x4] mov r4, r8 str r4, [sp, 0x8] - bl sub_800D334 + bl HandleLoadSpecialPokePic adds r0, r7, 0 bl sub_8040990 bl LoadCompressedObjectPalette diff --git a/asm/rom_8148B8C.s b/asm/evolution_graphics.s index 6ed24195f..1130e085e 100644 --- a/asm/rom_8148B8C.s +++ b/asm/evolution_graphics.s @@ -6,1163 +6,6 @@ .text - thumb_func_start load_intro_part2_graphics -load_intro_part2_graphics: @ 8148B8C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08148BE8 @ =gUnknown_0841225C - ldr r1, _08148BEC @ =0x06004000 - bl LZ77UnCompVram - ldr r0, _08148BF0 @ =gUnknown_084126DC - ldr r1, _08148BF4 @ =0x06007800 - bl LZ77UnCompVram - ldr r0, _08148BF8 @ =gUnknown_084121FC - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - cmp r4, 0 - beq _08148BB4 - cmp r4, 0x1 - beq _08148C14 -_08148BB4: - ldr r0, _08148BFC @ =gUnknown_084128D8 - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, _08148C00 @ =gUnknown_08412EB4 - ldr r1, _08148C04 @ =0x06003000 - bl LZ77UnCompVram - ldr r0, _08148C08 @ =gUnknown_08412818 - movs r1, 0 - movs r2, 0x60 - bl LoadPalette - ldr r0, _08148C0C @ =gUnknown_08416B54 - bl LoadCompressedObjectPic - ldr r0, _08148C10 @ =gUnknown_08413184 - movs r1, 0x80 - lsls r1, 1 - movs r2, 0x20 - bl LoadPalette - bl sub_8149248 - b _08148C46 - .align 2, 0 -_08148BE8: .4byte gUnknown_0841225C -_08148BEC: .4byte 0x06004000 -_08148BF0: .4byte gUnknown_084126DC -_08148BF4: .4byte 0x06007800 -_08148BF8: .4byte gUnknown_084121FC -_08148BFC: .4byte gUnknown_084128D8 -_08148C00: .4byte gUnknown_08412EB4 -_08148C04: .4byte 0x06003000 -_08148C08: .4byte gUnknown_08412818 -_08148C0C: .4byte gUnknown_08416B54 -_08148C10: .4byte gUnknown_08413184 -_08148C14: - ldr r0, _08148C58 @ =gUnknown_08413340 - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, _08148C5C @ =gUnknown_084139C8 - ldr r1, _08148C60 @ =0x06003000 - bl LZ77UnCompVram - ldr r0, _08148C64 @ =gUnknown_08413300 - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08148C68 @ =gUnknown_08416BDC - bl LoadCompressedObjectPic - ldr r0, _08148C6C @ =gUnknown_08413CCC - movs r1, 0x80 - lsls r1, 1 - movs r2, 0x20 - bl LoadPalette - bl sub_8149264 -_08148C46: - ldr r1, _08148C70 @ =gUnknown_0203935C - movs r0, 0 - strh r0, [r1] - ldr r1, _08148C74 @ =gReservedSpritePaletteCount - movs r0, 0x8 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08148C58: .4byte gUnknown_08413340 -_08148C5C: .4byte gUnknown_084139C8 -_08148C60: .4byte 0x06003000 -_08148C64: .4byte gUnknown_08413300 -_08148C68: .4byte gUnknown_08416BDC -_08148C6C: .4byte gUnknown_08413CCC -_08148C70: .4byte gUnknown_0203935C -_08148C74: .4byte gReservedSpritePaletteCount - thumb_func_end load_intro_part2_graphics - - thumb_func_start sub_8148C78 -sub_8148C78: @ 8148C78 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08148CA4 @ =REG_BG3CNT - ldr r2, _08148CA8 @ =0x00000603 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x2 - adds r2, 0xFF - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x2 - ldr r2, _08148CAC @ =0x00000f05 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xA - movs r2, 0xF2 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08148CA4: .4byte REG_BG3CNT -_08148CA8: .4byte 0x00000603 -_08148CAC: .4byte 0x00000f05 - thumb_func_end sub_8148C78 - - thumb_func_start sub_8148CB0 -sub_8148CB0: @ 8148CB0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08148CD4 @ =gUnknown_0841225C - ldr r1, _08148CD8 @ =0x06004000 - bl LZ77UnCompVram - ldr r0, _08148CDC @ =gUnknown_084126DC - ldr r1, _08148CE0 @ =0x06007800 - bl LZ77UnCompVram - cmp r4, 0x4 - bhi _08148CFC - lsls r0, r4, 2 - ldr r1, _08148CE4 @ =_08148CE8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08148CD4: .4byte gUnknown_0841225C -_08148CD8: .4byte 0x06004000 -_08148CDC: .4byte gUnknown_084126DC -_08148CE0: .4byte 0x06007800 -_08148CE4: .4byte _08148CE8 - .align 2, 0 -_08148CE8: - .4byte _08148CFC - .4byte _08148D58 - .4byte _08148DC4 - .4byte _08148DC4 - .4byte _08148E1C -_08148CFC: - ldr r0, _08148D34 @ =gUnknown_084121FC - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08148D38 @ =gUnknown_084128D8 - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, _08148D3C @ =gUnknown_08412EB4 - ldr r1, _08148D40 @ =0x06003000 - bl LZ77UnCompVram - ldr r0, _08148D44 @ =gUnknown_08412818 - movs r1, 0 - movs r2, 0x60 - bl LoadPalette - ldr r0, _08148D48 @ =gUnknown_08416B54 - bl LoadCompressedObjectPic - ldr r0, _08148D4C @ =gUnknown_084131C4 - ldr r1, _08148D50 @ =0x06010000 - bl LZ77UnCompVram - ldr r0, _08148D54 @ =gUnknown_08413184 - b _08148D8E - .align 2, 0 -_08148D34: .4byte gUnknown_084121FC -_08148D38: .4byte gUnknown_084128D8 -_08148D3C: .4byte gUnknown_08412EB4 -_08148D40: .4byte 0x06003000 -_08148D44: .4byte gUnknown_08412818 -_08148D48: .4byte gUnknown_08416B54 -_08148D4C: .4byte gUnknown_084131C4 -_08148D50: .4byte 0x06010000 -_08148D54: .4byte gUnknown_08413184 -_08148D58: - ldr r0, _08148DA0 @ =gUnknown_0841221C - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08148DA4 @ =gUnknown_084128D8 - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, _08148DA8 @ =gUnknown_08412EB4 - ldr r1, _08148DAC @ =0x06003000 - bl LZ77UnCompVram - ldr r0, _08148DB0 @ =gUnknown_08412878 - movs r1, 0 - movs r2, 0x60 - bl LoadPalette - ldr r0, _08148DB4 @ =gUnknown_08416B54 - bl LoadCompressedObjectPic - ldr r0, _08148DB8 @ =gUnknown_084131C4 - ldr r1, _08148DBC @ =0x06010000 - bl LZ77UnCompVram - ldr r0, _08148DC0 @ =gUnknown_084131A4 -_08148D8E: - movs r1, 0x80 - lsls r1, 1 - movs r2, 0x20 - bl LoadPalette - bl sub_8149248 - b _08148E58 - .align 2, 0 -_08148DA0: .4byte gUnknown_0841221C -_08148DA4: .4byte gUnknown_084128D8 -_08148DA8: .4byte gUnknown_08412EB4 -_08148DAC: .4byte 0x06003000 -_08148DB0: .4byte gUnknown_08412878 -_08148DB4: .4byte gUnknown_08416B54 -_08148DB8: .4byte gUnknown_084131C4 -_08148DBC: .4byte 0x06010000 -_08148DC0: .4byte gUnknown_084131A4 -_08148DC4: - ldr r0, _08148E04 @ =gUnknown_0841221C - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08148E08 @ =gUnknown_08413340 - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, _08148E0C @ =gUnknown_084139C8 - ldr r1, _08148E10 @ =0x06003000 - bl LZ77UnCompVram - ldr r4, _08148E14 @ =gUnknown_08413320 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08148E18 @ =gUnknown_08416BDC - bl LoadCompressedObjectPic - movs r1, 0x80 - lsls r1, 1 - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - bl sub_8149264 - b _08148E58 - .align 2, 0 -_08148E04: .4byte gUnknown_0841221C -_08148E08: .4byte gUnknown_08413340 -_08148E0C: .4byte gUnknown_084139C8 -_08148E10: .4byte 0x06003000 -_08148E14: .4byte gUnknown_08413320 -_08148E18: .4byte gUnknown_08416BDC -_08148E1C: - ldr r0, _08148E6C @ =gUnknown_0841223C - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08148E70 @ =gUnknown_08413E78 - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, _08148E74 @ =gUnknown_08414084 - ldr r1, _08148E78 @ =0x06003000 - bl LZ77UnCompVram - ldr r0, _08148E7C @ =gUnknown_08413E38 - movs r1, 0 - movs r2, 0x40 - bl LoadPalette - ldr r0, _08148E80 @ =gUnknown_08416C70 - bl LoadCompressedObjectPic - ldr r0, _08148E84 @ =gUnknown_08414064 - movs r1, 0x80 - lsls r1, 1 - movs r2, 0x20 - bl LoadPalette - bl sub_8149280 -_08148E58: - ldr r1, _08148E88 @ =gReservedSpritePaletteCount - movs r0, 0x8 - strb r0, [r1] - ldr r1, _08148E8C @ =gUnknown_0203935C - movs r0, 0 - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08148E6C: .4byte gUnknown_0841223C -_08148E70: .4byte gUnknown_08413E78 -_08148E74: .4byte gUnknown_08414084 -_08148E78: .4byte 0x06003000 -_08148E7C: .4byte gUnknown_08413E38 -_08148E80: .4byte gUnknown_08416C70 -_08148E84: .4byte gUnknown_08414064 -_08148E88: .4byte gReservedSpritePaletteCount -_08148E8C: .4byte gUnknown_0203935C - thumb_func_end sub_8148CB0 - - thumb_func_start sub_8148E90 -sub_8148E90: @ 8148E90 - ldr r1, _08148EB4 @ =REG_BG3CNT - ldr r2, _08148EB8 @ =0x00000603 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x2 - adds r2, 0xFF - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x2 - ldr r2, _08148EBC @ =0x00000f05 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xA - movs r2, 0xFA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_08148EB4: .4byte REG_BG3CNT -_08148EB8: .4byte 0x00000603 -_08148EBC: .4byte 0x00000f05 - thumb_func_end sub_8148E90 - - thumb_func_start sub_8148EC0 -sub_8148EC0: @ 8148EC0 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - mov r8, r2 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 16 - lsrs r6, 16 - mov r0, r8 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r3, 16 - lsrs r3, 16 - ldr r1, _08148F34 @ =sub_8148F3C - mov r9, r1 - mov r0, r9 - movs r1, 0 - str r3, [sp] - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _08148F38 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - strh r5, [r0, 0x8] - strh r6, [r0, 0xA] - strh r2, [r0, 0xC] - strh r2, [r0, 0xE] - mov r1, r8 - strh r1, [r0, 0x10] - strh r2, [r0, 0x12] - strh r2, [r0, 0x14] - ldr r3, [sp] - strh r3, [r0, 0x16] - movs r1, 0x8 - strh r1, [r0, 0x18] - strh r2, [r0, 0x1A] - adds r0, r4, 0 - bl _call_via_r9 - adds r0, r4, 0 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08148F34: .4byte sub_8148F3C -_08148F38: .4byte gTasks - thumb_func_end sub_8148EC0 - - thumb_func_start sub_8148F3C -sub_8148F3C: @ 8148F3C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08148FB4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r1 - ldrh r0, [r3, 0xA] - lsls r4, r0, 16 - adds r6, r1, 0 - cmp r4, 0 - beq _08148F7C - movs r1, 0xC - ldrsh r0, [r3, r1] - lsls r0, 16 - ldrh r1, [r3, 0xE] - adds r2, r0, r1 - lsrs r0, r4, 12 - subs r2, r0 - asrs r1, r2, 16 - strh r1, [r3, 0xC] - strh r2, [r3, 0xE] - ldr r0, _08148FB8 @ =REG_BG1HOFS - strh r1, [r0] - ldr r2, _08148FBC @ =REG_BG1VOFS - ldr r1, _08148FC0 @ =gUnknown_02039358 - ldr r0, _08148FC4 @ =gUnknown_0203935A - ldrh r0, [r0] - ldrh r1, [r1] - adds r0, r1 - strh r0, [r2] -_08148F7C: - ldrh r0, [r3, 0x10] - lsls r4, r0, 16 - cmp r4, 0 - beq _08148FD8 - movs r1, 0x12 - ldrsh r0, [r3, r1] - lsls r0, 16 - ldrh r1, [r3, 0x14] - adds r2, r0, r1 - lsrs r0, r4, 12 - subs r2, r0 - asrs r1, r2, 16 - strh r1, [r3, 0x12] - strh r2, [r3, 0x14] - ldr r0, _08148FC8 @ =REG_BG2HOFS - strh r1, [r0] - movs r1, 0x8 - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _08148FD0 - ldr r2, _08148FCC @ =REG_BG2VOFS - ldr r1, _08148FC0 @ =gUnknown_02039358 - ldr r0, _08148FC4 @ =gUnknown_0203935A - ldrh r0, [r0] - ldrh r1, [r1] - adds r0, r1 - strh r0, [r2] - b _08148FD8 - .align 2, 0 -_08148FB4: .4byte gTasks -_08148FB8: .4byte REG_BG1HOFS -_08148FBC: .4byte REG_BG1VOFS -_08148FC0: .4byte gUnknown_02039358 -_08148FC4: .4byte gUnknown_0203935A -_08148FC8: .4byte REG_BG2HOFS -_08148FCC: .4byte REG_BG2VOFS -_08148FD0: - ldr r0, _08149010 @ =REG_BG2VOFS - ldr r1, _08149014 @ =gUnknown_02039358 - ldrh r1, [r1] - strh r1, [r0] -_08148FD8: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r6 - ldrh r0, [r3, 0x16] - lsls r4, r0, 16 - cmp r4, 0 - beq _08149008 - movs r1, 0x18 - ldrsh r0, [r3, r1] - lsls r0, 16 - ldrh r1, [r3, 0x1A] - adds r2, r0, r1 - lsrs r0, r4, 12 - subs r2, r0 - asrs r1, r2, 16 - strh r1, [r3, 0x18] - strh r2, [r3, 0x1A] - ldr r0, _08149018 @ =REG_BG3HOFS - strh r1, [r0] - ldr r1, _0814901C @ =REG_BG3VOFS - ldr r0, _08149014 @ =gUnknown_02039358 - ldrh r0, [r0] - strh r0, [r1] -_08149008: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08149010: .4byte REG_BG2VOFS -_08149014: .4byte gUnknown_02039358 -_08149018: .4byte REG_BG3HOFS -_0814901C: .4byte REG_BG3VOFS - thumb_func_end sub_8148F3C - - thumb_func_start sub_8149020 -sub_8149020: @ 8149020 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08149100 - cmp r0, 0x1 - ble _08149034 - cmp r0, 0x2 - beq _08149098 -_08149034: - ldr r0, _08149060 @ =gMain - ldr r2, [r0, 0x20] - movs r0, 0x3 - ands r0, r2 - cmp r0, 0 - bne _08149100 - ldr r0, _08149064 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08149100 - movs r0, 0x4 - ands r2, r0 - cmp r2, 0 - beq _0814906C - ldr r2, _08149068 @ =gPlttBufferUnfaded - ldrh r1, [r2, 0x12] - mov r0, sp - strh r1, [r0] - ldrh r1, [r2, 0x14] - b _08149076 - .align 2, 0 -_08149060: .4byte gMain -_08149064: .4byte gPaletteFade -_08149068: .4byte gPlttBufferUnfaded -_0814906C: - ldr r2, _08149094 @ =gPlttBufferUnfaded - ldrh r1, [r2, 0x14] - mov r0, sp - strh r1, [r0] - ldrh r1, [r2, 0x12] -_08149076: - adds r0, 0x2 - strh r1, [r0] - adds r4, r0, 0 - mov r0, sp - movs r1, 0x9 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - movs r1, 0xA - movs r2, 0x2 - bl LoadPalette - b _08149100 - .align 2, 0 -_08149094: .4byte gPlttBufferUnfaded -_08149098: - ldr r0, _081490C8 @ =gMain - ldr r2, [r0, 0x20] - movs r0, 0x3 - ands r0, r2 - cmp r0, 0 - bne _08149100 - ldr r0, _081490CC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08149100 - movs r0, 0x4 - ands r2, r0 - cmp r2, 0 - beq _081490D8 - mov r1, sp - ldr r2, _081490D0 @ =0x00003d27 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _081490D4 @ =0x00000295 - b _081490E6 - .align 2, 0 -_081490C8: .4byte gMain -_081490CC: .4byte gPaletteFade -_081490D0: .4byte 0x00003d27 -_081490D4: .4byte 0x00000295 -_081490D8: - mov r1, sp - movs r2, 0xC7 - lsls r2, 2 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _08149108 @ =0x00003d27 -_081490E6: - adds r0, r2, 0 - strh r0, [r1] - adds r4, r1, 0 - mov r0, sp - movs r1, 0xC - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - movs r1, 0xD - movs r2, 0x2 - bl LoadPalette -_08149100: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08149108: .4byte 0x00003d27 - thumb_func_end sub_8149020 - - thumb_func_start sub_814910C -sub_814910C: @ 814910C - push {lr} - adds r2, r0, 0 - ldr r0, _08149124 @ =gUnknown_0203935C - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08149128 - adds r0, r2, 0 - bl DestroySprite - b _0814916C - .align 2, 0 -_08149124: .4byte gUnknown_0203935C -_08149128: - movs r1, 0x20 - ldrsh r0, [r2, r1] - lsls r0, 16 - ldrh r1, [r2, 0x32] - orrs r0, r1 - ldrh r1, [r2, 0x30] - adds r0, r1 - asrs r1, r0, 16 - strh r1, [r2, 0x20] - strh r0, [r2, 0x32] - cmp r1, 0xFF - ble _08149144 - ldr r0, _08149158 @ =0x0000ffe0 - strh r0, [r2, 0x20] -_08149144: - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _08149164 - ldr r1, _0814915C @ =gUnknown_02039358 - ldr r0, _08149160 @ =gUnknown_0203935A - ldrh r0, [r0] - ldrh r1, [r1] - adds r0, r1 - b _08149168 - .align 2, 0 -_08149158: .4byte 0x0000ffe0 -_0814915C: .4byte gUnknown_02039358 -_08149160: .4byte gUnknown_0203935A -_08149164: - ldr r0, _08149170 @ =gUnknown_02039358 - ldrh r0, [r0] -_08149168: - negs r0, r0 - strh r0, [r2, 0x26] -_0814916C: - pop {r0} - bx r0 - .align 2, 0 -_08149170: .4byte gUnknown_02039358 - thumb_func_end sub_814910C - - thumb_func_start sub_8149174 -sub_8149174: @ 8149174 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - str r1, [sp, 0x4] - str r2, [sp, 0x8] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - movs r7, 0 - cmp r7, r8 - bcs _0814922A - ldr r0, _0814923C @ =gSprites - mov r10, r0 - movs r2, 0x3F - mov r9, r2 -_0814919E: - lsls r6, r7, 3 - ldr r0, [sp, 0x4] - adds r6, r0 - ldrb r1, [r6, 0x1] - ldrb r2, [r6, 0x2] - ldrb r3, [r6, 0x3] - ldr r0, _08149240 @ =gSpriteTemplate_8416B3C - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r5, r0, 4 - adds r5, r0 - lsls r5, 2 - mov r2, r10 - adds r4, r5, r2 - ldrb r2, [r6] - lsls r1, r2, 26 - lsrs r1, 30 - lsrs r2, 6 - adds r0, r4, 0 - movs r3, 0 - bl CalcCenterToCornerVec - ldrb r3, [r4, 0x5] - movs r0, 0xC - orrs r3, r0 - strb r3, [r4, 0x5] - ldrb r1, [r6] - lsls r1, 26 - lsrs r1, 30 - lsls r1, 6 - ldrb r2, [r4, 0x1] - mov r0, r9 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r1, [r6] - lsrs r1, 6 - lsls r1, 6 - ldrb r2, [r4, 0x3] - mov r0, r9 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x3] - movs r0, 0xF - ands r3, r0 - strb r3, [r4, 0x5] - ldr r0, _08149244 @ =gSprites + 0x8 - adds r5, r0 - ldr r2, [sp, 0x8] - str r2, [r5] - ldrb r1, [r6] - lsls r1, 28 - lsrs r1, 28 - adds r0, r4, 0 - bl StartSpriteAnim - movs r1, 0 - mov r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x2E] - ldrh r0, [r6, 0x4] - strh r0, [r4, 0x30] - strh r1, [r4, 0x32] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, r8 - bcc _0814919E -_0814922A: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814923C: .4byte gSprites -_08149240: .4byte gSpriteTemplate_8416B3C -_08149244: .4byte gSprites + 0x8 - thumb_func_end sub_8149174 - - thumb_func_start sub_8149248 -sub_8149248: @ 8149248 - push {lr} - ldr r1, _0814925C @ =gUnknown_08416B94 - ldr r2, _08149260 @ =gSpriteAnimTable_8416B84 - movs r0, 0 - movs r3, 0x9 - bl sub_8149174 - pop {r0} - bx r0 - .align 2, 0 -_0814925C: .4byte gUnknown_08416B94 -_08149260: .4byte gSpriteAnimTable_8416B84 - thumb_func_end sub_8149248 - - thumb_func_start sub_8149264 -sub_8149264: @ 8149264 - push {lr} - ldr r1, _08149278 @ =gUnknown_08416C10 - ldr r2, _0814927C @ =gSpriteAnimTable_8416C04 - movs r0, 0x1 - movs r3, 0xC - bl sub_8149174 - pop {r0} - bx r0 - .align 2, 0 -_08149278: .4byte gUnknown_08416C10 -_0814927C: .4byte gSpriteAnimTable_8416C04 - thumb_func_end sub_8149264 - - thumb_func_start sub_8149280 -sub_8149280: @ 8149280 - push {lr} - ldr r1, _08149294 @ =gUnknown_08416C8C - ldr r2, _08149298 @ =gSpriteAnimTable_8416C88 - movs r0, 0x1 - movs r3, 0x6 - bl sub_8149174 - pop {r0} - bx r0 - .align 2, 0 -_08149294: .4byte gUnknown_08416C8C -_08149298: .4byte gSpriteAnimTable_8416C88 - thumb_func_end sub_8149280 - - thumb_func_start nullsub_82 -nullsub_82: @ 814929C - bx lr - thumb_func_end nullsub_82 - - thumb_func_start sub_81492A0 -sub_81492A0: @ 81492A0 - push {r4,lr} - ldr r4, _0814930C @ =gSprites - movs r1, 0x2E - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - adds r1, 0x3E - ldrb r1, [r1] - movs r2, 0x3E - adds r2, r0 - mov r12, r2 - movs r2, 0x4 - ands r2, r1 - mov r1, r12 - ldrb r3, [r1] - movs r1, 0x5 - negs r1, r1 - ands r1, r3 - orrs r1, r2 - mov r2, r12 - strb r1, [r2] - movs r1, 0x2E - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x20] - strh r1, [r0, 0x20] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x24] - strh r1, [r0, 0x24] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x26] - strh r1, [r0, 0x26] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814930C: .4byte gSprites - thumb_func_end sub_81492A0 - - thumb_func_start sub_8149310 -sub_8149310: @ 8149310 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - ldr r0, _0814935C @ =gSpriteTemplate_8416CDC - lsls r5, 16 - asrs r5, 16 - lsls r4, 16 - asrs r4, 16 - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0 - bl CreateSprite - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldr r0, _08149360 @ =gSpriteTemplate_8416D2C - adds r4, 0x8 - lsls r4, 16 - asrs r4, 16 - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08149364 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - strh r6, [r1, 0x2E] - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0814935C: .4byte gSpriteTemplate_8416CDC -_08149360: .4byte gSpriteTemplate_8416D2C -_08149364: .4byte gSprites - thumb_func_end sub_8149310 - - thumb_func_start sub_8149368 -sub_8149368: @ 8149368 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - ldr r0, _081493B4 @ =gSpriteTemplate_8416CF4 - lsls r5, 16 - asrs r5, 16 - lsls r4, 16 - asrs r4, 16 - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0 - bl CreateSprite - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldr r0, _081493B8 @ =gSpriteTemplate_8416D44 - adds r4, 0x8 - lsls r4, 16 - asrs r4, 16 - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _081493BC @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - strh r6, [r1, 0x2E] - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_081493B4: .4byte gSpriteTemplate_8416CF4 -_081493B8: .4byte gSpriteTemplate_8416D44 -_081493BC: .4byte gSprites - thumb_func_end sub_8149368 - - thumb_func_start nullsub_83 -nullsub_83: @ 81493C0 - bx lr - thumb_func_end nullsub_83 - - thumb_func_start sub_81493C4 -sub_81493C4: @ 81493C4 - push {r4,lr} - ldr r4, _08149420 @ =gSprites - movs r1, 0x2E - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - adds r1, 0x3E - ldrb r1, [r1] - movs r2, 0x3E - adds r2, r0 - mov r12, r2 - movs r2, 0x4 - ands r2, r1 - mov r1, r12 - ldrb r3, [r1] - movs r1, 0x5 - negs r1, r1 - ands r1, r3 - orrs r1, r2 - mov r2, r12 - strb r1, [r2] - movs r1, 0x2E - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x22] - strh r1, [r0, 0x22] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x24] - strh r1, [r0, 0x24] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x26] - strh r1, [r0, 0x26] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08149420: .4byte gSprites - thumb_func_end sub_81493C4 - - thumb_func_start sub_8149424 -sub_8149424: @ 8149424 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r2, r0, 0 - adds r5, r1, 0 - ldr r0, _08149490 @ =gSpriteTemplate_8416D7C - mov r8, r0 - lsls r2, 16 - asrs r4, r2, 16 - ldr r0, _08149494 @ =0xffe00000 - adds r2, r0 - asrs r2, 16 - lsls r5, 16 - asrs r5, 16 - mov r0, r8 - adds r1, r2, 0 - adds r2, r5, 0 - movs r3, 0x2 - bl CreateSprite - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - adds r4, 0x20 - lsls r4, 16 - asrs r4, 16 - mov r0, r8 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08149498 @ =gSprites - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r0, r4, r5 - strh r6, [r0, 0x2E] - movs r1, 0x1 - bl StartSpriteAnim - adds r5, 0x1C - adds r4, r5 - ldr r0, _0814949C @ =sub_81493C4 - str r0, [r4] - adds r0, r6, 0 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08149490: .4byte gSpriteTemplate_8416D7C -_08149494: .4byte 0xffe00000 -_08149498: .4byte gSprites -_0814949C: .4byte sub_81493C4 - thumb_func_end sub_8149424 - - thumb_func_start sapphire_sub_81494A0 -sapphire_sub_81494A0: @ 81494A0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r2, r0, 0 - adds r5, r1, 0 - ldr r0, _0814950C @ =gSpriteTemplate_8416D94 - mov r8, r0 - lsls r2, 16 - asrs r4, r2, 16 - ldr r0, _08149510 @ =0xffe00000 - adds r2, r0 - asrs r2, 16 - lsls r5, 16 - asrs r5, 16 - mov r0, r8 - adds r1, r2, 0 - adds r2, r5, 0 - movs r3, 0x2 - bl CreateSprite - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - adds r4, 0x20 - lsls r4, 16 - asrs r4, 16 - mov r0, r8 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08149514 @ =gSprites - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r0, r4, r5 - strh r6, [r0, 0x2E] - movs r1, 0x1 - bl StartSpriteAnim - adds r5, 0x1C - adds r4, r5 - ldr r0, _08149518 @ =sub_81493C4 - str r0, [r4] - adds r0, r6, 0 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0814950C: .4byte gSpriteTemplate_8416D94 -_08149510: .4byte 0xffe00000 -_08149514: .4byte gSprites -_08149518: .4byte sub_81493C4 - thumb_func_end sapphire_sub_81494A0 - thumb_func_start nullsub_84 nullsub_84: @ 814951C bx lr @@ -2983,385 +1826,4 @@ _0814A2B0: .4byte gSprites _0814A2B4: .4byte gTasks thumb_func_end sub_814A208 - thumb_func_start sub_814A2B8 -sub_814A2B8: @ 814A2B8 - ldr r2, _0814A2CC @ =gUnknown_08417068 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - lsls r1, 1 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - bx lr - .align 2, 0 -_0814A2CC: .4byte gUnknown_08417068 - thumb_func_end sub_814A2B8 - - thumb_func_start sub_814A2D0 -sub_814A2D0: @ 814A2D0 - lsls r0, 16 - lsls r1, 16 - lsrs r1, 16 - ldr r2, _0814A2E8 @ =gBardMusicTable - lsrs r0, 14 - adds r0, r2 - ldr r0, [r0] - lsls r2, r1, 1 - adds r2, r1 - lsls r2, 4 - adds r0, r2 - bx lr - .align 2, 0 -_0814A2E8: .4byte gBardMusicTable - thumb_func_end sub_814A2D0 - - thumb_func_start sub_814A2EC -sub_814A2EC: @ 814A2EC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - lsls r2, 16 - lsrs r2, 16 - mov r9, r2 - ldr r4, _0814A370 @ =gUnknown_084170F4 - adds r2, r1, 0 - adds r3, r6, 0 - adds r3, 0x18 - movs r7, 0x5 -_0814A306: - ldrb r0, [r2] - strh r0, [r3] - ldrb r0, [r2] - cmp r0, 0xFF - beq _0814A328 - movs r1, 0x1 - ldrsb r1, [r2, r1] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - adds r1, r0 - strh r1, [r3, 0x2] - ldrh r0, [r2, 0x4] - strh r0, [r3, 0x6] - ldrh r0, [r6, 0x4] - adds r0, r1 - strh r0, [r6, 0x4] -_0814A328: - adds r2, 0x8 - adds r3, 0x8 - subs r7, 0x1 - cmp r7, 0 - bge _0814A306 - movs r7, 0x6 - movs r5, 0 - movs r0, 0x1E - mov r8, r0 - adds r4, r6, 0 -_0814A33C: - mov r0, r8 - add r0, r9 - adds r1, r5, 0 - bl sub_814A2B8 - adds r1, r0, 0 - strh r1, [r4, 0x1C] - adds r4, 0x8 - adds r5, 0x1 - cmp r5, r7 - blt _0814A33C - ldrb r1, [r6] - adds r1, 0x1 - movs r2, 0 - strb r1, [r6] - strb r2, [r6, 0x1] - strb r2, [r6, 0x2] - strb r2, [r6, 0x3] - strh r2, [r6, 0xA] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0814A370: .4byte gUnknown_084170F4 - thumb_func_end sub_814A2EC - - thumb_func_start SetUpFieldMove_Teleport -SetUpFieldMove_Teleport: @ 814A374 - push {lr} - ldr r0, _0814A38C @ =gMapHeader - ldrb r0, [r0, 0x17] - bl is_light_level_1_2_3_or_6 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0814A390 - movs r0, 0 - b _0814A39E - .align 2, 0 -_0814A38C: .4byte gMapHeader -_0814A390: - ldr r1, _0814A3A4 @ =gUnknown_0300485C - ldr r0, _0814A3A8 @ =sub_808AB90 - str r0, [r1] - ldr r1, _0814A3AC @ =gUnknown_03005CE4 - ldr r0, _0814A3B0 @ =hm_teleport_run_dp02scr - str r0, [r1] - movs r0, 0x1 -_0814A39E: - pop {r1} - bx r1 - .align 2, 0 -_0814A3A4: .4byte gUnknown_0300485C -_0814A3A8: .4byte sub_808AB90 -_0814A3AC: .4byte gUnknown_03005CE4 -_0814A3B0: .4byte hm_teleport_run_dp02scr - thumb_func_end SetUpFieldMove_Teleport - - thumb_func_start hm_teleport_run_dp02scr -hm_teleport_run_dp02scr: @ 814A3B4 - push {lr} - bl new_game - movs r0, 0x3F - bl FieldEffectStart - ldr r0, _0814A3CC @ =gUnknown_0202FF84 - ldr r1, _0814A3D0 @ =gUnknown_03005CE0 - ldrb r1, [r1] - str r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_0814A3CC: .4byte gUnknown_0202FF84 -_0814A3D0: .4byte gUnknown_03005CE0 - thumb_func_end hm_teleport_run_dp02scr - - thumb_func_start FldEff_UseTeleport -FldEff_UseTeleport: @ 814A3D4 - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0814A3FC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _0814A400 @ =sub_814A404 - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - movs r0, 0x1 - bl SetPlayerAvatarTransitionFlags - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0814A3FC: .4byte gTasks -_0814A400: .4byte sub_814A404 - thumb_func_end FldEff_UseTeleport - - thumb_func_start sub_814A404 -sub_814A404: @ 814A404 - push {lr} - movs r0, 0x3F - bl FieldEffectActiveListRemove - bl sub_8087BA8 - pop {r0} - bx r0 - thumb_func_end sub_814A404 - - thumb_func_start unref_sub_814A414 -unref_sub_814A414: @ 814A414 - push {lr} - sub sp, 0x8 - bl MenuZeroFillScreen - movs r0, 0 - movs r1, 0 - movs r2, 0x10 - movs r3, 0x12 - bl MenuDrawTextWindow - ldr r3, _0814A458 @ =gUnknown_0842C29C - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0x8 - bl PrintMenuItems - movs r0, 0 - str r0, [sp] - movs r0, 0xF - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x8 - bl InitMenu - ldr r1, _0814A45C @ =gCallback_03004AE8 - ldr r0, _0814A460 @ =sub_814A464 - str r0, [r1] - movs r0, 0 - add sp, 0x8 - pop {r1} - bx r1 - .align 2, 0 -_0814A458: .4byte gUnknown_0842C29C -_0814A45C: .4byte gCallback_03004AE8 -_0814A460: .4byte sub_814A464 - thumb_func_end unref_sub_814A414 - - thumb_func_start sub_814A464 -sub_814A464: @ 814A464 - push {lr} - bl ProcessMenuInput - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - lsls r0, r2, 24 - asrs r1, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - bne _0814A480 - movs r0, 0 - b _0814A4B2 -_0814A480: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0814A4AC - ldr r0, _0814A4A0 @ =gUnknown_02024D1E - strb r2, [r0] - ldr r2, _0814A4A4 @ =gCallback_03004AE8 - ldr r0, _0814A4A8 @ =gUnknown_0842C29C - lsls r1, 3 - adds r0, 0x4 - adds r1, r0 - ldr r0, [r1] - str r0, [r2] - movs r0, 0 - b _0814A4B2 - .align 2, 0 -_0814A4A0: .4byte gUnknown_02024D1E -_0814A4A4: .4byte gCallback_03004AE8 -_0814A4A8: .4byte gUnknown_0842C29C -_0814A4AC: - bl sub_8071C20 - movs r0, 0x1 -_0814A4B2: - pop {r1} - bx r1 - thumb_func_end sub_814A464 - - thumb_func_start sub_814A4B8 -sub_814A4B8: @ 814A4B8 - push {r4,lr} - ldr r2, _0814A4FC @ =gSaveBlock2 - ldr r1, _0814A500 @ =0x00000556 - adds r0, r2, r1 - movs r1, 0x3 - strb r1, [r0] - ldr r3, _0814A504 @ =0x00000557 - adds r0, r2, r3 - strb r1, [r0] - ldr r3, _0814A508 @ =gUnknown_02024D1E - ldrb r0, [r3] - adds r0, 0x1 - ldr r4, _0814A50C @ =0x0000055c - adds r1, r2, r4 - strh r0, [r1] - ldrb r0, [r3] - adds r0, 0x1 - ldr r3, _0814A510 @ =0x0000055e - adds r1, r2, r3 - strh r0, [r1] - subs r4, 0x4 - adds r0, r2, r4 - movs r1, 0x1 - strh r1, [r0] - ldr r0, _0814A514 @ =0x0000055a - adds r2, r0 - strh r1, [r2] - bl sub_8071C20 - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0814A4FC: .4byte gSaveBlock2 -_0814A500: .4byte 0x00000556 -_0814A504: .4byte 0x00000557 -_0814A508: .4byte gUnknown_02024D1E -_0814A50C: .4byte 0x0000055c -_0814A510: .4byte 0x0000055e -_0814A514: .4byte 0x0000055a - thumb_func_end sub_814A4B8 - - thumb_func_start sub_814A518 -sub_814A518: @ 814A518 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - bl StripExtCtrlCodes - adds r0, r4, 0 - bl StringLength - lsls r0, 24 - lsrs r1, r0, 24 - cmp r5, 0xFC - bne _0814A556 - cmp r1, 0x5 - bhi _0814A55A - movs r3, 0xFC - movs r2, 0x7 -_0814A53A: - adds r0, r4, r1 - strb r3, [r0] - strb r2, [r0, 0x1] - adds r0, r1, 0x2 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x5 - bls _0814A53A - b _0814A55A -_0814A54C: - adds r0, r4, r1 - strb r5, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 -_0814A556: - cmp r1, 0x5 - bls _0814A54C -_0814A55A: - adds r1, r4, r1 - movs r0, 0xFF - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_814A518 - - thumb_func_start sub_814A568 -sub_814A568: @ 814A568 - push {r4,lr} - adds r4, r0, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5 - bhi _0814A582 - adds r0, r4, 0 - movs r1, 0x1 - bl ConvertInternationalString - b _0814A588 -_0814A582: - adds r0, r4, 0 - bl StripExtCtrlCodes -_0814A588: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_814A568 - .align 2, 0 @ Don't pad with nop. diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s index 9d009f567..6ecd355c3 100644 --- a/asm/evolution_scene.s +++ b/asm/evolution_scene.s @@ -201,7 +201,7 @@ EvolutionScene: @ 8111984 ldr r0, _08111C3C @ =gUnknown_03004210 adds r1, r4, 0 bl InitWindowFromConfig - ldr r1, _08111C40 @ =gUnknown_0300428C + ldr r1, _08111C40 @ =gBattleTerrain movs r0, 0x9 strb r0, [r1] bl sub_800D6D4 @@ -435,7 +435,7 @@ _08111C30: .4byte gUnknown_03004280 _08111C34: .4byte gUnknown_030041B0 _08111C38: .4byte gUnknown_030041B8 _08111C3C: .4byte gUnknown_03004210 -_08111C40: .4byte gUnknown_0300428C +_08111C40: .4byte gBattleTerrain _08111C44: .4byte gReservedSpritePaletteCount _08111C48: .4byte gStringVar1 _08111C4C: .4byte gStringVar2 @@ -540,7 +540,7 @@ CB2_EvolutionSceneLoadGraphics: @ 8111C90 ldr r0, _08111E4C @ =gUnknown_03004210 adds r1, r4, 0 bl InitWindowFromConfig - ldr r1, _08111E50 @ =gUnknown_0300428C + ldr r1, _08111E50 @ =gBattleTerrain movs r0, 0x9 strb r0, [r1] bl sub_800D6D4 @@ -647,7 +647,7 @@ _08111E40: .4byte gUnknown_03004280 _08111E44: .4byte gUnknown_030041B0 _08111E48: .4byte gUnknown_030041B8 _08111E4C: .4byte gUnknown_03004210 -_08111E50: .4byte gUnknown_0300428C +_08111E50: .4byte gBattleTerrain _08111E54: .4byte gReservedSpritePaletteCount _08111E58: .4byte gMonFrontPicTable _08111E5C: .4byte gMonFrontPicCoords @@ -1747,7 +1747,7 @@ _081127BE: movs r1, 0x3 bl sub_8090D90 movs r0, 0xE - bl sav12_xor_increment + bl IncrementGameStat b _08112FD0 .align 2, 0 _08112834: .4byte gPaletteFade @@ -3055,7 +3055,7 @@ _08113316: movs r1, 0x3 bl sub_8090D90 movs r0, 0xE - bl sav12_xor_increment + bl IncrementGameStat b _08113B3A .align 2, 0 _08113390: .4byte gPaletteFade diff --git a/asm/rom_8065394.s b/asm/field_control_avatar.s index fd88d6ece..e2fd1b54f 100644 --- a/asm/rom_8065394.s +++ b/asm/field_control_avatar.s @@ -50,7 +50,7 @@ process_overworld_input: @ 8067F18 bl cur_mapdata_block_role_at_player_pos lsls r0, 24 lsrs r0, 24 - bl sub_8056FFC + bl MetatileBehavior_IsMoveTile lsls r0, 24 lsrs r7, r0, 24 cmp r6, 0x2 @@ -222,7 +222,7 @@ _08068076: cmp r0, 0 beq _08068098 movs r0, 0x5 - bl sav12_xor_increment + bl IncrementGameStat mov r0, sp adds r1, r4, 0 adds r2, r6, 0 @@ -829,7 +829,7 @@ _08068524: _08068538: .4byte gUnknown_081A0009 _0806853C: adds r0, r5, 0 - bl is_tile_x8B + bl MetatileBehavior_IsClosedSootpolisGymDoor lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -851,7 +851,7 @@ _08068554: _08068568: .4byte gUnknown_081A4363 _0806856C: adds r0, r5, 0 - bl is_tile_x87 + bl MetatileBehavior_IsPokeblockFeeder lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -862,7 +862,7 @@ _0806856C: _08068580: .4byte gUnknown_081C346A _08068584: adds r0, r5, 0 - bl is_tile_x8C + bl MetatileBehavior_IsTrickHousePuzzleDoor lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -873,7 +873,7 @@ _08068584: _08068598: .4byte gUnknown_081616E1 _0806859C: adds r0, r5, 0 - bl is_tile_x85 + bl MetatileBehavior_IsRegionMap lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -895,7 +895,7 @@ _080685B4: _080685C8: .4byte Event_RunningShoesManual _080685CC: adds r0, r5, 0 - bl sub_8057930 + bl MetatileBehavior_IsPictureBookShelf lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -906,7 +906,7 @@ _080685CC: _080685E0: .4byte PictureBookShelfScript _080685E4: adds r0, r5, 0 - bl sub_8057944 + bl MetatileBehavior_IsBookShelf lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -917,7 +917,7 @@ _080685E4: _080685F8: .4byte BookshelfScript _080685FC: adds r0, r5, 0 - bl sub_8057958 + bl MetatileBehavior_IsPokeCenterBookShelf lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -928,7 +928,7 @@ _080685FC: _08068610: .4byte PokemonCenterBookshelfScript _08068614: adds r0, r5, 0 - bl sub_805796C + bl MetatileBehavior_IsVase lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -939,7 +939,7 @@ _08068614: _08068628: .4byte VaseScript _0806862C: adds r0, r5, 0 - bl sub_8057980 + bl MetatileBehavior_IsTrashCan lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -950,7 +950,7 @@ _0806862C: _08068640: .4byte TrashCanScript _08068644: adds r0, r5, 0 - bl sub_8057994 + bl MetatileBehavior_IsShopShelf lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -961,7 +961,7 @@ _08068644: _08068658: .4byte ShopShelfScript _0806865C: adds r0, r5, 0 - bl sub_80579A8 + bl MetatileBehavior_IsBlueprint lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -983,7 +983,7 @@ _08068674: cmp r4, r0 bne _080686EC adds r0, r5, 0 - bl sub_8057238 + bl MetatileBehavior_IsSecretBasePC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1234,7 +1234,7 @@ sub_8068870: @ 8068870 push {lr} lsls r0, 24 lsrs r0, 24 - bl sub_8057818 + bl MetatileBehavior_IsCrackedFloorHole lsls r0, 24 cmp r0, 0 bne _08068884 @@ -1271,7 +1271,7 @@ _080688B4: cmp r0, 0 beq _080688CC movs r0, 0xD - bl sav12_xor_increment + bl IncrementGameStat ldr r0, _080688C8 @ =Event_EggHatch b _080688E8 .align 2, 0 @@ -1543,7 +1543,7 @@ sub_8068A64: @ 8068A64 _08068ABC: .4byte gMapHeader _08068AC0: adds r0, r4, 0 - bl sub_8057798 + bl MetatileBehavior_IsLavaridgeB1FWarp lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1553,7 +1553,7 @@ _08068AC0: b _08068B2A _08068AD6: adds r0, r4, 0 - bl is_role_x68 + bl MetatileBehavior_IsLavaridge1FWarp lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1573,7 +1573,7 @@ _08068AEC: b _08068B2A _08068B02: adds r0, r4, 0 - bl sub_8057804 + bl MetatileBehavior_IsMtPyreHole lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1602,7 +1602,7 @@ sub_8068B30: @ 8068B30 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl is_tile_x69_2_warp_door + bl MetatileBehavior_IsWarpDoor lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1620,19 +1620,19 @@ sub_8068B30: @ 8068B30 cmp r0, 0x1 beq _08068BAA adds r0, r4, 0 - bl sub_8056F08 + bl MetatileBehavior_IsNonAnimDoor lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08068BAA adds r0, r4, 0 - bl sub_8057798 + bl MetatileBehavior_IsLavaridgeB1FWarp lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08068BAA adds r0, r4, 0 - bl is_role_x68 + bl MetatileBehavior_IsLavaridge1FWarp lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1644,7 +1644,7 @@ sub_8068B30: @ 8068B30 cmp r0, 0x1 beq _08068BAA adds r0, r4, 0 - bl sub_8057804 + bl MetatileBehavior_IsMtPyreHole lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1820,7 +1820,7 @@ map_warp_consider_2_to_inside: @ 8068CA8 _08068CDC: .4byte gMapHeader _08068CE0: adds r0, r4, 0 - bl is_tile_x69_2_warp_door + bl MetatileBehavior_IsWarpDoor lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1914,7 +1914,7 @@ trigger_activate: @ 8068D7C cmp r1, 0 bne _08068D92 ldrb r0, [r4, 0x6] - bl sub_8069408 + bl DoCoordEventWeather b _08068DB2 _08068D92: ldrh r0, [r4, 0x6] @@ -2270,248 +2270,4 @@ sub_8068FEC: @ 8068FEC _0806902C: .4byte gMapHeader thumb_func_end sub_8068FEC - thumb_func_start sub_8069030 -sub_8069030: @ 8069030 - push {r4,lr} - ldr r4, _08069064 @ =gSaveBlock1 + 0x1220 - movs r2, 0x90 - lsls r2, 1 - adds r0, r4, 0 - movs r1, 0 - bl memset - movs r0, 0x90 - lsls r0, 1 - adds r4, r0 - movs r2, 0x80 - lsls r2, 2 - adds r0, r4, 0 - movs r1, 0 - bl memset - ldr r0, _08069068 @ =gUnknown_0202E8E2 - movs r1, 0 - movs r2, 0x10 - bl memset - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08069064: .4byte gSaveBlock1 + 0x1220 -_08069068: .4byte gUnknown_0202E8E2 - thumb_func_end sub_8069030 - - thumb_func_start sub_806906C -sub_806906C: @ 806906C - push {lr} - ldr r0, _080690A0 @ =gSaveBlock1 + 0x1220 - movs r1, 0 - str r1, [r0] - movs r1, 0x90 - lsls r1, 1 - adds r0, r1 - movs r1, 0 - movs r2, 0x20 - bl memset - ldr r0, _080690A4 @ =0x0000084d - bl FlagReset - ldr r0, _080690A8 @ =0x0000084e - bl FlagReset - ldr r0, _080690AC @ =0x00000829 - bl FlagReset - ldr r0, _080690B0 @ =0x00000861 - bl FlagReset - pop {r0} - bx r0 - .align 2, 0 -_080690A0: .4byte gSaveBlock1 + 0x1220 -_080690A4: .4byte 0x0000084d -_080690A8: .4byte 0x0000084e -_080690AC: .4byte 0x00000829 -_080690B0: .4byte 0x00000861 - thumb_func_end sub_806906C - - thumb_func_start sub_80690B4 -sub_80690B4: @ 80690B4 - push {lr} - ldr r0, _080690C4 @ =gSaveBlock1 + 0x1338 - movs r1, 0 - movs r2, 0x8 - bl memset - pop {r0} - bx r0 - .align 2, 0 -_080690C4: .4byte gSaveBlock1 + 0x1338 - thumb_func_end sub_80690B4 - - thumb_func_start sub_80690C8 -sub_80690C8: @ 80690C8 - push {lr} - ldr r0, _080690E4 @ =0x00004046 - bl GetVarPointer - ldr r2, _080690E8 @ =gSaveBlock2 - movs r1, 0 - strb r1, [r2, 0x1A] - strh r1, [r0] - ldr r0, _080690EC @ =0x00000836 - bl FlagReset - pop {r0} - bx r0 - .align 2, 0 -_080690E4: .4byte 0x00004046 -_080690E8: .4byte gSaveBlock2 -_080690EC: .4byte 0x00000836 - thumb_func_end sub_80690C8 - - thumb_func_start sub_80690F0 -sub_80690F0: @ 80690F0 - push {r4,r5,lr} - ldr r0, _0806911C @ =0x00004046 - bl GetVarPointer - ldr r4, _08069120 @ =gSaveBlock2 - movs r5, 0 - movs r1, 0xDA - strb r1, [r4, 0x1A] - ldr r2, _08069124 @ =0x00000302 - adds r1, r2, 0 - strh r1, [r0] - ldr r0, _08069128 @ =0x00000836 - bl FlagSet - movs r0, 0x1 - strb r0, [r4, 0x19] - strb r5, [r4, 0x18] - bl sub_808C0A0 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0806911C: .4byte 0x00004046 -_08069120: .4byte gSaveBlock2 -_08069124: .4byte 0x00000302 -_08069128: .4byte 0x00000836 - thumb_func_end sub_80690F0 - - thumb_func_start IsNationalPokedex -IsNationalPokedex: @ 806912C - push {lr} - ldr r0, _08069154 @ =gSaveBlock2 - ldrb r0, [r0, 0x1A] - cmp r0, 0xDA - bne _08069164 - ldr r0, _08069158 @ =0x00004046 - bl VarGet - lsls r0, 16 - ldr r1, _0806915C @ =0x03020000 - cmp r0, r1 - bne _08069164 - ldr r0, _08069160 @ =0x00000836 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08069164 - movs r0, 0x1 - b _08069166 - .align 2, 0 -_08069154: .4byte gSaveBlock2 -_08069158: .4byte 0x00004046 -_0806915C: .4byte 0x03020000 -_08069160: .4byte 0x00000836 -_08069164: - movs r0, 0 -_08069166: - pop {r1} - bx r1 - thumb_func_end IsNationalPokedex - - thumb_func_start unref_sub_806916C -unref_sub_806916C: @ 806916C - push {lr} - ldr r0, _08069178 @ =0x0000084c - bl FlagReset - pop {r0} - bx r0 - .align 2, 0 -_08069178: .4byte 0x0000084c - thumb_func_end unref_sub_806916C - - thumb_func_start unref_sub_806917C -unref_sub_806917C: @ 806917C - push {lr} - ldr r0, _08069188 @ =0x0000084c - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_08069188: .4byte 0x0000084c - thumb_func_end unref_sub_806917C - - thumb_func_start IsMysteryGiftAvailable -IsMysteryGiftAvailable: @ 806918C - push {lr} - ldr r0, _0806919C @ =0x0000084c - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0806919C: .4byte 0x0000084c - thumb_func_end IsMysteryGiftAvailable - - thumb_func_start sub_80691A0 -sub_80691A0: @ 80691A0 - push {lr} - ldr r0, _080691B4 @ =0x0000402c - movs r1, 0 - bl VarSet - ldr r0, _080691B8 @ =0x00000862 - bl FlagReset - pop {r0} - bx r0 - .align 2, 0 -_080691B4: .4byte 0x0000402c -_080691B8: .4byte 0x00000862 - thumb_func_end sub_80691A0 - - thumb_func_start sub_80691BC -sub_80691BC: @ 80691BC - push {lr} - ldr r0, _080691D4 @ =0x0000402c - movs r1, 0x92 - lsls r1, 4 - bl VarSet - ldr r0, _080691D8 @ =0x00000862 - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_080691D4: .4byte 0x0000402c -_080691D8: .4byte 0x00000862 - thumb_func_end sub_80691BC - - thumb_func_start sub_80691DC -sub_80691DC: @ 80691DC - push {lr} - ldr r0, _08069200 @ =0x00000862 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08069208 - ldr r0, _08069204 @ =0x0000402c - bl VarGet - lsls r0, 16 - movs r1, 0x92 - lsls r1, 20 - cmp r0, r1 - bne _08069208 - movs r0, 0x1 - b _0806920A - .align 2, 0 -_08069200: .4byte 0x00000862 -_08069204: .4byte 0x0000402c -_08069208: - movs r0, 0 -_0806920A: - pop {r1} - bx r1 - thumb_func_end sub_80691DC - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_80859BC.s b/asm/field_effect.s index 3a67bbf81..4bcba42ce 100644 --- a/asm/rom_80859BC.s +++ b/asm/field_effect.s @@ -267,7 +267,7 @@ CreateMonSprite_FieldMove: @ 8085B88 str r3, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] - bl sub_800D334 + bl HandleLoadSpecialPokePic adds r0, r5, 0 mov r1, r10 adds r2, r4, 0 @@ -1590,7 +1590,7 @@ mapldr_080842E8: @ 80865DC movs r1, 0 bl CreateTask bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeMapObjects ldr r1, _08086600 @ =gUnknown_0300485C movs r0, 0 str r0, [r1] @@ -1693,7 +1693,7 @@ mapldr_08084390: @ 8086684 bl FieldObjectTurn _080866C6: bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeMapObjects ldr r1, _080866E8 @ =gUnknown_0300485C movs r0, 0 str r0, [r1] @@ -1740,7 +1740,7 @@ _0808671E: cmp r0, 0 bne _08086738 bl ScriptContext2_Disable - bl sub_806451C + bl UnfreezeMapObjects adds r0, r5, 0 bl DestroyTask _08086738: @@ -1756,9 +1756,9 @@ _08086744: .4byte gPaletteFade sub_8086748: @ 8086748 push {lr} bl sub_8053E90 - bl pal_fill_for_maplights + bl pal_fill_for_map_transition bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeMapObjects ldr r0, _0808676C @ =sub_8086774 movs r1, 0 bl CreateTask @@ -2115,7 +2115,7 @@ sub_80869F8: @ 80869F8 strb r0, [r1, 0x6] bl ScriptContext2_Disable bl CameraObjectReset1 - bl sub_806451C + bl UnfreezeMapObjects bl InstallCameraPanAheadCallback ldr r0, _08086A28 @ =sub_8086774 bl FindTaskIdByFunc @@ -2196,7 +2196,7 @@ _08086A9C: .4byte gUnknown_0839F2E8 sub_8086AA0: @ 8086AA0 push {r4,lr} adds r4, r0, 0 - bl player_bitmagic + bl FreezeMapObjects bl CameraObjectReset2 ldrb r0, [r4, 0xA] bl sub_80B4824 @@ -2408,7 +2408,7 @@ _08086C2C: .4byte gSprites sub_8086C30: @ 8086C30 push {lr} bl sub_8053FF8 - bl sub_8080918 + bl fade_8080918 pop {r0} bx r0 thumb_func_end sub_8086C30 @@ -2454,7 +2454,7 @@ _08086C90: .4byte sub_8086A68 sub_8086C94: @ 8086C94 push {lr} bl sub_8053E90 - bl pal_fill_for_maplights + bl pal_fill_for_map_transition bl ScriptContext2_Enable ldr r0, _08086CB4 @ =sub_8086CBC movs r1, 0 @@ -3193,7 +3193,7 @@ sub_808722C: @ 808722C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 - bl player_bitmagic + bl FreezeMapObjects bl CameraObjectReset2 movs r0, 0 bl SetCameraPanningCallback @@ -3422,7 +3422,7 @@ sub_80873D8: @ 80873D8 push {r4,lr} adds r4, r0, 0 bl sub_8053FF8 - bl sub_8080918 + bl fade_8080918 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] @@ -3473,7 +3473,7 @@ _08087444: .4byte sub_80871D0 mapldr_080851BC: @ 8087448 push {lr} bl sub_8053E90 - bl pal_fill_for_maplights + bl pal_fill_for_map_transition bl ScriptContext2_Enable ldr r0, _08087468 @ =gUnknown_0300485C movs r1, 0 @@ -3539,7 +3539,7 @@ sub_80874CC: @ 80874CC adds r5, r0, 0 adds r4, r1, 0 bl CameraObjectReset2 - bl player_bitmagic + bl FreezeMapObjects ldr r1, _080874F8 @ =gPlayerAvatar movs r0, 0x1 strb r0, [r1, 0x6] @@ -3654,7 +3654,7 @@ sub_808759C: @ 808759C movs r0, 0 strb r0, [r1, 0x6] bl ScriptContext2_Disable - bl sub_806451C + bl UnfreezeMapObjects ldr r0, _080875D0 @ =sub_8087470 bl FindTaskIdByFunc lsls r0, 24 @@ -3801,7 +3801,7 @@ sub_80876C8: @ 80876C8 push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 - bl player_bitmagic + bl FreezeMapObjects bl CameraObjectReset2 ldr r1, _080876F4 @ =gPlayerAvatar movs r0, 0x1 @@ -3925,7 +3925,7 @@ sub_80877AC: @ 80877AC cmp r0, 0 bne _080877CA bl sub_8053FF8 - bl sub_8080918 + bl fade_8080918 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] @@ -4044,7 +4044,7 @@ _080878A4: sub_80878A8: @ 80878A8 push {lr} bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeMapObjects ldr r0, _080878C0 @ =sub_80878C4 movs r1, 0x50 bl CreateTask @@ -4117,7 +4117,7 @@ sub_8087914: @ 8087914 cmp r0, 0 bne _08087940 bl sub_8053FF8 - bl sub_8080918 + bl fade_8080918 _08087940: ldr r0, _080879BC @ =gPlayerAvatar ldrb r1, [r0, 0x5] @@ -4227,9 +4227,9 @@ _08087A20: mapldr_080859D4: @ 8087A28 push {lr} bl sub_8053E90 - bl pal_fill_for_maplights + bl pal_fill_for_map_transition bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeMapObjects ldr r1, _08087A64 @ =gUnknown_0300485C movs r0, 0 str r0, [r1] @@ -4357,7 +4357,7 @@ _08087B12: ands r0, r1 strb r0, [r6, 0x1] bl ScriptContext2_Disable - bl sub_806451C + bl UnfreezeMapObjects ldr r0, _08087B58 @ =sub_8087A74 bl FindTaskIdByFunc lsls r0, 24 @@ -4453,7 +4453,7 @@ sub_8087BEC: @ 8087BEC push {r4,lr} adds r4, r0, 0 bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeMapObjects bl CameraObjectReset2 bl player_get_direction_lower_nybble lsls r0, 24 @@ -4633,7 +4633,7 @@ _08087D48: adds r0, 0x1 strh r0, [r4, 0x8] bl sub_8053FF8 - bl sub_8080918 + bl fade_8080918 _08087D5E: add sp, 0x8 pop {r4,r5} @@ -4687,9 +4687,9 @@ _08087DC8: .4byte sub_8087BBC mapldr_08085D88: @ 8087DCC push {lr} bl sub_8053E90 - bl pal_fill_for_maplights + bl pal_fill_for_map_transition bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeMapObjects ldr r1, _08087E0C @ =gUnknown_0300485C movs r0, 0 str r0, [r1] @@ -4991,7 +4991,7 @@ sub_8087FDC: @ 8087FDC bne _08088050 bl ScriptContext2_Disable bl CameraObjectReset1 - bl sub_806451C + bl UnfreezeMapObjects ldr r0, _08088064 @ =sub_8087E1C bl FindTaskIdByFunc lsls r0, 24 @@ -6207,7 +6207,7 @@ sub_8088984: @ 8088984 push {r6} adds r4, r0, 0 bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeMapObjects ldr r5, _080889DC @ =gPlayerAvatar movs r0, 0x1 strb r0, [r5, 0x6] @@ -6410,7 +6410,7 @@ sub_8088AF4: @ 8088AF4 ldrb r0, [r4, 0x1A] movs r1, 0x1 bl sub_8127ED0 - bl sub_806451C + bl UnfreezeMapObjects bl ScriptContext2_Disable movs r0, 0x9 bl FieldEffectActiveListRemove @@ -6908,7 +6908,7 @@ sub_8088F10: @ 8088F10 lsls r0, 24 cmp r0, 0 beq _08088F2A - bl sub_8080918 + bl fade_8080918 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] @@ -7735,4069 +7735,4 @@ _08089570: .4byte gMapObjects _08089574: .4byte sub_8089270 thumb_func_end fishE - thumb_func_start remove_some_task -remove_some_task: @ 8089578 - push {r4,lr} - ldr r4, _080895A8 @ =gUnknown_03004DC0 - movs r0, 0 - strb r0, [r4, 0x15] - ldr r1, _080895AC @ =0x040000b0 - ldrh r2, [r1, 0xA] - ldr r0, _080895B0 @ =0x0000c5ff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r2, [r1, 0xA] - ldr r0, _080895B4 @ =0x00007fff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xA] - ldrb r0, [r4, 0x18] - cmp r0, 0xFF - beq _080895A2 - bl DestroyTask - movs r0, 0xFF - strb r0, [r4, 0x18] -_080895A2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080895A8: .4byte gUnknown_03004DC0 -_080895AC: .4byte 0x040000b0 -_080895B0: .4byte 0x0000c5ff -_080895B4: .4byte 0x00007fff - thumb_func_end remove_some_task - - thumb_func_start dp12_8087EA4 -dp12_8087EA4: @ 80895B8 - push {r4,lr} - sub sp, 0x4 - mov r0, sp - movs r4, 0 - strh r4, [r0] - ldr r1, _080895EC @ =gUnknown_03004DE0 - ldr r2, _080895F0 @ =0x01000780 - bl CpuSet - ldr r0, _080895F4 @ =gUnknown_03004DC0 - movs r1, 0 - str r1, [r0] - str r1, [r0, 0x4] - str r1, [r0, 0x8] - str r1, [r0, 0xC] - strb r4, [r0, 0x14] - strb r4, [r0, 0x15] - strb r4, [r0, 0x16] - strb r4, [r0, 0x17] - movs r1, 0xFF - strb r1, [r0, 0x18] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080895EC: .4byte gUnknown_03004DE0 -_080895F0: .4byte 0x01000780 -_080895F4: .4byte gUnknown_03004DC0 - thumb_func_end dp12_8087EA4 - - thumb_func_start sub_80895F8 -sub_80895F8: @ 80895F8 - push {lr} - sub sp, 0xC - str r0, [sp] - str r1, [sp, 0x4] - str r2, [sp, 0x8] - ldr r0, _0808961C @ =0xa2600001 - cmp r1, r0 - bne _0808962C - ldr r0, _08089620 @ =gUnknown_03004DC0 - ldr r1, _08089624 @ =gUnknown_03004DE2 - str r1, [r0] - movs r2, 0xF0 - lsls r2, 3 - adds r1, r2 - str r1, [r0, 0x4] - ldr r1, _08089628 @ =sub_80896F4 - b _0808963C - .align 2, 0 -_0808961C: .4byte 0xa2600001 -_08089620: .4byte gUnknown_03004DC0 -_08089624: .4byte gUnknown_03004DE2 -_08089628: .4byte sub_80896F4 -_0808962C: - ldr r0, _0808965C @ =gUnknown_03004DC0 - ldr r1, _08089660 @ =gUnknown_03004DE4 - str r1, [r0] - movs r2, 0xF0 - lsls r2, 3 - adds r1, r2 - str r1, [r0, 0x4] - ldr r1, _08089664 @ =sub_8089714 -_0808963C: - str r1, [r0, 0x10] - adds r1, r0, 0 - ldr r0, [sp, 0x4] - str r0, [r1, 0xC] - ldr r0, [sp] - str r0, [r1, 0x8] - mov r0, sp - ldrb r0, [r0, 0x8] - strb r0, [r1, 0x15] - mov r0, sp - ldrb r0, [r0, 0x9] - strb r0, [r1, 0x16] - strb r0, [r1, 0x17] - add sp, 0xC - pop {r0} - bx r0 - .align 2, 0 -_0808965C: .4byte gUnknown_03004DC0 -_08089660: .4byte gUnknown_03004DE4 -_08089664: .4byte sub_8089714 - thumb_func_end sub_80895F8 - - thumb_func_start sub_8089668 -sub_8089668: @ 8089668 - push {r4,lr} - ldr r4, _08089698 @ =gUnknown_03004DC0 - ldrb r0, [r4, 0x15] - cmp r0, 0 - beq _080896E2 - cmp r0, 0x3 - bne _080896AC - movs r0, 0 - strb r0, [r4, 0x15] - ldr r1, _0808969C @ =0x040000b0 - ldrh r2, [r1, 0xA] - ldr r0, _080896A0 @ =0x0000c5ff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r2, [r1, 0xA] - ldr r0, _080896A4 @ =0x00007fff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xA] - ldr r1, _080896A8 @ =gUnknown_0202FFA4 - movs r0, 0x1 - strb r0, [r1] - b _080896E2 - .align 2, 0 -_08089698: .4byte gUnknown_03004DC0 -_0808969C: .4byte 0x040000b0 -_080896A0: .4byte 0x0000c5ff -_080896A4: .4byte 0x00007fff -_080896A8: .4byte gUnknown_0202FFA4 -_080896AC: - ldr r1, _080896E8 @ =0x040000b0 - ldrh r2, [r1, 0xA] - ldr r0, _080896EC @ =0x0000c5ff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r2, [r1, 0xA] - ldr r0, _080896F0 @ =0x00007fff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xA] - ldrb r0, [r4, 0x14] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - ldr r0, [r4, 0x8] - str r0, [r1, 0x4] - ldr r0, [r4, 0xC] - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r0, [r4, 0x10] - bl _call_via_r0 - ldrb r0, [r4, 0x14] - movs r1, 0x1 - eors r0, r1 - strb r0, [r4, 0x14] -_080896E2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080896E8: .4byte 0x040000b0 -_080896EC: .4byte 0x0000c5ff -_080896F0: .4byte 0x00007fff - thumb_func_end sub_8089668 - - thumb_func_start sub_80896F4 -sub_80896F4: @ 80896F4 - ldr r0, _0808970C @ =gUnknown_03004DC0 - ldr r2, [r0, 0x8] - ldrb r1, [r0, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - ldr r1, _08089710 @ =gUnknown_03004DE0 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - bx lr - .align 2, 0 -_0808970C: .4byte gUnknown_03004DC0 -_08089710: .4byte gUnknown_03004DE0 - thumb_func_end sub_80896F4 - - thumb_func_start sub_8089714 -sub_8089714: @ 8089714 - ldr r0, _0808972C @ =gUnknown_03004DC0 - ldr r2, [r0, 0x8] - ldrb r1, [r0, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - ldr r1, _08089730 @ =gUnknown_03004DE0 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - bx lr - .align 2, 0 -_0808972C: .4byte gUnknown_03004DC0 -_08089730: .4byte gUnknown_03004DE0 - thumb_func_end sub_8089714 - - thumb_func_start task00_for_dp12 -task00_for_dp12: @ 8089734 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - movs r6, 0 - ldr r0, _0808975C @ =gUnknown_0202FFA4 - ldrb r0, [r0] - cmp r0, 0 - beq _08089764 - mov r0, r12 - bl DestroyTask - ldr r1, _08089760 @ =gUnknown_03004DC0 - movs r0, 0xFF - strb r0, [r1, 0x18] - b _080898E4 - .align 2, 0 -_0808975C: .4byte gUnknown_0202FFA4 -_08089760: .4byte gUnknown_03004DC0 -_08089764: - ldr r1, _08089790 @ =gTasks - mov r0, r12 - lsls r2, r0, 2 - adds r0, r2, r0 - lsls r0, 3 - adds r3, r0, r1 - movs r4, 0x16 - ldrsh r0, [r3, r4] - mov r10, r1 - mov r9, r2 - cmp r0, 0 - beq _08089810 - movs r1, 0x14 - ldrsh r0, [r3, r1] - cmp r0, 0xE - bhi _08089810 - lsls r0, 2 - ldr r1, _08089794 @ =_08089798 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08089790: .4byte gTasks -_08089794: .4byte _08089798 - .align 2, 0 -_08089798: - .4byte _080897D4 - .4byte _08089810 - .4byte _080897DC - .4byte _08089810 - .4byte _080897E4 - .4byte _08089810 - .4byte _080897EC - .4byte _08089810 - .4byte _080897F4 - .4byte _08089810 - .4byte _080897FC - .4byte _08089810 - .4byte _08089804 - .4byte _08089810 - .4byte _0808980C -_080897D4: - ldr r0, _080897D8 @ =gUnknown_030042A4 - b _0808980E - .align 2, 0 -_080897D8: .4byte gUnknown_030042A4 -_080897DC: - ldr r0, _080897E0 @ =gUnknown_030042A0 - b _0808980E - .align 2, 0 -_080897E0: .4byte gUnknown_030042A0 -_080897E4: - ldr r0, _080897E8 @ =gUnknown_030042C0 - b _0808980E - .align 2, 0 -_080897E8: .4byte gUnknown_030042C0 -_080897EC: - ldr r0, _080897F0 @ =gUnknown_030041B4 - b _0808980E - .align 2, 0 -_080897F0: .4byte gUnknown_030041B4 -_080897F4: - ldr r0, _080897F8 @ =gUnknown_03004288 - b _0808980E - .align 2, 0 -_080897F8: .4byte gUnknown_03004288 -_080897FC: - ldr r0, _08089800 @ =gUnknown_03004280 - b _0808980E - .align 2, 0 -_08089800: .4byte gUnknown_03004280 -_08089804: - ldr r0, _08089808 @ =gUnknown_030041B0 - b _0808980E - .align 2, 0 -_08089808: .4byte gUnknown_030041B0 -_0808980C: - ldr r0, _08089870 @ =gUnknown_030041B8 -_0808980E: - ldrh r6, [r0] -_08089810: - mov r0, r9 - add r0, r12 - lsls r0, 3 - mov r2, r10 - adds r1, r0, r2 - ldrh r2, [r1, 0x10] - movs r3, 0x10 - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _0808987C - subs r0, r2, 0x1 - strh r0, [r1, 0x10] - movs r4, 0xE - ldrsh r0, [r1, r4] - movs r3, 0xA0 - lsls r3, 1 - adds r2, r0, r3 - movs r4, 0x8 - ldrsh r3, [r1, r4] - movs r4, 0xA - ldrsh r0, [r1, r4] - cmp r3, r0 - bge _080898E4 - ldr r5, _08089874 @ =gUnknown_03004DE0 - ldr r0, _08089878 @ =gUnknown_03004DC0 - mov r8, r0 - adds r7, r1, 0 - lsls r0, r2, 1 - adds r4, r0, r5 -_0808984A: - lsls r2, r3, 1 - mov r0, r8 - ldrb r1, [r0, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r5 - ldrh r0, [r4] - adds r0, r6 - strh r0, [r2] - adds r4, 0x2 - adds r3, 0x1 - movs r1, 0xA - ldrsh r0, [r7, r1] - cmp r3, r0 - blt _0808984A - b _080898E4 - .align 2, 0 -_08089870: .4byte gUnknown_030041B8 -_08089874: .4byte gUnknown_03004DE0 -_08089878: .4byte gUnknown_03004DC0 -_0808987C: - ldrh r0, [r1, 0x12] - strh r0, [r1, 0x10] - movs r2, 0xE - ldrsh r0, [r1, r2] - movs r3, 0xA0 - lsls r3, 1 - adds r2, r0, r3 - movs r4, 0x8 - ldrsh r3, [r1, r4] - movs r4, 0xA - ldrsh r0, [r1, r4] - cmp r3, r0 - bge _080898C4 - ldr r5, _080898F4 @ =gUnknown_03004DE0 - adds r7, r1, 0 - lsls r0, r2, 1 - adds r4, r0, r5 - ldr r0, _080898F8 @ =gUnknown_03004DC0 - mov r8, r0 -_080898A2: - lsls r2, r3, 1 - mov r0, r8 - ldrb r1, [r0, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r5 - ldrh r0, [r4] - adds r0, r6 - strh r0, [r2] - adds r4, 0x2 - adds r3, 0x1 - movs r1, 0xA - ldrsh r0, [r7, r1] - cmp r3, r0 - blt _080898A2 -_080898C4: - mov r0, r9 - add r0, r12 - lsls r0, 3 - mov r3, r10 - adds r2, r0, r3 - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r4, 0xC - ldrsh r1, [r2, r4] - cmp r0, r1 - bne _080898E4 - movs r0, 0 - strh r0, [r2, 0xE] -_080898E4: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080898F4: .4byte gUnknown_03004DE0 -_080898F8: .4byte gUnknown_03004DC0 - thumb_func_end task00_for_dp12 - - thumb_func_start sub_80898FC -sub_80898FC: @ 80898FC - push {r4-r7,lr} - adds r6, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r4, r2, 24 - movs r1, 0 - movs r2, 0 - ldr r0, _08089940 @ =gSineTable - mov r12, r0 -_08089910: - lsls r0, r1, 1 - adds r3, r0, r6 - lsls r0, r2, 1 - add r0, r12 - movs r7, 0 - ldrsh r0, [r0, r7] - muls r0, r4 - cmp r0, 0 - bge _08089924 - adds r0, 0xFF -_08089924: - asrs r0, 8 - strh r0, [r3] - adds r0, r2, r5 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xFF - bls _08089910 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08089940: .4byte gSineTable - thumb_func_end sub_80898FC - - thumb_func_start sub_8089944 -sub_8089944: @ 8089944 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - adds r5, r0, 0 - str r1, [sp, 0x10] - ldr r0, [sp, 0x40] - mov r8, r0 - ldr r1, [sp, 0x44] - mov r9, r1 - ldr r0, [sp, 0x48] - mov r10, r0 - lsls r5, 24 - lsrs r5, 24 - ldr r1, [sp, 0x10] - lsls r1, 24 - str r1, [sp, 0x14] - lsrs r0, r1, 24 - str r0, [sp, 0xC] - lsls r1, r2, 24 - lsrs r1, 24 - str r1, [sp, 0x18] - lsls r2, r3, 24 - lsrs r2, 24 - str r2, [sp, 0x1C] - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - mov r3, r9 - lsls r3, 24 - lsrs r3, 24 - mov r9, r3 - mov r0, r10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - bl dp12_8087EA4 - ldr r0, _08089A50 @ =REG_BG0HOFS - add r0, r9 - str r0, [sp] - ldr r0, _08089A54 @ =0xa2600001 - str r0, [sp, 0x4] - mov r1, sp - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - movs r1, 0 - strb r1, [r0, 0x9] - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_80895F8 - ldr r0, _08089A58 @ =task00_for_dp12 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _08089A5C @ =gTasks - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r0 - strh r5, [r4, 0x8] - mov r3, sp - ldrh r3, [r3, 0xC] - strh r3, [r4, 0xA] - movs r0, 0x80 - lsls r0, 1 - ldr r1, [sp, 0x18] - bl __divsi3 - strh r0, [r4, 0xC] - movs r0, 0 - strh r0, [r4, 0xE] - mov r1, r8 - strh r1, [r4, 0x10] - strh r1, [r4, 0x12] - mov r3, r9 - strh r3, [r4, 0x14] - mov r0, r10 - strh r0, [r4, 0x16] - ldr r0, _08089A60 @ =gUnknown_03004DC0 - strb r7, [r0, 0x18] - ldr r0, _08089A64 @ =gUnknown_0202FFA4 - movs r1, 0 - strb r1, [r0] - ldr r4, _08089A68 @ =gUnknown_03005060 - ldr r3, [sp, 0xC] - subs r6, r3, r5 - lsls r3, r6, 24 - lsrs r3, 24 - adds r0, r4, 0 - ldr r1, [sp, 0x18] - ldr r2, [sp, 0x1C] - bl sub_80898FC - ldr r0, [sp, 0xC] - cmp r5, r0 - bge _08089A3E - ldr r1, _08089A6C @ =0xfffffd80 - adds r2, r4, r1 - lsls r1, r5, 1 - movs r3, 0xF0 - lsls r3, 3 - adds r0, r1, r3 - adds r3, r0, r2 - adds r1, r2 - adds r2, r4, 0 - adds r5, r6, 0 -_08089A2A: - ldrh r0, [r2] - strh r0, [r1] - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - adds r1, 0x2 - subs r5, 0x1 - cmp r5, 0 - bne _08089A2A -_08089A3E: - adds r0, r7, 0 - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08089A50: .4byte REG_BG0HOFS -_08089A54: .4byte 0xa2600001 -_08089A58: .4byte task00_for_dp12 -_08089A5C: .4byte gTasks -_08089A60: .4byte gUnknown_03004DC0 -_08089A64: .4byte gUnknown_0202FFA4 -_08089A68: .4byte gUnknown_03005060 -_08089A6C: .4byte 0xfffffd80 - thumb_func_end sub_8089944 - - thumb_func_start sub_8089A70 -sub_8089A70: @ 8089A70 - push {lr} - ldr r0, _08089A88 @ =gPaletteFade - ldrb r1, [r0, 0x8] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0, 0x8] - movs r0, 0 - movs r1, 0 - bl OpenPartyMenu - pop {r0} - bx r0 - .align 2, 0 -_08089A88: .4byte gPaletteFade - thumb_func_end sub_8089A70 - - thumb_func_start sub_8089A8C -sub_8089A8C: @ 8089A8C - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r5, _08089AD0 @ =gUnknown_0202FFA9 - movs r0, 0 - strb r0, [r5] - ldr r0, _08089AD4 @ =gUnknown_03005CE0 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08089AD8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - beq _08089AE0 - ldr r4, _08089ADC @ =gUnknown_0202FFAA - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - bl AppendToList - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl AppendToList - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl AppendToList - b _08089BC8 - .align 2, 0 -_08089AD0: .4byte gUnknown_0202FFA9 -_08089AD4: .4byte gUnknown_03005CE0 -_08089AD8: .4byte gPlayerParty -_08089ADC: .4byte gUnknown_0202FFAA -_08089AE0: - movs r6, 0 - ldr r0, _08089B24 @ =gUnknown_0839F554 - ldrh r0, [r0] - mov r8, r0 -_08089AE8: - movs r4, 0 - adds r7, r6, 0x1 - mov r0, r8 - cmp r0, 0xFF - beq _08089B48 - ldr r5, _08089B24 @ =gUnknown_0839F554 -_08089AF4: - ldr r0, _08089B28 @ =gUnknown_03005CE0 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08089B2C @ =gPlayerParty - adds r0, r1 - adds r1, r6, 0 - adds r1, 0xD - bl GetMonData - lsls r1, r4, 1 - adds r1, r5 - ldrh r1, [r1] - cmp r0, r1 - bne _08089B38 - adds r2, r4, 0 - adds r2, 0xA - lsls r2, 24 - lsrs r2, 24 - ldr r0, _08089B30 @ =gUnknown_0202FFAA - ldr r1, _08089B34 @ =gUnknown_0202FFA9 - bl AppendToList - b _08089B48 - .align 2, 0 -_08089B24: .4byte gUnknown_0839F554 -_08089B28: .4byte gUnknown_03005CE0 -_08089B2C: .4byte gPlayerParty -_08089B30: .4byte gUnknown_0202FFAA -_08089B34: .4byte gUnknown_0202FFA9 -_08089B38: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - lsls r0, r4, 1 - adds r0, r5 - ldrh r0, [r0] - cmp r0, 0xFF - bne _08089AF4 -_08089B48: - lsls r0, r7, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bls _08089AE8 - ldr r4, _08089BA4 @ =gUnknown_0202FFAA - ldr r5, _08089BA8 @ =gUnknown_0202FFA9 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - bl AppendToList - ldr r6, _08089BAC @ =gPlayerParty + 1 * 0x64 - adds r0, r6, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08089B76 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl AppendToList -_08089B76: - ldr r0, _08089BB0 @ =gUnknown_03005CE0 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - adds r1, r6, 0 - subs r1, 0x64 - adds r0, r1 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - beq _08089BB4 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x7 - bl AppendToList - b _08089BBE - .align 2, 0 -_08089BA4: .4byte gUnknown_0202FFAA -_08089BA8: .4byte gUnknown_0202FFA9 -_08089BAC: .4byte gPlayerParty + 1 * 0x64 -_08089BB0: .4byte gUnknown_03005CE0 -_08089BB4: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - bl AppendToList -_08089BBE: - ldr r0, _08089BD4 @ =gUnknown_0202FFAA - ldr r1, _08089BD8 @ =gUnknown_0202FFA9 - movs r2, 0x3 - bl AppendToList -_08089BC8: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08089BD4: .4byte gUnknown_0202FFAA -_08089BD8: .4byte gUnknown_0202FFA9 - thumb_func_end sub_8089A8C - - thumb_func_start sub_8089BDC -sub_8089BDC: @ 8089BDC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - adds r4, r2, 0 - mov r8, r3 - ldr r7, [sp, 0x20] - ldr r1, [sp, 0x24] - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r4, 24 - lsrs r4, 24 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x5 - bl sub_806D538 - adds r4, r5, r4 - lsls r4, 24 - lsrs r4, 24 - mov r0, r8 - lsls r3, r0, 1 - adds r3, r6, r3 - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - adds r0, r5, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl MenuDrawTextWindow - adds r5, 0x1 - lsls r5, 24 - lsrs r5, 24 - adds r6, 0x1 - lsls r6, 24 - lsrs r6, 24 - str r7, [sp] - adds r0, r5, 0 - adds r1, r6, 0 - mov r2, r8 - ldr r3, [sp, 0x1C] - bl PrintMenuItemsReordered - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8089BDC - - thumb_func_start sub_8089C50 -sub_8089C50: @ 8089C50 - push {r4,r5,lr} - sub sp, 0xC - ldr r4, [sp, 0x18] - ldr r5, [sp, 0x1C] - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - str r4, [sp] - str r5, [sp, 0x4] - movs r4, 0x1 - str r4, [sp, 0x8] - bl sub_8089BDC - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8089C50 - - thumb_func_start sub_8089C7C -sub_8089C7C: @ 8089C7C - push {r4-r6,lr} - sub sp, 0xC - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r6, _08089CC8 @ =gUnknown_0202FFA9 - ldrb r0, [r6] - lsls r0, 1 - movs r4, 0x12 - subs r4, r0 - lsls r4, 24 - lsrs r4, 24 - ldrb r3, [r6] - ldr r0, _08089CCC @ =gPokemonMenuActions - str r0, [sp] - ldr r0, _08089CD0 @ =gUnknown_0202FFAA - str r0, [sp, 0x4] - movs r0, 0x3 - str r0, [sp, 0x8] - movs r0, 0x13 - adds r1, r4, 0 - movs r2, 0xA - bl sub_8089BDC - movs r2, 0x1 - orrs r2, r4 - ldrb r3, [r6] - str r5, [sp] - movs r0, 0x9 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x14 - bl InitMenu - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08089CC8: .4byte gUnknown_0202FFA9 -_08089CCC: .4byte gPokemonMenuActions -_08089CD0: .4byte gUnknown_0202FFAA - thumb_func_end sub_8089C7C - - thumb_func_start sub_8089CD4 -sub_8089CD4: @ 8089CD4 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08089D00 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _08089D84 - adds r0, r4, 0 - bl sub_806BD80 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - beq _08089D04 - cmp r0, 0x2 - beq _08089D60 - b _08089D84 - .align 2, 0 -_08089D00: .4byte gPaletteFade -_08089D04: - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_806CA38 - ldr r1, _08089D48 @ =gUnknown_03005CE0 - strb r0, [r1] - ldrb r1, [r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08089D4C @ =gPlayerParty - adds r0, r1 - ldr r1, _08089D50 @ =gStringVar1 - bl GetMonNickname - bl sub_8089A8C - ldr r0, _08089D54 @ =gUnknown_0202FFA8 - strb r5, [r0] - movs r0, 0 - bl sub_8089C7C - ldr r1, _08089D58 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08089D5C @ =sub_8089D94 - str r1, [r0] - adds r0, r4, 0 - bl sub_808B5B4 - b _08089D84 - .align 2, 0 -_08089D48: .4byte gUnknown_03005CE0 -_08089D4C: .4byte gPlayerParty -_08089D50: .4byte gStringVar1 -_08089D54: .4byte gUnknown_0202FFA8 -_08089D58: .4byte gTasks -_08089D5C: .4byte sub_8089D94 -_08089D60: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - str r5, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _08089D8C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08089D90 @ =sub_8089E4C - str r1, [r0] -_08089D84: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08089D8C: .4byte gTasks -_08089D90: .4byte sub_8089E4C - thumb_func_end sub_8089CD4 - - thumb_func_start sub_8089D94 -sub_8089D94: @ 8089D94 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - ldr r0, _08089DC8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08089E44 - ldr r2, _08089DCC @ =gMain - ldrh r0, [r2, 0x30] - movs r1, 0xF0 - ands r1, r0 - cmp r1, 0x40 - bne _08089DD4 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - ldr r1, _08089DD0 @ =gUnknown_0202FFA8 - strb r0, [r1] - b _08089E1A - .align 2, 0 -_08089DC8: .4byte gPaletteFade -_08089DCC: .4byte gMain -_08089DD0: .4byte gUnknown_0202FFA8 -_08089DD4: - cmp r1, 0x80 - bne _08089DF0 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - ldr r1, _08089DEC @ =gUnknown_0202FFA8 - strb r0, [r1] - b _08089E1A - .align 2, 0 -_08089DEC: .4byte gUnknown_0202FFA8 -_08089DF0: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08089E30 - movs r0, 0x5 - bl PlaySE - ldr r1, _08089E24 @ =gPokemonMenuActions - ldr r2, _08089E28 @ =gUnknown_0202FFAA - ldr r0, _08089E2C @ =gUnknown_0202FFA8 - ldrb r0, [r0] - adds r0, r2 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 -_08089E1A: - adds r0, r4, 0 - bl sub_808B5B4 - b _08089E44 - .align 2, 0 -_08089E24: .4byte gPokemonMenuActions -_08089E28: .4byte gUnknown_0202FFAA -_08089E2C: .4byte gUnknown_0202FFA8 -_08089E30: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08089E44 - adds r0, r5, 0 - bl PokemonMenu_Cancel - adds r0, r5, 0 - bl sub_808B5B4 -_08089E44: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8089D94 - - thumb_func_start sub_8089E4C -sub_8089E4C: @ 8089E4C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08089E78 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08089E72 - ldr r0, _08089E7C @ =gUnknown_03005CE0 - strb r1, [r0] - ldr r0, _08089E80 @ =sub_805469C - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_08089E72: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08089E78: .4byte gPaletteFade -_08089E7C: .4byte gUnknown_03005CE0 -_08089E80: .4byte sub_805469C - thumb_func_end sub_8089E4C - - thumb_func_start sub_8089E84 -sub_8089E84: @ 8089E84 - push {lr} - ldr r0, _08089EAC @ =gUnknown_03005CE0 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08089EB0 @ =gPlayerParty - adds r0, r1 - ldr r1, _08089EB4 @ =gStringVar1 - bl GetMonNickname - bl sub_8089A8C - ldr r1, _08089EB8 @ =gUnknown_0202FFA8 - movs r0, 0 - strb r0, [r1] - movs r0, 0 - bl sub_8089C7C - pop {r0} - bx r0 - .align 2, 0 -_08089EAC: .4byte gUnknown_03005CE0 -_08089EB0: .4byte gPlayerParty -_08089EB4: .4byte gStringVar1 -_08089EB8: .4byte gUnknown_0202FFA8 - thumb_func_end sub_8089E84 - - thumb_func_start sub_8089EBC -sub_8089EBC: @ 8089EBC - push {r4,r5,lr} - ldr r4, _08089EC4 @ =0x0201b260 - ldr r5, _08089EC8 @ =gUnknown_020384F0 - b _08089ED8 - .align 2, 0 -_08089EC4: .4byte 0x0201b260 -_08089EC8: .4byte gUnknown_020384F0 -_08089ECC: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08089F04 -_08089ED8: - bl sub_806B124 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08089ECC - ldrb r0, [r4] - ldrb r1, [r5] - bl sub_806C994 - ldrb r0, [r4] - movs r1, 0 - bl sub_806BF74 - ldr r1, _08089F0C @ =gUnknown_03005CE0 - ldrb r0, [r5] - strb r0, [r1] - bl sub_8089E84 - ldr r0, _08089F10 @ =sub_806AEDC - bl SetMainCallback2 -_08089F04: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08089F0C: .4byte gUnknown_03005CE0 -_08089F10: .4byte sub_806AEDC - thumb_func_end sub_8089EBC - - thumb_func_start sub_8089F14 -sub_8089F14: @ 8089F14 - push {lr} - ldr r2, _08089F38 @ =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - ldr r2, _08089F3C @ =sub_8089D94 - movs r0, 0 - movs r1, 0xFF - movs r3, 0x5 - bl sub_806AF4C - ldr r0, _08089F40 @ =sub_8089EBC - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08089F38: .4byte gPaletteFade -_08089F3C: .4byte sub_8089D94 -_08089F40: .4byte sub_8089EBC - thumb_func_end sub_8089F14 - - thumb_func_start sub_8089F44 -sub_8089F44: @ 8089F44 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _08089FAC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _08089FA2 - ldr r2, _08089FB0 @ =gSprites - ldr r1, _08089FB4 @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0xE] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r4, [r0, 0x2E] - lsls r4, 24 - lsrs r4, 24 - adds r0, r3, 0 - bl DestroyTask - ldr r0, _08089FB8 @ =0x0201b000 - ldr r1, _08089FBC @ =0x00000262 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r0, _08089FC0 @ =gPlayerParty - ldr r1, _08089FC4 @ =gPlayerPartyCount - ldrb r2, [r1] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldr r3, _08089FC8 @ =sub_8089F14 - str r5, [sp] - adds r1, r4, 0 - bl sub_809D8BC -_08089FA2: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08089FAC: .4byte gPaletteFade -_08089FB0: .4byte gSprites -_08089FB4: .4byte gTasks -_08089FB8: .4byte 0x0201b000 -_08089FBC: .4byte 0x00000262 -_08089FC0: .4byte gPlayerParty -_08089FC4: .4byte gPlayerPartyCount -_08089FC8: .4byte sub_8089F14 - thumb_func_end sub_8089F44 - - thumb_func_start PokemonMenu_Summary -PokemonMenu_Summary: @ 8089FCC - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _08089FFC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0808A000 @ =sub_8089F44 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08089FFC: .4byte gTasks -_0808A000: .4byte sub_8089F44 - thumb_func_end PokemonMenu_Summary - - thumb_func_start sub_808A004 -sub_808A004: @ 808A004 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0808A024 @ =sub_806CA60 - ldr r2, _0808A028 @ =sub_8089CD4 - bl SetTaskFuncWithFollowupFunc - movs r0, 0x13 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - pop {r0} - bx r0 - .align 2, 0 -_0808A024: .4byte sub_806CA60 -_0808A028: .4byte sub_8089CD4 - thumb_func_end sub_808A004 - - thumb_func_start PokemonMenu_Switch -PokemonMenu_Switch: @ 808A02C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8072DEC - ldr r0, _0808A054 @ =0x02001000 - ldr r1, _0808A058 @ =sub_806CD5C - str r1, [r0, 0xC] - ldr r1, _0808A05C @ =0x0001a272 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0] - adds r0, r4, 0 - bl sub_808A004 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808A054: .4byte 0x02001000 -_0808A058: .4byte sub_806CD5C -_0808A05C: .4byte 0x0001a272 - thumb_func_end PokemonMenu_Switch - - thumb_func_start sub_808A060 -sub_808A060: @ 808A060 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0808A0D0 @ =gMain - ldrh r0, [r0, 0x2E] - cmp r0, 0x40 - bne _0808A086 - ldr r4, _0808A0D4 @ =gUnknown_0202FFA8 - ldrb r0, [r4] - cmp r0, 0 - beq _0808A086 - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - strb r0, [r4] - movs r0, 0x5 - bl PlaySE -_0808A086: - ldr r0, _0808A0D0 @ =gMain - ldrh r0, [r0, 0x2E] - cmp r0, 0x80 - bne _0808A0A4 - ldr r4, _0808A0D4 @ =gUnknown_0202FFA8 - ldrb r0, [r4] - cmp r0, 0x2 - beq _0808A0A4 - movs r0, 0x1 - bl MoveMenuCursor - strb r0, [r4] - movs r0, 0x5 - bl PlaySE -_0808A0A4: - ldr r0, _0808A0D0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0808A0E0 - movs r0, 0x5 - bl PlaySE - ldr r1, _0808A0D8 @ =gUnknown_0839F578 - ldr r2, _0808A0DC @ =gPokemonMenuActions - ldr r0, _0808A0D4 @ =gUnknown_0202FFA8 - ldrb r3, [r0] - movs r0, 0 - bl sub_806E81C - adds r1, r0, 0 - adds r0, r5, 0 - bl _call_via_r1 - b _0808A0F6 - .align 2, 0 -_0808A0D0: .4byte gMain -_0808A0D4: .4byte gUnknown_0202FFA8 -_0808A0D8: .4byte gUnknown_0839F578 -_0808A0DC: .4byte gPokemonMenuActions -_0808A0E0: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0808A0F6 - ldr r1, _0808A0FC @ =gUnknown_0839F578 - movs r0, 0 - bl sub_806E7D0 - adds r0, r5, 0 - bl PokemonMenu_CancelSubmenu -_0808A0F6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808A0FC: .4byte gUnknown_0839F578 - thumb_func_end sub_808A060 - - thumb_func_start sub_808A100 -sub_808A100: @ 808A100 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _0808A130 @ =gUnknown_0839F578 - ldr r2, _0808A134 @ =gPokemonMenuActions - movs r0, 0 - movs r3, 0 - bl sub_806E750 - movs r0, 0xD - movs r1, 0x2 - bl sub_806D538 - ldr r1, _0808A138 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0808A13C @ =sub_808A060 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808A130: .4byte gUnknown_0839F578 -_0808A134: .4byte gPokemonMenuActions -_0808A138: .4byte gTasks -_0808A13C: .4byte sub_808A060 - thumb_func_end sub_808A100 - - thumb_func_start PokemonMenu_Item -PokemonMenu_Item: @ 808A140 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8072DEC - ldr r1, _0808A174 @ =gUnknown_0202FFA8 - movs r0, 0 - strb r0, [r1] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _0808A178 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0808A17C @ =sub_808A100 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808A174: .4byte gUnknown_0202FFA8 -_0808A178: .4byte gTasks -_0808A17C: .4byte sub_808A100 - thumb_func_end PokemonMenu_Item - - thumb_func_start sub_808A180 -sub_808A180: @ 808A180 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0808A1D0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0808A1CA - adds r0, r5, 0 - bl sub_806CA38 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0808A1D4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x40 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - bl DestroyTask - lsls r1, r4, 3 - adds r1, r4 - lsls r1, 2 - ldr r0, _0808A1D8 @ =gSaveBlock1 + 0x2B4C - adds r1, r0 - ldr r2, _0808A1DC @ =sub_808A520 - movs r0, 0x4 - movs r3, 0x3 - bl sub_80E62A0 -_0808A1CA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808A1D0: .4byte gPaletteFade -_0808A1D4: .4byte gPlayerParty -_0808A1D8: .4byte gSaveBlock1 + 0x2B4C -_0808A1DC: .4byte sub_808A520 - thumb_func_end sub_808A180 - - thumb_func_start sub_808A1E0 -sub_808A1E0: @ 808A1E0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0808A21C @ =gUnknown_0202E8F6 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0808A216 - adds r0, r4, 0 - bl sub_806CA38 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_806DF60 - movs r0, 0 - movs r1, 0 - bl sub_806D538 - ldr r1, _0808A220 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0808A224 @ =sub_8089CD4 - str r1, [r0] -_0808A216: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808A21C: .4byte gUnknown_0202E8F6 -_0808A220: .4byte gTasks -_0808A224: .4byte sub_8089CD4 - thumb_func_end sub_808A1E0 - - thumb_func_start sub_808A228 -sub_808A228: @ 808A228 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0808A268 @ =gScriptItemId - ldrh r0, [r0] - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - beq _0808A278 - ldr r0, _0808A26C @ =gUnknown_0202E8F4 - ldrb r0, [r0] - cmp r0, 0 - beq _0808A278 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0808A270 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0808A274 @ =sub_808A180 - str r1, [r0] - b _0808A29A - .align 2, 0 -_0808A268: .4byte gScriptItemId -_0808A26C: .4byte gUnknown_0202E8F4 -_0808A270: .4byte gTasks -_0808A274: .4byte sub_808A180 -_0808A278: - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r0, 0 - movs r1, 0 - bl sub_806D538 - ldr r0, _0808A2A4 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0808A2A8 @ =sub_8089CD4 - str r0, [r1] -_0808A29A: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808A2A4: .4byte gTasks -_0808A2A8: .4byte sub_8089CD4 - thumb_func_end sub_808A228 - - thumb_func_start sub_808A2AC -sub_808A2AC: @ 808A2AC - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _0808A2D0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0808A2CA - ldr r0, _0808A2D4 @ =gScriptItemId - ldrh r1, [r0] - ldr r2, _0808A2D8 @ =sub_808A228 - adds r0, r3, 0 - bl sub_806E964 -_0808A2CA: - pop {r0} - bx r0 - .align 2, 0 -_0808A2D0: .4byte gPaletteFade -_0808A2D4: .4byte gScriptItemId -_0808A2D8: .4byte sub_808A228 - thumb_func_end sub_808A2AC - - thumb_func_start sub_808A2DC -sub_808A2DC: @ 808A2DC - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r5, 0 - bl sub_806CA38 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0808A324 @ =gPlayerParty - adds r0, r1 - movs r1, 0x40 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - bl DestroyTask - lsls r1, r4, 3 - adds r1, r4 - lsls r1, 2 - ldr r0, _0808A328 @ =gSaveBlock1 + 0x2B4C - adds r1, r0 - ldr r2, _0808A32C @ =sub_808A520 - movs r0, 0x4 - movs r3, 0x3 - bl sub_80E62A0 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808A324: .4byte gPlayerParty -_0808A328: .4byte gSaveBlock1 + 0x2B4C -_0808A32C: .4byte sub_808A520 - thumb_func_end sub_808A2DC - - thumb_func_start sub_808A330 -sub_808A330: @ 808A330 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0808A344 @ =gScriptItemId - ldrh r1, [r1] - ldr r2, _0808A348 @ =sub_808A2DC - bl sub_806E964 - pop {r0} - bx r0 - .align 2, 0 -_0808A344: .4byte gScriptItemId -_0808A348: .4byte sub_808A2DC - thumb_func_end sub_808A330 - - thumb_func_start sub_808A34C -sub_808A34C: @ 808A34C - push {lr} - bl RunTasks - pop {r0} - bx r0 - thumb_func_end sub_808A34C - - thumb_func_start sub_808A358 -sub_808A358: @ 808A358 - push {r4,lr} - ldr r4, _0808A360 @ =0x0201b260 - b _0808A370 - .align 2, 0 -_0808A360: .4byte 0x0201b260 -_0808A364: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0808A394 -_0808A370: - bl sub_806B124 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808A364 - ldrb r0, [r4] - ldr r1, _0808A39C @ =gUnknown_03005CE0 - ldrb r1, [r1] - bl sub_806C994 - ldrb r0, [r4] - movs r1, 0 - bl sub_806BF74 - ldr r0, _0808A3A0 @ =sub_806AEDC - bl SetMainCallback2 -_0808A394: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808A39C: .4byte gUnknown_03005CE0 -_0808A3A0: .4byte sub_806AEDC - thumb_func_end sub_808A358 - - thumb_func_start sub_808A3A4 -sub_808A3A4: @ 808A3A4 - push {r4,r5,lr} - ldr r4, _0808A3D8 @ =0x0201b260 - adds r5, r4, 0x2 -_0808A3AA: - bl sub_806B124 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808A3E4 - ldrb r0, [r4] - ldr r1, _0808A3DC @ =gUnknown_03005CE0 - ldrb r1, [r1] - bl sub_806C994 - ldrb r0, [r4] - movs r1, 0 - bl sub_806BF74 - movs r0, 0x3 - strb r0, [r5] - bl sub_8089E84 - ldr r0, _0808A3E0 @ =sub_806AEDC - bl SetMainCallback2 - b _0808A3F0 - .align 2, 0 -_0808A3D8: .4byte 0x0201b260 -_0808A3DC: .4byte gUnknown_03005CE0 -_0808A3E0: .4byte sub_806AEDC -_0808A3E4: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808A3AA -_0808A3F0: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_808A3A4 - - thumb_func_start sub_808A3F8 -sub_808A3F8: @ 808A3F8 - push {r4,lr} - ldr r0, _0808A460 @ =gScriptItemId - ldrh r0, [r0] - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - beq _0808A47E - ldr r0, _0808A464 @ =sub_808A330 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - ldr r2, _0808A468 @ =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - adds r0, r4, 0 - movs r1, 0 - bl sub_806BD58 - ldr r0, _0808A46C @ =gUnknown_03005CE0 - ldrb r1, [r0] - adds r0, r4, 0 - bl sub_806C994 - adds r0, r4, 0 - movs r1, 0 - bl sub_806BF74 - adds r0, r4, 0 - bl sub_806CA38 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0808A470 @ =gPlayerParty - adds r0, r1 - movs r1, 0xC - bl GetMonData - lsls r0, 24 - cmp r0, 0 - bne _0808A478 - ldr r0, _0808A474 @ =sub_808A34C - bl SetMainCallback2 - b _0808A4C6 - .align 2, 0 -_0808A460: .4byte gScriptItemId -_0808A464: .4byte sub_808A330 -_0808A468: .4byte gPaletteFade -_0808A46C: .4byte gUnknown_03005CE0 -_0808A470: .4byte gPlayerParty -_0808A474: .4byte sub_808A34C -_0808A478: - adds r0, r4, 0 - bl DestroyTask -_0808A47E: - ldr r2, _0808A4A4 @ =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - ldr r0, _0808A4A8 @ =gScriptItemId - ldrh r0, [r0] - cmp r0, 0 - beq _0808A4B4 - ldr r2, _0808A4AC @ =sub_808A2AC - movs r0, 0 - movs r1, 0xFF - movs r3, 0xFF - bl sub_806AF4C - ldr r0, _0808A4B0 @ =sub_808A358 - bl SetMainCallback2 - b _0808A4C6 - .align 2, 0 -_0808A4A4: .4byte gPaletteFade -_0808A4A8: .4byte gScriptItemId -_0808A4AC: .4byte sub_808A2AC -_0808A4B0: .4byte sub_808A358 -_0808A4B4: - ldr r2, _0808A4CC @ =sub_8089D94 - movs r0, 0 - movs r1, 0xFF - movs r3, 0x5 - bl sub_806AF4C - ldr r0, _0808A4D0 @ =sub_808A3A4 - bl SetMainCallback2 -_0808A4C6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808A4CC: .4byte sub_8089D94 -_0808A4D0: .4byte sub_808A3A4 - thumb_func_end sub_808A3F8 - - thumb_func_start sub_808A4D4 -sub_808A4D4: @ 808A4D4 - push {r4,lr} - ldr r4, _0808A4DC @ =0x0201b260 - b _0808A4EC - .align 2, 0 -_0808A4DC: .4byte 0x0201b260 -_0808A4E0: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0808A510 -_0808A4EC: - bl sub_806B124 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808A4E0 - ldrb r0, [r4] - ldr r1, _0808A518 @ =gUnknown_03005CE0 - ldrb r1, [r1] - bl sub_806C994 - ldrb r0, [r4] - movs r1, 0 - bl sub_806BF74 - ldr r0, _0808A51C @ =sub_806AEDC - bl SetMainCallback2 -_0808A510: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808A518: .4byte gUnknown_03005CE0 -_0808A51C: .4byte sub_806AEDC - thumb_func_end sub_808A4D4 - - thumb_func_start sub_808A520 -sub_808A520: @ 808A520 - push {r4-r7,lr} - ldr r2, _0808A584 @ =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - ldr r0, _0808A588 @ =gScriptResult - ldrh r0, [r0] - cmp r0, 0 - bne _0808A59C - ldr r7, _0808A58C @ =gUnknown_0202E8F8 - ldrh r0, [r7] - cmp r0, 0 - beq _0808A542 - movs r1, 0x1 - bl RemoveBagItem -_0808A542: - ldr r6, _0808A590 @ =gUnknown_03005CE0 - ldrb r0, [r6] - movs r5, 0x64 - muls r0, r5 - ldr r4, _0808A594 @ =gPlayerParty - adds r0, r4 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl AddBagItem - ldrb r0, [r6] - muls r0, r5 - adds r0, r4 - bl sub_80A2DF8 - ldrb r0, [r6] - muls r0, r5 - adds r0, r4 - movs r1, 0xC - adds r2, r7, 0 - bl SetMonData - ldr r2, _0808A598 @ =sub_8089CD4 - movs r0, 0 - movs r1, 0xFF - movs r3, 0 - bl sub_806AF4C - b _0808A5A8 - .align 2, 0 -_0808A584: .4byte gPaletteFade -_0808A588: .4byte gScriptResult -_0808A58C: .4byte gUnknown_0202E8F8 -_0808A590: .4byte gUnknown_03005CE0 -_0808A594: .4byte gPlayerParty -_0808A598: .4byte sub_8089CD4 -_0808A59C: - ldr r2, _0808A5B4 @ =sub_808A5BC - movs r0, 0 - movs r1, 0xFF - movs r3, 0xFF - bl sub_806AF4C -_0808A5A8: - ldr r0, _0808A5B8 @ =sub_808A4D4 - bl SetMainCallback2 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0808A5B4: .4byte sub_808A5BC -_0808A5B8: .4byte sub_808A4D4 - thumb_func_end sub_808A520 - - thumb_func_start sub_808A5BC -sub_808A5BC: @ 808A5BC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0808A5F0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0808A5EA - ldr r0, _0808A5F4 @ =gUnknown_03005CE0 - ldrb r0, [r0] - ldr r1, _0808A5F8 @ =gScriptItemId - ldrh r1, [r1] - movs r2, 0 - bl sub_806EBF0 - ldr r1, _0808A5FC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0808A600 @ =sub_808A1E0 - str r1, [r0] -_0808A5EA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808A5F0: .4byte gPaletteFade -_0808A5F4: .4byte gUnknown_03005CE0 -_0808A5F8: .4byte gScriptItemId -_0808A5FC: .4byte gTasks -_0808A600: .4byte sub_808A1E0 - thumb_func_end sub_808A5BC - - thumb_func_start sub_808A604 -sub_808A604: @ 808A604 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0808A628 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0808A622 - ldr r0, _0808A62C @ =sub_80A61D0 - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_0808A622: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808A628: .4byte gPaletteFade -_0808A62C: .4byte sub_80A61D0 - thumb_func_end sub_808A604 - - thumb_func_start PokemonMenu_GiveItem -PokemonMenu_GiveItem: @ 808A630 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_806CA38 - ldr r1, _0808A66C @ =gUnknown_0202E8F5 - strb r0, [r1] - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0808A670 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0808A674 @ =sub_808A604 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808A66C: .4byte gUnknown_0202E8F5 -_0808A670: .4byte gTasks -_0808A674: .4byte sub_808A604 - thumb_func_end PokemonMenu_GiveItem - - thumb_func_start sub_808A678 -sub_808A678: @ 808A678 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_808A8D4 - pop {r0} - bx r0 - thumb_func_end sub_808A678 - - thumb_func_start PokemonMenu_TakeItem -PokemonMenu_TakeItem: @ 808A688 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8072DEC - movs r0, 0x13 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - bl sub_806D5A4 - ldr r1, _0808A6B4 @ =sub_808A678 - adds r0, r4, 0 - bl sub_806ECE8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808A6B4: .4byte sub_808A678 - thumb_func_end PokemonMenu_TakeItem - - thumb_func_start PokemonMenu_TakeMail -PokemonMenu_TakeMail: @ 808A6B8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8072DEC - movs r0, 0x13 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - bl sub_806D5A4 - ldr r1, _0808A6E4 @ =sub_808A678 - adds r0, r4, 0 - bl sub_806EE08 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808A6E4: .4byte sub_808A678 - thumb_func_end PokemonMenu_TakeMail - - thumb_func_start PokemonMenu_Mail -PokemonMenu_Mail: @ 808A6E8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8072DEC - ldr r1, _0808A728 @ =gUnknown_0202FFA8 - movs r0, 0 - strb r0, [r1] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _0808A72C @ =gUnknown_0839F584 - ldr r2, _0808A730 @ =gPokemonMenuActions - movs r0, 0 - movs r3, 0 - bl sub_806E750 - ldr r1, _0808A734 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0808A738 @ =sub_808A73C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808A728: .4byte gUnknown_0202FFA8 -_0808A72C: .4byte gUnknown_0839F584 -_0808A730: .4byte gPokemonMenuActions -_0808A734: .4byte gTasks -_0808A738: .4byte sub_808A73C - thumb_func_end PokemonMenu_Mail - - thumb_func_start sub_808A73C -sub_808A73C: @ 808A73C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0808A764 @ =gMain - ldrh r0, [r0, 0x30] - cmp r0, 0x40 - bne _0808A77A - movs r0, 0x5 - bl PlaySE - ldr r4, _0808A768 @ =gUnknown_0202FFA8 - ldrb r0, [r4] - cmp r0, 0 - bne _0808A770 - ldr r0, _0808A76C @ =gUnknown_0839F584 - ldrb r0, [r0] - subs r0, 0x1 - lsls r0, 24 - asrs r0, 24 - b _0808A774 - .align 2, 0 -_0808A764: .4byte gMain -_0808A768: .4byte gUnknown_0202FFA8 -_0808A76C: .4byte gUnknown_0839F584 -_0808A770: - movs r0, 0x1 - negs r0, r0 -_0808A774: - bl MoveMenuCursor - strb r0, [r4] -_0808A77A: - ldr r0, _0808A7A0 @ =gMain - ldrh r0, [r0, 0x30] - cmp r0, 0x80 - bne _0808A7B4 - movs r0, 0x5 - bl PlaySE - ldr r4, _0808A7A4 @ =gUnknown_0202FFA8 - ldrb r0, [r4] - ldr r1, _0808A7A8 @ =gUnknown_0839F584 - ldrb r2, [r1] - subs r1, r2, 0x1 - cmp r0, r1 - bne _0808A7AC - movs r0, 0x1 - subs r0, r2 - lsls r0, 24 - asrs r0, 24 - b _0808A7AE - .align 2, 0 -_0808A7A0: .4byte gMain -_0808A7A4: .4byte gUnknown_0202FFA8 -_0808A7A8: .4byte gUnknown_0839F584 -_0808A7AC: - movs r0, 0x1 -_0808A7AE: - bl MoveMenuCursor - strb r0, [r4] -_0808A7B4: - ldr r0, _0808A7E0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0808A7F0 - movs r0, 0x5 - bl PlaySE - ldr r1, _0808A7E4 @ =gUnknown_0839F584 - ldr r2, _0808A7E8 @ =gPokemonMenuActions - ldr r0, _0808A7EC @ =gUnknown_0202FFA8 - ldrb r3, [r0] - movs r0, 0 - bl sub_806E81C - adds r1, r0, 0 - adds r0, r5, 0 - bl _call_via_r1 - b _0808A806 - .align 2, 0 -_0808A7E0: .4byte gMain -_0808A7E4: .4byte gUnknown_0839F584 -_0808A7E8: .4byte gPokemonMenuActions -_0808A7EC: .4byte gUnknown_0202FFA8 -_0808A7F0: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0808A806 - ldr r1, _0808A80C @ =gUnknown_0839F584 - movs r0, 0 - bl sub_806E7D0 - adds r0, r5, 0 - bl PokemonMenu_Cancel -_0808A806: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808A80C: .4byte gUnknown_0839F584 - thumb_func_end sub_808A73C - - thumb_func_start PokemonMenu_ReadMail -PokemonMenu_ReadMail: @ 808A810 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0808A840 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0808A844 @ =sub_808A848 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808A840: .4byte gTasks -_0808A844: .4byte sub_808A848 - thumb_func_end PokemonMenu_ReadMail - - thumb_func_start sub_808A848 -sub_808A848: @ 808A848 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0808A898 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0808A890 - adds r0, r5, 0 - bl sub_806CA38 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0808A89C @ =gPlayerParty - adds r0, r1 - movs r1, 0x40 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - bl DestroyTask - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - ldr r1, _0808A8A0 @ =gSaveBlock1 + 0x2B4C - adds r0, r1 - ldr r1, _0808A8A4 @ =sub_808A8A8 - movs r2, 0x1 - bl sub_80F890C -_0808A890: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808A898: .4byte gPaletteFade -_0808A89C: .4byte gPlayerParty -_0808A8A0: .4byte gSaveBlock1 + 0x2B4C -_0808A8A4: .4byte sub_808A8A8 - thumb_func_end sub_808A848 - - thumb_func_start sub_808A8A8 -sub_808A8A8: @ 808A8A8 - push {lr} - ldr r1, _0808A8C4 @ =gUnknown_020384F0 - ldr r0, _0808A8C8 @ =gUnknown_03005CE0 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _0808A8CC @ =0x0201b000 - ldr r1, _0808A8D0 @ =0x00000262 - adds r0, r1 - movs r1, 0x4 - strb r1, [r0] - bl sub_8089F14 - pop {r0} - bx r0 - .align 2, 0 -_0808A8C4: .4byte gUnknown_020384F0 -_0808A8C8: .4byte gUnknown_03005CE0 -_0808A8CC: .4byte 0x0201b000 -_0808A8D0: .4byte 0x00000262 - thumb_func_end sub_808A8A8 - - thumb_func_start sub_808A8D4 -sub_808A8D4: @ 808A8D4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _0808A90C @ =gUnknown_0202FFA8 - movs r0, 0 - strb r0, [r1] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r0, 0 - movs r1, 0 - bl sub_806D538 - ldr r1, _0808A910 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0808A914 @ =sub_8089CD4 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808A90C: .4byte gUnknown_0202FFA8 -_0808A910: .4byte gTasks -_0808A914: .4byte sub_8089CD4 - thumb_func_end sub_808A8D4 - - thumb_func_start PokemonMenu_Cancel -PokemonMenu_Cancel: @ 808A918 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8072DEC - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_808A8D4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end PokemonMenu_Cancel - - thumb_func_start PokemonMenu_CancelSubmenu -PokemonMenu_CancelSubmenu: @ 808A938 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8072DEC - movs r0, 0x5 - bl PlaySE - movs r0, 0x13 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - bl sub_806D5A4 - ldr r0, _0808A978 @ =gUnknown_0202FFA8 - ldrb r0, [r0] - bl sub_8089C7C - ldr r1, _0808A97C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0808A980 @ =sub_8089D94 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808A978: .4byte gUnknown_0202FFA8 -_0808A97C: .4byte gTasks -_0808A980: .4byte sub_8089D94 - thumb_func_end PokemonMenu_CancelSubmenu - - thumb_func_start PokemonMenu_FieldMove -PokemonMenu_FieldMove: @ 808A984 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r6, r0, 3 - ldr r7, _0808A9D0 @ =gTasks + 0x8 - adds r4, r6, r7 - bl sub_8072DEC - ldr r1, _0808A9D4 @ =gUnknown_0202FFAA - ldr r0, _0808A9D8 @ =gUnknown_0202FFA8 - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - subs r0, 0xA - strh r0, [r4, 0x16] - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808A9DC - movs r0, 0x13 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldrh r0, [r4, 0x16] - subs r0, 0xB - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _0808AABA - movs r0, 0x9 - b _0808AAB2 - .align 2, 0 -_0808A9D0: .4byte gTasks + 0x8 -_0808A9D4: .4byte gUnknown_0202FFAA -_0808A9D8: .4byte gUnknown_0202FFA8 -_0808A9DC: - ldrh r1, [r4, 0x16] - movs r2, 0x16 - ldrsh r0, [r4, r2] - cmp r0, 0x7 - bgt _0808AA2C - ldr r2, _0808AA20 @ =0x00000807 - adds r0, r1, r2 - lsls r0, 16 - lsrs r0, 16 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0808AA2C - movs r0, 0x13 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - bl sub_806D5A4 - ldr r0, _0808AA24 @ =gOtherText_CantBeUsedBadge - movs r1, 0x1 - bl sub_806E834 - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0808AA28 @ =sub_808AAF0 - str r1, [r0] - b _0808AADA - .align 2, 0 -_0808AA20: .4byte 0x00000807 -_0808AA24: .4byte gOtherText_CantBeUsedBadge -_0808AA28: .4byte sub_808AAF0 -_0808AA2C: - ldr r1, _0808AA78 @ =gFieldMoveFuncs - movs r2, 0x16 - ldrsh r0, [r4, r2] - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808AA90 - ldr r1, _0808AA7C @ =gUnknown_0202FFA8 - movs r0, 0 - strb r0, [r1] - ldrh r0, [r4, 0x16] - subs r0, 0xB - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _0808AA88 - ldr r1, _0808AA80 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _0808AA84 @ =sub_808AB34 - str r1, [r0] - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _0808AADA - .align 2, 0 -_0808AA78: .4byte gFieldMoveFuncs -_0808AA7C: .4byte gUnknown_0202FFA8 -_0808AA80: .4byte gTasks -_0808AA84: .4byte sub_808AB34 -_0808AA88: - adds r0, r5, 0 - bl sub_8133D28 - b _0808AADA -_0808AA90: - movs r0, 0x13 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r1, 0x16 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bne _0808AABA - movs r0, 0x8 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - beq _0808AABA - movs r0, 0x8 -_0808AAB2: - movs r1, 0 - bl sub_806D538 - b _0808AACC -_0808AABA: - ldr r0, _0808AAE4 @ =gFieldMoveFuncs - movs r2, 0x16 - ldrsh r1, [r4, r2] - lsls r1, 3 - adds r1, r0 - ldrb r0, [r1, 0x4] - movs r1, 0 - bl sub_806D538 -_0808AACC: - ldr r0, _0808AAE8 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _0808AAEC @ =sub_808ABF4 - str r0, [r1] -_0808AADA: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0808AAE4: .4byte gFieldMoveFuncs -_0808AAE8: .4byte gTasks -_0808AAEC: .4byte sub_808ABF4 - thumb_func_end PokemonMenu_FieldMove - - thumb_func_start sub_808AAF0 -sub_808AAF0: @ 808AAF0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0808AB2C @ =gUnknown_0202E8F6 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0808AB24 - ldr r0, _0808AB30 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0808AB12 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0808AB24 -_0808AB12: - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl PokemonMenu_Cancel -_0808AB24: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808AB2C: .4byte gUnknown_0202E8F6 -_0808AB30: .4byte gMain - thumb_func_end sub_808AAF0 - - thumb_func_start sub_808AB34 -sub_808AB34: @ 808AB34 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0808AB6C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0808AB84 - ldr r0, _0808AB70 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r2, 0x1E - ldrsh r0, [r1, r2] - cmp r0, 0x5 - bne _0808AB62 - bl sub_8147588 - lsls r0, 24 - cmp r0, 0 - beq _0808AB78 -_0808AB62: - ldr r0, _0808AB74 @ =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - b _0808AB7E - .align 2, 0 -_0808AB6C: .4byte gPaletteFade -_0808AB70: .4byte gTasks -_0808AB74: .4byte c2_exit_to_overworld_2_switch -_0808AB78: - ldr r0, _0808AB8C @ =sub_80FC074 - bl SetMainCallback2 -_0808AB7E: - adds r0, r4, 0 - bl DestroyTask -_0808AB84: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808AB8C: .4byte sub_80FC074 - thumb_func_end sub_808AB34 - - thumb_func_start sub_808AB90 -sub_808AB90: @ 808AB90 - push {lr} - bl pal_fill_black - ldr r0, _0808ABA4 @ =sub_808ABA8 - movs r1, 0x8 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_0808ABA4: .4byte sub_808ABA8 - thumb_func_end sub_808AB90 - - thumb_func_start sub_808ABA8 -sub_808ABA8: @ 808ABA8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_807D770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808ABDE - ldr r0, _0808ABE4 @ =gUnknown_03005CE0 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0808ABE8 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - ldr r1, _0808ABEC @ =gUnknown_0202FF84 - str r0, [r1] - ldr r0, _0808ABF0 @ =gUnknown_03005CE4 - ldr r0, [r0] - bl _call_via_r0 - adds r0, r4, 0 - bl DestroyTask -_0808ABDE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808ABE4: .4byte gUnknown_03005CE0 -_0808ABE8: .4byte gPlayerParty -_0808ABEC: .4byte gUnknown_0202FF84 -_0808ABF0: .4byte gUnknown_03005CE4 - thumb_func_end sub_808ABA8 - - thumb_func_start sub_808ABF4 -sub_808ABF4: @ 808ABF4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0808AC28 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0808AC0E - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0808AC20 -_0808AC0E: - movs r0, 0x1 - movs r1, 0x11 - movs r2, 0x1C - movs r3, 0x12 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl PokemonMenu_Cancel -_0808AC20: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808AC28: .4byte gMain - thumb_func_end sub_808ABF4 - - thumb_func_start sub_808AC2C -sub_808AC2C: @ 808AC2C - push {lr} - ldr r0, _0808AC40 @ =gUnknown_0202FF84 - ldr r1, _0808AC44 @ =gUnknown_03005CE0 - ldrb r1, [r1] - str r1, [r0] - movs r0, 0x9 - bl FieldEffectStart - pop {r0} - bx r0 - .align 2, 0 -_0808AC40: .4byte gUnknown_0202FF84 -_0808AC44: .4byte gUnknown_03005CE0 - thumb_func_end sub_808AC2C - - thumb_func_start SetUpFieldMove_Surf -SetUpFieldMove_Surf: @ 808AC48 - push {lr} - bl PartyHasMonWithSurf - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808AC84 - bl IsPlayerFacingSurfableFishableWater - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808AC84 - ldr r1, _0808AC74 @ =gUnknown_0300485C - ldr r0, _0808AC78 @ =sub_808AB90 - str r0, [r1] - ldr r1, _0808AC7C @ =gUnknown_03005CE4 - ldr r0, _0808AC80 @ =sub_808AC2C - str r0, [r1] - movs r0, 0x1 - b _0808AC86 - .align 2, 0 -_0808AC74: .4byte gUnknown_0300485C -_0808AC78: .4byte sub_808AB90 -_0808AC7C: .4byte gUnknown_03005CE4 -_0808AC80: .4byte sub_808AC2C -_0808AC84: - movs r0, 0 -_0808AC86: - pop {r1} - bx r1 - thumb_func_end SetUpFieldMove_Surf - - thumb_func_start sub_808AC8C -sub_808AC8C: @ 808AC8C - push {lr} - ldr r0, _0808ACA0 @ =gUnknown_0202FF84 - ldr r1, _0808ACA4 @ =gUnknown_03005CE0 - ldrb r1, [r1] - str r1, [r0] - movs r0, 0x1F - bl FieldEffectStart - pop {r0} - bx r0 - .align 2, 0 -_0808ACA0: .4byte gUnknown_0202FF84 -_0808ACA4: .4byte gUnknown_03005CE0 - thumb_func_end sub_808AC8C - - thumb_func_start SetUpFieldMove_Fly -SetUpFieldMove_Fly: @ 808ACA8 - push {lr} - bl sub_8147588 - lsls r0, 24 - cmp r0, 0 - beq _0808ACD0 - ldr r1, _0808ACC0 @ =gUnknown_0300485C - ldr r0, _0808ACC4 @ =sub_808AB90 - str r0, [r1] - ldr r1, _0808ACC8 @ =gUnknown_03005CE4 - ldr r0, _0808ACCC @ =sub_81475C4 - b _0808ACF2 - .align 2, 0 -_0808ACC0: .4byte gUnknown_0300485C -_0808ACC4: .4byte sub_808AB90 -_0808ACC8: .4byte gUnknown_03005CE4 -_0808ACCC: .4byte sub_81475C4 -_0808ACD0: - ldr r0, _0808ACE4 @ =gMapHeader - ldrb r0, [r0, 0x17] - bl is_light_level_1_2_3_or_6 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0808ACE8 - movs r0, 0 - b _0808ACF6 - .align 2, 0 -_0808ACE4: .4byte gMapHeader -_0808ACE8: - ldr r1, _0808ACFC @ =gUnknown_0300485C - ldr r0, _0808AD00 @ =sub_808AB90 - str r0, [r1] - ldr r1, _0808AD04 @ =gUnknown_03005CE4 - ldr r0, _0808AD08 @ =sub_808AC8C -_0808ACF2: - str r0, [r1] - movs r0, 0x1 -_0808ACF6: - pop {r1} - bx r1 - .align 2, 0 -_0808ACFC: .4byte gUnknown_0300485C -_0808AD00: .4byte sub_808AB90 -_0808AD04: .4byte gUnknown_03005CE4 -_0808AD08: .4byte sub_808AC8C - thumb_func_end SetUpFieldMove_Fly - - thumb_func_start sub_808AD0C -sub_808AD0C: @ 808AD0C - push {r4,lr} - ldr r4, _0808AD14 @ =0x0201b260 - b _0808AD24 - .align 2, 0 -_0808AD14: .4byte 0x0201b260 -_0808AD18: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0808AD48 -_0808AD24: - bl sub_806B124 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808AD18 - ldrb r0, [r4] - ldr r1, _0808AD50 @ =gUnknown_03005CE0 - ldrb r1, [r1] - bl sub_806C994 - ldrb r0, [r4] - movs r1, 0 - bl sub_806BF74 - ldr r0, _0808AD54 @ =sub_806AEDC - bl SetMainCallback2 -_0808AD48: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808AD50: .4byte gUnknown_03005CE0 -_0808AD54: .4byte sub_806AEDC - thumb_func_end sub_808AD0C - - thumb_func_start sub_808AD58 -sub_808AD58: @ 808AD58 - push {lr} - ldr r2, _0808AD7C @ =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - ldr r2, _0808AD80 @ =sub_8089CD4 - movs r0, 0 - movs r1, 0xFF - movs r3, 0 - bl sub_806AF4C - ldr r0, _0808AD84 @ =sub_808AD0C - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0808AD7C: .4byte gPaletteFade -_0808AD80: .4byte sub_8089CD4 -_0808AD84: .4byte sub_808AD0C - thumb_func_end sub_808AD58 - - thumb_func_start unref_sub_808AD88 -unref_sub_808AD88: @ 808AD88 - push {lr} - ldr r0, _0808ADA4 @ =gUnknown_03005CE0 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0808ADA8 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .align 2, 0 -_0808ADA4: .4byte gUnknown_03005CE0 -_0808ADA8: .4byte gPlayerParty - thumb_func_end unref_sub_808AD88 - - thumb_func_start sub_808ADAC -sub_808ADAC: @ 808ADAC - push {lr} - ldr r0, _0808ADC0 @ =gUnknown_0202FF84 - ldr r1, _0808ADC4 @ =gUnknown_03005CE0 - ldrb r1, [r1] - str r1, [r0] - movs r0, 0x2C - bl FieldEffectStart - pop {r0} - bx r0 - .align 2, 0 -_0808ADC0: .4byte gUnknown_0202FF84 -_0808ADC4: .4byte gUnknown_03005CE0 - thumb_func_end sub_808ADAC - - thumb_func_start SetUpFieldMove_Dive -SetUpFieldMove_Dive: @ 808ADC8 - push {lr} - bl sub_8068F18 - ldr r1, _0808ADE0 @ =gUnknown_0202FF84 - lsls r0, 24 - lsrs r0, 24 - str r0, [r1, 0x4] - cmp r0, 0 - bne _0808ADE4 - movs r0, 0 - b _0808ADF2 - .align 2, 0 -_0808ADE0: .4byte gUnknown_0202FF84 -_0808ADE4: - ldr r1, _0808ADF8 @ =gUnknown_0300485C - ldr r0, _0808ADFC @ =sub_808AB90 - str r0, [r1] - ldr r1, _0808AE00 @ =gUnknown_03005CE4 - ldr r0, _0808AE04 @ =sub_808ADAC - str r0, [r1] - movs r0, 0x1 -_0808ADF2: - pop {r1} - bx r1 - .align 2, 0 -_0808ADF8: .4byte gUnknown_0300485C -_0808ADFC: .4byte sub_808AB90 -_0808AE00: .4byte gUnknown_03005CE4 -_0808AE04: .4byte sub_808ADAC - thumb_func_end SetUpFieldMove_Dive - - thumb_func_start sub_808AE08 -sub_808AE08: @ 808AE08 - push {lr} - ldr r0, _0808AE1C @ =gUnknown_0202FF84 - ldr r1, _0808AE20 @ =gUnknown_03005CE0 - ldrb r1, [r1] - str r1, [r0] - movs r0, 0x2B - bl FieldEffectStart - pop {r0} - bx r0 - .align 2, 0 -_0808AE1C: .4byte gUnknown_0202FF84 -_0808AE20: .4byte gUnknown_03005CE0 - thumb_func_end sub_808AE08 - - thumb_func_start SetUpFieldMove_Waterfall -SetUpFieldMove_Waterfall: @ 808AE24 - push {r4,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsWaterfall - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808AE80 - bl IsPlayerSurfingNorth - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808AE80 - ldr r1, _0808AE70 @ =gUnknown_0300485C - ldr r0, _0808AE74 @ =sub_808AB90 - str r0, [r1] - ldr r1, _0808AE78 @ =gUnknown_03005CE4 - ldr r0, _0808AE7C @ =sub_808AE08 - str r0, [r1] - movs r0, 0x1 - b _0808AE82 - .align 2, 0 -_0808AE70: .4byte gUnknown_0300485C -_0808AE74: .4byte sub_808AB90 -_0808AE78: .4byte gUnknown_03005CE4 -_0808AE7C: .4byte sub_808AE08 -_0808AE80: - movs r0, 0 -_0808AE82: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end SetUpFieldMove_Waterfall - - thumb_func_start sub_808AE8C -sub_808AE8C: @ 808AE8C - push {r4-r6,lr} - ldr r0, _0808AED8 @ =gScriptItemId - ldrb r0, [r0] - subs r0, 0x21 - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 -_0808AE9A: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _0808AEDC @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0808AF10 - adds r0, r5, 0 - bl sub_806D668 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0808AECE - adds r0, r4, 0 - adds r1, r6, 0 - bl CanMonLearnTMHM - cmp r0, 0 - bne _0808AEE0 -_0808AECE: - adds r0, r5, 0 - movs r1, 0x9A - bl sub_806BC3C - b _0808AF10 - .align 2, 0 -_0808AED8: .4byte gScriptItemId -_0808AEDC: .4byte gPlayerParty -_0808AEE0: - ldr r0, _0808AF04 @ =gScriptItemId - ldrh r0, [r0] - bl ItemIdToBattleMoveId - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl pokemon_has_move - lsls r0, 24 - cmp r0, 0 - beq _0808AF08 - adds r0, r5, 0 - movs r1, 0xA8 - bl sub_806BC3C - b _0808AF10 - .align 2, 0 -_0808AF04: .4byte gScriptItemId -_0808AF08: - adds r0, r5, 0 - movs r1, 0x8C - bl sub_806BC3C -_0808AF10: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _0808AE9A - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_808AE8C - - thumb_func_start sub_808AF20 -sub_808AF20: @ 808AF20 - push {r4,r5,lr} - movs r5, 0 -_0808AF24: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _0808AF78 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0808AF66 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0808AF58 - ldr r0, _0808AF7C @ =gScriptItemId - ldrh r2, [r0] - adds r0, r4, 0 - movs r1, 0x3 - bl GetEvolutionTargetSpecies - lsls r0, 16 - cmp r0, 0 - bne _0808AF66 -_0808AF58: - adds r0, r5, 0 - bl sub_806D668 - adds r0, r5, 0 - movs r1, 0 - bl sub_806BC3C -_0808AF66: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _0808AF24 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808AF78: .4byte gPlayerParty -_0808AF7C: .4byte gScriptItemId - thumb_func_end sub_808AF20 - - thumb_func_start sub_808AF80 -sub_808AF80: @ 808AF80 - push {r4,r5,lr} - ldr r5, _0808AFB0 @ =0x0201b260 -_0808AF84: - bl sub_806B124 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808B00C - ldr r0, _0808AFB4 @ =gUnknown_02038561 - ldrb r0, [r0] - cmp r0, 0 - bne _0808AFC6 - ldr r0, _0808AFB8 @ =gScriptItemId - ldrh r0, [r0] - bl CheckIfItemIsTMHMOrEvolutionStone - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0808AFBC - cmp r0, 0x2 - beq _0808AFC2 - b _0808AFC6 - .align 2, 0 -_0808AFB0: .4byte 0x0201b260 -_0808AFB4: .4byte gUnknown_02038561 -_0808AFB8: .4byte gScriptItemId -_0808AFBC: - bl sub_808AE8C - b _0808AFC6 -_0808AFC2: - bl sub_808AF20 -_0808AFC6: - ldr r4, _0808B000 @ =gUnknown_03005CE0 - ldrb r0, [r4] - cmp r0, 0x5 - bhi _0808AFE2 - adds r1, r0, 0 - movs r0, 0x64 - muls r0, r1 - ldr r1, _0808B004 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - bne _0808AFE6 -_0808AFE2: - movs r0, 0 - strb r0, [r4] -_0808AFE6: - ldrb r0, [r5] - ldr r1, _0808B000 @ =gUnknown_03005CE0 - ldrb r1, [r1] - bl sub_806C994 - ldrb r0, [r5] - movs r1, 0 - bl sub_806BF74 - ldr r0, _0808B008 @ =sub_806AEDC - bl SetMainCallback2 - b _0808B018 - .align 2, 0 -_0808B000: .4byte gUnknown_03005CE0 -_0808B004: .4byte gPlayerParty -_0808B008: .4byte sub_806AEDC -_0808B00C: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808AF84 -_0808B018: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_808AF80 - - thumb_func_start sub_808B020 -sub_808B020: @ 808B020 - push {lr} - ldr r2, _0808B040 @ =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - ldr r0, _0808B044 @ =gUnknown_02038561 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0808B0A0 - cmp r0, 0x1 - bgt _0808B048 - cmp r0, 0 - beq _0808B052 - b _0808B0AC - .align 2, 0 -_0808B040: .4byte gPaletteFade -_0808B044: .4byte gUnknown_02038561 -_0808B048: - cmp r0, 0x3 - beq _0808B0A0 - cmp r0, 0x4 - beq _0808B08C - b _0808B0AC -_0808B052: - ldr r0, _0808B070 @ =gScriptItemId - ldrh r0, [r0] - bl CheckIfItemIsTMHMOrEvolutionStone - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808B078 - ldr r2, _0808B074 @ =sub_808B0C0 - movs r0, 0 - movs r1, 0 - movs r3, 0x14 - bl sub_806AF4C - b _0808B0AC - .align 2, 0 -_0808B070: .4byte gScriptItemId -_0808B074: .4byte sub_808B0C0 -_0808B078: - ldr r2, _0808B088 @ =sub_808B0C0 - movs r0, 0 - movs r1, 0 - movs r3, 0x3 - bl sub_806AF4C - b _0808B0AC - .align 2, 0 -_0808B088: .4byte sub_808B0C0 -_0808B08C: - ldr r2, _0808B09C @ =sub_808B1EC - movs r0, 0 - movs r1, 0 - movs r3, 0xFF - bl sub_806AF4C - b _0808B0AC - .align 2, 0 -_0808B09C: .4byte sub_808B1EC -_0808B0A0: - ldr r2, _0808B0B8 @ =sub_808B0C0 - movs r0, 0 - movs r1, 0 - movs r3, 0x4 - bl sub_806AF4C -_0808B0AC: - ldr r0, _0808B0BC @ =sub_808AF80 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0808B0B8: .4byte sub_808B0C0 -_0808B0BC: .4byte sub_808AF80 - thumb_func_end sub_808B020 - - thumb_func_start sub_808B0C0 -sub_808B0C0: @ 808B0C0 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0808B0EC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _0808B1CE - adds r0, r4, 0 - bl sub_806BD80 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - beq _0808B0F0 - cmp r0, 0x2 - beq _0808B184 - b _0808B1CE - .align 2, 0 -_0808B0EC: .4byte gPaletteFade -_0808B0F0: - adds r0, r4, 0 - bl sub_806CA38 - ldr r1, _0808B118 @ =gUnknown_03005CE0 - strb r0, [r1] - ldrb r1, [r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0808B11C @ =gPlayerParty - adds r0, r1 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - beq _0808B120 - movs r0, 0x20 - bl PlaySE - b _0808B1CE - .align 2, 0 -_0808B118: .4byte gUnknown_03005CE0 -_0808B11C: .4byte gPlayerParty -_0808B120: - bl sub_806D5A4 - ldr r5, _0808B16C @ =gUnknown_02038561 - ldrb r0, [r5] - cmp r0, 0 - bne _0808B13C - ldr r3, _0808B170 @ =gUnknown_03004AE4 - ldr r0, _0808B174 @ =gScriptItemId - ldrh r1, [r0] - ldr r2, _0808B178 @ =sub_808B224 - ldr r3, [r3] - adds r0, r4, 0 - bl _call_via_r3 -_0808B13C: - ldrb r0, [r5] - cmp r0, 0x1 - bne _0808B154 - movs r0, 0x5 - bl PlaySE - ldr r0, _0808B174 @ =gScriptItemId - ldrh r1, [r0] - ldr r2, _0808B17C @ =sub_808B2EC - adds r0, r4, 0 - bl sub_806E964 -_0808B154: - ldrb r0, [r5] - cmp r0, 0x3 - bne _0808B1CE - movs r0, 0x5 - bl PlaySE - ldr r1, _0808B180 @ =sub_808B2B4 - adds r0, r4, 0 - bl sub_806EC44 - b _0808B1CE - .align 2, 0 -_0808B16C: .4byte gUnknown_02038561 -_0808B170: .4byte gUnknown_03004AE4 -_0808B174: .4byte gScriptItemId -_0808B178: .4byte sub_808B224 -_0808B17C: .4byte sub_808B2EC -_0808B180: .4byte sub_808B2B4 -_0808B184: - adds r0, r4, 0 - bl sub_806CA38 - ldr r1, _0808B1D8 @ =gUnknown_03005CE0 - strb r0, [r1] - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - str r5, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r2, _0808B1DC @ =gUnknown_02038561 - ldrb r0, [r2] - cmp r0, 0x1 - bhi _0808B1BA - ldr r0, _0808B1E0 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0808B1E4 @ =sub_808B25C - str r0, [r1] -_0808B1BA: - ldrb r0, [r2] - cmp r0, 0x3 - bne _0808B1CE - ldr r0, _0808B1E0 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0808B1E8 @ =sub_808B2B4 - str r0, [r1] -_0808B1CE: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808B1D8: .4byte gUnknown_03005CE0 -_0808B1DC: .4byte gUnknown_02038561 -_0808B1E0: .4byte gTasks -_0808B1E4: .4byte sub_808B25C -_0808B1E8: .4byte sub_808B2B4 - thumb_func_end sub_808B0C0 - - thumb_func_start sub_808B1EC -sub_808B1EC: @ 808B1EC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0808B214 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0808B20E - ldr r3, _0808B218 @ =gUnknown_03004AE4 - ldr r0, _0808B21C @ =gScriptItemId - ldrh r1, [r0] - ldr r2, _0808B220 @ =sub_808B224 - ldr r3, [r3] - adds r0, r4, 0 - bl _call_via_r3 -_0808B20E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808B214: .4byte gPaletteFade -_0808B218: .4byte gUnknown_03004AE4 -_0808B21C: .4byte gScriptItemId -_0808B220: .4byte sub_808B224 - thumb_func_end sub_808B1EC - - thumb_func_start sub_808B224 -sub_808B224: @ 808B224 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0808B254 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0808B258 @ =sub_808B25C - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808B254: .4byte gTasks -_0808B258: .4byte sub_808B25C - thumb_func_end sub_808B224 - - thumb_func_start sub_808B25C -sub_808B25C: @ 808B25C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0808B280 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0808B27A - ldr r0, _0808B284 @ =sub_80A5B40 - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_0808B27A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808B280: .4byte gPaletteFade -_0808B284: .4byte sub_80A5B40 - thumb_func_end sub_808B25C - - thumb_func_start sub_808B288 -sub_808B288: @ 808B288 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0808B2AC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0808B2A6 - ldr r0, _0808B2B0 @ =sub_813B6F8 - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_0808B2A6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808B2AC: .4byte gPaletteFade -_0808B2B0: .4byte sub_813B6F8 - thumb_func_end sub_808B288 - - thumb_func_start sub_808B2B4 -sub_808B2B4: @ 808B2B4 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0808B2E4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0808B2E8 @ =sub_808B288 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808B2E4: .4byte gTasks -_0808B2E8: .4byte sub_808B288 - thumb_func_end sub_808B2B4 - - thumb_func_start sub_808B2EC -sub_808B2EC: @ 808B2EC - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0808B31C @ =gUnknown_0202E8F4 - ldrb r0, [r0] - cmp r0, 0x2 - bne _0808B328 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0808B320 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0808B324 @ =sub_808B338 - str r1, [r0] - b _0808B32E - .align 2, 0 -_0808B31C: .4byte gUnknown_0202E8F4 -_0808B320: .4byte gTasks -_0808B324: .4byte sub_808B338 -_0808B328: - adds r0, r4, 0 - bl sub_808B224 -_0808B32E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_808B2EC - - thumb_func_start sub_808B338 -sub_808B338: @ 808B338 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0808B38C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0808B384 - adds r0, r5, 0 - bl sub_806CA38 - ldr r1, _0808B390 @ =gUnknown_03005CE0 - strb r0, [r1] - ldrb r1, [r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0808B394 @ =gPlayerParty - adds r0, r1 - movs r1, 0x40 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - bl DestroyTask - lsls r1, r4, 3 - adds r1, r4 - lsls r1, 2 - ldr r0, _0808B398 @ =gSaveBlock1 + 0x2B4C - adds r1, r0 - ldr r2, _0808B39C @ =sub_808B3EC - movs r0, 0x4 - movs r3, 0x3 - bl sub_80E62A0 -_0808B384: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808B38C: .4byte gPaletteFade -_0808B390: .4byte gUnknown_03005CE0 -_0808B394: .4byte gPlayerParty -_0808B398: .4byte gSaveBlock1 + 0x2B4C -_0808B39C: .4byte sub_808B3EC - thumb_func_end sub_808B338 - - thumb_func_start sub_808B3A0 -sub_808B3A0: @ 808B3A0 - push {r4,lr} - ldr r4, _0808B3A8 @ =0x0201b260 - b _0808B3B8 - .align 2, 0 -_0808B3A8: .4byte 0x0201b260 -_0808B3AC: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0808B3DC -_0808B3B8: - bl sub_806B124 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808B3AC - ldrb r0, [r4] - ldr r1, _0808B3E4 @ =gUnknown_03005CE0 - ldrb r1, [r1] - bl sub_806C994 - ldrb r0, [r4] - movs r1, 0 - bl sub_806BF74 - ldr r0, _0808B3E8 @ =sub_806AEDC - bl SetMainCallback2 -_0808B3DC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808B3E4: .4byte gUnknown_03005CE0 -_0808B3E8: .4byte sub_806AEDC - thumb_func_end sub_808B3A0 - - thumb_func_start sub_808B3EC -sub_808B3EC: @ 808B3EC - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _0808B464 @ =gPaletteFade - mov r8, r0 - ldrb r0, [r0, 0x8] - movs r1, 0x80 - orrs r0, r1 - mov r1, r8 - strb r0, [r1, 0x8] - ldr r0, _0808B468 @ =gScriptResult - ldrh r0, [r0] - cmp r0, 0 - bne _0808B480 - ldr r7, _0808B46C @ =gUnknown_0202E8F8 - ldrh r0, [r7] - cmp r0, 0 - beq _0808B416 - movs r1, 0x1 - bl RemoveBagItem -_0808B416: - ldr r6, _0808B470 @ =gUnknown_03005CE0 - ldrb r0, [r6] - movs r5, 0x64 - muls r0, r5 - ldr r4, _0808B474 @ =gPlayerParty - adds r0, r4 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl AddBagItem - ldrb r0, [r6] - muls r0, r5 - adds r0, r4 - bl sub_80A2DF8 - ldrb r0, [r6] - muls r0, r5 - adds r0, r4 - movs r1, 0xC - adds r2, r7, 0 - bl SetMonData - ldr r0, _0808B478 @ =sub_808B25C - movs r1, 0x5 - bl CreateTask - mov r0, r8 - ldrb r1, [r0, 0x8] - movs r0, 0x7F - ands r0, r1 - mov r1, r8 - strb r0, [r1, 0x8] - ldr r0, _0808B47C @ =sub_806AEDC - b _0808B48E - .align 2, 0 -_0808B464: .4byte gPaletteFade -_0808B468: .4byte gScriptResult -_0808B46C: .4byte gUnknown_0202E8F8 -_0808B470: .4byte gUnknown_03005CE0 -_0808B474: .4byte gPlayerParty -_0808B478: .4byte sub_808B25C -_0808B47C: .4byte sub_806AEDC -_0808B480: - ldr r2, _0808B49C @ =sub_808B4A4 - movs r0, 0 - movs r1, 0 - movs r3, 0xFF - bl sub_806AF4C - ldr r0, _0808B4A0 @ =sub_808B3A0 -_0808B48E: - bl SetMainCallback2 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0808B49C: .4byte sub_808B4A4 -_0808B4A0: .4byte sub_808B3A0 - thumb_func_end sub_808B3EC - - thumb_func_start sub_808B4A4 -sub_808B4A4: @ 808B4A4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0808B4D8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0808B4D2 - ldr r0, _0808B4DC @ =gUnknown_03005CE0 - ldrb r0, [r0] - ldr r1, _0808B4E0 @ =gScriptItemId - ldrh r1, [r1] - movs r2, 0x1 - bl sub_806EBF0 - ldr r1, _0808B4E4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0808B4E8 @ =sub_808B4EC - str r1, [r0] -_0808B4D2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808B4D8: .4byte gPaletteFade -_0808B4DC: .4byte gUnknown_03005CE0 -_0808B4E0: .4byte gScriptItemId -_0808B4E4: .4byte gTasks -_0808B4E8: .4byte sub_808B4EC - thumb_func_end sub_808B4A4 - - thumb_func_start sub_808B4EC -sub_808B4EC: @ 808B4EC - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _0808B504 @ =gUnknown_0202E8F6 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0808B500 - adds r0, r1, 0 - bl sub_808B224 -_0808B500: - pop {r0} - bx r0 - .align 2, 0 -_0808B504: .4byte gUnknown_0202E8F6 - thumb_func_end sub_808B4EC - - thumb_func_start sub_808B508 -sub_808B508: @ 808B508 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_808B224 - pop {r0} - bx r0 - thumb_func_end sub_808B508 - - thumb_func_start sub_808B518 -sub_808B518: @ 808B518 - push {r4,lr} - ldr r4, _0808B520 @ =0x0201b260 - b _0808B530 - .align 2, 0 -_0808B520: .4byte 0x0201b260 -_0808B524: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0808B554 -_0808B530: - bl sub_806B124 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808B524 - ldrb r0, [r4] - ldr r1, _0808B55C @ =gUnknown_020384F0 - ldrb r1, [r1] - bl sub_806C994 - ldrb r0, [r4] - movs r1, 0 - bl sub_806BF74 - ldr r0, _0808B560 @ =sub_806AEDC - bl SetMainCallback2 -_0808B554: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808B55C: .4byte gUnknown_020384F0 -_0808B560: .4byte sub_806AEDC - thumb_func_end sub_808B518 - - thumb_func_start sub_808B564 -sub_808B564: @ 808B564 - push {lr} - ldr r2, _0808B58C @ =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - bl sub_809FA30 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - beq _0808B594 - ldr r2, _0808B590 @ =sub_806F490 - movs r0, 0 - movs r1, 0 - movs r3, 0xFF - bl sub_806AF4C - b _0808B5A0 - .align 2, 0 -_0808B58C: .4byte gPaletteFade -_0808B590: .4byte sub_806F490 -_0808B594: - ldr r2, _0808B5AC @ =sub_806F588 - movs r0, 0 - movs r1, 0 - movs r3, 0xFF - bl sub_806AF4C -_0808B5A0: - ldr r0, _0808B5B0 @ =sub_808B518 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0808B5AC: .4byte sub_806F588 -_0808B5B0: .4byte sub_808B518 - thumb_func_end sub_808B564 - - thumb_func_start sub_808B5B4 -sub_808B5B4: @ 808B5B4 - push {lr} - ldr r3, _0808B5D8 @ =gUnknown_03005CF0 - ldr r2, _0808B5DC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, [r1] - str r2, [r3] - ldr r2, _0808B5E0 @ =sub_808B5E4 - str r2, [r1] - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r2 - pop {r0} - bx r0 - .align 2, 0 -_0808B5D8: .4byte gUnknown_03005CF0 -_0808B5DC: .4byte gTasks -_0808B5E0: .4byte sub_808B5E4 - thumb_func_end sub_808B5B4 - - thumb_func_start sub_808B5E4 -sub_808B5E4: @ 808B5E4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8055870 - cmp r0, 0x1 - beq _0808B602 - ldr r1, _0808B608 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0808B60C @ =gUnknown_03005CF0 - ldr r1, [r1] - str r1, [r0] -_0808B602: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808B608: .4byte gTasks -_0808B60C: .4byte gUnknown_03005CF0 - thumb_func_end sub_808B5E4 - .align 2, 0 @ Don't pad with nop. diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s index 68a1b02c9..9df9dfd8d 100644 --- a/asm/field_effect_helpers.s +++ b/asm/field_effect_helpers.s @@ -715,7 +715,7 @@ _08126D3E: cmp r0, r1 bne _08126DBC ldrb r0, [r4, 0x1E] - bl sub_8056E14 + bl MetatileBehavior_IsPokeGrass lsls r0, 24 cmp r0, 0 bne _08126DBC diff --git a/asm/field_ground_effect.s b/asm/field_ground_effect.s index c853d8c50..47c4b4c60 100644 --- a/asm/field_ground_effect.s +++ b/asm/field_ground_effect.s @@ -6,594 +6,6 @@ .text - thumb_func_start GetAllGroundEffectFlags_OnSpawn -GetAllGroundEffectFlags_OnSpawn: @ 80635F0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl FieldObjectUpdateMetatileBehaviors - adds r0, r4, 0 - adds r1, r5, 0 - bl GetGroundEffectFlags_Reflection - adds r0, r4, 0 - adds r1, r5, 0 - bl GetGroundEffectFlags_TallGrassOnSpawn - adds r0, r4, 0 - adds r1, r5, 0 - bl GetGroundEffectFlags_LongGrassOnSpawn - adds r0, r4, 0 - adds r1, r5, 0 - bl GetGroundEffectFlags_SandHeap - adds r0, r4, 0 - adds r1, r5, 0 - bl GetGroundEffectFlags_ShallowFlowingWater - adds r0, r4, 0 - adds r1, r5, 0 - bl GetGroundEffectFlags_ShortGrass - adds r0, r4, 0 - adds r1, r5, 0 - bl GetGroundEffectFlags_HotSprings - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end GetAllGroundEffectFlags_OnSpawn - - thumb_func_start GetAllGroundEffectFlags_OnBeginStep -GetAllGroundEffectFlags_OnBeginStep: @ 8063638 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl FieldObjectUpdateMetatileBehaviors - adds r0, r4, 0 - adds r1, r5, 0 - bl GetGroundEffectFlags_Reflection - adds r0, r4, 0 - adds r1, r5, 0 - bl GetGroundEffectFlags_TallGrassOnBeginStep - adds r0, r4, 0 - adds r1, r5, 0 - bl GetGroundEffectFlags_LongGrassOnBeginStep - adds r0, r4, 0 - adds r1, r5, 0 - bl GetGroundEffectFlags_Tracks - adds r0, r4, 0 - adds r1, r5, 0 - bl GetGroundEffectFlags_SandHeap - adds r0, r4, 0 - adds r1, r5, 0 - bl GetGroundEffectFlags_ShallowFlowingWater - adds r0, r4, 0 - adds r1, r5, 0 - bl GetGroundEffectFlags_Puddle - adds r0, r4, 0 - adds r1, r5, 0 - bl GetGroundEffectFlags_ShortGrass - adds r0, r4, 0 - adds r1, r5, 0 - bl GetGroundEffectFlags_HotSprings - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end GetAllGroundEffectFlags_OnBeginStep - - thumb_func_start GetAllGroundEffectFlags_OnFinishStep -GetAllGroundEffectFlags_OnFinishStep: @ 8063690 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl FieldObjectUpdateMetatileBehaviors - adds r0, r4, 0 - adds r1, r5, 0 - bl GetGroundEffectFlags_ShallowFlowingWater - adds r0, r4, 0 - adds r1, r5, 0 - bl GetGroundEffectFlags_SandHeap - adds r0, r4, 0 - adds r1, r5, 0 - bl GetGroundEffectFlags_Puddle - adds r0, r4, 0 - adds r1, r5, 0 - bl GetGroundEffectFlags_Ripple - adds r0, r4, 0 - adds r1, r5, 0 - bl GetGroundEffectFlags_ShortGrass - adds r0, r4, 0 - adds r1, r5, 0 - bl GetGroundEffectFlags_HotSprings - adds r0, r4, 0 - adds r1, r5, 0 - bl GetGroundEffectFlags_Seaweed - adds r0, r4, 0 - adds r1, r5, 0 - bl GetGroundEffectFlags_JumpLanding - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end GetAllGroundEffectFlags_OnFinishStep - - thumb_func_start FieldObjectUpdateMetatileBehaviors -FieldObjectUpdateMetatileBehaviors: @ 80636E0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x14 - ldrsh r0, [r4, r1] - movs r2, 0x16 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - strb r0, [r4, 0x1F] - movs r1, 0x10 - ldrsh r0, [r4, r1] - movs r2, 0x12 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - strb r0, [r4, 0x1E] - pop {r4} - pop {r0} - bx r0 - thumb_func_end FieldObjectUpdateMetatileBehaviors - - thumb_func_start GetGroundEffectFlags_Reflection -GetGroundEffectFlags_Reflection: @ 8063708 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, _0806374C @ =gUnknown_08376008 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - adds r0, r4, 0 - bl FieldObjectCheckForReflectiveSurface - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _08063750 - ldrb r1, [r4, 0x2] - lsls r0, r1, 30 - cmp r0, 0 - blt _0806375A - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4, 0x2] - subs r0, r2, 0x1 - lsls r0, 2 - add r0, sp - ldr r1, [r5] - ldr r0, [r0] - orrs r1, r0 - str r1, [r5] - b _0806375A - .align 2, 0 -_0806374C: .4byte gUnknown_08376008 -_08063750: - ldrb r1, [r4, 0x2] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x2] -_0806375A: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end GetGroundEffectFlags_Reflection - - thumb_func_start GetGroundEffectFlags_TallGrassOnSpawn -GetGroundEffectFlags_TallGrassOnSpawn: @ 8063764 - push {r4,lr} - adds r4, r1, 0 - ldrb r0, [r0, 0x1E] - bl MetatileBehavior_IsTallGrass - lsls r0, 24 - cmp r0, 0 - beq _0806377C - ldr r0, [r4] - movs r1, 0x1 - orrs r0, r1 - str r0, [r4] -_0806377C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end GetGroundEffectFlags_TallGrassOnSpawn - - thumb_func_start GetGroundEffectFlags_TallGrassOnBeginStep -GetGroundEffectFlags_TallGrassOnBeginStep: @ 8063784 - push {r4,lr} - adds r4, r1, 0 - ldrb r0, [r0, 0x1E] - bl MetatileBehavior_IsTallGrass - lsls r0, 24 - cmp r0, 0 - beq _0806379C - ldr r0, [r4] - movs r1, 0x2 - orrs r0, r1 - str r0, [r4] -_0806379C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end GetGroundEffectFlags_TallGrassOnBeginStep - - thumb_func_start GetGroundEffectFlags_LongGrassOnSpawn -GetGroundEffectFlags_LongGrassOnSpawn: @ 80637A4 - push {r4,lr} - adds r4, r1, 0 - ldrb r0, [r0, 0x1E] - bl MetatileBehavior_IsLongGrass - lsls r0, 24 - cmp r0, 0 - beq _080637BC - ldr r0, [r4] - movs r1, 0x4 - orrs r0, r1 - str r0, [r4] -_080637BC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end GetGroundEffectFlags_LongGrassOnSpawn - - thumb_func_start GetGroundEffectFlags_LongGrassOnBeginStep -GetGroundEffectFlags_LongGrassOnBeginStep: @ 80637C4 - push {r4,lr} - adds r4, r1, 0 - ldrb r0, [r0, 0x1E] - bl MetatileBehavior_IsLongGrass - lsls r0, 24 - cmp r0, 0 - beq _080637DC - ldr r0, [r4] - movs r1, 0x8 - orrs r0, r1 - str r0, [r4] -_080637DC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end GetGroundEffectFlags_LongGrassOnBeginStep - - thumb_func_start GetGroundEffectFlags_Tracks -GetGroundEffectFlags_Tracks: @ 80637E4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x1F] - bl MetatileBehavior_IsDeepSand - lsls r0, 24 - cmp r0, 0 - beq _080637FE - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 1 - b _0806381A -_080637FE: - ldrb r0, [r4, 0x1F] - bl MetatileBehavior_IsSandOrDeepSand - lsls r0, 24 - cmp r0, 0 - bne _08063816 - ldrb r0, [r4, 0x1F] - bl MetatileBehavior_IsUnusedFootprintMetatile - lsls r0, 24 - cmp r0, 0 - beq _0806381E -_08063816: - ldr r0, [r5] - movs r1, 0x80 -_0806381A: - orrs r0, r1 - str r0, [r5] -_0806381E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end GetGroundEffectFlags_Tracks - - thumb_func_start GetGroundEffectFlags_SandHeap -GetGroundEffectFlags_SandHeap: @ 8063824 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x1E] - bl MetatileBehavior_IsDeepSand - lsls r0, 24 - cmp r0, 0 - beq _08063862 - ldrb r0, [r4, 0x1F] - bl MetatileBehavior_IsDeepSand - lsls r0, 24 - cmp r0, 0 - beq _08063862 - ldrb r1, [r4, 0x2] - lsls r0, r1, 27 - cmp r0, 0 - blt _0806386C - movs r0, 0x11 - negs r0, r0 - ands r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r4, 0x2] - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 4 - orrs r0, r1 - str r0, [r5] - b _0806386C -_08063862: - ldrb r1, [r4, 0x2] - movs r0, 0x11 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x2] -_0806386C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end GetGroundEffectFlags_SandHeap - - thumb_func_start GetGroundEffectFlags_ShallowFlowingWater -GetGroundEffectFlags_ShallowFlowingWater: @ 8063874 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x1E] - bl MetatileBehavior_IsShallowFlowingWater - lsls r0, 24 - cmp r0, 0 - beq _08063892 - ldrb r0, [r4, 0x1F] - bl MetatileBehavior_IsShallowFlowingWater - lsls r0, 24 - cmp r0, 0 - bne _080638AA -_08063892: - ldrb r0, [r4, 0x1E] - bl MetatileBehavior_IsPacifidlogLog - lsls r0, 24 - cmp r0, 0 - beq _080638C8 - ldrb r0, [r4, 0x1F] - bl MetatileBehavior_IsPacifidlogLog - lsls r0, 24 - cmp r0, 0 - beq _080638C8 -_080638AA: - ldrb r1, [r4, 0x2] - lsls r0, r1, 28 - cmp r0, 0 - blt _080638D2 - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r4, 0x2] - ldr r0, [r5] - movs r1, 0x40 - orrs r0, r1 - str r0, [r5] - b _080638D2 -_080638C8: - ldrb r1, [r4, 0x2] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x2] -_080638D2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end GetGroundEffectFlags_ShallowFlowingWater - - thumb_func_start GetGroundEffectFlags_Puddle -GetGroundEffectFlags_Puddle: @ 80638D8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x1E] - bl MetatileBehavior_IsPuddle - lsls r0, 24 - cmp r0, 0 - beq _08063900 - ldrb r0, [r4, 0x1F] - bl MetatileBehavior_IsPuddle - lsls r0, 24 - cmp r0, 0 - beq _08063900 - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 3 - orrs r0, r1 - str r0, [r5] -_08063900: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end GetGroundEffectFlags_Puddle - - thumb_func_start GetGroundEffectFlags_Ripple -GetGroundEffectFlags_Ripple: @ 8063908 - push {r4,lr} - adds r4, r1, 0 - ldrb r0, [r0, 0x1E] - bl MetatileBehavior_HasRipples - lsls r0, 24 - cmp r0, 0 - beq _08063922 - ldr r0, [r4] - movs r1, 0x80 - lsls r1, 2 - orrs r0, r1 - str r0, [r4] -_08063922: - pop {r4} - pop {r0} - bx r0 - thumb_func_end GetGroundEffectFlags_Ripple - - thumb_func_start GetGroundEffectFlags_ShortGrass -GetGroundEffectFlags_ShortGrass: @ 8063928 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x1E] - bl MetatileBehavior_IsShortGrass - lsls r0, 24 - cmp r0, 0 - beq _08063966 - ldrb r0, [r4, 0x1F] - bl MetatileBehavior_IsShortGrass - lsls r0, 24 - cmp r0, 0 - beq _08063966 - ldrb r1, [r4, 0x2] - lsls r0, r1, 29 - cmp r0, 0 - blt _08063970 - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4, 0x2] - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 10 - orrs r0, r1 - str r0, [r5] - b _08063970 -_08063966: - ldrb r1, [r4, 0x2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x2] -_08063970: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end GetGroundEffectFlags_ShortGrass - - thumb_func_start GetGroundEffectFlags_HotSprings -GetGroundEffectFlags_HotSprings: @ 8063978 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x1E] - bl MetatileBehavior_IsHotSprings - lsls r0, 24 - cmp r0, 0 - beq _080639B6 - ldrb r0, [r4, 0x1F] - bl MetatileBehavior_IsHotSprings - lsls r0, 24 - cmp r0, 0 - beq _080639B6 - ldrb r1, [r4, 0x2] - lsls r0, r1, 26 - cmp r0, 0 - blt _080639C0 - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - movs r1, 0x20 - orrs r0, r1 - strb r0, [r4, 0x2] - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 11 - orrs r0, r1 - str r0, [r5] - b _080639C0 -_080639B6: - ldrb r1, [r4, 0x2] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x2] -_080639C0: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end GetGroundEffectFlags_HotSprings - - thumb_func_start GetGroundEffectFlags_Seaweed -GetGroundEffectFlags_Seaweed: @ 80639C8 - push {r4,lr} - adds r4, r1, 0 - ldrb r0, [r0, 0x1E] - bl MetatileBehavior_IsSeaweed - lsls r0, 24 - cmp r0, 0 - beq _080639E2 - ldr r0, [r4] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r4] -_080639E2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end GetGroundEffectFlags_Seaweed - - thumb_func_start GetGroundEffectFlags_JumpLanding -GetGroundEffectFlags_JumpLanding: @ 80639E8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - adds r6, r1, 0 - ldr r0, [r7] - ldr r1, _08063A24 @ =0x02000020 - ands r0, r1 - cmp r0, 0x20 - bne _08063A3A @ Is player landing after jumping? - movs r5, 0 - ldr r0, _08063A28 @ =gJumpLanding_MetatileFunctionPointers - mov r8, r0 -_08063A02: - lsls r4, r5, 2 - mov r0, r8 - adds r1, r4, r0 - ldrb r0, [r7, 0x1E] @ Load metatile behavior - ldr r1, [r1] - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - beq _08063A30 - ldr r0, _08063A2C @ =gJumpLanding_Bitmasks - adds r0, r4, r0 - ldr r1, [r6] - ldr r0, [r0] - orrs r1, r0 - str r1, [r6] - b _08063A3A - .align 2, 0 -_08063A24: .4byte 0x02000020 -_08063A28: .4byte gJumpLanding_MetatileFunctionPointers -_08063A2C: .4byte gJumpLanding_Bitmasks -_08063A30: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _08063A02 -_08063A3A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end GetGroundEffectFlags_JumpLanding - thumb_func_start FieldObjectCheckForReflectiveSurface FieldObjectCheckForReflectiveSurface: @ 8063A44 push {r4-r7,lr} diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s index b884252be..348e1d0f3 100644 --- a/asm/field_map_obj.s +++ b/asm/field_map_obj.s @@ -10911,7 +10911,7 @@ _0805F950: adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 - ldr r3, _0805F984 @ =sub_8056E14 + ldr r3, _0805F984 @ =MetatileBehavior_IsPokeGrass ldr r4, [r4] adds r0, r6, 0 adds r1, r7, 0 @@ -10924,7 +10924,7 @@ _0805F978: bx r1 .align 2, 0 _0805F980: .4byte gUnknown_08375594 -_0805F984: .4byte sub_8056E14 +_0805F984: .4byte MetatileBehavior_IsPokeGrass thumb_func_end mss_08062EA4 thumb_func_start FieldObjectCB_TreeDisguise @@ -12654,7 +12654,7 @@ FieldObjectSetSpecialAnim: @ 8060550 cmp r6, 0 bne _08060590 adds r0, r4, 0 - bl npc_sync_anim_pause_bits + bl UnfreezeMapObject strb r5, [r4, 0x1C] ldrb r0, [r4] movs r1, 0x40 diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s deleted file mode 100644 index 3d4f8a008..000000000 --- a/asm/field_player_avatar.s +++ /dev/null @@ -1,4636 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_80587B4 -sub_80587B4: @ 80587B4 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, _080587D0 @ =gMapObjects - adds r0, r2 - ldr r2, _080587D4 @ =sub_80587D8 - bl meta_step - pop {r0} - bx r0 - .align 2, 0 -_080587D0: .4byte gMapObjects -_080587D4: .4byte sub_80587D8 - thumb_func_end sub_80587B4 - - thumb_func_start sub_80587D8 -sub_80587D8: @ 80587D8 - movs r0, 0 - bx lr - thumb_func_end sub_80587D8 - - thumb_func_start player_step -player_step: @ 80587DC - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 16 - lsrs r7, r1, 16 - lsls r2, 16 - lsrs r6, r2, 16 - ldr r4, _0805884C @ =gPlayerAvatar - ldrb r1, [r4, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08058850 @ =gMapObjects - adds r5, r0, r1 - adds r0, r5, 0 - bl sub_8059D60 - ldrb r0, [r4, 0x6] - cmp r0, 0 - bne _08058842 - adds r0, r7, 0 - adds r1, r6, 0 - bl sub_80E5B38 - adds r0, r5, 0 - mov r1, r8 - bl sub_8058854 - lsls r0, 24 - cmp r0, 0 - bne _08058842 - adds r0, r5, 0 - bl npc_clear_strange_bits - bl DoPlayerAvatarTransition - bl TryDoMetatileBehaviorForcedMovment - lsls r0, 24 - cmp r0, 0 - bne _08058842 - mov r0, r8 - adds r1, r7, 0 - adds r2, r6, 0 - bl MovePlayerAvatarUsingKeypadInput - bl PlayerAllowForcedMovementIfMovingSameDirection -_08058842: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0805884C: .4byte gPlayerAvatar -_08058850: .4byte gMapObjects - thumb_func_end player_step - - thumb_func_start sub_8058854 -sub_8058854: @ 8058854 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - beq _0805889E - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - bne _0805889E - adds r0, r4, 0 - bl FieldObjectGetSpecialAnim - lsls r0, 24 - movs r1, 0xE7 - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x3 - bhi _0805889A - cmp r5, 0 - beq _0805889A - ldrb r0, [r4, 0x18] - lsrs r0, 4 - cmp r0, r5 - beq _0805889A - adds r0, r4, 0 - bl FieldObjectClearAnim - b _0805889E -_0805889A: - movs r0, 0x1 - b _080588A0 -_0805889E: - movs r0, 0 -_080588A0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8058854 - - thumb_func_start npc_clear_strange_bits -npc_clear_strange_bits: @ 80588A8 - ldrb r2, [r0, 0x1] - movs r1, 0x11 - negs r1, r1 - ands r1, r2 - movs r2, 0x5 - negs r2, r2 - ands r1, r2 - adds r2, 0x2 - ands r1, r2 - strb r1, [r0, 0x1] - ldr r2, _080588C8 @ =gPlayerAvatar - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - bx lr - .align 2, 0 -_080588C8: .4byte gPlayerAvatar - thumb_func_end npc_clear_strange_bits - - thumb_func_start MovePlayerAvatarUsingKeypadInput -MovePlayerAvatarUsingKeypadInput: @ 80588CC - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 16 - lsrs r2, 16 - ldr r0, _080588F0 @ =gPlayerAvatar - ldrb r1, [r0] - movs r0, 0x6 - ands r0, r1 - cmp r0, 0 - beq _080588F4 - adds r0, r3, 0 - adds r1, r4, 0 - bl MovePlayerOnBike - b _080588FC - .align 2, 0 -_080588F0: .4byte gPlayerAvatar -_080588F4: - adds r0, r3, 0 - adds r1, r2, 0 - bl MovePlayerNotOnBike -_080588FC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end MovePlayerAvatarUsingKeypadInput - - thumb_func_start PlayerAllowForcedMovementIfMovingSameDirection -PlayerAllowForcedMovementIfMovingSameDirection: @ 8058904 - push {lr} - ldr r2, _0805891C @ =gPlayerAvatar - ldrb r0, [r2, 0x2] - cmp r0, 0x2 - bne _08058916 - ldrb r1, [r2] - movs r0, 0xDF - ands r0, r1 - strb r0, [r2] -_08058916: - pop {r0} - bx r0 - .align 2, 0 -_0805891C: .4byte gPlayerAvatar - thumb_func_end PlayerAllowForcedMovementIfMovingSameDirection - - thumb_func_start TryDoMetatileBehaviorForcedMovment -TryDoMetatileBehaviorForcedMovment: @ 8058920 - push {r4,lr} - ldr r4, _08058940 @ =gUnknown_0830FBA0 - bl GetForcedMovementByMetatileBehavior - lsls r0, 24 - lsrs r0, 22 - adds r0, r4 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08058940: .4byte gUnknown_0830FBA0 - thumb_func_end TryDoMetatileBehaviorForcedMovment - - thumb_func_start GetForcedMovementByMetatileBehavior -GetForcedMovementByMetatileBehavior: @ 8058944 - push {r4-r6,lr} - ldr r3, _08058980 @ =gPlayerAvatar - ldrb r1, [r3] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _08058996 - ldr r2, _08058984 @ =gMapObjects - ldrb r1, [r3, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r5, [r0, 0x1E] - movs r4, 0 - ldr r6, _08058988 @ =gUnknown_0830FB58 -_08058964: - lsls r0, r4, 2 - adds r0, r6 - ldr r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - beq _0805898C - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r0, 24 - b _08058998 - .align 2, 0 -_08058980: .4byte gPlayerAvatar -_08058984: .4byte gMapObjects -_08058988: .4byte gUnknown_0830FB58 -_0805898C: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x11 - bls _08058964 -_08058996: - movs r0, 0 -_08058998: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end GetForcedMovementByMetatileBehavior - - thumb_func_start ForcedMovement_None -ForcedMovement_None: @ 80589A0 - push {r4,lr} - ldr r4, _080589E4 @ =gPlayerAvatar - ldrb r1, [r4] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080589DA - ldrb r1, [r4, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080589E8 @ =gMapObjects - adds r0, r1 - ldrb r2, [r0, 0x1] - movs r1, 0x3 - negs r1, r1 - ands r1, r2 - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0, 0x1] - ldrb r1, [r0, 0x18] - lsls r1, 28 - lsrs r1, 28 - bl FieldObjectSetDirection - ldrb r1, [r4] - movs r0, 0xBF - ands r0, r1 - strb r0, [r4] -_080589DA: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080589E4: .4byte gPlayerAvatar -_080589E8: .4byte gMapObjects - thumb_func_end ForcedMovement_None - - thumb_func_start DoForcedMovement -DoForcedMovement: @ 80589EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r9, r1 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r6, _08058A2C @ =gPlayerAvatar - adds r0, r5, 0 - bl CheckForPlayerAvatarCollision - lsls r0, 24 - lsrs r4, r0, 24 - adds r7, r4, 0 - ldrb r0, [r6] - movs r1, 0x40 - mov r10, r1 - movs r1, 0 - mov r8, r1 - mov r1, r10 - orrs r0, r1 - strb r0, [r6] - cmp r4, 0 - beq _08058A48 - bl ForcedMovement_None - cmp r4, 0x4 - bhi _08058A30 - movs r0, 0 - b _08058A54 - .align 2, 0 -_08058A2C: .4byte gPlayerAvatar -_08058A30: - cmp r7, 0x6 - bne _08058A3A - adds r0, r5, 0 - bl PlayerJumpLedge -_08058A3A: - ldrb r0, [r6] - mov r1, r10 - orrs r0, r1 - strb r0, [r6] - movs r0, 0x2 - strb r0, [r6, 0x2] - b _08058A52 -_08058A48: - movs r0, 0x2 - strb r0, [r6, 0x2] - adds r0, r5, 0 - bl _call_via_r9 -_08058A52: - movs r0, 0x1 -_08058A54: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end DoForcedMovement - - thumb_func_start DoForcedMovementInCurrentDirection -DoForcedMovementInCurrentDirection: @ 8058A64 - push {lr} - adds r1, r0, 0 - ldr r0, _08058A90 @ =gPlayerAvatar - ldrb r2, [r0, 0x5] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, _08058A94 @ =gMapObjects - adds r0, r2 - ldrb r2, [r0, 0x1] - movs r3, 0x4 - orrs r2, r3 - strb r2, [r0, 0x1] - ldrb r0, [r0, 0x18] - lsrs r0, 4 - bl DoForcedMovement - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08058A90: .4byte gPlayerAvatar -_08058A94: .4byte gMapObjects - thumb_func_end DoForcedMovementInCurrentDirection - - thumb_func_start ForcedMovement_Slip -ForcedMovement_Slip: @ 8058A98 - push {lr} - ldr r0, _08058AA8 @ =sub_80593C4 - bl DoForcedMovementInCurrentDirection - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08058AA8: .4byte sub_80593C4 - thumb_func_end ForcedMovement_Slip - - thumb_func_start sub_8058AAC -sub_8058AAC: @ 8058AAC - push {lr} - ldr r1, _08058AC0 @ =PlayerGoSpeed0 - movs r0, 0x1 - bl DoForcedMovement - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08058AC0: .4byte PlayerGoSpeed0 - thumb_func_end sub_8058AAC - - thumb_func_start sub_8058AC4 -sub_8058AC4: @ 8058AC4 - push {lr} - ldr r1, _08058AD8 @ =PlayerGoSpeed0 - movs r0, 0x2 - bl DoForcedMovement - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08058AD8: .4byte PlayerGoSpeed0 - thumb_func_end sub_8058AC4 - - thumb_func_start sub_8058ADC -sub_8058ADC: @ 8058ADC - push {lr} - ldr r1, _08058AF0 @ =PlayerGoSpeed0 - movs r0, 0x3 - bl DoForcedMovement - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08058AF0: .4byte PlayerGoSpeed0 - thumb_func_end sub_8058ADC - - thumb_func_start sub_8058AF4 -sub_8058AF4: @ 8058AF4 - push {lr} - ldr r1, _08058B08 @ =PlayerGoSpeed0 - movs r0, 0x4 - bl DoForcedMovement - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08058B08: .4byte PlayerGoSpeed0 - thumb_func_end sub_8058AF4 - - thumb_func_start sub_8058B0C -sub_8058B0C: @ 8058B0C - push {lr} - ldr r1, _08058B20 @ =npc_use_some_d2s - movs r0, 0x1 - bl DoForcedMovement - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08058B20: .4byte npc_use_some_d2s - thumb_func_end sub_8058B0C - - thumb_func_start sub_8058B24 -sub_8058B24: @ 8058B24 - push {lr} - ldr r1, _08058B38 @ =npc_use_some_d2s - movs r0, 0x2 - bl DoForcedMovement - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08058B38: .4byte npc_use_some_d2s - thumb_func_end sub_8058B24 - - thumb_func_start sub_8058B3C -sub_8058B3C: @ 8058B3C - push {lr} - ldr r1, _08058B50 @ =npc_use_some_d2s - movs r0, 0x3 - bl DoForcedMovement - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08058B50: .4byte npc_use_some_d2s - thumb_func_end sub_8058B3C - - thumb_func_start sub_8058B54 -sub_8058B54: @ 8058B54 - push {lr} - ldr r1, _08058B68 @ =npc_use_some_d2s - movs r0, 0x4 - bl DoForcedMovement - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08058B68: .4byte npc_use_some_d2s - thumb_func_end sub_8058B54 - - thumb_func_start ForcedMovement_Slide -ForcedMovement_Slide: @ 8058B6C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08058B9C @ =gPlayerAvatar - ldrb r3, [r2, 0x5] - lsls r2, r3, 3 - adds r2, r3 - lsls r2, 2 - ldr r3, _08058BA0 @ =gMapObjects - adds r2, r3 - ldrb r3, [r2, 0x1] - movs r4, 0x4 - orrs r3, r4 - movs r4, 0x2 - orrs r3, r4 - strb r3, [r2, 0x1] - bl DoForcedMovement - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08058B9C: .4byte gPlayerAvatar -_08058BA0: .4byte gMapObjects - thumb_func_end ForcedMovement_Slide - - thumb_func_start ForcedMovement_SlideSouth -ForcedMovement_SlideSouth: @ 8058BA4 - push {lr} - ldr r1, _08058BB8 @ =sub_80593C4 - movs r0, 0x1 - bl ForcedMovement_Slide - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08058BB8: .4byte sub_80593C4 - thumb_func_end ForcedMovement_SlideSouth - - thumb_func_start ForcedMovement_SlideNorth -ForcedMovement_SlideNorth: @ 8058BBC - push {lr} - ldr r1, _08058BD0 @ =sub_80593C4 - movs r0, 0x2 - bl ForcedMovement_Slide - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08058BD0: .4byte sub_80593C4 - thumb_func_end ForcedMovement_SlideNorth - - thumb_func_start ForcedMovement_SlideWest -ForcedMovement_SlideWest: @ 8058BD4 - push {lr} - ldr r1, _08058BE8 @ =sub_80593C4 - movs r0, 0x3 - bl ForcedMovement_Slide - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08058BE8: .4byte sub_80593C4 - thumb_func_end ForcedMovement_SlideWest - - thumb_func_start ForcedMovement_SlideEast -ForcedMovement_SlideEast: @ 8058BEC - push {lr} - ldr r1, _08058C00 @ =sub_80593C4 - movs r0, 0x4 - bl ForcedMovement_Slide - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08058C00: .4byte sub_80593C4 - thumb_func_end ForcedMovement_SlideEast - - thumb_func_start sub_8058C04 -sub_8058C04: @ 8058C04 - push {lr} - bl sub_8059F94 - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8058C04 - - thumb_func_start sub_8058C10 -sub_8058C10: @ 8058C10 - push {lr} - bl sub_805A06C - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8058C10 - - thumb_func_start ForcedMovement_MuddySlope -ForcedMovement_MuddySlope: @ 8058C1C - push {r4,lr} - ldr r0, _08058C60 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08058C64 @ =gMapObjects - adds r4, r0, r1 - ldrb r1, [r4, 0x18] - movs r0, 0xF0 - ands r0, r1 - cmp r0, 0x20 - bne _08058C42 - bl sub_80E6034 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bgt _08058C6C -_08058C42: - movs r0, 0 - bl sub_80E6010 - ldrb r0, [r4, 0x1] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4, 0x1] - ldr r1, _08058C68 @ =sub_80593C4 - movs r0, 0x1 - bl DoForcedMovement - lsls r0, 24 - lsrs r0, 24 - b _08058C6E - .align 2, 0 -_08058C60: .4byte gPlayerAvatar -_08058C64: .4byte gMapObjects -_08058C68: .4byte sub_80593C4 -_08058C6C: - movs r0, 0 -_08058C6E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end ForcedMovement_MuddySlope - - thumb_func_start MovePlayerNotOnBike -MovePlayerNotOnBike: @ 8058C74 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 16 - lsrs r5, 16 - ldr r6, _08058CA0 @ =gUnknown_0830FBEC - adds r0, r4, 0 - bl CheckMovementInputNotOnBike - lsls r0, 24 - lsrs r0, 22 - adds r0, r6 - ldr r2, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl _call_via_r2 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08058CA0: .4byte gUnknown_0830FBEC - thumb_func_end MovePlayerNotOnBike - - thumb_func_start CheckMovementInputNotOnBike -CheckMovementInputNotOnBike: @ 8058CA4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _08058CBC - ldr r0, _08058CB8 @ =gPlayerAvatar - strb r4, [r0, 0x2] - movs r0, 0 - b _08058CDE - .align 2, 0 -_08058CB8: .4byte gPlayerAvatar -_08058CBC: - bl player_get_direction_upper_nybble - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - beq _08058CD8 - ldr r1, _08058CD4 @ =gPlayerAvatar - ldrb r0, [r1, 0x2] - cmp r0, 0x2 - beq _08058CD8 - movs r0, 0x1 - b _08058CDC - .align 2, 0 -_08058CD4: .4byte gPlayerAvatar -_08058CD8: - ldr r1, _08058CE4 @ =gPlayerAvatar - movs r0, 0x2 -_08058CDC: - strb r0, [r1, 0x2] -_08058CDE: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08058CE4: .4byte gPlayerAvatar - thumb_func_end CheckMovementInputNotOnBike - - thumb_func_start PlayerNotOnBikeNotMoving -PlayerNotOnBikeNotMoving: @ 8058CE8 - push {lr} - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - bl PlayerFaceDirection - pop {r0} - bx r0 - thumb_func_end PlayerNotOnBikeNotMoving - - thumb_func_start PlayerNotOnBikeTurningInPlace -PlayerNotOnBikeTurningInPlace: @ 8058CFC - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl PlayerTurnInPlace - pop {r0} - bx r0 - thumb_func_end PlayerNotOnBikeTurningInPlace - - thumb_func_start sub_8058D0C -sub_8058D0C: @ 8058D0C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 16 - lsrs r4, r1, 16 - adds r0, r5, 0 - bl CheckForPlayerAvatarCollision - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0 - beq _08058D44 - cmp r0, 0x6 - bne _08058D32 - adds r0, r5, 0 - bl PlayerJumpLedge - b _08058DAE -_08058D32: - subs r0, r1, 0x5 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _08058DAE - adds r0, r5, 0 - bl PlayerNotOnBikeCollide - b _08058DAE -_08058D44: - ldr r6, _08058D58 @ =gPlayerAvatar - ldrb r1, [r6] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08058D5C - adds r0, r5, 0 - bl sub_80593C4 - b _08058DAE - .align 2, 0 -_08058D58: .4byte gPlayerAvatar -_08058D5C: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _08058DA8 - movs r0, 0x2 - ands r4, r0 - cmp r4, 0 - beq _08058DA8 - movs r0, 0x86 - lsls r0, 4 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08058DA8 - ldr r2, _08058DA4 @ =gMapObjects - ldrb r1, [r6, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1E] - bl sub_80E5DEC - lsls r0, 24 - cmp r0, 0 - bne _08058DA8 - adds r0, r5, 0 - bl sub_805940C - ldrb r1, [r6] - movs r0, 0x80 - orrs r0, r1 - strb r0, [r6] - b _08058DAE - .align 2, 0 -_08058DA4: .4byte gMapObjects -_08058DA8: - adds r0, r5, 0 - bl PlayerGoSpeed0 -_08058DAE: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8058D0C - - thumb_func_start CheckForPlayerAvatarCollision -CheckForPlayerAvatarCollision: @ 8058DB4 - push {r4-r6,lr} - sub sp, 0x8 - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldr r0, _08058E18 @ =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _08058E1C @ =gMapObjects - adds r4, r0 - ldrh r1, [r4, 0x10] - add r0, sp, 0x4 - strh r1, [r0] - ldrh r0, [r4, 0x12] - mov r5, sp - adds r5, 0x6 - strh r0, [r5] - adds r0, r6, 0 - add r1, sp, 0x4 - adds r2, r5, 0 - bl MoveCoords - add r0, sp, 0x4 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - add r1, sp, 0x4 - movs r3, 0 - ldrsh r1, [r1, r3] - movs r3, 0 - ldrsh r2, [r5, r3] - str r0, [sp] - adds r0, r4, 0 - adds r3, r6, 0 - bl CheckForFieldObjectCollision - lsls r0, 24 - lsrs r0, 24 - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08058E18: .4byte gPlayerAvatar -_08058E1C: .4byte gMapObjects - thumb_func_end CheckForPlayerAvatarCollision - - thumb_func_start CheckForFieldObjectCollision -CheckForFieldObjectCollision: @ 8058E20 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r4, [sp, 0x24] - lsls r1, 16 - lsls r2, 16 - lsls r3, 24 - lsrs r6, r3, 24 - lsls r4, 24 - lsrs r4, 24 - mov r10, r4 - lsrs r7, r1, 16 - asrs r5, r1, 16 - lsrs r1, r2, 16 - mov r9, r1 - asrs r4, r2, 16 - adds r1, r5, 0 - adds r2, r4, 0 - adds r3, r6, 0 - bl npc_block_way - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - strb r0, [r1] - cmp r0, 0x3 - bne _08058E70 - adds r0, r5, 0 - adds r1, r4, 0 - adds r2, r6, 0 - bl sub_8058EF0 - lsls r0, 24 - cmp r0, 0 - beq _08058E70 - movs r0, 0x5 - b _08058EDE -_08058E70: - lsls r5, r7, 16 - asrs r0, r5, 16 - mov r8, r0 - mov r1, r9 - lsls r4, r1, 16 - asrs r7, r4, 16 - adds r1, r7, 0 - adds r2, r6, 0 - bl ShouldJumpLedge - lsls r0, 24 - cmp r0, 0 - beq _08058E94 - movs r0, 0x2B - bl sav12_xor_increment - movs r0, 0x6 - b _08058EDE -_08058E94: - mov r0, sp - ldrb r0, [r0] - cmp r0, 0x4 - bne _08058EB0 - mov r0, r8 - adds r1, r7, 0 - adds r2, r6, 0 - bl sub_8058F6C - lsls r0, 24 - cmp r0, 0 - beq _08058EB0 - movs r0, 0x7 - b _08058EDE -_08058EB0: - mov r0, sp - ldrb r0, [r0] - cmp r0, 0 - bne _08058EDA - asrs r5, 16 - asrs r4, 16 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl CheckForRotatingGatePuzzleCollision - cmp r0, 0 - beq _08058ECE - movs r0, 0x8 - b _08058EDE -_08058ECE: - adds r0, r5, 0 - adds r1, r4, 0 - mov r2, r10 - mov r3, sp - bl check_acro_bike_metatile -_08058EDA: - mov r0, sp - ldrb r0, [r0] -_08058EDE: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end CheckForFieldObjectCollision - - thumb_func_start sub_8058EF0 -sub_8058EF0: @ 8058EF0 - push {r4-r6,lr} - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 24 - lsrs r6, r2, 24 - ldr r0, _08058F3C @ =gPlayerAvatar - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08058F40 - lsls r5, r3, 16 - asrs r0, r5, 16 - lsls r4, 16 - asrs r1, r4, 16 - bl MapGridGetZCoordAt - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _08058F40 - lsrs r0, r5, 16 - lsrs r1, r4, 16 - movs r2, 0x3 - bl GetFieldObjectIdByXYZ - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x10 - bne _08058F40 - adds r0, r6, 0 - bl sub_805A20C - movs r0, 0x1 - b _08058F42 - .align 2, 0 -_08058F3C: .4byte gPlayerAvatar -_08058F40: - movs r0, 0 -_08058F42: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8058EF0 - - thumb_func_start ShouldJumpLedge -ShouldJumpLedge: @ 8058F48 - push {lr} - lsls r2, 24 - lsrs r2, 24 - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - bl GetLedgeJumpDirection - lsls r0, 24 - cmp r0, 0 - bne _08058F64 - movs r0, 0 - b _08058F66 -_08058F64: - movs r0, 0x1 -_08058F66: - pop {r1} - bx r1 - thumb_func_end ShouldJumpLedge - - thumb_func_start sub_8058F6C -sub_8058F6C: @ 8058F6C - push {r4-r7,lr} - sub sp, 0x4 - mov r3, sp - strh r0, [r3] - mov r5, sp - adds r5, 0x2 - strh r1, [r5] - lsls r2, 24 - lsrs r7, r2, 24 - ldr r0, _08059004 @ =0x00000829 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0805900C - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r5, r2] - bl GetFieldObjectIdByXY - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x10 - beq _0805900C - ldr r0, _08059008 @ =gMapObjects - lsls r1, r6, 3 - adds r1, r6 - lsls r1, 2 - adds r4, r1, r0 - ldrb r0, [r4, 0x5] - cmp r0, 0x57 - bne _0805900C - ldrh r1, [r4, 0x10] - mov r0, sp - strh r1, [r0] - ldrh r0, [r4, 0x12] - strh r0, [r5] - adds r0, r7, 0 - mov r1, sp - adds r2, r5, 0 - bl MoveCoords - mov r0, sp - movs r2, 0 - ldrsh r1, [r0, r2] - movs r0, 0 - ldrsh r2, [r5, r0] - adds r0, r4, 0 - adds r3, r7, 0 - bl npc_block_way - lsls r0, 24 - cmp r0, 0 - bne _0805900C - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl sub_8056F08 - lsls r0, 24 - cmp r0, 0 - bne _0805900C - adds r0, r6, 0 - adds r1, r7, 0 - bl task_add_bump_boulder - movs r0, 0x1 - b _0805900E - .align 2, 0 -_08059004: .4byte 0x00000829 -_08059008: .4byte gMapObjects -_0805900C: - movs r0, 0 -_0805900E: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8058F6C - - thumb_func_start check_acro_bike_metatile -check_acro_bike_metatile: @ 8059018 - push {r4-r7,lr} - adds r6, r3, 0 - lsls r2, 24 - lsrs r5, r2, 24 - movs r4, 0 - ldr r7, _08059040 @ =gUnknown_0830FBF8 -_08059024: - lsls r0, r4, 2 - adds r0, r7 - ldr r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - beq _08059048 - ldr r0, _08059044 @ =gUnknown_0830FC0C - adds r0, r4, r0 - ldrb r0, [r0] - strb r0, [r6] - b _08059052 - .align 2, 0 -_08059040: .4byte gUnknown_0830FBF8 -_08059044: .4byte gUnknown_0830FC0C -_08059048: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _08059024 -_08059052: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end check_acro_bike_metatile - - thumb_func_start SetPlayerAvatarTransitionFlags -SetPlayerAvatarTransitionFlags: @ 8059058 - push {lr} - lsls r0, 16 - lsrs r0, 16 - ldr r2, _08059070 @ =gPlayerAvatar - ldrb r1, [r2, 0x1] - orrs r0, r1 - strb r0, [r2, 0x1] - bl DoPlayerAvatarTransition - pop {r0} - bx r0 - .align 2, 0 -_08059070: .4byte gPlayerAvatar - thumb_func_end SetPlayerAvatarTransitionFlags - - thumb_func_start DoPlayerAvatarTransition -DoPlayerAvatarTransition: @ 8059074 - push {r4,r5,lr} - ldr r0, _080590BC @ =gPlayerAvatar - ldrb r4, [r0, 0x1] - cmp r4, 0 - beq _080590B4 - movs r5, 0 -_08059080: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _080590A2 - ldr r0, _080590C0 @ =gUnknown_0830FC14 - lsls r2, r5, 2 - adds r2, r0 - ldr r0, _080590BC @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080590C4 @ =gMapObjects - adds r0, r1 - ldr r1, [r2] - bl _call_via_r1 -_080590A2: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - lsrs r4, 1 - cmp r5, 0x7 - bls _08059080 - ldr r1, _080590BC @ =gPlayerAvatar - movs r0, 0 - strb r0, [r1, 0x1] -_080590B4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080590BC: .4byte gPlayerAvatar -_080590C0: .4byte gUnknown_0830FC14 -_080590C4: .4byte gMapObjects - thumb_func_end DoPlayerAvatarTransition - - thumb_func_start nullsub_49 -nullsub_49: @ 80590C8 - bx lr - thumb_func_end nullsub_49 - - thumb_func_start PlayerAvatarTransition_Normal -PlayerAvatarTransition_Normal: @ 80590CC - push {r4,lr} - adds r4, r0, 0 - movs r0, 0 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_805B980 - ldrb r1, [r4, 0x18] - lsrs r1, 4 - adds r0, r4, 0 - bl FieldObjectTurn - movs r0, 0x1 - bl SetPlayerAvatarStateMask - pop {r4} - pop {r0} - bx r0 - thumb_func_end PlayerAvatarTransition_Normal - - thumb_func_start PlayerAvatarTransition_MachBike -PlayerAvatarTransition_MachBike: @ 80590F8 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x1 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_805B980 - ldrb r1, [r4, 0x18] - lsrs r1, 4 - adds r0, r4, 0 - bl FieldObjectTurn - movs r0, 0x2 - bl SetPlayerAvatarStateMask - movs r0, 0 - movs r1, 0 - bl sub_80E5FCC - pop {r4} - pop {r0} - bx r0 - thumb_func_end PlayerAvatarTransition_MachBike - - thumb_func_start PlayerAvatarTransition_AcroBike -PlayerAvatarTransition_AcroBike: @ 805912C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x2 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_805B980 - ldrb r1, [r4, 0x18] - lsrs r1, 4 - adds r0, r4, 0 - bl FieldObjectTurn - movs r0, 0x4 - bl SetPlayerAvatarStateMask - movs r0, 0 - movs r1, 0 - bl sub_80E5FCC - bl sub_80E6084 - pop {r4} - pop {r0} - bx r0 - thumb_func_end PlayerAvatarTransition_AcroBike - - thumb_func_start PlayerAvatarTransition_Surfing -PlayerAvatarTransition_Surfing: @ 8059164 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x3 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_805B980 - ldrb r1, [r4, 0x18] - lsrs r1, 4 - adds r0, r4, 0 - bl FieldObjectTurn - movs r0, 0x8 - bl SetPlayerAvatarStateMask - ldr r1, _080591B8 @ =gUnknown_0202FF84 - movs r2, 0x10 - ldrsh r0, [r4, r2] - str r0, [r1] - movs r2, 0x12 - ldrsh r0, [r4, r2] - str r0, [r1, 0x4] - ldr r0, _080591BC @ =gPlayerAvatar - ldrb r0, [r0, 0x5] - str r0, [r1, 0x8] - movs r0, 0x8 - bl FieldEffectStart - lsls r0, 24 - lsrs r0, 24 - strb r0, [r4, 0x1A] - movs r1, 0x1 - bl sub_8127ED0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080591B8: .4byte gUnknown_0202FF84 -_080591BC: .4byte gPlayerAvatar - thumb_func_end PlayerAvatarTransition_Surfing - - thumb_func_start PlayerAvatarTransition_Underwater -PlayerAvatarTransition_Underwater: @ 80591C0 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x4 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_805B980 - ldrb r1, [r4, 0x18] - lsrs r1, 4 - adds r0, r4, 0 - bl FieldObjectTurn - movs r0, 0x10 - bl SetPlayerAvatarStateMask - ldrb r0, [r4, 0x4] - bl sub_8128124 - strb r0, [r4, 0x1A] - pop {r4} - pop {r0} - bx r0 - thumb_func_end PlayerAvatarTransition_Underwater - - thumb_func_start sub_80591F4 -sub_80591F4: @ 80591F4 - ldr r2, _08059200 @ =gPlayerAvatar - ldrb r1, [r2] - movs r0, 0x20 - orrs r0, r1 - strb r0, [r2] - bx lr - .align 2, 0 -_08059200: .4byte gPlayerAvatar - thumb_func_end sub_80591F4 - - thumb_func_start sub_8059204 -sub_8059204: @ 8059204 - push {r4,lr} - ldr r4, _08059230 @ =gPlayerAvatar - movs r0, 0 - strb r0, [r4, 0x3] - bl PlayerIsAnimActive - lsls r0, 24 - cmp r0, 0 - beq _08059242 - bl PlayerCheckIfAnimFinishedOrInactive - lsls r0, 24 - cmp r0, 0 - bne _08059234 - bl player_is_anim_in_certain_ranges - lsls r0, 24 - cmp r0, 0 - bne _08059242 - movs r0, 0x1 - b _08059240 - .align 2, 0 -_08059230: .4byte gPlayerAvatar -_08059234: - bl sub_80592A4 - lsls r0, 24 - cmp r0, 0 - bne _08059242 - movs r0, 0x2 -_08059240: - strb r0, [r4, 0x3] -_08059242: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8059204 - - thumb_func_start player_is_anim_in_certain_ranges -player_is_anim_in_certain_ranges: @ 8059248 - push {lr} - ldr r2, _08059294 @ =gMapObjects - ldr r0, _08059298 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1C] - cmp r1, 0x3 - bls _0805928E - adds r0, r1, 0 - subs r0, 0x10 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _0805928E - adds r0, r1, 0 - subs r0, 0x19 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xF - bls _0805928E - adds r0, r1, 0 - subs r0, 0x62 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB - bls _0805928E - adds r0, r1, 0 - subs r0, 0x7A - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bhi _0805929C -_0805928E: - movs r0, 0x1 - b _0805929E - .align 2, 0 -_08059294: .4byte gMapObjects -_08059298: .4byte gPlayerAvatar -_0805929C: - movs r0, 0 -_0805929E: - pop {r1} - bx r1 - thumb_func_end player_is_anim_in_certain_ranges - - thumb_func_start sub_80592A4 -sub_80592A4: @ 80592A4 - push {lr} - bl player_is_anim_in_certain_ranges - lsls r0, 24 - cmp r0, 0 - beq _080592C0 - ldr r0, _080592BC @ =gPlayerAvatar - ldrb r0, [r0, 0x2] - cmp r0, 0x1 - beq _080592C0 - movs r0, 0x1 - b _080592C2 - .align 2, 0 -_080592BC: .4byte gPlayerAvatar -_080592C0: - movs r0, 0 -_080592C2: - pop {r1} - bx r1 - thumb_func_end sub_80592A4 - - thumb_func_start PlayerIsAnimActive -PlayerIsAnimActive: @ 80592C8 - push {lr} - ldr r0, _080592E4 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080592E8 @ =gMapObjects - adds r0, r1 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_080592E4: .4byte gPlayerAvatar -_080592E8: .4byte gMapObjects - thumb_func_end PlayerIsAnimActive - - thumb_func_start PlayerCheckIfAnimFinishedOrInactive -PlayerCheckIfAnimFinishedOrInactive: @ 80592EC - push {lr} - ldr r0, _08059308 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0805930C @ =gMapObjects - adds r0, r1 - bl FieldObjectCheckIfSpecialAnimFinishedOrInactive - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08059308: .4byte gPlayerAvatar -_0805930C: .4byte gMapObjects - thumb_func_end PlayerCheckIfAnimFinishedOrInactive - - thumb_func_start player_set_x22 -player_set_x22: @ 8059310 - ldr r3, _08059324 @ =gMapObjects - ldr r1, _08059328 @ =gPlayerAvatar - ldrb r2, [r1, 0x5] - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r3 - adds r1, 0x22 - strb r0, [r1] - bx lr - .align 2, 0 -_08059324: .4byte gMapObjects -_08059328: .4byte gPlayerAvatar - thumb_func_end player_set_x22 - - thumb_func_start player_get_x22 -player_get_x22: @ 805932C - ldr r2, _08059340 @ =gMapObjects - ldr r0, _08059344 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x22 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08059340: .4byte gMapObjects -_08059344: .4byte gPlayerAvatar - thumb_func_end player_get_x22 - - thumb_func_start sub_8059348 -sub_8059348: @ 8059348 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _08059368 @ =gPlayerAvatar - ldrb r2, [r0, 0x5] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, _0805936C @ =gMapObjects - adds r0, r2 - bl FieldObjectForceSetSpecialAnim - pop {r0} - bx r0 - .align 2, 0 -_08059368: .4byte gPlayerAvatar -_0805936C: .4byte gMapObjects - thumb_func_end sub_8059348 - - thumb_func_start player_npc_set_state_and_x22_etc -player_npc_set_state_and_x22_etc: @ 8059370 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - bl PlayerIsAnimActive - lsls r0, 24 - cmp r0, 0 - bne _0805939E - adds r0, r4, 0 - bl player_set_x22 - ldr r0, _080593A4 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080593A8 @ =gMapObjects - adds r0, r1 - adds r1, r5, 0 - bl FieldObjectSetSpecialAnim -_0805939E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080593A4: .4byte gPlayerAvatar -_080593A8: .4byte gMapObjects - thumb_func_end player_npc_set_state_and_x22_etc - - thumb_func_start PlayerGoSpeed0 -PlayerGoSpeed0: @ 80593AC - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl GetGoSpeed0AnimId - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl player_npc_set_state_and_x22_etc - pop {r0} - bx r0 - thumb_func_end PlayerGoSpeed0 - - thumb_func_start sub_80593C4 -sub_80593C4: @ 80593C4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_8060744 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl player_npc_set_state_and_x22_etc - pop {r0} - bx r0 - thumb_func_end sub_80593C4 - - thumb_func_start npc_use_some_d2s -npc_use_some_d2s: @ 80593DC - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl d2s_08064034 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl player_npc_set_state_and_x22_etc - pop {r0} - bx r0 - thumb_func_end npc_use_some_d2s - - thumb_func_start sub_80593F4 -sub_80593F4: @ 80593F4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_806079C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl player_npc_set_state_and_x22_etc - pop {r0} - bx r0 - thumb_func_end sub_80593F4 - - thumb_func_start sub_805940C -sub_805940C: @ 805940C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80607F4 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl player_npc_set_state_and_x22_etc - pop {r0} - bx r0 - thumb_func_end sub_805940C - - thumb_func_start PlayerOnBikeCollide -PlayerOnBikeCollide: @ 8059424 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl PlayCollisionSoundIfNotFacingWarp - adds r0, r4, 0 - bl GetStepInPlaceDelay16AnimId - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl player_npc_set_state_and_x22_etc - pop {r4} - pop {r0} - bx r0 - thumb_func_end PlayerOnBikeCollide - - thumb_func_start PlayerNotOnBikeCollide -PlayerNotOnBikeCollide: @ 8059448 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl PlayCollisionSoundIfNotFacingWarp - adds r0, r4, 0 - bl GetStepInPlaceDelay32AnimId - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl player_npc_set_state_and_x22_etc - pop {r4} - pop {r0} - bx r0 - thumb_func_end PlayerNotOnBikeCollide - - thumb_func_start PlayerFaceDirection -PlayerFaceDirection: @ 805946C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl GetFaceDirectionAnimId - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl player_npc_set_state_and_x22_etc - pop {r0} - bx r0 - thumb_func_end PlayerFaceDirection - - thumb_func_start PlayerTurnInPlace -PlayerTurnInPlace: @ 8059484 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl GetStepInPlaceDelay8AnimId - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl player_npc_set_state_and_x22_etc - pop {r0} - bx r0 - thumb_func_end PlayerTurnInPlace - - thumb_func_start PlayerJumpLedge -PlayerJumpLedge: @ 805949C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0xA - bl PlaySE - adds r0, r4, 0 - bl GetJumpLedgeAnimId - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x8 - bl player_npc_set_state_and_x22_etc - pop {r4} - pop {r0} - bx r0 - thumb_func_end PlayerJumpLedge - - thumb_func_start sub_80594C0 -sub_80594C0: @ 80594C0 - push {r4,lr} - ldr r4, _080594FC @ =gPlayerAvatar - ldrb r0, [r4, 0x3] - cmp r0, 0x2 - beq _080594CE - cmp r0, 0 - bne _080594F6 -_080594CE: - bl player_should_look_direction_be_enforced_upon_movement - lsls r0, 24 - cmp r0, 0 - beq _080594F6 - ldr r2, _08059500 @ =gMapObjects - ldrb r1, [r4, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionAnimId - lsls r0, 24 - lsrs r0, 24 - bl sub_8059348 -_080594F6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080594FC: .4byte gPlayerAvatar -_08059500: .4byte gMapObjects - thumb_func_end sub_80594C0 - - thumb_func_start sub_8059504 -sub_8059504: @ 8059504 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80609D8 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl player_npc_set_state_and_x22_etc - pop {r0} - bx r0 - thumb_func_end sub_8059504 - - thumb_func_start sub_805951C -sub_805951C: @ 805951C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_8060A04 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl player_npc_set_state_and_x22_etc - pop {r0} - bx r0 - thumb_func_end sub_805951C - - thumb_func_start sub_8059534 -sub_8059534: @ 8059534 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_8060A30 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl player_npc_set_state_and_x22_etc - pop {r0} - bx r0 - thumb_func_end sub_8059534 - - thumb_func_start sub_805954C -sub_805954C: @ 805954C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x22 - bl PlaySE - adds r0, r4, 0 - bl sub_8060A5C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl player_npc_set_state_and_x22_etc - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_805954C - - thumb_func_start sub_8059570 -sub_8059570: @ 8059570 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x22 - bl PlaySE - adds r0, r4, 0 - bl sub_8060A88 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl player_npc_set_state_and_x22_etc - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8059570 - - thumb_func_start sub_8059594 -sub_8059594: @ 8059594 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x22 - bl PlaySE - adds r0, r4, 0 - bl sub_8060AB4 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x8 - bl player_npc_set_state_and_x22_etc - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8059594 - - thumb_func_start sub_80595B8 -sub_80595B8: @ 80595B8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x22 - bl PlaySE - adds r0, r4, 0 - bl sub_8060878 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl player_npc_set_state_and_x22_etc - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80595B8 - - thumb_func_start sub_80595DC -sub_80595DC: @ 80595DC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x7 - bl PlaySE - adds r0, r4, 0 - bl sub_8060AE0 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl player_npc_set_state_and_x22_etc - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80595DC - - thumb_func_start sub_8059600 -sub_8059600: @ 8059600 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_8060B0C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl player_npc_set_state_and_x22_etc - pop {r0} - bx r0 - thumb_func_end sub_8059600 - - thumb_func_start sub_8059618 -sub_8059618: @ 8059618 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_8060B38 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl player_npc_set_state_and_x22_etc - pop {r0} - bx r0 - thumb_func_end sub_8059618 - - thumb_func_start sub_8059630 -sub_8059630: @ 8059630 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_8060B64 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl player_npc_set_state_and_x22_etc - pop {r0} - bx r0 - thumb_func_end sub_8059630 - - thumb_func_start PlayCollisionSoundIfNotFacingWarp -PlayCollisionSoundIfNotFacingWarp: @ 8059648 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r2, _080596B8 @ =gMapObjects - ldr r0, _080596BC @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1E] - ldr r2, _080596C0 @ =gUnknown_0830FC34 - subs r1, r4, 0x1 - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _080596B0 - cmp r4, 0x2 - bne _080596AA - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - movs r0, 0x2 - mov r1, sp - adds r2, r4, 0 - bl MoveCoords - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl is_tile_x69_2_warp_door - lsls r0, 24 - cmp r0, 0 - bne _080596B0 -_080596AA: - movs r0, 0x7 - bl PlaySE -_080596B0: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080596B8: .4byte gMapObjects -_080596BC: .4byte gPlayerAvatar -_080596C0: .4byte gUnknown_0830FC34 - thumb_func_end PlayCollisionSoundIfNotFacingWarp - - thumb_func_start GetXYCoordsOneStepInFrontOfPlayer -GetXYCoordsOneStepInFrontOfPlayer: @ 80596C4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r3, _08059700 @ =gMapObjects - ldr r2, _08059704 @ =gPlayerAvatar - ldrb r1, [r2, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x10] - strh r0, [r4] - ldrb r1, [r2, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x12] - strh r0, [r5] - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - adds r2, r5, 0 - bl MoveCoords - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08059700: .4byte gMapObjects -_08059704: .4byte gPlayerAvatar - thumb_func_end GetXYCoordsOneStepInFrontOfPlayer - - thumb_func_start PlayerGetDestCoords -PlayerGetDestCoords: @ 8059708 - push {r4,r5,lr} - ldr r5, _08059730 @ =gMapObjects - ldr r4, _08059734 @ =gPlayerAvatar - ldrb r3, [r4, 0x5] - lsls r2, r3, 3 - adds r2, r3 - lsls r2, 2 - adds r2, r5 - ldrh r2, [r2, 0x10] - strh r2, [r0] - ldrb r2, [r4, 0x5] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r0, r5 - ldrh r0, [r0, 0x12] - strh r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08059730: .4byte gMapObjects -_08059734: .4byte gPlayerAvatar - thumb_func_end PlayerGetDestCoords - - thumb_func_start player_get_direction_lower_nybble -player_get_direction_lower_nybble: @ 8059738 - ldr r2, _08059750 @ =gMapObjects - ldr r0, _08059754 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x18] - lsls r0, 28 - lsrs r0, 28 - bx lr - .align 2, 0 -_08059750: .4byte gMapObjects -_08059754: .4byte gPlayerAvatar - thumb_func_end player_get_direction_lower_nybble - - thumb_func_start player_get_direction_upper_nybble -player_get_direction_upper_nybble: @ 8059758 - ldr r2, _0805976C @ =gMapObjects - ldr r0, _08059770 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x18] - lsrs r0, 4 - bx lr - .align 2, 0 -_0805976C: .4byte gMapObjects -_08059770: .4byte gPlayerAvatar - thumb_func_end player_get_direction_upper_nybble - - thumb_func_start PlayerGetZCoord -PlayerGetZCoord: @ 8059774 - ldr r2, _08059788 @ =gMapObjects - ldr r0, _0805978C @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0xB] - lsrs r0, 4 - bx lr - .align 2, 0 -_08059788: .4byte gMapObjects -_0805978C: .4byte gPlayerAvatar - thumb_func_end PlayerGetZCoord - - thumb_func_start unref_sub_8059790 -unref_sub_8059790: @ 8059790 - push {lr} - adds r3, r0, 0 - adds r2, r1, 0 - ldr r0, _080597B8 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080597BC @ =gMapObjects - adds r0, r1 - lsls r3, 16 - asrs r3, 16 - lsls r2, 16 - asrs r2, 16 - adds r1, r3, 0 - bl sub_805C058 - pop {r0} - bx r0 - .align 2, 0 -_080597B8: .4byte gPlayerAvatar -_080597BC: .4byte gMapObjects - thumb_func_end unref_sub_8059790 - - thumb_func_start TestPlayerAvatarFlags -TestPlayerAvatarFlags: @ 80597C0 - ldr r1, _080597CC @ =gPlayerAvatar - ldrb r1, [r1] - ands r1, r0 - adds r0, r1, 0 - bx lr - .align 2, 0 -_080597CC: .4byte gPlayerAvatar - thumb_func_end TestPlayerAvatarFlags - - thumb_func_start sub_80597D0 -sub_80597D0: @ 80597D0 - ldr r0, _080597D8 @ =gPlayerAvatar - ldrb r0, [r0] - bx lr - .align 2, 0 -_080597D8: .4byte gPlayerAvatar - thumb_func_end sub_80597D0 - - thumb_func_start GetPlayerAvatarObjectId -GetPlayerAvatarObjectId: @ 80597DC - ldr r0, _080597E4 @ =gPlayerAvatar - ldrb r0, [r0, 0x4] - bx lr - .align 2, 0 -_080597E4: .4byte gPlayerAvatar - thumb_func_end GetPlayerAvatarObjectId - - thumb_func_start sub_80597E8 -sub_80597E8: @ 80597E8 - push {lr} - bl ForcedMovement_None - pop {r0} - bx r0 - thumb_func_end sub_80597E8 - - thumb_func_start sub_80597F4 -sub_80597F4: @ 80597F4 - push {r4,lr} - ldr r0, _08059834 @ =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _08059838 @ =gMapObjects - adds r4, r0 - adds r0, r4, 0 - bl npc_clear_strange_bits - ldrb r1, [r4, 0x18] - lsls r1, 28 - lsrs r1, 28 - adds r0, r4, 0 - bl FieldObjectSetDirection - movs r0, 0x6 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - beq _0805982C - bl sub_80E6084 - movs r0, 0 - bl sub_80E6010 -_0805982C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08059834: .4byte gPlayerAvatar -_08059838: .4byte gMapObjects - thumb_func_end sub_80597F4 - - thumb_func_start sub_805983C -sub_805983C: @ 805983C - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _08059850 @ =gUnknown_0830FC44 - lsrs r0, 23 - adds r1, r0 - adds r1, r2 - ldrb r0, [r1] - bx lr - .align 2, 0 -_08059850: .4byte gUnknown_0830FC44 - thumb_func_end sub_805983C - - thumb_func_start GetPlayerAvatarGraphicsIdByStateIdAndGender -GetPlayerAvatarGraphicsIdByStateIdAndGender: @ 8059854 - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _08059868 @ =gUnknown_0830FC54 - lsrs r0, 23 - adds r1, r0 - adds r1, r2 - ldrb r0, [r1] - bx lr - .align 2, 0 -_08059868: .4byte gUnknown_0830FC54 - thumb_func_end GetPlayerAvatarGraphicsIdByStateIdAndGender - - thumb_func_start GetPlayerAvatarGraphicsIdByStateId -GetPlayerAvatarGraphicsIdByStateId: @ 805986C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08059884 @ =gPlayerAvatar - ldrb r1, [r1, 0x7] - bl GetPlayerAvatarGraphicsIdByStateIdAndGender - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08059884: .4byte gPlayerAvatar - thumb_func_end GetPlayerAvatarGraphicsIdByStateId - - thumb_func_start unref_sub_8059888 -unref_sub_8059888: @ 8059888 - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x70 - beq _080598AA - cmp r0, 0x70 - bgt _080598A2 - cmp r0, 0x6D - bgt _080598AE - cmp r0, 0x69 - blt _080598AE - b _080598AA -_080598A2: - cmp r1, 0x8A - beq _080598AA - cmp r1, 0xC0 - bne _080598AE -_080598AA: - movs r0, 0x1 - b _080598B0 -_080598AE: - movs r0, 0 -_080598B0: - pop {r1} - bx r1 - thumb_func_end unref_sub_8059888 - - thumb_func_start GetPlayerAvatarGenderByGraphicsId -GetPlayerAvatarGenderByGraphicsId: @ 80598B4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x70 - beq _080598D6 - cmp r0, 0x70 - bgt _080598CE - cmp r0, 0x5D - bgt _080598DA - cmp r0, 0x59 - blt _080598DA - b _080598D6 -_080598CE: - cmp r1, 0x8A - beq _080598D6 - cmp r1, 0xC0 - bne _080598DA -_080598D6: - movs r0, 0x1 - b _080598DC -_080598DA: - movs r0, 0 -_080598DC: - pop {r1} - bx r1 - thumb_func_end GetPlayerAvatarGenderByGraphicsId - - thumb_func_start PartyHasMonWithSurf -PartyHasMonWithSurf: @ 80598E0 - push {r4,r5,lr} - movs r0, 0x8 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - bne _08059924 - movs r5, 0 - b _0805990A -_080598F2: - adds r0, r4, 0 - movs r1, 0x39 - bl pokemon_has_move - lsls r0, 24 - cmp r0, 0 - beq _08059904 - movs r0, 0x1 - b _08059926 -_08059904: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_0805990A: - cmp r5, 0x5 - bhi _08059924 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _0805992C @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - bne _080598F2 -_08059924: - movs r0, 0 -_08059926: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0805992C: .4byte gPlayerParty - thumb_func_end PartyHasMonWithSurf - - thumb_func_start IsPlayerSurfingNorth -IsPlayerSurfingNorth: @ 8059930 - push {lr} - bl player_get_direction_upper_nybble - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0805994E - movs r0, 0x8 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - beq _0805994E - movs r0, 0x1 - b _08059950 -_0805994E: - movs r0, 0 -_08059950: - pop {r1} - bx r1 - thumb_func_end IsPlayerSurfingNorth - - thumb_func_start IsPlayerFacingSurfableFishableWater -IsPlayerFacingSurfableFishableWater: @ 8059954 - push {r4,r5,lr} - sub sp, 0x4 - ldr r0, _080599CC @ =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _080599D0 @ =gMapObjects - adds r4, r0 - ldrh r1, [r4, 0x10] - mov r0, sp - strh r1, [r0] - ldrh r0, [r4, 0x12] - mov r5, sp - adds r5, 0x2 - strh r0, [r5] - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - mov r1, sp - adds r2, r5, 0 - bl MoveCoords - mov r0, sp - movs r2, 0 - ldrsh r1, [r0, r2] - movs r0, 0 - ldrsh r2, [r5, r0] - ldrb r3, [r4, 0x18] - lsls r3, 28 - lsrs r3, 28 - adds r0, r4, 0 - bl npc_block_way - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _080599D4 - bl PlayerGetZCoord - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _080599D4 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsSurfableFishableWater - lsls r0, 24 - cmp r0, 0 - beq _080599D4 - movs r0, 0x1 - b _080599D6 - .align 2, 0 -_080599CC: .4byte gPlayerAvatar -_080599D0: .4byte gMapObjects -_080599D4: - movs r0, 0 -_080599D6: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end IsPlayerFacingSurfableFishableWater - - thumb_func_start ClearPlayerAvatarInfo -ClearPlayerAvatarInfo: @ 80599E0 - push {lr} - ldr r0, _080599F0 @ =gPlayerAvatar - movs r1, 0 - movs r2, 0x24 - bl memset - pop {r0} - bx r0 - .align 2, 0 -_080599F0: .4byte gPlayerAvatar - thumb_func_end ClearPlayerAvatarInfo - - thumb_func_start SetPlayerAvatarStateMask -SetPlayerAvatarStateMask: @ 80599F4 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _08059A08 @ =gPlayerAvatar - ldrb r2, [r3] - movs r1, 0xE0 - ands r1, r2 - orrs r0, r1 - strb r0, [r3] - bx lr - .align 2, 0 -_08059A08: .4byte gPlayerAvatar - thumb_func_end SetPlayerAvatarStateMask - - thumb_func_start GetPlayerAvatarStateTransitionByGraphicsId -GetPlayerAvatarStateTransitionByGraphicsId: @ 8059A0C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0 - ldr r3, _08059A34 @ =gUnknown_0830FC64 - lsls r0, r1, 2 - adds r0, r1 - lsls r4, r0, 1 - adds r6, r3, 0x1 -_08059A22: - lsls r0, r2, 1 - adds r1, r0, r4 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r5 - bne _08059A38 - adds r0, r1, r6 - ldrb r0, [r0] - b _08059A44 - .align 2, 0 -_08059A34: .4byte gUnknown_0830FC64 -_08059A38: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x4 - bls _08059A22 - movs r0, 0x1 -_08059A44: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end GetPlayerAvatarStateTransitionByGraphicsId - - thumb_func_start GetPlayerAvatarGraphicsIdByCurrentState -GetPlayerAvatarGraphicsIdByCurrentState: @ 8059A4C - push {r4-r6,lr} - ldr r0, _08059A74 @ =gPlayerAvatar - ldrb r5, [r0] - movs r2, 0 - ldr r3, _08059A78 @ =gUnknown_0830FC64 - ldrb r1, [r0, 0x7] - lsls r0, r1, 2 - adds r0, r1 - lsls r4, r0, 1 - adds r6, r3, 0x1 -_08059A60: - lsls r0, r2, 1 - adds r1, r0, r4 - adds r0, r1, r6 - ldrb r0, [r0] - ands r0, r5 - cmp r0, 0 - beq _08059A7C - adds r0, r1, r3 - ldrb r0, [r0] - b _08059A88 - .align 2, 0 -_08059A74: .4byte gPlayerAvatar -_08059A78: .4byte gUnknown_0830FC64 -_08059A7C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x4 - bls _08059A60 - movs r0, 0 -_08059A88: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end GetPlayerAvatarGraphicsIdByCurrentState - - thumb_func_start SetPlayerAvatarExtraStateTransition -SetPlayerAvatarExtraStateTransition: @ 8059A90 - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _08059ABC @ =gPlayerAvatar - ldrb r1, [r5, 0x7] - bl GetPlayerAvatarStateTransitionByGraphicsId - lsls r0, 24 - lsrs r0, 24 - orrs r0, r4 - ldrb r1, [r5, 0x1] - orrs r0, r1 - strb r0, [r5, 0x1] - bl DoPlayerAvatarTransition - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08059ABC: .4byte gPlayerAvatar - thumb_func_end SetPlayerAvatarExtraStateTransition - - thumb_func_start InitPlayerAvatar -InitPlayerAvatar: @ 8059AC0 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x18 - adds r4, r0, 0 - adds r5, r1, 0 - mov r9, r2 - mov r8, r3 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - mov r1, sp - movs r0, 0xFF - strb r0, [r1] - movs r0, 0 - mov r1, r8 - bl GetPlayerAvatarGraphicsIdByStateIdAndGender - mov r1, sp - movs r3, 0 - strb r0, [r1, 0x1] - mov r0, sp - lsls r4, 16 - asrs r4, 16 - subs r4, 0x7 - movs r6, 0 - strh r4, [r0, 0x4] - lsls r5, 16 - asrs r5, 16 - subs r5, 0x7 - strh r5, [r0, 0x6] - strb r6, [r0, 0x8] - movs r0, 0xB - strb r0, [r1, 0x9] - mov r2, sp - ldrb r1, [r2, 0xA] - subs r0, 0x1B - ands r0, r1 - strb r0, [r2, 0xA] - mov r0, sp - strb r6, [r0, 0xA] - strh r3, [r0, 0xC] - strh r3, [r0, 0xE] - str r3, [sp, 0x10] - strh r3, [r0, 0x14] - bl SpawnSpecialFieldObject - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 3 - adds r4, r5 - lsls r4, 2 - ldr r0, _08059B80 @ =gMapObjects - adds r4, r0 - ldrb r0, [r4, 0x2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4, 0x2] - bl sub_8126B54 - strb r0, [r4, 0x1B] - adds r0, r4, 0 - mov r1, r9 - bl FieldObjectTurn - bl ClearPlayerAvatarInfo - ldr r0, _08059B84 @ =gPlayerAvatar - strb r6, [r0, 0x2] - strb r6, [r0, 0x3] - strb r5, [r0, 0x5] - ldrb r1, [r4, 0x4] - strb r1, [r0, 0x4] - mov r1, r8 - strb r1, [r0, 0x7] - movs r0, 0x21 - bl SetPlayerAvatarStateMask - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08059B80: .4byte gMapObjects -_08059B84: .4byte gPlayerAvatar - thumb_func_end InitPlayerAvatar - - thumb_func_start sub_8059B88 -sub_8059B88: @ 8059B88 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r6, _08059BE8 @ =gMapObjects - ldr r5, _08059BEC @ =gPlayerAvatar - ldrb r0, [r5, 0x5] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - movs r0, 0x1 - ands r4, r0 - lsls r3, r4, 5 - ldrb r2, [r1, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x1] - movs r0, 0x8 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - beq _08059BE0 - ldr r2, _08059BF0 @ =gSprites - ldrb r1, [r5, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x1A] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - lsls r3, r4, 2 - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r3 - strb r0, [r1] -_08059BE0: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08059BE8: .4byte gMapObjects -_08059BEC: .4byte gPlayerAvatar -_08059BF0: .4byte gSprites - thumb_func_end sub_8059B88 - - thumb_func_start sub_8059BF4 -sub_8059BF4: @ 8059BF4 - push {r4,r5,lr} - ldr r5, _08059C30 @ =gPlayerAvatar - ldrb r0, [r5, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _08059C34 @ =gMapObjects - adds r4, r0 - movs r0, 0x5 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_805B980 - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08059C38 @ =gSprites - adds r0, r1 - movs r1, 0 - bl StartSpriteAnim - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08059C30: .4byte gPlayerAvatar -_08059C34: .4byte gMapObjects -_08059C38: .4byte gSprites - thumb_func_end sub_8059BF4 - - thumb_func_start sub_8059C3C -sub_8059C3C: @ 8059C3C - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r6, _08059C88 @ =gPlayerAvatar - ldrb r0, [r6, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _08059C8C @ =gMapObjects - adds r4, r0 - movs r0, 0x6 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_805B980 - ldrb r0, [r6, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _08059C90 @ =gSprites - adds r4, r0 - adds r0, r5, 0 - bl sub_805FDE8 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08059C88: .4byte gPlayerAvatar -_08059C8C: .4byte gMapObjects -_08059C90: .4byte gSprites - thumb_func_end sub_8059C3C - - thumb_func_start sub_8059C94 -sub_8059C94: @ 8059C94 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r6, _08059CFC @ =gPlayerAvatar - ldrb r0, [r6, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _08059D00 @ =gMapObjects - adds r4, r0 - movs r0, 0x2 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_805B980 - ldrb r0, [r6, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _08059D04 @ =gSprites - mov r8, r0 - add r4, r8 - adds r0, r5, 0 - bl sub_805FD98 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldrb r1, [r6, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - movs r1, 0x1 - bl SeekSpriteAnim - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08059CFC: .4byte gPlayerAvatar -_08059D00: .4byte gMapObjects -_08059D04: .4byte gSprites - thumb_func_end sub_8059C94 - - thumb_func_start sub_8059D08 -sub_8059D08: @ 8059D08 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r6, _08059D54 @ =gPlayerAvatar - ldrb r0, [r6, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _08059D58 @ =gMapObjects - adds r4, r0 - movs r0, 0x7 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_805B980 - ldrb r0, [r6, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _08059D5C @ =gSprites - adds r4, r0 - adds r0, r5, 0 - bl FieldObjectDirectionToImageAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08059D54: .4byte gPlayerAvatar -_08059D58: .4byte gMapObjects -_08059D5C: .4byte gSprites - thumb_func_end sub_8059D08 - - thumb_func_start sub_8059D60 -sub_8059D60: @ 8059D60 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - adds r5, r0, 0 - ldrb r0, [r5, 0x1E] - mov r8, r0 - movs r1, 0 - mov r0, sp - strh r1, [r0] - movs r6, 0x1 - ldr r1, _08059DC4 @ =gUnknown_0830FC78 - mov r9, r1 - mov r4, sp - mov r7, sp - adds r7, 0x2 -_08059D82: - movs r1, 0 - ldrsh r0, [r4, r1] - lsls r0, 2 - add r0, r9 - ldr r1, [r0] - mov r0, r8 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - beq _08059DC8 - ldrb r0, [r5, 0x18] - lsrs r0, 4 - cmp r6, r0 - bne _08059DC8 - ldrh r0, [r5, 0x10] - strh r0, [r4] - ldrh r0, [r5, 0x12] - strh r0, [r7] - adds r0, r6, 0 - mov r1, sp - adds r2, r7, 0 - bl MoveCoords - ldrb r0, [r5, 0x1B] - movs r1, 0 - ldrsh r2, [r4, r1] - movs r1, 0 - ldrsh r3, [r7, r1] - adds r1, r6, 0 - bl sub_8126BC4 - b _08059DE2 - .align 2, 0 -_08059DC4: .4byte gUnknown_0830FC78 -_08059DC8: - ldrh r1, [r4] - adds r1, 0x1 - strh r1, [r4] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x3 - ble _08059D82 - ldrb r0, [r5, 0x1B] - bl objid_set_invisible -_08059DE2: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8059D60 - - thumb_func_start task_add_bump_boulder -task_add_bump_boulder: @ 8059DF0 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r6, _08059E24 @ =sub_8059E2C - adds r0, r6, 0 - movs r1, 0xFF - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08059E28 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0xA] - strh r5, [r1, 0xC] - bl _call_via_r6 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08059E24: .4byte sub_8059E2C -_08059E28: .4byte gTasks - thumb_func_end task_add_bump_boulder - - thumb_func_start sub_8059E2C -sub_8059E2C: @ 8059E2C - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r6, _08059E74 @ =gUnknown_0830FC88 - ldr r2, _08059E78 @ =gTasks - ldr r5, _08059E7C @ =gMapObjects - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_08059E40: - movs r0, 0x8 - ldrsh r3, [r4, r0] - lsls r3, 2 - adds r3, r6 - ldr r0, _08059E80 @ =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r2, r0, 3 - adds r2, r0 - lsls r2, 2 - adds r2, r5 - ldr r3, [r3] - adds r0, r4, 0 - bl _call_via_r3 - lsls r0, 24 - cmp r0, 0 - bne _08059E40 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08059E74: .4byte gUnknown_0830FC88 -_08059E78: .4byte gTasks -_08059E7C: .4byte gMapObjects -_08059E80: .4byte gPlayerAvatar - thumb_func_end sub_8059E2C - - thumb_func_start sub_8059E84 -sub_8059E84: @ 8059E84 - push {r4,lr} - adds r4, r0, 0 - bl ScriptContext2_Enable - ldr r1, _08059EA0 @ =gPlayerAvatar - movs r0, 0x1 - strb r0, [r1, 0x6] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08059EA0: .4byte gPlayerAvatar - thumb_func_end sub_8059E84 - - thumb_func_start sub_8059EA4 -sub_8059EA4: @ 8059EA4 - push {r4-r6,lr} - adds r6, r0, 0 - adds r5, r1, 0 - adds r4, r2, 0 - adds r0, r5, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - bne _08059F2E - adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - bne _08059F2E - adds r0, r5, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - ldrb r0, [r6, 0xC] - bl GetStepInPlaceDelay16AnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl FieldObjectSetSpecialAnim - ldrb r0, [r6, 0xC] - bl GetSimpleGoAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - ldr r2, _08059F38 @ =gUnknown_0202FF84 - movs r1, 0x10 - ldrsh r0, [r4, r1] - str r0, [r2] - movs r1, 0x12 - ldrsh r0, [r4, r1] - str r0, [r2, 0x4] - ldrb r0, [r4, 0xB] - lsrs r0, 4 - str r0, [r2, 0x8] - ldr r3, _08059F3C @ =gSprites - ldrb r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x5] - lsls r0, 28 - lsrs r0, 30 - str r0, [r2, 0xC] - movs r0, 0xA - bl FieldEffectStart - movs r0, 0xD6 - bl PlaySE - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] -_08059F2E: - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08059F38: .4byte gUnknown_0202FF84 -_08059F3C: .4byte gSprites - thumb_func_end sub_8059EA4 - - thumb_func_start sub_8059F40 -sub_8059F40: @ 8059F40 - push {r4,r5,lr} - adds r4, r1, 0 - adds r5, r2, 0 - adds r0, r4, 0 - bl FieldObjectCheckIfSpecialAnimFinishedOrInactive - lsls r0, 24 - cmp r0, 0 - beq _08059F82 - adds r0, r5, 0 - bl FieldObjectCheckIfSpecialAnimFinishedOrInactive - lsls r0, 24 - cmp r0, 0 - beq _08059F82 - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - adds r0, r5, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - ldr r1, _08059F8C @ =gPlayerAvatar - movs r0, 0 - strb r0, [r1, 0x6] - bl ScriptContext2_Disable - ldr r0, _08059F90 @ =sub_8059E2C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_08059F82: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08059F8C: .4byte gPlayerAvatar -_08059F90: .4byte sub_8059E2C - thumb_func_end sub_8059F40 - - thumb_func_start sub_8059F94 -sub_8059F94: @ 8059F94 - push {r4,lr} - ldr r4, _08059FB0 @ =sub_8059FB4 - adds r0, r4, 0 - movs r1, 0xFF - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08059FB0: .4byte sub_8059FB4 - thumb_func_end sub_8059F94 - - thumb_func_start sub_8059FB4 -sub_8059FB4: @ 8059FB4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08059FF0 @ =gUnknown_0830FC94 - ldr r2, _08059FF4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_08059FC6: - movs r0, 0x8 - ldrsh r2, [r4, r0] - lsls r2, 2 - adds r2, r5 - ldr r0, _08059FF8 @ =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _08059FFC @ =gMapObjects - adds r1, r0 - ldr r2, [r2] - adds r0, r4, 0 - bl _call_via_r2 - lsls r0, 24 - cmp r0, 0 - bne _08059FC6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08059FF0: .4byte gUnknown_0830FC94 -_08059FF4: .4byte gTasks -_08059FF8: .4byte gPlayerAvatar -_08059FFC: .4byte gMapObjects - thumb_func_end sub_8059FB4 - - thumb_func_start sub_805A000 -sub_805A000: @ 805A000 - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r1, 0 - ldr r5, _0805A064 @ =gPlayerAvatar - movs r0, 0x1 - strb r0, [r5, 0x6] - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _0805A05C - movs r0, 0xA - bl PlaySE - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl sub_806084C - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - ldrh r0, [r6, 0xA] - adds r0, 0x1 - strh r0, [r6, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _0805A05C - movs r0, 0 - strb r0, [r5, 0x6] - ldrb r0, [r5, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r5, 0x1] - ldr r0, _0805A068 @ =sub_8059FB4 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_0805A05C: - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0805A064: .4byte gPlayerAvatar -_0805A068: .4byte sub_8059FB4 - thumb_func_end sub_805A000 - - thumb_func_start sub_805A06C -sub_805A06C: @ 805A06C - push {r4,lr} - ldr r4, _0805A088 @ =sub_805A08C - adds r0, r4, 0 - movs r1, 0xFF - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805A088: .4byte sub_805A08C - thumb_func_end sub_805A06C - - thumb_func_start sub_805A08C -sub_805A08C: @ 805A08C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _0805A0C8 @ =gUnknown_0830FC98 - ldr r2, _0805A0CC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_0805A09E: - movs r0, 0x8 - ldrsh r2, [r4, r0] - lsls r2, 2 - adds r2, r5 - ldr r0, _0805A0D0 @ =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _0805A0D4 @ =gMapObjects - adds r1, r0 - ldr r2, [r2] - adds r0, r4, 0 - bl _call_via_r2 - lsls r0, 24 - cmp r0, 0 - bne _0805A09E - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0805A0C8: .4byte gUnknown_0830FC98 -_0805A0CC: .4byte gTasks -_0805A0D0: .4byte gPlayerAvatar -_0805A0D4: .4byte gMapObjects - thumb_func_end sub_805A08C - - thumb_func_start sub_805A0D8 -sub_805A0D8: @ 805A0D8 - push {lr} - ldrh r2, [r0, 0x8] - adds r2, 0x1 - strh r2, [r0, 0x8] - ldrb r1, [r1, 0x18] - lsrs r1, 4 - strh r1, [r0, 0xA] - ldr r1, _0805A0FC @ =gPlayerAvatar - movs r0, 0x1 - strb r0, [r1, 0x6] - bl ScriptContext2_Enable - movs r0, 0x2D - bl PlaySE - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_0805A0FC: .4byte gPlayerAvatar - thumb_func_end sub_805A0D8 - - thumb_func_start sub_805A100 -sub_805A100: @ 805A100 - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, _0805A174 @ =gUnknown_0830FCA8 - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r0, r5, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _0805A168 - ldrb r0, [r5, 0x18] - lsrs r0, 4 - subs r0, 0x1 - add r0, sp - ldrb r6, [r0] - adds r0, r6, 0 - bl GetFaceDirectionAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl FieldObjectSetSpecialAnim - ldrb r0, [r4, 0xA] - cmp r6, r0 - bne _0805A146 - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] -_0805A146: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x3 - ble _0805A168 - ldrb r0, [r4, 0xA] - bl GetOppositeDirection - lsls r0, 24 - lsrs r0, 24 - cmp r6, r0 - bne _0805A168 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0805A168: - movs r0, 0 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0805A174: .4byte gUnknown_0830FCA8 - thumb_func_end sub_805A100 - - thumb_func_start sub_805A178 -sub_805A178: @ 805A178 - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r0, 0 - adds r4, r1, 0 - ldr r1, _0805A1B4 @ =gUnknown_0830FCAC - mov r0, sp - movs r2, 0x5 - bl memcpy - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _0805A1A8 - movs r1, 0xC - ldrsh r0, [r5, r1] - add r0, sp - ldrb r1, [r0] - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - movs r0, 0x1 - strh r0, [r5, 0x8] -_0805A1A8: - movs r0, 0 - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0805A1B4: .4byte gUnknown_0830FCAC - thumb_func_end sub_805A178 - - thumb_func_start sub_805A1B8 -sub_805A1B8: @ 805A1B8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r0, r5, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _0805A1FC - ldrb r0, [r4, 0xA] - bl GetOppositeDirection - lsls r0, 24 - lsrs r0, 24 - bl GetSimpleGoAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl FieldObjectSetSpecialAnim - bl ScriptContext2_Disable - ldr r1, _0805A204 @ =gPlayerAvatar - movs r0, 0 - strb r0, [r1, 0x6] - ldr r0, _0805A208 @ =sub_805A08C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_0805A1FC: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0805A204: .4byte gPlayerAvatar -_0805A208: .4byte sub_805A08C - thumb_func_end sub_805A1B8 - - thumb_func_start sub_805A20C -sub_805A20C: @ 805A20C - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ScriptContext2_Enable - bl sav1_reset_battle_music_maybe - bl sub_8053F84 - ldr r2, _0805A258 @ =gPlayerAvatar - ldrb r1, [r2] - movs r0, 0xF7 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x1 - strb r0, [r2, 0x6] - ldr r5, _0805A25C @ =taskFF_0805D1D4 - adds r0, r5, 0 - movs r1, 0xFF - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0805A260 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - bl _call_via_r5 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0805A258: .4byte gPlayerAvatar -_0805A25C: .4byte taskFF_0805D1D4 -_0805A260: .4byte gTasks - thumb_func_end sub_805A20C - - thumb_func_start taskFF_0805D1D4 -taskFF_0805D1D4: @ 805A264 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _0805A2C0 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0805A2C4 @ =gMapObjects - adds r5, r0, r1 - adds r0, r5, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - beq _0805A290 - adds r0, r5, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _0805A2B8 -_0805A290: - ldrb r0, [r5, 0x1A] - movs r1, 0x2 - bl sub_8127ED0 - ldr r0, _0805A2C8 @ =gTasks - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 3 - adds r4, r0 - ldrb r0, [r4, 0x8] - bl sub_80608D0 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl FieldObjectSetSpecialAnim - ldr r0, _0805A2CC @ =sub_805A2D0 - str r0, [r4] -_0805A2B8: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0805A2C0: .4byte gPlayerAvatar -_0805A2C4: .4byte gMapObjects -_0805A2C8: .4byte gTasks -_0805A2CC: .4byte sub_805A2D0 - thumb_func_end taskFF_0805D1D4 - - thumb_func_start sub_805A2D0 -sub_805A2D0: @ 805A2D0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r6, _0805A33C @ =gPlayerAvatar - ldrb r1, [r6, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0805A340 @ =gMapObjects - adds r4, r0, r1 - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _0805A336 - movs r0, 0 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_805B980 - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - movs r0, 0 - strb r0, [r6, 0x6] - bl ScriptContext2_Disable - ldrb r1, [r4, 0x1A] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0805A344 @ =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r5, 0 - bl DestroyTask -_0805A336: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0805A33C: .4byte gPlayerAvatar -_0805A340: .4byte gMapObjects -_0805A344: .4byte gSprites - thumb_func_end sub_805A2D0 - - thumb_func_start StartFishing -StartFishing: @ 805A348 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _0805A374 @ =sub_805A37C - adds r0, r5, 0 - movs r1, 0xFF - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0805A378 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x26] - bl _call_via_r5 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0805A374: .4byte sub_805A37C -_0805A378: .4byte gTasks - thumb_func_end StartFishing - - thumb_func_start sub_805A37C -sub_805A37C: @ 805A37C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _0805A3AC @ =gUnknown_0830FCB4 - ldr r2, _0805A3B0 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_0805A38E: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _0805A38E - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0805A3AC: .4byte gUnknown_0830FCB4 -_0805A3B0: .4byte gTasks - thumb_func_end sub_805A37C - - thumb_func_start sub_805A3B4 -sub_805A3B4: @ 805A3B4 - push {r4,lr} - adds r4, r0, 0 - bl ScriptContext2_Enable - ldr r1, _0805A3D0 @ =gPlayerAvatar - movs r0, 0x1 - strb r0, [r1, 0x6] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0805A3D0: .4byte gPlayerAvatar - thumb_func_end sub_805A3B4 - - thumb_func_start fish1 -fish1: @ 805A3D4 - push {r4-r6,lr} - sub sp, 0x10 - adds r5, r0, 0 - ldr r1, _0805A45C @ =gUnknown_0830FCF4 - mov r0, sp - movs r2, 0x6 - bl memcpy - add r4, sp, 0x8 - ldr r1, _0805A460 @ =gUnknown_0830FCFA - adds r0, r4, 0 - movs r2, 0x6 - bl memcpy - movs r0, 0 - strh r0, [r5, 0x20] - bl Random - movs r2, 0x26 - ldrsh r1, [r5, r2] - lsls r1, 1 - mov r2, sp - adds r6, r2, r1 - lsls r0, 16 - lsrs r0, 16 - adds r4, r1 - movs r2, 0 - ldrsh r1, [r4, r2] - bl __modsi3 - ldrh r1, [r6] - adds r1, r0 - strh r1, [r5, 0x22] - ldr r3, _0805A464 @ =gMapObjects - ldr r2, _0805A468 @ =gPlayerAvatar - ldrb r1, [r2, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x5] - strh r0, [r5, 0x24] - ldrb r0, [r2, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - adds r4, r3 - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimActive - ldrb r0, [r4, 0x1] - movs r1, 0x8 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl sub_8059C3C - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - add sp, 0x10 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0805A45C: .4byte gUnknown_0830FCF4 -_0805A460: .4byte gUnknown_0830FCFA -_0805A464: .4byte gMapObjects -_0805A468: .4byte gPlayerAvatar - thumb_func_end fish1 - - thumb_func_start fish2 -fish2: @ 805A46C - push {r4,lr} - adds r4, r0, 0 - bl sub_805A954 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3B - ble _0805A488 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0805A488: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end fish2 - - thumb_func_start fish3 -fish3: @ 805A490 - push {r4,lr} - adds r4, r0, 0 - bl MenuDisplayMessageBox - ldrh r0, [r4, 0x8] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x8] - strh r1, [r4, 0xA] - strh r1, [r4, 0xC] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - adds r1, r0, 0 - adds r0, r1, 0x1 - strh r0, [r4, 0xE] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _0805A4C4 - adds r0, r1, 0x4 - strh r0, [r4, 0xE] -_0805A4C4: - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0x9 - ble _0805A4D0 - movs r0, 0xA - strh r0, [r4, 0xE] -_0805A4D0: - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - thumb_func_end fish3 - - thumb_func_start fish4 -fish4: @ 805A4D8 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r1, _0805A514 @ =gUnknown_0830FD00 - mov r0, sp - movs r2, 0x2 - bl memcpy - bl sub_805A954 - ldrh r0, [r4, 0xA] - adds r2, r0, 0x1 - strh r2, [r4, 0xA] - ldr r0, _0805A518 @ =gMain - ldrh r0, [r0, 0x2E] - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _0805A51C - movs r0, 0xB - strh r0, [r4, 0x8] - movs r1, 0x20 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0805A50E - movs r0, 0xC - strh r0, [r4, 0x8] -_0805A50E: - movs r0, 0x1 - b _0805A564 - .align 2, 0 -_0805A514: .4byte gUnknown_0830FD00 -_0805A518: .4byte gMain -_0805A51C: - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _0805A562 - strh r1, [r4, 0xA] - ldrh r2, [r4, 0xC] - movs r3, 0xC - ldrsh r1, [r4, r3] - movs r3, 0xE - ldrsh r0, [r4, r3] - cmp r1, r0 - blt _0805A54E - ldrh r0, [r4, 0x8] - adds r1, r0, 0x1 - strh r1, [r4, 0x8] - ldrh r2, [r4, 0x20] - movs r3, 0x20 - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _0805A548 - adds r0, r1, 0x1 - strh r0, [r4, 0x8] -_0805A548: - adds r0, r2, 0x1 - strh r0, [r4, 0x20] - b _0805A562 -_0805A54E: - adds r1, r2, 0x4 - lsls r1, 24 - lsrs r1, 24 - mov r0, sp - movs r2, 0xF - bl MenuPrint - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] -_0805A562: - movs r0, 0 -_0805A564: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end fish4 - - thumb_func_start party_menu_update_status_condition_object -party_menu_update_status_condition_object: @ 805A56C - push {r4,lr} - adds r4, r0, 0 - bl sub_805A954 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - bl GetFishingWildMonListHeader - lsls r0, 24 - cmp r0, 0 - beq _0805A590 - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _0805A596 -_0805A590: - movs r0, 0xB - strh r0, [r4, 0x8] - b _0805A5BC -_0805A596: - ldr r0, _0805A5C4 @ =gPlayerAvatar - ldrb r0, [r0, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _0805A5C8 @ =gSprites - adds r4, r0 - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - bl sub_805FE08 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim -_0805A5BC: - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0805A5C4: .4byte gPlayerAvatar -_0805A5C8: .4byte gSprites - thumb_func_end party_menu_update_status_condition_object - - thumb_func_start sub_805A5CC -sub_805A5CC: @ 805A5CC - push {r4,lr} - adds r4, r0, 0 - bl sub_805A954 - ldr r0, _0805A5F0 @ =gOtherText_OhABite - movs r1, 0x4 - movs r2, 0x11 - bl MenuPrint - ldrh r0, [r4, 0x8] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x8] - strh r1, [r4, 0xA] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0805A5F0: .4byte gOtherText_OhABite - thumb_func_end sub_805A5CC - - thumb_func_start fish7 -fish7: @ 805A5F4 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r1, _0805A628 @ =gUnknown_0830FD02 - mov r0, sp - movs r2, 0x6 - bl memcpy - bl sub_805A954 - ldrh r1, [r4, 0xA] - adds r1, 0x1 - strh r1, [r4, 0xA] - movs r2, 0x26 - ldrsh r0, [r4, r2] - lsls r0, 1 - add r0, sp - lsls r1, 16 - asrs r1, 16 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r1, r0 - blt _0805A62C - movs r0, 0xC - b _0805A63C - .align 2, 0 -_0805A628: .4byte gUnknown_0830FD02 -_0805A62C: - ldr r0, _0805A648 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0805A63E - ldrh r0, [r4, 0x8] - adds r0, 0x1 -_0805A63C: - strh r0, [r4, 0x8] -_0805A63E: - movs r0, 0 - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0805A648: .4byte gMain - thumb_func_end fish7 - - thumb_func_start fish8 -fish8: @ 805A64C - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - ldr r1, _0805A6B0 @ =gUnknown_0830FD08 - mov r0, sp - movs r2, 0xC - bl memcpy - bl sub_805A954 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x20 - ldrsh r1, [r4, r0] - movs r2, 0x22 - ldrsh r0, [r4, r2] - cmp r1, r0 - blt _0805A6A2 - cmp r1, 0x1 - bgt _0805A6A6 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - movs r3, 0x20 - ldrsh r2, [r4, r3] - lsls r2, 1 - movs r3, 0x26 - ldrsh r1, [r4, r3] - lsls r1, 2 - adds r2, r1 - mov r3, sp - adds r1, r3, r2 - movs r2, 0 - ldrsh r1, [r1, r2] - lsls r0, 16 - asrs r0, 16 - cmp r1, r0 - ble _0805A6A6 -_0805A6A2: - movs r0, 0x3 - strh r0, [r4, 0x8] -_0805A6A6: - movs r0, 0 - add sp, 0xC - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0805A6B0: .4byte gUnknown_0830FD08 - thumb_func_end fish8 - - thumb_func_start sub_805A6B4 -sub_805A6B4: @ 805A6B4 - push {r4,lr} - adds r4, r0, 0 - bl sub_805A954 - ldr r0, _0805A6D8 @ =gOtherText_PokeOnHook - bl sub_8072044 - bl MenuDisplayMessageBox - ldrh r0, [r4, 0x8] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x8] - strh r1, [r4, 0xA] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0805A6D8: .4byte gOtherText_PokeOnHook - thumb_func_end sub_805A6B4 - - thumb_func_start sub_805A6DC -sub_805A6DC: @ 805A6DC - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _0805A780 - bl sub_805A954 - movs r0, 0xA - ldrsh r6, [r5, r0] - cmp r6, 0 - bne _0805A780 - bl MenuUpdateWindowText - lsls r0, 24 - cmp r0, 0 - beq _0805A778 - ldr r7, _0805A76C @ =gPlayerAvatar - ldrb r0, [r7, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r1, _0805A770 @ =gMapObjects - mov r8, r1 - add r4, r8 - ldrh r1, [r5, 0x24] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_805B980 - ldrb r1, [r4, 0x18] - lsrs r1, 4 - adds r0, r4, 0 - bl FieldObjectTurn - ldrb r1, [r7] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0805A746 - ldrb r0, [r7, 0x5] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - add r1, r8 - ldrb r0, [r1, 0x1A] - movs r1, 0 - movs r2, 0 - bl sub_8127F28 -_0805A746: - ldr r2, _0805A774 @ =gSprites - ldrb r1, [r7, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r6, [r0, 0x24] - ldrb r1, [r7, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r6, [r0, 0x26] - bl MenuZeroFillScreen - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - b _0805A7A8 - .align 2, 0 -_0805A76C: .4byte gPlayerAvatar -_0805A770: .4byte gMapObjects -_0805A774: .4byte gSprites -_0805A778: - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _0805A7A8 -_0805A780: - ldr r1, _0805A7B4 @ =gPlayerAvatar - movs r0, 0 - strb r0, [r1, 0x6] - bl ScriptContext2_Disable - ldrh r0, [r5, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl FishingWildEncounter - movs r0, 0x1 - bl sub_80BE97C - ldr r0, _0805A7B8 @ =sub_805A37C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_0805A7A8: - movs r0, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0805A7B4: .4byte gPlayerAvatar -_0805A7B8: .4byte sub_805A37C - thumb_func_end sub_805A6DC - - thumb_func_start sub_805A7BC -sub_805A7BC: @ 805A7BC - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_805A954 - ldr r0, _0805A7FC @ =gPlayerAvatar - ldrb r0, [r0, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _0805A800 @ =gSprites - adds r4, r0 - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - bl sub_805FDF8 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldr r0, _0805A804 @ =gOtherText_NotEvenANibble - bl sub_8072044 - movs r0, 0xD - strh r0, [r5, 0x8] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0805A7FC: .4byte gPlayerAvatar -_0805A800: .4byte gSprites -_0805A804: .4byte gOtherText_NotEvenANibble - thumb_func_end sub_805A7BC - - thumb_func_start sub_805A808 -sub_805A808: @ 805A808 - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_805A954 - ldr r0, _0805A84C @ =gPlayerAvatar - ldrb r0, [r0, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _0805A850 @ =gSprites - adds r4, r0 - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - bl sub_805FDF8 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldr r0, _0805A854 @ =gOtherText_ItGotAway - bl sub_8072044 - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0805A84C: .4byte gPlayerAvatar -_0805A850: .4byte gSprites -_0805A854: .4byte gOtherText_ItGotAway - thumb_func_end sub_805A808 - - thumb_func_start fishD -fishD: @ 805A858 - push {r4,lr} - adds r4, r0, 0 - bl sub_805A954 - bl MenuDisplayMessageBox - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end fishD - - thumb_func_start sub_805A874 -sub_805A874: @ 805A874 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - bl sub_805A954 - ldr r7, _0805A908 @ =gSprites - ldr r5, _0805A90C @ =gPlayerAvatar - ldrb r0, [r5, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - adds r1, 0x3F - ldrb r0, [r1] - lsls r0, 27 - cmp r0, 0 - bge _0805A8FA - ldrb r0, [r5, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _0805A910 @ =gMapObjects - mov r8, r0 - add r4, r8 - ldrh r1, [r6, 0x24] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_805B980 - ldrb r1, [r4, 0x18] - lsrs r1, 4 - adds r0, r4, 0 - bl FieldObjectTurn - ldrb r1, [r5] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0805A8DA - ldrb r0, [r5, 0x5] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - add r1, r8 - ldrb r0, [r1, 0x1A] - movs r1, 0 - movs r2, 0 - bl sub_8127F28 -_0805A8DA: - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - movs r2, 0 - strh r2, [r0, 0x24] - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] -_0805A8FA: - movs r0, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0805A908: .4byte gSprites -_0805A90C: .4byte gPlayerAvatar -_0805A910: .4byte gMapObjects - thumb_func_end sub_805A874 - - thumb_func_start fishF -fishF: @ 805A914 - push {lr} - bl MenuUpdateWindowText - lsls r0, 24 - cmp r0, 0 - beq _0805A946 - ldr r1, _0805A94C @ =gPlayerAvatar - movs r0, 0 - strb r0, [r1, 0x6] - bl ScriptContext2_Disable - bl sub_806451C - bl MenuZeroFillScreen - movs r0, 0 - bl sub_80BE97C - ldr r0, _0805A950 @ =sub_805A37C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_0805A946: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0805A94C: .4byte gPlayerAvatar -_0805A950: .4byte sub_805A37C - thumb_func_end fishF - - thumb_func_start sub_805A954 -sub_805A954: @ 805A954 - push {r4-r7,lr} - ldr r0, _0805AA40 @ =gPlayerAvatar - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0805AA44 @ =gSprites - adds r4, r0, r1 - adds r0, r4, 0 - bl AnimateSprite - movs r0, 0 - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - adds r0, r4, 0 - adds r0, 0x2B - ldrb r5, [r0] - movs r0, 0x2A - adds r0, r4 - mov r12, r0 - ldrb r0, [r0] - ldr r1, [r4, 0x8] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - lsls r6, r5, 2 - adds r0, r6, r0 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r7, 0x1 - negs r7, r7 - cmp r0, r7 - beq _0805A9C6 - adds r3, r4, 0 - adds r3, 0x2C - ldrb r2, [r3] - lsls r1, r2, 26 - lsrs r1, 26 - adds r1, 0x1 - movs r0, 0x3F - ands r1, r0 - movs r0, 0x40 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - mov r1, r12 - ldrb r0, [r1] - ldr r1, [r4, 0x8] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - adds r0, r6, r0 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, r7 - bne _0805A9CC -_0805A9C6: - subs r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_0805A9CC: - adds r0, r4, 0 - adds r0, 0x2A - ldrb r0, [r0] - ldr r1, [r4, 0x8] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - lsls r0, r5, 2 - adds r0, r1 - ldrb r5, [r0] - subs r0, r5, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bhi _0805A9FE - movs r0, 0x8 - strh r0, [r4, 0x24] - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _0805A9FE - ldr r0, _0805AA48 @ =0x0000fff8 - strh r0, [r4, 0x24] -_0805A9FE: - cmp r5, 0x5 - bne _0805AA06 - ldr r0, _0805AA48 @ =0x0000fff8 - strh r0, [r4, 0x26] -_0805AA06: - adds r0, r5, 0 - subs r0, 0xA - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _0805AA16 - movs r0, 0x8 - strh r0, [r4, 0x26] -_0805AA16: - ldr r3, _0805AA40 @ =gPlayerAvatar - ldrb r1, [r3] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0805AA3A - ldr r2, _0805AA4C @ =gMapObjects - ldrb r1, [r3, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1A] - movs r1, 0x26 - ldrsh r2, [r4, r1] - movs r1, 0x1 - bl sub_8127F28 -_0805AA3A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0805AA40: .4byte gPlayerAvatar -_0805AA44: .4byte gSprites -_0805AA48: .4byte 0x0000fff8 -_0805AA4C: .4byte gMapObjects - thumb_func_end sub_805A954 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/field_region_map.s b/asm/field_region_map.s new file mode 100644 index 000000000..37c97c3ec --- /dev/null +++ b/asm/field_region_map.s @@ -0,0 +1,274 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start FieldInitRegionMap +FieldInitRegionMap: @ 813EEB4 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0 + bl SetVBlankCallback + ldr r2, _0813EED8 @ =0x02000000 + ldr r0, _0813EEDC @ =0x00000888 + adds r1, r2, r0 + movs r0, 0 + strh r0, [r1] + str r4, [r2] + ldr r0, _0813EEE0 @ =CB2_FieldInitRegionMap + bl SetMainCallback2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813EED8: .4byte 0x02000000 +_0813EEDC: .4byte 0x00000888 +_0813EEE0: .4byte CB2_FieldInitRegionMap + thumb_func_end FieldInitRegionMap + + thumb_func_start CB2_FieldInitRegionMap +CB2_FieldInitRegionMap: @ 813EEE4 + push {r4,lr} + sub sp, 0x4 + movs r0, 0x80 + lsls r0, 19 + movs r1, 0 + strh r1, [r0] + adds r0, 0x10 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r0, _0813EF98 @ =0x02000008 + movs r1, 0 + bl sub_80FA8EC + movs r0, 0 + movs r1, 0 + bl sub_80FBCF0 + movs r0, 0x1 + movs r1, 0x1 + bl sub_80FBB3C + ldr r4, _0813EF9C @ =gWindowConfig_81E709C + adds r0, r4, 0 + bl SetUpWindowConfig + adds r0, r4, 0 + bl InitMenuWindow + bl MenuZeroFillScreen + ldr r1, _0813EFA0 @ =REG_BG0CNT + movs r2, 0xF8 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0x15 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x3 + bl MenuDrawTextWindow + ldr r0, _0813EFA4 @ =gOtherText_Hoenn + movs r1, 0x16 + movs r2, 0x1 + movs r3, 0x38 + bl sub_8072BD8 + movs r0, 0x10 + movs r1, 0x10 + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + bl sub_813F0C8 + ldr r0, _0813EFA8 @ =CB2_FieldRegionMap + bl SetMainCallback2 + ldr r0, _0813EFAC @ =VBlankCB_FieldRegionMap + bl SetVBlankCallback + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813EF98: .4byte 0x02000008 +_0813EF9C: .4byte gWindowConfig_81E709C +_0813EFA0: .4byte REG_BG0CNT +_0813EFA4: .4byte gOtherText_Hoenn +_0813EFA8: .4byte CB2_FieldRegionMap +_0813EFAC: .4byte VBlankCB_FieldRegionMap + thumb_func_end CB2_FieldInitRegionMap + + thumb_func_start VBlankCB_FieldRegionMap +VBlankCB_FieldRegionMap: @ 813EFB0 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end VBlankCB_FieldRegionMap + + thumb_func_start CB2_FieldRegionMap +CB2_FieldRegionMap: @ 813EFC4 + push {lr} + bl sub_813EFDC + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end CB2_FieldRegionMap + + thumb_func_start sub_813EFDC +sub_813EFDC: @ 813EFDC + push {lr} + sub sp, 0x4 + ldr r1, _0813EFF8 @ =0x02000000 + ldr r2, _0813EFFC @ =0x00000888 + adds r0, r1, r2 + ldrh r0, [r0] + adds r2, r1, 0 + cmp r0, 0x4 + bhi _0813F0B8 + lsls r0, 2 + ldr r1, _0813F000 @ =_0813F004 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813EFF8: .4byte 0x02000000 +_0813EFFC: .4byte 0x00000888 +_0813F000: .4byte _0813F004 + .align 2, 0 +_0813F004: + .4byte _0813F018 + .4byte _0813F030 + .4byte _0813F04C + .4byte _0813F078 + .4byte _0813F0A0 +_0813F018: + movs r1, 0x80 + lsls r1, 19 + ldr r3, _0813F028 @ =0x00001541 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _0813F02C @ =0x00000888 + adds r1, r2, r0 + b _0813F08E + .align 2, 0 +_0813F028: .4byte 0x00001541 +_0813F02C: .4byte 0x00000888 +_0813F030: + ldr r0, _0813F044 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0813F0B8 + ldr r3, _0813F048 @ =0x00000888 + adds r1, r2, r3 + b _0813F08E + .align 2, 0 +_0813F044: .4byte gPaletteFade +_0813F048: .4byte 0x00000888 +_0813F04C: + bl sub_80FAB60 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bne _0813F05E + bl sub_813F0C8 + b _0813F0B8 +_0813F05E: + cmp r0, 0x3 + blt _0813F0B8 + cmp r0, 0x5 + bgt _0813F0B8 + ldr r1, _0813F070 @ =0x02000000 + ldr r0, _0813F074 @ =0x00000888 + adds r1, r0 + b _0813F08E + .align 2, 0 +_0813F070: .4byte 0x02000000 +_0813F074: .4byte 0x00000888 +_0813F078: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _0813F098 @ =0x02000000 + ldr r2, _0813F09C @ =0x00000888 + adds r1, r2 +_0813F08E: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _0813F0B8 + .align 2, 0 +_0813F098: .4byte 0x02000000 +_0813F09C: .4byte 0x00000888 +_0813F0A0: + ldr r0, _0813F0C0 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0813F0B8 + bl sub_80FAB10 + ldr r0, _0813F0C4 @ =0x02000000 + ldr r0, [r0] + bl SetMainCallback2 +_0813F0B8: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_0813F0C0: .4byte gPaletteFade +_0813F0C4: .4byte 0x02000000 + thumb_func_end sub_813EFDC + + thumb_func_start sub_813F0C8 +sub_813F0C8: @ 813F0C8 + push {lr} + movs r0, 0x11 + movs r1, 0x11 + movs r2, 0x1C + movs r3, 0x12 + bl MenuFillWindowRectWithBlankTile + ldr r1, _0813F0F0 @ =0x02000000 + ldrb r0, [r1, 0x1E] + cmp r0, 0 + beq _0813F0EA + adds r0, r1, 0 + adds r0, 0x8 + movs r1, 0x11 + movs r2, 0x11 + bl MenuPrint +_0813F0EA: + pop {r0} + bx r0 + .align 2, 0 +_0813F0F0: .4byte 0x02000000 + thumb_func_end sub_813F0C8 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_806936C.s b/asm/field_tasks.s index 47a91f0a4..c879ebf63 100644 --- a/asm/rom_806936C.s +++ b/asm/field_tasks.s @@ -6,157 +6,8 @@ .text - thumb_func_start sub_806936C -sub_806936C: @ 806936C - push {lr} - movs r0, 0x1 - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_806936C - - thumb_func_start sub_8069378 -sub_8069378: @ 8069378 - push {lr} - movs r0, 0x2 - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_8069378 - - thumb_func_start sub_8069384 -sub_8069384: @ 8069384 - push {lr} - movs r0, 0x3 - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_8069384 - - thumb_func_start sub_8069390 -sub_8069390: @ 8069390 - push {lr} - movs r0, 0x4 - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_8069390 - - thumb_func_start sub_806939C -sub_806939C: @ 806939C - push {lr} - movs r0, 0x5 - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_806939C - - thumb_func_start sub_80693A8 -sub_80693A8: @ 80693A8 - push {lr} - movs r0, 0x6 - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_80693A8 - - thumb_func_start sub_80693B4 -sub_80693B4: @ 80693B4 - push {lr} - movs r0, 0x9 - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_80693B4 - - thumb_func_start sub_80693C0 -sub_80693C0: @ 80693C0 - push {lr} - movs r0, 0x7 - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_80693C0 - - thumb_func_start sub_80693CC -sub_80693CC: @ 80693CC - push {lr} - movs r0, 0x8 - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_80693CC - - thumb_func_start sub_80693D8 -sub_80693D8: @ 80693D8 - push {lr} - movs r0, 0xB - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_80693D8 - - thumb_func_start sub_80693E4 -sub_80693E4: @ 80693E4 - push {lr} - movs r0, 0xC - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_80693E4 - - thumb_func_start sub_80693F0 -sub_80693F0: @ 80693F0 - push {lr} - movs r0, 0x14 - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_80693F0 - - thumb_func_start sub_80693FC -sub_80693FC: @ 80693FC - push {lr} - movs r0, 0x15 - bl sub_808070C - pop {r0} - bx r0 - thumb_func_end sub_80693FC - - thumb_func_start sub_8069408 -sub_8069408: @ 8069408 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r2, 0 - ldr r3, _08069428 @ =gUnknown_083762FC -_08069412: - lsls r1, r2, 3 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r4 - bne _0806942C - adds r0, r3, 0x4 - adds r0, r1, r0 - ldr r0, [r0] - bl _call_via_r0 - b _08069436 - .align 2, 0 -_08069428: .4byte gUnknown_083762FC -_0806942C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xC - bls _08069412 -_08069436: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8069408 - - thumb_func_start task_per_step_callback_manager -task_per_step_callback_manager: @ 806943C + thumb_func_start Task_RunPerStepCallback +Task_RunPerStepCallback: @ 806943C push {lr} lsls r0, 24 lsrs r0, 24 @@ -177,10 +28,10 @@ task_per_step_callback_manager: @ 806943C .align 2, 0 _08069460: .4byte gTasks _08069464: .4byte gUnknown_08376364 - thumb_func_end task_per_step_callback_manager + thumb_func_end Task_RunPerStepCallback - thumb_func_start sub_8069468 -sub_8069468: @ 8069468 + thumb_func_start RunTimeBasedEvents +RunTimeBasedEvents: @ 8069468 push {r4,lr} adds r4, r0, 0 movs r1, 0 @@ -222,10 +73,10 @@ _080694AC: bx r0 .align 2, 0 _080694B4: .4byte gMain - thumb_func_end sub_8069468 + thumb_func_end RunTimeBasedEvents - thumb_func_start sub_80694B8 -sub_80694B8: @ 80694B8 + thumb_func_start Task_RunTimeBasedEvents +Task_RunTimeBasedEvents: @ 80694B8 push {r4,lr} lsls r0, 24 lsrs r0, 24 @@ -239,7 +90,7 @@ sub_80694B8: @ 80694B8 cmp r0, 0 bne _080694E0 adds r0, r4, 0 - bl sub_8069468 + bl RunTimeBasedEvents adds r0, r4, 0x2 adds r1, r4, 0x4 bl sub_80540D0 @@ -249,12 +100,12 @@ _080694E0: bx r0 .align 2, 0 _080694E8: .4byte gTasks + 0x8 - thumb_func_end sub_80694B8 + thumb_func_end Task_RunTimeBasedEvents - thumb_func_start overworld_ensure_per_step_coros_running -overworld_ensure_per_step_coros_running: @ 80694EC + thumb_func_start SetUpFieldTasks +SetUpFieldTasks: @ 80694EC push {r4,r5,lr} - ldr r5, _08069548 @ =task_per_step_callback_manager + ldr r5, _08069548 @ =Task_RunPerStepCallback adds r0, r5, 0 bl FuncIsActiveTask lsls r0, 24 @@ -273,7 +124,7 @@ overworld_ensure_per_step_coros_running: @ 80694EC adds r1, r2 strh r4, [r1, 0x8] _08069516: - ldr r4, _08069550 @ =sub_806A1E8 + ldr r4, _08069550 @ =Task_MuddySlope adds r0, r4, 0 bl FuncIsActiveTask lsls r0, 24 @@ -283,7 +134,7 @@ _08069516: movs r1, 0x50 bl CreateTask _0806952C: - ldr r4, _08069554 @ =sub_80694B8 + ldr r4, _08069554 @ =Task_RunTimeBasedEvents adds r0, r4, 0 bl FuncIsActiveTask lsls r0, 24 @@ -297,18 +148,18 @@ _08069542: pop {r0} bx r0 .align 2, 0 -_08069548: .4byte task_per_step_callback_manager +_08069548: .4byte Task_RunPerStepCallback _0806954C: .4byte gTasks -_08069550: .4byte sub_806A1E8 -_08069554: .4byte sub_80694B8 - thumb_func_end overworld_ensure_per_step_coros_running +_08069550: .4byte Task_MuddySlope +_08069554: .4byte Task_RunTimeBasedEvents + thumb_func_end SetUpFieldTasks - thumb_func_start activate_per_step_callback -activate_per_step_callback: @ 8069558 + thumb_func_start ActivatePerStepCallback +ActivatePerStepCallback: @ 8069558 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _08069590 @ =task_per_step_callback_manager + ldr r0, _08069590 @ =Task_RunPerStepCallback bl FindTaskIdByFunc lsls r0, 24 lsrs r1, r0, 24 @@ -333,7 +184,7 @@ _0806957C: strh r0, [r1] b _0806959A .align 2, 0 -_08069590: .4byte task_per_step_callback_manager +_08069590: .4byte Task_RunPerStepCallback _08069594: .4byte gTasks + 0x8 _08069598: strh r4, [r1] @@ -341,16 +192,16 @@ _0806959A: pop {r4} pop {r0} bx r0 - thumb_func_end activate_per_step_callback + thumb_func_end ActivatePerStepCallback - thumb_func_start wild_encounter_reset_coro_args -wild_encounter_reset_coro_args: @ 80695A0 + thumb_func_start ResetFieldTasksArgs +ResetFieldTasksArgs: @ 80695A0 push {lr} - ldr r0, _080695D0 @ =task_per_step_callback_manager + ldr r0, _080695D0 @ =Task_RunPerStepCallback bl FindTaskIdByFunc lsls r0, 24 lsrs r1, r0, 24 - ldr r0, _080695D4 @ =sub_80694B8 + ldr r0, _080695D4 @ =Task_RunTimeBasedEvents bl FindTaskIdByFunc lsls r0, 24 lsrs r1, r0, 24 @@ -368,15 +219,15 @@ _080695CA: pop {r0} bx r0 .align 2, 0 -_080695D0: .4byte task_per_step_callback_manager -_080695D4: .4byte sub_80694B8 +_080695D0: .4byte Task_RunPerStepCallback +_080695D4: .4byte Task_RunTimeBasedEvents _080695D8: .4byte gTasks + 0x8 - thumb_func_end wild_encounter_reset_coro_args + thumb_func_end ResetFieldTasksArgs - thumb_func_start nullsub_51 -nullsub_51: @ 80695DC + thumb_func_start DummyPerStepCallback +DummyPerStepCallback: @ 80695DC bx lr - thumb_func_end nullsub_51 + thumb_func_end DummyPerStepCallback thumb_func_start sub_80695E0 sub_80695E0: @ 80695E0 @@ -721,8 +572,8 @@ _08069854: bx r1 thumb_func_end sub_80697C8 - thumb_func_start sub_8069864 -sub_8069864: @ 8069864 + thumb_func_start PerStepCallback_8069864 +PerStepCallback_8069864: @ 8069864 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 @@ -905,7 +756,7 @@ _080699CE: pop {r4-r7} pop {r0} bx r0 - thumb_func_end sub_8069864 + thumb_func_end PerStepCallback_8069864 thumb_func_start sub_80699D8 sub_80699D8: @ 80699D8 @@ -1011,8 +862,8 @@ _08069A96: _08069A9C: .4byte 0x00000256 thumb_func_end sub_8069A3C - thumb_func_start sub_8069AA0 -sub_8069AA0: @ 8069AA0 + thumb_func_start PerStepCallback_8069AA0 +PerStepCallback_8069AA0: @ 8069AA0 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -1268,7 +1119,7 @@ _08069CA6: pop {r4-r7} pop {r0} bx r0 - thumb_func_end sub_8069AA0 + thumb_func_end PerStepCallback_8069AA0 thumb_func_start sub_8069CB8 sub_8069CB8: @ 8069CB8 @@ -1428,8 +1279,8 @@ _08069DCC: .4byte gMapHeader _08069DD0: .4byte 0x0000020e thumb_func_end sub_8069D78 - thumb_func_start sub_8069DD4 -sub_8069DD4: @ 8069DD4 + thumb_func_start PerStepCallback_8069DD4 +PerStepCallback_8069DD4: @ 8069DD4 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 @@ -1510,7 +1361,7 @@ _08069E4A: lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 - bl sub_8057540 + bl MetatileBehavior_IsThinIce lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1526,7 +1377,7 @@ _08069E4A: _08069E8C: .4byte 0x00004022 _08069E90: adds r0, r4, 0 - bl sub_8057554 + bl MetatileBehavior_IsCrackedIce lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1628,10 +1479,10 @@ _08069F56: bx r0 .align 2, 0 _08069F60: .4byte 0x00000206 - thumb_func_end sub_8069DD4 + thumb_func_end PerStepCallback_8069DD4 - thumb_func_start sub_8069F64 -sub_8069F64: @ 8069F64 + thumb_func_start PerStepCallback_8069F64 +PerStepCallback_8069F64: @ 8069F64 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 @@ -1733,7 +1584,7 @@ _0806A02A: _0806A034: .4byte 0x00000206 _0806A038: .4byte 0x00004048 _0806A03C: .4byte 0x0000270e - thumb_func_end sub_8069F64 + thumb_func_end PerStepCallback_8069F64 thumb_func_start sub_806A040 sub_806A040: @ 806A040 @@ -1765,8 +1616,8 @@ _0806A074: .4byte 0x0000022f _0806A078: .4byte 0x00000237 thumb_func_end sub_806A040 - thumb_func_start sub_806A07C -sub_806A07C: @ 806A07C + thumb_func_start PerStepCallback_806A07C +PerStepCallback_806A07C: @ 806A07C push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 @@ -1825,7 +1676,7 @@ _0806A0EE: lsls r0, r6, 24 lsrs r6, r0, 24 adds r0, r6, 0 - bl sub_8057818 + bl MetatileBehavior_IsCrackedFloorHole lsls r0, 24 cmp r0, 0 beq _0806A106 @@ -1853,7 +1704,7 @@ _0806A122: ldrh r0, [r4] strh r0, [r5, 0x6] adds r0, r6, 0 - bl sub_805782C + bl MetatileBehavior_IsCrackedFloor lsls r0, 24 cmp r0, 0 beq _0806A182 @@ -1898,7 +1749,7 @@ _0806A182: pop {r4-r7} pop {r0} bx r0 - thumb_func_end sub_806A07C + thumb_func_end PerStepCallback_806A07C thumb_func_start sub_806A18C sub_806A18C: @ 806A18C @@ -1950,8 +1801,8 @@ _0806A1BC: _0806A1E4: .4byte gUnknown_08376418 thumb_func_end sub_806A18C - thumb_func_start sub_806A1E8 -sub_806A1E8: @ 806A1E8 + thumb_func_start Task_MuddySlope +Task_MuddySlope: @ 806A1E8 push {r4-r7,lr} mov r7, r8 push {r7} @@ -2116,173 +1967,6 @@ _0806A312: pop {r4-r7} pop {r0} bx r0 - thumb_func_end sub_806A1E8 - - thumb_func_start sub_806A328 -sub_806A328: @ 806A328 - push {lr} - ldr r0, _0806A350 @ =0x00000835 - bl FlagSet - bl RtcCalcLocalTime - ldr r2, _0806A354 @ =gSaveBlock2 - adds r2, 0xA0 - ldr r3, _0806A358 @ =gLocalTime - ldr r0, [r3] - ldr r1, [r3, 0x4] - str r0, [r2] - str r1, [r2, 0x4] - ldr r0, _0806A35C @ =0x00004040 - ldrh r1, [r3] - bl VarSet - pop {r0} - bx r0 - .align 2, 0 -_0806A350: .4byte 0x00000835 -_0806A354: .4byte gSaveBlock2 -_0806A358: .4byte gLocalTime -_0806A35C: .4byte 0x00004040 - thumb_func_end sub_806A328 - - thumb_func_start DoTimeBasedEvents -DoTimeBasedEvents: @ 806A360 - push {r4,lr} - ldr r0, _0806A388 @ =0x00000835 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0806A380 - bl RtcCalcLocalTime - ldr r4, _0806A38C @ =gLocalTime - adds r0, r4, 0 - bl sub_806A390 - adds r0, r4, 0 - bl sub_806A3F4 -_0806A380: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806A388: .4byte 0x00000835 -_0806A38C: .4byte gLocalTime - thumb_func_end DoTimeBasedEvents - - thumb_func_start sub_806A390 -sub_806A390: @ 806A390 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _0806A3F0 @ =0x00004040 - bl GetVarPointer - adds r6, r0, 0 - ldrh r0, [r6] - movs r2, 0 - ldrsh r1, [r5, r2] - cmp r0, r1 - beq _0806A3EA - cmp r0, r1 - bgt _0806A3EA - ldrh r4, [r5] - subs r4, r0 - lsls r4, 16 - lsrs r4, 16 - bl sub_80690B4 - adds r0, r4, 0 - bl sub_80FA220 - adds r0, r4, 0 - bl sub_80BE8C4 - adds r0, r4, 0 - bl sub_8080834 - adds r0, r4, 0 - bl UpdatePartyPokerusTime - adds r0, r4, 0 - bl sub_810D2F4 - adds r0, r4, 0 - bl UpdateBirchState - adds r0, r4, 0 - bl sub_810F618 - adds r0, r4, 0 - bl sub_8145AA4 - ldrh r0, [r5] - strh r0, [r6] -_0806A3EA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806A3F0: .4byte 0x00004040 - thumb_func_end sub_806A390 - - thumb_func_start sub_806A3F4 -sub_806A3F4: @ 806A3F4 - push {r4-r6,lr} - sub sp, 0x8 - adds r5, r0, 0 - mov r4, sp - ldr r6, _0806A448 @ =gSaveBlock2 + 0xA0 - mov r0, sp - adds r1, r6, 0 - adds r2, r5, 0 - bl CalcTimeDifference - mov r0, sp - movs r2, 0 - ldrsh r1, [r0, r2] - lsls r0, r1, 1 - adds r0, r1 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 5 - movs r2, 0x2 - ldrsb r2, [r4, r2] - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 2 - adds r1, r0 - movs r0, 0x3 - ldrsb r0, [r4, r0] - adds r0, r1, r0 - cmp r0, 0 - beq _0806A43E - cmp r0, 0 - blt _0806A43E - bl BerryTreeTimeUpdate - ldr r0, [r5] - ldr r1, [r5, 0x4] - str r0, [r6] - str r1, [r6, 0x4] -_0806A43E: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806A448: .4byte gSaveBlock2 + 0xA0 - thumb_func_end sub_806A3F4 - - thumb_func_start sub_806A44C -sub_806A44C: @ 806A44C - push {lr} - bl sub_806A328 - ldr r0, _0806A45C @ =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0806A45C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end sub_806A44C - - thumb_func_start sub_806A460 -sub_806A460: @ 806A460 - push {lr} - ldr r0, _0806A474 @ =Cb2_StartWallClock - bl SetMainCallback2 - ldr r1, _0806A478 @ =gMain - ldr r0, _0806A47C @ =sub_806A44C - str r0, [r1, 0x8] - pop {r0} - bx r0 - .align 2, 0 -_0806A474: .4byte Cb2_StartWallClock -_0806A478: .4byte gMain -_0806A47C: .4byte sub_806A44C - thumb_func_end sub_806A460 + thumb_func_end Task_MuddySlope .align 2, 0 @ Don't pad with nop. diff --git a/asm/fieldmap.s b/asm/fieldmap.s deleted file mode 100644 index 5d914c422..000000000 --- a/asm/fieldmap.s +++ /dev/null @@ -1,1998 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start mapconnection_get_mapheader -mapconnection_get_mapheader: @ 8055F90 - push {lr} - ldrb r2, [r0, 0x8] - ldrb r1, [r0, 0x9] - adds r0, r2, 0 - bl get_mapheader_by_bank_and_number - pop {r1} - bx r1 - thumb_func_end mapconnection_get_mapheader - - thumb_func_start not_trainer_hill_battle_pyramid -not_trainer_hill_battle_pyramid: @ 8055FA0 - push {r4,lr} - ldr r4, _08055FBC @ =gMapHeader - adds r0, r4, 0 - bl mapheader_copy_mapdata_with_padding - ldr r0, [r4, 0x4] - bl sub_80BB970 - bl mapheader_run_script_with_tag_x1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08055FBC: .4byte gMapHeader - thumb_func_end not_trainer_hill_battle_pyramid - - thumb_func_start sub_8055FC0 -sub_8055FC0: @ 8055FC0 - push {r4,lr} - ldr r4, _08055FF0 @ =gMapHeader - adds r0, r4, 0 - bl mapheader_copy_mapdata_with_padding - movs r0, 0 - bl sub_80BBCCC - ldr r0, [r4, 0x4] - bl sub_80BB970 - bl sub_8056670 - bl mapheader_run_script_with_tag_x1 - ldr r1, _08055FF4 @ =gUnknown_03004870 - ldr r0, [r1] - ldr r1, [r1, 0x4] - bl UpdateTVScreensOnMap - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08055FF0: .4byte gMapHeader -_08055FF4: .4byte gUnknown_03004870 - thumb_func_end sub_8055FC0 - - thumb_func_start mapheader_copy_mapdata_with_padding -mapheader_copy_mapdata_with_padding: @ 8055FF8 - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - ldr r5, [r6] - ldr r0, _08056044 @ =0x03ff03ff - str r0, [sp] - ldr r4, _08056048 @ =gUnknown_02029828 - ldr r2, _0805604C @ =0x01001400 - mov r0, sp - adds r1, r4, 0 - bl CpuFastSet - ldr r2, _08056050 @ =gUnknown_03004870 - str r4, [r2, 0x8] - ldr r1, [r5] - adds r1, 0xF - str r1, [r2] - ldr r0, [r5, 0x4] - adds r0, 0xE - str r0, [r2, 0x4] - muls r1, r0 - movs r0, 0xA0 - lsls r0, 6 - cmp r1, r0 - bgt _0805603A - ldr r0, [r5, 0xC] - ldrh r1, [r5] - ldrh r2, [r5, 0x4] - bl map_copy_with_padding - adds r0, r6, 0 - bl sub_80560AC -_0805603A: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08056044: .4byte 0x03ff03ff -_08056048: .4byte gUnknown_02029828 -_0805604C: .4byte 0x01001400 -_08056050: .4byte gUnknown_03004870 - thumb_func_end mapheader_copy_mapdata_with_padding - - thumb_func_start map_copy_with_padding -map_copy_with_padding: @ 8056054 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - lsls r2, 16 - lsrs r2, 16 - ldr r0, _080560A8 @ =gUnknown_03004870 - ldr r4, [r0, 0x8] - ldr r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r0, 0xE - adds r4, r0 - cmp r2, 0 - beq _0805609C - mov r0, r8 - lsls r6, r0, 1 - adds r5, r2, 0 - movs r0, 0x1E - adds r0, r6 - mov r9, r0 -_08056088: - adds r0, r7, 0 - adds r1, r4, 0 - mov r2, r8 - bl CpuSet - add r4, r9 - adds r7, r6 - subs r5, 0x1 - cmp r5, 0 - bne _08056088 -_0805609C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080560A8: .4byte gUnknown_03004870 - thumb_func_end map_copy_with_padding - - thumb_func_start sub_80560AC -sub_80560AC: @ 80560AC - push {r4-r7,lr} - adds r6, r0, 0 - ldr r0, [r6, 0xC] - ldr r1, [r0] - ldr r5, [r0, 0x4] - ldr r2, _080560E0 @ =gUnknown_0202E850 - ldr r0, _080560E4 @ =gUnknown_08308E28 - ldr r0, [r0] - str r0, [r2] - cmp r1, 0 - ble _0805612C - adds r4, r2, 0 - adds r7, r1, 0 -_080560C6: - adds r0, r5, 0 - bl mapconnection_get_mapheader - adds r1, r0, 0 - ldr r2, [r5, 0x4] - ldrb r0, [r5] - cmp r0, 0x2 - beq _080560FE - cmp r0, 0x2 - bgt _080560E8 - cmp r0, 0x1 - beq _080560F2 - b _08056124 - .align 2, 0 -_080560E0: .4byte gUnknown_0202E850 -_080560E4: .4byte gUnknown_08308E28 -_080560E8: - cmp r0, 0x3 - beq _0805610A - cmp r0, 0x4 - beq _08056116 - b _08056124 -_080560F2: - adds r0, r6, 0 - bl sub_8056198 - ldrb r0, [r4] - movs r1, 0x1 - b _08056120 -_080560FE: - adds r0, r6, 0 - bl sub_8056200 - ldrb r0, [r4] - movs r1, 0x2 - b _08056120 -_0805610A: - adds r0, r6, 0 - bl sub_8056260 - ldrb r0, [r4] - movs r1, 0x4 - b _08056120 -_08056116: - adds r0, r6, 0 - bl sub_80562C0 - ldrb r0, [r4] - movs r1, 0x8 -_08056120: - orrs r0, r1 - strb r0, [r4] -_08056124: - subs r7, 0x1 - adds r5, 0xC - cmp r7, 0 - bne _080560C6 -_0805612C: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80560AC - - thumb_func_start sub_8056134 -sub_8056134: @ 8056134 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r5, [sp, 0x18] - ldr r4, [r2] - ldr r7, [r4] - adds r2, r7, 0 - muls r2, r5 - adds r2, r3 - lsls r2, 1 - ldr r3, [r4, 0xC] - adds r6, r3, r2 - ldr r3, _08056190 @ =gUnknown_03004870 - ldr r2, [r3] - muls r1, r2 - adds r1, r0 - lsls r1, 1 - ldr r0, [r3, 0x8] - adds r5, r0, r1 - ldr r0, [sp, 0x20] - cmp r0, 0 - ble _08056186 - adds r4, r0, 0 - ldr r3, _08056194 @ =0x001fffff - mov r8, r3 -_08056166: - adds r0, r6, 0 - adds r1, r5, 0 - ldr r2, [sp, 0x1C] - mov r3, r8 - ands r2, r3 - bl CpuSet - ldr r0, _08056190 @ =gUnknown_03004870 - ldr r0, [r0] - lsls r0, 1 - adds r5, r0 - lsls r0, r7, 1 - adds r6, r0 - subs r4, 0x1 - cmp r4, 0 - bne _08056166 -_08056186: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08056190: .4byte gUnknown_03004870 -_08056194: .4byte 0x001fffff - thumb_func_end sub_8056134 - - thumb_func_start sub_8056198 -sub_8056198: @ 8056198 - push {r4-r7,lr} - sub sp, 0xC - adds r3, r0, 0 - adds r5, r1, 0 - cmp r5, 0 - beq _080561F2 - ldr r0, [r5] - ldr r4, [r0] - adds r2, 0x7 - ldr r0, [r3] - ldr r0, [r0, 0x4] - adds r7, r0, 0x7 - cmp r2, 0 - bge _080561CC - negs r6, r2 - adds r2, r4 - ldr r0, _080561C8 @ =gUnknown_03004870 - ldr r3, [r0] - cmp r2, r3 - bge _080561C2 - adds r3, r2, 0 -_080561C2: - movs r2, 0 - b _080561DC - .align 2, 0 -_080561C8: .4byte gUnknown_03004870 -_080561CC: - movs r6, 0 - adds r0, r2, r4 - ldr r1, _080561FC @ =gUnknown_03004870 - ldr r1, [r1] - subs r3, r1, r2 - cmp r0, r1 - bge _080561DC - adds r3, r4, 0 -_080561DC: - movs r0, 0 - str r0, [sp] - str r3, [sp, 0x4] - movs r0, 0x7 - str r0, [sp, 0x8] - adds r0, r2, 0 - adds r1, r7, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_8056134 -_080561F2: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080561FC: .4byte gUnknown_03004870 - thumb_func_end sub_8056198 - - thumb_func_start sub_8056200 -sub_8056200: @ 8056200 - push {r4-r7,lr} - sub sp, 0xC - adds r5, r1, 0 - cmp r5, 0 - beq _08056254 - ldr r0, [r5] - ldr r4, [r0] - ldr r0, [r0, 0x4] - adds r2, 0x7 - subs r7, r0, 0x7 - cmp r2, 0 - bge _08056230 - negs r6, r2 - adds r2, r4 - ldr r0, _0805622C @ =gUnknown_03004870 - ldr r3, [r0] - cmp r2, r3 - bge _08056226 - adds r3, r2, 0 -_08056226: - movs r2, 0 - b _08056240 - .align 2, 0 -_0805622C: .4byte gUnknown_03004870 -_08056230: - movs r6, 0 - adds r0, r2, r4 - ldr r1, _0805625C @ =gUnknown_03004870 - ldr r1, [r1] - subs r3, r1, r2 - cmp r0, r1 - bge _08056240 - adds r3, r4, 0 -_08056240: - str r7, [sp] - str r3, [sp, 0x4] - movs r0, 0x7 - str r0, [sp, 0x8] - adds r0, r2, 0 - movs r1, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_8056134 -_08056254: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0805625C: .4byte gUnknown_03004870 - thumb_func_end sub_8056200 - - thumb_func_start sub_8056260 -sub_8056260: @ 8056260 - push {r4-r7,lr} - sub sp, 0xC - adds r5, r1, 0 - cmp r5, 0 - beq _080562B4 - ldr r0, [r5] - ldr r1, [r0] - ldr r4, [r0, 0x4] - adds r2, 0x7 - subs r7, r1, 0x7 - cmp r2, 0 - bge _08056290 - negs r6, r2 - adds r1, r2, r4 - ldr r0, _0805628C @ =gUnknown_03004870 - ldr r3, [r0, 0x4] - cmp r1, r3 - bge _08056286 - adds r3, r1, 0 -_08056286: - movs r2, 0 - b _080562A0 - .align 2, 0 -_0805628C: .4byte gUnknown_03004870 -_08056290: - movs r6, 0 - adds r0, r2, r4 - ldr r1, _080562BC @ =gUnknown_03004870 - ldr r1, [r1, 0x4] - subs r3, r1, r2 - cmp r0, r1 - bge _080562A0 - adds r3, r4, 0 -_080562A0: - str r6, [sp] - movs r0, 0x7 - str r0, [sp, 0x4] - str r3, [sp, 0x8] - movs r0, 0 - adds r1, r2, 0 - adds r2, r5, 0 - adds r3, r7, 0 - bl sub_8056134 -_080562B4: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080562BC: .4byte gUnknown_03004870 - thumb_func_end sub_8056260 - - thumb_func_start sub_80562C0 -sub_80562C0: @ 80562C0 - push {r4-r7,lr} - sub sp, 0xC - adds r3, r0, 0 - adds r5, r1, 0 - cmp r5, 0 - beq _08056318 - ldr r0, [r5] - ldr r4, [r0, 0x4] - ldr r0, [r3] - ldr r0, [r0] - adds r7, r0, 0x7 - adds r2, 0x7 - cmp r2, 0 - bge _080562F4 - negs r6, r2 - adds r1, r2, r4 - ldr r0, _080562F0 @ =gUnknown_03004870 - ldr r3, [r0, 0x4] - cmp r1, r3 - bge _080562EA - adds r3, r1, 0 -_080562EA: - movs r2, 0 - b _08056304 - .align 2, 0 -_080562F0: .4byte gUnknown_03004870 -_080562F4: - movs r6, 0 - adds r0, r2, r4 - ldr r1, _08056320 @ =gUnknown_03004870 - ldr r1, [r1, 0x4] - subs r3, r1, r2 - cmp r0, r1 - bge _08056304 - adds r3, r4, 0 -_08056304: - str r6, [sp] - movs r0, 0x8 - str r0, [sp, 0x4] - str r3, [sp, 0x8] - adds r0, r7, 0 - adds r1, r2, 0 - adds r2, r5, 0 - movs r3, 0 - bl sub_8056134 -_08056318: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08056320: .4byte gUnknown_03004870 - thumb_func_end sub_80562C0 - - thumb_func_start MapGridGetZCoordAt -MapGridGetZCoordAt: @ 8056324 - push {r4,lr} - adds r2, r0, 0 - adds r4, r1, 0 - cmp r2, 0 - blt _08056354 - ldr r1, _08056350 @ =gUnknown_03004870 - ldr r3, [r1] - cmp r2, r3 - bge _08056354 - cmp r4, 0 - blt _08056354 - ldr r0, [r1, 0x4] - cmp r4, r0 - bge _08056354 - adds r0, r3, 0 - muls r0, r4 - adds r0, r2, r0 - ldr r1, [r1, 0x8] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - b _08056376 - .align 2, 0 -_08056350: .4byte gUnknown_03004870 -_08056354: - ldr r0, _08056380 @ =gMapHeader - ldr r3, [r0] - adds r1, r2, 0x1 - movs r2, 0x1 - ands r1, r2 - adds r0, r4, 0x1 - ands r0, r2 - lsls r0, 1 - adds r1, r0 - ldr r0, [r3, 0x8] - lsls r1, 1 - adds r1, r0 - ldrh r1, [r1] - movs r2, 0xC0 - lsls r2, 4 - adds r0, r2, 0 - orrs r1, r0 -_08056376: - ldr r0, _08056384 @ =0x000003ff - cmp r1, r0 - beq _08056388 - lsrs r0, r1, 12 - b _0805638A - .align 2, 0 -_08056380: .4byte gMapHeader -_08056384: .4byte 0x000003ff -_08056388: - movs r0, 0 -_0805638A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end MapGridGetZCoordAt - - thumb_func_start MapGridIsImpassableAt -MapGridIsImpassableAt: @ 8056390 - push {r4,lr} - adds r2, r0, 0 - adds r4, r1, 0 - cmp r2, 0 - blt _080563C0 - ldr r1, _080563BC @ =gUnknown_03004870 - ldr r3, [r1] - cmp r2, r3 - bge _080563C0 - cmp r4, 0 - blt _080563C0 - ldr r0, [r1, 0x4] - cmp r4, r0 - bge _080563C0 - adds r0, r3, 0 - muls r0, r4 - adds r0, r2, r0 - ldr r1, [r1, 0x8] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - b _080563E2 - .align 2, 0 -_080563BC: .4byte gUnknown_03004870 -_080563C0: - ldr r0, _080563F4 @ =gMapHeader - ldr r3, [r0] - adds r1, r2, 0x1 - movs r2, 0x1 - ands r1, r2 - adds r0, r4, 0x1 - ands r0, r2 - lsls r0, 1 - adds r1, r0 - ldr r0, [r3, 0x8] - lsls r1, 1 - adds r1, r0 - ldrh r1, [r1] - movs r2, 0xC0 - lsls r2, 4 - adds r0, r2, 0 - orrs r1, r0 -_080563E2: - ldr r0, _080563F8 @ =0x000003ff - cmp r1, r0 - beq _080563FC - movs r0, 0xC0 - lsls r0, 4 - ands r1, r0 - lsrs r0, r1, 10 - b _080563FE - .align 2, 0 -_080563F4: .4byte gMapHeader -_080563F8: .4byte 0x000003ff -_080563FC: - movs r0, 0x1 -_080563FE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end MapGridIsImpassableAt - - thumb_func_start MapGridGetMetatileIdAt -MapGridGetMetatileIdAt: @ 8056404 - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - cmp r5, 0 - blt _08056434 - ldr r1, _08056430 @ =gUnknown_03004870 - ldr r2, [r1] - cmp r5, r2 - bge _08056434 - cmp r6, 0 - blt _08056434 - ldr r0, [r1, 0x4] - cmp r6, r0 - bge _08056434 - adds r0, r2, 0 - muls r0, r6 - adds r0, r5, r0 - ldr r1, [r1, 0x8] - lsls r0, 1 - adds r0, r1 - ldrh r4, [r0] - b _08056458 - .align 2, 0 -_08056430: .4byte gUnknown_03004870 -_08056434: - ldr r0, _08056464 @ =gMapHeader - ldr r3, [r0] - adds r1, r5, 0x1 - movs r2, 0x1 - ands r1, r2 - adds r0, r6, 0x1 - ands r0, r2 - lsls r0, 1 - adds r1, r0 - ldr r0, [r3, 0x8] - lsls r1, 1 - adds r1, r0 - ldrh r1, [r1] - movs r2, 0xC0 - lsls r2, 4 - adds r0, r2, 0 - adds r4, r0, 0 - orrs r4, r1 -_08056458: - ldr r0, _08056468 @ =0x000003ff - cmp r4, r0 - beq _0805646C - ands r4, r0 - adds r0, r4, 0 - b _08056490 - .align 2, 0 -_08056464: .4byte gMapHeader -_08056468: .4byte 0x000003ff -_0805646C: - ldr r0, _08056498 @ =gMapHeader - ldr r3, [r0] - adds r1, r5, 0x1 - movs r2, 0x1 - ands r1, r2 - adds r0, r6, 0x1 - ands r0, r2 - lsls r0, 1 - adds r1, r0 - ldr r0, [r3, 0x8] - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - movs r2, 0xC0 - lsls r2, 4 - adds r1, r2, 0 - orrs r0, r1 - ands r0, r4 -_08056490: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08056498: .4byte gMapHeader - thumb_func_end MapGridGetMetatileIdAt - - thumb_func_start MapGridGetMetatileBehaviorAt -MapGridGetMetatileBehaviorAt: @ 805649C - push {lr} - bl MapGridGetMetatileIdAt - lsls r0, 16 - lsrs r0, 16 - bl GetBehaviorByMetatileId - adds r1, r0, 0 - movs r0, 0xFF - ands r0, r1 - pop {r1} - bx r1 - thumb_func_end MapGridGetMetatileBehaviorAt - - thumb_func_start MapGridGetMetatileLayerTypeAt -MapGridGetMetatileLayerTypeAt: @ 80564B4 - push {lr} - bl MapGridGetMetatileIdAt - lsls r0, 16 - lsrs r0, 16 - bl GetBehaviorByMetatileId - adds r1, r0, 0 - movs r0, 0xF0 - lsls r0, 8 - ands r0, r1 - lsrs r0, 12 - pop {r1} - bx r1 - thumb_func_end MapGridGetMetatileLayerTypeAt - - thumb_func_start MapGridSetMetatileIdAt -MapGridSetMetatileIdAt: @ 80564D0 - push {r4,r5,lr} - adds r3, r0, 0 - lsls r2, 16 - lsrs r5, r2, 16 - cmp r3, 0 - blt _08056508 - ldr r2, _08056510 @ =gUnknown_03004870 - ldr r4, [r2] - cmp r3, r4 - bge _08056508 - cmp r1, 0 - blt _08056508 - ldr r0, [r2, 0x4] - cmp r1, r0 - bge _08056508 - muls r1, r4 - adds r1, r3, r1 - ldr r0, [r2, 0x8] - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - movs r2, 0xF0 - lsls r2, 8 - ands r2, r0 - ldr r0, _08056514 @ =0x00000fff - ands r0, r5 - orrs r2, r0 - strh r2, [r1] -_08056508: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08056510: .4byte gUnknown_03004870 -_08056514: .4byte 0x00000fff - thumb_func_end MapGridSetMetatileIdAt - - thumb_func_start MapGridSetMetatileEntryAt -MapGridSetMetatileEntryAt: @ 8056518 - push {r4,r5,lr} - adds r3, r0, 0 - lsls r2, 16 - lsrs r5, r2, 16 - cmp r3, 0 - blt _08056544 - ldr r2, _0805654C @ =gUnknown_03004870 - ldr r4, [r2] - cmp r3, r4 - bge _08056544 - cmp r1, 0 - blt _08056544 - ldr r0, [r2, 0x4] - cmp r1, r0 - bge _08056544 - adds r0, r4, 0 - muls r0, r1 - adds r0, r3, r0 - ldr r1, [r2, 0x8] - lsls r0, 1 - adds r0, r1 - strh r5, [r0] -_08056544: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0805654C: .4byte gUnknown_03004870 - thumb_func_end MapGridSetMetatileEntryAt - - thumb_func_start GetBehaviorByMetatileId -GetBehaviorByMetatileId: @ 8056550 - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - adds r3, r2, 0 - ldr r0, _0805656C @ =0x000001ff - cmp r2, r0 - bhi _08056574 - ldr r0, _08056570 @ =gMapHeader - ldr r0, [r0] - ldr r0, [r0, 0x10] - ldr r1, [r0, 0x10] - lsls r0, r2, 1 - b _08056592 - .align 2, 0 -_0805656C: .4byte 0x000001ff -_08056570: .4byte gMapHeader -_08056574: - ldr r0, _08056580 @ =0x000003ff - cmp r2, r0 - bls _08056584 - movs r0, 0xFF - b _08056596 - .align 2, 0 -_08056580: .4byte 0x000003ff -_08056584: - ldr r0, _0805659C @ =gMapHeader - ldr r0, [r0] - ldr r0, [r0, 0x14] - ldr r1, [r0, 0x10] - lsls r0, r3, 1 - adds r0, r1 - ldr r1, _080565A0 @ =0xfffffc00 -_08056592: - adds r0, r1 - ldrh r0, [r0] -_08056596: - pop {r1} - bx r1 - .align 2, 0 -_0805659C: .4byte gMapHeader -_080565A0: .4byte 0xfffffc00 - thumb_func_end GetBehaviorByMetatileId - - thumb_func_start save_serialize_map -save_serialize_map: @ 80565A4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r5, _0805660C @ =gSaveBlock1 + 0x34 - ldr r0, _08056610 @ =gUnknown_03004870 - ldr r0, [r0] - mov r8, r0 - adds r0, r5, 0 - subs r0, 0x34 - movs r1, 0 - ldrsh r6, [r0, r1] - movs r2, 0x2 - ldrsh r0, [r0, r2] - adds r1, r0, 0 - adds r1, 0xE - cmp r0, r1 - bge _080565FE - mov r12, r1 - ldr r1, _08056614 @ =gUnknown_02029828 - mov r9, r1 - lsls r7, r6, 1 -_080565D0: - adds r1, r6, 0 - adds r3, r1, 0 - adds r3, 0xF - adds r4, r0, 0x1 - cmp r1, r3 - bge _080565F8 - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - lsls r0, 1 - add r0, r9 - adds r2, r7, r0 - subs r1, r3, r1 -_080565EA: - ldrh r0, [r2] - strh r0, [r5] - adds r5, 0x2 - adds r2, 0x2 - subs r1, 0x1 - cmp r1, 0 - bne _080565EA -_080565F8: - adds r0, r4, 0 - cmp r0, r12 - blt _080565D0 -_080565FE: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0805660C: .4byte gSaveBlock1 + 0x34 -_08056610: .4byte gUnknown_03004870 -_08056614: .4byte gUnknown_02029828 - thumb_func_end save_serialize_map - - thumb_func_start sub_8056618 -sub_8056618: @ 8056618 - push {r4,lr} - movs r2, 0 - movs r1, 0 - ldr r4, _0805663C @ =gSaveBlock1 + 0x34 - ldr r3, _08056640 @ =0x000001ff -_08056622: - lsls r0, r1, 1 - adds r0, r4 - ldrh r0, [r0] - orrs r2, r0 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r3 - bls _08056622 - cmp r2, 0 - beq _08056644 - movs r0, 0 - b _08056646 - .align 2, 0 -_0805663C: .4byte gSaveBlock1 + 0x34 -_08056640: .4byte 0x000001ff -_08056644: - movs r0, 0x1 -_08056646: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8056618 - - thumb_func_start sav2_mapdata_clear -sav2_mapdata_clear: @ 805664C - push {lr} - sub sp, 0x4 - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r1, _08056668 @ =gSaveBlock1 + 0x34 - ldr r2, _0805666C @ =0x01000100 - mov r0, sp - bl CpuSet - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_08056668: .4byte gSaveBlock1 + 0x34 -_0805666C: .4byte 0x01000100 - thumb_func_end sav2_mapdata_clear - - thumb_func_start sub_8056670 -sub_8056670: @ 8056670 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r5, _080566E4 @ =gSaveBlock1 + 0x34 - bl sub_8056618 - cmp r0, 0 - bne _080566D6 - ldr r0, _080566E8 @ =gUnknown_03004870 - ldr r0, [r0] - mov r8, r0 - adds r0, r5, 0 - subs r0, 0x34 - movs r1, 0 - ldrsh r6, [r0, r1] - movs r2, 0x2 - ldrsh r0, [r0, r2] - adds r1, r0, 0 - adds r1, 0xE - cmp r0, r1 - bge _080566D2 - mov r12, r1 - ldr r1, _080566EC @ =gUnknown_02029828 - mov r9, r1 - lsls r7, r6, 1 -_080566A4: - adds r1, r6, 0 - adds r3, r1, 0 - adds r3, 0xF - adds r4, r0, 0x1 - cmp r1, r3 - bge _080566CC - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - lsls r0, 1 - add r0, r9 - adds r2, r7, r0 - subs r1, r3, r1 -_080566BE: - ldrh r0, [r5] - strh r0, [r2] - adds r5, 0x2 - adds r2, 0x2 - subs r1, 0x1 - cmp r1, 0 - bne _080566BE -_080566CC: - adds r0, r4, 0 - cmp r0, r12 - blt _080566A4 -_080566D2: - bl sav2_mapdata_clear -_080566D6: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080566E4: .4byte gSaveBlock1 + 0x34 -_080566E8: .4byte gUnknown_03004870 -_080566EC: .4byte gUnknown_02029828 - thumb_func_end sub_8056670 - - thumb_func_start sub_80566F0 -sub_80566F0: @ 80566F0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r1, r0, 24 - adds r2, r1, 0 - ldr r0, _08056734 @ =gSaveBlock1 + 0x34 - mov r10, r0 - ldr r0, _08056738 @ =gUnknown_03004870 - ldr r0, [r0] - str r0, [sp] - movs r3, 0 - mov r9, r3 - mov r8, r3 - mov r0, r10 - subs r0, 0x34 - movs r6, 0 - ldrsh r4, [r0, r6] - str r4, [sp, 0x4] - movs r3, 0x2 - ldrsh r5, [r0, r3] - movs r7, 0xF - movs r4, 0xE - mov r12, r4 - cmp r1, 0x2 - beq _08056746 - cmp r1, 0x2 - bgt _0805673C - cmp r1, 0x1 - beq _0805674E - b _08056766 - .align 2, 0 -_08056734: .4byte gSaveBlock1 + 0x34 -_08056738: .4byte gUnknown_03004870 -_0805673C: - cmp r2, 0x3 - beq _08056758 - cmp r2, 0x4 - beq _08056760 - b _08056766 -_08056746: - adds r5, 0x1 - movs r6, 0xD - mov r12, r6 - b _08056766 -_0805674E: - movs r0, 0x1 - mov r8, r0 - movs r1, 0xD - mov r12, r1 - b _08056766 -_08056758: - ldr r3, [sp, 0x4] - adds r3, 0x1 - str r3, [sp, 0x4] - b _08056764 -_08056760: - movs r4, 0x1 - mov r9, r4 -_08056764: - movs r7, 0xE -_08056766: - movs r1, 0 - cmp r1, r12 - bge _080567A8 -_0805676C: - adds r4, r1, 0x1 - cmp r7, 0 - beq _080567A2 - adds r0, r1, r5 - ldr r6, [sp] - adds r2, r6, 0 - muls r2, r0 - add r1, r8 - lsls r0, r1, 4 - subs r0, r1 - add r0, r9 - ldr r1, [sp, 0x4] - adds r2, r1, r2 - adds r3, r7, 0 - lsls r2, 1 - ldr r6, _080567BC @ =gUnknown_02029828 - adds r2, r6 - lsls r0, 1 - mov r6, r10 - adds r1, r0, r6 -_08056794: - ldrh r0, [r1] - strh r0, [r2] - adds r1, 0x2 - adds r2, 0x2 - subs r3, 0x1 - cmp r3, 0 - bne _08056794 -_080567A2: - adds r1, r4, 0 - cmp r1, r12 - blt _0805676C -_080567A8: - bl sav2_mapdata_clear - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080567BC: .4byte gUnknown_02029828 - thumb_func_end sub_80566F0 - - thumb_func_start GetMapBorderIdAt -GetMapBorderIdAt: @ 80567C0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - cmp r4, 0 - blt _080567FC - ldr r1, _080567F4 @ =gUnknown_03004870 - ldr r2, [r1] - cmp r4, r2 - bge _080567FC - cmp r5, 0 - blt _080567FC - ldr r0, [r1, 0x4] - cmp r5, r0 - bge _080567FC - adds r0, r2, 0 - muls r0, r5 - adds r0, r4, r0 - ldr r1, [r1, 0x8] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - ldr r0, _080567F8 @ =0x000003ff - cmp r1, r0 - beq _08056894 - b _08056824 - .align 2, 0 -_080567F4: .4byte gUnknown_03004870 -_080567F8: .4byte 0x000003ff -_080567FC: - ldr r0, _08056840 @ =gMapHeader - ldr r3, [r0] - adds r1, r4, 0x1 - movs r2, 0x1 - ands r1, r2 - adds r0, r5, 0x1 - ands r0, r2 - lsls r0, 1 - adds r1, r0 - ldr r0, [r3, 0x8] - lsls r1, 1 - adds r1, r0 - ldrh r1, [r1] - movs r2, 0xC0 - lsls r2, 4 - adds r0, r2, 0 - orrs r0, r1 - ldr r1, _08056844 @ =0x000003ff - cmp r0, r1 - beq _08056894 -_08056824: - ldr r1, _08056848 @ =gUnknown_03004870 - ldr r0, [r1] - subs r0, 0x8 - cmp r4, r0 - blt _08056850 - ldr r0, _0805684C @ =gUnknown_0202E850 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08056894 - movs r0, 0x4 - b _080568A6 - .align 2, 0 -_08056840: .4byte gMapHeader -_08056844: .4byte 0x000003ff -_08056848: .4byte gUnknown_03004870 -_0805684C: .4byte gUnknown_0202E850 -_08056850: - cmp r4, 0x6 - bgt _08056868 - ldr r0, _08056864 @ =gUnknown_0202E850 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08056894 - movs r0, 0x3 - b _080568A6 - .align 2, 0 -_08056864: .4byte gUnknown_0202E850 -_08056868: - ldr r0, [r1, 0x4] - subs r0, 0x7 - cmp r5, r0 - blt _08056884 - ldr r0, _08056880 @ =gUnknown_0202E850 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08056894 - movs r0, 0x1 - b _080568A6 - .align 2, 0 -_08056880: .4byte gUnknown_0202E850 -_08056884: - cmp r5, 0x6 - bgt _080568A4 - ldr r0, _0805689C @ =gUnknown_0202E850 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080568A0 -_08056894: - movs r0, 0x1 - negs r0, r0 - b _080568A6 - .align 2, 0 -_0805689C: .4byte gUnknown_0202E850 -_080568A0: - movs r0, 0x2 - b _080568A6 -_080568A4: - movs r0, 0 -_080568A6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end GetMapBorderIdAt - - thumb_func_start GetPostCameraMoveMapBorderId -GetPostCameraMoveMapBorderId: @ 80568AC - push {r4,lr} - adds r3, r1, 0 - ldr r1, _080568D0 @ =gSaveBlock1 - movs r4, 0 - ldrsh r2, [r1, r4] - adds r0, 0x7 - adds r2, r0 - movs r0, 0x2 - ldrsh r1, [r1, r0] - adds r3, 0x7 - adds r1, r3 - adds r0, r2, 0 - bl GetMapBorderIdAt - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080568D0: .4byte gSaveBlock1 - thumb_func_end GetPostCameraMoveMapBorderId - - thumb_func_start CanCameraMoveInDirection -CanCameraMoveInDirection: @ 80568D4 - push {r4,r5,lr} - ldr r4, _08056908 @ =gSaveBlock1 - movs r1, 0 - ldrsh r3, [r4, r1] - ldr r2, _0805690C @ =gUnknown_0821664C - lsls r0, 3 - adds r1, r0, r2 - ldr r1, [r1] - adds r1, 0x7 - adds r3, r1 - movs r5, 0x2 - ldrsh r1, [r4, r5] - adds r2, 0x4 - adds r0, r2 - ldr r0, [r0] - adds r0, 0x7 - adds r1, r0 - adds r0, r3, 0 - bl GetMapBorderIdAt - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _08056910 - movs r0, 0x1 - b _08056912 - .align 2, 0 -_08056908: .4byte gSaveBlock1 -_0805690C: .4byte gUnknown_0821664C -_08056910: - movs r0, 0 -_08056912: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end CanCameraMoveInDirection - - thumb_func_start sub_8056918 -sub_8056918: @ 8056918 - push {r4-r7,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r6, r2, 0 - adds r7, r3, 0 - bl mapconnection_get_mapheader - adds r3, r0, 0 - cmp r4, 0x2 - beq _08056978 - cmp r4, 0x2 - bgt _08056936 - cmp r4, 0x1 - beq _08056964 - b _08056988 -_08056936: - cmp r4, 0x3 - beq _08056950 - cmp r4, 0x4 - bne _08056988 - ldr r1, _0805694C @ =gSaveBlock1 - negs r0, r6 - strh r0, [r1] - ldr r2, [r5, 0x4] - ldrh r0, [r1, 0x2] - subs r0, r2 - b _08056986 - .align 2, 0 -_0805694C: .4byte gSaveBlock1 -_08056950: - ldr r1, _08056960 @ =gSaveBlock1 - ldr r0, [r3] - ldr r0, [r0] - strh r0, [r1] - ldr r2, [r5, 0x4] - ldrh r0, [r1, 0x2] - subs r0, r2 - b _08056986 - .align 2, 0 -_08056960: .4byte gSaveBlock1 -_08056964: - ldr r1, _08056974 @ =gSaveBlock1 - ldr r2, [r5, 0x4] - ldrh r0, [r1] - subs r0, r2 - strh r0, [r1] - negs r0, r7 - b _08056986 - .align 2, 0 -_08056974: .4byte gSaveBlock1 -_08056978: - ldr r1, _08056990 @ =gSaveBlock1 - ldr r2, [r5, 0x4] - ldrh r0, [r1] - subs r0, r2 - strh r0, [r1] - ldr r0, [r3] - ldr r0, [r0, 0x4] -_08056986: - strh r0, [r1, 0x2] -_08056988: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08056990: .4byte gSaveBlock1 - thumb_func_end sub_8056918 - - thumb_func_start CameraMove -CameraMove: @ 8056994 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r10, r0 - str r1, [sp] - ldr r1, _080569D4 @ =gUnknown_0202E844 - ldrb r0, [r1] - movs r1, 0x2 - negs r1, r1 - ands r1, r0 - ldr r2, _080569D4 @ =gUnknown_0202E844 - strb r1, [r2] - mov r0, r10 - ldr r1, [sp] - bl GetPostCameraMoveMapBorderId - adds r7, r0, 0 - adds r0, r7, 0x1 - cmp r0, 0x1 - bhi _080569DC - ldr r0, _080569D8 @ =gSaveBlock1 - ldrh r1, [r0] - add r1, r10 - strh r1, [r0] - ldrh r1, [r0, 0x2] - ldr r2, [sp] - adds r1, r2 - strh r1, [r0, 0x2] - b _08056A42 - .align 2, 0 -_080569D4: .4byte gUnknown_0202E844 -_080569D8: .4byte gSaveBlock1 -_080569DC: - bl save_serialize_map - ldr r5, _08056A5C @ =gSaveBlock1 - movs r0, 0 - ldrsh r6, [r5, r0] - movs r2, 0x2 - ldrsh r1, [r5, r2] - mov r8, r1 - lsls r0, r7, 24 - lsrs r0, 24 - mov r9, r0 - adds r1, r6, 0 - mov r2, r8 - bl sub_8056A64 - adds r4, r0, 0 - adds r1, r7, 0 - mov r2, r10 - ldr r3, [sp] - bl sub_8056918 - ldrb r0, [r4, 0x8] - ldrb r1, [r4, 0x9] - bl sub_80538F0 - ldr r1, _08056A60 @ =gUnknown_0202E844 - ldrb r0, [r1] - movs r1, 0x1 - orrs r0, r1 - ldr r2, _08056A60 @ =gUnknown_0202E844 - strb r0, [r2] - movs r1, 0 - ldrsh r0, [r5, r1] - subs r6, r0 - str r6, [r2, 0x4] - movs r2, 0x2 - ldrsh r0, [r5, r2] - mov r1, r8 - subs r1, r0 - ldr r2, _08056A60 @ =gUnknown_0202E844 - str r1, [r2, 0x8] - ldrh r0, [r5] - add r0, r10 - strh r0, [r5] - ldrh r0, [r5, 0x2] - ldr r1, [sp] - adds r0, r1 - strh r0, [r5, 0x2] - mov r0, r9 - bl sub_80566F0 -_08056A42: - ldr r0, _08056A60 @ =gUnknown_0202E844 - ldrb r0, [r0] - lsls r0, 31 - lsrs r0, 31 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08056A5C: .4byte gSaveBlock1 -_08056A60: .4byte gUnknown_0202E844 - thumb_func_end CameraMove - - thumb_func_start sub_8056A64 -sub_8056A64: @ 8056A64 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r9, r1 - mov r8, r2 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _08056AA0 @ =gMapHeader - ldr r0, [r0, 0xC] - ldr r7, [r0] - ldr r4, [r0, 0x4] - movs r5, 0 - cmp r5, r7 - bge _08056AAC -_08056A82: - ldrb r0, [r4] - cmp r0, r6 - bne _08056AA4 - adds r0, r6, 0 - mov r1, r9 - mov r2, r8 - adds r3, r4, 0 - bl sub_8056ABC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08056AA4 - adds r0, r4, 0 - b _08056AAE - .align 2, 0 -_08056AA0: .4byte gMapHeader -_08056AA4: - adds r5, 0x1 - adds r4, 0xC - cmp r5, r7 - blt _08056A82 -_08056AAC: - movs r0, 0 -_08056AAE: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8056A64 - - thumb_func_start sub_8056ABC -sub_8056ABC: @ 8056ABC - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r1, 0 - mov r8, r2 - adds r5, r3, 0 - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - adds r0, r5, 0 - bl mapconnection_get_mapheader - adds r2, r0, 0 - cmp r4, 0x1 - blt _08056B14 - cmp r4, 0x2 - bgt _08056AF4 - ldr r0, _08056AF0 @ =gMapHeader - ldr r0, [r0] - ldr r1, [r0] - ldr r0, [r2] - ldr r2, [r0] - ldr r3, [r5, 0x4] - adds r0, r7, 0 - b _08056B06 - .align 2, 0 -_08056AF0: .4byte gMapHeader -_08056AF4: - cmp r6, 0x4 - bgt _08056B14 - ldr r0, _08056B10 @ =gMapHeader - ldr r0, [r0] - ldr r1, [r0, 0x4] - ldr r0, [r2] - ldr r2, [r0, 0x4] - ldr r3, [r5, 0x4] - mov r0, r8 -_08056B06: - bl sub_8056B20 - lsls r0, 24 - lsrs r0, 24 - b _08056B16 - .align 2, 0 -_08056B10: .4byte gMapHeader -_08056B14: - movs r0, 0 -_08056B16: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8056ABC - - thumb_func_start sub_8056B20 -sub_8056B20: @ 8056B20 - push {r4,lr} - adds r4, r0, 0 - adds r0, r2, 0 - adds r2, r3, 0 - cmp r3, 0 - bge _08056B2E - movs r3, 0 -_08056B2E: - adds r2, r0, r2 - cmp r2, r1 - bge _08056B36 - adds r1, r2, 0 -_08056B36: - cmp r3, r4 - bgt _08056B42 - cmp r4, r1 - bgt _08056B42 - movs r0, 0x1 - b _08056B44 -_08056B42: - movs r0, 0 -_08056B44: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8056B20 - - thumb_func_start sub_8056B4C -sub_8056B4C: @ 8056B4C - push {lr} - cmp r0, 0 - blt _08056B5A - cmp r0, r1 - bge _08056B5A - movs r0, 0x1 - b _08056B5C -_08056B5A: - movs r0, 0 -_08056B5C: - pop {r1} - bx r1 - thumb_func_end sub_8056B4C - - thumb_func_start sub_8056B60 -sub_8056B60: @ 8056B60 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - bl mapconnection_get_mapheader - adds r1, r0, 0 - ldrb r0, [r4] - cmp r0, 0x1 - blt _08056B98 - cmp r0, 0x2 - bgt _08056B86 - ldr r0, [r4, 0x4] - subs r0, r5, r0 - ldr r1, [r1] - ldr r1, [r1] - bl sub_8056B4C - b _08056B9A -_08056B86: - cmp r0, 0x4 - bgt _08056B98 - ldr r0, [r4, 0x4] - subs r0, r6, r0 - ldr r1, [r1] - ldr r1, [r1, 0x4] - bl sub_8056B4C - b _08056B9A -_08056B98: - movs r0, 0 -_08056B9A: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8056B60 - - thumb_func_start sub_8056BA0 -sub_8056BA0: @ 8056BA0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r1, 16 - lsrs r1, 16 - ldr r2, _08056BC0 @ =gMapHeader - ldr r0, [r2, 0xC] - cmp r0, 0 - bne _08056BC8 - b _08056C3E - .align 2, 0 -_08056BC0: .4byte gMapHeader -_08056BC4: - adds r0, r4, 0 - b _08056C40 -_08056BC8: - ldr r7, [r0] - ldr r4, [r0, 0x4] - movs r6, 0 - cmp r6, r7 - bge _08056C3E - lsls r0, r1, 16 - asrs r5, r0, 16 - mov r9, r2 - mov r1, r8 - lsls r0, r1, 16 - asrs r0, 16 - mov r10, r0 -_08056BE0: - ldrb r1, [r4] - adds r3, r1, 0 - subs r0, r1, 0x5 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _08056C36 - cmp r1, 0x2 - bne _08056BF6 - cmp r5, 0x6 - bgt _08056C36 -_08056BF6: - cmp r1, 0x1 - bne _08056C06 - mov r2, r9 - ldr r0, [r2] - ldr r0, [r0, 0x4] - adds r0, 0x7 - cmp r5, r0 - blt _08056C36 -_08056C06: - mov r0, r8 - lsls r2, r0, 16 - cmp r1, 0x3 - bne _08056C14 - mov r1, r10 - cmp r1, 0x6 - bgt _08056C36 -_08056C14: - cmp r3, 0x4 - bne _08056C26 - asrs r1, r2, 16 - mov r3, r9 - ldr r0, [r3] - ldr r0, [r0] - adds r0, 0x7 - cmp r1, r0 - blt _08056C36 -_08056C26: - asrs r1, r2, 16 - subs r1, 0x7 - adds r0, r4, 0 - subs r2, r5, 0x7 - bl sub_8056B60 - cmp r0, 0x1 - beq _08056BC4 -_08056C36: - adds r6, 0x1 - adds r4, 0xC - cmp r6, r7 - blt _08056BE0 -_08056C3E: - movs r0, 0 -_08056C40: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8056BA0 - - thumb_func_start sub_8056C50 -sub_8056C50: @ 8056C50 - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - ldr r2, _08056C64 @ =gSaveBlock1 - subs r0, 0x7 - strh r0, [r2] - subs r1, 0x7 - strh r1, [r2, 0x2] - bx lr - .align 2, 0 -_08056C64: .4byte gSaveBlock1 - thumb_func_end sub_8056C50 - - thumb_func_start sav1_camera_get_focus_coords -sav1_camera_get_focus_coords: @ 8056C68 - ldr r3, _08056C78 @ =gSaveBlock1 - ldrh r2, [r3] - adds r2, 0x7 - strh r2, [r0] - ldrh r0, [r3, 0x2] - adds r0, 0x7 - strh r0, [r1] - bx lr - .align 2, 0 -_08056C78: .4byte gSaveBlock1 - thumb_func_end sav1_camera_get_focus_coords - - thumb_func_start unref_sub_8056C7C -unref_sub_8056C7C: @ 8056C7C - ldr r2, _08056C84 @ =gSaveBlock1 - strh r0, [r2] - strh r1, [r2, 0x2] - bx lr - .align 2, 0 -_08056C84: .4byte gSaveBlock1 - thumb_func_end unref_sub_8056C7C - - thumb_func_start GetCameraCoords -GetCameraCoords: @ 8056C88 - ldr r3, _08056C94 @ =gSaveBlock1 - ldrh r2, [r3] - strh r2, [r0] - ldrh r0, [r3, 0x2] - strh r0, [r1] - bx lr - .align 2, 0 -_08056C94: .4byte gSaveBlock1 - thumb_func_end GetCameraCoords - - thumb_func_start sub_8056C98 -sub_8056C98: @ 8056C98 - push {lr} - adds r2, r0, 0 - cmp r2, 0 - beq _08056CB8 - ldrb r0, [r2] - cmp r0, 0 - bne _08056CB2 - ldr r0, [r2, 0x4] - movs r2, 0x80 - lsls r2, 5 - bl CpuFastSet - b _08056CB8 -_08056CB2: - ldr r0, [r2, 0x4] - bl LZ77UnCompVram -_08056CB8: - pop {r0} - bx r0 - thumb_func_end sub_8056C98 - - thumb_func_start sub_8056CBC -sub_8056CBC: @ 8056CBC - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - cmp r4, 0 - beq _08056D1E - ldrb r1, [r4, 0x1] - cmp r1, 0 - bne _08056CEE - mov r0, sp - strh r1, [r0] - lsls r1, r5, 16 - lsrs r1, 16 - movs r2, 0x2 - bl LoadPalette - ldr r0, [r4, 0x8] - adds r0, 0x2 - adds r1, r5, 0x1 - lsls r1, 16 - lsrs r1, 16 - subs r2, r6, 0x2 - lsls r2, 16 - b _08056CFC -_08056CEE: - cmp r1, 0x1 - bne _08056D04 - ldr r0, [r4, 0x8] - adds r0, 0xC0 - lsls r1, r5, 16 - lsrs r1, 16 - lsls r2, r6, 16 -_08056CFC: - lsrs r2, 16 - bl LoadPalette - b _08056D1E -_08056D04: - ldr r0, [r4, 0x8] - movs r4, 0x80 - lsls r4, 18 - adds r1, r4, 0 - bl LZ77UnCompVram - lsls r1, r5, 16 - lsrs r1, 16 - lsls r2, r6, 16 - lsrs r2, 16 - adds r0, r4, 0 - bl LoadPalette -_08056D1E: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8056CBC - - thumb_func_start sub_8056D28 -sub_8056D28: @ 8056D28 - push {lr} - movs r1, 0xC0 - lsls r1, 19 - ldr r0, [r0, 0x10] - bl sub_8056C98 - pop {r0} - bx r0 - thumb_func_end sub_8056D28 - - thumb_func_start sub_8056D38 -sub_8056D38: @ 8056D38 - push {lr} - ldr r1, _08056D48 @ =0x06004000 - ldr r0, [r0, 0x14] - bl sub_8056C98 - pop {r0} - bx r0 - .align 2, 0 -_08056D48: .4byte 0x06004000 - thumb_func_end sub_8056D38 - - thumb_func_start apply_map_tileset1_palette -apply_map_tileset1_palette: @ 8056D4C - push {lr} - ldr r0, [r0, 0x10] - movs r1, 0 - movs r2, 0xC0 - bl sub_8056CBC - pop {r0} - bx r0 - thumb_func_end apply_map_tileset1_palette - - thumb_func_start apply_map_tileset2_palette -apply_map_tileset2_palette: @ 8056D5C - push {lr} - ldr r0, [r0, 0x14] - movs r1, 0x60 - movs r2, 0xC0 - bl sub_8056CBC - pop {r0} - bx r0 - thumb_func_end apply_map_tileset2_palette - - thumb_func_start copy_map_tileset1_tileset2_to_vram -copy_map_tileset1_tileset2_to_vram: @ 8056D6C - push {r4,lr} - adds r4, r0, 0 - cmp r4, 0 - beq _08056D7E - bl sub_8056D28 - adds r0, r4, 0 - bl sub_8056D38 -_08056D7E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end copy_map_tileset1_tileset2_to_vram - - thumb_func_start apply_map_tileset1_tileset2_palette -apply_map_tileset1_tileset2_palette: @ 8056D84 - push {r4,lr} - adds r4, r0, 0 - cmp r4, 0 - beq _08056D96 - bl apply_map_tileset1_palette - adds r0, r4, 0 - bl apply_map_tileset2_palette -_08056D96: - pop {r4} - pop {r0} - bx r0 - thumb_func_end apply_map_tileset1_tileset2_palette - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/fldeff_80C5CD4.s b/asm/fldeff_80C5CD4.s index cab7524b2..4214f8f9e 100644 --- a/asm/fldeff_80C5CD4.s +++ b/asm/fldeff_80C5CD4.s @@ -808,7 +808,7 @@ SetUpFieldMove_SecretPower: @ 80C62C4 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl sub_80571EC + bl MetatileBehavior_IsSecretBaseCave lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -829,7 +829,7 @@ _080C6328: .4byte gUnknown_03005CE4 _080C632C: .4byte sub_80C639C _080C6330: adds r0, r4, 0 - bl sub_805720C + bl MetatileBehavior_IsSecretBaseTree lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -848,7 +848,7 @@ _080C6358: .4byte gUnknown_03005CE4 _080C635C: .4byte sub_80C64A8 _080C6360: adds r0, r4, 0 - bl is_tile_x98 + bl MetatileBehavior_IsSecretBaseShrub lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 diff --git a/asm/fldeff_cut.s b/asm/fldeff_cut.s new file mode 100644 index 000000000..a56ad32fa --- /dev/null +++ b/asm/fldeff_cut.s @@ -0,0 +1,797 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start SetUpFieldMove_Cut +SetUpFieldMove_Cut: @ 80A2504 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r0, 0x52 + bl npc_before_player_of_type + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A2534 + ldr r1, _080A2524 @ =gUnknown_0300485C + ldr r0, _080A2528 @ =sub_808AB90 + str r0, [r1] + ldr r1, _080A252C @ =gUnknown_03005CE4 + ldr r0, _080A2530 @ =sub_80A2634 + b _080A25A8 + .align 2, 0 +_080A2524: .4byte gUnknown_0300485C +_080A2528: .4byte sub_808AB90 +_080A252C: .4byte gUnknown_03005CE4 +_080A2530: .4byte sub_80A2634 +_080A2534: + ldr r4, _080A25B0 @ =gUnknown_0203923C + adds r1, r4, 0x2 + adds r0, r4, 0 + bl PlayerGetDestCoords + movs r7, 0 + mov r8, r4 +_080A2542: + ldr r1, _080A25B4 @ =0x0000ffff + adds r0, r7, r1 + mov r2, r8 + ldrh r2, [r2, 0x2] + adds r0, r2 + movs r6, 0 + lsls r0, 16 + asrs r5, r0, 16 +_080A2552: + ldr r1, _080A25B4 @ =0x0000ffff + adds r0, r6, r1 + mov r2, r8 + ldrh r2, [r2] + adds r0, r2 + lsls r0, 16 + asrs r4, r0, 16 + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridGetZCoordAt + lsls r0, 24 + lsrs r0, 24 + mov r2, r8 + movs r1, 0x4 + ldrsb r1, [r2, r1] + cmp r0, r1 + bne _080A25C8 + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl MetatileBehavior_IsPokeGrass + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080A259E + adds r0, r4, 0 + bl MetatileBehavior_IsAsh + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A25C8 +_080A259E: + ldr r1, _080A25B8 @ =gUnknown_0300485C + ldr r0, _080A25BC @ =sub_808AB90 + str r0, [r1] + ldr r1, _080A25C0 @ =gUnknown_03005CE4 + ldr r0, _080A25C4 @ =sub_80A25E8 +_080A25A8: + str r0, [r1] + movs r0, 0x1 + b _080A25DE + .align 2, 0 +_080A25B0: .4byte gUnknown_0203923C +_080A25B4: .4byte 0x0000ffff +_080A25B8: .4byte gUnknown_0300485C +_080A25BC: .4byte sub_808AB90 +_080A25C0: .4byte gUnknown_03005CE4 +_080A25C4: .4byte sub_80A25E8 +_080A25C8: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x2 + bls _080A2552 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x2 + bls _080A2542 + movs r0, 0 +_080A25DE: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end SetUpFieldMove_Cut + + thumb_func_start sub_80A25E8 +sub_80A25E8: @ 80A25E8 + push {lr} + movs r0, 0x1 + bl FieldEffectStart + ldr r0, _080A25FC @ =gUnknown_0202FF84 + ldr r1, _080A2600 @ =gUnknown_03005CE0 + ldrb r1, [r1] + str r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080A25FC: .4byte gUnknown_0202FF84 +_080A2600: .4byte gUnknown_03005CE0 + thumb_func_end sub_80A25E8 + + thumb_func_start FldEff_UseCutOnGrass +FldEff_UseCutOnGrass: @ 80A2604 + push {lr} + bl oei_task_add + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A262C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _080A2630 @ =sub_80A2684 + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + movs r0, 0x12 + bl IncrementGameStat + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080A262C: .4byte gTasks +_080A2630: .4byte sub_80A2684 + thumb_func_end FldEff_UseCutOnGrass + + thumb_func_start sub_80A2634 +sub_80A2634: @ 80A2634 + push {lr} + ldr r1, _080A2648 @ =gUnknown_0202FF84 + ldr r0, _080A264C @ =gUnknown_03005CE0 + ldrb r0, [r0] + str r0, [r1] + ldr r0, _080A2650 @ =UseCutScript + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_080A2648: .4byte gUnknown_0202FF84 +_080A264C: .4byte gUnknown_03005CE0 +_080A2650: .4byte UseCutScript + thumb_func_end sub_80A2634 + + thumb_func_start FldEff_UseCutOnTree +FldEff_UseCutOnTree: @ 80A2654 + push {lr} + bl oei_task_add + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A267C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _080A2680 @ =sub_80A2B00 + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + movs r0, 0x12 + bl IncrementGameStat + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080A267C: .4byte gTasks +_080A2680: .4byte sub_80A2B00 + thumb_func_end FldEff_UseCutOnTree + + thumb_func_start sub_80A2684 +sub_80A2684: @ 80A2684 + push {lr} + movs r0, 0x1 + bl FieldEffectActiveListRemove + movs r0, 0x3A + bl FieldEffectStart + pop {r0} + bx r0 + thumb_func_end sub_80A2684 + + thumb_func_start FldEff_CutGrass +FldEff_CutGrass: @ 80A2698 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r7, 0 + movs r0, 0x80 + bl PlaySE + ldr r4, _080A2790 @ =gUnknown_0203923C + adds r1, r4, 0x2 + adds r0, r4, 0 + bl PlayerGetDestCoords + mov r8, r4 +_080A26B2: + ldr r1, _080A2794 @ =0x0000ffff + adds r0, r7, r1 + mov r2, r8 + ldrh r2, [r2, 0x2] + adds r0, r2 + movs r6, 0 + lsls r0, 16 + asrs r5, r0, 16 +_080A26C2: + ldr r1, _080A2794 @ =0x0000ffff + adds r0, r6, r1 + mov r2, r8 + ldrh r2, [r2] + adds r0, r2 + lsls r0, 16 + asrs r4, r0, 16 + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridGetZCoordAt + lsls r0, 24 + lsrs r0, 24 + mov r2, r8 + movs r1, 0x4 + ldrsb r1, [r2, r1] + cmp r0, r1 + bne _080A270E + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r0, 24 + bl sub_80578F8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A270E + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80A27A8 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_805BCC0 +_080A270E: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x2 + bls _080A26C2 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x2 + bls _080A26B2 + ldr r1, _080A2790 @ =gUnknown_0203923C + ldrh r0, [r1] + subs r0, 0x1 + lsls r0, 16 + asrs r0, 16 + ldrh r1, [r1, 0x2] + subs r1, 0x2 + lsls r1, 16 + asrs r1, 16 + bl sub_80A28F4 + bl DrawWholeMapView + movs r7, 0 + ldr r4, _080A2798 @ =gSprites +_080A2740: + ldr r0, _080A279C @ =gPlayerAvatar + ldrb r1, [r0, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x2] + lsls r1, 23 + lsrs r1, 7 + movs r2, 0x80 + lsls r2, 12 + adds r1, r2 + asrs r1, 16 + ldrb r2, [r0] + adds r2, 0x14 + ldr r0, _080A27A0 @ =gSpriteTemplate_CutGrass + movs r3, 0 + bl CreateSprite + ldr r1, _080A27A4 @ =0x0201fff0 + adds r1, r7, r1 + strb r0, [r1] + ldrb r1, [r1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + lsls r1, r7, 5 + strh r1, [r0, 0x32] + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x7 + bls _080A2740 + movs r0, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080A2790: .4byte gUnknown_0203923C +_080A2794: .4byte 0x0000ffff +_080A2798: .4byte gSprites +_080A279C: .4byte gPlayerAvatar +_080A27A0: .4byte gSpriteTemplate_CutGrass +_080A27A4: .4byte 0x0201fff0 + thumb_func_end FldEff_CutGrass + + thumb_func_start sub_80A27A8 +sub_80A27A8: @ 80A27A8 + push {r4-r7,lr} + lsls r0, 16 + lsls r1, 16 + lsrs r6, r0, 16 + asrs r4, r0, 16 + lsrs r7, r1, 16 + asrs r5, r1, 16 + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridGetMetatileIdAt + adds r1, r0, 0 + ldr r0, _080A27E0 @ =0x00000207 + cmp r1, r0 + bgt _080A27F4 + subs r0, 0x1 + cmp r1, r0 + bge _080A286C + cmp r1, 0x25 + beq _080A288E + cmp r1, 0x25 + bgt _080A27E4 + cmp r1, 0xD + beq _080A2834 + cmp r1, 0x15 + beq _080A2834 + b _080A2898 + .align 2, 0 +_080A27E0: .4byte 0x00000207 +_080A27E4: + movs r0, 0xE3 + lsls r0, 1 + cmp r1, r0 + beq _080A2844 + adds r0, 0x1 + cmp r1, r0 + beq _080A284A + b _080A2898 +_080A27F4: + ldr r0, _080A280C @ =0x00000212 + cmp r1, r0 + beq _080A287C + cmp r1, r0 + bgt _080A2810 + subs r0, 0xA + cmp r1, r0 + beq _080A2834 + adds r0, 0x2 + cmp r1, r0 + beq _080A287C + b _080A2898 + .align 2, 0 +_080A280C: .4byte 0x00000212 +_080A2810: + ldr r0, _080A2824 @ =0x00000282 + cmp r1, r0 + beq _080A285C + cmp r1, r0 + bgt _080A2828 + subs r0, 0x1 + cmp r1, r0 + beq _080A2854 + b _080A2898 + .align 2, 0 +_080A2824: .4byte 0x00000282 +_080A2828: + ldr r0, _080A2830 @ =0x00000283 + cmp r1, r0 + beq _080A2864 + b _080A2898 + .align 2, 0 +_080A2830: .4byte 0x00000283 +_080A2834: + lsls r0, r6, 16 + asrs r0, 16 + lsls r1, r7, 16 + asrs r1, 16 + movs r2, 0x1 + bl MapGridSetMetatileIdAt + b _080A2898 +_080A2844: + movs r2, 0xE7 + lsls r2, 1 + b _080A286E +_080A284A: + ldr r2, _080A2850 @ =0x000001cf + b _080A286E + .align 2, 0 +_080A2850: .4byte 0x000001cf +_080A2854: + ldr r2, _080A2858 @ =0x00000279 + b _080A286E + .align 2, 0 +_080A2858: .4byte 0x00000279 +_080A285C: + ldr r2, _080A2860 @ =0x0000027a + b _080A286E + .align 2, 0 +_080A2860: .4byte 0x0000027a +_080A2864: + ldr r2, _080A2868 @ =0x0000027b + b _080A286E + .align 2, 0 +_080A2868: .4byte 0x0000027b +_080A286C: + ldr r2, _080A2878 @ =0x00000271 +_080A286E: + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridSetMetatileIdAt + b _080A2898 + .align 2, 0 +_080A2878: .4byte 0x00000271 +_080A287C: + lsls r0, r6, 16 + asrs r0, 16 + lsls r1, r7, 16 + asrs r1, 16 + movs r2, 0x86 + lsls r2, 2 + bl MapGridSetMetatileIdAt + b _080A2898 +_080A288E: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0xE + bl MapGridSetMetatileIdAt +_080A2898: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A27A8 + + thumb_func_start sub_80A28A0 +sub_80A28A0: @ 80A28A0 + push {lr} + lsls r0, 16 + asrs r0, 16 + lsls r1, 16 + asrs r1, 16 + bl MapGridGetMetatileIdAt + lsls r0, 16 + lsrs r1, r0, 16 + adds r2, r1, 0 + cmp r1, 0x1 + bne _080A28BC + movs r0, 0x1 + b _080A28EE +_080A28BC: + ldr r0, _080A28C8 @ =0x00000279 + cmp r1, r0 + bne _080A28CC + movs r0, 0x2 + b _080A28EE + .align 2, 0 +_080A28C8: .4byte 0x00000279 +_080A28CC: + ldr r0, _080A28D8 @ =0x0000027a + cmp r1, r0 + bne _080A28DC + movs r0, 0x3 + b _080A28EE + .align 2, 0 +_080A28D8: .4byte 0x0000027a +_080A28DC: + ldr r0, _080A28E8 @ =0x0000027b + cmp r2, r0 + beq _080A28EC + movs r0, 0 + b _080A28EE + .align 2, 0 +_080A28E8: .4byte 0x0000027b +_080A28EC: + movs r0, 0x4 +_080A28EE: + pop {r1} + bx r1 + thumb_func_end sub_80A28A0 + + thumb_func_start sub_80A28F4 +sub_80A28F4: @ 80A28F4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + lsls r1, 16 + movs r2, 0xC0 + lsls r2, 10 + adds r0, r1, r2 + lsrs r0, 16 + mov r9, r0 + movs r4, 0 + asrs r7, r1, 16 +_080A2914: + mov r1, r10 + lsls r0, r1, 16 + asrs r0, 16 + lsls r4, 16 + asrs r1, r4, 16 + adds r0, r1 + lsls r0, 16 + lsrs r6, r0, 16 + asrs r5, r0, 16 + adds r0, r5, 0 + adds r1, r7, 0 + bl MapGridGetMetatileIdAt + mov r8, r4 + cmp r0, 0x15 + bne _080A2996 + adds r4, r7, 0x1 + lsls r1, r4, 16 + asrs r1, 16 + adds r0, r5, 0 + bl sub_80A28A0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + beq _080A296A + cmp r0, 0x2 + bgt _080A2952 + cmp r0, 0x1 + beq _080A295C + b _080A2996 +_080A2952: + cmp r0, 0x3 + beq _080A297C + cmp r0, 0x4 + beq _080A298C + b _080A2996 +_080A295C: + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x82 + lsls r2, 2 + bl MapGridSetMetatileIdAt + b _080A2996 +_080A296A: + adds r0, r5, 0 + adds r1, r4, 0 + ldr r2, _080A2978 @ =0x00000281 + bl MapGridSetMetatileIdAt + b _080A2996 + .align 2, 0 +_080A2978: .4byte 0x00000281 +_080A297C: + adds r0, r5, 0 + adds r1, r4, 0 + ldr r2, _080A2988 @ =0x00000282 + bl MapGridSetMetatileIdAt + b _080A2996 + .align 2, 0 +_080A2988: .4byte 0x00000282 +_080A298C: + adds r0, r5, 0 + adds r1, r4, 0 + ldr r2, _080A2A30 @ =0x00000283 + bl MapGridSetMetatileIdAt +_080A2996: + lsls r0, r6, 16 + asrs r5, r0, 16 + mov r2, r9 + lsls r0, r2, 16 + asrs r4, r0, 16 + adds r0, r5, 0 + adds r1, r4, 0 + bl MapGridGetMetatileIdAt + cmp r0, 0x1 + bne _080A2A10 + adds r4, 0x1 + adds r0, r5, 0 + adds r1, r4, 0 + bl MapGridGetMetatileIdAt + movs r1, 0x82 + lsls r1, 2 + cmp r0, r1 + bne _080A29C8 + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x1 + bl MapGridSetMetatileIdAt +_080A29C8: + adds r0, r5, 0 + adds r1, r4, 0 + bl MapGridGetMetatileIdAt + ldr r1, _080A2A34 @ =0x00000281 + cmp r0, r1 + bne _080A29E0 + adds r0, r5, 0 + adds r1, r4, 0 + ldr r2, _080A2A38 @ =0x00000279 + bl MapGridSetMetatileIdAt +_080A29E0: + adds r0, r5, 0 + adds r1, r4, 0 + bl MapGridGetMetatileIdAt + ldr r1, _080A2A3C @ =0x00000282 + cmp r0, r1 + bne _080A29F8 + adds r0, r5, 0 + adds r1, r4, 0 + ldr r2, _080A2A40 @ =0x0000027a + bl MapGridSetMetatileIdAt +_080A29F8: + adds r0, r5, 0 + adds r1, r4, 0 + bl MapGridGetMetatileIdAt + ldr r1, _080A2A30 @ =0x00000283 + cmp r0, r1 + bne _080A2A10 + adds r0, r5, 0 + adds r1, r4, 0 + ldr r2, _080A2A44 @ =0x0000027b + bl MapGridSetMetatileIdAt +_080A2A10: + movs r0, 0x80 + lsls r0, 9 + add r0, r8 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bgt _080A2A20 + b _080A2914 +_080A2A20: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A2A30: .4byte 0x00000283 +_080A2A34: .4byte 0x00000281 +_080A2A38: .4byte 0x00000279 +_080A2A3C: .4byte 0x00000282 +_080A2A40: .4byte 0x0000027a +_080A2A44: .4byte 0x0000027b + thumb_func_end sub_80A28F4 + + thumb_func_start sub_80A2A48 +sub_80A2A48: @ 80A2A48 + movs r2, 0 + movs r1, 0x8 + strh r1, [r0, 0x2E] + strh r2, [r0, 0x30] + strh r2, [r0, 0x34] + ldr r1, _080A2A58 @ =objc_8097BBC + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080A2A58: .4byte objc_8097BBC + thumb_func_end sub_80A2A48 + + thumb_func_start objc_8097BBC +objc_8097BBC: @ 80A2A5C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r2, 0x2E + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r2, 0x2E + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0x8 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x32] + ldrh r1, [r4, 0x2E] + adds r1, 0x1 + ldrh r2, [r4, 0x34] + lsls r0, r2, 16 + asrs r0, 18 + adds r1, r0 + strh r1, [r4, 0x2E] + adds r2, 0x1 + strh r2, [r4, 0x34] + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0x1C + beq _080A2AA8 + adds r0, r1, 0x1 + strh r0, [r4, 0x30] + b _080A2AAC +_080A2AA8: + ldr r0, _080A2AB4 @ =sub_80A2AB8 + str r0, [r4, 0x1C] +_080A2AAC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A2AB4: .4byte sub_80A2AB8 + thumb_func_end objc_8097BBC + + thumb_func_start sub_80A2AB8 +sub_80A2AB8: @ 80A2AB8 + push {r4-r6,lr} + movs r4, 0x1 +_080A2ABC: + ldr r6, _080A2AF8 @ =0x0201fff0 + adds r0, r4, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, _080A2AFC @ =gSprites + adds r0, r5 + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bls _080A2ABC + ldrb r1, [r6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x3A + bl FieldEffectStop + bl sub_8064E2C + bl ScriptContext2_Disable + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A2AF8: .4byte 0x0201fff0 +_080A2AFC: .4byte gSprites + thumb_func_end sub_80A2AB8 + + thumb_func_start sub_80A2B00 +sub_80A2B00: @ 80A2B00 + push {lr} + movs r0, 0x80 + bl PlaySE + movs r0, 0x2 + bl FieldEffectActiveListRemove + bl EnableBothScriptContexts + pop {r0} + bx r0 + thumb_func_end sub_80A2B00 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/fldeff_strength.s b/asm/fldeff_strength.s deleted file mode 100644 index e595a5fc9..000000000 --- a/asm/fldeff_strength.s +++ /dev/null @@ -1,152 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start SetUpFieldMove_Strength -SetUpFieldMove_Strength: @ 811A99C - push {lr} - bl sub_81474C8 - lsls r0, 24 - cmp r0, 0 - beq _0811A9D4 - ldr r1, _0811A9BC @ =gScriptResult - ldr r0, _0811A9C0 @ =gUnknown_03005CE0 - ldrb r0, [r0] - strh r0, [r1] - ldr r1, _0811A9C4 @ =gUnknown_0300485C - ldr r0, _0811A9C8 @ =sub_808AB90 - str r0, [r1] - ldr r1, _0811A9CC @ =gUnknown_03005CE4 - ldr r0, _0811A9D0 @ =sub_811AA38 - b _0811A9F8 - .align 2, 0 -_0811A9BC: .4byte gScriptResult -_0811A9C0: .4byte gUnknown_03005CE0 -_0811A9C4: .4byte gUnknown_0300485C -_0811A9C8: .4byte sub_808AB90 -_0811A9CC: .4byte gUnknown_03005CE4 -_0811A9D0: .4byte sub_811AA38 -_0811A9D4: - movs r0, 0x57 - bl npc_before_player_of_type - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0811A9E6 - movs r0, 0 - b _0811A9FC -_0811A9E6: - ldr r1, _0811AA00 @ =gScriptResult - ldr r0, _0811AA04 @ =gUnknown_03005CE0 - ldrb r0, [r0] - strh r0, [r1] - ldr r1, _0811AA08 @ =gUnknown_0300485C - ldr r0, _0811AA0C @ =sub_808AB90 - str r0, [r1] - ldr r1, _0811AA10 @ =gUnknown_03005CE4 - ldr r0, _0811AA14 @ =sub_811AA18 -_0811A9F8: - str r0, [r1] - movs r0, 0x1 -_0811A9FC: - pop {r1} - bx r1 - .align 2, 0 -_0811AA00: .4byte gScriptResult -_0811AA04: .4byte gUnknown_03005CE0 -_0811AA08: .4byte gUnknown_0300485C -_0811AA0C: .4byte sub_808AB90 -_0811AA10: .4byte gUnknown_03005CE4 -_0811AA14: .4byte sub_811AA18 - thumb_func_end SetUpFieldMove_Strength - - thumb_func_start sub_811AA18 -sub_811AA18: @ 811AA18 - push {lr} - ldr r1, _0811AA2C @ =gUnknown_0202FF84 - ldr r0, _0811AA30 @ =gUnknown_03005CE0 - ldrb r0, [r0] - str r0, [r1] - ldr r0, _0811AA34 @ =UseStrengthScript - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_0811AA2C: .4byte gUnknown_0202FF84 -_0811AA30: .4byte gUnknown_03005CE0 -_0811AA34: .4byte UseStrengthScript - thumb_func_end sub_811AA18 - - thumb_func_start sub_811AA38 -sub_811AA38: @ 811AA38 - push {lr} - ldr r0, _0811AA4C @ =gUnknown_0202FF84 - ldr r1, _0811AA50 @ =gUnknown_03005CE0 - ldrb r1, [r1] - str r1, [r0] - movs r0, 0x28 - bl FieldEffectStart - pop {r0} - bx r0 - .align 2, 0 -_0811AA4C: .4byte gUnknown_0202FF84 -_0811AA50: .4byte gUnknown_03005CE0 - thumb_func_end sub_811AA38 - - thumb_func_start FldEff_UseStrength -FldEff_UseStrength: @ 811AA54 - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0811AA88 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _0811AA8C @ =sub_811AA9C - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - ldr r0, _0811AA90 @ =gUnknown_0202FF84 - ldr r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0811AA94 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811AA98 @ =gStringVar1 - bl GetMonNickname - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0811AA88: .4byte gTasks -_0811AA8C: .4byte sub_811AA9C -_0811AA90: .4byte gUnknown_0202FF84 -_0811AA94: .4byte gPlayerParty -_0811AA98: .4byte gStringVar1 - thumb_func_end FldEff_UseStrength - - thumb_func_start sub_811AA9C -sub_811AA9C: @ 811AA9C - push {lr} - bl sub_81474C8 - lsls r0, 24 - cmp r0, 0 - beq _0811AAAE - bl sub_8147514 - b _0811AAB8 -_0811AAAE: - movs r0, 0x28 - bl FieldEffectActiveListRemove - bl EnableBothScriptContexts -_0811AAB8: - pop {r0} - bx r0 - thumb_func_end sub_811AA9C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/fldeff_teleport.s b/asm/fldeff_teleport.s new file mode 100644 index 000000000..335aed789 --- /dev/null +++ b/asm/fldeff_teleport.s @@ -0,0 +1,93 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start SetUpFieldMove_Teleport +SetUpFieldMove_Teleport: @ 814A374 + push {lr} + ldr r0, _0814A38C @ =gMapHeader + ldrb r0, [r0, 0x17] + bl is_light_level_1_2_3_or_6 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0814A390 + movs r0, 0 + b _0814A39E + .align 2, 0 +_0814A38C: .4byte gMapHeader +_0814A390: + ldr r1, _0814A3A4 @ =gUnknown_0300485C + ldr r0, _0814A3A8 @ =sub_808AB90 + str r0, [r1] + ldr r1, _0814A3AC @ =gUnknown_03005CE4 + ldr r0, _0814A3B0 @ =hm_teleport_run_dp02scr + str r0, [r1] + movs r0, 0x1 +_0814A39E: + pop {r1} + bx r1 + .align 2, 0 +_0814A3A4: .4byte gUnknown_0300485C +_0814A3A8: .4byte sub_808AB90 +_0814A3AC: .4byte gUnknown_03005CE4 +_0814A3B0: .4byte hm_teleport_run_dp02scr + thumb_func_end SetUpFieldMove_Teleport + + thumb_func_start hm_teleport_run_dp02scr +hm_teleport_run_dp02scr: @ 814A3B4 + push {lr} + bl new_game + movs r0, 0x3F + bl FieldEffectStart + ldr r0, _0814A3CC @ =gUnknown_0202FF84 + ldr r1, _0814A3D0 @ =gUnknown_03005CE0 + ldrb r1, [r1] + str r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_0814A3CC: .4byte gUnknown_0202FF84 +_0814A3D0: .4byte gUnknown_03005CE0 + thumb_func_end hm_teleport_run_dp02scr + + thumb_func_start FldEff_UseTeleport +FldEff_UseTeleport: @ 814A3D4 + push {lr} + bl oei_task_add + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0814A3FC @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _0814A400 @ =sub_814A404 + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + movs r0, 0x1 + bl SetPlayerAvatarTransitionFlags + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0814A3FC: .4byte gTasks +_0814A400: .4byte sub_814A404 + thumb_func_end FldEff_UseTeleport + + thumb_func_start sub_814A404 +sub_814A404: @ 814A404 + push {lr} + movs r0, 0x3F + bl FieldEffectActiveListRemove + bl sub_8087BA8 + pop {r0} + bx r0 + thumb_func_end sub_814A404 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s new file mode 100644 index 000000000..c1e93c8b3 --- /dev/null +++ b/asm/hall_of_fame.s @@ -0,0 +1,3402 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_8141E38 +sub_8141E38: @ 8141E38 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_8141E38 + + thumb_func_start sub_8141E4C +sub_8141E4C: @ 8141E4C + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_8141E4C + + thumb_func_start sub_8141E64 +sub_8141E64: @ 8141E64 + push {r4,lr} + sub sp, 0x4 + ldr r0, _08141E80 @ =gMain + ldr r1, _08141E84 @ =0x0000043c + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x4 + bhi _08141EA0 + lsls r0, 2 + ldr r1, _08141E88 @ =_08141E8C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08141E80: .4byte gMain +_08141E84: .4byte 0x0000043c +_08141E88: .4byte _08141E8C + .align 2, 0 +_08141E8C: + .4byte _08141EA0 + .4byte _08141EC0 + .4byte _08141EC6 + .4byte _08141F1C + .4byte _08141F58 +_08141EA0: + movs r0, 0 + bl SetVBlankCallback + bl sub_81433E0 + ldr r0, _08141EB8 @ =gMain + ldr r2, _08141EBC @ =0x0000043c + adds r0, r2 + movs r1, 0x1 + strb r1, [r0] + b _08141F84 + .align 2, 0 +_08141EB8: .4byte gMain +_08141EBC: .4byte 0x0000043c +_08141EC0: + bl sub_8143570 + b _08141F38 +_08141EC6: + movs r0, 0x1 + negs r0, r0 + movs r4, 0 + str r4, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _08141F04 @ =sub_8141E38 + bl SetVBlankCallback + ldr r3, _08141F08 @ =0x04000208 + ldrh r2, [r3] + strh r4, [r3] + ldr r4, _08141F0C @ =0x04000200 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, _08141F10 @ =REG_DISPSTAT + ldrh r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strh r0, [r2] + ldr r1, _08141F14 @ =gMain + ldr r2, _08141F18 @ =0x0000043c + adds r1, r2 + b _08141F3E + .align 2, 0 +_08141F04: .4byte sub_8141E38 +_08141F08: .4byte 0x04000208 +_08141F0C: .4byte 0x04000200 +_08141F10: .4byte REG_DISPSTAT +_08141F14: .4byte gMain +_08141F18: .4byte 0x0000043c +_08141F1C: + ldr r1, _08141F48 @ =REG_BLDCNT + ldr r2, _08141F4C @ =0x00003f42 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r2, 0xE2 + lsls r2, 3 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0 + strh r0, [r1] + bl sub_81435B8 +_08141F38: + ldr r1, _08141F50 @ =gMain + ldr r0, _08141F54 @ =0x0000043c + adds r1, r0 +_08141F3E: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08141F84 + .align 2, 0 +_08141F48: .4byte REG_BLDCNT +_08141F4C: .4byte 0x00003f42 +_08141F50: .4byte gMain +_08141F54: .4byte 0x0000043c +_08141F58: + bl UpdatePaletteFade + ldr r0, _08141F7C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08141F84 + ldr r0, _08141F80 @ =sub_8141E4C + bl SetMainCallback2 + movs r0, 0xDA + lsls r0, 1 + bl PlayBGM + movs r0, 0 + b _08141F86 + .align 2, 0 +_08141F7C: .4byte gPaletteFade +_08141F80: .4byte sub_8141E4C +_08141F84: + movs r0, 0x1 +_08141F86: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8141E64 + + thumb_func_start sub_8141F90 +sub_8141F90: @ 8141F90 + push {r4,lr} + bl sub_8141E64 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _08141FB6 + ldr r0, _08141FBC @ =sub_8141FF8 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08141FC0 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] +_08141FB6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08141FBC: .4byte sub_8141FF8 +_08141FC0: .4byte gTasks + thumb_func_end sub_8141F90 + + thumb_func_start sub_8141FC4 +sub_8141FC4: @ 8141FC4 + push {lr} + bl sub_8141E64 + lsls r0, 24 + cmp r0, 0 + bne _08141FEA + ldr r0, _08141FF0 @ =sub_8141FF8 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08141FF4 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0x1 + strh r0, [r1, 0x8] +_08141FEA: + pop {r0} + bx r0 + .align 2, 0 +_08141FF0: .4byte sub_8141FF8 +_08141FF4: .4byte gTasks + thumb_func_end sub_8141FC4 + + thumb_func_start sub_8141FF8 +sub_8141FF8: @ 8141FF8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _081420C8 @ =0x0201c000 + mov r9, r0 + ldr r1, _081420CC @ =gTasks + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0xC] + movs r7, 0 + ldr r4, _081420D0 @ =0xfffffe00 + mov r10, r4 +_08142024: + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + ldr r0, _081420D4 @ =gPlayerParty + adds r6, r1, r0 + adds r0, r6, 0 + movs r1, 0xB + bl GetMonData + adds r3, r0, 0 + cmp r3, 0 + beq _081420DC + adds r0, r6, 0 + movs r1, 0x41 + bl GetMonData + lsls r4, r7, 2 + adds r4, r7 + lsls r4, 2 + mov r1, r9 + adds r5, r1, r4 + ldr r2, _081420D8 @ =0x000001ff + adds r1, r2, 0 + ands r0, r1 + ldrh r1, [r5, 0x8] + mov r2, r10 + ands r1, r2 + orrs r1, r0 + strh r1, [r5, 0x8] + adds r0, r6, 0 + movs r1, 0x1 + bl GetMonData + str r0, [r5] + adds r0, r6, 0 + movs r1, 0 + bl GetMonData + mov r1, r9 + adds r1, 0x4 + adds r1, r4 + str r0, [r1] + adds r0, r6, 0 + movs r1, 0x38 + bl GetMonData + lsls r0, 1 + ldrb r2, [r5, 0x9] + movs r1, 0x1 + ands r1, r2 + orrs r1, r0 + strb r1, [r5, 0x9] + adds r0, r6, 0 + movs r1, 0x2 + mov r2, sp + bl GetMonData + movs r2, 0 + mov r6, r8 + lsls r5, r6, 2 + mov r3, r9 + adds r3, 0xA +_081420A0: + adds r1, r2, r4 + adds r1, r3, r1 + mov r6, sp + adds r0, r6, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x9 + bls _081420A0 + ldr r0, _081420CC @ =gTasks + mov r2, r8 + adds r1, r5, r2 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0xC] + adds r0, 0x1 + strh r0, [r1, 0xC] + b _08142108 + .align 2, 0 +_081420C8: .4byte 0x0201c000 +_081420CC: .4byte gTasks +_081420D0: .4byte 0xfffffe00 +_081420D4: .4byte gPlayerParty +_081420D8: .4byte 0x000001ff +_081420DC: + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 2 + mov r4, r9 + adds r2, r4, r1 + ldrh r0, [r2, 0x8] + mov r6, r10 + ands r0, r6 + strh r0, [r2, 0x8] + str r3, [r2] + mov r0, r9 + adds r0, 0x4 + adds r0, r1 + str r3, [r0] + ldrb r1, [r2, 0x9] + movs r0, 0x1 + ands r0, r1 + strb r0, [r2, 0x9] + movs r0, 0xFF + strb r0, [r2, 0xA] + mov r0, r8 + lsls r5, r0, 2 +_08142108: + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, 0x5 + bls _08142024 + ldr r0, _08142158 @ =gUnknown_0203931C + movs r3, 0 + str r3, [r0] + ldr r4, _0814215C @ =gTasks + mov r2, r8 + adds r1, r5, r2 + lsls r1, 3 + adds r2, r1, r4 + strh r3, [r2, 0xA] + movs r0, 0xFF + strh r0, [r2, 0x10] + movs r7, 0 + adds r3, r4, 0 + adds r3, 0x8 + movs r2, 0xFF +_08142130: + adds r0, r7, 0x5 + lsls r0, 1 + adds r0, r1 + adds r0, r3 + strh r2, [r0] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, 0x5 + bls _08142130 + mov r6, r8 + adds r0, r5, r6 + lsls r0, 3 + adds r1, r0, r4 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _08142164 + ldr r0, _08142160 @ =sub_81422E8 + b _08142166 + .align 2, 0 +_08142158: .4byte gUnknown_0203931C +_0814215C: .4byte gTasks +_08142160: .4byte sub_81422E8 +_08142164: + ldr r0, _08142178 @ =sub_814217C +_08142166: + str r0, [r1] + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08142178: .4byte sub_814217C + thumb_func_end sub_8141FF8 + + thumb_func_start sub_814217C +sub_814217C: @ 814217C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _081421C4 @ =0x0201c000 + mov r9, r0 + movs r7, 0x80 + lsls r7, 6 + add r7, r9 + ldr r0, _081421C8 @ =gUnknown_02039324 + ldrb r0, [r0] + cmp r0, 0 + bne _081421D4 + movs r4, 0 + mov r0, r8 + lsls r0, 2 + mov r10, r0 + ldr r5, _081421CC @ =0xfffe4000 + add r5, r9 + movs r3, 0xF0 + lsls r3, 9 + movs r2, 0 + ldr r1, _081421D0 @ =0x00001fff +_081421B2: + adds r0, r4, r3 + adds r0, r5 + strb r2, [r0] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r1 + bls _081421B2 + b _081421E0 + .align 2, 0 +_081421C4: .4byte 0x0201c000 +_081421C8: .4byte gUnknown_02039324 +_081421CC: .4byte 0xfffe4000 +_081421D0: .4byte 0x00001fff +_081421D4: + movs r0, 0x3 + bl sub_8125EC8 + mov r0, r8 + lsls r0, 2 + mov r10, r0 +_081421E0: + movs r4, 0 + ldrh r1, [r7, 0x8] + ldr r2, _081421E8 @ =0x000001ff + b _081421FA + .align 2, 0 +_081421E8: .4byte 0x000001ff +_081421EC: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + adds r7, 0x78 + cmp r4, 0x31 + bhi _08142206 + ldrh r1, [r7, 0x8] +_081421FA: + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _081421EC + cmp r4, 0x31 + bls _08142228 +_08142206: + ldr r5, _08142264 @ =0x0201e000 + adds r6, r5, 0 + adds r5, 0x78 + movs r4, 0 + subs r7, 0x78 +_08142210: + adds r0, r6, 0 + adds r1, r5, 0 + movs r2, 0x78 + bl memcpy + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + adds r6, 0x78 + adds r5, 0x78 + cmp r4, 0x30 + bls _08142210 +_08142228: + adds r0, r7, 0 + mov r1, r9 + movs r2, 0x78 + bl memcpy + movs r0, 0x2 + movs r1, 0xE + movs r2, 0x1B + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _08142268 @ =gMenuText_HOFSaving + movs r1, 0x3 + movs r2, 0xF + bl MenuPrint + ldr r1, _0814226C @ =gTasks + mov r0, r10 + add r0, r8 + lsls r0, 3 + adds r0, r1 + ldr r1, _08142270 @ =sub_8142274 + str r1, [r0] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08142264: .4byte 0x0201e000 +_08142268: .4byte gMenuText_HOFSaving +_0814226C: .4byte gTasks +_08142270: .4byte sub_8142274 + thumb_func_end sub_814217C + + thumb_func_start sub_8142274 +sub_8142274: @ 8142274 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _081422A8 @ =gUnknown_03005EBC + ldr r0, _081422AC @ =sub_8141FC4 + str r0, [r1] + movs r0, 0x3 + bl sub_8125D44 + movs r0, 0x37 + bl PlaySE + ldr r1, _081422B0 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _081422B4 @ =sub_81422B8 + str r1, [r0] + movs r1, 0x20 + strh r1, [r0, 0xE] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081422A8: .4byte gUnknown_03005EBC +_081422AC: .4byte sub_8141FC4 +_081422B0: .4byte gTasks +_081422B4: .4byte sub_81422B8 + thumb_func_end sub_8142274 + + thumb_func_start sub_81422B8 +sub_81422B8: @ 81422B8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _081422D8 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrh r2, [r1, 0xE] + movs r3, 0xE + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _081422DC + subs r0, r2, 0x1 + strh r0, [r1, 0xE] + b _081422E0 + .align 2, 0 +_081422D8: .4byte gTasks +_081422DC: + ldr r0, _081422E4 @ =sub_81422E8 + str r0, [r1] +_081422E0: + pop {r0} + bx r0 + .align 2, 0 +_081422E4: .4byte sub_81422E8 + thumb_func_end sub_81422B8 + + thumb_func_start sub_81422E8 +sub_81422E8: @ 81422E8 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _08142314 @ =gWindowConfig_81E7198 + adds r0, r5, 0 + bl SetUpWindowConfig + adds r0, r5, 0 + bl InitMenuWindow + ldr r1, _08142318 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0814231C @ =sub_8142320 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08142314: .4byte gWindowConfig_81E7198 +_08142318: .4byte gTasks +_0814231C: .4byte sub_8142320 + thumb_func_end sub_81422E8 + + thumb_func_start sub_8142320 +sub_8142320: @ 8142320 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, _08142350 @ =0x0201c000 + ldr r0, _08142354 @ =gTasks + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r1, r0 + ldrh r6, [r1, 0xA] + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 2 + adds r4, r0, r2 + movs r2, 0xC + ldrsh r0, [r1, r2] + cmp r0, 0x3 + ble _0814235C + ldr r1, _08142358 @ =gUnknown_0840B534 + b _0814235E + .align 2, 0 +_08142350: .4byte 0x0201c000 +_08142354: .4byte gTasks +_08142358: .4byte gUnknown_0840B534 +_0814235C: + ldr r1, _081423F0 @ =gUnknown_0840B564 +_0814235E: + lsls r2, r6, 3 + adds r0, r2, r1 + ldrh r5, [r0] + adds r0, r1, 0x2 + adds r0, r2, r0 + ldrh r3, [r0] + adds r0, r1, 0x4 + adds r0, r2, r0 + ldrh r0, [r0] + mov r9, r0 + adds r1, 0x6 + adds r2, r1 + ldrh r2, [r2] + mov r8, r2 + ldrh r0, [r4, 0x8] + lsls r0, 23 + lsrs r0, 23 + lsls r1, r5, 16 + asrs r1, 16 + lsls r2, r3, 16 + asrs r2, 16 + ldr r3, [r4] + str r3, [sp] + ldr r3, [r4, 0x4] + str r3, [sp, 0x4] + adds r3, r6, 0 + bl sub_81436BC + lsls r0, 24 + lsrs r0, 24 + ldr r3, _081423F4 @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r2, r1, r3 + movs r4, 0 + mov r5, r9 + strh r5, [r2, 0x30] + mov r5, r8 + strh r5, [r2, 0x32] + strh r4, [r2, 0x2E] + adds r3, 0x1C + adds r1, r3 + ldr r2, _081423F8 @ =sub_81435DC + str r2, [r1] + ldr r5, _081423FC @ =gTasks + adds r1, r6, 0x5 + lsls r1, 1 + lsls r4, r7, 2 + adds r4, r7 + lsls r4, 3 + adds r1, r4 + adds r2, r5, 0 + adds r2, 0x8 + adds r1, r2 + strh r0, [r1] + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r4, r5 + ldr r0, _08142400 @ =sub_8142404 + str r0, [r4] + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081423F0: .4byte gUnknown_0840B564 +_081423F4: .4byte gSprites +_081423F8: .4byte sub_81435DC +_081423FC: .4byte gTasks +_08142400: .4byte sub_8142404 + thumb_func_end sub_8142320 + + thumb_func_start sub_8142404 +sub_8142404: @ 8142404 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r4, _08142470 @ =0x0201c000 + ldr r3, _08142474 @ =gTasks + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r5, r2, r3 + ldrh r1, [r5, 0xA] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r6, r0, r4 + ldr r4, _08142478 @ =gSprites + adds r1, 0x5 + lsls r1, 1 + adds r1, r2 + adds r3, 0x8 + adds r1, r3 + movs r0, 0 + ldrsh r1, [r1, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x2E + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _0814246A + ldrh r2, [r6, 0x8] + ldr r0, _0814247C @ =0x000001ff + ands r0, r2 + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _08142458 + lsls r0, r2, 23 + lsrs r0, 23 + movs r1, 0 + bl PlayCry1 +_08142458: + adds r0, r6, 0 + movs r1, 0 + movs r2, 0xE + bl sub_8143088 + movs r0, 0x78 + strh r0, [r5, 0xE] + ldr r0, _08142480 @ =sub_8142484 + str r0, [r5] +_0814246A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08142470: .4byte 0x0201c000 +_08142474: .4byte gTasks +_08142478: .4byte gSprites +_0814247C: .4byte 0x000001ff +_08142480: .4byte sub_8142484 + thumb_func_end sub_8142404 + + thumb_func_start sub_8142484 +sub_8142484: @ 8142484 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, _081424BC @ =0x0201c000 + ldr r1, _081424C0 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r6, r0, 3 + adds r4, r6, r1 + ldrh r3, [r4, 0xA] + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 2 + adds r0, r2 + mov r9, r0 + ldrh r2, [r4, 0xE] + movs r7, 0xE + ldrsh r0, [r4, r7] + mov r12, r1 + cmp r0, 0 + beq _081424C4 + subs r0, r2, 0x1 + strh r0, [r4, 0xE] + b _0814255C + .align 2, 0 +_081424BC: .4byte 0x0201c000 +_081424C0: .4byte gTasks +_081424C4: + ldr r2, _0814253C @ =gUnknown_0203931C + ldr r0, _08142540 @ =gSprites + mov r8, r0 + adds r0, r3, 0x5 + lsls r0, 1 + adds r0, r6 + mov r1, r12 + adds r1, 0x8 + adds r6, r0, r1 + movs r7, 0 + ldrsh r1, [r6, r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + movs r1, 0x80 + lsls r1, 9 + lsls r1, r0 + ldr r3, [r2] + orrs r3, r1 + str r3, [r2] + ldrh r2, [r4, 0xA] + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bgt _08142550 + mov r7, r9 + ldrh r1, [r7, 0x1C] + ldr r0, _08142544 @ =0x000001ff + ands r0, r1 + cmp r0, 0 + beq _08142550 + adds r0, r2, 0x1 + strh r0, [r4, 0xA] + ldr r0, _08142548 @ =0x0000735f + str r0, [sp] + adds r0, r3, 0 + movs r1, 0 + movs r2, 0xC + movs r3, 0xC + bl BeginNormalPaletteFade + movs r0, 0 + ldrsh r1, [r6, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0, 0x5] + ldr r0, _0814254C @ =sub_8142320 + str r0, [r4] + b _0814255C + .align 2, 0 +_0814253C: .4byte gUnknown_0203931C +_08142540: .4byte gSprites +_08142544: .4byte 0x000001ff +_08142548: .4byte 0x0000735f +_0814254C: .4byte sub_8142320 +_08142550: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + add r0, r12 + ldr r1, _0814256C @ =sub_8142570 + str r1, [r0] +_0814255C: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0814256C: .4byte sub_8142570 + thumb_func_end sub_8142484 + + thumb_func_start sub_8142570 +sub_8142570: @ 8142570 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08142604 @ =0xffff0000 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0 + bl BeginNormalPaletteFade + movs r3, 0 + lsls r1, r4, 2 + adds r0, r1, r4 + lsls r5, r0, 3 + ldr r0, _08142608 @ =gTasks + 0x8 + mov r12, r0 + mov r8, r1 + ldr r6, _0814260C @ =gSprites + movs r7, 0xD + negs r7, r7 +_0814259E: + adds r0, r3, 0x5 + lsls r0, 1 + adds r0, r5 + mov r2, r12 + adds r1, r0, r2 + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0xFF + beq _081425C0 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r2, [r1, 0x5] + adds r0, r7, 0 + ands r0, r2 + strb r0, [r1, 0x5] +_081425C0: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x5 + bls _0814259E + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + movs r0, 0 + movs r1, 0xF + bl sub_8143068 + movs r0, 0x69 + bl PlaySE + ldr r1, _08142610 @ =gTasks + mov r2, r8 + adds r0, r2, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0xC8 + lsls r1, 1 + strh r1, [r0, 0xE] + ldr r1, _08142614 @ =sub_8142618 + str r1, [r0] + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08142604: .4byte 0xffff0000 +_08142608: .4byte gTasks + 0x8 +_0814260C: .4byte gSprites +_08142610: .4byte gTasks +_08142614: .4byte sub_8142618 + thumb_func_end sub_8142570 + + thumb_func_start sub_8142618 +sub_8142618: @ 8142618 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r7, _08142658 @ =gTasks + lsls r4, r6, 2 + adds r0, r4, r6 + lsls r5, r0, 3 + adds r1, r5, r7 + ldrh r2, [r1, 0xE] + movs r3, 0xE + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _0814265C + subs r2, 0x1 + strh r2, [r1, 0xE] + movs r0, 0x3 + ands r0, r2 + cmp r0, 0 + bne _081426D2 + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0x6E + ble _081426D2 + bl sub_81438C4 + b _081426D2 + .align 2, 0 +_08142658: .4byte gTasks +_0814265C: + movs r3, 0 + mov r9, r4 + ldr r0, _081426E4 @ =gUnknown_0203931C + mov r10, r0 + adds r4, r5, 0 + adds r7, 0x8 + mov r8, r7 + ldr r7, _081426E8 @ =gSprites + movs r1, 0xD + negs r1, r1 + mov r12, r1 + movs r5, 0x4 +_08142674: + adds r0, r3, 0x5 + lsls r0, 1 + adds r0, r4 + mov r2, r8 + adds r1, r0, r2 + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0xFF + beq _08142698 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r7 + ldrb r2, [r1, 0x5] + mov r0, r12 + ands r0, r2 + orrs r0, r5 + strb r0, [r1, 0x5] +_08142698: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x5 + bls _08142674 + mov r3, r10 + ldr r0, [r3] + ldr r1, _081426EC @ =0x0000735f + str r1, [sp] + movs r1, 0 + movs r2, 0xC + movs r3, 0xC + bl BeginNormalPaletteFade + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r1, _081426F0 @ =gTasks + mov r2, r9 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + movs r1, 0x7 + strh r1, [r0, 0xE] + ldr r1, _081426F4 @ =sub_81426F8 + str r1, [r0] +_081426D2: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081426E4: .4byte gUnknown_0203931C +_081426E8: .4byte gSprites +_081426EC: .4byte 0x0000735f +_081426F0: .4byte gTasks +_081426F4: .4byte sub_81426F8 + thumb_func_end sub_8142618 + + thumb_func_start sub_81426F8 +sub_81426F8: @ 81426F8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08142718 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r2, r1, r2 + ldrh r1, [r2, 0xE] + movs r3, 0xE + ldrsh r0, [r2, r3] + cmp r0, 0xF + ble _08142720 + ldr r0, _0814271C @ =sub_8142738 + str r0, [r2] + b _0814272E + .align 2, 0 +_08142718: .4byte gTasks +_0814271C: .4byte sub_8142738 +_08142720: + adds r0, r1, 0x1 + strh r0, [r2, 0xE] + ldr r1, _08142734 @ =REG_BLDALPHA + movs r3, 0xE + ldrsh r0, [r2, r3] + lsls r0, 8 + strh r0, [r1] +_0814272E: + pop {r0} + bx r0 + .align 2, 0 +_08142734: .4byte REG_BLDALPHA + thumb_func_end sub_81426F8 + + thumb_func_start sub_8142738 +sub_8142738: @ 8142738 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xCA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r4, _08142784 @ =gWindowConfig_81E71B4 + adds r0, r4, 0 + bl SetUpWindowConfig + adds r0, r4, 0 + bl InitMenuWindow + ldr r0, _08142788 @ =gSaveBlock2 + ldrb r0, [r0, 0x8] + movs r1, 0x78 + movs r2, 0x48 + movs r3, 0x6 + bl sub_81437A4 + ldr r2, _0814278C @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r2 + strh r0, [r1, 0x10] + movs r0, 0x78 + strh r0, [r1, 0xE] + ldr r0, _08142790 @ =sub_8142794 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08142784: .4byte gWindowConfig_81E71B4 +_08142788: .4byte gSaveBlock2 +_0814278C: .4byte gTasks +_08142790: .4byte sub_8142794 + thumb_func_end sub_8142738 + + thumb_func_start sub_8142794 +sub_8142794: @ 8142794 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _081427B4 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r1, [r4, 0xE] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _081427B8 + subs r0, r1, 0x1 + strh r0, [r4, 0xE] + b _0814280A + .align 2, 0 +_081427B4: .4byte gTasks +_081427B8: + ldr r2, _081427D8 @ =gSprites + movs r3, 0x10 + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + ldrh r2, [r1, 0x20] + movs r3, 0x20 + ldrsh r0, [r1, r3] + cmp r0, 0xA0 + beq _081427DC + adds r0, r2, 0x1 + strh r0, [r1, 0x20] + b _0814280A + .align 2, 0 +_081427D8: .4byte gSprites +_081427DC: + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0xF + movs r3, 0x9 + bl MenuDrawTextWindow + movs r0, 0x1 + movs r1, 0x2 + bl sub_8143300 + movs r0, 0x2 + movs r1, 0xE + movs r2, 0x1B + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _08142810 @ =gMenuText_HOFCongratulations + movs r1, 0x4 + movs r2, 0xF + bl MenuPrint + ldr r0, _08142814 @ =sub_8142818 + str r0, [r4] +_0814280A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08142810: .4byte gMenuText_HOFCongratulations +_08142814: .4byte sub_8142818 + thumb_func_end sub_8142794 + + thumb_func_start sub_8142818 +sub_8142818: @ 8142818 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08142844 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0814283E + movs r0, 0x4 + bl FadeOutBGM + ldr r0, _08142848 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _0814284C @ =sub_8142850 + str r0, [r1] +_0814283E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08142844: .4byte gMain +_08142848: .4byte gTasks +_0814284C: .4byte sub_8142850 + thumb_func_end sub_8142818 + + thumb_func_start sub_8142850 +sub_8142850: @ 8142850 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _08142890 @ =gPlttBufferFaded + ldr r1, _08142894 @ =gPlttBufferUnfaded + movs r2, 0x80 + lsls r2, 2 + bl CpuSet + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r1, 0x8 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _08142898 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0814289C @ =sub_81428A0 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08142890: .4byte gPlttBufferFaded +_08142894: .4byte gPlttBufferUnfaded +_08142898: .4byte gTasks +_0814289C: .4byte sub_81428A0 + thumb_func_end sub_8142850 + + thumb_func_start sub_81428A0 +sub_81428A0: @ 81428A0 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _081428C4 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081428BE + adds r0, r2, 0 + bl DestroyTask + ldr r0, _081428C8 @ =sub_81439D0 + bl SetMainCallback2 +_081428BE: + pop {r0} + bx r0 + .align 2, 0 +_081428C4: .4byte gPaletteFade +_081428C8: .4byte sub_81439D0 + thumb_func_end sub_81428A0 + + thumb_func_start sub_81428CC +sub_81428CC: @ 81428CC + push {r4,r5,lr} + ldr r0, _081428E4 @ =gMain + ldr r1, _081428E8 @ =0x0000043c + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x5 + bhi _08142908 + lsls r0, 2 + ldr r1, _081428EC @ =_081428F0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081428E4: .4byte gMain +_081428E8: .4byte 0x0000043c +_081428EC: .4byte _081428F0 + .align 2, 0 +_081428F0: + .4byte _08142908 + .4byte _08142928 + .4byte _0814293C + .4byte _08142980 + .4byte _081429C0 + .4byte _081429EC +_08142908: + movs r0, 0 + bl SetVBlankCallback + bl sub_81433E0 + ldr r0, _08142920 @ =gMain + ldr r2, _08142924 @ =0x0000043c + adds r0, r2 + movs r1, 0x1 + strb r1, [r0] + b _08142A12 + .align 2, 0 +_08142920: .4byte gMain +_08142924: .4byte 0x0000043c +_08142928: + bl sub_8143570 + ldr r1, _08142934 @ =gMain + ldr r3, _08142938 @ =0x0000043c + adds r1, r3 + b _081429DC + .align 2, 0 +_08142934: .4byte gMain +_08142938: .4byte 0x0000043c +_0814293C: + ldr r0, _08142968 @ =sub_8141E38 + bl SetVBlankCallback + ldr r3, _0814296C @ =0x04000208 + ldrh r2, [r3] + movs r0, 0 + strh r0, [r3] + ldr r4, _08142970 @ =0x04000200 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, _08142974 @ =REG_DISPSTAT + ldrh r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strh r0, [r2] + ldr r1, _08142978 @ =gMain + ldr r4, _0814297C @ =0x0000043c + adds r1, r4 + b _081429DC + .align 2, 0 +_08142968: .4byte sub_8141E38 +_0814296C: .4byte 0x04000208 +_08142970: .4byte 0x04000200 +_08142974: .4byte REG_DISPSTAT +_08142978: .4byte gMain +_0814297C: .4byte 0x0000043c +_08142980: + ldr r0, _081429AC @ =REG_BLDCNT + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bl sub_81435B8 + ldr r0, _081429B0 @ =0x0201c000 + adds r2, r0, 0 + ldr r1, _081429B4 @ =gUnknown_0840B57C + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + ldm r1!, {r3,r5} + stm r2!, {r3,r5} + bl sub_80C5CD4 + ldr r1, _081429B8 @ =gMain + ldr r4, _081429BC @ =0x0000043c + adds r1, r4 + b _081429DC + .align 2, 0 +_081429AC: .4byte REG_BLDCNT +_081429B0: .4byte 0x0201c000 +_081429B4: .4byte gUnknown_0840B57C +_081429B8: .4byte gMain +_081429BC: .4byte 0x0000043c +_081429C0: + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + bl sub_80C5DCC + lsls r0, 24 + cmp r0, 0 + beq _08142A12 + ldr r1, _081429E4 @ =gMain + ldr r5, _081429E8 @ =0x0000043c + adds r1, r5 +_081429DC: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08142A12 + .align 2, 0 +_081429E4: .4byte gMain +_081429E8: .4byte 0x0000043c +_081429EC: + ldr r1, _08142A18 @ =REG_BLDCNT + ldr r2, _08142A1C @ =0x00003f42 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r3, 0xE2 + lsls r3, 3 + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0 + strh r0, [r1] + ldr r0, _08142A20 @ =sub_8142A28 + movs r1, 0 + bl CreateTask + ldr r0, _08142A24 @ =sub_8141E4C + bl SetMainCallback2 +_08142A12: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08142A18: .4byte REG_BLDCNT +_08142A1C: .4byte 0x00003f42 +_08142A20: .4byte sub_8142A28 +_08142A24: .4byte sub_8141E4C + thumb_func_end sub_81428CC + + thumb_func_start sub_8142A28 +sub_8142A28: @ 8142A28 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0x3 + bl sub_8125EC8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08142A54 + ldr r0, _08142A4C @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _08142A50 @ =sub_8142FEC + str r0, [r1] + b _08142AEA + .align 2, 0 +_08142A4C: .4byte gTasks +_08142A50: .4byte sub_8142FEC +_08142A54: + ldr r2, _08142A8C @ =0x0201e000 + movs r3, 0 + ldrh r1, [r2, 0x8] + ldr r4, _08142A90 @ =0x000001ff + adds r0, r4, 0 + ands r0, r1 + ldr r7, _08142A94 @ =gTasks + lsls r6, r5, 2 + cmp r0, 0 + beq _08142A7E +_08142A68: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + adds r2, 0x78 + cmp r3, 0x31 + bhi _08142A98 + ldrh r1, [r2, 0x8] + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + bne _08142A68 +_08142A7E: + cmp r3, 0x31 + bhi _08142A98 + adds r0, r6, r5 + lsls r0, 3 + adds r0, r7 + subs r1, r3, 0x1 + b _08142AA0 + .align 2, 0 +_08142A8C: .4byte 0x0201e000 +_08142A90: .4byte 0x000001ff +_08142A94: .4byte gTasks +_08142A98: + adds r0, r6, r5 + lsls r0, 3 + adds r0, r7 + movs r1, 0x31 +_08142AA0: + strh r1, [r0, 0x8] + movs r0, 0xA + bl GetGameStat + ldr r2, _08142AF0 @ =gTasks + adds r1, r6, r5 + lsls r1, 3 + adds r1, r2 + strh r0, [r1, 0xA] + movs r3, 0 + ldr r7, _08142AF4 @ =0x0600381a + ldr r4, _08142AF8 @ =0x0600385a +_08142AB8: + lsls r1, r3, 1 + adds r2, r1, r7 + adds r0, r3, 0x3 + strh r0, [r2] + adds r1, r4 + adds r0, 0x11 + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x10 + bls _08142AB8 + ldr r4, _08142AFC @ =gWindowConfig_81E7198 + adds r0, r4, 0 + bl SetUpWindowConfig + adds r0, r4, 0 + bl InitMenuWindow + ldr r1, _08142AF0 @ =gTasks + adds r0, r6, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _08142B00 @ =sub_8142B04 + str r1, [r0] +_08142AEA: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08142AF0: .4byte gTasks +_08142AF4: .4byte 0x0600381a +_08142AF8: .4byte 0x0600385a +_08142AFC: .4byte gWindowConfig_81E7198 +_08142B00: .4byte sub_8142B04 + thumb_func_end sub_8142A28 + + thumb_func_start sub_8142B04 +sub_8142B04: @ 8142B04 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r3, _08142BB8 @ =0x0201e000 + movs r5, 0 + ldr r1, _08142BBC @ =gTasks + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r6, r1, 0 + ldr r2, _08142BC0 @ =gUnknown_0203931C + cmp r5, r0 + bge _08142B3E + adds r1, r0, 0 +_08142B32: + adds r3, 0x78 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r1 + blt _08142B32 +_08142B3E: + adds r4, r3, 0 + movs r0, 0 + str r0, [r2] + mov r5, r8 + lsls r2, r5, 2 + adds r1, r2, r5 + lsls r1, 3 + adds r1, r6 + strh r0, [r1, 0xC] + strh r0, [r1, 0x10] + movs r5, 0 + str r2, [sp, 0xC] + ldr r6, _08142BC4 @ =0x000001ff + adds r2, r1, 0 +_08142B5A: + ldrh r1, [r4, 0x8] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _08142B6A + ldrh r0, [r2, 0x10] + adds r0, 0x1 + strh r0, [r2, 0x10] +_08142B6A: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + adds r4, 0x14 + cmp r5, 0x5 + bls _08142B5A + adds r4, r3, 0 + movs r5, 0 + ldr r1, _08142BBC @ =gTasks + ldr r0, [sp, 0xC] + add r0, r8 + lsls r7, r0, 3 + adds r6, r7, r1 + str r6, [sp, 0x8] + adds r1, 0x8 + mov r9, r1 + ldr r0, _08142BC8 @ =gUnknown_0840B564 + mov r10, r0 +_08142B8E: + ldrh r1, [r4, 0x8] + ldr r2, _08142BC4 @ =0x000001ff + adds r0, r2, 0 + ands r0, r1 + adds r6, r1, 0 + cmp r0, 0 + beq _08142C30 + ldr r1, [sp, 0x8] + movs r2, 0x10 + ldrsh r0, [r1, r2] + cmp r0, 0x3 + ble _08142BD4 + lsls r1, r5, 3 + ldr r0, _08142BCC @ =gUnknown_0840B534 + adds r0, 0x4 + adds r0, r1, r0 + ldrh r3, [r0] + ldr r0, _08142BD0 @ =gUnknown_0840B53A + adds r1, r0 + b _08142BE2 + .align 2, 0 +_08142BB8: .4byte 0x0201e000 +_08142BBC: .4byte gTasks +_08142BC0: .4byte gUnknown_0203931C +_08142BC4: .4byte 0x000001ff +_08142BC8: .4byte gUnknown_0840B564 +_08142BCC: .4byte gUnknown_0840B534 +_08142BD0: .4byte gUnknown_0840B53A +_08142BD4: + lsls r1, r5, 3 + mov r0, r10 + adds r0, 0x4 + adds r0, r1, r0 + ldrh r3, [r0] + ldr r2, _08142C28 @ =gUnknown_0840B56A + adds r1, r2 +_08142BE2: + ldrh r2, [r1] + lsls r0, r6, 23 + lsrs r0, 23 + lsls r1, r3, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + ldr r3, [r4] + str r3, [sp] + ldr r3, [r4, 0x4] + str r3, [sp, 0x4] + adds r3, r5, 0 + bl sub_81436BC + lsls r0, 16 + lsrs r0, 16 + ldr r2, _08142C2C @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r3, [r1, 0x5] + movs r6, 0xD + negs r6, r6 + adds r2, r6, 0 + ands r3, r2 + movs r2, 0x4 + orrs r3, r2 + strb r3, [r1, 0x5] + adds r1, r5, 0x5 + lsls r1, 1 + adds r1, r7 + add r1, r9 + strh r0, [r1] + b _08142C3C + .align 2, 0 +_08142C28: .4byte gUnknown_0840B56A +_08142C2C: .4byte gSprites +_08142C30: + adds r0, r5, 0x5 + lsls r0, 1 + adds r0, r7 + add r0, r9 + movs r1, 0xFF + strh r1, [r0] +_08142C3C: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + adds r4, 0x14 + cmp r5, 0x5 + bls _08142B8E + ldr r0, _08142CB0 @ =0xffff0000 + ldr r2, _08142CB4 @ =0x0000735f + movs r1, 0xC + bl BlendPalettes + ldr r3, _08142CB8 @ =gStringVar1 + ldr r1, _08142CBC @ =gMenuText_HOFNumber + adds r0, r3, 0 + bl StringCopy + adds r3, r0, 0 + movs r5, 0xFC + strb r5, [r3] + movs r0, 0x14 + strb r0, [r3, 0x1] + movs r0, 0x6 + strb r0, [r3, 0x2] + adds r3, 0x3 + ldr r0, _08142CC0 @ =gTasks + ldr r4, [sp, 0xC] + add r4, r8 + lsls r4, 3 + adds r4, r0 + movs r0, 0xA + ldrsh r1, [r4, r0] + adds r0, r3, 0 + bl ConvertIntToDecimalString + adds r3, r0, 0 + strb r5, [r3] + movs r0, 0x13 + strb r0, [r3, 0x1] + movs r0, 0xF0 + strb r0, [r3, 0x2] + movs r0, 0xFF + strb r0, [r3, 0x3] + ldr r0, _08142CB8 @ =gStringVar1 + movs r1, 0 + movs r2, 0 + bl MenuPrint + ldr r0, _08142CC4 @ =sub_8142CC8 + str r0, [r4] + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08142CB0: .4byte 0xffff0000 +_08142CB4: .4byte 0x0000735f +_08142CB8: .4byte gStringVar1 +_08142CBC: .4byte gMenuText_HOFNumber +_08142CC0: .4byte gTasks +_08142CC4: .4byte sub_8142CC8 + thumb_func_end sub_8142B04 + + thumb_func_start sub_8142CC8 +sub_8142CC8: @ 8142CC8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08142DD0 @ =0x0201e000 + mov r8, r0 + movs r3, 0 + ldr r1, _08142DD4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + cmp r3, r0 + bge _08142CFE + adds r1, r0, 0 +_08142CF0: + movs r0, 0x78 + add r8, r0 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r1 + blt _08142CF0 +_08142CFE: + movs r3, 0 + lsls r6, r4, 2 + adds r0, r6, r4 + lsls r5, r0, 3 + ldr r1, _08142DD8 @ =gTasks + 0x8 + mov r10, r1 + ldr r2, _08142DDC @ =gSprites + mov r12, r2 + movs r0, 0xD + negs r0, r0 + mov r9, r0 + movs r7, 0x4 +_08142D16: + adds r0, r3, 0x5 + lsls r0, 1 + adds r0, r5 + add r0, r10 + ldrh r1, [r0] + cmp r1, 0xFF + beq _08142D36 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r12 + ldrb r2, [r0, 0x5] + mov r1, r9 + ands r1, r2 + orrs r1, r7 + strb r1, [r0, 0x5] +_08142D36: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x5 + bls _08142D16 + adds r1, r6, r4 + lsls r1, 3 + ldr r2, _08142DD4 @ =gTasks + adds r5, r1, r2 + movs r2, 0xC + ldrsh r0, [r5, r2] + adds r0, 0x5 + lsls r0, 1 + adds r0, r1 + ldr r1, _08142DD4 @ =gTasks + adds r1, 0x8 + adds r0, r1 + ldrh r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08142DDC @ =gSprites + adds r0, r1 + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + strb r1, [r0, 0x5] + lsrs r1, 4 + movs r0, 0x80 + lsls r0, 9 + lsls r0, r1 + ldr r1, _08142DE0 @ =0xffff0000 + eors r0, r1 + ldr r2, _08142DE4 @ =gUnknown_0203931C + str r0, [r2] + ldr r2, _08142DE8 @ =0x0000735f + movs r1, 0xC + bl BlendPalettesUnfaded + movs r0, 0xC + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + mov r1, r8 + adds r4, r1, r0 + ldrh r1, [r4, 0x8] + ldr r0, _08142DEC @ =0x000001ff + ands r0, r1 + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _08142DB2 + bl StopCryAndClearCrySongs + ldrh r0, [r4, 0x8] + lsls r0, 23 + lsrs r0, 23 + movs r1, 0 + bl PlayCry1 +_08142DB2: + adds r0, r4, 0 + movs r1, 0 + movs r2, 0xE + bl sub_8143088 + ldr r0, _08142DF0 @ =sub_8142DF4 + str r0, [r5] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08142DD0: .4byte 0x0201e000 +_08142DD4: .4byte gTasks +_08142DD8: .4byte gTasks + 0x8 +_08142DDC: .4byte gSprites +_08142DE0: .4byte 0xffff0000 +_08142DE4: .4byte gUnknown_0203931C +_08142DE8: .4byte 0x0000735f +_08142DEC: .4byte 0x000001ff +_08142DF0: .4byte sub_8142DF4 + thumb_func_end sub_8142CC8 + + thumb_func_start sub_8142DF4 +sub_8142DF4: @ 8142DF4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _08142E88 @ =gMain + ldrh r2, [r1, 0x2E] + movs r0, 0x1 + ands r0, r2 + adds r3, r1, 0 + cmp r0, 0 + beq _08142EC4 + ldr r7, _08142E8C @ =gTasks + lsls r0, r6, 2 + adds r1, r0, r6 + lsls r3, r1, 3 + adds r4, r3, r7 + ldrh r2, [r4, 0x8] + movs r5, 0x8 + ldrsh r1, [r4, r5] + mov r8, r0 + cmp r1, 0 + beq _08142E98 + subs r0, r2, 0x1 + strh r0, [r4, 0x8] + movs r5, 0 + adds r7, 0x8 + mov r9, r7 + adds r7, r3, 0 +_08142E30: + adds r0, r5, 0x5 + lsls r0, 1 + adds r0, r7 + add r0, r9 + ldrb r1, [r0] + cmp r1, 0xFF + beq _08142E5E + ldr r0, _08142E90 @ =gSprites + lsls r4, r1, 4 + adds r4, r1 + lsls r4, 2 + adds r4, r0 + ldrb r0, [r4, 0x5] + lsrs r0, 4 + bl GetSpritePaletteTagByPaletteNum + lsls r0, 16 + lsrs r0, 16 + bl FreeSpritePaletteByTag + adds r0, r4, 0 + bl DestroySprite +_08142E5E: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _08142E30 + ldr r0, _08142E8C @ =gTasks + mov r2, r8 + adds r1, r2, r6 + lsls r1, 3 + adds r1, r0 + ldrh r2, [r1, 0xA] + movs r3, 0xA + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _08142E80 + subs r0, r2, 0x1 + strh r0, [r1, 0xA] +_08142E80: + ldr r0, _08142E94 @ =sub_8142B04 + str r0, [r1] + b _08142F64 + .align 2, 0 +_08142E88: .4byte gMain +_08142E8C: .4byte gTasks +_08142E90: .4byte gSprites +_08142E94: .4byte sub_8142B04 +_08142E98: + bl IsCryPlayingOrClearCrySongs + lsls r0, 24 + cmp r0, 0 + beq _08142EB2 + bl StopCryAndClearCrySongs + ldr r0, _08142EB8 @ =gMPlay_BGM + ldr r1, _08142EBC @ =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl +_08142EB2: + ldr r0, _08142EC0 @ =sub_8142F78 + str r0, [r4] + b _08142F64 + .align 2, 0 +_08142EB8: .4byte gMPlay_BGM +_08142EBC: .4byte 0x0000ffff +_08142EC0: .4byte sub_8142F78 +_08142EC4: + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _08142F08 + bl IsCryPlayingOrClearCrySongs + lsls r0, 24 + cmp r0, 0 + beq _08142EE6 + bl StopCryAndClearCrySongs + ldr r0, _08142EF8 @ =gMPlay_BGM + ldr r1, _08142EFC @ =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl +_08142EE6: + ldr r0, _08142F00 @ =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldr r0, _08142F04 @ =sub_8142F78 + str r0, [r1] + b _08142F64 + .align 2, 0 +_08142EF8: .4byte gMPlay_BGM +_08142EFC: .4byte 0x0000ffff +_08142F00: .4byte gTasks +_08142F04: .4byte sub_8142F78 +_08142F08: + movs r0, 0x40 + ands r0, r2 + cmp r0, 0 + beq _08142F38 + ldr r0, _08142F30 @ =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldrh r2, [r1, 0xC] + movs r4, 0xC + ldrsh r0, [r1, r4] + cmp r0, 0 + beq _08142F38 + subs r0, r2, 0x1 + strh r0, [r1, 0xC] + ldr r0, _08142F34 @ =sub_8142CC8 + str r0, [r1] + b _08142F64 + .align 2, 0 +_08142F30: .4byte gTasks +_08142F34: .4byte sub_8142CC8 +_08142F38: + ldrh r1, [r3, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08142F64 + ldr r1, _08142F70 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r2, r0, r1 + movs r5, 0xC + ldrsh r1, [r2, r5] + movs r3, 0x10 + ldrsh r0, [r2, r3] + subs r0, 0x1 + cmp r1, r0 + bge _08142F64 + ldrh r0, [r2, 0xC] + adds r0, 0x1 + strh r0, [r2, 0xC] + ldr r0, _08142F74 @ =sub_8142CC8 + str r0, [r2] +_08142F64: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08142F70: .4byte gTasks +_08142F74: .4byte sub_8142CC8 + thumb_func_end sub_8142DF4 + + thumb_func_start sub_8142F78 +sub_8142F78: @ 8142F78 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _08142FB4 @ =gPlttBufferFaded + ldr r1, _08142FB8 @ =gPlttBufferUnfaded + movs r2, 0x80 + lsls r2, 2 + bl CpuSet + ldr r0, _08142FBC @ =0x0201c000 + adds r2, r0, 0 + ldr r1, _08142FC0 @ =gUnknown_0840B57C + ldm r1!, {r3,r5,r6} + stm r2!, {r3,r5,r6} + ldm r1!, {r3,r5} + stm r2!, {r3,r5} + bl sub_80C5E38 + ldr r1, _08142FC4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08142FC8 @ =sub_8142FCC + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08142FB4: .4byte gPlttBufferFaded +_08142FB8: .4byte gPlttBufferUnfaded +_08142FBC: .4byte 0x0201c000 +_08142FC0: .4byte gUnknown_0840B57C +_08142FC4: .4byte gTasks +_08142FC8: .4byte sub_8142FCC + thumb_func_end sub_8142F78 + + thumb_func_start sub_8142FCC +sub_8142FCC: @ 8142FCC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_80C5F98 + lsls r0, 24 + cmp r0, 0 + beq _08142FE6 + adds r0, r4, 0 + bl DestroyTask + bl ReturnFromHallOfFamePC +_08142FE6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8142FCC + + thumb_func_start sub_8142FEC +sub_8142FEC: @ 8142FEC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x2 + movs r1, 0xE + movs r2, 0x1B + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _08143020 @ =gMenuText_HOFCorrupt + movs r1, 0x3 + movs r2, 0xF + bl MenuPrintMessage + ldr r1, _08143024 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08143028 @ =sub_814302C + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08143020: .4byte gMenuText_HOFCorrupt +_08143024: .4byte gTasks +_08143028: .4byte sub_814302C + thumb_func_end sub_8142FEC + + thumb_func_start sub_814302C +sub_814302C: @ 814302C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl MenuUpdateWindowText + lsls r0, 24 + cmp r0, 0 + beq _08143056 + ldr r0, _0814305C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08143056 + ldr r0, _08143060 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _08143064 @ =sub_8142F78 + str r0, [r1] +_08143056: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814305C: .4byte gMain +_08143060: .4byte gTasks +_08143064: .4byte sub_8142F78 + thumb_func_end sub_814302C + + thumb_func_start sub_8143068 +sub_8143068: @ 8143068 + push {lr} + lsls r2, r1, 24 + ldr r0, _08143084 @ =gMenuText_WelcomeToHOFAndDexRating + movs r1, 0x80 + lsls r1, 17 + adds r2, r1 + lsrs r2, 24 + movs r1, 0 + movs r3, 0xF0 + bl sub_8072BD8 + pop {r0} + bx r0 + .align 2, 0 +_08143084: .4byte gMenuText_WelcomeToHOFAndDexRating + thumb_func_end sub_8143068 + + thumb_func_start sub_8143088 +sub_8143088: @ 8143088 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + mov r9, r0 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r2, 24 + lsrs r2, 24 + mov r10, r2 + ldr r7, _08143188 @ =gStringVar1 + movs r0, 0xFC + strb r0, [r7] + movs r0, 0x13 + strb r0, [r7, 0x1] + movs r0, 0x28 + strb r0, [r7, 0x2] + movs r0, 0xFF + strb r0, [r7, 0x3] + mov r0, r9 + ldrh r2, [r0, 0x8] + ldr r0, _0814318C @ =0x000001ff + ands r0, r2 + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _081430EA + lsls r0, r2, 23 + lsrs r0, 23 + bl SpeciesToPokedexNum + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, _08143190 @ =0x0000ffff + cmp r6, r0 + beq _081430EA + ldr r1, _08143194 @ =gOtherText_Number2 + adds r0, r7, 0 + bl StringCopy + adds r7, r0, 0 + adds r1, r6, 0 + movs r2, 0x2 + movs r3, 0x3 + bl ConvertIntToDecimalStringN +_081430EA: + ldr r5, _08143188 @ =gStringVar1 + mov r1, r8 + adds r1, 0x4 + lsls r1, 24 + lsrs r1, 24 + mov r4, r10 + adds r4, 0x1 + lsls r2, r4, 24 + lsrs r2, 24 + adds r0, r5, 0 + bl MenuPrint + adds r7, r5, 0 + movs r3, 0 + mov r1, r9 + ldrb r0, [r1, 0xA] + str r4, [sp] + mov r2, r8 + adds r2, 0x9 + str r2, [sp, 0xC] + mov r6, r10 + adds r6, 0x3 + str r6, [sp, 0x8] + cmp r0, 0xFF + beq _0814313A + mov r2, r9 + adds r2, 0xA +_08143120: + adds r1, r7, r3 + adds r0, r2, r3 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x9 + bhi _0814313A + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, 0xFF + bne _08143120 +_0814313A: + adds r7, r3 + movs r2, 0xFF + strb r2, [r7] + mov r1, r9 + ldrh r0, [r1, 0x8] + ldr r1, _0814318C @ =0x000001ff + ands r1, r0 + movs r0, 0xCE + lsls r0, 1 + cmp r1, r0 + bne _08143198 + movs r0, 0xFC + strb r0, [r7] + movs r0, 0x13 + strb r0, [r7, 0x1] + movs r0, 0xA0 + strb r0, [r7, 0x2] + strb r2, [r7, 0x3] + ldr r0, _08143188 @ =gStringVar1 + ldr r2, [sp, 0xC] + lsls r1, r2, 24 + lsrs r1, 24 + ldr r3, [sp] + lsls r2, r3, 24 + lsrs r2, 24 + bl MenuPrint + ldr r6, [sp, 0x8] + lsls r1, r6, 24 + lsrs r1, 24 + mov r3, r10 + adds r3, 0x4 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0 + movs r2, 0x1D + bl MenuZeroFillWindowRect + b _081432E4 + .align 2, 0 +_08143188: .4byte gStringVar1 +_0814318C: .4byte 0x000001ff +_08143190: .4byte 0x0000ffff +_08143194: .4byte gOtherText_Number2 +_08143198: + movs r0, 0xFC + strb r0, [r7] + movs r0, 0x13 + strb r0, [r7, 0x1] + movs r0, 0x3E + strb r0, [r7, 0x2] + adds r7, 0x3 + movs r0, 0xBA + strb r0, [r7] + adds r7, 0x1 + movs r3, 0 + ldr r2, _08143238 @ =gSpeciesNames + mov r1, r9 + ldrh r0, [r1, 0x8] + lsls r0, 23 + lsrs r0, 23 + movs r1, 0xB + muls r0, r1 + adds r0, r2 + ldrb r0, [r0] + mov r6, r8 + adds r6, 0x7 + str r6, [sp, 0x4] + mov r1, r8 + adds r1, 0xD + str r1, [sp, 0x10] + cmp r0, 0xFF + beq _08143204 + adds r5, r2, 0 + movs r4, 0xB +_081431D4: + adds r1, r7, r3 + mov r6, r9 + ldrh r0, [r6, 0x8] + lsls r0, 23 + lsrs r0, 23 + muls r0, r4 + adds r0, r3, r0 + adds r0, r5 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x9 + bhi _08143204 + ldrh r0, [r6, 0x8] + lsls r0, 23 + lsrs r0, 23 + muls r0, r4 + adds r0, r3, r0 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0xFF + bne _081431D4 +_08143204: + adds r7, r3 + movs r0, 0 + strb r0, [r7] + adds r7, 0x1 + mov r1, r9 + ldrh r0, [r1, 0x8] + ldr r1, _0814323C @ =0x000001ff + ands r1, r0 + cmp r1, 0x20 + beq _0814324A + cmp r1, 0x1D + beq _0814324A + lsls r0, 23 + lsrs r0, 23 + mov r2, r9 + ldr r1, [r2, 0x4] + bl GetGenderFromSpeciesAndPersonality + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _08143240 + cmp r0, 0xFE + beq _08143244 + b _0814324A + .align 2, 0 +_08143238: .4byte gSpeciesNames +_0814323C: .4byte 0x000001ff +_08143240: + movs r0, 0xB5 + b _08143246 +_08143244: + movs r0, 0xB6 +_08143246: + strb r0, [r7] + adds r7, 0x1 +_0814324A: + movs r4, 0xFC + strb r4, [r7] + movs r3, 0x13 + mov r8, r3 + strb r3, [r7, 0x1] + movs r0, 0xA0 + strb r0, [r7, 0x2] + movs r6, 0xFF + mov r10, r6 + strb r6, [r7, 0x3] + ldr r5, _081432F4 @ =gStringVar1 + ldr r0, [sp, 0xC] + lsls r1, r0, 24 + lsrs r1, 24 + ldr r3, [sp] + lsls r2, r3, 24 + lsrs r2, 24 + adds r0, r5, 0 + bl MenuPrint + mov r6, r9 + ldrb r0, [r6, 0x9] + lsrs r6, r0, 1 + ldr r1, _081432F8 @ =gOtherText_Level3 + adds r0, r5, 0 + bl StringCopy + adds r7, r0, 0 + strb r4, [r7] + movs r0, 0x14 + strb r0, [r7, 0x1] + movs r0, 0x6 + strb r0, [r7, 0x2] + adds r7, 0x3 + adds r0, r7, 0 + adds r1, r6, 0 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r7, r0, 0 + strb r4, [r7] + mov r0, r8 + strb r0, [r7, 0x1] + movs r0, 0x30 + strb r0, [r7, 0x2] + mov r1, r10 + strb r1, [r7, 0x3] + ldr r2, [sp, 0x4] + lsls r1, r2, 24 + lsrs r1, 24 + ldr r3, [sp, 0x8] + lsls r4, r3, 24 + lsrs r4, 24 + adds r0, r5, 0 + adds r2, r4, 0 + bl MenuPrint + mov r0, r9 + ldrh r6, [r0] + ldr r1, _081432FC @ =gOtherText_IDNumber + adds r0, r5, 0 + bl StringCopy + adds r7, r0, 0 + adds r1, r6, 0 + movs r2, 0x2 + movs r3, 0x5 + bl ConvertIntToDecimalStringN + ldr r2, [sp, 0x10] + lsls r1, r2, 24 + lsrs r1, 24 + adds r0, r5, 0 + adds r2, r4, 0 + bl MenuPrint +_081432E4: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081432F4: .4byte gStringVar1 +_081432F8: .4byte gOtherText_Level3 +_081432FC: .4byte gOtherText_IDNumber + thumb_func_end sub_8143088 + + thumb_func_start sub_8143300 +sub_8143300: @ 8143300 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + adds r5, r0, 0 + adds r4, r1, 0 + lsls r5, 24 + lsls r4, 24 + ldr r0, _081433CC @ =gOtherText_Name + lsrs r1, r5, 24 + mov r8, r1 + movs r2, 0x80 + lsls r2, 17 + adds r5, r2 + lsrs r5, 24 + lsrs r6, r4, 24 + adds r4, r2 + lsrs r4, 24 + adds r1, r5, 0 + adds r2, r4, 0 + bl MenuPrint + ldr r0, _081433D0 @ =gSaveBlock2 + mov r10, r0 + movs r1, 0xE + add r8, r1 + mov r2, r8 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + mov r1, r8 + adds r2, r4, 0 + bl MenuPrint_RightAligned + ldr r0, _081433D4 @ =gOtherText_IDNumber2 + adds r4, r6, 0x3 + lsls r4, 24 + lsrs r4, 24 + adds r1, r5, 0 + adds r2, r4, 0 + bl MenuPrint + mov r0, r10 + ldrb r1, [r0, 0xA] + ldrb r0, [r0, 0xB] + lsls r0, 8 + orrs r1, r0 + ldr r2, _081433D8 @ =gStringVar1 + mov r9, r2 + mov r0, r9 + movs r2, 0x2 + movs r3, 0x5 + bl ConvertIntToDecimalStringN + mov r0, r9 + mov r1, r8 + adds r2, r4, 0 + bl MenuPrint_RightAligned + ldr r0, _081433DC @ =gMainMenuString_Time + adds r6, 0x5 + lsls r6, 24 + lsrs r6, 24 + adds r1, r5, 0 + adds r2, r6, 0 + bl MenuPrint + mov r0, r10 + ldrh r1, [r0, 0xE] + mov r0, r9 + bl ConvertIntToDecimalString + adds r2, r0, 0 + movs r1, 0 + strb r1, [r2] + movs r0, 0xF0 + strb r0, [r2, 0x1] + strb r1, [r2, 0x2] + adds r2, 0x3 + mov r0, r10 + ldrb r1, [r0, 0x10] + adds r0, r2, 0 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + adds r2, r0, 0 + movs r0, 0xFF + strb r0, [r2] + mov r0, r9 + mov r1, r8 + adds r2, r6, 0 + bl MenuPrint_RightAligned + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081433CC: .4byte gOtherText_Name +_081433D0: .4byte gSaveBlock2 +_081433D4: .4byte gOtherText_IDNumber2 +_081433D8: .4byte gStringVar1 +_081433DC: .4byte gMainMenuString_Time + thumb_func_end sub_8143300 + + thumb_func_start sub_81433E0 +sub_81433E0: @ 81433E0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + movs r0, 0x80 + lsls r0, 19 + movs r1, 0 + strh r1, [r0] + adds r0, 0x8 + strh r1, [r0] + adds r0, 0x8 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x8 + strh r1, [r0] + adds r0, 0xA + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0xA + strh r1, [r0] + adds r0, 0xC + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0xC + strh r1, [r0] + adds r0, 0xE + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + movs r3, 0xC0 + lsls r3, 19 + movs r4, 0xC0 + lsls r4, 9 + add r0, sp, 0x4 + mov r8, r0 + ldr r1, _0814354C @ =gHallOfFame_Gfx + mov r9, r1 + mov r2, sp + movs r6, 0 + ldr r1, _08143550 @ =0x040000d4 + movs r5, 0x80 + lsls r5, 5 + ldr r7, _08143554 @ =0x81000800 + movs r0, 0x81 + lsls r0, 24 + mov r12, r0 +_08143444: + strh r6, [r2] + mov r0, sp + str r0, [r1] + str r3, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r3, r5 + subs r4, r5 + cmp r4, r5 + bhi _08143444 + strh r6, [r2] + mov r2, sp + str r2, [r1] + str r3, [r1, 0x4] + lsrs r0, r4, 1 + mov r2, r12 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r0, 0xE0 + lsls r0, 19 + movs r3, 0x80 + lsls r3, 3 + movs r4, 0 + str r4, [sp, 0x4] + ldr r2, _08143550 @ =0x040000d4 + mov r1, r8 + str r1, [r2] + str r0, [r2, 0x4] + lsrs r0, r3, 2 + movs r1, 0x85 + lsls r1, 24 + orrs r0, r1 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + movs r1, 0xA0 + lsls r1, 19 + mov r0, sp + strh r4, [r0] + str r0, [r2] + str r1, [r2, 0x4] + lsrs r3, 1 + movs r0, 0x81 + lsls r0, 24 + orrs r3, r0 + str r3, [r2, 0x8] + ldr r0, [r2, 0x8] + movs r1, 0xC0 + lsls r1, 19 + mov r0, r9 + bl LZ77UnCompVram + movs r1, 0 + ldr r3, _08143558 @ =0x06003800 + movs r2, 0x1 +_081434B2: + lsls r0, r1, 1 + adds r0, r3 + strh r2, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3F + bls _081434B2 + movs r1, 0 + ldr r5, _0814355C @ =0x02000000 + ldr r3, _08143560 @ =0x06003b80 + movs r2, 0x1 +_081434CA: + lsls r0, r1, 1 + adds r0, r3 + strh r2, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0xBF + bls _081434CA + movs r1, 0 + ldr r4, _08143564 @ =0x06003000 + movs r3, 0x2 + ldr r2, _08143568 @ =0x000003ff +_081434E2: + lsls r0, r1, 1 + adds r0, r4 + strh r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r2 + bls _081434E2 + adds r2, r5, 0 + movs r3, 0x80 + lsls r3, 7 + mov r4, sp + movs r6, 0 + ldr r1, _08143550 @ =0x040000d4 + movs r5, 0x80 + lsls r5, 5 + ldr r7, _08143554 @ =0x81000800 + movs r0, 0x81 + lsls r0, 24 + mov r12, r0 +_0814350A: + strh r6, [r4] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r5 + subs r3, r5 + cmp r3, r5 + bhi _0814350A + strh r6, [r4] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 1 + mov r2, r12 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + bl ResetPaletteFade + ldr r0, _0814356C @ =gHallOfFame_Pal + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0814354C: .4byte gHallOfFame_Gfx +_08143550: .4byte 0x040000d4 +_08143554: .4byte 0x81000800 +_08143558: .4byte 0x06003800 +_0814355C: .4byte 0x02000000 +_08143560: .4byte 0x06003b80 +_08143564: .4byte 0x06003000 +_08143568: .4byte 0x000003ff +_0814356C: .4byte gHallOfFame_Pal + thumb_func_end sub_81433E0 + + thumb_func_start sub_8143570 +sub_8143570: @ 8143570 + push {r4,lr} + bl remove_some_task + bl ResetTasks + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r1, _081435A8 @ =gReservedSpritePaletteCount + movs r0, 0x8 + strb r0, [r1] + ldr r0, _081435AC @ =gUnknown_0840B514 + bl LoadCompressedObjectPic + ldr r0, _081435B0 @ =gUnknown_0840B524 + bl LoadCompressedObjectPalette + ldr r4, _081435B4 @ =gWindowConfig_81E71B4 + adds r0, r4, 0 + bl SetUpWindowConfig + adds r0, r4, 0 + bl InitMenuWindow + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081435A8: .4byte gReservedSpritePaletteCount +_081435AC: .4byte gUnknown_0840B514 +_081435B0: .4byte gUnknown_0840B524 +_081435B4: .4byte gWindowConfig_81E71B4 + thumb_func_end sub_8143570 + + thumb_func_start sub_81435B8 +sub_81435B8: @ 81435B8 + ldr r1, _081435D8 @ =REG_BG1CNT + movs r2, 0xE0 + lsls r2, 3 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x4 + subs r2, 0xFD + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0xE + movs r2, 0xDA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + bx lr + .align 2, 0 +_081435D8: .4byte REG_BG1CNT + thumb_func_end sub_81435B8 + + thumb_func_start sub_81435DC +sub_81435DC: @ 81435DC + push {r4,lr} + adds r2, r0, 0 + ldr r1, [r2, 0x20] + ldr r0, [r2, 0x30] + cmp r1, r0 + beq _08143632 + ldrh r3, [r2, 0x20] + movs r1, 0x20 + ldrsh r0, [r2, r1] + movs r4, 0x30 + ldrsh r1, [r2, r4] + cmp r0, r1 + bge _081435FC + adds r0, r3, 0 + adds r0, 0xF + strh r0, [r2, 0x20] +_081435FC: + ldrh r3, [r2, 0x20] + movs r4, 0x20 + ldrsh r0, [r2, r4] + cmp r0, r1 + ble _0814360C + adds r0, r3, 0 + subs r0, 0xF + strh r0, [r2, 0x20] +_0814360C: + ldrh r3, [r2, 0x22] + movs r1, 0x22 + ldrsh r0, [r2, r1] + movs r4, 0x32 + ldrsh r1, [r2, r4] + cmp r0, r1 + bge _08143620 + adds r0, r3, 0 + adds r0, 0xA + strh r0, [r2, 0x22] +_08143620: + ldrh r3, [r2, 0x22] + movs r4, 0x22 + ldrsh r0, [r2, r4] + cmp r0, r1 + ble _0814363A + adds r0, r3, 0 + subs r0, 0xA + strh r0, [r2, 0x22] + b _0814363A +_08143632: + movs r0, 0x1 + strh r0, [r2, 0x2E] + ldr r0, _08143640 @ =nullsub_81 + str r0, [r2, 0x1C] +_0814363A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08143640: .4byte nullsub_81 + thumb_func_end sub_81435DC + + thumb_func_start nullsub_81 +nullsub_81: @ 8143644 + bx lr + thumb_func_end nullsub_81 + + thumb_func_start sub_8143648 +sub_8143648: @ 8143648 + push {r4-r7,lr} + lsls r1, 24 + ldr r4, _08143670 @ =gUnknown_02024E8C + adds r3, r4, 0 + ldr r2, _08143674 @ =gUnknown_0840B6B8 + ldm r2!, {r5-r7} + stm r3!, {r5-r7} + ldm r2!, {r5-r7} + stm r3!, {r5-r7} + strh r0, [r4, 0x2] + ldr r0, _08143678 @ =gUnknown_0840B69C + lsrs r1, 22 + adds r1, r0 + ldr r0, [r1] + str r0, [r4, 0xC] + ldr r0, _0814367C @ =gSpriteAnimTable_81E7C64 + str r0, [r4, 0x8] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08143670: .4byte gUnknown_02024E8C +_08143674: .4byte gUnknown_0840B6B8 +_08143678: .4byte gUnknown_0840B69C +_0814367C: .4byte gSpriteAnimTable_81E7C64 + thumb_func_end sub_8143648 + + thumb_func_start sub_8143680 +sub_8143680: @ 8143680 + push {r4-r7,lr} + lsls r1, 24 + ldr r4, _081436AC @ =gUnknown_02024E8C + adds r3, r4, 0 + ldr r2, _081436B0 @ =gUnknown_0840B6B8 + ldm r2!, {r5-r7} + stm r3!, {r5-r7} + ldm r2!, {r5-r7} + stm r3!, {r5-r7} + strh r0, [r4, 0x2] + ldr r0, _081436B4 @ =gUnknown_0840B69C + lsrs r1, 22 + adds r1, r0 + ldr r0, [r1] + str r0, [r4, 0xC] + ldr r0, _081436B8 @ =gUnknown_081EC2A4 + ldr r0, [r0] + str r0, [r4, 0x8] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081436AC: .4byte gUnknown_02024E8C +_081436B0: .4byte gUnknown_0840B6B8 +_081436B4: .4byte gUnknown_0840B69C +_081436B8: .4byte gUnknown_081EC2A4 + thumb_func_end sub_8143680 + + thumb_func_start sub_81436BC +sub_81436BC: @ 81436BC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + adds r6, r0, 0 + mov r9, r1 + mov r10, r2 + mov r8, r3 + ldr r7, [sp, 0x34] + lsls r6, 16 + lsrs r6, 16 + mov r0, r9 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + mov r1, r10 + lsls r1, 16 + lsrs r1, 16 + mov r10, r1 + mov r2, r8 + lsls r2, 16 + lsrs r2, 16 + mov r8, r2 + lsls r0, r6, 3 + ldr r1, _08143790 @ =gMonFrontPicTable + adds r0, r1 + ldr r1, _08143794 @ =gMonFrontPicCoords + lsls r2, r6, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _08143798 @ =gUnknown_0840B5A0 + mov r12, r4 + mov r5, r8 + lsls r4, r5, 2 + add r4, r12 + ldr r4, [r4] + str r4, [sp] + str r6, [sp, 0x4] + str r7, [sp, 0x8] + movs r4, 0x1 + str r4, [sp, 0xC] + bl LoadSpecialPokePic + adds r0, r6, 0 + ldr r1, [sp, 0x30] + adds r2, r7, 0 + bl species_and_otid_get_pal + lsls r4, r5, 4 + movs r2, 0x80 + lsls r2, 1 + adds r1, r4, r2 + lsls r1, 16 + lsrs r1, 16 + movs r2, 0x20 + bl LoadCompressedPalette + lsls r1, r5, 24 + lsrs r1, 24 + mov r0, r8 + bl sub_8143648 + ldr r0, _0814379C @ =gUnknown_02024E8C + mov r5, r9 + lsls r5, 16 + asrs r5, 16 + mov r9, r5 + mov r1, r10 + lsls r1, 16 + asrs r1, 16 + mov r10, r1 + movs r3, 0xA + mov r2, r8 + subs r3, r2 + lsls r3, 24 + lsrs r3, 24 + mov r1, r9 + mov r2, r10 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r1, _081437A0 @ =gSprites + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + ldrb r3, [r2, 0x5] + movs r1, 0xF + ands r1, r3 + orrs r1, r4 + strb r1, [r2, 0x5] + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08143790: .4byte gMonFrontPicTable +_08143794: .4byte gMonFrontPicCoords +_08143798: .4byte gUnknown_0840B5A0 +_0814379C: .4byte gUnknown_02024E8C +_081437A0: .4byte gSprites + thumb_func_end sub_81436BC + + thumb_func_start sub_81437A4 +sub_81437A4: @ 81437A4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + mov r9, r1 + mov r10, r2 + adds r6, r3, 0 + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + lsls r2, 16 + lsrs r2, 16 + mov r10, r2 + lsls r6, 16 + lsrs r6, 16 + lsls r7, r0, 3 + ldr r1, _08143854 @ =gTrainerFrontPicTable + mov r8, r1 + add r8, r7 + ldr r1, _08143858 @ =gTrainerFrontPicCoords + lsls r2, r0, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r5, _0814385C @ =gUnknown_0840B5A0 + lsls r4, r6, 2 + adds r4, r5 + ldr r4, [r4] + str r4, [sp] + str r0, [sp, 0x4] + mov r0, r8 + bl DecompressPicFromTable_2 + ldr r0, _08143860 @ =gTrainerFrontPicPaletteTable + adds r0, r7, r0 + ldr r0, [r0] + lsls r4, r6, 4 + movs r2, 0x80 + lsls r2, 1 + adds r1, r4, r2 + lsls r1, 16 + lsrs r1, 16 + movs r2, 0x20 + bl LoadCompressedPalette + lsls r1, r6, 24 + lsrs r1, 24 + adds r0, r6, 0 + bl sub_8143680 + ldr r0, _08143864 @ =gUnknown_02024E8C + mov r1, r9 + lsls r1, 16 + asrs r1, 16 + mov r9, r1 + mov r2, r10 + lsls r2, 16 + asrs r2, 16 + mov r10, r2 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08143868 @ =gSprites + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + ldrb r3, [r2, 0x5] + movs r1, 0xF + ands r1, r3 + orrs r1, r4 + strb r1, [r2, 0x5] + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08143854: .4byte gTrainerFrontPicTable +_08143858: .4byte gTrainerFrontPicCoords +_0814385C: .4byte gUnknown_0840B5A0 +_08143860: .4byte gTrainerFrontPicPaletteTable +_08143864: .4byte gUnknown_02024E8C +_08143868: .4byte gSprites + thumb_func_end sub_81437A4 + + thumb_func_start sub_814386C +sub_814386C: @ 814386C + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r1, [r5, 0x26] + movs r2, 0x26 + ldrsh r0, [r5, r2] + cmp r0, 0x78 + ble _08143882 + adds r0, r5, 0 + bl DestroySprite + b _081438BA +_08143882: + adds r0, r1, 0x1 + ldrh r1, [r5, 0x30] + adds r0, r1 + strh r0, [r5, 0x26] + ldrh r4, [r5, 0x2E] + lsls r4, 24 + lsrs r4, 24 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + ands r0, r1 + adds r0, 0x8 + ldr r1, _081438C0 @ =gSineTable + lsls r4, 1 + adds r4, r1 + movs r2, 0 + ldrsh r1, [r4, r2] + muls r0, r1 + cmp r0, 0 + bge _081438B0 + adds r0, 0xFF +_081438B0: + asrs r0, 8 + strh r0, [r5, 0x24] + ldrh r0, [r5, 0x2E] + adds r0, 0x4 + strh r0, [r5, 0x2E] +_081438BA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081438C0: .4byte gSineTable + thumb_func_end sub_814386C + + thumb_func_start sub_81438C4 +sub_81438C4: @ 81438C4 + push {r4,lr} + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xF0 + bl __umodsi3 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl Random + adds r2, r0, 0 + lsls r2, 16 + lsrs r2, 16 + movs r0, 0x7 + ands r2, r0 + negs r2, r2 + ldr r0, _08143934 @ =gSpriteTemplate_840B7A4 + lsls r4, 16 + asrs r4, 16 + lsls r2, 16 + asrs r2, 16 + adds r1, r4, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _08143938 @ =gSprites + adds r4, r1, r0 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x11 + bl __umodsi3 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + bl Random + movs r1, 0x3 + ands r1, r0 + cmp r1, 0 + beq _0814393C + movs r0, 0 + b _0814393E + .align 2, 0 +_08143934: .4byte gSpriteTemplate_840B7A4 +_08143938: .4byte gSprites +_0814393C: + movs r0, 0x1 +_0814393E: + strh r0, [r4, 0x30] + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81438C4 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/intro_credits_graphics.s b/asm/intro_credits_graphics.s new file mode 100644 index 000000000..8d73f6cf6 --- /dev/null +++ b/asm/intro_credits_graphics.s @@ -0,0 +1,1166 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start load_intro_part2_graphics +load_intro_part2_graphics: @ 8148B8C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08148BE8 @ =gUnknown_0841225C + ldr r1, _08148BEC @ =0x06004000 + bl LZ77UnCompVram + ldr r0, _08148BF0 @ =gUnknown_084126DC + ldr r1, _08148BF4 @ =0x06007800 + bl LZ77UnCompVram + ldr r0, _08148BF8 @ =gUnknown_084121FC + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + cmp r4, 0 + beq _08148BB4 + cmp r4, 0x1 + beq _08148C14 +_08148BB4: + ldr r0, _08148BFC @ =gUnknown_084128D8 + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r0, _08148C00 @ =gUnknown_08412EB4 + ldr r1, _08148C04 @ =0x06003000 + bl LZ77UnCompVram + ldr r0, _08148C08 @ =gUnknown_08412818 + movs r1, 0 + movs r2, 0x60 + bl LoadPalette + ldr r0, _08148C0C @ =gUnknown_08416B54 + bl LoadCompressedObjectPic + ldr r0, _08148C10 @ =gUnknown_08413184 + movs r1, 0x80 + lsls r1, 1 + movs r2, 0x20 + bl LoadPalette + bl sub_8149248 + b _08148C46 + .align 2, 0 +_08148BE8: .4byte gUnknown_0841225C +_08148BEC: .4byte 0x06004000 +_08148BF0: .4byte gUnknown_084126DC +_08148BF4: .4byte 0x06007800 +_08148BF8: .4byte gUnknown_084121FC +_08148BFC: .4byte gUnknown_084128D8 +_08148C00: .4byte gUnknown_08412EB4 +_08148C04: .4byte 0x06003000 +_08148C08: .4byte gUnknown_08412818 +_08148C0C: .4byte gUnknown_08416B54 +_08148C10: .4byte gUnknown_08413184 +_08148C14: + ldr r0, _08148C58 @ =gUnknown_08413340 + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r0, _08148C5C @ =gUnknown_084139C8 + ldr r1, _08148C60 @ =0x06003000 + bl LZ77UnCompVram + ldr r0, _08148C64 @ =gUnknown_08413300 + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08148C68 @ =gUnknown_08416BDC + bl LoadCompressedObjectPic + ldr r0, _08148C6C @ =gUnknown_08413CCC + movs r1, 0x80 + lsls r1, 1 + movs r2, 0x20 + bl LoadPalette + bl sub_8149264 +_08148C46: + ldr r1, _08148C70 @ =gUnknown_0203935C + movs r0, 0 + strh r0, [r1] + ldr r1, _08148C74 @ =gReservedSpritePaletteCount + movs r0, 0x8 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08148C58: .4byte gUnknown_08413340 +_08148C5C: .4byte gUnknown_084139C8 +_08148C60: .4byte 0x06003000 +_08148C64: .4byte gUnknown_08413300 +_08148C68: .4byte gUnknown_08416BDC +_08148C6C: .4byte gUnknown_08413CCC +_08148C70: .4byte gUnknown_0203935C +_08148C74: .4byte gReservedSpritePaletteCount + thumb_func_end load_intro_part2_graphics + + thumb_func_start sub_8148C78 +sub_8148C78: @ 8148C78 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08148CA4 @ =REG_BG3CNT + ldr r2, _08148CA8 @ =0x00000603 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x2 + adds r2, 0xFF + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x2 + ldr r2, _08148CAC @ =0x00000f05 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0xA + movs r2, 0xF2 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08148CA4: .4byte REG_BG3CNT +_08148CA8: .4byte 0x00000603 +_08148CAC: .4byte 0x00000f05 + thumb_func_end sub_8148C78 + + thumb_func_start sub_8148CB0 +sub_8148CB0: @ 8148CB0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08148CD4 @ =gUnknown_0841225C + ldr r1, _08148CD8 @ =0x06004000 + bl LZ77UnCompVram + ldr r0, _08148CDC @ =gUnknown_084126DC + ldr r1, _08148CE0 @ =0x06007800 + bl LZ77UnCompVram + cmp r4, 0x4 + bhi _08148CFC + lsls r0, r4, 2 + ldr r1, _08148CE4 @ =_08148CE8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08148CD4: .4byte gUnknown_0841225C +_08148CD8: .4byte 0x06004000 +_08148CDC: .4byte gUnknown_084126DC +_08148CE0: .4byte 0x06007800 +_08148CE4: .4byte _08148CE8 + .align 2, 0 +_08148CE8: + .4byte _08148CFC + .4byte _08148D58 + .4byte _08148DC4 + .4byte _08148DC4 + .4byte _08148E1C +_08148CFC: + ldr r0, _08148D34 @ =gUnknown_084121FC + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08148D38 @ =gUnknown_084128D8 + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r0, _08148D3C @ =gUnknown_08412EB4 + ldr r1, _08148D40 @ =0x06003000 + bl LZ77UnCompVram + ldr r0, _08148D44 @ =gUnknown_08412818 + movs r1, 0 + movs r2, 0x60 + bl LoadPalette + ldr r0, _08148D48 @ =gUnknown_08416B54 + bl LoadCompressedObjectPic + ldr r0, _08148D4C @ =gUnknown_084131C4 + ldr r1, _08148D50 @ =0x06010000 + bl LZ77UnCompVram + ldr r0, _08148D54 @ =gUnknown_08413184 + b _08148D8E + .align 2, 0 +_08148D34: .4byte gUnknown_084121FC +_08148D38: .4byte gUnknown_084128D8 +_08148D3C: .4byte gUnknown_08412EB4 +_08148D40: .4byte 0x06003000 +_08148D44: .4byte gUnknown_08412818 +_08148D48: .4byte gUnknown_08416B54 +_08148D4C: .4byte gUnknown_084131C4 +_08148D50: .4byte 0x06010000 +_08148D54: .4byte gUnknown_08413184 +_08148D58: + ldr r0, _08148DA0 @ =gUnknown_0841221C + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08148DA4 @ =gUnknown_084128D8 + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r0, _08148DA8 @ =gUnknown_08412EB4 + ldr r1, _08148DAC @ =0x06003000 + bl LZ77UnCompVram + ldr r0, _08148DB0 @ =gUnknown_08412878 + movs r1, 0 + movs r2, 0x60 + bl LoadPalette + ldr r0, _08148DB4 @ =gUnknown_08416B54 + bl LoadCompressedObjectPic + ldr r0, _08148DB8 @ =gUnknown_084131C4 + ldr r1, _08148DBC @ =0x06010000 + bl LZ77UnCompVram + ldr r0, _08148DC0 @ =gUnknown_084131A4 +_08148D8E: + movs r1, 0x80 + lsls r1, 1 + movs r2, 0x20 + bl LoadPalette + bl sub_8149248 + b _08148E58 + .align 2, 0 +_08148DA0: .4byte gUnknown_0841221C +_08148DA4: .4byte gUnknown_084128D8 +_08148DA8: .4byte gUnknown_08412EB4 +_08148DAC: .4byte 0x06003000 +_08148DB0: .4byte gUnknown_08412878 +_08148DB4: .4byte gUnknown_08416B54 +_08148DB8: .4byte gUnknown_084131C4 +_08148DBC: .4byte 0x06010000 +_08148DC0: .4byte gUnknown_084131A4 +_08148DC4: + ldr r0, _08148E04 @ =gUnknown_0841221C + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08148E08 @ =gUnknown_08413340 + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r0, _08148E0C @ =gUnknown_084139C8 + ldr r1, _08148E10 @ =0x06003000 + bl LZ77UnCompVram + ldr r4, _08148E14 @ =gUnknown_08413320 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08148E18 @ =gUnknown_08416BDC + bl LoadCompressedObjectPic + movs r1, 0x80 + lsls r1, 1 + adds r0, r4, 0 + movs r2, 0x20 + bl LoadPalette + bl sub_8149264 + b _08148E58 + .align 2, 0 +_08148E04: .4byte gUnknown_0841221C +_08148E08: .4byte gUnknown_08413340 +_08148E0C: .4byte gUnknown_084139C8 +_08148E10: .4byte 0x06003000 +_08148E14: .4byte gUnknown_08413320 +_08148E18: .4byte gUnknown_08416BDC +_08148E1C: + ldr r0, _08148E6C @ =gUnknown_0841223C + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08148E70 @ =gUnknown_08413E78 + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r0, _08148E74 @ =gUnknown_08414084 + ldr r1, _08148E78 @ =0x06003000 + bl LZ77UnCompVram + ldr r0, _08148E7C @ =gUnknown_08413E38 + movs r1, 0 + movs r2, 0x40 + bl LoadPalette + ldr r0, _08148E80 @ =gUnknown_08416C70 + bl LoadCompressedObjectPic + ldr r0, _08148E84 @ =gUnknown_08414064 + movs r1, 0x80 + lsls r1, 1 + movs r2, 0x20 + bl LoadPalette + bl sub_8149280 +_08148E58: + ldr r1, _08148E88 @ =gReservedSpritePaletteCount + movs r0, 0x8 + strb r0, [r1] + ldr r1, _08148E8C @ =gUnknown_0203935C + movs r0, 0 + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08148E6C: .4byte gUnknown_0841223C +_08148E70: .4byte gUnknown_08413E78 +_08148E74: .4byte gUnknown_08414084 +_08148E78: .4byte 0x06003000 +_08148E7C: .4byte gUnknown_08413E38 +_08148E80: .4byte gUnknown_08416C70 +_08148E84: .4byte gUnknown_08414064 +_08148E88: .4byte gReservedSpritePaletteCount +_08148E8C: .4byte gUnknown_0203935C + thumb_func_end sub_8148CB0 + + thumb_func_start sub_8148E90 +sub_8148E90: @ 8148E90 + ldr r1, _08148EB4 @ =REG_BG3CNT + ldr r2, _08148EB8 @ =0x00000603 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x2 + adds r2, 0xFF + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x2 + ldr r2, _08148EBC @ =0x00000f05 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0xA + movs r2, 0xFA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + bx lr + .align 2, 0 +_08148EB4: .4byte REG_BG3CNT +_08148EB8: .4byte 0x00000603 +_08148EBC: .4byte 0x00000f05 + thumb_func_end sub_8148E90 + + thumb_func_start sub_8148EC0 +sub_8148EC0: @ 8148EC0 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x4 + adds r5, r0, 0 + adds r6, r1, 0 + mov r8, r2 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 16 + lsrs r6, 16 + mov r0, r8 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r3, 16 + lsrs r3, 16 + ldr r1, _08148F34 @ =sub_8148F3C + mov r9, r1 + mov r0, r9 + movs r1, 0 + str r3, [sp] + bl CreateTask + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _08148F38 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0 + strh r5, [r0, 0x8] + strh r6, [r0, 0xA] + strh r2, [r0, 0xC] + strh r2, [r0, 0xE] + mov r1, r8 + strh r1, [r0, 0x10] + strh r2, [r0, 0x12] + strh r2, [r0, 0x14] + ldr r3, [sp] + strh r3, [r0, 0x16] + movs r1, 0x8 + strh r1, [r0, 0x18] + strh r2, [r0, 0x1A] + adds r0, r4, 0 + bl _call_via_r9 + adds r0, r4, 0 + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08148F34: .4byte sub_8148F3C +_08148F38: .4byte gTasks + thumb_func_end sub_8148EC0 + + thumb_func_start sub_8148F3C +sub_8148F3C: @ 8148F3C + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _08148FB4 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r3, r0, r1 + ldrh r0, [r3, 0xA] + lsls r4, r0, 16 + adds r6, r1, 0 + cmp r4, 0 + beq _08148F7C + movs r1, 0xC + ldrsh r0, [r3, r1] + lsls r0, 16 + ldrh r1, [r3, 0xE] + adds r2, r0, r1 + lsrs r0, r4, 12 + subs r2, r0 + asrs r1, r2, 16 + strh r1, [r3, 0xC] + strh r2, [r3, 0xE] + ldr r0, _08148FB8 @ =REG_BG1HOFS + strh r1, [r0] + ldr r2, _08148FBC @ =REG_BG1VOFS + ldr r1, _08148FC0 @ =gUnknown_02039358 + ldr r0, _08148FC4 @ =gUnknown_0203935A + ldrh r0, [r0] + ldrh r1, [r1] + adds r0, r1 + strh r0, [r2] +_08148F7C: + ldrh r0, [r3, 0x10] + lsls r4, r0, 16 + cmp r4, 0 + beq _08148FD8 + movs r1, 0x12 + ldrsh r0, [r3, r1] + lsls r0, 16 + ldrh r1, [r3, 0x14] + adds r2, r0, r1 + lsrs r0, r4, 12 + subs r2, r0 + asrs r1, r2, 16 + strh r1, [r3, 0x12] + strh r2, [r3, 0x14] + ldr r0, _08148FC8 @ =REG_BG2HOFS + strh r1, [r0] + movs r1, 0x8 + ldrsh r0, [r3, r1] + cmp r0, 0 + beq _08148FD0 + ldr r2, _08148FCC @ =REG_BG2VOFS + ldr r1, _08148FC0 @ =gUnknown_02039358 + ldr r0, _08148FC4 @ =gUnknown_0203935A + ldrh r0, [r0] + ldrh r1, [r1] + adds r0, r1 + strh r0, [r2] + b _08148FD8 + .align 2, 0 +_08148FB4: .4byte gTasks +_08148FB8: .4byte REG_BG1HOFS +_08148FBC: .4byte REG_BG1VOFS +_08148FC0: .4byte gUnknown_02039358 +_08148FC4: .4byte gUnknown_0203935A +_08148FC8: .4byte REG_BG2HOFS +_08148FCC: .4byte REG_BG2VOFS +_08148FD0: + ldr r0, _08149010 @ =REG_BG2VOFS + ldr r1, _08149014 @ =gUnknown_02039358 + ldrh r1, [r1] + strh r1, [r0] +_08148FD8: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r3, r0, r6 + ldrh r0, [r3, 0x16] + lsls r4, r0, 16 + cmp r4, 0 + beq _08149008 + movs r1, 0x18 + ldrsh r0, [r3, r1] + lsls r0, 16 + ldrh r1, [r3, 0x1A] + adds r2, r0, r1 + lsrs r0, r4, 12 + subs r2, r0 + asrs r1, r2, 16 + strh r1, [r3, 0x18] + strh r2, [r3, 0x1A] + ldr r0, _08149018 @ =REG_BG3HOFS + strh r1, [r0] + ldr r1, _0814901C @ =REG_BG3VOFS + ldr r0, _08149014 @ =gUnknown_02039358 + ldrh r0, [r0] + strh r0, [r1] +_08149008: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08149010: .4byte REG_BG2VOFS +_08149014: .4byte gUnknown_02039358 +_08149018: .4byte REG_BG3HOFS +_0814901C: .4byte REG_BG3VOFS + thumb_func_end sub_8148F3C + + thumb_func_start sub_8149020 +sub_8149020: @ 8149020 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08149100 + cmp r0, 0x1 + ble _08149034 + cmp r0, 0x2 + beq _08149098 +_08149034: + ldr r0, _08149060 @ =gMain + ldr r2, [r0, 0x20] + movs r0, 0x3 + ands r0, r2 + cmp r0, 0 + bne _08149100 + ldr r0, _08149064 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08149100 + movs r0, 0x4 + ands r2, r0 + cmp r2, 0 + beq _0814906C + ldr r2, _08149068 @ =gPlttBufferUnfaded + ldrh r1, [r2, 0x12] + mov r0, sp + strh r1, [r0] + ldrh r1, [r2, 0x14] + b _08149076 + .align 2, 0 +_08149060: .4byte gMain +_08149064: .4byte gPaletteFade +_08149068: .4byte gPlttBufferUnfaded +_0814906C: + ldr r2, _08149094 @ =gPlttBufferUnfaded + ldrh r1, [r2, 0x14] + mov r0, sp + strh r1, [r0] + ldrh r1, [r2, 0x12] +_08149076: + adds r0, 0x2 + strh r1, [r0] + adds r4, r0, 0 + mov r0, sp + movs r1, 0x9 + movs r2, 0x2 + bl LoadPalette + adds r0, r4, 0 + movs r1, 0xA + movs r2, 0x2 + bl LoadPalette + b _08149100 + .align 2, 0 +_08149094: .4byte gPlttBufferUnfaded +_08149098: + ldr r0, _081490C8 @ =gMain + ldr r2, [r0, 0x20] + movs r0, 0x3 + ands r0, r2 + cmp r0, 0 + bne _08149100 + ldr r0, _081490CC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08149100 + movs r0, 0x4 + ands r2, r0 + cmp r2, 0 + beq _081490D8 + mov r1, sp + ldr r2, _081490D0 @ =0x00003d27 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _081490D4 @ =0x00000295 + b _081490E6 + .align 2, 0 +_081490C8: .4byte gMain +_081490CC: .4byte gPaletteFade +_081490D0: .4byte 0x00003d27 +_081490D4: .4byte 0x00000295 +_081490D8: + mov r1, sp + movs r2, 0xC7 + lsls r2, 2 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _08149108 @ =0x00003d27 +_081490E6: + adds r0, r2, 0 + strh r0, [r1] + adds r4, r1, 0 + mov r0, sp + movs r1, 0xC + movs r2, 0x2 + bl LoadPalette + adds r0, r4, 0 + movs r1, 0xD + movs r2, 0x2 + bl LoadPalette +_08149100: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08149108: .4byte 0x00003d27 + thumb_func_end sub_8149020 + + thumb_func_start sub_814910C +sub_814910C: @ 814910C + push {lr} + adds r2, r0, 0 + ldr r0, _08149124 @ =gUnknown_0203935C + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _08149128 + adds r0, r2, 0 + bl DestroySprite + b _0814916C + .align 2, 0 +_08149124: .4byte gUnknown_0203935C +_08149128: + movs r1, 0x20 + ldrsh r0, [r2, r1] + lsls r0, 16 + ldrh r1, [r2, 0x32] + orrs r0, r1 + ldrh r1, [r2, 0x30] + adds r0, r1 + asrs r1, r0, 16 + strh r1, [r2, 0x20] + strh r0, [r2, 0x32] + cmp r1, 0xFF + ble _08149144 + ldr r0, _08149158 @ =0x0000ffe0 + strh r0, [r2, 0x20] +_08149144: + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _08149164 + ldr r1, _0814915C @ =gUnknown_02039358 + ldr r0, _08149160 @ =gUnknown_0203935A + ldrh r0, [r0] + ldrh r1, [r1] + adds r0, r1 + b _08149168 + .align 2, 0 +_08149158: .4byte 0x0000ffe0 +_0814915C: .4byte gUnknown_02039358 +_08149160: .4byte gUnknown_0203935A +_08149164: + ldr r0, _08149170 @ =gUnknown_02039358 + ldrh r0, [r0] +_08149168: + negs r0, r0 + strh r0, [r2, 0x26] +_0814916C: + pop {r0} + bx r0 + .align 2, 0 +_08149170: .4byte gUnknown_02039358 + thumb_func_end sub_814910C + + thumb_func_start sub_8149174 +sub_8149174: @ 8149174 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + str r1, [sp, 0x4] + str r2, [sp, 0x8] + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + lsls r3, 24 + lsrs r3, 24 + mov r8, r3 + movs r7, 0 + cmp r7, r8 + bcs _0814922A + ldr r0, _0814923C @ =gSprites + mov r10, r0 + movs r2, 0x3F + mov r9, r2 +_0814919E: + lsls r6, r7, 3 + ldr r0, [sp, 0x4] + adds r6, r0 + ldrb r1, [r6, 0x1] + ldrb r2, [r6, 0x2] + ldrb r3, [r6, 0x3] + ldr r0, _08149240 @ =gSpriteTemplate_8416B3C + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r5, r0, 4 + adds r5, r0 + lsls r5, 2 + mov r2, r10 + adds r4, r5, r2 + ldrb r2, [r6] + lsls r1, r2, 26 + lsrs r1, 30 + lsrs r2, 6 + adds r0, r4, 0 + movs r3, 0 + bl CalcCenterToCornerVec + ldrb r3, [r4, 0x5] + movs r0, 0xC + orrs r3, r0 + strb r3, [r4, 0x5] + ldrb r1, [r6] + lsls r1, 26 + lsrs r1, 30 + lsls r1, 6 + ldrb r2, [r4, 0x1] + mov r0, r9 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x1] + ldrb r1, [r6] + lsrs r1, 6 + lsls r1, 6 + ldrb r2, [r4, 0x3] + mov r0, r9 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x3] + movs r0, 0xF + ands r3, r0 + strb r3, [r4, 0x5] + ldr r0, _08149244 @ =gSprites + 0x8 + adds r5, r0 + ldr r2, [sp, 0x8] + str r2, [r5] + ldrb r1, [r6] + lsls r1, 28 + lsrs r1, 28 + adds r0, r4, 0 + bl StartSpriteAnim + movs r1, 0 + mov r0, sp + ldrh r0, [r0] + strh r0, [r4, 0x2E] + ldrh r0, [r6, 0x4] + strh r0, [r4, 0x30] + strh r1, [r4, 0x32] + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, r8 + bcc _0814919E +_0814922A: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0814923C: .4byte gSprites +_08149240: .4byte gSpriteTemplate_8416B3C +_08149244: .4byte gSprites + 0x8 + thumb_func_end sub_8149174 + + thumb_func_start sub_8149248 +sub_8149248: @ 8149248 + push {lr} + ldr r1, _0814925C @ =gUnknown_08416B94 + ldr r2, _08149260 @ =gSpriteAnimTable_8416B84 + movs r0, 0 + movs r3, 0x9 + bl sub_8149174 + pop {r0} + bx r0 + .align 2, 0 +_0814925C: .4byte gUnknown_08416B94 +_08149260: .4byte gSpriteAnimTable_8416B84 + thumb_func_end sub_8149248 + + thumb_func_start sub_8149264 +sub_8149264: @ 8149264 + push {lr} + ldr r1, _08149278 @ =gUnknown_08416C10 + ldr r2, _0814927C @ =gSpriteAnimTable_8416C04 + movs r0, 0x1 + movs r3, 0xC + bl sub_8149174 + pop {r0} + bx r0 + .align 2, 0 +_08149278: .4byte gUnknown_08416C10 +_0814927C: .4byte gSpriteAnimTable_8416C04 + thumb_func_end sub_8149264 + + thumb_func_start sub_8149280 +sub_8149280: @ 8149280 + push {lr} + ldr r1, _08149294 @ =gUnknown_08416C8C + ldr r2, _08149298 @ =gSpriteAnimTable_8416C88 + movs r0, 0x1 + movs r3, 0x6 + bl sub_8149174 + pop {r0} + bx r0 + .align 2, 0 +_08149294: .4byte gUnknown_08416C8C +_08149298: .4byte gSpriteAnimTable_8416C88 + thumb_func_end sub_8149280 + + thumb_func_start nullsub_82 +nullsub_82: @ 814929C + bx lr + thumb_func_end nullsub_82 + + thumb_func_start sub_81492A0 +sub_81492A0: @ 81492A0 + push {r4,lr} + ldr r4, _0814930C @ =gSprites + movs r1, 0x2E + ldrsh r2, [r0, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + adds r1, 0x3E + ldrb r1, [r1] + movs r2, 0x3E + adds r2, r0 + mov r12, r2 + movs r2, 0x4 + ands r2, r1 + mov r1, r12 + ldrb r3, [r1] + movs r1, 0x5 + negs r1, r1 + ands r1, r3 + orrs r1, r2 + mov r2, r12 + strb r1, [r2] + movs r1, 0x2E + ldrsh r2, [r0, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + ldrh r1, [r1, 0x20] + strh r1, [r0, 0x20] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + ldrh r1, [r1, 0x22] + adds r1, 0x8 + strh r1, [r0, 0x22] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + ldrh r1, [r1, 0x24] + strh r1, [r0, 0x24] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + ldrh r1, [r1, 0x26] + strh r1, [r0, 0x26] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814930C: .4byte gSprites + thumb_func_end sub_81492A0 + + thumb_func_start intro_create_brendan_sprite +intro_create_brendan_sprite: @ 8149310 + push {r4-r6,lr} + adds r5, r0, 0 + adds r4, r1, 0 + ldr r0, _0814935C @ =gSpriteTemplate_8416CDC + lsls r5, 16 + asrs r5, 16 + lsls r4, 16 + asrs r4, 16 + adds r1, r5, 0 + adds r2, r4, 0 + movs r3, 0 + bl CreateSprite + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + ldr r0, _08149360 @ =gSpriteTemplate_8416D2C + adds r4, 0x8 + lsls r4, 16 + asrs r4, 16 + adds r1, r5, 0 + adds r2, r4, 0 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08149364 @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + strh r6, [r1, 0x2E] + adds r0, r6, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0814935C: .4byte gSpriteTemplate_8416CDC +_08149360: .4byte gSpriteTemplate_8416D2C +_08149364: .4byte gSprites + thumb_func_end intro_create_brendan_sprite + + thumb_func_start intro_create_may_sprite +intro_create_may_sprite: @ 8149368 + push {r4-r6,lr} + adds r5, r0, 0 + adds r4, r1, 0 + ldr r0, _081493B4 @ =gSpriteTemplate_8416CF4 + lsls r5, 16 + asrs r5, 16 + lsls r4, 16 + asrs r4, 16 + adds r1, r5, 0 + adds r2, r4, 0 + movs r3, 0 + bl CreateSprite + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + ldr r0, _081493B8 @ =gSpriteTemplate_8416D44 + adds r4, 0x8 + lsls r4, 16 + asrs r4, 16 + adds r1, r5, 0 + adds r2, r4, 0 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, _081493BC @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + strh r6, [r1, 0x2E] + adds r0, r6, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_081493B4: .4byte gSpriteTemplate_8416CF4 +_081493B8: .4byte gSpriteTemplate_8416D44 +_081493BC: .4byte gSprites + thumb_func_end intro_create_may_sprite + + thumb_func_start nullsub_83 +nullsub_83: @ 81493C0 + bx lr + thumb_func_end nullsub_83 + + thumb_func_start sub_81493C4 +sub_81493C4: @ 81493C4 + push {r4,lr} + ldr r4, _08149420 @ =gSprites + movs r1, 0x2E + ldrsh r2, [r0, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + adds r1, 0x3E + ldrb r1, [r1] + movs r2, 0x3E + adds r2, r0 + mov r12, r2 + movs r2, 0x4 + ands r2, r1 + mov r1, r12 + ldrb r3, [r1] + movs r1, 0x5 + negs r1, r1 + ands r1, r3 + orrs r1, r2 + mov r2, r12 + strb r1, [r2] + movs r1, 0x2E + ldrsh r2, [r0, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + ldrh r1, [r1, 0x22] + strh r1, [r0, 0x22] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + ldrh r1, [r1, 0x24] + strh r1, [r0, 0x24] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + ldrh r1, [r1, 0x26] + strh r1, [r0, 0x26] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08149420: .4byte gSprites + thumb_func_end sub_81493C4 + + thumb_func_start intro_create_latios_sprite +intro_create_latios_sprite: @ 8149424 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r2, r0, 0 + adds r5, r1, 0 + ldr r0, _08149490 @ =gSpriteTemplate_8416D7C + mov r8, r0 + lsls r2, 16 + asrs r4, r2, 16 + ldr r0, _08149494 @ =0xffe00000 + adds r2, r0 + asrs r2, 16 + lsls r5, 16 + asrs r5, 16 + mov r0, r8 + adds r1, r2, 0 + adds r2, r5, 0 + movs r3, 0x2 + bl CreateSprite + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + adds r4, 0x20 + lsls r4, 16 + asrs r4, 16 + mov r0, r8 + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r5, _08149498 @ =gSprites + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + adds r0, r4, r5 + strh r6, [r0, 0x2E] + movs r1, 0x1 + bl StartSpriteAnim + adds r5, 0x1C + adds r4, r5 + ldr r0, _0814949C @ =sub_81493C4 + str r0, [r4] + adds r0, r6, 0 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08149490: .4byte gSpriteTemplate_8416D7C +_08149494: .4byte 0xffe00000 +_08149498: .4byte gSprites +_0814949C: .4byte sub_81493C4 + thumb_func_end intro_create_latios_sprite + + thumb_func_start intro_create_latias_sprite +intro_create_latias_sprite: @ 81494A0 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r2, r0, 0 + adds r5, r1, 0 + ldr r0, _0814950C @ =gSpriteTemplate_8416D94 + mov r8, r0 + lsls r2, 16 + asrs r4, r2, 16 + ldr r0, _08149510 @ =0xffe00000 + adds r2, r0 + asrs r2, 16 + lsls r5, 16 + asrs r5, 16 + mov r0, r8 + adds r1, r2, 0 + adds r2, r5, 0 + movs r3, 0x2 + bl CreateSprite + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + adds r4, 0x20 + lsls r4, 16 + asrs r4, 16 + mov r0, r8 + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r5, _08149514 @ =gSprites + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + adds r0, r4, r5 + strh r6, [r0, 0x2E] + movs r1, 0x1 + bl StartSpriteAnim + adds r5, 0x1C + adds r4, r5 + ldr r0, _08149518 @ =sub_81493C4 + str r0, [r4] + adds r0, r6, 0 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0814950C: .4byte gSpriteTemplate_8416D94 +_08149510: .4byte 0xffe00000 +_08149514: .4byte gSprites +_08149518: .4byte sub_81493C4 + thumb_func_end intro_create_latias_sprite + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/item_menu.s b/asm/item_menu.s index e2abfe960..4270b4954 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -5261,7 +5261,7 @@ sub_80A5AAC: @ 80A5AAC adds r0, r4 lsls r0, 3 adds r0, r1 - ldr r1, _080A5AE0 @ =sub_80A5B00 + ldr r1, _080A5AE0 @ =HandleItemMenuPaletteFade str r1, [r0] add sp, 0x4 pop {r4} @@ -5269,7 +5269,7 @@ sub_80A5AAC: @ 80A5AAC bx r0 .align 2, 0 _080A5ADC: .4byte gTasks -_080A5AE0: .4byte sub_80A5B00 +_080A5AE0: .4byte HandleItemMenuPaletteFade thumb_func_end sub_80A5AAC thumb_func_start sub_80A5AE4 @@ -5287,8 +5287,8 @@ sub_80A5AE4: @ 80A5AE4 bx r0 thumb_func_end sub_80A5AE4 - thumb_func_start sub_80A5B00 -sub_80A5B00: @ 80A5B00 + thumb_func_start HandleItemMenuPaletteFade +HandleItemMenuPaletteFade: @ 80A5B00 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 @@ -5318,7 +5318,7 @@ _080A5B32: .align 2, 0 _080A5B38: .4byte gTasks + 0x8 _080A5B3C: .4byte gPaletteFade - thumb_func_end sub_80A5B00 + thumb_func_end HandleItemMenuPaletteFade thumb_func_start sub_80A5B40 sub_80A5B40: @ 80A5B40 @@ -5420,7 +5420,7 @@ sub_80A5BF8: @ 80A5BF8 bl sub_80A73FC bl sub_80A7590 ldr r1, _080A5C1C @ =gOtherText_NoPokemon - ldr r2, _080A5C20 @ =sub_80A5C48 + ldr r2, _080A5C20 @ =CleanUpItemMenuMessage adds r0, r4, 0 movs r3, 0x1 bl DisplayCannotUseItemMessage @@ -5429,7 +5429,7 @@ sub_80A5BF8: @ 80A5BF8 bx r0 .align 2, 0 _080A5C1C: .4byte gOtherText_NoPokemon -_080A5C20: .4byte sub_80A5C48 +_080A5C20: .4byte CleanUpItemMenuMessage thumb_func_end sub_80A5BF8 thumb_func_start sub_80A5C24 @@ -5450,8 +5450,8 @@ sub_80A5C24: @ 80A5C24 bx r0 thumb_func_end sub_80A5C24 - thumb_func_start sub_80A5C48 -sub_80A5C48: @ 80A5C48 + thumb_func_start CleanUpItemMenuMessage +CleanUpItemMenuMessage: @ 80A5C48 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 @@ -5489,10 +5489,10 @@ sub_80A5C48: @ 80A5C48 _080A5C90: .4byte gBGTilemapBuffers + 0x800 _080A5C94: .4byte gTasks _080A5C98: .4byte sub_80A5C24 - thumb_func_end sub_80A5C48 + thumb_func_end CleanUpItemMenuMessage - thumb_func_start sub_80A5C9C -sub_80A5C9C: @ 80A5C9C + thumb_func_start CleanUpOverworldMessage +CleanUpOverworldMessage: @ 80A5C9C push {r4,lr} adds r4, r0, 0 lsls r4, 24 @@ -5509,10 +5509,10 @@ sub_80A5C9C: @ 80A5C9C pop {r4} pop {r0} bx r0 - thumb_func_end sub_80A5C9C + thumb_func_end CleanUpOverworldMessage - thumb_func_start sub_80A5CC4 -sub_80A5CC4: @ 80A5CC4 + thumb_func_start ExecuteItemUseFromBlackPalette +ExecuteItemUseFromBlackPalette: @ 80A5CC4 push {lr} bl pal_fill_black ldr r0, _080A5CD8 @ =Task_CallItemUseOnFieldCallback @@ -5522,7 +5522,7 @@ sub_80A5CC4: @ 80A5CC4 bx r0 .align 2, 0 _080A5CD8: .4byte Task_CallItemUseOnFieldCallback - thumb_func_end sub_80A5CC4 + thumb_func_end ExecuteItemUseFromBlackPalette thumb_func_start Task_CallItemUseOnFieldCallback Task_CallItemUseOnFieldCallback: @ 80A5CDC @@ -6064,7 +6064,7 @@ _080A6128: lsrs r1, r2, 16 strh r1, [r0, 0x18] strh r2, [r0, 0x1A] - ldr r1, _080A6160 @ =sub_80A5B00 + ldr r1, _080A6160 @ =HandleItemMenuPaletteFade str r1, [r0] ldr r1, _080A6164 @ =gUnknown_02038561 movs r0, 0x1 @@ -6080,7 +6080,7 @@ _080A6128: .align 2, 0 _080A6158: .4byte gTasks _080A615C: .4byte sub_808B020 -_080A6160: .4byte sub_80A5B00 +_080A6160: .4byte HandleItemMenuPaletteFade _080A6164: .4byte gUnknown_02038561 _080A6168: adds r0, r6, 0 @@ -6105,7 +6105,7 @@ sub_80A6178: @ 80A6178 adds r0, r4 lsls r0, 3 adds r0, r1 - ldr r2, _080A61A4 @ =sub_814625C + ldr r2, _080A61A4 @ =BerryTagScreen_814625C lsrs r1, r2, 16 strh r1, [r0, 0x18] strh r2, [r0, 0x1A] @@ -6114,7 +6114,7 @@ sub_80A6178: @ 80A6178 bx r0 .align 2, 0 _080A61A0: .4byte gTasks -_080A61A4: .4byte sub_814625C +_080A61A4: .4byte BerryTagScreen_814625C thumb_func_end sub_80A6178 thumb_func_start sub_80A61A8 @@ -7553,7 +7553,7 @@ sub_80A6D1C: @ 80A6D1C cmp r5, 0x1 bne _080A6D80 bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeMapObjects bl sub_80594C0 bl sub_80597F4 ldr r1, _080A6D78 @ =gScriptItemId @@ -7968,7 +7968,7 @@ sub_80A7094: @ 80A7094 movs r3, 0 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] - ldr r0, _080A70D4 @ =sub_80A5B00 + ldr r0, _080A70D4 @ =HandleItemMenuPaletteFade str r0, [r1] movs r0, 0x1 negs r0, r0 @@ -7983,7 +7983,7 @@ sub_80A7094: @ 80A7094 .align 2, 0 _080A70CC: .4byte gTasks _080A70D0: .4byte sub_802E424 -_080A70D4: .4byte sub_80A5B00 +_080A70D4: .4byte HandleItemMenuPaletteFade thumb_func_end sub_80A7094 thumb_func_start sub_80A70D8 @@ -8264,7 +8264,7 @@ _080A72F4: mov r0, r8 subs r0, 0x8 adds r0, r6, r0 - ldr r1, _080A7354 @ =sub_80A5B00 + ldr r1, _080A7354 @ =HandleItemMenuPaletteFade str r1, [r0] movs r0, 0x1 negs r0, r0 @@ -8279,7 +8279,7 @@ _080A7344: .4byte gBGTilemapBuffers + 0x800 _080A7348: .4byte gSaveBlock1 + 0x560 _080A734C: .4byte 0x0201e000 _080A7350: .4byte sub_802E424 -_080A7354: .4byte sub_80A5B00 +_080A7354: .4byte HandleItemMenuPaletteFade _080A7358: ldrh r0, [r7, 0x1E] adds r0, 0x1 @@ -9682,7 +9682,7 @@ sub_80A7CF8: @ 80A7CF8 lsrs r4, r0, 24 cmp r4, 0x2A bne _080A7D44 - bl sub_80B4940 + bl IsEnigmaBerryValid cmp r0, 0x1 bne _080A7D44 ldr r4, _080A7D34 @ =gSaveBlock1 + 0x317C diff --git a/asm/item_use.s b/asm/item_use.s index 65953583e..c4f6fb74a 100644 --- a/asm/item_use.s +++ b/asm/item_use.s @@ -6,853 +6,6 @@ .text - thumb_func_start sub_80C8FAC -sub_80C8FAC: @ 80C8FAC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080C8FD0 @ =gScriptItemId - ldrh r0, [r1] - cmp r0, 0xAF - bne _080C8FD8 - ldr r1, _080C8FD4 @ =gTasks - lsls r2, r4, 2 - adds r0, r2, r4 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x26] - subs r0, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - b _080C8FE6 - .align 2, 0 -_080C8FD0: .4byte gScriptItemId -_080C8FD4: .4byte gTasks -_080C8FD8: - ldrh r0, [r1] - bl ItemId_GetType - subs r0, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r2, r4, 2 -_080C8FE6: - ldr r0, _080C9008 @ =gTasks - adds r1, r2, r4 - lsls r1, 3 - adds r1, r0 - ldr r2, _080C900C @ =gUnknown_083D61E4 - lsls r0, r3, 2 - adds r0, r2 - ldr r2, [r0] - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - ldr r0, _080C9010 @ =sub_80A5B00 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9008: .4byte gTasks -_080C900C: .4byte gUnknown_083D61E4 -_080C9010: .4byte sub_80A5B00 - thumb_func_end sub_80C8FAC - - thumb_func_start unknown_ItemMenu_Confirm -unknown_ItemMenu_Confirm: @ 80C9014 - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - bl sub_80C8FAC - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end unknown_ItemMenu_Confirm - - thumb_func_start sub_80C9038 -sub_80C9038: @ 80C9038 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80C8FAC - movs r0, 0x1 - movs r1, 0 - bl fade_screen - pop {r0} - bx r0 - thumb_func_end sub_80C9038 - - thumb_func_start SetUpItemUseOnFieldCallback -SetUpItemUseOnFieldCallback: @ 80C9050 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080C9078 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0x1 - beq _080C9084 - ldr r1, _080C907C @ =gUnknown_0300485C - ldr r0, _080C9080 @ =sub_80A5CC4 - str r0, [r1] - adds r0, r2, 0 - bl unknown_ItemMenu_Confirm - b _080C908E - .align 2, 0 -_080C9078: .4byte gTasks -_080C907C: .4byte gUnknown_0300485C -_080C9080: .4byte sub_80A5CC4 -_080C9084: - ldr r0, _080C9094 @ =gUnknown_03005D00 - ldr r1, [r0] - adds r0, r2, 0 - bl _call_via_r1 -_080C908E: - pop {r0} - bx r0 - .align 2, 0 -_080C9094: .4byte gUnknown_03005D00 - thumb_func_end SetUpItemUseOnFieldCallback - - thumb_func_start sub_80C9098 -sub_80C9098: @ 80C9098 - push {r4-r6,lr} - adds r4, r1, 0 - adds r1, r2, 0 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _080C90CC @ =gStringVar4 - adds r0, r5, 0 - bl StringExpandPlaceholders - cmp r4, 0 - bne _080C90D4 - movs r0, 0 - movs r1, 0xD - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect - ldr r2, _080C90D0 @ =sub_80A5C48 - adds r0, r6, 0 - adds r1, r5, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField - b _080C90E0 - .align 2, 0 -_080C90CC: .4byte gStringVar4 -_080C90D0: .4byte sub_80A5C48 -_080C90D4: - ldr r2, _080C90E8 @ =sub_80A5C9C - adds r0, r6, 0 - adds r1, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_080C90E0: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C90E8: .4byte sub_80A5C9C - thumb_func_end sub_80C9098 - - thumb_func_start DisplayDadsAdviceCannotUseItemMessage -DisplayDadsAdviceCannotUseItemMessage: @ 80C90EC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080C9100 @ =gOtherText_DadsAdvice - bl sub_80C9098 - pop {r0} - bx r0 - .align 2, 0 -_080C9100: .4byte gOtherText_DadsAdvice - thumb_func_end DisplayDadsAdviceCannotUseItemMessage - - thumb_func_start sub_80C9104 -sub_80C9104: @ 80C9104 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080C9118 @ =gOtherText_CantGetOffBike - bl sub_80C9098 - pop {r0} - bx r0 - .align 2, 0 -_080C9118: .4byte gOtherText_CantGetOffBike - thumb_func_end sub_80C9104 - - thumb_func_start CheckIfItemIsTMHMOrEvolutionStone -CheckIfItemIsTMHMOrEvolutionStone: @ 80C911C - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl ItemId_GetFieldFunc - ldr r1, _080C9134 @ =ItemUseOutOfBattle_TMHM - cmp r0, r1 - bne _080C9138 - movs r0, 0x1 - b _080C914E - .align 2, 0 -_080C9134: .4byte ItemUseOutOfBattle_TMHM -_080C9138: - adds r0, r4, 0 - bl ItemId_GetFieldFunc - ldr r1, _080C9148 @ =ItemUseOutOfBattle_EvolutionStone - cmp r0, r1 - beq _080C914C - movs r0, 0 - b _080C914E - .align 2, 0 -_080C9148: .4byte ItemUseOutOfBattle_EvolutionStone -_080C914C: - movs r0, 0x2 -_080C914E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end CheckIfItemIsTMHMOrEvolutionStone - - thumb_func_start sub_80C9154 -sub_80C9154: @ 80C9154 - push {r4,lr} - sub sp, 0x24 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080C9188 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080C9180 - mov r1, sp - ldr r0, _080C918C @ =gScriptItemId - ldrh r0, [r0] - strh r0, [r1, 0x20] - ldr r1, _080C9190 @ =sub_80A5D04 - mov r0, sp - movs r2, 0 - bl sub_80F890C - adds r0, r4, 0 - bl DestroyTask -_080C9180: - add sp, 0x24 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9188: .4byte gPaletteFade -_080C918C: .4byte gScriptItemId -_080C9190: .4byte sub_80A5D04 - thumb_func_end sub_80C9154 - - thumb_func_start ItemUseOutOfBattle_Mail -ItemUseOutOfBattle_Mail: @ 80C9194 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _080C91C4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080C91C8 @ =sub_80C9154 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C91C4: .4byte gTasks -_080C91C8: .4byte sub_80C9154 - thumb_func_end ItemUseOutOfBattle_Mail - - thumb_func_start ItemUseOutOfBattle_Bike -ItemUseOutOfBattle_Bike: @ 80C91CC - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080C924C @ =0x0000082b - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C9238 - adds r0, r4, 0 - bl MetatileBehavior_IsVerticalRail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C9238 - adds r0, r4, 0 - bl MetatileBehavior_IsHorizontalRail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C9238 - adds r0, r4, 0 - bl MetatileBehavior_IsIsolatedVerticalRail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C9238 - adds r0, r4, 0 - bl MetatileBehavior_IsIsolatedHorizontalRail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C9254 -_080C9238: - ldr r0, _080C9250 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xC] - adds r0, r5, 0 - bl sub_80C9104 - b _080C928E - .align 2, 0 -_080C924C: .4byte 0x0000082b -_080C9250: .4byte gTasks -_080C9254: - bl sub_8053C44 - cmp r0, 0x1 - bne _080C927C - bl sub_80E5EF4 - lsls r0, 24 - cmp r0, 0 - bne _080C927C - ldr r1, _080C9274 @ =gUnknown_03005D00 - ldr r0, _080C9278 @ =ItemUseOnFieldCB_Bike - str r0, [r1] - adds r0, r5, 0 - bl SetUpItemUseOnFieldCallback - b _080C928E - .align 2, 0 -_080C9274: .4byte gUnknown_03005D00 -_080C9278: .4byte ItemUseOnFieldCB_Bike -_080C927C: - ldr r0, _080C9298 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xC] - adds r0, r5, 0 - bl DisplayDadsAdviceCannotUseItemMessage -_080C928E: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C9298: .4byte gTasks - thumb_func_end ItemUseOutOfBattle_Bike - - thumb_func_start ItemUseOnFieldCB_Bike -ItemUseOnFieldCB_Bike: @ 80C929C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080C92E0 @ =gScriptItemId - ldrh r0, [r4] - bl ItemId_GetSecondaryId - lsls r0, 24 - cmp r0, 0 - bne _080C92B6 - movs r0, 0x2 - bl GetOnOffBike -_080C92B6: - ldrh r0, [r4] - bl ItemId_GetSecondaryId - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C92CA - movs r0, 0x4 - bl GetOnOffBike -_080C92CA: - bl sub_8064E2C - bl ScriptContext2_Disable - adds r0, r5, 0 - bl DestroyTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C92E0: .4byte gScriptItemId - thumb_func_end ItemUseOnFieldCB_Bike - - thumb_func_start CanFish -CanFish: @ 80C92E4 - push {r4-r6,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 16 - lsrs r6, r0, 16 - lsls r0, r6, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl MetatileBehavior_IsWaterfall - lsls r0, 24 - cmp r0, 0 - bne _080C936C - movs r0, 0x10 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - bne _080C936C - movs r0, 0x8 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - bne _080C933C - bl IsPlayerFacingSurfableFishableWater - lsls r0, 24 - cmp r0, 0 - beq _080C936C -_080C9338: - movs r0, 0x1 - b _080C936E -_080C933C: - adds r0, r5, 0 - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, 24 - cmp r0, 0 - beq _080C935C - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridIsImpassableAt - lsls r0, 24 - cmp r0, 0 - beq _080C9338 -_080C935C: - lsls r0, r6, 24 - lsrs r0, 24 - bl MetatileBehavior_IsBridge - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C9338 -_080C936C: - movs r0, 0 -_080C936E: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end CanFish - - thumb_func_start ItemUseOutOfBattle_Rod -ItemUseOutOfBattle_Rod: @ 80C9378 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl CanFish - cmp r0, 0x1 - bne _080C939C - ldr r1, _080C9394 @ =gUnknown_03005D00 - ldr r0, _080C9398 @ =ItemUseOnFieldCB_Rod - str r0, [r1] - adds r0, r4, 0 - bl SetUpItemUseOnFieldCallback - b _080C93AE - .align 2, 0 -_080C9394: .4byte gUnknown_03005D00 -_080C9398: .4byte ItemUseOnFieldCB_Rod -_080C939C: - ldr r0, _080C93B4 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xC] - adds r0, r4, 0 - bl DisplayDadsAdviceCannotUseItemMessage -_080C93AE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C93B4: .4byte gTasks - thumb_func_end ItemUseOutOfBattle_Rod - - thumb_func_start ItemUseOnFieldCB_Rod -ItemUseOnFieldCB_Rod: @ 80C93B8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080C93DC @ =gScriptItemId - ldrh r0, [r0] - bl ItemId_GetSecondaryId - lsls r0, 24 - lsrs r0, 24 - bl StartFishing - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C93DC: .4byte gScriptItemId - thumb_func_end ItemUseOnFieldCB_Rod - - thumb_func_start ItemUseOutOfBattle_Itemfinder -ItemUseOutOfBattle_Itemfinder: @ 80C93E0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x27 - bl sav12_xor_increment - ldr r1, _080C9400 @ =gUnknown_03005D00 - ldr r0, _080C9404 @ =ItemUseOnFieldCB_Itemfinder - str r0, [r1] - adds r0, r4, 0 - bl SetUpItemUseOnFieldCallback - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9400: .4byte gUnknown_03005D00 -_080C9404: .4byte ItemUseOnFieldCB_Itemfinder - thumb_func_end ItemUseOutOfBattle_Itemfinder - - thumb_func_start ItemUseOnFieldCB_Itemfinder -ItemUseOnFieldCB_Itemfinder: @ 80C9408 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080C9430 @ =gMapHeader - ldr r0, [r0, 0x4] - adds r1, r4, 0 - bl ItemfinderCheckForHiddenItems - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C943C - ldr r0, _080C9434 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080C9438 @ =sub_80C9458 - str r0, [r1] - b _080C9448 - .align 2, 0 -_080C9430: .4byte gMapHeader -_080C9434: .4byte gTasks -_080C9438: .4byte sub_80C9458 -_080C943C: - ldr r1, _080C9450 @ =gOtherText_NoResponse - ldr r2, _080C9454 @ =sub_80C9520 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_080C9448: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9450: .4byte gOtherText_NoResponse -_080C9454: .4byte sub_80C9520 - thumb_func_end ItemUseOnFieldCB_Itemfinder - - thumb_func_start sub_80C9458 -sub_80C9458: @ 80C9458 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r6, r5, 2 - adds r0, r6, r5 - lsls r7, r0, 3 - ldr r0, _080C94AC @ =gTasks + 0x8 - mov r8, r0 - adds r4, r7, r0 - movs r1, 0x6 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080C950C - movs r2, 0x8 - ldrsh r0, [r4, r2] - cmp r0, 0x4 - bne _080C9500 - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - bl sub_80C9908 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _080C94B8 - ldr r1, _080C94B0 @ =gUnknown_083D61F0 - subs r0, 0x1 - adds r0, r1 - ldrb r0, [r0] - bl sub_80C997C - mov r0, r8 - subs r0, 0x8 - adds r0, r7, r0 - ldr r1, _080C94B4 @ =sub_80C99EC - str r1, [r0] - b _080C9516 - .align 2, 0 -_080C94AC: .4byte gTasks + 0x8 -_080C94B0: .4byte gUnknown_083D61F0 -_080C94B4: .4byte sub_80C99EC -_080C94B8: - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - adds r3, r6, 0 - ldr r7, _080C94F4 @ =gUnknown_083D61F0 - movs r6, 0x3 -_080C94C8: - adds r0, r1, r7 - adds r1, 0x1 - ldrb r0, [r0] - cmp r2, r0 - bne _080C94D8 - adds r0, r1, 0 - ands r0, r6 - strh r0, [r4, 0xA] -_080C94D8: - lsls r0, r1, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _080C94C8 - ldr r1, _080C94F8 @ =gTasks - adds r0, r3, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080C94FC @ =sub_80C9A38 - str r1, [r0] - movs r0, 0 - strh r0, [r4, 0x6] - strh r0, [r4, 0x4] - b _080C9516 - .align 2, 0 -_080C94F4: .4byte gUnknown_083D61F0 -_080C94F8: .4byte gTasks -_080C94FC: .4byte sub_80C9A38 -_080C9500: - movs r0, 0x48 - bl PlaySE - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080C950C: - ldrh r0, [r4, 0x6] - adds r0, 0x1 - movs r1, 0x1F - ands r0, r1 - strh r0, [r4, 0x6] -_080C9516: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80C9458 - - thumb_func_start sub_80C9520 -sub_80C9520: @ 80C9520 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - bl sub_8064E2C - bl ScriptContext2_Disable - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C9520 - - thumb_func_start ItemfinderCheckForHiddenItems -ItemfinderCheckForHiddenItems: @ 80C9548 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - adds r5, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - ldr r1, _080C9618 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - movs r3, 0 - mov r9, r4 - ldrb r0, [r5, 0x3] - cmp r3, r0 - bge _080C95FC - subs r1, 0x5 - mov r8, r1 -_080C9580: - lsls r3, 16 - asrs r1, r3, 16 - ldr r2, [r5, 0x10] - lsls r0, r1, 1 - adds r0, r1 - lsls r4, r0, 2 - adds r1, r4, r2 - ldrb r0, [r1, 0x5] - adds r7, r3, 0 - cmp r0, 0x7 - bne _080C95EC - movs r2, 0x96 - lsls r2, 2 - adds r0, r2, 0 - ldrh r1, [r1, 0xA] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _080C95EC - ldr r1, [r5, 0x10] - adds r1, r4, r1 - ldrh r2, [r1] - adds r2, 0x7 - mov r0, sp - ldrh r0, [r0] - subs r2, r0 - ldrh r0, [r1, 0x2] - adds r0, 0x7 - mov r3, r9 - ldrh r1, [r3] - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - lsls r2, 16 - asrs r1, r2, 16 - movs r3, 0xE0 - lsls r3, 11 - adds r2, r3 - lsrs r2, 16 - cmp r2, 0xE - bhi _080C95EC - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, r8 - blt _080C95EC - cmp r2, 0x5 - bgt _080C95EC - adds r0, r6, 0 - bl sub_80C9838 -_080C95EC: - movs r1, 0x80 - lsls r1, 9 - adds r0, r7, r1 - lsrs r3, r0, 16 - asrs r0, 16 - ldrb r2, [r5, 0x3] - cmp r0, r2 - blt _080C9580 -_080C95FC: - adds r0, r6, 0 - bl sub_80C9720 - ldr r0, _080C9618 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0x1 - beq _080C961C - movs r0, 0 - b _080C961E - .align 2, 0 -_080C9618: .4byte gTasks -_080C961C: - movs r0, 0x1 -_080C961E: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end ItemfinderCheckForHiddenItems - thumb_func_start sub_80C962C sub_80C962C: @ 80C962C push {r4-r6,lr} @@ -1259,8 +412,8 @@ _080C98FA: bx r0 thumb_func_end sub_80C9838 - thumb_func_start sub_80C9908 -sub_80C9908: @ 80C9908 + thumb_func_start GetPlayerDirectionTowardsHiddenItem +GetPlayerDirectionTowardsHiddenItem: @ 80C9908 push {r4,r5,lr} lsls r0, 16 lsls r1, 16 @@ -1331,10 +484,10 @@ _080C9976: pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_80C9908 + thumb_func_end GetPlayerDirectionTowardsHiddenItem - thumb_func_start sub_80C997C -sub_80C997C: @ 80C997C + thumb_func_start SetPlayerDirectionTowardsItem +SetPlayerDirectionTowardsItem: @ 80C997C push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 @@ -1375,7 +528,7 @@ sub_80C997C: @ 80C997C adds r0, r1 lsls r0, 2 adds r0, r4 - bl npc_sync_anim_pause_bits + bl UnfreezeMapObject adds r0, r5, 0 bl PlayerTurnInPlace pop {r4,r5} @@ -1383,10 +536,10 @@ sub_80C997C: @ 80C997C bx r0 .align 2, 0 _080C99E8: .4byte gMapObjects - thumb_func_end sub_80C997C + thumb_func_end SetPlayerDirectionTowardsItem - thumb_func_start sub_80C99EC -sub_80C99EC: @ 80C99EC + thumb_func_start DisplayItemRespondingMessageAndExitItemfinder +DisplayItemRespondingMessageAndExitItemfinder: @ 80C99EC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 @@ -1408,7 +561,7 @@ sub_80C99EC: @ 80C99EC cmp r0, 0x1 bne _080C9A24 ldr r1, _080C9A30 @ =gOtherText_ItemfinderResponding - ldr r2, _080C9A34 @ =sub_80C9520 + ldr r2, _080C9A34 @ =ExitItemfinder adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField @@ -1419,11 +572,11 @@ _080C9A24: .align 2, 0 _080C9A2C: .4byte gMapObjects _080C9A30: .4byte gOtherText_ItemfinderResponding -_080C9A34: .4byte sub_80C9520 - thumb_func_end sub_80C99EC +_080C9A34: .4byte ExitItemfinder + thumb_func_end DisplayItemRespondingMessageAndExitItemfinder - thumb_func_start sub_80C9A38 -sub_80C9A38: @ 80C9A38 + thumb_func_start RotatePlayerAndExitItemfinder +RotatePlayerAndExitItemfinder: @ 80C9A38 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -1455,12 +608,12 @@ sub_80C9A38: @ 80C9A38 cmp r0, 0 bne _080C9AAE _080C9A78: - ldr r1, _080C9ABC @ =gUnknown_083D61F0 + ldr r1, _080C9ABC @ =gItemFinderDirections movs r2, 0xA ldrsh r0, [r4, r2] adds r0, r1 ldrb r0, [r0] - bl sub_80C997C + bl SetPlayerDirectionTowardsItem movs r0, 0x1 strh r0, [r4, 0x4] ldrh r0, [r4, 0xA] @@ -1475,8 +628,8 @@ _080C9A78: asrs r0, 16 cmp r0, 0x4 bne _080C9AAE - ldr r1, _080C9AC0 @ =gOtherText_ItemfinderFoundItem - ldr r2, _080C9AC4 @ =sub_80C9520 + ldr r1, _080C9AC0 @ =gOtherText_ItemfinderItemUnderfoot + ldr r2, _080C9AC4 @ =ExitItemfinder adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField @@ -1487,10 +640,10 @@ _080C9AAE: .align 2, 0 _080C9AB4: .4byte gTasks + 0x8 _080C9AB8: .4byte gMapObjects -_080C9ABC: .4byte gUnknown_083D61F0 -_080C9AC0: .4byte gOtherText_ItemfinderFoundItem -_080C9AC4: .4byte sub_80C9520 - thumb_func_end sub_80C9A38 +_080C9ABC: .4byte gItemFinderDirections +_080C9AC0: .4byte gOtherText_ItemfinderItemUnderfoot +_080C9AC4: .4byte ExitItemfinder + thumb_func_end RotatePlayerAndExitItemfinder thumb_func_start ItemUseOutOfBattle_PokeblockCase ItemUseOutOfBattle_PokeblockCase: @ 80C9AC8 @@ -1527,7 +680,7 @@ _080C9AF4: movs r0, 0 bl sub_810BA7C adds r0, r4, 0 - bl unknown_ItemMenu_Confirm + bl ItemMenu_ConfirmNormalFade b _080C9B2A .align 2, 0 _080C9B14: .4byte gTasks @@ -1538,7 +691,7 @@ _080C9B18: movs r0, 0x1 bl sub_810BA7C adds r0, r5, 0 - bl sub_80C9038 + bl ItemMenu_ConfirmComplexFade _080C9B2A: pop {r4,r5} pop {r0} @@ -1580,7 +733,7 @@ ItemUseOutOfBattle_CoinCase: @ 80C9B38 movs r2, 0xD movs r3, 0x14 bl MenuZeroFillWindowRect - ldr r2, _080C9B9C @ =sub_80A5C48 + ldr r2, _080C9B9C @ =CleanUpItemMenuMessage adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 @@ -1591,9 +744,9 @@ _080C9B8C: .4byte gStringVar1 _080C9B90: .4byte gStringVar4 _080C9B94: .4byte gOtherText_Coins3 _080C9B98: .4byte gTasks -_080C9B9C: .4byte sub_80A5C48 +_080C9B9C: .4byte CleanUpItemMenuMessage _080C9BA0: - ldr r2, _080C9BB4 @ =sub_80A5C9C + ldr r2, _080C9BB4 @ =CleanUpOverworldMessage adds r0, r5, 0 adds r1, r4, 0 movs r3, 0 @@ -1603,7 +756,7 @@ _080C9BAC: pop {r0} bx r0 .align 2, 0 -_080C9BB4: .4byte sub_80A5C9C +_080C9BB4: .4byte CleanUpOverworldMessage thumb_func_end ItemUseOutOfBattle_CoinCase thumb_func_start sub_80C9BB8 @@ -1618,7 +771,7 @@ sub_80C9BB8: @ 80C9BB8 cmp r0, 0 beq _080C9BD0 adds r0, r2, 0 - bl sub_80A5C48 + bl CleanUpItemMenuMessage _080C9BD0: pop {r0} bx r0 @@ -1638,7 +791,7 @@ sub_80C9BD8: @ 80C9BD8 cmp r0, 0 beq _080C9BF0 adds r0, r2, 0 - bl sub_80A5C9C + bl CleanUpOverworldMessage _080C9BF0: pop {r0} bx r0 @@ -1721,7 +874,7 @@ sub_80C9C7C: @ 80C9C7C ldr r0, _080C9CCC @ =sub_80C9D00 str r0, [r1] ldr r1, _080C9CD0 @ =gUnknown_0300485C - ldr r0, _080C9CD4 @ =sub_80A5CC4 + ldr r0, _080C9CD4 @ =ExecuteItemUseFromBlackPalette str r0, [r1] ldr r1, _080C9CD8 @ =gTasks lsls r0, r4, 2 @@ -1733,7 +886,7 @@ sub_80C9C7C: @ 80C9C7C movs r3, 0 strh r1, [r0, 0x18] strh r2, [r0, 0x1A] - ldr r1, _080C9CE0 @ =sub_80A5B00 + ldr r1, _080C9CE0 @ =HandleItemMenuPaletteFade str r1, [r0] movs r0, 0x1 negs r0, r0 @@ -1747,10 +900,10 @@ sub_80C9C7C: @ 80C9C7C _080C9CC8: .4byte gUnknown_03005D00 _080C9CCC: .4byte sub_80C9D00 _080C9CD0: .4byte gUnknown_0300485C -_080C9CD4: .4byte sub_80A5CC4 +_080C9CD4: .4byte ExecuteItemUseFromBlackPalette _080C9CD8: .4byte gTasks _080C9CDC: .4byte c2_exit_to_overworld_2_switch -_080C9CE0: .4byte sub_80A5B00 +_080C9CE0: .4byte HandleItemMenuPaletteFade _080C9CE4: ldr r0, _080C9CFC @ =gScriptItemId ldrh r0, [r0] @@ -1795,7 +948,7 @@ ItemUseOutOfBattle_WailmerPail: @ 80C9D30 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl WaterBerryTree + bl TryToWaterBerryTree lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1852,7 +1005,7 @@ sub_80C9D98: @ 80C9D98 ldr r2, _080C9DAC @ =gUnknown_02038561 movs r1, 0 strb r1, [r2] - bl unknown_ItemMenu_Confirm + bl ItemMenu_ConfirmNormalFade pop {r0} bx r0 .align 2, 0 @@ -1865,14 +1018,14 @@ ItemUseOutOfBattle_Medicine: @ 80C9DB0 lsls r0, 24 lsrs r0, 24 ldr r2, _080C9DC4 @ =gUnknown_03004AE4 - ldr r1, _080C9DC8 @ =sub_806FE2C + ldr r1, _080C9DC8 @ =UseMedicine str r1, [r2] bl sub_80C9D98 pop {r0} bx r0 .align 2, 0 _080C9DC4: .4byte gUnknown_03004AE4 -_080C9DC8: .4byte sub_806FE2C +_080C9DC8: .4byte UseMedicine thumb_func_end ItemUseOutOfBattle_Medicine thumb_func_start ItemUseOutOfBattle_SacredAsh @@ -1919,7 +1072,7 @@ _080C9E10: movs r0, 0x4 strb r0, [r1] adds r0, r6, 0 - bl unknown_ItemMenu_Confirm + bl ItemMenu_ConfirmNormalFade pop {r4-r6} pop {r0} bx r0 @@ -1937,14 +1090,14 @@ ItemUseOutOfBattle_PPRecovery: @ 80C9E3C lsls r0, 24 lsrs r0, 24 ldr r2, _080C9E50 @ =gUnknown_03004AE4 - ldr r1, _080C9E54 @ =dp05_ether + ldr r1, _080C9E54 @ =DoPPRecoveryItemEffect str r1, [r2] bl sub_80C9D98 pop {r0} bx r0 .align 2, 0 _080C9E50: .4byte gUnknown_03004AE4 -_080C9E54: .4byte dp05_ether +_080C9E54: .4byte DoPPRecoveryItemEffect thumb_func_end ItemUseOutOfBattle_PPRecovery thumb_func_start ItemUseOutOfBattle_PPUp @@ -1953,14 +1106,14 @@ ItemUseOutOfBattle_PPUp: @ 80C9E58 lsls r0, 24 lsrs r0, 24 ldr r2, _080C9E6C @ =gUnknown_03004AE4 - ldr r1, _080C9E70 @ =dp05_pp_up + ldr r1, _080C9E70 @ =DoPPUpItemEffect str r1, [r2] bl sub_80C9D98 pop {r0} bx r0 .align 2, 0 _080C9E6C: .4byte gUnknown_03004AE4 -_080C9E70: .4byte dp05_pp_up +_080C9E70: .4byte DoPPUpItemEffect thumb_func_end ItemUseOutOfBattle_PPUp thumb_func_start ItemUseOutOfBattle_RareCandy @@ -1969,14 +1122,14 @@ ItemUseOutOfBattle_RareCandy: @ 80C9E74 lsls r0, 24 lsrs r0, 24 ldr r2, _080C9E88 @ =gUnknown_03004AE4 - ldr r1, _080C9E8C @ =sub_8070680 + ldr r1, _080C9E8C @ =DoRareCandyItemEffect str r1, [r2] bl sub_80C9D98 pop {r0} bx r0 .align 2, 0 _080C9E88: .4byte gUnknown_03004AE4 -_080C9E8C: .4byte sub_8070680 +_080C9E8C: .4byte DoRareCandyItemEffect thumb_func_end ItemUseOutOfBattle_RareCandy thumb_func_start ItemUseOutOfBattle_TMHM @@ -2132,14 +1285,14 @@ sub_80C9FC0: @ 80C9FC0 lsls r0, 24 lsrs r0, 24 ldr r2, _080C9FD4 @ =gUnknown_03004AE4 - ldr r1, _080C9FD8 @ =sub_806F06C + ldr r1, _080C9FD8 @ =TeachMonTMMove str r1, [r2] bl sub_80C9D98 pop {r0} bx r0 .align 2, 0 _080C9FD4: .4byte gUnknown_03004AE4 -_080C9FD8: .4byte sub_806F06C +_080C9FD8: .4byte TeachMonTMMove thumb_func_end sub_80C9FC0 thumb_func_start sub_80C9FDC @@ -2187,7 +1340,7 @@ ItemUseOutOfBattle_Repel: @ 80CA014 bl VarSet bl sub_80C9FDC ldr r1, _080CA058 @ =gStringVar4 - ldr r2, _080CA05C @ =sub_80A5C48 + ldr r2, _080CA05C @ =CleanUpItemMenuMessage adds r0, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField @@ -2196,10 +1349,10 @@ ItemUseOutOfBattle_Repel: @ 80CA014 _080CA050: .4byte 0x00004021 _080CA054: .4byte gScriptItemId _080CA058: .4byte gStringVar4 -_080CA05C: .4byte sub_80A5C48 +_080CA05C: .4byte CleanUpItemMenuMessage _080CA060: ldr r1, _080CA074 @ =gOtherText_RepelLingers - ldr r2, _080CA078 @ =sub_80A5C48 + ldr r2, _080CA078 @ =CleanUpItemMenuMessage adds r0, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField @@ -2209,7 +1362,7 @@ _080CA06C: bx r0 .align 2, 0 _080CA074: .4byte gOtherText_RepelLingers -_080CA078: .4byte sub_80A5C48 +_080CA078: .4byte CleanUpItemMenuMessage thumb_func_end ItemUseOutOfBattle_Repel thumb_func_start sub_80CA07C @@ -2247,7 +1400,7 @@ sub_80CA098: @ 80CA098 movs r0, 0x75 bl PlaySE ldr r1, _080CA0D4 @ =gStringVar4 - ldr r2, _080CA0D8 @ =sub_80A5C48 + ldr r2, _080CA0D8 @ =CleanUpItemMenuMessage adds r0, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField @@ -2258,7 +1411,7 @@ _080CA0C8: .align 2, 0 _080CA0D0: .4byte gTasks _080CA0D4: .4byte gStringVar4 -_080CA0D8: .4byte sub_80A5C48 +_080CA0D8: .4byte CleanUpItemMenuMessage thumb_func_end sub_80CA098 thumb_func_start ItemUseOutOfBattle_BlackWhiteFlute @@ -2428,14 +1581,14 @@ ItemUseOutOfBattle_EvolutionStone: @ 80CA228 lsls r0, 24 lsrs r0, 24 ldr r2, _080CA23C @ =gUnknown_03004AE4 - ldr r1, _080CA240 @ =sub_8070DBC + ldr r1, _080CA240 @ =DoEvolutionStoneItemEffect str r1, [r2] bl sub_80C9D98 pop {r0} bx r0 .align 2, 0 _080CA23C: .4byte gUnknown_03004AE4 -_080CA240: .4byte sub_8070DBC +_080CA240: .4byte DoEvolutionStoneItemEffect thumb_func_end ItemUseOutOfBattle_EvolutionStone thumb_func_start ItemUseInBattle_PokeBall @@ -2463,7 +1616,7 @@ _080CA26C: movs r3, 0x14 bl MenuZeroFillWindowRect ldr r1, _080CA28C @ =gOtherText_BoxIsFull - ldr r2, _080CA290 @ =sub_80A5C48 + ldr r2, _080CA290 @ =CleanUpItemMenuMessage adds r0, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField @@ -2473,7 +1626,7 @@ _080CA284: bx r0 .align 2, 0 _080CA28C: .4byte gOtherText_BoxIsFull -_080CA290: .4byte sub_80A5C48 +_080CA290: .4byte CleanUpItemMenuMessage thumb_func_end ItemUseInBattle_PokeBall thumb_func_start sub_80CA294 @@ -2573,7 +1726,7 @@ ItemUseInBattle_StatIncrease: @ 80CA310 cmp r2, 0 beq _080CA374 ldr r1, _080CA36C @ =gOtherText_WontHaveAnyEffect - ldr r2, _080CA370 @ =sub_80A5C48 + ldr r2, _080CA370 @ =CleanUpItemMenuMessage adds r0, r5, 0 movs r3, 0x1 bl DisplayItemMessageOnField @@ -2584,7 +1737,7 @@ _080CA360: .4byte gUnknown_02024E6C _080CA364: .4byte gPlayerParty _080CA368: .4byte gScriptItemId _080CA36C: .4byte gOtherText_WontHaveAnyEffect -_080CA370: .4byte sub_80A5C48 +_080CA370: .4byte CleanUpItemMenuMessage _080CA374: ldr r0, _080CA38C @ =gTasks lsls r1, r5, 2 @@ -2660,14 +1813,14 @@ ItemUseInBattle_Medicine: @ 80CA3F4 lsls r0, 24 lsrs r0, 24 ldr r2, _080CA408 @ =gUnknown_03004AE4 - ldr r1, _080CA40C @ =sub_806FE2C + ldr r1, _080CA40C @ =UseMedicine str r1, [r2] bl sub_80CA3C0 pop {r0} bx r0 .align 2, 0 _080CA408: .4byte gUnknown_03004AE4 -_080CA40C: .4byte sub_806FE2C +_080CA40C: .4byte UseMedicine thumb_func_end ItemUseInBattle_Medicine thumb_func_start unref_sub_80CA410 @@ -2692,14 +1845,14 @@ ItemUseInBattle_PPRecovery: @ 80CA42C lsls r0, 24 lsrs r0, 24 ldr r2, _080CA440 @ =gUnknown_03004AE4 - ldr r1, _080CA444 @ =dp05_ether + ldr r1, _080CA444 @ =DoPPRecoveryItemEffect str r1, [r2] bl sub_80CA3C0 pop {r0} bx r0 .align 2, 0 _080CA440: .4byte gUnknown_03004AE4 -_080CA444: .4byte dp05_ether +_080CA444: .4byte DoPPRecoveryItemEffect thumb_func_end ItemUseInBattle_PPRecovery thumb_func_start unref_sub_80CA448 @@ -2745,7 +1898,7 @@ _080CA4A4: .4byte gOtherText_SnapConfusion _080CA4A8: .4byte sub_80A7094 _080CA4AC: ldr r1, _080CA4C0 @ =gOtherText_WontHaveAnyEffect - ldr r2, _080CA4C4 @ =sub_80A5C48 + ldr r2, _080CA4C4 @ =CleanUpItemMenuMessage adds r0, r5, 0 movs r3, 0x1 bl DisplayItemMessageOnField @@ -2755,7 +1908,7 @@ _080CA4B8: bx r0 .align 2, 0 _080CA4C0: .4byte gOtherText_WontHaveAnyEffect -_080CA4C4: .4byte sub_80A5C48 +_080CA4C4: .4byte CleanUpItemMenuMessage thumb_func_end unref_sub_80CA448 thumb_func_start ItemUseInBattle_Escape @@ -2768,7 +1921,7 @@ ItemUseInBattle_Escape: @ 80CA4C8 movs r2, 0xD movs r3, 0x14 bl MenuZeroFillWindowRect - ldr r0, _080CA4F8 @ =gUnknown_020239F8 + ldr r0, _080CA4F8 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x8 ands r0, r1 @@ -2782,7 +1935,7 @@ ItemUseInBattle_Escape: @ 80CA4C8 bl DisplayItemMessageOnField b _080CA516 .align 2, 0 -_080CA4F8: .4byte gUnknown_020239F8 +_080CA4F8: .4byte gBattleTypeFlags _080CA4FC: .4byte gStringVar4 _080CA500: .4byte sub_80A7094 _080CA504: @@ -2809,7 +1962,7 @@ ItemUseOutOfBattle_EnigmaBerry: @ 80CA520 lsrs r4, r0, 24 ldr r0, _080CA544 @ =gScriptItemId ldrh r0, [r0] - bl sub_8070E48 + bl GetItemEffectType lsls r0, 24 lsrs r0, 24 subs r0, 0x1 @@ -2938,7 +2091,7 @@ ItemUseInBattle_EnigmaBerry: @ 80CA64C lsrs r4, r0, 24 ldr r0, _080CA66C @ =gScriptItemId ldrh r0, [r0] - bl sub_8070E48 + bl GetItemEffectType lsls r0, 24 lsrs r0, 24 cmp r0, 0x15 diff --git a/asm/load_save.s b/asm/load_save.s deleted file mode 100644 index 09a9ea969..000000000 --- a/asm/load_save.s +++ /dev/null @@ -1,444 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start CheckForFlashMemory -CheckForFlashMemory: @ 80479CC - push {lr} - bl IdentifyFlash - lsls r0, 16 - cmp r0, 0 - bne _080479E8 - ldr r1, _080479E4 @ =gUnknown_3004820 - movs r0, 0x1 - str r0, [r1] - bl InitFlashTimer - b _080479EE - .align 2, 0 -_080479E4: .4byte gUnknown_3004820 -_080479E8: - ldr r1, _080479F4 @ =gUnknown_3004820 - movs r0, 0 - str r0, [r1] -_080479EE: - pop {r0} - bx r0 - .align 2, 0 -_080479F4: .4byte gUnknown_3004820 - thumb_func_end CheckForFlashMemory - - thumb_func_start sub_80479F8 -sub_80479F8: @ 80479F8 - ldr r0, _08047A00 @ =gSaveBlock2 - ldrb r0, [r0, 0x9] - bx lr - .align 2, 0 -_08047A00: .4byte gSaveBlock2 - thumb_func_end sub_80479F8 - - thumb_func_start sub_8047A04 -sub_8047A04: @ 8047A04 - ldr r1, _08047A0C @ =gSaveBlock2 - movs r0, 0 - strb r0, [r1, 0x9] - bx lr - .align 2, 0 -_08047A0C: .4byte gSaveBlock2 - thumb_func_end sub_8047A04 - - thumb_func_start sub_8047A10 -sub_8047A10: @ 8047A10 - ldr r1, _08047A18 @ =gSaveBlock2 - movs r0, 0x1 - strb r0, [r1, 0x9] - bx lr - .align 2, 0 -_08047A18: .4byte gSaveBlock2 - thumb_func_end sub_8047A10 - - thumb_func_start sub_8047A1C -sub_8047A1C: @ 8047A1C - push {lr} - movs r0, 0 - bl gpu_sync_bg_hide - ldr r1, _08047A30 @ =gSaveBlock2 - movs r0, 0x1 - strb r0, [r1, 0x9] - pop {r0} - bx r0 - .align 2, 0 -_08047A30: .4byte gSaveBlock2 - thumb_func_end sub_8047A1C - - thumb_func_start sub_8047A34 -sub_8047A34: @ 8047A34 - ldr r1, _08047A3C @ =gSaveBlock2 - movs r0, 0 - strb r0, [r1, 0x9] - bx lr - .align 2, 0 -_08047A3C: .4byte gSaveBlock2 - thumb_func_end sub_8047A34 - - thumb_func_start sub_8047A40 -sub_8047A40: @ 8047A40 - push {r4-r6,lr} - ldr r2, _08047A78 @ =gSaveBlock1 - ldr r0, _08047A7C @ =gPlayerPartyCount - ldrb r1, [r0] - movs r3, 0x8D - lsls r3, 2 - adds r0, r2, r3 - strb r1, [r0] - movs r6, 0 - movs r0, 0x8E - lsls r0, 2 - adds r5, r2, r0 - movs r4, 0 -_08047A5A: - ldr r1, _08047A80 @ =gPlayerParty - adds r1, r4, r1 - adds r0, r5, 0 - movs r2, 0x64 - bl memcpy - adds r5, 0x64 - adds r4, 0x64 - adds r6, 0x1 - cmp r6, 0x5 - ble _08047A5A - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08047A78: .4byte gSaveBlock1 -_08047A7C: .4byte gPlayerPartyCount -_08047A80: .4byte gPlayerParty - thumb_func_end sub_8047A40 - - thumb_func_start copy_player_party_from_sav1 -copy_player_party_from_sav1: @ 8047A84 - push {r4-r6,lr} - ldr r0, _08047AC0 @ =gPlayerPartyCount - ldr r1, _08047AC4 @ =gSaveBlock1 - movs r2, 0x8D - lsls r2, 2 - adds r1, r2 - ldrb r1, [r1] - strb r1, [r0] - ldr r4, _08047AC8 @ =gPlayerParty - movs r5, 0 - movs r0, 0xFA - lsls r0, 1 - adds r6, r4, r0 -_08047A9E: - ldr r1, _08047AC4 @ =gSaveBlock1 - adds r1, r5, r1 - movs r2, 0x8E - lsls r2, 2 - adds r1, r2 - adds r0, r4, 0 - movs r2, 0x64 - bl memcpy - adds r4, 0x64 - adds r5, 0x64 - cmp r4, r6 - ble _08047A9E - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08047AC0: .4byte gPlayerPartyCount -_08047AC4: .4byte gSaveBlock1 -_08047AC8: .4byte gPlayerParty - thumb_func_end copy_player_party_from_sav1 - - thumb_func_start sub_8047ACC -sub_8047ACC: @ 8047ACC - push {r4-r7,lr} - ldr r0, _08047AFC @ =gSaveBlock1 - ldr r4, _08047B00 @ =gMapObjects - movs r1, 0x9E - lsls r1, 4 - adds r3, r0, r1 - movs r2, 0xF -_08047ADA: - adds r1, r3, 0 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r4, 0x24 - adds r3, 0x24 - subs r2, 0x1 - cmp r2, 0 - bge _08047ADA - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08047AFC: .4byte gSaveBlock1 -_08047B00: .4byte gMapObjects - thumb_func_end sub_8047ACC - - thumb_func_start save_deserialize_npcs -save_deserialize_npcs: @ 8047B04 - push {r4-r7,lr} - ldr r0, _08047B34 @ =gSaveBlock1 - movs r1, 0x9E - lsls r1, 4 - adds r4, r0, r1 - ldr r3, _08047B38 @ =gMapObjects - movs r2, 0xF -_08047B12: - adds r1, r3, 0 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r4, 0x24 - adds r3, 0x24 - subs r2, 0x1 - cmp r2, 0 - bge _08047B12 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08047B34: .4byte gSaveBlock1 -_08047B38: .4byte gMapObjects - thumb_func_end save_deserialize_npcs - - thumb_func_start save_serialize_game -save_serialize_game: @ 8047B3C - push {lr} - bl sub_8047A40 - bl sub_8047ACC - pop {r0} - bx r0 - thumb_func_end save_serialize_game - - thumb_func_start save_deserialize_game -save_deserialize_game: @ 8047B4C - push {lr} - bl copy_player_party_from_sav1 - bl save_deserialize_npcs - pop {r0} - bx r0 - thumb_func_end save_deserialize_game - - thumb_func_start copy_bags_and_unk_data_from_save_blocks -copy_bags_and_unk_data_from_save_blocks: @ 8047B5C - push {r4-r7,lr} - ldr r0, _08047C0C @ =gSaveBlock1 - movs r1, 0xAC - lsls r1, 3 - adds r3, r0, r1 - ldr r1, _08047C10 @ =gUnknown_020291F4 - movs r2, 0x13 -_08047B6A: - ldm r3!, {r0} - stm r1!, {r0} - subs r2, 0x1 - cmp r2, 0 - bge _08047B6A - ldr r1, _08047C10 @ =gUnknown_020291F4 - ldr r0, _08047C0C @ =gSaveBlock1 - movs r2, 0xB6 - lsls r2, 3 - adds r3, r0, r2 - adds r1, 0x50 - movs r2, 0x13 -_08047B82: - ldm r3!, {r0} - stm r1!, {r0} - subs r2, 0x1 - cmp r2, 0 - bge _08047B82 - ldr r1, _08047C10 @ =gUnknown_020291F4 - ldr r0, _08047C0C @ =gSaveBlock1 - movs r5, 0xC0 - lsls r5, 3 - adds r3, r0, r5 - adds r1, 0xA0 - movs r2, 0xF -_08047B9A: - ldm r3!, {r0} - stm r1!, {r0} - subs r2, 0x1 - cmp r2, 0 - bge _08047B9A - ldr r1, _08047C10 @ =gUnknown_020291F4 - ldr r0, _08047C0C @ =gSaveBlock1 - movs r6, 0xC8 - lsls r6, 3 - adds r3, r0, r6 - adds r1, 0xE0 - movs r2, 0x3F -_08047BB2: - ldm r3!, {r0} - stm r1!, {r0} - subs r2, 0x1 - cmp r2, 0 - bge _08047BB2 - ldr r1, _08047C10 @ =gUnknown_020291F4 - ldr r0, _08047C0C @ =gSaveBlock1 - movs r7, 0xE8 - lsls r7, 3 - adds r3, r0, r7 - movs r0, 0xF0 - lsls r0, 1 - adds r1, r0 - movs r2, 0x2D -_08047BCE: - ldm r3!, {r0} - stm r1!, {r0} - subs r2, 0x1 - cmp r2, 0 - bge _08047BCE - ldr r0, _08047C10 @ =gUnknown_020291F4 - ldr r4, _08047C0C @ =gSaveBlock1 - movs r1, 0xA6 - lsls r1, 2 - adds r3, r0, r1 - ldr r2, _08047C14 @ =0x00002b4c - mov r12, r2 - movs r2, 0xF -_08047BE8: - adds r1, r3, 0 - mov r5, r12 - adds r0, r4, r5 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r4, 0x24 - adds r3, 0x24 - subs r2, 0x1 - cmp r2, 0 - bge _08047BE8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08047C0C: .4byte gSaveBlock1 -_08047C10: .4byte gUnknown_020291F4 -_08047C14: .4byte 0x00002b4c - thumb_func_end copy_bags_and_unk_data_from_save_blocks - - thumb_func_start copy_bags_and_unk_data_to_save_blocks -copy_bags_and_unk_data_to_save_blocks: @ 8047C18 - push {r4-r7,lr} - ldr r0, _08047CCC @ =gSaveBlock1 - ldr r3, _08047CD0 @ =gUnknown_020291F4 - movs r2, 0xAC - lsls r2, 3 - adds r1, r0, r2 - movs r2, 0x13 -_08047C26: - ldm r3!, {r0} - stm r1!, {r0} - subs r2, 0x1 - cmp r2, 0 - bge _08047C26 - ldr r1, _08047CCC @ =gSaveBlock1 - ldr r0, _08047CD0 @ =gUnknown_020291F4 - adds r3, r0, 0 - adds r3, 0x50 - movs r5, 0xB6 - lsls r5, 3 - adds r1, r5 - movs r2, 0x13 -_08047C40: - ldm r3!, {r0} - stm r1!, {r0} - subs r2, 0x1 - cmp r2, 0 - bge _08047C40 - ldr r1, _08047CCC @ =gSaveBlock1 - ldr r0, _08047CD0 @ =gUnknown_020291F4 - adds r3, r0, 0 - adds r3, 0xA0 - movs r6, 0xC0 - lsls r6, 3 - adds r1, r6 - movs r2, 0xF -_08047C5A: - ldm r3!, {r0} - stm r1!, {r0} - subs r2, 0x1 - cmp r2, 0 - bge _08047C5A - ldr r1, _08047CCC @ =gSaveBlock1 - ldr r0, _08047CD0 @ =gUnknown_020291F4 - adds r3, r0, 0 - adds r3, 0xE0 - movs r7, 0xC8 - lsls r7, 3 - adds r1, r7 - movs r2, 0x3F -_08047C74: - ldm r3!, {r0} - stm r1!, {r0} - subs r2, 0x1 - cmp r2, 0 - bge _08047C74 - ldr r1, _08047CCC @ =gSaveBlock1 - ldr r0, _08047CD0 @ =gUnknown_020291F4 - movs r2, 0xF0 - lsls r2, 1 - adds r3, r0, r2 - movs r5, 0xE8 - lsls r5, 3 - adds r1, r5 - movs r2, 0x2D -_08047C90: - ldm r3!, {r0} - stm r1!, {r0} - subs r2, 0x1 - cmp r2, 0 - bge _08047C90 - ldr r0, _08047CCC @ =gSaveBlock1 - ldr r4, _08047CD0 @ =gUnknown_020291F4 - ldr r6, _08047CD4 @ =0x00002b4c - adds r3, r0, r6 - movs r7, 0xA6 - lsls r7, 2 - mov r12, r7 - movs r2, 0xF -_08047CAA: - adds r1, r3, 0 - mov r5, r12 - adds r0, r4, r5 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r4, 0x24 - adds r3, 0x24 - subs r2, 0x1 - cmp r2, 0 - bge _08047CAA - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08047CCC: .4byte gSaveBlock1 -_08047CD0: .4byte gUnknown_020291F4 -_08047CD4: .4byte 0x00002b4c - thumb_func_end copy_bags_and_unk_data_to_save_blocks - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/macros/battle_anim.inc b/asm/macros/battle_anim.inc index fc2777326..4ff845032 100644 --- a/asm/macros/battle_anim.inc +++ b/asm/macros/battle_anim.inc @@ -8,24 +8,24 @@ .2byte \id .endm - .macro sprite template, priority, argc=0, argv:vararg + .macro sprite template, priority, argv:vararg .byte 0x02 .4byte \template .byte \priority - .byte \argc - .if \argc > 0 + .byte (.Lsprite_\@_2 - .Lsprite_\@_1) / 2 +.Lsprite_\@_1: .2byte \argv - .endif +.Lsprite_\@_2: .endm - .macro createtask addr, priority, argc=0, argv:vararg + .macro createtask addr, priority, argv:vararg .byte 0x03 .4byte \addr .byte \priority - .byte \argc - .if \argc > 0 + .byte (.Lcreatetask_\@_2 - .Lcreatetask_\@_1) / 2 +.Lcreatetask_\@_1: .2byte \argv - .endif +.Lcreatetask_\@_2: .endm .macro pause delay @@ -167,13 +167,13 @@ .2byte \bldcnt .endm - .macro createtask_1F addr, argc=0, argv:vararg + .macro createtask_1F addr, argv:vararg .byte 0x1F .4byte \addr - .byte \argc - .if \argc > 0 + .byte (.Lcreatetask_1F_\@_2 - .Lcreatetask_1F_\@_1) / 2 +.Lcreatetask_1F_\@_1: .2byte \argv - .endif +.Lcreatetask_1F_\@_2: .endm .macro waitsound diff --git a/asm/mail.s b/asm/mail.s deleted file mode 100644 index a08571018..000000000 --- a/asm/mail.s +++ /dev/null @@ -1,892 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_80F890C -sub_80F890C: @ 80F890C - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r6, r1, 0 - lsls r2, 24 - lsrs r5, r2, 24 - ldr r2, _080F8958 @ =0x02000000 - adds r1, r2, 0 - adds r1, 0xFF - movs r0, 0x2 - strb r0, [r1] - adds r0, 0xFE - adds r1, r2, r0 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0x82 - lsls r0, 1 - adds r1, r2, r0 - ldr r0, _080F895C @ =sub_80EB3FC - str r0, [r1] - movs r0, 0x84 - lsls r0, 1 - adds r1, r2, r0 - ldr r0, _080F8960 @ =ConvertEasyChatWordsToString - str r0, [r1] - ldrh r1, [r4, 0x20] - adds r0, r1, 0 - subs r0, 0x79 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xB - bhi _080F8964 - subs r1, 0x79 - adds r0, r2, 0 - adds r0, 0xFA - strb r1, [r0] - b _080F896E - .align 2, 0 -_080F8958: .4byte 0x02000000 -_080F895C: .4byte sub_80EB3FC -_080F8960: .4byte ConvertEasyChatWordsToString -_080F8964: - adds r1, r2, 0 - adds r1, 0xFA - movs r0, 0 - strb r0, [r1] - movs r5, 0 -_080F896E: - ldr r1, _080F8994 @ =0x02000000 - movs r2, 0x80 - lsls r2, 1 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080F8980 - cmp r0, 0x1 - beq _080F899C -_080F8980: - movs r0, 0x86 - lsls r0, 1 - adds r2, r1, r0 - adds r0, r1, 0 - adds r0, 0xFA - ldrb r0, [r0] - lsls r0, 3 - ldr r1, _080F8998 @ =gUnknown_083E5730 - b _080F89AC - .align 2, 0 -_080F8994: .4byte 0x02000000 -_080F8998: .4byte gUnknown_083E5730 -_080F899C: - movs r0, 0x86 - lsls r0, 1 - adds r2, r1, r0 - adds r0, r1, 0 - adds r0, 0xFA - ldrb r0, [r0] - lsls r0, 3 - ldr r1, _080F89DC @ =gUnknown_083E57A4 -_080F89AC: - adds r0, r1 - str r0, [r2] - ldrh r0, [r4, 0x1E] - mov r1, sp - bl sub_80A2D64 - lsls r0, 16 - ldr r1, _080F89E0 @ =0xffff0000 - adds r0, r1 - movs r1, 0xCD - lsls r1, 17 - cmp r0, r1 - bhi _080F89F8 - ldr r0, _080F89E4 @ =0x02000000 - adds r1, r0, 0 - adds r1, 0xFA - ldrb r2, [r1] - adds r1, r0, 0 - cmp r2, 0x6 - beq _080F89E8 - cmp r2, 0x9 - beq _080F89F0 - b _080F89FA - .align 2, 0 -_080F89DC: .4byte gUnknown_083E57A4 -_080F89E0: .4byte 0xffff0000 -_080F89E4: .4byte 0x02000000 -_080F89E8: - adds r2, r1, 0 - adds r2, 0xFB - movs r0, 0x1 - b _080F8A00 -_080F89F0: - adds r2, r1, 0 - adds r2, 0xFB - movs r0, 0x2 - b _080F8A00 -_080F89F8: - ldr r1, _080F8A20 @ =0x02000000 -_080F89FA: - adds r2, r1, 0 - adds r2, 0xFB - movs r0, 0 -_080F8A00: - strb r0, [r2] - adds r0, r1, 0 - adds r0, 0xF4 - str r4, [r0] - subs r0, 0x8 - str r6, [r0] - adds r0, 0xC - strb r5, [r0] - ldr r0, _080F8A24 @ =sub_80F8D50 - bl SetMainCallback2 - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F8A20: .4byte 0x02000000 -_080F8A24: .4byte sub_80F8D50 - thumb_func_end sub_80F890C - - thumb_func_start sub_80F8A28 -sub_80F8A28: @ 80F8A28 - push {r4,r5,lr} - sub sp, 0x8 - ldr r0, _080F8A44 @ =gMain - ldr r1, _080F8A48 @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x12 - bls _080F8A3A - b _080F8D3C -_080F8A3A: - lsls r0, 2 - ldr r1, _080F8A4C @ =_080F8A50 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F8A44: .4byte gMain -_080F8A48: .4byte 0x0000043c -_080F8A4C: .4byte _080F8A50 - .align 2, 0 -_080F8A50: - .4byte _080F8A9C - .4byte _080F8AB0 - .4byte _080F8AC8 - .4byte _080F8ACE - .4byte _080F8AD4 - .4byte _080F8ADA - .4byte _080F8B10 - .4byte _080F8B1C - .4byte _080F8B28 - .4byte _080F8B34 - .4byte _080F8B3A - .4byte _080F8B54 - .4byte _080F8B78 - .4byte _080F8BA0 - .4byte _080F8C14 - .4byte _080F8C2C - .4byte _080F8C58 - .4byte _080F8CBC - .4byte _080F8CC6 -_080F8A9C: - movs r0, 0 - bl SetVBlankCallback - bl remove_some_task - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - b _080F8D30 -_080F8AB0: - add r1, sp, 0x4 - movs r0, 0 - strh r0, [r1] - movs r1, 0xE0 - lsls r1, 19 - ldr r2, _080F8AC4 @ =0x01000200 - add r0, sp, 0x4 - bl CpuSet - b _080F8D30 - .align 2, 0 -_080F8AC4: .4byte 0x01000200 -_080F8AC8: - bl ResetPaletteFade - b _080F8D30 -_080F8ACE: - bl ResetTasks - b _080F8D30 -_080F8AD4: - bl ResetSpriteData - b _080F8D30 -_080F8ADA: - bl FreeAllSpritePalettes - ldr r0, _080F8B0C @ =REG_BG0HOFS - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x32 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - b _080F8D30 - .align 2, 0 -_080F8B0C: .4byte REG_BG0HOFS -_080F8B10: - ldr r0, _080F8B18 @ =gWindowConfig_81E6DFC - bl SetUpWindowConfig - b _080F8D30 - .align 2, 0 -_080F8B18: .4byte gWindowConfig_81E6DFC -_080F8B1C: - ldr r0, _080F8B24 @ =gWindowConfig_81E6DFC - bl MultistepInitMenuWindowBegin - b _080F8D30 - .align 2, 0 -_080F8B24: .4byte gWindowConfig_81E6DFC -_080F8B28: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - beq _080F8B32 - b _080F8D30 -_080F8B32: - b _080F8D3C -_080F8B34: - bl MenuZeroFillScreen - b _080F8D30 -_080F8B3A: - mov r0, sp - adds r0, 0x6 - movs r1, 0x1 - strh r1, [r0] - ldr r1, _080F8B4C @ =0x06004800 - ldr r2, _080F8B50 @ =0x01000400 - bl CpuSet - b _080F8D30 - .align 2, 0 -_080F8B4C: .4byte 0x06004800 -_080F8B50: .4byte 0x01000400 -_080F8B54: - ldr r2, _080F8B70 @ =gMailGraphicsTable - ldr r0, _080F8B74 @ =0x02000000 - adds r0, 0xFA - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - b _080F8D30 - .align 2, 0 -_080F8B70: .4byte gMailGraphicsTable -_080F8B74: .4byte 0x02000000 -_080F8B78: - ldr r2, _080F8B94 @ =gMailGraphicsTable - ldr r0, _080F8B98 @ =0x02000000 - adds r0, 0xFA - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x8 - adds r0, r2 - ldr r0, [r0] - ldr r1, _080F8B9C @ =0x06004000 - bl LZ77UnCompVram - b _080F8D30 - .align 2, 0 -_080F8B94: .4byte gMailGraphicsTable -_080F8B98: .4byte 0x02000000 -_080F8B9C: .4byte 0x06004000 -_080F8BA0: - ldr r5, _080F8C00 @ =gMailGraphicsTable - ldr r4, _080F8C04 @ =0x02000000 - adds r4, 0xFA - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0x4 - adds r0, r1 - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r3, _080F8C08 @ =gPlttBufferUnfaded - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r0, [r0, 0x10] - movs r2, 0xF1 - lsls r2, 1 - adds r1, r3, r2 - strh r0, [r1] - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r0, 0x12] - adds r2, 0xE - adds r0, r3, r2 - strh r1, [r0] - ldr r1, _080F8C0C @ =gUnknown_083E562C - ldr r2, _080F8C10 @ =gSaveBlock2 - ldrb r0, [r2, 0x8] - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r3, 0x14] - ldrb r0, [r2, 0x8] - lsls r0, 2 - adds r1, 0x2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r3, 0x16] - b _080F8D30 - .align 2, 0 -_080F8C00: .4byte gMailGraphicsTable -_080F8C04: .4byte 0x02000000 -_080F8C08: .4byte gPlttBufferUnfaded -_080F8C0C: .4byte gUnknown_083E562C -_080F8C10: .4byte gSaveBlock2 -_080F8C14: - ldr r0, _080F8C28 @ =0x02000000 - adds r0, 0xF8 - ldrb r0, [r0] - cmp r0, 0 - bne _080F8C20 - b _080F8D30 -_080F8C20: - bl sub_80F8DA0 - b _080F8D30 - .align 2, 0 -_080F8C28: .4byte 0x02000000 -_080F8C2C: - ldr r0, _080F8C4C @ =0x02000000 - adds r0, 0xF8 - ldrb r0, [r0] - cmp r0, 0 - beq _080F8C3A - bl sub_80F8E80 -_080F8C3A: - ldr r0, _080F8C50 @ =sub_80F8F18 - bl SetVBlankCallback - ldr r2, _080F8C54 @ =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - b _080F8D30 - .align 2, 0 -_080F8C4C: .4byte 0x02000000 -_080F8C50: .4byte sub_80F8F18 -_080F8C54: .4byte gPaletteFade -_080F8C58: - ldr r5, _080F8C7C @ =0x02000000 - adds r0, r5, 0 - adds r0, 0xF4 - ldr r0, [r0] - ldrh r0, [r0, 0x1E] - bl sub_809D4A8 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r5, 0 - adds r0, 0xFB - ldrb r0, [r0] - cmp r0, 0x1 - beq _080F8C80 - cmp r0, 0x2 - beq _080F8C98 - b _080F8D30 - .align 2, 0 -_080F8C7C: .4byte 0x02000000 -_080F8C80: - adds r0, r4, 0 - bl sub_809D580 - ldr r1, _080F8C94 @ =SpriteCallbackDummy - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x60 - b _080F8CA8 - .align 2, 0 -_080F8C94: .4byte SpriteCallbackDummy -_080F8C98: - adds r0, r4, 0 - bl sub_809D580 - ldr r1, _080F8CB8 @ =SpriteCallbackDummy - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x28 -_080F8CA8: - movs r3, 0x80 - bl sub_809D3A4 - adds r1, r5, 0 - adds r1, 0xFC - strb r0, [r1] - b _080F8D30 - .align 2, 0 -_080F8CB8: .4byte SpriteCallbackDummy -_080F8CBC: - bl sub_8055870 - cmp r0, 0x1 - bne _080F8D30 - b _080F8D3C -_080F8CC6: - ldr r1, _080F8D14 @ =REG_BG0CNT - ldr r2, _080F8D18 @ =0x00009f08 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080F8D1C @ =0x00000801 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080F8D20 @ =0x00000902 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x44 - movs r0, 0 - strh r0, [r1] - subs r1, 0x50 - movs r2, 0xBA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r2, _080F8D24 @ =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - ldr r0, _080F8D28 @ =0x02000000 - adds r0, 0xF0 - ldr r1, _080F8D2C @ =sub_80F8F58 - str r1, [r0] - movs r0, 0x1 - b _080F8D3E - .align 2, 0 -_080F8D14: .4byte REG_BG0CNT -_080F8D18: .4byte 0x00009f08 -_080F8D1C: .4byte 0x00000801 -_080F8D20: .4byte 0x00000902 -_080F8D24: .4byte gPaletteFade -_080F8D28: .4byte 0x02000000 -_080F8D2C: .4byte sub_80F8F58 -_080F8D30: - ldr r1, _080F8D48 @ =gMain - ldr r0, _080F8D4C @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080F8D3C: - movs r0, 0 -_080F8D3E: - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080F8D48: .4byte gMain -_080F8D4C: .4byte 0x0000043c - thumb_func_end sub_80F8A28 - - thumb_func_start sub_80F8D50 -sub_80F8D50: @ 80F8D50 - push {lr} -_080F8D52: - bl sub_80F8A28 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080F8D6C - ldr r0, _080F8D68 @ =sub_80F8F2C - bl SetMainCallback2 - b _080F8D78 - .align 2, 0 -_080F8D68: .4byte sub_80F8F2C -_080F8D6C: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080F8D52 -_080F8D78: - pop {r0} - bx r0 - thumb_func_end sub_80F8D50 - - thumb_func_start sub_80F8D7C -sub_80F8D7C: @ 80F8D7C - push {r4,lr} - adds r4, r0, 0 - bl StringCopy - adds r0, r4, 0 - bl sub_814A568 - adds r0, r4, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - adds r4, r0 - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80F8D7C - - thumb_func_start sub_80F8DA0 -sub_80F8DA0: @ 80F8DA0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0 - movs r5, 0 - ldr r2, _080F8E3C @ =0x02000000 - movs r0, 0x86 - lsls r0, 1 - adds r1, r2, r0 - ldr r0, [r1] - ldrb r0, [r0] - cmp r5, r0 - bcs _080F8E04 - mov r8, r2 - adds r7, r1, 0 -_080F8DBE: - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - subs r0, r5 - add r0, r8 - mov r1, r8 - adds r1, 0xF4 - lsls r2, r6, 1 - ldr r1, [r1] - adds r1, r2 - ldr r2, [r7] - ldr r2, [r2, 0x4] - lsls r4, r5, 2 - adds r2, r4, r2 - ldr r2, [r2] - lsls r2, 28 - lsrs r2, 30 - movs r3, 0x1 - bl ConvertEasyChatWordsToString - ldr r1, [r7] - ldr r0, [r1, 0x4] - adds r4, r0 - ldr r0, [r4] - lsls r0, 28 - lsrs r0, 30 - adds r0, r6, r0 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldrb r1, [r1] - cmp r5, r1 - bcc _080F8DBE -_080F8E04: - ldr r2, _080F8E40 @ =0x020000d8 - adds r4, r2, 0 - subs r4, 0xD8 - adds r0, r2, 0 - adds r0, 0x28 - ldrb r0, [r0] - cmp r0, 0 - bne _080F8E48 - ldr r1, [r2, 0x1C] - adds r1, 0x12 - adds r0, r2, 0 - bl sub_80F8D7C - adds r2, r0, 0 - ldr r1, _080F8E44 @ =gOtherText_From - bl StringCopy - ldr r0, _080F8E40 @ =0x020000d8 - bl StringLength - movs r2, 0x86 - lsls r2, 1 - adds r1, r4, r2 - ldr r1, [r1] - ldrb r1, [r1, 0x2] - subs r1, r0 - b _080F8E6A - .align 2, 0 -_080F8E3C: .4byte 0x02000000 -_080F8E40: .4byte 0x020000d8 -_080F8E44: .4byte gOtherText_From -_080F8E48: - ldr r1, _080F8E7C @ =gOtherText_From - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - adds r0, r4, 0 - adds r0, 0xF4 - ldr r1, [r0] - adds r1, 0x12 - adds r0, r2, 0 - bl sub_80F8D7C - movs r1, 0x86 - lsls r1, 1 - adds r0, r4, r1 - ldr r0, [r0] - ldrb r1, [r0, 0x2] -_080F8E6A: - adds r0, r4, 0 - adds r0, 0xF9 - strb r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F8E7C: .4byte gOtherText_From - thumb_func_end sub_80F8DA0 - - thumb_func_start sub_80F8E80 -sub_80F8E80: @ 80F8E80 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0 - movs r4, 0 - ldr r1, _080F8F10 @ =0x02000000 - movs r0, 0x86 - lsls r0, 1 - adds r2, r1, r0 - ldr r0, [r2] - ldrb r0, [r0] - cmp r4, r0 - bcs _080F8EF6 - mov r8, r1 - adds r7, r2, 0 -_080F8E9E: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - subs r0, r4 - mov r1, r8 - adds r5, r0, r1 - ldrb r0, [r5] - cmp r0, 0xFF - beq _080F8EE8 - cmp r0, 0 - beq _080F8EE8 - ldr r2, [r7] - ldr r1, [r2, 0x4] - lsls r0, r4, 2 - adds r0, r1 - ldr r0, [r0] - lsls r3, r0, 24 - lsrs r3, 28 - lsls r0, 30 - lsrs r0, 30 - adds r0, r6, r0 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r2, [r2, 0x3] - lsrs r1, r2, 4 - adds r1, r3 - lsls r2, 28 - lsrs r2, 28 - adds r2, r6, r2 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - bl MenuPrint - adds r0, r6, 0x2 - lsls r0, 24 - lsrs r6, r0, 24 -_080F8EE8: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, [r7] - ldrb r0, [r0] - cmp r4, r0 - bcc _080F8E9E -_080F8EF6: - ldr r0, _080F8F14 @ =0x020000d8 - adds r1, r0, 0 - adds r1, 0x21 - ldrb r1, [r1] - ldr r2, [r0, 0x34] - ldrb r2, [r2, 0x1] - bl MenuPrint - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F8F10: .4byte 0x02000000 -_080F8F14: .4byte 0x020000d8 - thumb_func_end sub_80F8E80 - - thumb_func_start sub_80F8F18 -sub_80F8F18: @ 80F8F18 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_80F8F18 - - thumb_func_start sub_80F8F2C -sub_80F8F2C: @ 80F8F2C - push {r4,lr} - ldr r4, _080F8F54 @ =0x02000000 - adds r0, r4, 0 - adds r0, 0xFB - ldrb r0, [r0] - cmp r0, 0 - beq _080F8F42 - bl AnimateSprites - bl BuildOamBuffer -_080F8F42: - adds r0, r4, 0 - adds r0, 0xF0 - ldr r0, [r0] - bl _call_via_r0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F8F54: .4byte 0x02000000 - thumb_func_end sub_80F8F2C - - thumb_func_start sub_80F8F58 -sub_80F8F58: @ 80F8F58 - push {lr} - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080F8F6C - ldr r0, _080F8F70 @ =0x02000000 - adds r0, 0xF0 - ldr r1, _080F8F74 @ =sub_80F8F78 - str r1, [r0] -_080F8F6C: - pop {r0} - bx r0 - .align 2, 0 -_080F8F70: .4byte 0x02000000 -_080F8F74: .4byte sub_80F8F78 - thumb_func_end sub_80F8F58 - - thumb_func_start sub_80F8F78 -sub_80F8F78: @ 80F8F78 - push {lr} - sub sp, 0x4 - ldr r0, _080F8FA8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _080F8FA0 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _080F8FAC @ =0x02000000 - adds r0, 0xF0 - ldr r1, _080F8FB0 @ =sub_80F8FB4 - str r1, [r0] -_080F8FA0: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080F8FA8: .4byte gMain -_080F8FAC: .4byte 0x02000000 -_080F8FB0: .4byte sub_80F8FB4 - thumb_func_end sub_80F8F78 - - thumb_func_start sub_80F8FB4 -sub_80F8FB4: @ 80F8FB4 - push {r4,lr} - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080F9012 - ldr r4, _080F9018 @ =0x02000000 - adds r0, r4, 0 - adds r0, 0xEC - ldr r0, [r0] - bl SetMainCallback2 - adds r0, r4, 0 - adds r0, 0xFB - ldrb r0, [r0] - cmp r0, 0x2 - bgt _080F9002 - cmp r0, 0x1 - blt _080F9002 - adds r0, r4, 0 - adds r0, 0xF4 - ldr r0, [r0] - ldrh r0, [r0, 0x1E] - bl sub_809D4A8 - lsls r0, 16 - lsrs r0, 16 - bl sub_809D608 - adds r0, r4, 0 - adds r0, 0xFC - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F901C @ =gSprites - adds r0, r1 - bl sub_809D510 -_080F9002: - ldr r0, _080F9018 @ =0x02000000 - movs r2, 0x88 - lsls r2, 1 - movs r1, 0 - bl memset - bl ResetPaletteFade -_080F9012: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9018: .4byte 0x02000000 -_080F901C: .4byte gSprites - thumb_func_end sub_80F8FB4 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/mail_data.s b/asm/mail_data.s new file mode 100644 index 000000000..4dff0a12b --- /dev/null +++ b/asm/mail_data.s @@ -0,0 +1,574 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_80A2B18 +sub_80A2B18: @ 80A2B18 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _080A2B3C @ =gSaveBlock1 + 0x2B4C +_080A2B1E: + lsls r0, r4, 3 + adds r0, r4 + lsls r0, 2 + adds r0, r5 + bl sub_80A2B40 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xF + bls _080A2B1E + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2B3C: .4byte gSaveBlock1 + 0x2B4C + thumb_func_end sub_80A2B18 + + thumb_func_start sub_80A2B40 +sub_80A2B40: @ 80A2B40 + push {r4-r6,lr} + adds r3, r0, 0 + ldr r0, _080A2B90 @ =0x0000ffff + adds r4, r0, 0 + adds r1, r3, 0 + movs r2, 0x8 +_080A2B4C: + ldrh r0, [r1] + orrs r0, r4 + strh r0, [r1] + adds r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _080A2B4C + movs r2, 0 + adds r6, r3, 0 + adds r6, 0x1A + adds r4, r3, 0 + adds r4, 0x12 + movs r5, 0xFF +_080A2B66: + adds r1, r4, r2 + ldrb r0, [r1] + orrs r0, r5 + strb r0, [r1] + adds r2, 0x1 + cmp r2, 0x7 + ble _080A2B66 + adds r1, r6, 0 + movs r2, 0 + adds r0, r1, 0x3 +_080A2B7A: + strb r2, [r0] + subs r0, 0x1 + cmp r0, r1 + bge _080A2B7A + movs r1, 0 + movs r0, 0x1 + strh r0, [r3, 0x1E] + strh r1, [r3, 0x20] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A2B90: .4byte 0x0000ffff + thumb_func_end sub_80A2B40 + + thumb_func_start sub_80A2B94 +sub_80A2B94: @ 80A2B94 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + beq _080A2BBC + adds r0, r4, 0 + movs r1, 0x40 + bl GetMonData + cmp r0, 0xFF + beq _080A2BBC + movs r0, 0x1 + b _080A2BBE +_080A2BBC: + movs r0, 0 +_080A2BBE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80A2B94 + + thumb_func_start sub_80A2BC4 +sub_80A2BC4: @ 80A2BC4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + adds r7, r0, 0 + lsls r1, 16 + lsrs r0, r1, 16 + str r0, [sp, 0x8] + mov r0, sp + movs r2, 0 + ldrb r3, [r0, 0x8] + strb r3, [r0] + lsrs r1, 24 + strb r1, [r0, 0x1] + add r3, sp, 0x4 + strb r2, [r3] + mov r10, r3 + ldr r4, _080A2D00 @ =gSaveBlock1 + mov r9, r4 + mov r8, r3 + adds r2, r3, 0 +_080A2BF2: + ldrb r1, [r2] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + add r0, r9 + ldr r5, _080A2D04 @ =0x00002b6c + adds r0, r5 + ldrh r0, [r0] + cmp r0, 0 + beq _080A2C08 + b _080A2D24 +_080A2C08: + movs r3, 0 + ldr r0, _080A2D08 @ =gSaveBlock2 + mov r12, r0 + mov r4, r10 + ldr r6, _080A2D0C @ =gSaveBlock1 + 0x2B4C + ldr r1, _080A2D10 @ =0x0000ffff + adds r5, r1, 0 +_080A2C16: + lsls r2, r3, 1 + ldrb r1, [r4] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r2, r0 + adds r2, r6 + ldrh r0, [r2] + orrs r0, r5 + strh r0, [r2] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x8 + bls _080A2C16 + movs r3, 0 + mov r2, r10 + ldr r4, _080A2D14 @ =gSaveBlock1 + 0x2B5E +_080A2C3A: + ldrb r1, [r2] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r3, r0 + adds r0, r4 + mov r5, r12 + adds r1, r3, r5 + ldrb r1, [r1] + strb r1, [r0] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x6 + bls _080A2C3A + mov r0, r8 + ldrb r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r3, r0 + ldr r1, _080A2D14 @ =gSaveBlock1 + 0x2B5E + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + mov r2, r8 + ldrb r1, [r2] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r3, _080A2D14 @ =gSaveBlock1 + 0x2B5E + adds r0, r3 + movs r1, 0 + bl PadNameString + movs r3, 0 + mov r2, r10 + ldr r5, _080A2D18 @ =gSaveBlock1 + 0x2B66 + ldr r4, _080A2D1C @ =gSaveBlock2 + 0xA +_080A2C88: + ldrb r1, [r2] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r3, r0 + adds r0, r5 + adds r1, r3, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bls _080A2C88 + adds r0, r7, 0 + movs r1, 0xB + bl GetBoxMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r7, 0 + movs r1, 0 + bl GetBoxMonData + adds r1, r0, 0 + adds r0, r4, 0 + bl sub_80A2D44 + mov r4, r8 + ldrb r2, [r4] + lsls r1, r2, 3 + adds r1, r2 + lsls r1, 2 + add r1, r9 + ldr r5, _080A2D20 @ =0x00002b6a + adds r1, r5 + strh r0, [r1] + ldrb r1, [r4] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + add r0, r9 + ldr r1, _080A2D04 @ =0x00002b6c + adds r0, r1 + mov r2, sp + ldrh r2, [r2, 0x8] + strh r2, [r0] + adds r0, r7, 0 + movs r1, 0x40 + mov r2, r8 + bl SetMonData + adds r0, r7, 0 + movs r1, 0xC + mov r2, sp + bl SetMonData + ldrb r0, [r4] + b _080A2D32 + .align 2, 0 +_080A2D00: .4byte gSaveBlock1 +_080A2D04: .4byte 0x00002b6c +_080A2D08: .4byte gSaveBlock2 +_080A2D0C: .4byte gSaveBlock1 + 0x2B4C +_080A2D10: .4byte 0x0000ffff +_080A2D14: .4byte gSaveBlock1 + 0x2B5E +_080A2D18: .4byte gSaveBlock1 + 0x2B66 +_080A2D1C: .4byte gSaveBlock2 + 0xA +_080A2D20: .4byte 0x00002b6a +_080A2D24: + adds r0, r1, 0x1 + strb r0, [r3] + ldrb r0, [r2] + cmp r0, 0x5 + bhi _080A2D30 + b _080A2BF2 +_080A2D30: + movs r0, 0xFF +_080A2D32: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80A2BC4 + + thumb_func_start sub_80A2D44 +sub_80A2D44: @ 80A2D44 + push {lr} + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xC9 + bne _080A2D5C + adds r0, r1, 0 + bl sub_809D474 + lsls r0, 16 + ldr r1, _080A2D60 @ =0x75300000 + adds r0, r1 + lsrs r0, 16 +_080A2D5C: + pop {r1} + bx r1 + .align 2, 0 +_080A2D60: .4byte 0x75300000 + thumb_func_end sub_80A2D44 + + thumb_func_start sub_80A2D64 +sub_80A2D64: @ 80A2D64 + push {lr} + lsls r0, 16 + lsrs r3, r0, 16 + ldr r0, _080A2D7C @ =0xffff8ad0 + adds r2, r3, r0 + lsls r0, r2, 16 + lsrs r0, 16 + cmp r0, 0x1B + bhi _080A2D80 + movs r0, 0xC9 + strh r2, [r1] + b _080A2D82 + .align 2, 0 +_080A2D7C: .4byte 0xffff8ad0 +_080A2D80: + adds r0, r3, 0 +_080A2D82: + pop {r1} + bx r1 + thumb_func_end sub_80A2D64 + + thumb_func_start sub_80A2D88 +sub_80A2D88: @ 80A2D88 + push {r4-r7,lr} + sub sp, 0x8 + adds r6, r0, 0 + adds r7, r1, 0 + ldrh r5, [r7, 0x20] + adds r1, r5, 0 + bl sub_80A2BC4 + add r4, sp, 0x4 + strb r0, [r4] + ldrb r2, [r4] + cmp r2, 0xFF + beq _080A2DE8 + ldr r0, _080A2DE0 @ =gSaveBlock1 + lsls r1, r2, 3 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldr r0, _080A2DE4 @ =0x00002b4c + adds r1, r0 + adds r0, r7, 0 + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + adds r0, r6, 0 + movs r1, 0x40 + adds r2, r4, 0 + bl SetMonData + mov r0, sp + strb r5, [r0] + mov r1, sp + lsrs r0, r5, 8 + strb r0, [r1, 0x1] + adds r0, r6, 0 + movs r1, 0xC + mov r2, sp + bl SetMonData + ldrb r0, [r4] + b _080A2DEA + .align 2, 0 +_080A2DE0: .4byte gSaveBlock1 +_080A2DE4: .4byte 0x00002b4c +_080A2DE8: + movs r0, 0xFF +_080A2DEA: + add sp, 0x8 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80A2D88 + + thumb_func_start unref_sub_80A2DF4 +unref_sub_80A2DF4: @ 80A2DF4 + movs r0, 0 + bx lr + thumb_func_end unref_sub_80A2DF4 + + thumb_func_start sub_80A2DF8 +sub_80A2DF8: @ 80A2DF8 + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + bl sub_80A2B94 + lsls r0, 24 + cmp r0, 0 + beq _080A2E46 + adds r0, r4, 0 + movs r1, 0x40 + bl GetMonData + add r2, sp, 0x4 + strb r0, [r2] + ldr r3, _080A2E50 @ =gSaveBlock1 + ldrb r1, [r2] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldr r1, _080A2E54 @ =0x00002b6c + adds r0, r1 + movs r3, 0 + movs r1, 0 + strh r1, [r0] + movs r0, 0xFF + strb r0, [r2] + mov r0, sp + strb r3, [r0] + strb r3, [r0, 0x1] + adds r0, r4, 0 + movs r1, 0x40 + bl SetMonData + adds r0, r4, 0 + movs r1, 0xC + mov r2, sp + bl SetMonData +_080A2E46: + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A2E50: .4byte gSaveBlock1 +_080A2E54: .4byte 0x00002b6c + thumb_func_end sub_80A2DF8 + + thumb_func_start unref_sub_80A2E58 +unref_sub_80A2E58: @ 80A2E58 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A2E70 @ =gSaveBlock1 + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldr r0, _080A2E74 @ =0x00002b6c + adds r1, r0 + movs r0, 0 + strh r0, [r1] + bx lr + .align 2, 0 +_080A2E70: .4byte gSaveBlock1 +_080A2E74: .4byte 0x00002b6c + thumb_func_end unref_sub_80A2E58 + + thumb_func_start sub_80A2E78 +sub_80A2E78: @ 80A2E78 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xC + adds r5, r0, 0 + mov r0, sp + movs r1, 0 + strb r1, [r0] + strb r1, [r0, 0x1] + add r1, sp, 0x4 + movs r0, 0xFF + strb r0, [r1] + movs r7, 0x6 + mov r9, r1 + ldr r0, _080A2F04 @ =gSaveBlock1 + mov r8, r0 + ldr r2, _080A2F08 @ =0x00002b4c + add r2, r8 +_080A2E9E: + lsls r0, r7, 3 + adds r0, r7 + lsls r4, r0, 2 + mov r1, r8 + adds r0, r4, r1 + ldr r3, _080A2F0C @ =0x00002b6c + adds r0, r3 + ldrh r6, [r0] + cmp r6, 0 + bne _080A2F10 + adds r4, r2 + adds r0, r5, 0 + movs r1, 0x40 + str r2, [sp, 0x8] + bl GetMonData + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + ldr r2, [sp, 0x8] + adds r1, r2 + ldm r1!, {r0,r2,r3} + stm r4!, {r0,r2,r3} + ldm r1!, {r0,r2,r3} + stm r4!, {r0,r2,r3} + ldm r1!, {r0,r2,r3} + stm r4!, {r0,r2,r3} + adds r0, r5, 0 + movs r1, 0x40 + bl GetMonData + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + add r1, r8 + ldr r0, _080A2F0C @ =0x00002b6c + adds r1, r0 + strh r6, [r1] + adds r0, r5, 0 + movs r1, 0x40 + mov r2, r9 + bl SetMonData + adds r0, r5, 0 + movs r1, 0xC + mov r2, sp + bl SetMonData + adds r0, r7, 0 + b _080A2F1C + .align 2, 0 +_080A2F04: .4byte gSaveBlock1 +_080A2F08: .4byte 0x00002b4c +_080A2F0C: .4byte 0x00002b6c +_080A2F10: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0xF + bls _080A2E9E + movs r0, 0xFF +_080A2F1C: + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80A2E78 + + thumb_func_start itemid_is_mail +itemid_is_mail: @ 80A2F2C + push {lr} + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x84 + bgt _080A2F3E + cmp r0, 0x79 + blt _080A2F3E + movs r0, 0x1 + b _080A2F40 +_080A2F3E: + movs r0, 0 +_080A2F40: + pop {r1} + bx r1 + thumb_func_end itemid_is_mail + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/map_name_popup.s b/asm/map_name_popup.s new file mode 100644 index 000000000..b488e5f73 --- /dev/null +++ b/asm/map_name_popup.s @@ -0,0 +1,248 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start unref_sub_80A2F44 +unref_sub_80A2F44: @ 80A2F44 + push {lr} + bl CloseMenu + bl AddMapNamePopUpWindowTask + movs r0, 0x1 + pop {r1} + bx r1 + thumb_func_end unref_sub_80A2F44 + + thumb_func_start AddMapNamePopUpWindowTask +AddMapNamePopUpWindowTask: @ 80A2F54 + push {r4,r5,lr} + movs r0, 0x80 + lsls r0, 7 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080A2FE4 + ldr r4, _080A2FAC @ =sub_80A2FF4 + adds r0, r4, 0 + bl FuncIsActiveTask + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080A2FBC + adds r0, r4, 0 + movs r1, 0x5A + bl CreateTask + ldr r4, _080A2FB0 @ =gUnknown_02038538 + strb r0, [r4] + ldr r1, _080A2FB4 @ =REG_BG0VOFS + movs r0, 0x20 + strh r0, [r1] + bl sub_80A30E0 + ldr r2, _080A2FB8 @ =gTasks + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + strh r5, [r0, 0x8] + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r1, 0x20 + strh r1, [r0, 0xC] + b _080A2FE4 + .align 2, 0 +_080A2FAC: .4byte sub_80A2FF4 +_080A2FB0: .4byte gUnknown_02038538 +_080A2FB4: .4byte REG_BG0VOFS +_080A2FB8: .4byte gTasks +_080A2FBC: + ldr r3, _080A2FEC @ =gTasks + ldr r2, _080A2FF0 @ =gUnknown_02038538 + ldrb r0, [r2] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r3 + movs r4, 0x8 + ldrsh r0, [r1, r4] + cmp r0, 0x2 + beq _080A2FD6 + movs r0, 0x2 + strh r0, [r1, 0x8] +_080A2FD6: + ldrb r0, [r2] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r3 + movs r0, 0x1 + strh r0, [r1, 0xE] +_080A2FE4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2FEC: .4byte gTasks +_080A2FF0: .4byte gUnknown_02038538 + thumb_func_end AddMapNamePopUpWindowTask + + thumb_func_start sub_80A2FF4 +sub_80A2FF4: @ 80A2FF4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r3, _080A3018 @ =gTasks + adds r4, r1, r3 + movs r0, 0x8 + ldrsh r2, [r4, r0] + cmp r2, 0x1 + beq _080A304C + cmp r2, 0x1 + bgt _080A301C + cmp r2, 0 + beq _080A3026 + b _080A3092 + .align 2, 0 +_080A3018: .4byte gTasks +_080A301C: + cmp r2, 0x2 + beq _080A3064 + cmp r2, 0x4 + beq _080A308C + b _080A3092 +_080A3026: + ldrh r0, [r4, 0xC] + subs r0, 0x2 + strh r0, [r4, 0xC] + lsls r0, 16 + cmp r0, 0 + bgt _080A3092 + movs r0, 0x1 + strh r0, [r4, 0x8] + ldr r0, _080A3048 @ =gUnknown_02038538 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + strh r2, [r0, 0xA] + b _080A3092 + .align 2, 0 +_080A3048: .4byte gUnknown_02038538 +_080A304C: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x78 + ble _080A3092 + movs r0, 0 + strh r0, [r4, 0xA] + movs r0, 0x2 + strh r0, [r4, 0x8] + b _080A3092 +_080A3064: + ldrh r0, [r4, 0xC] + adds r0, 0x2 + movs r5, 0 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + ble _080A3092 + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080A3086 + bl sub_80A30E0 + strh r5, [r4, 0x8] + strh r5, [r4, 0xE] + b _080A3092 +_080A3086: + movs r0, 0x4 + strh r0, [r4, 0x8] + b _080A3098 +_080A308C: + bl HideMapNamePopUpWindow + b _080A3098 +_080A3092: + ldr r1, _080A30A0 @ =REG_BG0VOFS + ldrh r0, [r4, 0xC] + strh r0, [r1] +_080A3098: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A30A0: .4byte REG_BG0VOFS + thumb_func_end sub_80A2FF4 + + thumb_func_start HideMapNamePopUpWindow +HideMapNamePopUpWindow: @ 80A30A4 + push {lr} + ldr r0, _080A30D4 @ =sub_80A2FF4 + bl FuncIsActiveTask + lsls r0, 24 + cmp r0, 0 + beq _080A30D0 + bl MenuLoadTextWindowGraphics + movs r0, 0 + movs r1, 0 + movs r2, 0xD + movs r3, 0x3 + bl MenuZeroFillWindowRect + ldr r1, _080A30D8 @ =REG_BG0VOFS + movs r0, 0 + strh r0, [r1] + ldr r0, _080A30DC @ =gUnknown_02038538 + ldrb r0, [r0] + bl DestroyTask +_080A30D0: + pop {r0} + bx r0 + .align 2, 0 +_080A30D4: .4byte sub_80A2FF4 +_080A30D8: .4byte REG_BG0VOFS +_080A30DC: .4byte gUnknown_02038538 + thumb_func_end HideMapNamePopUpWindow + + thumb_func_start sub_80A30E0 +sub_80A30E0: @ 80A30E0 + push {lr} + sub sp, 0x14 + movs r0, 0 + bl MenuLoadTextWindowGraphics_OverrideFrameType + ldr r0, _080A3114 @ =gMapHeader + ldrb r1, [r0, 0x14] + mov r0, sp + movs r2, 0 + bl sub_80FBFB4 + movs r0, 0 + movs r1, 0 + movs r2, 0xD + movs r3, 0x3 + bl MenuDrawTextWindow + mov r0, sp + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x60 + bl sub_8072BD8 + add sp, 0x14 + pop {r0} + bx r0 + .align 2, 0 +_080A3114: .4byte gMapHeader + thumb_func_end sub_80A30E0 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/matuda_debug_menu.s b/asm/matuda_debug_menu.s deleted file mode 100644 index c2fb1f004..000000000 --- a/asm/matuda_debug_menu.s +++ /dev/null @@ -1,2877 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start unref_sub_80A9B28 -unref_sub_80A9B28: @ 80A9B28 - push {lr} - sub sp, 0x8 - bl MenuZeroFillScreen - movs r0, 0 - movs r1, 0 - movs r2, 0x11 - movs r3, 0x12 - bl MenuDrawTextWindow - ldr r3, _080A9B6C @ =gUnknown_083C91F0 - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x7 - bl PrintMenuItems - movs r0, 0 - str r0, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x7 - bl InitMenu - ldr r1, _080A9B70 @ =gCallback_03004AE8 - ldr r0, _080A9B74 @ =sub_80A9B78 - str r0, [r1] - movs r0, 0 - add sp, 0x8 - pop {r1} - bx r1 - .align 2, 0 -_080A9B6C: .4byte gUnknown_083C91F0 -_080A9B70: .4byte gCallback_03004AE8 -_080A9B74: .4byte sub_80A9B78 - thumb_func_end unref_sub_80A9B28 - - thumb_func_start sub_80A9B78 -sub_80A9B78: @ 80A9B78 - push {lr} - bl ProcessMenuInput - lsls r0, 24 - asrs r1, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - bne _080A9B8E - movs r0, 0 - b _080A9BB6 -_080A9B8E: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080A9BB0 - ldr r2, _080A9BA8 @ =gCallback_03004AE8 - ldr r0, _080A9BAC @ =gUnknown_083C91F0 - lsls r1, 3 - adds r0, 0x4 - adds r1, r0 - ldr r0, [r1] - str r0, [r2] - movs r0, 0 - b _080A9BB6 - .align 2, 0 -_080A9BA8: .4byte gCallback_03004AE8 -_080A9BAC: .4byte gUnknown_083C91F0 -_080A9BB0: - bl sub_8071C20 - movs r0, 0x1 -_080A9BB6: - pop {r1} - bx r1 - thumb_func_end sub_80A9B78 - - thumb_func_start sub_80A9BBC -sub_80A9BBC: @ 80A9BBC - push {lr} - sub sp, 0x4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _080A9BE0 @ =sub_80A9BE4 - movs r1, 0xFF - bl CreateTask - movs r0, 0x1 - add sp, 0x4 - pop {r1} - bx r1 - .align 2, 0 -_080A9BE0: .4byte sub_80A9BE4 - thumb_func_end sub_80A9BBC - - thumb_func_start sub_80A9BE4 -sub_80A9BE4: @ 80A9BE4 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080A9C14 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080A9C10 - adds r0, r2, 0 - bl DestroyTask - ldr r0, _080A9C18 @ =gUnknown_0203869A - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080A9C0C - bl sub_80AF668 -_080A9C0C: - bl sub_80C2358 -_080A9C10: - pop {r0} - bx r0 - .align 2, 0 -_080A9C14: .4byte gPaletteFade -_080A9C18: .4byte gUnknown_0203869A - thumb_func_end sub_80A9BE4 - - thumb_func_start sub_80A9C1C -sub_80A9C1C: @ 80A9C1C - push {lr} - ldr r1, _080A9C30 @ =gUnknown_0203869A - movs r0, 0 - strb r0, [r1] - bl sub_80AA10C - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080A9C30: .4byte gUnknown_0203869A - thumb_func_end sub_80A9C1C - - thumb_func_start sub_80A9C34 -sub_80A9C34: @ 80A9C34 - push {lr} - bl sub_80AA10C - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_80A9C34 - - thumb_func_start sub_80A9C40 -sub_80A9C40: @ 80A9C40 - push {r4,r5,lr} - ldr r5, _080A9C88 @ =sub_80A9E3C - adds r0, r5, 0 - movs r1, 0 - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r2, _080A9C8C @ =sub_80A9C98 - adds r0, r4, 0 - adds r1, r5, 0 - bl SetTaskFuncWithFollowupFunc - ldr r0, _080A9C90 @ =sub_80A9E04 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A9C94 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x1C] - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r2 - strh r0, [r1, 0x1C] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080A9C88: .4byte sub_80A9E3C -_080A9C8C: .4byte sub_80A9C98 -_080A9C90: .4byte sub_80A9E04 -_080A9C94: .4byte gTasks - thumb_func_end sub_80A9C40 - - thumb_func_start sub_80A9C98 -sub_80A9C98: @ 80A9C98 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl sub_80AE098 - ldr r1, _080A9CB8 @ =sub_80C8734 - ldr r2, _080A9CBC @ =sub_80A9CC0 - adds r0, r4, 0 - bl SetTaskFuncWithFollowupFunc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9CB8: .4byte sub_80C8734 -_080A9CBC: .4byte sub_80A9CC0 - thumb_func_end sub_80A9C98 - - thumb_func_start sub_80A9CC0 -sub_80A9CC0: @ 80A9CC0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080A9CD4 @ =sub_80C88AC - ldr r2, _080A9CD8 @ =sub_80A9CDC - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .align 2, 0 -_080A9CD4: .4byte sub_80C88AC -_080A9CD8: .4byte sub_80A9CDC - thumb_func_end sub_80A9CC0 - - thumb_func_start sub_80A9CDC -sub_80A9CDC: @ 80A9CDC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080A9CF0 @ =sub_80C8E1C - ldr r2, _080A9CF4 @ =sub_80A9D58 - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .align 2, 0 -_080A9CF0: .4byte sub_80C8E1C -_080A9CF4: .4byte sub_80A9D58 - thumb_func_end sub_80A9CDC - - thumb_func_start sub_80A9CF8 -sub_80A9CF8: @ 80A9CF8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A9D28 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _080A9D20 - ldr r0, _080A9D2C @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r0, [r1, 0x1C] - bl DestroyTask - adds r0, r4, 0 - bl DestroyTask - bl sub_8071C20 -_080A9D20: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9D28: .4byte gReceivedRemoteLinkPlayers -_080A9D2C: .4byte gTasks - thumb_func_end sub_80A9CF8 - - thumb_func_start sub_80A9D30 -sub_80A9D30: @ 80A9D30 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_800832C - ldr r1, _080A9D50 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A9D54 @ =sub_80A9CF8 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9D50: .4byte gTasks -_080A9D54: .4byte sub_80A9CF8 - thumb_func_end sub_80A9D30 - - thumb_func_start sub_80A9D58 -sub_80A9D58: @ 80A9D58 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - movs r3, 0 - ldr r1, _080A9DA8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, 0x12 - adds r2, r0, r1 -_080A9D6E: - mov r0, sp - adds r1, r0, r3 - ldrh r0, [r2] - strb r0, [r1] - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x3 - ble _080A9D6E - mov r0, sp - bl sub_80C4B34 - ldr r1, _080A9DAC @ =gUnknown_0203869B - strb r0, [r1] - ldr r0, _080A9DB0 @ =gScriptContestCategory - ldrb r0, [r0] - bl sub_80AE82C - movs r0, 0 - bl sub_80B0F28 - ldr r1, _080A9DB4 @ =sub_80C8EBC - ldr r2, _080A9DB8 @ =sub_80A9DBC - adds r0, r4, 0 - bl SetTaskFuncWithFollowupFunc - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9DA8: .4byte gTasks -_080A9DAC: .4byte gUnknown_0203869B -_080A9DB0: .4byte gScriptContestCategory -_080A9DB4: .4byte sub_80C8EBC -_080A9DB8: .4byte sub_80A9DBC - thumb_func_end sub_80A9D58 - - thumb_func_start sub_80A9DBC -sub_80A9DBC: @ 80A9DBC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080A9DD0 @ =sub_80C8F34 - ldr r2, _080A9DD4 @ =sub_80A9DD8 - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .align 2, 0 -_080A9DD0: .4byte sub_80C8F34 -_080A9DD4: .4byte sub_80A9DD8 - thumb_func_end sub_80A9DBC - - thumb_func_start sub_80A9DD8 -sub_80A9DD8: @ 80A9DD8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080A9E00 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x1C] - bl DestroyTask - adds r0, r4, 0 - bl DestroyTask - bl sub_8071C20 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9E00: .4byte gTasks - thumb_func_end sub_80A9DD8 - - thumb_func_start sub_80A9E04 -sub_80A9E04: @ 80A9E04 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080A9E30 @ =gMain - ldrh r0, [r0, 0x2E] - cmp r0, 0x2 - bne _080A9E2A - ldr r2, _080A9E34 @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r1, [r0, 0x1C] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, _080A9E38 @ =sub_80A9D30 - str r1, [r0] -_080A9E2A: - pop {r0} - bx r0 - .align 2, 0 -_080A9E30: .4byte gMain -_080A9E34: .4byte gTasks -_080A9E38: .4byte sub_80A9D30 - thumb_func_end sub_80A9E04 - - thumb_func_start sub_80A9E3C -sub_80A9E3C: @ 80A9E3C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl OpenLink - movs r1, 0 - ldr r3, _080A9E74 @ =gBlockRecvBuffer - movs r2, 0xFF -_080A9E4C: - lsls r0, r1, 8 - adds r0, r3 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _080A9E4C - ldr r1, _080A9E78 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - ldr r1, _080A9E7C @ =sub_80A9E80 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9E74: .4byte gBlockRecvBuffer -_080A9E78: .4byte gTasks -_080A9E7C: .4byte sub_80A9E80 - thumb_func_end sub_80A9E3C - - thumb_func_start sub_80A9E80 -sub_80A9E80: @ 80A9E80 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A9EA0 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r1, [r4, 0x8] - movs r2, 0x8 - ldrsh r0, [r4, r2] - cmp r0, 0x9 - bgt _080A9EA4 - adds r0, r1, 0x1 - strh r0, [r4, 0x8] - b _080A9ECC - .align 2, 0 -_080A9EA0: .4byte gTasks -_080A9EA4: - bl GetLinkPlayerCount_2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _080A9ECC - movs r0, 0 - strh r0, [r4, 0x8] - bl IsLinkMaster - lsls r0, 24 - cmp r0, 0 - beq _080A9EC8 - ldr r0, _080A9EC4 @ =sub_80A9ED8 - b _080A9ECA - .align 2, 0 -_080A9EC4: .4byte sub_80A9ED8 -_080A9EC8: - ldr r0, _080A9ED4 @ =sub_80A9F10 -_080A9ECA: - str r0, [r4] -_080A9ECC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9ED4: .4byte sub_80A9F10 - thumb_func_end sub_80A9E80 - - thumb_func_start sub_80A9ED8 -sub_80A9ED8: @ 80A9ED8 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A9F08 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x65 - bne _080A9F02 - bl sub_8007F4C - movs r0, 0 - strh r0, [r4, 0x8] - ldr r0, _080A9F0C @ =sub_80A9F10 - str r0, [r4] -_080A9F02: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9F08: .4byte gTasks -_080A9F0C: .4byte sub_80A9F10 - thumb_func_end sub_80A9ED8 - - thumb_func_start sub_80A9F10 -sub_80A9F10: @ 80A9F10 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A9F44 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _080A9F3E - bl GetMultiplayerId - ldr r1, _080A9F48 @ =gUnknown_02038695 - strb r0, [r1] - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _080A9F3E - ldr r1, _080A9F4C @ =gUnknown_0203869A - movs r0, 0x1 - strb r0, [r1] - adds r0, r4, 0 - bl SwitchTaskToFollowupFunc -_080A9F3E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9F44: .4byte gReceivedRemoteLinkPlayers -_080A9F48: .4byte gUnknown_02038695 -_080A9F4C: .4byte gUnknown_0203869A - thumb_func_end sub_80A9F10 - - thumb_func_start sub_80A9F50 -sub_80A9F50: @ 80A9F50 - push {r4,lr} - movs r2, 0x80 - lsls r2, 19 - movs r0, 0x40 - strh r0, [r2] - ldrh r0, [r2] - movs r3, 0x88 - lsls r3, 5 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - ldr r4, _080A9FB8 @ =gWindowConfig_81E6C3C - adds r0, r4, 0 - bl SetUpWindowConfig - ldr r0, _080A9FBC @ =gMenuWindow - adds r1, r4, 0 - bl InitWindowFromConfig - ldr r0, _080A9FC0 @ =REG_MOSAIC - movs r1, 0 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x44 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r0, _080A9FC4 @ =gUnknown_030042A4 - strh r1, [r0] - ldr r0, _080A9FC8 @ =gUnknown_030042A0 - strh r1, [r0] - ldr r0, _080A9FCC @ =gUnknown_030042C0 - strh r1, [r0] - ldr r0, _080A9FD0 @ =gUnknown_030041B4 - strh r1, [r0] - ldr r0, _080A9FD4 @ =gUnknown_03004288 - strh r1, [r0] - ldr r0, _080A9FD8 @ =gUnknown_03004280 - strh r1, [r0] - ldr r0, _080A9FDC @ =gUnknown_030041B0 - strh r1, [r0] - ldr r0, _080A9FE0 @ =gUnknown_030041B8 - strh r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9FB8: .4byte gWindowConfig_81E6C3C -_080A9FBC: .4byte gMenuWindow -_080A9FC0: .4byte REG_MOSAIC -_080A9FC4: .4byte gUnknown_030042A4 -_080A9FC8: .4byte gUnknown_030042A0 -_080A9FCC: .4byte gUnknown_030042C0 -_080A9FD0: .4byte gUnknown_030041B4 -_080A9FD4: .4byte gUnknown_03004288 -_080A9FD8: .4byte gUnknown_03004280 -_080A9FDC: .4byte gUnknown_030041B0 -_080A9FE0: .4byte gUnknown_030041B8 - thumb_func_end sub_80A9F50 - - thumb_func_start sub_80A9FE4 -sub_80A9FE4: @ 80A9FE4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - ldr r1, _080AA054 @ =gUnknown_083C9228 - mov r0, sp - movs r2, 0x5 - bl memcpy - movs r2, 0xC0 - lsls r2, 19 - movs r3, 0xC0 - lsls r3, 9 - add r5, sp, 0x8 - movs r6, 0 - ldr r1, _080AA058 @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - mov r12, r5 - ldr r7, _080AA05C @ =0x85000400 - movs r0, 0x85 - lsls r0, 24 - mov r8, r0 -_080AA012: - str r6, [sp, 0x8] - mov r0, r12 - str r0, [r1] - str r2, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080AA012 - str r6, [sp, 0x8] - str r5, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r8 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0xC0 - lsls r0, 19 - mov r1, sp - bl sub_80034D4 - ldr r0, _080AA060 @ =gWindowConfig_81E6C3C - bl LoadFontDefaultPalette - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AA054: .4byte gUnknown_083C9228 -_080AA058: .4byte 0x040000d4 -_080AA05C: .4byte 0x85000400 -_080AA060: .4byte gWindowConfig_81E6C3C - thumb_func_end sub_80A9FE4 - - thumb_func_start sub_80AA064 -sub_80AA064: @ 80AA064 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - bl RunTasks - bl UpdatePaletteFade - ldr r0, _080AA088 @ =gMain - ldrh r0, [r0, 0x2E] - cmp r0, 0x4 - bne _080AA084 - ldr r0, _080AA08C @ =sub_805469C - bl SetMainCallback2 -_080AA084: - pop {r0} - bx r0 - .align 2, 0 -_080AA088: .4byte gMain -_080AA08C: .4byte sub_805469C - thumb_func_end sub_80AA064 - - thumb_func_start sub_80AA090 -sub_80AA090: @ 80AA090 - push {lr} - ldr r1, _080AA0E8 @ =REG_BG0HOFS - ldr r0, _080AA0EC @ =gUnknown_030042A4 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080AA0F0 @ =gUnknown_030042A0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080AA0F4 @ =gUnknown_030042C0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080AA0F8 @ =gUnknown_030041B4 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080AA0FC @ =gUnknown_03004288 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080AA100 @ =gUnknown_03004280 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080AA104 @ =gUnknown_030041B0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080AA108 @ =gUnknown_030041B8 - ldrh r0, [r0] - strh r0, [r1] - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl sub_8089668 - pop {r0} - bx r0 - .align 2, 0 -_080AA0E8: .4byte REG_BG0HOFS -_080AA0EC: .4byte gUnknown_030042A4 -_080AA0F0: .4byte gUnknown_030042A0 -_080AA0F4: .4byte gUnknown_030042C0 -_080AA0F8: .4byte gUnknown_030041B4 -_080AA0FC: .4byte gUnknown_03004288 -_080AA100: .4byte gUnknown_03004280 -_080AA104: .4byte gUnknown_030041B0 -_080AA108: .4byte gUnknown_030041B8 - thumb_func_end sub_80AA090 - - thumb_func_start sub_80AA10C -sub_80AA10C: @ 80AA10C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r4, _080AA238 @ =gPaletteFade - ldrb r0, [r4, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r4, 0x8] - movs r0, 0 - bl SetVBlankCallback - bl sub_80A9F50 - bl dp12_8087EA4 - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - bl FreeAllSpritePalettes - bl sub_80A9FE4 - ldr r0, _080AA23C @ =sub_80AA090 - bl SetVBlankCallback - ldr r0, _080AA240 @ =sub_80AA064 - bl SetMainCallback2 - ldrb r1, [r4, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r4, 0x8] - ldr r4, _080AA244 @ =gUnknown_02038694 - movs r0, 0 - strb r0, [r4] - ldr r0, _080AA248 @ =gUnknown_02038570 - ldrb r0, [r0, 0x2] - cmp r0, 0 - bne _080AA16A - movs r0, 0 - movs r1, 0 - bl sub_80AE398 -_080AA16A: - ldrb r0, [r4] - bl sub_80AE098 - movs r5, 0 - ldr r6, _080AA24C @ =gUnknown_083C9276 - adds r0, r6, 0x1 - mov r8, r0 - ldr r7, _080AA250 @ =gUnknown_083C9364 -_080AA17A: - lsls r2, r5, 2 - adds r0, r2, r7 - ldr r1, [r0] - adds r2, r5 - lsls r2, 17 - movs r0, 0xA8 - lsls r0, 14 - adds r2, r0 - lsrs r2, 16 - lsls r4, r5, 1 - adds r0, r4, r6 - ldrb r3, [r0] - add r4, r8 - ldrb r0, [r4] - str r0, [sp] - ldr r0, _080AA254 @ =gMenuWindow - bl sub_8003460 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _080AA17A - ldr r1, _080AA258 @ =gScriptContestCategory - ldr r4, _080AA25C @ =gScriptContestRank - movs r0, 0 - strh r0, [r4] - strh r0, [r1] - movs r5, 0 - movs r0, 0 - bl sub_80AA5BC - ldrb r0, [r4] - bl sub_80AA5E8 - ldr r4, _080AA254 @ =gMenuWindow - ldr r1, _080AA260 @ =gUnknown_083C9337 - movs r0, 0x12 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0xD6 - movs r3, 0x12 - bl sub_8003460 - ldr r1, _080AA264 @ =gUnknown_083C933B - movs r0, 0xC - str r0, [sp] - adds r0, r4, 0 - movs r2, 0xDC - movs r3, 0 - bl sub_8003460 - ldr r0, _080AA268 @ =gUnknown_083C92B4 - bl LoadSpriteSheet - ldr r0, _080AA26C @ =gUnknown_083C92BC - bl LoadSpritePalette - movs r0, 0x3 - bl sub_80AA280 - movs r0, 0x3 - bl sub_80AA658 - movs r0, 0x3 - movs r1, 0 - bl sub_80AA614 - ldr r0, _080AA270 @ =gSpriteTemplate_83C92CC - ldr r1, _080AA274 @ =gUnknown_083C9296 - ldrb r1, [r1, 0x3] - ldr r2, _080AA278 @ =gUnknown_083C92A8 - ldrb r2, [r2, 0x1] - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080AA27C @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x1 - strh r0, [r1, 0x2E] - strh r0, [r1, 0x30] - movs r0, 0x3 - strh r0, [r1, 0x32] - strh r5, [r1, 0x34] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AA238: .4byte gPaletteFade -_080AA23C: .4byte sub_80AA090 -_080AA240: .4byte sub_80AA064 -_080AA244: .4byte gUnknown_02038694 -_080AA248: .4byte gUnknown_02038570 -_080AA24C: .4byte gUnknown_083C9276 -_080AA250: .4byte gUnknown_083C9364 -_080AA254: .4byte gMenuWindow -_080AA258: .4byte gScriptContestCategory -_080AA25C: .4byte gScriptContestRank -_080AA260: .4byte gUnknown_083C9337 -_080AA264: .4byte gUnknown_083C933B -_080AA268: .4byte gUnknown_083C92B4 -_080AA26C: .4byte gUnknown_083C92BC -_080AA270: .4byte gSpriteTemplate_83C92CC -_080AA274: .4byte gUnknown_083C9296 -_080AA278: .4byte gUnknown_083C92A8 -_080AA27C: .4byte gSprites - thumb_func_end sub_80AA10C - - thumb_func_start sub_80AA280 -sub_80AA280: @ 80AA280 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _080AA2E8 @ =gMenuWindow - movs r1, 0x1E - str r1, [sp] - movs r1, 0x3 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillWindowRect_DefaultPalette - ldr r4, _080AA2EC @ =0x02000000 - ldr r1, _080AA2F0 @ =gUnknown_083C932C - adds r0, r4, 0 - bl StringCopy - lsls r1, r7, 6 - ldr r0, _080AA2F4 @ =gUnknown_0203857D - adds r1, r0 - adds r0, r4, 0 - bl StringAppend - movs r5, 0 - ldr r6, _080AA2F8 @ =gUnknown_083C926E - adds r0, r6, 0x1 - mov r8, r0 -_080AA2BE: - cmp r7, r5 - bne _080AA2FC - lsls r2, r5, 2 - adds r2, r5 - lsls r2, 17 - movs r0, 0x80 - lsls r0, 10 - adds r2, r0 - lsrs r2, 16 - lsls r1, r5, 1 - adds r0, r1, r6 - ldrb r3, [r0] - add r1, r8 - ldrb r0, [r1] - str r0, [sp] - ldr r0, _080AA2E8 @ =gMenuWindow - ldr r1, _080AA2EC @ =0x02000000 - bl sub_8003460 - b _080AA322 - .align 2, 0 -_080AA2E8: .4byte gMenuWindow -_080AA2EC: .4byte 0x02000000 -_080AA2F0: .4byte gUnknown_083C932C -_080AA2F4: .4byte gUnknown_0203857D -_080AA2F8: .4byte gUnknown_083C926E -_080AA2FC: - lsls r1, r5, 6 - ldr r0, _080AA338 @ =gUnknown_0203857D - adds r1, r0 - lsls r2, r5, 2 - adds r2, r5 - lsls r2, 17 - movs r0, 0x80 - lsls r0, 10 - adds r2, r0 - lsrs r2, 16 - lsls r4, r5, 1 - adds r0, r4, r6 - ldrb r3, [r0] - add r4, r8 - ldrb r0, [r4] - str r0, [sp] - ldr r0, _080AA33C @ =gMenuWindow - bl sub_8003460 -_080AA322: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _080AA2BE - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AA338: .4byte gUnknown_0203857D -_080AA33C: .4byte gMenuWindow - thumb_func_end sub_80AA280 - - thumb_func_start sub_80AA340 -sub_80AA340: @ 80AA340 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - ldr r4, _080AA378 @ =0x02000000 - ldr r1, _080AA37C @ =gUnknown_02038570 - lsrs r0, 18 - adds r0, r1 - adds r0, 0x26 - ldrb r1, [r0] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, _080AA380 @ =gMenuWindow - ldr r1, _080AA384 @ =gUnknown_083C9282 - ldrb r3, [r1] - ldrb r1, [r1, 0x1] - str r1, [sp] - adds r1, r4, 0 - movs r2, 0x66 - bl sub_8003460 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AA378: .4byte 0x02000000 -_080AA37C: .4byte gUnknown_02038570 -_080AA380: .4byte gMenuWindow -_080AA384: .4byte gUnknown_083C9282 - thumb_func_end sub_80AA340 - - thumb_func_start sub_80AA388 -sub_80AA388: @ 80AA388 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - ldr r4, _080AA3C0 @ =0x02000000 - ldr r1, _080AA3C4 @ =gUnknown_02038570 - lsrs r0, 18 - adds r0, r1 - adds r0, 0x28 - ldrb r1, [r0] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, _080AA3C8 @ =gMenuWindow - ldr r1, _080AA3CC @ =gUnknown_083C9282 - ldrb r3, [r1, 0x2] - ldrb r1, [r1, 0x3] - str r1, [sp] - adds r1, r4, 0 - movs r2, 0x6C - bl sub_8003460 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AA3C0: .4byte 0x02000000 -_080AA3C4: .4byte gUnknown_02038570 -_080AA3C8: .4byte gMenuWindow -_080AA3CC: .4byte gUnknown_083C9282 - thumb_func_end sub_80AA388 - - thumb_func_start sub_80AA3D0 -sub_80AA3D0: @ 80AA3D0 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - ldr r4, _080AA408 @ =0x02000000 - ldr r1, _080AA40C @ =gUnknown_02038570 - lsrs r0, 18 - adds r0, r1 - adds r0, 0x27 - ldrb r1, [r0] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, _080AA410 @ =gMenuWindow - ldr r1, _080AA414 @ =gUnknown_083C9282 - ldrb r3, [r1, 0x4] - ldrb r1, [r1, 0x5] - str r1, [sp] - adds r1, r4, 0 - movs r2, 0x72 - bl sub_8003460 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AA408: .4byte 0x02000000 -_080AA40C: .4byte gUnknown_02038570 -_080AA410: .4byte gMenuWindow -_080AA414: .4byte gUnknown_083C9282 - thumb_func_end sub_80AA3D0 - - thumb_func_start sub_80AA418 -sub_80AA418: @ 80AA418 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - ldr r4, _080AA450 @ =0x02000000 - ldr r1, _080AA454 @ =gUnknown_02038570 - lsrs r0, 18 - adds r0, r1 - adds r0, 0x29 - ldrb r1, [r0] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, _080AA458 @ =gMenuWindow - ldr r1, _080AA45C @ =gUnknown_083C9282 - ldrb r3, [r1, 0x6] - ldrb r1, [r1, 0x7] - str r1, [sp] - adds r1, r4, 0 - movs r2, 0x78 - bl sub_8003460 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AA450: .4byte 0x02000000 -_080AA454: .4byte gUnknown_02038570 -_080AA458: .4byte gMenuWindow -_080AA45C: .4byte gUnknown_083C9282 - thumb_func_end sub_80AA418 - - thumb_func_start sub_80AA460 -sub_80AA460: @ 80AA460 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - ldr r4, _080AA498 @ =0x02000000 - ldr r1, _080AA49C @ =gUnknown_02038570 - lsrs r0, 18 - adds r0, r1 - adds r0, 0x2A - ldrb r1, [r0] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, _080AA4A0 @ =gMenuWindow - ldr r1, _080AA4A4 @ =gUnknown_083C9282 - ldrb r3, [r1, 0x8] - ldrb r1, [r1, 0x9] - str r1, [sp] - adds r1, r4, 0 - movs r2, 0x7E - bl sub_8003460 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AA498: .4byte 0x02000000 -_080AA49C: .4byte gUnknown_02038570 -_080AA4A0: .4byte gMenuWindow -_080AA4A4: .4byte gUnknown_083C9282 - thumb_func_end sub_80AA460 - - thumb_func_start sub_80AA4A8 -sub_80AA4A8: @ 80AA4A8 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - ldr r4, _080AA4E0 @ =0x02000000 - ldr r1, _080AA4E4 @ =gUnknown_02038570 - lsrs r0, 18 - adds r0, r1 - adds r0, 0x2B - ldrb r1, [r0] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, _080AA4E8 @ =gMenuWindow - ldr r1, _080AA4EC @ =gUnknown_083C9282 - ldrb r3, [r1, 0xA] - ldrb r1, [r1, 0xB] - str r1, [sp] - adds r1, r4, 0 - movs r2, 0x84 - bl sub_8003460 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AA4E0: .4byte 0x02000000 -_080AA4E4: .4byte gUnknown_02038570 -_080AA4E8: .4byte gMenuWindow -_080AA4EC: .4byte gUnknown_083C9282 - thumb_func_end sub_80AA4A8 - - thumb_func_start sub_80AA4F0 -sub_80AA4F0: @ 80AA4F0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r4, r0, 0 - adds r6, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - ldr r7, _080AA5A8 @ =gMenuWindow - ldr r0, _080AA5AC @ =gUnknown_083C928E - lsls r5, r6, 1 - adds r1, r5, r0 - ldrb r1, [r1] - mov r9, r1 - adds r0, 0x1 - adds r0, r5, r0 - ldrb r0, [r0] - mov r10, r0 - movs r0, 0x7 - add r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - str r0, [sp] - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - adds r0, r7, 0 - movs r1, 0 - mov r2, r9 - mov r3, r10 - bl FillWindowRect_DefaultPalette - ldr r0, _080AA5B0 @ =gUnknown_02038570 - lsls r4, 6 - adds r4, r5, r4 - adds r0, 0x1E - adds r4, r0 - ldrh r1, [r4] - movs r0, 0xD - muls r1, r0 - ldr r0, _080AA5B4 @ =gMoveNames - adds r1, r0 - lsls r2, r6, 3 - subs r2, r6 - lsls r2, 17 - movs r0, 0x8A - lsls r0, 16 - adds r2, r0 - lsrs r2, 16 - mov r0, r10 - str r0, [sp] - adds r0, r7, 0 - mov r3, r9 - bl sub_8003460 - ldr r0, _080AA5B8 @ =gStringVar1 - mov r9, r0 - ldrh r1, [r4] - movs r2, 0x2 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r5, r6 - lsls r5, 17 - movs r0, 0xFA - lsls r0, 16 - adds r5, r0 - lsrs r5, 16 - mov r0, r10 - str r0, [sp] - adds r0, r7, 0 - mov r1, r9 - adds r2, r5, 0 - mov r3, r8 - bl sub_8003460 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AA5A8: .4byte gMenuWindow -_080AA5AC: .4byte gUnknown_083C928E -_080AA5B0: .4byte gUnknown_02038570 -_080AA5B4: .4byte gMoveNames -_080AA5B8: .4byte gStringVar1 - thumb_func_end sub_80AA4F0 - - thumb_func_start sub_80AA5BC -sub_80AA5BC: @ 80AA5BC - push {lr} - sub sp, 0x4 - lsls r0, 24 - ldr r2, _080AA5E0 @ =gMenuWindow - ldr r1, _080AA5E4 @ =gUnknown_083C93B4 - lsrs r0, 22 - adds r0, r1 - ldr r1, [r0] - movs r0, 0x12 - str r0, [sp] - adds r0, r2, 0 - movs r2, 0xC2 - movs r3, 0x3 - bl sub_8003460 - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080AA5E0: .4byte gMenuWindow -_080AA5E4: .4byte gUnknown_083C93B4 - thumb_func_end sub_80AA5BC - - thumb_func_start sub_80AA5E8 -sub_80AA5E8: @ 80AA5E8 - push {lr} - sub sp, 0x4 - lsls r0, 24 - ldr r2, _080AA60C @ =gMenuWindow - ldr r1, _080AA610 @ =gUnknown_083C93F0 - lsrs r0, 22 - adds r0, r1 - ldr r1, [r0] - movs r0, 0x4 - str r0, [sp] - adds r0, r2, 0 - movs r2, 0xE8 - movs r3, 0x3 - bl sub_8003460 - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080AA60C: .4byte gMenuWindow -_080AA610: .4byte gUnknown_083C93F0 - thumb_func_end sub_80AA5E8 - - thumb_func_start sub_80AA614 -sub_80AA614: @ 80AA614 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - bl sub_80AE770 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r4, _080AA650 @ =0x02000000 - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, _080AA654 @ =gMenuWindow - movs r1, 0xC - str r1, [sp] - adds r1, r4, 0 - movs r2, 0xE2 - movs r3, 0x3 - bl sub_8003460 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AA650: .4byte 0x02000000 -_080AA654: .4byte gMenuWindow - thumb_func_end sub_80AA614 - - thumb_func_start sub_80AA658 -sub_80AA658: @ 80AA658 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl sub_80AA340 - adds r0, r5, 0 - bl sub_80AA388 - adds r0, r5, 0 - bl sub_80AA3D0 - adds r0, r5, 0 - bl sub_80AA418 - adds r0, r5, 0 - bl sub_80AA460 - adds r0, r5, 0 - bl sub_80AA4A8 - movs r4, 0 -_080AA684: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80AA4F0 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080AA684 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80AA658 - - thumb_func_start sub_80AA69C -sub_80AA69C: @ 80AA69C - push {r4-r6,lr} - ldr r6, _080AA748 @ =gPlayerParty - ldr r5, _080AA74C @ =gUnknown_02038695 - ldrb r2, [r5] - lsls r2, 6 - ldr r4, _080AA750 @ =gUnknown_02038596 - adds r2, r4 - adds r0, r6, 0 - movs r1, 0x16 - bl SetMonData - ldrb r2, [r5] - lsls r2, 6 - adds r0, r4, 0x2 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x18 - bl SetMonData - ldrb r2, [r5] - lsls r2, 6 - adds r0, r4, 0x1 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x17 - bl SetMonData - ldrb r2, [r5] - lsls r2, 6 - adds r0, r4, 0x3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x21 - bl SetMonData - ldrb r2, [r5] - lsls r2, 6 - adds r0, r4, 0x4 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x2F - bl SetMonData - ldrb r2, [r5] - lsls r2, 6 - adds r0, r4, 0x5 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x30 - bl SetMonData - ldrb r2, [r5] - lsls r2, 6 - subs r4, 0x8 - adds r2, r4 - adds r0, r6, 0 - movs r1, 0xD - bl SetMonData - ldrb r2, [r5] - lsls r2, 6 - adds r2, r4 - adds r2, 0x2 - adds r0, r6, 0 - movs r1, 0xE - bl SetMonData - ldrb r2, [r5] - lsls r2, 6 - adds r2, r4 - adds r2, 0x4 - adds r0, r6, 0 - movs r1, 0xF - bl SetMonData - ldrb r2, [r5] - lsls r2, 6 - adds r2, r4 - adds r2, 0x6 - adds r0, r6, 0 - movs r1, 0x10 - bl SetMonData - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AA748: .4byte gPlayerParty -_080AA74C: .4byte gUnknown_02038695 -_080AA750: .4byte gUnknown_02038596 - thumb_func_end sub_80AA69C - - thumb_func_start sub_80AA754 -sub_80AA754: @ 80AA754 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080AA774 @ =gMain - ldrh r1, [r0, 0x30] - cmp r1, 0x20 - beq _080AA7A2 - cmp r1, 0x20 - bgt _080AA782 - cmp r1, 0x2 - beq _080AA7F8 - cmp r1, 0x2 - bgt _080AA778 - cmp r1, 0x1 - beq _080AA7D8 - b _080AA870 - .align 2, 0 -_080AA774: .4byte gMain -_080AA778: - cmp r1, 0x8 - beq _080AA868 - cmp r1, 0x10 - beq _080AA7A2 - b _080AA870 -_080AA782: - cmp r1, 0x80 - beq _080AA7C2 - cmp r1, 0x80 - bgt _080AA790 - cmp r1, 0x40 - beq _080AA7AC - b _080AA870 -_080AA790: - movs r0, 0x80 - lsls r0, 1 - cmp r1, r0 - beq _080AA814 - movs r0, 0x80 - lsls r0, 2 - cmp r1, r0 - beq _080AA834 - b _080AA870 -_080AA7A2: - ldrh r0, [r4, 0x2E] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x2E] - b _080AA870 -_080AA7AC: - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080AA7BC - movs r0, 0x8 - strh r0, [r4, 0x30] - b _080AA870 -_080AA7BC: - subs r0, r1, 0x1 - strh r0, [r4, 0x30] - b _080AA870 -_080AA7C2: - ldrh r1, [r4, 0x30] - movs r3, 0x30 - ldrsh r0, [r4, r3] - cmp r0, 0x8 - bne _080AA7D2 - movs r0, 0 - strh r0, [r4, 0x30] - b _080AA870 -_080AA7D2: - adds r0, r1, 0x1 - strh r0, [r4, 0x30] - b _080AA870 -_080AA7D8: - ldr r2, _080AA7F4 @ =gUnknown_083C92E4 - movs r1, 0x2E - ldrsh r0, [r4, r1] - lsls r0, 2 - movs r3, 0x30 - ldrsh r1, [r4, r3] - lsls r1, 3 - adds r0, r1 - adds r0, r2 - ldr r2, [r0] - adds r0, r4, 0 - movs r1, 0x1 - b _080AA84E - .align 2, 0 -_080AA7F4: .4byte gUnknown_083C92E4 -_080AA7F8: - ldr r1, _080AA810 @ =gUnknown_083C92E4 - movs r0, 0x2E - ldrsh r2, [r4, r0] - lsls r2, 2 - movs r3, 0x30 - ldrsh r0, [r4, r3] - lsls r0, 3 - adds r2, r0 - adds r2, r1 - movs r1, 0x1 - negs r1, r1 - b _080AA84A - .align 2, 0 -_080AA810: .4byte gUnknown_083C92E4 -_080AA814: - ldr r2, _080AA830 @ =gUnknown_083C92E4 - movs r1, 0x2E - ldrsh r0, [r4, r1] - lsls r0, 2 - movs r3, 0x30 - ldrsh r1, [r4, r3] - lsls r1, 3 - adds r0, r1 - adds r0, r2 - ldr r2, [r0] - adds r0, r4, 0 - movs r1, 0xA - b _080AA84E - .align 2, 0 -_080AA830: .4byte gUnknown_083C92E4 -_080AA834: - ldr r1, _080AA864 @ =gUnknown_083C92E4 - movs r0, 0x2E - ldrsh r2, [r4, r0] - lsls r2, 2 - movs r3, 0x30 - ldrsh r0, [r4, r3] - lsls r0, 3 - adds r2, r0 - adds r2, r1 - movs r1, 0xA - negs r1, r1 -_080AA84A: - ldr r2, [r2] - adds r0, r4, 0 -_080AA84E: - bl _call_via_r2 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x34] - lsls r1, 24 - lsrs r1, 24 - bl sub_80AA614 - b _080AA870 - .align 2, 0 -_080AA864: .4byte gUnknown_083C92E4 -_080AA868: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80AAD08 -_080AA870: - ldr r2, _080AA898 @ =gUnknown_083C9296 - movs r0, 0x2E - ldrsh r1, [r4, r0] - movs r3, 0x30 - ldrsh r0, [r4, r3] - lsls r0, 1 - adds r1, r0 - adds r1, r2 - ldrb r0, [r1] - strh r0, [r4, 0x20] - ldr r1, _080AA89C @ =gUnknown_083C92A8 - movs r2, 0x30 - ldrsh r0, [r4, r2] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r4, 0x22] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AA898: .4byte gUnknown_083C9296 -_080AA89C: .4byte gUnknown_083C92A8 - thumb_func_end sub_80AA754 - - thumb_func_start sub_80AA8A0 -sub_80AA8A0: @ 80AA8A0 - push {r4,lr} - adds r4, r0, 0 - lsls r2, 24 - lsrs r0, r2, 24 - lsls r1, 24 - asrs r1, 24 - cmp r1, 0x1 - bne _080AA8C0 - strh r0, [r4, 0x32] - bl sub_80AA280 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80AA658 -_080AA8C0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AA8A0 - - thumb_func_start sub_80AA8C8 -sub_80AA8C8: @ 80AA8C8 - push {lr} - lsls r1, 24 - asrs r1, 24 - movs r2, 0 - bl sub_80AA8A0 - pop {r0} - bx r0 - thumb_func_end sub_80AA8C8 - - thumb_func_start sub_80AA8D8 -sub_80AA8D8: @ 80AA8D8 - push {lr} - lsls r1, 24 - asrs r1, 24 - movs r2, 0x1 - bl sub_80AA8A0 - pop {r0} - bx r0 - thumb_func_end sub_80AA8D8 - - thumb_func_start sub_80AA8E8 -sub_80AA8E8: @ 80AA8E8 - push {lr} - lsls r1, 24 - asrs r1, 24 - movs r2, 0x2 - bl sub_80AA8A0 - pop {r0} - bx r0 - thumb_func_end sub_80AA8E8 - - thumb_func_start sub_80AA8F8 -sub_80AA8F8: @ 80AA8F8 - push {lr} - lsls r1, 24 - asrs r1, 24 - movs r2, 0x3 - bl sub_80AA8A0 - pop {r0} - bx r0 - thumb_func_end sub_80AA8F8 - - thumb_func_start sub_80AA908 -sub_80AA908: @ 80AA908 - push {lr} - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - asrs r2, 24 - adds r2, r1 - lsls r2, 16 - lsrs r0, r2, 16 - asrs r2, 16 - cmp r2, 0xFF - ble _080AA922 - movs r0, 0xFF - b _080AA928 -_080AA922: - cmp r2, 0 - bge _080AA928 - movs r0, 0 -_080AA928: - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80AA908 - - thumb_func_start sub_80AA930 -sub_80AA930: @ 80AA930 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080AA970 @ =gUnknown_02038570 - movs r3, 0x32 - ldrsh r2, [r4, r3] - lsls r2, 6 - adds r2, r5 - adds r2, 0x26 - ldrb r3, [r2] - lsls r2, r1, 24 - asrs r2, 24 - adds r1, r3, 0 - bl sub_80AA908 - movs r2, 0x32 - ldrsh r1, [r4, r2] - lsls r1, 6 - adds r1, r5 - adds r1, 0x26 - strb r0, [r1] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80AA340 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA970: .4byte gUnknown_02038570 - thumb_func_end sub_80AA930 - - thumb_func_start sub_80AA974 -sub_80AA974: @ 80AA974 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080AA9B4 @ =gUnknown_02038570 - movs r3, 0x32 - ldrsh r2, [r4, r3] - lsls r2, 6 - adds r2, r5 - adds r2, 0x28 - ldrb r3, [r2] - lsls r2, r1, 24 - asrs r2, 24 - adds r1, r3, 0 - bl sub_80AA908 - movs r2, 0x32 - ldrsh r1, [r4, r2] - lsls r1, 6 - adds r1, r5 - adds r1, 0x28 - strb r0, [r1] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80AA388 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA9B4: .4byte gUnknown_02038570 - thumb_func_end sub_80AA974 - - thumb_func_start sub_80AA9B8 -sub_80AA9B8: @ 80AA9B8 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080AA9F8 @ =gUnknown_02038570 - movs r3, 0x32 - ldrsh r2, [r4, r3] - lsls r2, 6 - adds r2, r5 - adds r2, 0x27 - ldrb r3, [r2] - lsls r2, r1, 24 - asrs r2, 24 - adds r1, r3, 0 - bl sub_80AA908 - movs r2, 0x32 - ldrsh r1, [r4, r2] - lsls r1, 6 - adds r1, r5 - adds r1, 0x27 - strb r0, [r1] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80AA3D0 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA9F8: .4byte gUnknown_02038570 - thumb_func_end sub_80AA9B8 - - thumb_func_start sub_80AA9FC -sub_80AA9FC: @ 80AA9FC - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080AAA3C @ =gUnknown_02038570 - movs r3, 0x32 - ldrsh r2, [r4, r3] - lsls r2, 6 - adds r2, r5 - adds r2, 0x29 - ldrb r3, [r2] - lsls r2, r1, 24 - asrs r2, 24 - adds r1, r3, 0 - bl sub_80AA908 - movs r2, 0x32 - ldrsh r1, [r4, r2] - lsls r1, 6 - adds r1, r5 - adds r1, 0x29 - strb r0, [r1] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80AA418 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AAA3C: .4byte gUnknown_02038570 - thumb_func_end sub_80AA9FC - - thumb_func_start sub_80AAA40 -sub_80AAA40: @ 80AAA40 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080AAA80 @ =gUnknown_02038570 - movs r3, 0x32 - ldrsh r2, [r4, r3] - lsls r2, 6 - adds r2, r5 - adds r2, 0x2A - ldrb r3, [r2] - lsls r2, r1, 24 - asrs r2, 24 - adds r1, r3, 0 - bl sub_80AA908 - movs r2, 0x32 - ldrsh r1, [r4, r2] - lsls r1, 6 - adds r1, r5 - adds r1, 0x2A - strb r0, [r1] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80AA460 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AAA80: .4byte gUnknown_02038570 - thumb_func_end sub_80AAA40 - - thumb_func_start sub_80AAA84 -sub_80AAA84: @ 80AAA84 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080AAAC4 @ =gUnknown_02038570 - movs r3, 0x32 - ldrsh r2, [r4, r3] - lsls r2, 6 - adds r2, r5 - adds r2, 0x2B - ldrb r3, [r2] - lsls r2, r1, 24 - asrs r2, 24 - adds r1, r3, 0 - bl sub_80AA908 - movs r2, 0x32 - ldrsh r1, [r4, r2] - lsls r1, 6 - adds r1, r5 - adds r1, 0x2B - strb r0, [r1] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80AA4A8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AAAC4: .4byte gUnknown_02038570 - thumb_func_end sub_80AAA84 - - thumb_func_start sub_80AAAC8 -sub_80AAAC8: @ 80AAAC8 - push {lr} - lsls r1, 16 - lsrs r1, 16 - lsls r2, 24 - asrs r2, 24 - adds r1, r2 - lsls r1, 16 - lsrs r0, r1, 16 - asrs r1, 16 - movs r2, 0xB1 - lsls r2, 1 - cmp r1, r2 - ble _080AAAE6 - movs r0, 0x1 - b _080AAAEC -_080AAAE6: - cmp r1, 0 - bge _080AAAEC - adds r0, r2, 0 -_080AAAEC: - pop {r1} - bx r1 - thumb_func_end sub_80AAAC8 - - thumb_func_start sub_80AAAF0 -sub_80AAAF0: @ 80AAAF0 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080AAB2C @ =gUnknown_02038570 - movs r3, 0x32 - ldrsh r2, [r4, r3] - lsls r2, 6 - adds r2, r5 - ldrh r3, [r2, 0x1E] - lsls r2, r1, 24 - asrs r2, 24 - adds r1, r3, 0 - bl sub_80AAAC8 - movs r2, 0x32 - ldrsh r1, [r4, r2] - lsls r1, 6 - adds r1, r5 - strh r0, [r1, 0x1E] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_80AA4F0 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AAB2C: .4byte gUnknown_02038570 - thumb_func_end sub_80AAAF0 - - thumb_func_start sub_80AAB30 -sub_80AAB30: @ 80AAB30 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080AAB6C @ =gUnknown_02038570 - movs r3, 0x32 - ldrsh r2, [r4, r3] - lsls r2, 6 - adds r2, r5 - ldrh r3, [r2, 0x20] - lsls r2, r1, 24 - asrs r2, 24 - adds r1, r3, 0 - bl sub_80AAAC8 - movs r2, 0x32 - ldrsh r1, [r4, r2] - lsls r1, 6 - adds r1, r5 - strh r0, [r1, 0x20] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl sub_80AA4F0 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AAB6C: .4byte gUnknown_02038570 - thumb_func_end sub_80AAB30 - - thumb_func_start sub_80AAB70 -sub_80AAB70: @ 80AAB70 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080AABAC @ =gUnknown_02038570 - movs r3, 0x32 - ldrsh r2, [r4, r3] - lsls r2, 6 - adds r2, r5 - ldrh r3, [r2, 0x22] - lsls r2, r1, 24 - asrs r2, 24 - adds r1, r3, 0 - bl sub_80AAAC8 - movs r2, 0x32 - ldrsh r1, [r4, r2] - lsls r1, 6 - adds r1, r5 - strh r0, [r1, 0x22] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl sub_80AA4F0 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AABAC: .4byte gUnknown_02038570 - thumb_func_end sub_80AAB70 - - thumb_func_start sub_80AABB0 -sub_80AABB0: @ 80AABB0 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080AABEC @ =gUnknown_02038570 - movs r3, 0x32 - ldrsh r2, [r4, r3] - lsls r2, 6 - adds r2, r5 - ldrh r3, [r2, 0x24] - lsls r2, r1, 24 - asrs r2, 24 - adds r1, r3, 0 - bl sub_80AAAC8 - movs r2, 0x32 - ldrsh r1, [r4, r2] - lsls r1, 6 - adds r1, r5 - strh r0, [r1, 0x24] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - bl sub_80AA4F0 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AABEC: .4byte gUnknown_02038570 - thumb_func_end sub_80AABB0 - - thumb_func_start sub_80AABF0 -sub_80AABF0: @ 80AABF0 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - movs r0, 0xFF - cmp r1, 0 - ble _080AABFE - movs r0, 0x1 -_080AABFE: - lsls r0, 24 - asrs r0, 24 - ldrh r1, [r5, 0x34] - adds r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - asrs r0, 24 - cmp r0, 0 - bge _080AAC14 - movs r4, 0 - b _080AAC1A -_080AAC14: - cmp r0, 0x4 - ble _080AAC1A - movs r4, 0x4 -_080AAC1A: - lsls r4, 24 - lsrs r0, r4, 24 - bl sub_80AA5BC - asrs r4, 24 - strh r4, [r5, 0x34] - ldr r0, _080AAC54 @ =gScriptContestCategory - strh r4, [r0] - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080AAC58 @ =gScriptContestRank - ldrb r1, [r0] - adds r0, r4, 0 - bl sub_80AE398 - ldrh r0, [r5, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80AA280 - ldrh r0, [r5, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80AA658 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AAC54: .4byte gScriptContestCategory -_080AAC58: .4byte gScriptContestRank - thumb_func_end sub_80AABF0 - - thumb_func_start sub_80AAC5C -sub_80AAC5C: @ 80AAC5C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - cmp r1, 0 - ble _080AAC78 - ldr r1, _080AAC74 @ =gScriptContestRank - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - adds r4, r1, 0 - b _080AAC86 - .align 2, 0 -_080AAC74: .4byte gScriptContestRank -_080AAC78: - ldr r0, _080AACBC @ =gScriptContestRank - ldrh r2, [r0] - adds r4, r0, 0 - cmp r2, 0 - beq _080AAC86 - subs r0, r2, 0x1 - strh r0, [r4] -_080AAC86: - adds r1, r4, 0 - ldrh r0, [r1] - cmp r0, 0x3 - bls _080AAC92 - movs r0, 0x3 - strh r0, [r1] -_080AAC92: - ldrb r0, [r4] - bl sub_80AA5E8 - ldr r0, _080AACC0 @ =gScriptContestCategory - ldrb r0, [r0] - ldrb r1, [r4] - bl sub_80AE398 - ldrh r0, [r5, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80AA280 - ldrh r0, [r5, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80AA658 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AACBC: .4byte gScriptContestRank -_080AACC0: .4byte gScriptContestCategory - thumb_func_end sub_80AAC5C - - thumb_func_start sub_80AACC4 -sub_80AACC4: @ 80AACC4 - push {lr} - bl UpdatePaletteFade - ldr r0, _080AACF8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080AACF4 - bl sub_80AA69C - ldr r0, _080AACFC @ =gUnknown_0203869A - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080AACEE - ldr r0, _080AAD00 @ =0x02000000 - ldrb r0, [r0] - bl sub_80AE82C -_080AACEE: - ldr r0, _080AAD04 @ =sub_80AB47C - bl SetMainCallback2 -_080AACF4: - pop {r0} - bx r0 - .align 2, 0 -_080AACF8: .4byte gPaletteFade -_080AACFC: .4byte gUnknown_0203869A -_080AAD00: .4byte 0x02000000 -_080AAD04: .4byte sub_80AB47C - thumb_func_end sub_80AACC4 - - thumb_func_start sub_80AAD08 -sub_80AAD08: @ 80AAD08 - push {r4,lr} - sub sp, 0x4 - lsls r1, 24 - asrs r1, 24 - cmp r1, 0x1 - bne _080AAD32 - ldr r1, _080AAD3C @ =0x02000000 - ldrh r0, [r0, 0x34] - movs r4, 0 - strb r0, [r1] - ldr r0, _080AAD40 @ =sub_80AACC4 - bl SetMainCallback2 - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_080AAD32: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AAD3C: .4byte 0x02000000 -_080AAD40: .4byte sub_80AACC4 - thumb_func_end sub_80AAD08 - - thumb_func_start sub_80AAD44 -sub_80AAD44: @ 80AAD44 - push {r4,r5,lr} - lsls r1, 24 - asrs r1, 24 - cmp r1, 0x1 - bne _080AAD72 - bl sub_80AA69C - movs r4, 0 - ldr r5, _080AAD78 @ =gUnknown_02038670 -_080AAD56: - lsls r0, r4, 24 - lsrs r0, 24 - ldr r1, _080AAD7C @ =gScriptContestCategory - ldrb r1, [r1] - bl sub_80AE770 - strh r0, [r5] - adds r5, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _080AAD56 - ldr r0, _080AAD80 @ =sub_805469C - bl SetMainCallback2 -_080AAD72: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AAD78: .4byte gUnknown_02038670 -_080AAD7C: .4byte gScriptContestCategory -_080AAD80: .4byte sub_805469C - thumb_func_end sub_80AAD44 - - thumb_func_start sub_80AAD84 -sub_80AAD84: @ 80AAD84 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x64 - mov r9, r0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x48] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x4C] - lsls r3, 24 - lsrs r3, 24 - mov r10, r3 - mov r5, r10 - adds r5, 0x1 - lsls r1, r5, 8 - ldr r0, _080AAEC4 @ =0x06018000 - subs r1, r0, r1 - movs r0, 0 - str r0, [sp, 0x44] - ldr r4, _080AAEC8 @ =0x040000d4 - add r0, sp, 0x44 - str r0, [r4] - str r1, [r4, 0x4] - ldr r0, _080AAECC @ =0x85000040 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - mov r0, r9 - bl StringLength - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, 0x8 - bls _080AADD0 - movs r7, 0x8 -_080AADD0: - movs r6, 0 - mov r8, r5 - mov r1, r10 - lsls r1, 1 - str r1, [sp, 0x58] - ldr r2, [sp, 0x48] - adds r2, 0x20 - str r2, [sp, 0x5C] - cmp r6, r7 - bge _080AAE1E - add r5, sp, 0x40 - add r0, sp, 0x20 - mov r10, r0 - ldr r2, _080AAEC4 @ =0x06018000 -_080AADEC: - mov r1, r9 - adds r0, r1, r6 - ldrb r0, [r0] - strb r0, [r5] - movs r0, 0xFF - strb r0, [r5, 0x1] - mov r0, sp - adds r1, r5, 0 - str r2, [sp, 0x60] - bl sub_80034D4 - mov r1, r8 - lsls r0, r1, 8 - ldr r2, [sp, 0x60] - subs r0, r2, r0 - mov r1, r10 - str r1, [r4] - str r0, [r4, 0x4] - ldr r0, _080AAED0 @ =0x84000008 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - adds r2, 0x20 - adds r6, 0x1 - cmp r6, r7 - blt _080AADEC -_080AAE1E: - movs r1, 0x7C - ldr r2, [sp, 0x58] - subs r1, r2 - lsls r1, 24 - lsrs r7, r1, 24 - ldr r0, _080AAED4 @ =gMain - mov r9, r0 - lsls r3, r7, 3 - add r3, r9 - ldr r0, _080AAED8 @ =gUnknown_083C9400 - ldr r1, [r0] - ldr r2, [r0, 0x4] - str r1, [sp, 0x50] - str r2, [sp, 0x54] - str r1, [r3, 0x3C] - str r2, [r3, 0x40] - mov r2, r8 - lsls r0, r2, 3 - movs r1, 0x80 - lsls r1, 3 - adds r2, r1, 0 - subs r2, r0 - adds r6, r3, 0 - adds r6, 0x40 - ldr r0, _080AAEDC @ =0x000003ff - mov r8, r0 - mov r1, r8 - ands r2, r1 - ldrh r5, [r6] - ldr r4, _080AAEE0 @ =0xfffffc00 - adds r0, r4, 0 - ands r0, r5 - orrs r0, r2 - strh r0, [r6] - ldrh r5, [r3, 0x3E] - ldr r2, _080AAEE4 @ =0xfffffe00 - adds r0, r2, 0 - ands r0, r5 - ldr r1, [sp, 0x48] - orrs r0, r1 - strh r0, [r3, 0x3E] - adds r3, 0x3C - add r0, sp, 0x4C - ldrb r0, [r0] - strb r0, [r3] - adds r1, r7, 0x1 - lsls r1, 3 - mov r0, r9 - adds r7, r1, r0 - ldr r0, [sp, 0x50] - ldr r1, [sp, 0x54] - str r0, [r7, 0x3C] - str r1, [r7, 0x40] - ldrh r0, [r6] - lsls r0, 22 - lsrs r0, 22 - adds r0, 0x4 - adds r5, r7, 0 - adds r5, 0x40 - mov r1, r8 - ands r0, r1 - ldrh r3, [r5] - ands r4, r3 - orrs r4, r0 - strh r4, [r5] - ldrh r0, [r7, 0x3E] - ands r2, r0 - ldr r0, [sp, 0x5C] - orrs r2, r0 - strh r2, [r7, 0x3E] - adds r1, r7, 0 - adds r1, 0x3C - add r2, sp, 0x4C - ldrb r2, [r2] - strb r2, [r1] - add sp, 0x64 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AAEC4: .4byte 0x06018000 -_080AAEC8: .4byte 0x040000d4 -_080AAECC: .4byte 0x85000040 -_080AAED0: .4byte 0x84000008 -_080AAED4: .4byte gMain -_080AAED8: .4byte gUnknown_083C9400 -_080AAEDC: .4byte 0x000003ff -_080AAEE0: .4byte 0xfffffc00 -_080AAEE4: .4byte 0xfffffe00 - thumb_func_end sub_80AAD84 - - thumb_func_start unref_sub_80AAEE8 -unref_sub_80AAEE8: @ 80AAEE8 - push {r4-r7,lr} - sub sp, 0xC - adds r4, r0, 0 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - lsls r3, 24 - lsrs r5, r3, 24 - movs r0, 0 - cmp r4, 0 - bge _080AAF08 - mov r1, sp - movs r0, 0xAE - strb r0, [r1] - movs r0, 0x1 -_080AAF08: - add r0, sp - adds r1, r4, 0 - cmp r1, 0 - bge _080AAF12 - negs r1, r1 -_080AAF12: - movs r2, 0 - movs r3, 0x8 - bl ConvertIntToDecimalStringN - mov r0, sp - adds r1, r7, 0 - adds r2, r6, 0 - adds r3, r5, 0 - bl sub_80AAD84 - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end unref_sub_80AAEE8 - - thumb_func_start sub_80AAF30 -sub_80AAF30: @ 80AAF30 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - ldr r1, _080AAFC0 @ =gUnknown_0203856C - movs r0, 0x1 - strb r0, [r1] - ldr r1, _080AAFC4 @ =gUnknown_02038695 - movs r0, 0x3 - strb r0, [r1] - movs r0, 0 - bl sub_80AE098 - movs r4, 0x3 - movs r5, 0x1 - negs r5, r5 - ldr r3, _080AAFC8 @ =gUnknown_02038690 - movs r2, 0x3 -_080AAF56: - adds r1, r4, r3 - subs r0, r2, r4 - strb r0, [r1] - subs r4, 0x1 - cmp r4, r5 - bgt _080AAF56 - movs r4, 0 - movs r6, 0 - ldr r7, _080AAFCC @ =gUnknown_02038670 - ldr r5, _080AAFD0 @ =gUnknown_02038570 - mov r9, r5 -_080AAF6C: - lsls r1, r4, 1 - strh r6, [r7] - ldr r0, _080AAFD4 @ =gUnknown_02038680 - mov r8, r0 - adds r0, r1, r0 - strh r6, [r0] - ldr r3, _080AAFD8 @ =gUnknown_02038678 - adds r1, r3 - strh r6, [r1] - adds r0, r5, 0 - mov r1, r9 - adds r1, 0xC0 - movs r2, 0x40 - str r3, [sp] - bl memcpy - adds r7, 0x2 - adds r5, 0x40 - adds r4, 0x1 - ldr r3, [sp] - cmp r4, 0x2 - ble _080AAF6C - ldr r0, _080AAFCC @ =gUnknown_02038670 - movs r1, 0x96 - lsls r1, 1 - strh r1, [r0, 0x6] - movs r0, 0xC8 - lsls r0, 1 - mov r1, r8 - strh r0, [r1, 0x6] - strh r0, [r3, 0x6] - movs r0, 0xFE - bl sub_80B2A7C - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AAFC0: .4byte gUnknown_0203856C -_080AAFC4: .4byte gUnknown_02038695 -_080AAFC8: .4byte gUnknown_02038690 -_080AAFCC: .4byte gUnknown_02038670 -_080AAFD0: .4byte gUnknown_02038570 -_080AAFD4: .4byte gUnknown_02038680 -_080AAFD8: .4byte gUnknown_02038678 - thumb_func_end sub_80AAF30 - - thumb_func_start sub_80AAFDC -sub_80AAFDC: @ 80AAFDC - push {lr} - bl sub_80AAF30 - bl sub_8071C20 - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_80AAFDC - - thumb_func_start sub_80AAFEC -sub_80AAFEC: @ 80AAFEC - push {r4,lr} - ldr r1, _080AB01C @ =gUnknown_0203856C - movs r0, 0 - strb r0, [r1] - movs r4, 0 - ldr r3, _080AB020 @ =gUnknown_02038678 - ldr r2, _080AB024 @ =gUnknown_02038680 - ldr r1, _080AB028 @ =gUnknown_02038670 - movs r0, 0x3 -_080AAFFE: - strh r4, [r1] - strh r4, [r2] - strh r4, [r3] - adds r3, 0x2 - adds r2, 0x2 - adds r1, 0x2 - subs r0, 0x1 - cmp r0, 0 - bge _080AAFFE - bl sub_8071C20 - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080AB01C: .4byte gUnknown_0203856C -_080AB020: .4byte gUnknown_02038678 -_080AB024: .4byte gUnknown_02038680 -_080AB028: .4byte gUnknown_02038670 - thumb_func_end sub_80AAFEC - - thumb_func_start sub_80AB02C -sub_80AB02C: @ 80AB02C - push {r4,r5,lr} - ldr r1, _080AB078 @ =gUnknown_02038695 - movs r0, 0x3 - strb r0, [r1] - movs r0, 0 - bl sub_80AE098 - movs r2, 0x3 - movs r5, 0x1 - negs r5, r5 - ldr r4, _080AB07C @ =gUnknown_02038690 - movs r3, 0x3 -_080AB044: - adds r1, r2, r4 - subs r0, r3, r2 - strb r0, [r1] - subs r2, 0x1 - cmp r2, r5 - bgt _080AB044 - ldr r1, _080AB080 @ =gScriptContestCategory - movs r0, 0 - strh r0, [r1] - adds r4, r1, 0 -_080AB058: - movs r0, 0xFF - bl sub_80B2A7C - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x4 - bls _080AB058 - bl sub_8071C20 - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080AB078: .4byte gUnknown_02038695 -_080AB07C: .4byte gUnknown_02038690 -_080AB080: .4byte gScriptContestCategory - thumb_func_end sub_80AB02C - - thumb_func_start unref_sub_80AB084 -unref_sub_80AB084: @ 80AB084 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - mov r8, r0 - ldr r0, _080AB160 @ =REG_BG0HOFS - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x22 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - movs r2, 0x80 - lsls r2, 19 - movs r3, 0xFA - lsls r3, 5 - adds r0, r3, 0 - strh r0, [r2] - ldr r3, _080AB164 @ =0x04000208 - ldrh r2, [r3] - strh r1, [r3] - ldr r4, _080AB168 @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r1, _080AB16C @ =REG_DISPSTAT - movs r0, 0x8 - strh r0, [r1] - bl ResetTasks - bl ResetSpriteData - ldr r0, _080AB170 @ =sub_80AB184 - bl SetMainCallback2 - movs r2, 0xC0 - lsls r2, 19 - movs r3, 0xC0 - lsls r3, 9 - movs r5, 0 - ldr r1, _080AB174 @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - ldr r6, _080AB178 @ =0x85000400 - movs r7, 0x85 - lsls r7, 24 -_080AB108: - str r5, [sp, 0x4] - add r0, sp, 0x4 - str r0, [r1] - str r2, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080AB108 - str r5, [sp, 0x4] - add r0, sp, 0x4 - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r4, _080AB17C @ =gWindowConfig_81E6FD8 - adds r0, r4, 0 - bl SetUpWindowConfig - ldr r5, _080AB180 @ =gUnknown_03004210 - adds r0, r5, 0 - adds r1, r4, 0 - bl InitWindowFromConfig - adds r0, r4, 0 - bl LoadFontDefaultPalette - movs r0, 0x7 - str r0, [sp] - adds r0, r5, 0 - mov r1, r8 - movs r2, 0x1 - movs r3, 0x9 - bl sub_8003460 - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AB160: .4byte REG_BG0HOFS -_080AB164: .4byte 0x04000208 -_080AB168: .4byte 0x04000200 -_080AB16C: .4byte REG_DISPSTAT -_080AB170: .4byte sub_80AB184 -_080AB174: .4byte 0x040000d4 -_080AB178: .4byte 0x85000400 -_080AB17C: .4byte gWindowConfig_81E6FD8 -_080AB180: .4byte gUnknown_03004210 - thumb_func_end unref_sub_80AB084 - - thumb_func_start sub_80AB184 -sub_80AB184: @ 80AB184 - ldr r0, _080AB1A8 @ =REG_BG0HOFS - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bx lr - .align 2, 0 -_080AB1A8: .4byte REG_BG0HOFS - thumb_func_end sub_80AB184 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/mauville_old_man.s b/asm/mauville_old_man.s index 7dfaa890e..3af0f2b11 100644 --- a/asm/mauville_old_man.s +++ b/asm/mauville_old_man.s @@ -1369,7 +1369,7 @@ sub_80F8438: @ 80F8438 bne _080F8444 movs r0, 0 _080F8444: - bl sub_8053108 + bl GetGameStat pop {r1} bx r1 thumb_func_end sub_80F8438 diff --git a/asm/metatile_behavior.s b/asm/metatile_behavior.s deleted file mode 100644 index f81e3c0d4..000000000 --- a/asm/metatile_behavior.s +++ /dev/null @@ -1,2345 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_8056D9C -sub_8056D9C: @ 8056D9C - movs r0, 0x1 - bx lr - thumb_func_end sub_8056D9C - - thumb_func_start sub_8056DA0 -sub_8056DA0: @ 8056DA0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08056DB8 @ =gUnknown_08308E2C - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08056DBC - movs r0, 0 - b _08056DBE - .align 2, 0 -_08056DB8: .4byte gUnknown_08308E2C -_08056DBC: - movs r0, 0x1 -_08056DBE: - pop {r1} - bx r1 - thumb_func_end sub_8056DA0 - - thumb_func_start MetatileBehavior_IsJumpEast -MetatileBehavior_IsJumpEast: @ 8056DC4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x38 - beq _08056DD2 - movs r0, 0 - b _08056DD4 -_08056DD2: - movs r0, 0x1 -_08056DD4: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsJumpEast - - thumb_func_start MetatileBehavior_IsJumpWest -MetatileBehavior_IsJumpWest: @ 8056DD8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x39 - beq _08056DE6 - movs r0, 0 - b _08056DE8 -_08056DE6: - movs r0, 0x1 -_08056DE8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsJumpWest - - thumb_func_start MetatileBehavior_IsJumpNorth -MetatileBehavior_IsJumpNorth: @ 8056DEC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3A - beq _08056DFA - movs r0, 0 - b _08056DFC -_08056DFA: - movs r0, 0x1 -_08056DFC: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsJumpNorth - - thumb_func_start MetatileBehavior_IsJumpSouth -MetatileBehavior_IsJumpSouth: @ 8056E00 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3B - beq _08056E0E - movs r0, 0 - b _08056E10 -_08056E0E: - movs r0, 0x1 -_08056E10: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsJumpSouth - - thumb_func_start sub_8056E14 -sub_8056E14: @ 8056E14 - push {lr} - lsls r0, 24 - movs r1, 0xFE - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bls _08056E28 - movs r0, 0 - b _08056E2A -_08056E28: - movs r0, 0x1 -_08056E2A: - pop {r1} - bx r1 - thumb_func_end sub_8056E14 - - thumb_func_start MetatileBehavior_IsSandOrDeepSand -MetatileBehavior_IsSandOrDeepSand: @ 8056E30 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x21 - beq _08056E3E - cmp r0, 0x6 - bne _08056E42 -_08056E3E: - movs r0, 0x1 - b _08056E44 -_08056E42: - movs r0, 0 -_08056E44: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSandOrDeepSand - - thumb_func_start MetatileBehavior_IsDeepSand -MetatileBehavior_IsDeepSand: @ 8056E48 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - beq _08056E56 - movs r0, 0 - b _08056E58 -_08056E56: - movs r0, 0x1 -_08056E58: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsDeepSand - - thumb_func_start MetatileBehavior_IsReflective -MetatileBehavior_IsReflective: @ 8056E5C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x10 - beq _08056E7A - cmp r0, 0x16 - beq _08056E7A - cmp r0, 0x1A - beq _08056E7A - cmp r0, 0x20 - beq _08056E7A - cmp r0, 0x14 - beq _08056E7A - cmp r0, 0x2B - bne _08056E7E -_08056E7A: - movs r0, 0x1 - b _08056E80 -_08056E7E: - movs r0, 0 -_08056E80: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsReflective - - thumb_func_start MetatileBehavior_IsIce -MetatileBehavior_IsIce: @ 8056E84 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x20 - beq _08056E92 - movs r0, 0 - b _08056E94 -_08056E92: - movs r0, 0x1 -_08056E94: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsIce - - thumb_func_start is_tile_x69_2_warp_door -is_tile_x69_2_warp_door: @ 8056E98 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x69 - beq _08056EA6 - movs r0, 0 - b _08056EA8 -_08056EA6: - movs r0, 0x1 -_08056EA8: - pop {r1} - bx r1 - thumb_func_end is_tile_x69_2_warp_door - - thumb_func_start MetatileBehavior_IsDoor -MetatileBehavior_IsDoor: @ 8056EAC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x8D - beq _08056EBA - cmp r0, 0x69 - bne _08056EBE -_08056EBA: - movs r0, 0x1 - b _08056EC0 -_08056EBE: - movs r0, 0 -_08056EC0: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsDoor - - thumb_func_start MetatileBehavior_IsEscalator -MetatileBehavior_IsEscalator: @ 8056EC4 - push {lr} - lsls r0, 24 - movs r1, 0x96 - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bls _08056ED8 - movs r0, 0 - b _08056EDA -_08056ED8: - movs r0, 0x1 -_08056EDA: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsEscalator - - thumb_func_start unref_sub_8056EE0 -unref_sub_8056EE0: @ 8056EE0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - beq _08056EEE - movs r0, 0 - b _08056EF0 -_08056EEE: - movs r0, 0x1 -_08056EF0: - pop {r1} - bx r1 - thumb_func_end unref_sub_8056EE0 - - thumb_func_start MetatileBehavior_IsLadder -MetatileBehavior_IsLadder: @ 8056EF4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x61 - beq _08056F02 - movs r0, 0 - b _08056F04 -_08056F02: - movs r0, 0x1 -_08056F04: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsLadder - - thumb_func_start sub_8056F08 -sub_8056F08: @ 8056F08 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x60 - beq _08056F1A - cmp r0, 0x6C - beq _08056F1A - cmp r0, 0x6E - bne _08056F1E -_08056F1A: - movs r0, 0x1 - b _08056F20 -_08056F1E: - movs r0, 0 -_08056F20: - pop {r1} - bx r1 - thumb_func_end sub_8056F08 - - thumb_func_start sub_8056F24 -sub_8056F24: @ 8056F24 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6E - beq _08056F32 - movs r0, 0 - b _08056F34 -_08056F32: - movs r0, 0x1 -_08056F34: - pop {r1} - bx r1 - thumb_func_end sub_8056F24 - - thumb_func_start MetatileBehavior_IsSurfableWaterOrUnderwater -MetatileBehavior_IsSurfableWaterOrUnderwater: @ 8056F38 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08056F50 @ =gUnknown_08308E2C - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08056F54 - movs r0, 0 - b _08056F56 - .align 2, 0 -_08056F50: .4byte gUnknown_08308E2C -_08056F54: - movs r0, 0x1 -_08056F56: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSurfableWaterOrUnderwater - - thumb_func_start MetatileBehavior_IsEastArrowWarp -MetatileBehavior_IsEastArrowWarp: @ 8056F5C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x62 - beq _08056F6A - movs r0, 0 - b _08056F6C -_08056F6A: - movs r0, 0x1 -_08056F6C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsEastArrowWarp - - thumb_func_start MetatileBehavior_IsWestArrowWarp -MetatileBehavior_IsWestArrowWarp: @ 8056F70 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x63 - beq _08056F7E - movs r0, 0 - b _08056F80 -_08056F7E: - movs r0, 0x1 -_08056F80: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWestArrowWarp - - thumb_func_start MetatileBehavior_IsNorthArrowWarp -MetatileBehavior_IsNorthArrowWarp: @ 8056F84 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x64 - beq _08056F92 - cmp r0, 0x1B - bne _08056F96 -_08056F92: - movs r0, 0x1 - b _08056F98 -_08056F96: - movs r0, 0 -_08056F98: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsNorthArrowWarp - - thumb_func_start MetatileBehavior_IsSouthArrowWarp -MetatileBehavior_IsSouthArrowWarp: @ 8056F9C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x65 - beq _08056FAE - cmp r0, 0x6D - beq _08056FAE - cmp r0, 0x1C - bne _08056FB2 -_08056FAE: - movs r0, 0x1 - b _08056FB4 -_08056FB2: - movs r0, 0 -_08056FB4: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSouthArrowWarp - - thumb_func_start unref_sub_8056FB8 -unref_sub_8056FB8: @ 8056FB8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r5, 0 - adds r0, r4, 0 - bl MetatileBehavior_IsEastArrowWarp - lsls r0, 24 - cmp r0, 0 - bne _08056FF0 - adds r0, r4, 0 - bl MetatileBehavior_IsWestArrowWarp - lsls r0, 24 - cmp r0, 0 - bne _08056FF0 - adds r0, r4, 0 - bl MetatileBehavior_IsNorthArrowWarp - lsls r0, 24 - cmp r0, 0 - bne _08056FF0 - adds r0, r4, 0 - bl MetatileBehavior_IsSouthArrowWarp - lsls r0, 24 - cmp r0, 0 - beq _08056FF2 -_08056FF0: - movs r5, 0x1 -_08056FF2: - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end unref_sub_8056FB8 - - thumb_func_start sub_8056FFC -sub_8056FFC: @ 8056FFC - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xC0 - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0x8 - bls _08057032 - adds r0, r1, 0 - subs r0, 0x50 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _08057032 - cmp r1, 0xD0 - beq _08057032 - cmp r1, 0xD2 - beq _08057032 - cmp r1, 0x13 - beq _08057032 - cmp r1, 0x20 - beq _08057032 - cmp r1, 0xBB - beq _08057032 - cmp r1, 0xBC - bne _08057036 -_08057032: - movs r0, 0x1 - b _08057038 -_08057036: - movs r0, 0 -_08057038: - pop {r1} - bx r1 - thumb_func_end sub_8056FFC - - thumb_func_start MetatileBehavior_IsIce_2 -MetatileBehavior_IsIce_2: @ 805703C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x20 - beq _0805704A - movs r0, 0 - b _0805704C -_0805704A: - movs r0, 0x1 -_0805704C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsIce_2 - - thumb_func_start MetatileBehavior_IsTrickHouseSlipperyFloor -MetatileBehavior_IsTrickHouseSlipperyFloor: @ 8057050 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x48 - beq _0805705E - movs r0, 0 - b _08057060 -_0805705E: - movs r0, 0x1 -_08057060: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsTrickHouseSlipperyFloor - - thumb_func_start MetatileBehavior_0x05 -MetatileBehavior_0x05: @ 8057064 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - beq _08057072 - movs r0, 0 - b _08057074 -_08057072: - movs r0, 0x1 -_08057074: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_0x05 - - thumb_func_start MetatileBehavior_IsWalkNorth -MetatileBehavior_IsWalkNorth: @ 8057078 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x42 - beq _08057086 - movs r0, 0 - b _08057088 -_08057086: - movs r0, 0x1 -_08057088: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWalkNorth - - thumb_func_start MetatileBehavior_IsWalkSouth -MetatileBehavior_IsWalkSouth: @ 805708C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x43 - beq _0805709A - movs r0, 0 - b _0805709C -_0805709A: - movs r0, 0x1 -_0805709C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWalkSouth - - thumb_func_start MetatileBehavior_IsWalkWest -MetatileBehavior_IsWalkWest: @ 80570A0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x41 - beq _080570AE - movs r0, 0 - b _080570B0 -_080570AE: - movs r0, 0x1 -_080570B0: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWalkWest - - thumb_func_start MetatileBehavior_IsWalkEast -MetatileBehavior_IsWalkEast: @ 80570B4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080570C2 - movs r0, 0 - b _080570C4 -_080570C2: - movs r0, 0x1 -_080570C4: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWalkEast - - thumb_func_start MetatileBehavior_IsNorthwardCurrent -MetatileBehavior_IsNorthwardCurrent: @ 80570C8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x52 - beq _080570D6 - movs r0, 0 - b _080570D8 -_080570D6: - movs r0, 0x1 -_080570D8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsNorthwardCurrent - - thumb_func_start MetatileBehavior_IsSouthwardCurrent -MetatileBehavior_IsSouthwardCurrent: @ 80570DC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x53 - beq _080570EA - movs r0, 0 - b _080570EC -_080570EA: - movs r0, 0x1 -_080570EC: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSouthwardCurrent - - thumb_func_start MetatileBehavior_IsWestwardCurrent -MetatileBehavior_IsWestwardCurrent: @ 80570F0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x51 - beq _080570FE - movs r0, 0 - b _08057100 -_080570FE: - movs r0, 0x1 -_08057100: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWestwardCurrent - - thumb_func_start MetatileBehavior_IsEastwardCurrent -MetatileBehavior_IsEastwardCurrent: @ 8057104 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x50 - beq _08057112 - movs r0, 0 - b _08057114 -_08057112: - movs r0, 0x1 -_08057114: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsEastwardCurrent - - thumb_func_start MetatileBehavior_IsSlideNorth -MetatileBehavior_IsSlideNorth: @ 8057118 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x46 - beq _08057126 - movs r0, 0 - b _08057128 -_08057126: - movs r0, 0x1 -_08057128: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSlideNorth - - thumb_func_start MetatileBehavior_IsSlideSouth -MetatileBehavior_IsSlideSouth: @ 805712C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x47 - beq _0805713A - movs r0, 0 - b _0805713C -_0805713A: - movs r0, 0x1 -_0805713C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSlideSouth - - thumb_func_start MetatileBehavior_IsSlideWest -MetatileBehavior_IsSlideWest: @ 8057140 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x45 - beq _0805714E - movs r0, 0 - b _08057150 -_0805714E: - movs r0, 0x1 -_08057150: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSlideWest - - thumb_func_start MetatileBehavior_IsSlideEast -MetatileBehavior_IsSlideEast: @ 8057154 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x44 - beq _08057162 - movs r0, 0 - b _08057164 -_08057162: - movs r0, 0x1 -_08057164: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSlideEast - - thumb_func_start MetatileBehavior_IsCounter -MetatileBehavior_IsCounter: @ 8057168 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x80 - beq _08057176 - movs r0, 0 - b _08057178 -_08057176: - movs r0, 0x1 -_08057178: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsCounter - - thumb_func_start MetatileBehavior_IsPlayerFacingTVScreen -MetatileBehavior_IsPlayerFacingTVScreen: @ 805717C - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x2 - bne _0805718E - cmp r0, 0x86 - beq _08057192 -_0805718E: - movs r0, 0 - b _08057194 -_08057192: - movs r0, 0x1 -_08057194: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsPlayerFacingTVScreen - - thumb_func_start MetatileBehavior_IsPC -MetatileBehavior_IsPC: @ 8057198 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x83 - beq _080571A6 - movs r0, 0 - b _080571A8 -_080571A6: - movs r0, 0x1 -_080571A8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsPC - - thumb_func_start is_tile_x84 -is_tile_x84: @ 80571AC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x84 - beq _080571BA - movs r0, 0 - b _080571BC -_080571BA: - movs r0, 0x1 -_080571BC: - pop {r1} - bx r1 - thumb_func_end is_tile_x84 - - thumb_func_start sub_80571C0 -sub_80571C0: @ 80571C0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x91 - beq _080571E2 - cmp r0, 0x93 - beq _080571E2 - cmp r0, 0x95 - beq _080571E2 - cmp r0, 0x97 - beq _080571E2 - cmp r0, 0x99 - beq _080571E2 - cmp r0, 0x9B - beq _080571E2 - cmp r0, 0x9D - bne _080571E6 -_080571E2: - movs r0, 0x1 - b _080571E8 -_080571E6: - movs r0, 0 -_080571E8: - pop {r1} - bx r1 - thumb_func_end sub_80571C0 - - thumb_func_start sub_80571EC -sub_80571EC: @ 80571EC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x90 - beq _08057202 - cmp r0, 0x92 - beq _08057202 - cmp r0, 0x94 - beq _08057202 - cmp r0, 0x9A - bne _08057206 -_08057202: - movs r0, 0x1 - b _08057208 -_08057206: - movs r0, 0 -_08057208: - pop {r1} - bx r1 - thumb_func_end sub_80571EC - - thumb_func_start sub_805720C -sub_805720C: @ 805720C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x96 - beq _0805721A - cmp r0, 0x9C - bne _0805721E -_0805721A: - movs r0, 0x1 - b _08057220 -_0805721E: - movs r0, 0 -_08057220: - pop {r1} - bx r1 - thumb_func_end sub_805720C - - thumb_func_start is_tile_x98 -is_tile_x98: @ 8057224 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x98 - beq _08057232 - movs r0, 0 - b _08057234 -_08057232: - movs r0, 0x1 -_08057234: - pop {r1} - bx r1 - thumb_func_end is_tile_x98 - - thumb_func_start sub_8057238 -sub_8057238: @ 8057238 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB0 - beq _08057246 - movs r0, 0 - b _08057248 -_08057246: - movs r0, 0x1 -_08057248: - pop {r1} - bx r1 - thumb_func_end sub_8057238 - - thumb_func_start sub_805724C -sub_805724C: @ 805724C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB1 - beq _0805725A - movs r0, 0 - b _0805725C -_0805725A: - movs r0, 0x1 -_0805725C: - pop {r1} - bx r1 - thumb_func_end sub_805724C - - thumb_func_start unref_sub_8057260 -unref_sub_8057260: @ 8057260 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB2 - beq _0805726E - movs r0, 0 - b _08057270 -_0805726E: - movs r0, 0x1 -_08057270: - pop {r1} - bx r1 - thumb_func_end unref_sub_8057260 - - thumb_func_start sub_8057274 -sub_8057274: @ 8057274 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB3 - beq _08057282 - movs r0, 0 - b _08057284 -_08057282: - movs r0, 0x1 -_08057284: - pop {r1} - bx r1 - thumb_func_end sub_8057274 - - thumb_func_start sub_8057288 -sub_8057288: @ 8057288 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB9 - beq _08057296 - movs r0, 0 - b _08057298 -_08057296: - movs r0, 0x1 -_08057298: - pop {r1} - bx r1 - thumb_func_end sub_8057288 - - thumb_func_start sub_805729C -sub_805729C: @ 805729C - push {lr} - lsls r0, 24 - cmp r0, 0 - beq _080572A8 - movs r0, 0 - b _080572AA -_080572A8: - movs r0, 0x1 -_080572AA: - pop {r1} - bx r1 - thumb_func_end sub_805729C - - thumb_func_start sub_80572B0 -sub_80572B0: @ 80572B0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB7 - beq _080572BE - movs r0, 0 - b _080572C0 -_080572BE: - movs r0, 0x1 -_080572C0: - pop {r1} - bx r1 - thumb_func_end sub_80572B0 - - thumb_func_start unref_sub_80572C4 -unref_sub_80572C4: @ 80572C4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB2 - beq _080572D2 - movs r0, 0 - b _080572D4 -_080572D2: - movs r0, 0x1 -_080572D4: - pop {r1} - bx r1 - thumb_func_end unref_sub_80572C4 - - thumb_func_start sub_80572D8 -sub_80572D8: @ 80572D8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB5 - beq _080572E6 - movs r0, 0 - b _080572E8 -_080572E6: - movs r0, 0x1 -_080572E8: - pop {r1} - bx r1 - thumb_func_end sub_80572D8 - - thumb_func_start sub_80572EC -sub_80572EC: @ 80572EC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xC3 - beq _080572FA - movs r0, 0 - b _080572FC -_080572FA: - movs r0, 0x1 -_080572FC: - pop {r1} - bx r1 - thumb_func_end sub_80572EC - - thumb_func_start sub_8057300 -sub_8057300: @ 8057300 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xC2 - beq _0805730E - movs r0, 0 - b _08057310 -_0805730E: - movs r0, 0x1 -_08057310: - pop {r1} - bx r1 - thumb_func_end sub_8057300 - - thumb_func_start sub_8057314 -sub_8057314: @ 8057314 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB8 - beq _08057322 - movs r0, 0 - b _08057324 -_08057322: - movs r0, 0x1 -_08057324: - pop {r1} - bx r1 - thumb_func_end sub_8057314 - - thumb_func_start sub_8057328 -sub_8057328: @ 8057328 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xBE - beq _08057336 - movs r0, 0 - b _08057338 -_08057336: - movs r0, 0x1 -_08057338: - pop {r1} - bx r1 - thumb_func_end sub_8057328 - - thumb_func_start sub_805733C -sub_805733C: @ 805733C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xBD - beq _0805734A - movs r0, 0 - b _0805734C -_0805734A: - movs r0, 0x1 -_0805734C: - pop {r1} - bx r1 - thumb_func_end sub_805733C - - thumb_func_start sub_8057350 -sub_8057350: @ 8057350 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xBA - beq _0805735E - movs r0, 0 - b _08057360 -_0805735E: - movs r0, 0x1 -_08057360: - pop {r1} - bx r1 - thumb_func_end sub_8057350 - - thumb_func_start sub_8057364 -sub_8057364: @ 8057364 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xBF - beq _08057372 - movs r0, 0 - b _08057374 -_08057372: - movs r0, 0x1 -_08057374: - pop {r1} - bx r1 - thumb_func_end sub_8057364 - - thumb_func_start sub_8057378 -sub_8057378: @ 8057378 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xC4 - beq _08057386 - movs r0, 0 - b _08057388 -_08057386: - movs r0, 0x1 -_08057388: - pop {r1} - bx r1 - thumb_func_end sub_8057378 - - thumb_func_start sub_805738C -sub_805738C: @ 805738C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xC5 - beq _0805739A - movs r0, 0 - b _0805739C -_0805739A: - movs r0, 0x1 -_0805739C: - pop {r1} - bx r1 - thumb_func_end sub_805738C - - thumb_func_start MetatileBehavior_HasRipples -MetatileBehavior_HasRipples: @ 80573A0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x10 - beq _080573B2 - cmp r0, 0x16 - beq _080573B2 - cmp r0, 0x14 - bne _080573B6 -_080573B2: - movs r0, 0x1 - b _080573B8 -_080573B6: - movs r0, 0 -_080573B8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_HasRipples - - thumb_func_start MetatileBehavior_IsPuddle -MetatileBehavior_IsPuddle: @ 80573BC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x16 - beq _080573CA - movs r0, 0 - b _080573CC -_080573CA: - movs r0, 0x1 -_080573CC: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsPuddle - - thumb_func_start MetatileBehavior_IsTallGrass -MetatileBehavior_IsTallGrass: @ 80573D0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - beq _080573DE - movs r0, 0 - b _080573E0 -_080573DE: - movs r0, 0x1 -_080573E0: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsTallGrass - - thumb_func_start MetatileBehavior_IsLongGrass -MetatileBehavior_IsLongGrass: @ 80573E4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _080573F2 - movs r0, 0 - b _080573F4 -_080573F2: - movs r0, 0x1 -_080573F4: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsLongGrass - - thumb_func_start MetatileBehavior_IsBerryTreeSoil -MetatileBehavior_IsBerryTreeSoil: @ 80573F8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xA0 - beq _08057406 - movs r0, 0 - b _08057408 -_08057406: - movs r0, 0x1 -_08057408: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsBerryTreeSoil - - thumb_func_start MetatileBehavior_IsAsh -MetatileBehavior_IsAsh: @ 805740C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x24 - beq _0805741A - movs r0, 0 - b _0805741C -_0805741A: - movs r0, 0x1 -_0805741C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsAsh - - thumb_func_start MetatileBehavior_IsUnusedFootprintMetatile -MetatileBehavior_IsUnusedFootprintMetatile: @ 8057420 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x25 - beq _0805742E - movs r0, 0 - b _08057430 -_0805742E: - movs r0, 0x1 -_08057430: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsUnusedFootprintMetatile - - thumb_func_start MetatileBehavior_IsBridge -MetatileBehavior_IsBridge: @ 8057434 - push {lr} - lsls r0, 24 - movs r1, 0x90 - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x3 - bls _08057448 - movs r0, 0 - b _0805744A -_08057448: - movs r0, 0x1 -_0805744A: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsBridge - - thumb_func_start sub_8057450 -sub_8057450: @ 8057450 - push {lr} - lsls r0, 24 - movs r1, 0x90 - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x3 - bls _08057462 - movs r0, 0 -_08057462: - pop {r1} - bx r1 - thumb_func_end sub_8057450 - - thumb_func_start MetatileBehavior_IsLandWildEncounter -MetatileBehavior_IsLandWildEncounter: @ 8057468 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, 24 - cmp r0, 0 - bne _0805748C - adds r0, r4, 0 - bl sub_8056DA0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0805748C - movs r0, 0x1 - b _0805748E -_0805748C: - movs r0, 0 -_0805748E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsLandWildEncounter - - thumb_func_start MetatileBehavior_IsWaterWildEncounter -MetatileBehavior_IsWaterWildEncounter: @ 8057494 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080574BA - adds r0, r4, 0 - bl sub_8056DA0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080574BA - movs r0, 0x1 - b _080574BC -_080574BA: - movs r0, 0 -_080574BC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWaterWildEncounter - - thumb_func_start sub_80574C4 -sub_80574C4: @ 80574C4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB - beq _080574D2 - movs r0, 0 - b _080574D4 -_080574D2: - movs r0, 0x1 -_080574D4: - pop {r1} - bx r1 - thumb_func_end sub_80574C4 - - thumb_func_start sub_80574D8 -sub_80574D8: @ 80574D8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xC - beq _080574E6 - movs r0, 0 - b _080574E8 -_080574E6: - movs r0, 0x1 -_080574E8: - pop {r1} - bx r1 - thumb_func_end sub_80574D8 - - thumb_func_start sub_80574EC -sub_80574EC: @ 80574EC - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xEF - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0x1 - bls _08057502 - cmp r1, 0x14 - bne _08057506 -_08057502: - movs r0, 0x1 - b _08057508 -_08057506: - movs r0, 0 -_08057508: - pop {r1} - bx r1 - thumb_func_end sub_80574EC - - thumb_func_start sub_805750C -sub_805750C: @ 805750C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x19 - beq _0805751A - cmp r0, 0x2A - bne _0805751E -_0805751A: - movs r0, 0x1 - b _08057520 -_0805751E: - movs r0, 0 -_08057520: - pop {r1} - bx r1 - thumb_func_end sub_805750C - - thumb_func_start MetatileBehavior_IsShallowFlowingWater -MetatileBehavior_IsShallowFlowingWater: @ 8057524 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x17 - beq _08057536 - cmp r0, 0x1B - beq _08057536 - cmp r0, 0x1C - bne _0805753A -_08057536: - movs r0, 0x1 - b _0805753C -_0805753A: - movs r0, 0 -_0805753C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsShallowFlowingWater - - thumb_func_start sub_8057540 -sub_8057540: @ 8057540 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x26 - beq _0805754E - movs r0, 0 - b _08057550 -_0805754E: - movs r0, 0x1 -_08057550: - pop {r1} - bx r1 - thumb_func_end sub_8057540 - - thumb_func_start sub_8057554 -sub_8057554: @ 8057554 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x27 - beq _08057562 - movs r0, 0 - b _08057564 -_08057562: - movs r0, 0x1 -_08057564: - pop {r1} - bx r1 - thumb_func_end sub_8057554 - - thumb_func_start sub_8057568 -sub_8057568: @ 8057568 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x15 - beq _0805757A - cmp r0, 0x11 - beq _0805757A - cmp r0, 0x12 - bne _0805757E -_0805757A: - movs r0, 0x1 - b _08057580 -_0805757E: - movs r0, 0 -_08057580: - pop {r1} - bx r1 - thumb_func_end sub_8057568 - - thumb_func_start unref_sub_8057584 -unref_sub_8057584: @ 8057584 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x18 - beq _08057592 - cmp r0, 0x1A - bne _08057596 -_08057592: - movs r0, 0x1 - b _08057598 -_08057596: - movs r0, 0 -_08057598: - pop {r1} - bx r1 - thumb_func_end unref_sub_8057584 - - thumb_func_start sub_805759C -sub_805759C: @ 805759C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, 24 - cmp r0, 0 - beq _080575BE - adds r0, r4, 0 - bl MetatileBehavior_IsWaterfall - lsls r0, 24 - cmp r0, 0 - bne _080575BE - movs r0, 0x1 - b _080575C0 -_080575BE: - movs r0, 0 -_080575C0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_805759C - - thumb_func_start MetatileBehavior_IsEastBlocked -MetatileBehavior_IsEastBlocked: @ 80575C8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x30 - beq _080575E2 - cmp r0, 0x34 - beq _080575E2 - cmp r0, 0x36 - beq _080575E2 - cmp r0, 0xC1 - beq _080575E2 - cmp r0, 0xBE - bne _080575E6 -_080575E2: - movs r0, 0x1 - b _080575E8 -_080575E6: - movs r0, 0 -_080575E8: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsEastBlocked - - thumb_func_start MetatileBehavior_IsWestBlocked -MetatileBehavior_IsWestBlocked: @ 80575EC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x31 - beq _08057606 - cmp r0, 0x35 - beq _08057606 - cmp r0, 0x37 - beq _08057606 - cmp r0, 0xC1 - beq _08057606 - cmp r0, 0xBE - bne _0805760A -_08057606: - movs r0, 0x1 - b _0805760C -_0805760A: - movs r0, 0 -_0805760C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWestBlocked - - thumb_func_start MetatileBehavior_IsNorthBlocked -MetatileBehavior_IsNorthBlocked: @ 8057610 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x32 - beq _08057626 - cmp r0, 0x34 - beq _08057626 - cmp r0, 0x35 - beq _08057626 - cmp r0, 0xC0 - bne _0805762A -_08057626: - movs r0, 0x1 - b _0805762C -_0805762A: - movs r0, 0 -_0805762C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsNorthBlocked - - thumb_func_start MetatileBehavior_IsSouthBlocked -MetatileBehavior_IsSouthBlocked: @ 8057630 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x33 - beq _08057646 - cmp r0, 0x36 - beq _08057646 - cmp r0, 0x37 - beq _08057646 - cmp r0, 0xC0 - bne _0805764A -_08057646: - movs r0, 0x1 - b _0805764C -_0805764A: - movs r0, 0 -_0805764C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSouthBlocked - - thumb_func_start MetatileBehavior_IsShortGrass -MetatileBehavior_IsShortGrass: @ 8057650 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x7 - beq _0805765E - movs r0, 0 - b _08057660 -_0805765E: - movs r0, 0x1 -_08057660: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsShortGrass - - thumb_func_start MetatileBehavior_IsHotSprings -MetatileBehavior_IsHotSprings: @ 8057664 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x28 - beq _08057672 - movs r0, 0 - b _08057674 -_08057672: - movs r0, 0x1 -_08057674: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsHotSprings - - thumb_func_start MetatileBehavior_IsWaterfall -MetatileBehavior_IsWaterfall: @ 8057678 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - beq _08057686 - movs r0, 0 - b _08057688 -_08057686: - movs r0, 0x1 -_08057688: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsWaterfall - - thumb_func_start MetatileBehavior_IsFortreeBridge -MetatileBehavior_IsFortreeBridge: @ 805768C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x78 - beq _0805769A - movs r0, 0 - b _0805769C -_0805769A: - movs r0, 0x1 -_0805769C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsFortreeBridge - - thumb_func_start sub_80576A0 -sub_80576A0: @ 80576A0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x74 - beq _080576AE - movs r0, 0 - b _080576B0 -_080576AE: - movs r0, 0x1 -_080576B0: - pop {r1} - bx r1 - thumb_func_end sub_80576A0 - - thumb_func_start sub_80576B4 -sub_80576B4: @ 80576B4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x75 - beq _080576C2 - movs r0, 0 - b _080576C4 -_080576C2: - movs r0, 0x1 -_080576C4: - pop {r1} - bx r1 - thumb_func_end sub_80576B4 - - thumb_func_start sub_80576C8 -sub_80576C8: @ 80576C8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x76 - beq _080576D6 - movs r0, 0 - b _080576D8 -_080576D6: - movs r0, 0x1 -_080576D8: - pop {r1} - bx r1 - thumb_func_end sub_80576C8 - - thumb_func_start sub_80576DC -sub_80576DC: @ 80576DC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x77 - beq _080576EA - movs r0, 0 - b _080576EC -_080576EA: - movs r0, 0x1 -_080576EC: - pop {r1} - bx r1 - thumb_func_end sub_80576DC - - thumb_func_start MetatileBehavior_IsPacifidlogLog -MetatileBehavior_IsPacifidlogLog: @ 80576F0 - push {lr} - lsls r0, 24 - movs r1, 0x8C - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x3 - bls _08057704 - movs r0, 0 - b _08057706 -_08057704: - movs r0, 0x1 -_08057706: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsPacifidlogLog - - thumb_func_start is_tile_x8C -is_tile_x8C: @ 805770C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x8C - beq _0805771A - movs r0, 0 - b _0805771C -_0805771A: - movs r0, 0x1 -_0805771C: - pop {r1} - bx r1 - thumb_func_end is_tile_x8C - - thumb_func_start is_tile_x85 -is_tile_x85: @ 8057720 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x85 - beq _0805772E - movs r0, 0 - b _08057730 -_0805772E: - movs r0, 0x1 -_08057730: - pop {r1} - bx r1 - thumb_func_end is_tile_x85 - - thumb_func_start is_tile_x8B -is_tile_x8B: @ 8057734 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x8B - beq _08057742 - movs r0, 0 - b _08057744 -_08057742: - movs r0, 0x1 -_08057744: - pop {r1} - bx r1 - thumb_func_end is_tile_x8B - - thumb_func_start is_tile_x8A -is_tile_x8A: @ 8057748 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x8A - beq _08057756 - movs r0, 0 - b _08057758 -_08057756: - movs r0, 0x1 -_08057758: - pop {r1} - bx r1 - thumb_func_end is_tile_x8A - - thumb_func_start is_tile_x87 -is_tile_x87: @ 805775C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x87 - beq _0805776A - movs r0, 0 - b _0805776C -_0805776A: - movs r0, 0x1 -_0805776C: - pop {r1} - bx r1 - thumb_func_end is_tile_x87 - - thumb_func_start MetatileBehavior_0xBB -MetatileBehavior_0xBB: @ 8057770 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xBB - beq _0805777E - movs r0, 0 - b _08057780 -_0805777E: - movs r0, 0x1 -_08057780: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_0xBB - - thumb_func_start MetatileBehavior_0xBC -MetatileBehavior_0xBC: @ 8057784 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xBC - beq _08057792 - movs r0, 0 - b _08057794 -_08057792: - movs r0, 0x1 -_08057794: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_0xBC - - thumb_func_start sub_8057798 -sub_8057798: @ 8057798 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x29 - beq _080577A6 - movs r0, 0 - b _080577A8 -_080577A6: - movs r0, 0x1 -_080577A8: - pop {r1} - bx r1 - thumb_func_end sub_8057798 - - thumb_func_start is_role_x68 -is_role_x68: @ 80577AC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x68 - beq _080577BA - movs r0, 0 - b _080577BC -_080577BA: - movs r0, 0x1 -_080577BC: - pop {r1} - bx r1 - thumb_func_end is_role_x68 - - thumb_func_start MetatileBehavior_IsAquaHideoutWarp -MetatileBehavior_IsAquaHideoutWarp: @ 80577C0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x67 - beq _080577CE - movs r0, 0 - b _080577D0 -_080577CE: - movs r0, 0x1 -_080577D0: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsAquaHideoutWarp - - thumb_func_start MetatileBehavior_IsSurfableFishableWater -MetatileBehavior_IsSurfableFishableWater: @ 80577D4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x10 - beq _080577F8 - cmp r0, 0x15 - beq _080577F8 - cmp r0, 0x11 - beq _080577F8 - cmp r0, 0x12 - beq _080577F8 - cmp r0, 0x14 - beq _080577F8 - subs r0, 0x50 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bhi _080577FC -_080577F8: - movs r0, 0x1 - b _080577FE -_080577FC: - movs r0, 0 -_080577FE: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSurfableFishableWater - - thumb_func_start sub_8057804 -sub_8057804: @ 8057804 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xF - beq _08057812 - movs r0, 0 - b _08057814 -_08057812: - movs r0, 0x1 -_08057814: - pop {r1} - bx r1 - thumb_func_end sub_8057804 - - thumb_func_start sub_8057818 -sub_8057818: @ 8057818 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x66 - beq _08057826 - movs r0, 0 - b _08057828 -_08057826: - movs r0, 0x1 -_08057828: - pop {r1} - bx r1 - thumb_func_end sub_8057818 - - thumb_func_start sub_805782C -sub_805782C: @ 805782C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD2 - beq _0805783A - movs r0, 0 - b _0805783C -_0805783A: - movs r0, 0x1 -_0805783C: - pop {r1} - bx r1 - thumb_func_end sub_805782C - - thumb_func_start MetatileBehavior_IsMuddySlope -MetatileBehavior_IsMuddySlope: @ 8057840 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD0 - beq _0805784E - movs r0, 0 - b _08057850 -_0805784E: - movs r0, 0x1 -_08057850: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsMuddySlope - - thumb_func_start MetatileBehavior_IsBumpySlope -MetatileBehavior_IsBumpySlope: @ 8057854 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD1 - beq _08057862 - movs r0, 0 - b _08057864 -_08057862: - movs r0, 0x1 -_08057864: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsBumpySlope - - thumb_func_start MetatileBehavior_IsIsolatedVerticalRail -MetatileBehavior_IsIsolatedVerticalRail: @ 8057868 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD3 - beq _08057876 - movs r0, 0 - b _08057878 -_08057876: - movs r0, 0x1 -_08057878: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsIsolatedVerticalRail - - thumb_func_start MetatileBehavior_IsIsolatedHorizontalRail -MetatileBehavior_IsIsolatedHorizontalRail: @ 805787C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD4 - beq _0805788A - movs r0, 0 - b _0805788C -_0805788A: - movs r0, 0x1 -_0805788C: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsIsolatedHorizontalRail - - thumb_func_start MetatileBehavior_IsVerticalRail -MetatileBehavior_IsVerticalRail: @ 8057890 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD5 - beq _0805789E - movs r0, 0 - b _080578A0 -_0805789E: - movs r0, 0x1 -_080578A0: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsVerticalRail - - thumb_func_start MetatileBehavior_IsHorizontalRail -MetatileBehavior_IsHorizontalRail: @ 80578A4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD6 - beq _080578B2 - movs r0, 0 - b _080578B4 -_080578B2: - movs r0, 0x1 -_080578B4: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsHorizontalRail - - thumb_func_start MetatileBehavior_IsSeaweed -MetatileBehavior_IsSeaweed: @ 80578B8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x22 - beq _080578C6 - cmp r0, 0x2A - bne _080578CA -_080578C6: - movs r0, 0x1 - b _080578CC -_080578CA: - movs r0, 0 -_080578CC: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsSeaweed - - thumb_func_start MetatileBehavior_IsRunningDisallowed -MetatileBehavior_IsRunningDisallowed: @ 80578D0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xA - beq _080578EC - cmp r0, 0x3 - beq _080578EC - cmp r0, 0x28 - beq _080578EC - bl MetatileBehavior_IsPacifidlogLog - lsls r0, 24 - cmp r0, 0 - beq _080578F0 -_080578EC: - movs r0, 0x1 - b _080578F2 -_080578F0: - movs r0, 0 -_080578F2: - pop {r1} - bx r1 - thumb_func_end MetatileBehavior_IsRunningDisallowed - - thumb_func_start sub_80578F8 -sub_80578F8: @ 80578F8 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xFE - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0x1 - bls _08057912 - cmp r1, 0x24 - beq _08057912 - cmp r1, 0x9 - bne _08057916 -_08057912: - movs r0, 0x1 - b _08057918 -_08057916: - movs r0, 0 -_08057918: - pop {r1} - bx r1 - thumb_func_end sub_80578F8 - - thumb_func_start sub_805791C -sub_805791C: @ 805791C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x8E - beq _0805792A - movs r0, 0 - b _0805792C -_0805792A: - movs r0, 0x1 -_0805792C: - pop {r1} - bx r1 - thumb_func_end sub_805791C - - thumb_func_start sub_8057930 -sub_8057930: @ 8057930 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xE0 - beq _0805793E - movs r0, 0 - b _08057940 -_0805793E: - movs r0, 0x1 -_08057940: - pop {r1} - bx r1 - thumb_func_end sub_8057930 - - thumb_func_start sub_8057944 -sub_8057944: @ 8057944 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xE1 - beq _08057952 - movs r0, 0 - b _08057954 -_08057952: - movs r0, 0x1 -_08057954: - pop {r1} - bx r1 - thumb_func_end sub_8057944 - - thumb_func_start sub_8057958 -sub_8057958: @ 8057958 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xE2 - beq _08057966 - movs r0, 0 - b _08057968 -_08057966: - movs r0, 0x1 -_08057968: - pop {r1} - bx r1 - thumb_func_end sub_8057958 - - thumb_func_start sub_805796C -sub_805796C: @ 805796C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xE3 - beq _0805797A - movs r0, 0 - b _0805797C -_0805797A: - movs r0, 0x1 -_0805797C: - pop {r1} - bx r1 - thumb_func_end sub_805796C - - thumb_func_start sub_8057980 -sub_8057980: @ 8057980 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xE4 - beq _0805798E - movs r0, 0 - b _08057990 -_0805798E: - movs r0, 0x1 -_08057990: - pop {r1} - bx r1 - thumb_func_end sub_8057980 - - thumb_func_start sub_8057994 -sub_8057994: @ 8057994 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xE5 - beq _080579A2 - movs r0, 0 - b _080579A4 -_080579A2: - movs r0, 0x1 -_080579A4: - pop {r1} - bx r1 - thumb_func_end sub_8057994 - - thumb_func_start sub_80579A8 -sub_80579A8: @ 80579A8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xE6 - beq _080579B6 - movs r0, 0 - b _080579B8 -_080579B6: - movs r0, 0x1 -_080579B8: - pop {r1} - bx r1 - thumb_func_end sub_80579A8 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/money.s b/asm/money.s deleted file mode 100644 index 65d8b87a1..000000000 --- a/asm/money.s +++ /dev/null @@ -1,480 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start IsEnoughMoney -IsEnoughMoney: @ 80B79A8 - push {lr} - cmp r0, r1 - bcs _080B79B2 - movs r0, 0 - b _080B79B4 -_080B79B2: - movs r0, 0x1 -_080B79B4: - pop {r1} - bx r1 - thumb_func_end IsEnoughMoney - - thumb_func_start sub_80B79B8 -sub_80B79B8: @ 80B79B8 - push {lr} - adds r2, r0, 0 - ldr r0, [r2] - adds r1, r0, r1 - cmp r0, r1 - bls _080B79CC - ldr r0, _080B79C8 @ =0x000f423f - b _080B79D4 - .align 2, 0 -_080B79C8: .4byte 0x000f423f -_080B79CC: - str r1, [r2] - ldr r0, _080B79DC @ =0x000f423f - cmp r1, r0 - bls _080B79D6 -_080B79D4: - str r0, [r2] -_080B79D6: - pop {r0} - bx r0 - .align 2, 0 -_080B79DC: .4byte 0x000f423f - thumb_func_end sub_80B79B8 - - thumb_func_start sub_80B79E0 -sub_80B79E0: @ 80B79E0 - push {lr} - adds r2, r0, 0 - ldr r0, [r2] - cmp r0, r1 - bcs _080B79EE - movs r0, 0 - b _080B79F0 -_080B79EE: - subs r0, r1 -_080B79F0: - str r0, [r2] - pop {r0} - bx r0 - thumb_func_end sub_80B79E0 - - thumb_func_start sub_80B79F8 -sub_80B79F8: @ 80B79F8 - push {r4,lr} - adds r3, r0, 0 - lsls r2, 24 - lsrs r4, r2, 24 - ldr r0, _080B7A0C @ =0x000f423f - cmp r1, r0 - bls _080B7A10 - movs r2, 0x7 - b _080B7A46 - .align 2, 0 -_080B7A0C: .4byte 0x000f423f -_080B7A10: - ldr r0, _080B7A1C @ =0x0001869f - cmp r1, r0 - bls _080B7A20 - movs r2, 0x6 - b _080B7A46 - .align 2, 0 -_080B7A1C: .4byte 0x0001869f -_080B7A20: - ldr r0, _080B7A2C @ =0x00002710 - cmp r1, r0 - bls _080B7A30 - movs r2, 0x5 - b _080B7A46 - .align 2, 0 -_080B7A2C: .4byte 0x00002710 -_080B7A30: - ldr r0, _080B7A90 @ =0x000003e7 - movs r2, 0x4 - cmp r1, r0 - bhi _080B7A46 - movs r2, 0x3 - cmp r1, 0x63 - bhi _080B7A46 - movs r2, 0x1 - cmp r1, 0x9 - bls _080B7A46 - movs r2, 0x2 -_080B7A46: - movs r0, 0xFC - strb r0, [r3] - movs r0, 0x14 - strb r0, [r3, 0x1] - movs r0, 0x6 - strb r0, [r3, 0x2] - adds r3, 0x3 - movs r0, 0 - subs r2, r4, r2 - cmp r0, r2 - bge _080B7A6C - movs r4, 0 -_080B7A5E: - strb r4, [r3] - adds r3, 0x1 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, r2 - blt _080B7A5E -_080B7A6C: - movs r0, 0xB7 - strb r0, [r3] - adds r3, 0x1 - adds r0, r3, 0 - bl ConvertIntToDecimalString - adds r3, r0, 0 - movs r0, 0xFC - strb r0, [r3] - movs r0, 0x14 - strb r0, [r3, 0x1] - movs r0, 0 - strb r0, [r3, 0x2] - movs r0, 0xFF - strb r0, [r3, 0x3] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B7A90: .4byte 0x000003e7 - thumb_func_end sub_80B79F8 - - thumb_func_start sub_80B7A94 -sub_80B7A94: @ 80B7A94 - push {r4-r7,lr} - sub sp, 0x10 - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - lsls r3, 24 - lsrs r7, r3, 24 - mov r0, sp - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_80B79F8 - mov r0, sp - bl sub_8072CA4 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r5, 0x1 - lsls r0, 3 - cmp r2, r0 - blt _080B7ACE - mov r0, sp - adds r1, r6, 0 - adds r2, r7, 0 - bl MenuPrint - b _080B7AE4 -_080B7ACE: - adds r1, r6, 0x1 - adds r1, r5 - lsls r1, 3 - subs r1, r2 - lsls r1, 24 - lsrs r1, 24 - lsls r2, r7, 3 - mov r0, sp - movs r3, 0x1 - bl MenuPrint_PixelCoords -_080B7AE4: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B7A94 - - thumb_func_start sub_80B7AEC -sub_80B7AEC: @ 80B7AEC - push {r4-r6,lr} - sub sp, 0x20 - adds r3, r0, 0 - adds r4, r1, 0 - adds r5, r2, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - mov r6, sp - movs r0, 0xB7 - strb r0, [r6] - adds r6, 0x1 - adds r0, r6, 0 - adds r1, r3, 0 - bl ConvertIntToDecimalString - adds r6, r0, 0 - mov r0, sp - adds r1, r4, 0 - adds r2, r5, 0 - bl MenuPrint_RightAligned - movs r0, 0xFC - strb r0, [r6] - movs r0, 0x14 - strb r0, [r6, 0x1] - movs r0, 0 - strb r0, [r6, 0x2] - movs r0, 0xFF - strb r0, [r6, 0x3] - add sp, 0x20 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B7AEC - - thumb_func_start sub_80B7B34 -sub_80B7B34: @ 80B7B34 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - mov r8, r0 - adds r5, r1, 0 - mov r9, r2 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r5, 24 - lsrs r5, 24 - mov r1, r9 - lsls r1, 8 - mov r9, r1 - ldr r4, _080B7BD8 @ =gDecoration10000_Gfx - adds r0, r1, r4 - lsls r6, r5, 4 - subs r6, r5 - lsls r1, r6, 6 - mov r3, r8 - adds r3, 0x1 - lsls r3, 5 - ldr r2, _080B7BDC @ =0x06008000 - adds r3, r2 - adds r1, r3 - movs r2, 0x20 - str r3, [sp] - bl CpuFastSet - adds r4, 0x80 - add r9, r4 - adds r0, r5, 0x1 - lsls r4, r0, 4 - subs r4, r0 - lsls r1, r4, 6 - ldr r3, [sp] - adds r1, r3 - mov r0, r9 - movs r2, 0x20 - bl CpuFastSet - movs r3, 0 - lsls r5, 5 - mov r0, r8 - adds r7, r5, r0 - lsls r6, 1 - adds r6, 0x1 - add r6, r8 - ldr r1, _080B7BE0 @ =0xfffff000 - adds r5, r1, 0 - ldr r0, _080B7BE4 @ =0x0600f800 - mov r12, r0 - ldr r1, _080B7BE8 @ =0x0600f840 - mov r9, r1 - lsls r4, 1 - adds r4, 0x1 - add r4, r8 -_080B7BAA: - adds r1, r7, r3 - lsls r1, 1 - mov r0, r12 - adds r2, r1, r0 - adds r0, r3, r6 - adds r0, r5 - strh r0, [r2] - add r1, r9 - adds r0, r3, r4 - adds r0, r5 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _080B7BAA - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B7BD8: .4byte gDecoration10000_Gfx -_080B7BDC: .4byte 0x06008000 -_080B7BE0: .4byte 0xfffff000 -_080B7BE4: .4byte 0x0600f800 -_080B7BE8: .4byte 0x0600f840 - thumb_func_end sub_80B7B34 - - thumb_func_start sub_80B7BEC -sub_80B7BEC: @ 80B7BEC - push {r4,lr} - adds r4, r1, 0 - adds r3, r2, 0 - lsls r4, 24 - lsls r3, 24 - movs r1, 0xC0 - lsls r1, 19 - adds r4, r1 - lsrs r4, 24 - movs r1, 0x80 - lsls r1, 17 - adds r3, r1 - lsrs r3, 24 - movs r1, 0x6 - adds r2, r4, 0 - bl sub_80B7A94 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B7BEC - - thumb_func_start sub_80B7C14 -sub_80B7C14: @ 80B7C14 - push {r4-r6,lr} - mov r6, r8 - push {r6} - mov r8, r0 - adds r4, r1, 0 - adds r3, r2, 0 - lsls r4, 24 - lsls r3, 24 - lsrs r6, r4, 24 - movs r0, 0xD0 - lsls r0, 20 - adds r4, r0 - lsrs r4, 24 - lsrs r5, r3, 24 - movs r1, 0xC0 - lsls r1, 18 - adds r3, r1 - lsrs r3, 24 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl MenuDrawTextWindow - mov r0, r8 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_80B7BEC - ldr r0, _080B7C88 @ =gUnknown_083CF584 - bl LoadCompressedObjectPic - ldr r0, _080B7C8C @ =gUnknown_083CF58C - bl LoadCompressedObjectPalette - ldr r0, _080B7C90 @ =gSpriteTemplate_83CF56C - lsls r6, 19 - movs r1, 0x98 - lsls r1, 13 - adds r6, r1 - asrs r6, 16 - lsls r5, 19 - movs r1, 0xB0 - lsls r1, 12 - adds r5, r1 - asrs r5, 16 - adds r1, r6, 0 - adds r2, r5, 0 - movs r3, 0 - bl CreateSprite - ldr r1, _080B7C94 @ =gUnknown_02038734 - strb r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B7C88: .4byte gUnknown_083CF584 -_080B7C8C: .4byte gUnknown_083CF58C -_080B7C90: .4byte gSpriteTemplate_83CF56C -_080B7C94: .4byte gUnknown_02038734 - thumb_func_end sub_80B7C14 - - thumb_func_start RemoveMoneyLabelObject -RemoveMoneyLabelObject: @ 80B7C98 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _080B7CDC @ =gUnknown_02038734 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080B7CE0 @ =gSprites - adds r0, r1 - bl DestroySpriteAndFreeResources - ldr r0, _080B7CE4 @ =0x00002722 - bl FreeSpritePaletteByTag - adds r2, r4, 0 - adds r2, 0xD - lsls r2, 24 - lsrs r2, 24 - adds r3, r5, 0x3 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl MenuZeroFillWindowRect - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B7CDC: .4byte gUnknown_02038734 -_080B7CE0: .4byte gSprites -_080B7CE4: .4byte 0x00002722 - thumb_func_end RemoveMoneyLabelObject - - thumb_func_start sub_80B7CE8 -sub_80B7CE8: @ 80B7CE8 - push {lr} - ldr r0, _080B7D04 @ =gSaveBlock1 - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080B7D08 @ =gSpecialVar_0x8005 - ldrh r1, [r1] - bl IsEnoughMoney - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_080B7D04: .4byte gSaveBlock1 -_080B7D08: .4byte gSpecialVar_0x8005 - thumb_func_end sub_80B7CE8 - - thumb_func_start sub_80B7D0C -sub_80B7D0C: @ 80B7D0C - push {lr} - ldr r0, _080B7D1C @ =gSaveBlock1 + 0x490 - ldr r1, _080B7D20 @ =gSpecialVar_0x8005 - ldrh r1, [r1] - bl sub_80B79E0 - pop {r0} - bx r0 - .align 2, 0 -_080B7D1C: .4byte gSaveBlock1 + 0x490 -_080B7D20: .4byte gSpecialVar_0x8005 - thumb_func_end sub_80B7D0C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/mystery_event_menu.s b/asm/mystery_event_menu.s deleted file mode 100644 index 6331199de..000000000 --- a/asm/mystery_event_menu.s +++ /dev/null @@ -1,581 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_8146900 -sub_8146900: @ 8146900 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8146900 - - thumb_func_start sub_8146914 -sub_8146914: @ 8146914 - push {lr} - movs r2, 0 - ldr r1, _0814692C @ =gLinkPlayers - ldrh r0, [r1, 0x1A] - ldrh r1, [r1, 0x36] - cmp r0, r1 - bne _08146924 - movs r2, 0x1 -_08146924: - adds r0, r2, 0 - pop {r1} - bx r1 - .align 2, 0 -_0814692C: .4byte gLinkPlayers - thumb_func_end sub_8146914 - - thumb_func_start CB2_InitMysteryEventMenu -CB2_InitMysteryEventMenu: @ 8146930 - push {r4,lr} - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetTasks - ldr r0, _0814699C @ =sub_8146900 - bl SetVBlankCallback - ldr r4, _081469A0 @ =gWindowConfig_81E6CE4 - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl InitMenuWindow - bl MenuZeroFillScreen - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xA0 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x50 - movs r0, 0 - strh r0, [r1] - ldr r0, _081469A4 @ =Task_DestroySelf - movs r1, 0 - bl CreateTask - bl StopMapMusic - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - movs r0, 0 - movs r1, 0 - movs r2, 0x2 - bl FillPalette - ldr r0, _081469A8 @ =sub_81469E4 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814699C: .4byte sub_8146900 -_081469A0: .4byte gWindowConfig_81E6CE4 -_081469A4: .4byte Task_DestroySelf -_081469A8: .4byte sub_81469E4 - thumb_func_end CB2_InitMysteryEventMenu - - thumb_func_start sub_81469AC -sub_81469AC: @ 81469AC - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r1, 0 - movs r5, 0x1 - cmp r4, 0 - bne _081469C0 - ldr r1, _081469DC @ =gSystemText_EventLoadSuccess - bl StringCopy - movs r5, 0 -_081469C0: - cmp r4, 0x2 - bne _081469C6 - movs r5, 0 -_081469C6: - cmp r4, 0x1 - bne _081469D2 - ldr r1, _081469E0 @ =gSystemText_LoadingError - adds r0, r6, 0 - bl StringCopy -_081469D2: - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_081469DC: .4byte gSystemText_EventLoadSuccess -_081469E0: .4byte gSystemText_LoadingError - thumb_func_end sub_81469AC - - thumb_func_start sub_81469E4 -sub_81469E4: @ 81469E4 - push {r4-r6,lr} - sub sp, 0x8 - ldr r1, _08146A04 @ =gMain - ldr r2, _08146A08 @ =0x0000043c - adds r0, r1, r2 - ldrb r0, [r0] - adds r4, r1, 0 - cmp r0, 0x10 - bls _081469F8 - b _08146DA4 -_081469F8: - lsls r0, 2 - ldr r1, _08146A0C @ =_08146A10 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08146A04: .4byte gMain -_08146A08: .4byte 0x0000043c -_08146A0C: .4byte _08146A10 - .align 2, 0 -_08146A10: - .4byte _08146A54 - .4byte _08146A6E - .4byte _08146A9C - .4byte _08146AD4 - .4byte _08146B18 - .4byte _08146B26 - .4byte _08146B90 - .4byte _08146C64 - .4byte _08146C72 - .4byte _08146C94 - .4byte _08146CA0 - .4byte _08146CB4 - .4byte _08146CFC - .4byte _08146D18 - .4byte _08146D50 - .4byte _08146D6C - .4byte _08146D94 -_08146A54: - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - b _08146D78 -_08146A6E: - ldr r0, _08146A8C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08146A7C - b _08146DA4 -_08146A7C: - ldr r0, _08146A90 @ =gSystemText_LinkStandby - bl sub_8072044 - ldr r1, _08146A94 @ =gMain - ldr r2, _08146A98 @ =0x0000043c - adds r1, r2 - b _08146D82 - .align 2, 0 -_08146A8C: .4byte gPaletteFade -_08146A90: .4byte gSystemText_LinkStandby -_08146A94: .4byte gMain -_08146A98: .4byte 0x0000043c -_08146A9C: - bl MenuUpdateWindowText - lsls r0, 24 - cmp r0, 0 - bne _08146AA8 - b _08146DA4 -_08146AA8: - ldr r1, _08146AC4 @ =gMain - ldr r0, _08146AC8 @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r1, _08146ACC @ =gLinkType - ldr r2, _08146AD0 @ =0x00005501 - adds r0, r2, 0 - strh r0, [r1] - bl OpenLink - b _08146DA4 - .align 2, 0 -_08146AC4: .4byte gMain -_08146AC8: .4byte 0x0000043c -_08146ACC: .4byte gLinkType -_08146AD0: .4byte 0x00005501 -_08146AD4: - ldr r0, _08146B08 @ =gLinkStatus - ldr r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _08146AE2 - b _08146C38 -_08146AE2: - movs r0, 0x1C - ands r1, r0 - cmp r1, 0x4 - bhi _08146AEC - b _08146C38 -_08146AEC: - movs r0, 0x15 - bl PlaySE - ldr r0, _08146B0C @ =gSystemText_LoadEventPressA - bl sub_8072044 - ldr r1, _08146B10 @ =gMain - ldr r0, _08146B14 @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08146C38 - .align 2, 0 -_08146B08: .4byte gLinkStatus -_08146B0C: .4byte gSystemText_LoadEventPressA -_08146B10: .4byte gMain -_08146B14: .4byte 0x0000043c -_08146B18: - bl MenuUpdateWindowText - lsls r0, 24 - cmp r0, 0 - bne _08146B24 - b _08146DA4 -_08146B24: - b _08146D7C -_08146B26: - bl GetLinkPlayerCount_2 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bne _08146C10 - ldr r4, _08146B64 @ =gMain - ldrh r1, [r4, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08146B70 - movs r0, 0x5 - bl PlaySE - bl sub_8007F4C - movs r0, 0x6 - movs r1, 0x5 - movs r2, 0x17 - movs r3, 0x8 - bl MenuDrawTextWindow - ldr r0, _08146B68 @ =gSystemText_LoadingEvent - movs r1, 0x7 - movs r2, 0x6 - bl MenuPrint - ldr r2, _08146B6C @ =0x0000043c - adds r1, r4, r2 - b _08146D82 - .align 2, 0 -_08146B64: .4byte gMain -_08146B68: .4byte gSystemText_LoadingEvent -_08146B6C: .4byte 0x0000043c -_08146B70: - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _08146B7A - b _08146DA4 -_08146B7A: - movs r0, 0x5 - bl PlaySE - bl CloseLink - ldr r0, _08146B8C @ =0x0000043c - adds r1, r4, r0 - b _08146C54 - .align 2, 0 -_08146B8C: .4byte 0x0000043c -_08146B90: - bl IsLinkConnectionEstablished - lsls r0, 24 - cmp r0, 0 - beq _08146C38 - ldr r0, _08146BD8 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _08146BA4 - b _08146DA4 -_08146BA4: - bl GetLinkPlayerDataExchangeStatusTimed - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _08146BE8 - bl sub_800832C - movs r0, 0x6 - movs r1, 0x5 - movs r2, 0x17 - movs r3, 0x8 - bl MenuZeroFillWindowRect - ldr r4, _08146BDC @ =gStringVar4 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81469AC - adds r0, r4, 0 - bl sub_8072044 - ldr r0, _08146BE0 @ =gMain - ldr r2, _08146BE4 @ =0x0000043c - adds r0, r2 - b _08146C26 - .align 2, 0 -_08146BD8: .4byte gReceivedRemoteLinkPlayers -_08146BDC: .4byte gStringVar4 -_08146BE0: .4byte gMain -_08146BE4: .4byte 0x0000043c -_08146BE8: - bl sub_8146914 - lsls r0, 24 - cmp r0, 0 - beq _08146C00 - ldr r0, _08146BFC @ =gSystemText_DontCutLink - bl sub_8072044 - b _08146D7C - .align 2, 0 -_08146BFC: .4byte gSystemText_DontCutLink -_08146C00: - bl CloseLink - movs r0, 0x6 - movs r1, 0x5 - movs r2, 0x17 - movs r3, 0x8 - bl MenuZeroFillWindowRect -_08146C10: - ldr r4, _08146C2C @ =gStringVar4 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81469AC - adds r0, r4, 0 - bl sub_8072044 - ldr r0, _08146C30 @ =gMain - ldr r1, _08146C34 @ =0x0000043c - adds r0, r1 -_08146C26: - movs r1, 0xD - strb r1, [r0] - b _08146DA4 - .align 2, 0 -_08146C2C: .4byte gStringVar4 -_08146C30: .4byte gMain -_08146C34: .4byte 0x0000043c -_08146C38: - ldr r4, _08146C5C @ =gMain - ldrh r1, [r4, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08146C46 - b _08146DA4 -_08146C46: - movs r0, 0x5 - bl PlaySE - bl CloseLink - ldr r2, _08146C60 @ =0x0000043c - adds r1, r4, r2 -_08146C54: - movs r0, 0xF - strb r0, [r1] - b _08146DA4 - .align 2, 0 -_08146C5C: .4byte gMain -_08146C60: .4byte 0x0000043c -_08146C64: - bl MenuUpdateWindowText - lsls r0, 24 - cmp r0, 0 - bne _08146C70 - b _08146DA4 -_08146C70: - b _08146D7C -_08146C72: - bl GetBlockReceivedStatus - lsls r0, 24 - cmp r0, 0 - bne _08146C7E - b _08146DA4 -_08146C7E: - bl ResetBlockReceivedFlags - ldr r1, _08146C8C @ =gMain - ldr r2, _08146C90 @ =0x0000043c - adds r1, r2 - b _08146D82 - .align 2, 0 -_08146C8C: .4byte gMain -_08146C90: .4byte 0x0000043c -_08146C94: - ldr r0, _08146C9C @ =0x0000043c - adds r1, r4, r0 - b _08146D82 - .align 2, 0 -_08146C9C: .4byte 0x0000043c -_08146CA0: - bl sub_800832C - ldr r1, _08146CAC @ =gMain - ldr r2, _08146CB0 @ =0x0000043c - adds r1, r2 - b _08146D82 - .align 2, 0 -_08146CAC: .4byte gMain -_08146CB0: .4byte 0x0000043c -_08146CB4: - ldr r0, _08146CEC @ =gReceivedRemoteLinkPlayers - ldrb r6, [r0] - cmp r6, 0 - bne _08146DA4 - ldr r5, _08146CF0 @ =0x02000000 - adds r0, r5, 0 - bl sub_812613C - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - str r6, [sp, 0x4] - ldr r2, _08146CF4 @ =0x050001f5 - add r0, sp, 0x4 - adds r1, r5, 0 - bl CpuSet - ldr r0, _08146CF8 @ =gStringVar4 - adds r1, r4, 0 - bl sub_81469AC - lsls r0, 24 - cmp r0, 0 - bne _08146D7C - movs r0, 0 - bl sub_8125D44 - b _08146D7C - .align 2, 0 -_08146CEC: .4byte gReceivedRemoteLinkPlayers -_08146CF0: .4byte 0x02000000 -_08146CF4: .4byte 0x050001f5 -_08146CF8: .4byte gStringVar4 -_08146CFC: - ldr r0, _08146D0C @ =gStringVar4 - bl sub_8072044 - ldr r1, _08146D10 @ =gMain - ldr r2, _08146D14 @ =0x0000043c - adds r1, r2 - b _08146D82 - .align 2, 0 -_08146D0C: .4byte gStringVar4 -_08146D10: .4byte gMain -_08146D14: .4byte 0x0000043c -_08146D18: - movs r0, 0x6 - movs r1, 0x5 - movs r2, 0x17 - movs r3, 0x8 - bl MenuZeroFillWindowRect - bl MenuUpdateWindowText - lsls r0, 24 - cmp r0, 0 - beq _08146DA4 - ldr r1, _08146D44 @ =gMain - ldr r0, _08146D48 @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - movs r2, 0 - strb r0, [r1] - ldr r0, _08146D4C @ =gUnknown_02039338 - strb r2, [r0] - b _08146DA4 - .align 2, 0 -_08146D44: .4byte gMain -_08146D48: .4byte 0x0000043c -_08146D4C: .4byte gUnknown_02039338 -_08146D50: - ldrh r1, [r4, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08146DA4 - movs r0, 0x5 - bl PlaySE - ldr r2, _08146D68 @ =0x0000043c - adds r1, r4, r2 - b _08146D82 - .align 2, 0 -_08146D68: .4byte 0x0000043c -_08146D6C: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 -_08146D78: - bl BeginNormalPaletteFade -_08146D7C: - ldr r1, _08146D8C @ =gMain - ldr r0, _08146D90 @ =0x0000043c - adds r1, r0 -_08146D82: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08146DA4 - .align 2, 0 -_08146D8C: .4byte gMain -_08146D90: .4byte 0x0000043c -_08146D94: - ldr r0, _08146DFC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08146DA4 - bl DoSoftReset -_08146DA4: - ldr r0, _08146E00 @ =gLinkStatus - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08146DE4 - bl IsLinkMaster - lsls r0, 24 - cmp r0, 0 - bne _08146DE4 - bl CloseLink - movs r0, 0x6 - movs r1, 0x5 - movs r2, 0x17 - movs r3, 0x8 - bl MenuZeroFillWindowRect - ldr r4, _08146E04 @ =gStringVar4 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81469AC - adds r0, r4, 0 - bl sub_8072044 - ldr r0, _08146E08 @ =gMain - ldr r1, _08146E0C @ =0x0000043c - adds r0, r1 - movs r1, 0xD - strb r1, [r0] -_08146DE4: - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08146DFC: .4byte gPaletteFade -_08146E00: .4byte gLinkStatus -_08146E04: .4byte gStringVar4 -_08146E08: .4byte gMain -_08146E0C: .4byte 0x0000043c - thumb_func_end sub_81469E4 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/mystery_event_script.s b/asm/mystery_event_script.s index 4b8717bac..f0e842626 100644 --- a/asm/mystery_event_script.s +++ b/asm/mystery_event_script.s @@ -6,181 +6,6 @@ .text - thumb_func_start sub_8126098 -sub_8126098: @ 8126098 - push {r4,lr} - adds r4, r3, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r2, 16 - lsrs r2, 16 - movs r3, 0x2 - ands r0, r3 - cmp r0, 0 - beq _081260C6 - ands r1, r3 - cmp r1, 0 - beq _081260C6 - movs r0, 0x4 - ands r2, r0 - cmp r2, 0 - beq _081260C6 - movs r0, 0x80 - .ifdef SAPPHIRE - lsls r0, 1 @ unknown difference - .endif - ands r0, r4 - cmp r0, 0 - beq _081260C6 - movs r0, 0x1 - b _081260C8 -_081260C6: - movs r0, 0 -_081260C8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8126098 - - thumb_func_start sub_81260D0 -sub_81260D0: @ 81260D0 - push {lr} - ldr r0, _081260E4 @ =gStringVar4 - ldr r1, _081260E8 @ =gOtherText_DataCannotUseVersion - bl StringExpandPlaceholders - movs r0, 0x3 - bl sub_8126160 - pop {r0} - bx r0 - .align 2, 0 -_081260E4: .4byte gStringVar4 -_081260E8: .4byte gOtherText_DataCannotUseVersion - thumb_func_end sub_81260D0 - - thumb_func_start sub_81260EC -sub_81260EC: @ 81260EC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, _08126114 @ =gScriptFuncs - ldr r2, _08126118 @ =gScriptFuncs_End - bl InitScriptContext - adds r0, r4, 0 - adds r1, r5, 0 - bl SetupBytecodeScript - str r5, [r4, 0x64] - movs r0, 0 - str r0, [r4, 0x68] - str r0, [r4, 0x6C] - str r0, [r4, 0x70] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08126114: .4byte gScriptFuncs -_08126118: .4byte gScriptFuncs_End - thumb_func_end sub_81260EC - - thumb_func_start sub_812611C -sub_812611C: @ 812611C - push {r4,lr} - adds r4, r0, 0 - bl RunScript - lsls r0, 24 - cmp r0, 0 - beq _08126134 - ldr r0, [r4, 0x70] - cmp r0, 0 - beq _08126134 - movs r0, 0x1 - b _08126136 -_08126134: - movs r0, 0 -_08126136: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_812611C - - thumb_func_start sub_812613C -sub_812613C: @ 812613C - push {r4,lr} - adds r1, r0, 0 - ldr r4, _0812615C @ =gUnknown_02039288 - adds r0, r4, 0 - bl sub_81260EC -_08126148: - adds r0, r4, 0 - bl sub_812611C - cmp r0, 0 - bne _08126148 - ldr r0, [r4, 0x6C] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812615C: .4byte gUnknown_02039288 - thumb_func_end sub_812613C - - thumb_func_start sub_8126160 -sub_8126160: @ 8126160 - ldr r1, _08126168 @ =gUnknown_02039288 - str r0, [r1, 0x6C] - bx lr - .align 2, 0 -_08126168: .4byte gUnknown_02039288 - thumb_func_end sub_8126160 - - thumb_func_start sub_812616C -sub_812616C: @ 812616C - push {r4,lr} - adds r4, r0, 0 - movs r3, 0 - movs r2, 0 - cmp r3, r1 - bcs _08126184 -_08126178: - adds r0, r4, r2 - ldrb r0, [r0] - adds r3, r0 - adds r2, 0x1 - cmp r2, r1 - bcc _08126178 -_08126184: - adds r0, r3, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_812616C - - thumb_func_start sub_812618C -sub_812618C: @ 812618C - adds r2, r0, 0 - ldrb r0, [r2] - ldrb r1, [r2, 0x1] - lsls r1, 8 - orrs r0, r1 - ldrb r1, [r2, 0x2] - lsls r1, 16 - orrs r0, r1 - ldrb r1, [r2, 0x3] - lsls r1, 24 - orrs r0, r1 - bx lr - thumb_func_end sub_812618C - - thumb_func_start sub_81261A4 -sub_81261A4: @ 81261A4 - strb r1, [r0] - lsrs r2, r1, 8 - strb r2, [r0, 0x1] - lsrs r2, r1, 16 - strb r2, [r0, 0x2] - lsrs r1, 24 - strb r1, [r0, 0x3] - bx lr - thumb_func_end sub_81261A4 - thumb_func_start unref_sub_81261B4 unref_sub_81261B4: @ 81261B4 push {r4-r7,lr} @@ -257,7 +82,7 @@ unref_sub_812620C: @ 812620C adds r1, r5 subs r1, r4 adds r0, r4, 0 - bl sub_8041174 + bl CalcCRC16 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 @@ -544,7 +369,7 @@ sub_8126438: @ 8126438 mov r7, r8 push {r7} adds r7, r0, 0 - bl sub_80B4940 + bl IsEnigmaBerryValid mov r8, r0 adds r0, r7, 0 bl ScriptReadWord @@ -560,7 +385,7 @@ sub_8126438: @ 8126438 movs r2, 0x7 bl StringCopyN adds r0, r4, 0 - bl sub_80B48A8 + bl SetEnigmaBerry ldr r4, _0812648C @ =gStringVar2 adds r0, r4, 0 adds r1, r5, 0 @@ -597,7 +422,7 @@ _081264B8: bl StringExpandPlaceholders movs r0, 0x2 str r0, [r7, 0x6C] - bl sub_80B4940 + bl IsEnigmaBerryValid cmp r0, 0x1 bne _081264E0 ldr r0, _081264DC @ =0x0000402d @@ -702,7 +527,7 @@ sub_8126524: @ 8126524 sub_812658C: @ 812658C push {r4,lr} adds r4, r0, 0 - bl sub_80690F0 + bl EnableNationalPokedex ldr r0, _081265A8 @ =gStringVar4 ldr r1, _081265AC @ =gOtherText_DexUpgraded bl StringExpandPlaceholders @@ -914,7 +739,7 @@ _08126750: .4byte gOtherText_NewTrainerInHoenn sub_8126754: @ 8126754 push {r4,lr} adds r4, r0, 0 - bl sub_80691BC + bl EnableResetRTC ldr r0, _08126770 @ =gStringVar4 ldr r1, _08126774 @ =gSystemText_ClockAdjustmentUsable bl StringExpandPlaceholders @@ -987,7 +812,7 @@ sub_81267C0: @ 81267C0 adds r1, r0 subs r1, r4 adds r0, r4, 0 - bl sub_8041174 + bl CalcCRC16 lsls r0, 16 lsrs r0, 16 cmp r5, r0 diff --git a/asm/name_string_util.s b/asm/name_string_util.s new file mode 100644 index 000000000..3fcfd89d9 --- /dev/null +++ b/asm/name_string_util.s @@ -0,0 +1,76 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start PadNameString +PadNameString: @ 814A518 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + bl StripExtCtrlCodes + adds r0, r4, 0 + bl StringLength + lsls r0, 24 + lsrs r1, r0, 24 + cmp r5, 0xFC + bne _0814A556 + cmp r1, 0x5 + bhi _0814A55A + movs r3, 0xFC + movs r2, 0x7 +_0814A53A: + adds r0, r4, r1 + strb r3, [r0] + strb r2, [r0, 0x1] + adds r0, r1, 0x2 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x5 + bls _0814A53A + b _0814A55A +_0814A54C: + adds r0, r4, r1 + strb r5, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 +_0814A556: + cmp r1, 0x5 + bls _0814A54C +_0814A55A: + adds r1, r4, r1 + movs r0, 0xFF + strb r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end PadNameString + + thumb_func_start SanitizeNameString +SanitizeNameString: @ 814A568 + push {r4,lr} + adds r4, r0, 0 + bl StringLength + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x5 + bhi _0814A582 + adds r0, r4, 0 + movs r1, 0x1 + bl ConvertInternationalString + b _0814A588 +_0814A582: + adds r0, r4, 0 + bl StripExtCtrlCodes +_0814A588: + pop {r4} + pop {r0} + bx r0 + thumb_func_end SanitizeNameString + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/naming_screen.s b/asm/naming_screen.s index 121b44790..76ee536c7 100644 --- a/asm/naming_screen.s +++ b/asm/naming_screen.s @@ -2846,7 +2846,7 @@ sub_80B6EFC: @ 80B6EFC str r2, [sp, 0x4] movs r2, 0x34 movs r3, 0x18 - bl sub_809D2FC + bl CreateMonIcon lsls r0, 24 lsrs r0, 24 ldr r2, _080B6F40 @ =gSprites diff --git a/asm/party_menu.s b/asm/party_menu.s index 8f1d9d5b7..0edec1623 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -71,7 +71,7 @@ sub_806AF4C: @ 806AF4C lsrs r3, 24 cmp r1, 0xFF beq _0806AF64 - ldr r0, _0806AF84 @ =gUnknown_020239F8 + ldr r0, _0806AF84 @ =gBattleTypeFlags strh r1, [r0] _0806AF64: ldr r0, _0806AF88 @ =0x0201b000 @@ -90,7 +90,7 @@ _0806AF64: pop {r0} bx r0 .align 2, 0 -_0806AF84: .4byte gUnknown_020239F8 +_0806AF84: .4byte gBattleTypeFlags _0806AF88: .4byte 0x0201b000 thumb_func_end sub_806AF4C @@ -185,7 +185,7 @@ _0806B020: muls r2, r3 ldr r3, _0806B050 @ =gPlayerParty adds r2, r3 - bl sub_806D90C + bl TryCreatePartyMenuMonIcon b _0806B114 .align 2, 0 _0806B048: .4byte 0x00000266 @@ -199,14 +199,14 @@ _0806B054: adds r1, r4, r0 b _0806B0E0 _0806B060: - bl sub_806DA98 + bl LoadHeldItemIconGraphics b _0806B0D8 _0806B066: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] - bl sub_806DC34 + bl CreateHeldItemIcons_806DC34 movs r2, 0x99 lsls r2, 2 adds r1, r4, r2 @@ -233,10 +233,10 @@ _0806B07A: .align 2, 0 _0806B0A0: .4byte 0x00000266 _0806B0A4: - bl sub_806E334 + bl PartyMenuPrintMonsLevelOrStatus b _0806B0D8 _0806B0AA: - bl sub_806E0C4 + bl PrintPartyMenuMonNicknames ldr r1, _0806B0B8 @ =0x0201b000 movs r0, 0x99 lsls r0, 2 @@ -245,7 +245,7 @@ _0806B0AA: .align 2, 0 _0806B0B8: .4byte 0x0201b000 _0806B0BC: - bl sub_806E53C + bl PartyMenuTryPrintMonsHP b _0806B0D8 _0806B0C2: bl nullsub_13 @@ -257,7 +257,7 @@ _0806B0C2: .align 2, 0 _0806B0D0: .4byte 0x0201b000 _0806B0D4: - bl sub_806E6C8 + bl PartyMenuDrawHPBars _0806B0D8: ldr r1, _0806B0E8 @ =0x0201b000 movs r2, 0x99 @@ -774,10 +774,10 @@ _0806B520: .4byte REG_BG3VOFS _0806B524: .4byte 0x0000ffff thumb_func_end sub_806B4A8 - thumb_func_start sub_806B528 -sub_806B528: @ 806B528 + thumb_func_start IsLinkDoubleBattle +IsLinkDoubleBattle: @ 806B528 push {lr} - ldr r0, _0806B53C @ =gUnknown_020239F8 + ldr r0, _0806B53C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x4B ands r0, r1 @@ -786,13 +786,13 @@ sub_806B528: @ 806B528 movs r0, 0 b _0806B542 .align 2, 0 -_0806B53C: .4byte gUnknown_020239F8 +_0806B53C: .4byte gBattleTypeFlags _0806B540: movs r0, 0x1 _0806B542: pop {r1} bx r1 - thumb_func_end sub_806B528 + thumb_func_end IsLinkDoubleBattle thumb_func_start sub_806B548 sub_806B548: @ 806B548 @@ -833,7 +833,7 @@ sub_806B58C: @ 806B58C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 @@ -844,7 +844,7 @@ sub_806B58C: @ 806B58C .align 2, 0 _0806B5A4: .4byte gUnknown_0202E8FA _0806B5A8: - bl sub_806B528 + bl IsLinkDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -909,7 +909,7 @@ _0806B628: movs r1, 0 b _0806B8A8 _0806B638: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _0806B666 @@ -932,7 +932,7 @@ _0806B660: ldrb r1, [r4, 0x3] b _0806B8BC _0806B666: - bl sub_806B528 + bl IsLinkDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -954,7 +954,7 @@ _0806B684: movs r1, 0x1 b _0806B8A8 _0806B694: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _0806B6C2 @@ -977,7 +977,7 @@ _0806B6BC: ldrb r1, [r4, 0x5] b _0806B8BC _0806B6C2: - bl sub_806B528 + bl IsLinkDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1021,7 +1021,7 @@ _0806B714: ldrb r1, [r4, 0x5] b _0806B8BC _0806B71A: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _0806B74A @@ -1044,7 +1044,7 @@ _0806B744: ldrb r1, [r4, 0x7] b _0806B8BC _0806B74A: - bl sub_806B528 + bl IsLinkDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1088,7 +1088,7 @@ _0806B79C: ldrb r1, [r4, 0x7] b _0806B8BC _0806B7A2: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _0806B7D2 @@ -1112,7 +1112,7 @@ _0806B7CC: ldrb r1, [r4, 0x9] b _0806B8BC _0806B7D2: - bl sub_806B528 + bl IsLinkDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1159,7 +1159,7 @@ _0806B82C: ldrb r1, [r4, 0x9] b _0806B8BC _0806B832: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _0806B84C @@ -1171,7 +1171,7 @@ _0806B832: .align 2, 0 _0806B848: .4byte gPlayerPartyCount _0806B84C: - bl sub_806B528 + bl IsLinkDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1714,7 +1714,7 @@ sub_806BC3C: @ 806BC3C lsls r5, 24 lsrs r5, 24 ldr r6, _0806BCB0 @ =gUnknown_08376918 - bl battle_type_is_double + bl IsDoubleBattle lsls r4, 2 lsls r0, 24 lsrs r0, 24 @@ -1861,7 +1861,7 @@ sub_806BD58: @ 806BD58 lsls r4, 24 lsrs r4, 24 ldr r0, _0806BD7C @ =SpriteCallbackDummy - bl object_new_hidden_with_callback + bl CreateInvisibleSpriteWithCallback adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -2176,8 +2176,8 @@ sub_806BF74: @ 806BF74 mov r0, r9 adds r1, r5, 0 movs r2, 0 - bl sub_806DA44 - bl sub_806B528 + bl UpdateMonIconFrame_806DA44 + bl IsLinkDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -2328,7 +2328,7 @@ _0806C0CC: .4byte 0x0201b000 _0806C0D0: .4byte 0x00000261 _0806C0D4: .4byte gUnknown_083768B8 _0806C0D8: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r7, r0, 24 cmp r5, 0x5 @@ -2436,7 +2436,7 @@ _0806C1A4: lsrs r1, 24 mov r0, r9 movs r2, 0x1 - bl sub_806DA44 + bl UpdateMonIconFrame_806DA44 movs r2, 0x2E ldrsh r0, [r4, r2] cmp r5, r0 @@ -3082,7 +3082,7 @@ sub_806C658: @ 806C658 mov r0, r8 adds r1, r6, 0 movs r2, 0 - bl sub_806DA44 + bl UpdateMonIconFrame_806DA44 cmp r6, 0x5 bhi _0806C6A8 lsls r0, r6, 1 @@ -3321,7 +3321,7 @@ _0806C84A: lsrs r1, 24 mov r0, r8 movs r2, 0x1 - bl sub_806DA44 + bl UpdateMonIconFrame_806DA44 movs r3, 0x2E ldrsh r0, [r4, r3] cmp r6, r0 @@ -3362,7 +3362,7 @@ sub_806C890: @ 806C890 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0 - bl sub_806DA44 + bl UpdateMonIconFrame_806DA44 cmp r4, 0x5 bhi _0806C8DC lsls r0, r4, 1 @@ -3430,7 +3430,7 @@ sub_806C92C: @ 806C92C ldrh r0, [r1, 0x30] lsls r0, 24 lsrs r4, r0, 24 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _0806C96A @@ -3606,7 +3606,7 @@ sub_806CA60: @ 806CA60 movs r1, 0 bl CreateTask ldr r0, _0806CAE8 @ =SpriteCallbackDummy - bl object_new_hidden_with_callback + bl CreateInvisibleSpriteWithCallback strb r0, [r5, 0x1] ldrb r1, [r5, 0x1] adds r0, r4, 0 @@ -4020,11 +4020,11 @@ _0806CDCC: ldr r4, _0806CE1C @ =0x02001000 ldrb r0, [r4] ldrb r1, [r4, 0x5] - bl sub_806DDA0 + bl GetMonIconSpriteId_maybe strb r0, [r4, 0x3] ldrb r0, [r4] ldrb r1, [r4, 0x6] - bl sub_806DDA0 + bl GetMonIconSpriteId_maybe strb r0, [r4, 0x4] ldrb r3, [r4, 0x5] cmp r3, 0 @@ -4515,12 +4515,12 @@ sub_806D198: @ 806D198 ldrb r0, [r4] ldrb r1, [r4, 0x5] ldrb r2, [r4, 0x4] - bl sub_806DE50 + bl SetMonIconSpriteId_maybe ldrb r0, [r4] ldrb r1, [r4, 0x6] ldrb r2, [r4, 0x3] - bl sub_806DE50 - bl battle_type_is_double + bl SetMonIconSpriteId_maybe + bl IsDoubleBattle ldr r5, _0806D368 @ =gSprites ldrb r1, [r4, 0x3] lsls r3, r1, 4 @@ -4541,7 +4541,7 @@ sub_806D198: @ 806D198 movs r1, 0 mov r8, r1 strh r0, [r3, 0x20] - bl battle_type_is_double + bl IsDoubleBattle ldrb r1, [r4, 0x3] lsls r3, r1, 4 adds r3, r1 @@ -4580,9 +4580,9 @@ sub_806D198: @ 806D198 adds r1, r5 mov r9, r1 add r0, r9 - ldr r7, _0806D370 @ =sub_806DA38 + ldr r7, _0806D370 @ =UpdateMonIconFrame_806DA38 str r7, [r0] - bl battle_type_is_double + bl IsDoubleBattle ldrb r1, [r4, 0x4] lsls r3, r1, 4 adds r3, r1 @@ -4599,7 +4599,7 @@ sub_806D198: @ 806D198 adds r2, r6 ldrb r0, [r2] strh r0, [r3, 0x20] - bl battle_type_is_double + bl IsDoubleBattle ldrb r1, [r4, 0x4] lsls r3, r1, 4 adds r3, r1 @@ -4645,14 +4645,14 @@ sub_806D198: @ 806D198 ldrh r1, [r1, 0x2E] lsls r1, 24 lsrs r1, 24 - bl sub_806DDA0 + bl GetMonIconSpriteId_maybe lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r9 - ldr r0, _0806D374 @ =sub_806DA0C + ldr r0, _0806D374 @ =UpdateMonIconFrame_806DA0C str r0, [r1] ldrb r0, [r4, 0x5] movs r6, 0x64 @@ -4667,17 +4667,17 @@ sub_806D198: @ 806D198 adds r1, r0, 0 muls r1, r6 adds r1, r5 - bl sub_806E2C0 + bl PartyMenuPrintMonLevelOrStatus ldrb r0, [r4, 0x5] adds r1, r0, 0 muls r1, r6 adds r1, r5 - bl sub_806E07C + bl TryPrintPartyMenuMonNickname ldrb r0, [r4, 0x5] adds r1, r0, 0 muls r1, r6 adds r1, r5 - bl sub_806E4E8 + bl PartyMenuTryPrintHP ldrb r0, [r4, 0x5] adds r1, r0, 0 muls r1, r6 @@ -4687,23 +4687,23 @@ sub_806D198: @ 806D198 adds r1, r0, 0 muls r1, r6 adds r1, r5 - bl sub_806E2C0 + bl PartyMenuPrintMonLevelOrStatus ldrb r0, [r4, 0x6] adds r1, r0, 0 muls r1, r6 adds r1, r5 - bl sub_806E07C + bl TryPrintPartyMenuMonNickname ldrb r0, [r4, 0x6] adds r1, r0, 0 muls r1, r6 adds r1, r5 - bl sub_806E4E8 + bl PartyMenuTryPrintHP ldrb r0, [r4, 0x6] adds r1, r0, 0 muls r1, r6 adds r1, r5 bl nullsub_12 - bl sub_806E6C8 + bl PartyMenuDrawHPBars mov r0, r10 bl sub_806CC74 pop {r3-r5} @@ -4717,8 +4717,8 @@ sub_806D198: @ 806D198 _0806D364: .4byte 0x02001000 _0806D368: .4byte gSprites _0806D36C: .4byte gUnknown_08376678 -_0806D370: .4byte sub_806DA38 -_0806D374: .4byte sub_806DA0C +_0806D370: .4byte UpdateMonIconFrame_806DA38 +_0806D374: .4byte UpdateMonIconFrame_806DA0C _0806D378: .4byte gPlayerParty thumb_func_end sub_806D198 @@ -4726,7 +4726,7 @@ _0806D378: .4byte gPlayerParty sub_806D37C: @ 806D37C push {r4,lr} adds r4, r0, 0 - bl sub_809D638 + bl UpdateMonIconFrame ldrh r2, [r4, 0x24] movs r0, 0x24 ldrsh r1, [r4, r0] @@ -4740,11 +4740,11 @@ sub_806D37C: @ 806D37C movs r1, 0 strh r0, [r4, 0x2E] strh r1, [r4, 0x32] - ldr r0, _0806D3A4 @ =sub_806DA38 + ldr r0, _0806D3A4 @ =UpdateMonIconFrame_806DA38 str r0, [r4, 0x1C] b _0806D3AE .align 2, 0 -_0806D3A4: .4byte sub_806DA38 +_0806D3A4: .4byte UpdateMonIconFrame_806DA38 _0806D3A8: ldrh r0, [r4, 0x2E] adds r0, r2, r0 @@ -4890,7 +4890,7 @@ sub_806D4AC: @ 806D4AC lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 - bl sub_806DDA0 + bl GetMonIconSpriteId_maybe lsls r0, 24 lsrs r0, 24 ldr r2, _0806D4FC @ =gSprites @@ -4932,7 +4932,7 @@ sub_806D50C: @ 806D50C lsrs r0, 24 lsls r1, 24 lsrs r1, 24 - bl sub_806DDA0 + bl GetMonIconSpriteId_maybe ldr r2, _0806D534 @ =gSprites lsls r0, 24 lsrs r0, 24 @@ -5036,7 +5036,7 @@ sub_806D5B8: @ 806D5B8 lsls r5, 24 lsrs r5, 24 ldr r6, _0806D658 @ =gUnknown_08376948 - bl battle_type_is_double + bl IsDoubleBattle lsls r4, r5, 2 lsls r0, 24 lsrs r0, 24 @@ -5047,7 +5047,7 @@ sub_806D5B8: @ 806D5B8 adds r1, r6 ldrb r1, [r1] mov r10, r1 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 @@ -5057,7 +5057,7 @@ sub_806D5B8: @ 806D5B8 adds r1, r6 ldrb r1, [r1, 0x1] mov r9, r1 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 @@ -5067,7 +5067,7 @@ sub_806D5B8: @ 806D5B8 adds r1, r6 ldrb r1, [r1, 0x2] mov r8, r1 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 @@ -5118,7 +5118,7 @@ sub_806D668: @ 806D668 lsls r5, 24 lsrs r5, 24 ldr r6, _0806D708 @ =gUnknown_08376978 - bl battle_type_is_double + bl IsDoubleBattle lsls r4, r5, 2 lsls r0, 24 lsrs r0, 24 @@ -5129,7 +5129,7 @@ sub_806D668: @ 806D668 adds r1, r6 ldrb r1, [r1] mov r10, r1 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 @@ -5139,7 +5139,7 @@ sub_806D668: @ 806D668 adds r1, r6 ldrb r1, [r1, 0x1] mov r9, r1 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 @@ -5149,7 +5149,7 @@ sub_806D668: @ 806D668 adds r1, r6 ldrb r1, [r1, 0x2] mov r8, r1 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 @@ -5298,4 +5298,6553 @@ _0806D7F0: .4byte 0x06007180 _0806D7F4: .4byte gStatusPal_Icons thumb_func_end sub_806D718 + thumb_func_start SetMonIconAnimByHP +SetMonIconAnimByHP: @ 806D7F8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 16 + lsls r2, 16 + lsrs r5, r1, 16 + asrs r1, 16 + lsrs r4, r2, 16 + asrs r2, 16 + adds r0, r1, 0 + adds r1, r2, 0 + bl GetHPBarLevel + lsls r0, 24 + lsrs r0, 24 + movs r2, 0 + cmp r5, r4 + beq _0806D830 + movs r2, 0x1 + cmp r0, 0x3 + beq _0806D830 + movs r2, 0x2 + cmp r0, 0x2 + beq _0806D830 + movs r2, 0x4 + cmp r0, 0x1 + bne _0806D830 + movs r2, 0x3 +_0806D830: + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + ldr r1, _0806D848 @ =gSprites + adds r0, r1 + adds r1, r2, 0 + bl sub_809D824 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0806D848: .4byte gSprites + thumb_func_end SetMonIconAnimByHP + + thumb_func_start SetMonIconAnim +SetMonIconAnim: @ 806D84C + push {r4-r6,lr} + adds r5, r0, 0 + adds r6, r1, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r6, 0 + movs r1, 0x39 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r6, 0 + movs r1, 0x3A + bl GetMonData + adds r2, r0, 0 + lsls r2, 16 + lsrs r2, 16 + adds r0, r5, 0 + adds r1, r4, 0 + bl SetMonIconAnimByHP + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end SetMonIconAnim + + thumb_func_start CreatePartyMenuMonIcon +CreatePartyMenuMonIcon: @ 806D880 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x8 + adds r6, r0, 0 + adds r5, r1, 0 + mov r8, r3 + lsls r6, 24 + lsrs r6, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r2, 24 + lsrs r2, 24 + ldr r3, _0806D904 @ =gUnknown_08376678 + lsls r1, r5, 2 + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, r3 + ldrb r0, [r1] + mov r9, r0 + ldrb r1, [r1, 0x1] + mov r10, r1 + mov r0, r8 + movs r1, 0x41 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + mov r0, r8 + movs r1, 0 + bl GetMonData + ldr r1, _0806D908 @ =sub_809D62C + movs r2, 0x5 + str r2, [sp] + str r0, [sp, 0x4] + adds r0, r4, 0 + mov r2, r9 + mov r3, r10 + bl CreateMonIcon + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + adds r1, r5, 0 + adds r2, r4, 0 + bl SetMonIconSpriteId_maybe + adds r0, r4, 0 + mov r1, r8 + bl SetMonIconAnim + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0806D904: .4byte gUnknown_08376678 +_0806D908: .4byte sub_809D62C + thumb_func_end CreatePartyMenuMonIcon + + thumb_func_start TryCreatePartyMenuMonIcon +TryCreatePartyMenuMonIcon: @ 806D90C + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r2, 0 + lsls r0, 24 + lsrs r6, r0, 24 + mov r8, r6 + lsls r1, 24 + lsrs r5, r1, 24 + adds r7, r5, 0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0806D95A + bl IsLinkDoubleBattle + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0806D946 + adds r0, r6, 0 + adds r1, r5, 0 + movs r2, 0x2 + adds r3, r4, 0 + bl CreatePartyMenuMonIcon + b _0806D95A +_0806D946: + bl IsDoubleBattle + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + mov r0, r8 + adds r1, r7, 0 + adds r3, r4, 0 + bl CreatePartyMenuMonIcon +_0806D95A: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end TryCreatePartyMenuMonIcon + + thumb_func_start unref_sub_806D964 +unref_sub_806D964: @ 806D964 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + b _0806D986 +_0806D96E: + movs r0, 0x64 + adds r2, r4, 0 + muls r2, r0 + ldr r0, _0806D994 @ =gPlayerParty + adds r2, r0 + adds r0, r5, 0 + adds r1, r4, 0 + bl TryCreatePartyMenuMonIcon + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_0806D986: + ldr r0, _0806D998 @ =gPlayerPartyCount + ldrb r0, [r0] + cmp r4, r0 + bcc _0806D96E + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0806D994: .4byte gPlayerParty +_0806D998: .4byte gPlayerPartyCount + thumb_func_end unref_sub_806D964 + + thumb_func_start CreateMonIcon_806D99C +CreateMonIcon_806D99C: @ 806D99C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + adds r6, r0, 0 + adds r5, r1, 0 + mov r8, r3 + lsls r6, 24 + lsrs r6, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r2, 24 + lsrs r2, 24 + ldr r3, _0806DA04 @ =gUnknown_08376678 + lsls r1, r5, 2 + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, r3 + ldrb r2, [r1] + ldrb r3, [r1, 0x1] + mov r1, r8 + ldrh r0, [r1] + ldr r1, _0806DA08 @ =sub_809D62C + movs r4, 0x5 + str r4, [sp] + mov r7, r8 + ldr r4, [r7, 0x18] + str r4, [sp, 0x4] + bl CreateMonIcon + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + adds r1, r5, 0 + adds r2, r4, 0 + bl SetMonIconSpriteId_maybe + ldrh r1, [r7, 0x10] + ldrh r2, [r7, 0x12] + adds r0, r4, 0 + bl SetMonIconAnimByHP + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0806DA04: .4byte gUnknown_08376678 +_0806DA08: .4byte sub_809D62C + thumb_func_end CreateMonIcon_806D99C + + thumb_func_start UpdateMonIconFrame_806DA0C +UpdateMonIconFrame_806DA0C: @ 806DA0C + push {r4,lr} + adds r4, r0, 0 + bl UpdateMonIconFrame + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _0806DA32 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0806DA30 + ldr r0, _0806DA2C @ =0x0000fffd + strh r0, [r4, 0x26] + b _0806DA32 + .align 2, 0 +_0806DA2C: .4byte 0x0000fffd +_0806DA30: + strh r1, [r4, 0x26] +_0806DA32: + pop {r4} + pop {r0} + bx r0 + thumb_func_end UpdateMonIconFrame_806DA0C + + thumb_func_start UpdateMonIconFrame_806DA38 +UpdateMonIconFrame_806DA38: @ 806DA38 + push {lr} + bl UpdateMonIconFrame + pop {r0} + bx r0 + thumb_func_end UpdateMonIconFrame_806DA38 + + thumb_func_start UpdateMonIconFrame_806DA44 +UpdateMonIconFrame_806DA44: @ 806DA44 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r4, r2, 24 + cmp r1, 0x5 + bhi _0806DA8E + bl GetMonIconSpriteId_maybe + lsls r0, 24 + lsrs r0, 24 + ldr r3, _0806DA7C @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r2, r1, 2 + adds r1, r2, r3 + movs r0, 0 + strh r0, [r1, 0x26] + strh r0, [r1, 0x2E] + cmp r4, 0 + bne _0806DA84 + adds r0, r3, 0 + adds r0, 0x1C + adds r0, r2, r0 + ldr r1, _0806DA80 @ =UpdateMonIconFrame_806DA38 + b _0806DA8C + .align 2, 0 +_0806DA7C: .4byte gSprites +_0806DA80: .4byte UpdateMonIconFrame_806DA38 +_0806DA84: + adds r0, r3, 0 + adds r0, 0x1C + adds r0, r2, r0 + ldr r1, _0806DA94 @ =UpdateMonIconFrame_806DA0C +_0806DA8C: + str r1, [r0] +_0806DA8E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0806DA94: .4byte UpdateMonIconFrame_806DA0C + thumb_func_end UpdateMonIconFrame_806DA44 + + thumb_func_start LoadHeldItemIconGraphics +LoadHeldItemIconGraphics: @ 806DA98 + push {lr} + ldr r0, _0806DAAC @ =gUnknown_083765DC + bl LoadSpriteSheet + ldr r0, _0806DAB0 @ =gUnknown_083765E4 + bl LoadSpritePalette + pop {r0} + bx r0 + .align 2, 0 +_0806DAAC: .4byte gUnknown_083765DC +_0806DAB0: .4byte gUnknown_083765E4 + thumb_func_end LoadHeldItemIconGraphics + + thumb_func_start SpriteCB_HeldItemIcon +SpriteCB_HeldItemIcon: @ 806DAB4 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x3C] + lsls r1, 24 + lsrs r1, 24 + ldr r2, _0806DAE4 @ =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, r0, r2 + adds r0, r2, 0 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _0806DAE8 + adds r0, r4, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _0806DB06 + .align 2, 0 +_0806DAE4: .4byte gSprites +_0806DAE8: + adds r3, r4, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + ldrh r0, [r2, 0x24] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x26] + ldrh r2, [r2, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] +_0806DB06: + pop {r4} + pop {r0} + bx r0 + thumb_func_end SpriteCB_HeldItemIcon + + thumb_func_start CreateHeldItemIcon +CreateHeldItemIcon: @ 806DB0C + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + adds r6, r0, 0 + mov r9, r1 + lsls r6, 24 + lsrs r6, 24 + mov r0, r9 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r0, _0806DB84 @ =gSprites + mov r8, r0 + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + add r0, r8 + adds r0, 0x43 + ldrb r3, [r0] + ldr r0, _0806DB88 @ =gSpriteTemplate_837660C + subs r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + movs r1, 0xFA + movs r2, 0xAA + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + mov r0, r8 + adds r5, r4, r0 + movs r0, 0x4 + strh r0, [r5, 0x24] + movs r0, 0xA + strh r0, [r5, 0x26] + movs r0, 0x1C + add r8, r0 + add r4, r8 + ldr r0, _0806DB8C @ =SpriteCB_HeldItemIcon + str r0, [r4] + strh r6, [r5, 0x3C] + adds r0, r5, 0 + mov r1, r9 + bl StartSpriteAnim + ldr r1, [r4] + adds r0, r5, 0 + bl _call_via_r1 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0806DB84: .4byte gSprites +_0806DB88: .4byte gSpriteTemplate_837660C +_0806DB8C: .4byte SpriteCB_HeldItemIcon + thumb_func_end CreateHeldItemIcon + + thumb_func_start CreateHeldItemIcons +CreateHeldItemIcons: @ 806DB90 + push {r4-r7,lr} + adds r6, r0, 0 + adds r7, r1, 0 + lsls r2, 24 + lsrs r2, 24 + cmp r2, 0 + beq _0806DBA4 + cmp r2, 0x1 + beq _0806DBEC + b _0806DC28 +_0806DBA4: + movs r5, 0 + ldrb r0, [r6] + cmp r5, r0 + bcs _0806DC28 +_0806DBAC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0806DBE8 @ =gPlayerParty + adds r0, r1 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + beq _0806DBD8 + adds r0, r7, r5 + ldrb r4, [r0] + adds r0, r1, 0 + bl itemid_is_mail + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl CreateHeldItemIcon +_0806DBD8: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldrb r0, [r6] + cmp r5, r0 + bcc _0806DBAC + b _0806DC28 + .align 2, 0 +_0806DBE8: .4byte gPlayerParty +_0806DBEC: + movs r5, 0 + b _0806DC22 +_0806DBF0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0806DC30 @ =gEnemyParty + adds r0, r1 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + beq _0806DC1C + adds r0, r5, r7 + ldrb r4, [r0, 0x6] + adds r0, r1, 0 + bl itemid_is_mail + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl CreateHeldItemIcon +_0806DC1C: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_0806DC22: + ldrb r0, [r6, 0x1] + cmp r5, r0 + bcc _0806DBF0 +_0806DC28: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0806DC30: .4byte gEnemyParty + thumb_func_end CreateHeldItemIcons + + thumb_func_start CreateHeldItemIcons_806DC34 +CreateHeldItemIcons_806DC34: @ 806DC34 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r7, 0 + ldr r0, _0806DCC8 @ =gSprites + mov r9, r0 + movs r1, 0x1C + add r1, r9 + mov r10, r1 +_0806DC50: + movs r0, 0x64 + muls r0, r7 + ldr r1, _0806DCCC @ =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0806DCB0 + mov r0, r8 + adds r1, r7, 0 + bl GetMonIconSpriteId_maybe + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _0806DCD0 @ =gSpriteTemplate_837660C + movs r1, 0xFA + movs r2, 0xAA + movs r3, 0x4 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + mov r1, r9 + adds r6, r4, r1 + movs r1, 0x4 + strh r1, [r6, 0x24] + movs r1, 0xA + strh r1, [r6, 0x26] + strh r5, [r6, 0x3C] + lsls r1, r5, 4 + adds r1, r5 + lsls r1, 2 + add r1, r9 + strh r0, [r1, 0x3C] + mov r0, r8 + adds r1, r7, 0 + bl SetHeldItemIconVisibility + add r4, r10 + ldr r1, [r4] + adds r0, r6, 0 + bl _call_via_r1 +_0806DCB0: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x5 + bls _0806DC50 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0806DCC8: .4byte gSprites +_0806DCCC: .4byte gPlayerParty +_0806DCD0: .4byte gSpriteTemplate_837660C + thumb_func_end CreateHeldItemIcons_806DC34 + + thumb_func_start CreateHeldItemIcon_806DCD4 +CreateHeldItemIcon_806DCD4: @ 806DCD4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 16 + lsrs r7, r2, 16 + bl GetMonIconSpriteId_maybe + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0806DD2C @ =gSpriteTemplate_837660C + movs r1, 0xFA + movs r2, 0xAA + movs r3, 0x4 + bl CreateSprite + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _0806DD30 @ =gSprites + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r5, r0, r1 + movs r0, 0x4 + strh r0, [r5, 0x24] + movs r0, 0xA + strh r0, [r5, 0x26] + strh r4, [r5, 0x3C] + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + strh r6, [r0, 0x3C] + cmp r7, 0 + bne _0806DD34 + adds r0, r5, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _0806DD5C + .align 2, 0 +_0806DD2C: .4byte gSpriteTemplate_837660C +_0806DD30: .4byte gSprites +_0806DD34: + adds r0, r7, 0 + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + beq _0806DD46 + adds r0, r5, 0 + movs r1, 0x1 + b _0806DD4A +_0806DD46: + adds r0, r5, 0 + movs r1, 0 +_0806DD4A: + bl StartSpriteAnim + adds r2, r5, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_0806DD5C: + ldr r2, _0806DD78 @ =gSprites + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r1, r2, 0 + adds r1, 0x1C + adds r1, r0, r1 + adds r0, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0806DD78: .4byte gSprites + thumb_func_end CreateHeldItemIcon_806DCD4 + + thumb_func_start SpriteCB_HeldItemIcon_806DD7C +SpriteCB_HeldItemIcon_806DD7C: @ 806DD7C + ldrh r2, [r0, 0x3C] + lsls r2, 24 + lsrs r2, 24 + ldr r3, _0806DD9C @ =gSprites + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r3 + ldrh r2, [r1, 0x24] + ldrh r3, [r1, 0x20] + adds r2, r3 + strh r2, [r0, 0x20] + ldrh r1, [r1, 0x22] + strh r1, [r0, 0x22] + bx lr + .align 2, 0 +_0806DD9C: .4byte gSprites + thumb_func_end SpriteCB_HeldItemIcon_806DD7C + + thumb_func_start GetMonIconSpriteId_maybe +GetMonIconSpriteId_maybe: @ 806DDA0 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + lsrs r0, r1, 24 + cmp r0, 0x5 + bhi _0806DE38 + lsls r0, 2 + ldr r1, _0806DDB8 @ =_0806DDBC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806DDB8: .4byte _0806DDBC + .align 2, 0 +_0806DDBC: + .4byte _0806DE38 + .4byte _0806DDD4 + .4byte _0806DDE8 + .4byte _0806DDFC + .4byte _0806DE10 + .4byte _0806DE24 +_0806DDD4: + ldr r0, _0806DDE4 @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldrb r0, [r1, 0x8] + b _0806DE46 + .align 2, 0 +_0806DDE4: .4byte gTasks +_0806DDE8: + ldr r0, _0806DDF8 @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0xA] + b _0806DE44 + .align 2, 0 +_0806DDF8: .4byte gTasks +_0806DDFC: + ldr r0, _0806DE0C @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldrb r0, [r1, 0xA] + b _0806DE46 + .align 2, 0 +_0806DE0C: .4byte gTasks +_0806DE10: + ldr r0, _0806DE20 @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0xC] + b _0806DE44 + .align 2, 0 +_0806DE20: .4byte gTasks +_0806DE24: + ldr r0, _0806DE34 @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldrb r0, [r1, 0xC] + b _0806DE46 + .align 2, 0 +_0806DE34: .4byte gTasks +_0806DE38: + ldr r0, _0806DE4C @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] +_0806DE44: + lsrs r0, 8 +_0806DE46: + pop {r1} + bx r1 + .align 2, 0 +_0806DE4C: .4byte gTasks + thumb_func_end GetMonIconSpriteId_maybe + + thumb_func_start SetMonIconSpriteId_maybe +SetMonIconSpriteId_maybe: @ 806DE50 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r1, 24 + lsrs r0, r1, 24 + lsls r2, 24 + lsrs r4, r2, 24 + cmp r0, 0x5 + bhi _0806DF24 + lsls r0, 2 + ldr r1, _0806DE6C @ =_0806DE70 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806DE6C: .4byte _0806DE70 + .align 2, 0 +_0806DE70: + .4byte _0806DE88 + .4byte _0806DEA0 + .4byte _0806DEC0 + .4byte _0806DED8 + .4byte _0806DEF8 + .4byte _0806DF10 +_0806DE88: + ldr r1, _0806DE9C @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + ldrb r1, [r0, 0x8] + lsls r2, r4, 8 + orrs r1, r2 + strh r1, [r0, 0x8] + b _0806DF24 + .align 2, 0 +_0806DE9C: .4byte gTasks +_0806DEA0: + ldr r0, _0806DEB8 @ =gTasks + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + ldrh r2, [r1, 0x8] + ldr r0, _0806DEBC @ =0xffffff00 + ands r0, r2 + orrs r0, r4 + strh r0, [r1, 0x8] + b _0806DF24 + .align 2, 0 +_0806DEB8: .4byte gTasks +_0806DEBC: .4byte 0xffffff00 +_0806DEC0: + ldr r1, _0806DED4 @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + ldrb r1, [r0, 0xA] + lsls r2, r4, 8 + orrs r1, r2 + strh r1, [r0, 0xA] + b _0806DF24 + .align 2, 0 +_0806DED4: .4byte gTasks +_0806DED8: + ldr r0, _0806DEF0 @ =gTasks + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + ldrh r2, [r1, 0xA] + ldr r0, _0806DEF4 @ =0xffffff00 + ands r0, r2 + orrs r0, r4 + strh r0, [r1, 0xA] + b _0806DF24 + .align 2, 0 +_0806DEF0: .4byte gTasks +_0806DEF4: .4byte 0xffffff00 +_0806DEF8: + ldr r1, _0806DF0C @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + ldrb r1, [r0, 0xC] + lsls r2, r4, 8 + orrs r1, r2 + strh r1, [r0, 0xC] + b _0806DF24 + .align 2, 0 +_0806DF0C: .4byte gTasks +_0806DF10: + ldr r0, _0806DF2C @ =gTasks + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + ldrh r2, [r1, 0xC] + ldr r0, _0806DF30 @ =0xffffff00 + ands r0, r2 + orrs r0, r4 + strh r0, [r1, 0xC] +_0806DF24: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0806DF2C: .4byte gTasks +_0806DF30: .4byte 0xffffff00 + thumb_func_end SetMonIconSpriteId_maybe + + thumb_func_start GetHeldItemIconSpriteIdByMon_maybe +GetHeldItemIconSpriteIdByMon_maybe: @ 806DF34 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + bl GetMonIconSpriteId_maybe + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0806DF5C @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r1, 0x3C] + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_0806DF5C: .4byte gSprites + thumb_func_end GetHeldItemIconSpriteIdByMon_maybe + + thumb_func_start SetHeldItemIconVisibility +SetHeldItemIconVisibility: @ 806DF60 + push {r4-r6,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r4, 24 + lsrs r4, 24 + adds r1, r4, 0 + bl GetHeldItemIconSpriteIdByMon_maybe + lsls r0, 24 + lsrs r5, r0, 24 + adds r6, r5, 0 + movs r0, 0x64 + adds r1, r4, 0 + muls r1, r0 + ldr r0, _0806DFA4 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + cmp r0, 0 + bne _0806DFAC + ldr r1, _0806DFA8 @ =gSprites + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _0806DFF6 + .align 2, 0 +_0806DFA4: .4byte gPlayerParty +_0806DFA8: .4byte gSprites +_0806DFAC: + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + beq _0806DFD8 + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + ldr r0, _0806DFD4 @ =gSprites + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x1 + b _0806DFE6 + .align 2, 0 +_0806DFD4: .4byte gSprites +_0806DFD8: + lsls r4, r6, 4 + adds r4, r6 + lsls r4, 2 + ldr r0, _0806DFFC @ =gSprites + adds r4, r0 + adds r0, r4, 0 + movs r1, 0 +_0806DFE6: + bl StartSpriteAnim + adds r4, 0x3E + ldrb r1, [r4] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r4] +_0806DFF6: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0806DFFC: .4byte gSprites + thumb_func_end SetHeldItemIconVisibility + + thumb_func_start box_print +box_print: @ 806E000 + push {r4-r6,lr} + sub sp, 0x4 + adds r4, r0, 0 + adds r6, r2, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + str r0, [sp] + ldr r5, _0806E040 @ =gTileBuffer + ldr r2, _0806E044 @ =0x01000100 + mov r0, sp + adds r1, r5, 0 + bl CpuFastSet + ldr r0, _0806E048 @ =gWindowConfig_81E6CAC + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_8004E3C + lsls r4, 10 + ldr r0, _0806E04C @ =0x06014000 + adds r4, r0 + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x80 + bl CpuFastSet + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0806E040: .4byte gTileBuffer +_0806E044: .4byte 0x01000100 +_0806E048: .4byte gWindowConfig_81E6CAC +_0806E04C: .4byte 0x06014000 + thumb_func_end box_print + + thumb_func_start PrintPartyMenuMonNickname +PrintPartyMenuMonNickname: @ 806E050 + push {r4,r5,lr} + sub sp, 0xC + adds r4, r0, 0 + adds r5, r1, 0 + adds r0, r2, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + mov r1, sp + bl GetMonNickname + adds r0, r4, 0 + adds r1, r5, 0 + mov r2, sp + bl box_print + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end PrintPartyMenuMonNickname + + thumb_func_start TryPrintPartyMenuMonNickname +TryPrintPartyMenuMonNickname: @ 806E07C + push {r4-r6,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + adds r6, r5, 0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0806E0BC + bl IsLinkDoubleBattle + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0806E0AA + adds r0, r5, 0 + movs r1, 0x2 + adds r2, r4, 0 + bl PrintPartyMenuMonNickname + b _0806E0BC +_0806E0AA: + bl IsDoubleBattle + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r6, 0 + adds r2, r4, 0 + bl PrintPartyMenuMonNickname +_0806E0BC: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end TryPrintPartyMenuMonNickname + + thumb_func_start PrintPartyMenuMonNicknames +PrintPartyMenuMonNicknames: @ 806E0C4 + push {r4-r6,lr} + movs r4, 0 + movs r6, 0x64 + ldr r5, _0806E0E8 @ =gPlayerParty +_0806E0CC: + adds r1, r4, 0 + muls r1, r6 + adds r1, r5 + adds r0, r4, 0 + bl TryPrintPartyMenuMonNickname + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _0806E0CC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0806E0E8: .4byte gPlayerParty + thumb_func_end PrintPartyMenuMonNicknames + + thumb_func_start GetMonNickname +GetMonNickname: @ 806E0EC + push {r4,lr} + adds r4, r1, 0 + movs r1, 0x2 + adds r2, r4, 0 + bl GetMonData + adds r0, r4, 0 + bl StringGetEnd10 + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetMonNickname + + thumb_func_start PartyMenuPutStatusTilemap +PartyMenuPutStatusTilemap: @ 806E104 + push {r4,r5,lr} + lsls r0, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r4, _0806E15C @ =gUnknown_08376738 + lsrs r0, 22 + lsls r3, r1, 1 + adds r3, r1 + lsls r3, 3 + adds r0, r3 + adds r0, r4 + ldrb r1, [r0] + subs r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + ldrb r0, [r0, 0x1] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 19 + adds r1, r0 + lsls r1, 1 + ldr r0, _0806E160 @ =0x0600f000 + adds r4, r1, r0 + lsls r2, 26 + lsrs r2, 24 + movs r3, 0 + movs r0, 0xC6 + lsls r0, 1 + adds r2, r0 + ldr r0, _0806E164 @ =0xffffb000 + adds r5, r0, 0 +_0806E142: + lsls r0, r3, 1 + adds r0, r4 + adds r1, r2, r3 + orrs r1, r5 + strh r1, [r0] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bls _0806E142 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0806E15C: .4byte gUnknown_08376738 +_0806E160: .4byte 0x0600f000 +_0806E164: .4byte 0xffffb000 + thumb_func_end PartyMenuPutStatusTilemap + + thumb_func_start PartyMenuClearLevelStatusTilemap +PartyMenuClearLevelStatusTilemap: @ 806E168 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl IsLinkDoubleBattle + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0806E17E + movs r3, 0x2 + b _0806E186 +_0806E17E: + bl IsDoubleBattle + lsls r0, 24 + lsrs r3, r0, 24 +_0806E186: + ldr r1, _0806E1C8 @ =gUnknown_08376738 + lsls r2, r4, 2 + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 3 + adds r2, r0 + adds r2, r1 + ldrb r1, [r2] + subs r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + ldrb r0, [r2, 0x1] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 19 + adds r1, r0 + lsls r1, 1 + ldr r0, _0806E1CC @ =0x0600f000 + adds r1, r0 + movs r3, 0 + movs r2, 0 +_0806E1B0: + lsls r0, r3, 1 + adds r0, r1 + strh r2, [r0] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bls _0806E1B0 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0806E1C8: .4byte gUnknown_08376738 +_0806E1CC: .4byte 0x0600f000 + thumb_func_end PartyMenuClearLevelStatusTilemap + + thumb_func_start PartyMenuWriteTilemap +PartyMenuWriteTilemap: @ 806E1D0 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 19 + adds r1, r2 + lsls r1, 1 + ldr r2, _0806E1F0 @ =0x0600f000 + adds r1, r2 + movs r2, 0x86 + lsls r2, 1 + adds r0, r2 + strh r0, [r1] + bx lr + .align 2, 0 +_0806E1F0: .4byte 0x0600f000 + thumb_func_end PartyMenuWriteTilemap + + thumb_func_start PartyMenuDoPrintLevel +PartyMenuDoPrintLevel: @ 806E1F4 + push {r4-r6,lr} + sub sp, 0x4 + adds r4, r0, 0 + adds r5, r2, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r3, _0806E278 @ =gUnknown_08376738 + lsls r2, r4, 2 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r2, r0 + adds r2, r3 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + subs r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + adds r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + movs r0, 0x40 + bl PartyMenuWriteTilemap + ldr r6, _0806E27C @ =gStringVar1 + movs r0, 0xFC + strb r0, [r6] + movs r0, 0x12 + strb r0, [r6, 0x1] + movs r0, 0x8 + strb r0, [r6, 0x2] + adds r0, r6, 0x3 + adds r1, r5, 0 + bl ConvertIntToDecimalString + movs r0, 0 + str r0, [sp] + ldr r5, _0806E280 @ =gUnknown_02039460 + ldr r2, _0806E284 @ =0x01000020 + mov r0, sp + adds r1, r5, 0 + bl CpuFastSet + ldr r0, _0806E288 @ =gWindowConfig_81E6CAC + ldr r2, _0806E28C @ =0xffffff00 + adds r1, r5, r2 + adds r2, r6, 0 + bl sub_8004E3C + lsls r4, 10 + ldr r0, _0806E290 @ =0x06014200 + adds r4, r0 + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x20 + bl CpuFastSet + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0806E278: .4byte gUnknown_08376738 +_0806E27C: .4byte gStringVar1 +_0806E280: .4byte gUnknown_02039460 +_0806E284: .4byte 0x01000020 +_0806E288: .4byte gWindowConfig_81E6CAC +_0806E28C: .4byte 0xffffff00 +_0806E290: .4byte 0x06014200 + thumb_func_end PartyMenuDoPrintLevel + + thumb_func_start PartyMenuPrintLevel +PartyMenuPrintLevel: @ 806E294 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + adds r0, r2, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + movs r1, 0x38 + bl GetMonData + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r4, 0 + adds r1, r5, 0 + bl PartyMenuDoPrintLevel + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end PartyMenuPrintLevel + + thumb_func_start PartyMenuPrintMonLevelOrStatus +PartyMenuPrintMonLevelOrStatus: @ 806E2C0 + push {r4-r7,lr} + adds r5, r1, 0 + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0806E32E + adds r0, r5, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0806E32E + adds r0, r5, 0 + bl GetMonStatusAndPokerus + lsls r0, 24 + lsrs r4, r0, 24 + bl IsLinkDoubleBattle + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0806E2FA + movs r6, 0x2 + b _0806E302 +_0806E2FA: + bl IsDoubleBattle + lsls r0, 24 + lsrs r6, r0, 24 +_0806E302: + cmp r4, 0 + beq _0806E31A + cmp r4, 0x6 + beq _0806E31A + subs r2, r4, 0x1 + lsls r2, 24 + lsrs r2, 24 + adds r0, r7, 0 + adds r1, r6, 0 + bl PartyMenuPutStatusTilemap + b _0806E324 +_0806E31A: + adds r0, r7, 0 + adds r1, r6, 0 + adds r2, r5, 0 + bl PartyMenuPrintLevel +_0806E324: + adds r0, r7, 0 + adds r1, r6, 0 + adds r2, r5, 0 + bl PartyMenuPutNicknameTilemap +_0806E32E: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end PartyMenuPrintMonLevelOrStatus + + thumb_func_start PartyMenuPrintMonsLevelOrStatus +PartyMenuPrintMonsLevelOrStatus: @ 806E334 + push {r4-r6,lr} + movs r4, 0 + movs r6, 0x64 + ldr r5, _0806E358 @ =gPlayerParty +_0806E33C: + adds r1, r4, 0 + muls r1, r6 + adds r1, r5 + adds r0, r4, 0 + bl PartyMenuPrintMonLevelOrStatus + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _0806E33C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0806E358: .4byte gPlayerParty + thumb_func_end PartyMenuPrintMonsLevelOrStatus + + thumb_func_start PartyMenuDoPutNicknameTilemap +PartyMenuDoPutNicknameTilemap: @ 806E35C + push {r4-r7,lr} + ldr r4, [sp, 0x14] + lsls r0, 16 + lsrs r0, 16 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r5, r2, 24 + lsls r3, 24 + lsrs r6, r3, 24 + adds r1, r4, 0 + bl sub_8040D8C + cmp r0, 0 + bne _0806E3BA + ldr r2, _0806E3A4 @ =gUnknown_08376738 + lsls r1, r6, 2 + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 3 + adds r1, r0 + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x3 + lsls r0, 24 + lsrs r3, r0, 24 + ldrb r0, [r1, 0x1] + adds r0, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r7, 0 + beq _0806E3A8 + cmp r7, 0xFE + beq _0806E3B2 + b _0806E3BA + .align 2, 0 +_0806E3A4: .4byte gUnknown_08376738 +_0806E3A8: + movs r0, 0x42 + adds r1, r3, 0 + bl PartyMenuWriteTilemap + b _0806E3BA +_0806E3B2: + movs r0, 0x44 + adds r1, r3, 0 + bl PartyMenuWriteTilemap +_0806E3BA: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end PartyMenuDoPutNicknameTilemap + + thumb_func_start PartyMenuPutNicknameTilemap +PartyMenuPutNicknameTilemap: @ 806E3C0 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x4 + mov r8, r0 + adds r6, r1, 0 + adds r5, r2, 0 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r6, 24 + lsrs r6, 24 + ldr r0, _0806E41C @ =gStringVar1 + mov r9, r0 + adds r0, r5, 0 + mov r1, r9 + bl GetMonNickname + adds r0, r5, 0 + movs r1, 0x41 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + bl GetMonGender + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r9 + str r0, [sp] + adds r0, r4, 0 + adds r2, r6, 0 + mov r3, r8 + bl PartyMenuDoPutNicknameTilemap + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0806E41C: .4byte gStringVar1 + thumb_func_end PartyMenuPutNicknameTilemap + + thumb_func_start PartyMenuDoPrintHP +PartyMenuDoPrintHP: @ 806E420 + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r0, 0 + adds r1, r2, 0 + adds r5, r3, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 16 + lsrs r1, 16 + lsls r5, 16 + lsrs r5, 16 + ldr r2, _0806E48C @ =gStringVar1 + adds r0, r2, 0 + movs r2, 0xF + movs r3, 0x1 + bl sub_8072C14 + adds r2, r0, 0 + movs r0, 0xBA + strb r0, [r2] + adds r2, 0x1 + adds r0, r2, 0 + adds r1, r5, 0 + movs r2, 0x23 + movs r3, 0x1 + bl sub_8072C14 + movs r0, 0 + str r0, [sp] + ldr r5, _0806E490 @ =gUnknown_02039460 + ldr r2, _0806E494 @ =0x01000040 + mov r0, sp + adds r1, r5, 0 + bl CpuFastSet + ldr r0, _0806E498 @ =gWindowConfig_81E6CAC + ldr r2, _0806E49C @ =0xffffff00 + adds r1, r5, r2 + ldr r2, _0806E48C @ =gStringVar1 + bl sub_8004E3C + lsls r4, 10 + ldr r0, _0806E4A0 @ =0x06014300 + adds r4, r0 + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x40 + bl CpuFastSet + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0806E48C: .4byte gStringVar1 +_0806E490: .4byte gUnknown_02039460 +_0806E494: .4byte 0x01000040 +_0806E498: .4byte gWindowConfig_81E6CAC +_0806E49C: .4byte 0xffffff00 +_0806E4A0: .4byte 0x06014300 + thumb_func_end PartyMenuDoPrintHP + + thumb_func_start PartyMenuPrintHP +PartyMenuPrintHP: @ 806E4A4 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r5, r0, 0 + adds r6, r1, 0 + mov r8, r2 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + mov r0, r8 + movs r1, 0x39 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + mov r0, r8 + movs r1, 0x3A + bl GetMonData + adds r3, r0, 0 + lsls r3, 16 + lsrs r3, 16 + adds r0, r5, 0 + adds r1, r6, 0 + adds r2, r4, 0 + bl PartyMenuDoPrintHP + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end PartyMenuPrintHP + + thumb_func_start PartyMenuTryPrintHP +PartyMenuTryPrintHP: @ 806E4E8 + push {r4-r6,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + adds r6, r5, 0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0806E534 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0806E534 + bl IsLinkDoubleBattle + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0806E522 + adds r0, r5, 0 + movs r1, 0x2 + adds r2, r4, 0 + bl PartyMenuPrintHP + b _0806E534 +_0806E522: + bl IsDoubleBattle + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r6, 0 + adds r2, r4, 0 + bl PartyMenuPrintHP +_0806E534: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end PartyMenuTryPrintHP + + thumb_func_start PartyMenuTryPrintMonsHP +PartyMenuTryPrintMonsHP: @ 806E53C + push {r4-r6,lr} + movs r4, 0 + movs r6, 0x64 + ldr r5, _0806E560 @ =gPlayerParty +_0806E544: + adds r1, r4, 0 + muls r1, r6 + adds r1, r5 + adds r0, r4, 0 + bl PartyMenuTryPrintHP + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _0806E544 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0806E560: .4byte gPlayerParty + thumb_func_end PartyMenuTryPrintMonsHP + + thumb_func_start unref_sub_806E564 +unref_sub_806E564: @ 806E564 + bx lr + thumb_func_end unref_sub_806E564 + + thumb_func_start unref_sub_806E568 +unref_sub_806E568: @ 806E568 + bx lr + thumb_func_end unref_sub_806E568 + + thumb_func_start nullsub_12 +nullsub_12: @ 806E56C + bx lr + thumb_func_end nullsub_12 + + thumb_func_start nullsub_13 +nullsub_13: @ 806E570 + bx lr + thumb_func_end nullsub_13 + + thumb_func_start PartyMenuDoDrawHPBar +PartyMenuDoDrawHPBar: @ 806E574 + push {r4-r6,lr} + sub sp, 0x18 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + lsls r2, 16 + lsrs r2, 16 + lsls r3, 16 + lsrs r3, 16 + ldr r0, _0806E624 @ =0xffff8000 + str r0, [sp, 0x14] + str r3, [sp] + str r2, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + lsls r2, 16 + asrs r2, 16 + lsls r3, 16 + asrs r3, 16 + adds r0, r2, 0 + adds r1, r3, 0 + bl GetHPBarLevel + lsls r0, 24 + lsrs r3, r0, 24 + adds r4, r3, 0 + cmp r3, 0x2 + bls _0806E5BE + mov r2, sp + ldrb r1, [r2, 0xC] + movs r0, 0x20 + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2, 0xC] +_0806E5BE: + cmp r3, 0x2 + bne _0806E5D2 + mov r2, sp + ldrb r1, [r2, 0xC] + movs r0, 0x20 + negs r0, r0 + ands r0, r1 + movs r1, 0x5 + orrs r0, r1 + strb r0, [r2, 0xC] +_0806E5D2: + cmp r4, 0x1 + bhi _0806E5E6 + mov r2, sp + ldrb r1, [r2, 0xC] + movs r0, 0x20 + negs r0, r0 + ands r0, r1 + movs r1, 0x6 + orrs r0, r1 + strb r0, [r2, 0xC] +_0806E5E6: + movs r0, 0x80 + lsls r0, 1 + str r0, [sp, 0x10] + ldr r2, _0806E628 @ =gUnknown_08376858 + lsls r1, r6, 2 + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 3 + adds r1, r0 + adds r1, r2 + ldr r4, [r1] + add r1, sp, 0x14 + mov r0, sp + adds r2, r4, 0 + movs r3, 0 + bl sub_80460C8 + subs r4, 0x4 + ldr r1, _0806E62C @ =0x00003109 + adds r0, r1, 0 + strh r0, [r4] + adds r1, 0x1 + adds r0, r1, 0 + strh r0, [r4, 0x2] + adds r1, 0x1 + adds r0, r1, 0 + strh r0, [r4, 0x10] + add sp, 0x18 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0806E624: .4byte 0xffff8000 +_0806E628: .4byte gUnknown_08376858 +_0806E62C: .4byte 0x00003109 + thumb_func_end PartyMenuDoDrawHPBar + + thumb_func_start PartyMenuDrawHPBar +PartyMenuDrawHPBar: @ 806E630 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r5, r0, 0 + adds r6, r1, 0 + mov r8, r2 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + mov r0, r8 + movs r1, 0x39 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + mov r0, r8 + movs r1, 0x3A + bl GetMonData + adds r3, r0, 0 + lsls r3, 16 + lsrs r3, 16 + adds r0, r5, 0 + adds r1, r6, 0 + adds r2, r4, 0 + bl PartyMenuDoDrawHPBar + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end PartyMenuDrawHPBar + + thumb_func_start PartyMenuTryDrawHPBar +PartyMenuTryDrawHPBar: @ 806E674 + push {r4-r6,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + adds r6, r5, 0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0806E6C0 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0806E6C0 + bl IsLinkDoubleBattle + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0806E6AE + adds r0, r5, 0 + movs r1, 0x2 + adds r2, r4, 0 + bl PartyMenuDrawHPBar + b _0806E6C0 +_0806E6AE: + bl IsDoubleBattle + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r6, 0 + adds r2, r4, 0 + bl PartyMenuDrawHPBar +_0806E6C0: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end PartyMenuTryDrawHPBar + + thumb_func_start PartyMenuDrawHPBars +PartyMenuDrawHPBars: @ 806E6C8 + push {r4-r6,lr} + movs r4, 0 + movs r6, 0x64 + ldr r5, _0806E6EC @ =gPlayerParty +_0806E6D0: + adds r1, r4, 0 + muls r1, r6 + adds r1, r5 + adds r0, r4, 0 + bl PartyMenuTryDrawHPBar + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _0806E6D0 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0806E6EC: .4byte gPlayerParty + thumb_func_end PartyMenuDrawHPBars + + thumb_func_start sub_806E6F0 +sub_806E6F0: @ 806E6F0 + push {r4,r5,lr} + sub sp, 0x64 + adds r4, r0, 0 + adds r5, r1, 0 + mov r0, sp + adds r1, r4, 0 + movs r2, 0x64 + bl memcpy + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x64 + bl memcpy + adds r0, r5, 0 + mov r1, sp + movs r2, 0x64 + bl memcpy + add sp, 0x64 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_806E6F0 + + thumb_func_start sub_806E720 +sub_806E720: @ 806E720 + push {r4,lr} + lsls r0, 24 + lsrs r0, 21 + adds r0, r3 + ldrb r4, [r0] + lsls r4, 25 + movs r3, 0x80 + lsls r3, 18 + adds r4, r3 + lsrs r4, 24 + ldrb r0, [r0, 0x1] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + movs r3, 0x1E + subs r3, r0 + strb r3, [r1] + movs r0, 0x14 + subs r0, r4 + strb r0, [r2] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_806E720 + + thumb_func_start sub_806E750 +sub_806E750: @ 806E750 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0xC + adds r5, r0, 0 + adds r4, r1, 0 + mov r9, r2 + adds r6, r3, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + movs r0, 0x9 + add r0, sp + mov r8, r0 + adds r0, r5, 0 + add r1, sp, 0x8 + mov r2, r8 + adds r3, r4, 0 + bl sub_806E720 + add r0, sp, 0x8 + ldrb r0, [r0] + mov r2, r8 + ldrb r1, [r2] + lsls r5, 3 + adds r5, r4 + ldrb r2, [r5, 0x1] + ldrb r3, [r5] + mov r4, r9 + str r4, [sp] + ldr r4, [r5, 0x4] + str r4, [sp, 0x4] + bl sub_8089C50 + add r0, sp, 0x8 + ldrb r1, [r0] + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + ldrb r2, [r0] + adds r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r5] + str r6, [sp] + ldrb r0, [r5, 0x1] + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + movs r0, 0 + bl InitMenu + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_806E750 + + thumb_func_start sub_806E7D0 +sub_806E7D0: @ 806E7D0 + push {r4-r6,lr} + sub sp, 0x4 + adds r4, r0, 0 + adds r6, r1, 0 + lsls r4, 24 + lsrs r4, 24 + mov r5, sp + adds r5, 0x1 + adds r0, r4, 0 + mov r1, sp + adds r2, r5, 0 + adds r3, r6, 0 + bl sub_806E720 + mov r0, sp + ldrb r0, [r0] + ldrb r1, [r5] + lsls r4, 3 + adds r4, r6 + ldrb r2, [r4, 0x1] + adds r2, r0, r2 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r4] + lsls r3, 1 + adds r3, r1, r3 + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + bl MenuZeroFillWindowRect + bl sub_8072DEC + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_806E7D0 + + thumb_func_start sub_806E81C +sub_806E81C: @ 806E81C + lsls r0, 24 + lsls r3, 24 + lsrs r3, 24 + lsrs r0, 21 + adds r0, r1 + ldr r0, [r0, 0x4] + adds r0, r3 + ldrb r0, [r0] + lsls r0, 3 + adds r0, r2 + ldr r0, [r0, 0x4] + bx lr + thumb_func_end sub_806E81C + + .section .text_806E884 + + + + thumb_func_start sub_806E8D0 +sub_806E8D0: @ 806E8D0 + push {r4,r5,lr} + adds r5, r1, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r5, 16 + lsrs r5, 16 + ldr r4, _0806E8FC @ =0x0201c000 + str r2, [r4, 0x10] + strb r0, [r4, 0x4] + bl sub_806CA38 + strb r0, [r4, 0x5] + strh r5, [r4, 0x6] + ldrb r1, [r4, 0x5] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0806E900 @ =gPlayerParty + adds r0, r1 + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0806E8FC: .4byte 0x0201c000 +_0806E900: .4byte gPlayerParty + thumb_func_end sub_806E8D0 + + thumb_func_start PartyMenuUpdateMonHeldItem +PartyMenuUpdateMonHeldItem: @ 806E904 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + lsls r1, 16 + lsrs r4, r1, 16 + adds r0, r4, 0 + bl itemid_is_mail + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0806E93C + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80A2BC4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _0806E930 + movs r0, 0x1 + b _0806E958 +_0806E930: + ldr r1, _0806E938 @ =gUnknown_0202E8F4 + movs r0, 0x2 + b _0806E940 + .align 2, 0 +_0806E938: .4byte gUnknown_0202E8F4 +_0806E93C: + ldr r1, _0806E960 @ =gUnknown_0202E8F4 + movs r0, 0x1 +_0806E940: + strb r0, [r1] + mov r0, sp + strb r4, [r0] + mov r1, sp + lsrs r0, r4, 8 + strb r0, [r1, 0x1] + adds r0, r5, 0 + movs r1, 0xC + mov r2, sp + bl SetMonData + movs r0, 0 +_0806E958: + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0806E960: .4byte gUnknown_0202E8F4 + thumb_func_end PartyMenuUpdateMonHeldItem + + thumb_func_start PartyMenuTryGiveMonHeldItem +PartyMenuTryGiveMonHeldItem: @ 806E964 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r8, r2 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r5, r1, 16 + mov r9, r5 + ldr r2, _0806E9D4 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r6, r1, r2 + ldr r1, _0806E9D8 @ =TaskDummy + str r1, [r6] + adds r1, r5, 0 + mov r2, r8 + bl sub_806E8D0 + ldr r4, _0806E9DC @ =0x0201c000 + ldr r0, [r4] + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r2, r0, 16 + adds r7, r2, 0 + ldr r1, _0806E9E0 @ =gUnknown_0202E8F4 + movs r0, 0 + strb r0, [r1] + ldr r0, _0806E9E4 @ =gUnknown_0202E8F8 + mov r10, r0 + movs r0, 0 + mov r1, r10 + strh r0, [r1] + cmp r2, 0 + beq _0806EA44 + adds r0, r2, 0 + bl itemid_is_mail + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0806E9F0 + ldr r0, _0806E9E8 @ =gOtherText_MailMustBeRemoved + movs r1, 0x1 + bl sub_806E834 + ldr r0, _0806E9EC @ =party_menu_link_mon_held_item_object + movs r1, 0x5 + bl CreateTask + b _0806EA78 + .align 2, 0 +_0806E9D4: .4byte gTasks +_0806E9D8: .4byte TaskDummy +_0806E9DC: .4byte 0x0201c000 +_0806E9E0: .4byte gUnknown_0202E8F4 +_0806E9E4: .4byte gUnknown_0202E8F8 +_0806E9E8: .4byte gOtherText_MailMustBeRemoved +_0806E9EC: .4byte party_menu_link_mon_held_item_object +_0806E9F0: + ldr r0, [r4] + ldr r1, _0806EA30 @ =gStringVar1 + bl GetMonNickname + ldr r1, _0806EA34 @ =gStringVar2 + adds r0, r7, 0 + bl CopyItemName + ldr r4, _0806EA38 @ =gStringVar4 + ldr r1, _0806EA3C @ =gOtherText_AlreadyHolding + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_806E834 + ldr r0, _0806EA40 @ =Task_ConfirmGiveHeldItem + movs r1, 0x5 + bl CreateTask + adds r0, r5, 0 + bl itemid_is_mail + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0806EA78 + mov r0, r10 + strh r7, [r0] + b _0806EA78 + .align 2, 0 +_0806EA30: .4byte gStringVar1 +_0806EA34: .4byte gStringVar2 +_0806EA38: .4byte gStringVar4 +_0806EA3C: .4byte gOtherText_AlreadyHolding +_0806EA40: .4byte Task_ConfirmGiveHeldItem +_0806EA44: + ldr r0, [r4] + adds r1, r5, 0 + bl PartyMenuUpdateMonHeldItem + adds r0, r5, 0 + movs r1, 0x1 + bl RemoveBagItem + adds r0, r5, 0 + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + beq _0806EA66 + mov r1, r8 + str r1, [r6] + b _0806EA78 +_0806EA66: + ldrb r0, [r4, 0x5] + mov r1, r9 + movs r2, 0x1 + bl DisplayGiveHeldItemMessage + ldr r0, _0806EA88 @ =party_menu_link_mon_held_item_object + movs r1, 0x5 + bl CreateTask +_0806EA78: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0806EA88: .4byte party_menu_link_mon_held_item_object + thumb_func_end PartyMenuTryGiveMonHeldItem + + thumb_func_start party_menu_link_mon_held_item_object +party_menu_link_mon_held_item_object: @ 806EA8C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0806EAC0 @ =gUnknown_0202E8F6 + ldrb r0, [r0] + cmp r0, 0 + bne _0806EABA + ldr r4, _0806EAC4 @ =0x0201c000 + ldrb r0, [r4, 0x4] + ldrb r1, [r4, 0x5] + bl SetHeldItemIconVisibility + ldr r2, _0806EAC8 @ =gTasks + ldrb r1, [r4, 0x4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, [r4, 0x10] + str r1, [r0] + adds r0, r5, 0 + bl DestroyTask +_0806EABA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0806EAC0: .4byte gUnknown_0202E8F6 +_0806EAC4: .4byte 0x0201c000 +_0806EAC8: .4byte gTasks + thumb_func_end party_menu_link_mon_held_item_object + + thumb_func_start PartyMenuTryGiveMonHeldItem_806EACC +PartyMenuTryGiveMonHeldItem_806EACC: @ 806EACC + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + bl ProcessMenuInputNoWrap_ + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + bne _0806EB74 + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl MenuZeroFillWindowRect + ldr r4, _0806EB30 @ =0x0201c000 + ldr r0, [r4] + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + ldrh r0, [r4, 0x6] + movs r1, 0x1 + bl RemoveBagItem + adds r0, r5, 0 + movs r1, 0x1 + bl AddBagItem + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0806EB5C + ldr r0, [r4] + ldrh r1, [r4, 0x6] + bl PartyMenuUpdateMonHeldItem + ldrh r0, [r4, 0x6] + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + beq _0806EB34 + ldrb r0, [r4, 0x5] + adds r1, r5, 0 + movs r2, 0x1 + bl DisplayTakeHeldItemMessage + b _0806EB9A + .align 2, 0 +_0806EB30: .4byte 0x0201c000 +_0806EB34: + ldrh r0, [r4, 0x6] + ldr r1, _0806EB50 @ =gStringVar1 + bl CopyItemName + ldr r4, _0806EB54 @ =gStringVar4 + ldr r1, _0806EB58 @ =gOtherText_TakenAndReplaced + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_806E834 + b _0806EB9A + .align 2, 0 +_0806EB50: .4byte gStringVar1 +_0806EB54: .4byte gStringVar4 +_0806EB58: .4byte gOtherText_TakenAndReplaced +_0806EB5C: + ldr r0, _0806EB70 @ =gOtherText_BagFullCannotRemoveItem + movs r1, 0 + bl sub_806E834 + ldrh r0, [r4, 0x6] + movs r1, 0x1 + bl AddBagItem + b _0806EB9A + .align 2, 0 +_0806EB70: .4byte gOtherText_BagFullCannotRemoveItem +_0806EB74: + cmp r1, 0x1 + beq _0806EB80 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _0806EBA8 +_0806EB80: + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _0806EB8E + movs r0, 0x5 + bl PlaySE +_0806EB8E: + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl MenuZeroFillWindowRect +_0806EB9A: + ldr r0, _0806EBB0 @ =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldr r0, _0806EBB4 @ =party_menu_link_mon_held_item_object + str r0, [r1] +_0806EBA8: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0806EBB0: .4byte gTasks +_0806EBB4: .4byte party_menu_link_mon_held_item_object + thumb_func_end PartyMenuTryGiveMonHeldItem_806EACC + + thumb_func_start Task_ConfirmGiveHeldItem +Task_ConfirmGiveHeldItem: @ 806EBB8 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0806EBE4 @ =gUnknown_0202E8F6 + ldrb r0, [r0] + cmp r0, 0 + bne _0806EBDE + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r0, _0806EBE8 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _0806EBEC @ =PartyMenuTryGiveMonHeldItem_806EACC + str r0, [r1] +_0806EBDE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0806EBE4: .4byte gUnknown_0202E8F6 +_0806EBE8: .4byte gTasks +_0806EBEC: .4byte PartyMenuTryGiveMonHeldItem_806EACC + thumb_func_end Task_ConfirmGiveHeldItem + + thumb_func_start DisplayGiveHeldItemMessage +DisplayGiveHeldItemMessage: @ 806EBF0 + push {r4,r5,lr} + adds r4, r1, 0 + adds r5, r2, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 24 + lsrs r5, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0806EC30 @ =gPlayerParty + adds r0, r1 + ldr r1, _0806EC34 @ =gStringVar1 + bl GetMonNickname + ldr r1, _0806EC38 @ =gStringVar2 + adds r0, r4, 0 + bl CopyItemName + ldr r4, _0806EC3C @ =gStringVar4 + ldr r1, _0806EC40 @ =gOtherText_WasGivenToHold + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_806E834 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0806EC30: .4byte gPlayerParty +_0806EC34: .4byte gStringVar1 +_0806EC38: .4byte gStringVar2 +_0806EC3C: .4byte gStringVar4 +_0806EC40: .4byte gOtherText_WasGivenToHold + thumb_func_end DisplayGiveHeldItemMessage + + thumb_func_start PartyMenuTryGiveMonMail +PartyMenuTryGiveMonMail: @ 806EC44 + push {r4,r5,lr} + adds r2, r1, 0 + lsls r0, 24 + lsrs r0, 24 + ldr r3, _0806ECA0 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r3 + ldr r3, _0806ECA4 @ =TaskDummy + str r3, [r1] + movs r1, 0 + bl sub_806E8D0 + ldr r5, _0806ECA8 @ =0x0201c000 + ldr r0, [r5] + movs r1, 0xC + bl GetMonData + lsls r0, 16 + ldr r2, _0806ECAC @ =gUnknown_0202E8F4 + movs r1, 0 + strb r1, [r2] + movs r1, 0xF8 + lsls r1, 6 + adds r2, r5, r1 + ldrb r1, [r2] + adds r1, 0x6 + ldrb r2, [r2, 0x2] + adds r1, r2 + lsls r2, r1, 3 + adds r2, r1 + lsls r2, 2 + ldr r1, _0806ECB0 @ =gSaveBlock1 + 0x2B4C + adds r4, r2, r1 + cmp r0, 0 + beq _0806ECBC + ldr r0, _0806ECB4 @ =gOtherText_PokeHoldingItemCantMail + movs r1, 0x1 + bl sub_806E834 + ldr r0, _0806ECB8 @ =party_menu_link_mon_held_item_object + movs r1, 0x5 + bl CreateTask + b _0806ECDA + .align 2, 0 +_0806ECA0: .4byte gTasks +_0806ECA4: .4byte TaskDummy +_0806ECA8: .4byte 0x0201c000 +_0806ECAC: .4byte gUnknown_0202E8F4 +_0806ECB0: .4byte gSaveBlock1 + 0x2B4C +_0806ECB4: .4byte gOtherText_PokeHoldingItemCantMail +_0806ECB8: .4byte party_menu_link_mon_held_item_object +_0806ECBC: + ldr r0, [r5] + adds r1, r4, 0 + bl sub_80A2D88 + adds r0, r4, 0 + bl sub_80A2B40 + ldr r0, _0806ECE0 @ =gOtherText_MailTransferredMailbox + movs r1, 0x1 + bl sub_806E834 + ldr r0, _0806ECE4 @ =party_menu_link_mon_held_item_object + movs r1, 0x5 + bl CreateTask +_0806ECDA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0806ECE0: .4byte gOtherText_MailTransferredMailbox +_0806ECE4: .4byte party_menu_link_mon_held_item_object + thumb_func_end PartyMenuTryGiveMonMail + + thumb_func_start PartyMenuTryGiveMonHeldItem_806ECE8 +PartyMenuTryGiveMonHeldItem_806ECE8: @ 806ECE8 + push {r4-r6,lr} + sub sp, 0x4 + adds r2, r1, 0 + lsls r0, 24 + lsrs r0, 24 + ldr r3, _0806ED38 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r3 + ldr r3, _0806ED3C @ =TaskDummy + str r3, [r1] + movs r1, 0 + bl sub_806E8D0 + ldr r5, _0806ED40 @ =0x0201c000 + ldr r0, [r5] + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + adds r6, r4, 0 + cmp r4, 0 + bne _0806ED50 + ldr r4, _0806ED44 @ =gStringVar4 + ldr r1, _0806ED48 @ =gOtherText_NotHoldingAnything + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_806E834 + ldr r0, _0806ED4C @ =party_menu_link_mon_held_item_object + movs r1, 0x5 + bl CreateTask + b _0806EDA2 + .align 2, 0 +_0806ED38: .4byte gTasks +_0806ED3C: .4byte TaskDummy +_0806ED40: .4byte 0x0201c000 +_0806ED44: .4byte gStringVar4 +_0806ED48: .4byte gOtherText_NotHoldingAnything +_0806ED4C: .4byte party_menu_link_mon_held_item_object +_0806ED50: + mov r0, sp + movs r1, 0 + strb r1, [r0] + strb r1, [r0, 0x1] + adds r0, r4, 0 + movs r1, 0x1 + bl AddBagItem + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0806ED92 + adds r0, r4, 0 + bl itemid_is_mail + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0806ED7C + ldr r0, [r5] + bl sub_80A2DF8 +_0806ED7C: + ldrb r0, [r5, 0x5] + adds r1, r6, 0 + movs r2, 0 + bl DisplayTakeHeldItemMessage + ldr r0, [r5] + movs r1, 0xC + mov r2, sp + bl SetMonData + b _0806ED9A +_0806ED92: + ldr r0, _0806EDAC @ =gOtherText_BagFullCannotRemoveItem + movs r1, 0 + bl sub_806E834 +_0806ED9A: + ldr r0, _0806EDB0 @ =party_menu_link_mon_held_item_object + movs r1, 0x5 + bl CreateTask +_0806EDA2: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0806EDAC: .4byte gOtherText_BagFullCannotRemoveItem +_0806EDB0: .4byte party_menu_link_mon_held_item_object + thumb_func_end PartyMenuTryGiveMonHeldItem_806ECE8 + + thumb_func_start DisplayTakeHeldItemMessage +DisplayTakeHeldItemMessage: @ 806EDB4 + push {r4,r5,lr} + adds r4, r1, 0 + adds r5, r2, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 24 + lsrs r5, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0806EDF4 @ =gPlayerParty + adds r0, r1 + ldr r1, _0806EDF8 @ =gStringVar1 + bl GetMonNickname + ldr r1, _0806EDFC @ =gStringVar2 + adds r0, r4, 0 + bl CopyItemName + ldr r4, _0806EE00 @ =gStringVar4 + ldr r1, _0806EE04 @ =gOtherText_ReceivedTheThingFrom + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_806E834 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0806EDF4: .4byte gPlayerParty +_0806EDF8: .4byte gStringVar1 +_0806EDFC: .4byte gStringVar2 +_0806EE00: .4byte gStringVar4 +_0806EE04: .4byte gOtherText_ReceivedTheThingFrom + thumb_func_end DisplayTakeHeldItemMessage + + thumb_func_start DoTakeMail +DoTakeMail: @ 806EE08 + push {r4,lr} + adds r2, r1, 0 + lsls r0, 24 + lsrs r0, 24 + ldr r3, _0806EE48 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r3 + ldr r3, _0806EE4C @ =TaskDummy + str r3, [r1] + movs r1, 0 + bl sub_806E8D0 + ldr r4, _0806EE50 @ =0x0201c000 + ldr r0, [r4] + movs r1, 0xC + bl GetMonData + strh r0, [r4, 0x6] + ldr r0, _0806EE54 @ =gOtherText_SendRemovedMailPrompt + movs r1, 0x1 + bl sub_806E834 + ldr r0, _0806EE58 @ =Task_ConfirmTakeHeldMail + movs r1, 0x5 + bl CreateTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0806EE48: .4byte gTasks +_0806EE4C: .4byte TaskDummy +_0806EE50: .4byte 0x0201c000 +_0806EE54: .4byte gOtherText_SendRemovedMailPrompt +_0806EE58: .4byte Task_ConfirmTakeHeldMail + thumb_func_end DoTakeMail + + thumb_func_start Task_LoseMailMessage +Task_LoseMailMessage: @ 806EE5C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl ProcessMenuInputNoWrap_ + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + bne _0806EEB0 + ldr r5, _0806EE90 @ =0x0201c000 + ldrh r0, [r5, 0x6] + movs r1, 0x1 + bl AddBagItem + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0806EE98 + ldr r0, [r5] + bl sub_80A2DF8 + ldr r0, _0806EE94 @ =gOtherText_MailTaken + movs r1, 0 + bl sub_806E834 + b _0806EEA0 + .align 2, 0 +_0806EE90: .4byte 0x0201c000 +_0806EE94: .4byte gOtherText_MailTaken +_0806EE98: + ldr r0, _0806EEAC @ =gOtherText_BagFullCannotRemoveItem + movs r1, 0 + bl sub_806E834 +_0806EEA0: + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + b _0806EEDE + .align 2, 0 +_0806EEAC: .4byte gOtherText_BagFullCannotRemoveItem +_0806EEB0: + cmp r1, 0x1 + beq _0806EEBC + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _0806EEF0 +_0806EEBC: + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _0806EECA + movs r0, 0x5 + bl PlaySE +_0806EECA: + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl MenuZeroFillWindowRect + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 +_0806EEDE: + bl MenuZeroFillWindowRect + ldr r0, _0806EEF8 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _0806EEFC @ =party_menu_link_mon_held_item_object + str r0, [r1] +_0806EEF0: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0806EEF8: .4byte gTasks +_0806EEFC: .4byte party_menu_link_mon_held_item_object + thumb_func_end Task_LoseMailMessage + + thumb_func_start Task_ConfirmLoseMailMessage +Task_ConfirmLoseMailMessage: @ 806EF00 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0806EF2C @ =gUnknown_0202E8F6 + ldrb r0, [r0] + cmp r0, 0 + bne _0806EF26 + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r0, _0806EF30 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _0806EF34 @ =Task_LoseMailMessage + str r0, [r1] +_0806EF26: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0806EF2C: .4byte gUnknown_0202E8F6 +_0806EF30: .4byte gTasks +_0806EF34: .4byte Task_LoseMailMessage + thumb_func_end Task_ConfirmLoseMailMessage + + thumb_func_start Task_TakeHeldMail +Task_TakeHeldMail: @ 806EF38 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl ProcessMenuInputNoWrap_ + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + bne _0806EF9C + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl MenuZeroFillWindowRect + ldr r0, _0806EF70 @ =0x0201c000 + ldr r0, [r0] + bl sub_80A2E78 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _0806EF78 + ldr r0, _0806EF74 @ =gOtherText_MailWasSent + movs r1, 0 + bl sub_806E834 + b _0806EF80 + .align 2, 0 +_0806EF70: .4byte 0x0201c000 +_0806EF74: .4byte gOtherText_MailWasSent +_0806EF78: + ldr r0, _0806EF90 @ =gOtherText_MailboxIsFull + movs r1, 0 + bl sub_806E834 +_0806EF80: + ldr r0, _0806EF94 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _0806EF98 @ =party_menu_link_mon_held_item_object + str r0, [r1] + b _0806EFD8 + .align 2, 0 +_0806EF90: .4byte gOtherText_MailboxIsFull +_0806EF94: .4byte gTasks +_0806EF98: .4byte party_menu_link_mon_held_item_object +_0806EF9C: + cmp r1, 0x1 + beq _0806EFA8 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _0806EFD8 +_0806EFA8: + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _0806EFB6 + movs r0, 0x5 + bl PlaySE +_0806EFB6: + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl MenuZeroFillWindowRect + ldr r0, _0806EFE0 @ =gOtherText_MailRemovedMessageLost + movs r1, 0x1 + bl sub_806E834 + ldr r1, _0806EFE4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0806EFE8 @ =Task_ConfirmLoseMailMessage + str r1, [r0] +_0806EFD8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0806EFE0: .4byte gOtherText_MailRemovedMessageLost +_0806EFE4: .4byte gTasks +_0806EFE8: .4byte Task_ConfirmLoseMailMessage + thumb_func_end Task_TakeHeldMail + + thumb_func_start Task_ConfirmTakeHeldMail +Task_ConfirmTakeHeldMail: @ 806EFEC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0806F018 @ =gUnknown_0202E8F6 + ldrb r0, [r0] + cmp r0, 0 + bne _0806F012 + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r0, _0806F01C @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _0806F020 @ =Task_TakeHeldMail + str r0, [r1] +_0806F012: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0806F018: .4byte gUnknown_0202E8F6 +_0806F01C: .4byte gTasks +_0806F020: .4byte Task_TakeHeldMail + thumb_func_end Task_ConfirmTakeHeldMail + + thumb_func_start ItemIdToBattleMoveId +ItemIdToBattleMoveId: @ 806F024 + lsls r0, 16 + ldr r1, _0806F034 @ =0xfedf0000 + adds r0, r1 + ldr r1, _0806F038 @ =gUnknown_08376504 + lsrs r0, 15 + adds r0, r1 + ldrh r0, [r0] + bx lr + .align 2, 0 +_0806F034: .4byte 0xfedf0000 +_0806F038: .4byte gUnknown_08376504 + thumb_func_end ItemIdToBattleMoveId + + thumb_func_start pokemon_has_move +pokemon_has_move: @ 806F03C + push {r4-r6,lr} + adds r6, r0, 0 + lsls r1, 16 + lsrs r5, r1, 16 + movs r4, 0 +_0806F046: + adds r1, r4, 0 + adds r1, 0xD + adds r0, r6, 0 + bl GetMonData + cmp r0, r5 + bne _0806F058 + movs r0, 0x1 + b _0806F064 +_0806F058: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _0806F046 + movs r0, 0 +_0806F064: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end pokemon_has_move + + thumb_func_start TeachMonTMMove +TeachMonTMMove: @ 806F06C + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 16 + lsrs r5, 16 + movs r0, 0x5 + bl PlaySE + ldr r1, _0806F0A8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0806F0AC @ =TaskDummy + str r1, [r0] + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_806E8D0 + ldr r0, _0806F0B0 @ =Task_TeamMonTMMove + movs r1, 0x5 + bl CreateTask + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0806F0A8: .4byte gTasks +_0806F0AC: .4byte TaskDummy +_0806F0B0: .4byte Task_TeamMonTMMove + thumb_func_end TeachMonTMMove + + thumb_func_start Task_TeamMonTMMove +Task_TeamMonTMMove: @ 806F0B4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + adds r7, r6, 0 + ldr r5, _0806F114 @ =0x0201c000 + ldr r0, [r5] + ldr r1, _0806F118 @ =gStringVar1 + bl GetMonNickname + ldrh r0, [r5, 0x6] + bl ItemIdToBattleMoveId + movs r4, 0 + strh r0, [r5, 0x8] + ldr r0, _0806F11C @ =gStringVar2 + ldrh r2, [r5, 0x8] + movs r1, 0xD + muls r1, r2 + ldr r2, _0806F120 @ =gMoveNames + adds r1, r2 + bl StringCopy + ldr r1, _0806F124 @ =0xfffff282 + adds r0, r5, r1 + strh r4, [r0] + ldr r0, [r5] + ldrh r1, [r5, 0x8] + bl pokemon_has_move + lsls r0, 24 + cmp r0, 0 + beq _0806F138 + ldr r4, _0806F128 @ =gStringVar4 + ldr r1, _0806F12C @ =gOtherText_AlreadyKnows + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_806E834 + ldr r1, _0806F130 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _0806F134 @ =party_menu_link_mon_held_item_object + b _0806F1B6 + .align 2, 0 +_0806F114: .4byte 0x0201c000 +_0806F118: .4byte gStringVar1 +_0806F11C: .4byte gStringVar2 +_0806F120: .4byte gMoveNames +_0806F124: .4byte 0xfffff282 +_0806F128: .4byte gStringVar4 +_0806F12C: .4byte gOtherText_AlreadyKnows +_0806F130: .4byte gTasks +_0806F134: .4byte party_menu_link_mon_held_item_object +_0806F138: + ldr r0, [r5] + ldrb r1, [r5, 0x6] + subs r1, 0x21 + lsls r1, 24 + lsrs r1, 24 + bl CanMonLearnTMHM + cmp r0, 0 + bne _0806F17C + ldr r4, _0806F16C @ =gStringVar4 + ldr r1, _0806F170 @ =gOtherText_NotCompatible + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_806E834 + ldr r1, _0806F174 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _0806F178 @ =party_menu_link_mon_held_item_object + b _0806F1B6 + .align 2, 0 +_0806F16C: .4byte gStringVar4 +_0806F170: .4byte gOtherText_NotCompatible +_0806F174: .4byte gTasks +_0806F178: .4byte party_menu_link_mon_held_item_object +_0806F17C: + ldr r0, [r5] + ldrh r1, [r5, 0x8] + bl GiveMoveToMon + lsls r0, 16 + ldr r1, _0806F194 @ =0xffff0000 + cmp r0, r1 + beq _0806F198 + adds r0, r6, 0 + bl Task_TeamMonTMMove2 + b _0806F1B8 + .align 2, 0 +_0806F194: .4byte 0xffff0000 +_0806F198: + ldr r4, _0806F1C0 @ =gStringVar4 + ldr r1, _0806F1C4 @ =gOtherText_WantsToLearn + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_806E834 + ldr r1, _0806F1C8 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldr r1, _0806F1CC @ =sub_806F358 +_0806F1B6: + str r1, [r0] +_0806F1B8: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0806F1C0: .4byte gStringVar4 +_0806F1C4: .4byte gOtherText_WantsToLearn +_0806F1C8: .4byte gTasks +_0806F1CC: .4byte sub_806F358 + thumb_func_end Task_TeamMonTMMove + + thumb_func_start Task_TeamMonTMMove2 +Task_TeamMonTMMove2: @ 806F1D0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _0806F234 @ =gStringVar2 + ldr r5, _0806F238 @ =0x0201c000 + ldrh r2, [r5, 0x8] + movs r1, 0xD + muls r1, r2 + ldr r2, _0806F23C @ =gMoveNames + adds r1, r2 + bl StringCopy + ldr r4, _0806F240 @ =gStringVar4 + ldr r1, _0806F244 @ =gOtherText_LearnedMove + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_806E834 + ldr r0, [r5] + movs r1, 0x4 + bl AdjustFriendship + ldr r1, _0806F248 @ =0xfffff282 + adds r0, r5, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _0806F220 + ldrh r1, [r5, 0x6] + movs r0, 0xA9 + lsls r0, 1 + cmp r1, r0 + bhi _0806F220 + adds r0, r1, 0 + movs r1, 0x1 + bl RemoveBagItem +_0806F220: + ldr r0, _0806F24C @ =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldr r0, _0806F250 @ =Task_TeamMonTMMove3 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0806F234: .4byte gStringVar2 +_0806F238: .4byte 0x0201c000 +_0806F23C: .4byte gMoveNames +_0806F240: .4byte gStringVar4 +_0806F244: .4byte gOtherText_LearnedMove +_0806F248: .4byte 0xfffff282 +_0806F24C: .4byte gTasks +_0806F250: .4byte Task_TeamMonTMMove3 + thumb_func_end Task_TeamMonTMMove2 + + thumb_func_start Task_TeamMonTMMove3 +Task_TeamMonTMMove3: @ 806F254 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0806F27C @ =gUnknown_0202E8F6 + ldrb r0, [r0] + cmp r0, 0 + bne _0806F276 + ldr r0, _0806F280 @ =0x0000016f + bl PlayFanfare + ldr r1, _0806F284 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0806F288 @ =Task_TeamMonTMMove4 + str r1, [r0] +_0806F276: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0806F27C: .4byte gUnknown_0202E8F6 +_0806F280: .4byte 0x0000016f +_0806F284: .4byte gTasks +_0806F288: .4byte Task_TeamMonTMMove4 + thumb_func_end Task_TeamMonTMMove3 + + thumb_func_start Task_TeamMonTMMove4 +Task_TeamMonTMMove4: @ 806F28C + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r6, r5, 0 + bl IsFanfareTaskInactive + lsls r0, 24 + cmp r0, 0 + beq _0806F2F2 + ldr r0, _0806F2D0 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0806F2B2 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0806F2F2 +_0806F2B2: + ldr r4, _0806F2D4 @ =0x0201c000 + ldrb r0, [r4, 0x4] + ldrb r1, [r4, 0x5] + bl SetHeldItemIconVisibility + ldr r1, _0806F2D8 @ =0xfffff282 + adds r0, r4, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + bne _0806F2DC + adds r0, r5, 0 + bl sub_8070C54 + b _0806F2F2 + .align 2, 0 +_0806F2D0: .4byte gMain +_0806F2D4: .4byte 0x0201c000 +_0806F2D8: .4byte 0xfffff282 +_0806F2DC: + ldr r2, _0806F2F8 @ =gTasks + ldrb r1, [r4, 0x4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, [r4, 0x10] + str r1, [r0] + adds r0, r6, 0 + bl DestroyTask +_0806F2F2: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0806F2F8: .4byte gTasks + thumb_func_end Task_TeamMonTMMove4 + + thumb_func_start sub_806F2FC +sub_806F2FC: @ 806F2FC + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r6, r5, 0 + ldr r0, _0806F32C @ =gUnknown_0202E8F6 + ldrb r0, [r0] + cmp r0, 0 + bne _0806F34E + ldr r4, _0806F330 @ =0x0201c000 + ldrb r0, [r4, 0x4] + ldrb r1, [r4, 0x5] + bl SetHeldItemIconVisibility + ldr r1, _0806F334 @ =0xfffff282 + adds r0, r4, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + bne _0806F338 + adds r0, r5, 0 + bl sub_8070C54 + b _0806F34E + .align 2, 0 +_0806F32C: .4byte gUnknown_0202E8F6 +_0806F330: .4byte 0x0201c000 +_0806F334: .4byte 0xfffff282 +_0806F338: + ldr r2, _0806F354 @ =gTasks + ldrb r1, [r4, 0x4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, [r4, 0x10] + str r1, [r0] + adds r0, r6, 0 + bl DestroyTask +_0806F34E: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0806F354: .4byte gTasks + thumb_func_end sub_806F2FC + + thumb_func_start sub_806F358 +sub_806F358: @ 806F358 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0806F384 @ =gUnknown_0202E8F6 + ldrb r0, [r0] + cmp r0, 0 + bne _0806F37E + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r0, _0806F388 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _0806F38C @ =sub_806F390 + str r0, [r1] +_0806F37E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0806F384: .4byte gUnknown_0202E8F6 +_0806F388: .4byte gTasks +_0806F38C: .4byte sub_806F390 + thumb_func_end sub_806F358 + + thumb_func_start sub_806F390 +sub_806F390: @ 806F390 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + bl ProcessMenuInputNoWrap_ + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + bne _0806F3D4 + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl MenuZeroFillWindowRect + ldr r0, _0806F3C8 @ =gOtherText_WhichMoveToForget2 + movs r1, 0x1 + bl sub_806E834 + ldr r1, _0806F3CC @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0806F3D0 @ =sub_806F44C + str r1, [r0] + b _0806F3F4 + .align 2, 0 +_0806F3C8: .4byte gOtherText_WhichMoveToForget2 +_0806F3CC: .4byte gTasks +_0806F3D0: .4byte sub_806F44C +_0806F3D4: + cmp r1, 0x1 + beq _0806F3E0 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _0806F3F4 +_0806F3E0: + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _0806F3EE + movs r0, 0x5 + bl PlaySE +_0806F3EE: + adds r0, r5, 0 + bl StopTryingToTeachMove_806F614 +_0806F3F4: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_806F390 + + thumb_func_start sub_806F3FC +sub_806F3FC: @ 806F3FC + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0806F438 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0806F430 + ldr r0, _0806F43C @ =gPlayerParty + ldr r4, _0806F440 @ =0x0201c000 + ldrb r1, [r4, 0x5] + ldr r2, _0806F444 @ =gPlayerPartyCount + ldrb r2, [r2] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldr r3, _0806F448 @ =sub_808B564 + ldrh r4, [r4, 0x8] + str r4, [sp] + bl sub_809D9F0 + adds r0, r5, 0 + bl DestroyTask +_0806F430: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0806F438: .4byte gPaletteFade +_0806F43C: .4byte gPlayerParty +_0806F440: .4byte 0x0201c000 +_0806F444: .4byte gPlayerPartyCount +_0806F448: .4byte sub_808B564 + thumb_func_end sub_806F3FC + + thumb_func_start sub_806F44C +sub_806F44C: @ 806F44C + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0806F484 @ =gUnknown_0202E8F6 + ldrb r1, [r0] + cmp r1, 0 + bne _0806F47A + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _0806F488 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0806F48C @ =sub_806F3FC + str r1, [r0] +_0806F47A: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0806F484: .4byte gUnknown_0202E8F6 +_0806F488: .4byte gTasks +_0806F48C: .4byte sub_806F3FC + thumb_func_end sub_806F44C + + thumb_func_start TaughtMove +TaughtMove: @ 806F490 + push {r4,r5,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _0806F50C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0806F506 + ldr r1, _0806F510 @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + ldr r1, _0806F514 @ =TaskDummy + str r1, [r0] + ldr r0, _0806F518 @ =gScriptItemId + ldrh r1, [r0] + ldr r2, _0806F51C @ =sub_808B508 + adds r0, r3, 0 + bl sub_806E8D0 + bl sub_809FA30 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r5, _0806F520 @ =0x0201c000 + ldr r0, [r5] + adds r1, 0xD + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, [r5] + ldr r1, _0806F524 @ =gStringVar1 + bl GetMonNickname + ldr r0, _0806F528 @ =gStringVar2 + movs r1, 0xD + muls r1, r4 + ldr r2, _0806F52C @ =gMoveNames + adds r1, r2 + bl StringCopy + ldr r4, _0806F530 @ =gStringVar4 + ldr r1, _0806F534 @ =gOtherText_ForgetMove123_2 + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_806E834 + ldr r0, _0806F538 @ =TMMoveUpdateMoveSlot + movs r1, 0x5 + bl CreateTask +_0806F506: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0806F50C: .4byte gPaletteFade +_0806F510: .4byte gTasks +_0806F514: .4byte TaskDummy +_0806F518: .4byte gScriptItemId +_0806F51C: .4byte sub_808B508 +_0806F520: .4byte 0x0201c000 +_0806F524: .4byte gStringVar1 +_0806F528: .4byte gStringVar2 +_0806F52C: .4byte gMoveNames +_0806F530: .4byte gStringVar4 +_0806F534: .4byte gOtherText_ForgetMove123_2 +_0806F538: .4byte TMMoveUpdateMoveSlot + thumb_func_end TaughtMove + + thumb_func_start TMMoveUpdateMoveSlot +TMMoveUpdateMoveSlot: @ 806F53C + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _0806F580 @ =gUnknown_0202E8F6 + ldrb r0, [r0] + cmp r0, 0 + bne _0806F57A + ldr r4, _0806F584 @ =0x0201c000 + ldr r5, [r4] + bl sub_809FA30 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl RemoveMonPPBonus + ldr r5, [r4] + ldrh r4, [r4, 0x8] + bl sub_809FA30 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl SetMonMoveSlot + adds r0, r6, 0 + bl Task_TeamMonTMMove2 +_0806F57A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0806F580: .4byte gUnknown_0202E8F6 +_0806F584: .4byte 0x0201c000 + thumb_func_end TMMoveUpdateMoveSlot + + thumb_func_start StopTryingToTeachMove_806F588 +StopTryingToTeachMove_806F588: @ 806F588 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _0806F5E8 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0806F5E0 + ldr r1, _0806F5EC @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + ldr r1, _0806F5F0 @ =TaskDummy + str r1, [r0] + ldr r0, _0806F5F4 @ =gScriptItemId + ldrh r1, [r0] + ldr r2, _0806F5F8 @ =sub_808B508 + adds r0, r3, 0 + bl sub_806E8D0 + ldr r0, _0806F5FC @ =gStringVar2 + ldr r1, _0806F600 @ =0x0201c000 + ldrh r2, [r1, 0x8] + movs r1, 0xD + muls r1, r2 + ldr r2, _0806F604 @ =gMoveNames + adds r1, r2 + bl StringCopy + ldr r4, _0806F608 @ =gStringVar4 + ldr r1, _0806F60C @ =gOtherText_StopTryingTo + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_806E834 + ldr r0, _0806F610 @ =StopTryingToTeachMove_806F67C + movs r1, 0x5 + bl CreateTask +_0806F5E0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0806F5E8: .4byte gPaletteFade +_0806F5EC: .4byte gTasks +_0806F5F0: .4byte TaskDummy +_0806F5F4: .4byte gScriptItemId +_0806F5F8: .4byte sub_808B508 +_0806F5FC: .4byte gStringVar2 +_0806F600: .4byte 0x0201c000 +_0806F604: .4byte gMoveNames +_0806F608: .4byte gStringVar4 +_0806F60C: .4byte gOtherText_StopTryingTo +_0806F610: .4byte StopTryingToTeachMove_806F67C + thumb_func_end StopTryingToTeachMove_806F588 + + thumb_func_start StopTryingToTeachMove_806F614 +StopTryingToTeachMove_806F614: @ 806F614 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl MenuZeroFillWindowRect + ldr r0, _0806F660 @ =gStringVar2 + ldr r1, _0806F664 @ =0x0201c000 + ldrh r2, [r1, 0x8] + movs r1, 0xD + muls r1, r2 + ldr r2, _0806F668 @ =gMoveNames + adds r1, r2 + bl StringCopy + ldr r4, _0806F66C @ =gStringVar4 + ldr r1, _0806F670 @ =gOtherText_StopTryingTo + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_806E834 + ldr r1, _0806F674 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _0806F678 @ =StopTryingToTeachMove_806F67C + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0806F660: .4byte gStringVar2 +_0806F664: .4byte 0x0201c000 +_0806F668: .4byte gMoveNames +_0806F66C: .4byte gStringVar4 +_0806F670: .4byte gOtherText_StopTryingTo +_0806F674: .4byte gTasks +_0806F678: .4byte StopTryingToTeachMove_806F67C + thumb_func_end StopTryingToTeachMove_806F614 + + thumb_func_start StopTryingToTeachMove_806F67C +StopTryingToTeachMove_806F67C: @ 806F67C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0806F6A8 @ =gUnknown_0202E8F6 + ldrb r0, [r0] + cmp r0, 0 + bne _0806F6A2 + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r0, _0806F6AC @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _0806F6B0 @ =StopTryingToTeachMove_806F6B4 + str r0, [r1] +_0806F6A2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0806F6A8: .4byte gUnknown_0202E8F6 +_0806F6AC: .4byte gTasks +_0806F6B0: .4byte StopTryingToTeachMove_806F6B4 + thumb_func_end StopTryingToTeachMove_806F67C + + thumb_func_start StopTryingToTeachMove_806F6B4 +StopTryingToTeachMove_806F6B4: @ 806F6B4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r6, r5, 0 + bl ProcessMenuInputNoWrap_ + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + bne _0806F730 + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl MenuZeroFillWindowRect + ldr r4, _0806F710 @ =0x0201c000 + ldr r0, [r4] + ldr r1, _0806F714 @ =gStringVar1 + bl GetMonNickname + ldr r0, _0806F718 @ =gStringVar2 + ldrh r2, [r4, 0x8] + movs r1, 0xD + muls r1, r2 + ldr r2, _0806F71C @ =gMoveNames + adds r1, r2 + bl StringCopy + ldr r4, _0806F720 @ =gStringVar4 + ldr r1, _0806F724 @ =gOtherText_DidNotLearnMove2 + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_806E834 + ldr r1, _0806F728 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _0806F72C @ =sub_806F2FC + b _0806F78E + .align 2, 0 +_0806F710: .4byte 0x0201c000 +_0806F714: .4byte gStringVar1 +_0806F718: .4byte gStringVar2 +_0806F71C: .4byte gMoveNames +_0806F720: .4byte gStringVar4 +_0806F724: .4byte gOtherText_DidNotLearnMove2 +_0806F728: .4byte gTasks +_0806F72C: .4byte sub_806F2FC +_0806F730: + cmp r1, 0x1 + beq _0806F73C + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _0806F790 +_0806F73C: + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _0806F74A + movs r0, 0x5 + bl PlaySE +_0806F74A: + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl MenuZeroFillWindowRect + ldr r4, _0806F798 @ =0x0201c000 + ldr r0, [r4] + ldr r1, _0806F79C @ =gStringVar1 + bl GetMonNickname + ldr r0, _0806F7A0 @ =gStringVar2 + ldrh r2, [r4, 0x8] + movs r1, 0xD + muls r1, r2 + ldr r2, _0806F7A4 @ =gMoveNames + adds r1, r2 + bl StringCopy + ldr r4, _0806F7A8 @ =gStringVar4 + ldr r1, _0806F7AC @ =gOtherText_WantsToLearn + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_806E834 + ldr r1, _0806F7B0 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _0806F7B4 @ =sub_806F358 +_0806F78E: + str r1, [r0] +_0806F790: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0806F798: .4byte 0x0201c000 +_0806F79C: .4byte gStringVar1 +_0806F7A0: .4byte gStringVar2 +_0806F7A4: .4byte gMoveNames +_0806F7A8: .4byte gStringVar4 +_0806F7AC: .4byte gOtherText_WantsToLearn +_0806F7B0: .4byte gTasks +_0806F7B4: .4byte sub_806F358 + thumb_func_end StopTryingToTeachMove_806F6B4 + + thumb_func_start IsHMMove +IsHMMove: @ 806F7B8 + push {lr} + lsls r0, 16 + lsrs r2, r0, 16 + movs r1, 0 + ldr r3, _0806F7D4 @ =gUnknown_08376504 +_0806F7C2: + adds r0, r1, 0 + adds r0, 0x32 + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + cmp r0, r2 + bne _0806F7D8 + movs r0, 0x1 + b _0806F7E4 + .align 2, 0 +_0806F7D4: .4byte gUnknown_08376504 +_0806F7D8: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x7 + bls _0806F7C2 + movs r0, 0 +_0806F7E4: + pop {r1} + bx r1 + thumb_func_end IsHMMove + + thumb_func_start sub_806F7E8 +sub_806F7E8: @ 806F7E8 + push {r4-r6,lr} + adds r5, r1, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r3, r0, 2 + adds r3, r0 + lsls r3, 3 + ldr r0, _0806F898 @ =gTasks + 0x8 + adds r3, r0 + movs r0, 0x14 + ldrsh r1, [r3, r0] + str r1, [r5] + movs r4, 0x16 + ldrsh r0, [r3, r4] + str r0, [r5, 0x4] + movs r4, 0x18 + ldrsh r0, [r3, r4] + lsls r2, 24 + asrs r2, 24 + muls r0, r2 + str r0, [r5, 0x8] + movs r0, 0x80 + lsls r0, 1 + str r0, [r5, 0x10] + ldr r6, _0806F89C @ =0x0201b000 + ldr r2, _0806F8A0 @ =0x00000282 + adds r0, r6, r2 + movs r4, 0 + ldrsh r0, [r0, r4] + bl GetHPBarLevel + lsls r0, 24 + lsrs r2, r0, 24 + adds r3, r2, 0 + cmp r2, 0x2 + bls _0806F83E + ldrb r0, [r5, 0xC] + movs r1, 0x20 + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r5, 0xC] +_0806F83E: + cmp r2, 0x2 + bne _0806F850 + ldrb r0, [r5, 0xC] + movs r1, 0x20 + negs r1, r1 + ands r1, r0 + movs r0, 0x5 + orrs r1, r0 + strb r1, [r5, 0xC] +_0806F850: + cmp r3, 0x1 + bhi _0806F862 + ldrb r0, [r5, 0xC] + movs r1, 0x20 + negs r1, r1 + ands r1, r0 + movs r0, 0x6 + orrs r1, r0 + strb r1, [r5, 0xC] +_0806F862: + ldr r4, _0806F8A4 @ =gUnknown_08376858 + bl IsDoubleBattle + movs r2, 0x80 + lsls r2, 5 + adds r1, r6, r2 + ldrb r2, [r1, 0x5] + lsls r2, 2 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r2, r1 + adds r2, r4 + ldr r2, [r2] + ldr r4, _0806F8A8 @ =0x0000100c + adds r1, r6, r4 + adds r0, r5, 0 + movs r3, 0 + bl sub_80460C8 + lsls r0, 16 + asrs r0, 16 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0806F898: .4byte gTasks + 0x8 +_0806F89C: .4byte 0x0201b000 +_0806F8A0: .4byte 0x00000282 +_0806F8A4: .4byte gUnknown_08376858 +_0806F8A8: .4byte 0x0000100c + thumb_func_end sub_806F7E8 + + thumb_func_start sub_806F8AC +sub_806F8AC: @ 806F8AC + push {r4-r7,lr} + sub sp, 0x18 + lsls r0, 24 + lsrs r6, r0, 24 + movs r4, 0x1 + negs r4, r4 + adds r0, r6, 0 + mov r1, sp + adds r2, r4, 0 + bl sub_806F7E8 + ldr r1, _0806F8F4 @ =0x0201b000 + ldr r2, _0806F8F8 @ =0x00000282 + adds r5, r1, r2 + strh r0, [r5] + lsls r0, 16 + asrs r0, 16 + cmp r0, r4 + beq _0806F8D4 + b _0806F9F0 +_0806F8D4: + movs r0, 0x80 + lsls r0, 5 + adds r1, r0 + movs r0, 0 + str r0, [r1, 0xC] + ldr r0, [sp, 0x8] + negs r3, r0 + ldr r2, [sp, 0x4] + adds r0, r3, r2 + ldr r1, [sp] + cmp r0, r1 + ble _0806F8FC + subs r1, r2 + add r0, sp, 0x14 + strh r1, [r0] + b _0806F900 + .align 2, 0 +_0806F8F4: .4byte 0x0201b000 +_0806F8F8: .4byte 0x00000282 +_0806F8FC: + add r0, sp, 0x14 + strh r3, [r0] +_0806F900: + adds r5, r0, 0 + ldr r1, _0806F940 @ =gUnknown_02024BEC + ldrh r0, [r5] + negs r0, r0 + str r0, [r1] + ldr r0, _0806F944 @ =0x0201c000 + ldr r0, [r0] + ldr r1, _0806F948 @ =gStringVar1 + bl GetMonNickname + ldr r0, _0806F94C @ =gStringVar2 + ldrh r1, [r5] + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r2, _0806F950 @ =gTasks + lsls r1, r6, 2 + adds r0, r1, r6 + lsls r0, 3 + adds r0, r2 + movs r2, 0x24 + ldrsh r0, [r0, r2] + adds r7, r1, 0 + cmp r0, 0 + bne _0806F95C + ldr r0, _0806F954 @ =gStringVar4 + ldr r1, _0806F958 @ =gOtherText_HPRestoredBy + bl StringExpandPlaceholders + b _0806F964 + .align 2, 0 +_0806F940: .4byte gUnknown_02024BEC +_0806F944: .4byte 0x0201c000 +_0806F948: .4byte gStringVar1 +_0806F94C: .4byte gStringVar2 +_0806F950: .4byte gTasks +_0806F954: .4byte gStringVar4 +_0806F958: .4byte gOtherText_HPRestoredBy +_0806F95C: + ldr r0, _0806F9D4 @ =gStringVar4 + ldr r1, _0806F9D8 @ =gOtherText_RegainedHealth + bl StringExpandPlaceholders +_0806F964: + ldr r4, _0806F9DC @ =0x0201c000 + ldrb r0, [r4, 0x4] + ldrb r1, [r4, 0x5] + bl GetMonIconSpriteId_maybe + lsls r0, 24 + lsrs r0, 24 + ldr r1, [r4] + bl SetMonIconAnim + bl IsDoubleBattle + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldrb r1, [r4, 0x5] + lsls r1, 1 + adds r0, r1 + ldr r1, _0806F9E0 @ =gUnknown_083769A8 + adds r0, r1 + movs r1, 0x7 + bl task_pc_turn_off + ldr r0, _0806F9E4 @ =0xfffff261 + adds r1, r4, r0 + movs r0, 0x2 + strb r0, [r1] + ldr r0, _0806F9D4 @ =gStringVar4 + movs r1, 0x1 + bl sub_806E834 + ldr r1, [sp, 0x4] + ldrh r0, [r5] + adds r0, r1 + strh r0, [r5] + ldr r0, [r4] + movs r1, 0x39 + adds r2, r5, 0 + bl SetMonData + ldrh r0, [r4, 0x6] + movs r1, 0x1 + bl RemoveBagItem + bl sub_8032638 + ldr r1, _0806F9E8 @ =gTasks + adds r0, r7, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _0806F9EC @ =sub_806FB44 + str r1, [r0] + b _0806FA10 + .align 2, 0 +_0806F9D4: .4byte gStringVar4 +_0806F9D8: .4byte gOtherText_RegainedHealth +_0806F9DC: .4byte 0x0201c000 +_0806F9E0: .4byte gUnknown_083769A8 +_0806F9E4: .4byte 0xfffff261 +_0806F9E8: .4byte gTasks +_0806F9EC: .4byte sub_806FB44 +_0806F9F0: + movs r2, 0x80 + lsls r2, 5 + adds r0, r1, r2 + ldrb r4, [r0, 0x5] + bl IsDoubleBattle + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldrh r2, [r5] + ldr r3, [sp] + lsls r3, 16 + lsrs r3, 16 + adds r0, r4, 0 + bl PartyMenuDoPrintHP +_0806FA10: + add sp, 0x18 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_806F8AC + + thumb_func_start sub_806FA18 +sub_806FA18: @ 806FA18 + push {r4-r7,lr} + sub sp, 0x14 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + mov r1, sp + movs r2, 0x1 + bl sub_806F7E8 + ldr r6, _0806FAC4 @ =0x0201b000 + ldr r1, _0806FAC8 @ =0x00000282 + adds r7, r6, r1 + strh r0, [r7] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _0806FAE4 + movs r0, 0x1 + bl PlaySE + movs r0, 0x80 + lsls r0, 5 + adds r4, r6, r0 + movs r0, 0 + str r0, [r4, 0xC] + ldr r2, _0806FACC @ =gTasks + lsls r3, r5, 2 + adds r3, r5 + lsls r3, 3 + adds r5, r3, r2 + ldrh r0, [r5, 0x1E] + ldrh r1, [r5, 0x20] + subs r0, r1 + strh r0, [r5, 0x1E] + ldr r0, [r4] + adds r2, r3 + adds r2, 0x1E + movs r1, 0x39 + bl SetMonData + ldrb r0, [r4, 0x4] + ldr r1, _0806FAD0 @ =0xfffe6000 + adds r6, r1 + ldrb r1, [r6, 0x1] + bl GetMonIconSpriteId_maybe + lsls r0, 24 + lsrs r0, 24 + ldr r1, [r4] + bl SetMonIconAnim + ldr r2, _0806FAD4 @ =gSprites + ldrb r1, [r6, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x2E] + strb r0, [r4, 0x5] + ldrb r1, [r4, 0x5] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0806FAD8 @ =gPlayerParty + adds r0, r1 + str r0, [r4] + movs r1, 0x3A + bl GetMonData + strh r0, [r5, 0x1C] + ldr r0, [r4] + movs r1, 0x39 + bl GetMonData + strh r0, [r5, 0x1E] + ldr r0, _0806FADC @ =0xffff8000 + str r0, [r4, 0xC] + ldr r0, [r4, 0x10] + str r0, [r4, 0x14] + ldr r0, _0806FAE0 @ =sub_806F8AC + str r0, [r5] + ldrh r0, [r5, 0x1E] + strh r0, [r7] + b _0806FB04 + .align 2, 0 +_0806FAC4: .4byte 0x0201b000 +_0806FAC8: .4byte 0x00000282 +_0806FACC: .4byte gTasks +_0806FAD0: .4byte 0xfffe6000 +_0806FAD4: .4byte gSprites +_0806FAD8: .4byte gPlayerParty +_0806FADC: .4byte 0xffff8000 +_0806FAE0: .4byte sub_806F8AC +_0806FAE4: + movs r1, 0x80 + lsls r1, 5 + adds r0, r6, r1 + ldrb r4, [r0, 0x5] + bl IsDoubleBattle + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldrh r2, [r7] + ldr r3, [sp] + lsls r3, 16 + lsrs r3, 16 + adds r0, r4, 0 + bl PartyMenuDoPrintHP +_0806FB04: + add sp, 0x14 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_806FA18 + + thumb_func_start sub_806FB0C +sub_806FB0C: @ 806FB0C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0806FB38 @ =gUnknown_0202E8F6 + ldrb r0, [r0] + cmp r0, 0 + bne _0806FB32 + ldr r3, _0806FB3C @ =gTasks + ldr r2, _0806FB40 @ =0x0201c000 + ldrb r1, [r2, 0x4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + ldr r1, [r2, 0x10] + str r1, [r0] + adds r0, r4, 0 + bl DestroyTask +_0806FB32: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0806FB38: .4byte gUnknown_0202E8F6 +_0806FB3C: .4byte gTasks +_0806FB40: .4byte 0x0201c000 + thumb_func_end sub_806FB0C + + thumb_func_start sub_806FB44 +sub_806FB44: @ 806FB44 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0806FB70 @ =gUnknown_0202E8F6 + ldrb r0, [r0] + cmp r0, 0 + bne _0806FB6A + ldr r3, _0806FB74 @ =gTasks + ldr r2, _0806FB78 @ =0x0201c000 + ldrb r1, [r2, 0x4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + ldr r1, [r2, 0x14] + str r1, [r0] + adds r0, r4, 0 + bl DestroyTask +_0806FB6A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0806FB70: .4byte gUnknown_0202E8F6 +_0806FB74: .4byte gTasks +_0806FB78: .4byte 0x0201c000 + thumb_func_end sub_806FB44 + + thumb_func_start IsHPRecoveryItem +IsHPRecoveryItem: @ 806FB7C + push {lr} + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xAF + bne _0806FB90 + ldr r0, _0806FB8C @ =gSaveBlock1 + 0x3676 + b _0806FB9A + .align 2, 0 +_0806FB8C: .4byte gSaveBlock1 + 0x3676 +_0806FB90: + ldr r1, _0806FBA8 @ =gItemEffectTable + subs r0, 0xD + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] +_0806FB9A: + ldrb r1, [r0, 0x4] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + bne _0806FBAC + movs r0, 0 + b _0806FBAE + .align 2, 0 +_0806FBA8: .4byte gItemEffectTable +_0806FBAC: + movs r0, 0x1 +_0806FBAE: + pop {r1} + bx r1 + thumb_func_end IsHPRecoveryItem + + thumb_func_start PartyMenuUpdateLevelOrStatus +PartyMenuUpdateLevelOrStatus: @ 806FBB4 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r4, r1, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl PartyMenuClearLevelStatusTilemap + adds r0, r4, 0 + adds r1, r5, 0 + bl PartyMenuPrintMonLevelOrStatus + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end PartyMenuUpdateLevelOrStatus + + thumb_func_start GetMedicineItemEffectMessage +GetMedicineItemEffectMessage: @ 806FBD0 + push {lr} + lsls r0, 16 + lsrs r0, 16 + bl GetItemEffectType + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x3 + cmp r0, 0x12 + bls _0806FBE6 + b _0806FD7C +_0806FBE6: + lsls r0, 2 + ldr r1, _0806FBF0 @ =_0806FBF4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806FBF0: .4byte _0806FBF4 + .align 2, 0 +_0806FBF4: + .4byte _0806FC40 + .4byte _0806FC54 + .4byte _0806FC68 + .4byte _0806FC7C + .4byte _0806FC90 + .4byte _0806FCA4 + .4byte _0806FCB8 + .4byte _0806FD7C + .4byte _0806FCCC + .4byte _0806FCF0 + .4byte _0806FCE0 + .4byte _0806FD20 + .4byte _0806FD30 + .4byte _0806FD10 + .4byte _0806FD00 + .4byte _0806FD7C + .4byte _0806FD54 + .4byte _0806FD54 + .4byte _0806FD68 +_0806FC40: + ldr r0, _0806FC4C @ =gStringVar4 + ldr r1, _0806FC50 @ =gOtherText_CuredPoisoning + bl StringExpandPlaceholders + b _0806FD84 + .align 2, 0 +_0806FC4C: .4byte gStringVar4 +_0806FC50: .4byte gOtherText_CuredPoisoning +_0806FC54: + ldr r0, _0806FC60 @ =gStringVar4 + ldr r1, _0806FC64 @ =gOtherText_WokeUp + bl StringExpandPlaceholders + b _0806FD84 + .align 2, 0 +_0806FC60: .4byte gStringVar4 +_0806FC64: .4byte gOtherText_WokeUp +_0806FC68: + ldr r0, _0806FC74 @ =gStringVar4 + ldr r1, _0806FC78 @ =gOtherText_BurnHealed + bl StringExpandPlaceholders + b _0806FD84 + .align 2, 0 +_0806FC74: .4byte gStringVar4 +_0806FC78: .4byte gOtherText_BurnHealed +_0806FC7C: + ldr r0, _0806FC88 @ =gStringVar4 + ldr r1, _0806FC8C @ =gOtherText_ThawedOut + bl StringExpandPlaceholders + b _0806FD84 + .align 2, 0 +_0806FC88: .4byte gStringVar4 +_0806FC8C: .4byte gOtherText_ThawedOut +_0806FC90: + ldr r0, _0806FC9C @ =gStringVar4 + ldr r1, _0806FCA0 @ =gOtherText_CuredParalysis + bl StringExpandPlaceholders + b _0806FD84 + .align 2, 0 +_0806FC9C: .4byte gStringVar4 +_0806FCA0: .4byte gOtherText_CuredParalysis +_0806FCA4: + ldr r0, _0806FCB0 @ =gStringVar4 + ldr r1, _0806FCB4 @ =gOtherText_SnapConfusion + bl StringExpandPlaceholders + b _0806FD84 + .align 2, 0 +_0806FCB0: .4byte gStringVar4 +_0806FCB4: .4byte gOtherText_SnapConfusion +_0806FCB8: + ldr r0, _0806FCC4 @ =gStringVar4 + ldr r1, _0806FCC8 @ =gOtherText_GotOverLove + bl StringExpandPlaceholders + b _0806FD84 + .align 2, 0 +_0806FCC4: .4byte gStringVar4 +_0806FCC8: .4byte gOtherText_GotOverLove +_0806FCCC: + ldr r0, _0806FCD8 @ =gStringVar4 + ldr r1, _0806FCDC @ =gOtherText_BecameHealthy + bl StringExpandPlaceholders + b _0806FD84 + .align 2, 0 +_0806FCD8: .4byte gStringVar4 +_0806FCDC: .4byte gOtherText_BecameHealthy +_0806FCE0: + ldr r0, _0806FCE8 @ =gStringVar2 + ldr r1, _0806FCEC @ =gOtherText_Hp2 + b _0806FD34 + .align 2, 0 +_0806FCE8: .4byte gStringVar2 +_0806FCEC: .4byte gOtherText_Hp2 +_0806FCF0: + ldr r0, _0806FCF8 @ =gStringVar2 + ldr r1, _0806FCFC @ =gOtherText_Attack + b _0806FD34 + .align 2, 0 +_0806FCF8: .4byte gStringVar2 +_0806FCFC: .4byte gOtherText_Attack +_0806FD00: + ldr r0, _0806FD08 @ =gStringVar2 + ldr r1, _0806FD0C @ =gOtherText_Defense + b _0806FD34 + .align 2, 0 +_0806FD08: .4byte gStringVar2 +_0806FD0C: .4byte gOtherText_Defense +_0806FD10: + ldr r0, _0806FD18 @ =gStringVar2 + ldr r1, _0806FD1C @ =gOtherText_Speed + b _0806FD34 + .align 2, 0 +_0806FD18: .4byte gStringVar2 +_0806FD1C: .4byte gOtherText_Speed +_0806FD20: + ldr r0, _0806FD28 @ =gStringVar2 + ldr r1, _0806FD2C @ =gOtherText_SpAtk2 + b _0806FD34 + .align 2, 0 +_0806FD28: .4byte gStringVar2 +_0806FD2C: .4byte gOtherText_SpAtk2 +_0806FD30: + ldr r0, _0806FD44 @ =gStringVar2 + ldr r1, _0806FD48 @ =gOtherText_SpDef2 +_0806FD34: + bl StringCopy + ldr r0, _0806FD4C @ =gStringVar4 + ldr r1, _0806FD50 @ =gOtherText_WasRaised + bl StringExpandPlaceholders + b _0806FD84 + .align 2, 0 +_0806FD44: .4byte gStringVar2 +_0806FD48: .4byte gOtherText_SpDef2 +_0806FD4C: .4byte gStringVar4 +_0806FD50: .4byte gOtherText_WasRaised +_0806FD54: + ldr r0, _0806FD60 @ =gStringVar4 + ldr r1, _0806FD64 @ =gOtherText_PPIncreased + bl StringExpandPlaceholders + b _0806FD84 + .align 2, 0 +_0806FD60: .4byte gStringVar4 +_0806FD64: .4byte gOtherText_PPIncreased +_0806FD68: + ldr r0, _0806FD74 @ =gStringVar4 + ldr r1, _0806FD78 @ =gOtherText_PPRestored + bl StringExpandPlaceholders + b _0806FD84 + .align 2, 0 +_0806FD74: .4byte gStringVar4 +_0806FD78: .4byte gOtherText_PPRestored +_0806FD7C: + ldr r0, _0806FD88 @ =gStringVar4 + ldr r1, _0806FD8C @ =gOtherText_WontHaveAnyEffect + bl StringExpandPlaceholders +_0806FD84: + pop {r0} + bx r0 + .align 2, 0 +_0806FD88: .4byte gStringVar4 +_0806FD8C: .4byte gOtherText_WontHaveAnyEffect + thumb_func_end GetMedicineItemEffectMessage + + thumb_func_start IsMedicineIneffective +IsMedicineIneffective: @ 806FD90 + push {r4,lr} + adds r4, r0, 0 + lsls r0, r1, 16 + lsrs r0, 16 + bl GetItemEffectType + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xD + bne _0806FDBC + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + ldr r1, _0806FDB8 @ =0x0000012f + cmp r0, r1 + bne _0806FDBC + movs r0, 0x1 + b _0806FDBE + .align 2, 0 +_0806FDB8: .4byte 0x0000012f +_0806FDBC: + movs r0, 0 +_0806FDBE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end IsMedicineIneffective + + thumb_func_start ExecuteTableBasedItemEffect__ +ExecuteTableBasedItemEffect__: @ 806FDC4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r1, 16 + lsrs r5, r1, 16 + lsls r2, 24 + lsrs r6, r2, 24 + ldr r0, _0806FDF0 @ =gMain + ldr r1, _0806FDF4 @ =0x0000043d + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _0806FDFC + movs r0, 0x64 + muls r0, r3 + ldr r1, _0806FDF8 @ =gPlayerParty + adds r0, r1 + adds r1, r5, 0 + adds r2, r3, 0 + b _0806FE16 + .align 2, 0 +_0806FDF0: .4byte gMain +_0806FDF4: .4byte 0x0000043d +_0806FDF8: .4byte gPlayerParty +_0806FDFC: + movs r0, 0x64 + adds r4, r3, 0 + muls r4, r0 + ldr r0, _0806FE28 @ =gPlayerParty + adds r4, r0 + adds r0, r3, 0 + bl sub_8094C20 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r4, 0 + adds r1, r5, 0 +_0806FE16: + adds r3, r6, 0 + bl ExecuteTableBasedItemEffect_ + lsls r0, 24 + lsrs r0, 24 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0806FE28: .4byte gPlayerParty + thumb_func_end ExecuteTableBasedItemEffect__ + + thumb_func_start UseMedicine +UseMedicine: @ 806FE2C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r4, r0, 0 + adds r5, r2, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 16 + lsrs r6, r1, 16 + movs r0, 0 + mov r9, r0 + ldr r1, _0806FED4 @ =gTasks + mov r10, r1 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + add r1, r10 + ldr r0, _0806FED8 @ =TaskDummy + str r0, [r1] + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r4, 0 + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_806E8D0 + ldr r5, _0806FEDC @ =0x0201c000 + ldr r0, [r5] + adds r1, r6, 0 + bl IsMedicineIneffective + lsls r0, 24 + cmp r0, 0 + bne _0806FEE0 + adds r0, r6, 0 + bl IsHPRecoveryItem + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r2, r7, 2 + mov r8, r2 + cmp r0, 0x1 + bne _0806FEC2 + ldr r0, [r5] + movs r1, 0x3A + bl GetMonData + mov r3, r8 + adds r1, r3, r7 + lsls r1, 3 + mov r2, r10 + adds r4, r1, r2 + strh r0, [r4, 0x1C] + ldr r0, [r5] + movs r1, 0x39 + bl GetMonData + strh r0, [r4, 0x1E] + movs r3, 0x1C + ldrsh r1, [r4, r3] + lsls r0, 16 + asrs r0, 16 + cmp r1, r0 + bne _0806FEC2 + movs r0, 0 + mov r9, r0 + mov r1, r9 + strh r1, [r4, 0x1C] + strh r1, [r4, 0x1E] +_0806FEC2: + ldr r0, _0806FEDC @ =0x0201c000 + ldrb r0, [r0, 0x5] + adds r1, r6, 0 + movs r2, 0 + bl ExecuteTableBasedItemEffect__ + lsls r0, 24 + lsrs r0, 24 + b _0806FEE6 + .align 2, 0 +_0806FED4: .4byte gTasks +_0806FED8: .4byte TaskDummy +_0806FEDC: .4byte 0x0201c000 +_0806FEE0: + movs r0, 0x1 + lsls r2, r7, 2 + mov r8, r2 +_0806FEE6: + cmp r0, 0 + beq _0806FF14 + ldr r1, _0806FF08 @ =gUnknown_0202E8F4 + movs r0, 0 + strb r0, [r1] + movs r0, 0x5 + bl PlaySE + ldr r0, _0806FF0C @ =gOtherText_WontHaveAnyEffect + movs r1, 0x1 + bl sub_806E834 + ldr r1, _0806FF10 @ =gTasks + mov r3, r8 + adds r0, r3, r7 + b _08070002 + .align 2, 0 +_0806FF08: .4byte gUnknown_0202E8F4 +_0806FF0C: .4byte gOtherText_WontHaveAnyEffect +_0806FF10: .4byte gTasks +_0806FF14: + ldr r1, _0806FF30 @ =gUnknown_0202E8F4 + movs r0, 0x1 + strb r0, [r1] + adds r0, r6, 0 + bl IsBlueYellowRedFlute + lsls r0, 24 + cmp r0, 0 + bne _0806FF34 + movs r0, 0x1 + bl PlaySE + b _0806FF3A + .align 2, 0 +_0806FF30: .4byte gUnknown_0202E8F4 +_0806FF34: + movs r0, 0x75 + bl PlaySE +_0806FF3A: + ldr r4, _0806FF88 @ =0x0201c000 + ldr r0, [r4] + bl GetMonStatusAndPokerus + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + beq _0806FF4E + cmp r0, 0 + bne _0806FF56 +_0806FF4E: + ldr r0, [r4] + ldrb r1, [r4, 0x5] + bl PartyMenuUpdateLevelOrStatus +_0806FF56: + mov r0, r9 + cmp r0, 0x1 + bne _0806FFC8 + ldr r4, _0806FF88 @ =0x0201c000 + ldr r0, [r4] + movs r1, 0x39 + bl GetMonData + ldr r2, _0806FF8C @ =gTasks + mov r3, r8 + adds r1, r3, r7 + lsls r1, 3 + adds r2, r1, r2 + ldrh r1, [r2, 0x1E] + subs r0, r1 + strh r0, [r2, 0x20] + ldr r0, _0806FF90 @ =0xffff8000 + str r0, [r4, 0xC] + movs r1, 0x1E + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _0806FF94 + mov r3, r9 + strh r3, [r2, 0x24] + b _0806FF98 + .align 2, 0 +_0806FF88: .4byte 0x0201c000 +_0806FF8C: .4byte gTasks +_0806FF90: .4byte 0xffff8000 +_0806FF94: + movs r0, 0 + strh r0, [r2, 0x24] +_0806FF98: + ldr r2, _0806FFB8 @ =0x0201c000 + ldr r0, [r2, 0x10] + str r0, [r2, 0x14] + ldr r1, _0806FFBC @ =gTasks + mov r3, r8 + adds r0, r3, r7 + lsls r0, 3 + adds r0, r1 + ldr r1, _0806FFC0 @ =sub_806F8AC + str r1, [r0] + ldrh r0, [r0, 0x1E] + ldr r1, _0806FFC4 @ =0xfffff282 + adds r2, r1 + strh r0, [r2] + b _0807000A + .align 2, 0 +_0806FFB8: .4byte 0x0201c000 +_0806FFBC: .4byte gTasks +_0806FFC0: .4byte sub_806F8AC +_0806FFC4: .4byte 0xfffff282 +_0806FFC8: + ldr r4, _08070018 @ =0x0201c000 + ldr r0, [r4] + ldr r1, _0807001C @ =gStringVar1 + bl GetMonNickname + adds r0, r6, 0 + bl IsBlueYellowRedFlute + lsls r0, 24 + cmp r0, 0 + bne _0806FFE6 + adds r0, r6, 0 + movs r1, 0x1 + bl RemoveBagItem +_0806FFE6: + adds r0, r6, 0 + bl GetMedicineItemEffectMessage + ldrb r0, [r4, 0x5] + ldr r1, [r4] + bl TryPrintPartyMenuMonNickname + ldr r0, _08070020 @ =gStringVar4 + movs r1, 0x1 + bl sub_806E834 + ldr r1, _08070024 @ =gTasks + mov r2, r8 + adds r0, r2, r7 +_08070002: + lsls r0, 3 + adds r0, r1 + ldr r1, _08070028 @ =sub_806FB0C + str r1, [r0] +_0807000A: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08070018: .4byte 0x0201c000 +_0807001C: .4byte gStringVar1 +_08070020: .4byte gStringVar4 +_08070024: .4byte gTasks +_08070028: .4byte sub_806FB0C + thumb_func_end UseMedicine + + thumb_func_start IsBlueYellowRedFlute +IsBlueYellowRedFlute: @ 807002C + push {lr} + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x27 + beq _0807003E + cmp r0, 0x29 + beq _0807003E + cmp r0, 0x28 + bne _08070042 +_0807003E: + movs r0, 0x1 + b _08070044 +_08070042: + movs r0, 0 +_08070044: + pop {r1} + bx r1 + thumb_func_end IsBlueYellowRedFlute + + thumb_func_start sub_8070048 +sub_8070048: @ 8070048 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, _08070078 @ =0x0201c000 + str r2, [r3, 0x10] + movs r4, 0 + strb r0, [r3, 0x4] + movs r2, 0 + strh r1, [r3, 0x6] + strb r2, [r3, 0x5] + ldr r1, _0807007C @ =sub_80701DC + str r1, [r3, 0x14] + ldr r2, _08070080 @ =0xfffff27e + adds r1, r3, r2 + strh r4, [r1] + ldr r1, _08070084 @ =0xfffff280 + adds r3, r1 + strh r4, [r3] + bl sub_8070088 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08070078: .4byte 0x0201c000 +_0807007C: .4byte sub_80701DC +_08070080: .4byte 0xfffff27e +_08070084: .4byte 0xfffff280 + thumb_func_end sub_8070048 + + .section .text_80701DC + + thumb_func_start sub_80701DC +sub_80701DC: @ 80701DC + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r6, _08070280 @ =0x0201b000 + ldr r0, _08070284 @ =0x0000027e + adds r7, r6, r0 + movs r1, 0 + ldrsh r0, [r7, r1] + cmp r0, 0x1 + bne _0807023E + movs r0, 0x80 + lsls r0, 5 + adds r4, r6, r0 + ldrh r0, [r4, 0x6] + movs r1, 0x1 + bl AddBagItem + ldrb r1, [r4, 0x5] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08070288 @ =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0807023A + bl IsDoubleBattle + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldrb r1, [r4, 0x5] + lsls r1, 1 + adds r0, r1 + ldr r1, _0807028C @ =gUnknown_083769A8 + adds r0, r1 + movs r1, 0x3 + bl task_pc_turn_off + ldr r0, _08070290 @ =0x00000261 + adds r1, r6, r0 + movs r0, 0x2 + strb r0, [r1] +_0807023A: + movs r0, 0 + strh r0, [r7] +_0807023E: + ldr r4, _08070294 @ =0x0201c000 + ldrb r0, [r4, 0x5] + adds r0, 0x1 + strb r0, [r4, 0x5] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + bne _080702D8 + ldr r1, _08070298 @ =gUnknown_0202E8F4 + movs r0, 0 + strb r0, [r1] + ldr r1, _0807029C @ =0xfffff280 + adds r0, r4, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080702B0 + ldr r1, _080702A0 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080702A4 @ =TaskDummy + str r1, [r0] + ldr r0, _080702A8 @ =gOtherText_WontHaveAnyEffect + movs r1, 0x1 + bl sub_806E834 + ldr r0, _080702AC @ =sub_806FB0C + movs r1, 0x8 + bl CreateTask + b _080702C6 + .align 2, 0 +_08070280: .4byte 0x0201b000 +_08070284: .4byte 0x0000027e +_08070288: .4byte gPlayerParty +_0807028C: .4byte gUnknown_083769A8 +_08070290: .4byte 0x00000261 +_08070294: .4byte 0x0201c000 +_08070298: .4byte gUnknown_0202E8F4 +_0807029C: .4byte 0xfffff280 +_080702A0: .4byte gTasks +_080702A4: .4byte TaskDummy +_080702A8: .4byte gOtherText_WontHaveAnyEffect +_080702AC: .4byte sub_806FB0C +_080702B0: + ldrh r0, [r4, 0x6] + movs r1, 0x1 + bl RemoveBagItem + ldr r1, _080702D0 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, [r4, 0x10] + str r1, [r0] +_080702C6: + ldr r1, _080702D4 @ =gUnknown_03005CE0 + movs r0, 0 + strb r0, [r1] + b _080702DE + .align 2, 0 +_080702D0: .4byte gTasks +_080702D4: .4byte gUnknown_03005CE0 +_080702D8: + adds r0, r5, 0 + bl sub_8070088 +_080702DE: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80701DC + + thumb_func_start CreateItemUseMoveMenu +CreateItemUseMoveMenu: @ 80702E4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r6, 0 + movs r0, 0x13 + movs r1, 0xA + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + movs r5, 0 + movs r0, 0x64 + adds r7, r4, 0 + muls r7, r0 + ldr r0, _0807036C @ =gPlayerParty + mov r8, r0 +_0807030C: + adds r1, r5, 0 + adds r1, 0xD + mov r2, r8 + adds r0, r7, r2 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + movs r0, 0xD + muls r0, r4 + ldr r1, _08070370 @ =gMoveNames + adds r0, r1 + lsls r2, r5, 25 + movs r1, 0xB0 + lsls r1, 20 + adds r2, r1 + lsrs r2, 24 + movs r1, 0x14 + bl MenuPrint + cmp r4, 0 + beq _08070340 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_08070340: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _0807030C + movs r0, 0 + str r0, [sp] + movs r0, 0x9 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x14 + movs r2, 0xB + adds r3, r6, 0 + bl InitMenu + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0807036C: .4byte gPlayerParty +_08070370: .4byte gMoveNames + thumb_func_end CreateItemUseMoveMenu + + thumb_func_start Task_HandleItemUseMoveMenuInput +Task_HandleItemUseMoveMenuInput: @ 8070374 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + adds r4, r2, 0 + ldr r0, _08070398 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0807039C + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursor + b _080703E4 + .align 2, 0 +_08070398: .4byte gMain +_0807039C: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080703B2 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl MoveMenuCursor + b _080703E4 +_080703B2: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080703CC + ldr r0, _080703C8 @ =gUnknown_08376B54 + ldr r1, [r0] + adds r0, r2, 0 + bl _call_via_r1 + b _080703E4 + .align 2, 0 +_080703C8: .4byte gUnknown_08376B54 +_080703CC: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080703E4 + movs r0, 0x5 + bl PlaySE + ldr r0, _080703EC @ =gUnknown_08376B54 + ldr r1, [r0, 0x4] + adds r0, r4, 0 + bl _call_via_r1 +_080703E4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080703EC: .4byte gUnknown_08376B54 + thumb_func_end Task_HandleItemUseMoveMenuInput + + thumb_func_start DoPPRecoveryItemEffect +DoPPRecoveryItemEffect: @ 80703F0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r9, r2 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 16 + lsrs r5, r1, 16 + cmp r5, 0xAF + bne _08070410 + ldr r0, _0807040C @ =gSaveBlock1 + 0x3676 + b _0807041C + .align 2, 0 +_0807040C: .4byte gSaveBlock1 + 0x3676 +_08070410: + ldr r1, _08070464 @ =gItemEffectTable + adds r0, r5, 0 + subs r0, 0xD + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] +_0807041C: + mov r8, r0 + ldr r7, _08070468 @ =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r7 + ldr r0, _0807046C @ =TaskDummy + str r0, [r1] + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r6, 0 + adds r1, r5, 0 + mov r2, r9 + bl sub_806E8D0 + mov r0, r8 + ldrb r1, [r0, 0x4] + movs r0, 0x10 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _08070470 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r7 + strh r1, [r0, 0x1E] + adds r0, r4, 0 + bl DoRecoverPP + b _08070498 + .align 2, 0 +_08070464: .4byte gItemEffectTable +_08070468: .4byte gTasks +_0807046C: .4byte TaskDummy +_08070470: + movs r0, 0x5 + bl PlaySE + movs r0, 0xA + movs r1, 0x3 + bl sub_806D538 + ldr r0, _080704A4 @ =0x0201c000 + ldrb r0, [r0, 0x5] + bl CreateItemUseMoveMenu + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r7 + ldr r1, _080704A8 @ =Task_HandleItemUseMoveMenuInput + str r1, [r0] + ldr r1, _080704AC @ =gMain + movs r0, 0 + strh r0, [r1, 0x2E] +_08070498: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080704A4: .4byte 0x0201c000 +_080704A8: .4byte Task_HandleItemUseMoveMenuInput +_080704AC: .4byte gMain + thumb_func_end DoPPRecoveryItemEffect + + thumb_func_start ItemUseMoveMenu_HandleMoveSelection +ItemUseMoveMenu_HandleMoveSelection: @ 80704B0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8072DEC + movs r0, 0x13 + movs r1, 0xA + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + bl sub_806D5A4 + bl GetMenuCursorPos + ldr r2, _080704EC @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r2 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x1E] + adds r0, r4, 0 + bl DoRecoverPP + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080704EC: .4byte gTasks + thumb_func_end ItemUseMoveMenu_HandleMoveSelection + + thumb_func_start ItemUseMoveMenu_HandleCancel +ItemUseMoveMenu_HandleCancel: @ 80704F0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8072DEC + movs r0, 0x13 + movs r1, 0xA + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r0, _08070528 @ =gMain + ldr r1, _0807052C @ =0x0000043d + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0807053C + ldr r2, _08070530 @ =gTasks + ldr r0, _08070534 @ =0x0201c000 + ldrb r1, [r0, 0x4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, _08070538 @ =SetUpBattlePokemonMenu + b _0807054C + .align 2, 0 +_08070528: .4byte gMain +_0807052C: .4byte 0x0000043d +_08070530: .4byte gTasks +_08070534: .4byte 0x0201c000 +_08070538: .4byte SetUpBattlePokemonMenu +_0807053C: + ldr r2, _08070564 @ =gTasks + ldr r0, _08070568 @ =0x0201c000 + ldrb r1, [r0, 0x4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, _0807056C @ =sub_808B0C0 +_0807054C: + str r1, [r0] + movs r0, 0x3 + movs r1, 0 + bl sub_806D538 + adds r0, r4, 0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08070564: .4byte gTasks +_08070568: .4byte 0x0201c000 +_0807056C: .4byte sub_808B0C0 + thumb_func_end ItemUseMoveMenu_HandleCancel + + thumb_func_start DoRecoverPP +DoRecoverPP: @ 8070570 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r5, 0 + ldr r6, _080705A8 @ =0x0201c000 + ldrb r0, [r6, 0x5] + ldrh r1, [r6, 0x6] + ldr r3, _080705AC @ =gTasks + lsls r2, r4, 2 + adds r2, r4 + lsls r2, 3 + adds r7, r2, r3 + ldrb r2, [r7, 0x1E] + bl ExecuteTableBasedItemEffect__ + lsls r0, 24 + cmp r0, 0 + beq _080705B8 + ldr r0, _080705B0 @ =gUnknown_0202E8F4 + strb r5, [r0] + movs r0, 0x5 + bl PlaySE + ldr r0, _080705B4 @ =gOtherText_WontHaveAnyEffect + movs r1, 0x1 + bl sub_806E834 + b _080705F8 + .align 2, 0 +_080705A8: .4byte 0x0201c000 +_080705AC: .4byte gTasks +_080705B0: .4byte gUnknown_0202E8F4 +_080705B4: .4byte gOtherText_WontHaveAnyEffect +_080705B8: + ldr r1, _0807060C @ =gUnknown_0202E8F4 + movs r0, 0x1 + strb r0, [r1] + movs r0, 0x1 + bl PlaySE + ldrh r0, [r6, 0x6] + movs r1, 0x1 + bl RemoveBagItem + ldr r0, [r6] + movs r2, 0x1E + ldrsh r1, [r7, r2] + adds r1, 0xD + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _08070610 @ =gStringVar1 + movs r1, 0xD + muls r1, r5 + ldr r2, _08070614 @ =gMoveNames + adds r1, r2 + bl StringCopy + ldrh r0, [r6, 0x6] + bl GetMedicineItemEffectMessage + ldr r0, _08070618 @ =gStringVar4 + movs r1, 0x1 + bl sub_806E834 +_080705F8: + ldr r0, _0807061C @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _08070620 @ =sub_806FB0C + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0807060C: .4byte gUnknown_0202E8F4 +_08070610: .4byte gStringVar1 +_08070614: .4byte gMoveNames +_08070618: .4byte gStringVar4 +_0807061C: .4byte gTasks +_08070620: .4byte sub_806FB0C + thumb_func_end DoRecoverPP + + thumb_func_start DoPPUpItemEffect +DoPPUpItemEffect: @ 8070624 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r1, 16 + ldr r4, _0807066C @ =gTasks + lsls r3, r0, 2 + adds r3, r0 + lsls r3, 3 + adds r3, r4 + ldr r4, _08070670 @ =TaskDummy + str r4, [r3] + bl sub_806E8D0 + movs r0, 0x5 + bl PlaySE + movs r0, 0xB + movs r1, 0x3 + bl sub_806D538 + ldr r0, _08070674 @ =0x0201c000 + ldrb r0, [r0, 0x5] + bl CreateItemUseMoveMenu + ldr r0, _08070678 @ =Task_HandleItemUseMoveMenuInput + movs r1, 0x5 + bl CreateTask + ldr r1, _0807067C @ =gMain + movs r0, 0 + strh r0, [r1, 0x2E] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807066C: .4byte gTasks +_08070670: .4byte TaskDummy +_08070674: .4byte 0x0201c000 +_08070678: .4byte Task_HandleItemUseMoveMenuInput +_0807067C: .4byte gMain + thumb_func_end DoPPUpItemEffect + + thumb_func_start DoRareCandyItemEffect +DoRareCandyItemEffect: @ 8070680 + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r6, r1, 16 + ldr r3, _080706E0 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r3 + ldr r3, _080706E4 @ =TaskDummy + str r3, [r1] + adds r1, r6, 0 + bl sub_806E8D0 + ldr r5, _080706E8 @ =0x0201c000 + ldr r0, [r5] + movs r1, 0x38 + bl GetMonData + cmp r0, 0x64 + beq _080706F4 + movs r4, 0 + ldr r0, _080706EC @ =0xfffff264 + adds r7, r5, r0 +_080706B2: + ldr r0, [r5] + ldr r1, _080706F0 @ =gUnknown_08376D1C + adds r1, r4, r1 + ldrb r1, [r1] + bl GetMonData + lsls r1, r4, 1 + adds r1, r7, r1 + strh r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _080706B2 + ldr r0, _080706E8 @ =0x0201c000 + ldrb r0, [r0, 0x5] + adds r1, r6, 0 + movs r2, 0 + bl ExecuteTableBasedItemEffect__ + lsls r0, 24 + lsrs r0, 24 + b _080706F6 + .align 2, 0 +_080706E0: .4byte gTasks +_080706E4: .4byte TaskDummy +_080706E8: .4byte 0x0201c000 +_080706EC: .4byte 0xfffff264 +_080706F0: .4byte gUnknown_08376D1C +_080706F4: + movs r0, 0x1 +_080706F6: + cmp r0, 0 + beq _08070724 + ldr r1, _08070718 @ =gUnknown_0202E8F4 + movs r0, 0 + strb r0, [r1] + movs r0, 0x5 + bl PlaySE + ldr r0, _0807071C @ =gOtherText_WontHaveAnyEffect + movs r1, 0x1 + bl sub_806E834 + ldr r0, _08070720 @ =sub_806FB0C + movs r1, 0x5 + bl CreateTask + b _0807077C + .align 2, 0 +_08070718: .4byte gUnknown_0202E8F4 +_0807071C: .4byte gOtherText_WontHaveAnyEffect +_08070720: .4byte sub_806FB0C +_08070724: + ldr r1, _08070784 @ =gUnknown_0202E8F4 + movs r0, 0x1 + strb r0, [r1] + movs r0, 0 + bl PlayFanfareByFanfareNum + ldr r4, _08070788 @ =0x0201c000 + ldrb r0, [r4, 0x5] + ldr r1, [r4] + bl sub_8070A20 + adds r0, r6, 0 + movs r1, 0x1 + bl RemoveBagItem + ldr r0, [r4] + ldr r1, _0807078C @ =gStringVar1 + bl GetMonNickname + ldr r0, [r4] + movs r1, 0x38 + bl GetMonData + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r0, _08070790 @ =gStringVar2 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r4, _08070794 @ =gStringVar4 + ldr r1, _08070798 @ =gOtherText_ElevatedTo + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_806E834 + ldr r0, _0807079C @ =Task_RareCandy1 + movs r1, 0x5 + bl CreateTask +_0807077C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08070784: .4byte gUnknown_0202E8F4 +_08070788: .4byte 0x0201c000 +_0807078C: .4byte gStringVar1 +_08070790: .4byte gStringVar2 +_08070794: .4byte gStringVar4 +_08070798: .4byte gOtherText_ElevatedTo +_0807079C: .4byte Task_RareCandy1 + thumb_func_end DoRareCandyItemEffect + + thumb_func_start Task_RareCandy1 +Task_RareCandy1: @ 80707A0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0 + bl WaitFanfare + lsls r0, 24 + cmp r0, 0 + beq _080707E8 + ldr r0, _080707F0 @ =gUnknown_0202E8F6 + ldrb r0, [r0] + cmp r0, 0 + bne _080707E8 + ldr r0, _080707F4 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080707CE + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080707E8 +_080707CE: + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_8070848 + ldr r0, _080707F8 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080707FC @ =Task_RareCandy2 + str r0, [r1] +_080707E8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080707F0: .4byte gUnknown_0202E8F6 +_080707F4: .4byte gMain +_080707F8: .4byte gTasks +_080707FC: .4byte Task_RareCandy2 + thumb_func_end Task_RareCandy1 + + thumb_func_start Task_RareCandy2 +Task_RareCandy2: @ 8070800 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0807083C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0807081A + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08070834 +_0807081A: + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_8070968 + ldr r0, _08070840 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _08070844 @ =Task_RareCandy3 + str r0, [r1] +_08070834: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807083C: .4byte gMain +_08070840: .4byte gTasks +_08070844: .4byte Task_RareCandy3 + thumb_func_end Task_RareCandy2 + + .section .text_8070968 + + thumb_func_start sub_8070968 +sub_8070968: @ 8070968 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r7, 0 + ldr r0, _08070A10 @ =0x0201c000 + mov r9, r0 + ldr r1, _08070A14 @ =0xfffff264 + add r1, r9 + mov r10, r1 + ldr r0, _08070A18 @ =gStringVar1 + mov r8, r0 +_08070982: + mov r1, r9 + ldr r0, [r1] + ldr r1, _08070A1C @ =gUnknown_08376D1C + adds r1, r7, r1 + ldrb r1, [r1] + bl GetMonData + adds r6, r7, 0x6 + lsls r6, 1 + add r6, r10 + strh r0, [r6] + adds r0, r7, 0 + movs r1, 0x3 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 3 + adds r4, r0 + adds r4, 0xB + lsls r4, 24 + lsrs r4, 24 + adds r0, r7, 0 + movs r1, 0x3 + bl __umodsi3 + adds r5, r0, 0 + lsls r5, 1 + adds r5, 0x1 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0xFC + mov r1, r8 + strb r0, [r1] + movs r0, 0x14 + strb r0, [r1, 0x1] + movs r0, 0x6 + strb r0, [r1, 0x2] + movs r0, 0 + ldrsh r1, [r6, r0] + mov r0, r8 + adds r0, 0x3 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r4, 0x6 + lsls r4, 3 + adds r4, 0x6 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 3 + mov r0, r8 + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0 + bl MenuPrint_PixelCoords + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x5 + bls _08070982 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08070A10: .4byte 0x0201c000 +_08070A14: .4byte 0xfffff264 +_08070A18: .4byte gStringVar1 +_08070A1C: .4byte gUnknown_08376D1C + thumb_func_end sub_8070968 + + thumb_func_start sub_8070A20 +sub_8070A20: @ 8070A20 + push {r4-r7,lr} + adds r6, r1, 0 + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r6, 0 + bl GetMonStatusAndPokerus + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _08070A3A + cmp r0, 0x6 + bne _08070A42 +_08070A3A: + adds r0, r6, 0 + adds r1, r7, 0 + bl PartyMenuUpdateLevelOrStatus +_08070A42: + bl IsDoubleBattle + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r6, 0 + movs r1, 0x39 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r6, 0 + movs r1, 0x3A + bl GetMonData + adds r3, r0, 0 + lsls r3, 16 + lsrs r3, 16 + adds r0, r7, 0 + adds r1, r5, 0 + adds r2, r4, 0 + bl PartyMenuDoPrintHP + adds r0, r7, 0 + adds r1, r6, 0 + bl PartyMenuTryDrawHPBar + ldr r4, _08070ABC @ =0x0201c000 + ldrb r0, [r4, 0x4] + adds r1, r7, 0 + bl GetMonIconSpriteId_maybe + lsls r0, 24 + lsrs r0, 24 + adds r1, r6, 0 + bl SetMonIconAnim + bl IsDoubleBattle + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + lsls r1, r7, 1 + adds r0, r1 + ldr r1, _08070AC0 @ =gUnknown_083769A8 + adds r0, r1 + movs r1, 0x7 + bl task_pc_turn_off + ldr r0, _08070AC4 @ =0xfffff261 + adds r4, r0 + movs r0, 0x2 + strb r0, [r4] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08070ABC: .4byte 0x0201c000 +_08070AC0: .4byte gUnknown_083769A8 +_08070AC4: .4byte 0xfffff261 + thumb_func_end sub_8070A20 + + thumb_func_start Task_RareCandy3 +Task_RareCandy3: @ 8070AC8 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r0, 0 + bl WaitFanfare + lsls r0, 24 + cmp r0, 0 + bne _08070ADC + b _08070C2C +_08070ADC: + ldr r0, _08070B24 @ =gMain + ldrh r1, [r0, 0x2E] + movs r5, 0x1 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _08070AF4 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _08070AF4 + b _08070C2C +_08070AF4: + movs r0, 0xB + movs r1, 0 + movs r2, 0x1D + movs r3, 0x7 + bl MenuZeroFillWindowRect + ldr r7, _08070B28 @ =0x0201c000 + ldr r0, [r7] + movs r1, 0x1 + bl sub_803B7C8 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r1, _08070B2C @ =0xfffff282 + adds r0, r7, r1 + strh r5, [r0] + ldr r0, _08070B30 @ =0x0000fffe + cmp r4, r0 + beq _08070BDC + cmp r4, r0 + bgt _08070B34 + cmp r4, 0 + beq _08070B40 + b _08070BF4 + .align 2, 0 +_08070B24: .4byte gMain +_08070B28: .4byte 0x0201c000 +_08070B2C: .4byte 0xfffff282 +_08070B30: .4byte 0x0000fffe +_08070B34: + ldr r0, _08070B3C @ =0x0000ffff + cmp r4, r0 + beq _08070B7C + b _08070BF4 + .align 2, 0 +_08070B3C: .4byte 0x0000ffff +_08070B40: + ldr r0, [r7] + movs r1, 0 + movs r2, 0 + bl GetEvolutionTargetSpecies + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0 + beq _08070B74 + ldr r1, _08070B6C @ =gUnknown_03005E94 + ldr r0, _08070B70 @ =sub_80A53F8 + str r0, [r1] + ldr r0, [r7] + ldrb r3, [r7, 0x5] + adds r1, r2, 0 + movs r2, 0x1 + bl BeginEvolutionScene + adds r0, r6, 0 + bl DestroyTask + b _08070C2C + .align 2, 0 +_08070B6C: .4byte gUnknown_03005E94 +_08070B70: .4byte sub_80A53F8 +_08070B74: + adds r0, r6, 0 + bl sub_8070D90 + b _08070C2C +_08070B7C: + ldr r0, [r7] + ldr r1, _08070BBC @ =gStringVar1 + bl GetMonNickname + ldr r0, _08070BC0 @ =gStringVar2 + ldr r5, _08070BC4 @ =word_2024E82 + ldrh r2, [r5] + movs r1, 0xD + muls r1, r2 + ldr r2, _08070BC8 @ =gMoveNames + adds r1, r2 + bl StringCopy + ldr r4, _08070BCC @ =gStringVar4 + ldr r1, _08070BD0 @ =gOtherText_WantsToLearn + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_806E834 + ldrh r0, [r5] + strh r0, [r7, 0x8] + ldr r1, _08070BD4 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _08070BD8 @ =sub_806F358 + b _08070C2A + .align 2, 0 +_08070BBC: .4byte gStringVar1 +_08070BC0: .4byte gStringVar2 +_08070BC4: .4byte word_2024E82 +_08070BC8: .4byte gMoveNames +_08070BCC: .4byte gStringVar4 +_08070BD0: .4byte gOtherText_WantsToLearn +_08070BD4: .4byte gTasks +_08070BD8: .4byte sub_806F358 +_08070BDC: + ldr r0, _08070BEC @ =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldr r0, _08070BF0 @ =sub_8070C54 + str r0, [r1] + b _08070C2C + .align 2, 0 +_08070BEC: .4byte gTasks +_08070BF0: .4byte sub_8070C54 +_08070BF4: + ldr r0, _08070C34 @ =0x0201c000 + ldr r0, [r0] + ldr r1, _08070C38 @ =gStringVar1 + bl GetMonNickname + ldr r0, _08070C3C @ =gStringVar2 + movs r1, 0xD + muls r1, r4 + ldr r2, _08070C40 @ =gMoveNames + adds r1, r2 + bl StringCopy + ldr r4, _08070C44 @ =gStringVar4 + ldr r1, _08070C48 @ =gOtherText_LearnedMove + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_806E834 + ldr r1, _08070C4C @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _08070C50 @ =Task_TeamMonTMMove3 +_08070C2A: + str r1, [r0] +_08070C2C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08070C34: .4byte 0x0201c000 +_08070C38: .4byte gStringVar1 +_08070C3C: .4byte gStringVar2 +_08070C40: .4byte gMoveNames +_08070C44: .4byte gStringVar4 +_08070C48: .4byte gOtherText_LearnedMove +_08070C4C: .4byte gTasks +_08070C50: .4byte Task_TeamMonTMMove3 + thumb_func_end Task_RareCandy3 + + thumb_func_start sub_8070C54 +sub_8070C54: @ 8070C54 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r7, _08070C78 @ =0x0201c000 + ldr r0, [r7] + movs r1, 0 + bl sub_803B7C8 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, _08070C7C @ =0x0000fffe + cmp r4, r0 + beq _08070D28 + cmp r4, r0 + bgt _08070C80 + cmp r4, 0 + beq _08070C8C + b _08070D30 + .align 2, 0 +_08070C78: .4byte 0x0201c000 +_08070C7C: .4byte 0x0000fffe +_08070C80: + ldr r0, _08070C88 @ =0x0000ffff + cmp r4, r0 + beq _08070CC8 + b _08070D30 + .align 2, 0 +_08070C88: .4byte 0x0000ffff +_08070C8C: + ldr r0, [r7] + movs r1, 0 + movs r2, 0 + bl GetEvolutionTargetSpecies + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0 + beq _08070CC0 + ldr r1, _08070CB8 @ =gUnknown_03005E94 + ldr r0, _08070CBC @ =sub_80A53F8 + str r0, [r1] + ldr r0, [r7] + ldrb r3, [r7, 0x5] + adds r1, r2, 0 + movs r2, 0x1 + bl BeginEvolutionScene + adds r0, r6, 0 + bl DestroyTask + b _08070D68 + .align 2, 0 +_08070CB8: .4byte gUnknown_03005E94 +_08070CBC: .4byte sub_80A53F8 +_08070CC0: + adds r0, r6, 0 + bl sub_8070D90 + b _08070D68 +_08070CC8: + ldr r0, [r7] + ldr r1, _08070D08 @ =gStringVar1 + bl GetMonNickname + ldr r0, _08070D0C @ =gStringVar2 + ldr r5, _08070D10 @ =word_2024E82 + ldrh r2, [r5] + movs r1, 0xD + muls r1, r2 + ldr r2, _08070D14 @ =gMoveNames + adds r1, r2 + bl StringCopy + ldr r4, _08070D18 @ =gStringVar4 + ldr r1, _08070D1C @ =gOtherText_WantsToLearn + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_806E834 + ldrh r0, [r5] + strh r0, [r7, 0x8] + ldr r1, _08070D20 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _08070D24 @ =sub_806F358 + b _08070D66 + .align 2, 0 +_08070D08: .4byte gStringVar1 +_08070D0C: .4byte gStringVar2 +_08070D10: .4byte word_2024E82 +_08070D14: .4byte gMoveNames +_08070D18: .4byte gStringVar4 +_08070D1C: .4byte gOtherText_WantsToLearn +_08070D20: .4byte gTasks +_08070D24: .4byte sub_806F358 +_08070D28: + adds r0, r6, 0 + bl sub_8070C54 + b _08070D68 +_08070D30: + ldr r0, _08070D70 @ =0x0201c000 + ldr r0, [r0] + ldr r1, _08070D74 @ =gStringVar1 + bl GetMonNickname + ldr r0, _08070D78 @ =gStringVar2 + movs r1, 0xD + muls r1, r4 + ldr r2, _08070D7C @ =gMoveNames + adds r1, r2 + bl StringCopy + ldr r4, _08070D80 @ =gStringVar4 + ldr r1, _08070D84 @ =gOtherText_LearnedMove + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_806E834 + ldr r1, _08070D88 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _08070D8C @ =Task_TeamMonTMMove3 +_08070D66: + str r1, [r0] +_08070D68: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08070D70: .4byte 0x0201c000 +_08070D74: .4byte gStringVar1 +_08070D78: .4byte gStringVar2 +_08070D7C: .4byte gMoveNames +_08070D80: .4byte gStringVar4 +_08070D84: .4byte gOtherText_LearnedMove +_08070D88: .4byte gTasks +_08070D8C: .4byte Task_TeamMonTMMove3 + thumb_func_end sub_8070C54 + + thumb_func_start sub_8070D90 +sub_8070D90: @ 8070D90 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r4, _08070DB4 @ =gTasks + ldr r3, _08070DB8 @ =0x0201c000 + ldrb r2, [r3, 0x4] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r4 + ldr r2, [r3, 0x10] + str r2, [r1] + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08070DB4: .4byte gTasks +_08070DB8: .4byte 0x0201c000 + thumb_func_end sub_8070D90 + + thumb_func_start DoEvolutionStoneItemEffect +DoEvolutionStoneItemEffect: @ 8070DBC + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r2, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 16 + lsrs r6, r1, 16 + movs r0, 0x5 + bl PlaySE + ldr r1, _08070E18 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08070E1C @ =TaskDummy + str r1, [r0] + adds r0, r4, 0 + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_806E8D0 + ldr r1, _08070E20 @ =gUnknown_03005E94 + ldr r0, _08070E24 @ =sub_80A53F8 + str r0, [r1] + ldr r0, _08070E28 @ =0x0201c000 + ldrb r0, [r0, 0x5] + adds r1, r6, 0 + movs r2, 0 + bl ExecuteTableBasedItemEffect__ + lsls r0, 24 + cmp r0, 0 + beq _08070E38 + ldr r1, _08070E2C @ =gUnknown_0202E8F4 + movs r0, 0 + strb r0, [r1] + ldr r0, _08070E30 @ =gOtherText_WontHaveAnyEffect + movs r1, 0x1 + bl sub_806E834 + ldr r0, _08070E34 @ =sub_806FB0C + movs r1, 0x5 + bl CreateTask + b _08070E40 + .align 2, 0 +_08070E18: .4byte gTasks +_08070E1C: .4byte TaskDummy +_08070E20: .4byte gUnknown_03005E94 +_08070E24: .4byte sub_80A53F8 +_08070E28: .4byte 0x0201c000 +_08070E2C: .4byte gUnknown_0202E8F4 +_08070E30: .4byte gOtherText_WontHaveAnyEffect +_08070E34: .4byte sub_806FB0C +_08070E38: + adds r0, r6, 0 + movs r1, 0x1 + bl RemoveBagItem +_08070E40: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end DoEvolutionStoneItemEffect + + thumb_func_start GetItemEffectType +GetItemEffectType: @ 8070E48 + push {r4,r5,lr} + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xAF + bne _08070E5C + ldr r4, _08070E58 @ =gSaveBlock1 + 0x3676 + b _08070E66 + .align 2, 0 +_08070E58: .4byte gSaveBlock1 + 0x3676 +_08070E5C: + ldr r1, _08070E8C @ =gItemEffectTable + subs r0, 0xD + lsls r0, 2 + adds r0, r1 + ldr r4, [r0] +_08070E66: + ldrb r1, [r4] + movs r5, 0x3F + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _08070E88 + ldrb r0, [r4, 0x1] + cmp r0, 0 + bne _08070E88 + ldrb r0, [r4, 0x2] + cmp r0, 0 + bne _08070E88 + ldrb r3, [r4, 0x3] + movs r0, 0x80 + ands r0, r3 + cmp r0, 0 + beq _08070E90 +_08070E88: + movs r0, 0 + b _08070F8A + .align 2, 0 +_08070E8C: .4byte gItemEffectTable +_08070E90: + movs r2, 0x40 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _08070E9E + movs r0, 0xA + b _08070F8A +_08070E9E: + adds r0, r2, 0 + ands r0, r3 + cmp r0, 0 + beq _08070EAA + movs r0, 0x1 + b _08070F8A +_08070EAA: + adds r2, r5, 0 + ands r2, r3 + cmp r2, 0 + bne _08070EB8 + lsrs r0, r1, 7 + cmp r0, 0 + beq _08070EFA +_08070EB8: + cmp r2, 0x20 + bne _08070EC0 + movs r0, 0x4 + b _08070F8A +_08070EC0: + cmp r2, 0x10 + bne _08070EC8 + movs r0, 0x3 + b _08070F8A +_08070EC8: + cmp r2, 0x8 + bne _08070ED0 + movs r0, 0x5 + b _08070F8A +_08070ED0: + cmp r2, 0x4 + bne _08070ED8 + movs r0, 0x6 + b _08070F8A +_08070ED8: + cmp r2, 0x2 + bne _08070EE0 + movs r0, 0x7 + b _08070F8A +_08070EE0: + cmp r2, 0x1 + bne _08070EE8 + movs r0, 0x8 + b _08070F8A +_08070EE8: + lsrs r0, r1, 7 + cmp r0, 0 + beq _08070EF6 + cmp r2, 0 + bne _08070EF6 + movs r0, 0x9 + b _08070F8A +_08070EF6: + movs r0, 0xB + b _08070F8A +_08070EFA: + ldrb r1, [r4, 0x4] + movs r0, 0x44 + ands r0, r1 + adds r2, r1, 0 + cmp r0, 0 + beq _08070F0A + movs r0, 0x2 + b _08070F8A +_08070F0A: + movs r5, 0x2 + adds r0, r5, 0 + ands r0, r2 + cmp r0, 0 + beq _08070F18 + movs r0, 0xC + b _08070F8A +_08070F18: + movs r3, 0x1 + adds r0, r3, 0 + ands r0, r2 + cmp r0, 0 + beq _08070F26 + movs r0, 0xD + b _08070F8A +_08070F26: + ldrb r1, [r4, 0x5] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08070F34 + movs r0, 0xE + b _08070F8A +_08070F34: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08070F40 + movs r0, 0xF + b _08070F8A +_08070F40: + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _08070F4C + movs r0, 0x10 + b _08070F8A +_08070F4C: + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _08070F58 + movs r0, 0x11 + b _08070F8A +_08070F58: + movs r0, 0x80 + ands r0, r2 + cmp r0, 0 + beq _08070F64 + movs r0, 0x12 + b _08070F8A +_08070F64: + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + beq _08070F70 + movs r0, 0x13 + b _08070F8A +_08070F70: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08070F7C + movs r0, 0x14 + b _08070F8A +_08070F7C: + movs r0, 0x18 + ands r0, r2 + cmp r0, 0 + bne _08070F88 + movs r0, 0x16 + b _08070F8A +_08070F88: + movs r0, 0x15 +_08070F8A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end GetItemEffectType + + thumb_func_start unref_sub_8070F90 +unref_sub_8070F90: @ 8070F90 + push {lr} + ldr r0, _08070FAC @ =0x00000801 + bl FlagSet + movs r0, 0x80 + lsls r0, 4 + bl FlagSet + ldr r0, _08070FB0 @ =0x00000802 + bl FlagSet + pop {r0} + bx r0 + .align 2, 0 +_08070FAC: .4byte 0x00000801 +_08070FB0: .4byte 0x00000802 + thumb_func_end unref_sub_8070F90 + .align 2, 0 @ Don't pad with nop. diff --git a/asm/player_pc.s b/asm/player_pc.s index da2792564..124891c02 100644 --- a/asm/player_pc.s +++ b/asm/player_pc.s @@ -6,1185 +6,6 @@ .text - thumb_func_start NewGameInitPCItems -NewGameInitPCItems: @ 8139C18 - push {r4-r6,lr} - movs r4, 0 - ldr r0, _08139C6C @ =gSaveBlock1 + 0x498 - movs r1, 0x32 - bl ClearItemSlots - ldr r1, _08139C70 @ =gNewGamePCItems - ldrh r0, [r1] - cmp r0, 0 - beq _08139C64 - ldrh r0, [r1, 0x2] - cmp r0, 0 - beq _08139C64 - adds r5, r1, 0 - adds r6, r5, 0x2 -_08139C36: - lsls r1, r4, 2 - adds r0, r1, r5 - ldrh r0, [r0] - adds r1, r6 - ldrh r1, [r1] - bl AddPCItem - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08139C64 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, r4, 2 - adds r0, r1, r5 - ldrh r0, [r0] - cmp r0, 0 - beq _08139C64 - adds r0, r1, r6 - ldrh r0, [r0] - cmp r0, 0 - bne _08139C36 -_08139C64: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08139C6C: .4byte gSaveBlock1 + 0x498 -_08139C70: .4byte gNewGamePCItems - thumb_func_end NewGameInitPCItems - - thumb_func_start BedroomPC -BedroomPC: @ 8139C74 - push {lr} - ldr r1, _08139C9C @ =gUnknown_02039314 - ldr r0, _08139CA0 @ =gUnknown_084062B8 - str r0, [r1] - ldr r1, _08139CA4 @ =gUnknown_030007B4 - movs r0, 0x4 - strb r0, [r1] - ldr r0, _08139CA8 @ =TaskDummy - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08139CAC @ =gOtherText_WhatWillYouDo - ldr r2, _08139CB0 @ =InitPlayerPCMenu - movs r3, 0 - bl DisplayItemMessageOnField - pop {r0} - bx r0 - .align 2, 0 -_08139C9C: .4byte gUnknown_02039314 -_08139CA0: .4byte gUnknown_084062B8 -_08139CA4: .4byte gUnknown_030007B4 -_08139CA8: .4byte TaskDummy -_08139CAC: .4byte gOtherText_WhatWillYouDo -_08139CB0: .4byte InitPlayerPCMenu - thumb_func_end BedroomPC - - thumb_func_start PlayerPC -PlayerPC: @ 8139CB4 - push {lr} - ldr r1, _08139CDC @ =gUnknown_02039314 - ldr r0, _08139CE0 @ =gUnknown_084062BC - str r0, [r1] - ldr r1, _08139CE4 @ =gUnknown_030007B4 - movs r0, 0x3 - strb r0, [r1] - ldr r0, _08139CE8 @ =TaskDummy - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08139CEC @ =gOtherText_WhatWillYouDo - ldr r2, _08139CF0 @ =InitPlayerPCMenu - movs r3, 0 - bl DisplayItemMessageOnField - pop {r0} - bx r0 - .align 2, 0 -_08139CDC: .4byte gUnknown_02039314 -_08139CE0: .4byte gUnknown_084062BC -_08139CE4: .4byte gUnknown_030007B4 -_08139CE8: .4byte TaskDummy -_08139CEC: .4byte gOtherText_WhatWillYouDo -_08139CF0: .4byte InitPlayerPCMenu - thumb_func_end PlayerPC - - thumb_func_start InitPlayerPCMenu -InitPlayerPCMenu: @ 8139CF4 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _08139D50 @ =gUnknown_030007B4 - ldrb r3, [r5] - lsls r3, 1 - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0xA - bl MenuDrawTextWindow - ldrb r2, [r5] - ldr r3, _08139D54 @ =gUnknown_08406298 - ldr r0, _08139D58 @ =gUnknown_02039314 - ldr r0, [r0] - str r0, [sp] - movs r0, 0x1 - movs r1, 0x1 - bl PrintMenuItemsReordered - ldrb r3, [r5] - movs r0, 0 - str r0, [sp] - movs r0, 0x9 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl InitMenu - ldr r1, _08139D5C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08139D60 @ =PlayerPCProcessMenuInput - str r1, [r0] - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08139D50: .4byte gUnknown_030007B4 -_08139D54: .4byte gUnknown_08406298 -_08139D58: .4byte gUnknown_02039314 -_08139D5C: .4byte gTasks -_08139D60: .4byte PlayerPCProcessMenuInput - thumb_func_end InitPlayerPCMenu - - thumb_func_start PlayerPCProcessMenuInput -PlayerPCProcessMenuInput: @ 8139D64 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, r5, 0 - ldr r2, _08139D88 @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08139D8C - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - b _08139E10 - .align 2, 0 -_08139D88: .4byte gMain -_08139D8C: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08139DA2 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - b _08139E10 -_08139DA2: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08139DE0 - bl sub_8072DEC - movs r0, 0x5 - bl PlaySE - ldr r4, _08139DD8 @ =gUnknown_08406298 - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08139DDC @ =gUnknown_02039314 - ldr r1, [r1] - adds r1, r0 - ldrb r0, [r1] - lsls r0, 3 - adds r4, 0x4 - adds r0, r4 - ldr r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 - b _08139E10 - .align 2, 0 -_08139DD8: .4byte gUnknown_08406298 -_08139DDC: .4byte gUnknown_02039314 -_08139DE0: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08139E10 - bl sub_8072DEC - movs r0, 0x5 - bl PlaySE - ldr r2, _08139E18 @ =gUnknown_08406298 - ldr r0, _08139E1C @ =gUnknown_030007B4 - ldrb r0, [r0] - ldr r1, _08139E20 @ =gUnknown_02039314 - ldr r1, [r1] - adds r0, r1 - subs r0, 0x1 - ldrb r0, [r0] - lsls r0, 3 - adds r2, 0x4 - adds r0, r2 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 -_08139E10: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08139E18: .4byte gUnknown_08406298 -_08139E1C: .4byte gUnknown_030007B4 -_08139E20: .4byte gUnknown_02039314 - thumb_func_end PlayerPCProcessMenuInput - - thumb_func_start ReshowPlayerPC -ReshowPlayerPC: @ 8139E24 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08139E38 @ =gOtherText_WhatWillYouDo - ldr r2, _08139E3C @ =InitPlayerPCMenu - movs r3, 0 - bl DisplayItemMessageOnField - pop {r0} - bx r0 - .align 2, 0 -_08139E38: .4byte gOtherText_WhatWillYouDo -_08139E3C: .4byte InitPlayerPCMenu - thumb_func_end ReshowPlayerPC - - thumb_func_start PlayerPC_ItemStorage -PlayerPC_ItemStorage: @ 8139E40 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl InitItemStorageMenu - ldr r1, _08139E64 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08139E68 @ =ItemStorageMenuProcessInput - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08139E64: .4byte gTasks -_08139E68: .4byte ItemStorageMenuProcessInput - thumb_func_end PlayerPC_ItemStorage - - thumb_func_start PlayerPC_Mailbox -PlayerPC_Mailbox: @ 8139E6C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0xA - movs r3, 0x9 - bl MenuZeroFillWindowRect - bl sub_813AF3C - ldr r1, _08139E9C @ =0x0201fe00 - movs r2, 0 - strb r0, [r1, 0x3] - lsls r0, 24 - cmp r0, 0 - bne _08139EA8 - ldr r1, _08139EA0 @ =gOtherText_NoMailHere - ldr r2, _08139EA4 @ =ReshowPlayerPC - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _08139ECA - .align 2, 0 -_08139E9C: .4byte 0x0201fe00 -_08139EA0: .4byte gOtherText_NoMailHere -_08139EA4: .4byte ReshowPlayerPC -_08139EA8: - strb r2, [r1] - strb r2, [r1, 0x2] - bl sub_813AF78 - adds r0, r4, 0 - bl sub_813A240 - adds r0, r4, 0 - bl sub_813B108 - ldr r0, _08139ED0 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _08139ED4 @ =sub_813B174 - str r0, [r1] -_08139ECA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08139ED0: .4byte gTasks -_08139ED4: .4byte sub_813B174 - thumb_func_end PlayerPC_Mailbox - - thumb_func_start PlayerPC_Decoration -PlayerPC_Decoration: @ 8139ED8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0xA - movs r3, 0x9 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl DoPlayerPCDecoration - pop {r4} - pop {r0} - bx r0 - thumb_func_end PlayerPC_Decoration - - thumb_func_start PlayerPC_TurnOff -PlayerPC_TurnOff: @ 8139EF8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08139F24 @ =gUnknown_030007B4 - ldrb r0, [r0] - cmp r0, 0x4 - bne _08139F3C - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r0, _08139F28 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08139F30 - ldr r0, _08139F2C @ =gUnknown_08152850 - bl ScriptContext1_SetupScript - b _08139F4C - .align 2, 0 -_08139F24: .4byte gUnknown_030007B4 -_08139F28: .4byte gSaveBlock2 -_08139F2C: .4byte gUnknown_08152850 -_08139F30: - ldr r0, _08139F38 @ =gUnknown_08152C75 - bl ScriptContext1_SetupScript - b _08139F4C - .align 2, 0 -_08139F38: .4byte gUnknown_08152C75 -_08139F3C: - movs r0, 0 - movs r1, 0 - movs r2, 0xA - movs r3, 0x9 - bl MenuZeroFillWindowRect - bl EnableBothScriptContexts -_08139F4C: - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - thumb_func_end PlayerPC_TurnOff - - thumb_func_start InitItemStorageMenu -InitItemStorageMenu: @ 8139F58 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0xA - movs r3, 0x9 - bl MenuZeroFillWindowRect - movs r0, 0 - movs r1, 0 - movs r2, 0xB - movs r3, 0x9 - bl MenuDrawTextWindow - ldr r3, _08139FAC @ =gUnknown_084062C0 - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x4 - bl PrintMenuItems - str r4, [sp] - movs r0, 0xA - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x4 - bl InitMenu - ldr r0, _08139FB0 @ =gUnknown_08406288 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - bl ItemStorageMenuPrint - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08139FAC: .4byte gUnknown_084062C0 -_08139FB0: .4byte gUnknown_08406288 - thumb_func_end InitItemStorageMenu - - thumb_func_start ItemStorageMenuPrint -ItemStorageMenuPrint: @ 8139FB4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x2 - movs r1, 0xF - movs r2, 0x1B - movs r3, 0x12 - bl MenuFillWindowRectWithBlankTile - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - pop {r4} - pop {r0} - bx r0 - thumb_func_end ItemStorageMenuPrint - - thumb_func_start ItemStorageMenuProcessInput -ItemStorageMenuProcessInput: @ 8139FD4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, r5, 0 - ldr r2, _08139FF4 @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08139FF8 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - b _0813A008 - .align 2, 0 -_08139FF4: .4byte gMain -_08139FF8: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0813A024 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 -_0813A008: - bl MoveMenuCursor - ldr r4, _0813A020 @ =gUnknown_08406288 - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 22 - adds r0, r4 - ldr r0, [r0] - bl ItemStorageMenuPrint - b _0813A06C - .align 2, 0 -_0813A020: .4byte gUnknown_08406288 -_0813A024: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0813A050 - movs r0, 0x5 - bl PlaySE - ldr r4, _0813A04C @ =gUnknown_084062C0 - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 21 - adds r4, 0x4 - adds r0, r4 - ldr r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 - b _0813A06C - .align 2, 0 -_0813A04C: .4byte gUnknown_084062C0 -_0813A050: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0813A06C - bl sub_8072DEC - movs r0, 0x5 - bl PlaySE - ldr r0, _0813A074 @ =gUnknown_084062C0 - ldr r1, [r0, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 -_0813A06C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813A074: .4byte gUnknown_084062C0 - thumb_func_end ItemStorageMenuProcessInput - - thumb_func_start Task_ItemStorage_Deposit -Task_ItemStorage_Deposit: @ 813A078 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0813A09C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0813A094 - bl sub_80A6A30 - adds r0, r4, 0 - bl DestroyTask -_0813A094: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813A09C: .4byte gPaletteFade - thumb_func_end Task_ItemStorage_Deposit - - thumb_func_start ItemStorage_Deposit -ItemStorage_Deposit: @ 813A0A0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0813A0C0 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _0813A0C4 @ =Task_ItemStorage_Deposit - str r0, [r1] - movs r0, 0x1 - movs r1, 0 - bl fade_screen - pop {r0} - bx r0 - .align 2, 0 -_0813A0C0: .4byte gTasks -_0813A0C4: .4byte Task_ItemStorage_Deposit - thumb_func_end ItemStorage_Deposit - - thumb_func_start sub_813A0C8 -sub_813A0C8: @ 813A0C8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_807D770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0813A0E8 - ldr r0, _0813A0F0 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0813A0F4 @ =ItemStorageMenuProcessInput - str r0, [r1] -_0813A0E8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813A0F0: .4byte gTasks -_0813A0F4: .4byte ItemStorageMenuProcessInput - thumb_func_end sub_813A0C8 - - thumb_func_start sub_813A0F8 -sub_813A0F8: @ 813A0F8 - push {lr} - bl MenuDisplayMessageBox - movs r0, 0x1 - bl InitItemStorageMenu - ldr r0, _0813A114 @ =sub_813A0C8 - movs r1, 0 - bl CreateTask - bl pal_fill_black - pop {r0} - bx r0 - .align 2, 0 -_0813A114: .4byte sub_813A0C8 - thumb_func_end sub_813A0F8 - - thumb_func_start ItemStorage_Withdraw -ItemStorage_Withdraw: @ 813A118 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r6, r0, 3 - ldr r7, _0813A174 @ =gTasks + 0x8 - adds r4, r6, r7 - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0xB - movs r3, 0x9 - bl MenuZeroFillWindowRect - bl CountUsedPCItemSlots - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x4] - cmp r0, 0 - beq _0813A17C - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r0, 0 - strh r0, [r4, 0xC] - strh r0, [r4] - strh r0, [r4, 0x2] - adds r0, r5, 0 - bl sub_813A240 - adds r0, r5, 0 - movs r1, 0 - bl sub_813AE6C - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0813A178 @ =sub_813A280 - str r1, [r0] - b _0813A188 - .align 2, 0 -_0813A174: .4byte gTasks + 0x8 -_0813A178: .4byte sub_813A280 -_0813A17C: - ldr r1, _0813A190 @ =gOtherText_NoItems - ldr r2, _0813A194 @ =PlayerPC_ItemStorage - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_0813A188: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813A190: .4byte gOtherText_NoItems -_0813A194: .4byte PlayerPC_ItemStorage - thumb_func_end ItemStorage_Withdraw - - thumb_func_start ItemStorage_Toss -ItemStorage_Toss: @ 813A198 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r6, r0, 3 - ldr r7, _0813A1F8 @ =gTasks + 0x8 - adds r4, r6, r7 - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0xB - movs r3, 0x9 - bl MenuZeroFillWindowRect - bl CountUsedPCItemSlots - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x4] - cmp r0, 0 - beq _0813A200 - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r0, 0x2 - strh r0, [r4, 0xC] - movs r0, 0 - strh r0, [r4] - strh r0, [r4, 0x2] - adds r0, r5, 0 - bl sub_813A240 - adds r0, r5, 0 - movs r1, 0x2 - bl sub_813AE6C - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0813A1FC @ =sub_813A280 - str r1, [r0] - b _0813A20C - .align 2, 0 -_0813A1F8: .4byte gTasks + 0x8 -_0813A1FC: .4byte sub_813A280 -_0813A200: - ldr r1, _0813A214 @ =gOtherText_NoItems - ldr r2, _0813A218 @ =PlayerPC_ItemStorage - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_0813A20C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813A214: .4byte gOtherText_NoItems -_0813A218: .4byte PlayerPC_ItemStorage - thumb_func_end ItemStorage_Toss - - thumb_func_start ItemStorage_Exit -ItemStorage_Exit: @ 813A21C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0xB - movs r3, 0x9 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl ReshowPlayerPC - pop {r4} - pop {r0} - bx r0 - thumb_func_end ItemStorage_Exit - - thumb_func_start sub_813A240 -sub_813A240: @ 813A240 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _0813A260 @ =gTasks + 0x8 - adds r1, r0 - ldrh r2, [r1, 0x4] - movs r3, 0x4 - ldrsh r0, [r1, r3] - cmp r0, 0x7 - ble _0813A264 - movs r0, 0x8 - b _0813A266 - .align 2, 0 -_0813A260: .4byte gTasks + 0x8 -_0813A264: - adds r0, r2, 0x1 -_0813A266: - strh r0, [r1, 0x8] - ldr r1, _0813A274 @ =0x0201fe00 - ldrb r0, [r1, 0x3] - cmp r0, 0x7 - bls _0813A278 - movs r0, 0x8 - b _0813A27A - .align 2, 0 -_0813A274: .4byte 0x0201fe00 -_0813A278: - adds r0, 0x1 -_0813A27A: - strb r0, [r1, 0x1] - pop {r0} - bx r0 - thumb_func_end sub_813A240 - - thumb_func_start sub_813A280 -sub_813A280: @ 813A280 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0813A2DC @ =gTasks + 0x8 - adds r4, r0, r1 - ldr r2, _0813A2E0 @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0813A306 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0813A2E4 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - ldrh r1, [r4, 0x2] - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r2, 0x12 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0813A2CC - b _0813A460 -_0813A2CC: - lsls r0, r1, 16 - asrs r1, r0, 16 - movs r2, 0x4 - ldrsh r0, [r4, r2] - cmp r1, r0 - beq _0813A34C - b _0813A358 - .align 2, 0 -_0813A2DC: .4byte gTasks + 0x8 -_0813A2E0: .4byte gMain -_0813A2E4: - movs r1, 0x2 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0813A2EE - b _0813A460 -_0813A2EE: - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4, 0x2] - subs r0, 0x1 - strh r0, [r4, 0x2] - adds r0, r5, 0 - bl sub_813AE0C - movs r2, 0x12 - ldrsh r0, [r4, r2] - b _0813A394 -_0813A306: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0813A3A0 - movs r0, 0 - ldrsh r1, [r4, r0] - movs r2, 0x8 - ldrsh r0, [r4, r2] - subs r0, 0x1 - cmp r1, r0 - beq _0813A370 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - ldrh r1, [r4, 0x2] - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r2, 0x12 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0813A340 - b _0813A460 -_0813A340: - lsls r0, r1, 16 - asrs r1, r0, 16 - movs r2, 0x4 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _0813A358 -_0813A34C: - ldr r0, _0813A354 @ =0x0000ffff - bl sub_813AD58 - b _0813A460 - .align 2, 0 -_0813A354: .4byte 0x0000ffff -_0813A358: - ldr r0, _0813A36C @ =gSaveBlock1 - lsls r1, 2 - adds r1, r0 - movs r0, 0x93 - lsls r0, 3 - adds r1, r0 - ldrh r0, [r1] - bl sub_813AD58 - b _0813A460 - .align 2, 0 -_0813A36C: .4byte gSaveBlock1 -_0813A370: - movs r2, 0x2 - ldrsh r0, [r4, r2] - adds r0, r1 - movs r2, 0x4 - ldrsh r1, [r4, r2] - cmp r0, r1 - beq _0813A460 - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - adds r0, r5, 0 - bl sub_813AE0C - movs r1, 0x12 - ldrsh r0, [r4, r1] -_0813A394: - cmp r0, 0 - beq _0813A460 - movs r0, 0 - bl MoveMenuCursor - b _0813A460 -_0813A3A0: - ldrh r1, [r2, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0813A3F0 - movs r2, 0x12 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _0813A3E8 - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r2, 0x4 - ldrsh r1, [r4, r2] - cmp r0, r1 - beq _0813A3DC - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - strh r0, [r4, 0x12] - ldrh r0, [r4] - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r4, 0x10] - ldr r0, _0813A3E4 @ =0x0000fff7 - bl sub_813AD58 -_0813A3DC: - adds r0, r5, 0 - bl sub_813ABE8 - b _0813A460 - .align 2, 0 -_0813A3E4: .4byte 0x0000fff7 -_0813A3E8: - movs r0, 0x5 - bl PlaySE - b _0813A420 -_0813A3F0: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0813A430 - movs r0, 0x5 - bl PlaySE - movs r2, 0x12 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _0813A420 - movs r1, 0x2 - ldrsh r0, [r4, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r2, 0x4 - ldrsh r1, [r4, r2] - cmp r0, r1 - beq _0813A44A - adds r0, r5, 0 - bl sub_813A4B4 - b _0813A460 -_0813A420: - adds r0, r5, 0 - movs r1, 0 - bl sub_813AA30 - adds r0, r5, 0 - bl sub_813AE0C - b _0813A460 -_0813A430: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0813A460 - movs r0, 0x5 - bl PlaySE - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0813A452 - bl sub_8072DEC -_0813A44A: - adds r0, r5, 0 - bl sub_813A468 - b _0813A460 -_0813A452: - adds r0, r6, 0 - movs r1, 0x1 - bl sub_813AA30 - adds r0, r6, 0 - bl sub_813AE0C -_0813A460: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_813A280 - - thumb_func_start sub_813A468 -sub_813A468: @ 813A468 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - bl BuyMenuFreeMemory - movs r0, 0 - bl DestroyVerticalScrollIndicator - movs r0, 0x1 - bl DestroyVerticalScrollIndicator - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - bl MenuDisplayMessageBox - ldr r0, _0813A4AC @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldrb r0, [r4, 0x14] - bl InitItemStorageMenu - ldr r0, _0813A4B0 @ =ItemStorageMenuProcessInput - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813A4AC: .4byte gTasks -_0813A4B0: .4byte ItemStorageMenuProcessInput - thumb_func_end sub_813A468 - - thumb_func_start sub_813A4B4 -sub_813A4B4: @ 813A4B4 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _0813A500 @ =gTasks + 0x8 - adds r4, r0, r1 - ldrb r0, [r4, 0x2] - ldrb r1, [r4] - adds r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0 - bl sub_80F996C - movs r0, 0x1 - bl sub_80F996C - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0813A518 - ldr r1, _0813A504 @ =gSaveBlock1 - lsls r0, r5, 2 - adds r0, r1 - ldr r1, _0813A508 @ =0x0000049a - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0x1 - bne _0813A50C - strh r0, [r4, 0x6] - adds r0, r6, 0 - bl sub_813A6FC - b _0813A570 - .align 2, 0 -_0813A500: .4byte gTasks + 0x8 -_0813A504: .4byte gSaveBlock1 -_0813A508: .4byte 0x0000049a -_0813A50C: - ldr r0, _0813A514 @ =0x0000fffe - bl sub_813AD58 - b _0813A542 - .align 2, 0 -_0813A514: .4byte 0x0000fffe -_0813A518: - ldr r1, _0813A534 @ =gSaveBlock1 - lsls r0, r5, 2 - adds r0, r1 - ldr r1, _0813A538 @ =0x0000049a - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0x1 - bne _0813A53C - strh r0, [r4, 0x6] - adds r0, r6, 0 - bl sub_813A794 - b _0813A570 - .align 2, 0 -_0813A534: .4byte gSaveBlock1 -_0813A538: .4byte 0x0000049a -_0813A53C: - ldr r0, _0813A578 @ =0x0000fffc - bl sub_813AD58 -_0813A542: - movs r0, 0x1 - strh r0, [r4, 0x6] - movs r0, 0x6 - movs r1, 0x8 - movs r2, 0xD - movs r3, 0xB - bl MenuDrawTextWindow - ldrh r0, [r4, 0x6] - movs r1, 0x3 - str r1, [sp] - movs r1, 0x1 - movs r2, 0x8 - movs r3, 0x9 - bl sub_80A418C - ldr r1, _0813A57C @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _0813A580 @ =sub_813A584 - str r1, [r0] -_0813A570: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813A578: .4byte 0x0000fffc -_0813A57C: .4byte gTasks -_0813A580: .4byte sub_813A584 - thumb_func_end sub_813A4B4 - thumb_func_start sub_813A584 sub_813A584: @ 813A584 push {r4-r7,lr} @@ -2574,7 +1395,7 @@ _0813B036: mov r0, r8 bl StringCopy mov r0, r8 - bl sub_814A568 + bl SanitizeNameString mov r0, r8 movs r1, 0x15 adds r2, r5, 0 @@ -2862,7 +1683,7 @@ sub_813B294: @ 813B294 adds r0, r4, 0 bl StringCopy adds r0, r4, 0 - bl sub_814A568 + bl SanitizeNameString ldr r4, _0813B2F4 @ =gStringVar4 ldr r1, _0813B2F8 @ =gOtherText_WhatWillYouDoMail adds r0, r4, 0 @@ -3079,7 +1900,7 @@ sub_813B454: @ 813B454 adds r0, r1 ldr r1, _0813B49C @ =sub_813B4F0 movs r2, 0x1 - bl sub_80F890C + bl HandleReadMail adds r0, r4, 0 bl DestroyTask _0813B488: diff --git a/asm/pokeball.s b/asm/pokeball.s new file mode 100644 index 000000000..57e4a5a21 --- /dev/null +++ b/asm/pokeball.s @@ -0,0 +1,2787 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_8046400 +sub_8046400: @ 8046400 + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 24 + lsrs r5, 24 + ldr r1, _08046450 @ =gUnknown_02024E6D + movs r0, 0x1 + strb r0, [r1] + ldr r6, _08046454 @ =gUnknown_02024A60 + ldrb r1, [r6] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _08046458 @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r2, 0x8 + orrs r1, r2 + strb r1, [r0] + ldr r0, _0804645C @ =sub_8046464 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08046460 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0xA] + strh r5, [r1, 0xC] + ldrb r0, [r6] + strh r0, [r1, 0xE] + movs r0, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08046450: .4byte gUnknown_02024E6D +_08046454: .4byte gUnknown_02024A60 +_08046458: .4byte 0x02017810 +_0804645C: .4byte sub_8046464 +_08046460: .4byte gTasks + thumb_func_end sub_8046400 + + thumb_func_start sub_8046464 +sub_8046464: @ 8046464 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + movs r0, 0 + str r0, [sp] + ldr r1, _08046498 @ =gTasks + mov r2, r10 + lsls r0, r2, 2 + add r0, r10 + lsls r0, 3 + adds r1, r0, r1 + ldrh r2, [r1, 0x8] + movs r3, 0x8 + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _0804649C + adds r0, r2, 0x1 + strh r0, [r1, 0x8] + b _08046616 + .align 2, 0 +_08046498: .4byte gTasks +_0804649C: + ldrh r0, [r1, 0xC] + mov r8, r0 + ldrb r5, [r1, 0xE] + adds r0, r5, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080464C8 + ldr r1, _080464C0 @ =gUnknown_02024A6A + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080464C4 @ =gEnemyParty + b _080464D6 + .align 2, 0 +_080464C0: .4byte gUnknown_02024A6A +_080464C4: .4byte gEnemyParty +_080464C8: + ldr r1, _08046544 @ =gUnknown_02024A6A + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08046548 @ =gPlayerParty +_080464D6: + adds r0, r1 + movs r1, 0x26 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + bl ball_number_to_ball_processing_index + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_80478DC + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 3 + ldr r1, _0804654C @ =gSpriteTemplate_820AAB4 + adds r0, r1 + movs r1, 0x20 + movs r2, 0x50 + movs r3, 0x1D + bl CreateSprite + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, _08046550 @ =gSprites + mov r9, r2 + lsls r0, r7, 4 + adds r0, r7 + lsls r6, r0, 2 + adds r4, r6, r2 + movs r0, 0x80 + strh r0, [r4, 0x2E] + movs r3, 0 + strh r3, [r4, 0x30] + mov r0, r8 + strh r0, [r4, 0x3C] + mov r2, r8 + cmp r2, 0xFE + beq _0804655C + cmp r2, 0xFF + bne _08046598 + ldr r0, _08046554 @ =gUnknown_02024C08 + strb r5, [r0] + movs r0, 0x18 + strh r0, [r4, 0x20] + movs r0, 0x44 + strh r0, [r4, 0x22] + mov r0, r9 + adds r0, 0x1C + adds r0, r6, r0 + ldr r1, _08046558 @ =sub_8047074 + str r1, [r0] + b _080465A6 + .align 2, 0 +_08046544: .4byte gUnknown_02024A6A +_08046548: .4byte gPlayerParty +_0804654C: .4byte gSpriteTemplate_820AAB4 +_08046550: .4byte gSprites +_08046554: .4byte gUnknown_02024C08 +_08046558: .4byte sub_8047074 +_0804655C: + adds r0, r5, 0 + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x18 + strh r0, [r4, 0x22] + ldr r0, _08046590 @ =gUnknown_02024C08 + strb r5, [r0] + movs r3, 0 + strh r3, [r4, 0x2E] + mov r0, r9 + adds r0, 0x1C + adds r0, r6, r0 + ldr r1, _08046594 @ =sub_8047254 + str r1, [r0] + b _080465A6 + .align 2, 0 +_08046590: .4byte gUnknown_02024C08 +_08046594: .4byte sub_8047254 +_08046598: + movs r0, 0x1 + bl battle_get_side_with_given_state + ldr r1, _080465C4 @ =gUnknown_02024C08 + strb r0, [r1] + movs r0, 0x1 + str r0, [sp] +_080465A6: + ldr r0, _080465C8 @ =gSprites + lsls r1, r7, 4 + adds r1, r7 + lsls r1, 2 + adds r4, r1, r0 + ldr r5, _080465C4 @ =gUnknown_02024C08 + ldrb r0, [r5] + strh r0, [r4, 0x3A] + ldr r2, [sp] + cmp r2, 0 + bne _080465CC + mov r0, r10 + bl DestroyTask + b _08046616 + .align 2, 0 +_080465C4: .4byte gUnknown_02024C08 +_080465C8: .4byte gSprites +_080465CC: + movs r0, 0x22 + strh r0, [r4, 0x2E] + ldrb r0, [r5] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x10 + strh r0, [r4, 0x36] + ldr r0, _08046628 @ =0x0000ffd8 + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_80786EC + mov r3, r10 + strh r3, [r4, 0x6] + ldr r1, _0804662C @ =gTasks + mov r2, r10 + lsls r0, r2, 2 + add r0, r10 + lsls r0, 3 + adds r0, r1 + ldrb r1, [r5] + strh r1, [r0, 0x10] + ldr r1, _08046630 @ =TaskDummy + str r1, [r0] + movs r0, 0x3D + bl PlaySE +_08046616: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08046628: .4byte 0x0000ffd8 +_0804662C: .4byte gTasks +_08046630: .4byte TaskDummy + thumb_func_end sub_8046464 + + thumb_func_start objc_0804ABD4 +objc_0804ABD4: @ 8046634 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r7, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080466D4 + ldrb r6, [r7, 0x6] + ldr r1, _080466E0 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldrb r5, [r0, 0x10] + ldrb r0, [r0, 0xC] + mov r8, r0 + adds r0, r7, 0 + movs r1, 0x1 + bl StartSpriteAnim + adds r2, r7, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r7, 0x24] + ldrh r1, [r7, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r7, 0x20] + ldrh r0, [r7, 0x26] + ldrh r2, [r7, 0x22] + adds r0, r2 + strh r0, [r7, 0x22] + strh r1, [r7, 0x24] + strh r1, [r7, 0x26] + strh r1, [r7, 0x38] + adds r0, r5, 0 + bl sub_8047978 + lsls r0, 16 + lsrs r0, 16 + bl ball_number_to_ball_processing_index + adds r4, r0, 0 + ldrh r0, [r7, 0x20] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r7, 0x22] + subs r1, 0x5 + lsls r1, 24 + lsrs r1, 24 + lsls r4, 24 + lsrs r4, 24 + str r4, [sp] + movs r2, 0x1 + movs r3, 0x1C + bl sub_814086C + movs r0, 0 + adds r1, r5, 0 + movs r2, 0xE + adds r3, r4, 0 + bl sub_8141314 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r7, 0x2E] + strh r5, [r7, 0x3A] + mov r0, r8 + strh r0, [r7, 0x3C] + adds r0, r6, 0 + bl DestroyTask + ldr r0, _080466E4 @ =sub_80466E8 + str r0, [r7, 0x1C] +_080466D4: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080466E0: .4byte gTasks +_080466E4: .4byte sub_80466E8 + thumb_func_end objc_0804ABD4 + + thumb_func_start sub_80466E8 +sub_80466E8: @ 80466E8 + ldr r1, _080466F0 @ =sub_80466F4 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080466F0: .4byte sub_80466F4 + thumb_func_end sub_80466E8 + + thumb_func_start sub_80466F4 +sub_80466F4: @ 80466F4 + push {r4-r7,lr} + adds r6, r0, 0 + ldrh r0, [r6, 0x38] + adds r0, 0x1 + movs r7, 0 + strh r0, [r6, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _0804674E + strh r7, [r6, 0x38] + ldr r0, _08046754 @ =sub_8046760 + str r0, [r6, 0x1C] + ldr r5, _08046758 @ =gUnknown_02024BE0 + movs r1, 0x3A + ldrsh r0, [r6, r1] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _0804675C @ =gSprites + adds r0, r4 + movs r1, 0x2 + bl StartSpriteAffineAnim + movs r1, 0x3A + ldrsh r0, [r6, r1] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl AnimateSprite + movs r1, 0x3A + ldrsh r0, [r6, r1] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r7, [r0, 0x30] +_0804674E: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08046754: .4byte sub_8046760 +_08046758: .4byte gUnknown_02024BE0 +_0804675C: .4byte gSprites + thumb_func_end sub_80466F4 + + thumb_func_start sub_8046760 +sub_8046760: @ 8046760 + push {r4-r6,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB + bne _08046778 + movs r0, 0x3C + bl PlaySE +_08046778: + ldr r6, _080467C4 @ =gSprites + ldr r5, _080467C8 @ =gUnknown_02024BE0 + movs r1, 0x3A + ldrsh r0, [r4, r1] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r6 + adds r0, r1, 0 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 26 + cmp r0, 0 + bge _080467D0 + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAnim + movs r2, 0x3A + ldrsh r0, [r4, r2] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + movs r0, 0 + strh r0, [r4, 0x38] + ldr r0, _080467CC @ =sub_80467F8 + str r0, [r4, 0x1C] + b _080467F0 + .align 2, 0 +_080467C4: .4byte gSprites +_080467C8: .4byte gUnknown_02024BE0 +_080467CC: .4byte sub_80467F8 +_080467D0: + ldrh r0, [r1, 0x30] + adds r0, 0x60 + strh r0, [r1, 0x30] + movs r1, 0x3A + ldrsh r0, [r4, r1] + adds r0, r5 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + movs r2, 0x30 + ldrsh r0, [r1, r2] + negs r0, r0 + asrs r0, 8 + strh r0, [r1, 0x26] +_080467F0: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8046760 + + thumb_func_start sub_80467F8 +sub_80467F8: @ 80467F8 + push {r4,lr} + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08046840 + ldrh r0, [r4, 0x38] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _08046840 + strh r1, [r4, 0x34] + movs r0, 0x20 + strh r0, [r4, 0x36] + strh r1, [r4, 0x38] + movs r0, 0 + movs r1, 0x20 + bl Cos + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + movs r0, 0x36 + ldrsh r1, [r4, r0] + movs r0, 0 + bl Cos + negs r0, r0 + strh r0, [r4, 0x26] + ldr r0, _08046848 @ =sub_804684C + str r0, [r4, 0x1C] +_08046840: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08046848: .4byte sub_804684C + thumb_func_end sub_80467F8 + + thumb_func_start sub_804684C +sub_804684C: @ 804684C + push {r4,r5,lr} + adds r4, r0, 0 + movs r5, 0 + ldrh r0, [r4, 0x34] + movs r1, 0xFF + ands r1, r0 + cmp r1, 0 + beq _08046862 + cmp r1, 0x1 + beq _080468D6 + b _08046902 +_08046862: + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl Cos + negs r0, r0 + strh r0, [r4, 0x26] + ldrh r1, [r4, 0x38] + adds r1, 0x4 + ldrh r2, [r4, 0x34] + lsls r0, r2, 16 + asrs r0, 24 + adds r1, r0 + strh r1, [r4, 0x38] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x3F + ble _08046902 + ldrh r0, [r4, 0x36] + subs r0, 0xA + strh r0, [r4, 0x36] + ldr r1, _080468AC @ =0x00000101 + adds r0, r2, r1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 24 + cmp r0, 0x4 + bne _0804689E + movs r5, 0x1 +_0804689E: + cmp r0, 0x2 + beq _080468BE + cmp r0, 0x2 + bgt _080468B0 + cmp r0, 0x1 + beq _080468B6 + b _080468CE + .align 2, 0 +_080468AC: .4byte 0x00000101 +_080468B0: + cmp r0, 0x3 + beq _080468C6 + b _080468CE +_080468B6: + movs r0, 0x38 + bl PlaySE + b _08046902 +_080468BE: + movs r0, 0x39 + bl PlaySE + b _08046902 +_080468C6: + movs r0, 0x3A + bl PlaySE + b _08046902 +_080468CE: + movs r0, 0x3B + bl PlaySE + b _08046902 +_080468D6: + movs r2, 0x38 + ldrsh r0, [r4, r2] + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl Cos + negs r0, r0 + strh r0, [r4, 0x26] + ldrh r1, [r4, 0x38] + subs r1, 0x4 + ldrh r2, [r4, 0x34] + lsls r0, r2, 16 + asrs r0, 24 + subs r1, r0 + strh r1, [r4, 0x38] + lsls r1, 16 + cmp r1, 0 + bgt _08046902 + strh r5, [r4, 0x38] + ldr r0, _08046928 @ =0xffffff00 + ands r0, r2 + strh r0, [r4, 0x34] +_08046902: + cmp r5, 0 + beq _0804693A + movs r5, 0 + strh r5, [r4, 0x34] + movs r0, 0x40 + movs r1, 0x20 + bl Cos + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + strh r5, [r4, 0x26] + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _08046930 + ldr r0, _0804692C @ =sub_8046C78 + str r0, [r4, 0x1C] + b _0804693A + .align 2, 0 +_08046928: .4byte 0xffffff00 +_0804692C: .4byte sub_8046C78 +_08046930: + ldr r0, _08046940 @ =sub_8046944 + str r0, [r4, 0x1C] + movs r0, 0x1 + strh r0, [r4, 0x36] + strh r5, [r4, 0x38] +_0804693A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08046940: .4byte sub_8046944 + thumb_func_end sub_804684C + + thumb_func_start sub_8046944 +sub_8046944: @ 8046944 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + bne _08046978 + movs r0, 0 + strh r0, [r4, 0x34] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r0, _08046980 @ =sub_8046984 + str r0, [r4, 0x1C] + movs r0, 0x17 + bl PlaySE +_08046978: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08046980: .4byte sub_8046984 + thumb_func_end sub_8046944 + + thumb_func_start sub_8046984 +sub_8046984: @ 8046984 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x34] + movs r1, 0xFF + ands r1, r0 + cmp r1, 0x4 + bhi _08046A84 + lsls r0, r1, 2 + ldr r1, _0804699C @ =_080469A0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804699C: .4byte _080469A0 + .align 2, 0 +_080469A0: + .4byte _080469B4 + .4byte _080469E6 + .4byte _080469B4 + .4byte _08046A3A + .4byte _08046A84 +_080469B4: + ldrh r0, [r4, 0x36] + ldrh r2, [r4, 0x24] + adds r1, r0, r2 + strh r1, [r4, 0x24] + ldrh r1, [r4, 0x38] + adds r0, r1 + strh r0, [r4, 0x38] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x38] + adds r0, 0x3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x6 + bls _08046ACA + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + movs r0, 0 + strh r0, [r4, 0x38] + b _08046ACA +_080469E6: + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _08046A2C + movs r0, 0 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x36] + negs r0, r0 + strh r0, [r4, 0x36] + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + movs r2, 0x36 + ldrsh r0, [r4, r2] + cmp r0, 0 + bge _08046A22 + adds r0, r4, 0 + movs r1, 0x2 + bl ChangeSpriteAffineAnim + b _08046ACA +_08046A22: + adds r0, r4, 0 + movs r1, 0x1 + bl ChangeSpriteAffineAnim + b _08046ACA +_08046A2C: + adds r0, r4, 0 + adds r0, 0x2C + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] + b _08046ACA +_08046A3A: + movs r1, 0x80 + lsls r1, 1 + adds r0, r1, 0 + ldrh r2, [r4, 0x34] + adds r0, r2 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 24 + movs r2, 0x3C + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _08046A5C + ldr r0, _08046A58 @ =sub_8046C78 + str r0, [r4, 0x1C] + b _08046ACA + .align 2, 0 +_08046A58: .4byte sub_8046C78 +_08046A5C: + cmp r1, 0x4 + bne _08046A70 + cmp r0, 0x3 + bne _08046A70 + ldr r0, _08046A6C @ =sub_8046E7C + str r0, [r4, 0x1C] + b _08046A76 + .align 2, 0 +_08046A6C: .4byte sub_8046E7C +_08046A70: + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] +_08046A76: + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + b _08046ACA +_08046A84: + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + bne _08046ACA + movs r0, 0 + strh r0, [r4, 0x38] + ldrh r1, [r4, 0x34] + ldr r0, _08046AB8 @ =0xffffff00 + ands r0, r1 + strh r0, [r4, 0x34] + adds r0, r4, 0 + movs r1, 0x3 + bl StartSpriteAffineAnim + movs r1, 0x36 + ldrsh r0, [r4, r1] + cmp r0, 0 + bge _08046ABC + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + b _08046AC4 + .align 2, 0 +_08046AB8: .4byte 0xffffff00 +_08046ABC: + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_08046AC4: + movs r0, 0x17 + bl PlaySE +_08046ACA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8046984 + + thumb_func_start sub_8046AD0 +sub_8046AD0: @ 8046AD0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _08046AFC @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrb r6, [r0, 0xC] + ldrb r3, [r0, 0xA] + ldrh r5, [r0, 0x8] + movs r2, 0x26 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0x20 + bhi _08046B88 + lsls r0, 2 + ldr r1, _08046B00 @ =_08046B04 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08046AFC: .4byte gTasks +_08046B00: .4byte _08046B04 + .align 2, 0 +_08046B04: + .4byte _08046B88 + .4byte _08046BA6 + .4byte _08046BB2 + .4byte _08046BF6 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046BD0 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046B88 + .4byte _08046C08 + .4byte _08046C20 + .4byte _08046C48 +_08046B88: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r2 + ldrh r2, [r1, 0x18] + movs r3, 0x18 + ldrsh r0, [r1, r3] + cmp r0, 0x2 + bgt _08046BA0 + adds r0, r2, 0x1 + strh r0, [r1, 0x18] + b _08046C72 +_08046BA0: + adds r0, r6, 0x1 + strh r0, [r1, 0x26] + b _08046C72 +_08046BA6: + lsls r1, r3, 24 + asrs r1, 24 + adds r0, r5, 0 + bl PlayCry1 + b _08046BEE +_08046BB2: + bl StopCryAndClearCrySongs + ldr r1, _08046BCC @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0x3 + strh r1, [r0, 0x1C] + movs r1, 0x14 + strh r1, [r0, 0x26] + b _08046C72 + .align 2, 0 +_08046BCC: .4byte gTasks +_08046BD0: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r2 + ldrh r2, [r1, 0x1C] + movs r6, 0x1C + ldrsh r0, [r1, r6] + cmp r0, 0 + bne _08046C5A + lsls r1, r3, 24 + asrs r1, 24 + adds r0, r5, 0 + movs r2, 0x1 + bl PlayCry4 +_08046BEE: + adds r0, r4, 0 + bl DestroyTask + b _08046C72 +_08046BF6: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r2 + movs r1, 0x6 + strh r1, [r0, 0x1C] + movs r1, 0x1E + strh r1, [r0, 0x26] + b _08046C72 +_08046C08: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r2 + ldrh r2, [r1, 0x1C] + movs r3, 0x1C + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _08046C5A + ldrh r0, [r1, 0x26] + adds r0, 0x1 + strh r0, [r1, 0x26] +_08046C20: + bl IsCryPlayingOrClearCrySongs + lsls r0, 24 + cmp r0, 0 + bne _08046C72 + bl StopCryAndClearCrySongs + ldr r0, _08046C44 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0x3 + strh r0, [r1, 0x1C] + ldrh r0, [r1, 0x26] + adds r0, 0x1 + strh r0, [r1, 0x26] + b _08046C72 + .align 2, 0 +_08046C44: .4byte gTasks +_08046C48: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r2 + ldrh r2, [r1, 0x1C] + movs r6, 0x1C + ldrsh r0, [r1, r6] + cmp r0, 0 + beq _08046C60 +_08046C5A: + subs r0, r2, 0x1 + strh r0, [r1, 0x1C] + b _08046C72 +_08046C60: + lsls r1, r3, 24 + asrs r1, 24 + adds r0, r5, 0 + movs r2, 0 + bl PlayCry4 + adds r0, r4, 0 + bl DestroyTask +_08046C72: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8046AD0 + + thumb_func_start sub_8046C78 +sub_8046C78: @ 8046C78 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r6, r0, 0 + ldrh r0, [r6, 0x3A] + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r6, 0 + movs r1, 0x1 + bl StartSpriteAnim + adds r0, r5, 0 + bl sub_8047978 + lsls r0, 16 + lsrs r0, 16 + bl ball_number_to_ball_processing_index + adds r4, r0, 0 + ldrh r0, [r6, 0x20] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x22] + subs r1, 0x5 + lsls r1, 24 + lsrs r1, 24 + lsls r4, 24 + lsrs r4, 24 + str r4, [sp] + movs r2, 0x1 + movs r3, 0x1C + bl sub_814086C + ldrh r1, [r6, 0x3A] + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x1 + movs r2, 0xE + adds r3, r4, 0 + bl sub_8141314 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x2E] + ldr r0, _08046D0C @ =sub_8046E9C + str r0, [r6, 0x1C] + ldr r0, _08046D10 @ =gMain + ldr r1, _08046D14 @ =0x0000043d + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _08046CE8 + b _08046E1C +_08046CE8: + adds r0, r5, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _08046D20 + ldr r1, _08046D18 @ =gUnknown_02024A6A + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _08046D1C @ =gEnemyParty + adds r0, r1, r0 + movs r3, 0x19 + mov r8, r3 + b _08046D34 + .align 2, 0 +_08046D0C: .4byte sub_8046E9C +_08046D10: .4byte gMain +_08046D14: .4byte 0x0000043d +_08046D18: .4byte gUnknown_02024A6A +_08046D1C: .4byte gEnemyParty +_08046D20: + ldr r1, _08046D90 @ =gUnknown_02024A6A + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _08046D94 @ =gPlayerParty + adds r0, r1, r0 + movs r1, 0xE7 + mov r8, r1 +_08046D34: + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r7, r0, 16 + movs r0, 0 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + beq _08046D5A + movs r0, 0x1 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + bne _08046DAE +_08046D5A: + bl IsDoubleBattle + lsls r0, 24 + cmp r0, 0 + beq _08046DAE + ldr r0, _08046D98 @ =0x02017840 + ldrb r1, [r0, 0x9] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08046DAE + ldr r0, _08046D9C @ =gBattleTypeFlags + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08046DA4 + bl IsBGMPlaying + lsls r0, 24 + cmp r0, 0 + beq _08046DAE + ldr r0, _08046DA0 @ =gMPlay_BGM + bl m4aMPlayStop + b _08046DAE + .align 2, 0 +_08046D90: .4byte gUnknown_02024A6A +_08046D94: .4byte gPlayerParty +_08046D98: .4byte 0x02017840 +_08046D9C: .4byte gBattleTypeFlags +_08046DA0: .4byte gMPlay_BGM +_08046DA4: + ldr r0, _08046DC8 @ =gMPlay_BGM + ldr r1, _08046DCC @ =0x0000ffff + movs r2, 0x80 + bl m4aMPlayVolumeControl +_08046DAE: + bl IsDoubleBattle + lsls r0, 24 + cmp r0, 0 + beq _08046DC4 + ldr r0, _08046DD0 @ =0x02017840 + ldrb r1, [r0, 0x9] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08046DD4 +_08046DC4: + movs r4, 0 + b _08046DF6 + .align 2, 0 +_08046DC8: .4byte gMPlay_BGM +_08046DCC: .4byte 0x0000ffff +_08046DD0: .4byte 0x02017840 +_08046DD4: + movs r0, 0 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + beq _08046DF0 + movs r0, 0x1 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + bne _08046DF4 +_08046DF0: + movs r4, 0x1 + b _08046DF6 +_08046DF4: + movs r4, 0x2 +_08046DF6: + ldr r0, _08046E6C @ =sub_8046AD0 + movs r1, 0x3 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08046E70 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0 + strh r7, [r1, 0x8] + mov r3, r8 + lsls r0, r3, 24 + asrs r0, 24 + strh r0, [r1, 0xA] + strh r4, [r1, 0xC] + strh r2, [r1, 0x26] +_08046E1C: + ldr r5, _08046E74 @ =gUnknown_02024BE0 + movs r1, 0x3A + ldrsh r0, [r6, r1] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _08046E78 @ =gSprites + adds r0, r4 + movs r1, 0x1 + bl StartSpriteAffineAnim + movs r3, 0x3A + ldrsh r0, [r6, r3] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl AnimateSprite + movs r1, 0x3A + ldrsh r0, [r6, r1] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x80 + lsls r1, 5 + strh r1, [r0, 0x30] + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08046E6C: .4byte sub_8046AD0 +_08046E70: .4byte gTasks +_08046E74: .4byte gUnknown_02024BE0 +_08046E78: .4byte gSprites + thumb_func_end sub_8046C78 + + thumb_func_start sub_8046E7C +sub_8046E7C: @ 8046E7C + adds r3, r0, 0 + adds r3, 0x2C + ldrb r1, [r3] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r3] + ldr r1, _08046E98 @ =sub_8046FBC + str r1, [r0, 0x1C] + movs r1, 0 + strh r1, [r0, 0x34] + strh r1, [r0, 0x36] + strh r1, [r0, 0x38] + bx lr + .align 2, 0 +_08046E98: .4byte sub_8046FBC + thumb_func_end sub_8046E7C + + thumb_func_start sub_8046E9C +sub_8046E9C: @ 8046E9C + push {r4-r7,lr} + adds r5, r0, 0 + movs r7, 0 + ldrh r0, [r5, 0x3A] + lsls r0, 24 + lsrs r4, r0, 24 + ldr r6, _08046F00 @ =gSprites + ldr r0, _08046F04 @ =gUnknown_02024BE0 + adds r3, r4, r0 + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + adds r0, r5, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08046EDE + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_08046EDE: + ldrb r0, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + adds r0, r1, 0 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 26 + cmp r0, 0 + bge _08046F08 + adds r0, r1, 0 + movs r1, 0 + bl StartSpriteAffineAnim + movs r7, 0x1 + b _08046F24 + .align 2, 0 +_08046F00: .4byte gSprites +_08046F04: .4byte gUnknown_02024BE0 +_08046F08: + ldr r2, _08046FA8 @ =0xfffffee0 + adds r0, r2, 0 + ldrh r2, [r1, 0x30] + adds r0, r2 + strh r0, [r1, 0x30] + ldrb r0, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 24 + strh r0, [r1, 0x26] +_08046F24: + adds r0, r5, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08046FA0 + cmp r7, 0 + beq _08046FA0 + ldr r2, _08046FAC @ =gSprites + ldr r0, _08046FB0 @ =gUnknown_02024BE0 + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r2, 0 + movs r1, 0 + strh r1, [r0, 0x26] + ldr r0, _08046FB4 @ =gUnknown_02024E6D + strb r2, [r0] + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 2 + ldr r4, _08046FB8 @ =0x02017810 + adds r1, r4 + ldrb r2, [r1] + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + adds r0, r5, 0 + bl FreeSpriteOamMatrix + adds r0, r5, 0 + bl DestroySprite + movs r3, 0 + movs r5, 0x8 + adds r2, r4, 0 + movs r4, 0x3 +_08046F78: + ldrb r1, [r2] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _08046F84 + adds r3, 0x1 +_08046F84: + adds r2, 0xC + subs r4, 0x1 + cmp r4, 0 + bge _08046F78 + cmp r3, 0x4 + bne _08046FA0 + movs r4, 0 +_08046F92: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_804794C + adds r4, 0x1 + cmp r4, 0xB + ble _08046F92 +_08046FA0: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08046FA8: .4byte 0xfffffee0 +_08046FAC: .4byte gSprites +_08046FB0: .4byte gUnknown_02024BE0 +_08046FB4: .4byte gUnknown_02024E6D +_08046FB8: .4byte 0x02017810 + thumb_func_end sub_8046E9C + + thumb_func_start sub_8046FBC +sub_8046FBC: @ 8046FBC + push {r4-r7,lr} + adds r6, r0, 0 + ldrh r0, [r6, 0x3A] + lsls r0, 24 + lsrs r7, r0, 24 + ldrh r0, [r6, 0x36] + adds r0, 0x1 + strh r0, [r6, 0x36] + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0x28 + beq _08047056 + cmp r1, 0x5F + bne _08046FF4 + ldr r0, _08046FEC @ =gUnknown_02024E6D + movs r1, 0 + strb r1, [r0] + bl m4aMPlayAllStop + ldr r0, _08046FF0 @ =0x00000173 + bl PlaySE + b _08047056 + .align 2, 0 +_08046FEC: .4byte gUnknown_02024E6D +_08046FF0: .4byte 0x00000173 +_08046FF4: + ldr r0, _0804705C @ =0x0000013b + cmp r1, r0 + bne _08047056 + ldr r5, _08047060 @ =gSprites + ldr r4, _08047064 @ =gUnknown_02024BE0 + movs r1, 0x3A + ldrsh r0, [r6, r1] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + movs r1, 0x3A + ldrsh r0, [r6, r1] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl DestroySprite + adds r0, r6, 0 + bl DestroySpriteAndFreeResources + ldr r0, _08047068 @ =gMain + ldr r1, _0804706C @ =0x0000043d + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08047056 + lsls r1, r7, 1 + adds r1, r7 + lsls r1, 2 + ldr r0, _08047070 @ =0x02017810 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + strb r0, [r1] +_08047056: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804705C: .4byte 0x0000013b +_08047060: .4byte gSprites +_08047064: .4byte gUnknown_02024BE0 +_08047068: .4byte gMain +_0804706C: .4byte 0x0000043d +_08047070: .4byte 0x02017810 + thumb_func_end sub_8046FBC + + thumb_func_start sub_8047074 +sub_8047074: @ 8047074 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x19 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x3A] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x3A] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x18 + strh r0, [r4, 0x36] + ldr r0, _080470BC @ =0x0000ffe2 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x3A] + strh r0, [r4, 0x6] + adds r0, r4, 0 + bl sub_80786EC + ldr r0, _080470C0 @ =sub_80470C4 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080470BC: .4byte 0x0000ffe2 +_080470C0: .4byte sub_80470C4 + thumb_func_end sub_8047074 + + thumb_func_start sub_80470C4 +sub_80470C4: @ 80470C4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + ldrh r0, [r5, 0x3C] + movs r1, 0xFF + mov r8, r1 + lsrs r0, 8 + subs r0, 0x23 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2C + bhi _080471B8 + ldrh r1, [r5, 0x6] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + bne _08047126 + ldrh r0, [r5, 0x30] + movs r1, 0x1 + adds r6, r1, 0 + ands r6, r0 + ldrh r0, [r5, 0x32] + adds r7, r1, 0 + ands r7, r0 + movs r2, 0x30 + ldrsh r0, [r5, r2] + movs r1, 0x3 + bl __divsi3 + movs r1, 0x2 + negs r1, r1 + adds r4, r1, 0 + ands r0, r4 + orrs r6, r0 + strh r6, [r5, 0x30] + movs r2, 0x32 + ldrsh r0, [r5, r2] + movs r1, 0x3 + bl __divsi3 + ands r0, r4 + orrs r7, r0 + strh r7, [r5, 0x32] + adds r0, r5, 0 + movs r1, 0x4 + bl StartSpriteAffineAnim +_08047126: + ldrh r4, [r5, 0x2E] + adds r0, r5, 0 + bl sub_8078B5C + movs r1, 0x3A + ldrsh r0, [r5, r1] + movs r1, 0x3 + bl __divsi3 + adds r1, r0, 0 + ldrh r0, [r5, 0x3C] + adds r0, r1 + strh r0, [r5, 0x3C] + lsls r0, 16 + asrs r0, 24 + mov r2, r8 + ands r0, r2 + movs r2, 0x38 + ldrsh r1, [r5, r2] + bl Sin + ldrh r1, [r5, 0x26] + adds r0, r1 + strh r0, [r5, 0x26] + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + ldrh r1, [r5, 0x6] + adds r0, r1 + strh r0, [r5, 0x6] + lsls r0, 16 + lsrs r0, 24 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + beq _08047176 + strh r4, [r5, 0x2E] + b _0804717E +_08047176: + lsls r0, r4, 16 + asrs r0, 16 + subs r0, 0x1 + strh r0, [r5, 0x2E] +_0804717E: + ldrh r0, [r5, 0x3C] + lsrs r0, 8 + cmp r0, 0x4F + ble _08047220 + ldrh r0, [r5, 0x30] + movs r1, 0x1 + adds r6, r1, 0 + ands r6, r0 + ldrh r0, [r5, 0x32] + adds r7, r1, 0 + ands r7, r0 + movs r2, 0x30 + ldrsh r1, [r5, r2] + lsls r0, r1, 1 + adds r0, r1 + movs r1, 0x2 + negs r1, r1 + adds r2, r1, 0 + ands r0, r2 + orrs r0, r6 + strh r0, [r5, 0x30] + movs r0, 0x32 + ldrsh r1, [r5, r0] + lsls r0, r1, 1 + adds r0, r1 + ands r0, r2 + orrs r0, r7 + strh r0, [r5, 0x32] + b _08047220 +_080471B8: + adds r0, r5, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _08047220 + ldrh r0, [r5, 0x24] + ldrh r1, [r5, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x26] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + strh r1, [r5, 0x26] + strh r1, [r5, 0x24] + ldrb r0, [r5, 0x6] + strh r0, [r5, 0x3A] + strh r1, [r5, 0x2E] + bl IsDoubleBattle + lsls r0, 24 + cmp r0, 0 + beq _08047214 + ldr r0, _0804720C @ =0x02017840 + ldrb r1, [r0, 0x9] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08047214 + movs r0, 0x3A + ldrsh r4, [r5, r0] + movs r0, 0x2 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bne _08047214 + ldr r0, _08047210 @ =sub_8047230 + b _08047216 + .align 2, 0 +_0804720C: .4byte 0x02017840 +_08047210: .4byte sub_8047230 +_08047214: + ldr r0, _0804722C @ =sub_8046C78 +_08047216: + str r0, [r5, 0x1C] + adds r0, r5, 0 + movs r1, 0 + bl StartSpriteAffineAnim +_08047220: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804722C: .4byte sub_8046C78 + thumb_func_end sub_80470C4 + + thumb_func_start sub_8047230 +sub_8047230: @ 8047230 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + adds r1, r0, 0x1 + strh r1, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x18 + ble _0804724A + movs r0, 0 + strh r0, [r2, 0x2E] + ldr r0, _08047250 @ =sub_8046C78 + str r0, [r2, 0x1C] +_0804724A: + pop {r0} + bx r0 + .align 2, 0 +_08047250: .4byte sub_8046C78 + thumb_func_end sub_8047230 + + thumb_func_start sub_8047254 +sub_8047254: @ 8047254 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + ble _080472A4 + movs r0, 0 + strh r0, [r5, 0x2E] + bl IsDoubleBattle + lsls r0, 24 + cmp r0, 0 + beq _080472A0 + ldr r0, _08047298 @ =0x02017840 + ldrb r1, [r0, 0x9] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080472A0 + movs r0, 0x3A + ldrsh r4, [r5, r0] + movs r0, 0x3 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bne _080472A0 + ldr r0, _0804729C @ =sub_8047230 + b _080472A2 + .align 2, 0 +_08047298: .4byte 0x02017840 +_0804729C: .4byte sub_8047230 +_080472A0: + ldr r0, _080472AC @ =sub_8046C78 +_080472A2: + str r0, [r5, 0x1C] +_080472A4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080472AC: .4byte sub_8046C78 + thumb_func_end sub_8047254 + + thumb_func_start sub_80472B0 +sub_80472B0: @ 80472B0 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + movs r4, 0 + str r4, [sp] + bl sub_814086C + lsls r0, 24 + lsrs r0, 24 + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80472B0 + + thumb_func_start sub_80472D8 +sub_80472D8: @ 80472D8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + movs r3, 0 + bl sub_8141314 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80472D8 + + thumb_func_start CreatePokeballSprite +CreatePokeballSprite: @ 80472F0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r5, r0, 0 + mov r9, r2 + mov r10, r3 + ldr r6, [sp, 0x24] + ldr r4, [sp, 0x28] + ldr r0, [sp, 0x2C] + lsls r5, 24 + lsrs r5, 24 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp] + mov r1, r9 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + mov r2, r10 + lsls r2, 24 + lsrs r2, 24 + mov r10, r2 + lsls r6, 24 + lsrs r6, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _080473BC @ =gUnknown_0820A92C + bl LoadCompressedObjectPic + ldr r0, _080473C0 @ =gUnknown_0820A98C + bl LoadCompressedObjectPalette + ldr r0, _080473C4 @ =gSpriteTemplate_820AAB4 + mov r1, r9 + mov r2, r10 + adds r3, r4, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080473C8 @ =gSprites + mov r8, r3 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + adds r1, r4, r3 + strh r5, [r1, 0x2E] + lsls r2, r5, 4 + adds r2, r5 + lsls r2, 2 + add r2, r8 + ldrh r0, [r2, 0x20] + strh r0, [r1, 0x38] + ldrh r0, [r2, 0x22] + strh r0, [r1, 0x3A] + mov r0, r9 + strh r0, [r2, 0x20] + mov r3, r10 + strh r3, [r2, 0x22] + strh r7, [r1, 0x30] + mov r0, sp + ldrh r0, [r0] + strh r0, [r1, 0x32] + mov r3, sp + ldrh r3, [r3, 0x30] + strh r3, [r1, 0x34] + ldr r3, [sp, 0x30] + lsrs r0, r3, 16 + strh r0, [r1, 0x36] + movs r0, 0x3 + ands r6, r0 + lsls r6, 2 + ldrb r3, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r6 + strb r0, [r1, 0x5] + movs r0, 0x1C + add r8, r0 + add r4, r8 + ldr r0, _080473CC @ =sub_80473D0 + str r0, [r4] + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080473BC: .4byte gUnknown_0820A92C +_080473C0: .4byte gUnknown_0820A98C +_080473C4: .4byte gSpriteTemplate_820AAB4 +_080473C8: .4byte gSprites +_080473CC: .4byte sub_80473D0 + thumb_func_end CreatePokeballSprite + + thumb_func_start sub_80473D0 +sub_80473D0: @ 80473D0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + ldrh r1, [r6, 0x30] + movs r2, 0x30 + ldrsh r0, [r6, r2] + cmp r0, 0 + bne _0804747C + ldrh r0, [r6, 0x2E] + lsls r0, 24 + lsrs r7, r0, 24 + ldrh r0, [r6, 0x32] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldrh r4, [r6, 0x34] + ldrh r0, [r6, 0x36] + lsls r0, 16 + orrs r4, r0 + adds r0, r6, 0 + adds r0, 0x43 + ldrb r0, [r0] + cmp r0, 0 + beq _0804740A + subs r0, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + b _0804740C +_0804740A: + movs r5, 0 +_0804740C: + adds r0, r6, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldrh r0, [r6, 0x20] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x22] + subs r1, 0x5 + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r6, 0x5] + lsls r2, 28 + lsrs r2, 30 + adds r3, r5, 0 + bl sub_80472B0 + movs r0, 0x1 + mov r1, r8 + adds r2, r4, 0 + bl sub_80472D8 + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r6, 0x30] + ldr r0, _08047474 @ =sub_804748C + str r0, [r6, 0x1C] + ldr r0, _08047478 @ =gSprites + lsls r4, r7, 4 + adds r4, r7 + lsls r4, 2 + adds r4, r0 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + adds r0, r4, 0 + bl AnimateSprite + movs r0, 0x80 + lsls r0, 5 + strh r0, [r4, 0x30] + strh r5, [r6, 0x3C] + b _08047480 + .align 2, 0 +_08047474: .4byte sub_804748C +_08047478: .4byte gSprites +_0804747C: + subs r0, r1, 0x1 + strh r0, [r6, 0x30] +_08047480: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80473D0 + + thumb_func_start sub_804748C +sub_804748C: @ 804748C + push {r4-r7,lr} + adds r4, r0, 0 + movs r0, 0 + mov r12, r0 + movs r6, 0 + ldrh r0, [r4, 0x2E] + lsls r0, 24 + lsrs r3, r0, 24 + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080474B6 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_080474B6: + ldr r0, _08047544 @ =gSprites + lsls r1, r3, 4 + adds r1, r3 + lsls r1, 2 + adds r5, r1, r0 + adds r0, r5, 0 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 26 + cmp r0, 0 + bge _080474D8 + adds r0, r5, 0 + movs r1, 0 + bl StartSpriteAffineAnim + movs r1, 0x1 + mov r12, r1 +_080474D8: + movs r2, 0x38 + ldrsh r0, [r4, r2] + movs r7, 0x20 + ldrsh r1, [r4, r7] + subs r0, r1 + movs r1, 0x3C + ldrsh r2, [r4, r1] + muls r0, r2 + cmp r0, 0 + bge _080474EE + adds r0, 0x7F +_080474EE: + asrs r0, 7 + ldrh r7, [r4, 0x20] + adds r0, r7 + lsls r0, 16 + lsrs r3, r0, 16 + movs r1, 0x3A + ldrsh r0, [r4, r1] + movs r7, 0x22 + ldrsh r1, [r4, r7] + subs r0, r1 + muls r0, r2 + cmp r0, 0 + bge _0804750A + adds r0, 0x7F +_0804750A: + asrs r0, 7 + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r3, [r5, 0x20] + strh r0, [r5, 0x22] + ldrh r2, [r4, 0x3C] + movs r7, 0x3C + ldrsh r0, [r4, r7] + cmp r0, 0x7F + bgt _0804754C + ldr r1, _08047548 @ =gSineTable + lsls r0, r2, 24 + lsrs r0, 23 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bge _08047530 + adds r0, 0x7 +_08047530: + asrs r0, 3 + negs r0, r0 + lsls r0, 16 + lsrs r0, 16 + adds r1, r2, 0x4 + strh r1, [r4, 0x3C] + strh r0, [r5, 0x24] + strh r0, [r5, 0x26] + b _0804755A + .align 2, 0 +_08047544: .4byte gSprites +_08047548: .4byte gSineTable +_0804754C: + ldrh r0, [r4, 0x38] + strh r0, [r5, 0x20] + ldrh r0, [r4, 0x3A] + strh r0, [r5, 0x22] + strh r6, [r5, 0x24] + strh r6, [r5, 0x26] + movs r6, 0x1 +_0804755A: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08047578 + mov r2, r12 + cmp r2, 0 + beq _08047578 + cmp r6, 0 + beq _08047578 + adds r0, r4, 0 + bl DestroySpriteAndFreeResources +_08047578: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804748C + + thumb_func_start sub_8047580 +sub_8047580: @ 8047580 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r10, r0 + adds r6, r2, 0 + mov r8, r3 + ldr r5, [sp, 0x20] + ldr r4, [sp, 0x24] + ldr r0, [sp, 0x28] + mov r9, r0 + mov r0, r10 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r6, 24 + lsrs r6, 24 + mov r1, r8 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r5, 24 + lsrs r5, 24 + lsls r4, 24 + lsrs r4, 24 + mov r0, r9 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r0, _08047624 @ =gUnknown_0820A92C + bl LoadCompressedObjectPic + ldr r0, _08047628 @ =gUnknown_0820A98C + bl LoadCompressedObjectPalette + ldr r0, _0804762C @ =gSpriteTemplate_820AAB4 + adds r1, r6, 0 + mov r2, r8 + adds r3, r4, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r6, _08047630 @ =gSprites + lsls r3, r0, 4 + adds r3, r0 + lsls r3, 2 + adds r2, r3, r6 + mov r1, r10 + strh r1, [r2, 0x2E] + mov r4, r9 + strh r4, [r2, 0x30] + strh r7, [r2, 0x32] + mov r1, sp + ldrh r1, [r1, 0x2C] + strh r1, [r2, 0x34] + ldr r4, [sp, 0x2C] + lsrs r1, r4, 16 + strh r1, [r2, 0x36] + movs r1, 0x3 + ands r5, r1 + lsls r5, 2 + ldrb r4, [r2, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r4 + orrs r1, r5 + strb r1, [r2, 0x5] + adds r6, 0x1C + adds r3, r6 + ldr r1, _08047634 @ =sub_8047638 + str r1, [r3] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08047624: .4byte gUnknown_0820A92C +_08047628: .4byte gUnknown_0820A98C +_0804762C: .4byte gSpriteTemplate_820AAB4 +_08047630: .4byte gSprites +_08047634: .4byte sub_8047638 + thumb_func_end sub_8047580 + + thumb_func_start sub_8047638 +sub_8047638: @ 8047638 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r0, 0 + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080476D0 + ldrh r0, [r4, 0x2E] + lsls r0, 24 + lsrs r7, r0, 24 + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldrh r5, [r4, 0x34] + ldrh r0, [r4, 0x36] + lsls r0, 16 + orrs r5, r0 + adds r0, r4, 0 + adds r0, 0x43 + ldrb r0, [r0] + cmp r0, 0 + beq _08047672 + subs r0, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + b _08047674 +_08047672: + movs r6, 0 +_08047674: + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldrh r0, [r4, 0x20] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x22] + subs r1, 0x5 + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r4, 0x5] + lsls r2, 28 + lsrs r2, 30 + adds r3, r6, 0 + bl sub_80472B0 + movs r0, 0x1 + mov r1, r8 + adds r2, r5, 0 + bl sub_80472D8 + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r4, 0x30] + ldr r0, _080476C8 @ =sub_80476E0 + str r0, [r4, 0x1C] + lsls r4, r7, 4 + adds r4, r7 + lsls r4, 2 + ldr r0, _080476CC @ =gSprites + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + adds r0, r4, 0 + bl AnimateSprite + strh r5, [r4, 0x30] + b _080476D4 + .align 2, 0 +_080476C8: .4byte sub_80476E0 +_080476CC: .4byte gSprites +_080476D0: + subs r0, r1, 0x1 + strh r0, [r4, 0x30] +_080476D4: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8047638 + + thumb_func_start sub_80476E0 +sub_80476E0: @ 80476E0 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x38] + adds r0, 0x1 + strh r0, [r5, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB + bne _080476F8 + movs r0, 0x3C + bl PlaySE +_080476F8: + ldrh r1, [r5, 0x2E] + lsls r1, 24 + lsrs r1, 24 + ldr r2, _08047734 @ =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, r0, r2 + adds r0, r4, 0 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 26 + cmp r0, 0 + bge _0804773C + adds r0, r5, 0 + movs r1, 0x2 + bl StartSpriteAnim + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + movs r0, 0 + strh r0, [r5, 0x38] + ldr r0, _08047738 @ =sub_8047754 + str r0, [r5, 0x1C] + b _0804774C + .align 2, 0 +_08047734: .4byte gSprites +_08047738: .4byte sub_8047754 +_0804773C: + ldrh r0, [r4, 0x30] + adds r0, 0x60 + strh r0, [r4, 0x30] + movs r1, 0x30 + ldrsh r0, [r4, r1] + negs r0, r0 + asrs r0, 8 + strh r0, [r4, 0x26] +_0804774C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80476E0 + + thumb_func_start sub_8047754 +sub_8047754: @ 8047754 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08047768 + ldr r0, _0804776C @ =SpriteCallbackDummy + str r0, [r2, 0x1C] +_08047768: + pop {r0} + bx r0 + .align 2, 0 +_0804776C: .4byte SpriteCallbackDummy + thumb_func_end sub_8047754 + + thumb_func_start obj_delete_and_free_associated_resources_ +obj_delete_and_free_associated_resources_: @ 8047770 + push {lr} + bl DestroySpriteAndFreeResources + pop {r0} + bx r0 + thumb_func_end obj_delete_and_free_associated_resources_ + + thumb_func_start sub_804777C +sub_804777C: @ 804777C + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r0, _080477FC @ =gUnknown_03004340 + adds r0, r5, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r6, _08047800 @ =gSprites + adds r4, r0, r6 + movs r1, 0 + movs r0, 0x5 + strh r0, [r4, 0x2E] + strh r1, [r4, 0x30] + movs r0, 0x73 + strh r0, [r4, 0x24] + strh r1, [r4, 0x26] + ldr r0, _08047804 @ =sub_8047830 + str r0, [r4, 0x1C] + adds r0, r5, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080477CA + ldrh r0, [r4, 0x2E] + negs r0, r0 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + negs r0, r0 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x24] + negs r0, r0 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x26] + negs r0, r0 + strh r0, [r4, 0x26] +_080477CA: + movs r0, 0x38 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r6, 0 + adds r1, 0x1C + adds r1, r0, r1 + adds r0, r6 + ldr r1, [r1] + bl _call_via_r1 + adds r0, r5, 0 + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _080477F4 + ldr r0, _08047808 @ =sub_804780C + str r0, [r4, 0x1C] +_080477F4: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080477FC: .4byte gUnknown_03004340 +_08047800: .4byte gSprites +_08047804: .4byte sub_8047830 +_08047808: .4byte sub_804780C + thumb_func_end sub_804777C + + thumb_func_start sub_804780C +sub_804780C: @ 804780C + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bne _08047826 + movs r0, 0 + strh r0, [r1, 0x30] + ldr r0, _0804782C @ =sub_8047830 + str r0, [r1, 0x1C] +_08047826: + pop {r0} + bx r0 + .align 2, 0 +_0804782C: .4byte sub_8047830 + thumb_func_end sub_804780C + + thumb_func_start sub_8047830 +sub_8047830: @ 8047830 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x24] + ldrh r1, [r2, 0x2E] + subs r0, r1 + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x26] + ldrh r1, [r2, 0x30] + subs r0, r1 + strh r0, [r2, 0x26] + ldr r0, [r2, 0x24] + cmp r0, 0 + bne _0804784E + ldr r0, _08047854 @ =SpriteCallbackDummy + str r0, [r2, 0x1C] +_0804784E: + pop {r0} + bx r0 + .align 2, 0 +_08047854: .4byte SpriteCallbackDummy + thumb_func_end sub_8047830 + + thumb_func_start sub_8047858 +sub_8047858: @ 8047858 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _08047890 @ =oamc_804BEB4 + adds r0, r5, 0 + bl CreateInvisibleSpriteWithCallback + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08047894 @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r3, r1, r2 + movs r0, 0x1 + strh r0, [r3, 0x2E] + ldr r0, _08047898 @ =gUnknown_03004340 + adds r4, r0 + ldrb r0, [r4] + strh r0, [r3, 0x30] + adds r2, 0x1C + adds r1, r2 + str r5, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08047890: .4byte oamc_804BEB4 +_08047894: .4byte gSprites +_08047898: .4byte gUnknown_03004340 + thumb_func_end sub_8047858 + + thumb_func_start oamc_804BEB4 +oamc_804BEB4: @ 804789C + push {lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x30] + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080478D8 @ =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + ldrh r0, [r3, 0x2E] + movs r2, 0 + strh r0, [r1, 0x26] + ldrh r0, [r3, 0x2E] + negs r0, r0 + strh r0, [r3, 0x2E] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x15 + bne _080478D4 + strh r2, [r1, 0x24] + strh r2, [r1, 0x26] + adds r0, r3, 0 + bl DestroySprite +_080478D4: + pop {r0} + bx r0 + .align 2, 0 +_080478D8: .4byte gSprites + thumb_func_end oamc_804BEB4 + + thumb_func_start sub_80478DC +sub_80478DC: @ 80478DC + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08047938 @ =gUnknown_0820A92C + lsls r6, r4, 3 + adds r5, r6, r0 + ldrh r0, [r5, 0x6] + bl GetSpriteTileStartByTag + lsls r0, 16 + ldr r1, _0804793C @ =0xffff0000 + cmp r0, r1 + bne _08047904 + adds r0, r5, 0 + bl LoadCompressedObjectPic + ldr r0, _08047940 @ =gUnknown_0820A98C + adds r0, r6, r0 + bl LoadCompressedObjectPalette +_08047904: + cmp r4, 0x6 + beq _08047930 + cmp r4, 0x6 + blt _08047914 + cmp r4, 0xB + bgt _08047914 + cmp r4, 0xA + bge _08047930 +_08047914: + ldr r1, _08047938 @ =gUnknown_0820A92C + lsls r0, r4, 3 + adds r0, r1 + ldrh r0, [r0, 0x6] + bl GetSpriteTileStartByTag + adds r1, r0, 0 + lsls r1, 16 + ldr r0, _08047944 @ =gUnknown_08D030D0 + lsrs r1, 11 + ldr r2, _08047948 @ =0x06010100 + adds r1, r2 + bl LZDecompressVram +_08047930: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08047938: .4byte gUnknown_0820A92C +_0804793C: .4byte 0xffff0000 +_08047940: .4byte gUnknown_0820A98C +_08047944: .4byte gUnknown_08D030D0 +_08047948: .4byte 0x06010100 + thumb_func_end sub_80478DC + + thumb_func_start sub_804794C +sub_804794C: @ 804794C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + ldr r0, _08047970 @ =gUnknown_0820A92C + lsrs r4, 21 + adds r0, r4, r0 + ldrh r0, [r0, 0x6] + bl FreeSpriteTilesByTag + ldr r0, _08047974 @ =gUnknown_0820A98C + adds r4, r0 + ldrh r0, [r4, 0x4] + bl FreeSpritePaletteByTag + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08047970: .4byte gUnknown_0820A92C +_08047974: .4byte gUnknown_0820A98C + thumb_func_end sub_804794C + + thumb_func_start sub_8047978 +sub_8047978: @ 8047978 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080479A4 + ldr r1, _0804799C @ =gUnknown_02024A6A + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080479A0 @ =gEnemyParty + b _080479B2 + .align 2, 0 +_0804799C: .4byte gUnknown_02024A6A +_080479A0: .4byte gEnemyParty +_080479A4: + ldr r1, _080479C4 @ =gUnknown_02024A6A + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080479C8 @ =gPlayerParty +_080479B2: + adds r0, r1 + movs r1, 0x26 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080479C4: .4byte gUnknown_02024A6A +_080479C8: .4byte gPlayerParty + thumb_func_end sub_8047978 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokeblock.s b/asm/pokeblock.s new file mode 100644 index 000000000..d39a4b3ca --- /dev/null +++ b/asm/pokeblock.s @@ -0,0 +1,2675 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_810B674 +sub_810B674: @ 810B674 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + bl RunTasks + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_810B674 + + thumb_func_start sub_810B68C +sub_810B68C: @ 810B68C + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + ldr r1, _0810B6B0 @ =gBGTilemapBuffers + 0x1000 + ldr r2, _0810B6B4 @ =0x06007800 + ldr r0, _0810B6B8 @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _0810B6BC @ =0x80000400 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + pop {r0} + bx r0 + .align 2, 0 +_0810B6B0: .4byte gBGTilemapBuffers + 0x1000 +_0810B6B4: .4byte 0x06007800 +_0810B6B8: .4byte 0x040000d4 +_0810B6BC: .4byte 0x80000400 + thumb_func_end sub_810B68C + + thumb_func_start sub_810B6C0 +sub_810B6C0: @ 810B6C0 + push {r4,lr} + sub sp, 0x4 + ldr r0, _0810B6DC @ =gMain + ldr r1, _0810B6E0 @ =0x0000043c + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x12 + bls _0810B6D2 + b _0810B960 +_0810B6D2: + lsls r0, 2 + ldr r1, _0810B6E4 @ =_0810B6E8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0810B6DC: .4byte gMain +_0810B6E0: .4byte 0x0000043c +_0810B6E4: .4byte _0810B6E8 + .align 2, 0 +_0810B6E8: + .4byte _0810B734 + .4byte _0810B764 + .4byte _0810B76A + .4byte _0810B78C + .4byte _0810B792 + .4byte _0810B7B4 + .4byte _0810B7C0 + .4byte _0810B7DC + .4byte _0810B7E8 + .4byte _0810B804 + .4byte _0810B810 + .4byte _0810B830 + .4byte _0810B84C + .4byte _0810B86A + .4byte _0810B894 + .4byte _0810B89E + .4byte _0810B8C4 + .4byte _0810B914 + .4byte _0810B934 +_0810B734: + bl sub_80F9438 + bl sub_80F9368 + ldr r1, _0810B754 @ =REG_BG2CNT + ldr r2, _0810B758 @ =0x00000f0a + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x44 + movs r0, 0 + strh r0, [r1] + ldr r1, _0810B75C @ =gMain + ldr r0, _0810B760 @ =0x0000043c + adds r1, r0 + b _0810B922 + .align 2, 0 +_0810B754: .4byte REG_BG2CNT +_0810B758: .4byte 0x00000f0a +_0810B75C: .4byte gMain +_0810B760: .4byte 0x0000043c +_0810B764: + bl remove_some_task + b _0810B91C +_0810B76A: + bl ResetPaletteFade + ldr r2, _0810B780 @ =gPaletteFade + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + ldr r1, _0810B784 @ =gMain + ldr r0, _0810B788 @ =0x0000043c + adds r1, r0 + b _0810B922 + .align 2, 0 +_0810B780: .4byte gPaletteFade +_0810B784: .4byte gMain +_0810B788: .4byte 0x0000043c +_0810B78C: + bl ResetSpriteData + b _0810B91C +_0810B792: + ldr r0, _0810B7A8 @ =gUnknown_02039244 + ldrb r0, [r0] + cmp r0, 0x2 + beq _0810B79E + bl ResetTasks +_0810B79E: + ldr r1, _0810B7AC @ =gMain + ldr r0, _0810B7B0 @ =0x0000043c + adds r1, r0 + b _0810B922 + .align 2, 0 +_0810B7A8: .4byte gUnknown_02039244 +_0810B7AC: .4byte gMain +_0810B7B0: .4byte 0x0000043c +_0810B7B4: + ldr r0, _0810B7BC @ =gWindowConfig_81E6E34 + bl SetUpWindowConfig + b _0810B91C + .align 2, 0 +_0810B7BC: .4byte gWindowConfig_81E6E34 +_0810B7C0: + ldr r0, _0810B7D0 @ =gWindowConfig_81E6E50 + bl SetUpWindowConfig + ldr r1, _0810B7D4 @ =gMain + ldr r0, _0810B7D8 @ =0x0000043c + adds r1, r0 + b _0810B922 + .align 2, 0 +_0810B7D0: .4byte gWindowConfig_81E6E50 +_0810B7D4: .4byte gMain +_0810B7D8: .4byte 0x0000043c +_0810B7DC: + ldr r0, _0810B7E4 @ =gWindowConfig_81E6E34 + bl MultistepInitMenuWindowBegin + b _0810B91C + .align 2, 0 +_0810B7E4: .4byte gWindowConfig_81E6E34 +_0810B7E8: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + bne _0810B7F2 + b _0810B960 +_0810B7F2: + ldr r1, _0810B7FC @ =gMain + ldr r0, _0810B800 @ =0x0000043c + adds r1, r0 + b _0810B922 + .align 2, 0 +_0810B7FC: .4byte gMain +_0810B800: .4byte 0x0000043c +_0810B804: + ldr r0, _0810B80C @ =gWindowConfig_81E6E50 + bl MultistepInitMenuWindowBegin + b _0810B91C + .align 2, 0 +_0810B80C: .4byte gWindowConfig_81E6E50 +_0810B810: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + bne _0810B81A + b _0810B960 +_0810B81A: + ldr r0, _0810B828 @ =0x02000000 + ldr r1, _0810B82C @ =0x0001ffff + adds r0, r1 + movs r1, 0 + strb r1, [r0] + b _0810B91C + .align 2, 0 +_0810B828: .4byte 0x02000000 +_0810B82C: .4byte 0x0001ffff +_0810B830: + bl sub_810B998 + lsls r0, 24 + cmp r0, 0 + bne _0810B83C + b _0810B960 +_0810B83C: + ldr r1, _0810B844 @ =gMain + ldr r0, _0810B848 @ =0x0000043c + adds r1, r0 + b _0810B922 + .align 2, 0 +_0810B844: .4byte gMain +_0810B848: .4byte 0x0000043c +_0810B84C: + bl sub_80F944C + bl LoadScrollIndicatorPalette + movs r0, 0 + movs r1, 0xB0 + movs r2, 0x8 + bl CreateVerticalScrollIndicators + movs r0, 0x1 + movs r1, 0xB0 + movs r2, 0x98 + bl CreateVerticalScrollIndicators + b _0810B91C +_0810B86A: + movs r0, 0x38 + movs r1, 0x40 + movs r2, 0 + bl sub_810BA50 + ldr r1, _0810B884 @ =0x02000000 + ldr r2, _0810B888 @ =0x0001fffe + adds r1, r2 + strb r0, [r1] + ldr r1, _0810B88C @ =gMain + ldr r0, _0810B890 @ =0x0000043c + adds r1, r0 + b _0810B922 + .align 2, 0 +_0810B884: .4byte 0x02000000 +_0810B888: .4byte 0x0001fffe +_0810B88C: .4byte gMain +_0810B890: .4byte 0x0000043c +_0810B894: + bl sub_810BC98 + bl sub_810BD08 + b _0810B91C +_0810B89E: + bl sub_810BB0C + bl sub_810BB30 + ldr r0, _0810B8B8 @ =gUnknown_02039248 + ldrb r0, [r0, 0x1] + bl sub_810BC84 + ldr r1, _0810B8BC @ =gMain + ldr r0, _0810B8C0 @ =0x0000043c + adds r1, r0 + b _0810B922 + .align 2, 0 +_0810B8B8: .4byte gUnknown_02039248 +_0810B8BC: .4byte gMain +_0810B8C0: .4byte 0x0000043c +_0810B8C4: + ldr r3, _0810B8FC @ =0x04000208 + ldrh r2, [r3] + movs r0, 0 + strh r0, [r3] + ldr r4, _0810B900 @ =0x04000200 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, _0810B904 @ =REG_DISPSTAT + ldrh r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strh r0, [r2] + ldr r0, _0810B908 @ =sub_810B68C + bl SetVBlankCallback + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xBA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _0810B90C @ =gMain + ldr r0, _0810B910 @ =0x0000043c + adds r1, r0 + b _0810B922 + .align 2, 0 +_0810B8FC: .4byte 0x04000208 +_0810B900: .4byte 0x04000200 +_0810B904: .4byte REG_DISPSTAT +_0810B908: .4byte sub_810B68C +_0810B90C: .4byte gMain +_0810B910: .4byte 0x0000043c +_0810B914: + bl sub_8055870 + cmp r0, 0x1 + beq _0810B960 +_0810B91C: + ldr r1, _0810B92C @ =gMain + ldr r2, _0810B930 @ =0x0000043c + adds r1, r2 +_0810B922: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0810B960 + .align 2, 0 +_0810B92C: .4byte gMain +_0810B930: .4byte 0x0000043c +_0810B934: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r2, _0810B958 @ =gPaletteFade + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x8] + ldr r0, _0810B95C @ =sub_810B674 + bl SetMainCallback2 + movs r0, 0x1 + b _0810B962 + .align 2, 0 +_0810B958: .4byte gPaletteFade +_0810B95C: .4byte sub_810B674 +_0810B960: + movs r0, 0 +_0810B962: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_810B6C0 + + thumb_func_start sub_810B96C +sub_810B96C: @ 810B96C + push {lr} +_0810B96E: + bl sub_810B6C0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0810B988 + ldr r0, _0810B984 @ =sub_810BF7C + movs r1, 0 + bl CreateTask + b _0810B994 + .align 2, 0 +_0810B984: .4byte sub_810BF7C +_0810B988: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0810B96E +_0810B994: + pop {r0} + bx r0 + thumb_func_end sub_810B96C + + thumb_func_start sub_810B998 +sub_810B998: @ 810B998 + push {lr} + ldr r0, _0810B9B0 @ =0x02000000 + ldr r1, _0810B9B4 @ =0x0001ffff + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x4 + bhi _0810BA48 + lsls r0, 2 + ldr r1, _0810B9B8 @ =_0810B9BC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0810B9B0: .4byte 0x02000000 +_0810B9B4: .4byte 0x0001ffff +_0810B9B8: .4byte _0810B9BC + .align 2, 0 +_0810B9BC: + .4byte _0810B9D0 + .4byte _0810B9E4 + .4byte _0810B9F8 + .4byte _0810BA08 + .4byte _0810BA28 +_0810B9D0: + ldr r0, _0810B9DC @ =gMenuPokeblock_Gfx + ldr r1, _0810B9E0 @ =0x06008000 + bl LZDecompressVram + b _0810BA0E + .align 2, 0 +_0810B9DC: .4byte gMenuPokeblock_Gfx +_0810B9E0: .4byte 0x06008000 +_0810B9E4: + ldr r0, _0810B9F0 @ =gMenuPokeblock_Tilemap + ldr r1, _0810B9F4 @ =gBGTilemapBuffers + 0x1000 + bl sub_800D238 + b _0810BA0E + .align 2, 0 +_0810B9F0: .4byte gMenuPokeblock_Tilemap +_0810B9F4: .4byte gBGTilemapBuffers + 0x1000 +_0810B9F8: + ldr r0, _0810BA04 @ =gMenuPokeblock_Pal + movs r1, 0 + movs r2, 0xC0 + bl LoadCompressedPalette + b _0810BA0E + .align 2, 0 +_0810BA04: .4byte gMenuPokeblock_Pal +_0810BA08: + ldr r0, _0810BA1C @ =gUnknown_083F7F74 + bl LoadCompressedObjectPic +_0810BA0E: + ldr r1, _0810BA20 @ =0x02000000 + ldr r0, _0810BA24 @ =0x0001ffff + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0810BA48 + .align 2, 0 +_0810BA1C: .4byte gUnknown_083F7F74 +_0810BA20: .4byte 0x02000000 +_0810BA24: .4byte 0x0001ffff +_0810BA28: + ldr r0, _0810BA3C @ =gUnknown_083F7F7C + bl LoadCompressedObjectPalette + ldr r0, _0810BA40 @ =0x02000000 + ldr r1, _0810BA44 @ =0x0001ffff + adds r0, r1 + movs r1, 0 + strb r1, [r0] + movs r0, 0x1 + b _0810BA4A + .align 2, 0 +_0810BA3C: .4byte gUnknown_083F7F7C +_0810BA40: .4byte 0x02000000 +_0810BA44: .4byte 0x0001ffff +_0810BA48: + movs r0, 0 +_0810BA4A: + pop {r1} + bx r1 + thumb_func_end sub_810B998 + + thumb_func_start sub_810BA50 +sub_810BA50: @ 810BA50 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + adds r3, r2, 0 + lsls r3, 24 + lsrs r3, 24 + ldr r0, _0810BA78 @ =gSpriteTemplate_83F7F84 + lsls r4, 16 + asrs r4, 16 + lsls r5, 16 + asrs r5, 16 + adds r1, r4, 0 + adds r2, r5, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0810BA78: .4byte gSpriteTemplate_83F7F84 + thumb_func_end sub_810BA50 + + thumb_func_start sub_810BA7C +sub_810BA7C: @ 810BA7C + push {lr} + ldr r1, _0810BA98 @ =gUnknown_02039244 + strb r0, [r1] + ldrb r2, [r1] + cmp r2, 0x2 + beq _0810BAA8 + cmp r2, 0x3 + beq _0810BAC0 + ldr r1, _0810BA9C @ =gUnknown_03000758 + ldr r0, _0810BAA0 @ =gUnknown_083F7F1C + str r0, [r1] + ldr r1, _0810BAA4 @ =gUnknown_0203924C + movs r0, 0x3 + b _0810BACA + .align 2, 0 +_0810BA98: .4byte gUnknown_02039244 +_0810BA9C: .4byte gUnknown_03000758 +_0810BAA0: .4byte gUnknown_083F7F1C +_0810BAA4: .4byte gUnknown_0203924C +_0810BAA8: + ldr r0, _0810BAB4 @ =gUnknown_03000758 + ldr r1, _0810BAB8 @ =gUnknown_083F7F1F + str r1, [r0] + ldr r0, _0810BABC @ =gUnknown_0203924C + strb r2, [r0] + b _0810BACC + .align 2, 0 +_0810BAB4: .4byte gUnknown_03000758 +_0810BAB8: .4byte gUnknown_083F7F1F +_0810BABC: .4byte gUnknown_0203924C +_0810BAC0: + ldr r1, _0810BAD0 @ =gUnknown_03000758 + ldr r0, _0810BAD4 @ =gUnknown_083F7F21 + str r0, [r1] + ldr r1, _0810BAD8 @ =gUnknown_0203924C + movs r0, 0x2 +_0810BACA: + strb r0, [r1] +_0810BACC: + pop {r0} + bx r0 + .align 2, 0 +_0810BAD0: .4byte gUnknown_03000758 +_0810BAD4: .4byte gUnknown_083F7F21 +_0810BAD8: .4byte gUnknown_0203924C + thumb_func_end sub_810BA7C + + thumb_func_start sub_810BADC +sub_810BADC: @ 810BADC + push {lr} + movs r0, 0x2 + bl sub_810BA7C + ldr r0, _0810BAF0 @ =sub_810B96C + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0810BAF0: .4byte sub_810B96C + thumb_func_end sub_810BADC + + thumb_func_start sub_810BAF4 +sub_810BAF4: @ 810BAF4 + push {lr} + movs r0, 0x3 + bl sub_810BA7C + ldr r0, _0810BB08 @ =sub_810B96C + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0810BB08: .4byte sub_810B96C + thumb_func_end sub_810BAF4 + + thumb_func_start sub_810BB0C +sub_810BB0C: @ 810BB0C + push {lr} + ldr r0, _0810BB28 @ =gWindowConfig_81E6E34 + bl BasicInitMenuWindow + ldr r0, _0810BB2C @ =0x00000111 + bl ItemId_GetItem + movs r1, 0x2 + movs r2, 0x1 + movs r3, 0x48 + bl sub_8072BD8 + pop {r0} + bx r0 + .align 2, 0 +_0810BB28: .4byte gWindowConfig_81E6E34 +_0810BB2C: .4byte 0x00000111 + thumb_func_end sub_810BB0C + + thumb_func_start sub_810BB30 +sub_810BB30: @ 810BB30 + push {lr} + ldr r0, _0810BB70 @ =gWindowConfig_81E6E34 + bl BasicInitMenuWindow + ldr r0, _0810BB74 @ =gContestStatsText_Spicy + movs r1, 0x2 + movs r2, 0xD + bl MenuPrint + ldr r0, _0810BB78 @ =gContestStatsText_Dry + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + ldr r0, _0810BB7C @ =gContestStatsText_Sweet + movs r1, 0x2 + movs r2, 0x11 + bl MenuPrint + ldr r0, _0810BB80 @ =gContestStatsText_Bitter + movs r1, 0x8 + movs r2, 0xD + bl MenuPrint + ldr r0, _0810BB84 @ =gContestStatsText_Sour + movs r1, 0x8 + movs r2, 0xF + bl MenuPrint + pop {r0} + bx r0 + .align 2, 0 +_0810BB70: .4byte gWindowConfig_81E6E34 +_0810BB74: .4byte gContestStatsText_Spicy +_0810BB78: .4byte gContestStatsText_Dry +_0810BB7C: .4byte gContestStatsText_Sweet +_0810BB80: .4byte gContestStatsText_Bitter +_0810BB84: .4byte gContestStatsText_Sour + thumb_func_end sub_810BB30 + + thumb_func_start sub_810BB88 +sub_810BB88: @ 810BB88 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _0810BBF4 @ =gWindowConfig_81E6E34 + bl BasicInitMenuWindow + mov r6, r8 + adds r0, r6, 0 + adds r0, 0x8 + cmp r6, r0 + bgt _0810BC6C + ldr r0, _0810BBF8 @ =gStringVar1 + mov r9, r0 + ldr r1, _0810BBFC @ =gSaveBlock1 + mov r10, r1 +_0810BBB0: + mov r1, r8 + subs r0, r6, r1 + lsls r0, 25 + lsrs r7, r0, 24 + ldr r0, _0810BC00 @ =gUnknown_02039248 + ldrb r0, [r0, 0x2] + cmp r6, r0 + bne _0810BC08 + mov r0, r9 + ldr r1, _0810BC04 @ =gContestStatsText_StowCase + movs r2, 0x78 + movs r3, 0 + bl sub_8072C74 + movs r2, 0x1 + orrs r2, r7 + mov r0, r9 + movs r1, 0xF + bl MenuPrint + mov r0, r8 + adds r0, 0x8 + cmp r6, r0 + beq _0810BC6C + adds r1, r7, 0x3 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0xF + movs r2, 0x1D + movs r3, 0x12 + bl MenuZeroFillWindowRect + b _0810BC6C + .align 2, 0 +_0810BBF4: .4byte gWindowConfig_81E6E34 +_0810BBF8: .4byte gStringVar1 +_0810BBFC: .4byte gSaveBlock1 +_0810BC00: .4byte gUnknown_02039248 +_0810BC04: .4byte gContestStatsText_StowCase +_0810BC08: + lsls r5, r6, 3 + mov r1, r10 + adds r0, r5, r1 + movs r1, 0xFF + lsls r1, 3 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 2 + ldr r1, _0810BC7C @ =gPokeblockNames + adds r0, r1 + ldr r1, [r0] + mov r0, r9 + movs r2, 0x5E + movs r3, 0 + bl sub_8072C74 + adds r4, r0, 0 + movs r0, 0xFC + strb r0, [r4] + movs r0, 0x14 + strb r0, [r4, 0x1] + movs r0, 0x6 + strb r0, [r4, 0x2] + adds r4, 0x3 + ldr r0, _0810BC80 @ =gSaveBlock1 + 0x7F8 + adds r5, r0 + adds r0, r5, 0 + bl sub_810C9B0 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + movs r2, 0x1 + orrs r2, r7 + mov r0, r9 + movs r1, 0xF + bl MenuPrint + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + mov r0, r8 + adds r0, 0x8 + cmp r6, r0 + ble _0810BBB0 +_0810BC6C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810BC7C: .4byte gPokeblockNames +_0810BC80: .4byte gSaveBlock1 + 0x7F8 + thumb_func_end sub_810BB88 + + thumb_func_start sub_810BC84 +sub_810BC84: @ 810BC84 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_810BB88 + movs r0, 0 + bl sub_810BDAC + pop {r0} + bx r0 + thumb_func_end sub_810BC84 + + thumb_func_start sub_810BC98 +sub_810BC98: @ 810BC98 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r2, 0 + ldr r0, _0810BD00 @ =gSaveBlock1 + mov r9, r0 +_0810BCA6: + adds r1, r2, 0x1 + lsls r0, r1, 16 + lsrs r5, r0, 16 + mov r8, r1 + cmp r5, 0x27 + bhi _0810BCE8 + lsls r1, r2, 3 + mov r2, r9 + adds r0, r1, r2 + movs r2, 0xFF + lsls r2, 3 + adds r7, r0, r2 + ldr r0, _0810BD04 @ =gSaveBlock1 + 0x7F8 + mov r12, r0 + adds r6, r1, r0 +_0810BCC4: + ldrb r0, [r7] + cmp r0, 0 + bne _0810BCDE + ldr r3, [r6] + ldr r4, [r6, 0x4] + lsls r2, r5, 3 + add r2, r12 + ldr r0, [r2] + ldr r1, [r2, 0x4] + str r0, [r6] + str r1, [r6, 0x4] + str r3, [r2] + str r4, [r2, 0x4] +_0810BCDE: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x27 + bls _0810BCC4 +_0810BCE8: + mov r1, r8 + lsls r0, r1, 16 + lsrs r2, r0, 16 + cmp r2, 0x26 + bls _0810BCA6 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810BD00: .4byte gSaveBlock1 +_0810BD04: .4byte gSaveBlock1 + 0x7F8 + thumb_func_end sub_810BC98 + + thumb_func_start sub_810BD08 +sub_810BD08: @ 810BD08 + push {r4,r5,lr} + ldr r1, _0810BD5C @ =gUnknown_02039248 + movs r0, 0 + strb r0, [r1, 0x2] + movs r2, 0 + ldr r5, _0810BD60 @ =gSaveBlock1 + movs r4, 0xFF + lsls r4, 3 + adds r3, r1, 0 +_0810BD1A: + lsls r0, r2, 3 + adds r0, r5 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _0810BD2C + ldrb r0, [r3, 0x2] + adds r0, 0x1 + strb r0, [r3, 0x2] +_0810BD2C: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x27 + bls _0810BD1A + ldrb r0, [r1, 0x2] + cmp r0, 0x7 + bls _0810BD3E + movs r0, 0x8 +_0810BD3E: + strb r0, [r1, 0x3] + ldrb r2, [r1, 0x1] + adds r0, r2, 0 + adds r0, 0x8 + ldrb r3, [r1, 0x2] + cmp r0, r3 + ble _0810BD54 + cmp r2, 0 + beq _0810BD54 + subs r0, r2, 0x1 + strb r0, [r1, 0x1] +_0810BD54: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810BD5C: .4byte gUnknown_02039248 +_0810BD60: .4byte gSaveBlock1 + thumb_func_end sub_810BD08 + + thumb_func_start sub_810BD64 +sub_810BD64: @ 810BD64 + push {r4,r5,lr} + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0 + ldr r5, _0810BDA4 @ =gUnknown_02039248 + ldr r4, _0810BDA8 @ =gBGTilemapBuffers + 0x1000 +_0810BD70: + ldrb r0, [r5] + lsls r0, 1 + adds r0, 0x1 + lsls r0, 5 + adds r1, r2, 0 + adds r1, 0xF + adds r0, r1 + lsls r0, 1 + adds r0, r4 + strh r3, [r0] + ldrb r0, [r5] + lsls r0, 6 + adds r0, 0x40 + adds r0, r1 + lsls r0, 1 + adds r0, r4 + strh r3, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xD + bls _0810BD70 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810BDA4: .4byte gUnknown_02039248 +_0810BDA8: .4byte gBGTilemapBuffers + 0x1000 + thumb_func_end sub_810BD64 + + thumb_func_start sub_810BDAC +sub_810BDAC: @ 810BDAC + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + cmp r0, 0 + bne _0810BDCC + ldr r0, _0810BDC4 @ =0x00001005 + ldr r1, _0810BDC8 @ =0x00001014 + bl sub_810BD64 + b _0810BDD4 + .align 2, 0 +_0810BDC4: .4byte 0x00001005 +_0810BDC8: .4byte 0x00001014 +_0810BDCC: + ldr r0, _0810BDE8 @ =0x00002005 + ldr r1, _0810BDEC @ =0x00002014 + bl sub_810BD64 +_0810BDD4: + ldr r0, _0810BDF0 @ =gUnknown_02039248 + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _0810BDF4 + movs r0, 0 + movs r1, 0 + bl sub_80F979C + b _0810BDFC + .align 2, 0 +_0810BDE8: .4byte 0x00002005 +_0810BDEC: .4byte 0x00002014 +_0810BDF0: .4byte gUnknown_02039248 +_0810BDF4: + movs r0, 0 + movs r1, 0x1 + bl sub_80F979C +_0810BDFC: + ldr r2, _0810BE1C @ =gUnknown_02039248 + ldrb r0, [r2, 0x2] + ldrb r1, [r2, 0x3] + cmp r0, r1 + bls _0810BE20 + ldrb r0, [r2, 0x1] + ldrb r1, [r2, 0x3] + adds r0, r1 + ldrb r2, [r2, 0x2] + cmp r0, r2 + beq _0810BE20 + movs r0, 0x1 + movs r1, 0 + bl sub_80F979C + b _0810BE28 + .align 2, 0 +_0810BE1C: .4byte gUnknown_02039248 +_0810BE20: + movs r0, 0x1 + movs r1, 0x1 + bl sub_80F979C +_0810BE28: + movs r6, 0 + ldr r7, _0810BE94 @ =gBGTilemapBuffers + 0x1000 + movs r0, 0xF + mov r8, r0 +_0810BE30: + adds r0, r6, 0 + movs r1, 0x3 + bl __umodsi3 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 18 + ldr r1, _0810BE98 @ =0x000001a1 + adds r4, r1 + adds r0, r6, 0 + movs r1, 0x3 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 1 + adds r5, r4, r1 + ldr r1, _0810BE9C @ =gUnknown_02039248 + ldrb r2, [r1] + ldrb r0, [r1, 0x1] + adds r0, r2, r0 + ldrb r1, [r1, 0x2] + cmp r0, r1 + beq _0810BEB8 + lsls r0, 3 + ldr r1, _0810BEA0 @ =gSaveBlock1 + 0x7F8 + adds r0, r1 + adds r4, r6, 0x1 + lsls r1, r4, 24 + lsrs r1, 24 + bl sub_810CA9C + lsls r0, 16 + cmp r0, 0 + ble _0810BEA4 + lsls r1, r5, 1 + adds r1, r7 + lsls r2, r6, 12 + adds r0, r2, 0 + adds r0, 0x17 + strh r0, [r1] + adds r0, r5, 0 + adds r0, 0x20 + lsls r0, 1 + adds r0, r7 + adds r2, 0x18 + strh r2, [r0] + b _0810BECC + .align 2, 0 +_0810BE94: .4byte gBGTilemapBuffers + 0x1000 +_0810BE98: .4byte 0x000001a1 +_0810BE9C: .4byte gUnknown_02039248 +_0810BEA0: .4byte gSaveBlock1 + 0x7F8 +_0810BEA4: + lsls r0, r5, 1 + adds r0, r7 + mov r1, r8 + strh r1, [r0] + adds r0, r5, 0 + adds r0, 0x20 + lsls r0, 1 + adds r0, r7 + strh r1, [r0] + b _0810BECC +_0810BEB8: + lsls r0, r5, 1 + adds r0, r7 + mov r1, r8 + strh r1, [r0] + adds r0, r5, 0 + adds r0, 0x20 + lsls r0, 1 + adds r0, r7 + strh r1, [r0] + adds r4, r6, 0x1 +_0810BECC: + lsls r0, r4, 24 + lsrs r6, r0, 24 + cmp r6, 0x4 + bls _0810BE30 + ldr r0, _0810BF10 @ =gWindowConfig_81E6E34 + bl BasicInitMenuWindow + ldr r0, _0810BF14 @ =gUnknown_02039248 + ldrb r2, [r0] + ldrb r1, [r0, 0x1] + adds r2, r1 + ldrb r0, [r0, 0x2] + cmp r2, r0 + beq _0810BF20 + ldr r4, _0810BF18 @ =gStringVar1 + lsls r0, r2, 3 + ldr r1, _0810BF1C @ =gSaveBlock1 + 0x7F8 + adds r0, r1 + bl sub_810C9E8 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + movs r2, 0x10 + movs r3, 0x1 + bl sub_8072C14 + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0x11 + bl MenuPrint + b _0810BF2C + .align 2, 0 +_0810BF10: .4byte gWindowConfig_81E6E34 +_0810BF14: .4byte gUnknown_02039248 +_0810BF18: .4byte gStringVar1 +_0810BF1C: .4byte gSaveBlock1 + 0x7F8 +_0810BF20: + movs r0, 0xB + movs r1, 0x11 + movs r2, 0xC + movs r3, 0x12 + bl MenuZeroFillWindowRect +_0810BF2C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_810BDAC + + thumb_func_start sub_810BF38 +sub_810BF38: @ 810BF38 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl PlaySE + ldr r2, _0810BF6C @ =gSprites + ldr r0, _0810BF70 @ =0x02000000 + ldr r1, _0810BF74 @ =0x0001fffe + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _0810BF78 @ =sub_810C8D4 + str r1, [r0] + adds r0, r4, 0 + bl sub_810BDAC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810BF6C: .4byte gSprites +_0810BF70: .4byte 0x02000000 +_0810BF74: .4byte 0x0001fffe +_0810BF78: .4byte sub_810C8D4 + thumb_func_end sub_810BF38 + + thumb_func_start sub_810BF7C +sub_810BF7C: @ 810BF7C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, r5, 0 + ldr r0, _0810BFB8 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r3, 0x80 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0810BF94 + b _0810C0B8 +_0810BF94: + ldr r2, _0810BFBC @ =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0810BFCE + ldr r4, _0810BFC0 @ =gUnknown_02039248 + ldrb r0, [r4] + cmp r0, 0 + beq _0810BFC4 + movs r0, 0x5 + movs r1, 0x14 + bl sub_810BD64 + ldrb r0, [r4] + subs r0, 0x1 + strb r0, [r4] + b _0810C00A + .align 2, 0 +_0810BFB8: .4byte gPaletteFade +_0810BFBC: .4byte gMain +_0810BFC0: .4byte gUnknown_02039248 +_0810BFC4: + ldrb r0, [r4, 0x1] + cmp r0, 0 + beq _0810C0B8 + subs r0, 0x1 + b _0810C002 +_0810BFCE: + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0810C012 + ldr r4, _0810BFF0 @ =gUnknown_02039248 + ldrb r0, [r4] + ldrb r1, [r4, 0x3] + cmp r0, r1 + beq _0810BFF4 + movs r0, 0x5 + movs r1, 0x14 + bl sub_810BD64 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _0810C00A + .align 2, 0 +_0810BFF0: .4byte gUnknown_02039248 +_0810BFF4: + ldrb r1, [r4, 0x1] + ldrb r0, [r4] + adds r0, r1, r0 + ldrb r2, [r4, 0x2] + cmp r0, r2 + beq _0810C0B8 + adds r0, r1, 0x1 +_0810C002: + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x1] + bl sub_810BB88 +_0810C00A: + movs r0, 0 + bl sub_810BF38 + b _0810C0B8 +_0810C012: + ldrh r1, [r2, 0x2E] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0810C05C + ldr r4, _0810C050 @ =gUnknown_02039248 + ldrb r0, [r4, 0x1] + ldrb r1, [r4] + adds r0, r1 + ldrb r1, [r4, 0x2] + cmp r0, r1 + beq _0810C0B8 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl sub_810BDAC + ldr r1, _0810C054 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrb r1, [r4, 0x1] + ldrb r2, [r4] + adds r1, r2 + strh r1, [r0, 0x8] + ldr r1, _0810C058 @ =sub_810C0C8 + str r1, [r0] + b _0810C0B8 + .align 2, 0 +_0810C050: .4byte gUnknown_02039248 +_0810C054: .4byte gTasks +_0810C058: .4byte sub_810C0C8 +_0810C05C: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0810C09C + movs r0, 0x5 + bl PlaySE + ldr r0, _0810C088 @ =gUnknown_02039248 + ldrb r1, [r0, 0x1] + ldrb r2, [r0] + adds r1, r2 + ldrb r0, [r0, 0x2] + cmp r1, r0 + bne _0810C094 + ldr r1, _0810C08C @ =gScriptResult + ldr r2, _0810C090 @ =0x0000ffff + adds r0, r2, 0 + strh r0, [r1] + adds r0, r5, 0 + bl sub_810C31C + b _0810C0B8 + .align 2, 0 +_0810C088: .4byte gUnknown_02039248 +_0810C08C: .4byte gScriptResult +_0810C090: .4byte 0x0000ffff +_0810C094: + adds r0, r5, 0 + bl sub_810C368 + b _0810C0B8 +_0810C09C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0810C0B8 + movs r0, 0x5 + bl PlaySE + ldr r1, _0810C0C0 @ =gScriptResult + ldr r2, _0810C0C4 @ =0x0000ffff + adds r0, r2, 0 + strh r0, [r1] + adds r0, r4, 0 + bl sub_810C31C +_0810C0B8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810C0C0: .4byte gScriptResult +_0810C0C4: .4byte 0x0000ffff + thumb_func_end sub_810BF7C + + thumb_func_start sub_810C0C8 +sub_810C0C8: @ 810C0C8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, _0810C0F4 @ =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0810C110 + ldr r4, _0810C0F8 @ =gUnknown_02039248 + ldrb r0, [r4] + cmp r0, 0 + beq _0810C0FC + movs r0, 0x5 + movs r1, 0x14 + bl sub_810BD64 + ldrb r0, [r4] + subs r0, 0x1 + strb r0, [r4] + b _0810C158 + .align 2, 0 +_0810C0F4: .4byte gMain +_0810C0F8: .4byte gUnknown_02039248 +_0810C0FC: + ldrb r0, [r4, 0x1] + cmp r0, 0 + beq _0810C1BA + adds r0, r5, 0 + movs r1, 0 + bl sub_810C1C8 + ldrb r0, [r4, 0x1] + subs r0, 0x1 + b _0810C150 +_0810C110: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0810C168 + ldr r4, _0810C134 @ =gUnknown_02039248 + ldrb r0, [r4] + ldrb r1, [r4, 0x3] + cmp r0, r1 + beq _0810C138 + movs r0, 0x5 + movs r1, 0x14 + bl sub_810BD64 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _0810C158 + .align 2, 0 +_0810C134: .4byte gUnknown_02039248 +_0810C138: + ldrb r0, [r4, 0x1] + ldrb r1, [r4] + adds r0, r1 + ldrb r1, [r4, 0x2] + cmp r0, r1 + beq _0810C1BA + adds r0, r5, 0 + movs r1, 0 + bl sub_810C1C8 + ldrb r0, [r4, 0x1] + adds r0, 0x1 +_0810C150: + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x1] + bl sub_810BB88 +_0810C158: + movs r0, 0x1 + bl sub_810BF38 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_810C1C8 + b _0810C1BA +_0810C168: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0810C17A + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0810C190 +_0810C17A: + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + movs r1, 0 + bl sub_810C1C8 + adds r0, r5, 0 + bl sub_810C23C + b _0810C1AC +_0810C190: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0810C1BA + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + movs r1, 0 + bl sub_810C1C8 + movs r0, 0 + bl sub_810BDAC +_0810C1AC: + ldr r0, _0810C1C0 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _0810C1C4 @ =sub_810BF7C + str r0, [r1] +_0810C1BA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810C1C0: .4byte gTasks +_0810C1C4: .4byte sub_810BF7C + thumb_func_end sub_810C0C8 + + thumb_func_start sub_810C1C8 +sub_810C1C8: @ 810C1C8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + ldr r6, _0810C22C @ =0x00001005 + cmp r1, 0 + bne _0810C1D8 + movs r6, 0x5 +_0810C1D8: + ldr r1, _0810C230 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + ldr r2, _0810C234 @ =gUnknown_02039248 + ldrb r1, [r2, 0x1] + ldrh r0, [r0, 0x8] + subs r0, r1 + lsls r1, r0, 16 + lsrs r0, r1, 16 + cmp r0, 0x8 + bhi _0810C226 + asrs r0, r1, 16 + ldrb r2, [r2] + cmp r0, r2 + beq _0810C226 + movs r2, 0 + lsls r0, 1 + adds r1, r0, 0x1 + lsls r5, r1, 5 + ldr r3, _0810C238 @ =gBGTilemapBuffers + 0x1000 + adds r0, 0x2 + lsls r4, r0, 5 +_0810C208: + adds r0, r2, 0 + adds r0, 0xF + adds r1, r5, r0 + lsls r1, 1 + adds r1, r3 + strh r6, [r1] + adds r0, r4, r0 + lsls r0, 1 + adds r0, r3 + strh r6, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xD + bls _0810C208 +_0810C226: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810C22C: .4byte 0x00001005 +_0810C230: .4byte gTasks +_0810C234: .4byte gUnknown_02039248 +_0810C238: .4byte gBGTilemapBuffers + 0x1000 + thumb_func_end sub_810C1C8 + + thumb_func_start sub_810C23C +sub_810C23C: @ 810C23C + push {r4-r7,lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r7, _0810C25C @ =gUnknown_02039248 + ldrb r0, [r7] + ldrb r2, [r7, 0x1] + adds r0, r2 + lsls r0, 24 + lsrs r0, 24 + ldrb r2, [r7, 0x2] + cmp r0, r2 + bne _0810C260 + movs r0, 0 + bl sub_810BDAC + b _0810C2A2 + .align 2, 0 +_0810C25C: .4byte gUnknown_02039248 +_0810C260: + ldr r4, _0810C2A8 @ =gSaveBlock1 + lsls r3, r0, 3 + movs r0, 0xFF + lsls r0, 3 + adds r4, r0 + adds r3, r4 + ldr r5, [r3] + ldr r6, [r3, 0x4] + ldr r0, _0810C2AC @ =gTasks + lsls r2, r1, 2 + adds r2, r1 + lsls r2, 3 + adds r2, r0 + movs r1, 0x8 + ldrsh r0, [r2, r1] + lsls r0, 3 + adds r0, r4 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [r3] + str r1, [r3, 0x4] + movs r1, 0x8 + ldrsh r0, [r2, r1] + lsls r0, 3 + adds r0, r4 + str r5, [r0] + str r6, [r0, 0x4] + ldrb r0, [r7, 0x1] + bl sub_810BB88 + movs r0, 0 + bl sub_810BDAC +_0810C2A2: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810C2A8: .4byte gSaveBlock1 +_0810C2AC: .4byte gTasks + thumb_func_end sub_810C23C + + thumb_func_start sub_810C2B0 +sub_810C2B0: @ 810C2B0 + push {lr} + movs r0, 0 + bl DestroyVerticalScrollIndicator + movs r0, 0x1 + bl DestroyVerticalScrollIndicator + bl BuyMenuFreeMemory + pop {r0} + bx r0 + thumb_func_end sub_810C2B0 + + thumb_func_start sub_810C2C8 +sub_810C2C8: @ 810C2C8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0810C308 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0810C300 + ldr r4, _0810C30C @ =gUnknown_02039244 + ldrb r0, [r4] + cmp r0, 0x3 + bne _0810C2E8 + ldr r1, _0810C310 @ =gUnknown_0300485C + ldr r0, _0810C314 @ =sub_8080990 + str r0, [r1] +_0810C2E8: + bl sub_810C2B0 + ldr r0, _0810C318 @ =gUnknown_083F7EA8 + ldrb r1, [r4] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + bl SetMainCallback2 + adds r0, r5, 0 + bl DestroyTask +_0810C300: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810C308: .4byte gPaletteFade +_0810C30C: .4byte gUnknown_02039244 +_0810C310: .4byte gUnknown_0300485C +_0810C314: .4byte sub_8080990 +_0810C318: .4byte gUnknown_083F7EA8 + thumb_func_end sub_810C2C8 + + thumb_func_start sub_810C31C +sub_810C31C: @ 810C31C + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x1 + negs r0, r0 + movs r5, 0 + str r5, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _0810C358 @ =gUnknown_02039244 + ldrb r0, [r0] + cmp r0, 0x1 + bls _0810C342 + ldr r0, _0810C35C @ =gScriptItemId + strh r5, [r0] +_0810C342: + ldr r0, _0810C360 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _0810C364 @ =sub_810C2C8 + str r0, [r1] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810C358: .4byte gUnknown_02039244 +_0810C35C: .4byte gScriptItemId +_0810C360: .4byte gTasks +_0810C364: .4byte sub_810C2C8 + thumb_func_end sub_810C31C + + thumb_func_start sub_810C368 +sub_810C368: @ 810C368 + push {r4-r6,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r6, r0, 24 + movs r4, 0 + ldr r0, _0810C3E8 @ =gUnknown_02039244 + ldrb r0, [r0] + cmp r0, 0x1 + bls _0810C37C + movs r4, 0x2 +_0810C37C: + movs r0, 0 + bl sub_80F98A4 + movs r0, 0x1 + bl sub_80F98A4 + ldr r0, _0810C3EC @ =gWindowConfig_81E6E50 + bl BasicInitMenuWindow + adds r1, r4, 0x4 + movs r0, 0x7 + movs r2, 0xD + movs r3, 0xB + bl MenuDrawTextWindow + adds r4, 0x5 + ldr r5, _0810C3F0 @ =gUnknown_0203924C + ldrb r2, [r5] + ldr r3, _0810C3F4 @ =gUnknown_083F7EF4 + ldr r0, _0810C3F8 @ =gUnknown_03000758 + ldr r0, [r0] + str r0, [sp] + movs r0, 0x8 + adds r1, r4, 0 + bl PrintMenuItemsReordered + ldrb r3, [r5] + movs r0, 0 + str r0, [sp] + movs r0, 0x5 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x8 + adds r2, r4, 0 + bl InitMenu + ldr r2, _0810C3FC @ =gScriptItemId + ldr r1, _0810C400 @ =gUnknown_02039248 + ldrb r0, [r1] + ldrb r1, [r1, 0x1] + adds r0, r1 + strh r0, [r2] + ldr r1, _0810C404 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _0810C408 @ =sub_810C40C + str r1, [r0] + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810C3E8: .4byte gUnknown_02039244 +_0810C3EC: .4byte gWindowConfig_81E6E50 +_0810C3F0: .4byte gUnknown_0203924C +_0810C3F4: .4byte gUnknown_083F7EF4 +_0810C3F8: .4byte gUnknown_03000758 +_0810C3FC: .4byte gScriptItemId +_0810C400: .4byte gUnknown_02039248 +_0810C404: .4byte gTasks +_0810C408: .4byte sub_810C40C + thumb_func_end sub_810C368 + + thumb_func_start sub_810C40C +sub_810C40C: @ 810C40C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, r5, 0 + ldr r2, _0810C43C @ =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0810C440 + bl GetMenuCursorPos + lsls r0, 24 + cmp r0, 0 + beq _0810C4BC + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursor + b _0810C4BC + .align 2, 0 +_0810C43C: .4byte gMain +_0810C440: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0810C46C + bl GetMenuCursorPos + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0810C468 @ =gUnknown_0203924C + ldrb r1, [r1] + subs r1, 0x1 + cmp r0, r1 + beq _0810C4BC + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl MoveMenuCursor + b _0810C4BC + .align 2, 0 +_0810C468: .4byte gUnknown_0203924C +_0810C46C: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0810C4A8 + movs r0, 0x5 + bl PlaySE + ldr r4, _0810C4A0 @ =gUnknown_083F7EF4 + bl GetMenuCursorPos + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0810C4A4 @ =gUnknown_03000758 + ldr r1, [r1] + adds r1, r0 + ldrb r0, [r1] + lsls r0, 3 + adds r4, 0x4 + adds r0, r4 + ldr r1, [r0] + adds r0, r5, 0 + bl _call_via_r1 + b _0810C4BC + .align 2, 0 +_0810C4A0: .4byte gUnknown_083F7EF4 +_0810C4A4: .4byte gUnknown_03000758 +_0810C4A8: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0810C4BC + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_810C748 +_0810C4BC: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_810C40C + + thumb_func_start sub_810C4C4 +sub_810C4C4: @ 810C4C4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0810C4F8 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0810C4F0 + bl sub_810C2B0 + ldr r0, _0810C4FC @ =gScriptItemId + ldrh r0, [r0] + lsls r0, 3 + ldr r1, _0810C500 @ =gSaveBlock1 + 0x7F8 + adds r0, r1 + ldr r1, _0810C504 @ =sub_810B96C + bl sub_8136130 + adds r0, r4, 0 + bl DestroyTask +_0810C4F0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810C4F8: .4byte gPaletteFade +_0810C4FC: .4byte gScriptItemId +_0810C500: .4byte gSaveBlock1 + 0x7F8 +_0810C504: .4byte sub_810B96C + thumb_func_end sub_810C4C4 + + thumb_func_start sub_810C508 +sub_810C508: @ 810C508 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _0810C538 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0810C53C @ =sub_810C4C4 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810C538: .4byte gTasks +_0810C53C: .4byte sub_810C4C4 + thumb_func_end sub_810C508 + + thumb_func_start sub_810C540 +sub_810C540: @ 810C540 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _0810C5A0 @ =gWindowConfig_81E6E50 + bl BasicInitMenuWindow + bl sub_8072DEC + movs r0, 0x7 + movs r1, 0x4 + movs r2, 0xD + movs r3, 0xB + bl MenuZeroFillWindowRect + ldr r0, _0810C5A4 @ =gStringVar1 + ldr r4, _0810C5A8 @ =gPokeblockNames + ldr r3, _0810C5AC @ =gSaveBlock1 + ldr r2, _0810C5B0 @ =gUnknown_02039248 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + adds r1, r2 + lsls r1, 3 + adds r1, r3 + movs r2, 0xFF + lsls r2, 3 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 2 + adds r1, r4 + ldr r1, [r1] + bl StringCopy + ldr r4, _0810C5B4 @ =gStringVar4 + ldr r1, _0810C5B8 @ =gContestStatsText_ThrowAwayPrompt + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r2, _0810C5BC @ =sub_810C5EC + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810C5A0: .4byte gWindowConfig_81E6E50 +_0810C5A4: .4byte gStringVar1 +_0810C5A8: .4byte gPokeblockNames +_0810C5AC: .4byte gSaveBlock1 +_0810C5B0: .4byte gUnknown_02039248 +_0810C5B4: .4byte gStringVar4 +_0810C5B8: .4byte gContestStatsText_ThrowAwayPrompt +_0810C5BC: .4byte sub_810C5EC + thumb_func_end sub_810C540 + + thumb_func_start sub_810C5C0 +sub_810C5C0: @ 810C5C0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + movs r1, 0x1 + bl sub_80F979C + ldr r1, _0810C5E4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0810C5E8 @ =sub_810C540 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810C5E4: .4byte gTasks +_0810C5E8: .4byte sub_810C540 + thumb_func_end sub_810C5C0 + + thumb_func_start sub_810C5EC +sub_810C5EC: @ 810C5EC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x7 + movs r1, 0x6 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r1, _0810C60C @ =gUnknown_083F7F24 + adds r0, r4, 0 + bl sub_80F914C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810C60C: .4byte gUnknown_083F7F24 + thumb_func_end sub_810C5EC + + thumb_func_start sub_810C610 +sub_810C610: @ 810C610 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x7 + movs r1, 0x6 + movs r2, 0xD + movs r3, 0xB + bl MenuZeroFillWindowRect + ldr r1, _0810C658 @ =gUnknown_02039248 + ldrb r0, [r1, 0x1] + ldrb r1, [r1] + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl sub_810CA6C + ldr r5, _0810C65C @ =gStringVar4 + ldr r1, _0810C660 @ =gContestStatsText_WasThrownAway + adds r0, r5, 0 + bl StringExpandPlaceholders + ldr r2, _0810C664 @ =sub_810C704 + adds r0, r4, 0 + adds r1, r5, 0 + movs r3, 0 + bl DisplayItemMessageOnField + bl sub_810BC98 + bl sub_810BD08 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810C658: .4byte gUnknown_02039248 +_0810C65C: .4byte gStringVar4 +_0810C660: .4byte gContestStatsText_WasThrownAway +_0810C664: .4byte sub_810C704 + thumb_func_end sub_810C610 + + thumb_func_start sub_810C668 +sub_810C668: @ 810C668 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0 + bl sub_80F98DC + movs r0, 0x1 + bl sub_80F98DC + ldr r2, _0810C6CC @ =gUnknown_02039248 + ldrb r0, [r2, 0x2] + ldrb r1, [r2, 0x3] + cmp r0, r1 + bls _0810C698 + ldrb r0, [r2, 0x1] + ldrb r1, [r2, 0x3] + adds r0, r1 + ldrb r2, [r2, 0x2] + cmp r0, r2 + beq _0810C698 + movs r0, 0x1 + movs r1, 0 + bl sub_80F979C +_0810C698: + ldr r0, _0810C6D0 @ =gWindowConfig_81E6E50 + bl BasicInitMenuWindow + movs r0, 0x7 + movs r1, 0x6 + movs r2, 0xD + movs r3, 0xB + bl MenuZeroFillWindowRect + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r1, _0810C6D4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0810C6D8 @ =sub_810BF7C + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810C6CC: .4byte gUnknown_02039248 +_0810C6D0: .4byte gWindowConfig_81E6E50 +_0810C6D4: .4byte gTasks +_0810C6D8: .4byte sub_810BF7C + thumb_func_end sub_810C668 + + thumb_func_start sub_810C6DC +sub_810C6DC: @ 810C6DC + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _0810C700 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0810C6F6 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0810C6FC +_0810C6F6: + adds r0, r2, 0 + bl sub_810C668 +_0810C6FC: + pop {r0} + bx r0 + .align 2, 0 +_0810C700: .4byte gMain + thumb_func_end sub_810C6DC + + thumb_func_start sub_810C704 +sub_810C704: @ 810C704 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0810C738 @ =gWindowConfig_81E6E34 + bl BasicInitMenuWindow + ldr r0, _0810C73C @ =gUnknown_02039248 + ldrb r0, [r0, 0x1] + bl sub_810BC84 + movs r0, 0x1 + movs r1, 0x1 + bl sub_80F979C + ldr r1, _0810C740 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0810C744 @ =sub_810C6DC + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810C738: .4byte gWindowConfig_81E6E34 +_0810C73C: .4byte gUnknown_02039248 +_0810C740: .4byte gTasks +_0810C744: .4byte sub_810C6DC + thumb_func_end sub_810C704 + + thumb_func_start sub_810C748 +sub_810C748: @ 810C748 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + bl sub_80F98DC + movs r0, 0x1 + bl sub_80F98DC + bl sub_8072DEC + movs r0, 0x7 + movs r1, 0x4 + movs r2, 0xD + movs r3, 0xB + bl MenuZeroFillWindowRect + ldr r1, _0810C780 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0810C784 @ =sub_810BF7C + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810C780: .4byte gTasks +_0810C784: .4byte sub_810BF7C + thumb_func_end sub_810C748 + + thumb_func_start sub_810C788 +sub_810C788: @ 810C788 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _0810C834 @ =gEnemyParty + bl GetNature + lsls r0, 24 + lsrs r0, 24 + ldr r7, _0810C838 @ =gScriptItemId + ldrh r1, [r7] + lsls r1, 3 + ldr r5, _0810C83C @ =gSaveBlock1 + 0x7F8 + adds r1, r5 + bl sub_810CAE4 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _0810C840 @ =gUnknown_030041C0 + ldr r2, _0810C844 @ =gPokeblockNames + ldr r1, _0810C848 @ =0xfffff808 + adds r5, r1 + ldrh r1, [r7] + lsls r1, 3 + adds r1, r5 + movs r6, 0xFF + lsls r6, 3 + adds r1, r6 + ldrb r1, [r1] + lsls r1, 2 + adds r1, r2 + ldr r1, [r1] + bl StringCopy + ldrb r0, [r7] + bl sub_810CA6C + ldrh r0, [r7] + lsls r0, 3 + adds r0, r5 + adds r0, r6 + ldrb r0, [r0] + lsls r0, 8 + strh r0, [r7] + lsls r4, 16 + asrs r4, 16 + cmp r4, 0 + bne _0810C7F4 + adds r0, 0x1 + strh r0, [r7] +_0810C7F4: + cmp r4, 0 + ble _0810C7FE + ldrh r0, [r7] + adds r0, 0x2 + strh r0, [r7] +_0810C7FE: + cmp r4, 0 + bge _0810C808 + ldrh r0, [r7] + adds r0, 0x3 + strh r0, [r7] +_0810C808: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _0810C84C @ =gTasks + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + ldr r1, _0810C850 @ =sub_810C2C8 + str r1, [r0] + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810C834: .4byte gEnemyParty +_0810C838: .4byte gScriptItemId +_0810C83C: .4byte gSaveBlock1 + 0x7F8 +_0810C840: .4byte gUnknown_030041C0 +_0810C844: .4byte gPokeblockNames +_0810C848: .4byte 0xfffff808 +_0810C84C: .4byte gTasks +_0810C850: .4byte sub_810C2C8 + thumb_func_end sub_810C788 + + thumb_func_start sub_810C854 +sub_810C854: @ 810C854 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r4, _0810C8B8 @ =gScriptItemId + ldrb r0, [r4] + bl SafariZoneActivatePokeblockFeeder + ldr r0, _0810C8BC @ =gStringVar1 + ldr r3, _0810C8C0 @ =gPokeblockNames + ldr r2, _0810C8C4 @ =gSaveBlock1 + ldrh r1, [r4] + lsls r1, 3 + adds r1, r2 + movs r2, 0xFF + lsls r2, 3 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 2 + adds r1, r3 + ldr r1, [r1] + bl StringCopy + ldr r1, _0810C8C8 @ =gScriptResult + ldrh r0, [r4] + strh r0, [r1] + lsls r0, 24 + lsrs r0, 24 + bl sub_810CA6C + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _0810C8CC @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _0810C8D0 @ =sub_810C2C8 + str r1, [r0] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810C8B8: .4byte gScriptItemId +_0810C8BC: .4byte gStringVar1 +_0810C8C0: .4byte gPokeblockNames +_0810C8C4: .4byte gSaveBlock1 +_0810C8C8: .4byte gScriptResult +_0810C8CC: .4byte gTasks +_0810C8D0: .4byte sub_810C2C8 + thumb_func_end sub_810C854 + + thumb_func_start sub_810C8D4 +sub_810C8D4: @ 810C8D4 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + ble _0810C8E4 + movs r0, 0 + strh r0, [r4, 0x2E] +_0810C8E4: + movs r0, 0x2E + ldrsh r5, [r4, r0] + cmp r5, 0 + beq _0810C8F2 + cmp r5, 0x1 + beq _0810C918 + b _0810C944 +_0810C8F2: + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4, 0x1] + ldr r0, _0810C914 @ =gUnknown_083F7F70 + str r0, [r4, 0x10] + adds r0, r4, 0 + bl InitSpriteAffineAnim + movs r0, 0x1 + strh r0, [r4, 0x2E] + strh r5, [r4, 0x30] + b _0810C944 + .align 2, 0 +_0810C914: .4byte gUnknown_083F7F70 +_0810C918: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + movs r2, 0 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB + ble _0810C944 + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x1] + strh r2, [r4, 0x2E] + strh r2, [r4, 0x30] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldr r0, _0810C94C @ =SpriteCallbackDummy + str r0, [r4, 0x1C] +_0810C944: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810C94C: .4byte SpriteCallbackDummy + thumb_func_end sub_810C8D4 + + thumb_func_start sub_810C950 +sub_810C950: @ 810C950 + lsls r0, 24 + ldr r1, _0810C988 @ =gSaveBlock1 + lsrs r0, 21 + adds r0, r1 + movs r2, 0xFF + lsls r2, 3 + adds r1, r0, r2 + movs r2, 0 + strb r2, [r1] + ldr r3, _0810C98C @ =0x000007f9 + adds r1, r0, r3 + strb r2, [r1] + adds r3, 0x1 + adds r1, r0, r3 + strb r2, [r1] + adds r3, 0x1 + adds r1, r0, r3 + strb r2, [r1] + adds r3, 0x1 + adds r1, r0, r3 + strb r2, [r1] + adds r3, 0x1 + adds r1, r0, r3 + strb r2, [r1] + ldr r1, _0810C990 @ =0x000007fe + adds r0, r1 + strb r2, [r0] + bx lr + .align 2, 0 +_0810C988: .4byte gSaveBlock1 +_0810C98C: .4byte 0x000007f9 +_0810C990: .4byte 0x000007fe + thumb_func_end sub_810C950 + + thumb_func_start sub_810C994 +sub_810C994: @ 810C994 + push {r4,lr} + movs r4, 0 +_0810C998: + adds r0, r4, 0 + bl sub_810C950 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x27 + bls _0810C998 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_810C994 + + thumb_func_start sub_810C9B0 +sub_810C9B0: @ 810C9B0 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_810CA9C + lsls r0, 24 + lsrs r5, r0, 24 + movs r1, 0x1 +_0810C9C0: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_810CA9C + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + bcs _0810C9D8 + adds r5, r0, 0 +_0810C9D8: + adds r1, r4, 0 + cmp r1, 0x4 + bls _0810C9C0 + adds r0, r5, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_810C9B0 + + thumb_func_start sub_810C9E8 +sub_810C9E8: @ 810C9E8 + push {lr} + movs r1, 0x6 + bl sub_810CA9C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x63 + bls _0810C9FA + movs r0, 0x63 +_0810C9FA: + pop {r1} + bx r1 + thumb_func_end sub_810C9E8 + + thumb_func_start sub_810CA00 +sub_810CA00: @ 810CA00 + push {lr} + movs r1, 0 + ldr r3, _0810CA1C @ =gSaveBlock1 + movs r2, 0xFF + lsls r2, 3 +_0810CA0A: + lsls r0, r1, 3 + adds r0, r3 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _0810CA20 + lsls r0, r1, 24 + asrs r0, 24 + b _0810CA2E + .align 2, 0 +_0810CA1C: .4byte gSaveBlock1 +_0810CA20: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x27 + bls _0810CA0A + movs r0, 0x1 + negs r0, r0 +_0810CA2E: + pop {r1} + bx r1 + thumb_func_end sub_810CA00 + + thumb_func_start sub_810CA34 +sub_810CA34: @ 810CA34 + push {r4,lr} + adds r4, r0, 0 + bl sub_810CA00 + lsls r0, 24 + asrs r2, r0, 24 + movs r0, 0x1 + negs r0, r0 + cmp r2, r0 + beq _0810CA64 + ldr r0, _0810CA60 @ =gSaveBlock1 + lsls r2, 3 + movs r1, 0xFF + lsls r1, 3 + adds r0, r1 + adds r2, r0 + ldr r0, [r4] + ldr r1, [r4, 0x4] + str r0, [r2] + str r1, [r2, 0x4] + movs r0, 0x1 + b _0810CA66 + .align 2, 0 +_0810CA60: .4byte gSaveBlock1 +_0810CA64: + movs r0, 0 +_0810CA66: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_810CA34 + + thumb_func_start sub_810CA6C +sub_810CA6C: @ 810CA6C + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _0810CA90 @ =gSaveBlock1 + lsls r0, r2, 3 + adds r0, r1 + movs r1, 0xFF + lsls r1, 3 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0810CA94 + adds r0, r2, 0 + bl sub_810C950 + movs r0, 0x1 + b _0810CA96 + .align 2, 0 +_0810CA90: .4byte gSaveBlock1 +_0810CA94: + movs r0, 0 +_0810CA96: + pop {r1} + bx r1 + thumb_func_end sub_810CA6C + + thumb_func_start sub_810CA9C +sub_810CA9C: @ 810CA9C + push {lr} + lsls r1, 24 + lsrs r1, 24 + adds r2, r1, 0 + cmp r1, 0 + bne _0810CAAC + ldrb r0, [r0] + b _0810CADE +_0810CAAC: + cmp r1, 0x1 + bne _0810CAB4 + ldrb r0, [r0, 0x1] + b _0810CADE +_0810CAB4: + cmp r1, 0x2 + bne _0810CABC + ldrb r0, [r0, 0x2] + b _0810CADE +_0810CABC: + cmp r1, 0x3 + bne _0810CAC4 + ldrb r0, [r0, 0x3] + b _0810CADE +_0810CAC4: + cmp r1, 0x4 + bne _0810CACC + ldrb r0, [r0, 0x4] + b _0810CADE +_0810CACC: + cmp r1, 0x5 + bne _0810CAD4 + ldrb r0, [r0, 0x5] + b _0810CADE +_0810CAD4: + cmp r2, 0x6 + beq _0810CADC + movs r0, 0 + b _0810CADE +_0810CADC: + ldrb r0, [r0, 0x6] +_0810CADE: + pop {r1} + bx r1 + thumb_func_end sub_810CA9C + + thumb_func_start sub_810CAE4 +sub_810CAE4: @ 810CAE4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r8, r1 + lsls r0, 24 + lsrs r0, 24 + movs r6, 0 + movs r4, 0 + ldr r1, _0810CB40 @ =gUnknown_083F7E28 + mov r9, r1 + lsls r1, r0, 2 + adds r7, r1, r0 +_0810CAFE: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + mov r0, r8 + adds r1, r5, 0 + bl sub_810CA9C + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0 + ble _0810CB2A + adds r0, r7, r4 + add r0, r9 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + muls r1, r0 + lsls r0, r6, 16 + asrs r0, 16 + adds r0, r1 + lsls r0, 16 + lsrs r6, r0, 16 +_0810CB2A: + adds r4, r5, 0 + cmp r4, 0x4 + bls _0810CAFE + lsls r0, r6, 16 + asrs r0, 16 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0810CB40: .4byte gUnknown_083F7E28 + thumb_func_end sub_810CAE4 + + thumb_func_start sub_810CB44 +sub_810CB44: @ 810CB44 + push {r4,lr} + adds r4, r1, 0 + movs r1, 0 + bl sub_810CA9C + lsls r0, 24 + ldr r1, _0810CB64 @ =gPokeblockNames + lsrs r0, 22 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl StringCopy + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810CB64: .4byte gPokeblockNames + thumb_func_end sub_810CB44 + + thumb_func_start sub_810CB68 +sub_810CB68: @ 810CB68 + push {r4-r7,lr} + adds r6, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r7, _0810CB98 @ =gPokeblockNames +_0810CB74: + lsls r1, r4, 3 + ldr r0, _0810CB9C @ =gUnknown_083F7F9C + adds r1, r0 + adds r0, r5, 0 + bl sub_810CAE4 + lsls r0, 16 + cmp r0, 0 + ble _0810CBA0 + adds r0, r4, 0x1 + lsls r0, 2 + adds r0, r7 + ldr r1, [r0] + adds r0, r6, 0 + bl StringCopy + movs r0, 0x1 + b _0810CBAC + .align 2, 0 +_0810CB98: .4byte gPokeblockNames +_0810CB9C: .4byte gUnknown_083F7F9C +_0810CBA0: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bls _0810CB74 + movs r0, 0 +_0810CBAC: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_810CB68 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_81473B8.s b/asm/pokeblock_feed.s index 6c26c034a..7df634399 100644 --- a/asm/rom_81473B8.s +++ b/asm/pokeblock_feed.s @@ -6,603 +6,6 @@ .text - thumb_func_start sub_81473B8 -sub_81473B8: @ 81473B8 - push {lr} - ldr r0, _081473E8 @ =0x0000084f - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _08147400 - ldr r2, _081473EC @ =gSaveBlock1 - ldrh r1, [r2, 0x4] - ldr r0, _081473F0 @ =0x00004718 - cmp r1, r0 - bne _08147400 - ldr r1, [r2] - ldr r0, _081473F4 @ =0x0003000a - cmp r1, r0 - beq _081473E4 - ldr r0, _081473F8 @ =0x00030009 - cmp r1, r0 - beq _081473E4 - ldr r0, _081473FC @ =0x0003000b - cmp r1, r0 - bne _08147400 -_081473E4: - movs r0, 0x1 - b _08147402 - .align 2, 0 -_081473E8: .4byte 0x0000084f -_081473EC: .4byte gSaveBlock1 -_081473F0: .4byte 0x00004718 -_081473F4: .4byte 0x0003000a -_081473F8: .4byte 0x00030009 -_081473FC: .4byte 0x0003000b -_08147400: - movs r0, 0 -_08147402: - pop {r1} - bx r1 - thumb_func_end sub_81473B8 - - thumb_func_start sub_8147408 -sub_8147408: @ 8147408 - push {lr} - ldr r2, _08147460 @ =0x0000022a - movs r0, 0x10 - movs r1, 0x8 - bl MapGridSetMetatileIdAt - ldr r2, _08147464 @ =0x0000022b - movs r0, 0x11 - movs r1, 0x8 - bl MapGridSetMetatileIdAt - movs r2, 0x8B - lsls r2, 2 - movs r0, 0x12 - movs r1, 0x8 - bl MapGridSetMetatileIdAt - ldr r2, _08147468 @ =0x00000e32 - movs r0, 0x10 - movs r1, 0x9 - bl MapGridSetMetatileIdAt - ldr r2, _0814746C @ =0x00000233 - movs r0, 0x11 - movs r1, 0x9 - bl MapGridSetMetatileIdAt - ldr r2, _08147470 @ =0x00000e34 - movs r0, 0x12 - movs r1, 0x9 - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - movs r0, 0x14 - bl PlaySE - ldr r0, _08147474 @ =0x0000084f - bl FlagSet - bl ScriptContext2_Disable - pop {r0} - bx r0 - .align 2, 0 -_08147460: .4byte 0x0000022a -_08147464: .4byte 0x0000022b -_08147468: .4byte 0x00000e32 -_0814746C: .4byte 0x00000233 -_08147470: .4byte 0x00000e34 -_08147474: .4byte 0x0000084f - thumb_func_end sub_8147408 - - thumb_func_start sub_8147478 -sub_8147478: @ 8147478 - push {r4,lr} - ldr r4, _081474B4 @ =gPlayerParty - adds r0, r4, 0 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - ldr r1, _081474B8 @ =0x0000017d - cmp r0, r1 - bne _081474C0 - bl CalculatePlayerPartyCount - ldr r0, _081474BC @ =gPlayerPartyCount - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - adds r1, r4, 0 - subs r1, 0x64 - adds r0, r1 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - movs r1, 0x9D - lsls r1, 1 - cmp r0, r1 - bne _081474C0 - movs r0, 0x1 - b _081474C2 - .align 2, 0 -_081474B4: .4byte gPlayerParty -_081474B8: .4byte 0x0000017d -_081474BC: .4byte gPlayerPartyCount -_081474C0: - movs r0, 0 -_081474C2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8147478 - - thumb_func_start sub_81474C8 -sub_81474C8: @ 81474C8 - push {lr} - movs r0, 0x85 - lsls r0, 4 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _0814750C - ldr r2, _081474FC @ =gSaveBlock1 - ldrh r1, [r2, 0x4] - movs r0, 0xC3 - lsls r0, 3 - cmp r1, r0 - bne _0814750C - ldr r1, [r2] - ldr r0, _08147500 @ =0x0017000a - cmp r1, r0 - beq _081474F8 - ldr r0, _08147504 @ =0x00170009 - cmp r1, r0 - beq _081474F8 - ldr r0, _08147508 @ =0x0017000b - cmp r1, r0 - bne _0814750C -_081474F8: - movs r0, 0x1 - b _0814750E - .align 2, 0 -_081474FC: .4byte gSaveBlock1 -_08147500: .4byte 0x0017000a -_08147504: .4byte 0x00170009 -_08147508: .4byte 0x0017000b -_0814750C: - movs r0, 0 -_0814750E: - pop {r1} - bx r1 - thumb_func_end sub_81474C8 - - thumb_func_start sub_8147514 -sub_8147514: @ 8147514 - push {lr} - movs r0, 0x28 - bl FieldEffectActiveListRemove - ldr r2, _08147574 @ =0x0000022a - movs r0, 0xE - movs r1, 0x1A - bl MapGridSetMetatileIdAt - ldr r2, _08147578 @ =0x0000022b - movs r0, 0xF - movs r1, 0x1A - bl MapGridSetMetatileIdAt - movs r2, 0x8B - lsls r2, 2 - movs r0, 0x10 - movs r1, 0x1A - bl MapGridSetMetatileIdAt - ldr r2, _0814757C @ =0x00000e32 - movs r0, 0xE - movs r1, 0x1B - bl MapGridSetMetatileIdAt - ldr r2, _08147580 @ =0x00000233 - movs r0, 0xF - movs r1, 0x1B - bl MapGridSetMetatileIdAt - ldr r2, _08147584 @ =0x00000e34 - movs r0, 0x10 - movs r1, 0x1B - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - movs r0, 0x14 - bl PlaySE - movs r0, 0x85 - lsls r0, 4 - bl FlagSet - bl ScriptContext2_Disable - pop {r0} - bx r0 - .align 2, 0 -_08147574: .4byte 0x0000022a -_08147578: .4byte 0x0000022b -_0814757C: .4byte 0x00000e32 -_08147580: .4byte 0x00000233 -_08147584: .4byte 0x00000e34 - thumb_func_end sub_8147514 - - thumb_func_start sub_8147588 -sub_8147588: @ 8147588 - push {lr} - ldr r0, _081475AC @ =0x00000852 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _081475BC - ldr r2, _081475B0 @ =gSaveBlock1 - ldrh r1, [r2, 0x4] - ldr r0, _081475B4 @ =0x00004418 - cmp r1, r0 - bne _081475BC - ldr r1, [r2] - ldr r0, _081475B8 @ =0x00190008 - cmp r1, r0 - bne _081475BC - movs r0, 0x1 - b _081475BE - .align 2, 0 -_081475AC: .4byte 0x00000852 -_081475B0: .4byte gSaveBlock1 -_081475B4: .4byte 0x00004418 -_081475B8: .4byte 0x00190008 -_081475BC: - movs r0, 0 -_081475BE: - pop {r1} - bx r1 - thumb_func_end sub_8147588 - - thumb_func_start sub_81475C4 -sub_81475C4: @ 81475C4 - push {lr} - ldr r0, _081475D8 @ =gUnknown_0202FF84 - ldr r1, _081475DC @ =gUnknown_03005CE0 - ldrb r1, [r1] - str r1, [r0] - movs r0, 0x3C - bl FieldEffectStart - pop {r0} - bx r0 - .align 2, 0 -_081475D8: .4byte gUnknown_0202FF84 -_081475DC: .4byte gUnknown_03005CE0 - thumb_func_end sub_81475C4 - - thumb_func_start FldEff_UseFlyAncientTomb -FldEff_UseFlyAncientTomb: @ 81475E0 - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08147604 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _08147608 @ =sub_814760C - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08147604: .4byte gTasks -_08147608: .4byte sub_814760C - thumb_func_end FldEff_UseFlyAncientTomb - - thumb_func_start sub_814760C -sub_814760C: @ 814760C - push {lr} - movs r0, 0x3C - bl FieldEffectActiveListRemove - bl sub_814761C - pop {r0} - bx r0 - thumb_func_end sub_814760C - - thumb_func_start sub_814761C -sub_814761C: @ 814761C - push {lr} - ldr r2, _08147674 @ =0x0000022a - movs r0, 0xE - movs r1, 0x1A - bl MapGridSetMetatileIdAt - ldr r2, _08147678 @ =0x0000022b - movs r0, 0xF - movs r1, 0x1A - bl MapGridSetMetatileIdAt - movs r2, 0x8B - lsls r2, 2 - movs r0, 0x10 - movs r1, 0x1A - bl MapGridSetMetatileIdAt - ldr r2, _0814767C @ =0x00000e32 - movs r0, 0xE - movs r1, 0x1B - bl MapGridSetMetatileIdAt - ldr r2, _08147680 @ =0x00000233 - movs r0, 0xF - movs r1, 0x1B - bl MapGridSetMetatileIdAt - ldr r2, _08147684 @ =0x00000e34 - movs r0, 0x10 - movs r1, 0x1B - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - movs r0, 0x14 - bl PlaySE - ldr r0, _08147688 @ =0x00000852 - bl FlagSet - bl ScriptContext2_Disable - pop {r0} - bx r0 - .align 2, 0 -_08147674: .4byte 0x0000022a -_08147678: .4byte 0x0000022b -_0814767C: .4byte 0x00000e32 -_08147680: .4byte 0x00000233 -_08147684: .4byte 0x00000e34 -_08147688: .4byte 0x00000852 - thumb_func_end sub_814761C - - thumb_func_start sub_814768C -sub_814768C: @ 814768C - push {lr} - ldr r0, _081476A8 @ =0x00000851 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _081476A2 - ldr r0, _081476AC @ =sub_81476B0 - movs r1, 0x50 - bl CreateTask -_081476A2: - pop {r0} - bx r0 - .align 2, 0 -_081476A8: .4byte 0x00000851 -_081476AC: .4byte sub_81476B0 - thumb_func_end sub_814768C - - thumb_func_start sub_81476B0 -sub_81476B0: @ 81476B0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _081476D4 @ =gTasks + 0x8 - adds r4, r0, r1 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bhi _0814776A - lsls r0, 2 - ldr r1, _081476D8 @ =_081476DC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081476D4: .4byte gTasks + 0x8 -_081476D8: .4byte _081476DC - .align 2, 0 -_081476DC: - .4byte _081476F0 - .4byte _081476FE - .4byte _08147730 - .4byte _08147748 - .4byte _0814775A -_081476F0: - movs r1, 0xE1 - lsls r1, 5 - adds r0, r1, 0 - strh r0, [r4, 0x2] - movs r0, 0x1 - strh r0, [r4] - b _0814776A -_081476FE: - bl sub_8147774 - cmp r0, 0 - beq _08147716 - bl MenuZeroFillScreen - movs r0, 0x5 - bl PlaySE - movs r0, 0x2 - strh r0, [r4] - b _0814776A -_08147716: - ldrh r0, [r4, 0x2] - subs r0, 0x1 - strh r0, [r4, 0x2] - lsls r0, 16 - cmp r0, 0 - bne _0814776A - bl MenuZeroFillScreen - movs r0, 0x3 - strh r0, [r4] - movs r0, 0x1E - strh r0, [r4, 0x2] - b _0814776A -_08147730: - bl sub_8147774 - cmp r0, 0 - beq _08147748 - bl sub_8064E2C - adds r0, r5, 0 - bl DestroyTask - bl ScriptContext2_Disable - b _0814776A -_08147748: - ldrh r0, [r4, 0x2] - subs r0, 0x1 - strh r0, [r4, 0x2] - lsls r0, 16 - cmp r0, 0 - bne _0814776A - movs r0, 0x4 - strh r0, [r4] - b _0814776A -_0814775A: - bl sub_8064E2C - ldr r0, _08147770 @ =gUnknown_0815EF19 - bl ScriptContext1_SetupScript - adds r0, r5, 0 - bl DestroyTask -_0814776A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08147770: .4byte gUnknown_0815EF19 - thumb_func_end sub_81476B0 - - thumb_func_start sub_8147774 -sub_8147774: @ 8147774 - push {lr} - movs r1, 0xFF - ldr r0, _081477A4 @ =gSaveBlock2 - ldrb r2, [r0, 0x13] - cmp r2, 0x1 - bne _08147788 - movs r3, 0xC0 - lsls r3, 2 - adds r0, r3, 0 - orrs r1, r0 -_08147788: - cmp r2, 0x2 - bne _08147794 - movs r2, 0x80 - lsls r2, 2 - adds r0, r2, 0 - orrs r1, r0 -_08147794: - ldr r0, _081477A8 @ =gMain - ldrh r0, [r0, 0x2E] - ands r1, r0 - cmp r1, 0 - bne _081477AC - movs r0, 0 - b _081477AE - .align 2, 0 -_081477A4: .4byte gSaveBlock2 -_081477A8: .4byte gMain -_081477AC: - movs r0, 0x1 -_081477AE: - pop {r1} - bx r1 - thumb_func_end sub_8147774 - - thumb_func_start sub_81477B4 -sub_81477B4: @ 81477B4 - push {lr} - ldr r0, _081477E8 @ =sub_814782C - movs r1, 0x9 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _081477EC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0xA] - strh r0, [r1, 0xC] - movs r0, 0x2 - strh r0, [r1, 0x10] - movs r0, 0x5 - strh r0, [r1, 0x12] - movs r0, 0x32 - strh r0, [r1, 0x14] - movs r0, 0 - bl SetCameraPanningCallback - pop {r0} - bx r0 - .align 2, 0 -_081477E8: .4byte sub_814782C -_081477EC: .4byte gTasks - thumb_func_end sub_81477B4 - - thumb_func_start sub_81477F0 -sub_81477F0: @ 81477F0 - push {lr} - ldr r0, _08147824 @ =sub_814782C - movs r1, 0x9 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08147828 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0xA] - strh r0, [r1, 0xC] - movs r0, 0x3 - strh r0, [r1, 0x10] - movs r0, 0x5 - strh r0, [r1, 0x12] - movs r0, 0x2 - strh r0, [r1, 0x14] - movs r0, 0 - bl SetCameraPanningCallback - pop {r0} - bx r0 - .align 2, 0 -_08147824: .4byte sub_814782C -_08147828: .4byte gTasks - thumb_func_end sub_81477F0 - - thumb_func_start sub_814782C -sub_814782C: @ 814782C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0814788C @ =gTasks - adds r4, r0, r1 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r2, 0x12 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, 0 - bne _08147884 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x10] - negs r0, r0 - strh r0, [r4, 0x10] - movs r0, 0x10 - ldrsh r1, [r4, r0] - movs r0, 0 - bl SetCameraPanning - movs r2, 0xC - ldrsh r1, [r4, r2] - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _08147884 - adds r0, r5, 0 - bl DestroyTask - bl EnableBothScriptContexts - bl InstallCameraPanAheadCallback -_08147884: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814788C: .4byte gTasks - thumb_func_end sub_814782C - thumb_func_start sub_8147890 sub_8147890: @ 8147890 push {lr} @@ -962,7 +365,7 @@ _08147B70: str r4, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] - bl sub_800D334 + bl HandleLoadSpecialPokePic b _08147C40 .align 2, 0 _08147BAC: .4byte gMonFrontPicTable diff --git a/asm/pokedex.s b/asm/pokedex.s index fe069bcf8..8fd971840 100644 --- a/asm/pokedex.s +++ b/asm/pokedex.s @@ -158,7 +158,7 @@ _080908A0: movs r2, 0 movs r3, 0xD0 bl sub_8072BD8 - bl IsNationalPokedex + bl IsNationalPokedexEnabled cmp r0, 0 bne _080908CC adds r0, r6, 0 @@ -719,8 +719,8 @@ GetPokemonCategory: @ 8090D3C _08090D50: .4byte gPokedexEntries thumb_func_end GetPokemonCategory - thumb_func_start sub_8090D54 -sub_8090D54: @ 8090D54 + thumb_func_start GetPokedexHeightWeight +GetPokedexHeightWeight: @ 8090D54 push {lr} lsls r0, 16 lsrs r2, r0, 16 @@ -754,7 +754,7 @@ _08090D88: bx r1 .align 2, 0 _08090D8C: .4byte gPokedexEntries - thumb_func_end sub_8090D54 + thumb_func_end GetPokedexHeightWeight thumb_func_start sub_8090D90 sub_8090D90: @ 8090D90 @@ -2336,7 +2336,7 @@ _08091958: str r4, [sp, 0x8] movs r4, 0x1 str r4, [sp, 0xC] - bl sub_800D378 + bl LoadSpecialPokePic b _080919CE .align 2, 0 _0809198C: .4byte gMonFrontPicTable @@ -2367,7 +2367,7 @@ _0809199C: str r4, [sp, 0x8] movs r4, 0x1 str r4, [sp, 0xC] - bl sub_800D378 + bl LoadSpecialPokePic _080919CE: ldr r0, _08091A40 @ =gMonPaletteTable adds r0, r6, r0 @@ -3018,7 +3018,7 @@ _08091EA6: movs r1, 0x1 movs r2, 0x7E bl LoadPalette - bl IsNationalPokedex + bl IsNationalPokedexEnabled cmp r0, 0 bne _08091F10 movs r4, 0 @@ -3377,7 +3377,7 @@ sub_80921B0: @ 80921B0 ldrsh r0, [r0, r1] cmp r0, 0 beq _080921E4 - bl IsNationalPokedex + bl IsNationalPokedexEnabled ldr r6, _080921DC @ =gUnknown_083B586C cmp r0, 0 bne _080921F0 @@ -3388,7 +3388,7 @@ _080921D8: .4byte gTasks _080921DC: .4byte gUnknown_083B586C _080921E0: .4byte gUnknown_083B58A4 _080921E4: - bl IsNationalPokedex + bl IsNationalPokedexEnabled ldr r6, _0809221C @ =gUnknown_083B5850 cmp r0, 0 bne _080921F0 @@ -3458,7 +3458,7 @@ _08092230: bl sub_8092E10 ldr r4, _080922C8 @ =gSaveBlock2 strb r0, [r4, 0x19] - bl IsNationalPokedex + bl IsNationalPokedexEnabled cmp r0, 0 bne _08092288 movs r0, 0 @@ -4269,7 +4269,7 @@ _08092904: .align 2, 0 _08092910: .4byte gUnknown_083B57FC _08092914: - bl IsNationalPokedex + bl IsNationalPokedexEnabled cmp r0, 0 bne _08092940 ldr r2, _0809293C @ =gUnknown_083B57FC @@ -4647,7 +4647,7 @@ sub_8092B68: @ 8092B68 movs r2, 0x40 movs r3, 0x1 bl MenuPrint_PixelCoords - bl IsNationalPokedex + bl IsNationalPokedexEnabled cmp r0, 0 beq _08092C5E ldrh r0, [r6, 0xE] diff --git a/asm/pokemon_3.s b/asm/pokemon_3.s new file mode 100644 index 000000000..d4bb815b3 --- /dev/null +++ b/asm/pokemon_3.s @@ -0,0 +1,2826 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start unref_sub_803F938 +unref_sub_803F938: @ 803F938 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r5, r1, 0 + mov r10, r2 + lsls r0, 16 + movs r1, 0x9A + lsls r1, 17 + cmp r0, r1 + bne _0803FA42 + ldr r1, _0803FA04 @ =gUnknown_081FAF4C + ldr r0, [r1] + cmp r10, r0 + beq _0803FA42 + ldr r0, [r1, 0x8] + cmp r10, r0 + beq _0803FA42 + movs r6, 0 +_0803F962: + lsls r3, r6, 3 + adds r3, r6 + lsls r3, 2 + ldr r0, _0803FA08 @ =gSpindaSpotGraphics + adds r4, r3, r0 + ldrb r1, [r4] + adds r1, 0xF8 + movs r2, 0xF + adds r0, r5, 0 + ands r0, r2 + adds r1, r0 + lsls r1, 24 + lsrs r1, 24 + mov r12, r1 + ldrb r1, [r4, 0x1] + adds r1, 0xF8 + movs r0, 0xF0 + ands r0, r5 + lsrs r0, 4 + adds r1, r0 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0 + lsrs r5, 8 + str r5, [sp, 0x4] + adds r6, 0x1 + str r6, [sp] + mov r9, r3 +_0803F99A: + lsls r0, r2, 1 + add r0, r9 + ldr r3, _0803FA0C @ =gSpindaSpotGraphics + 0x2 + adds r0, r3 + ldrh r3, [r0] + mov r4, r12 + adds r0, r4, 0 + adds r0, 0x10 + adds r7, r1, 0x1 + adds r2, 0x1 + mov r8, r2 + cmp r4, r0 + bge _0803FA30 + lsrs r0, r1, 3 + lsls r6, r0, 8 + movs r0, 0x7 + ands r1, r0 + lsls r5, r1, 2 +_0803F9BE: + adds r0, r4, 0 + cmp r4, 0 + bge _0803F9C6 + adds r0, r4, 0x7 +_0803F9C6: + asrs r0, 3 + lsls r2, r0, 5 + add r2, r10 + lsls r0, 3 + subs r0, r4, r0 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r2, r0 + adds r2, r6 + adds r2, r5 + movs r1, 0x1 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0803FA24 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _0803FA10 + ldrb r1, [r2] + movs r0, 0xF0 + ands r0, r1 + subs r0, 0x10 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x20 + bhi _0803FA24 + adds r0, r1, 0 + adds r0, 0x40 + b _0803FA22 + .align 2, 0 +_0803FA04: .4byte gUnknown_081FAF4C +_0803FA08: .4byte gSpindaSpotGraphics +_0803FA0C: .4byte gSpindaSpotGraphics + 0x2 +_0803FA10: + ldrb r1, [r2] + movs r0, 0xF + ands r0, r1 + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bhi _0803FA24 + adds r0, r1, 0x4 +_0803FA22: + strb r0, [r2] +_0803FA24: + asrs r3, 1 + adds r4, 0x1 + mov r0, r12 + adds r0, 0x10 + cmp r4, r0 + blt _0803F9BE +_0803FA30: + lsls r0, r7, 24 + lsrs r1, r0, 24 + mov r2, r8 + cmp r2, 0xF + ble _0803F99A + ldr r5, [sp, 0x4] + ldr r6, [sp] + cmp r6, 0x3 + ble _0803F962 +_0803FA42: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end unref_sub_803F938 + + thumb_func_start DrawSpindaSpots +DrawSpindaSpots: @ 803FA54 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r5, r1, 0 + str r2, [sp] + lsls r0, 16 + lsls r3, 24 + lsrs r3, 24 + movs r1, 0x9A + lsls r1, 17 + cmp r0, r1 + bne _0803FB56 + cmp r3, 0 + beq _0803FB56 + movs r6, 0 +_0803FA78: + lsls r3, r6, 3 + adds r3, r6 + lsls r3, 2 + ldr r0, _0803FB1C @ =gSpindaSpotGraphics + adds r4, r3, r0 + ldrb r1, [r4] + adds r1, 0xF8 + movs r2, 0xF + adds r0, r5, 0 + ands r0, r2 + adds r1, r0 + lsls r1, 24 + lsrs r1, 24 + mov r12, r1 + ldrb r1, [r4, 0x1] + adds r1, 0xF8 + movs r0, 0xF0 + ands r0, r5 + lsrs r0, 4 + adds r1, r0 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0 + lsrs r5, 8 + str r5, [sp, 0x4] + adds r6, 0x1 + mov r10, r6 + mov r9, r3 +_0803FAB0: + lsls r0, r2, 1 + add r0, r9 + ldr r3, _0803FB20 @ =gSpindaSpotGraphics + 0x2 + adds r0, r3 + ldrh r3, [r0] + mov r4, r12 + adds r0, r4, 0 + adds r0, 0x10 + adds r7, r1, 0x1 + adds r2, 0x1 + mov r8, r2 + cmp r4, r0 + bge _0803FB44 + lsrs r0, r1, 3 + lsls r6, r0, 8 + movs r0, 0x7 + ands r1, r0 + lsls r5, r1, 2 +_0803FAD4: + adds r0, r4, 0 + cmp r4, 0 + bge _0803FADC + adds r0, r4, 0x7 +_0803FADC: + asrs r0, 3 + lsls r2, r0, 5 + ldr r1, [sp] + adds r2, r1, r2 + lsls r0, 3 + subs r0, r4, r0 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r2, r0 + adds r2, r6 + adds r2, r5 + movs r1, 0x1 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0803FB38 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _0803FB24 + ldrb r1, [r2] + movs r0, 0xF0 + ands r0, r1 + subs r0, 0x10 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x20 + bhi _0803FB38 + adds r0, r1, 0 + adds r0, 0x40 + b _0803FB36 + .align 2, 0 +_0803FB1C: .4byte gSpindaSpotGraphics +_0803FB20: .4byte gSpindaSpotGraphics + 0x2 +_0803FB24: + ldrb r1, [r2] + movs r0, 0xF + ands r0, r1 + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bhi _0803FB38 + adds r0, r1, 0x4 +_0803FB36: + strb r0, [r2] +_0803FB38: + asrs r3, 1 + adds r4, 0x1 + mov r0, r12 + adds r0, 0x10 + cmp r4, r0 + blt _0803FAD4 +_0803FB44: + lsls r0, r7, 24 + lsrs r1, r0, 24 + mov r2, r8 + cmp r2, 0xF + ble _0803FAB0 + ldr r5, [sp, 0x4] + mov r6, r10 + cmp r6, 0x3 + ble _0803FA78 +_0803FB56: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end DrawSpindaSpots + + .if REVISION >= 1 + thumb_func_start sub_803FB68 +sub_803FB68: @ 803FB68 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + adds r5, r0, 0 + lsls r1, 16 + lsrs r7, r1, 16 + lsls r2, 16 + lsrs r2, 16 + mov r8, r2 + ldr r0, =gStringVar1 + mov r9, r0 + adds r0, r5, 0 + movs r1, 0x2 + mov r2, r9 + bl GetMonData + mov r4, sp + adds r0, r5, 0 + movs r1, 0x3 + mov r2, sp + bl GetMonData + strb r0, [r4, 0x0] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _0803FBC4 + movs r6, 0xB + adds r0, r7, 0 + muls r0, r6 + ldr r4, =gSpeciesNames + adds r0, r4 + mov r1, r9 + bl StringCompareWithoutExtCtrlCodes + cmp r0, 0 + bne _0803FBC4 + mov r2, r8 + muls r2, r6 + adds r2, r4 + adds r0, r5, 0 + movs r1, 0x2 + bl SetMonData +_0803FBC4: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_803FB68 + .else + thumb_func_start sub_803FB68 +sub_803FB68: @ 803FB68 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + adds r4, r1, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r2, 16 + lsrs r2, 16 + mov r8, r2 + ldr r5, _0803FBB4 @ =gStringVar1 + movs r1, 0x2 + adds r2, r5, 0 + bl GetMonData + movs r6, 0xB + adds r0, r4, 0 + muls r0, r6 + ldr r4, _0803FBB8 @ =gSpeciesNames + adds r0, r4 + adds r1, r5, 0 + bl StringCompareWithoutExtCtrlCodes + cmp r0, 0 + bne _0803FBA8 + mov r2, r8 + muls r2, r6 + adds r2, r4 + adds r0, r7, 0 + movs r1, 0x2 + bl SetMonData +_0803FBA8: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803FBB4: .4byte gStringVar1 +_0803FBB8: .4byte gSpeciesNames + thumb_func_end sub_803FB68 + .endif + + thumb_func_start sub_803FBBC +sub_803FBBC: @ 803FBBC + push {r4,r5,lr} + movs r5, 0 + ldr r4, _0803FBE4 @ =gLinkPlayers + bl GetMultiplayerId + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r0, [r1, 0x18] + cmp r0, 0x2 + bgt _0803FBE8 + cmp r0, 0x1 + bge _0803FBF0 + cmp r0, 0 + beq _0803FBEC + b _0803FBF2 + .align 2, 0 +_0803FBE4: .4byte gLinkPlayers +_0803FBE8: + cmp r0, 0x3 + bne _0803FBF2 +_0803FBEC: + movs r5, 0 + b _0803FBF2 +_0803FBF0: + movs r5, 0x1 +_0803FBF2: + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_803FBBC + + thumb_func_start sub_803FBFC +sub_803FBFC: @ 803FBFC + push {lr} + lsls r0, 24 + lsrs r0, 24 + movs r3, 0 + ldr r2, _0803FC20 @ =gLinkPlayers + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r1, 0x18] + cmp r0, 0x2 + bgt _0803FC24 + cmp r0, 0x1 + bge _0803FC2C + cmp r0, 0 + beq _0803FC28 + b _0803FC2E + .align 2, 0 +_0803FC20: .4byte gLinkPlayers +_0803FC24: + cmp r0, 0x3 + bne _0803FC2E +_0803FC28: + movs r3, 0 + b _0803FC2E +_0803FC2C: + movs r3, 0x1 +_0803FC2E: + adds r0, r3, 0 + pop {r1} + bx r1 + thumb_func_end sub_803FBFC + + thumb_func_start sub_803FC34 +sub_803FC34: @ 803FC34 + push {lr} + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0 + ldr r1, _0803FC40 @ =gLinkPlayers + b _0803FC4C + .align 2, 0 +_0803FC40: .4byte gLinkPlayers +_0803FC44: + adds r1, 0x1C + adds r2, 0x1 + cmp r2, 0x3 + bgt _0803FC52 +_0803FC4C: + ldrh r0, [r1, 0x18] + cmp r0, r3 + bne _0803FC44 +_0803FC52: + adds r0, r2, 0 + pop {r1} + bx r1 + thumb_func_end sub_803FC34 + + thumb_func_start sub_803FC58 +sub_803FC58: @ 803FC58 + lsls r0, 16 + lsrs r0, 16 + ldr r2, _0803FC70 @ =gTrainers + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrb r1, [r1, 0x2] + movs r0, 0x7F + ands r0, r1 + bx lr + .align 2, 0 +_0803FC70: .4byte gTrainers + thumb_func_end sub_803FC58 + + thumb_func_start nature_stat_mod +nature_stat_mod: @ 803FC74 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 16 + lsrs r3, r1, 16 + lsls r2, 24 + lsrs r5, r2, 24 + movs r0, 0xFF + lsls r0, 24 + adds r2, r0 + lsrs r2, 24 + cmp r2, 0x4 + bls _0803FC92 + adds r0, r3, 0 + b _0803FCCE +_0803FC92: + ldr r0, _0803FCB4 @ =gNatureStatTable + lsls r1, r4, 2 + adds r1, r4 + subs r1, 0x1 + adds r1, r5, r1 + adds r1, r0 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0803FCB8 + cmp r1, 0x1 + bne _0803FCCC + movs r0, 0x6E + b _0803FCBA + .align 2, 0 +_0803FCB4: .4byte gNatureStatTable +_0803FCB8: + movs r0, 0x5A +_0803FCBA: + muls r0, r3 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __udivsi3 + lsls r0, 16 + lsrs r0, 16 + b _0803FCCE +_0803FCCC: + adds r0, r3, 0 +_0803FCCE: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end nature_stat_mod + + thumb_func_start AdjustFriendship +AdjustFriendship: @ 803FCD4 + push {r4-r7,lr} + sub sp, 0x4 + adds r7, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + movs r1, 0x41 + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r6, r0, 16 + adds r0, r7, 0 + movs r1, 0xC + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xAF + bne _0803FD34 + ldr r0, _0803FD14 @ =gMain + ldr r1, _0803FD18 @ =0x0000043d + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0803FD20 + ldr r0, _0803FD1C @ =gEnigmaBerries + ldrb r4, [r0, 0x7] + b _0803FD3C + .align 2, 0 +_0803FD14: .4byte gMain +_0803FD18: .4byte 0x0000043d +_0803FD1C: .4byte gEnigmaBerries +_0803FD20: + ldr r0, _0803FD2C @ =gSaveBlock1 + ldr r1, _0803FD30 @ =0x00003688 + adds r0, r1 + ldrb r4, [r0] + b _0803FD3C + .align 2, 0 +_0803FD2C: .4byte gSaveBlock1 +_0803FD30: .4byte 0x00003688 +_0803FD34: + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r4, r0, 24 +_0803FD3C: + cmp r6, 0 + bne _0803FD42 + b _0803FE56 +_0803FD42: + movs r0, 0xCE + lsls r0, 1 + cmp r6, r0 + bne _0803FD4C + b _0803FE56 +_0803FD4C: + movs r6, 0 + adds r0, r7, 0 + movs r1, 0x20 + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + mov r1, sp + strh r0, [r1] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x63 + ble _0803FD6A + movs r6, 0x1 +_0803FD6A: + cmp r0, 0xC7 + ble _0803FD74 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_0803FD74: + cmp r5, 0x5 + bne _0803FD84 + bl Random + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + bne _0803FE56 +_0803FD84: + cmp r5, 0x3 + bne _0803FDB4 + ldr r0, _0803FE60 @ =gBattleTypeFlags + ldrh r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0803FE56 + ldr r2, _0803FE64 @ =gTrainers + ldr r0, _0803FE68 @ =gTrainerBattleOpponent + ldrh r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r1, [r0, 0x1] + adds r0, r1, 0 + subs r0, 0x18 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bls _0803FDB4 + cmp r1, 0x20 + bne _0803FE56 +_0803FDB4: + ldr r1, _0803FE6C @ =gUnknown_082082FE + lsls r0, r5, 1 + adds r0, r5 + adds r0, r6, r0 + adds r0, r1 + ldrb r2, [r0] + movs r1, 0 + ldrsb r1, [r0, r1] + cmp r1, 0 + ble _0803FDDA + cmp r4, 0x1B + bne _0803FDDA + movs r0, 0x96 + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + lsls r0, 24 + lsrs r2, r0, 24 +_0803FDDA: + lsls r2, 24 + asrs r2, 24 + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + adds r0, r2 + mov r1, sp + strh r0, [r1] + cmp r2, 0 + ble _0803FE2C + adds r0, r7, 0 + movs r1, 0x26 + movs r2, 0 + bl GetMonData + cmp r0, 0xB + bne _0803FE08 + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + adds r0, 0x1 + mov r1, sp + strh r0, [r1] +_0803FE08: + adds r0, r7, 0 + movs r1, 0x23 + movs r2, 0 + bl GetMonData + adds r4, r0, 0 + bl sav1_map_get_name + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bne _0803FE2C + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + adds r0, 0x1 + mov r1, sp + strh r0, [r1] +_0803FE2C: + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bge _0803FE3C + movs r1, 0 + mov r0, sp + strh r1, [r0] +_0803FE3C: + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0xFF + ble _0803FE4C + movs r1, 0xFF + mov r0, sp + strh r1, [r0] +_0803FE4C: + adds r0, r7, 0 + movs r1, 0x20 + mov r2, sp + bl SetMonData +_0803FE56: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803FE60: .4byte gBattleTypeFlags +_0803FE64: .4byte gTrainers +_0803FE68: .4byte gTrainerBattleOpponent +_0803FE6C: .4byte gUnknown_082082FE + thumb_func_end AdjustFriendship + + thumb_func_start MonGainEVs +MonGainEVs: @ 803FE70 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + mov r8, r0 + lsls r1, 16 + lsrs r5, r1, 16 + movs r4, 0 + movs r7, 0 + movs r6, 0 +_0803FE84: + adds r1, r6, 0 + adds r1, 0x1A + mov r0, r8 + movs r2, 0 + bl GetMonData + mov r2, sp + adds r1, r2, r6 + strb r0, [r1] + ldrb r0, [r1] + adds r0, r7, r0 + lsls r0, 16 + lsrs r7, r0, 16 + adds r6, 0x1 + cmp r6, 0x5 + ble _0803FE84 + movs r6, 0 + b _08040006 +_0803FEA8: + mov r0, r8 + movs r1, 0 + bl CheckPartyHasHadPokerus + lsls r0, 24 + movs r2, 0x1 + cmp r0, 0 + beq _0803FEBA + movs r2, 0x2 +_0803FEBA: + cmp r6, 0x5 + bhi _0803FF5C + lsls r0, r6, 2 + ldr r1, _0803FEC8 @ =_0803FECC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803FEC8: .4byte _0803FECC + .align 2, 0 +_0803FECC: + .4byte _0803FEE4 + .4byte _0803FEF8 + .4byte _0803FF0C + .4byte _0803FF20 + .4byte _0803FF34 + .4byte _0803FF48 +_0803FEE4: + ldr r0, _0803FEF4 @ =gBaseStats + lsls r1, r5, 3 + subs r1, r5 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0xA] + lsls r0, 30 + b _0803FF56 + .align 2, 0 +_0803FEF4: .4byte gBaseStats +_0803FEF8: + ldr r0, _0803FF08 @ =gBaseStats + lsls r1, r5, 3 + subs r1, r5 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0xA] + b _0803FF54 + .align 2, 0 +_0803FF08: .4byte gBaseStats +_0803FF0C: + ldr r0, _0803FF1C @ =gBaseStats + lsls r1, r5, 3 + subs r1, r5 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0xA] + lsls r0, 26 + b _0803FF56 + .align 2, 0 +_0803FF1C: .4byte gBaseStats +_0803FF20: + ldr r0, _0803FF30 @ =gBaseStats + lsls r1, r5, 3 + subs r1, r5 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0xA] + lsrs r0, 6 + b _0803FF58 + .align 2, 0 +_0803FF30: .4byte gBaseStats +_0803FF34: + ldr r0, _0803FF44 @ =gBaseStats + lsls r1, r5, 3 + subs r1, r5 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0xB] + lsls r0, 30 + b _0803FF56 + .align 2, 0 +_0803FF44: .4byte gBaseStats +_0803FF48: + ldr r0, _0803FF84 @ =gBaseStats + lsls r1, r5, 3 + subs r1, r5 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0xB] +_0803FF54: + lsls r0, 28 +_0803FF56: + lsrs r0, 30 +_0803FF58: + adds r4, r0, 0 + muls r4, r2 +_0803FF5C: + mov r0, r8 + movs r1, 0xC + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xAF + bne _0803FFA8 + ldr r0, _0803FF88 @ =gMain + ldr r1, _0803FF8C @ =0x0000043d + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0803FF94 + ldr r0, _0803FF90 @ =gEnigmaBerries + ldrb r0, [r0, 0x7] + b _0803FFB0 + .align 2, 0 +_0803FF84: .4byte gBaseStats +_0803FF88: .4byte gMain +_0803FF8C: .4byte 0x0000043d +_0803FF90: .4byte gEnigmaBerries +_0803FF94: + ldr r0, _0803FFA0 @ =gSaveBlock1 + ldr r2, _0803FFA4 @ =0x00003688 + adds r0, r2 + ldrb r0, [r0] + b _0803FFB0 + .align 2, 0 +_0803FFA0: .4byte gSaveBlock1 +_0803FFA4: .4byte 0x00003688 +_0803FFA8: + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r0, 24 +_0803FFB0: + cmp r0, 0x18 + bne _0803FFB8 + lsls r0, r4, 17 + lsrs r4, r0, 16 +_0803FFB8: + lsls r0, r4, 16 + asrs r2, r0, 16 + adds r1, r7, r2 + movs r0, 0xFF + lsls r0, 1 + cmp r1, r0 + ble _0803FFD0 + adds r0, r2, r0 + adds r1, r7, r4 + subs r0, r1 + lsls r0, 16 + lsrs r4, r0, 16 +_0803FFD0: + mov r0, sp + adds r2, r0, r6 + ldrb r3, [r2] + lsls r0, r4, 16 + asrs r1, r0, 16 + adds r0, r3, r1 + cmp r0, 0xFF + ble _0803FFEC + adds r0, r1, 0 + adds r0, 0xFF + adds r1, r3, r4 + subs r0, r1 + lsls r0, 16 + lsrs r4, r0, 16 +_0803FFEC: + adds r0, r3, r4 + strb r0, [r2] + adds r0, r7, r4 + lsls r0, 16 + lsrs r7, r0, 16 + adds r1, r6, 0 + adds r1, 0x1A + mov r0, r8 + bl SetMonData + adds r6, 0x1 + cmp r6, 0x5 + bgt _0804000E +_08040006: + ldr r0, _0804001C @ =0x000001fd + cmp r7, r0 + bhi _0804000E + b _0803FEA8 +_0804000E: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804001C: .4byte 0x000001fd + thumb_func_end MonGainEVs + + thumb_func_start GetMonEVCount +GetMonEVCount: @ 8040020 + push {r4-r6,lr} + adds r6, r0, 0 + movs r5, 0 + movs r4, 0 +_08040028: + adds r1, r4, 0 + adds r1, 0x1A + adds r0, r6, 0 + movs r2, 0 + bl GetMonData + adds r0, r5, r0 + lsls r0, 16 + lsrs r5, r0, 16 + adds r4, 0x1 + cmp r4, 0x5 + ble _08040028 + adds r0, r5, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end GetMonEVCount + + thumb_func_start RandomlyGivePartyPokerus +RandomlyGivePartyPokerus: @ 8040048 + push {r4-r6,lr} + sub sp, 0x4 + adds r6, r0, 0 + bl Random + lsls r0, 16 + lsrs r5, r0, 16 + movs r0, 0x80 + lsls r0, 7 + cmp r5, r0 + beq _0804006E + movs r0, 0x80 + lsls r0, 8 + cmp r5, r0 + beq _0804006E + movs r0, 0xC0 + lsls r0, 8 + cmp r5, r0 + bne _08040104 +_0804006E: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x6 + bl __umodsi3 + lsls r0, 16 + lsrs r5, r0, 16 + movs r0, 0x64 + muls r0, r5 + adds r4, r6, r0 + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + cmp r0, 0 + beq _0804006E + adds r0, r4, 0 + movs r1, 0x2D + movs r2, 0 + bl GetMonData + cmp r0, 0 + bne _0804006E + ldr r1, _0804010C @ =gBitTable + lsls r0, r5, 2 + adds r0, r1 + ldrb r1, [r0] + adds r0, r6, 0 + bl CheckPartyHasHadPokerus + lsls r0, 24 + cmp r0, 0 + bne _08040104 + mov r4, sp +_080400B8: + bl Random + lsls r0, 24 + lsrs r0, 24 + strb r0, [r4] + cmp r0, 0 + beq _080400B8 + movs r0, 0xF0 + mov r1, sp + ldrb r1, [r1] + ands r0, r1 + cmp r0, 0 + beq _080400DA + movs r0, 0x7 + ands r1, r0 + mov r0, sp + strb r1, [r0] +_080400DA: + mov r0, sp + ldrb r0, [r0] + lsls r1, r0, 4 + orrs r0, r1 + lsls r0, 24 + lsrs r0, 24 + mov r1, sp + strb r0, [r1] + movs r1, 0xF3 + ands r1, r0 + mov r0, sp + strb r1, [r0] + adds r1, 0x1 + strb r1, [r0] + movs r0, 0x64 + muls r0, r5 + adds r0, r6, r0 + movs r1, 0x22 + mov r2, sp + bl SetMonData +_08040104: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804010C: .4byte gBitTable + thumb_func_end RandomlyGivePartyPokerus + + thumb_func_start CheckPartyPokerus +CheckPartyPokerus: @ 8040110 + push {r4-r7,lr} + sub sp, 0x4 + adds r7, r0, 0 + lsls r1, 24 + lsrs r4, r1, 24 + movs r3, 0 + movs r6, 0x1 + movs r5, 0 + cmp r4, 0 + beq _08040158 +_08040124: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _0804014C + movs r0, 0x64 + muls r0, r3 + adds r0, r7, r0 + movs r1, 0x22 + movs r2, 0 + str r3, [sp] + bl GetMonData + movs r1, 0xF + ands r1, r0 + ldr r3, [sp] + cmp r1, 0 + beq _0804014C + orrs r5, r6 + lsls r0, r5, 24 + lsrs r5, r0, 24 +_0804014C: + adds r3, 0x1 + lsls r6, 1 + lsrs r4, 1 + cmp r4, 0 + bne _08040124 + b _0804016C +_08040158: + adds r0, r7, 0 + movs r1, 0x22 + movs r2, 0 + bl GetMonData + movs r1, 0xF + ands r1, r0 + cmp r1, 0 + beq _0804016C + movs r5, 0x1 +_0804016C: + adds r0, r5, 0 + add sp, 0x4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end CheckPartyPokerus + + thumb_func_start CheckPartyHasHadPokerus +CheckPartyHasHadPokerus: @ 8040178 + push {r4-r7,lr} + sub sp, 0x4 + adds r7, r0, 0 + lsls r1, 24 + lsrs r4, r1, 24 + movs r3, 0 + movs r6, 0x1 + movs r5, 0 + cmp r4, 0 + beq _080401BC +_0804018C: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _080401B0 + movs r0, 0x64 + muls r0, r3 + adds r0, r7, r0 + movs r1, 0x22 + movs r2, 0 + str r3, [sp] + bl GetMonData + ldr r3, [sp] + cmp r0, 0 + beq _080401B0 + orrs r5, r6 + lsls r0, r5, 24 + lsrs r5, r0, 24 +_080401B0: + adds r3, 0x1 + lsls r6, 1 + lsrs r4, 1 + cmp r4, 0 + bne _0804018C + b _080401CC +_080401BC: + adds r0, r7, 0 + movs r1, 0x22 + movs r2, 0 + bl GetMonData + cmp r0, 0 + beq _080401CC + movs r5, 0x1 +_080401CC: + adds r0, r5, 0 + add sp, 0x4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end CheckPartyHasHadPokerus + + thumb_func_start UpdatePartyPokerusTime +UpdatePartyPokerusTime: @ 80401D8 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 16 + lsrs r7, r0, 16 + movs r5, 0 + mov r6, sp +_080401E4: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _08040224 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + cmp r0, 0 + beq _0804023C + adds r0, r4, 0 + movs r1, 0x22 + movs r2, 0 + bl GetMonData + lsls r0, 24 + lsrs r0, 24 + strb r0, [r6] + movs r1, 0xF + adds r2, r0, 0 + ands r1, r2 + cmp r1, 0 + beq _0804023C + cmp r1, r7 + bcc _0804021E + cmp r7, 0x4 + bls _08040228 +_0804021E: + movs r0, 0xF0 + ands r0, r2 + b _0804022A + .align 2, 0 +_08040224: .4byte gPlayerParty +_08040228: + subs r0, r2, r7 +_0804022A: + strb r0, [r6] + movs r0, 0x64 + muls r0, r5 + ldr r1, _0804024C @ =gPlayerParty + adds r0, r1 + movs r1, 0x22 + mov r2, sp + bl SetMonData +_0804023C: + adds r5, 0x1 + cmp r5, 0x5 + ble _080401E4 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804024C: .4byte gPlayerParty + thumb_func_end UpdatePartyPokerusTime + + thumb_func_start PartySpreadPokerus +PartySpreadPokerus: @ 8040250 + push {r4-r7,lr} + sub sp, 0x4 + adds r7, r0, 0 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + bne _080402F6 + movs r5, 0 +_0804026C: + movs r0, 0x64 + adds r6, r5, 0 + muls r6, r0 + adds r4, r7, r6 + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + cmp r0, 0 + beq _080402F0 + adds r0, r4, 0 + movs r1, 0x22 + movs r2, 0 + bl GetMonData + lsls r0, 24 + lsrs r1, r0, 24 + mov r0, sp + strb r1, [r0] + cmp r1, 0 + beq _080402F0 + movs r0, 0xF + ands r0, r1 + cmp r0, 0 + beq _080402F0 + cmp r5, 0 + beq _080402C6 + adds r0, r6, 0 + subs r0, 0x64 + adds r4, r7, r0 + adds r0, r4, 0 + movs r1, 0x22 + movs r2, 0 + bl GetMonData + movs r1, 0xF0 + ands r1, r0 + cmp r1, 0 + bne _080402C6 + adds r0, r4, 0 + movs r1, 0x22 + mov r2, sp + bl SetMonData +_080402C6: + cmp r5, 0x5 + beq _080402F0 + movs r0, 0x64 + muls r0, r5 + adds r0, 0x64 + adds r4, r7, r0 + adds r0, r4, 0 + movs r1, 0x22 + movs r2, 0 + bl GetMonData + movs r1, 0xF0 + ands r1, r0 + cmp r1, 0 + bne _080402F0 + adds r0, r4, 0 + movs r1, 0x22 + mov r2, sp + bl SetMonData + adds r5, 0x1 +_080402F0: + adds r5, 0x1 + cmp r5, 0x5 + ble _0804026C +_080402F6: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end PartySpreadPokerus + + thumb_func_start TryIncrementMonLevel +TryIncrementMonLevel: @ 8040300 + push {r4-r6,lr} + sub sp, 0x4 + adds r6, r0, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r6, 0 + movs r1, 0x38 + movs r2, 0 + bl GetMonData + adds r0, 0x1 + mov r1, sp + strb r0, [r1] + adds r0, r6, 0 + movs r1, 0x19 + movs r2, 0 + bl GetMonData + ldr r5, _08040358 @ =gExperienceTables + mov r1, sp + ldrb r2, [r1] + lsls r2, 2 + ldr r3, _0804035C @ =gBaseStats + lsls r1, r4, 3 + subs r1, r4 + lsls r1, 2 + adds r1, r3 + ldrb r3, [r1, 0x13] + movs r1, 0xCA + lsls r1, 1 + muls r1, r3 + adds r2, r1 + adds r2, r5 + ldr r1, [r2] + cmp r0, r1 + bhi _08040360 + movs r0, 0 + b _0804036C + .align 2, 0 +_08040358: .4byte gExperienceTables +_0804035C: .4byte gBaseStats +_08040360: + adds r0, r6, 0 + movs r1, 0x38 + mov r2, sp + bl SetMonData + movs r0, 0x1 +_0804036C: + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end TryIncrementMonLevel + + thumb_func_start CanMonLearnTMHM +CanMonLearnTMHM: @ 8040374 + push {r4,r5,lr} + lsls r1, 24 + lsrs r4, r1, 24 + adds r5, r4, 0 + movs r1, 0x41 + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r1, r0, 16 + adds r3, r1, 0 + movs r0, 0xCE + lsls r0, 1 + cmp r1, r0 + bne _08040396 + movs r0, 0 + b _080403C2 +_08040396: + cmp r4, 0x1F + bls _080403B4 + adds r0, r4, 0 + subs r0, 0x20 + movs r2, 0x1 + lsls r2, r0 + ldr r0, _080403B0 @ =gTMHMLearnsets + lsls r1, 3 + adds r0, 0x4 + adds r1, r0 + ldr r0, [r1] + ands r0, r2 + b _080403C2 + .align 2, 0 +_080403B0: .4byte gTMHMLearnsets +_080403B4: + movs r1, 0x1 + lsls r1, r5 + ldr r2, _080403C8 @ =gTMHMLearnsets + lsls r0, r3, 3 + adds r0, r2 + ldr r0, [r0] + ands r0, r1 +_080403C2: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080403C8: .4byte gTMHMLearnsets + thumb_func_end CanMonLearnTMHM + + thumb_func_start sub_80403CC +sub_80403CC: @ 80403CC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + adds r6, r0, 0 + str r1, [sp, 0x8] + movs r0, 0 + mov r10, r0 + adds r0, r6, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r7, r0, 16 + adds r0, r6, 0 + movs r1, 0x38 + movs r2, 0 + bl GetMonData + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0xC] + movs r5, 0 + mov r4, sp +_08040402: + adds r1, r5, 0 + adds r1, 0xD + adds r0, r6, 0 + movs r2, 0 + bl GetMonData + strh r0, [r4] + adds r4, 0x2 + adds r5, 0x1 + cmp r5, 0x3 + ble _08040402 + movs r5, 0 + ldr r6, _08040510 @ =gLevelUpLearnsets + lsls r1, r7, 2 + adds r2, r1, r6 + ldr r3, [r2] + ldrh r0, [r3] + ldr r4, _08040514 @ =0x0000ffff + str r1, [sp, 0x14] + cmp r0, r4 + beq _080404FC + mov r9, r2 + str r3, [sp, 0x10] +_08040430: + lsls r2, r5, 1 + ldr r1, [sp, 0x10] + adds r0, r2, r1 + ldrh r3, [r0] + movs r0, 0xFE + lsls r0, 8 + ands r0, r3 + ldr r4, [sp, 0xC] + lsls r1, r4, 9 + adds r7, r2, 0 + adds r5, 0x1 + mov r12, r5 + cmp r0, r1 + bgt _080404E6 + movs r4, 0 + mov r0, sp + ldrh r1, [r0] + ldr r0, _08040518 @ =0x000001ff + ands r0, r3 + cmp r1, r0 + beq _08040480 + ldr r0, [sp, 0x14] + ldr r1, _08040510 @ =gLevelUpLearnsets + adds r6, r0, r1 + ldr r2, _08040518 @ =0x000001ff + mov r8, r2 + mov r3, sp + adds r5, r7, 0 +_08040468: + adds r3, 0x2 + adds r4, 0x1 + cmp r4, 0x3 + bgt _08040480 + ldr r0, [r6] + adds r0, r5, r0 + ldrh r1, [r0] + ldrh r2, [r3] + mov r0, r8 + ands r0, r1 + cmp r2, r0 + bne _08040468 +_08040480: + cmp r4, 0x4 + bne _080404E6 + movs r4, 0 + cmp r4, r10 + bge _080404C4 + mov r1, r9 + ldr r0, [r1] + adds r0, r7, r0 + ldrh r1, [r0] + ldr r0, [sp, 0x8] + ldrh r2, [r0] + ldr r0, _08040518 @ =0x000001ff + ands r0, r1 + cmp r2, r0 + beq _080404C4 + ldr r1, [sp, 0x14] + ldr r2, _08040510 @ =gLevelUpLearnsets + adds r6, r1, r2 + ldr r0, _08040518 @ =0x000001ff + mov r8, r0 + ldr r3, [sp, 0x8] + adds r5, r7, 0 +_080404AC: + adds r3, 0x2 + adds r4, 0x1 + cmp r4, r10 + bge _080404C4 + ldr r0, [r6] + adds r0, r5, r0 + ldrh r1, [r0] + ldrh r2, [r3] + mov r0, r8 + ands r0, r1 + cmp r2, r0 + bne _080404AC +_080404C4: + cmp r4, r10 + bne _080404E6 + mov r0, r10 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + lsls r2, r4, 1 + ldr r1, [sp, 0x8] + adds r2, r1 + mov r4, r9 + ldr r0, [r4] + adds r0, r7, r0 + ldrh r1, [r0] + ldr r0, _08040518 @ =0x000001ff + ands r0, r1 + strh r0, [r2] +_080404E6: + mov r5, r12 + cmp r5, 0x13 + bgt _080404FC + mov r1, r9 + ldr r0, [r1] + lsls r1, r5, 1 + adds r1, r0 + ldrh r0, [r1] + ldr r2, _08040514 @ =0x0000ffff + cmp r0, r2 + bne _08040430 +_080404FC: + mov r0, r10 + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08040510: .4byte gLevelUpLearnsets +_08040514: .4byte 0x0000ffff +_08040518: .4byte 0x000001ff + thumb_func_end sub_80403CC + + thumb_func_start sub_804051C +sub_804051C: @ 804051C + push {r4-r7,lr} + adds r6, r1, 0 + lsls r0, 16 + movs r5, 0 + movs r4, 0 + ldr r1, _08040568 @ =gLevelUpLearnsets + lsrs r0, 14 + adds r0, r1 + ldr r2, [r0] + ldrh r0, [r2] + ldr r1, _0804056C @ =0x0000ffff + cmp r0, r1 + beq _08040560 + ldr r0, _08040570 @ =0x000001ff + mov r12, r0 + adds r7, r1, 0 + adds r3, r2, 0 +_0804053E: + adds r1, r5, 0 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 1 + adds r1, r6 + ldrh r2, [r3] + mov r0, r12 + ands r0, r2 + strh r0, [r1] + adds r3, 0x2 + adds r4, 0x1 + cmp r4, 0x13 + bgt _08040560 + ldrh r0, [r3] + cmp r0, r7 + bne _0804053E +_08040560: + adds r0, r5, 0 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08040568: .4byte gLevelUpLearnsets +_0804056C: .4byte 0x0000ffff +_08040570: .4byte 0x000001ff + thumb_func_end sub_804051C + + thumb_func_start sub_8040574 +sub_8040574: @ 8040574 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x3C + adds r6, r0, 0 + movs r0, 0 + mov r10, r0 + adds r0, r6, 0 + movs r1, 0x41 + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r6, 0 + movs r1, 0x38 + movs r2, 0 + bl GetMonData + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x30] + movs r0, 0xCE + lsls r0, 1 + cmp r4, r0 + bne _080405B0 + movs r0, 0 + b _080406BA +_080405B0: + movs r5, 0 + lsls r4, 2 + str r4, [sp, 0x38] + mov r4, sp +_080405B8: + adds r1, r5, 0 + adds r1, 0xD + adds r0, r6, 0 + movs r2, 0 + bl GetMonData + strh r0, [r4] + adds r4, 0x2 + adds r5, 0x1 + cmp r5, 0x3 + ble _080405B8 + movs r5, 0 + ldr r3, _080406CC @ =gLevelUpLearnsets + ldr r2, [sp, 0x38] + adds r1, r2, r3 + ldr r0, [r1] + ldrh r0, [r0] + ldr r2, _080406D0 @ =0x0000ffff + cmp r0, r2 + beq _080406B8 + mov r9, r1 + mov r4, sp + adds r4, 0x8 + str r4, [sp, 0x34] +_080405E8: + mov r1, r9 + ldr r0, [r1] + lsls r2, r5, 1 + adds r0, r2, r0 + ldrh r3, [r0] + movs r0, 0xFE + lsls r0, 8 + ands r0, r3 + ldr r4, [sp, 0x30] + lsls r1, r4, 9 + adds r7, r2, 0 + adds r5, 0x1 + mov r12, r5 + cmp r0, r1 + bgt _080406A2 + movs r4, 0 + mov r0, sp + ldrh r1, [r0] + ldr r0, _080406D4 @ =0x000001ff + ands r0, r3 + cmp r1, r0 + beq _0804063A + ldr r0, [sp, 0x38] + ldr r1, _080406CC @ =gLevelUpLearnsets + adds r6, r0, r1 + ldr r2, _080406D4 @ =0x000001ff + mov r8, r2 + mov r3, sp + adds r5, r7, 0 +_08040622: + adds r3, 0x2 + adds r4, 0x1 + cmp r4, 0x3 + bgt _0804063A + ldr r0, [r6] + adds r0, r5, r0 + ldrh r1, [r0] + ldrh r2, [r3] + mov r0, r8 + ands r0, r1 + cmp r2, r0 + bne _08040622 +_0804063A: + cmp r4, 0x4 + bne _080406A2 + movs r4, 0 + cmp r4, r10 + bge _08040680 + mov r1, r9 + ldr r0, [r1] + adds r0, r7, r0 + ldrh r1, [r0] + ldr r0, [sp, 0x34] + ldrh r2, [r0] + ldr r0, _080406D4 @ =0x000001ff + ands r0, r1 + add r1, sp, 0x8 + cmp r2, r0 + beq _08040680 + ldr r2, [sp, 0x38] + ldr r0, _080406CC @ =gLevelUpLearnsets + adds r6, r2, r0 + ldr r2, _080406D4 @ =0x000001ff + mov r8, r2 + adds r3, r1, 0 + adds r5, r7, 0 +_08040668: + adds r3, 0x2 + adds r4, 0x1 + cmp r4, r10 + bge _08040680 + ldr r0, [r6] + adds r0, r5, r0 + ldrh r1, [r0] + ldrh r2, [r3] + mov r0, r8 + ands r0, r1 + cmp r2, r0 + bne _08040668 +_08040680: + cmp r4, r10 + bne _080406A2 + mov r0, r10 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + lsls r2, r4, 1 + ldr r4, [sp, 0x34] + adds r2, r4, r2 + mov r1, r9 + ldr r0, [r1] + adds r0, r7, r0 + ldrh r1, [r0] + ldr r0, _080406D4 @ =0x000001ff + ands r0, r1 + strh r0, [r2] +_080406A2: + mov r5, r12 + cmp r5, 0x13 + bgt _080406B8 + mov r2, r9 + ldr r0, [r2] + lsls r1, r5, 1 + adds r1, r0 + ldrh r0, [r1] + ldr r4, _080406D0 @ =0x0000ffff + cmp r0, r4 + bne _080405E8 +_080406B8: + mov r0, r10 +_080406BA: + add sp, 0x3C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080406CC: .4byte gLevelUpLearnsets +_080406D0: .4byte 0x0000ffff +_080406D4: .4byte 0x000001ff + thumb_func_end sub_8040574 + + thumb_func_start SpeciesToPokedexNum +SpeciesToPokedexNum: @ 80406D8 + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + bl IsNationalPokedexEnabled + cmp r0, 0 + beq _080406F2 + adds r0, r4, 0 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + b _0804070A +_080406F2: + adds r0, r4, 0 + bl SpeciesToHoennPokedexNum + adds r4, r0, 0 + cmp r4, 0xCA + bls _08040708 + ldr r0, _08040704 @ =0x0000ffff + b _0804070A + .align 2, 0 +_08040704: .4byte 0x0000ffff +_08040708: + adds r0, r4, 0 +_0804070A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end SpeciesToPokedexNum + + thumb_func_start sub_8040710 +sub_8040710: @ 8040710 + push {lr} + ldr r1, _08040724 @ =gUnknown_02024E84 + movs r2, 0 + adds r0, r1, 0x3 +_08040718: + strb r2, [r0] + subs r0, 0x1 + cmp r0, r1 + bge _08040718 + pop {r0} + bx r0 + .align 2, 0 +_08040724: .4byte gUnknown_02024E84 + thumb_func_end sub_8040710 + + thumb_func_start sub_8040728 +sub_8040728: @ 8040728 + push {lr} + ldr r0, _0804073C @ =gBattleTypeFlags + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 5 + ands r0, r1 + cmp r0, 0 + beq _08040744 + ldr r0, _08040740 @ =0x000001cf + b _080408B2 + .align 2, 0 +_0804073C: .4byte gBattleTypeFlags +_08040740: .4byte 0x000001cf +_08040744: + movs r0, 0x80 + lsls r0, 7 + ands r0, r1 + cmp r0, 0 + beq _08040754 + movs r0, 0xE7 + lsls r0, 1 + b _080408B2 +_08040754: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0804075E + b _080408A8 +_0804075E: + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _08040768 + b _080408B0 +_08040768: + ldr r3, _0804078C @ =gTrainers + ldr r2, _08040790 @ =gTrainerBattleOpponent + ldrh r1, [r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + ldrb r0, [r0, 0x1] + subs r0, 0x2 + cmp r0, 0x31 + bls _08040780 + b _080408A8 +_08040780: + lsls r0, 2 + ldr r1, _08040794 @ =_08040798 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804078C: .4byte gTrainers +_08040790: .4byte gTrainerBattleOpponent +_08040794: .4byte _08040798 + .align 2, 0 +_08040798: + .4byte _08040860 + .4byte _08040866 + .4byte _08040866 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A0 + .4byte _0804086C + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _08040872 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _080408A8 + .4byte _0804087C + .4byte _080408A8 + .4byte _080408A8 + .4byte _08040860 + .4byte _08040866 + .4byte _08040866 +_08040860: + movs r0, 0xE9 + lsls r0, 1 + b _080408B2 +_08040866: + movs r0, 0xE5 + lsls r0, 1 + b _080408B2 +_0804086C: + movs r0, 0xE6 + lsls r0, 1 + b _080408B2 +_08040872: + ldr r0, _08040878 @ =0x000001cd + b _080408B2 + .align 2, 0 +_08040878: .4byte 0x000001cd +_0804087C: + ldrh r1, [r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _08040898 @ =gTrainers + 0x4 + adds r0, r1 + ldr r1, _0804089C @ =gUnknown_08400E42 + bl StringCompare + cmp r0, 0 + beq _080408A8 + movs r0, 0xE8 + lsls r0, 1 + b _080408B2 + .align 2, 0 +_08040898: .4byte gTrainers + 0x4 +_0804089C: .4byte gUnknown_08400E42 +_080408A0: + ldr r0, _080408A4 @ =0x000001d1 + b _080408B2 + .align 2, 0 +_080408A4: .4byte 0x000001d1 +_080408A8: + ldr r0, _080408AC @ =0x000001cb + b _080408B2 + .align 2, 0 +_080408AC: .4byte 0x000001cb +_080408B0: + ldr r0, _080408B8 @ =0x000001c9 +_080408B2: + pop {r1} + bx r1 + .align 2, 0 +_080408B8: .4byte 0x000001c9 + thumb_func_end sub_8040728 + + thumb_func_start sub_80408BC +sub_80408BC: @ 80408BC + push {lr} + bl ResetMapMusic + bl m4aMPlayAllStop + bl sub_8040728 + lsls r0, 16 + lsrs r0, 16 + bl PlayBGM + pop {r0} + bx r0 + thumb_func_end sub_80408BC + + thumb_func_start current_map_music_set__default_for_battle +current_map_music_set__default_for_battle: @ 80408D8 + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + bl ResetMapMusic + bl m4aMPlayAllStop + cmp r4, 0 + beq _080408F2 + adds r0, r4, 0 + bl PlayNewMapMusic + b _080408FE +_080408F2: + bl sub_8040728 + lsls r0, 16 + lsrs r0, 16 + bl PlayNewMapMusic +_080408FE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end current_map_music_set__default_for_battle + + thumb_func_start pokemon_get_pal +pokemon_get_pal: @ 8040904 + push {r4-r6,lr} + adds r5, r0, 0 + movs r1, 0x41 + movs r2, 0 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0x1 + movs r2, 0 + bl GetMonData + adds r6, r0, 0 + adds r0, r5, 0 + movs r1, 0 + movs r2, 0 + bl GetMonData + adds r2, r0, 0 + adds r0, r4, 0 + adds r1, r6, 0 + bl species_and_otid_get_pal + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end pokemon_get_pal + + thumb_func_start species_and_otid_get_pal +species_and_otid_get_pal: @ 804093C + push {r4,r5,lr} + adds r3, r2, 0 + lsls r0, 16 + lsrs r4, r0, 16 + adds r5, r4, 0 + movs r0, 0xCE + lsls r0, 1 + cmp r4, r0 + bls _08040958 + ldr r0, _08040954 @ =gMonPaletteTable + ldr r0, [r0] + b _08040984 + .align 2, 0 +_08040954: .4byte gMonPaletteTable +_08040958: + lsrs r0, r1, 16 + ldr r2, _08040974 @ =0x0000ffff + ands r1, r2 + eors r0, r1 + lsrs r1, r3, 16 + eors r0, r1 + ands r3, r2 + eors r0, r3 + cmp r0, 0x7 + bls _0804097C + ldr r0, _08040978 @ =gMonPaletteTable + lsls r1, r4, 3 + b _08040980 + .align 2, 0 +_08040974: .4byte 0x0000ffff +_08040978: .4byte gMonPaletteTable +_0804097C: + ldr r0, _0804098C @ =gMonShinyPaletteTable + lsls r1, r5, 3 +_08040980: + adds r1, r0 + ldr r0, [r1] +_08040984: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0804098C: .4byte gMonShinyPaletteTable + thumb_func_end species_and_otid_get_pal + + thumb_func_start sub_8040990 +sub_8040990: @ 8040990 + push {r4-r6,lr} + adds r5, r0, 0 + movs r1, 0x41 + movs r2, 0 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0x1 + movs r2, 0 + bl GetMonData + adds r6, r0, 0 + adds r0, r5, 0 + movs r1, 0 + movs r2, 0 + bl GetMonData + adds r2, r0, 0 + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_80409C8 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8040990 + + thumb_func_start sub_80409C8 +sub_80409C8: @ 80409C8 + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + lsrs r0, r1, 16 + ldr r3, _080409E8 @ =0x0000ffff + ands r1, r3 + eors r0, r1 + lsrs r1, r2, 16 + eors r0, r1 + ands r2, r3 + eors r0, r2 + cmp r0, 0x7 + bls _080409F0 + lsls r0, r4, 3 + ldr r1, _080409EC @ =gMonPaletteTable + b _080409F4 + .align 2, 0 +_080409E8: .4byte 0x0000ffff +_080409EC: .4byte gMonPaletteTable +_080409F0: + lsls r0, r4, 3 + ldr r1, _080409FC @ =gMonShinyPaletteTable +_080409F4: + adds r0, r1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080409FC: .4byte gMonShinyPaletteTable + thumb_func_end sub_80409C8 + + thumb_func_start sub_8040A00 +sub_8040A00: @ 8040A00 + push {r4,lr} + lsls r0, 16 + lsrs r3, r0, 16 + ldr r2, _08040A24 @ =gUnknown_0820831A + ldrh r0, [r2] + ldr r1, _08040A28 @ =0x0000ffff + cmp r0, r1 + beq _08040A32 + adds r4, r1, 0 + adds r1, r2, 0 +_08040A14: + ldrh r0, [r2] + adds r1, 0x2 + adds r2, 0x2 + cmp r0, r3 + bne _08040A2C + movs r0, 0x1 + b _08040A34 + .align 2, 0 +_08040A24: .4byte gUnknown_0820831A +_08040A28: .4byte 0x0000ffff +_08040A2C: + ldrh r0, [r1] + cmp r0, r4 + bne _08040A14 +_08040A32: + movs r0, 0 +_08040A34: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8040A00 + + thumb_func_start sub_8040A3C +sub_8040A3C: @ 8040A3C + lsls r0, 16 + lsrs r0, 16 + ldr r2, _08040A50 @ =gBaseStats + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1, 0x19] + lsrs r0, 7 + bx lr + .align 2, 0 +_08040A50: .4byte gBaseStats + thumb_func_end sub_8040A3C + + thumb_func_start sub_8040A54 +sub_8040A54: @ 8040A54 + push {r4,lr} + lsls r4, r1, 24 + lsrs r4, 24 + bl GetNature + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08040A78 @ =gUnknown_083F7E28 + lsls r1, r0, 2 + adds r1, r0 + adds r1, r4 + adds r1, r2 + movs r0, 0 + ldrsb r0, [r1, r0] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08040A78: .4byte gUnknown_083F7E28 + thumb_func_end sub_8040A54 + + thumb_func_start sub_8040A7C +sub_8040A7C: @ 8040A7C + push {r4,lr} + lsls r4, r1, 24 + lsrs r4, 24 + bl GetNatureFromPersonality + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08040AA0 @ =gUnknown_083F7E28 + lsls r1, r0, 2 + adds r1, r0 + adds r1, r4 + adds r1, r2 + movs r0, 0 + ldrsb r0, [r1, r0] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08040AA0: .4byte gUnknown_083F7E28 + thumb_func_end sub_8040A7C + + thumb_func_start sub_8040AA4 +sub_8040AA4: @ 8040AA4 + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + movs r1, 0x7 + mov r2, sp + bl GetMonData + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0 + bl GetMonData + mov r1, sp + bl sub_8040AD0 + lsls r0, 24 + lsrs r0, 24 + add sp, 0x8 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8040AA4 + + thumb_func_start sub_8040AD0 +sub_8040AD0: @ 8040AD0 + push {r4,r5,lr} + adds r5, r1, 0 + ldr r3, _08040B10 @ =gSaveBlock2 + ldrb r2, [r3, 0xA] + ldrb r1, [r3, 0xB] + lsls r1, 8 + orrs r2, r1 + ldrb r1, [r3, 0xC] + lsls r1, 16 + orrs r2, r1 + ldrb r1, [r3, 0xD] + lsls r1, 24 + orrs r2, r1 + cmp r0, r2 + bne _08040B14 + movs r4, 0 + ldrb r0, [r5] + cmp r0, 0xFF + beq _08040B0C + adds r2, r5, 0 +_08040AF8: + adds r1, r4, r3 + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + bne _08040B14 + adds r2, 0x1 + adds r4, 0x1 + ldrb r0, [r2] + cmp r0, 0xFF + bne _08040AF8 +_08040B0C: + movs r0, 0 + b _08040B16 + .align 2, 0 +_08040B10: .4byte gSaveBlock2 +_08040B14: + movs r0, 0x1 +_08040B16: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8040AD0 + + thumb_func_start sub_8040B1C +sub_8040B1C: @ 8040B1C + push {lr} + bl pokemon_restore_pp + pop {r0} + bx r0 + thumb_func_end sub_8040B1C + + thumb_func_start pokemon_restore_pp +pokemon_restore_pp: @ 8040B28 + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r0, 0 + movs r6, 0 +_08040B30: + adds r4, r6, 0 + adds r4, 0xD + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0 + bl GetBoxMonData + cmp r0, 0 + beq _08040B7C + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0 + bl GetBoxMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0x15 + movs r2, 0 + bl GetBoxMonData + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r2, r6, 24 + lsrs r2, 24 + adds r0, r4, 0 + bl CalculatePPWithBonus + mov r1, sp + strb r0, [r1] + adds r1, r6, 0 + adds r1, 0x11 + adds r0, r5, 0 + mov r2, sp + bl SetBoxMonData +_08040B7C: + adds r6, 0x1 + cmp r6, 0x3 + ble _08040B30 + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end pokemon_restore_pp + + thumb_func_start sub_8040B8C +sub_8040B8C: @ 8040B8C + push {r4,r5,lr} + ldr r1, _08040BCC @ =byte_2024C06 + ldr r2, _08040BD0 @ =0x02000000 + ldr r3, _08040BD4 @ =0x000160c0 + adds r0, r2, r3 + ldrb r0, [r0] + strb r0, [r1] + ldr r5, _08040BD8 @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r5] + movs r0, 0x4 + strb r0, [r5, 0x1] + ldr r0, _08040BDC @ =0x00016054 + adds r4, r2, r0 + ldrb r0, [r4] + strb r0, [r5, 0x2] + movs r0, 0xFF + strb r0, [r5, 0x4] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08040BE4 + ldr r1, _08040BE0 @ =gUnknown_02024A6A + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrb r0, [r0] + bl pokemon_order_func + b _08040BEE + .align 2, 0 +_08040BCC: .4byte byte_2024C06 +_08040BD0: .4byte 0x02000000 +_08040BD4: .4byte 0x000160c0 +_08040BD8: .4byte gUnknown_030041C0 +_08040BDC: .4byte 0x00016054 +_08040BE0: .4byte gUnknown_02024A6A +_08040BE4: + ldr r0, _08040C24 @ =gUnknown_02024A6A + ldrb r1, [r4] + lsls r1, 1 + adds r1, r0 + ldrh r0, [r1] +_08040BEE: + strb r0, [r5, 0x3] + ldr r4, _08040C28 @ =gUnknown_03004290 + movs r0, 0xFD + strb r0, [r4] + movs r0, 0x4 + strb r0, [r4, 0x1] + ldr r1, _08040C2C @ =gUnknown_02024E6C + ldrb r0, [r1] + strb r0, [r4, 0x2] + ldr r2, _08040C24 @ =gUnknown_02024A6A + ldrb r0, [r1] + lsls r0, 1 + adds r0, r2 + ldrb r0, [r0] + bl pokemon_order_func + strb r0, [r4, 0x3] + movs r0, 0xFF + strb r0, [r4, 0x4] + ldr r0, _08040C30 @ =gUnknown_083FFCCA + ldr r1, _08040C34 @ =gStringVar4 + bl sub_8120FFC + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08040C24: .4byte gUnknown_02024A6A +_08040C28: .4byte gUnknown_03004290 +_08040C2C: .4byte gUnknown_02024E6C +_08040C30: .4byte gUnknown_083FFCCA +_08040C34: .4byte gStringVar4 + thumb_func_end sub_8040B8C + + thumb_func_start sub_8040C38 +sub_8040C38: @ 8040C38 + push {r4,r5,lr} + ldr r0, _08040C90 @ =gBattleTypeFlags + ldrh r1, [r0] + ldr r0, _08040C94 @ =0x00002008 + ands r0, r1 + cmp r0, 0 + bne _08040CAC + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r4, _08040C98 @ =gEnemyParty + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + ldr r2, _08040C9C @ =gBaseStats + lsls r1, r0, 3 + subs r1, r0 + lsls r3, r1, 2 + adds r1, r3, r2 + ldrh r0, [r1, 0xC] + ldrh r1, [r1, 0xE] + cmp r0, r1 + beq _08040C82 + cmp r5, 0x2C + bls _08040CAC + cmp r5, 0x5E + bhi _08040CA0 +_08040C82: + adds r2, 0xC + adds r2, r3, r2 + adds r0, r4, 0 + movs r1, 0xC + bl SetMonData + b _08040CAC + .align 2, 0 +_08040C90: .4byte gBattleTypeFlags +_08040C94: .4byte 0x00002008 +_08040C98: .4byte gEnemyParty +_08040C9C: .4byte gBaseStats +_08040CA0: + adds r2, 0xE + adds r2, r3, r2 + adds r0, r4, 0 + movs r1, 0xC + bl SetMonData +_08040CAC: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8040C38 + + thumb_func_start sub_8040CB4 +sub_8040CB4: @ 8040CB4 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + movs r2, 0 + bl GetMonData + adds r5, r0, 0 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0 + bl GetMonData + adds r1, r0, 0 + adds r0, r5, 0 + bl sub_8040CE0 + lsls r0, 24 + lsrs r0, 24 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8040CB4 + + thumb_func_start sub_8040CE0 +sub_8040CE0: @ 8040CE0 + push {r4,lr} + movs r4, 0 + lsrs r2, r0, 16 + ldr r3, _08040D04 @ =0x0000ffff + ands r0, r3 + eors r2, r0 + lsrs r0, r1, 16 + eors r2, r0 + ands r1, r3 + eors r2, r1 + cmp r2, 0x7 + bhi _08040CFA + movs r4, 0x1 +_08040CFA: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08040D04: .4byte 0x0000ffff + thumb_func_end sub_8040CE0 + + thumb_func_start sub_8040D08 +sub_8040D08: @ 8040D08 + push {r4,lr} + bl GetMultiplayerId + lsls r0, 24 + lsrs r0, 24 + ldr r4, _08040D38 @ =gLinkPlayers + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r1, [r1, 0x18] + movs r0, 0x2 + eors r0, r1 + bl sub_803FC34 + adds r1, r0, 0 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r4, 0x8 + adds r0, r4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08040D38: .4byte gLinkPlayers + thumb_func_end sub_8040D08 + + thumb_func_start sub_8040D3C +sub_8040D3C: @ 8040D3C + push {r4,lr} + adds r4, r1, 0 + lsls r0, 16 + lsrs r1, r0, 16 + adds r0, r1, 0 + lsls r2, 24 + lsrs r2, 24 + movs r3, 0 + cmp r1, 0x20 + beq _08040D54 + cmp r1, 0x1D + bne _08040D7E +_08040D54: + cmp r2, 0x2 + bne _08040D68 + movs r0, 0xB + muls r1, r0 + ldr r0, _08040D64 @ =gSpeciesNames + adds r1, r0 + b _08040D70 + .align 2, 0 +_08040D64: .4byte gSpeciesNames +_08040D68: + ldr r1, _08040D88 @ =gUnknown_08208337 + cmp r0, 0x20 + bne _08040D70 + subs r1, 0xB +_08040D70: + adds r0, r4, 0 + bl StringCompareWithoutExtCtrlCodes + movs r3, 0 + cmp r0, 0 + bne _08040D7E + movs r3, 0x1 +_08040D7E: + adds r0, r3, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08040D88: .4byte gUnknown_08208337 + thumb_func_end sub_8040D3C + + thumb_func_start sub_8040D8C +sub_8040D8C: @ 8040D8C + push {lr} + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0x2 + ldrb r0, [r1] + cmp r0, 0xFC + bne _08040DA2 + ldrb r0, [r1, 0x1] + cmp r0, 0x15 + bne _08040DA2 + movs r2, 0x1 +_08040DA2: + adds r0, r3, 0 + bl sub_8040D3C + pop {r1} + bx r1 + thumb_func_end sub_8040D8C + + thumb_func_start unref_sub_8040DAC +unref_sub_8040DAC: @ 8040DAC + push {r4-r6,lr} + sub sp, 0xC + adds r6, r0, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r6, 0 + movs r1, 0x3 + movs r2, 0 + bl GetMonData + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + movs r1, 0x2 + mov r2, sp + bl GetMonData + adds r0, r5, 0 + mov r1, sp + adds r2, r4, 0 + bl sub_8040D3C + add sp, 0xC + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end unref_sub_8040DAC + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokemon_icon.s b/asm/pokemon_icon.s new file mode 100644 index 000000000..a63779b28 --- /dev/null +++ b/asm/pokemon_icon.s @@ -0,0 +1,788 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start unref_sub_809D26C +unref_sub_809D26C: @ 809D26C + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x18 + adds r6, r3, 0 + ldr r3, [sp, 0x2C] + lsls r0, 16 + lsrs r0, 16 + lsls r3, 24 + lsrs r3, 24 + mov r8, sp + ldr r4, _0809D2E0 @ =gOamData_83BC5E8 + str r4, [sp] + ldr r5, _0809D2E4 @ =gMonIconTable + lsls r4, r0, 2 + adds r4, r5 + ldr r4, [r4] + str r4, [sp, 0x4] + ldr r4, _0809D2E8 @ =gSpriteAnimTable_83BC62C + str r4, [sp, 0x8] + ldr r4, _0809D2EC @ =gSpriteAffineAnimTable_83BC660 + str r4, [sp, 0xC] + str r1, [sp, 0x10] + ldr r1, _0809D2F0 @ =gMonIconPaletteIndices + adds r0, r1 + ldr r4, _0809D2F4 @ =0x0000dac0 + adds r1, r4, 0 + ldrb r0, [r0] + adds r1, r0 + mov r0, r8 + strh r1, [r0, 0x14] + lsls r2, 16 + asrs r2, 16 + lsls r6, 16 + asrs r6, 16 + mov r0, sp + adds r1, r2, 0 + adds r2, r6, 0 + bl CreateMonIconSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, _0809D2F8 @ =gSprites + adds r0, r1 + bl UpdateMonIconFrame + adds r0, r4, 0 + add sp, 0x18 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0809D2E0: .4byte gOamData_83BC5E8 +_0809D2E4: .4byte gMonIconTable +_0809D2E8: .4byte gSpriteAnimTable_83BC62C +_0809D2EC: .4byte gSpriteAffineAnimTable_83BC660 +_0809D2F0: .4byte gMonIconPaletteIndices +_0809D2F4: .4byte 0x0000dac0 +_0809D2F8: .4byte gSprites + thumb_func_end unref_sub_809D26C + + thumb_func_start CreateMonIcon +CreateMonIcon: @ 809D2FC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x30 + adds r4, r0, 0 + adds r5, r1, 0 + ldr r0, [sp, 0x48] + ldr r1, [sp, 0x4C] + lsls r4, 16 + lsrs r4, 16 + lsls r2, 16 + lsrs r7, r2, 16 + lsls r3, 16 + lsrs r6, r3, 16 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _0809D38C @ =gOamData_83BC5E8 + str r0, [sp, 0x18] + adds r0, r4, 0 + bl GetMonIconPtr + str r0, [sp, 0x1C] + ldr r0, _0809D390 @ =gSpriteAnimTable_83BC62C + str r0, [sp, 0x20] + ldr r0, _0809D394 @ =gSpriteAffineAnimTable_83BC660 + str r0, [sp, 0x24] + str r5, [sp, 0x28] + ldr r0, _0809D398 @ =gMonIconPaletteIndices + adds r0, r4, r0 + ldr r1, _0809D39C @ =0x0000dac0 + adds r5, r1, 0 + ldrb r0, [r0] + adds r1, r5, r0 + add r0, sp, 0x2C + strh r1, [r0] + add r1, sp, 0x18 + mov r0, sp + movs r2, 0x18 + bl memcpy + movs r0, 0xCE + lsls r0, 1 + cmp r4, r0 + bls _0809D35A + mov r0, sp + strh r5, [r0, 0x14] +_0809D35A: + lsls r1, r7, 16 + asrs r1, 16 + lsls r2, r6, 16 + asrs r2, 16 + mov r0, sp + mov r3, r8 + bl CreateMonIconSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, _0809D3A0 @ =gSprites + adds r0, r1 + bl UpdateMonIconFrame + adds r0, r4, 0 + add sp, 0x30 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0809D38C: .4byte gOamData_83BC5E8 +_0809D390: .4byte gSpriteAnimTable_83BC62C +_0809D394: .4byte gSpriteAffineAnimTable_83BC660 +_0809D398: .4byte gMonIconPaletteIndices +_0809D39C: .4byte 0x0000dac0 +_0809D3A0: .4byte gSprites + thumb_func_end CreateMonIcon + + thumb_func_start sub_809D3A4 +sub_809D3A4: @ 809D3A4 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x18 + adds r6, r3, 0 + ldr r3, [sp, 0x2C] + lsls r0, 16 + lsrs r0, 16 + lsls r3, 24 + lsrs r3, 24 + mov r8, sp + ldr r4, _0809D418 @ =gOamData_83BC5E8 + str r4, [sp] + ldr r5, _0809D41C @ =gMonIconTable + lsls r4, r0, 2 + adds r4, r5 + ldr r4, [r4] + str r4, [sp, 0x4] + ldr r4, _0809D420 @ =gSpriteAnimTable_83BC62C + str r4, [sp, 0x8] + ldr r4, _0809D424 @ =gSpriteAffineAnimTable_83BC660 + str r4, [sp, 0xC] + str r1, [sp, 0x10] + ldr r1, _0809D428 @ =gMonIconPaletteIndices + adds r0, r1 + ldr r4, _0809D42C @ =0x0000dac0 + adds r1, r4, 0 + ldrb r0, [r0] + adds r1, r0 + mov r0, r8 + strh r1, [r0, 0x14] + lsls r2, 16 + asrs r2, 16 + lsls r6, 16 + asrs r6, 16 + mov r0, sp + adds r1, r2, 0 + adds r2, r6, 0 + bl CreateMonIconSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, _0809D430 @ =gSprites + adds r0, r1 + bl UpdateMonIconFrame + adds r0, r4, 0 + add sp, 0x18 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0809D418: .4byte gOamData_83BC5E8 +_0809D41C: .4byte gMonIconTable +_0809D420: .4byte gSpriteAnimTable_83BC62C +_0809D424: .4byte gSpriteAffineAnimTable_83BC660 +_0809D428: .4byte gMonIconPaletteIndices +_0809D42C: .4byte 0x0000dac0 +_0809D430: .4byte gSprites + thumb_func_end sub_809D3A4 + + thumb_func_start mon_icon_convert_unown_species_id +mon_icon_convert_unown_species_id: @ 809D434 + push {lr} + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, SPECIES_UNOWN + bne _0809D45E + adds r0, r1, 0 + bl sub_809D474 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + bne _0809D450 + movs r0, SPECIES_UNOWN + b _0809D45A +_0809D450: + movs r1, 0xCE + lsls r1, 1 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 +_0809D45A: + adds r1, r0, 0 + b _0809D46C +_0809D45E: + movs r0, 0xCE + lsls r0, 1 + adds r1, r2, 0 + cmp r1, r0 + bls _0809D46C + movs r1, 0x82 + lsls r1, 1 +_0809D46C: + adds r0, r1, 0 + pop {r1} + bx r1 + thumb_func_end mon_icon_convert_unown_species_id + + thumb_func_start sub_809D474 +sub_809D474: @ 809D474 + push {lr} + adds r2, r0, 0 + movs r0, 0xC0 + lsls r0, 18 + ands r0, r2 + lsrs r0, 18 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r2 + lsrs r1, 12 + orrs r0, r1 + movs r1, 0xC0 + lsls r1, 2 + ands r1, r2 + lsrs r1, 6 + orrs r0, r1 + movs r1, 0x3 + ands r1, r2 + orrs r0, r1 + movs r1, 0x1C + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_809D474 + + thumb_func_start sub_809D4A8 +sub_809D4A8: @ 809D4A8 + push {r4,lr} + sub sp, 0x4 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + mov r1, sp + bl sub_80A2D64 + lsls r0, 16 + lsrs r0, 16 + cmp r0, SPECIES_UNOWN + bne _0809D4DE + mov r0, sp + ldrh r0, [r0] + cmp r0, 0 + bne _0809D4CE + mov r1, sp + adds r0, SPECIES_UNOWN + b _0809D4D6 +_0809D4CE: + mov r1, sp + movs r2, 0xCE + lsls r2, 1 + adds r0, r2 +_0809D4D6: + strh r0, [r1] + mov r0, sp + ldrh r0, [r0] + b _0809D4EA +_0809D4DE: + adds r0, r4, 0 + movs r1, 0 + bl mon_icon_convert_unown_species_id + lsls r0, 16 + lsrs r0, 16 +_0809D4EA: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_809D4A8 + + thumb_func_start GetMonIconPtr +GetMonIconPtr: @ 809D4F4 + push {lr} + lsls r0, 16 + lsrs r0, 16 + bl mon_icon_convert_unown_species_id + lsls r0, 16 + ldr r1, _0809D50C @ =gMonIconTable + lsrs r0, 14 + adds r0, r1 + ldr r0, [r0] + pop {r1} + bx r1 + .align 2, 0 +_0809D50C: .4byte gMonIconTable + thumb_func_end GetMonIconPtr + + thumb_func_start sub_809D510 +sub_809D510: @ 809D510 + push {lr} + bl sub_809D7E8 + pop {r0} + bx r0 + thumb_func_end sub_809D510 + + thumb_func_start sub_809D51C +sub_809D51C: @ 809D51C + push {r4,r5,lr} + movs r4, 0 + ldr r5, _0809D53C @ =gMonIconPaletteTable +_0809D522: + lsls r0, r4, 3 + adds r0, r5 + bl LoadSpritePalette + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _0809D522 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809D53C: .4byte gMonIconPaletteTable + thumb_func_end sub_809D51C + + thumb_func_start unref_sub_809D540 +unref_sub_809D540: @ 809D540 + push {r4,lr} + lsls r0, 16 + lsrs r1, r0, 16 + movs r0, 0xCE + lsls r0, 1 + cmp r1, r0 + bls _0809D552 + movs r1, 0x82 + lsls r1, 1 +_0809D552: + ldr r0, _0809D578 @ =gMonIconPaletteIndices + adds r0, r1, r0 + ldrb r0, [r0] + ldr r1, _0809D57C @ =gMonIconPaletteTable + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x4] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _0809D572 + adds r0, r4, 0 + bl LoadSpritePalette +_0809D572: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809D578: .4byte gMonIconPaletteIndices +_0809D57C: .4byte gMonIconPaletteTable + thumb_func_end unref_sub_809D540 + + thumb_func_start sub_809D580 +sub_809D580: @ 809D580 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r1, _0809D5AC @ =gMonIconPaletteIndices + adds r0, r1 + ldrb r0, [r0] + ldr r1, _0809D5B0 @ =gMonIconPaletteTable + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x4] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _0809D5A6 + adds r0, r4, 0 + bl LoadSpritePalette +_0809D5A6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809D5AC: .4byte gMonIconPaletteIndices +_0809D5B0: .4byte gMonIconPaletteTable + thumb_func_end sub_809D580 + + thumb_func_start unref_sub_809D5B4 +unref_sub_809D5B4: @ 809D5B4 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _0809D5D4 @ =gMonIconPaletteTable +_0809D5BA: + lsls r0, r4, 3 + adds r0, r5 + ldrh r0, [r0, 0x4] + bl FreeSpritePaletteByTag + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _0809D5BA + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809D5D4: .4byte gMonIconPaletteTable + thumb_func_end unref_sub_809D5B4 + + thumb_func_start unref_sub_809D5D8 +unref_sub_809D5D8: @ 809D5D8 + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + movs r0, 0xCE + lsls r0, 1 + cmp r1, r0 + bls _0809D5EA + movs r1, 0x82 + lsls r1, 1 +_0809D5EA: + ldr r0, _0809D600 @ =gMonIconPaletteIndices + adds r0, r1, r0 + ldrb r0, [r0] + ldr r1, _0809D604 @ =gMonIconPaletteTable + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x4] + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + .align 2, 0 +_0809D600: .4byte gMonIconPaletteIndices +_0809D604: .4byte gMonIconPaletteTable + thumb_func_end unref_sub_809D5D8 + + thumb_func_start sub_809D608 +sub_809D608: @ 809D608 + push {lr} + lsls r0, 16 + lsrs r0, 16 + ldr r1, _0809D624 @ =gMonIconPaletteIndices + adds r0, r1 + ldrb r0, [r0] + ldr r1, _0809D628 @ =gMonIconPaletteTable + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x4] + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + .align 2, 0 +_0809D624: .4byte gMonIconPaletteIndices +_0809D628: .4byte gMonIconPaletteTable + thumb_func_end sub_809D608 + + thumb_func_start sub_809D62C +sub_809D62C: @ 809D62C + push {lr} + bl UpdateMonIconFrame + pop {r0} + bx r0 + thumb_func_end sub_809D62C + + thumb_func_start UpdateMonIconFrame +UpdateMonIconFrame: @ 809D638 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r4, r0, 0 + movs r7, 0 + adds r6, r4, 0 + adds r6, 0x2C + ldrb r2, [r6] + movs r0, 0x3F + mov r9, r0 + ands r0, r2 + cmp r0, 0 + bne _0809D6EC + movs r1, 0x2A + adds r1, r4 + mov r8, r1 + ldrb r1, [r1] + ldr r0, [r4, 0x8] + lsls r1, 2 + adds r1, r0 + adds r5, r4, 0 + adds r5, 0x2B + ldrb r0, [r5] + ldr r1, [r1] + lsls r0, 2 + adds r0, r1 + movs r1, 0 + ldrsh r3, [r0, r1] + movs r0, 0x2 + negs r0, r0 + cmp r3, r0 + beq _0809D682 + adds r0, 0x1 + cmp r3, r0 + bne _0809D686 + b _0809D700 +_0809D682: + strb r7, [r5] + b _0809D700 +_0809D686: + ldr r2, _0809D6E4 @ =gSpriteImageSizes + ldrb r1, [r4, 0x3] + lsrs r1, 6 + lsls r1, 1 + ldrb r0, [r4, 0x1] + lsrs r0, 6 + lsls r0, 3 + adds r1, r0 + adds r1, r2 + ldrh r2, [r1] + adds r1, r2, 0 + muls r1, r3 + ldr r0, [r4, 0xC] + adds r0, r1 + ldrh r1, [r4, 0x4] + lsls r1, 22 + lsrs r1, 17 + ldr r3, _0809D6E8 @ =0x06010000 + adds r1, r3 + bl RequestSpriteCopy + mov r0, r8 + ldrb r1, [r0] + ldr r0, [r4, 0x8] + lsls r1, 2 + adds r1, r0 + ldrb r0, [r5] + ldr r1, [r1] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + lsls r0, 10 + lsrs r0, 26 + mov r1, r9 + ands r1, r0 + ldrb r2, [r6] + movs r0, 0x40 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r6] + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + ldrb r7, [r5] + b _0809D700 + .align 2, 0 +_0809D6E4: .4byte gSpriteImageSizes +_0809D6E8: .4byte 0x06010000 +_0809D6EC: + lsls r0, r2, 26 + lsrs r0, 26 + subs r0, 0x1 + movs r1, 0x3F + ands r0, r1 + movs r1, 0x40 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r6] +_0809D700: + adds r0, r7, 0 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end UpdateMonIconFrame + + thumb_func_start CreateMonIconSprite +CreateMonIconSprite: @ 809D710 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x38 + mov r9, r0 + adds r4, r1, 0 + adds r5, r2, 0 + mov r8, r3 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r0, 0 + str r0, [sp, 0x30] + ldr r2, _0809D7D8 @ =gSpriteImageSizes + mov r0, r9 + ldr r6, [r0] + ldrb r1, [r6, 0x3] + lsrs r1, 6 + lsls r1, 1 + ldrb r0, [r6, 0x1] + lsrs r0, 6 + lsls r0, 3 + adds r1, r0 + adds r1, r2 + ldrh r2, [r1] + ldr r1, _0809D7DC @ =0xffff0000 + add r3, sp, 0x30 + ldr r0, [r3, 0x4] + ands r0, r1 + orrs r0, r2 + str r0, [r3, 0x4] + add r1, sp, 0x18 + ldr r0, _0809D7E0 @ =0x0000ffff + strh r0, [r1] + mov r0, r9 + ldrh r2, [r0, 0x14] + mov r0, sp + adds r0, 0x1A + strh r2, [r0] + str r6, [sp, 0x1C] + mov r2, r9 + ldr r0, [r2, 0x8] + str r0, [sp, 0x20] + str r3, [sp, 0x24] + ldr r0, [r2, 0xC] + str r0, [sp, 0x28] + ldr r0, [r2, 0x10] + str r0, [sp, 0x2C] + mov r0, sp + movs r2, 0x18 + bl memcpy + lsls r4, 16 + asrs r4, 16 + lsls r5, 16 + asrs r5, 16 + mov r0, sp + adds r1, r4, 0 + adds r2, r5, 0 + mov r3, r8 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r6, _0809D7E4 @ =gSprites + lsls r3, r0, 4 + adds r3, r0 + lsls r3, 2 + adds r4, r3, r6 + adds r5, r4, 0 + adds r5, 0x2C + ldrb r1, [r5] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r5] + adds r4, 0x3F + ldrb r2, [r4] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r4] + adds r6, 0xC + adds r3, r6 + mov r2, r9 + ldr r1, [r2, 0x4] + str r1, [r3] + add sp, 0x38 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0809D7D8: .4byte gSpriteImageSizes +_0809D7DC: .4byte 0xffff0000 +_0809D7E0: .4byte 0x0000ffff +_0809D7E4: .4byte gSprites + thumb_func_end CreateMonIconSprite + + thumb_func_start sub_809D7E8 +sub_809D7E8: @ 809D7E8 + push {lr} + sub sp, 0x8 + movs r1, 0 + str r1, [sp] + ldr r3, _0809D81C @ =gSpriteImageSizes + ldrb r2, [r0, 0x3] + lsrs r2, 6 + lsls r2, 1 + ldrb r1, [r0, 0x1] + lsrs r1, 6 + lsls r1, 3 + adds r2, r1 + adds r2, r3 + ldrh r3, [r2] + ldr r2, _0809D820 @ =0xffff0000 + ldr r1, [sp, 0x4] + ands r1, r2 + orrs r1, r3 + str r1, [sp, 0x4] + mov r1, sp + str r1, [r0, 0xC] + bl DestroySprite + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_0809D81C: .4byte gSpriteImageSizes +_0809D820: .4byte 0xffff0000 + thumb_func_end sub_809D7E8 + + thumb_func_start sub_809D824 +sub_809D824: @ 809D824 + mov r12, r0 + adds r0, 0x2A + movs r3, 0 + strb r1, [r0] + mov r2, r12 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x40 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + mov r0, r12 + adds r0, 0x2B + strb r3, [r0] + bx lr + thumb_func_end sub_809D824 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokemon_item_effect.s b/asm/pokemon_item_effect.s new file mode 100644 index 000000000..a8a0ce89d --- /dev/null +++ b/asm/pokemon_item_effect.s @@ -0,0 +1,1970 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start ExecuteTableBasedItemEffect_ +ExecuteTableBasedItemEffect_: @ 803E18C + push {r4,lr} + sub sp, 0x4 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + movs r4, 0 + str r4, [sp] + bl sub_803E1B0 + lsls r0, 24 + lsrs r0, 24 + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end ExecuteTableBasedItemEffect_ + + thumb_func_start sub_803E1B0 +sub_803E1B0: @ 803E1B0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x3C + mov r8, r0 + ldr r0, [sp, 0x5C] + lsls r1, 16 + lsrs r1, 16 + str r1, [sp, 0x8] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0xC] + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x10] + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x14] + movs r0, 0x1 + str r0, [sp, 0x1C] + movs r1, 0x6 + str r1, [sp, 0x24] + movs r2, 0 + str r2, [sp, 0x2C] + movs r3, 0x4 + str r3, [sp, 0x34] + mov r0, r8 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xAF + bne _0803E240 + ldr r0, _0803E21C @ =gMain + ldr r4, _0803E220 @ =0x0000043d + adds r0, r4 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0803E22C + ldr r2, _0803E224 @ =gEnigmaBerries + ldr r0, _0803E228 @ =gUnknown_02024E6C + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x7] + b _0803E248 + .align 2, 0 +_0803E21C: .4byte gMain +_0803E220: .4byte 0x0000043d +_0803E224: .4byte gEnigmaBerries +_0803E228: .4byte gUnknown_02024E6C +_0803E22C: + ldr r0, _0803E238 @ =gSaveBlock1 + ldr r5, _0803E23C @ =0x00003688 + adds r0, r5 + ldrb r0, [r0] + b _0803E248 + .align 2, 0 +_0803E238: .4byte gSaveBlock1 +_0803E23C: .4byte 0x00003688 +_0803E240: + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r0, 24 +_0803E248: + str r0, [sp, 0x30] + ldr r1, _0803E2A4 @ =gUnknown_02024C0B + ldr r0, _0803E2A8 @ =gUnknown_02024E6C + ldrb r2, [r0] + strb r2, [r1] + ldr r0, _0803E2AC @ =gMain + ldr r1, _0803E2B0 @ =0x0000043d + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _0803E2E8 + ldr r0, _0803E2B4 @ =gUnknown_02024A60 + strb r2, [r0] + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + negs r1, r0 + orrs r1, r0 + lsrs r1, 31 + str r1, [sp, 0x18] + ldr r0, _0803E2B8 @ =gUnknown_02024A68 + ldr r4, [sp, 0x8] + subs r4, 0xD + ldrb r0, [r0] + cmp r1, r0 + bge _0803E2F4 + ldr r2, _0803E2BC @ =gUnknown_02024A6A + lsls r0, r1, 1 + adds r0, r2 + ldrh r3, [r0] + ldr r5, [sp, 0xC] + lsls r0, r5, 16 + lsrs r1, r0, 16 + adds r5, r0, 0 + cmp r3, r1 + bne _0803E2C0 + ldr r0, [sp, 0x18] + str r0, [sp, 0x34] + b _0803E2F4 + .align 2, 0 +_0803E2A4: .4byte gUnknown_02024C0B +_0803E2A8: .4byte gUnknown_02024E6C +_0803E2AC: .4byte gMain +_0803E2B0: .4byte 0x0000043d +_0803E2B4: .4byte gUnknown_02024A60 +_0803E2B8: .4byte gUnknown_02024A68 +_0803E2BC: .4byte gUnknown_02024A6A +_0803E2C0: + ldr r1, [sp, 0x18] + adds r1, 0x2 + str r1, [sp, 0x18] + ldr r0, _0803E2E4 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r1, r0 + bge _0803E2F4 + lsls r0, r1, 1 + adds r0, r2 + ldrh r1, [r0] + lsrs r0, r5, 16 + cmp r1, r0 + bne _0803E2C0 + ldr r2, [sp, 0x18] + lsls r0, r2, 24 + lsrs r0, 24 + str r0, [sp, 0x34] + b _0803E2F4 + .align 2, 0 +_0803E2E4: .4byte gUnknown_02024A68 +_0803E2E8: + ldr r0, _0803E310 @ =gUnknown_02024A60 + strb r1, [r0] + movs r3, 0x4 + str r3, [sp, 0x34] + ldr r4, [sp, 0x8] + subs r4, 0xD +_0803E2F4: + lsls r0, r4, 16 + lsrs r0, 16 + cmp r0, 0xA5 + bhi _0803E36C + ldr r1, _0803E314 @ =gItemEffectTable + lsls r0, r4, 2 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + bne _0803E318 + ldr r4, [sp, 0x8] + cmp r4, 0xAF + beq _0803E31E + b _0803E36C + .align 2, 0 +_0803E310: .4byte gUnknown_02024A60 +_0803E314: .4byte gItemEffectTable +_0803E318: + ldr r5, [sp, 0x8] + cmp r5, 0xAF + bne _0803E372 +_0803E31E: + ldr r0, _0803E340 @ =gMain + ldr r1, _0803E344 @ =0x0000043d + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0803E350 + ldr r0, _0803E348 @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + ldr r1, _0803E34C @ =gUnknown_02024DF8 + adds r0, r1 + b _0803E372 + .align 2, 0 +_0803E340: .4byte gMain +_0803E344: .4byte 0x0000043d +_0803E348: .4byte gUnknown_02024A60 +_0803E34C: .4byte gUnknown_02024DF8 +_0803E350: + ldr r2, _0803E358 @ =gSaveBlock1 + 0x3676 + str r2, [sp, 0x20] + b _0803E374 + .align 2, 0 +_0803E358: .4byte gSaveBlock1 + 0x3676 +_0803E35C: + mov r0, r8 + movs r2, 0 + ldr r3, [sp, 0xC] + bl BeginEvolutionScene + movs r0, 0 + bl _0803F15C +_0803E36C: + movs r0, 0x1 + bl _0803F15C +_0803E372: + str r0, [sp, 0x20] +_0803E374: + movs r3, 0 + str r3, [sp, 0x18] +_0803E378: + ldr r4, [sp, 0x18] + cmp r4, 0x5 + bls _0803E382 + bl _0803F14C +_0803E382: + lsls r0, r4, 2 + ldr r1, _0803E38C @ =_0803E390 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803E38C: .4byte _0803E390 + .align 2, 0 +_0803E390: + .4byte _0803E3A8 + .4byte _0803E474 + .4byte _0803E508 + .4byte _0803E59C + .4byte _0803E77C + .4byte _0803EE1E +_0803E3A8: + ldr r5, [sp, 0x20] + ldr r0, [sp, 0x18] + adds r2, r5, r0 + ldrb r1, [r2] + movs r0, 0x80 + ands r0, r1 + adds r6, r2, 0 + cmp r0, 0 + beq _0803E3F0 + ldr r0, _0803E460 @ =gMain + ldr r1, _0803E464 @ =0x0000043d + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0803E3F0 + ldr r2, [sp, 0x34] + cmp r2, 0x4 + beq _0803E3F0 + ldr r1, _0803E468 @ =gBattleMons + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r2, r0, r1 + ldr r1, [r2] + movs r0, 0xF0 + lsls r0, 12 + ands r0, r1 + cmp r0, 0 + beq _0803E3F0 + ldr r0, _0803E46C @ =0xfff0ffff + ands r1, r0 + str r1, [r2] + movs r3, 0 + str r3, [sp, 0x1C] +_0803E3F0: + ldrb r1, [r6] + movs r0, 0x30 + ands r0, r1 + cmp r0, 0 + beq _0803E41E + ldr r1, _0803E468 @ =gBattleMons + ldr r0, _0803E470 @ =gUnknown_02024A60 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r2, r0, r1 + ldr r1, [r2] + movs r3, 0x80 + lsls r3, 13 + adds r0, r1, 0 + ands r0, r3 + cmp r0, 0 + bne _0803E41E + orrs r1, r3 + str r1, [r2] + movs r4, 0 + str r4, [sp, 0x1C] +_0803E41E: + ldrb r0, [r6] + movs r3, 0xF + ands r3, r0 + cmp r3, 0 + bne _0803E42C + bl _0803F14C +_0803E42C: + ldr r6, _0803E468 @ =gBattleMons + ldr r5, _0803E470 @ =gUnknown_02024A60 + ldrb r0, [r5] + movs r4, 0x58 + muls r0, r4 + adds r1, r0, r6 + ldrb r2, [r1, 0x19] + movs r0, 0x19 + ldrsb r0, [r1, r0] + cmp r0, 0xB + ble _0803E446 + bl _0803F14C +_0803E446: + adds r0, r2, r3 + strb r0, [r1, 0x19] + ldrb r0, [r5] + muls r0, r4 + adds r1, r0, r6 + movs r0, 0x19 + ldrsb r0, [r1, r0] + cmp r0, 0xC + bgt _0803E45A + b _0803E74E +_0803E45A: + movs r0, 0xC + strb r0, [r1, 0x19] + b _0803E74E + .align 2, 0 +_0803E460: .4byte gMain +_0803E464: .4byte 0x0000043d +_0803E468: .4byte gBattleMons +_0803E46C: .4byte 0xfff0ffff +_0803E470: .4byte gUnknown_02024A60 +_0803E474: + ldr r0, [sp, 0x20] + ldr r1, [sp, 0x18] + adds r2, r0, r1 + ldrb r1, [r2] + movs r0, 0xF0 + ands r0, r1 + lsls r3, r0, 24 + adds r6, r2, 0 + cmp r3, 0 + beq _0803E4BA + ldr r7, _0803E500 @ =gBattleMons + ldr r5, _0803E504 @ =gUnknown_02024A60 + ldrb r0, [r5] + movs r4, 0x58 + muls r0, r4 + adds r1, r0, r7 + ldrb r2, [r1, 0x1A] + movs r0, 0x1A + ldrsb r0, [r1, r0] + cmp r0, 0xB + bgt _0803E4BA + lsrs r0, r3, 28 + adds r0, r2, r0 + strb r0, [r1, 0x1A] + ldrb r0, [r5] + muls r0, r4 + adds r1, r0, r7 + movs r0, 0x1A + ldrsb r0, [r1, r0] + cmp r0, 0xC + ble _0803E4B6 + movs r0, 0xC + strb r0, [r1, 0x1A] +_0803E4B6: + movs r2, 0 + str r2, [sp, 0x1C] +_0803E4BA: + ldrb r0, [r6] + movs r3, 0xF + ands r3, r0 + cmp r3, 0 + bne _0803E4C8 + bl _0803F14C +_0803E4C8: + ldr r6, _0803E500 @ =gBattleMons + ldr r5, _0803E504 @ =gUnknown_02024A60 + ldrb r0, [r5] + movs r4, 0x58 + muls r0, r4 + adds r1, r0, r6 + ldrb r2, [r1, 0x1B] + movs r0, 0x1B + ldrsb r0, [r1, r0] + cmp r0, 0xB + ble _0803E4E2 + bl _0803F14C +_0803E4E2: + adds r0, r2, r3 + strb r0, [r1, 0x1B] + ldrb r0, [r5] + muls r0, r4 + adds r1, r0, r6 + movs r0, 0x1B + ldrsb r0, [r1, r0] + cmp r0, 0xC + ble _0803E4F8 + movs r0, 0xC + strb r0, [r1, 0x1B] +_0803E4F8: + movs r3, 0 + str r3, [sp, 0x1C] + bl _0803F14C + .align 2, 0 +_0803E500: .4byte gBattleMons +_0803E504: .4byte gUnknown_02024A60 +_0803E508: + ldr r4, [sp, 0x20] + ldr r5, [sp, 0x18] + adds r2, r4, r5 + ldrb r1, [r2] + movs r0, 0xF0 + ands r0, r1 + lsls r3, r0, 24 + adds r6, r2, 0 + cmp r3, 0 + beq _0803E54E + ldr r7, _0803E594 @ =gBattleMons + ldr r5, _0803E598 @ =gUnknown_02024A60 + ldrb r0, [r5] + movs r4, 0x58 + muls r0, r4 + adds r1, r0, r7 + ldrb r2, [r1, 0x1E] + movs r0, 0x1E + ldrsb r0, [r1, r0] + cmp r0, 0xB + bgt _0803E54E + lsrs r0, r3, 28 + adds r0, r2, r0 + strb r0, [r1, 0x1E] + ldrb r0, [r5] + muls r0, r4 + adds r1, r0, r7 + movs r0, 0x1E + ldrsb r0, [r1, r0] + cmp r0, 0xC + ble _0803E54A + movs r0, 0xC + strb r0, [r1, 0x1E] +_0803E54A: + movs r0, 0 + str r0, [sp, 0x1C] +_0803E54E: + ldrb r0, [r6] + movs r3, 0xF + ands r3, r0 + cmp r3, 0 + bne _0803E55C + bl _0803F14C +_0803E55C: + ldr r6, _0803E594 @ =gBattleMons + ldr r5, _0803E598 @ =gUnknown_02024A60 + ldrb r0, [r5] + movs r4, 0x58 + muls r0, r4 + adds r1, r0, r6 + ldrb r2, [r1, 0x1C] + movs r0, 0x1C + ldrsb r0, [r1, r0] + cmp r0, 0xB + ble _0803E576 + bl _0803F14C +_0803E576: + adds r0, r2, r3 + strb r0, [r1, 0x1C] + ldrb r0, [r5] + muls r0, r4 + adds r1, r0, r6 + movs r0, 0x1C + ldrsb r0, [r1, r0] + cmp r0, 0xC + ble _0803E58C + movs r0, 0xC + strb r0, [r1, 0x1C] +_0803E58C: + movs r1, 0 + str r1, [sp, 0x1C] + bl _0803F14C + .align 2, 0 +_0803E594: .4byte gBattleMons +_0803E598: .4byte gUnknown_02024A60 +_0803E59C: + ldr r3, [sp, 0x20] + ldr r4, [sp, 0x18] + adds r2, r3, r4 + ldrb r1, [r2] + movs r0, 0x80 + ands r0, r1 + adds r6, r2, 0 + cmp r0, 0 + beq _0803E5E4 + ldr r5, _0803E758 @ =gUnknown_02024C80 + ldr r4, _0803E75C @ =gUnknown_02024A60 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r0, [r1, 0x2] + cmp r0, 0 + bne _0803E5E4 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + movs r0, 0x5 + strb r0, [r1, 0x2] + movs r5, 0 + str r5, [sp, 0x1C] +_0803E5E4: + ldrb r1, [r6] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0803E646 + mov r0, r8 + movs r1, 0x38 + movs r2, 0 + bl GetMonData + cmp r0, 0x64 + beq _0803E646 + ldr r5, _0803E760 @ =gExperienceTables + mov r0, r8 + movs r1, 0x38 + movs r2, 0 + bl GetMonData + adds r4, r0, 0 + mov r0, r8 + movs r1, 0xB + movs r2, 0 + bl GetMonData + adds r4, 0x1 + lsls r4, 2 + ldr r2, _0803E764 @ =gBaseStats + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r1, [r1, 0x13] + movs r0, 0xCA + lsls r0, 1 + muls r0, r1 + adds r4, r0 + adds r4, r5 + ldr r0, [r4] + str r0, [sp] + mov r0, r8 + movs r1, 0x19 + mov r2, sp + bl SetMonData + mov r0, r8 + bl CalculateMonStats + movs r0, 0 + str r0, [sp, 0x1C] +_0803E646: + ldrb r1, [r6] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0803E682 + mov r0, r8 + ldr r1, [sp, 0xC] + movs r2, 0x7 + ldr r3, [sp, 0x34] + bl HealStatusConditions + lsls r0, 24 + cmp r0, 0 + bne _0803E682 + ldr r1, [sp, 0x34] + cmp r1, 0x4 + beq _0803E67E + ldr r1, _0803E768 @ =gBattleMons + movs r0, 0x58 + ldr r3, [sp, 0x34] + adds r2, r3, 0 + muls r2, r0 + adds r1, 0x50 + adds r2, r1 + ldr r0, [r2] + ldr r1, _0803E76C @ =0xf7ffffff + ands r0, r1 + str r0, [r2] +_0803E67E: + movs r4, 0 + str r4, [sp, 0x1C] +_0803E682: + ldrb r1, [r6] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0803E6A2 + ldr r2, _0803E770 @ =0x00000f88 + mov r0, r8 + ldr r1, [sp, 0xC] + ldr r3, [sp, 0x34] + bl HealStatusConditions + lsls r0, 24 + cmp r0, 0 + bne _0803E6A2 + movs r5, 0 + str r5, [sp, 0x1C] +_0803E6A2: + ldrb r1, [r6] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0803E6C2 + mov r0, r8 + ldr r1, [sp, 0xC] + movs r2, 0x10 + ldr r3, [sp, 0x34] + bl HealStatusConditions + lsls r0, 24 + cmp r0, 0 + bne _0803E6C2 + movs r0, 0 + str r0, [sp, 0x1C] +_0803E6C2: + ldrb r1, [r6] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0803E6E2 + mov r0, r8 + ldr r1, [sp, 0xC] + movs r2, 0x20 + ldr r3, [sp, 0x34] + bl HealStatusConditions + lsls r0, 24 + cmp r0, 0 + bne _0803E6E2 + movs r1, 0 + str r1, [sp, 0x1C] +_0803E6E2: + ldrb r1, [r6] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0803E702 + mov r0, r8 + ldr r1, [sp, 0xC] + movs r2, 0x40 + ldr r3, [sp, 0x34] + bl HealStatusConditions + lsls r0, 24 + cmp r0, 0 + bne _0803E702 + movs r2, 0 + str r2, [sp, 0x1C] +_0803E702: + ldrb r1, [r6] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0803E710 + bl _0803F14C +_0803E710: + ldr r0, _0803E774 @ =gMain + ldr r3, _0803E778 @ =0x0000043d + adds r0, r3 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _0803E724 + bl _0803F14C +_0803E724: + ldr r4, [sp, 0x34] + cmp r4, 0x4 + bne _0803E72E + bl _0803F14C +_0803E72E: + ldr r1, _0803E768 @ =gBattleMons + movs r0, 0x58 + muls r0, r4 + adds r1, 0x50 + adds r2, r0, r1 + ldr r1, [r2] + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + bne _0803E746 + bl _0803F14C +_0803E746: + movs r0, 0x8 + negs r0, r0 + ands r1, r0 + str r1, [r2] +_0803E74E: + movs r5, 0 + str r5, [sp, 0x1C] + bl _0803F14C + .align 2, 0 +_0803E758: .4byte gUnknown_02024C80 +_0803E75C: .4byte gUnknown_02024A60 +_0803E760: .4byte gExperienceTables +_0803E764: .4byte gBaseStats +_0803E768: .4byte gBattleMons +_0803E76C: .4byte 0xf7ffffff +_0803E770: .4byte 0x00000f88 +_0803E774: .4byte gMain +_0803E778: .4byte 0x0000043d +_0803E77C: + ldr r1, [sp, 0x20] + ldr r2, [sp, 0x18] + adds r0, r1, r2 + ldrb r0, [r0] + mov r10, r0 + movs r0, 0x20 + mov r3, r10 + ands r0, r3 + cmp r0, 0 + beq _0803E854 + movs r0, 0xDF + ands r3, r0 + mov r10, r3 + mov r0, r8 + movs r1, 0x15 + movs r2, 0 + bl GetMonData + ldr r1, _0803E880 @ =gUnknown_08208238 + ldr r4, [sp, 0x10] + adds r1, r4, r1 + ldrb r1, [r1] + ands r0, r1 + lsls r1, r4, 1 + lsrs r0, r1 + str r0, [sp] + adds r5, r4, 0 + adds r5, 0xD + mov r0, r8 + adds r1, r5, 0 + movs r2, 0 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + mov r0, r8 + movs r1, 0x15 + movs r2, 0 + bl GetMonData + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + ldr r2, [sp, 0x10] + bl CalculatePPWithBonus + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x28] + ldr r0, [sp] + cmp r0, 0x2 + bhi _0803E854 + ldr r0, [sp, 0x28] + cmp r0, 0x4 + bls _0803E854 + mov r0, r8 + movs r1, 0x15 + movs r2, 0 + bl GetMonData + ldr r1, _0803E884 @ =gUnknown_08208240 + ldr r2, [sp, 0x10] + adds r1, r2, r1 + ldrb r1, [r1] + adds r0, r1 + str r0, [sp] + mov r0, r8 + movs r1, 0x15 + mov r2, sp + bl SetMonData + mov r0, r8 + adds r1, r5, 0 + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + ldr r1, [sp] + lsls r1, 24 + lsrs r1, 24 + ldr r2, [sp, 0x10] + bl CalculatePPWithBonus + lsls r0, 24 + lsrs r0, 24 + ldr r3, [sp, 0x28] + subs r0, r3 + str r0, [sp] + ldr r4, [sp, 0x10] + adds r4, 0x11 + mov r0, r8 + adds r1, r4, 0 + movs r2, 0 + bl GetMonData + ldr r1, [sp] + adds r0, r1 + str r0, [sp] + mov r0, r8 + adds r1, r4, 0 + mov r2, sp + bl SetMonData + movs r4, 0 + str r4, [sp, 0x1C] +_0803E854: + movs r5, 0 + str r5, [sp, 0x28] + mov r0, r10 + cmp r0, 0 + bne _0803E862 + bl _0803F14C +_0803E862: + movs r0, 0x1 + mov r1, r10 + ands r0, r1 + cmp r0, 0 + bne _0803E86E + b _0803EE0A +_0803E86E: + ldr r2, [sp, 0x28] + cmp r2, 0x7 + bls _0803E876 + b _0803EE0A +_0803E876: + lsls r0, r2, 2 + ldr r1, _0803E888 @ =_0803E88C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803E880: .4byte gUnknown_08208238 +_0803E884: .4byte gUnknown_08208240 +_0803E888: .4byte _0803E88C + .align 2, 0 +_0803E88C: + .4byte _0803E8AC + .4byte _0803E8AC + .4byte _0803E934 + .4byte _0803EB5C + .4byte _0803EE0A + .4byte _0803EE0A + .4byte _0803EE0A + .4byte _0803EDF4 +_0803E8AC: + mov r0, r8 + bl GetMonEVCount + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _0803E8EC @ =0x000001fd + cmp r5, r0 + bls _0803E8BE + b _0803E36C +_0803E8BE: + ldr r0, _0803E8F0 @ =gUnknown_082082F2 + ldr r3, [sp, 0x28] + adds r0, r3, r0 + ldrb r1, [r0] + mov r0, r8 + movs r2, 0 + bl GetMonData + adds r1, r0, 0 + str r1, [sp] + cmp r1, 0x63 + bls _0803E8D8 + b _0803EE0A +_0803E8D8: + ldr r4, [sp, 0x20] + ldr r2, [sp, 0x24] + adds r0, r4, r2 + ldrb r0, [r0] + adds r1, r0 + cmp r1, 0x64 + bls _0803E8F4 + adds r0, 0x64 + subs r4, r0, r1 + b _0803E8F6 + .align 2, 0 +_0803E8EC: .4byte 0x000001fd +_0803E8F0: .4byte gUnknown_082082F2 +_0803E8F4: + adds r4, r0, 0 +_0803E8F6: + adds r1, r5, r4 + movs r0, 0xFF + lsls r0, 1 + cmp r1, r0 + bls _0803E904 + adds r0, r4, r0 + subs r4, r0, r1 +_0803E904: + ldr r0, [sp] + adds r0, r4 + str r0, [sp] + ldr r0, _0803E930 @ =gUnknown_082082F2 + ldr r3, [sp, 0x28] + adds r0, r3, r0 + ldrb r1, [r0] + mov r0, r8 + mov r2, sp + bl SetMonData + mov r0, r8 + bl CalculateMonStats + ldr r0, [sp, 0x24] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x24] + movs r4, 0 + str r4, [sp, 0x1C] + b _0803EE0A + .align 2, 0 +_0803E930: .4byte gUnknown_082082F2 +_0803E934: + movs r0, 0x10 + mov r5, r10 + ands r0, r5 + cmp r0, 0 + beq _0803E9F4 + mov r0, r8 + movs r1, 0x39 + movs r2, 0 + bl GetMonData + cmp r0, 0 + beq _0803E954 + ldr r0, [sp, 0x24] + adds r0, 0x1 + lsls r0, 24 + b _0803EC9E +_0803E954: + ldr r0, _0803E99C @ =gMain + ldr r1, _0803E9A0 @ =0x0000043d + adds r0, r1 + ldrb r1, [r0] + movs r4, 0x2 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0803EA0A + ldr r2, [sp, 0x34] + cmp r2, 0x4 + beq _0803E9B4 + ldr r2, _0803E9A4 @ =gUnknown_02024C0C + ldr r1, _0803E9A8 @ =gBitTable + ldr r3, [sp, 0x34] + lsls r0, r3, 2 + adds r0, r1 + ldr r1, [r0] + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] + ldr r1, _0803E9AC @ =gUnknown_02024A6A + lsls r0, r3, 1 + adds r0, r1 + ldrb r0, [r0] + bl pokemon_order_func + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r0, [sp, 0x34] + bl CopyPlayerPartyMonToBattleData + ldr r0, _0803E9B0 @ =gUnknown_02024A60 + ldrb r0, [r0] + b _0803E9CC + .align 2, 0 +_0803E99C: .4byte gMain +_0803E9A0: .4byte 0x0000043d +_0803E9A4: .4byte gUnknown_02024C0C +_0803E9A8: .4byte gBitTable +_0803E9AC: .4byte gUnknown_02024A6A +_0803E9B0: .4byte gUnknown_02024A60 +_0803E9B4: + ldr r3, _0803E9E4 @ =gUnknown_02024C0C + ldr r1, _0803E9E8 @ =gBitTable + ldr r2, _0803E9EC @ =gUnknown_02024A60 + ldrb r0, [r2] + eors r0, r4 + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + ldrb r0, [r3] + bics r0, r1 + strb r0, [r3] + ldrb r0, [r2] +_0803E9CC: + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _0803EA0A + ldr r1, _0803E9F0 @ =gUnknown_030042E0 + ldrb r0, [r1, 0x4] + cmp r0, 0xFE + bhi _0803EA0A + adds r0, 0x1 + strb r0, [r1, 0x4] + b _0803EA0A + .align 2, 0 +_0803E9E4: .4byte gUnknown_02024C0C +_0803E9E8: .4byte gBitTable +_0803E9EC: .4byte gUnknown_02024A60 +_0803E9F0: .4byte gUnknown_030042E0 +_0803E9F4: + mov r0, r8 + movs r1, 0x39 + movs r2, 0 + bl GetMonData + cmp r0, 0 + bne _0803EA0A + ldr r0, [sp, 0x24] + adds r0, 0x1 + lsls r0, 24 + b _0803EC9E +_0803EA0A: + ldr r1, [sp, 0x24] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x24] + ldr r4, [sp, 0x20] + adds r1, r4, r1 + ldrb r1, [r1] + str r1, [sp] + adds r0, r1, 0 + cmp r0, 0xFE + beq _0803EA4C + cmp r0, 0xFE + bhi _0803EA2C + cmp r0, 0xFD + beq _0803EA62 + b _0803EA6C +_0803EA2C: + cmp r1, 0xFF + bne _0803EA6C + mov r0, r8 + movs r1, 0x3A + movs r2, 0 + bl GetMonData + adds r4, r0, 0 + mov r0, r8 + movs r1, 0x39 + movs r2, 0 + bl GetMonData + subs r4, r0 + str r4, [sp] + b _0803EA6C +_0803EA4C: + mov r0, r8 + movs r1, 0x3A + movs r2, 0 + bl GetMonData + lsrs r0, 1 + str r0, [sp] + cmp r0, 0 + bne _0803EA6C + movs r0, 0x1 + b _0803EA6A +_0803EA62: + ldr r0, _0803EB24 @ =0x02000000 + ldr r5, _0803EB28 @ =0x000160fa + adds r0, r5 + ldrb r0, [r0] +_0803EA6A: + str r0, [sp] +_0803EA6C: + mov r0, r8 + movs r1, 0x3A + movs r2, 0 + bl GetMonData + adds r4, r0, 0 + mov r0, r8 + movs r1, 0x39 + movs r2, 0 + bl GetMonData + cmp r4, r0 + beq _0803EB4C + ldr r0, [sp, 0x14] + cmp r0, 0 + bne _0803EB40 + mov r0, r8 + movs r1, 0x39 + movs r2, 0 + bl GetMonData + ldr r1, [sp] + adds r0, r1 + str r0, [sp] + mov r0, r8 + movs r1, 0x3A + movs r2, 0 + bl GetMonData + ldr r1, [sp] + cmp r1, r0 + bls _0803EAB8 + mov r0, r8 + movs r1, 0x3A + movs r2, 0 + bl GetMonData + str r0, [sp] +_0803EAB8: + mov r0, r8 + movs r1, 0x39 + mov r2, sp + bl SetMonData + ldr r0, _0803EB2C @ =gMain + ldr r1, _0803EB30 @ =0x0000043d + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0803EB48 + ldr r2, [sp, 0x34] + cmp r2, 0x4 + beq _0803EB48 + ldr r1, _0803EB34 @ =gBattleMons + movs r0, 0x58 + muls r0, r2 + adds r0, r1 + ldr r1, [sp] + strh r1, [r0, 0x28] + movs r0, 0x10 + mov r3, r10 + ands r0, r3 + cmp r0, 0 + bne _0803EB48 + ldr r4, _0803EB38 @ =gUnknown_02024A60 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _0803EB48 + ldr r1, _0803EB3C @ =gUnknown_030042E0 + ldrb r0, [r1, 0x3] + cmp r0, 0xFE + bhi _0803EB08 + adds r0, 0x1 + strb r0, [r1, 0x3] +_0803EB08: + ldrb r5, [r4] + add r0, sp, 0x34 + ldrb r0, [r0] + strb r0, [r4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl dp01_build_cmdbuf_x00_a_b_0 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + strb r5, [r4] + b _0803EB48 + .align 2, 0 +_0803EB24: .4byte 0x02000000 +_0803EB28: .4byte 0x000160fa +_0803EB2C: .4byte gMain +_0803EB30: .4byte 0x0000043d +_0803EB34: .4byte gBattleMons +_0803EB38: .4byte gUnknown_02024A60 +_0803EB3C: .4byte gUnknown_030042E0 +_0803EB40: + ldr r1, _0803EB58 @ =gUnknown_02024BEC + ldr r0, [sp] + negs r0, r0 + str r0, [r1] +_0803EB48: + movs r1, 0 + str r1, [sp, 0x1C] +_0803EB4C: + movs r0, 0xEF + mov r2, r10 + ands r2, r0 + mov r10, r2 + b _0803EE0A + .align 2, 0 +_0803EB58: .4byte gUnknown_02024BEC +_0803EB5C: + movs r7, 0x2 + mov r0, r10 + ands r0, r7 + cmp r0, 0 + beq _0803EB68 + b _0803ECB8 +_0803EB68: + movs r5, 0 + ldr r3, [sp, 0x24] + adds r3, 0x1 + str r3, [sp, 0x38] +_0803EB70: + movs r4, 0x11 + adds r4, r5 + mov r9, r4 + mov r0, r8 + mov r1, r9 + movs r2, 0 + bl GetMonData + str r0, [sp] + adds r7, r5, 0 + adds r7, 0xD + mov r0, r8 + adds r1, r7, 0 + movs r2, 0 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + mov r0, r8 + movs r1, 0x15 + movs r2, 0 + bl GetMonData + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r5, 24 + lsrs r6, r0, 24 + adds r0, r4, 0 + adds r2, r6, 0 + bl CalculatePPWithBonus + lsls r0, 24 + lsrs r0, 24 + ldr r1, [sp] + cmp r1, r0 + beq _0803EC92 + ldr r2, [sp, 0x20] + ldr r3, [sp, 0x24] + adds r0, r2, r3 + ldrb r0, [r0] + adds r0, r1, r0 + str r0, [sp] + mov r0, r8 + adds r1, r7, 0 + movs r2, 0 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + mov r0, r8 + movs r1, 0x15 + movs r2, 0 + bl GetMonData + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + adds r2, r6, 0 + bl CalculatePPWithBonus + lsls r0, 24 + lsrs r0, 24 + ldr r1, [sp] + cmp r1, r0 + bls _0803EC28 + mov r0, r8 + adds r1, r7, 0 + movs r2, 0 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + mov r0, r8 + movs r1, 0x15 + movs r2, 0 + bl GetMonData + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + adds r2, r6, 0 + bl CalculatePPWithBonus + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] +_0803EC28: + mov r0, r8 + mov r1, r9 + mov r2, sp + bl SetMonData + ldr r0, _0803ECA4 @ =gMain + ldr r4, _0803ECA8 @ =0x0000043d + adds r0, r4 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0803EC8E + ldr r0, [sp, 0x34] + cmp r0, 0x4 + beq _0803EC8E + ldr r4, _0803ECAC @ =gBattleMons + movs r0, 0x58 + ldr r1, [sp, 0x34] + adds r3, r1, 0 + muls r3, r0 + adds r0, r4, 0 + adds r0, 0x50 + adds r0, r3, r0 + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 14 + ands r1, r0 + cmp r1, 0 + bne _0803EC8E + ldr r1, _0803ECB0 @ =gUnknown_02024CA8 + ldr r2, [sp, 0x34] + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x18] + lsrs r1, 4 + ldr r2, _0803ECB4 @ =gBitTable + lsls r0, r5, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0803EC8E + adds r0, r5, r3 + adds r1, r4, 0 + adds r1, 0x24 + adds r0, r1 + ldr r1, [sp] + strb r1, [r0] +_0803EC8E: + movs r3, 0 + str r3, [sp, 0x1C] +_0803EC92: + adds r5, 0x1 + cmp r5, 0x3 + bgt _0803EC9A + b _0803EB70 +_0803EC9A: + ldr r4, [sp, 0x38] + lsls r0, r4, 24 +_0803EC9E: + lsrs r0, 24 + str r0, [sp, 0x24] + b _0803EE0A + .align 2, 0 +_0803ECA4: .4byte gMain +_0803ECA8: .4byte 0x0000043d +_0803ECAC: .4byte gBattleMons +_0803ECB0: .4byte gUnknown_02024CA8 +_0803ECB4: .4byte gBitTable +_0803ECB8: + ldr r6, [sp, 0x10] + adds r6, 0x11 + mov r0, r8 + adds r1, r6, 0 + movs r2, 0 + bl GetMonData + str r0, [sp] + ldr r5, [sp, 0x10] + adds r5, 0xD + mov r0, r8 + adds r1, r5, 0 + movs r2, 0 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + mov r0, r8 + movs r1, 0x15 + movs r2, 0 + bl GetMonData + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + ldr r2, [sp, 0x10] + bl CalculatePPWithBonus + lsls r0, 24 + lsrs r0, 24 + ldr r2, [sp] + cmp r2, r0 + bne _0803ED00 + b _0803EE0A +_0803ED00: + ldr r1, [sp, 0x24] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x24] + ldr r0, [sp, 0x20] + adds r1, r0, r1 + ldrb r0, [r1] + adds r0, r2, r0 + str r0, [sp] + mov r0, r8 + adds r1, r5, 0 + movs r2, 0 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + mov r0, r8 + movs r1, 0x15 + movs r2, 0 + bl GetMonData + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + ldr r2, [sp, 0x10] + bl CalculatePPWithBonus + lsls r0, 24 + lsrs r0, 24 + ldr r1, [sp] + cmp r1, r0 + bls _0803ED74 + mov r0, r8 + adds r1, r5, 0 + movs r2, 0 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + mov r0, r8 + movs r1, 0x15 + movs r2, 0 + bl GetMonData + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + ldr r2, [sp, 0x10] + bl CalculatePPWithBonus + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] +_0803ED74: + mov r0, r8 + adds r1, r6, 0 + mov r2, sp + bl SetMonData + ldr r0, _0803EDE0 @ =gMain + ldr r1, _0803EDE4 @ =0x0000043d + adds r0, r1 + ldrb r1, [r0] + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _0803EDD8 + ldr r2, [sp, 0x34] + cmp r2, 0x4 + beq _0803EDD8 + ldr r4, _0803EDE8 @ =gBattleMons + movs r0, 0x58 + adds r3, r2, 0 + muls r3, r0 + adds r0, r4, 0 + adds r0, 0x50 + adds r0, r3, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + bne _0803EDD8 + ldr r1, _0803EDEC @ =gUnknown_02024CA8 + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x18] + lsrs r1, 4 + ldr r2, _0803EDF0 @ =gBitTable + ldr r5, [sp, 0x10] + lsls r0, r5, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0803EDD8 + adds r0, r5, r3 + adds r1, r4, 0 + adds r1, 0x24 + adds r0, r1 + ldr r1, [sp] + strb r1, [r0] +_0803EDD8: + movs r0, 0 + str r0, [sp, 0x1C] + b _0803EE0A + .align 2, 0 +_0803EDE0: .4byte gMain +_0803EDE4: .4byte 0x0000043d +_0803EDE8: .4byte gBattleMons +_0803EDEC: .4byte gUnknown_02024CA8 +_0803EDF0: .4byte gBitTable +_0803EDF4: + mov r0, r8 + movs r1, 0x2 + ldr r2, [sp, 0x8] + bl GetEvolutionTargetSpecies + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + beq _0803EE0A + bl _0803E35C +_0803EE0A: + ldr r1, [sp, 0x28] + adds r1, 0x1 + str r1, [sp, 0x28] + mov r2, r10 + lsrs r2, 1 + mov r10, r2 + cmp r2, 0 + beq _0803EE1C + b _0803E862 +_0803EE1C: + b _0803F14C +_0803EE1E: + ldr r3, [sp, 0x20] + ldr r4, [sp, 0x18] + adds r0, r3, r4 + ldrb r0, [r0] + mov r10, r0 + movs r5, 0 + str r5, [sp, 0x28] + cmp r0, 0 + bne _0803EE32 + b _0803F14C +_0803EE32: + movs r0, 0x1 + mov r1, r10 + ands r0, r1 + cmp r0, 0 + bne _0803EE3E + b _0803F13A +_0803EE3E: + ldr r2, [sp, 0x28] + cmp r2, 0x7 + bls _0803EE46 + b _0803F13A +_0803EE46: + lsls r0, r2, 2 + ldr r1, _0803EE50 @ =_0803EE54 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803EE50: .4byte _0803EE54 + .align 2, 0 +_0803EE54: + .4byte _0803EE74 + .4byte _0803EE74 + .4byte _0803EE74 + .4byte _0803EE74 + .4byte _0803EEF8 + .4byte _0803EFCC + .4byte _0803F026 + .4byte _0803F07C +_0803EE74: + mov r0, r8 + bl GetMonEVCount + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _0803EEBC @ =0x000001fd + cmp r5, r0 + bls _0803EE88 + bl _0803E36C +_0803EE88: + ldr r0, _0803EEC0 @ =gUnknown_082082F2 + ldr r4, [sp, 0x28] + adds r4, 0x2 + adds r0, r4, r0 + ldrb r1, [r0] + mov r0, r8 + movs r2, 0 + bl GetMonData + adds r1, r0, 0 + str r1, [sp] + adds r2, r4, 0 + cmp r1, 0x63 + bls _0803EEA6 + b _0803F13A +_0803EEA6: + ldr r3, [sp, 0x20] + ldr r4, [sp, 0x24] + adds r0, r3, r4 + ldrb r0, [r0] + adds r1, r0 + cmp r1, 0x64 + bls _0803EEC4 + adds r0, 0x64 + subs r4, r0, r1 + b _0803EEC6 + .align 2, 0 +_0803EEBC: .4byte 0x000001fd +_0803EEC0: .4byte gUnknown_082082F2 +_0803EEC4: + adds r4, r0, 0 +_0803EEC6: + adds r1, r5, r4 + movs r0, 0xFF + lsls r0, 1 + cmp r1, r0 + bls _0803EED4 + adds r0, r4, r0 + subs r4, r0, r1 +_0803EED4: + ldr r0, [sp] + adds r0, r4 + str r0, [sp] + ldr r0, _0803EEF4 @ =gUnknown_082082F2 + adds r0, r2, r0 + ldrb r1, [r0] + mov r0, r8 + mov r2, sp + bl SetMonData + mov r0, r8 + bl CalculateMonStats + movs r5, 0 + str r5, [sp, 0x1C] + b _0803F130 + .align 2, 0 +_0803EEF4: .4byte gUnknown_082082F2 +_0803EEF8: + mov r0, r8 + movs r1, 0x15 + movs r2, 0 + bl GetMonData + ldr r1, _0803EFC0 @ =gUnknown_08208238 + ldr r2, [sp, 0x10] + adds r1, r2, r1 + ldrb r1, [r1] + ands r0, r1 + lsls r1, r2, 1 + lsrs r0, r1 + str r0, [sp] + cmp r0, 0x2 + bls _0803EF18 + b _0803F13A +_0803EF18: + adds r5, r2, 0 + adds r5, 0xD + mov r0, r8 + adds r1, r5, 0 + movs r2, 0 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + mov r0, r8 + movs r1, 0x15 + movs r2, 0 + bl GetMonData + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + ldr r2, [sp, 0x10] + bl CalculatePPWithBonus + lsls r0, 24 + lsrs r4, r0, 24 + mov r0, r8 + movs r1, 0x15 + movs r2, 0 + bl GetMonData + str r0, [sp] + ldr r1, _0803EFC4 @ =gUnknown_0820823C + ldr r3, [sp, 0x10] + adds r1, r3, r1 + ldrb r2, [r1] + ands r2, r0 + str r2, [sp] + ldr r0, _0803EFC8 @ =gUnknown_08208240 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + adds r2, r0 + str r2, [sp] + mov r0, r8 + movs r1, 0x15 + mov r2, sp + bl SetMonData + mov r0, r8 + adds r1, r5, 0 + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + ldr r1, [sp] + lsls r1, 24 + lsrs r1, 24 + ldr r2, [sp, 0x10] + bl CalculatePPWithBonus + lsls r0, 24 + lsrs r0, 24 + subs r0, r4 + str r0, [sp] + ldr r4, [sp, 0x10] + adds r4, 0x11 + mov r0, r8 + adds r1, r4, 0 + movs r2, 0 + bl GetMonData + ldr r1, [sp] + adds r0, r1 + str r0, [sp] + mov r0, r8 + adds r1, r4, 0 + mov r2, sp + bl SetMonData + movs r4, 0 + str r4, [sp, 0x1C] + b _0803F13A + .align 2, 0 +_0803EFC0: .4byte gUnknown_08208238 +_0803EFC4: .4byte gUnknown_0820823C +_0803EFC8: .4byte gUnknown_08208240 +_0803EFCC: + mov r0, r8 + movs r1, 0x20 + movs r2, 0 + bl GetMonData + cmp r0, 0x63 + bls _0803EFDC + b _0803F130 +_0803EFDC: + ldr r5, [sp, 0x1C] + cmp r5, 0 + beq _0803EFE4 + b _0803F130 +_0803EFE4: + ldr r0, [sp, 0x2C] + cmp r0, 0 + beq _0803EFEC + b _0803F130 +_0803EFEC: + ldr r1, [sp, 0x20] + ldr r2, [sp, 0x24] + adds r0, r1, r2 + ldrb r0, [r0] + str r0, [sp, 0x2C] + mov r0, r8 + movs r1, 0x20 + movs r2, 0 + bl GetMonData + adds r5, r0, 0 + str r5, [sp, 0x4] + ldr r3, [sp, 0x2C] + lsls r4, r3, 24 + asrs r1, r4, 24 + cmp r1, 0 + ble _0803F0D0 + ldr r0, [sp, 0x30] + cmp r0, 0x1B + bne _0803F0D0 + movs r0, 0x96 + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + adds r0, r5, r0 + str r0, [sp, 0x4] + adds r2, r4, 0 + b _0803F0DC +_0803F026: + mov r0, r8 + movs r1, 0x20 + movs r2, 0 + bl GetMonData + cmp r0, 0x63 + bls _0803F130 + mov r0, r8 + movs r1, 0x20 + movs r2, 0 + bl GetMonData + cmp r0, 0xC7 + bhi _0803F130 + ldr r2, [sp, 0x1C] + cmp r2, 0 + bne _0803F130 + ldr r3, [sp, 0x2C] + cmp r3, 0 + bne _0803F130 + ldr r4, [sp, 0x20] + ldr r5, [sp, 0x24] + adds r0, r4, r5 + ldrb r0, [r0] + str r0, [sp, 0x2C] + mov r0, r8 + movs r1, 0x20 + movs r2, 0 + bl GetMonData + adds r4, r0, 0 + str r4, [sp, 0x4] + ldr r0, [sp, 0x2C] + lsls r5, r0, 24 + asrs r1, r5, 24 + cmp r1, 0 + ble _0803F076 + ldr r2, [sp, 0x30] + cmp r2, 0x1B + beq _0803F0BE +_0803F076: + ldr r3, [sp, 0x2C] + lsls r2, r3, 24 + b _0803F0D4 +_0803F07C: + mov r0, r8 + movs r1, 0x20 + movs r2, 0 + bl GetMonData + cmp r0, 0xC7 + bls _0803F130 + ldr r4, [sp, 0x1C] + cmp r4, 0 + bne _0803F130 + ldr r5, [sp, 0x2C] + cmp r5, 0 + bne _0803F130 + ldr r1, [sp, 0x20] + ldr r2, [sp, 0x24] + adds r0, r1, r2 + ldrb r0, [r0] + str r0, [sp, 0x2C] + mov r0, r8 + movs r1, 0x20 + movs r2, 0 + bl GetMonData + adds r4, r0, 0 + str r4, [sp, 0x4] + ldr r3, [sp, 0x2C] + lsls r5, r3, 24 + asrs r1, r5, 24 + cmp r1, 0 + ble _0803F0D0 + ldr r0, [sp, 0x30] + cmp r0, 0x1B + bne _0803F0D0 +_0803F0BE: + movs r0, 0x96 + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + adds r0, r4, r0 + str r0, [sp, 0x4] + adds r2, r5, 0 + b _0803F0DC +_0803F0D0: + ldr r1, [sp, 0x2C] + lsls r2, r1, 24 +_0803F0D4: + asrs r1, r2, 24 + ldr r0, [sp, 0x4] + adds r0, r1 + str r0, [sp, 0x4] +_0803F0DC: + cmp r2, 0 + ble _0803F112 + mov r0, r8 + movs r1, 0x26 + movs r2, 0 + bl GetMonData + cmp r0, 0xB + bne _0803F0F4 + ldr r0, [sp, 0x4] + adds r0, 0x1 + str r0, [sp, 0x4] +_0803F0F4: + mov r0, r8 + movs r1, 0x23 + movs r2, 0 + bl GetMonData + adds r4, r0, 0 + bl sav1_map_get_name + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bne _0803F112 + ldr r0, [sp, 0x4] + adds r0, 0x1 + str r0, [sp, 0x4] +_0803F112: + ldr r0, [sp, 0x4] + cmp r0, 0 + bge _0803F11C + movs r0, 0 + str r0, [sp, 0x4] +_0803F11C: + ldr r0, [sp, 0x4] + cmp r0, 0xFF + ble _0803F126 + movs r0, 0xFF + str r0, [sp, 0x4] +_0803F126: + add r2, sp, 0x4 + mov r0, r8 + movs r1, 0x20 + bl SetMonData +_0803F130: + ldr r0, [sp, 0x24] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x24] +_0803F13A: + ldr r2, [sp, 0x28] + adds r2, 0x1 + str r2, [sp, 0x28] + mov r3, r10 + lsrs r3, 1 + mov r10, r3 + cmp r3, 0 + beq _0803F14C + b _0803EE32 +_0803F14C: + ldr r4, [sp, 0x18] + adds r4, 0x1 + str r4, [sp, 0x18] + cmp r4, 0x5 + bgt _0803F15A + bl _0803E378 +_0803F15A: + ldr r0, [sp, 0x1C] +_0803F15C: + add sp, 0x3C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_803E1B0 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokemon_menu.s b/asm/pokemon_menu.s new file mode 100644 index 000000000..6a3fbb170 --- /dev/null +++ b/asm/pokemon_menu.s @@ -0,0 +1,3438 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_8089A70 +sub_8089A70: @ 8089A70 + push {lr} + ldr r0, _08089A88 @ =gPaletteFade + ldrb r1, [r0, 0x8] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0, 0x8] + movs r0, 0 + movs r1, 0 + bl OpenPartyMenu + pop {r0} + bx r0 + .align 2, 0 +_08089A88: .4byte gPaletteFade + thumb_func_end sub_8089A70 + + thumb_func_start sub_8089A8C +sub_8089A8C: @ 8089A8C + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r5, _08089AD0 @ =gUnknown_0202FFA9 + movs r0, 0 + strb r0, [r5] + ldr r0, _08089AD4 @ =gUnknown_03005CE0 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08089AD8 @ =gPlayerParty + adds r0, r1 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + beq _08089AE0 + ldr r4, _08089ADC @ =gUnknown_0202FFAA + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0 + bl AppendToList + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x1 + bl AppendToList + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x3 + bl AppendToList + b _08089BC8 + .align 2, 0 +_08089AD0: .4byte gUnknown_0202FFA9 +_08089AD4: .4byte gUnknown_03005CE0 +_08089AD8: .4byte gPlayerParty +_08089ADC: .4byte gUnknown_0202FFAA +_08089AE0: + movs r6, 0 + ldr r0, _08089B24 @ =gUnknown_0839F554 + ldrh r0, [r0] + mov r8, r0 +_08089AE8: + movs r4, 0 + adds r7, r6, 0x1 + mov r0, r8 + cmp r0, 0xFF + beq _08089B48 + ldr r5, _08089B24 @ =gUnknown_0839F554 +_08089AF4: + ldr r0, _08089B28 @ =gUnknown_03005CE0 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08089B2C @ =gPlayerParty + adds r0, r1 + adds r1, r6, 0 + adds r1, 0xD + bl GetMonData + lsls r1, r4, 1 + adds r1, r5 + ldrh r1, [r1] + cmp r0, r1 + bne _08089B38 + adds r2, r4, 0 + adds r2, 0xA + lsls r2, 24 + lsrs r2, 24 + ldr r0, _08089B30 @ =gUnknown_0202FFAA + ldr r1, _08089B34 @ =gUnknown_0202FFA9 + bl AppendToList + b _08089B48 + .align 2, 0 +_08089B24: .4byte gUnknown_0839F554 +_08089B28: .4byte gUnknown_03005CE0 +_08089B2C: .4byte gPlayerParty +_08089B30: .4byte gUnknown_0202FFAA +_08089B34: .4byte gUnknown_0202FFA9 +_08089B38: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + lsls r0, r4, 1 + adds r0, r5 + ldrh r0, [r0] + cmp r0, 0xFF + bne _08089AF4 +_08089B48: + lsls r0, r7, 16 + lsrs r6, r0, 16 + cmp r6, 0x3 + bls _08089AE8 + ldr r4, _08089BA4 @ =gUnknown_0202FFAA + ldr r5, _08089BA8 @ =gUnknown_0202FFA9 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0 + bl AppendToList + ldr r6, _08089BAC @ =gPlayerParty + 1 * 0x64 + adds r0, r6, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _08089B76 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x1 + bl AppendToList +_08089B76: + ldr r0, _08089BB0 @ =gUnknown_03005CE0 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + adds r1, r6, 0 + subs r1, 0x64 + adds r0, r1 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + beq _08089BB4 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x7 + bl AppendToList + b _08089BBE + .align 2, 0 +_08089BA4: .4byte gUnknown_0202FFAA +_08089BA8: .4byte gUnknown_0202FFA9 +_08089BAC: .4byte gPlayerParty + 1 * 0x64 +_08089BB0: .4byte gUnknown_03005CE0 +_08089BB4: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x2 + bl AppendToList +_08089BBE: + ldr r0, _08089BD4 @ =gUnknown_0202FFAA + ldr r1, _08089BD8 @ =gUnknown_0202FFA9 + movs r2, 0x3 + bl AppendToList +_08089BC8: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08089BD4: .4byte gUnknown_0202FFAA +_08089BD8: .4byte gUnknown_0202FFA9 + thumb_func_end sub_8089A8C + + thumb_func_start sub_8089BDC +sub_8089BDC: @ 8089BDC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r5, r0, 0 + adds r6, r1, 0 + adds r4, r2, 0 + mov r8, r3 + ldr r7, [sp, 0x20] + ldr r1, [sp, 0x24] + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + lsls r4, 24 + lsrs r4, 24 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x5 + bl sub_806D538 + adds r4, r5, r4 + lsls r4, 24 + lsrs r4, 24 + mov r0, r8 + lsls r3, r0, 1 + adds r3, r6, r3 + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + adds r0, r5, 0 + adds r1, r6, 0 + adds r2, r4, 0 + bl MenuDrawTextWindow + adds r5, 0x1 + lsls r5, 24 + lsrs r5, 24 + adds r6, 0x1 + lsls r6, 24 + lsrs r6, 24 + str r7, [sp] + adds r0, r5, 0 + adds r1, r6, 0 + mov r2, r8 + ldr r3, [sp, 0x1C] + bl PrintMenuItemsReordered + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8089BDC + + thumb_func_start sub_8089C50 +sub_8089C50: @ 8089C50 + push {r4,r5,lr} + sub sp, 0xC + ldr r4, [sp, 0x18] + ldr r5, [sp, 0x1C] + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + str r4, [sp] + str r5, [sp, 0x4] + movs r4, 0x1 + str r4, [sp, 0x8] + bl sub_8089BDC + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8089C50 + + thumb_func_start sub_8089C7C +sub_8089C7C: @ 8089C7C + push {r4-r6,lr} + sub sp, 0xC + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r6, _08089CC8 @ =gUnknown_0202FFA9 + ldrb r0, [r6] + lsls r0, 1 + movs r4, 0x12 + subs r4, r0 + lsls r4, 24 + lsrs r4, 24 + ldrb r3, [r6] + ldr r0, _08089CCC @ =gPokemonMenuActions + str r0, [sp] + ldr r0, _08089CD0 @ =gUnknown_0202FFAA + str r0, [sp, 0x4] + movs r0, 0x3 + str r0, [sp, 0x8] + movs r0, 0x13 + adds r1, r4, 0 + movs r2, 0xA + bl sub_8089BDC + movs r2, 0x1 + orrs r2, r4 + ldrb r3, [r6] + str r5, [sp] + movs r0, 0x9 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x14 + bl InitMenu + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08089CC8: .4byte gUnknown_0202FFA9 +_08089CCC: .4byte gPokemonMenuActions +_08089CD0: .4byte gUnknown_0202FFAA + thumb_func_end sub_8089C7C + + thumb_func_start sub_8089CD4 +sub_8089CD4: @ 8089CD4 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08089D00 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _08089D84 + adds r0, r4, 0 + bl sub_806BD80 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + beq _08089D04 + cmp r0, 0x2 + beq _08089D60 + b _08089D84 + .align 2, 0 +_08089D00: .4byte gPaletteFade +_08089D04: + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_806CA38 + ldr r1, _08089D48 @ =gUnknown_03005CE0 + strb r0, [r1] + ldrb r1, [r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08089D4C @ =gPlayerParty + adds r0, r1 + ldr r1, _08089D50 @ =gStringVar1 + bl GetMonNickname + bl sub_8089A8C + ldr r0, _08089D54 @ =gUnknown_0202FFA8 + strb r5, [r0] + movs r0, 0 + bl sub_8089C7C + ldr r1, _08089D58 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08089D5C @ =sub_8089D94 + str r1, [r0] + adds r0, r4, 0 + bl sub_808B5B4 + b _08089D84 + .align 2, 0 +_08089D48: .4byte gUnknown_03005CE0 +_08089D4C: .4byte gPlayerParty +_08089D50: .4byte gStringVar1 +_08089D54: .4byte gUnknown_0202FFA8 +_08089D58: .4byte gTasks +_08089D5C: .4byte sub_8089D94 +_08089D60: + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + str r5, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _08089D8C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08089D90 @ =sub_8089E4C + str r1, [r0] +_08089D84: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08089D8C: .4byte gTasks +_08089D90: .4byte sub_8089E4C + thumb_func_end sub_8089CD4 + + thumb_func_start sub_8089D94 +sub_8089D94: @ 8089D94 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + ldr r0, _08089DC8 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08089E44 + ldr r2, _08089DCC @ =gMain + ldrh r0, [r2, 0x30] + movs r1, 0xF0 + ands r1, r0 + cmp r1, 0x40 + bne _08089DD4 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursor + ldr r1, _08089DD0 @ =gUnknown_0202FFA8 + strb r0, [r1] + b _08089E1A + .align 2, 0 +_08089DC8: .4byte gPaletteFade +_08089DCC: .4byte gMain +_08089DD0: .4byte gUnknown_0202FFA8 +_08089DD4: + cmp r1, 0x80 + bne _08089DF0 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl MoveMenuCursor + ldr r1, _08089DEC @ =gUnknown_0202FFA8 + strb r0, [r1] + b _08089E1A + .align 2, 0 +_08089DEC: .4byte gUnknown_0202FFA8 +_08089DF0: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08089E30 + movs r0, 0x5 + bl PlaySE + ldr r1, _08089E24 @ =gPokemonMenuActions + ldr r2, _08089E28 @ =gUnknown_0202FFAA + ldr r0, _08089E2C @ =gUnknown_0202FFA8 + ldrb r0, [r0] + adds r0, r2 + ldrb r0, [r0] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 +_08089E1A: + adds r0, r4, 0 + bl sub_808B5B4 + b _08089E44 + .align 2, 0 +_08089E24: .4byte gPokemonMenuActions +_08089E28: .4byte gUnknown_0202FFAA +_08089E2C: .4byte gUnknown_0202FFA8 +_08089E30: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08089E44 + adds r0, r5, 0 + bl PokemonMenu_Cancel + adds r0, r5, 0 + bl sub_808B5B4 +_08089E44: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8089D94 + + thumb_func_start sub_8089E4C +sub_8089E4C: @ 8089E4C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08089E78 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _08089E72 + ldr r0, _08089E7C @ =gUnknown_03005CE0 + strb r1, [r0] + ldr r0, _08089E80 @ =sub_805469C + bl SetMainCallback2 + adds r0, r4, 0 + bl DestroyTask +_08089E72: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08089E78: .4byte gPaletteFade +_08089E7C: .4byte gUnknown_03005CE0 +_08089E80: .4byte sub_805469C + thumb_func_end sub_8089E4C + + thumb_func_start sub_8089E84 +sub_8089E84: @ 8089E84 + push {lr} + ldr r0, _08089EAC @ =gUnknown_03005CE0 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08089EB0 @ =gPlayerParty + adds r0, r1 + ldr r1, _08089EB4 @ =gStringVar1 + bl GetMonNickname + bl sub_8089A8C + ldr r1, _08089EB8 @ =gUnknown_0202FFA8 + movs r0, 0 + strb r0, [r1] + movs r0, 0 + bl sub_8089C7C + pop {r0} + bx r0 + .align 2, 0 +_08089EAC: .4byte gUnknown_03005CE0 +_08089EB0: .4byte gPlayerParty +_08089EB4: .4byte gStringVar1 +_08089EB8: .4byte gUnknown_0202FFA8 + thumb_func_end sub_8089E84 + + thumb_func_start sub_8089EBC +sub_8089EBC: @ 8089EBC + push {r4,r5,lr} + ldr r4, _08089EC4 @ =0x0201b260 + ldr r5, _08089EC8 @ =gUnknown_020384F0 + b _08089ED8 + .align 2, 0 +_08089EC4: .4byte 0x0201b260 +_08089EC8: .4byte gUnknown_020384F0 +_08089ECC: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08089F04 +_08089ED8: + bl sub_806B124 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08089ECC + ldrb r0, [r4] + ldrb r1, [r5] + bl sub_806C994 + ldrb r0, [r4] + movs r1, 0 + bl sub_806BF74 + ldr r1, _08089F0C @ =gUnknown_03005CE0 + ldrb r0, [r5] + strb r0, [r1] + bl sub_8089E84 + ldr r0, _08089F10 @ =sub_806AEDC + bl SetMainCallback2 +_08089F04: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08089F0C: .4byte gUnknown_03005CE0 +_08089F10: .4byte sub_806AEDC + thumb_func_end sub_8089EBC + + thumb_func_start sub_8089F14 +sub_8089F14: @ 8089F14 + push {lr} + ldr r2, _08089F38 @ =gPaletteFade + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + ldr r2, _08089F3C @ =sub_8089D94 + movs r0, 0 + movs r1, 0xFF + movs r3, 0x5 + bl sub_806AF4C + ldr r0, _08089F40 @ =sub_8089EBC + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_08089F38: .4byte gPaletteFade +_08089F3C: .4byte sub_8089D94 +_08089F40: .4byte sub_8089EBC + thumb_func_end sub_8089F14 + + thumb_func_start sub_8089F44 +sub_8089F44: @ 8089F44 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _08089FAC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _08089FA2 + ldr r2, _08089FB0 @ =gSprites + ldr r1, _08089FB4 @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0xE] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r4, [r0, 0x2E] + lsls r4, 24 + lsrs r4, 24 + adds r0, r3, 0 + bl DestroyTask + ldr r0, _08089FB8 @ =0x0201b000 + ldr r1, _08089FBC @ =0x00000262 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + ldr r0, _08089FC0 @ =gPlayerParty + ldr r1, _08089FC4 @ =gPlayerPartyCount + ldrb r2, [r1] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldr r3, _08089FC8 @ =sub_8089F14 + str r5, [sp] + adds r1, r4, 0 + bl ShowPokemonSummaryScreen +_08089FA2: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08089FAC: .4byte gPaletteFade +_08089FB0: .4byte gSprites +_08089FB4: .4byte gTasks +_08089FB8: .4byte 0x0201b000 +_08089FBC: .4byte 0x00000262 +_08089FC0: .4byte gPlayerParty +_08089FC4: .4byte gPlayerPartyCount +_08089FC8: .4byte sub_8089F14 + thumb_func_end sub_8089F44 + + thumb_func_start PokemonMenu_Summary +PokemonMenu_Summary: @ 8089FCC + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _08089FFC @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0808A000 @ =sub_8089F44 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08089FFC: .4byte gTasks +_0808A000: .4byte sub_8089F44 + thumb_func_end PokemonMenu_Summary + + thumb_func_start sub_808A004 +sub_808A004: @ 808A004 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0808A024 @ =sub_806CA60 + ldr r2, _0808A028 @ =sub_8089CD4 + bl SetTaskFuncWithFollowupFunc + movs r0, 0x13 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + pop {r0} + bx r0 + .align 2, 0 +_0808A024: .4byte sub_806CA60 +_0808A028: .4byte sub_8089CD4 + thumb_func_end sub_808A004 + + thumb_func_start PokemonMenu_Switch +PokemonMenu_Switch: @ 808A02C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8072DEC + ldr r0, _0808A054 @ =0x02001000 + ldr r1, _0808A058 @ =sub_806CD5C + str r1, [r0, 0xC] + ldr r1, _0808A05C @ =0x0001a272 + adds r0, r1 + movs r1, 0x1 + strh r1, [r0] + adds r0, r4, 0 + bl sub_808A004 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808A054: .4byte 0x02001000 +_0808A058: .4byte sub_806CD5C +_0808A05C: .4byte 0x0001a272 + thumb_func_end PokemonMenu_Switch + + thumb_func_start sub_808A060 +sub_808A060: @ 808A060 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0808A0D0 @ =gMain + ldrh r0, [r0, 0x2E] + cmp r0, 0x40 + bne _0808A086 + ldr r4, _0808A0D4 @ =gUnknown_0202FFA8 + ldrb r0, [r4] + cmp r0, 0 + beq _0808A086 + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursor + strb r0, [r4] + movs r0, 0x5 + bl PlaySE +_0808A086: + ldr r0, _0808A0D0 @ =gMain + ldrh r0, [r0, 0x2E] + cmp r0, 0x80 + bne _0808A0A4 + ldr r4, _0808A0D4 @ =gUnknown_0202FFA8 + ldrb r0, [r4] + cmp r0, 0x2 + beq _0808A0A4 + movs r0, 0x1 + bl MoveMenuCursor + strb r0, [r4] + movs r0, 0x5 + bl PlaySE +_0808A0A4: + ldr r0, _0808A0D0 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0808A0E0 + movs r0, 0x5 + bl PlaySE + ldr r1, _0808A0D8 @ =gUnknown_0839F578 + ldr r2, _0808A0DC @ =gPokemonMenuActions + ldr r0, _0808A0D4 @ =gUnknown_0202FFA8 + ldrb r3, [r0] + movs r0, 0 + bl sub_806E81C + adds r1, r0, 0 + adds r0, r5, 0 + bl _call_via_r1 + b _0808A0F6 + .align 2, 0 +_0808A0D0: .4byte gMain +_0808A0D4: .4byte gUnknown_0202FFA8 +_0808A0D8: .4byte gUnknown_0839F578 +_0808A0DC: .4byte gPokemonMenuActions +_0808A0E0: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0808A0F6 + ldr r1, _0808A0FC @ =gUnknown_0839F578 + movs r0, 0 + bl sub_806E7D0 + adds r0, r5, 0 + bl PokemonMenu_CancelSubmenu +_0808A0F6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0808A0FC: .4byte gUnknown_0839F578 + thumb_func_end sub_808A060 + + thumb_func_start sub_808A100 +sub_808A100: @ 808A100 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _0808A130 @ =gUnknown_0839F578 + ldr r2, _0808A134 @ =gPokemonMenuActions + movs r0, 0 + movs r3, 0 + bl sub_806E750 + movs r0, 0xD + movs r1, 0x2 + bl sub_806D538 + ldr r1, _0808A138 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0808A13C @ =sub_808A060 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808A130: .4byte gUnknown_0839F578 +_0808A134: .4byte gPokemonMenuActions +_0808A138: .4byte gTasks +_0808A13C: .4byte sub_808A060 + thumb_func_end sub_808A100 + + thumb_func_start PokemonMenu_Item +PokemonMenu_Item: @ 808A140 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8072DEC + ldr r1, _0808A174 @ =gUnknown_0202FFA8 + movs r0, 0 + strb r0, [r1] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r1, _0808A178 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0808A17C @ =sub_808A100 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808A174: .4byte gUnknown_0202FFA8 +_0808A178: .4byte gTasks +_0808A17C: .4byte sub_808A100 + thumb_func_end PokemonMenu_Item + + thumb_func_start sub_808A180 +sub_808A180: @ 808A180 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0808A1D0 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0808A1CA + adds r0, r5, 0 + bl sub_806CA38 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0808A1D4 @ =gPlayerParty + adds r0, r1 + movs r1, 0x40 + bl GetMonData + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + bl DestroyTask + lsls r1, r4, 3 + adds r1, r4 + lsls r1, 2 + ldr r0, _0808A1D8 @ =gSaveBlock1 + 0x2B4C + adds r1, r0 + ldr r2, _0808A1DC @ =sub_808A520 + movs r0, 0x4 + movs r3, 0x3 + bl sub_80E62A0 +_0808A1CA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0808A1D0: .4byte gPaletteFade +_0808A1D4: .4byte gPlayerParty +_0808A1D8: .4byte gSaveBlock1 + 0x2B4C +_0808A1DC: .4byte sub_808A520 + thumb_func_end sub_808A180 + + thumb_func_start sub_808A1E0 +sub_808A1E0: @ 808A1E0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0808A21C @ =gUnknown_0202E8F6 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0808A216 + adds r0, r4, 0 + bl sub_806CA38 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl SetHeldItemIconVisibility + movs r0, 0 + movs r1, 0 + bl sub_806D538 + ldr r1, _0808A220 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0808A224 @ =sub_8089CD4 + str r1, [r0] +_0808A216: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808A21C: .4byte gUnknown_0202E8F6 +_0808A220: .4byte gTasks +_0808A224: .4byte sub_8089CD4 + thumb_func_end sub_808A1E0 + + thumb_func_start sub_808A228 +sub_808A228: @ 808A228 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0808A268 @ =gScriptItemId + ldrh r0, [r0] + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + beq _0808A278 + ldr r0, _0808A26C @ =gUnknown_0202E8F4 + ldrb r0, [r0] + cmp r0, 0 + beq _0808A278 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _0808A270 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0808A274 @ =sub_808A180 + str r1, [r0] + b _0808A29A + .align 2, 0 +_0808A268: .4byte gScriptItemId +_0808A26C: .4byte gUnknown_0202E8F4 +_0808A270: .4byte gTasks +_0808A274: .4byte sub_808A180 +_0808A278: + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + movs r0, 0 + movs r1, 0 + bl sub_806D538 + ldr r0, _0808A2A4 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _0808A2A8 @ =sub_8089CD4 + str r0, [r1] +_0808A29A: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808A2A4: .4byte gTasks +_0808A2A8: .4byte sub_8089CD4 + thumb_func_end sub_808A228 + + thumb_func_start sub_808A2AC +sub_808A2AC: @ 808A2AC + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _0808A2D0 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0808A2CA + ldr r0, _0808A2D4 @ =gScriptItemId + ldrh r1, [r0] + ldr r2, _0808A2D8 @ =sub_808A228 + adds r0, r3, 0 + bl PartyMenuTryGiveMonHeldItem +_0808A2CA: + pop {r0} + bx r0 + .align 2, 0 +_0808A2D0: .4byte gPaletteFade +_0808A2D4: .4byte gScriptItemId +_0808A2D8: .4byte sub_808A228 + thumb_func_end sub_808A2AC + + thumb_func_start sub_808A2DC +sub_808A2DC: @ 808A2DC + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r5, 0 + bl sub_806CA38 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0808A324 @ =gPlayerParty + adds r0, r1 + movs r1, 0x40 + bl GetMonData + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + bl DestroyTask + lsls r1, r4, 3 + adds r1, r4 + lsls r1, 2 + ldr r0, _0808A328 @ =gSaveBlock1 + 0x2B4C + adds r1, r0 + ldr r2, _0808A32C @ =sub_808A520 + movs r0, 0x4 + movs r3, 0x3 + bl sub_80E62A0 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0808A324: .4byte gPlayerParty +_0808A328: .4byte gSaveBlock1 + 0x2B4C +_0808A32C: .4byte sub_808A520 + thumb_func_end sub_808A2DC + + thumb_func_start sub_808A330 +sub_808A330: @ 808A330 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0808A344 @ =gScriptItemId + ldrh r1, [r1] + ldr r2, _0808A348 @ =sub_808A2DC + bl PartyMenuTryGiveMonHeldItem + pop {r0} + bx r0 + .align 2, 0 +_0808A344: .4byte gScriptItemId +_0808A348: .4byte sub_808A2DC + thumb_func_end sub_808A330 + + thumb_func_start sub_808A34C +sub_808A34C: @ 808A34C + push {lr} + bl RunTasks + pop {r0} + bx r0 + thumb_func_end sub_808A34C + + thumb_func_start sub_808A358 +sub_808A358: @ 808A358 + push {r4,lr} + ldr r4, _0808A360 @ =0x0201b260 + b _0808A370 + .align 2, 0 +_0808A360: .4byte 0x0201b260 +_0808A364: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0808A394 +_0808A370: + bl sub_806B124 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0808A364 + ldrb r0, [r4] + ldr r1, _0808A39C @ =gUnknown_03005CE0 + ldrb r1, [r1] + bl sub_806C994 + ldrb r0, [r4] + movs r1, 0 + bl sub_806BF74 + ldr r0, _0808A3A0 @ =sub_806AEDC + bl SetMainCallback2 +_0808A394: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808A39C: .4byte gUnknown_03005CE0 +_0808A3A0: .4byte sub_806AEDC + thumb_func_end sub_808A358 + + thumb_func_start sub_808A3A4 +sub_808A3A4: @ 808A3A4 + push {r4,r5,lr} + ldr r4, _0808A3D8 @ =0x0201b260 + adds r5, r4, 0x2 +_0808A3AA: + bl sub_806B124 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0808A3E4 + ldrb r0, [r4] + ldr r1, _0808A3DC @ =gUnknown_03005CE0 + ldrb r1, [r1] + bl sub_806C994 + ldrb r0, [r4] + movs r1, 0 + bl sub_806BF74 + movs r0, 0x3 + strb r0, [r5] + bl sub_8089E84 + ldr r0, _0808A3E0 @ =sub_806AEDC + bl SetMainCallback2 + b _0808A3F0 + .align 2, 0 +_0808A3D8: .4byte 0x0201b260 +_0808A3DC: .4byte gUnknown_03005CE0 +_0808A3E0: .4byte sub_806AEDC +_0808A3E4: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0808A3AA +_0808A3F0: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_808A3A4 + + thumb_func_start sub_808A3F8 +sub_808A3F8: @ 808A3F8 + push {r4,lr} + ldr r0, _0808A460 @ =gScriptItemId + ldrh r0, [r0] + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + beq _0808A47E + ldr r0, _0808A464 @ =sub_808A330 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r4, r0, 24 + ldr r2, _0808A468 @ =gPaletteFade + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + adds r0, r4, 0 + movs r1, 0 + bl sub_806BD58 + ldr r0, _0808A46C @ =gUnknown_03005CE0 + ldrb r1, [r0] + adds r0, r4, 0 + bl sub_806C994 + adds r0, r4, 0 + movs r1, 0 + bl sub_806BF74 + adds r0, r4, 0 + bl sub_806CA38 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0808A470 @ =gPlayerParty + adds r0, r1 + movs r1, 0xC + bl GetMonData + lsls r0, 24 + cmp r0, 0 + bne _0808A478 + ldr r0, _0808A474 @ =sub_808A34C + bl SetMainCallback2 + b _0808A4C6 + .align 2, 0 +_0808A460: .4byte gScriptItemId +_0808A464: .4byte sub_808A330 +_0808A468: .4byte gPaletteFade +_0808A46C: .4byte gUnknown_03005CE0 +_0808A470: .4byte gPlayerParty +_0808A474: .4byte sub_808A34C +_0808A478: + adds r0, r4, 0 + bl DestroyTask +_0808A47E: + ldr r2, _0808A4A4 @ =gPaletteFade + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + ldr r0, _0808A4A8 @ =gScriptItemId + ldrh r0, [r0] + cmp r0, 0 + beq _0808A4B4 + ldr r2, _0808A4AC @ =sub_808A2AC + movs r0, 0 + movs r1, 0xFF + movs r3, 0xFF + bl sub_806AF4C + ldr r0, _0808A4B0 @ =sub_808A358 + bl SetMainCallback2 + b _0808A4C6 + .align 2, 0 +_0808A4A4: .4byte gPaletteFade +_0808A4A8: .4byte gScriptItemId +_0808A4AC: .4byte sub_808A2AC +_0808A4B0: .4byte sub_808A358 +_0808A4B4: + ldr r2, _0808A4CC @ =sub_8089D94 + movs r0, 0 + movs r1, 0xFF + movs r3, 0x5 + bl sub_806AF4C + ldr r0, _0808A4D0 @ =sub_808A3A4 + bl SetMainCallback2 +_0808A4C6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808A4CC: .4byte sub_8089D94 +_0808A4D0: .4byte sub_808A3A4 + thumb_func_end sub_808A3F8 + + thumb_func_start sub_808A4D4 +sub_808A4D4: @ 808A4D4 + push {r4,lr} + ldr r4, _0808A4DC @ =0x0201b260 + b _0808A4EC + .align 2, 0 +_0808A4DC: .4byte 0x0201b260 +_0808A4E0: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0808A510 +_0808A4EC: + bl sub_806B124 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0808A4E0 + ldrb r0, [r4] + ldr r1, _0808A518 @ =gUnknown_03005CE0 + ldrb r1, [r1] + bl sub_806C994 + ldrb r0, [r4] + movs r1, 0 + bl sub_806BF74 + ldr r0, _0808A51C @ =sub_806AEDC + bl SetMainCallback2 +_0808A510: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808A518: .4byte gUnknown_03005CE0 +_0808A51C: .4byte sub_806AEDC + thumb_func_end sub_808A4D4 + + thumb_func_start sub_808A520 +sub_808A520: @ 808A520 + push {r4-r7,lr} + ldr r2, _0808A584 @ =gPaletteFade + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + ldr r0, _0808A588 @ =gScriptResult + ldrh r0, [r0] + cmp r0, 0 + bne _0808A59C + ldr r7, _0808A58C @ =gUnknown_0202E8F8 + ldrh r0, [r7] + cmp r0, 0 + beq _0808A542 + movs r1, 0x1 + bl RemoveBagItem +_0808A542: + ldr r6, _0808A590 @ =gUnknown_03005CE0 + ldrb r0, [r6] + movs r5, 0x64 + muls r0, r5 + ldr r4, _0808A594 @ =gPlayerParty + adds r0, r4 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl AddBagItem + ldrb r0, [r6] + muls r0, r5 + adds r0, r4 + bl sub_80A2DF8 + ldrb r0, [r6] + muls r0, r5 + adds r0, r4 + movs r1, 0xC + adds r2, r7, 0 + bl SetMonData + ldr r2, _0808A598 @ =sub_8089CD4 + movs r0, 0 + movs r1, 0xFF + movs r3, 0 + bl sub_806AF4C + b _0808A5A8 + .align 2, 0 +_0808A584: .4byte gPaletteFade +_0808A588: .4byte gScriptResult +_0808A58C: .4byte gUnknown_0202E8F8 +_0808A590: .4byte gUnknown_03005CE0 +_0808A594: .4byte gPlayerParty +_0808A598: .4byte sub_8089CD4 +_0808A59C: + ldr r2, _0808A5B4 @ =sub_808A5BC + movs r0, 0 + movs r1, 0xFF + movs r3, 0xFF + bl sub_806AF4C +_0808A5A8: + ldr r0, _0808A5B8 @ =sub_808A4D4 + bl SetMainCallback2 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0808A5B4: .4byte sub_808A5BC +_0808A5B8: .4byte sub_808A4D4 + thumb_func_end sub_808A520 + + thumb_func_start sub_808A5BC +sub_808A5BC: @ 808A5BC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0808A5F0 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0808A5EA + ldr r0, _0808A5F4 @ =gUnknown_03005CE0 + ldrb r0, [r0] + ldr r1, _0808A5F8 @ =gScriptItemId + ldrh r1, [r1] + movs r2, 0 + bl DisplayGiveHeldItemMessage + ldr r1, _0808A5FC @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0808A600 @ =sub_808A1E0 + str r1, [r0] +_0808A5EA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808A5F0: .4byte gPaletteFade +_0808A5F4: .4byte gUnknown_03005CE0 +_0808A5F8: .4byte gScriptItemId +_0808A5FC: .4byte gTasks +_0808A600: .4byte sub_808A1E0 + thumb_func_end sub_808A5BC + + thumb_func_start sub_808A604 +sub_808A604: @ 808A604 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0808A628 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0808A622 + ldr r0, _0808A62C @ =sub_80A61D0 + bl SetMainCallback2 + adds r0, r4, 0 + bl DestroyTask +_0808A622: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808A628: .4byte gPaletteFade +_0808A62C: .4byte sub_80A61D0 + thumb_func_end sub_808A604 + + thumb_func_start PokemonMenu_GiveItem +PokemonMenu_GiveItem: @ 808A630 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_806CA38 + ldr r1, _0808A66C @ =gUnknown_0202E8F5 + strb r0, [r1] + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _0808A670 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0808A674 @ =sub_808A604 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808A66C: .4byte gUnknown_0202E8F5 +_0808A670: .4byte gTasks +_0808A674: .4byte sub_808A604 + thumb_func_end PokemonMenu_GiveItem + + thumb_func_start sub_808A678 +sub_808A678: @ 808A678 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_808A8D4 + pop {r0} + bx r0 + thumb_func_end sub_808A678 + + thumb_func_start PokemonMenu_TakeItem +PokemonMenu_TakeItem: @ 808A688 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8072DEC + movs r0, 0x13 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + bl sub_806D5A4 + ldr r1, _0808A6B4 @ =sub_808A678 + adds r0, r4, 0 + bl PartyMenuTryGiveMonHeldItem_806ECE8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808A6B4: .4byte sub_808A678 + thumb_func_end PokemonMenu_TakeItem + + thumb_func_start PokemonMenu_TakeMail +PokemonMenu_TakeMail: @ 808A6B8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8072DEC + movs r0, 0x13 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + bl sub_806D5A4 + ldr r1, _0808A6E4 @ =sub_808A678 + adds r0, r4, 0 + bl DoTakeMail + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808A6E4: .4byte sub_808A678 + thumb_func_end PokemonMenu_TakeMail + + thumb_func_start PokemonMenu_Mail +PokemonMenu_Mail: @ 808A6E8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8072DEC + ldr r1, _0808A728 @ =gUnknown_0202FFA8 + movs r0, 0 + strb r0, [r1] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r1, _0808A72C @ =gUnknown_0839F584 + ldr r2, _0808A730 @ =gPokemonMenuActions + movs r0, 0 + movs r3, 0 + bl sub_806E750 + ldr r1, _0808A734 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0808A738 @ =sub_808A73C + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808A728: .4byte gUnknown_0202FFA8 +_0808A72C: .4byte gUnknown_0839F584 +_0808A730: .4byte gPokemonMenuActions +_0808A734: .4byte gTasks +_0808A738: .4byte sub_808A73C + thumb_func_end PokemonMenu_Mail + + thumb_func_start sub_808A73C +sub_808A73C: @ 808A73C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0808A764 @ =gMain + ldrh r0, [r0, 0x30] + cmp r0, 0x40 + bne _0808A77A + movs r0, 0x5 + bl PlaySE + ldr r4, _0808A768 @ =gUnknown_0202FFA8 + ldrb r0, [r4] + cmp r0, 0 + bne _0808A770 + ldr r0, _0808A76C @ =gUnknown_0839F584 + ldrb r0, [r0] + subs r0, 0x1 + lsls r0, 24 + asrs r0, 24 + b _0808A774 + .align 2, 0 +_0808A764: .4byte gMain +_0808A768: .4byte gUnknown_0202FFA8 +_0808A76C: .4byte gUnknown_0839F584 +_0808A770: + movs r0, 0x1 + negs r0, r0 +_0808A774: + bl MoveMenuCursor + strb r0, [r4] +_0808A77A: + ldr r0, _0808A7A0 @ =gMain + ldrh r0, [r0, 0x30] + cmp r0, 0x80 + bne _0808A7B4 + movs r0, 0x5 + bl PlaySE + ldr r4, _0808A7A4 @ =gUnknown_0202FFA8 + ldrb r0, [r4] + ldr r1, _0808A7A8 @ =gUnknown_0839F584 + ldrb r2, [r1] + subs r1, r2, 0x1 + cmp r0, r1 + bne _0808A7AC + movs r0, 0x1 + subs r0, r2 + lsls r0, 24 + asrs r0, 24 + b _0808A7AE + .align 2, 0 +_0808A7A0: .4byte gMain +_0808A7A4: .4byte gUnknown_0202FFA8 +_0808A7A8: .4byte gUnknown_0839F584 +_0808A7AC: + movs r0, 0x1 +_0808A7AE: + bl MoveMenuCursor + strb r0, [r4] +_0808A7B4: + ldr r0, _0808A7E0 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0808A7F0 + movs r0, 0x5 + bl PlaySE + ldr r1, _0808A7E4 @ =gUnknown_0839F584 + ldr r2, _0808A7E8 @ =gPokemonMenuActions + ldr r0, _0808A7EC @ =gUnknown_0202FFA8 + ldrb r3, [r0] + movs r0, 0 + bl sub_806E81C + adds r1, r0, 0 + adds r0, r5, 0 + bl _call_via_r1 + b _0808A806 + .align 2, 0 +_0808A7E0: .4byte gMain +_0808A7E4: .4byte gUnknown_0839F584 +_0808A7E8: .4byte gPokemonMenuActions +_0808A7EC: .4byte gUnknown_0202FFA8 +_0808A7F0: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0808A806 + ldr r1, _0808A80C @ =gUnknown_0839F584 + movs r0, 0 + bl sub_806E7D0 + adds r0, r5, 0 + bl PokemonMenu_Cancel +_0808A806: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0808A80C: .4byte gUnknown_0839F584 + thumb_func_end sub_808A73C + + thumb_func_start PokemonMenu_ReadMail +PokemonMenu_ReadMail: @ 808A810 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _0808A840 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0808A844 @ =sub_808A848 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808A840: .4byte gTasks +_0808A844: .4byte sub_808A848 + thumb_func_end PokemonMenu_ReadMail + + thumb_func_start sub_808A848 +sub_808A848: @ 808A848 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0808A898 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0808A890 + adds r0, r5, 0 + bl sub_806CA38 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0808A89C @ =gPlayerParty + adds r0, r1 + movs r1, 0x40 + bl GetMonData + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + bl DestroyTask + lsls r0, r4, 3 + adds r0, r4 + lsls r0, 2 + ldr r1, _0808A8A0 @ =gSaveBlock1 + 0x2B4C + adds r0, r1 + ldr r1, _0808A8A4 @ =sub_808A8A8 + movs r2, 0x1 + bl HandleReadMail +_0808A890: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0808A898: .4byte gPaletteFade +_0808A89C: .4byte gPlayerParty +_0808A8A0: .4byte gSaveBlock1 + 0x2B4C +_0808A8A4: .4byte sub_808A8A8 + thumb_func_end sub_808A848 + + thumb_func_start sub_808A8A8 +sub_808A8A8: @ 808A8A8 + push {lr} + ldr r1, _0808A8C4 @ =gUnknown_020384F0 + ldr r0, _0808A8C8 @ =gUnknown_03005CE0 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _0808A8CC @ =0x0201b000 + ldr r1, _0808A8D0 @ =0x00000262 + adds r0, r1 + movs r1, 0x4 + strb r1, [r0] + bl sub_8089F14 + pop {r0} + bx r0 + .align 2, 0 +_0808A8C4: .4byte gUnknown_020384F0 +_0808A8C8: .4byte gUnknown_03005CE0 +_0808A8CC: .4byte 0x0201b000 +_0808A8D0: .4byte 0x00000262 + thumb_func_end sub_808A8A8 + + thumb_func_start sub_808A8D4 +sub_808A8D4: @ 808A8D4 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _0808A90C @ =gUnknown_0202FFA8 + movs r0, 0 + strb r0, [r1] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + movs r0, 0 + movs r1, 0 + bl sub_806D538 + ldr r1, _0808A910 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0808A914 @ =sub_8089CD4 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808A90C: .4byte gUnknown_0202FFA8 +_0808A910: .4byte gTasks +_0808A914: .4byte sub_8089CD4 + thumb_func_end sub_808A8D4 + + thumb_func_start PokemonMenu_Cancel +PokemonMenu_Cancel: @ 808A918 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8072DEC + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_808A8D4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end PokemonMenu_Cancel + + thumb_func_start PokemonMenu_CancelSubmenu +PokemonMenu_CancelSubmenu: @ 808A938 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8072DEC + movs r0, 0x5 + bl PlaySE + movs r0, 0x13 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + bl sub_806D5A4 + ldr r0, _0808A978 @ =gUnknown_0202FFA8 + ldrb r0, [r0] + bl sub_8089C7C + ldr r1, _0808A97C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0808A980 @ =sub_8089D94 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808A978: .4byte gUnknown_0202FFA8 +_0808A97C: .4byte gTasks +_0808A980: .4byte sub_8089D94 + thumb_func_end PokemonMenu_CancelSubmenu + + thumb_func_start PokemonMenu_FieldMove +PokemonMenu_FieldMove: @ 808A984 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r6, r0, 3 + ldr r7, _0808A9D0 @ =gTasks + 0x8 + adds r4, r6, r7 + bl sub_8072DEC + ldr r1, _0808A9D4 @ =gUnknown_0202FFAA + ldr r0, _0808A9D8 @ =gUnknown_0202FFA8 + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + subs r0, 0xA + strh r0, [r4, 0x16] + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0808A9DC + movs r0, 0x13 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldrh r0, [r4, 0x16] + subs r0, 0xB + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _0808AABA + movs r0, 0x9 + b _0808AAB2 + .align 2, 0 +_0808A9D0: .4byte gTasks + 0x8 +_0808A9D4: .4byte gUnknown_0202FFAA +_0808A9D8: .4byte gUnknown_0202FFA8 +_0808A9DC: + ldrh r1, [r4, 0x16] + movs r2, 0x16 + ldrsh r0, [r4, r2] + cmp r0, 0x7 + bgt _0808AA2C + ldr r2, _0808AA20 @ =0x00000807 + adds r0, r1, r2 + lsls r0, 16 + lsrs r0, 16 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0808AA2C + movs r0, 0x13 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + bl sub_806D5A4 + ldr r0, _0808AA24 @ =gOtherText_CantBeUsedBadge + movs r1, 0x1 + bl sub_806E834 + adds r0, r7, 0 + subs r0, 0x8 + adds r0, r6, r0 + ldr r1, _0808AA28 @ =sub_808AAF0 + str r1, [r0] + b _0808AADA + .align 2, 0 +_0808AA20: .4byte 0x00000807 +_0808AA24: .4byte gOtherText_CantBeUsedBadge +_0808AA28: .4byte sub_808AAF0 +_0808AA2C: + ldr r1, _0808AA78 @ =gFieldMoveFuncs + movs r2, 0x16 + ldrsh r0, [r4, r2] + lsls r0, 3 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0808AA90 + ldr r1, _0808AA7C @ =gUnknown_0202FFA8 + movs r0, 0 + strb r0, [r1] + ldrh r0, [r4, 0x16] + subs r0, 0xB + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bls _0808AA88 + ldr r1, _0808AA80 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _0808AA84 @ =sub_808AB34 + str r1, [r0] + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _0808AADA + .align 2, 0 +_0808AA78: .4byte gFieldMoveFuncs +_0808AA7C: .4byte gUnknown_0202FFA8 +_0808AA80: .4byte gTasks +_0808AA84: .4byte sub_808AB34 +_0808AA88: + adds r0, r5, 0 + bl sub_8133D28 + b _0808AADA +_0808AA90: + movs r0, 0x13 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + movs r1, 0x16 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bne _0808AABA + movs r0, 0x8 + bl TestPlayerAvatarFlags + lsls r0, 24 + cmp r0, 0 + beq _0808AABA + movs r0, 0x8 +_0808AAB2: + movs r1, 0 + bl sub_806D538 + b _0808AACC +_0808AABA: + ldr r0, _0808AAE4 @ =gFieldMoveFuncs + movs r2, 0x16 + ldrsh r1, [r4, r2] + lsls r1, 3 + adds r1, r0 + ldrb r0, [r1, 0x4] + movs r1, 0 + bl sub_806D538 +_0808AACC: + ldr r0, _0808AAE8 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _0808AAEC @ =sub_808ABF4 + str r0, [r1] +_0808AADA: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0808AAE4: .4byte gFieldMoveFuncs +_0808AAE8: .4byte gTasks +_0808AAEC: .4byte sub_808ABF4 + thumb_func_end PokemonMenu_FieldMove + + thumb_func_start sub_808AAF0 +sub_808AAF0: @ 808AAF0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0808AB2C @ =gUnknown_0202E8F6 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0808AB24 + ldr r0, _0808AB30 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0808AB12 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0808AB24 +_0808AB12: + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r4, 0 + bl PokemonMenu_Cancel +_0808AB24: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808AB2C: .4byte gUnknown_0202E8F6 +_0808AB30: .4byte gMain + thumb_func_end sub_808AAF0 + + thumb_func_start sub_808AB34 +sub_808AB34: @ 808AB34 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0808AB6C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0808AB84 + ldr r0, _0808AB70 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r2, 0x1E + ldrsh r0, [r1, r2] + cmp r0, 0x5 + bne _0808AB62 + bl ShouldDoBrailleFlyEffect + lsls r0, 24 + cmp r0, 0 + beq _0808AB78 +_0808AB62: + ldr r0, _0808AB74 @ =c2_exit_to_overworld_2_switch + bl SetMainCallback2 + b _0808AB7E + .align 2, 0 +_0808AB6C: .4byte gPaletteFade +_0808AB70: .4byte gTasks +_0808AB74: .4byte c2_exit_to_overworld_2_switch +_0808AB78: + ldr r0, _0808AB8C @ =sub_80FC074 + bl SetMainCallback2 +_0808AB7E: + adds r0, r4, 0 + bl DestroyTask +_0808AB84: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808AB8C: .4byte sub_80FC074 + thumb_func_end sub_808AB34 + + thumb_func_start sub_808AB90 +sub_808AB90: @ 808AB90 + push {lr} + bl pal_fill_black + ldr r0, _0808ABA4 @ =sub_808ABA8 + movs r1, 0x8 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_0808ABA4: .4byte sub_808ABA8 + thumb_func_end sub_808AB90 + + thumb_func_start sub_808ABA8 +sub_808ABA8: @ 808ABA8 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_807D770 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0808ABDE + ldr r0, _0808ABE4 @ =gUnknown_03005CE0 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0808ABE8 @ =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + ldr r1, _0808ABEC @ =gUnknown_0202FF84 + str r0, [r1] + ldr r0, _0808ABF0 @ =gUnknown_03005CE4 + ldr r0, [r0] + bl _call_via_r0 + adds r0, r4, 0 + bl DestroyTask +_0808ABDE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808ABE4: .4byte gUnknown_03005CE0 +_0808ABE8: .4byte gPlayerParty +_0808ABEC: .4byte gUnknown_0202FF84 +_0808ABF0: .4byte gUnknown_03005CE4 + thumb_func_end sub_808ABA8 + + thumb_func_start sub_808ABF4 +sub_808ABF4: @ 808ABF4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0808AC28 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0808AC0E + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0808AC20 +_0808AC0E: + movs r0, 0x1 + movs r1, 0x11 + movs r2, 0x1C + movs r3, 0x12 + bl MenuZeroFillWindowRect + adds r0, r4, 0 + bl PokemonMenu_Cancel +_0808AC20: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808AC28: .4byte gMain + thumb_func_end sub_808ABF4 + + thumb_func_start sub_808AC2C +sub_808AC2C: @ 808AC2C + push {lr} + ldr r0, _0808AC40 @ =gUnknown_0202FF84 + ldr r1, _0808AC44 @ =gUnknown_03005CE0 + ldrb r1, [r1] + str r1, [r0] + movs r0, 0x9 + bl FieldEffectStart + pop {r0} + bx r0 + .align 2, 0 +_0808AC40: .4byte gUnknown_0202FF84 +_0808AC44: .4byte gUnknown_03005CE0 + thumb_func_end sub_808AC2C + + thumb_func_start SetUpFieldMove_Surf +SetUpFieldMove_Surf: @ 808AC48 + push {lr} + bl PartyHasMonWithSurf + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0808AC84 + bl IsPlayerFacingSurfableFishableWater + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0808AC84 + ldr r1, _0808AC74 @ =gUnknown_0300485C + ldr r0, _0808AC78 @ =sub_808AB90 + str r0, [r1] + ldr r1, _0808AC7C @ =gUnknown_03005CE4 + ldr r0, _0808AC80 @ =sub_808AC2C + str r0, [r1] + movs r0, 0x1 + b _0808AC86 + .align 2, 0 +_0808AC74: .4byte gUnknown_0300485C +_0808AC78: .4byte sub_808AB90 +_0808AC7C: .4byte gUnknown_03005CE4 +_0808AC80: .4byte sub_808AC2C +_0808AC84: + movs r0, 0 +_0808AC86: + pop {r1} + bx r1 + thumb_func_end SetUpFieldMove_Surf + + thumb_func_start sub_808AC8C +sub_808AC8C: @ 808AC8C + push {lr} + ldr r0, _0808ACA0 @ =gUnknown_0202FF84 + ldr r1, _0808ACA4 @ =gUnknown_03005CE0 + ldrb r1, [r1] + str r1, [r0] + movs r0, 0x1F + bl FieldEffectStart + pop {r0} + bx r0 + .align 2, 0 +_0808ACA0: .4byte gUnknown_0202FF84 +_0808ACA4: .4byte gUnknown_03005CE0 + thumb_func_end sub_808AC8C + + thumb_func_start SetUpFieldMove_Fly +SetUpFieldMove_Fly: @ 808ACA8 + push {lr} + bl ShouldDoBrailleFlyEffect + lsls r0, 24 + cmp r0, 0 + beq _0808ACD0 + ldr r1, _0808ACC0 @ =gUnknown_0300485C + ldr r0, _0808ACC4 @ =sub_808AB90 + str r0, [r1] + ldr r1, _0808ACC8 @ =gUnknown_03005CE4 + ldr r0, _0808ACCC @ =DoBrailleFlyEffect + b _0808ACF2 + .align 2, 0 +_0808ACC0: .4byte gUnknown_0300485C +_0808ACC4: .4byte sub_808AB90 +_0808ACC8: .4byte gUnknown_03005CE4 +_0808ACCC: .4byte DoBrailleFlyEffect +_0808ACD0: + ldr r0, _0808ACE4 @ =gMapHeader + ldrb r0, [r0, 0x17] + bl is_light_level_1_2_3_or_6 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0808ACE8 + movs r0, 0 + b _0808ACF6 + .align 2, 0 +_0808ACE4: .4byte gMapHeader +_0808ACE8: + ldr r1, _0808ACFC @ =gUnknown_0300485C + ldr r0, _0808AD00 @ =sub_808AB90 + str r0, [r1] + ldr r1, _0808AD04 @ =gUnknown_03005CE4 + ldr r0, _0808AD08 @ =sub_808AC8C +_0808ACF2: + str r0, [r1] + movs r0, 0x1 +_0808ACF6: + pop {r1} + bx r1 + .align 2, 0 +_0808ACFC: .4byte gUnknown_0300485C +_0808AD00: .4byte sub_808AB90 +_0808AD04: .4byte gUnknown_03005CE4 +_0808AD08: .4byte sub_808AC8C + thumb_func_end SetUpFieldMove_Fly + + thumb_func_start sub_808AD0C +sub_808AD0C: @ 808AD0C + push {r4,lr} + ldr r4, _0808AD14 @ =0x0201b260 + b _0808AD24 + .align 2, 0 +_0808AD14: .4byte 0x0201b260 +_0808AD18: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0808AD48 +_0808AD24: + bl sub_806B124 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0808AD18 + ldrb r0, [r4] + ldr r1, _0808AD50 @ =gUnknown_03005CE0 + ldrb r1, [r1] + bl sub_806C994 + ldrb r0, [r4] + movs r1, 0 + bl sub_806BF74 + ldr r0, _0808AD54 @ =sub_806AEDC + bl SetMainCallback2 +_0808AD48: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808AD50: .4byte gUnknown_03005CE0 +_0808AD54: .4byte sub_806AEDC + thumb_func_end sub_808AD0C + + thumb_func_start sub_808AD58 +sub_808AD58: @ 808AD58 + push {lr} + ldr r2, _0808AD7C @ =gPaletteFade + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + ldr r2, _0808AD80 @ =sub_8089CD4 + movs r0, 0 + movs r1, 0xFF + movs r3, 0 + bl sub_806AF4C + ldr r0, _0808AD84 @ =sub_808AD0C + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0808AD7C: .4byte gPaletteFade +_0808AD80: .4byte sub_8089CD4 +_0808AD84: .4byte sub_808AD0C + thumb_func_end sub_808AD58 + + thumb_func_start unref_sub_808AD88 +unref_sub_808AD88: @ 808AD88 + push {lr} + ldr r0, _0808ADA4 @ =gUnknown_03005CE0 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0808ADA8 @ =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + .align 2, 0 +_0808ADA4: .4byte gUnknown_03005CE0 +_0808ADA8: .4byte gPlayerParty + thumb_func_end unref_sub_808AD88 + + thumb_func_start sub_808ADAC +sub_808ADAC: @ 808ADAC + push {lr} + ldr r0, _0808ADC0 @ =gUnknown_0202FF84 + ldr r1, _0808ADC4 @ =gUnknown_03005CE0 + ldrb r1, [r1] + str r1, [r0] + movs r0, 0x2C + bl FieldEffectStart + pop {r0} + bx r0 + .align 2, 0 +_0808ADC0: .4byte gUnknown_0202FF84 +_0808ADC4: .4byte gUnknown_03005CE0 + thumb_func_end sub_808ADAC + + thumb_func_start SetUpFieldMove_Dive +SetUpFieldMove_Dive: @ 808ADC8 + push {lr} + bl sub_8068F18 + ldr r1, _0808ADE0 @ =gUnknown_0202FF84 + lsls r0, 24 + lsrs r0, 24 + str r0, [r1, 0x4] + cmp r0, 0 + bne _0808ADE4 + movs r0, 0 + b _0808ADF2 + .align 2, 0 +_0808ADE0: .4byte gUnknown_0202FF84 +_0808ADE4: + ldr r1, _0808ADF8 @ =gUnknown_0300485C + ldr r0, _0808ADFC @ =sub_808AB90 + str r0, [r1] + ldr r1, _0808AE00 @ =gUnknown_03005CE4 + ldr r0, _0808AE04 @ =sub_808ADAC + str r0, [r1] + movs r0, 0x1 +_0808ADF2: + pop {r1} + bx r1 + .align 2, 0 +_0808ADF8: .4byte gUnknown_0300485C +_0808ADFC: .4byte sub_808AB90 +_0808AE00: .4byte gUnknown_03005CE4 +_0808AE04: .4byte sub_808ADAC + thumb_func_end SetUpFieldMove_Dive + + thumb_func_start sub_808AE08 +sub_808AE08: @ 808AE08 + push {lr} + ldr r0, _0808AE1C @ =gUnknown_0202FF84 + ldr r1, _0808AE20 @ =gUnknown_03005CE0 + ldrb r1, [r1] + str r1, [r0] + movs r0, 0x2B + bl FieldEffectStart + pop {r0} + bx r0 + .align 2, 0 +_0808AE1C: .4byte gUnknown_0202FF84 +_0808AE20: .4byte gUnknown_03005CE0 + thumb_func_end sub_808AE08 + + thumb_func_start SetUpFieldMove_Waterfall +SetUpFieldMove_Waterfall: @ 808AE24 + push {r4,lr} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r0, 24 + bl MetatileBehavior_IsWaterfall + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0808AE80 + bl IsPlayerSurfingNorth + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0808AE80 + ldr r1, _0808AE70 @ =gUnknown_0300485C + ldr r0, _0808AE74 @ =sub_808AB90 + str r0, [r1] + ldr r1, _0808AE78 @ =gUnknown_03005CE4 + ldr r0, _0808AE7C @ =sub_808AE08 + str r0, [r1] + movs r0, 0x1 + b _0808AE82 + .align 2, 0 +_0808AE70: .4byte gUnknown_0300485C +_0808AE74: .4byte sub_808AB90 +_0808AE78: .4byte gUnknown_03005CE4 +_0808AE7C: .4byte sub_808AE08 +_0808AE80: + movs r0, 0 +_0808AE82: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end SetUpFieldMove_Waterfall + + thumb_func_start sub_808AE8C +sub_808AE8C: @ 808AE8C + push {r4-r6,lr} + ldr r0, _0808AED8 @ =gScriptItemId + ldrb r0, [r0] + subs r0, 0x21 + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 +_0808AE9A: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _0808AEDC @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0808AF10 + adds r0, r5, 0 + bl sub_806D668 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0808AECE + adds r0, r4, 0 + adds r1, r6, 0 + bl CanMonLearnTMHM + cmp r0, 0 + bne _0808AEE0 +_0808AECE: + adds r0, r5, 0 + movs r1, 0x9A + bl sub_806BC3C + b _0808AF10 + .align 2, 0 +_0808AED8: .4byte gScriptItemId +_0808AEDC: .4byte gPlayerParty +_0808AEE0: + ldr r0, _0808AF04 @ =gScriptItemId + ldrh r0, [r0] + bl ItemIdToBattleMoveId + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl pokemon_has_move + lsls r0, 24 + cmp r0, 0 + beq _0808AF08 + adds r0, r5, 0 + movs r1, 0xA8 + bl sub_806BC3C + b _0808AF10 + .align 2, 0 +_0808AF04: .4byte gScriptItemId +_0808AF08: + adds r0, r5, 0 + movs r1, 0x8C + bl sub_806BC3C +_0808AF10: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _0808AE9A + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_808AE8C + + thumb_func_start sub_808AF20 +sub_808AF20: @ 808AF20 + push {r4,r5,lr} + movs r5, 0 +_0808AF24: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _0808AF78 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0808AF66 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0808AF58 + ldr r0, _0808AF7C @ =gScriptItemId + ldrh r2, [r0] + adds r0, r4, 0 + movs r1, 0x3 + bl GetEvolutionTargetSpecies + lsls r0, 16 + cmp r0, 0 + bne _0808AF66 +_0808AF58: + adds r0, r5, 0 + bl sub_806D668 + adds r0, r5, 0 + movs r1, 0 + bl sub_806BC3C +_0808AF66: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _0808AF24 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0808AF78: .4byte gPlayerParty +_0808AF7C: .4byte gScriptItemId + thumb_func_end sub_808AF20 + + thumb_func_start sub_808AF80 +sub_808AF80: @ 808AF80 + push {r4,r5,lr} + ldr r5, _0808AFB0 @ =0x0201b260 +_0808AF84: + bl sub_806B124 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0808B00C + ldr r0, _0808AFB4 @ =gUnknown_02038561 + ldrb r0, [r0] + cmp r0, 0 + bne _0808AFC6 + ldr r0, _0808AFB8 @ =gScriptItemId + ldrh r0, [r0] + bl CheckIfItemIsTMHMOrEvolutionStone + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0808AFBC + cmp r0, 0x2 + beq _0808AFC2 + b _0808AFC6 + .align 2, 0 +_0808AFB0: .4byte 0x0201b260 +_0808AFB4: .4byte gUnknown_02038561 +_0808AFB8: .4byte gScriptItemId +_0808AFBC: + bl sub_808AE8C + b _0808AFC6 +_0808AFC2: + bl sub_808AF20 +_0808AFC6: + ldr r4, _0808B000 @ =gUnknown_03005CE0 + ldrb r0, [r4] + cmp r0, 0x5 + bhi _0808AFE2 + adds r1, r0, 0 + movs r0, 0x64 + muls r0, r1 + ldr r1, _0808B004 @ =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + bne _0808AFE6 +_0808AFE2: + movs r0, 0 + strb r0, [r4] +_0808AFE6: + ldrb r0, [r5] + ldr r1, _0808B000 @ =gUnknown_03005CE0 + ldrb r1, [r1] + bl sub_806C994 + ldrb r0, [r5] + movs r1, 0 + bl sub_806BF74 + ldr r0, _0808B008 @ =sub_806AEDC + bl SetMainCallback2 + b _0808B018 + .align 2, 0 +_0808B000: .4byte gUnknown_03005CE0 +_0808B004: .4byte gPlayerParty +_0808B008: .4byte sub_806AEDC +_0808B00C: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0808AF84 +_0808B018: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_808AF80 + + thumb_func_start sub_808B020 +sub_808B020: @ 808B020 + push {lr} + ldr r2, _0808B040 @ =gPaletteFade + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + ldr r0, _0808B044 @ =gUnknown_02038561 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0808B0A0 + cmp r0, 0x1 + bgt _0808B048 + cmp r0, 0 + beq _0808B052 + b _0808B0AC + .align 2, 0 +_0808B040: .4byte gPaletteFade +_0808B044: .4byte gUnknown_02038561 +_0808B048: + cmp r0, 0x3 + beq _0808B0A0 + cmp r0, 0x4 + beq _0808B08C + b _0808B0AC +_0808B052: + ldr r0, _0808B070 @ =gScriptItemId + ldrh r0, [r0] + bl CheckIfItemIsTMHMOrEvolutionStone + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0808B078 + ldr r2, _0808B074 @ =sub_808B0C0 + movs r0, 0 + movs r1, 0 + movs r3, 0x14 + bl sub_806AF4C + b _0808B0AC + .align 2, 0 +_0808B070: .4byte gScriptItemId +_0808B074: .4byte sub_808B0C0 +_0808B078: + ldr r2, _0808B088 @ =sub_808B0C0 + movs r0, 0 + movs r1, 0 + movs r3, 0x3 + bl sub_806AF4C + b _0808B0AC + .align 2, 0 +_0808B088: .4byte sub_808B0C0 +_0808B08C: + ldr r2, _0808B09C @ =sub_808B1EC + movs r0, 0 + movs r1, 0 + movs r3, 0xFF + bl sub_806AF4C + b _0808B0AC + .align 2, 0 +_0808B09C: .4byte sub_808B1EC +_0808B0A0: + ldr r2, _0808B0B8 @ =sub_808B0C0 + movs r0, 0 + movs r1, 0 + movs r3, 0x4 + bl sub_806AF4C +_0808B0AC: + ldr r0, _0808B0BC @ =sub_808AF80 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0808B0B8: .4byte sub_808B0C0 +_0808B0BC: .4byte sub_808AF80 + thumb_func_end sub_808B020 + + thumb_func_start sub_808B0C0 +sub_808B0C0: @ 808B0C0 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0808B0EC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _0808B1CE + adds r0, r4, 0 + bl sub_806BD80 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + beq _0808B0F0 + cmp r0, 0x2 + beq _0808B184 + b _0808B1CE + .align 2, 0 +_0808B0EC: .4byte gPaletteFade +_0808B0F0: + adds r0, r4, 0 + bl sub_806CA38 + ldr r1, _0808B118 @ =gUnknown_03005CE0 + strb r0, [r1] + ldrb r1, [r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0808B11C @ =gPlayerParty + adds r0, r1 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + beq _0808B120 + movs r0, 0x20 + bl PlaySE + b _0808B1CE + .align 2, 0 +_0808B118: .4byte gUnknown_03005CE0 +_0808B11C: .4byte gPlayerParty +_0808B120: + bl sub_806D5A4 + ldr r5, _0808B16C @ =gUnknown_02038561 + ldrb r0, [r5] + cmp r0, 0 + bne _0808B13C + ldr r3, _0808B170 @ =gUnknown_03004AE4 + ldr r0, _0808B174 @ =gScriptItemId + ldrh r1, [r0] + ldr r2, _0808B178 @ =sub_808B224 + ldr r3, [r3] + adds r0, r4, 0 + bl _call_via_r3 +_0808B13C: + ldrb r0, [r5] + cmp r0, 0x1 + bne _0808B154 + movs r0, 0x5 + bl PlaySE + ldr r0, _0808B174 @ =gScriptItemId + ldrh r1, [r0] + ldr r2, _0808B17C @ =sub_808B2EC + adds r0, r4, 0 + bl PartyMenuTryGiveMonHeldItem +_0808B154: + ldrb r0, [r5] + cmp r0, 0x3 + bne _0808B1CE + movs r0, 0x5 + bl PlaySE + ldr r1, _0808B180 @ =sub_808B2B4 + adds r0, r4, 0 + bl PartyMenuTryGiveMonMail + b _0808B1CE + .align 2, 0 +_0808B16C: .4byte gUnknown_02038561 +_0808B170: .4byte gUnknown_03004AE4 +_0808B174: .4byte gScriptItemId +_0808B178: .4byte sub_808B224 +_0808B17C: .4byte sub_808B2EC +_0808B180: .4byte sub_808B2B4 +_0808B184: + adds r0, r4, 0 + bl sub_806CA38 + ldr r1, _0808B1D8 @ =gUnknown_03005CE0 + strb r0, [r1] + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + str r5, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r2, _0808B1DC @ =gUnknown_02038561 + ldrb r0, [r2] + cmp r0, 0x1 + bhi _0808B1BA + ldr r0, _0808B1E0 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _0808B1E4 @ =sub_808B25C + str r0, [r1] +_0808B1BA: + ldrb r0, [r2] + cmp r0, 0x3 + bne _0808B1CE + ldr r0, _0808B1E0 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _0808B1E8 @ =sub_808B2B4 + str r0, [r1] +_0808B1CE: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0808B1D8: .4byte gUnknown_03005CE0 +_0808B1DC: .4byte gUnknown_02038561 +_0808B1E0: .4byte gTasks +_0808B1E4: .4byte sub_808B25C +_0808B1E8: .4byte sub_808B2B4 + thumb_func_end sub_808B0C0 + + thumb_func_start sub_808B1EC +sub_808B1EC: @ 808B1EC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0808B214 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0808B20E + ldr r3, _0808B218 @ =gUnknown_03004AE4 + ldr r0, _0808B21C @ =gScriptItemId + ldrh r1, [r0] + ldr r2, _0808B220 @ =sub_808B224 + ldr r3, [r3] + adds r0, r4, 0 + bl _call_via_r3 +_0808B20E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808B214: .4byte gPaletteFade +_0808B218: .4byte gUnknown_03004AE4 +_0808B21C: .4byte gScriptItemId +_0808B220: .4byte sub_808B224 + thumb_func_end sub_808B1EC + + thumb_func_start sub_808B224 +sub_808B224: @ 808B224 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _0808B254 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0808B258 @ =sub_808B25C + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808B254: .4byte gTasks +_0808B258: .4byte sub_808B25C + thumb_func_end sub_808B224 + + thumb_func_start sub_808B25C +sub_808B25C: @ 808B25C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0808B280 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0808B27A + ldr r0, _0808B284 @ =sub_80A5B40 + bl SetMainCallback2 + adds r0, r4, 0 + bl DestroyTask +_0808B27A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808B280: .4byte gPaletteFade +_0808B284: .4byte sub_80A5B40 + thumb_func_end sub_808B25C + + thumb_func_start sub_808B288 +sub_808B288: @ 808B288 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0808B2AC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0808B2A6 + ldr r0, _0808B2B0 @ =sub_813B6F8 + bl SetMainCallback2 + adds r0, r4, 0 + bl DestroyTask +_0808B2A6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808B2AC: .4byte gPaletteFade +_0808B2B0: .4byte sub_813B6F8 + thumb_func_end sub_808B288 + + thumb_func_start sub_808B2B4 +sub_808B2B4: @ 808B2B4 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _0808B2E4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0808B2E8 @ =sub_808B288 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808B2E4: .4byte gTasks +_0808B2E8: .4byte sub_808B288 + thumb_func_end sub_808B2B4 + + thumb_func_start sub_808B2EC +sub_808B2EC: @ 808B2EC + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0808B31C @ =gUnknown_0202E8F4 + ldrb r0, [r0] + cmp r0, 0x2 + bne _0808B328 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _0808B320 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0808B324 @ =sub_808B338 + str r1, [r0] + b _0808B32E + .align 2, 0 +_0808B31C: .4byte gUnknown_0202E8F4 +_0808B320: .4byte gTasks +_0808B324: .4byte sub_808B338 +_0808B328: + adds r0, r4, 0 + bl sub_808B224 +_0808B32E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_808B2EC + + thumb_func_start sub_808B338 +sub_808B338: @ 808B338 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0808B38C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0808B384 + adds r0, r5, 0 + bl sub_806CA38 + ldr r1, _0808B390 @ =gUnknown_03005CE0 + strb r0, [r1] + ldrb r1, [r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0808B394 @ =gPlayerParty + adds r0, r1 + movs r1, 0x40 + bl GetMonData + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + bl DestroyTask + lsls r1, r4, 3 + adds r1, r4 + lsls r1, 2 + ldr r0, _0808B398 @ =gSaveBlock1 + 0x2B4C + adds r1, r0 + ldr r2, _0808B39C @ =sub_808B3EC + movs r0, 0x4 + movs r3, 0x3 + bl sub_80E62A0 +_0808B384: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0808B38C: .4byte gPaletteFade +_0808B390: .4byte gUnknown_03005CE0 +_0808B394: .4byte gPlayerParty +_0808B398: .4byte gSaveBlock1 + 0x2B4C +_0808B39C: .4byte sub_808B3EC + thumb_func_end sub_808B338 + + thumb_func_start sub_808B3A0 +sub_808B3A0: @ 808B3A0 + push {r4,lr} + ldr r4, _0808B3A8 @ =0x0201b260 + b _0808B3B8 + .align 2, 0 +_0808B3A8: .4byte 0x0201b260 +_0808B3AC: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0808B3DC +_0808B3B8: + bl sub_806B124 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0808B3AC + ldrb r0, [r4] + ldr r1, _0808B3E4 @ =gUnknown_03005CE0 + ldrb r1, [r1] + bl sub_806C994 + ldrb r0, [r4] + movs r1, 0 + bl sub_806BF74 + ldr r0, _0808B3E8 @ =sub_806AEDC + bl SetMainCallback2 +_0808B3DC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808B3E4: .4byte gUnknown_03005CE0 +_0808B3E8: .4byte sub_806AEDC + thumb_func_end sub_808B3A0 + + thumb_func_start sub_808B3EC +sub_808B3EC: @ 808B3EC + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _0808B464 @ =gPaletteFade + mov r8, r0 + ldrb r0, [r0, 0x8] + movs r1, 0x80 + orrs r0, r1 + mov r1, r8 + strb r0, [r1, 0x8] + ldr r0, _0808B468 @ =gScriptResult + ldrh r0, [r0] + cmp r0, 0 + bne _0808B480 + ldr r7, _0808B46C @ =gUnknown_0202E8F8 + ldrh r0, [r7] + cmp r0, 0 + beq _0808B416 + movs r1, 0x1 + bl RemoveBagItem +_0808B416: + ldr r6, _0808B470 @ =gUnknown_03005CE0 + ldrb r0, [r6] + movs r5, 0x64 + muls r0, r5 + ldr r4, _0808B474 @ =gPlayerParty + adds r0, r4 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl AddBagItem + ldrb r0, [r6] + muls r0, r5 + adds r0, r4 + bl sub_80A2DF8 + ldrb r0, [r6] + muls r0, r5 + adds r0, r4 + movs r1, 0xC + adds r2, r7, 0 + bl SetMonData + ldr r0, _0808B478 @ =sub_808B25C + movs r1, 0x5 + bl CreateTask + mov r0, r8 + ldrb r1, [r0, 0x8] + movs r0, 0x7F + ands r0, r1 + mov r1, r8 + strb r0, [r1, 0x8] + ldr r0, _0808B47C @ =sub_806AEDC + b _0808B48E + .align 2, 0 +_0808B464: .4byte gPaletteFade +_0808B468: .4byte gScriptResult +_0808B46C: .4byte gUnknown_0202E8F8 +_0808B470: .4byte gUnknown_03005CE0 +_0808B474: .4byte gPlayerParty +_0808B478: .4byte sub_808B25C +_0808B47C: .4byte sub_806AEDC +_0808B480: + ldr r2, _0808B49C @ =sub_808B4A4 + movs r0, 0 + movs r1, 0 + movs r3, 0xFF + bl sub_806AF4C + ldr r0, _0808B4A0 @ =sub_808B3A0 +_0808B48E: + bl SetMainCallback2 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0808B49C: .4byte sub_808B4A4 +_0808B4A0: .4byte sub_808B3A0 + thumb_func_end sub_808B3EC + + thumb_func_start sub_808B4A4 +sub_808B4A4: @ 808B4A4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0808B4D8 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0808B4D2 + ldr r0, _0808B4DC @ =gUnknown_03005CE0 + ldrb r0, [r0] + ldr r1, _0808B4E0 @ =gScriptItemId + ldrh r1, [r1] + movs r2, 0x1 + bl DisplayGiveHeldItemMessage + ldr r1, _0808B4E4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0808B4E8 @ =sub_808B4EC + str r1, [r0] +_0808B4D2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808B4D8: .4byte gPaletteFade +_0808B4DC: .4byte gUnknown_03005CE0 +_0808B4E0: .4byte gScriptItemId +_0808B4E4: .4byte gTasks +_0808B4E8: .4byte sub_808B4EC + thumb_func_end sub_808B4A4 + + thumb_func_start sub_808B4EC +sub_808B4EC: @ 808B4EC + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _0808B504 @ =gUnknown_0202E8F6 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0808B500 + adds r0, r1, 0 + bl sub_808B224 +_0808B500: + pop {r0} + bx r0 + .align 2, 0 +_0808B504: .4byte gUnknown_0202E8F6 + thumb_func_end sub_808B4EC + + thumb_func_start sub_808B508 +sub_808B508: @ 808B508 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_808B224 + pop {r0} + bx r0 + thumb_func_end sub_808B508 + + thumb_func_start sub_808B518 +sub_808B518: @ 808B518 + push {r4,lr} + ldr r4, _0808B520 @ =0x0201b260 + b _0808B530 + .align 2, 0 +_0808B520: .4byte 0x0201b260 +_0808B524: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0808B554 +_0808B530: + bl sub_806B124 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0808B524 + ldrb r0, [r4] + ldr r1, _0808B55C @ =gUnknown_020384F0 + ldrb r1, [r1] + bl sub_806C994 + ldrb r0, [r4] + movs r1, 0 + bl sub_806BF74 + ldr r0, _0808B560 @ =sub_806AEDC + bl SetMainCallback2 +_0808B554: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808B55C: .4byte gUnknown_020384F0 +_0808B560: .4byte sub_806AEDC + thumb_func_end sub_808B518 + + thumb_func_start sub_808B564 +sub_808B564: @ 808B564 + push {lr} + ldr r2, _0808B58C @ =gPaletteFade + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + bl sub_809FA30 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + beq _0808B594 + ldr r2, _0808B590 @ =TaughtMove + movs r0, 0 + movs r1, 0 + movs r3, 0xFF + bl sub_806AF4C + b _0808B5A0 + .align 2, 0 +_0808B58C: .4byte gPaletteFade +_0808B590: .4byte TaughtMove +_0808B594: + ldr r2, _0808B5AC @ =StopTryingToTeachMove_806F588 + movs r0, 0 + movs r1, 0 + movs r3, 0xFF + bl sub_806AF4C +_0808B5A0: + ldr r0, _0808B5B0 @ =sub_808B518 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0808B5AC: .4byte StopTryingToTeachMove_806F588 +_0808B5B0: .4byte sub_808B518 + thumb_func_end sub_808B564 + + thumb_func_start sub_808B5B4 +sub_808B5B4: @ 808B5B4 + push {lr} + ldr r3, _0808B5D8 @ =gUnknown_03005CF0 + ldr r2, _0808B5DC @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, [r1] + str r2, [r3] + ldr r2, _0808B5E0 @ =sub_808B5E4 + str r2, [r1] + lsls r0, 24 + lsrs r0, 24 + bl _call_via_r2 + pop {r0} + bx r0 + .align 2, 0 +_0808B5D8: .4byte gUnknown_03005CF0 +_0808B5DC: .4byte gTasks +_0808B5E0: .4byte sub_808B5E4 + thumb_func_end sub_808B5B4 + + thumb_func_start sub_808B5E4 +sub_808B5E4: @ 808B5E4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8055870 + cmp r0, 0x1 + beq _0808B602 + ldr r1, _0808B608 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0808B60C @ =gUnknown_03005CF0 + ldr r1, [r1] + str r1, [r0] +_0808B602: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808B608: .4byte gTasks +_0808B60C: .4byte gUnknown_03005CF0 + thumb_func_end sub_808B5E4 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s new file mode 100644 index 000000000..801c941d1 --- /dev/null +++ b/asm/pokemon_storage_system.s @@ -0,0 +1,15417 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_8095904 +sub_8095904: @ 8095904 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + str r0, [sp] + adds r7, r1, 0 + adds r4, r2, 0 + ldr r0, [sp, 0x3C] + lsls r4, 24 + lsrs r4, 24 + lsls r3, 16 + lsrs r3, 16 + str r3, [sp, 0x4] + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x8] + ldr r0, [sp] + bl StringLength + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r4, 0 + bne _08095988 + movs r5, 0 + cmp r5, r8 + bcs _08095A2E +_0809593E: + ldr r1, [sp] + adds r0, r1, r5 + ldrb r2, [r0] + ldr r0, _08095980 @ =0x0000fff0 + ands r0, r2 + lsls r0, 6 + movs r1, 0xF + ands r2, r1 + lsls r2, 5 + adds r0, r2 + ldr r1, _08095984 @ =gFont3LatinGlyphs + adds r4, r0, r1 + adds r0, r4, 0 + adds r1, r7, 0 + movs r2, 0x10 + bl CpuSet + movs r2, 0x80 + lsls r2, 2 + adds r0, r4, r2 + ldr r3, [sp, 0x4] + adds r1, r7, r3 + movs r2, 0x10 + bl CpuSet + adds r7, 0x20 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcc _0809593E + b _08095A2E + .align 2, 0 +_08095980: .4byte 0x0000fff0 +_08095984: .4byte gFont3LatinGlyphs +_08095988: + movs r0, 0 + mov r9, r0 + ldr r1, [sp, 0x8] + lsls r0, r1, 28 + lsrs r0, 24 + str r0, [sp, 0xC] + mov r2, r8 + lsls r0, r2, 21 + movs r1, 0 + lsrs r0, 1 + str r0, [sp, 0x10] +_0809599E: + movs r5, 0 + ldr r3, [sp, 0x4] + adds r3, r7, r3 + str r3, [sp, 0x14] + adds r0, r1, 0x1 + str r0, [sp, 0x18] + cmp r5, r8 + bcs _08095A12 + movs r2, 0xF + mov r12, r2 + lsls r1, 9 + ldr r0, _08095A40 @ =gFont3LatinGlyphs + adds r1, r0 + mov r10, r1 +_080959BA: + ldr r3, [sp] + adds r0, r3, r5 + ldrb r1, [r0] + ldr r0, _08095A44 @ =0x0000fff0 + ands r0, r1 + lsls r0, 6 + mov r2, r12 + ands r1, r2 + lsls r1, 5 + adds r0, r1 + mov r3, r10 + adds r4, r0, r3 + movs r6, 0 + adds r5, 0x1 +_080959D6: + ldrb r0, [r4] + movs r3, 0xF0 + ands r3, r0 + mov r2, r12 + ands r2, r0 + cmp r3, 0 + bne _080959E6 + ldr r3, [sp, 0xC] +_080959E6: + cmp r2, 0 + bne _080959EC + ldr r2, [sp, 0x8] +_080959EC: + mov r0, r9 + adds r1, r0, 0x1 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + ldr r1, [sp, 0x40] + adds r0, r1, r0 + orrs r3, r2 + strb r3, [r0] + adds r4, 0x1 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x1F + bls _080959D6 + lsls r0, r5, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcc _080959BA +_08095A12: + ldr r0, [sp, 0x40] + adds r1, r7, 0 + ldr r3, [sp, 0x10] + lsrs r2, r3, 16 + bl CpuSet + ldr r7, [sp, 0x14] + movs r0, 0 + mov r9, r0 + ldr r1, [sp, 0x18] + lsls r0, r1, 16 + lsrs r1, r0, 16 + cmp r1, 0x1 + bls _0809599E +_08095A2E: + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08095A40: .4byte gFont3LatinGlyphs +_08095A44: .4byte 0x0000fff0 + thumb_func_end sub_8095904 + + thumb_func_start unref_sub_8095A48 +unref_sub_8095A48: @ 8095A48 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + adds r4, r0, 0 + adds r5, r1, 0 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + lsls r3, 24 + lsrs r7, r3, 24 + movs r6, 0 +_08095A60: + movs r3, 0 + ldrb r0, [r4] + adds r1, r0, 0 + adds r2, r0, 0 + cmp r1, 0xFF + beq _08095ACE +_08095A6C: + mov r0, sp + adds r0, r3 + adds r0, 0x8 + strb r2, [r0] + adds r4, 0x1 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bhi _08095AA8 + ldrb r0, [r4] + adds r1, r0, 0 + adds r2, r0, 0 + cmp r1, 0xFF + bne _08095A6C + cmp r3, 0 + beq _08095ACE + movs r6, 0x1 + cmp r3, 0x3 + bhi _08095AA8 + movs r2, 0 +_08095A96: + adds r0, r3, 0 + adds r1, r0, 0x1 + lsls r1, 16 + lsrs r3, r1, 16 + add r0, sp + adds r0, 0x8 + strb r2, [r0] + cmp r3, 0x3 + bls _08095A96 +_08095AA8: + mov r1, sp + adds r1, r3 + adds r1, 0x8 + movs r0, 0xFF + strb r0, [r1] + str r7, [sp] + ldr r0, [sp, 0x28] + str r0, [sp, 0x4] + add r0, sp, 0x8 + adds r1, r5, 0 + mov r2, r8 + movs r3, 0x80 + bl sub_8095904 + movs r0, 0x80 + lsls r0, 1 + adds r5, r0 + cmp r6, 0 + beq _08095A60 +_08095ACE: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end unref_sub_8095A48 + + thumb_func_start sub_8095ADC +sub_8095ADC: @ 8095ADC + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + movs r4, 0 + movs r5, 0 + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r6, r0, 5 +_08095AF0: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + ldr r1, _08095B20 @ =gPokemonStorage + 0x4 + adds r0, r1 + adds r0, r6, r0 + movs r1, 0xB + bl GetBoxMonData + cmp r0, 0 + beq _08095B0C + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_08095B0C: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1D + bls _08095AF0 + lsls r0, r5, 24 + lsrs r0, 24 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08095B20: .4byte gPokemonStorage + 0x4 + thumb_func_end sub_8095ADC + + thumb_func_start sub_8095B24 +sub_8095B24: @ 8095B24 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + movs r4, 0 + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r5, r0, 5 +_08095B36: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + ldr r1, _08095B54 @ =gPokemonStorage + 0x4 + adds r0, r1 + adds r0, r5, r0 + movs r1, 0xB + bl GetBoxMonData + cmp r0, 0 + bne _08095B58 + lsls r0, r4, 16 + asrs r0, 16 + b _08095B66 + .align 2, 0 +_08095B54: .4byte gPokemonStorage + 0x4 +_08095B58: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1D + bls _08095B36 + movs r0, 0x1 + negs r0, r0 +_08095B66: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8095B24 + + thumb_func_start sub_8095B6C +sub_8095B6C: @ 8095B6C + push {r4-r6,lr} + movs r5, 0 + movs r6, 0 +_08095B72: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _08095BB0 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _08095B9A + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _08095B9A + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_08095B9A: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _08095B72 + lsls r0, r6, 24 + lsrs r0, 24 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08095BB0: .4byte gPlayerParty + thumb_func_end sub_8095B6C + + thumb_func_start CountAlivePartyMonsExceptOne +CountAlivePartyMonsExceptOne: @ 8095BB4 + push {r4-r7,lr} + lsls r0, 24 + movs r5, 0 + movs r6, 0 + lsrs r7, r0, 24 +_08095BBE: + cmp r5, r7 + beq _08095BF6 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _08095C0C @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _08095BF6 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _08095BF6 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _08095BF6 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_08095BF6: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _08095BBE + lsls r0, r6, 24 + lsrs r0, 24 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08095C0C: .4byte gPlayerParty + thumb_func_end CountAlivePartyMonsExceptOne + + thumb_func_start sub_8095C10 +sub_8095C10: @ 8095C10 + push {lr} + ldr r0, _08095C24 @ =gSpecialVar_0x8004 + ldrb r0, [r0] + bl CountAlivePartyMonsExceptOne + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_08095C24: .4byte gSpecialVar_0x8004 + thumb_func_end sub_8095C10 + + thumb_func_start StorageSystemGetPartySize +StorageSystemGetPartySize: @ 8095C28 + push {r4,r5,lr} + movs r4, 0 + movs r5, 0 +_08095C2E: + movs r0, 0x64 + muls r0, r4 + ldr r1, _08095C5C @ =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _08095C46 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_08095C46: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x5 + bls _08095C2E + lsls r0, r5, 24 + lsrs r0, 24 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_08095C5C: .4byte gPlayerParty + thumb_func_end StorageSystemGetPartySize + + thumb_func_start unref_sub_8095C60 +unref_sub_8095C60: @ 8095C60 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r4, r2, 16 + lsrs r4, 16 + bl StringCopy + adds r1, r0, 0 + adds r5, r4 + cmp r1, r5 + bcs _08095C7E + movs r0, 0 +_08095C76: + strb r0, [r1] + adds r1, 0x1 + cmp r1, r5 + bcc _08095C76 +_08095C7E: + movs r0, 0xFF + strb r0, [r1] + adds r0, r1, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end unref_sub_8095C60 + + thumb_func_start sub_8095C8C +sub_8095C8C: @ 8095C8C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r6, r0, 0 + adds r7, r3, 0 + ldr r5, [sp, 0x1C] + ldr r4, [sp, 0x20] + ldr r0, [sp, 0x24] + mov r9, r0 + ldr r0, [sp, 0x28] + ldr r3, [sp, 0x2C] + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsls r5, 16 + lsrs r5, 16 + lsls r4, 16 + lsrs r4, 16 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r3, 16 + lsrs r3, 16 + mov r0, r9 + lsls r0, 17 + mov r9, r0 + lsrs r2, 11 + adds r2, r1 + lsls r2, 1 + adds r6, r2 + adds r0, r4, 0 + muls r0, r3 + adds r0, r5 + lsls r0, 1 + adds r7, r0 + movs r4, 0 + cmp r4, r8 + bcs _08095CFC + mov r0, r9 + lsrs r0, 1 + mov r9, r0 + lsls r5, r3, 1 +_08095CE2: + adds r0, r7, 0 + adds r1, r6, 0 + mov r3, r9 + lsrs r2, r3, 16 + bl CpuSet + adds r6, 0x40 + adds r7, r5 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r8 + bcc _08095CE2 +_08095CFC: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8095C8C + + thumb_func_start unref_sub_8095D08 +unref_sub_8095D08: @ 8095D08 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r4, r0, 0 + ldr r0, [sp, 0x28] + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + lsrs r2, 11 + adds r2, r1 + lsls r2, 1 + adds r4, r2 + lsls r3, 17 + lsrs r0, r3, 16 + str r0, [sp, 0x4] + movs r0, 0 + cmp r0, r10 + bcs _08095DB2 + movs r6, 0x80 + lsls r6, 5 + mov r5, sp + ldr r7, _08095D74 @ =0x040000d4 + lsrs r3, 17 + mov r9, r3 + mov r1, r9 + movs r2, 0x81 + lsls r2, 24 + orrs r1, r2 + mov r9, r1 +_08095D4E: + adds r3, r4, 0 + ldr r2, [sp, 0x4] + movs r1, 0x40 + adds r1, r4 + mov r8, r1 + adds r0, 0x1 + mov r12, r0 + cmp r2, r6 + bhi _08095D78 + movs r0, 0 + strh r0, [r5] + mov r2, sp + str r2, [r7] + str r4, [r7, 0x4] + mov r0, r9 + str r0, [r7, 0x8] + ldr r0, [r7, 0x8] + b _08095DA6 + .align 2, 0 +_08095D74: .4byte 0x040000d4 +_08095D78: + movs r4, 0 + strh r4, [r5] + ldr r1, _08095DC4 @ =0x040000d4 + mov r0, sp + str r0, [r1] + str r3, [r1, 0x4] + ldr r0, _08095DC8 @ =0x81000800 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r3, r6 + subs r2, r6 + cmp r2, r6 + bhi _08095D78 + strh r4, [r5] + mov r0, sp + str r0, [r1] + str r3, [r1, 0x4] + lsrs r0, r2, 1 + movs r2, 0x81 + lsls r2, 24 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_08095DA6: + mov r4, r8 + mov r1, r12 + lsls r0, r1, 16 + lsrs r0, 16 + cmp r0, r10 + bcc _08095D4E +_08095DB2: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08095DC4: .4byte 0x040000d4 +_08095DC8: .4byte 0x81000800 + thumb_func_end unref_sub_8095D08 + + thumb_func_start StorageSystemGetNextMonIndex +StorageSystemGetNextMonIndex: @ 8095DCC + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r8, r0 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r7, r2, 24 + lsls r3, 24 + lsrs r0, r3, 24 + cmp r0, 0 + beq _08095DE8 + cmp r0, 0x2 + bne _08095DEC +_08095DE8: + movs r2, 0x1 + b _08095DEE +_08095DEC: + ldr r2, _08095E38 @ =0x0000ffff +_08095DEE: + subs r0, 0x2 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _08095E44 + lsls r0, r1, 24 + asrs r0, 24 + lsls r2, 16 + asrs r1, r2, 16 + adds r1, r0 + lsls r0, r1, 16 + asrs r1, r0, 16 + adds r6, r2, 0 + cmp r1, 0 + blt _08095E90 + cmp r1, r7 + bgt _08095E90 +_08095E10: + asrs r4, r0, 16 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + add r0, r8 + movs r1, 0xB + bl GetBoxMonData + cmp r0, 0 + bne _08095E3C + asrs r0, r6, 16 + adds r0, r4, r0 + lsls r0, 16 + asrs r2, r0, 16 + cmp r2, 0 + blt _08095E90 + cmp r2, r7 + ble _08095E10 + b _08095E90 + .align 2, 0 +_08095E38: .4byte 0x0000ffff +_08095E3C: + adds r0, r4, 0 + b _08095E94 +_08095E40: + adds r0, r5, 0 + b _08095E94 +_08095E44: + lsls r0, r1, 24 + asrs r0, 24 + lsls r2, 16 + asrs r1, r2, 16 + adds r1, r0 + lsls r0, r1, 16 + asrs r1, r0, 16 + adds r6, r2, 0 + cmp r1, 0 + blt _08095E90 + cmp r1, r7 + bgt _08095E90 +_08095E5C: + asrs r5, r0, 16 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 4 + mov r1, r8 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetBoxMonData + cmp r0, 0 + beq _08095E80 + adds r0, r4, 0 + movs r1, 0x2D + bl GetBoxMonData + cmp r0, 0 + beq _08095E40 +_08095E80: + asrs r0, r6, 16 + adds r0, r5, r0 + lsls r0, 16 + asrs r2, r0, 16 + cmp r2, 0 + blt _08095E90 + cmp r2, r7 + ble _08095E5C +_08095E90: + movs r0, 0x1 + negs r0, r0 +_08095E94: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end StorageSystemGetNextMonIndex + + thumb_func_start StorageSystemClearMessageWindow +StorageSystemClearMessageWindow: @ 8095EA0 + push {lr} + movs r0, 0x2 + movs r1, 0xF + movs r2, 0x1B + movs r3, 0x12 + bl MenuFillWindowRectWithBlankTile + pop {r0} + bx r0 + thumb_func_end StorageSystemClearMessageWindow + + thumb_func_start Task_PokemonStorageSystem +Task_PokemonStorageSystem: @ 8095EB4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _08095ED8 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _08095ECE + b _080960F4 +_08095ECE: + lsls r0, 2 + ldr r1, _08095EDC @ =_08095EE0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08095ED8: .4byte gTasks +_08095EDC: .4byte _08095EE0 + .align 2, 0 +_08095EE0: + .4byte _08095EF4 + .4byte _08095F1C + .4byte _08095F30 + .4byte _08096042 + .4byte _080960DC +_08095EF4: + ldrb r0, [r4, 0xA] + bl StorageSystemCreatePrimaryMenu + bl MenuDisplayMessageBox + ldr r1, _08095F18 @ =gUnknown_083B600C + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + b _08095F28 + .align 2, 0 +_08095F18: .4byte gUnknown_083B600C +_08095F1C: + bl sub_807D770 + lsls r0, 24 + cmp r0, 0 + bne _08095F28 + b _080960F4 +_08095F28: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080960F4 +_08095F30: + bl ProcessMenuInput + lsls r0, 24 + asrs r0, 24 + strh r0, [r4, 0xC] + movs r3, 0xC + ldrsh r1, [r4, r3] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08095FC8 + cmp r1, r0 + bgt _08095F52 + subs r0, 0x1 + cmp r1, r0 + beq _08095F58 + b _08095FE8 +_08095F52: + cmp r1, 0x3 + beq _08095FC8 + b _08095FE8 +_08095F58: + ldrh r3, [r4, 0xA] + strh r3, [r4, 0xE] + ldr r2, _08095FC0 @ =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08095F76 + subs r0, r3, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + cmp r0, 0 + bge _08095F76 + movs r0, 0x3 + strh r0, [r4, 0xE] +_08095F76: + ldrh r1, [r2, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08095F92 + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _08095F92 + movs r0, 0 + strh r0, [r4, 0xE] +_08095F92: + lsls r0, r3, 16 + asrs r0, 16 + ldrh r2, [r4, 0xE] + movs r3, 0xE + ldrsh r1, [r4, r3] + cmp r0, r1 + bne _08095FA2 + b _080960F4 +_08095FA2: + strh r2, [r4, 0xA] + bl StorageSystemClearMessageWindow + ldr r0, _08095FC4 @ =gUnknown_083B600C + movs r2, 0xA + ldrsh r1, [r4, r2] + lsls r1, 3 + adds r0, 0x4 + adds r1, r0 + ldr r0, [r1] + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + b _080960F4 + .align 2, 0 +_08095FC0: .4byte gMain +_08095FC4: .4byte gUnknown_083B600C +_08095FC8: + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0xD + movs r3, 0x9 + bl MenuZeroFillWindowRect + bl ScriptContext2_Disable + bl EnableBothScriptContexts + adds r0, r5, 0 + bl DestroyTask + b _080960F4 +_08095FE8: + movs r3, 0xC + ldrsh r0, [r4, r3] + cmp r0, 0 + bne _08096008 + bl StorageSystemGetPartySize + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + bne _08096008 + bl StorageSystemClearMessageWindow + ldr r0, _08096004 @ =gPCText_PartyFull2 + b _08096022 + .align 2, 0 +_08096004: .4byte gPCText_PartyFull2 +_08096008: + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _08096034 + bl StorageSystemGetPartySize + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08096034 + bl StorageSystemClearMessageWindow + ldr r0, _08096030 @ =gPCText_OnlyOne +_08096022: + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + movs r0, 0x3 + strh r0, [r4, 0x8] + b _080960F4 + .align 2, 0 +_08096030: .4byte gPCText_OnlyOne +_08096034: + movs r0, 0x1 + movs r1, 0 + bl fade_screen + movs r0, 0x4 + strh r0, [r4, 0x8] + b _080960F4 +_08096042: + ldr r0, _08096088 @ =gMain + ldrh r1, [r0, 0x2E] + movs r3, 0x3 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _080960B8 + movs r0, 0x40 + ands r0, r1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0 + beq _08096090 + ldrh r0, [r4, 0xA] + subs r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + cmp r0, 0 + bge _0809606A + strh r3, [r4, 0xA] +_0809606A: + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursor + bl GetMenuCursorPos + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xA] + bl StorageSystemClearMessageWindow + ldr r1, _0809608C @ =gUnknown_083B600C + movs r3, 0xA + ldrsh r0, [r4, r3] + b _080960C2 + .align 2, 0 +_08096088: .4byte gMain +_0809608C: .4byte gUnknown_083B600C +_08096090: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080960F4 + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080960A8 + strh r2, [r4, 0xA] +_080960A8: + movs r0, 0x1 + bl MoveMenuCursor + bl GetMenuCursorPos + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xA] +_080960B8: + bl StorageSystemClearMessageWindow + ldr r1, _080960D8 @ =gUnknown_083B600C + movs r2, 0xA + ldrsh r0, [r4, r2] +_080960C2: + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + movs r0, 0x2 + strh r0, [r4, 0x8] + b _080960F4 + .align 2, 0 +_080960D8: .4byte gUnknown_083B600C +_080960DC: + ldr r0, _080960FC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080960F4 + ldrb r0, [r4, 0xC] + bl task_intro_29 + adds r0, r5, 0 + bl DestroyTask +_080960F4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080960FC: .4byte gPaletteFade + thumb_func_end Task_PokemonStorageSystem + + thumb_func_start ShowPokemonStorageSystem +ShowPokemonStorageSystem: @ 8096100 + push {lr} + ldr r0, _08096128 @ =Task_PokemonStorageSystem + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0809612C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x8] + strh r0, [r1, 0xA] + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_08096128: .4byte Task_PokemonStorageSystem +_0809612C: .4byte gTasks + thumb_func_end ShowPokemonStorageSystem + + thumb_func_start sub_8096130 +sub_8096130: @ 8096130 + push {lr} + ldr r0, _0809615C @ =Task_PokemonStorageSystem + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08096160 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x8] + ldr r0, _08096164 @ =gUnknown_02038474 + ldrb r0, [r0] + strh r0, [r1, 0xA] + bl pal_fill_black + pop {r0} + bx r0 + .align 2, 0 +_0809615C: .4byte Task_PokemonStorageSystem +_08096160: .4byte gTasks +_08096164: .4byte gUnknown_02038474 + thumb_func_end sub_8096130 + + thumb_func_start StorageSystemCreatePrimaryMenu +StorageSystemCreatePrimaryMenu: @ 8096168 + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + movs r1, 0 + movs r2, 0xD + movs r3, 0x9 + bl MenuDrawTextWindow + ldr r3, _080961A4 @ =gUnknown_083B600C + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0x4 + bl PrintMenuItems + str r4, [sp] + movs r0, 0xC + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x4 + bl InitMenu + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080961A4: .4byte gUnknown_083B600C + thumb_func_end StorageSystemCreatePrimaryMenu + + thumb_func_start sub_80961A8 +sub_80961A8: @ 80961A8 + push {lr} + ldr r1, _080961C4 @ =gUnknown_02038474 + ldr r0, _080961C8 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldrb r0, [r0, 0x5] + strb r0, [r1] + ldr r1, _080961CC @ =gUnknown_0300485C + ldr r0, _080961D0 @ =sub_8096130 + str r0, [r1] + ldr r0, _080961D4 @ =c2_exit_to_overworld_2_switch + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080961C4: .4byte gUnknown_02038474 +_080961C8: .4byte gUnknown_083B6DB4 +_080961CC: .4byte gUnknown_0300485C +_080961D0: .4byte sub_8096130 +_080961D4: .4byte c2_exit_to_overworld_2_switch + thumb_func_end sub_80961A8 + + thumb_func_start sub_80961D8 +sub_80961D8: @ 80961D8 + push {r4-r7,lr} + ldr r1, _08096258 @ =gPokemonStorage + movs r0, 0 + strb r0, [r1] + movs r5, 0 + adds r7, r1, 0x4 +_080961E4: + movs r4, 0 + lsls r1, r5, 2 + adds r1, r5 + lsls r0, r1, 4 + subs r0, r1 + lsls r6, r0, 5 +_080961F0: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + adds r0, r7 + adds r0, r6, r0 + bl ZeroBoxMonData + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1D + bls _080961F0 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0xD + bls _080961E4 + movs r5, 0 +_08096214: + lsls r0, r5, 3 + adds r0, r5 + ldr r6, _0809625C @ =gPokemonStorage + 0x8344 + adds r0, r6 + ldr r1, _08096260 @ =gPCText_BOX + bl StringCopy + adds r4, r5, 0x1 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + lsls r4, 16 + lsrs r5, r4, 16 + cmp r5, 0xD + bls _08096214 + movs r5, 0 + adds r3, r6, 0 + adds r3, 0x7E + movs r2, 0x3 +_0809623E: + adds r0, r5, r3 + adds r1, r5, 0 + ands r1, r2 + strb r1, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0xD + bls _0809623E + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08096258: .4byte gPokemonStorage +_0809625C: .4byte gPokemonStorage + 0x8344 +_08096260: .4byte gPCText_BOX + thumb_func_end sub_80961D8 + + thumb_func_start sub_8096264 +sub_8096264: @ 8096264 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x20 + mov r8, r0 + adds r4, r1, 0 + adds r6, r2, 0 + mov r9, r3 + lsls r4, 16 + lsrs r4, 16 + lsls r6, 16 + lsrs r6, 16 + mov r0, r9 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r0, _080962F4 @ =gBoxSelectionPopupPalette + str r0, [sp, 0x18] + ldr r1, _080962F8 @ =0xffff0000 + add r5, sp, 0x18 + ldr r0, [r5, 0x4] + ands r0, r1 + orrs r0, r6 + str r0, [r5, 0x4] + mov r1, sp + ldr r0, _080962FC @ =gBoxSelectionPopupCenterTiles + str r0, [sp] + movs r0, 0x80 + lsls r0, 4 + strh r0, [r1, 0x4] + strh r4, [r1, 0x6] + ldr r0, _08096300 @ =gBoxSelectionPopupSidesTiles + str r0, [sp, 0x8] + movs r0, 0xC0 + lsls r0, 1 + strh r0, [r1, 0xC] + adds r0, r4, 0x1 + strh r0, [r1, 0xE] + add r0, sp, 0x10 + movs r1, 0 + movs r2, 0x8 + bl memset + adds r0, r5, 0 + bl LoadSpritePalette + mov r0, sp + bl LoadSpriteSheets + ldr r0, _08096304 @ =gUnknown_02038478 + mov r1, r8 + str r1, [r0] + movs r0, 0x90 + lsls r0, 2 + add r0, r8 + strh r4, [r0] + ldr r0, _08096308 @ =0x00000242 + add r0, r8 + strh r6, [r0] + ldr r0, _0809630C @ =0x0000023e + add r8, r0 + mov r0, r9 + mov r1, r8 + strb r0, [r1] + add sp, 0x20 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080962F4: .4byte gBoxSelectionPopupPalette +_080962F8: .4byte 0xffff0000 +_080962FC: .4byte gBoxSelectionPopupCenterTiles +_08096300: .4byte gBoxSelectionPopupSidesTiles +_08096304: .4byte gUnknown_02038478 +_08096308: .4byte 0x00000242 +_0809630C: .4byte 0x0000023e + thumb_func_end sub_8096264 + + thumb_func_start sub_8096310 +sub_8096310: @ 8096310 + push {r4,r5,lr} + ldr r4, _08096344 @ =gUnknown_02038478 + ldr r0, [r4] + ldr r1, _08096348 @ =0x00000242 + adds r0, r1 + ldrh r0, [r0] + bl FreeSpritePaletteByTag + ldr r0, [r4] + movs r5, 0x90 + lsls r5, 2 + adds r0, r5 + ldrh r0, [r0] + bl FreeSpriteTilesByTag + ldr r0, [r4] + adds r0, r5 + ldrh r0, [r0] + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + bl FreeSpriteTilesByTag + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08096344: .4byte gUnknown_02038478 +_08096348: .4byte 0x00000242 + thumb_func_end sub_8096310 + + thumb_func_start sub_809634C +sub_809634C: @ 809634C + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_80963D0 + pop {r0} + bx r0 + thumb_func_end sub_809634C + + thumb_func_start sub_809635C +sub_809635C: @ 809635C + push {lr} + bl sub_809658C + pop {r0} + bx r0 + thumb_func_end sub_809635C + + thumb_func_start sub_8096368 +sub_8096368: @ 8096368 + push {lr} + ldr r0, _08096380 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08096384 + movs r0, 0x5 + bl PlaySE + movs r0, 0xC9 + b _080963CC + .align 2, 0 +_08096380: .4byte gMain +_08096384: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080963A4 + movs r0, 0x5 + bl PlaySE + ldr r0, _080963A0 @ =gUnknown_02038478 + ldr r0, [r0] + movs r1, 0x8F + lsls r1, 2 + adds r0, r1 + ldrb r0, [r0] + b _080963CC + .align 2, 0 +_080963A0: .4byte gUnknown_02038478 +_080963A4: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080963B8 + movs r0, 0x5 + bl PlaySE + bl sub_809662C + b _080963CA +_080963B8: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080963CA + movs r0, 0x5 + bl PlaySE + bl sub_80965F8 +_080963CA: + movs r0, 0xC8 +_080963CC: + pop {r1} + bx r1 + thumb_func_end sub_8096368 + + thumb_func_start sub_80963D0 +sub_80963D0: @ 80963D0 + push {r4-r6,lr} + sub sp, 0x3C + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0 + movs r1, 0 + str r0, [sp, 0x34] + str r1, [sp, 0x38] + movs r1, 0xC0 + lsls r1, 24 + ldr r0, [sp, 0x34] + orrs r0, r1 + str r0, [sp, 0x34] + ldr r1, _08096564 @ =0xffff0fff + add r4, sp, 0x34 + ldr r0, [r4, 0x4] + ands r0, r1 + movs r1, 0x80 + lsls r1, 5 + orrs r0, r1 + str r0, [r4, 0x4] + add r1, sp, 0x1C + movs r2, 0 + strh r2, [r1] + mov r0, sp + adds r0, 0x1E + strh r2, [r0] + str r4, [sp, 0x20] + ldr r0, _08096568 @ =gDummySpriteAnimTable + str r0, [sp, 0x24] + str r2, [sp, 0x28] + ldr r0, _0809656C @ =gDummySpriteAffineAnimTable + str r0, [sp, 0x2C] + ldr r0, _08096570 @ =SpriteCallbackDummy + str r0, [sp, 0x30] + add r0, sp, 0x4 + movs r2, 0x18 + bl memcpy + ldr r6, _08096574 @ =gUnknown_02038478 + ldr r0, [r6] + movs r1, 0x8F + lsls r1, 2 + adds r0, r1 + strb r5, [r0] + add r2, sp, 0x4 + ldr r1, [r6] + movs r5, 0x90 + lsls r5, 2 + adds r0, r1, r5 + ldrh r0, [r0] + strh r0, [r2] + ldr r3, _08096578 @ =0x00000242 + adds r1, r3 + ldrh r0, [r1] + strh r0, [r2, 0x2] + adds r0, r2, 0 + movs r1, 0xA0 + movs r2, 0x60 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + ldr r3, [r6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0809657C @ =gSprites + adds r0, r1 + str r0, [r3] + ldrb r2, [r4, 0x1] + movs r1, 0x3F + adds r0, r1, 0 + ands r0, r2 + movs r2, 0x80 + orrs r0, r2 + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x3] + ands r1, r0 + movs r0, 0x40 + orrs r1, r0 + strb r1, [r4, 0x3] + add r1, sp, 0x4 + adds r3, r5 + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r1] + ldr r0, _08096580 @ =gSpriteAnimTable_83B604C + str r0, [sp, 0xC] + movs r4, 0 +_08096488: + ldr r0, [r6] + ldr r1, _08096584 @ =0x0000023e + adds r0, r1 + ldrb r3, [r0] + add r0, sp, 0x4 + movs r1, 0x7C + movs r2, 0x50 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + ldr r2, [r6] + lsls r3, r4, 2 + adds r2, 0x4 + adds r2, r3 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0809657C @ =gSprites + adds r1, r0, r1 + str r1, [r2] + movs r5, 0 + movs r0, 0x2 + ands r0, r4 + cmp r0, 0 + beq _080964C2 + movs r0, 0xC4 + strh r0, [r1, 0x20] + movs r5, 0x2 +_080964C2: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _080964E6 + ldr r1, [r6] + adds r1, 0x4 + adds r1, r3 + ldr r2, [r1] + movs r0, 0x70 + strh r0, [r2, 0x22] + ldr r2, [r1] + ldrb r1, [r2, 0x3] + movs r0, 0x3F + ands r0, r1 + strb r0, [r2, 0x3] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_080964E6: + ldr r0, [r6] + adds r0, 0x4 + adds r0, r3 + ldr r0, [r0] + lsls r1, r5, 24 + lsrs r1, 24 + bl StartSpriteAnim + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _08096488 + movs r4, 0 + ldr r5, _08096574 @ =gUnknown_02038478 +_08096504: + lsls r0, r4, 3 + adds r0, r4 + lsls r0, 19 + movs r3, 0xF8 + lsls r3, 15 + adds r0, r3 + lsrs r0, 16 + lsls r2, r4, 24 + lsrs r2, 24 + ldr r1, [r5] + ldr r3, _08096584 @ =0x0000023e + adds r1, r3 + ldrb r1, [r1] + str r1, [sp] + movs r1, 0x58 + movs r3, 0 + bl sub_809A9A0 + adds r2, r0, 0 + ldr r0, [r5] + lsls r1, r4, 2 + adds r0, 0x20 + adds r0, r1 + str r2, [r0] + cmp r2, 0 + beq _0809654C + movs r1, 0x1 + cmp r4, 0 + bne _08096544 + movs r3, 0x1 + negs r3, r3 + adds r1, r3, 0 +_08096544: + strh r1, [r2, 0x2E] + ldr r1, [r0] + ldr r0, _08096588 @ =sub_8096784 + str r0, [r1, 0x1C] +_0809654C: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _08096504 + bl sub_809665C + add sp, 0x3C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08096564: .4byte 0xffff0fff +_08096568: .4byte gDummySpriteAnimTable +_0809656C: .4byte gDummySpriteAffineAnimTable +_08096570: .4byte SpriteCallbackDummy +_08096574: .4byte gUnknown_02038478 +_08096578: .4byte 0x00000242 +_0809657C: .4byte gSprites +_08096580: .4byte gSpriteAnimTable_83B604C +_08096584: .4byte 0x0000023e +_08096588: .4byte sub_8096784 + thumb_func_end sub_80963D0 + + thumb_func_start sub_809658C +sub_809658C: @ 809658C + push {r4-r6,lr} + ldr r4, _080965F4 @ =gUnknown_02038478 + ldr r0, [r4] + ldr r0, [r0] + cmp r0, 0 + beq _080965A2 + bl DestroySprite + ldr r1, [r4] + movs r0, 0 + str r0, [r1] +_080965A2: + movs r5, 0 + adds r6, r4, 0 +_080965A6: + ldr r0, [r6] + lsls r4, r5, 2 + adds r0, 0x4 + adds r0, r4 + ldr r0, [r0] + cmp r0, 0 + beq _080965C2 + bl DestroySprite + ldr r0, [r6] + adds r0, 0x4 + adds r0, r4 + movs r1, 0 + str r1, [r0] +_080965C2: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3 + bls _080965A6 + movs r5, 0 +_080965CE: + ldr r0, _080965F4 @ =gUnknown_02038478 + ldr r0, [r0] + lsls r1, r5, 2 + adds r0, 0x20 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + beq _080965E2 + bl DestroySprite +_080965E2: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _080965CE + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080965F4: .4byte gUnknown_02038478 + thumb_func_end sub_809658C + + thumb_func_start sub_80965F8 +sub_80965F8: @ 80965F8 + push {lr} + ldr r2, _08096628 @ =gUnknown_02038478 + ldr r1, [r2] + movs r0, 0x8F + lsls r0, 2 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xD + bls _0809661E + ldr r0, [r2] + movs r1, 0x8F + lsls r1, 2 + adds r0, r1 + movs r1, 0 + strb r1, [r0] +_0809661E: + bl sub_809665C + pop {r0} + bx r0 + .align 2, 0 +_08096628: .4byte gUnknown_02038478 + thumb_func_end sub_80965F8 + + thumb_func_start sub_809662C +sub_809662C: @ 809662C + push {lr} + ldr r0, _08096644 @ =gUnknown_02038478 + ldr r2, [r0] + movs r1, 0x8F + lsls r1, 2 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08096648 + subs r1, r0, 0x1 + b _0809664A + .align 2, 0 +_08096644: .4byte gUnknown_02038478 +_08096648: + movs r1, 0xD +_0809664A: + movs r3, 0x8F + lsls r3, 2 + adds r0, r2, r3 + strb r1, [r0] + bl sub_809665C + pop {r0} + bx r0 + thumb_func_end sub_809662C + + thumb_func_start sub_809665C +sub_809665C: @ 809665C + push {r4-r7,lr} + ldr r5, _080966B4 @ =gUnknown_02038478 + ldr r0, [r5] + movs r4, 0x8F + lsls r4, 2 + adds r0, r4 + ldrb r0, [r0] + bl sub_8095ADC + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, _080966B8 @ =gStringVar1 + movs r6, 0xFC + strb r6, [r2] + movs r0, 0x4 + strb r0, [r2, 0x1] + movs r0, 0xF + strb r0, [r2, 0x2] + movs r0, 0x1 + strb r0, [r2, 0x3] + movs r0, 0xE + strb r0, [r2, 0x4] + adds r2, 0x5 + ldr r0, [r5] + adds r0, r4 + ldrb r0, [r0] + lsls r1, r0, 3 + adds r1, r0 + ldr r0, _080966BC @ =gPokemonStorage + 0x8344 + adds r1, r0 + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + movs r0, 0xFE + strb r0, [r2] + strb r6, [r2, 0x1] + movs r0, 0x11 + strb r0, [r2, 0x2] + cmp r7, 0x9 + bhi _080966C0 + movs r0, 0x28 + b _080966C2 + .align 2, 0 +_080966B4: .4byte gUnknown_02038478 +_080966B8: .4byte gStringVar1 +_080966BC: .4byte gPokemonStorage + 0x8344 +_080966C0: + movs r0, 0x22 +_080966C2: + strb r0, [r2, 0x3] + adds r2, 0x4 + adds r0, r2, 0 + adds r1, r7, 0 + bl ConvertIntToDecimalString + adds r2, r0, 0 + movs r0, 0xBA + strb r0, [r2] + movs r0, 0xA4 + strb r0, [r2, 0x1] + movs r0, 0xA1 + strb r0, [r2, 0x2] + movs r0, 0xFF + strb r0, [r2, 0x3] + ldr r0, _080966F0 @ =gStringVar1 + movs r1, 0 + movs r2, 0x1 + bl sub_80966F4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080966F0: .4byte gStringVar1 + thumb_func_end sub_809665C + + thumb_func_start sub_80966F4 +sub_80966F4: @ 80966F4 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x4 + mov r8, r0 + adds r5, r1, 0 + adds r4, r2, 0 + lsls r5, 16 + lsrs r5, 16 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _08096764 @ =gUnknown_02038478 + ldr r0, [r0] + movs r1, 0x90 + lsls r1, 2 + adds r0, r1 + ldrh r0, [r0] + bl GetSpriteTileStartByTag + adds r6, r0, 0 + lsls r6, 16 + lsrs r6, 11 + lsls r4, 8 + ldr r2, _08096768 @ =0x06010000 + adds r4, r2 + adds r6, r4 + lsls r5, 5 + adds r6, r5 + ldr r0, _0809676C @ =gUnknown_083B6DB8 + ldr r5, [r0] + mov r1, sp + ldr r2, _08096770 @ =0x00001111 + adds r0, r2, 0 + strh r0, [r1] + ldr r4, _08096774 @ =0x040000d4 + str r1, [r4] + str r5, [r4, 0x4] + ldr r0, _08096778 @ =0x81000200 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, _0809677C @ =gWindowConfig_81E6D38 + adds r1, r5, 0 + mov r2, r8 + bl sub_8004E3C + str r5, [r4] + str r6, [r4, 0x4] + ldr r0, _08096780 @ =0x80000200 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08096764: .4byte gUnknown_02038478 +_08096768: .4byte 0x06010000 +_0809676C: .4byte gUnknown_083B6DB8 +_08096770: .4byte 0x00001111 +_08096774: .4byte 0x040000d4 +_08096778: .4byte 0x81000200 +_0809677C: .4byte gWindowConfig_81E6D38 +_08096780: .4byte 0x80000200 + thumb_func_end sub_80966F4 + + thumb_func_start sub_8096784 +sub_8096784: @ 8096784 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x30] + adds r0, 0x1 + movs r2, 0 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080967B4 + strh r2, [r1, 0x30] + ldrh r0, [r1, 0x2E] + ldrh r3, [r1, 0x24] + adds r0, r3 + strh r0, [r1, 0x24] + ldrh r0, [r1, 0x32] + adds r0, 0x1 + strh r0, [r1, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080967B4 + strh r2, [r1, 0x32] + strh r2, [r1, 0x24] +_080967B4: + pop {r0} + bx r0 + thumb_func_end sub_8096784 + + thumb_func_start task_intro_29 +task_intro_29: @ 80967B8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080967D0 @ =gUnknown_0203847D + strb r0, [r1] + ldr r1, _080967D4 @ =0x02000000 + strb r0, [r1, 0x5] + ldr r0, _080967D8 @ =sub_8096884 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080967D0: .4byte gUnknown_0203847D +_080967D4: .4byte 0x02000000 +_080967D8: .4byte sub_8096884 + thumb_func_end task_intro_29 + + thumb_func_start sub_80967DC +sub_80967DC: @ 80967DC + ldr r0, _08096800 @ =REG_BG0HOFS + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bx lr + .align 2, 0 +_08096800: .4byte REG_BG0HOFS + thumb_func_end sub_80967DC + + thumb_func_start sub_8096804 +sub_8096804: @ 8096804 + push {lr} + bl ResetPaletteFade + bl ResetSpriteData + bl FreeSpriteTileRanges + bl FreeAllSpritePalettes + bl ResetTasks + ldr r1, _0809683C @ =gReservedSpriteTileCount + movs r2, 0xA0 + lsls r2, 2 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08096840 @ =0x02000020 + adds r1, r0, 0 + adds r1, 0x8 + movs r2, 0x8 + bl sub_809CFDC + ldr r1, _08096844 @ =gKeyRepeatStartDelay + movs r0, 0x14 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0809683C: .4byte gReservedSpriteTileCount +_08096840: .4byte 0x02000020 +_08096844: .4byte gKeyRepeatStartDelay + thumb_func_end sub_8096804 + + thumb_func_start sub_8096848 +sub_8096848: @ 8096848 + push {lr} + bl sub_809B0D4 + ldr r2, _08096868 @ =gUnknown_0203847C + movs r1, 0 + ldr r0, _0809686C @ =0x02000000 + ldrb r0, [r0, 0x5] + cmp r0, 0x1 + bne _0809685C + movs r1, 0x1 +_0809685C: + strb r1, [r2] + ldr r1, _08096870 @ =gUnknown_0203847E + movs r0, 0 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08096868: .4byte gUnknown_0203847C +_0809686C: .4byte 0x02000000 +_08096870: .4byte gUnknown_0203847E + thumb_func_end sub_8096848 + + thumb_func_start sub_8096874 +sub_8096874: @ 8096874 + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xFA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + bx lr + thumb_func_end sub_8096874 + + thumb_func_start sub_8096884 +sub_8096884: @ 8096884 + push {lr} + ldr r0, _080968A0 @ =gMain + ldr r1, _080968A4 @ =0x0000043c + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x9 + bls _08096894 + b _08096986 +_08096894: + lsls r0, 2 + ldr r1, _080968A8 @ =_080968AC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080968A0: .4byte gMain +_080968A4: .4byte 0x0000043c +_080968A8: .4byte _080968AC + .align 2, 0 +_080968AC: + .4byte _080968D4 + .4byte _080968E8 + .4byte _080968F4 + .4byte _08096904 + .4byte _0809690E + .4byte _08096918 + .4byte _0809691E + .4byte _08096924 + .4byte _0809692A + .4byte _08096964 +_080968D4: + movs r0, 0 + bl SetVBlankCallback + movs r1, 0x80 + lsls r1, 19 + movs r0, 0 + strh r0, [r1] + bl sub_8096804 + b _0809697A +_080968E8: + ldr r0, _080968F0 @ =gWindowConfig_81E6D00 + bl SetUpWindowConfig + b _0809697A + .align 2, 0 +_080968F0: .4byte gWindowConfig_81E6D00 +_080968F4: + ldr r0, _08096900 @ =gWindowConfig_81E6D00 + bl InitMenuWindow + bl MenuZeroFillScreen + b _0809697A + .align 2, 0 +_08096900: .4byte gWindowConfig_81E6D00 +_08096904: + bl sub_80967DC + bl sub_8096848 + b _0809697A +_0809690E: + bl sub_8098B48 + bl sub_809AA24 + b _0809697A +_08096918: + bl sub_8097DE0 + b _0809697A +_0809691E: + bl sub_8097E70 + b _0809697A +_08096924: + bl sub_8098400 + b _0809697A +_0809692A: + ldr r0, _08096950 @ =gPokemonStorage + ldrb r0, [r0] + bl sub_8099BF8 + ldr r2, _08096954 @ =0x02000000 + ldr r1, _08096958 @ =0x000012bc + adds r0, r2, r1 + movs r1, 0xA + strh r1, [r0] + ldr r1, _0809695C @ =0x000012be + adds r2, r1 + ldr r1, _08096960 @ =0x0000dacb + strh r1, [r2] + bl sub_80F727C + bl sub_80F7404 + b _0809697A + .align 2, 0 +_08096950: .4byte gPokemonStorage +_08096954: .4byte 0x02000000 +_08096958: .4byte 0x000012bc +_0809695C: .4byte 0x000012be +_08096960: .4byte 0x0000dacb +_08096964: + bl sub_8096874 + ldr r0, _0809698C @ =sub_8096BF0 + bl sub_8096BE0 + ldr r0, _08096990 @ =sub_8096B38 + bl SetMainCallback2 + ldr r0, _08096994 @ =sub_8096AFC + bl SetVBlankCallback +_0809697A: + ldr r1, _08096998 @ =gMain + ldr r0, _0809699C @ =0x0000043c + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08096986: + pop {r0} + bx r0 + .align 2, 0 +_0809698C: .4byte sub_8096BF0 +_08096990: .4byte sub_8096B38 +_08096994: .4byte sub_8096AFC +_08096998: .4byte gMain +_0809699C: .4byte 0x0000043c + thumb_func_end sub_8096884 + + thumb_func_start sub_80969A0 +sub_80969A0: @ 80969A0 + push {r4,lr} + sub sp, 0x4 + ldr r0, _080969BC @ =gMain + ldr r1, _080969C0 @ =0x0000043c + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0xA + bls _080969B2 + b _08096AE4 +_080969B2: + lsls r0, 2 + ldr r1, _080969C4 @ =_080969C8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080969BC: .4byte gMain +_080969C0: .4byte 0x0000043c +_080969C4: .4byte _080969C8 + .align 2, 0 +_080969C8: + .4byte _080969F4 + .4byte _08096A34 + .4byte _08096A40 + .4byte _08096A50 + .4byte _08096A56 + .4byte _08096A60 + .4byte _08096A66 + .4byte _08096A6C + .4byte _08096A72 + .4byte _08096AAC + .4byte _08096AC8 +_080969F4: + movs r0, 0 + bl SetVBlankCallback + movs r1, 0x80 + lsls r1, 19 + movs r0, 0 + strh r0, [r1] + ldr r1, _08096A28 @ =0x02000000 + ldr r0, _08096A2C @ =gUnknown_0203847D + ldrb r0, [r0] + strb r0, [r1, 0x5] + bl sub_8096804 + ldr r4, _08096A30 @ =gUnknown_0203847F + ldrb r0, [r4] + cmp r0, 0x1 + bne _08096A1A + bl sub_809BBC0 +_08096A1A: + ldrb r0, [r4] + cmp r0, 0 + bne _08096AD8 + bl sub_809BD14 + b _08096AD8 + .align 2, 0 +_08096A28: .4byte 0x02000000 +_08096A2C: .4byte gUnknown_0203847D +_08096A30: .4byte gUnknown_0203847F +_08096A34: + ldr r0, _08096A3C @ =gWindowConfig_81E6D00 + bl SetUpWindowConfig + b _08096AD8 + .align 2, 0 +_08096A3C: .4byte gWindowConfig_81E6D00 +_08096A40: + ldr r0, _08096A4C @ =gWindowConfig_81E6D00 + bl InitMenuWindow + bl MenuZeroFillScreen + b _08096AD8 + .align 2, 0 +_08096A4C: .4byte gWindowConfig_81E6D00 +_08096A50: + bl sub_80967DC + b _08096AD8 +_08096A56: + bl sub_8098B48 + bl sub_809AA98 + b _08096AD8 +_08096A60: + bl sub_8097DE0 + b _08096AD8 +_08096A66: + bl sub_8097E70 + b _08096AD8 +_08096A6C: + bl sub_8098400 + b _08096AD8 +_08096A72: + ldr r0, _08096A98 @ =gPokemonStorage + ldrb r0, [r0] + bl sub_8099BF8 + ldr r2, _08096A9C @ =0x02000000 + ldr r1, _08096AA0 @ =0x000012bc + adds r0, r2, r1 + movs r1, 0xA + strh r1, [r0] + ldr r1, _08096AA4 @ =0x000012be + adds r2, r1 + ldr r1, _08096AA8 @ =0x0000dacb + strh r1, [r2] + bl sub_80F727C + bl sub_80F7404 + b _08096AD8 + .align 2, 0 +_08096A98: .4byte gPokemonStorage +_08096A9C: .4byte 0x02000000 +_08096AA0: .4byte 0x000012bc +_08096AA4: .4byte 0x000012be +_08096AA8: .4byte 0x0000dacb +_08096AAC: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _08096AC4 @ =sub_8096AFC + bl SetVBlankCallback + b _08096AD8 + .align 2, 0 +_08096AC4: .4byte sub_8096AFC +_08096AC8: + bl sub_8096874 + ldr r0, _08096AEC @ =sub_8096C68 + bl sub_8096BE0 + ldr r0, _08096AF0 @ =sub_8096B38 + bl SetMainCallback2 +_08096AD8: + ldr r1, _08096AF4 @ =gMain + ldr r0, _08096AF8 @ =0x0000043c + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08096AE4: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08096AEC: .4byte sub_8096C68 +_08096AF0: .4byte sub_8096B38 +_08096AF4: .4byte gMain +_08096AF8: .4byte 0x0000043c + thumb_func_end sub_80969A0 + + thumb_func_start sub_8096AFC +sub_8096AFC: @ 8096AFC + push {lr} + ldr r2, _08096B2C @ =REG_BG2HOFS + ldr r1, _08096B30 @ =0x02000000 + ldr r3, _08096B34 @ =0x000008b4 + adds r0, r1, r3 + ldrh r0, [r0] + strh r0, [r2] + adds r2, 0x4 + ldrh r0, [r1, 0xA] + strh r0, [r2] + adds r2, 0x2 + ldrh r0, [r1, 0x8] + strh r0, [r2] + bl LoadOam + bl ProcessSpriteCopyRequests + bl sub_809CFF0 + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 +_08096B2C: .4byte REG_BG2HOFS +_08096B30: .4byte 0x02000000 +_08096B34: .4byte 0x000008b4 + thumb_func_end sub_8096AFC + + thumb_func_start sub_8096B38 +sub_8096B38: @ 8096B38 + push {lr} + ldr r0, _08096B58 @ =0x02000000 + ldr r0, [r0] + bl _call_via_r0 + bl sub_8097E44 + bl sub_8098734 + bl AnimateSprites + bl BuildOamBuffer + pop {r0} + bx r0 + .align 2, 0 +_08096B58: .4byte 0x02000000 + thumb_func_end sub_8096B38 + + thumb_func_start sub_8096B5C +sub_8096B5C: @ 8096B5C + push {r4,r5,lr} + sub sp, 0x8 + ldr r4, _08096B70 @ =0x02000000 + ldrb r0, [r4, 0x6] + cmp r0, 0 + beq _08096B74 + cmp r0, 0x1 + beq _08096BAC + b _08096BCC + .align 2, 0 +_08096B70: .4byte 0x02000000 +_08096B74: + ldr r1, _08096B98 @ =0x00002690 + adds r0, r4, r1 + ldr r0, [r0] + ldr r2, _08096B9C @ =0x0000268d + adds r1, r4, r2 + ldrb r1, [r1] + ldr r3, _08096BA0 @ =0x0000268c + adds r2, r4, r3 + ldrb r2, [r2] + ldr r3, _08096BA4 @ =sub_80969A0 + ldr r5, _08096BA8 @ =0x0000268e + adds r4, r5 + ldrb r4, [r4] + str r4, [sp] + bl ShowPokemonSummaryScreen + b _08096BCC + .align 2, 0 +_08096B98: .4byte 0x00002690 +_08096B9C: .4byte 0x0000268d +_08096BA0: .4byte 0x0000268c +_08096BA4: .4byte sub_80969A0 +_08096BA8: .4byte 0x0000268e +_08096BAC: + ldr r0, _08096BD4 @ =gPokemonStorage + ldrb r2, [r0] + lsls r1, r2, 3 + adds r1, r2 + ldr r2, _08096BD8 @ =0x00008344 + adds r0, r2 + adds r1, r0 + movs r0, 0 + str r0, [sp] + ldr r0, _08096BDC @ =sub_80969A0 + str r0, [sp, 0x4] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl DoNamingScreen +_08096BCC: + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08096BD4: .4byte gPokemonStorage +_08096BD8: .4byte 0x00008344 +_08096BDC: .4byte sub_80969A0 + thumb_func_end sub_8096B5C + + thumb_func_start sub_8096BE0 +sub_8096BE0: @ 8096BE0 + ldr r1, _08096BEC @ =0x02000000 + str r0, [r1] + movs r0, 0 + strb r0, [r1, 0x4] + bx lr + .align 2, 0 +_08096BEC: .4byte 0x02000000 + thumb_func_end sub_8096BE0 + + thumb_func_start sub_8096BF0 +sub_8096BF0: @ 8096BF0 + push {r4,lr} + ldr r4, _08096C04 @ =0x02000000 + ldrb r0, [r4, 0x4] + cmp r0, 0x1 + beq _08096C16 + cmp r0, 0x1 + bgt _08096C08 + cmp r0, 0 + beq _08096C0E + b _08096C5C + .align 2, 0 +_08096C04: .4byte 0x02000000 +_08096C08: + cmp r0, 0x2 + beq _08096C4C + b _08096C5C +_08096C0E: + movs r0, 0x1 + negs r0, r0 + movs r1, 0x10 + b _08096C38 +_08096C16: + movs r0, 0x2 + bl PlaySE + movs r1, 0 + movs r0, 0xE + strh r0, [r4, 0xC] + ldr r0, _08096C48 @ =0x0000dad0 + strh r0, [r4, 0xE] + strh r1, [r4, 0x10] + strh r1, [r4, 0x12] + adds r0, r4, 0 + adds r0, 0xC + bl sub_80C5CD4 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 +_08096C38: + movs r2, 0 + bl BlendPalettes + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08096C5C + .align 2, 0 +_08096C48: .4byte 0x0000dad0 +_08096C4C: + bl sub_80C5DCC + lsls r0, 24 + cmp r0, 0 + beq _08096C5C + ldr r0, _08096C64 @ =sub_8096C84 + bl sub_8096BE0 +_08096C5C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08096C64: .4byte sub_8096C84 + thumb_func_end sub_8096BF0 + + thumb_func_start sub_8096C68 +sub_8096C68: @ 8096C68 + push {lr} + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _08096C7A + ldr r0, _08096C80 @ =sub_8096C84 + bl sub_8096BE0 +_08096C7A: + pop {r0} + bx r0 + .align 2, 0 +_08096C80: .4byte sub_8096C84 + thumb_func_end sub_8096C68 + + thumb_func_start sub_8096C84 +sub_8096C84: @ 8096C84 + push {r4,lr} + ldr r0, _08096C9C @ =0x02000000 + ldrb r0, [r0, 0x4] + cmp r0, 0x6 + bls _08096C90 + b _08096FBA +_08096C90: + lsls r0, 2 + ldr r1, _08096CA0 @ =_08096CA4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08096C9C: .4byte 0x02000000 +_08096CA0: .4byte _08096CA4 + .align 2, 0 +_08096CA4: + .4byte _08096CC0 + .4byte _08096EE0 + .4byte _08096F1C + .4byte _08096F60 + .4byte _08096F80 + .4byte _08096F8A + .4byte _08096FA4 +_08096CC0: + bl sub_809CA40 + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x1 + cmp r0, 0xF + bls _08096CD0 + b _08096FBA +_08096CD0: + lsls r0, 2 + ldr r1, _08096CDC @ =_08096CE0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08096CDC: .4byte _08096CE0 + .align 2, 0 +_08096CE0: + .4byte _08096D20 + .4byte _08096FBA + .4byte _08096FBA + .4byte _08096D94 + .4byte _08096D34 + .4byte _08096D5C + .4byte _08096DAC + .4byte _08096DC0 + .4byte _08096DD4 + .4byte _08096DFC + .4byte _08096E30 + .4byte _08096EB8 + .4byte _08096E70 + .4byte _08096E8C + .4byte _08096ECC + .4byte _08096DA0 +_08096D20: + movs r0, 0x5 + bl PlaySE + ldr r1, _08096D30 @ =0x02000000 + movs r0, 0x1 + strb r0, [r1, 0x4] + b _08096FBA + .align 2, 0 +_08096D30: .4byte 0x02000000 +_08096D34: + ldr r4, _08096D48 @ =0x02000000 + ldrb r0, [r4, 0x5] + cmp r0, 0x2 + beq _08096D4C + movs r0, 0x10 + bl sub_8098898 + movs r0, 0x3 + strb r0, [r4, 0x4] + b _08096FBA + .align 2, 0 +_08096D48: .4byte 0x02000000 +_08096D4C: + bl sub_809B0D4 + ldr r0, _08096D58 @ =sub_8096FC8 + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096D58: .4byte sub_8096FC8 +_08096D5C: + ldr r4, _08096D88 @ =0x02000000 + ldrb r0, [r4, 0x5] + cmp r0, 0x2 + beq _08096D66 + b _08096FBA +_08096D66: + bl sub_809BF20 + lsls r0, 24 + cmp r0, 0 + beq _08096D80 + ldr r1, _08096D8C @ =0x000011f2 + adds r0, r4, r1 + ldrh r0, [r0] + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + bne _08096E4C +_08096D80: + ldr r0, _08096D90 @ =sub_8097004 + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096D88: .4byte 0x02000000 +_08096D8C: .4byte 0x000011f2 +_08096D90: .4byte sub_8097004 +_08096D94: + ldr r0, _08096D9C @ =sub_8097BA0 + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096D9C: .4byte sub_8097BA0 +_08096DA0: + ldr r0, _08096DA8 @ =sub_8097CC0 + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096DA8: .4byte sub_8097CC0 +_08096DAC: + movs r0, 0x5 + bl PlaySE + ldr r0, _08096DBC @ =sub_809789C + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096DBC: .4byte sub_809789C +_08096DC0: + movs r0, 0x5 + bl PlaySE + ldr r0, _08096DD0 @ =sub_8097078 + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096DD0: .4byte sub_8097078 +_08096DD4: + movs r0, 0x5 + bl PlaySE + ldr r4, _08096DF0 @ =0x02000000 + ldr r0, _08096DF4 @ =gPokemonStorage + ldrb r0, [r0] + adds r0, 0x1 + ldr r2, _08096DF8 @ =0x000008b2 + adds r1, r4, r2 + strh r0, [r1] + cmp r0, 0xD + ble _08096E18 + movs r0, 0 + b _08096E16 + .align 2, 0 +_08096DF0: .4byte 0x02000000 +_08096DF4: .4byte gPokemonStorage +_08096DF8: .4byte 0x000008b2 +_08096DFC: + movs r0, 0x5 + bl PlaySE + ldr r4, _08096E24 @ =0x02000000 + ldr r0, _08096E28 @ =gPokemonStorage + ldrb r0, [r0] + subs r0, 0x1 + ldr r2, _08096E2C @ =0x000008b2 + adds r1, r4, r2 + strh r0, [r1] + cmp r0, 0 + bge _08096E18 + movs r0, 0xD +_08096E16: + strh r0, [r1] +_08096E18: + ldrb r0, [r1] + bl sub_8099C70 + movs r0, 0x2 + strb r0, [r4, 0x4] + b _08096FBA + .align 2, 0 +_08096E24: .4byte 0x02000000 +_08096E28: .4byte gPokemonStorage +_08096E2C: .4byte 0x000008b2 +_08096E30: + bl sub_809BE80 + lsls r0, 24 + cmp r0, 0 + bne _08096E96 + ldr r4, _08096E54 @ =0x02000000 + ldr r1, _08096E58 @ =0x000011f2 + adds r0, r4, r1 + ldrh r0, [r0] + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + beq _08096E5C +_08096E4C: + movs r0, 0x5 + strb r0, [r4, 0x4] + b _08096FBA + .align 2, 0 +_08096E54: .4byte 0x02000000 +_08096E58: .4byte 0x000011f2 +_08096E5C: + movs r0, 0x5 + bl PlaySE + ldr r0, _08096E6C @ =sub_809746C + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096E6C: .4byte sub_809746C +_08096E70: + bl sub_809BE80 + lsls r0, 24 + cmp r0, 0 + bne _08096E96 + movs r0, 0x5 + bl PlaySE + ldr r0, _08096E88 @ =sub_80972A8 + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096E88: .4byte sub_80972A8 +_08096E8C: + bl sub_809BEBC + lsls r0, 24 + cmp r0, 0 + bne _08096EA4 +_08096E96: + ldr r1, _08096EA0 @ =0x02000000 + movs r0, 0x4 + strb r0, [r1, 0x4] + b _08096FBA + .align 2, 0 +_08096EA0: .4byte 0x02000000 +_08096EA4: + movs r0, 0x5 + bl PlaySE + ldr r0, _08096EB4 @ =c3_0808DC50 + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096EB4: .4byte c3_0808DC50 +_08096EB8: + movs r0, 0x5 + bl PlaySE + ldr r0, _08096EC8 @ =sub_8097390 + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096EC8: .4byte sub_8097390 +_08096ECC: + movs r0, 0x5 + bl PlaySE + ldr r0, _08096EDC @ =sub_80972FC + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096EDC: .4byte sub_80972FC +_08096EE0: + bl sub_809AC00 + lsls r0, 24 + cmp r0, 0 + bne _08096FBA + bl sub_809BF48 + lsls r0, 24 + cmp r0, 0 + beq _08096EFA + bl sub_80986E8 + b _08096EFE +_08096EFA: + bl sub_8098710 +_08096EFE: + ldr r4, _08096F14 @ =0x02000000 + ldr r2, _08096F18 @ =0x000011f6 + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _08096F0E + bl BoxSetMosaic +_08096F0E: + movs r0, 0 + strb r0, [r4, 0x4] + b _08096FBA + .align 2, 0 +_08096F14: .4byte 0x02000000 +_08096F18: .4byte 0x000011f6 +_08096F1C: + bl sub_8099D34 + lsls r0, 24 + cmp r0, 0 + bne _08096FBA + ldr r1, _08096F50 @ =gPokemonStorage + ldr r0, _08096F54 @ =0x02000000 + ldr r2, _08096F58 @ =0x000008b2 + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1] + ldr r0, _08096F5C @ =gUnknown_0203847C + ldrb r0, [r0] + cmp r0, 0 + bne _08096F70 + bl sub_809BF20 + lsls r0, 24 + cmp r0, 0 + bne _08096F70 + bl sub_809B440 + bl BoxSetMosaic + b _08096F70 + .align 2, 0 +_08096F50: .4byte gPokemonStorage +_08096F54: .4byte 0x02000000 +_08096F58: .4byte 0x000008b2 +_08096F5C: .4byte gUnknown_0203847C +_08096F60: + ldr r0, _08096F78 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _08096FBA + bl sub_8098A5C +_08096F70: + ldr r1, _08096F7C @ =0x02000000 + movs r0, 0 + strb r0, [r1, 0x4] + b _08096FBA + .align 2, 0 +_08096F78: .4byte gMain +_08096F7C: .4byte 0x02000000 +_08096F80: + movs r0, 0x20 + bl PlaySE + movs r0, 0xD + b _08096F92 +_08096F8A: + movs r0, 0x20 + bl PlaySE + movs r0, 0x16 +_08096F92: + bl sub_8098898 + ldr r1, _08096FA0 @ =0x02000000 + movs r0, 0x6 + strb r0, [r1, 0x4] + b _08096FBA + .align 2, 0 +_08096FA0: .4byte 0x02000000 +_08096FA4: + ldr r0, _08096FC0 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _08096FBA + bl sub_8098A5C + ldr r0, _08096FC4 @ =sub_8096C84 + bl sub_8096BE0 +_08096FBA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08096FC0: .4byte gMain +_08096FC4: .4byte sub_8096C84 + thumb_func_end sub_8096C84 + + thumb_func_start sub_8096FC8 +sub_8096FC8: @ 8096FC8 + push {r4,lr} + ldr r4, _08096FD8 @ =0x02000000 + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _08096FDC + cmp r0, 0x1 + beq _08096FE8 + b _08096FF8 + .align 2, 0 +_08096FD8: .4byte 0x02000000 +_08096FDC: + bl sub_809880C + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08096FF8 +_08096FE8: + bl sub_8098830 + lsls r0, 24 + cmp r0, 0 + bne _08096FF8 + ldr r0, _08097000 @ =sub_8096C84 + bl sub_8096BE0 +_08096FF8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097000: .4byte sub_8096C84 + thumb_func_end sub_8096FC8 + + thumb_func_start sub_8097004 +sub_8097004: @ 8097004 + push {r4,lr} + ldr r4, _08097018 @ =0x02000000 + ldrb r0, [r4, 0x4] + cmp r0, 0x1 + beq _0809702E + cmp r0, 0x1 + bgt _0809701C + cmp r0, 0 + beq _08097022 + b _0809706A + .align 2, 0 +_08097018: .4byte 0x02000000 +_0809701C: + cmp r0, 0x2 + beq _0809704C + b _0809706A +_08097022: + movs r0, 0x5 + bl PlaySE + bl add_to_c3_somehow + b _08097044 +_0809702E: + bl sub_80985CC + lsls r0, 24 + cmp r0, 0 + bne _0809706A + bl sub_809B0F4 + lsls r0, 24 + lsrs r0, 24 + bl sub_809B0C0 +_08097044: + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _0809706A +_0809704C: + bl sub_809AC00 + lsls r0, 24 + cmp r0, 0 + bne _0809706A + ldr r1, _08097070 @ =0x000011f6 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08097064 + bl BoxSetMosaic +_08097064: + ldr r0, _08097074 @ =sub_8096C84 + bl sub_8096BE0 +_0809706A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097070: .4byte 0x000011f6 +_08097074: .4byte sub_8096C84 + thumb_func_end sub_8097004 + + thumb_func_start sub_8097078 +sub_8097078: @ 8097078 + push {r4,lr} + ldr r0, _08097090 @ =0x02000000 + ldrb r0, [r0, 0x4] + cmp r0, 0x5 + bls _08097084 + b _0809729A +_08097084: + lsls r0, 2 + ldr r1, _08097094 @ =_08097098 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08097090: .4byte 0x02000000 +_08097094: .4byte _08097098 + .align 2, 0 +_08097098: + .4byte _080970B0 + .4byte _080970C8 + .4byte _08097258 + .4byte _0809726C + .4byte _08097262 + .4byte _08097284 +_080970B0: + movs r0, 0x4 + bl sub_8098898 + bl sub_809CE84 + ldr r1, _080970C4 @ =0x02000000 + movs r0, 0x1 + strb r0, [r1, 0x4] + b _0809729A + .align 2, 0 +_080970C4: .4byte 0x02000000 +_080970C8: + bl sub_809CF30 + adds r0, 0x1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x9 + bls _080970D8 + b _0809729A +_080970D8: + lsls r0, 2 + ldr r1, _080970E4 @ =_080970E8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080970E4: .4byte _080970E8 + .align 2, 0 +_080970E8: + .4byte _08097110 + .4byte _08097110 + .4byte _08097190 + .4byte _08097178 + .4byte _08097120 + .4byte _08097158 + .4byte _08097140 + .4byte _08097230 + .4byte _080971CC + .4byte _08097244 +_08097110: + bl sub_8098A5C + ldr r0, _0809711C @ =sub_8096C84 + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_0809711C: .4byte sub_8096C84 +_08097120: + bl sub_809BE80 + lsls r0, 24 + cmp r0, 0 + bne _080971D6 + movs r0, 0x5 + bl PlaySE + bl sub_8098A5C + ldr r0, _0809713C @ =sub_80972A8 + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_0809713C: .4byte sub_80972A8 +_08097140: + movs r0, 0x5 + bl PlaySE + bl sub_8098A5C + ldr r0, _08097154 @ =sub_80972FC + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_08097154: .4byte sub_80972FC +_08097158: + bl sub_809BEBC + lsls r0, 24 + cmp r0, 0 + beq _080971D6 + movs r0, 0x5 + bl PlaySE + bl sub_8098A5C + ldr r0, _08097174 @ =c3_0808DC50 + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_08097174: .4byte c3_0808DC50 +_08097178: + movs r0, 0x5 + bl PlaySE + bl sub_8098A5C + ldr r0, _0809718C @ =sub_8097390 + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_0809718C: .4byte sub_8097390 +_08097190: + bl sub_809BE80 + lsls r0, 24 + cmp r0, 0 + bne _080971D6 + ldr r4, _080971C0 @ =0x02000000 + ldr r1, _080971C4 @ =0x000011f2 + adds r0, r4, r1 + ldrh r0, [r0] + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + bne _08097210 + movs r0, 0x5 + bl PlaySE + bl sub_8098A5C + ldr r0, _080971C8 @ =sub_809746C + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_080971C0: .4byte 0x02000000 +_080971C4: .4byte 0x000011f2 +_080971C8: .4byte sub_809746C +_080971CC: + bl sub_809BE80 + lsls r0, 24 + cmp r0, 0 + beq _080971E4 +_080971D6: + ldr r1, _080971E0 @ =0x02000000 + movs r0, 0x2 + strb r0, [r1, 0x4] + b _0809729A + .align 2, 0 +_080971E0: .4byte 0x02000000 +_080971E4: + ldr r4, _080971F8 @ =0x02000000 + ldr r1, _080971FC @ =0x000011f9 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08097200 + movs r0, 0x4 + strb r0, [r4, 0x4] + b _0809729A + .align 2, 0 +_080971F8: .4byte 0x02000000 +_080971FC: .4byte 0x000011f9 +_08097200: + ldr r1, _08097218 @ =0x000011f2 + adds r0, r4, r1 + ldrh r0, [r0] + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + beq _0809721C +_08097210: + movs r0, 0x3 + strb r0, [r4, 0x4] + b _0809729A + .align 2, 0 +_08097218: .4byte 0x000011f2 +_0809721C: + movs r0, 0x5 + bl PlaySE + ldr r0, _0809722C @ =sub_8097594 + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_0809722C: .4byte sub_8097594 +_08097230: + movs r0, 0x5 + bl PlaySE + ldr r0, _08097240 @ =sub_8097788 + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_08097240: .4byte sub_8097788 +_08097244: + movs r0, 0x5 + bl PlaySE + ldr r0, _08097254 @ =sub_80977E4 + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_08097254: .4byte sub_80977E4 +_08097258: + movs r0, 0x20 + bl PlaySE + movs r0, 0xD + b _08097274 +_08097262: + movs r0, 0x20 + bl PlaySE + movs r0, 0x11 + b _08097274 +_0809726C: + movs r0, 0x20 + bl PlaySE + movs r0, 0x16 +_08097274: + bl sub_8098898 + ldr r1, _08097280 @ =0x02000000 + movs r0, 0x5 + strb r0, [r1, 0x4] + b _0809729A + .align 2, 0 +_08097280: .4byte 0x02000000 +_08097284: + ldr r0, _080972A0 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _0809729A + bl sub_8098A5C + ldr r0, _080972A4 @ =sub_8096C84 + bl sub_8096BE0 +_0809729A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080972A0: .4byte gMain +_080972A4: .4byte sub_8096C84 + thumb_func_end sub_8097078 + + thumb_func_start sub_80972A8 +sub_80972A8: @ 80972A8 + push {r4,lr} + ldr r4, _080972B8 @ =0x02000000 + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _080972BC + cmp r0, 0x1 + beq _080972CA + b _080972F2 + .align 2, 0 +_080972B8: .4byte 0x02000000 +_080972BC: + movs r0, 0 + bl sub_809B100 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _080972F2 +_080972CA: + bl sub_809B130 + lsls r0, 24 + cmp r0, 0 + bne _080972F2 + ldr r0, _080972E4 @ =gUnknown_0203847C + ldrb r0, [r0] + cmp r0, 0 + beq _080972EC + ldr r0, _080972E8 @ =sub_8097858 + bl sub_8096BE0 + b _080972F2 + .align 2, 0 +_080972E4: .4byte gUnknown_0203847C +_080972E8: .4byte sub_8097858 +_080972EC: + ldr r0, _080972F8 @ =sub_8096C84 + bl sub_8096BE0 +_080972F2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080972F8: .4byte sub_8096C84 + thumb_func_end sub_80972A8 + + thumb_func_start sub_80972FC +sub_80972FC: @ 80972FC + push {r4,lr} + ldr r4, _0809730C @ =0x02000000 + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _08097310 + cmp r0, 0x1 + beq _0809731E + b _08097346 + .align 2, 0 +_0809730C: .4byte 0x02000000 +_08097310: + movs r0, 0x1 + bl sub_809B100 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08097346 +_0809731E: + bl sub_809B130 + lsls r0, 24 + cmp r0, 0 + bne _08097346 + ldr r0, _08097338 @ =gUnknown_0203847C + ldrb r0, [r0] + cmp r0, 0 + beq _08097340 + ldr r0, _0809733C @ =sub_8097858 + bl sub_8096BE0 + b _08097346 + .align 2, 0 +_08097338: .4byte gUnknown_0203847C +_0809733C: .4byte sub_8097858 +_08097340: + ldr r0, _0809734C @ =sub_8096C84 + bl sub_8096BE0 +_08097346: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809734C: .4byte sub_8096C84 + thumb_func_end sub_80972FC + + thumb_func_start c3_0808DC50 +c3_0808DC50: @ 8097350 + push {r4,lr} + ldr r4, _08097360 @ =0x02000000 + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _08097364 + cmp r0, 0x1 + beq _08097372 + b _08097386 + .align 2, 0 +_08097360: .4byte 0x02000000 +_08097364: + movs r0, 0x2 + bl sub_809B100 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08097386 +_08097372: + bl sub_809B130 + lsls r0, 24 + cmp r0, 0 + bne _08097386 + bl BoxSetMosaic + ldr r0, _0809738C @ =sub_8096C84 + bl sub_8096BE0 +_08097386: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809738C: .4byte sub_8096C84 + thumb_func_end c3_0808DC50 + + thumb_func_start sub_8097390 +sub_8097390: @ 8097390 + push {lr} + ldr r0, _080973A4 @ =0x02000000 + ldrb r0, [r0, 0x4] + cmp r0, 0x5 + bhi _08097462 + lsls r0, 2 + ldr r1, _080973A8 @ =_080973AC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080973A4: .4byte 0x02000000 +_080973A8: .4byte _080973AC + .align 2, 0 +_080973AC: + .4byte _080973C4 + .4byte _080973FC + .4byte _0809741C + .4byte _0809742C + .4byte _0809743E + .4byte _0809745C +_080973C4: + bl CalculatePlayerPartyCount + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + bne _080973E4 + movs r0, 0xE + bl sub_8098898 + ldr r1, _080973E0 @ =0x02000000 + movs r0, 0x1 + strb r0, [r1, 0x4] + b _08097462 + .align 2, 0 +_080973E0: .4byte 0x02000000 +_080973E4: + bl sub_809B0E0 + movs r0, 0 + bl sub_809B100 + ldr r1, _080973F8 @ =0x02000000 + movs r0, 0x2 + strb r0, [r1, 0x4] + b _08097462 + .align 2, 0 +_080973F8: .4byte 0x02000000 +_080973FC: + ldr r0, _08097414 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _08097462 + bl sub_8098A5C + ldr r0, _08097418 @ =sub_8096C84 + bl sub_8096BE0 + b _08097462 + .align 2, 0 +_08097414: .4byte gMain +_08097418: .4byte sub_8096C84 +_0809741C: + bl sub_809B130 + lsls r0, 24 + cmp r0, 0 + bne _08097462 + bl sub_809880C + b _0809744C +_0809742C: + bl sub_8098830 + lsls r0, 24 + cmp r0, 0 + bne _08097462 + movs r0, 0x1 + bl sub_809B100 + b _0809744C +_0809743E: + bl sub_809B130 + lsls r0, 24 + cmp r0, 0 + bne _08097462 + bl sub_80987DC +_0809744C: + ldr r1, _08097458 @ =0x02000000 + ldrb r0, [r1, 0x4] + adds r0, 0x1 + strb r0, [r1, 0x4] + b _08097462 + .align 2, 0 +_08097458: .4byte 0x02000000 +_0809745C: + ldr r0, _08097468 @ =sub_8097004 + bl sub_8096BE0 +_08097462: + pop {r0} + bx r0 + .align 2, 0 +_08097468: .4byte sub_8097004 + thumb_func_end sub_8097390 + + thumb_func_start sub_809746C +sub_809746C: @ 809746C + push {r4,lr} + ldr r0, _08097484 @ =0x02000000 + ldrb r0, [r0, 0x4] + cmp r0, 0x4 + bls _08097478 + b _08097584 +_08097478: + lsls r0, 2 + ldr r1, _08097488 @ =_0809748C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08097484: .4byte 0x02000000 +_08097488: .4byte _0809748C + .align 2, 0 +_0809748C: + .4byte _080974A0 + .4byte _080974D8 + .4byte _08097534 + .4byte _08097548 + .4byte _0809756C +_080974A0: + movs r0, 0x6 + bl sub_8098898 + ldr r4, _080974C8 @ =0x02002370 + ldr r2, _080974CC @ =0x0000daca + adds r0, r4, 0 + movs r1, 0x7 + movs r3, 0x3 + bl sub_8096264 + ldr r0, _080974D0 @ =gUnknown_0203847E + ldrb r0, [r0] + bl sub_809634C + ldr r0, _080974D4 @ =0xffffdc90 + adds r4, r0 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08097584 + .align 2, 0 +_080974C8: .4byte 0x02002370 +_080974CC: .4byte 0x0000daca +_080974D0: .4byte gUnknown_0203847E +_080974D4: .4byte 0xffffdc90 +_080974D8: + bl sub_8096368 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xC8 + beq _08097584 + cmp r4, 0xC9 + bne _080974F6 + bl sub_8098A5C + bl sub_809635C + bl sub_8096310 + b _0809755E +_080974F6: + adds r0, r4, 0 + bl sub_809B62C + lsls r0, 24 + cmp r0, 0 + beq _08097518 + bl sub_8098A5C + bl sub_809635C + bl sub_8096310 + ldr r1, _08097514 @ =0x02000000 + movs r0, 0x2 + b _08097522 + .align 2, 0 +_08097514: .4byte 0x02000000 +_08097518: + movs r0, 0x8 + bl sub_8098898 + ldr r1, _0809752C @ =0x02000000 + movs r0, 0x4 +_08097522: + strb r0, [r1, 0x4] + ldr r0, _08097530 @ =gUnknown_0203847E + strb r4, [r0] + b _08097584 + .align 2, 0 +_0809752C: .4byte 0x02000000 +_08097530: .4byte gUnknown_0203847E +_08097534: + bl party_compaction + bl sub_8099310 + ldr r1, _08097544 @ =0x02000000 + ldrb r0, [r1, 0x4] + adds r0, 0x1 + b _08097582 + .align 2, 0 +_08097544: .4byte 0x02000000 +_08097548: + bl sub_8099374 + lsls r0, 24 + cmp r0, 0 + bne _08097584 + bl sub_809B6BC + bl BoxSetMosaic + bl sub_80987DC +_0809755E: + ldr r0, _08097568 @ =sub_8096C84 + bl sub_8096BE0 + b _08097584 + .align 2, 0 +_08097568: .4byte sub_8096C84 +_0809756C: + ldr r0, _0809758C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _08097584 + movs r0, 0x6 + bl sub_8098898 + ldr r1, _08097590 @ =0x02000000 + movs r0, 0x1 +_08097582: + strb r0, [r1, 0x4] +_08097584: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809758C: .4byte gMain +_08097590: .4byte 0x02000000 + thumb_func_end sub_809746C + + thumb_func_start sub_8097594 +sub_8097594: @ 8097594 + push {r4,lr} + ldr r0, _080975AC @ =0x02000000 + ldrb r0, [r0, 0x4] + cmp r0, 0xD + bls _080975A0 + b _0809777A +_080975A0: + lsls r0, 2 + ldr r1, _080975B0 @ =_080975B4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080975AC: .4byte 0x02000000 +_080975B0: .4byte _080975B4 + .align 2, 0 +_080975B4: + .4byte _080975EC + .4byte _08097600 + .4byte _0809763A + .4byte _0809766E + .4byte _0809767A + .4byte _08097690 + .4byte _080976C8 + .4byte _080976E0 + .4byte _080976EC + .4byte _080976F0 + .4byte _08097704 + .4byte _08097720 + .4byte _08097732 + .4byte _08097764 +_080975EC: + movs r0, 0x9 + bl sub_8098898 + movs r0, 0x1 + bl sub_8098A38 + ldr r1, _0809761C @ =0x02000000 + ldrb r0, [r1, 0x4] + adds r0, 0x1 + strb r0, [r1, 0x4] +_08097600: + bl ProcessMenuInputNoWrap + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _0809762C + cmp r1, 0 + bgt _08097620 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08097626 + b _0809777A + .align 2, 0 +_0809761C: .4byte 0x02000000 +_08097620: + cmp r1, 0x1 + beq _08097626 + b _0809777A +_08097626: + bl sub_8098A5C + b _080976E0 +_0809762C: + bl sub_8098A5C + bl sub_809B7D4 + bl sub_809B6DC + b _08097744 +_0809763A: + bl sub_809B960 + bl sub_809B734 + lsls r0, 24 + cmp r0, 0 + beq _0809764A + b _0809777A +_0809764A: + ldr r4, _08097650 @ =0x02000000 + b _0809765A + .align 2, 0 +_08097650: .4byte 0x02000000 +_08097654: + cmp r0, 0 + bne _0809765A + b _08097758 +_0809765A: + bl sub_809B960 + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _08097654 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _0809777A +_0809766E: + bl sub_809B760 + bl sub_809801C + movs r0, 0xA + b _08097740 +_0809767A: + ldr r0, _0809768C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08097688 + b _0809777A +_08097688: + movs r0, 0xB + b _08097740 + .align 2, 0 +_0809768C: .4byte gMain +_08097690: + ldr r0, _080976B4 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _0809777A + bl sub_8098A5C + ldr r0, _080976B8 @ =gUnknown_0203847C + ldrb r0, [r0] + cmp r0, 0 + beq _080976BC + bl party_compaction + bl sub_8099310 + b _08097744 + .align 2, 0 +_080976B4: .4byte gMain +_080976B8: .4byte gUnknown_0203847C +_080976BC: + ldr r1, _080976C4 @ =0x02000000 + movs r0, 0x7 + strb r0, [r1, 0x4] + b _0809777A + .align 2, 0 +_080976C4: .4byte 0x02000000 +_080976C8: + bl sub_8099374 + lsls r0, 24 + cmp r0, 0 + bne _0809777A + bl sub_809B440 + bl BoxSetMosaic + bl sub_80987DC + b _08097744 +_080976E0: + ldr r0, _080976E8 @ =sub_8096C84 + bl sub_8096BE0 + b _0809777A + .align 2, 0 +_080976E8: .4byte sub_8096C84 +_080976EC: + movs r0, 0xA + b _08097740 +_080976F0: + ldr r0, _08097700 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _0809777A + movs r0, 0x15 + b _08097740 + .align 2, 0 +_08097700: .4byte gMain +_08097704: + ldr r0, _0809771C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _0809777A + bl sub_8098A5C + bl sub_8099958 + b _08097744 + .align 2, 0 +_0809771C: .4byte gMain +_08097720: + bl sub_8099990 + lsls r0, 24 + cmp r0, 0 + bne _0809777A + bl sub_809B7AC + movs r0, 0x13 + b _08097740 +_08097732: + ldr r0, _08097750 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _0809777A + movs r0, 0x14 +_08097740: + bl sub_8098898 +_08097744: + ldr r1, _08097754 @ =0x02000000 + ldrb r0, [r1, 0x4] + adds r0, 0x1 + strb r0, [r1, 0x4] + b _0809777A + .align 2, 0 +_08097750: .4byte gMain +_08097754: .4byte 0x02000000 +_08097758: + ldr r1, _08097760 @ =0x02000000 + movs r0, 0x8 + strb r0, [r1, 0x4] + b _0809777A + .align 2, 0 +_08097760: .4byte 0x02000000 +_08097764: + ldr r0, _08097780 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _0809777A + bl sub_8098A5C + ldr r0, _08097784 @ =sub_8096C84 + bl sub_8096BE0 +_0809777A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097780: .4byte gMain +_08097784: .4byte sub_8096C84 + thumb_func_end sub_8097594 + + thumb_func_start sub_8097788 +sub_8097788: @ 8097788 + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, _0809779C @ =0x02000000 + ldrb r4, [r5, 0x4] + cmp r4, 0 + beq _080977A0 + cmp r4, 0x1 + beq _080977BC + b _080977D4 + .align 2, 0 +_0809779C: .4byte 0x02000000 +_080977A0: + bl sub_809BC18 + movs r0, 0x1 + negs r0, r0 + str r4, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrb r0, [r5, 0x4] + adds r0, 0x1 + strb r0, [r5, 0x4] + b _080977D4 +_080977BC: + bl UpdatePaletteFade + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _080977D4 + ldr r0, _080977DC @ =gUnknown_0203847F + strb r1, [r0] + strb r1, [r5, 0x6] + ldr r0, _080977E0 @ =sub_8096B5C + bl SetMainCallback2 +_080977D4: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080977DC: .4byte gUnknown_0203847F +_080977E0: .4byte sub_8096B5C + thumb_func_end sub_8097788 + + thumb_func_start sub_80977E4 +sub_80977E4: @ 80977E4 + push {r4,lr} + ldr r4, _080977F4 @ =0x02000000 + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _080977F8 + cmp r0, 0x1 + beq _08097824 + b _0809784C + .align 2, 0 +_080977F4: .4byte 0x02000000 +_080977F8: + movs r0, 0xC + bl sub_8098898 + ldr r0, _08097820 @ =0x000011f7 + adds r2, r4, r0 + ldrb r1, [r2] + movs r3, 0x96 + lsls r3, 5 + adds r0, r4, r3 + strb r1, [r0] + ldrb r0, [r2] + movs r1, 0xB0 + movs r2, 0x10 + bl sub_80F7418 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _0809784C + .align 2, 0 +_08097820: .4byte 0x000011f7 +_08097824: + bl sub_80F7500 + lsls r0, 24 + cmp r0, 0 + bne _0809784C + bl sub_80F7470 + bl sub_8098A5C + movs r1, 0x96 + lsls r1, 5 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_809BDD8 + bl sub_809801C + ldr r0, _08097854 @ =sub_8096C84 + bl sub_8096BE0 +_0809784C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097854: .4byte sub_8096C84 + thumb_func_end sub_80977E4 + + thumb_func_start sub_8097858 +sub_8097858: @ 8097858 + push {r4,lr} + ldr r4, _08097868 @ =0x02000000 + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _0809786C + cmp r0, 0x1 + beq _0809787C + b _08097890 + .align 2, 0 +_08097868: .4byte 0x02000000 +_0809786C: + bl party_compaction + bl sub_8099310 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08097890 +_0809787C: + bl sub_8099374 + lsls r0, 24 + cmp r0, 0 + bne _08097890 + bl sub_80987DC + ldr r0, _08097898 @ =sub_8096C84 + bl sub_8096BE0 +_08097890: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097898: .4byte sub_8096C84 + thumb_func_end sub_8097858 + + thumb_func_start sub_809789C +sub_809789C: @ 809789C + push {r4,lr} + ldr r4, _080978AC @ =0x02000000 + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _080978B0 + cmp r0, 0x1 + beq _080978C2 + b _08097968 + .align 2, 0 +_080978AC: .4byte 0x02000000 +_080978B0: + movs r0, 0x1 + bl sub_8098898 + bl sub_809CE84 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08097968 +_080978C2: + bl sub_809CF30 + adds r0, 0x1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + bhi _08097968 + lsls r0, 2 + ldr r1, _080978DC @ =_080978E0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080978DC: .4byte _080978E0 + .align 2, 0 +_080978E0: + .4byte _08097914 + .4byte _08097914 + .4byte _08097968 + .4byte _08097968 + .4byte _08097968 + .4byte _08097968 + .4byte _08097968 + .4byte _08097968 + .4byte _08097968 + .4byte _08097968 + .4byte _08097958 + .4byte _08097940 + .4byte _0809792C +_08097914: + movs r0, 0x1 + bl sub_809A860 + bl sub_8098A5C + ldr r0, _08097928 @ =sub_8096C84 + bl sub_8096BE0 + b _08097968 + .align 2, 0 +_08097928: .4byte sub_8096C84 +_0809792C: + movs r0, 0x5 + bl PlaySE + ldr r0, _0809793C @ =sub_8097B44 + bl sub_8096BE0 + b _08097968 + .align 2, 0 +_0809793C: .4byte sub_8097B44 +_08097940: + movs r0, 0x5 + bl PlaySE + bl sub_8098A5C + ldr r0, _08097954 @ =sub_8097974 + bl sub_8096BE0 + b _08097968 + .align 2, 0 +_08097954: .4byte sub_8097974 +_08097958: + movs r0, 0x5 + bl PlaySE + bl sub_8098A5C + ldr r0, _08097970 @ =sub_8097A64 + bl sub_8096BE0 +_08097968: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097970: .4byte sub_8097A64 + thumb_func_end sub_809789C + + thumb_func_start sub_8097974 +sub_8097974: @ 8097974 + push {r4,r5,lr} + ldr r5, _08097988 @ =0x02000000 + ldrb r0, [r5, 0x4] + cmp r0, 0x1 + beq _080979A2 + cmp r0, 0x1 + bgt _0809798C + cmp r0, 0 + beq _08097996 + b _08097A5A + .align 2, 0 +_08097988: .4byte 0x02000000 +_0809798C: + cmp r0, 0x2 + beq _080979FC + cmp r0, 0x3 + beq _08097A44 + b _08097A5A +_08097996: + bl sub_8098A80 + movs r0, 0x2 + bl sub_8098898 + b _08097A3C +_080979A2: + bl sub_809CF30 + ldr r1, _080979CC @ =0x00000d5e + adds r4, r5, r1 + strh r0, [r4] + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080979D4 + movs r0, 0x1 + bl sub_809A860 + bl sub_8098A5C + ldr r0, _080979D0 @ =sub_8096C84 + bl sub_8096BE0 + b _08097A5A + .align 2, 0 +_080979CC: .4byte 0x00000d5e +_080979D0: .4byte sub_8096C84 +_080979D4: + cmp r0, r1 + blt _08097A5A + cmp r0, 0xF + bgt _08097A5A + cmp r0, 0xC + blt _08097A5A + movs r0, 0x5 + bl PlaySE + ldrh r0, [r4] + subs r0, 0xC + strh r0, [r4] + lsls r0, 24 + lsrs r0, 24 + bl sub_8098AA8 + movs r0, 0x3 + bl sub_8098898 + b _08097A3C +_080979FC: + bl sub_809CF30 + movs r1, 0xD6 + lsls r1, 4 + adds r4, r5, r1 + strh r0, [r4] + movs r0, 0 + ldrsh r1, [r4, r0] + movs r0, 0x2 + negs r0, r0 + cmp r1, r0 + beq _08097A5A + adds r0, 0x1 + cmp r1, r0 + bne _08097A24 + bl sub_8098A5C + movs r0, 0 + strb r0, [r5, 0x4] + b _08097A5A +_08097A24: + movs r0, 0x5 + bl PlaySE + bl sub_8098A5C + ldrh r0, [r4] + subs r0, 0x10 + strh r0, [r4] + lsls r0, 24 + lsrs r0, 24 + bl sub_8099DCC +_08097A3C: + ldrb r0, [r5, 0x4] + adds r0, 0x1 + strb r0, [r5, 0x4] + b _08097A5A +_08097A44: + bl sub_8099E08 + lsls r0, 24 + cmp r0, 0 + bne _08097A5A + movs r0, 0x1 + bl sub_809A860 + ldr r0, _08097A60 @ =sub_8096C84 + bl sub_8096BE0 +_08097A5A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08097A60: .4byte sub_8096C84 + thumb_func_end sub_8097974 + + thumb_func_start sub_8097A64 +sub_8097A64: @ 8097A64 + push {r4,r5,lr} + ldr r5, _08097A78 @ =0x02000000 + ldrb r0, [r5, 0x4] + cmp r0, 0x1 + beq _08097AB0 + cmp r0, 0x1 + bgt _08097A7C + cmp r0, 0 + beq _08097A86 + b _08097B32 + .align 2, 0 +_08097A78: .4byte 0x02000000 +_08097A7C: + cmp r0, 0x2 + beq _08097B00 + cmp r0, 0x3 + beq _08097B18 + b _08097B32 +_08097A86: + movs r0, 0x5 + bl sub_8098898 + ldr r1, _08097AA4 @ =0x00002370 + adds r0, r5, r1 + ldr r2, _08097AA8 @ =0x0000daca + movs r1, 0x7 + movs r3, 0x3 + bl sub_8096264 + ldr r0, _08097AAC @ =gPokemonStorage + ldrb r0, [r0] + bl sub_809634C + b _08097B0A + .align 2, 0 +_08097AA4: .4byte 0x00002370 +_08097AA8: .4byte 0x0000daca +_08097AAC: .4byte gPokemonStorage +_08097AB0: + bl sub_8096368 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08097AF4 @ =0x000008b2 + adds r4, r5, r2 + strh r0, [r4] + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0xC8 + beq _08097B32 + bl sub_8098A5C + bl sub_809635C + bl sub_8096310 + movs r2, 0 + ldrsh r0, [r4, r2] + cmp r0, 0xC9 + beq _08097AE4 + adds r1, r0, 0 + ldr r0, _08097AF8 @ =gPokemonStorage + ldrb r0, [r0] + cmp r1, r0 + bne _08097B0A +_08097AE4: + movs r0, 0x1 + bl sub_809A860 + ldr r0, _08097AFC @ =sub_8096C84 + bl sub_8096BE0 + b _08097B32 + .align 2, 0 +_08097AF4: .4byte 0x000008b2 +_08097AF8: .4byte gPokemonStorage +_08097AFC: .4byte sub_8096C84 +_08097B00: + ldr r1, _08097B14 @ =0x000008b2 + adds r0, r5, r1 + ldrb r0, [r0] + bl sub_8099C70 +_08097B0A: + ldrb r0, [r5, 0x4] + adds r0, 0x1 + strb r0, [r5, 0x4] + b _08097B32 + .align 2, 0 +_08097B14: .4byte 0x000008b2 +_08097B18: + bl sub_8099D34 + lsls r0, 24 + cmp r0, 0 + bne _08097B32 + ldr r1, _08097B38 @ =gPokemonStorage + ldr r2, _08097B3C @ =0x000008b2 + adds r0, r5, r2 + ldrh r0, [r0] + strb r0, [r1] + ldr r0, _08097B40 @ =sub_8096C84 + bl sub_8096BE0 +_08097B32: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08097B38: .4byte gPokemonStorage +_08097B3C: .4byte 0x000008b2 +_08097B40: .4byte sub_8096C84 + thumb_func_end sub_8097A64 + + thumb_func_start sub_8097B44 +sub_8097B44: @ 8097B44 + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, _08097B58 @ =0x02000000 + ldrb r4, [r5, 0x4] + cmp r4, 0 + beq _08097B5C + cmp r4, 0x1 + beq _08097B78 + b _08097B8E + .align 2, 0 +_08097B58: .4byte 0x02000000 +_08097B5C: + bl sub_809BB90 + movs r0, 0x1 + negs r0, r0 + str r4, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrb r0, [r5, 0x4] + adds r0, 0x1 + strb r0, [r5, 0x4] + b _08097B8E +_08097B78: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _08097B8E + ldr r0, _08097B98 @ =gUnknown_0203847F + strb r4, [r0] + strb r4, [r5, 0x6] + ldr r0, _08097B9C @ =sub_8096B5C + bl SetMainCallback2 +_08097B8E: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08097B98: .4byte gUnknown_0203847F +_08097B9C: .4byte sub_8096B5C + thumb_func_end sub_8097B44 + + thumb_func_start sub_8097BA0 +sub_8097BA0: @ 8097BA0 + push {r4,lr} + ldr r0, _08097BB8 @ =0x02000000 + ldrb r1, [r0, 0x4] + adds r4, r0, 0 + cmp r1, 0x4 + bls _08097BAE + b _08097CB0 +_08097BAE: + lsls r0, r1, 2 + ldr r1, _08097BBC @ =_08097BC0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08097BB8: .4byte 0x02000000 +_08097BBC: .4byte _08097BC0 + .align 2, 0 +_08097BC0: + .4byte _08097BD4 + .4byte _08097C18 + .4byte _08097C2C + .4byte _08097C74 + .4byte _08097C98 +_08097BD4: + bl sub_809BF20 + lsls r0, 24 + cmp r0, 0 + beq _08097BF8 + movs r0, 0x20 + bl PlaySE + movs r0, 0xF + bl sub_8098898 + ldr r1, _08097BF4 @ =0x02000000 + movs r0, 0x1 + strb r0, [r1, 0x4] + b _08097CB0 + .align 2, 0 +_08097BF4: .4byte 0x02000000 +_08097BF8: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_8098898 + movs r0, 0 + bl sub_8098A38 + ldr r1, _08097C14 @ =0x02000000 + movs r0, 0x2 + strb r0, [r1, 0x4] + b _08097CB0 + .align 2, 0 +_08097C14: .4byte 0x02000000 +_08097C18: + ldr r0, _08097C28 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _08097CB0 + b _08097C4A + .align 2, 0 +_08097C28: .4byte gMain +_08097C2C: + bl ProcessMenuInputNoWrap + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _08097C5C + cmp r1, 0 + bgt _08097C46 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08097C4A + b _08097CB0 +_08097C46: + cmp r1, 0x1 + bne _08097CB0 +_08097C4A: + bl sub_8098A5C + ldr r0, _08097C58 @ =sub_8096C84 + bl sub_8096BE0 + b _08097CB0 + .align 2, 0 +_08097C58: .4byte sub_8096C84 +_08097C5C: + movs r0, 0x3 + bl PlaySE + bl sub_8098A5C + ldr r1, _08097C70 @ =0x02000000 + ldrb r0, [r1, 0x4] + adds r0, 0x1 + strb r0, [r1, 0x4] + b _08097CB0 + .align 2, 0 +_08097C70: .4byte 0x02000000 +_08097C74: + movs r1, 0 + movs r0, 0xE + strh r0, [r4, 0xC] + ldr r0, _08097C94 @ =0x0000dad0 + strh r0, [r4, 0xE] + movs r0, 0x14 + strh r0, [r4, 0x10] + strh r1, [r4, 0x12] + adds r0, r4, 0 + adds r0, 0xC + bl sub_80C5E38 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08097CB0 + .align 2, 0 +_08097C94: .4byte 0x0000dad0 +_08097C98: + bl sub_80C5F98 + lsls r0, 24 + cmp r0, 0 + beq _08097CB0 + bl CalculatePlayerPartyCount + ldr r1, _08097CB8 @ =gPlayerPartyCount + strb r0, [r1] + ldr r0, _08097CBC @ =sub_80961A8 + bl SetMainCallback2 +_08097CB0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097CB8: .4byte gPlayerPartyCount +_08097CBC: .4byte sub_80961A8 + thumb_func_end sub_8097BA0 + + thumb_func_start sub_8097CC0 +sub_8097CC0: @ 8097CC0 + push {r4,lr} + ldr r0, _08097CD8 @ =0x02000000 + ldrb r1, [r0, 0x4] + adds r4, r0, 0 + cmp r1, 0x4 + bls _08097CCE + b _08097DD0 +_08097CCE: + lsls r0, r1, 2 + ldr r1, _08097CDC @ =_08097CE0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08097CD8: .4byte 0x02000000 +_08097CDC: .4byte _08097CE0 + .align 2, 0 +_08097CE0: + .4byte _08097CF4 + .4byte _08097D38 + .4byte _08097D4C + .4byte _08097D94 + .4byte _08097DB8 +_08097CF4: + bl sub_809BF20 + lsls r0, 24 + cmp r0, 0 + beq _08097D18 + movs r0, 0x20 + bl PlaySE + movs r0, 0xF + bl sub_8098898 + ldr r1, _08097D14 @ =0x02000000 + movs r0, 0x1 + strb r0, [r1, 0x4] + b _08097DD0 + .align 2, 0 +_08097D14: .4byte 0x02000000 +_08097D18: + movs r0, 0x5 + bl PlaySE + movs r0, 0x12 + bl sub_8098898 + movs r0, 0 + bl sub_8098A38 + ldr r1, _08097D34 @ =0x02000000 + movs r0, 0x2 + strb r0, [r1, 0x4] + b _08097DD0 + .align 2, 0 +_08097D34: .4byte 0x02000000 +_08097D38: + ldr r0, _08097D48 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _08097DD0 + b _08097D6C + .align 2, 0 +_08097D48: .4byte gMain +_08097D4C: + bl ProcessMenuInputNoWrap + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _08097D6C + cmp r1, 0 + bgt _08097D66 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08097D7C + b _08097DD0 +_08097D66: + cmp r1, 0x1 + beq _08097D7C + b _08097DD0 +_08097D6C: + bl sub_8098A5C + ldr r0, _08097D78 @ =sub_8096C84 + bl sub_8096BE0 + b _08097DD0 + .align 2, 0 +_08097D78: .4byte sub_8096C84 +_08097D7C: + movs r0, 0x3 + bl PlaySE + bl sub_8098A5C + ldr r1, _08097D90 @ =0x02000000 + ldrb r0, [r1, 0x4] + adds r0, 0x1 + strb r0, [r1, 0x4] + b _08097DD0 + .align 2, 0 +_08097D90: .4byte 0x02000000 +_08097D94: + movs r1, 0 + movs r0, 0xE + strh r0, [r4, 0xC] + ldr r0, _08097DB4 @ =0x0000dad0 + strh r0, [r4, 0xE] + movs r0, 0x14 + strh r0, [r4, 0x10] + strh r1, [r4, 0x12] + adds r0, r4, 0 + adds r0, 0xC + bl sub_80C5E38 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08097DD0 + .align 2, 0 +_08097DB4: .4byte 0x0000dad0 +_08097DB8: + bl sub_80C5F98 + lsls r0, 24 + cmp r0, 0 + beq _08097DD0 + bl CalculatePlayerPartyCount + ldr r1, _08097DD8 @ =gPlayerPartyCount + strb r0, [r1] + ldr r0, _08097DDC @ =sub_80961A8 + bl SetMainCallback2 +_08097DD0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097DD8: .4byte gPlayerPartyCount +_08097DDC: .4byte sub_80961A8 + thumb_func_end sub_8097CC0 + + thumb_func_start sub_8097DE0 +sub_8097DE0: @ 8097DE0 + push {lr} + ldr r1, _08097E1C @ =0x02000000 + movs r0, 0 + strb r0, [r1, 0x7] + strh r0, [r1, 0x8] + strh r0, [r1, 0xA] + ldr r1, _08097E20 @ =REG_BG3CNT + ldr r2, _08097E24 @ =0x00001e0f + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _08097E28 @ =gPokemonStorageScrollingBGTile + ldr r2, _08097E2C @ =0x0600e000 + ldr r0, _08097E30 @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _08097E34 @ =0x80000010 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r0, _08097E38 @ =gPokemonStorageScrollingBGTilemap + ldr r1, _08097E3C @ =0x0600f000 + bl LZ77UnCompVram + ldr r0, _08097E40 @ =gPokemonStorageScrollingBGPalette + movs r1, 0xD0 + movs r2, 0x10 + bl LoadPalette + pop {r0} + bx r0 + .align 2, 0 +_08097E1C: .4byte 0x02000000 +_08097E20: .4byte REG_BG3CNT +_08097E24: .4byte 0x00001e0f +_08097E28: .4byte gPokemonStorageScrollingBGTile +_08097E2C: .4byte 0x0600e000 +_08097E30: .4byte 0x040000d4 +_08097E34: .4byte 0x80000010 +_08097E38: .4byte gPokemonStorageScrollingBGTilemap +_08097E3C: .4byte 0x0600f000 +_08097E40: .4byte gPokemonStorageScrollingBGPalette + thumb_func_end sub_8097DE0 + + thumb_func_start sub_8097E44 +sub_8097E44: @ 8097E44 + push {lr} + ldr r1, _08097E6C @ =0x02000000 + ldrb r0, [r1, 0x7] + adds r0, 0x1 + strb r0, [r1, 0x7] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bls _08097E66 + movs r0, 0 + strb r0, [r1, 0x7] + ldrh r0, [r1, 0x8] + subs r0, 0x1 + strh r0, [r1, 0x8] + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] +_08097E66: + pop {r0} + bx r0 + .align 2, 0 +_08097E6C: .4byte 0x02000000 + thumb_func_end sub_8097E44 + + thumb_func_start sub_8097E70 +sub_8097E70: @ 8097E70 + push {r4,lr} + sub sp, 0x10 + ldr r0, _08097F2C @ =gPSSMenuHeader_Gfx + ldr r1, _08097F30 @ =0x06005000 + bl LZ77UnCompVram + ldr r0, _08097F34 @ =gPSSMenuHeader_Tilemap + ldr r4, _08097F38 @ =gUnknown_02039760 + adds r1, r4, 0 + bl LZ77UnCompWram + ldr r0, _08097F3C @ =0x06007800 + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r1, 0xA + str r1, [sp, 0x8] + movs r1, 0x14 + str r1, [sp, 0xC] + movs r1, 0 + movs r2, 0 + adds r3, r4, 0 + bl sub_809D034 + ldr r0, _08097F40 @ =gPSSMenu1_Pal + movs r1, 0x10 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08097F44 @ =gPSSMenu2_Pal + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08097F48 @ =gUnknown_083B6D74 + movs r1, 0xB0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08097F4C @ =gUnknown_083B6D94 + movs r1, 0xC0 + movs r2, 0x20 + bl LoadPalette + ldr r4, _08097F50 @ =gUnknownPalette_81E6692+0x2 + adds r0, r4, 0 + movs r1, 0xF1 + movs r2, 0x2 + bl LoadPalette + adds r0, r4, 0 + movs r1, 0xF2 + movs r2, 0x2 + bl LoadPalette + adds r0, r4, 0 + adds r0, 0x8 + movs r1, 0xF3 + movs r2, 0x2 + bl LoadPalette + adds r0, r4, 0 + adds r0, 0x16 + movs r1, 0xF4 + movs r2, 0x4 + bl LoadPalette + adds r0, r4, 0 + adds r0, 0x12 + movs r1, 0xF6 + movs r2, 0x4 + bl LoadPalette + adds r4, 0x2 + adds r0, r4, 0 + movs r1, 0xFF + movs r2, 0x2 + bl LoadPalette + ldr r0, _08097F54 @ =gWaveformSpritePalette + bl LoadSpritePalette + bl sub_80980D4 + bl sub_8097F58 + bl sub_8097FB8 + bl sub_809801C + add sp, 0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097F2C: .4byte gPSSMenuHeader_Gfx +_08097F30: .4byte 0x06005000 +_08097F34: .4byte gPSSMenuHeader_Tilemap +_08097F38: .4byte gUnknown_02039760 +_08097F3C: .4byte 0x06007800 +_08097F40: .4byte gPSSMenu1_Pal +_08097F44: .4byte gPSSMenu2_Pal +_08097F48: .4byte gUnknown_083B6D74 +_08097F4C: .4byte gUnknown_083B6D94 +_08097F50: .4byte gUnknownPalette_81E6692+0x2 +_08097F54: .4byte gWaveformSpritePalette + thumb_func_end sub_8097E70 + + thumb_func_start sub_8097F58 +sub_8097F58: @ 8097F58 + push {r4,lr} + ldr r1, _08097FA4 @ =0x0000dace + movs r0, 0xD + movs r2, 0 + bl sub_80F7940 + ldr r4, _08097FA8 @ =0x02000000 + ldr r1, _08097FAC @ =0x000012ac + adds r3, r4, r1 + str r0, [r3] + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + strb r1, [r0, 0x5] + ldr r0, [r3] + adds r0, 0x43 + movs r1, 0x1 + strb r1, [r0] + ldr r1, [r3] + movs r0, 0x28 + strh r0, [r1, 0x20] + ldr r1, [r3] + movs r0, 0x95 + strh r0, [r1, 0x22] + movs r0, 0xD + bl GetSpriteTileStartByTag + ldr r1, _08097FB0 @ =0x000012b8 + adds r4, r1 + lsls r0, 16 + lsrs r0, 11 + ldr r1, _08097FB4 @ =0x06010000 + adds r0, r1 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097FA4: .4byte 0x0000dace +_08097FA8: .4byte 0x02000000 +_08097FAC: .4byte 0x000012ac +_08097FB0: .4byte 0x000012b8 +_08097FB4: .4byte 0x06010000 + thumb_func_end sub_8097F58 + + thumb_func_start sub_8097FB8 +sub_8097FB8: @ 8097FB8 + push {r4,r5,lr} + sub sp, 0x8 + ldr r0, _0809800C @ =gWaveformSpriteSheet + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet + movs r4, 0 + ldr r5, _08098010 @ =0x020012b0 +_08097FD0: + lsls r1, r4, 6 + subs r1, r4 + adds r1, 0x8 + lsls r1, 16 + asrs r1, 16 + ldr r0, _08098014 @ =gSpriteTemplate_83B6EFC + movs r2, 0x9 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r2, r4, 2 + adds r2, r5 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _08098018 @ =gSprites + adds r1, r0 + str r1, [r2] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _08097FD0 + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809800C: .4byte gWaveformSpriteSheet +_08098010: .4byte 0x020012b0 +_08098014: .4byte gSpriteTemplate_83B6EFC +_08098018: .4byte gSprites + thumb_func_end sub_8097FB8 + + thumb_func_start sub_809801C +sub_809801C: @ 809801C + push {lr} + ldr r1, _0809803C @ =0x02000000 + ldr r2, _08098040 @ =0x000011f0 + adds r0, r1, r2 + ldrh r0, [r0] + subs r2, 0x4 + adds r1, r2 + ldr r1, [r1] + bl sub_80981F0 + bl sub_80982B4 + bl sub_8098350 + pop {r0} + bx r0 + .align 2, 0 +_0809803C: .4byte 0x02000000 +_08098040: .4byte 0x000011f0 + thumb_func_end sub_809801C + + thumb_func_start BoxSetMosaic +BoxSetMosaic: @ 8098044 + push {lr} + bl sub_809801C + ldr r0, _08098084 @ =0x02000000 + movs r1, 0x9C + lsls r1, 6 + adds r3, r0, r1 + ldr r2, [r3] + cmp r2, 0 + beq _08098080 + ldrb r0, [r2, 0x1] + movs r1, 0x10 + orrs r0, r1 + strb r0, [r2, 0x1] + ldr r1, [r3] + movs r0, 0xA + strh r0, [r1, 0x2E] + ldr r1, [r3] + movs r0, 0x1 + strh r0, [r1, 0x30] + ldr r1, [r3] + ldr r0, _08098088 @ =sub_8098090 + str r0, [r1, 0x1C] + ldr r2, _0809808C @ =REG_MOSAIC + ldr r0, [r3] + ldrh r0, [r0, 0x2E] + lsls r1, r0, 12 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] +_08098080: + pop {r0} + bx r0 + .align 2, 0 +_08098084: .4byte 0x02000000 +_08098088: .4byte sub_8098090 +_0809808C: .4byte REG_MOSAIC + thumb_func_end BoxSetMosaic + + thumb_func_start sub_8098090 +sub_8098090: @ 8098090 + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + ldrh r1, [r3, 0x30] + subs r0, r1 + strh r0, [r3, 0x2E] + lsls r0, 16 + cmp r0, 0 + bge _080980A6 + movs r0, 0 + strh r0, [r3, 0x2E] +_080980A6: + ldr r2, _080980CC @ =REG_MOSAIC + ldrh r0, [r3, 0x2E] + lsls r1, r0, 12 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r1, 0x2E + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080980C8 + ldrb r0, [r3, 0x1] + movs r1, 0x11 + negs r1, r1 + ands r1, r0 + strb r1, [r3, 0x1] + ldr r0, _080980D0 @ =SpriteCallbackDummy + str r0, [r3, 0x1C] +_080980C8: + pop {r0} + bx r0 + .align 2, 0 +_080980CC: .4byte REG_MOSAIC +_080980D0: .4byte SpriteCallbackDummy + thumb_func_end sub_8098090 + + thumb_func_start sub_80980D4 +sub_80980D4: @ 80980D4 + push {r4,r5,lr} + sub sp, 0x28 + ldr r0, _08098150 @ =gUnknown_083B6DCC + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + ldr r0, _08098154 @ =gUnknown_083B6DD4 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x20] + str r1, [sp, 0x24] + mov r1, sp + ldr r0, _08098158 @ =gSpriteTemplate_83B6DDC + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + movs r1, 0 + add r5, sp, 0x18 + ldr r4, _0809815C @ =0x02002784 + movs r3, 0 + ldr r2, _08098160 @ =0x000007ff +_08098102: + adds r0, r1, r4 + strb r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r2 + bls _08098102 + movs r1, 0 + ldr r3, _08098164 @ =0x02002704 + movs r2, 0 +_08098116: + lsls r0, r1, 1 + adds r0, r3 + strh r2, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0xF + bls _08098116 + ldr r0, _08098168 @ =0x02000000 + movs r1, 0x9C + lsls r1, 6 + adds r0, r1 + movs r1, 0 + str r1, [r0] + adds r0, r5, 0 + bl LoadSpriteSheet + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + beq _080981C4 + add r0, sp, 0x20 + bl LoadSpritePalette + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xFF + beq _080981C4 + b _080981B0 + .align 2, 0 +_08098150: .4byte gUnknown_083B6DCC +_08098154: .4byte gUnknown_083B6DD4 +_08098158: .4byte gSpriteTemplate_83B6DDC +_0809815C: .4byte 0x02002784 +_08098160: .4byte 0x000007ff +_08098164: .4byte 0x02002704 +_08098168: .4byte 0x02000000 +_0809816C: + ldr r2, _0809819C @ =0x02000000 + movs r0, 0x9C + lsls r0, 6 + adds r3, r2, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080981A0 @ =gSprites + adds r0, r1 + str r0, [r3] + lsls r0, r4, 4 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + ldr r3, _080981A4 @ =0x000026fa + adds r1, r2, r3 + strh r0, [r1] + ldr r4, _080981A8 @ =0x000026fc + adds r2, r4 + lsls r0, r5, 5 + ldr r1, _080981AC @ =0x06010000 + adds r0, r1 + str r0, [r2] + b _080981C4 + .align 2, 0 +_0809819C: .4byte 0x02000000 +_080981A0: .4byte gSprites +_080981A4: .4byte 0x000026fa +_080981A8: .4byte 0x000026fc +_080981AC: .4byte 0x06010000 +_080981B0: + mov r0, sp + movs r1, 0x28 + movs r2, 0x30 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + bne _0809816C +_080981C4: + ldr r0, _080981E8 @ =0x02000000 + movs r2, 0x9C + lsls r2, 6 + adds r0, r2 + ldr r0, [r0] + cmp r0, 0 + bne _080981DE + movs r0, 0x2 + bl FreeSpriteTilesByTag + ldr r0, _080981EC @ =0x0000dac7 + bl FreeSpritePaletteByTag +_080981DE: + add sp, 0x28 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080981E8: .4byte 0x02000000 +_080981EC: .4byte 0x0000dac7 + thumb_func_end sub_80980D4 + + thumb_func_start sub_80981F0 +sub_80981F0: @ 80981F0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + adds r7, r1, 0 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r6, _08098274 @ =0x02000000 + movs r0, 0x9C + lsls r0, 6 + adds r0, r6 + mov r8, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080982A6 + cmp r4, 0 + beq _0809829C + lsls r0, r4, 3 + ldr r1, _08098278 @ =gMonFrontPicTable + adds r0, r1 + ldr r2, _0809827C @ =gMonFrontPicCoords + lsls r1, r4, 2 + adds r1, r2 + ldrb r1, [r1] + ldr r2, _08098280 @ =0x00004784 + adds r3, r6, r2 + ldr r2, _08098284 @ =0x00002784 + adds r5, r6, r2 + str r5, [sp] + str r4, [sp, 0x4] + str r7, [sp, 0x8] + movs r2, 0x1 + bl HandleLoadSpecialPokePic + ldr r1, _08098288 @ =0x000011e8 + adds r0, r6, r1 + ldr r0, [r0] + ldr r2, _0809828C @ =0x00002704 + adds r4, r6, r2 + adds r1, r4, 0 + bl LZ77UnCompWram + ldr r1, _08098290 @ =0x000026fc + adds r0, r6, r1 + ldr r1, [r0] + ldr r2, _08098294 @ =0x04000200 + adds r0, r5, 0 + bl CpuSet + ldr r2, _08098298 @ =0x000026fa + adds r0, r6, r2 + ldrh r1, [r0] + adds r0, r4, 0 + movs r2, 0x20 + bl LoadPalette + mov r0, r8 + ldr r1, [r0] + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + b _080982A6 + .align 2, 0 +_08098274: .4byte 0x02000000 +_08098278: .4byte gMonFrontPicTable +_0809827C: .4byte gMonFrontPicCoords +_08098280: .4byte 0x00004784 +_08098284: .4byte 0x00002784 +_08098288: .4byte 0x000011e8 +_0809828C: .4byte 0x00002704 +_08098290: .4byte 0x000026fc +_08098294: .4byte 0x04000200 +_08098298: .4byte 0x000026fa +_0809829C: + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080982A6: + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80981F0 + + thumb_func_start sub_80982B4 +sub_80982B4: @ 80982B4 + push {r4,lr} + ldr r4, _080982E4 @ =0x02000000 + ldr r1, _080982E8 @ =0x000011f0 + adds r0, r4, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _080982F4 + ldr r2, _080982EC @ =0x000011f7 + adds r0, r4, r2 + ldrb r0, [r0] + adds r2, 0xC1 + adds r1, r4, r2 + ldr r1, [r1] + bl sub_80F7A10 + ldr r1, _080982F0 @ =0x000012ac + adds r0, r4, r1 + ldr r1, [r0] + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + b _08098302 + .align 2, 0 +_080982E4: .4byte 0x02000000 +_080982E8: .4byte 0x000011f0 +_080982EC: .4byte 0x000011f7 +_080982F0: .4byte 0x000012ac +_080982F4: + ldr r2, _08098348 @ =0x000012ac + adds r0, r4, r2 + ldr r1, [r0] + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 +_08098302: + strb r0, [r1] + movs r0, 0 + movs r1, 0xB + movs r2, 0x9 + movs r3, 0x11 + bl MenuZeroFillWindowRect + ldr r4, _0809834C @ =0x0200127a + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0x10 + bl MenuPrint + adds r0, r4, 0 + subs r0, 0x6B + movs r1, 0x1 + movs r2, 0xB + bl MenuPrint + adds r0, r4, 0 + subs r0, 0x46 + movs r1, 0 + movs r2, 0xD + bl MenuPrint + subs r4, 0x21 + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08098348: .4byte 0x000012ac +_0809834C: .4byte 0x0200127a + thumb_func_end sub_80982B4 + + thumb_func_start sub_8098350 +sub_8098350: @ 8098350 + push {r4,r5,lr} + sub sp, 0x10 + ldr r5, _080983A0 @ =0x02000000 + ldr r1, _080983A4 @ =0x000011f0 + adds r0, r5, r1 + ldrh r2, [r0] + cmp r2, 0 + beq _080983B4 + ldr r0, _080983A8 @ =0x06007800 + ldr r3, _080983AC @ =gUnknown_02039760 + movs r1, 0x1 + str r1, [sp] + movs r1, 0 + str r1, [sp, 0x4] + movs r1, 0x8 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + movs r1, 0x1 + movs r2, 0 + bl sub_809D034 + movs r4, 0 + ldr r0, _080983B0 @ =0x000012b0 + adds r5, r0 +_08098382: + lsls r0, r4, 2 + adds r0, r5 + ldr r0, [r0] + lsls r1, r4, 1 + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + bl StartSpriteAnimIfDifferent + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _08098382 + b _080983EC + .align 2, 0 +_080983A0: .4byte 0x02000000 +_080983A4: .4byte 0x000011f0 +_080983A8: .4byte 0x06007800 +_080983AC: .4byte gUnknown_02039760 +_080983B0: .4byte 0x000012b0 +_080983B4: + ldr r0, _080983F4 @ =0x06007800 + ldr r3, _080983F8 @ =gUnknown_02039760 + movs r1, 0xA + str r1, [sp] + str r2, [sp, 0x4] + movs r1, 0x8 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + movs r1, 0x1 + movs r2, 0 + bl sub_809D034 + movs r4, 0 + ldr r1, _080983FC @ =0x000012b0 + adds r5, r1 +_080983D4: + lsls r0, r4, 2 + adds r0, r5 + ldr r0, [r0] + lsls r1, r4, 25 + lsrs r1, 24 + bl StartSpriteAnim + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080983D4 +_080983EC: + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080983F4: .4byte 0x06007800 +_080983F8: .4byte gUnknown_02039760 +_080983FC: .4byte 0x000012b0 + thumb_func_end sub_8098350 + + thumb_func_start sub_8098400 +sub_8098400: @ 8098400 + push {r4,r5,lr} + sub sp, 0x14 + ldr r1, _0809847C @ =REG_BG1CNT + ldr r2, _08098480 @ =0x00000f01 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08098484 @ =gPSSMenuMisc_Gfx + ldr r1, _08098488 @ =0x06006800 + bl LZ77UnCompVram + ldr r0, _0809848C @ =gPSSMenuMisc_Tilemap + ldr r5, _08098490 @ =0x020000a8 + adds r1, r5, 0 + bl LZ77UnCompWram + ldr r0, _08098494 @ =gPSSMenu3_Pal + movs r1, 0x20 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08098498 @ =gPSSMenu4_Pal + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette + ldr r4, _0809849C @ =0x06007800 + add r1, sp, 0x10 + movs r0, 0 + strh r0, [r1] + ldr r0, _080984A0 @ =0x040000d4 + str r1, [r0] + str r4, [r0, 0x4] + ldr r1, _080984A4 @ =0x81000400 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + bl sub_8098780 + ldr r0, _080984A8 @ =gUnknown_0203847C + ldrb r0, [r0] + cmp r0, 0 + beq _080984AC + movs r0, 0x1 + bl sub_8098690 + movs r0, 0x1 + bl sub_8099200 + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0xC + str r0, [sp, 0x8] + movs r0, 0x16 + str r0, [sp, 0xC] + adds r0, r4, 0 + movs r1, 0xA + movs r2, 0 + adds r3, r5, 0 + bl sub_809D034 + b _080984CC + .align 2, 0 +_0809847C: .4byte REG_BG1CNT +_08098480: .4byte 0x00000f01 +_08098484: .4byte gPSSMenuMisc_Gfx +_08098488: .4byte 0x06006800 +_0809848C: .4byte gPSSMenuMisc_Tilemap +_08098490: .4byte 0x020000a8 +_08098494: .4byte gPSSMenu3_Pal +_08098498: .4byte gPSSMenu4_Pal +_0809849C: .4byte 0x06007800 +_080984A0: .4byte 0x040000d4 +_080984A4: .4byte 0x81000400 +_080984A8: .4byte gUnknown_0203847C +_080984AC: + str r0, [sp] + movs r0, 0x14 + str r0, [sp, 0x4] + movs r0, 0xC + str r0, [sp, 0x8] + movs r0, 0x2 + str r0, [sp, 0xC] + adds r0, r4, 0 + movs r1, 0xA + movs r2, 0 + adds r3, r5, 0 + bl sub_809D034 + movs r0, 0x1 + bl sub_8098690 +_080984CC: + ldr r0, _080984E0 @ =0x02000000 + ldr r1, _080984E4 @ =0x000008af + adds r0, r1 + movs r1, 0 + strb r1, [r0] + add sp, 0x14 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080984E0: .4byte 0x02000000 +_080984E4: .4byte 0x000008af + thumb_func_end sub_8098400 + + thumb_func_start sub_80984E8 +sub_80984E8: @ 80984E8 + push {lr} + ldr r1, _08098510 @ =0x02000000 + ldr r0, _08098514 @ =0x000008a8 + adds r2, r1, r0 + movs r3, 0 + movs r0, 0x14 + strh r0, [r2] + ldr r0, _08098518 @ =0x000008aa + adds r2, r1, r0 + movs r0, 0x2 + strh r0, [r2] + ldr r0, _0809851C @ =0x000008ad + adds r1, r0 + strb r3, [r1] + movs r0, 0 + bl sub_8099200 + pop {r0} + bx r0 + .align 2, 0 +_08098510: .4byte 0x02000000 +_08098514: .4byte 0x000008a8 +_08098518: .4byte 0x000008aa +_0809851C: .4byte 0x000008ad + thumb_func_end sub_80984E8 + + thumb_func_start sub_8098520 +sub_8098520: @ 8098520 + push {r4,r5,lr} + sub sp, 0x10 + ldr r3, _08098578 @ =0x02000000 + ldr r0, _0809857C @ =0x000008ad + adds r5, r3, r0 + ldrb r0, [r5] + cmp r0, 0x14 + beq _08098592 + ldr r0, _08098580 @ =0x000008a8 + adds r1, r3, r0 + ldrh r0, [r1] + subs r0, 0x1 + movs r4, 0 + strh r0, [r1] + ldr r0, _08098584 @ =0x000008aa + adds r2, r3, r0 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + ldr r0, _08098588 @ =0x06007800 + adds r3, 0xA8 + str r4, [sp] + ldrh r1, [r1] + str r1, [sp, 0x4] + movs r1, 0xC + str r1, [sp, 0x8] + ldrh r1, [r2] + str r1, [sp, 0xC] + movs r1, 0xA + movs r2, 0 + bl sub_809D034 + movs r0, 0x8 + bl sub_80994A8 + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x14 + beq _0809858C + movs r0, 0x1 + b _08098594 + .align 2, 0 +_08098578: .4byte 0x02000000 +_0809857C: .4byte 0x000008ad +_08098580: .4byte 0x000008a8 +_08098584: .4byte 0x000008aa +_08098588: .4byte 0x06007800 +_0809858C: + ldr r1, _0809859C @ =gUnknown_0203847C + movs r0, 0x1 + strb r0, [r1] +_08098592: + movs r0, 0 +_08098594: + add sp, 0x10 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0809859C: .4byte gUnknown_0203847C + thumb_func_end sub_8098520 + + thumb_func_start add_to_c3_somehow +add_to_c3_somehow: @ 80985A0 + ldr r1, _080985BC @ =0x02000000 + ldr r0, _080985C0 @ =0x000008a8 + adds r2, r1, r0 + movs r3, 0 + movs r0, 0 + strh r0, [r2] + ldr r0, _080985C4 @ =0x000008aa + adds r2, r1, r0 + movs r0, 0x16 + strh r0, [r2] + ldr r0, _080985C8 @ =0x000008ad + adds r1, r0 + strb r3, [r1] + bx lr + .align 2, 0 +_080985BC: .4byte 0x02000000 +_080985C0: .4byte 0x000008a8 +_080985C4: .4byte 0x000008aa +_080985C8: .4byte 0x000008ad + thumb_func_end add_to_c3_somehow + + thumb_func_start sub_80985CC +sub_80985CC: @ 80985CC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + ldr r3, _08098640 @ =0x02000000 + ldr r0, _08098644 @ =0x000008ad + adds r6, r3, r0 + ldrb r0, [r6] + cmp r0, 0x14 + beq _0809867A + ldr r2, _08098648 @ =0x000008a8 + adds r1, r3, r2 + ldrh r0, [r1] + adds r0, 0x1 + movs r2, 0 + mov r9, r2 + strh r0, [r1] + ldr r0, _0809864C @ =0x000008aa + adds r4, r3, r0 + ldrh r0, [r4] + subs r0, 0x1 + strh r0, [r4] + ldr r5, _08098650 @ =0x06007800 + adds r3, 0xA8 + mov r8, r3 + str r2, [sp] + ldrh r0, [r1] + str r0, [sp, 0x4] + movs r7, 0xC + str r7, [sp, 0x8] + ldrh r0, [r4] + str r0, [sp, 0xC] + adds r0, r5, 0 + movs r1, 0xA + bl sub_809D034 + ldrh r2, [r4] + movs r4, 0x1 + str r4, [sp] + adds r0, r5, 0 + movs r1, 0xA + movs r3, 0xC + bl sub_809D16C + movs r0, 0x8 + negs r0, r0 + bl sub_80994A8 + ldrb r0, [r6] + adds r0, 0x1 + strb r0, [r6] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x14 + beq _08098654 + movs r0, 0x1 + b _0809867C + .align 2, 0 +_08098640: .4byte 0x02000000 +_08098644: .4byte 0x000008ad +_08098648: .4byte 0x000008a8 +_0809864C: .4byte 0x000008aa +_08098650: .4byte 0x06007800 +_08098654: + ldr r0, _0809868C @ =gUnknown_0203847C + movs r1, 0 + strb r1, [r0] + bl sub_809954C + bl party_compaction + str r7, [sp] + mov r2, r9 + str r2, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x2 + str r0, [sp, 0xC] + adds r0, r5, 0 + movs r1, 0x15 + movs r2, 0 + mov r3, r8 + bl sub_809D034 +_0809867A: + movs r0, 0 +_0809867C: + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0809868C: .4byte gUnknown_0203847C + thumb_func_end sub_80985CC + + thumb_func_start sub_8098690 +sub_8098690: @ 8098690 + push {lr} + sub sp, 0x10 + lsls r0, 24 + cmp r0, 0 + beq _080986C0 + ldr r0, _080986B8 @ =0x06007800 + ldr r3, _080986BC @ =0x020000a8 + movs r1, 0xC + str r1, [sp] + movs r1, 0 + str r1, [sp, 0x4] + movs r1, 0x9 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + movs r1, 0x15 + movs r2, 0 + bl sub_809D034 + b _080986DA + .align 2, 0 +_080986B8: .4byte 0x06007800 +_080986BC: .4byte 0x020000a8 +_080986C0: + ldr r0, _080986E0 @ =0x06007800 + ldr r3, _080986E4 @ =0x020000a8 + movs r1, 0xC + str r1, [sp] + movs r2, 0x2 + str r2, [sp, 0x4] + movs r1, 0x9 + str r1, [sp, 0x8] + str r2, [sp, 0xC] + movs r1, 0x15 + movs r2, 0 + bl sub_809D034 +_080986DA: + add sp, 0x10 + pop {r0} + bx r0 + .align 2, 0 +_080986E0: .4byte 0x06007800 +_080986E4: .4byte 0x020000a8 + thumb_func_end sub_8098690 + + thumb_func_start sub_80986E8 +sub_80986E8: @ 80986E8 + ldr r1, _08098704 @ =0x02000000 + ldr r2, _08098708 @ =0x000008af + adds r0, r1, r2 + movs r3, 0x1 + strb r3, [r0] + movs r0, 0x8B + lsls r0, 4 + adds r2, r1, r0 + movs r0, 0x1E + strb r0, [r2] + ldr r2, _0809870C @ =0x000008b1 + adds r1, r2 + strb r3, [r1] + bx lr + .align 2, 0 +_08098704: .4byte 0x02000000 +_08098708: .4byte 0x000008af +_0809870C: .4byte 0x000008b1 + thumb_func_end sub_80986E8 + + thumb_func_start sub_8098710 +sub_8098710: @ 8098710 + push {lr} + ldr r0, _0809872C @ =0x02000000 + ldr r2, _08098730 @ =0x000008af + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0 + beq _08098728 + movs r0, 0 + strb r0, [r1] + movs r0, 0x1 + bl sub_8098690 +_08098728: + pop {r0} + bx r0 + .align 2, 0 +_0809872C: .4byte 0x02000000 +_08098730: .4byte 0x000008af + thumb_func_end sub_8098710 + + thumb_func_start sub_8098734 +sub_8098734: @ 8098734 + push {lr} + ldr r2, _08098774 @ =0x02000000 + ldr r1, _08098778 @ =0x000008af + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08098770 + movs r0, 0x8B + lsls r0, 4 + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1E + bls _08098770 + movs r0, 0 + strb r0, [r1] + movs r3, 0 + ldr r0, _0809877C @ =0x000008b1 + adds r1, r2, r0 + ldrb r0, [r1] + cmp r0, 0 + bne _08098768 + movs r3, 0x1 +_08098768: + strb r3, [r1] + ldrb r0, [r1] + bl sub_8098690 +_08098770: + pop {r0} + bx r0 + .align 2, 0 +_08098774: .4byte 0x02000000 +_08098778: .4byte 0x000008af +_0809877C: .4byte 0x000008b1 + thumb_func_end sub_8098734 + + thumb_func_start sub_8098780 +sub_8098780: @ 8098780 + push {r4-r6,lr} + sub sp, 0x10 + movs r4, 0x1 + ldr r6, _080987D4 @ =0x020000a8 + movs r5, 0x80 + lsls r5, 9 +_0809878C: + movs r0, 0x64 + muls r0, r4 + ldr r1, _080987D8 @ =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _080987A0 + movs r0, 0x1 +_080987A0: + movs r1, 0x10 + cmp r0, 0 + beq _080987A8 + movs r1, 0xC +_080987A8: + lsrs r2, r5, 16 + str r1, [sp] + movs r0, 0x4 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r0, 0x3 + str r0, [sp, 0xC] + adds r0, r6, 0 + movs r1, 0x7 + adds r3, r6, 0 + bl sub_809D104 + movs r0, 0xC0 + lsls r0, 10 + adds r5, r0 + adds r4, 0x1 + cmp r4, 0x5 + ble _0809878C + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080987D4: .4byte 0x020000a8 +_080987D8: .4byte gPlayerParty + thumb_func_end sub_8098780 + + thumb_func_start sub_80987DC +sub_80987DC: @ 80987DC + push {lr} + sub sp, 0x10 + bl sub_8098780 + ldr r0, _08098804 @ =0x06007800 + ldr r3, _08098808 @ =0x020000a8 + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r1, 0xC + str r1, [sp, 0x8] + movs r1, 0x16 + str r1, [sp, 0xC] + movs r1, 0xA + movs r2, 0 + bl sub_809D034 + add sp, 0x10 + pop {r0} + bx r0 + .align 2, 0 +_08098804: .4byte 0x06007800 +_08098808: .4byte 0x020000a8 + thumb_func_end sub_80987DC + + thumb_func_start sub_809880C +sub_809880C: @ 809880C + push {lr} + ldr r0, _08098828 @ =0x02000000 + ldr r1, _0809882C @ =0x000008ae + adds r0, r1 + movs r1, 0 + strb r1, [r0] + movs r0, 0x6 + bl PlaySE + bl sub_80984E8 + pop {r0} + bx r0 + .align 2, 0 +_08098828: .4byte 0x02000000 +_0809882C: .4byte 0x000008ae + thumb_func_end sub_809880C + + thumb_func_start sub_8098830 +sub_8098830: @ 8098830 + push {r4,r5,lr} + ldr r5, _08098848 @ =0x02000000 + ldr r0, _0809884C @ =0x000008ae + adds r4, r5, r0 + ldrb r0, [r4] + cmp r0, 0x1 + beq _08098866 + cmp r0, 0x1 + bgt _08098850 + cmp r0, 0 + beq _08098856 + b _08098890 + .align 2, 0 +_08098848: .4byte 0x02000000 +_0809884C: .4byte 0x000008ae +_08098850: + cmp r0, 0x2 + beq _0809888C + b _08098890 +_08098856: + bl sub_8098520 + lsls r0, 24 + cmp r0, 0 + bne _08098890 + bl sub_809B068 + b _0809887E +_08098866: + bl sub_809AC00 + lsls r0, 24 + cmp r0, 0 + bne _08098890 + ldr r1, _08098888 @ =0x000011f6 + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0809887E + bl BoxSetMosaic +_0809887E: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _08098890 + .align 2, 0 +_08098888: .4byte 0x000011f6 +_0809888C: + movs r0, 0 + b _08098892 +_08098890: + movs r0, 0x1 +_08098892: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8098830 + + thumb_func_start sub_8098898 +sub_8098898: @ 8098898 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0xA + movs r1, 0x10 + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r1, _080988C4 @ =gUnknown_083B6DF4 + lsls r0, r5, 3 + adds r0, r1 + ldrb r0, [r0, 0x4] + cmp r0, 0x6 + bls _080988B8 + b _080989F4 +_080988B8: + lsls r0, 2 + ldr r1, _080988C8 @ =_080988CC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080988C4: .4byte gUnknown_083B6DF4 +_080988C8: .4byte _080988CC + .align 2, 0 +_080988CC: + .4byte _080989F4 + .4byte _08098930 + .4byte _080988E8 + .4byte _08098974 + .4byte _08098954 + .4byte _08098910 + .4byte _080989B8 +_080988E8: + ldr r4, _08098904 @ =0x02002694 + ldr r1, _08098908 @ =gUnknown_083B6DF4 + lsls r0, r5, 3 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl StringCopy + adds r2, r0, 0 + ldr r0, _0809890C @ =0xffffeb66 + adds r4, r0 + adds r0, r2, 0 + adds r1, r4, 0 + b _080989FE + .align 2, 0 +_08098904: .4byte 0x02002694 +_08098908: .4byte gUnknown_083B6DF4 +_0809890C: .4byte 0xffffeb66 +_08098910: + ldr r4, _08098928 @ =0x02002694 + ldr r1, _0809892C @ =gUnknown_083B6DF4 + lsls r0, r5, 3 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl StringCopy + adds r2, r0, 0 + adds r4, 0x50 + adds r1, r4, 0 + b _080989FE + .align 2, 0 +_08098928: .4byte 0x02002694 +_0809892C: .4byte gUnknown_083B6DF4 +_08098930: + ldr r0, _08098948 @ =0x02002694 + ldr r2, _0809894C @ =0xffffeb66 + adds r1, r0, r2 + bl StringCopy + adds r2, r0, 0 + ldr r1, _08098950 @ =gUnknown_083B6DF4 + lsls r0, r5, 3 + adds r0, r1 + ldr r1, [r0] + adds r0, r2, 0 + b _080989FE + .align 2, 0 +_08098948: .4byte 0x02002694 +_0809894C: .4byte 0xffffeb66 +_08098950: .4byte gUnknown_083B6DF4 +_08098954: + ldr r0, _0809896C @ =0x02002694 + adds r1, r0, 0 + adds r1, 0x50 + bl StringCopy + adds r2, r0, 0 + ldr r1, _08098970 @ =gUnknown_083B6DF4 + lsls r0, r5, 3 + adds r0, r1 + ldr r1, [r0] + adds r0, r2, 0 + b _080989FE + .align 2, 0 +_0809896C: .4byte 0x02002694 +_08098970: .4byte gUnknown_083B6DF4 +_08098974: + ldr r1, _080989AC @ =gUnknown_083B6DF4 + lsls r0, r5, 3 + adds r0, r1 + ldr r6, [r0] + adds r0, r6, 0 + bl StringLength + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r4, r6, r4 + adds r4, 0x1 + ldr r5, _080989B0 @ =0x02002694 + adds r0, r5, 0 + adds r1, r6, 0 + bl StringCopy + adds r2, r0, 0 + ldr r0, _080989B4 @ =0xffffeb66 + adds r5, r0 + adds r0, r2, 0 + adds r1, r5, 0 + bl StringCopy + adds r2, r0, 0 + adds r1, r4, 0 + b _080989FE + .align 2, 0 +_080989AC: .4byte gUnknown_083B6DF4 +_080989B0: .4byte 0x02002694 +_080989B4: .4byte 0xffffeb66 +_080989B8: + ldr r1, _080989EC @ =gUnknown_083B6DF4 + lsls r0, r5, 3 + adds r0, r1 + ldr r6, [r0] + adds r0, r6, 0 + bl StringLength + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r4, r6, r4 + subs r4, 0x1 + ldr r5, _080989F0 @ =0x02002694 + adds r0, r5, 0 + adds r1, r6, 0 + bl StringCopy + adds r2, r0, 0 + subs r0, r2, 0x1 + adds r5, 0x50 + adds r1, r5, 0 + bl StringCopy + adds r2, r0, 0 + adds r1, r4, 0 + b _080989FE + .align 2, 0 +_080989EC: .4byte gUnknown_083B6DF4 +_080989F0: .4byte 0x02002694 +_080989F4: + ldr r0, _08098A2C @ =0x02002694 + ldr r2, _08098A30 @ =gUnknown_083B6DF4 + lsls r1, r5, 3 + adds r1, r2 + ldr r1, [r1] +_080989FE: + bl StringCopy + adds r2, r0, 0 + ldr r0, _08098A34 @ =0x020026a6 + adds r3, r0, 0 + subs r3, 0x12 + cmp r2, r0 + bcs _08098A18 + movs r1, 0 +_08098A10: + strb r1, [r2] + adds r2, 0x1 + cmp r2, r0 + bcc _08098A10 +_08098A18: + movs r0, 0xFF + strb r0, [r2] + adds r0, r3, 0 + movs r1, 0xB + movs r2, 0x11 + bl MenuPrint + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08098A2C: .4byte 0x02002694 +_08098A30: .4byte gUnknown_083B6DF4 +_08098A34: .4byte 0x020026a6 + thumb_func_end sub_8098898 + + thumb_func_start sub_8098A38 +sub_8098A38: @ 8098A38 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x17 + movs r1, 0xA + movs r2, 0 + bl DisplayYesNoMenu + lsls r4, 24 + asrs r4, 24 + adds r0, r4, 0 + bl MoveMenuCursor + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8098A38 + + thumb_func_start sub_8098A5C +sub_8098A5C: @ 8098A5C + push {lr} + bl sub_8072DEC + movs r0, 0xA + movs r1, 0x10 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + movs r0, 0x17 + movs r1, 0xA + movs r2, 0x1D + movs r3, 0xF + bl MenuZeroFillWindowRect + pop {r0} + bx r0 + thumb_func_end sub_8098A5C + + thumb_func_start sub_8098A80 +sub_8098A80: @ 8098A80 + push {lr} + bl sub_809CDCC + movs r0, 0xC + bl sub_809CDEC + movs r0, 0xD + bl sub_809CDEC + movs r0, 0xE + bl sub_809CDEC + movs r0, 0xF + bl sub_809CDEC + bl sub_809CE84 + pop {r0} + bx r0 + thumb_func_end sub_8098A80 + + thumb_func_start sub_8098AA8 +sub_8098AA8: @ 8098AA8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + bl sub_809CDCC + cmp r4, 0x1 + beq _08098AE6 + cmp r4, 0x1 + bgt _08098AC2 + cmp r4, 0 + beq _08098ACC + b _08098B32 +_08098AC2: + cmp r5, 0x2 + beq _08098B00 + cmp r5, 0x3 + beq _08098B1A + b _08098B32 +_08098ACC: + movs r0, 0x10 + bl sub_809CDEC + movs r0, 0x11 + bl sub_809CDEC + movs r0, 0x12 + bl sub_809CDEC + movs r0, 0x13 + bl sub_809CDEC + b _08098B32 +_08098AE6: + movs r0, 0x14 + bl sub_809CDEC + movs r0, 0x15 + bl sub_809CDEC + movs r0, 0x16 + bl sub_809CDEC + movs r0, 0x17 + bl sub_809CDEC + b _08098B32 +_08098B00: + movs r0, 0x18 + bl sub_809CDEC + movs r0, 0x19 + bl sub_809CDEC + movs r0, 0x1A + bl sub_809CDEC + movs r0, 0x1B + bl sub_809CDEC + b _08098B32 +_08098B1A: + movs r0, 0x1C + bl sub_809CDEC + movs r0, 0x1D + bl sub_809CDEC + movs r0, 0x1E + bl sub_809CDEC + movs r0, 0x1F + bl sub_809CDEC +_08098B32: + bl sub_809CE84 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8098AA8 + + thumb_func_start get_preferred_box +get_preferred_box: @ 8098B3C + ldr r0, _08098B44 @ =gPokemonStorage + ldrb r0, [r0] + bx lr + .align 2, 0 +_08098B44: .4byte gPokemonStorage + thumb_func_end get_preferred_box + + thumb_func_start sub_8098B48 +sub_8098B48: @ 8098B48 + push {r4,r5,lr} + bl sub_809D51C + movs r2, 0 + ldr r1, _08098BD8 @ =gUnknown_083B6DB4 + ldr r0, [r1] + ldr r4, _08098BDC @ =0x000010d0 + adds r3, r0, r4 + movs r4, 0 + adds r5, r1, 0 +_08098B5C: + lsls r0, r2, 1 + adds r0, r3, r0 + strh r4, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x27 + bls _08098B5C + movs r2, 0 + ldr r0, _08098BD8 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r1, 0x89 + lsls r1, 5 + adds r3, r0, r1 + movs r1, 0 +_08098B7A: + lsls r0, r2, 1 + adds r0, r3, r0 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x27 + bls _08098B7A + movs r2, 0 + ldr r0, _08098BD8 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r4, _08098BE0 @ =0x00001038 + adds r3, r0, r4 + movs r1, 0 +_08098B96: + lsls r0, r2, 2 + adds r0, r3, r0 + str r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x5 + bls _08098B96 + movs r2, 0 + ldr r0, _08098BD8 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _08098BE4 @ =0x00001050 + adds r3, r0, r1 + movs r1, 0 +_08098BB2: + lsls r0, r2, 2 + adds r0, r3, r0 + str r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x1D + bls _08098BB2 + ldr r0, [r5] + ldr r2, _08098BE8 @ =0x00001034 + adds r1, r0, r2 + movs r2, 0 + str r2, [r1] + ldr r4, _08098BEC @ =0x00000d5c + adds r0, r4 + strh r2, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08098BD8: .4byte gUnknown_083B6DB4 +_08098BDC: .4byte 0x000010d0 +_08098BE0: .4byte 0x00001038 +_08098BE4: .4byte 0x00001050 +_08098BE8: .4byte 0x00001034 +_08098BEC: .4byte 0x00000d5c + thumb_func_end sub_8098B48 + + thumb_func_start sub_8098BF0 +sub_8098BF0: @ 8098BF0 + push {r4-r6,lr} + sub sp, 0x8 + ldr r0, _08098C38 @ =gUnknown_083B6DB4 + ldr r5, [r0] + ldr r0, _08098C3C @ =0x000025b4 + adds r4, r5, r0 + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + adds r6, r0, 0 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + str r1, [sp] + movs r1, 0x7 + str r1, [sp, 0x4] + adds r1, r6, 0 + movs r2, 0 + movs r3, 0 + bl sub_8099AFC + ldr r1, _08098C40 @ =0x00001034 + adds r5, r1 + str r0, [r5] + ldr r1, _08098C44 @ =sub_80999C4 + str r1, [r0, 0x1C] + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08098C38: .4byte gUnknown_083B6DB4 +_08098C3C: .4byte 0x000025b4 +_08098C40: .4byte 0x00001034 +_08098C44: .4byte sub_80999C4 + thumb_func_end sub_8098BF0 + + thumb_func_start sub_8098C48 +sub_8098C48: @ 8098C48 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldr r1, _08098CCC @ =gPokemonStorage + 0x4 + adds r6, r0, r1 + movs r0, 0 + mov r8, r0 + movs r7, 0 +_08098C6A: + movs r5, 0 + adds r1, r7, 0x1 + mov r9, r1 +_08098C70: + adds r0, r6, 0 + movs r1, 0x41 + bl GetBoxMonData + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + beq _08098CD8 + adds r0, r6, 0 + movs r1, 0 + bl GetBoxMonData + adds r1, r0, 0 + lsls r2, r5, 1 + adds r2, r5 + lsls r2, 19 + movs r3, 0xC8 + lsls r3, 15 + adds r2, r3 + asrs r2, 16 + lsls r3, r7, 1 + adds r3, r7 + lsls r3, 19 + movs r0, 0xB0 + lsls r0, 14 + adds r3, r0 + movs r0, 0x2 + str r0, [sp] + movs r0, 0x12 + subs r0, r5 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + adds r0, r4, 0 + asrs r3, 16 + bl sub_8099AFC + ldr r1, _08098CD0 @ =gUnknown_083B6DB4 + ldr r1, [r1] + mov r3, r8 + lsls r2, r3, 2 + ldr r3, _08098CD4 @ =0x00001050 + adds r1, r3 + adds r1, r2 + str r0, [r1] + b _08098CE8 + .align 2, 0 +_08098CCC: .4byte gPokemonStorage + 0x4 +_08098CD0: .4byte gUnknown_083B6DB4 +_08098CD4: .4byte 0x00001050 +_08098CD8: + ldr r0, _08098D18 @ =gUnknown_083B6DB4 + ldr r0, [r0] + mov r2, r8 + lsls r1, r2, 2 + ldr r3, _08098D1C @ =0x00001050 + adds r0, r3 + adds r0, r1 + str r4, [r0] +_08098CE8: + adds r6, 0x50 + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _08098C70 + mov r1, r9 + lsls r0, r1, 16 + lsrs r7, r0, 16 + cmp r7, 0x4 + bls _08098C6A + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08098D18: .4byte gUnknown_083B6DB4 +_08098D1C: .4byte 0x00001050 + thumb_func_end sub_8098C48 + + thumb_func_start sub_8098D20 +sub_8098D20: @ 8098D20 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r2, r1, 4 + subs r2, r1 + lsls r2, 5 + lsls r0, r4, 2 + mov r9, r0 + adds r0, r4 + lsls r0, 4 + ldr r1, _08098DD4 @ =gPokemonStorage + 0x4 + adds r0, r1 + adds r7, r2, r0 + adds r0, r7, 0 + movs r1, 0x41 + bl GetBoxMonData + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0 + beq _08098DC4 + adds r0, r4, 0 + movs r1, 0x6 + bl __umodsi3 + adds r6, r0, 0 + lsls r0, r6, 24 + lsrs r0, 24 + lsls r5, r0, 1 + adds r5, r0 + lsls r5, 19 + movs r1, 0xC8 + lsls r1, 15 + adds r5, r1 + lsrs r5, 16 + adds r0, r4, 0 + movs r1, 0x6 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 1 + adds r4, r0 + lsls r4, 19 + movs r2, 0xB0 + lsls r2, 14 + adds r4, r2 + lsrs r4, 16 + adds r0, r7, 0 + movs r1, 0 + bl GetBoxMonData + adds r1, r0, 0 + movs r0, 0x2 + str r0, [sp] + movs r0, 0x12 + subs r0, r6 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + mov r0, r8 + adds r2, r5, 0 + adds r3, r4, 0 + bl sub_8099AFC + ldr r1, _08098DD8 @ =gUnknown_083B6DB4 + ldr r1, [r1] + ldr r2, _08098DDC @ =0x00001050 + adds r1, r2 + add r1, r9 + str r0, [r1] +_08098DC4: + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08098DD4: .4byte gPokemonStorage + 0x4 +_08098DD8: .4byte gUnknown_083B6DB4 +_08098DDC: .4byte 0x00001050 + thumb_func_end sub_8098D20 + + thumb_func_start sub_8098DE0 +sub_8098DE0: @ 8098DE0 + push {r4-r6,lr} + lsls r0, 16 + lsrs r4, r0, 16 + movs r2, 0 + ldr r0, _08098E18 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _08098E1C @ =0x00001050 + adds r3, r0, r1 + movs r6, 0x1 + ldr r5, _08098E20 @ =sub_8098E68 +_08098DF4: + lsls r0, r2, 2 + adds r1, r3, r0 + ldr r0, [r1] + cmp r0, 0 + beq _08098E08 + strh r4, [r0, 0x32] + ldr r0, [r1] + strh r6, [r0, 0x36] + ldr r0, [r1] + str r5, [r0, 0x1C] +_08098E08: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x1D + bls _08098DF4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08098E18: .4byte gUnknown_083B6DB4 +_08098E1C: .4byte 0x00001050 +_08098E20: .4byte sub_8098E68 + thumb_func_end sub_8098DE0 + + thumb_func_start sub_8098E24 +sub_8098E24: @ 8098E24 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x30] + movs r3, 0x30 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _08098E40 + subs r0, r1, 0x1 + strh r0, [r2, 0x30] + ldrh r0, [r2, 0x32] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] + b _08098E56 +_08098E40: + ldr r0, _08098E5C @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r3, _08098E60 @ =0x00001178 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ldrh r0, [r2, 0x34] + strh r0, [r2, 0x20] + ldr r0, _08098E64 @ =SpriteCallbackDummy + str r0, [r2, 0x1C] +_08098E56: + pop {r0} + bx r0 + .align 2, 0 +_08098E5C: .4byte gUnknown_083B6DB4 +_08098E60: .4byte 0x00001178 +_08098E64: .4byte SpriteCallbackDummy + thumb_func_end sub_8098E24 + + thumb_func_start sub_8098E68 +sub_8098E68: @ 8098E68 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x36] + movs r3, 0x36 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _08098E7C + subs r0, r1, 0x1 + strh r0, [r2, 0x36] + b _08098E98 +_08098E7C: + ldrh r0, [r2, 0x32] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] + ldrh r1, [r2, 0x24] + adds r0, r1 + strh r0, [r2, 0x38] + subs r0, 0x45 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xB6 + bls _08098E98 + ldr r0, _08098E9C @ =SpriteCallbackDummy + str r0, [r2, 0x1C] +_08098E98: + pop {r0} + bx r0 + .align 2, 0 +_08098E9C: .4byte SpriteCallbackDummy + thumb_func_end sub_8098E68 + + thumb_func_start sub_8098EA0 +sub_8098EA0: @ 8098EA0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0 + ldr r0, _08098ED8 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _08098EDC @ =0x00001050 + adds r7, r0, r1 +_08098EB0: + lsls r0, r5, 2 + adds r4, r7, r0 + ldr r0, [r4] + cmp r0, 0 + beq _08098EC2 + bl sub_8099BE0 + movs r0, 0 + str r0, [r4] +_08098EC2: + adds r0, r5, 0x6 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x4 + bls _08098EB0 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08098ED8: .4byte gUnknown_083B6DB4 +_08098EDC: .4byte 0x00001050 + thumb_func_end sub_8098EA0 + + thumb_func_start sub_8098EE0 +sub_8098EE0: @ 8098EE0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp, 0x8] + lsls r2, 16 + movs r0, 0x2C + str r0, [sp, 0x10] + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 19 + movs r1, 0xC8 + lsls r1, 15 + adds r0, r1 + lsrs r0, 16 + mov r10, r0 + ldr r0, [sp, 0x8] + adds r0, 0x1 + lsrs r3, r2, 16 + str r3, [sp, 0xC] + asrs r2, 16 + adds r1, r0, 0 + muls r1, r2 + mov r4, r10 + subs r1, r4, r1 + movs r0, 0x12 + subs r0, r6 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x18] + movs r0, 0 + str r0, [sp, 0x14] + mov r9, r0 + ldr r0, _08098FF8 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r2, _08098FFC @ =0x0000117d + adds r2, r0 + mov r8, r2 + ldr r3, _08099000 @ =0x00001050 + adds r3, r0, r3 + str r3, [sp, 0x20] + lsls r1, 16 + str r1, [sp, 0x1C] +_08098F42: + mov r4, r8 + ldrb r0, [r4] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + lsls r7, r6, 2 + adds r1, r7, r6 + lsls r1, 4 + ldr r2, _08099004 @ =gPokemonStorage + 0x4 + adds r4, r1, r2 + adds r0, r4 + movs r1, 0x41 + bl GetBoxMonData + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + beq _08098FC8 + mov r1, r8 + ldrb r0, [r1] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + adds r0, r4 + movs r1, 0 + bl GetBoxMonData + adds r1, r0, 0 + ldr r2, [sp, 0x10] + lsls r3, r2, 16 + asrs r3, 16 + movs r0, 0x2 + str r0, [sp] + ldr r4, [sp, 0x18] + str r4, [sp, 0x4] + adds r0, r5, 0 + ldr r4, [sp, 0x1C] + asrs r2, r4, 16 + bl sub_8099AFC + ldr r2, [sp, 0x20] + adds r1, r2, r7 + str r0, [r1] + cmp r0, 0 + beq _08098FC8 + mov r3, sp + ldrh r3, [r3, 0x8] + strh r3, [r0, 0x30] + ldr r0, [r1] + mov r4, sp + ldrh r4, [r4, 0xC] + strh r4, [r0, 0x32] + ldr r0, [r1] + mov r2, r10 + strh r2, [r0, 0x34] + ldr r1, [r1] + ldr r0, _08099008 @ =sub_8098E24 + str r0, [r1, 0x1C] + ldr r0, [sp, 0x14] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x14] +_08098FC8: + adds r0, r6, 0x6 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, [sp, 0x10] + adds r0, 0x18 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x10] + mov r0, r9 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + cmp r0, 0x4 + bls _08098F42 + ldr r0, [sp, 0x14] + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08098FF8: .4byte gUnknown_083B6DB4 +_08098FFC: .4byte 0x0000117d +_08099000: .4byte 0x00001050 +_08099004: .4byte gPokemonStorage + 0x4 +_08099008: .4byte sub_8098E24 + thumb_func_end sub_8098EE0 + + thumb_func_start sub_809900C +sub_809900C: @ 809900C + push {r4-r6,lr} + lsls r1, 24 + lsrs r1, 24 + ldr r4, _08099058 @ =gUnknown_083B6DB4 + ldr r5, [r4] + ldr r3, _0809905C @ =0x0000117c + adds r2, r5, r3 + movs r3, 0 + strb r3, [r2] + ldr r6, _08099060 @ =0x0000117d + adds r2, r5, r6 + strb r0, [r2] + ldr r2, _08099064 @ =0x0000117b + adds r0, r5, r2 + strb r1, [r0] + subs r6, 0xB + adds r2, r5, r6 + movs r0, 0x20 + strh r0, [r2] + lsls r1, 24 + asrs r1, 24 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + negs r0, r0 + adds r6, 0x4 + adds r2, r5, r6 + strh r0, [r2] + ldr r2, _08099068 @ =0x00001178 + adds r0, r5, r2 + strh r3, [r0] + cmp r1, 0 + ble _08099070 + ldr r3, _0809906C @ =0x0000117a + adds r1, r5, r3 + movs r0, 0 + b _08099076 + .align 2, 0 +_08099058: .4byte gUnknown_083B6DB4 +_0809905C: .4byte 0x0000117c +_08099060: .4byte 0x0000117d +_08099064: .4byte 0x0000117b +_08099068: .4byte 0x00001178 +_0809906C: .4byte 0x0000117a +_08099070: + ldr r6, _080990A0 @ =0x0000117a + adds r1, r5, r6 + movs r0, 0x5 +_08099076: + strb r0, [r1] + ldr r2, [r4] + ldr r1, _080990A0 @ =0x0000117a + adds r0, r2, r1 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, 0x64 + ldr r3, _080990A4 @ =0x00001174 + adds r1, r2, r3 + strh r0, [r1] + ldr r6, _080990A8 @ =0x00001176 + adds r2, r6 + movs r1, 0 + ldrsh r0, [r2, r1] + bl sub_8098DE0 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080990A0: .4byte 0x0000117a +_080990A4: .4byte 0x00001174 +_080990A8: .4byte 0x00001176 + thumb_func_end sub_809900C + + thumb_func_start sub_80990AC +sub_80990AC: @ 80990AC + push {r4-r6,lr} + ldr r0, _080990D4 @ =gUnknown_083B6DB4 + ldr r4, [r0] + ldr r0, _080990D8 @ =0x00001172 + adds r3, r4, r0 + ldrh r0, [r3] + cmp r0, 0 + beq _080990C0 + subs r0, 0x1 + strh r0, [r3] +_080990C0: + ldr r1, _080990DC @ =0x0000117c + adds r6, r4, r1 + ldrb r0, [r6] + cmp r0, 0x1 + beq _08099138 + cmp r0, 0x1 + bgt _080990E0 + cmp r0, 0 + beq _080990E8 + b _080991F0 + .align 2, 0 +_080990D4: .4byte gUnknown_083B6DB4 +_080990D8: .4byte 0x00001172 +_080990DC: .4byte 0x0000117c +_080990E0: + cmp r0, 0x2 + bne _080990E6 + b _080991E0 +_080990E6: + b _080991F0 +_080990E8: + ldr r2, _0809912C @ =0x00001174 + adds r5, r4, r2 + ldr r3, _08099130 @ =0x00001176 + adds r0, r4, r3 + ldrh r0, [r0] + ldrh r1, [r5] + adds r0, r1 + strh r0, [r5] + subs r0, 0x41 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xBA + bhi _08099104 + b _080991F8 +_08099104: + adds r2, 0x6 + adds r0, r4, r2 + ldrb r0, [r0] + bl sub_8098EA0 + ldr r3, _08099134 @ =0x0000117b + adds r0, r4, r3 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + ldrh r1, [r5] + adds r0, r1 + strh r0, [r5] + ldrb r0, [r6] + adds r0, 0x1 + strb r0, [r6] + b _080991F8 + .align 2, 0 +_0809912C: .4byte 0x00001174 +_08099130: .4byte 0x00001176 +_08099134: .4byte 0x0000117b +_08099138: + ldr r2, _08099194 @ =0x00001174 + adds r1, r4, r2 + ldr r5, _08099198 @ =0x00001176 + adds r2, r4, r5 + ldrh r0, [r2] + ldrh r5, [r1] + adds r0, r5 + strh r0, [r1] + ldr r0, _0809919C @ =0x0000117a + adds r5, r4, r0 + ldrb r0, [r5] + ldrh r1, [r3] + movs r3, 0 + ldrsh r2, [r2, r3] + bl sub_8098EE0 + ldr r2, _080991A0 @ =0x00001178 + adds r1, r4, r2 + lsls r0, 24 + lsrs r0, 24 + ldrh r3, [r1] + adds r0, r3 + strh r0, [r1] + ldr r1, _080991A4 @ =0x0000117b + adds r0, r4, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + cmp r1, 0 + ble _08099178 + ldrb r0, [r5] + cmp r0, 0x5 + beq _08099182 +_08099178: + cmp r1, 0 + bge _080991B0 + ldrb r0, [r5] + cmp r0, 0 + bne _080991B0 +_08099182: + ldr r0, _080991A8 @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r2, _080991AC @ =0x0000117c + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080991F8 + .align 2, 0 +_08099194: .4byte 0x00001174 +_08099198: .4byte 0x00001176 +_0809919C: .4byte 0x0000117a +_080991A0: .4byte 0x00001178 +_080991A4: .4byte 0x0000117b +_080991A8: .4byte gUnknown_083B6DB4 +_080991AC: .4byte 0x0000117c +_080991B0: + ldr r0, _080991D0 @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r5, _080991D4 @ =0x0000117a + adds r3, r1, r5 + ldr r2, _080991D8 @ =0x0000117b + adds r0, r1, r2 + ldrb r0, [r0] + ldrb r5, [r3] + adds r0, r5 + movs r2, 0 + strb r0, [r3] + ldr r0, _080991DC @ =0x0000117c + adds r1, r0 + strb r2, [r1] + b _080991F8 + .align 2, 0 +_080991D0: .4byte gUnknown_083B6DB4 +_080991D4: .4byte 0x0000117a +_080991D8: .4byte 0x0000117b +_080991DC: .4byte 0x0000117c +_080991E0: + ldr r1, _080991F4 @ =0x00001178 + adds r0, r4, r1 + ldrh r0, [r0] + cmp r0, 0 + bne _080991F8 + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] +_080991F0: + movs r0, 0 + b _080991FA + .align 2, 0 +_080991F4: .4byte 0x00001178 +_080991F8: + movs r0, 0x1 +_080991FA: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80990AC + + thumb_func_start sub_8099200 +sub_8099200: @ 8099200 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r4, _080992A0 @ =gPlayerParty + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + adds r1, r0, 0 + movs r0, 0x1 + str r0, [sp] + movs r0, 0xB + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r2, 0x68 + movs r3, 0x40 + bl sub_8099AFC + ldr r1, _080992A4 @ =gUnknown_083B6DB4 + ldr r1, [r1] + ldr r2, _080992A8 @ =0x00001038 + adds r1, r2 + str r0, [r1] + movs r7, 0x1 + movs r6, 0x1 +_08099246: + movs r0, 0x64 + adds r1, r6, 0 + muls r1, r0 + ldr r0, _080992A0 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + beq _080992AC + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + adds r1, r0, 0 + subs r0, r6, 0x1 + lsls r3, r0, 1 + adds r3, r0 + lsls r3, 19 + movs r0, 0x80 + lsls r0, 13 + adds r3, r0 + asrs r3, 16 + movs r0, 0x1 + str r0, [sp] + movs r0, 0xB + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r2, 0x98 + bl sub_8099AFC + ldr r1, _080992A4 @ =gUnknown_083B6DB4 + ldr r1, [r1] + lsls r2, r6, 2 + ldr r3, _080992A8 @ =0x00001038 + adds r1, r3 + adds r1, r2 + str r0, [r1] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + b _080992BA + .align 2, 0 +_080992A0: .4byte gPlayerParty +_080992A4: .4byte gUnknown_083B6DB4 +_080992A8: .4byte 0x00001038 +_080992AC: + ldr r0, _08099308 @ =gUnknown_083B6DB4 + ldr r0, [r0] + lsls r1, r6, 2 + ldr r2, _0809930C @ =0x00001038 + adds r0, r2 + adds r0, r1 + str r5, [r0] +_080992BA: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x5 + bls _08099246 + mov r3, r8 + cmp r3, 0 + bne _080992FA + movs r6, 0 + cmp r6, r7 + bcs _080992FA + ldr r0, _08099308 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809930C @ =0x00001038 + adds r3, r0, r1 + movs r4, 0x4 +_080992DA: + lsls r1, r6, 2 + adds r1, r3, r1 + ldr r2, [r1] + ldrh r0, [r2, 0x22] + subs r0, 0xA0 + strh r0, [r2, 0x22] + ldr r1, [r1] + adds r1, 0x3E + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, r7 + bcc _080992DA +_080992FA: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08099308: .4byte gUnknown_083B6DB4 +_0809930C: .4byte 0x00001038 + thumb_func_end sub_8099200 + + thumb_func_start sub_8099310 +sub_8099310: @ 8099310 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _08099368 @ =gUnknown_083B6DB4 + ldr r2, [r0] + ldr r0, _0809936C @ =0x00001171 + adds r1, r2, r0 + movs r0, 0 + strb r0, [r1] + movs r5, 0 + movs r6, 0 + mov r8, r2 + ldr r7, _0809936C @ =0x00001171 + add r7, r8 +_0809932C: + lsls r1, r5, 2 + ldr r0, _08099370 @ =0x00001038 + add r0, r8 + adds r4, r0, r1 + ldr r0, [r4] + cmp r0, 0 + beq _08099354 + cmp r5, r6 + beq _0809934E + adds r1, r6, 0 + bl sub_8099388 + movs r0, 0 + str r0, [r4] + ldrb r0, [r7] + adds r0, 0x1 + strb r0, [r7] +_0809934E: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_08099354: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _0809932C + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08099368: .4byte gUnknown_083B6DB4 +_0809936C: .4byte 0x00001171 +_08099370: .4byte 0x00001038 + thumb_func_end sub_8099310 + + thumb_func_start sub_8099374 +sub_8099374: @ 8099374 + ldr r0, _08099380 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _08099384 @ =0x00001171 + adds r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08099380: .4byte gUnknown_083B6DB4 +_08099384: .4byte 0x00001171 + thumb_func_end sub_8099374 + + thumb_func_start sub_8099388 +sub_8099388: @ 8099388 + push {r4,lr} + adds r2, r0, 0 + lsls r1, 16 + lsrs r1, 16 + strh r1, [r2, 0x30] + cmp r1, 0 + bne _0809939C + movs r3, 0x68 + movs r4, 0x40 + b _080993AE +_0809939C: + movs r3, 0x98 + subs r1, 0x1 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 19 + movs r1, 0x80 + lsls r1, 13 + adds r0, r1 + lsrs r4, r0, 16 +_080993AE: + ldrh r0, [r2, 0x20] + lsls r0, 3 + strh r0, [r2, 0x32] + ldrh r0, [r2, 0x22] + lsls r0, 3 + strh r0, [r2, 0x34] + lsls r1, r3, 3 + movs r3, 0x32 + ldrsh r0, [r2, r3] + subs r0, r1, r0 + cmp r0, 0 + bge _080993C8 + adds r0, 0x7 +_080993C8: + asrs r0, 3 + strh r0, [r2, 0x36] + lsls r0, r4, 16 + asrs r0, 13 + movs r3, 0x34 + ldrsh r1, [r2, r3] + subs r0, r1 + cmp r0, 0 + bge _080993DC + adds r0, 0x7 +_080993DC: + asrs r0, 3 + strh r0, [r2, 0x38] + movs r0, 0x8 + strh r0, [r2, 0x3A] + ldr r0, _080993F0 @ =sub_80993F4 + str r0, [r2, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080993F0: .4byte sub_80993F4 + thumb_func_end sub_8099388 + + thumb_func_start sub_80993F4 +sub_80993F4: @ 80993F4 + push {r4,lr} + adds r3, r0, 0 + ldrh r2, [r3, 0x3A] + movs r1, 0x3A + ldrsh r0, [r3, r1] + cmp r0, 0 + beq _08099424 + ldrh r0, [r3, 0x36] + ldrh r4, [r3, 0x32] + adds r0, r4 + strh r0, [r3, 0x32] + ldrh r1, [r3, 0x38] + ldrh r4, [r3, 0x34] + adds r1, r4 + strh r1, [r3, 0x34] + lsls r0, 16 + asrs r0, 19 + strh r0, [r3, 0x20] + lsls r1, 16 + asrs r1, 19 + strh r1, [r3, 0x22] + subs r0, r2, 0x1 + strh r0, [r3, 0x3A] + b _08099468 +_08099424: + movs r1, 0x30 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _08099434 + movs r0, 0x68 + strh r0, [r3, 0x20] + movs r0, 0x40 + b _08099446 +_08099434: + movs r0, 0x98 + strh r0, [r3, 0x20] + movs r4, 0x30 + ldrsh r1, [r3, r4] + subs r1, 0x1 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, 0x10 +_08099446: + strh r0, [r3, 0x22] + ldr r0, _08099470 @ =SpriteCallbackDummy + str r0, [r3, 0x1C] + ldr r0, _08099474 @ =gUnknown_083B6DB4 + ldr r2, [r0] + movs r0, 0x30 + ldrsh r1, [r3, r0] + lsls r1, 2 + ldr r4, _08099478 @ =0x00001038 + adds r0, r2, r4 + adds r0, r1 + str r3, [r0] + ldr r0, _0809947C @ =0x00001171 + adds r2, r0 + ldrb r0, [r2] + subs r0, 0x1 + strb r0, [r2] +_08099468: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08099470: .4byte SpriteCallbackDummy +_08099474: .4byte gUnknown_083B6DB4 +_08099478: .4byte 0x00001038 +_0809947C: .4byte 0x00001171 + thumb_func_end sub_80993F4 + + thumb_func_start sub_8099480 +sub_8099480: @ 8099480 + push {r4,lr} + ldr r0, _080994A0 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _080994A4 @ =0x00001034 + adds r4, r0, r1 + ldr r0, [r4] + cmp r0, 0 + beq _08099498 + bl sub_8099BE0 + movs r0, 0 + str r0, [r4] +_08099498: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080994A0: .4byte gUnknown_083B6DB4 +_080994A4: .4byte 0x00001034 + thumb_func_end sub_8099480 + + thumb_func_start sub_80994A8 +sub_80994A8: @ 80994A8 + push {r4-r6,lr} + movs r3, 0 + ldr r1, _080994FC @ =gUnknown_083B6DB4 + ldr r1, [r1] + ldr r2, _08099500 @ =0x00001038 + adds r5, r1, r2 + lsls r0, 16 + asrs r4, r0, 16 + movs r6, 0x5 + negs r6, r6 +_080994BC: + lsls r0, r3, 2 + adds r2, r5, r0 + ldr r1, [r2] + cmp r1, 0 + beq _0809950E + ldrh r0, [r1, 0x22] + adds r0, r4, r0 + strh r0, [r1, 0x22] + ldr r2, [r2] + ldrh r1, [r2, 0x26] + ldrh r0, [r2, 0x22] + adds r1, r0 + adds r0, r2, 0 + adds r0, 0x29 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r0, r1 + lsls r0, 16 + movs r1, 0x80 + lsls r1, 13 + adds r0, r1 + lsrs r0, 16 + cmp r0, 0xC0 + bls _08099504 + adds r0, r2, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _0809950E + .align 2, 0 +_080994FC: .4byte gUnknown_083B6DB4 +_08099500: .4byte 0x00001038 +_08099504: + adds r2, 0x3E + ldrb r1, [r2] + adds r0, r6, 0 + ands r0, r1 + strb r0, [r2] +_0809950E: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x5 + bls _080994BC + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80994A8 + + thumb_func_start sub_8099520 +sub_8099520: @ 8099520 + push {r4,lr} + lsls r0, 24 + ldr r1, _08099544 @ =gUnknown_083B6DB4 + ldr r1, [r1] + lsrs r0, 22 + ldr r2, _08099548 @ =0x00001038 + adds r1, r2 + adds r4, r1, r0 + ldr r0, [r4] + cmp r0, 0 + beq _0809953E + bl sub_8099BE0 + movs r0, 0 + str r0, [r4] +_0809953E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08099544: .4byte gUnknown_083B6DB4 +_08099548: .4byte 0x00001038 + thumb_func_end sub_8099520 + + thumb_func_start sub_809954C +sub_809954C: @ 809954C + push {r4-r6,lr} + movs r5, 0 + ldr r0, _0809957C @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _08099580 @ =0x00001038 + adds r6, r0, r1 +_08099558: + lsls r0, r5, 2 + adds r4, r6, r0 + ldr r0, [r4] + cmp r0, 0 + beq _0809956A + bl sub_8099BE0 + movs r0, 0 + str r0, [r4] +_0809956A: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _08099558 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809957C: .4byte gUnknown_083B6DB4 +_08099580: .4byte 0x00001038 + thumb_func_end sub_809954C + + thumb_func_start sub_8099584 +sub_8099584: @ 8099584 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r1, 24 + adds r5, r1, 0 + cmp r4, 0 + bne _080995B4 + ldr r3, _080995AC @ =gUnknown_083B6DB4 + ldr r0, [r3] + ldr r5, _080995B0 @ =0x00001034 + adds r2, r0, r5 + lsls r1, 2 + adds r5, 0x4 + adds r0, r5 + adds r0, r1 + ldr r1, [r0] + str r1, [r2] + str r4, [r0] + b _080995D0 + .align 2, 0 +_080995AC: .4byte gUnknown_083B6DB4 +_080995B0: .4byte 0x00001034 +_080995B4: + cmp r4, 0x1 + bne _080995F4 + ldr r3, _080995FC @ =gUnknown_083B6DB4 + ldr r0, [r3] + ldr r1, _08099600 @ =0x00001034 + adds r2, r0, r1 + lsls r1, r5, 2 + ldr r4, _08099604 @ =0x00001050 + adds r0, r4 + adds r0, r1 + ldr r1, [r0] + str r1, [r2] + movs r1, 0 + str r1, [r0] +_080995D0: + ldr r2, [r3] + ldr r5, _08099600 @ =0x00001034 + adds r2, r5 + ldr r1, [r2] + ldr r0, _08099608 @ =sub_80999C4 + str r0, [r1, 0x1C] + ldr r3, [r2] + ldrb r1, [r3, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3, 0x5] + ldr r0, [r2] + adds r0, 0x43 + movs r1, 0x7 + strb r1, [r0] +_080995F4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080995FC: .4byte gUnknown_083B6DB4 +_08099600: .4byte 0x00001034 +_08099604: .4byte 0x00001050 +_08099608: .4byte sub_80999C4 + thumb_func_end sub_8099584 + + thumb_func_start sub_809960C +sub_809960C: @ 809960C + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + cmp r0, 0xE + bne _08099654 + ldr r4, _08099648 @ =gUnknown_083B6DB4 + ldr r0, [r4] + lsls r1, r6, 2 + ldr r2, _0809964C @ =0x00001038 + adds r3, r0, r2 + adds r3, r1 + ldr r1, _08099650 @ =0x00001034 + adds r0, r1 + ldr r2, [r0] + str r2, [r3] + ldrb r1, [r2, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2, 0x5] + ldr r0, [r3] + adds r0, 0x43 + movs r1, 0xB + strb r1, [r0] + b _0809968A + .align 2, 0 +_08099648: .4byte gUnknown_083B6DB4 +_0809964C: .4byte 0x00001038 +_08099650: .4byte 0x00001034 +_08099654: + ldr r5, _080996A0 @ =gUnknown_083B6DB4 + ldr r0, [r5] + lsls r1, r6, 2 + ldr r2, _080996A4 @ =0x00001050 + adds r3, r0, r2 + adds r3, r1 + ldr r1, _080996A8 @ =0x00001034 + adds r0, r1 + ldr r2, [r0] + str r2, [r3] + ldrb r1, [r2, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r2, 0x5] + ldr r4, [r3] + adds r0, r6, 0 + movs r1, 0x6 + bl __umodsi3 + movs r1, 0x12 + subs r1, r0 + adds r4, 0x43 + strb r1, [r4] + adds r4, r5, 0 +_0809968A: + ldr r1, [r4] + ldr r2, _080996A8 @ =0x00001034 + adds r1, r2 + ldr r2, [r1] + ldr r0, _080996AC @ =SpriteCallbackDummy + str r0, [r2, 0x1C] + movs r0, 0 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080996A0: .4byte gUnknown_083B6DB4 +_080996A4: .4byte 0x00001050 +_080996A8: .4byte 0x00001034 +_080996AC: .4byte SpriteCallbackDummy + thumb_func_end sub_809960C + + thumb_func_start sub_80996B0 +sub_80996B0: @ 80996B0 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + cmp r0, 0xE + bne _080996D8 + ldr r3, _080996CC @ =gUnknown_083B6DB4 + ldr r1, [r3] + ldr r0, _080996D0 @ =0x000010c8 + adds r2, r1, r0 + lsls r0, r4, 2 + ldr r4, _080996D4 @ =0x00001038 + b _080996E4 + .align 2, 0 +_080996CC: .4byte gUnknown_083B6DB4 +_080996D0: .4byte 0x000010c8 +_080996D4: .4byte 0x00001038 +_080996D8: + ldr r3, _08099704 @ =gUnknown_083B6DB4 + ldr r1, [r3] + ldr r0, _08099708 @ =0x000010c8 + adds r2, r1, r0 + lsls r0, r4, 2 + ldr r4, _0809970C @ =0x00001050 +_080996E4: + adds r0, r4 + adds r1, r0 + str r1, [r2] + ldr r1, [r3] + ldr r2, _08099710 @ =0x00001034 + adds r0, r1, r2 + ldr r2, [r0] + ldr r0, _08099714 @ =SpriteCallbackDummy + str r0, [r2, 0x1C] + ldr r4, _08099718 @ =0x00001170 + adds r1, r4 + movs r0, 0 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08099704: .4byte gUnknown_083B6DB4 +_08099708: .4byte 0x000010c8 +_0809970C: .4byte 0x00001050 +_08099710: .4byte 0x00001034 +_08099714: .4byte SpriteCallbackDummy +_08099718: .4byte 0x00001170 + thumb_func_end sub_80996B0 + + thumb_func_start sub_809971C +sub_809971C: @ 809971C + push {r4-r7,lr} + ldr r0, _08099730 @ =gUnknown_083B6DB4 + ldr r2, [r0] + ldr r0, _08099734 @ =0x00001170 + adds r7, r2, r0 + ldrb r0, [r7] + cmp r0, 0x10 + bne _08099738 + movs r0, 0 + b _08099800 + .align 2, 0 +_08099730: .4byte gUnknown_083B6DB4 +_08099734: .4byte 0x00001170 +_08099738: + adds r0, 0x1 + strb r0, [r7] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809975E + ldr r1, _08099808 @ =0x000010c8 + adds r0, r2, r1 + ldr r0, [r0] + ldr r1, [r0] + ldrh r0, [r1, 0x22] + subs r0, 0x1 + strh r0, [r1, 0x22] + ldr r4, _0809980C @ =0x00001034 + adds r0, r2, r4 + ldr r1, [r0] + ldrh r0, [r1, 0x22] + adds r0, 0x1 + strh r0, [r1, 0x22] +_0809975E: + ldr r0, _08099808 @ =0x000010c8 + adds r5, r2, r0 + ldr r0, [r5] + ldr r1, [r0] + ldr r3, _08099810 @ =gSineTable + ldrb r0, [r7] + lsls r0, 4 + adds r0, r3 + movs r4, 0 + ldrsh r0, [r0, r4] + cmp r0, 0 + bge _08099778 + adds r0, 0xF +_08099778: + asrs r0, 4 + strh r0, [r1, 0x24] + ldr r0, _0809980C @ =0x00001034 + adds r6, r2, r0 + ldr r1, [r6] + ldrb r0, [r7] + lsls r0, 4 + adds r0, r3 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + bge _08099792 + adds r0, 0xF +_08099792: + asrs r0, 4 + negs r0, r0 + strh r0, [r1, 0x24] + ldrb r0, [r7] + cmp r0, 0x8 + bne _080997DE + ldr r4, [r6] + ldr r0, [r5] + ldr r0, [r0] + ldrb r0, [r0, 0x5] + movs r2, 0xC + ands r2, r0 + ldrb r3, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + adds r0, r1, 0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, 0x5] + ldr r2, [r6] + ldr r0, [r5] + ldr r0, [r0] + adds r0, 0x43 + ldrb r0, [r0] + adds r2, 0x43 + strb r0, [r2] + ldr r0, [r5] + ldr r2, [r0] + ldrb r0, [r2, 0x5] + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r2, 0x5] + ldr r0, [r5] + ldr r0, [r0] + adds r0, 0x43 + movs r1, 0x7 + strb r1, [r0] +_080997DE: + ldrb r0, [r7] + cmp r0, 0x10 + bne _080997FE + ldr r1, [r6] + ldr r0, [r5] + ldr r0, [r0] + str r0, [r6] + ldr r0, [r5] + str r1, [r0] + ldr r1, [r6] + ldr r0, _08099814 @ =sub_80999C4 + str r0, [r1, 0x1C] + ldr r0, [r5] + ldr r1, [r0] + ldr r0, _08099818 @ =SpriteCallbackDummy + str r0, [r1, 0x1C] +_080997FE: + movs r0, 0x1 +_08099800: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08099808: .4byte 0x000010c8 +_0809980C: .4byte 0x00001034 +_08099810: .4byte gSineTable +_08099814: .4byte sub_80999C4 +_08099818: .4byte SpriteCallbackDummy + thumb_func_end sub_809971C + + thumb_func_start sub_809981C +sub_809981C: @ 809981C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + adds r2, r0, 0 + lsls r1, 24 + lsrs r4, r1, 24 + cmp r0, 0x1 + beq _08099858 + cmp r0, 0x1 + bgt _08099836 + cmp r0, 0 + beq _0809983C + b _080998C0 +_08099836: + cmp r2, 0x2 + beq _0809987C + b _080998C0 +_0809983C: + ldr r3, _0809984C @ =gUnknown_083B6DB4 + ldr r1, [r3] + ldr r0, _08099850 @ =0x000010cc + adds r2, r1, r0 + lsls r0, r4, 2 + ldr r4, _08099854 @ =0x00001038 + b _08099864 + .align 2, 0 +_0809984C: .4byte gUnknown_083B6DB4 +_08099850: .4byte 0x000010cc +_08099854: .4byte 0x00001038 +_08099858: + ldr r3, _08099870 @ =gUnknown_083B6DB4 + ldr r1, [r3] + ldr r0, _08099874 @ =0x000010cc + adds r2, r1, r0 + lsls r0, r4, 2 + ldr r4, _08099878 @ =0x00001050 +_08099864: + adds r0, r4 + adds r1, r0 + str r1, [r2] + adds r0, r3, 0 + b _0809988A + .align 2, 0 +_08099870: .4byte gUnknown_083B6DB4 +_08099874: .4byte 0x000010cc +_08099878: .4byte 0x00001050 +_0809987C: + ldr r0, _080998C8 @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r3, _080998CC @ =0x000010cc + adds r2, r1, r3 + ldr r4, _080998D0 @ =0x00001034 + adds r1, r4 + str r1, [r2] +_0809988A: + ldr r0, [r0] + ldr r1, _080998CC @ =0x000010cc + adds r4, r0, r1 + ldr r0, [r4] + ldr r0, [r0] + cmp r0, 0 + beq _080998C0 + bl InitSpriteAffineAnim + ldr r0, [r4] + ldr r2, [r0] + ldrb r1, [r2, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x1] + ldr r0, [r4] + ldr r1, [r0] + ldr r0, _080998D4 @ =gUnknown_083B6F5C + str r0, [r1, 0x10] + ldr r0, [r4] + ldr r0, [r0] + movs r1, 0 + bl StartSpriteAffineAnim +_080998C0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080998C8: .4byte gUnknown_083B6DB4 +_080998CC: .4byte 0x000010cc +_080998D0: .4byte 0x00001034 +_080998D4: .4byte gUnknown_083B6F5C + thumb_func_end sub_809981C + + thumb_func_start sub_80998D8 +sub_80998D8: @ 80998D8 + push {lr} + ldr r0, _080998FC @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _08099900 @ =0x000010cc + adds r0, r1 + ldr r0, [r0] + ldr r1, [r0] + cmp r1, 0 + beq _080998F8 + adds r3, r1, 0 + adds r3, 0x3E + ldrb r2, [r3] + movs r0, 0x4 + ands r0, r2 + cmp r0, 0 + beq _08099904 +_080998F8: + movs r0, 0 + b _0809991A + .align 2, 0 +_080998FC: .4byte gUnknown_083B6DB4 +_08099900: .4byte 0x000010cc +_08099904: + adds r0, r1, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08099918 + movs r0, 0x4 + orrs r0, r2 + strb r0, [r3] +_08099918: + movs r0, 0x1 +_0809991A: + pop {r1} + bx r1 + thumb_func_end sub_80998D8 + + thumb_func_start sub_8099920 +sub_8099920: @ 8099920 + push {r4,lr} + ldr r0, _08099950 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _08099954 @ =0x000010cc + adds r4, r0, r1 + ldr r0, [r4] + ldr r0, [r0] + cmp r0, 0 + beq _0809994A + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldr r0, [r4] + ldr r0, [r0] + bl sub_8099BE0 + ldr r1, [r4] + movs r0, 0 + str r0, [r1] +_0809994A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08099950: .4byte gUnknown_083B6DB4 +_08099954: .4byte 0x000010cc + thumb_func_end sub_8099920 + + thumb_func_start sub_8099958 +sub_8099958: @ 8099958 + push {lr} + ldr r0, _08099988 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809998C @ =0x000010cc + adds r3, r0, r1 + ldr r0, [r3] + ldr r0, [r0] + cmp r0, 0 + beq _08099982 + adds r2, r0, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldr r0, [r3] + ldr r0, [r0] + movs r1, 0x1 + bl StartSpriteAffineAnim +_08099982: + pop {r0} + bx r0 + .align 2, 0 +_08099988: .4byte gUnknown_083B6DB4 +_0809998C: .4byte 0x000010cc + thumb_func_end sub_8099958 + + thumb_func_start sub_8099990 +sub_8099990: @ 8099990 + push {lr} + ldr r0, _080999A4 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _080999A8 @ =0x000010cc + adds r2, r0, r1 + ldr r0, [r2] + cmp r0, 0 + bne _080999AC + movs r0, 0 + b _080999C0 + .align 2, 0 +_080999A4: .4byte gUnknown_083B6DB4 +_080999A8: .4byte 0x000010cc +_080999AC: + ldr r0, [r0] + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080999BE + movs r0, 0 + str r0, [r2] +_080999BE: + movs r0, 0x1 +_080999C0: + pop {r1} + bx r1 + thumb_func_end sub_8099990 + + thumb_func_start sub_80999C4 +sub_80999C4: @ 80999C4 + ldr r1, _080999E4 @ =gUnknown_083B6DB4 + ldr r1, [r1] + movs r2, 0x8E + lsls r2, 5 + adds r1, r2 + ldr r2, [r1] + ldrh r2, [r2, 0x20] + strh r2, [r0, 0x20] + ldr r2, [r1] + ldrh r1, [r2, 0x26] + ldrh r2, [r2, 0x22] + adds r1, r2 + adds r1, 0x4 + strh r1, [r0, 0x22] + bx lr + .align 2, 0 +_080999E4: .4byte gUnknown_083B6DB4 + thumb_func_end sub_80999C4 + + thumb_func_start sub_80999E8 +sub_80999E8: @ 80999E8 + push {r4-r6,lr} + lsls r0, 16 + lsrs r3, r0, 16 + movs r4, 0 + ldr r1, _08099A58 @ =gUnknown_083B6DB4 + ldr r0, [r1] + movs r2, 0x89 + lsls r2, 5 + adds r0, r2 + ldrh r0, [r0] + adds r2, r1, 0 + cmp r0, r3 + beq _08099A20 + adds r6, r2, 0 + movs r5, 0x89 + lsls r5, 5 +_08099A08: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x27 + bhi _08099A20 + ldr r0, [r6] + lsls r1, r4, 1 + adds r0, r5 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r3 + bne _08099A08 +_08099A20: + cmp r4, 0x28 + bne _08099A60 + movs r4, 0 + ldr r0, [r2] + movs r5, 0x89 + lsls r5, 5 + adds r0, r5 + ldrh r0, [r0] + cmp r0, 0 + beq _08099A4E + adds r6, r2, 0 +_08099A36: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x27 + bhi _08099A4E + ldr r0, [r6] + lsls r1, r4, 1 + adds r0, r5 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + bne _08099A36 +_08099A4E: + cmp r4, 0x28 + bne _08099A60 + ldr r0, _08099A5C @ =0x0000ffff + b _08099A94 + .align 2, 0 +_08099A58: .4byte gUnknown_083B6DB4 +_08099A5C: .4byte 0x0000ffff +_08099A60: + ldr r1, [r2] + lsls r2, r4, 1 + movs r5, 0x89 + lsls r5, 5 + adds r0, r1, r5 + adds r0, r2 + strh r3, [r0] + ldr r0, _08099A9C @ =0x000010d0 + adds r1, r0 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r4, 20 + lsrs r4, 16 + ldr r1, _08099AA0 @ =gMonIconTable + lsls r0, r3, 2 + adds r0, r1 + ldr r0, [r0] + lsls r1, r4, 5 + ldr r2, _08099AA4 @ =0x06010000 + adds r1, r2 + ldr r2, _08099AA8 @ =0x04000080 + bl CpuSet + adds r0, r4, 0 +_08099A94: + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08099A9C: .4byte 0x000010d0 +_08099AA0: .4byte gMonIconTable +_08099AA4: .4byte 0x06010000 +_08099AA8: .4byte 0x04000080 + thumb_func_end sub_80999E8 + + thumb_func_start sub_8099AAC +sub_8099AAC: @ 8099AAC + push {r4-r7,lr} + lsls r0, 16 + lsrs r6, r0, 16 + movs r3, 0 + ldr r0, _08099AE4 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r1, 0x89 + lsls r1, 5 + adds r5, r0, r1 + subs r1, 0x50 + adds r4, r0, r1 + ldr r0, _08099AE8 @ =0x0000ffff + adds r7, r0, 0 +_08099AC6: + lsls r1, r3, 1 + adds r2, r5, r1 + ldrh r0, [r2] + cmp r0, r6 + bne _08099AEC + adds r1, r4, r1 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ands r0, r7 + cmp r0, 0 + bne _08099AF6 + strh r0, [r2] + b _08099AF6 + .align 2, 0 +_08099AE4: .4byte gUnknown_083B6DB4 +_08099AE8: .4byte 0x0000ffff +_08099AEC: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x27 + bls _08099AC6 +_08099AF6: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8099AAC + + thumb_func_start sub_8099AFC +sub_8099AFC: @ 8099AFC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + ldr r4, [sp, 0x3C] + ldr r5, [sp, 0x40] + lsls r0, 16 + lsrs r6, r0, 16 + lsls r2, 16 + lsrs r2, 16 + str r2, [sp, 0x18] + lsls r3, 16 + lsrs r3, 16 + mov r8, r3 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + mov r9, r5 + mov r2, sp + ldr r0, _08099BAC @ =gSpriteTemplate_83B6F14 + ldm r0!, {r3,r5,r7} + stm r2!, {r3,r5,r7} + ldm r0!, {r3,r5,r7} + stm r2!, {r3,r5,r7} + adds r0, r6, 0 + bl mon_icon_convert_unown_species_id + mov r10, r0 + mov r6, r10 + mov r2, sp + ldr r1, _08099BB0 @ =gMonIconPaletteIndices + adds r1, r6, r1 + ldr r3, _08099BB4 @ =0x0000dac0 + adds r0, r3, 0 + ldrb r1, [r1] + adds r0, r1 + strh r0, [r2, 0x2] + adds r0, r6, 0 + bl sub_80999E8 + lsls r0, 16 + lsrs r0, 16 + adds r5, r0, 0 + ldr r0, _08099BB8 @ =0x0000ffff + cmp r5, r0 + beq _08099BCE + ldr r7, [sp, 0x18] + lsls r1, r7, 16 + asrs r1, 16 + mov r0, r8 + lsls r2, r0, 16 + asrs r2, 16 + mov r0, sp + mov r3, r9 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _08099BC8 + ldr r1, _08099BBC @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldr r2, _08099BC0 @ =0x000003ff + ands r2, r5 + ldrh r3, [r0, 0x4] + ldr r1, _08099BC4 @ =0xfffffc00 + ands r1, r3 + orrs r1, r2 + strh r1, [r0, 0x4] + movs r1, 0x3 + ands r4, r1 + lsls r3, r4, 2 + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, 0x5] + mov r1, r10 + strh r1, [r0, 0x2E] + b _08099BD0 + .align 2, 0 +_08099BAC: .4byte gSpriteTemplate_83B6F14 +_08099BB0: .4byte gMonIconPaletteIndices +_08099BB4: .4byte 0x0000dac0 +_08099BB8: .4byte 0x0000ffff +_08099BBC: .4byte gSprites +_08099BC0: .4byte 0x000003ff +_08099BC4: .4byte 0xfffffc00 +_08099BC8: + adds r0, r6, 0 + bl sub_8099AAC +_08099BCE: + movs r0, 0 +_08099BD0: + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8099AFC + + thumb_func_start sub_8099BE0 +sub_8099BE0: @ 8099BE0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + bl sub_8099AAC + adds r0, r4, 0 + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8099BE0 + + thumb_func_start sub_8099BF8 +sub_8099BF8: @ 8099BF8 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _08099C50 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _08099C54 @ =0x000008ba + adds r2, r0, r1 + movs r1, 0 + strb r1, [r2] + ldr r2, _08099C58 @ =0x000008b4 + adds r0, r2 + strh r1, [r0] + str r1, [sp] + ldr r1, _08099C5C @ =0x040000d4 + mov r0, sp + str r0, [r1] + ldr r0, _08099C60 @ =0x0600d000 + str r0, [r1, 0x4] + ldr r0, _08099C64 @ =0x85000400 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r0, r4, 0 + movs r1, 0 + bl sub_8099EB0 + adds r0, r4, 0 + bl sub_809A23C + bl sub_809A6DC + adds r0, r4, 0 + bl sub_8098C48 + ldr r1, _08099C68 @ =REG_BG2CNT + ldr r2, _08099C6C @ =0x00005a0a + adds r0, r2, 0 + strh r0, [r1] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08099C50: .4byte gUnknown_083B6DB4 +_08099C54: .4byte 0x000008ba +_08099C58: .4byte 0x000008b4 +_08099C5C: .4byte 0x040000d4 +_08099C60: .4byte 0x0600d000 +_08099C64: .4byte 0x85000400 +_08099C68: .4byte REG_BG2CNT +_08099C6C: .4byte 0x00005a0a + thumb_func_end sub_8099BF8 + + thumb_func_start sub_8099C70 +sub_8099C70: @ 8099C70 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + bl sub_8099D90 + lsls r0, 24 + asrs r4, r0, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8099EB0 + ldr r0, _08099D10 @ =gUnknown_083B6DB4 + ldr r2, [r0] + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 1 + ldr r3, _08099D14 @ =0x000008b6 + adds r1, r2, r3 + strh r0, [r1] + ldr r0, _08099D18 @ =0x000008b8 + adds r1, r2, r0 + movs r0, 0x20 + strh r0, [r1] + ldr r1, _08099D1C @ =0x000008bb + adds r0, r2, r1 + strb r5, [r0] + movs r1, 0 + cmp r4, 0 + bgt _08099CAE + movs r1, 0x5 +_08099CAE: + ldr r3, _08099D20 @ =0x000008bc + adds r0, r2, r3 + strh r1, [r0] + ldr r1, _08099D24 @ =0x000008be + adds r0, r2, r1 + strh r4, [r0] + movs r1, 0x38 + cmp r4, 0 + ble _08099CC6 + movs r3, 0x84 + lsls r3, 1 + adds r1, r3, 0 +_08099CC6: + movs r3, 0x8C + lsls r3, 4 + adds r0, r2, r3 + strh r1, [r0] + movs r1, 0 + cmp r4, 0 + bgt _08099CD6 + movs r1, 0x5 +_08099CD6: + ldr r3, _08099D28 @ =0x000008c2 + adds r0, r2, r3 + strh r1, [r0] + ldr r1, _08099D2C @ =0x000008c4 + adds r0, r2, r1 + strh r4, [r0] + adds r3, 0x4 + adds r1, r2, r3 + movs r0, 0 + strh r0, [r1] + ldr r0, _08099D30 @ =0x000008c8 + adds r1, r2, r0 + movs r0, 0x2 + strh r0, [r1] + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_809900C + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_809A3D0 + adds r0, r4, 0 + bl sub_809A774 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08099D10: .4byte gUnknown_083B6DB4 +_08099D14: .4byte 0x000008b6 +_08099D18: .4byte 0x000008b8 +_08099D1C: .4byte 0x000008bb +_08099D20: .4byte 0x000008bc +_08099D24: .4byte 0x000008be +_08099D28: .4byte 0x000008c2 +_08099D2C: .4byte 0x000008c4 +_08099D30: .4byte 0x000008c8 + thumb_func_end sub_8099C70 + + thumb_func_start sub_8099D34 +sub_8099D34: @ 8099D34 + push {r4,lr} + bl sub_80990AC + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _08099D78 @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r0, _08099D7C @ =0x000008b8 + adds r3, r1, r0 + ldrh r0, [r3] + cmp r0, 0 + beq _08099D88 + ldr r4, _08099D80 @ =0x000008b4 + adds r2, r1, r4 + adds r4, 0x2 + adds r0, r1, r4 + ldrh r0, [r0] + ldrh r1, [r2] + adds r0, r1 + ldr r1, _08099D84 @ =0x000001ff + ands r0, r1 + strh r0, [r2] + ldrh r0, [r3] + subs r0, 0x1 + strh r0, [r3] + lsls r0, 16 + cmp r0, 0 + bne _08099D74 + bl sub_809A598 + bl sub_809A810 +_08099D74: + movs r0, 0x1 + b _08099D8A + .align 2, 0 +_08099D78: .4byte gUnknown_083B6DB4 +_08099D7C: .4byte 0x000008b8 +_08099D80: .4byte 0x000008b4 +_08099D84: .4byte 0x000001ff +_08099D88: + adds r0, r2, 0 +_08099D8A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8099D34 + + thumb_func_start sub_8099D90 +sub_8099D90: @ 8099D90 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl get_preferred_box + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0 + cmp r1, r4 + beq _08099DBA +_08099DA4: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xD + bls _08099DB0 + movs r1, 0 +_08099DB0: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r1, r4 + bne _08099DA4 +_08099DBA: + movs r0, 0x1 + negs r0, r0 + cmp r2, 0x6 + bhi _08099DC4 + movs r0, 0x1 +_08099DC4: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8099D90 + + thumb_func_start sub_8099DCC +sub_8099DCC: @ 8099DCC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08099DF8 @ =gPokemonStorage + ldr r2, _08099DFC @ =0x000083c2 + adds r1, r2 + adds r0, r1 + movs r1, 0 + strb r4, [r0] + ldr r0, _08099E00 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r2, _08099E04 @ =0x00001032 + adds r0, r2 + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08099DF8: .4byte gPokemonStorage +_08099DFC: .4byte 0x000083c2 +_08099E00: .4byte gUnknown_083B6DB4 +_08099E04: .4byte 0x00001032 + thumb_func_end sub_8099DCC + + thumb_func_start sub_8099E08 +sub_8099E08: @ 8099E08 + push {r4,r5,lr} + sub sp, 0x4 + ldr r0, _08099E24 @ =gUnknown_083B6DB4 + ldr r5, [r0] + ldr r0, _08099E28 @ =0x00001032 + adds r4, r5, r0 + ldrb r0, [r4] + cmp r0, 0x1 + beq _08099E54 + cmp r0, 0x1 + bgt _08099E2C + cmp r0, 0 + beq _08099E36 + b _08099EA6 + .align 2, 0 +_08099E24: .4byte gUnknown_083B6DB4 +_08099E28: .4byte 0x00001032 +_08099E2C: + cmp r0, 0x2 + beq _08099E90 + cmp r0, 0x3 + beq _08099EA2 + b _08099EA6 +_08099E36: + ldr r1, _08099E4C @ =0x00000d08 + adds r0, r5, r1 + ldr r0, [r0] + ldr r1, _08099E50 @ =0x0000ffff + str r1, [sp] + movs r1, 0x1 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _08099E9A + .align 2, 0 +_08099E4C: .4byte 0x00000d08 +_08099E50: .4byte 0x0000ffff +_08099E54: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _08099EA6 + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_8099EB0 + bl sub_809A654 + ldr r1, _08099E88 @ =0x00000d08 + adds r0, r5, r1 + ldr r0, [r0] + ldr r1, _08099E8C @ =0x0000ffff + str r1, [sp] + movs r1, 0x1 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + b _08099E9A + .align 2, 0 +_08099E88: .4byte 0x00000d08 +_08099E8C: .4byte 0x0000ffff +_08099E90: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _08099EA6 +_08099E9A: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _08099EA6 +_08099EA2: + movs r0, 0 + b _08099EA8 +_08099EA6: + movs r0, 0x1 +_08099EA8: + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8099E08 + + thumb_func_start sub_8099EB0 +sub_8099EB0: @ 8099EB0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + cmp r1, 0 + beq _08099ED8 + ldr r0, _08099F38 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r2, 0 + ldr r3, _08099F3C @ =0x000008ba + adds r1, r0, r3 + ldrb r0, [r1] + cmp r0, 0 + bne _08099ED0 + movs r2, 0x1 +_08099ED0: + strb r2, [r1] + ldr r0, _08099F40 @ =0x0600d000 + bl sub_809A14C +_08099ED8: + ldr r0, _08099F44 @ =gPokemonStorage + ldr r1, _08099F48 @ =0x000083c2 + adds r0, r1 + adds r0, r4, r0 + ldrb r4, [r0] + lsls r4, 4 + ldr r0, _08099F4C @ =gWallpaperTable + adds r4, r0 + ldr r0, [r4, 0xC] + ldr r1, _08099F38 @ =gUnknown_083B6DB4 + ldr r5, [r1] + ldr r2, _08099F3C @ =0x000008ba + adds r6, r5, r2 + ldrb r2, [r6] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 20 + movs r3, 0x80 + lsls r3, 15 + adds r1, r3 + lsrs r1, 16 + movs r2, 0x60 + bl LoadPalette + ldr r0, [r4, 0x8] + ldr r1, _08099F50 @ =0x00000d62 + adds r5, r1 + adds r1, r5, 0 + bl LZ77UnCompWram + ldr r0, _08099F40 @ =0x0600d000 + lsls r2, r7, 24 + asrs r2, 24 + ldrb r3, [r6] + adds r1, r5, 0 + bl sub_8099F58 + ldr r0, [r4] + ldrb r1, [r6] + lsls r1, 13 + ldr r2, _08099F54 @ =0x06008000 + adds r1, r2 + bl LZ77UnCompVram + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08099F38: .4byte gUnknown_083B6DB4 +_08099F3C: .4byte 0x000008ba +_08099F40: .4byte 0x0600d000 +_08099F44: .4byte gPokemonStorage +_08099F48: .4byte 0x000083c2 +_08099F4C: .4byte gWallpaperTable +_08099F50: .4byte 0x00000d62 +_08099F54: .4byte 0x06008000 + thumb_func_end sub_8099EB0 + + thumb_func_start sub_8099F58 +sub_8099F58: @ 8099F58 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + mov r9, r0 + adds r5, r1, 0 + lsls r2, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r0, r3, 8 + str r0, [sp] + lsls r0, r3, 1 + adds r0, r3 + adds r0, 0x4 + lsls r0, 28 + lsrs r0, 16 + str r0, [sp, 0x4] + ldr r0, _08099FB8 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _08099FBC @ =0x000008b4 + adds r0, r1 + ldrh r1, [r0] + lsrs r1, 3 + adds r1, 0xA + lsrs r0, r2, 24 + mov r8, r0 + asrs r2, 24 + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + movs r0, 0x3F + ands r1, r0 + str r1, [sp, 0x8] + adds r2, r1, 0 + cmp r2, 0xC + bgt _08099FC0 + movs r6, 0x14 + movs r3, 0 + lsls r0, r2, 1 + adds r0, 0x80 + mov r1, r9 + adds r4, r1, r0 + movs r7, 0 + b _0809A020 + .align 2, 0 +_08099FB8: .4byte gUnknown_083B6DB4 +_08099FBC: .4byte 0x000008b4 +_08099FC0: + cmp r2, 0x1F + bgt _08099FE6 + movs r0, 0x20 + subs r0, r2 + lsls r0, 16 + movs r1, 0x14 + lsrs r6, r0, 16 + asrs r0, 16 + subs r1, r0 + lsls r1, 16 + lsrs r3, r1, 16 + lsls r0, r2, 1 + adds r0, 0x80 + mov r2, r9 + adds r4, r2, r0 + movs r7, 0x88 + lsls r7, 4 + add r7, r9 + b _0809A020 +_08099FE6: + cmp r2, 0x2C + bgt _08099FFE + movs r6, 0x14 + movs r3, 0 + lsls r0, r2, 1 + movs r1, 0x84 + lsls r1, 4 + adds r0, r1 + mov r2, r9 + adds r4, r2, r0 + movs r7, 0 + b _0809A020 +_08099FFE: + movs r0, 0x40 + subs r0, r2 + lsls r0, 16 + movs r1, 0x14 + lsrs r6, r0, 16 + asrs r0, 16 + subs r1, r0 + lsls r1, 16 + lsrs r3, r1, 16 + lsls r0, r2, 1 + movs r1, 0x84 + lsls r1, 4 + adds r0, r1 + mov r2, r9 + adds r4, r2, r0 + mov r7, r9 + adds r7, 0x80 +_0809A020: + movs r1, 0 + mov r0, r8 + lsls r0, 24 + str r0, [sp, 0x14] + lsls r0, r6, 16 + asrs r0, 16 + mov r8, r0 + lsls r3, 16 + str r3, [sp, 0xC] + asrs r2, r3, 16 + str r2, [sp, 0x10] +_0809A036: + movs r3, 0 + adds r0, r4, 0 + adds r0, 0x40 + str r0, [sp, 0x18] + adds r2, r7, 0 + adds r2, 0x40 + str r2, [sp, 0x1C] + adds r1, 0x1 + mov r10, r1 + cmp r3, r8 + bge _0809A07A + ldr r0, _0809A0D4 @ =0x00000fff + mov r12, r0 + movs r6, 0xF0 + lsls r6, 8 +_0809A054: + ldrh r2, [r5] + mov r0, r12 + ands r0, r2 + ldr r1, [sp] + adds r0, r1, r0 + adds r1, r6, 0 + ands r1, r2 + ldr r2, [sp, 0x4] + adds r1, r2, r1 + orrs r1, r0 + lsls r0, r3, 1 + adds r0, r4 + strh r1, [r0] + adds r5, 0x2 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r8 + blt _0809A054 +_0809A07A: + movs r3, 0 + ldr r0, [sp, 0x10] + cmp r3, r0 + bge _0809A0B4 + ldr r1, _0809A0D4 @ =0x00000fff + mov r12, r1 + movs r6, 0xF0 + lsls r6, 8 + ldr r2, [sp, 0xC] + asrs r4, r2, 16 +_0809A08E: + ldrh r2, [r5] + mov r0, r12 + ands r0, r2 + ldr r1, [sp] + adds r0, r1, r0 + adds r1, r6, 0 + ands r1, r2 + ldr r2, [sp, 0x4] + adds r1, r2, r1 + orrs r1, r0 + lsls r0, r3, 1 + adds r0, r7 + strh r1, [r0] + adds r5, 0x2 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r4 + blt _0809A08E +_0809A0B4: + ldr r4, [sp, 0x18] + ldr r7, [sp, 0x1C] + mov r1, r10 + lsls r0, r1, 16 + lsrs r1, r0, 16 + cmp r1, 0x11 + bls _0809A036 + ldr r0, [sp, 0x14] + asrs r2, r0, 24 + cmp r2, 0 + beq _0809A13A + cmp r2, 0 + ble _0809A0D8 + ldr r1, [sp, 0x8] + adds r1, 0x14 + b _0809A0DC + .align 2, 0 +_0809A0D4: .4byte 0x00000fff +_0809A0D8: + ldr r1, [sp, 0x8] + subs r1, 0x4 +_0809A0DC: + movs r0, 0x3F + ands r1, r0 + adds r4, r1, 0 + adds r0, r4, 0 + cmp r0, 0x1F + bgt _0809A0EE + lsls r0, 1 + adds r0, 0x80 + b _0809A0F6 +_0809A0EE: + lsls r0, 1 + movs r2, 0x84 + lsls r2, 4 + adds r0, r2 +_0809A0F6: + mov r1, r9 + adds r2, r1, r0 + movs r3, 0 + movs r6, 0 +_0809A0FE: + movs r1, 0 + adds r5, r3, 0x1 + lsls r3, r4, 16 +_0809A104: + strh r6, [r2] + adds r2, 0x40 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x11 + bls _0809A104 + asrs r0, r3, 16 + adds r4, r0, 0x1 + movs r0, 0x3F + ands r4, r0 + adds r0, r4, 0 + cmp r0, 0x1F + bgt _0809A126 + lsls r0, 1 + adds r0, 0x80 + b _0809A12E +_0809A126: + lsls r0, 1 + movs r2, 0x84 + lsls r2, 4 + adds r0, r2 +_0809A12E: + mov r1, r9 + adds r2, r1, r0 + lsls r0, r5, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _0809A0FE +_0809A13A: + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8099F58 + + thumb_func_start sub_809A14C +sub_809A14C: @ 809A14C + push {r4-r6,lr} + adds r2, r0, 0 + ldr r0, _0809A174 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809A178 @ =0x000008b4 + adds r0, r1 + ldrh r0, [r0] + lsrs r0, 3 + adds r3, r0, 0 + adds r3, 0x1E + movs r0, 0x3F + ands r3, r0 + adds r0, r3, 0 + cmp r0, 0x1F + bgt _0809A17C + lsls r0, 1 + movs r6, 0x98 + lsls r6, 3 + adds r0, r6 + b _0809A184 + .align 2, 0 +_0809A174: .4byte gUnknown_083B6DB4 +_0809A178: .4byte 0x000008b4 +_0809A17C: + lsls r0, 1 + movs r1, 0xC8 + lsls r1, 4 + adds r0, r1 +_0809A184: + adds r2, r0 + movs r0, 0 + movs r5, 0 + movs r4, 0x3F +_0809A18C: + strh r5, [r2] + adds r2, 0x2 + adds r3, 0x1 + ands r3, r4 + adds r1, r3, 0 + cmp r1, 0 + bne _0809A19E + ldr r6, _0809A1B8 @ =0xfffff7c0 + adds r2, r6 +_0809A19E: + cmp r1, 0x20 + bne _0809A1A8 + movs r1, 0xF8 + lsls r1, 3 + adds r2, r1 +_0809A1A8: + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2B + bls _0809A18C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809A1B8: .4byte 0xfffff7c0 + thumb_func_end sub_809A14C + + thumb_func_start sub_809A1BC +sub_809A1BC: @ 809A1BC + push {r4-r6,lr} + sub sp, 0x8 + adds r3, r0, 0 + adds r2, r1, 0 + ldr r0, _0809A228 @ =gUnknown_083B6DB8 + ldr r5, [r0] + mov r1, sp + movs r0, 0 + strh r0, [r1] + ldr r4, _0809A22C @ =0x040000d4 + str r1, [r4] + str r5, [r4, 0x4] + movs r6, 0x80 + lsls r6, 1 + ldr r0, _0809A230 @ =0x81000100 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, _0809A234 @ =gWindowConfig_81E6D38 + adds r1, r5, 0 + str r3, [sp, 0x4] + bl sub_8004E3C + str r5, [r4] + ldr r3, [sp, 0x4] + str r3, [r4, 0x4] + ldr r1, _0809A238 @ =0x80000040 + str r1, [r4, 0x8] + ldr r0, [r4, 0x8] + adds r0, r5, r6 + str r0, [r4] + adds r0, r3, 0 + adds r0, 0x80 + str r0, [r4, 0x4] + str r1, [r4, 0x8] + ldr r0, [r4, 0x8] + adds r0, r5, 0 + adds r0, 0x80 + str r0, [r4] + adds r6, r3, r6 + str r6, [r4, 0x4] + str r1, [r4, 0x8] + ldr r0, [r4, 0x8] + movs r0, 0xC0 + lsls r0, 1 + adds r5, r0 + str r5, [r4] + adds r3, r0 + str r3, [r4, 0x4] + str r1, [r4, 0x8] + ldr r0, [r4, 0x8] + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809A228: .4byte gUnknown_083B6DB8 +_0809A22C: .4byte 0x040000d4 +_0809A230: .4byte 0x81000100 +_0809A234: .4byte gWindowConfig_81E6D38 +_0809A238: .4byte 0x80000040 + thumb_func_end sub_809A1BC + + thumb_func_start sub_809A23C +sub_809A23C: @ 809A23C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + mov r8, r0 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _0809A384 @ =gUnknown_083B6DB4 + ldr r5, [r0] + ldr r1, _0809A388 @ =0x000008ca + adds r7, r5, r1 + str r7, [sp, 0x18] + mov r2, sp + adds r2, 0x18 + str r2, [sp, 0x20] + ldr r0, _0809A38C @ =0x00030200 + str r0, [r2, 0x4] + mov r1, sp + ldr r3, _0809A390 @ =0x00000ccc + adds r0, r5, r3 + str r0, [sp] + ldr r4, _0809A394 @ =0x0000dac8 + strh r4, [r1, 0x4] + str r0, [sp, 0x8] + ldr r6, _0809A398 @ =0xffffdac9 + strh r6, [r1, 0xC] + add r0, sp, 0x10 + movs r1, 0 + movs r2, 0x8 + bl memset + ldr r0, _0809A39C @ =gPokemonStorage + mov r9, r0 + ldr r0, _0809A3A0 @ =0x000083c2 + add r0, r9 + add r0, r8 + ldrb r1, [r0] + ldr r2, _0809A3A4 @ =gUnknown_083BB0A8 + lsls r1, 2 + adds r0, r1, r2 + ldrh r3, [r0] + ldr r6, _0809A3A8 @ =0x00000ce8 + adds r0, r5, r6 + strh r3, [r0] + adds r2, 0x2 + adds r1, r2 + ldrh r1, [r1] + ldr r2, _0809A3AC @ =0x00000cea + adds r0, r5, r2 + strh r1, [r0] + mov r0, sp + bl LoadSpritePalettes + ldr r3, _0809A3B0 @ =0x00000d08 + adds r6, r5, r3 + movs r0, 0xFC + lsls r0, 2 + str r0, [r6] + adds r0, r4, 0 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + movs r2, 0x87 + lsls r2, 1 + mov r10, r2 + add r1, r10 + ldr r3, _0809A3B4 @ =0x00000cec + adds r2, r5, r3 + strh r1, [r2] + movs r4, 0x80 + lsls r4, 9 + adds r1, r4, 0 + lsls r1, r0 + ldr r0, [r6] + orrs r0, r1 + str r0, [r6] + ldr r0, _0809A3B8 @ =0x0000dac9 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + add r1, r10 + ldr r2, _0809A3BC @ =0x00000cee + adds r5, r2 + strh r1, [r5] + lsls r4, r0 + ldr r0, [r6] + orrs r0, r4 + str r0, [r6] + mov r3, r8 + lsls r4, r3, 3 + add r4, r8 + ldr r6, _0809A3C0 @ =0x00008344 + add r9, r6 + add r4, r9 + adds r0, r7, 0 + adds r1, r4, 0 + bl sub_809A1BC + ldr r0, [sp, 0x20] + bl LoadSpriteSheet + adds r0, r4, 0 + bl sub_8072CA4 + lsls r0, 24 + lsrs r0, 24 + bl sub_809A6D0 + movs r4, 0 + lsls r0, 16 + asrs r6, r0, 16 +_0809A328: + lsls r1, r4, 5 + adds r1, r6, r1 + lsls r1, 16 + asrs r1, 16 + ldr r0, _0809A3C4 @ =gSpriteTemplate_83BB2B8 + movs r2, 0x1C + movs r3, 0x17 + bl CreateSprite + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r0, _0809A384 @ =gUnknown_083B6DB4 + ldr r5, [r0] + lsls r0, r4, 2 + movs r3, 0xCF + lsls r3, 4 + adds r2, r5, r3 + adds r2, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0809A3C8 @ =gSprites + adds r0, r1 + str r0, [r2] + lsls r1, r4, 24 + lsrs r1, 24 + bl StartSpriteAnim + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _0809A328 + ldr r6, _0809A3CC @ =0x00000cca + adds r1, r5, r6 + movs r0, 0 + strb r0, [r1] + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809A384: .4byte gUnknown_083B6DB4 +_0809A388: .4byte 0x000008ca +_0809A38C: .4byte 0x00030200 +_0809A390: .4byte 0x00000ccc +_0809A394: .4byte 0x0000dac8 +_0809A398: .4byte 0xffffdac9 +_0809A39C: .4byte gPokemonStorage +_0809A3A0: .4byte 0x000083c2 +_0809A3A4: .4byte gUnknown_083BB0A8 +_0809A3A8: .4byte 0x00000ce8 +_0809A3AC: .4byte 0x00000cea +_0809A3B0: .4byte 0x00000d08 +_0809A3B4: .4byte 0x00000cec +_0809A3B8: .4byte 0x0000dac9 +_0809A3BC: .4byte 0x00000cee +_0809A3C0: .4byte 0x00008344 +_0809A3C4: .4byte gSpriteTemplate_83BB2B8 +_0809A3C8: .4byte gSprites +_0809A3CC: .4byte 0x00000cca + thumb_func_end sub_809A23C + + thumb_func_start sub_809A3D0 +sub_809A3D0: @ 809A3D0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x28] + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + ldr r3, _0809A43C @ =gUnknown_083B6DB4 + ldr r5, [r3] + ldr r1, _0809A440 @ =0x000008ca + adds r0, r5, r1 + str r0, [sp, 0x18] + add r2, sp, 0x18 + ldr r4, _0809A444 @ =0x0000ffff + mov r9, r4 + movs r6, 0xC0 + lsls r6, 10 + mov r8, r6 + ldr r0, _0809A448 @ =0x00030200 + str r0, [r2, 0x4] + mov r1, sp + ldr r0, _0809A44C @ =gSpriteTemplate_83BB2B8 + ldm r0!, {r4,r6,r7} + stm r1!, {r4,r6,r7} + ldm r0!, {r4,r6,r7} + stm r1!, {r4,r6,r7} + movs r1, 0 + ldr r7, _0809A450 @ =0x00000cca + adds r4, r5, r7 + ldrb r0, [r4] + adds r6, r2, 0 + cmp r0, 0 + bne _0809A41E + movs r1, 0x1 +_0809A41E: + strb r1, [r4] + cmp r1, 0 + bne _0809A458 + ldr r0, [r6, 0x4] + mov r1, r9 + ands r0, r1 + mov r4, r8 + orrs r0, r4 + str r0, [r6, 0x4] + ldr r7, _0809A454 @ =0x00000cec + adds r0, r5, r7 + ldrh r0, [r0] + mov r8, r0 + b _0809A478 + .align 2, 0 +_0809A43C: .4byte gUnknown_083B6DB4 +_0809A440: .4byte 0x000008ca +_0809A444: .4byte 0x0000ffff +_0809A448: .4byte 0x00030200 +_0809A44C: .4byte gSpriteTemplate_83BB2B8 +_0809A450: .4byte 0x00000cca +_0809A454: .4byte 0x00000cec +_0809A458: + ldr r0, [r6, 0x4] + mov r1, r9 + ands r0, r1 + movs r1, 0x80 + lsls r1, 11 + orrs r0, r1 + str r0, [r6, 0x4] + ldr r4, _0809A570 @ =0x00000cec + adds r0, r5, r4 + ldrh r0, [r0] + mov r8, r0 + mov r1, sp + movs r0, 0x4 + strh r0, [r1] + ldr r0, _0809A574 @ =0x0000dac9 + strh r0, [r1, 0x2] +_0809A478: + ldr r0, [r3] + ldr r7, _0809A578 @ =0x000008ca + adds r0, r7 + ldr r1, [sp, 0x28] + lsls r5, r1, 3 + adds r5, r1 + ldr r4, _0809A57C @ =gPokemonStorage + 0x8344 + adds r5, r4 + adds r1, r5, 0 + bl sub_809A1BC + adds r0, r6, 0 + bl LoadSpriteSheet + adds r4, 0x7E + ldr r3, [sp, 0x28] + adds r4, r3, r4 + ldrb r0, [r4] + lsls r0, 2 + ldr r1, _0809A580 @ =gUnknown_083BB0A8 + adds r0, r1 + mov r1, r8 + movs r2, 0x4 + bl LoadPalette + adds r0, r5, 0 + bl sub_8072CA4 + lsls r0, 24 + lsrs r0, 24 + bl sub_809A6D0 + lsls r0, 16 + mov r4, r10 + lsls r2, r4, 24 + asrs r2, 24 + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 6 + lsrs r6, r0, 16 + str r6, [sp, 0x20] + asrs r0, 16 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x24] + movs r7, 0 + negs r2, r2 + mov r9, r2 + movs r0, 0x1 + mov r10, r0 +_0809A4DE: + lsls r1, r7, 5 + mov r8, r1 + ldr r3, [sp, 0x24] + lsls r1, r3, 16 + asrs r1, 16 + add r1, r8 + lsls r1, 16 + asrs r1, 16 + mov r0, sp + movs r2, 0x1C + movs r3, 0x17 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0809A584 @ =gUnknown_083B6DB4 + ldr r4, [r1] + lsls r6, r7, 2 + ldr r1, _0809A588 @ =0x00000cf8 + adds r2, r4, r1 + adds r2, r6 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _0809A58C @ =gSprites + adds r1, r0 + str r1, [r2] + mov r3, r9 + lsls r5, r3, 1 + add r5, r9 + lsls r5, 1 + strh r5, [r1, 0x2E] + ldr r1, [r2] + ldr r3, [sp, 0x20] + lsls r0, r3, 16 + asrs r0, 16 + add r0, r8 + strh r0, [r1, 0x30] + ldr r0, [r2] + mov r1, r10 + strh r1, [r0, 0x32] + ldr r0, [r2] + ldr r1, _0809A590 @ =sub_809A5E8 + str r1, [r0, 0x1C] + lsls r1, r7, 24 + lsrs r1, 24 + bl StartSpriteAnim + movs r3, 0xCF + lsls r3, 4 + adds r4, r3 + adds r4, r6 + ldr r0, [r4] + strh r5, [r0, 0x2E] + ldr r0, [r4] + mov r6, r10 + strh r6, [r0, 0x30] + ldr r1, [r4] + ldr r0, _0809A594 @ =sub_809A61C + str r0, [r1, 0x1C] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, 0x1 + bls _0809A4DE + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809A570: .4byte 0x00000cec +_0809A574: .4byte 0x0000dac9 +_0809A578: .4byte 0x000008ca +_0809A57C: .4byte gPokemonStorage + 0x8344 +_0809A580: .4byte gUnknown_083BB0A8 +_0809A584: .4byte gUnknown_083B6DB4 +_0809A588: .4byte 0x00000cf8 +_0809A58C: .4byte gSprites +_0809A590: .4byte sub_809A5E8 +_0809A594: .4byte sub_809A61C + thumb_func_end sub_809A3D0 + + thumb_func_start sub_809A598 +sub_809A598: @ 809A598 + push {lr} + ldr r0, _0809A5B0 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809A5B4 @ =0x00000cca + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0809A5B8 + movs r0, 0x4 + bl FreeSpriteTilesByTag + b _0809A5BE + .align 2, 0 +_0809A5B0: .4byte gUnknown_083B6DB4 +_0809A5B4: .4byte 0x00000cca +_0809A5B8: + movs r0, 0x3 + bl FreeSpriteTilesByTag +_0809A5BE: + ldr r0, _0809A5E0 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r3, 0xCF + lsls r3, 4 + adds r2, r0, r3 + adds r3, 0x8 + adds r1, r0, r3 + ldr r1, [r1] + str r1, [r2] + ldr r2, _0809A5E4 @ =0x00000cf4 + adds r1, r0, r2 + adds r3, 0x4 + adds r0, r3 + ldr r0, [r0] + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0809A5E0: .4byte gUnknown_083B6DB4 +_0809A5E4: .4byte 0x00000cf4 + thumb_func_end sub_809A598 + + thumb_func_start sub_809A5E8 +sub_809A5E8: @ 809A5E8 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x32] + movs r3, 0x32 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _0809A5FC + subs r0, r1, 0x1 + strh r0, [r2, 0x32] + b _0809A614 +_0809A5FC: + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x30 + ldrsh r1, [r2, r3] + cmp r0, r1 + bne _0809A614 + ldr r0, _0809A618 @ =SpriteCallbackDummy + str r0, [r2, 0x1C] +_0809A614: + pop {r0} + bx r0 + .align 2, 0 +_0809A618: .4byte SpriteCallbackDummy + thumb_func_end sub_809A5E8 + + thumb_func_start sub_809A61C +sub_809A61C: @ 809A61C + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x30] + movs r3, 0x30 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _0809A630 + subs r0, r1, 0x1 + strh r0, [r2, 0x30] + b _0809A64E +_0809A630: + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] + ldrh r1, [r2, 0x24] + adds r0, r1 + strh r0, [r2, 0x32] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xC0 + bls _0809A64E + adds r0, r2, 0 + bl DestroySprite +_0809A64E: + pop {r0} + bx r0 + thumb_func_end sub_809A61C + + thumb_func_start sub_809A654 +sub_809A654: @ 809A654 + push {lr} + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0809A690 @ =gPokemonStorage + ldr r2, _0809A694 @ =0x000083c2 + adds r1, r2 + adds r0, r1 + ldrb r1, [r0] + ldr r0, _0809A698 @ =gUnknown_083B6DB4 + ldr r2, [r0] + ldr r3, _0809A69C @ =0x00000cca + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _0809A6A8 + lsls r0, r1, 2 + ldr r1, _0809A6A0 @ =gUnknown_083BB0A8 + adds r0, r1 + adds r3, 0x22 + adds r1, r2, r3 + ldrh r1, [r1] + lsls r1, 1 + ldr r2, _0809A6A4 @ =gPlttBufferUnfaded + adds r1, r2 + movs r2, 0x2 + bl CpuSet + b _0809A6C0 + .align 2, 0 +_0809A690: .4byte gPokemonStorage +_0809A694: .4byte 0x000083c2 +_0809A698: .4byte gUnknown_083B6DB4 +_0809A69C: .4byte 0x00000cca +_0809A6A0: .4byte gUnknown_083BB0A8 +_0809A6A4: .4byte gPlttBufferUnfaded +_0809A6A8: + lsls r0, r1, 2 + ldr r1, _0809A6C4 @ =gUnknown_083BB0A8 + adds r0, r1 + ldr r3, _0809A6C8 @ =0x00000cee + adds r1, r2, r3 + ldrh r1, [r1] + lsls r1, 1 + ldr r2, _0809A6CC @ =gPlttBufferUnfaded + adds r1, r2 + movs r2, 0x2 + bl CpuSet +_0809A6C0: + pop {r0} + bx r0 + .align 2, 0 +_0809A6C4: .4byte gUnknown_083BB0A8 +_0809A6C8: .4byte 0x00000cee +_0809A6CC: .4byte gPlttBufferUnfaded + thumb_func_end sub_809A654 + + thumb_func_start sub_809A6D0 +sub_809A6D0: @ 809A6D0 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 25 + movs r0, 0xB0 + subs r0, r1 + bx lr + thumb_func_end sub_809A6D0 + + thumb_func_start sub_809A6DC +sub_809A6DC: @ 809A6DC + push {r4,r5,lr} + ldr r0, _0809A760 @ =gUnknown_083BB288 + bl LoadSpriteSheet + ldr r0, _0809A764 @ =gUnknown_083BB290 + bl LoadSpritePalette + movs r5, 0 +_0809A6EC: + lsls r1, r5, 4 + adds r1, r5 + lsls r1, 19 + movs r0, 0xB8 + lsls r0, 15 + adds r1, r0 + asrs r1, 16 + ldr r0, _0809A768 @ =gSpriteTemplate_83BB2F0 + movs r2, 0x1C + movs r3, 0x15 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _0809A73E + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0809A76C @ =gSprites + adds r4, r0, r1 + lsls r1, r5, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + movs r0, 0x1 + cmp r5, 0 + bne _0809A72C + movs r1, 0x1 + negs r1, r1 + adds r0, r1, 0 +_0809A72C: + strh r0, [r4, 0x34] + ldr r0, _0809A770 @ =gUnknown_083B6DB4 + ldr r0, [r0] + lsls r1, r5, 2 + movs r2, 0xD0 + lsls r2, 4 + adds r0, r2 + adds r0, r1 + str r4, [r0] +_0809A73E: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _0809A6EC + bl sub_809BF2C + lsls r0, 24 + cmp r0, 0 + beq _0809A758 + movs r0, 0x1 + bl sub_809A860 +_0809A758: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809A760: .4byte gUnknown_083BB288 +_0809A764: .4byte gUnknown_083BB290 +_0809A768: .4byte gSpriteTemplate_83BB2F0 +_0809A76C: .4byte gSprites +_0809A770: .4byte gUnknown_083B6DB4 + thumb_func_end sub_809A6DC + + thumb_func_start sub_809A774 +sub_809A774: @ 809A774 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r2, 0 + ldr r7, _0809A7C4 @ =gUnknown_083B6DB4 + ldr r0, [r7] + movs r1, 0xD0 + lsls r1, 4 + adds r3, r0, r1 + movs r5, 0 + movs r4, 0x2 +_0809A78A: + lsls r1, r2, 2 + adds r1, r3, r1 + ldr r0, [r1] + strh r5, [r0, 0x24] + ldr r0, [r1] + strh r4, [r0, 0x2E] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x1 + bls _0809A78A + lsls r0, r6, 24 + cmp r0, 0 + bge _0809A7CC + ldr r1, [r7] + movs r2, 0xD0 + lsls r2, 4 + adds r3, r1, r2 + ldr r2, [r3] + movs r0, 0x1D + strh r0, [r2, 0x30] + ldr r0, _0809A7C8 @ =0x00000d04 + adds r1, r0 + ldr r2, [r1] + movs r0, 0x5 + strh r0, [r2, 0x30] + ldr r0, [r3] + movs r2, 0x48 + b _0809A7E8 + .align 2, 0 +_0809A7C4: .4byte gUnknown_083B6DB4 +_0809A7C8: .4byte 0x00000d04 +_0809A7CC: + ldr r1, [r7] + movs r2, 0xD0 + lsls r2, 4 + adds r3, r1, r2 + ldr r2, [r3] + movs r0, 0x5 + strh r0, [r2, 0x30] + ldr r0, _0809A80C @ =0x00000d04 + adds r1, r0 + ldr r2, [r1] + movs r0, 0x1D + strh r0, [r2, 0x30] + ldr r0, [r3] + movs r2, 0xF8 +_0809A7E8: + strh r2, [r0, 0x32] + ldr r0, [r1] + strh r2, [r0, 0x32] + ldr r1, [r7] + movs r2, 0xD0 + lsls r2, 4 + adds r0, r1, r2 + ldr r2, [r0] + movs r0, 0 + strh r0, [r2, 0x3C] + ldr r0, _0809A80C @ =0x00000d04 + adds r1, r0 + ldr r1, [r1] + movs r0, 0x1 + strh r0, [r1, 0x3C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809A80C: .4byte 0x00000d04 + thumb_func_end sub_809A774 + + thumb_func_start sub_809A810 +sub_809A810: @ 809A810 + push {r4-r6,lr} + movs r3, 0 + ldr r0, _0809A85C @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r1, 0xD0 + lsls r1, 4 + adds r4, r0, r1 + movs r5, 0 + movs r6, 0x5 + negs r6, r6 +_0809A824: + lsls r1, r3, 2 + adds r1, r4, r1 + ldr r2, [r1] + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 3 + adds r0, 0x5C + strh r0, [r2, 0x20] + ldr r0, [r1] + strh r5, [r0, 0x24] + ldr r1, [r1] + adds r1, 0x3E + ldrb r2, [r1] + adds r0, r6, 0 + ands r0, r2 + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x1 + bls _0809A824 + movs r0, 0x1 + bl sub_809A860 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809A85C: .4byte gUnknown_083B6DB4 + thumb_func_end sub_809A810 + + thumb_func_start sub_809A860 +sub_809A860: @ 809A860 + push {r4,r5,lr} + lsls r0, 24 + cmp r0, 0 + beq _0809A89C + movs r2, 0 + ldr r0, _0809A898 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r1, 0xD0 + lsls r1, 4 + adds r4, r0, r1 + movs r3, 0 + movs r5, 0x1 +_0809A878: + lsls r1, r2, 2 + adds r1, r4, r1 + ldr r0, [r1] + strh r5, [r0, 0x2E] + ldr r0, [r1] + strh r3, [r0, 0x30] + ldr r0, [r1] + strh r3, [r0, 0x32] + ldr r0, [r1] + strh r3, [r0, 0x36] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x1 + bls _0809A878 + b _0809A8BC + .align 2, 0 +_0809A898: .4byte gUnknown_083B6DB4 +_0809A89C: + movs r2, 0 + ldr r0, _0809A8C4 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r3, 0xD0 + lsls r3, 4 + adds r1, r0, r3 + movs r3, 0 +_0809A8AA: + lsls r0, r2, 2 + adds r0, r1, r0 + ldr r0, [r0] + strh r3, [r0, 0x2E] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x1 + bls _0809A8AA +_0809A8BC: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809A8C4: .4byte gUnknown_083B6DB4 + thumb_func_end sub_809A860 + + thumb_func_start sub_809A8C8 +sub_809A8C8: @ 809A8C8 + push {lr} + adds r2, r0, 0 + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0x4 + bhi _0809A994 + lsls r0, 2 + ldr r1, _0809A8E0 @ =_0809A8E4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809A8E0: .4byte _0809A8E4 + .align 2, 0 +_0809A8E4: + .4byte _0809A8F8 + .4byte _0809A8FE + .4byte _0809A92C + .4byte _0809A932 + .4byte _0809A984 +_0809A8F8: + movs r0, 0 + strh r0, [r2, 0x24] + b _0809A994 +_0809A8FE: + ldrh r0, [r2, 0x30] + adds r0, 0x1 + movs r1, 0 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _0809A994 + strh r1, [r2, 0x30] + ldrh r0, [r2, 0x34] + ldrh r3, [r2, 0x24] + adds r0, r3 + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x32] + adds r0, 0x1 + strh r0, [r2, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _0809A994 + strh r1, [r2, 0x32] + strh r1, [r2, 0x24] + b _0809A994 +_0809A92C: + movs r0, 0x3 + strh r0, [r2, 0x2E] + b _0809A994 +_0809A932: + ldr r0, _0809A97C @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r0, _0809A980 @ =0x000008b6 + adds r1, r0 + ldrh r0, [r2, 0x20] + ldrh r1, [r1] + subs r0, r1 + strh r0, [r2, 0x20] + subs r0, 0x49 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xAE + bls _0809A958 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3] +_0809A958: + ldrh r0, [r2, 0x30] + subs r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _0809A994 + ldrh r0, [r2, 0x32] + strh r0, [r2, 0x20] + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + movs r0, 0x4 + strh r0, [r2, 0x2E] + b _0809A994 + .align 2, 0 +_0809A97C: .4byte gUnknown_083B6DB4 +_0809A980: .4byte 0x000008b6 +_0809A984: + ldr r0, _0809A998 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809A99C @ =0x000008b6 + adds r0, r1 + ldrh r1, [r2, 0x20] + ldrh r0, [r0] + subs r1, r0 + strh r1, [r2, 0x20] +_0809A994: + pop {r0} + bx r0 + .align 2, 0 +_0809A998: .4byte gUnknown_083B6DB4 +_0809A99C: .4byte 0x000008b6 + thumb_func_end sub_809A8C8 + + thumb_func_start sub_809A9A0 +sub_809A9A0: @ 809A9A0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + adds r6, r1, 0 + ldr r4, [sp, 0x18] + lsls r2, 24 + lsrs r7, r2, 24 + lsls r3, 24 + lsrs r3, 24 + mov r8, r3 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0809AA0C @ =gSpriteTemplate_83BB2F0 + lsls r5, 16 + asrs r5, 16 + lsls r6, 16 + asrs r6, 16 + adds r1, r5, 0 + adds r2, r6, 0 + adds r3, r4, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _0809AA18 + movs r1, 0x1 + ands r1, r7 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r5, _0809AA10 @ =gSprites + adds r6, r4, r5 + adds r0, r6, 0 + bl StartSpriteAnim + movs r0, 0x3 + mov r1, r8 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r6, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r6, 0x5] + adds r5, 0x1C + adds r4, r5 + ldr r0, _0809AA14 @ =SpriteCallbackDummy + str r0, [r4] + adds r0, r6, 0 + b _0809AA1A + .align 2, 0 +_0809AA0C: .4byte gSpriteTemplate_83BB2F0 +_0809AA10: .4byte gSprites +_0809AA14: .4byte SpriteCallbackDummy +_0809AA18: + movs r0, 0 +_0809AA1A: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809A9A0 + + thumb_func_start sub_809AA24 +sub_809AA24: @ 809AA24 + push {lr} + ldr r0, _0809AA38 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldrb r1, [r0, 0x5] + cmp r1, 0x1 + beq _0809AA40 + ldr r1, _0809AA3C @ =gUnknown_020384E4 + movs r0, 0 + strb r0, [r1] + b _0809AA44 + .align 2, 0 +_0809AA38: .4byte gUnknown_083B6DB4 +_0809AA3C: .4byte gUnknown_020384E4 +_0809AA40: + ldr r0, _0809AA78 @ =gUnknown_020384E4 + strb r1, [r0] +_0809AA44: + ldr r0, _0809AA7C @ =gUnknown_020384E5 + movs r1, 0 + strb r1, [r0] + ldr r0, _0809AA80 @ =gUnknown_020384E6 + strb r1, [r0] + ldr r0, _0809AA84 @ =gUnknown_020384E7 + strb r1, [r0] + ldr r0, _0809AA88 @ =gUnknown_020384E8 + strb r1, [r0] + ldr r0, _0809AA8C @ =gUnknown_020384E9 + strb r1, [r0] + bl sub_809B0D4 + bl sub_809CC04 + ldr r0, _0809AA90 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809AA94 @ =0x000011e2 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + bl sub_809BF74 + pop {r0} + bx r0 + .align 2, 0 +_0809AA78: .4byte gUnknown_020384E4 +_0809AA7C: .4byte gUnknown_020384E5 +_0809AA80: .4byte gUnknown_020384E6 +_0809AA84: .4byte gUnknown_020384E7 +_0809AA88: .4byte gUnknown_020384E8 +_0809AA8C: .4byte gUnknown_020384E9 +_0809AA90: .4byte gUnknown_083B6DB4 +_0809AA94: .4byte 0x000011e2 + thumb_func_end sub_809AA24 + + thumb_func_start sub_809AA98 +sub_809AA98: @ 809AA98 + push {lr} + bl sub_809CC04 + bl sub_809C028 + ldr r0, _0809AAC0 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809AAC4 @ =0x000011e2 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + ldr r0, _0809AAC8 @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809AABA + bl sub_8098BF0 +_0809AABA: + pop {r0} + bx r0 + .align 2, 0 +_0809AAC0: .4byte gUnknown_083B6DB4 +_0809AAC4: .4byte 0x000011e2 +_0809AAC8: .4byte gUnknown_020384E6 + thumb_func_end sub_809AA98 + + thumb_func_start sub_809AACC +sub_809AACC: @ 809AACC + push {r4-r6,lr} + adds r4, r2, 0 + adds r6, r3, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + cmp r0, 0x4 + bhi _0809AB84 + lsls r0, 2 + ldr r1, _0809AAE8 @ =_0809AAEC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809AAE8: .4byte _0809AAEC + .align 2, 0 +_0809AAEC: + .4byte _0809AB00 + .4byte _0809AB2E + .4byte _0809AB56 + .4byte _0809AB5E + .4byte _0809AB7C +_0809AB00: + adds r0, r5, 0 + movs r1, 0x6 + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, 0x64 + strh r1, [r4] + adds r0, r5, 0 + movs r1, 0x6 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, 0x20 + strh r1, [r6] + b _0809AB84 +_0809AB2E: + cmp r5, 0 + bne _0809AB3A + movs r0, 0x68 + strh r0, [r4] + movs r0, 0x34 + b _0809AB82 +_0809AB3A: + cmp r5, 0x6 + bne _0809AB46 + movs r0, 0x98 + strh r0, [r4] + movs r0, 0x84 + b _0809AB82 +_0809AB46: + movs r0, 0x98 + strh r0, [r4] + subs r1, r5, 0x1 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, 0x4 + b _0809AB82 +_0809AB56: + movs r0, 0xA2 + strh r0, [r4] + movs r0, 0xC + b _0809AB82 +_0809AB5E: + ldr r0, _0809AB78 @ =gUnknown_020384E6 + ldrb r0, [r0] + movs r1, 0xE + cmp r0, 0 + beq _0809AB6A + movs r1, 0x8 +_0809AB6A: + strh r1, [r6] + movs r0, 0x58 + muls r0, r5 + adds r0, 0x78 + strh r0, [r4] + b _0809AB84 + .align 2, 0 +_0809AB78: .4byte gUnknown_020384E6 +_0809AB7C: + movs r0, 0xA0 + strh r0, [r4] + movs r0, 0x60 +_0809AB82: + strh r0, [r6] +_0809AB84: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_809AACC + + thumb_func_start sub_809AB8C +sub_809AB8C: @ 809AB8C + push {lr} + ldr r0, _0809ABB4 @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _0809ABC0 + cmp r0, 0x1 + bne _0809ABF8 + ldr r0, _0809ABB8 @ =gUnknown_020384E5 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0809ABBC @ =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + b _0809ABEA + .align 2, 0 +_0809ABB4: .4byte gUnknown_020384E4 +_0809ABB8: .4byte gUnknown_020384E5 +_0809ABBC: .4byte gPlayerParty +_0809ABC0: + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldr r1, _0809ABF0 @ =gUnknown_020384E5 + movs r2, 0 + ldrsb r2, [r1, r2] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + ldr r2, _0809ABF4 @ =gPokemonStorage + 0x4 + adds r1, r2 + adds r0, r1 + movs r1, 0xB + bl GetBoxMonData +_0809ABEA: + lsls r0, 16 + lsrs r0, 16 + b _0809ABFA + .align 2, 0 +_0809ABF0: .4byte gUnknown_020384E5 +_0809ABF4: .4byte gPokemonStorage + 0x4 +_0809ABF8: + movs r0, 0 +_0809ABFA: + pop {r1} + bx r1 + thumb_func_end sub_809AB8C + + thumb_func_start sub_809AC00 +sub_809AC00: @ 809AC00 + push {r4-r6,lr} + ldr r0, _0809AC14 @ =gUnknown_083B6DB4 + ldr r4, [r0] + ldr r0, _0809AC18 @ =0x000011dc + adds r1, r4, r0 + ldrh r0, [r1] + cmp r0, 0 + bne _0809AC1C + movs r0, 0 + b _0809AD2C + .align 2, 0 +_0809AC14: .4byte gUnknown_083B6DB4 +_0809AC18: .4byte 0x000011dc +_0809AC1C: + subs r0, 0x1 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + beq _0809AD0C + ldr r1, _0809ACF4 @ =0x000011c8 + adds r3, r4, r1 + ldr r2, _0809ACF8 @ =0x000011d0 + adds r1, r4, r2 + ldr r0, [r3] + ldr r1, [r1] + adds r0, r1 + str r0, [r3] + ldr r6, _0809ACFC @ =0x000011cc + adds r2, r4, r6 + ldr r0, _0809AD00 @ =0x000011d4 + adds r1, r4, r0 + ldr r0, [r2] + ldr r1, [r1] + adds r0, r1 + str r0, [r2] + movs r1, 0x8E + lsls r1, 5 + adds r5, r4, r1 + ldr r1, [r5] + ldr r0, [r3] + asrs r0, 8 + strh r0, [r1, 0x20] + ldr r1, [r5] + ldr r0, [r2] + asrs r0, 8 + strh r0, [r1, 0x22] + ldr r1, [r5] + ldrh r2, [r1, 0x20] + movs r3, 0x20 + ldrsh r0, [r1, r3] + movs r3, 0x80 + lsls r3, 1 + cmp r0, r3 + ble _0809AC78 + ldr r6, _0809AD04 @ =0xffffff00 + adds r0, r2, r6 + lsls r0, 16 + asrs r0, 16 + adds r0, 0x40 + strh r0, [r1, 0x20] +_0809AC78: + ldr r1, [r5] + ldrh r2, [r1, 0x20] + movs r6, 0x20 + ldrsh r0, [r1, r6] + cmp r0, 0x3F + bgt _0809AC90 + movs r0, 0x40 + subs r0, r2 + lsls r0, 16 + asrs r0, 16 + subs r0, r3, r0 + strh r0, [r1, 0x20] +_0809AC90: + ldr r1, [r5] + ldrh r2, [r1, 0x22] + movs r3, 0x22 + ldrsh r0, [r1, r3] + cmp r0, 0xB0 + ble _0809ACA8 + adds r0, r2, 0 + subs r0, 0xB0 + lsls r0, 16 + asrs r0, 16 + subs r0, 0x10 + strh r0, [r1, 0x22] +_0809ACA8: + ldr r2, [r5] + ldrh r3, [r2, 0x22] + movs r6, 0x22 + ldrsh r0, [r2, r6] + movs r1, 0x10 + negs r1, r1 + cmp r0, r1 + bge _0809ACC4 + subs r0, r1, r3 + movs r1, 0xB0 + lsls r0, 16 + asrs r0, 16 + subs r1, r0 + strh r1, [r2, 0x22] +_0809ACC4: + ldr r0, _0809AD08 @ =0x000011e3 + adds r1, r4, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _0809AD2A + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bne _0809AD2A + ldr r2, [r5] + adds r2, 0x3F + ldrb r3, [r2] + lsrs r1, r3, 1 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 1 + movs r0, 0x3 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + b _0809AD2A + .align 2, 0 +_0809ACF4: .4byte 0x000011c8 +_0809ACF8: .4byte 0x000011d0 +_0809ACFC: .4byte 0x000011cc +_0809AD00: .4byte 0x000011d4 +_0809AD04: .4byte 0xffffff00 +_0809AD08: .4byte 0x000011e3 +_0809AD0C: + movs r1, 0x8E + lsls r1, 5 + adds r2, r4, r1 + ldr r1, [r2] + ldr r3, _0809AD34 @ =0x000011d8 + adds r0, r4, r3 + ldrh r0, [r0] + strh r0, [r1, 0x20] + ldr r1, [r2] + ldr r6, _0809AD38 @ =0x000011da + adds r0, r4, r6 + ldrh r0, [r0] + strh r0, [r1, 0x22] + bl sub_809AFB8 +_0809AD2A: + movs r0, 0x1 +_0809AD2C: + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0809AD34: .4byte 0x000011d8 +_0809AD38: .4byte 0x000011da + thumb_func_end sub_809AC00 + + thumb_func_start sub_809AD3C +sub_809AD3C: @ 809AD3C + push {r4-r6,lr} + sub sp, 0x4 + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + mov r6, sp + adds r6, 0x2 + adds r0, r4, 0 + adds r1, r5, 0 + mov r2, sp + adds r3, r6, 0 + bl sub_809AACC + ldr r0, _0809AD88 @ =gUnknown_083B6DB4 + ldr r1, [r0] + movs r2, 0x8F + lsls r2, 5 + adds r0, r1, r2 + strb r4, [r0] + ldr r3, _0809AD8C @ =0x000011e1 + adds r0, r1, r3 + strb r5, [r0] + mov r0, sp + ldrh r2, [r0] + subs r3, 0x9 + adds r0, r1, r3 + strh r2, [r0] + ldrh r0, [r6] + ldr r2, _0809AD90 @ =0x000011da + adds r1, r2 + strh r0, [r1] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809AD88: .4byte gUnknown_083B6DB4 +_0809AD8C: .4byte 0x000011e1 +_0809AD90: .4byte 0x000011da + thumb_func_end sub_809AD3C + + thumb_func_start sub_809AD94 +sub_809AD94: @ 809AD94 + push {r4-r7,lr} + ldr r0, _0809ADB0 @ =gUnknown_083B6DB4 + ldr r2, [r0] + ldr r3, _0809ADB4 @ =0x000011de + adds r1, r2, r3 + ldrh r1, [r1] + adds r4, r0, 0 + cmp r1, 0 + beq _0809ADBC + ldr r0, _0809ADB8 @ =0x000011dc + adds r1, r2, r0 + movs r0, 0xC + b _0809ADC2 + .align 2, 0 +_0809ADB0: .4byte gUnknown_083B6DB4 +_0809ADB4: .4byte 0x000011de +_0809ADB8: .4byte 0x000011dc +_0809ADBC: + ldr r3, _0809AE04 @ =0x000011dc + adds r1, r2, r3 + movs r0, 0x6 +_0809ADC2: + strh r0, [r1] + ldr r2, [r4] + ldr r0, _0809AE08 @ =0x000011e3 + adds r1, r2, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _0809ADDA + ldr r3, _0809AE04 @ =0x000011dc + adds r0, r2, r3 + ldrh r0, [r0] + lsrs r0, 1 + strb r0, [r1] +_0809ADDA: + ldr r1, _0809AE0C @ =0x000011de + adds r0, r2, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0809AE14 + cmp r1, 0x1 + beq _0809AE30 + ldr r3, _0809AE10 @ =0x000011da + adds r0, r2, r3 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0x8E + lsls r3, 5 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, 0x22 + ldrsh r0, [r0, r2] + b _0809AE46 + .align 2, 0 +_0809AE04: .4byte 0x000011dc +_0809AE08: .4byte 0x000011e3 +_0809AE0C: .4byte 0x000011de +_0809AE10: .4byte 0x000011da +_0809AE14: + ldr r3, _0809AE2C @ =0x000011da + adds r0, r2, r3 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0x8E + lsls r3, 5 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, 0x22 + ldrsh r0, [r0, r2] + adds r0, 0xC0 + b _0809AE46 + .align 2, 0 +_0809AE2C: .4byte 0x000011da +_0809AE30: + ldr r3, _0809AE74 @ =0x000011da + adds r0, r2, r3 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0x8E + lsls r3, 5 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, 0x22 + ldrsh r0, [r0, r2] + subs r0, 0xC0 +_0809AE46: + subs r7, r1, r0 + ldr r2, [r4] + ldr r3, _0809AE78 @ =0x000011df + adds r0, r2, r3 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0809AE80 + cmp r1, 0x1 + beq _0809AE9C + ldr r1, _0809AE7C @ =0x000011d8 + adds r0, r2, r1 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0x8E + lsls r3, 5 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, 0x20 + ldrsh r0, [r0, r2] + b _0809AEB2 + .align 2, 0 +_0809AE74: .4byte 0x000011da +_0809AE78: .4byte 0x000011df +_0809AE7C: .4byte 0x000011d8 +_0809AE80: + ldr r3, _0809AE98 @ =0x000011d8 + adds r0, r2, r3 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0x8E + lsls r3, 5 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, 0x20 + ldrsh r0, [r0, r2] + adds r0, 0xC0 + b _0809AEB2 + .align 2, 0 +_0809AE98: .4byte 0x000011d8 +_0809AE9C: + ldr r3, _0809AF00 @ =0x000011d8 + adds r0, r2, r3 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0x8E + lsls r3, 5 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, 0x20 + ldrsh r0, [r0, r2] + subs r0, 0xC0 +_0809AEB2: + subs r0, r1, r0 + lsls r7, 8 + lsls r0, 8 + ldr r4, [r4] + ldr r3, _0809AF04 @ =0x000011d0 + adds r6, r4, r3 + ldr r1, _0809AF08 @ =0x000011dc + adds r5, r4, r1 + ldrh r1, [r5] + bl __divsi3 + str r0, [r6] + ldr r2, _0809AF0C @ =0x000011d4 + adds r6, r4, r2 + ldrh r1, [r5] + adds r0, r7, 0 + bl __divsi3 + str r0, [r6] + ldr r3, _0809AF10 @ =0x000011c8 + adds r2, r4, r3 + movs r0, 0x8E + lsls r0, 5 + adds r1, r4, r0 + ldr r0, [r1] + movs r3, 0x20 + ldrsh r0, [r0, r3] + lsls r0, 8 + str r0, [r2] + ldr r0, _0809AF14 @ =0x000011cc + adds r4, r0 + ldr r0, [r1] + movs r1, 0x22 + ldrsh r0, [r0, r1] + lsls r0, 8 + str r0, [r4] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809AF00: .4byte 0x000011d8 +_0809AF04: .4byte 0x000011d0 +_0809AF08: .4byte 0x000011dc +_0809AF0C: .4byte 0x000011d4 +_0809AF10: .4byte 0x000011c8 +_0809AF14: .4byte 0x000011cc + thumb_func_end sub_809AD94 + + thumb_func_start sub_809AF18 +sub_809AF18: @ 809AF18 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_809AD3C + bl sub_809AD94 + ldr r0, _0809AFA4 @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + bne _0809AF46 + ldr r0, _0809AFA8 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x1 + bl StartSpriteAnim +_0809AF46: + cmp r4, 0x1 + bne _0809AF70 + ldr r0, _0809AFAC @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + beq _0809AF70 + ldr r0, _0809AFA8 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r2, _0809AFB0 @ =0x000011e2 + adds r1, r0, r2 + strb r4, [r1] + ldr r1, _0809AFB4 @ =0x000011c4 + adds r0, r1 + ldr r1, [r0] + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] +_0809AF70: + cmp r4, 0 + beq _0809AF9E + cmp r4, 0 + blt _0809AF9E + cmp r4, 0x3 + bgt _0809AF9E + ldr r0, _0809AFA8 @ =gUnknown_083B6DB4 + ldr r2, [r0] + ldr r0, _0809AFB4 @ =0x000011c4 + adds r2, r0 + ldr r1, [r2] + adds r1, 0x3E + ldrb r0, [r1] + movs r3, 0x4 + orrs r0, r3 + strb r0, [r1] + ldr r2, [r2] + ldrb r1, [r2, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2, 0x5] +_0809AF9E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809AFA4: .4byte gUnknown_020384E6 +_0809AFA8: .4byte gUnknown_083B6DB4 +_0809AFAC: .4byte gUnknown_020384E4 +_0809AFB0: .4byte 0x000011e2 +_0809AFB4: .4byte 0x000011c4 + thumb_func_end sub_809AF18 + + thumb_func_start sub_809AFB8 +sub_809AFB8: @ 809AFB8 + push {r4,r5,lr} + ldr r5, _0809B000 @ =gUnknown_020384E4 + ldr r0, _0809B004 @ =gUnknown_083B6DB4 + ldr r4, [r0] + movs r1, 0x8F + lsls r1, 5 + adds r0, r4, r1 + ldrb r0, [r0] + strb r0, [r5] + ldr r1, _0809B008 @ =gUnknown_020384E5 + ldr r2, _0809B00C @ =0x000011e1 + adds r0, r4, r2 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _0809B010 @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + bne _0809AFEA + movs r1, 0x8E + lsls r1, 5 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0 + bl StartSpriteAnim +_0809AFEA: + bl sub_809BF74 + movs r0, 0 + ldrsb r0, [r5, r0] + cmp r0, 0x1 + beq _0809B020 + cmp r0, 0x1 + bgt _0809B014 + cmp r0, 0 + beq _0809B034 + b _0809B05E + .align 2, 0 +_0809B000: .4byte gUnknown_020384E4 +_0809B004: .4byte gUnknown_083B6DB4 +_0809B008: .4byte gUnknown_020384E5 +_0809B00C: .4byte 0x000011e1 +_0809B010: .4byte gUnknown_020384E6 +_0809B014: + cmp r0, 0x2 + bne _0809B05E + movs r0, 0x1 + bl sub_809A860 + b _0809B05E +_0809B020: + ldr r2, _0809B030 @ =0x000011c4 + adds r0, r4, r2 + ldr r0, [r0] + adds r0, 0x43 + movs r1, 0xC + strb r1, [r0] + b _0809B05E + .align 2, 0 +_0809B030: .4byte 0x000011c4 +_0809B034: + ldr r0, _0809B064 @ =0x000011c4 + adds r2, r4, r0 + ldr r3, [r2] + ldrb r1, [r3, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r3, 0x5] + ldr r0, [r2] + adds r0, 0x43 + movs r1, 0x14 + strb r1, [r0] + ldr r1, [r2] + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] +_0809B05E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809B064: .4byte 0x000011c4 + thumb_func_end sub_809AFB8 + + thumb_func_start sub_809B068 +sub_809B068: @ 809B068 + push {lr} + ldr r0, _0809B078 @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + bne _0809B07C + movs r3, 0 + b _0809B08A + .align 2, 0 +_0809B078: .4byte gUnknown_020384E6 +_0809B07C: + bl CalculatePlayerPartyCount + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x5 + bls _0809B08A + movs r3, 0x5 +_0809B08A: + ldr r0, _0809B0B8 @ =gUnknown_083B6DB4 + ldr r2, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r2, r1 + ldr r0, [r0] + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809B0AA + ldr r0, _0809B0BC @ =0x000011e3 + adds r1, r2, r0 + movs r0, 0x1 + strb r0, [r1] +_0809B0AA: + movs r0, 0x1 + adds r1, r3, 0 + bl sub_809AF18 + pop {r0} + bx r0 + .align 2, 0 +_0809B0B8: .4byte gUnknown_083B6DB4 +_0809B0BC: .4byte 0x000011e3 + thumb_func_end sub_809B068 + + thumb_func_start sub_809B0C0 +sub_809B0C0: @ 809B0C0 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + bl sub_809AF18 + pop {r0} + bx r0 + thumb_func_end sub_809B0C0 + + thumb_func_start sub_809B0D4 +sub_809B0D4: @ 809B0D4 + ldr r1, _0809B0DC @ =gUnknown_020384EA + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_0809B0DC: .4byte gUnknown_020384EA + thumb_func_end sub_809B0D4 + + thumb_func_start sub_809B0E0 +sub_809B0E0: @ 809B0E0 + ldr r0, _0809B0EC @ =gUnknown_020384EA + ldr r1, _0809B0F0 @ =gUnknown_020384E5 + ldrb r1, [r1] + strb r1, [r0] + bx lr + .align 2, 0 +_0809B0EC: .4byte gUnknown_020384EA +_0809B0F0: .4byte gUnknown_020384E5 + thumb_func_end sub_809B0E0 + + thumb_func_start sub_809B0F4 +sub_809B0F4: @ 809B0F4 + ldr r0, _0809B0FC @ =gUnknown_020384EA + ldrb r0, [r0] + bx lr + .align 2, 0 +_0809B0FC: .4byte gUnknown_020384EA + thumb_func_end sub_809B0F4 + + thumb_func_start sub_809B100 +sub_809B100: @ 809B100 + lsls r0, 24 + ldr r1, _0809B120 @ =gUnknown_083B6DB4 + ldr r1, [r1] + ldr r2, _0809B124 @ =0x000012a4 + adds r3, r1, r2 + ldr r2, _0809B128 @ =gUnknown_083BBBC8 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + str r0, [r3] + ldr r0, _0809B12C @ =0x000012a8 + adds r1, r0 + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_0809B120: .4byte gUnknown_083B6DB4 +_0809B124: .4byte 0x000012a4 +_0809B128: .4byte gUnknown_083BBBC8 +_0809B12C: .4byte 0x000012a8 + thumb_func_end sub_809B100 + + thumb_func_start sub_809B130 +sub_809B130: @ 809B130 + push {lr} + ldr r0, _0809B148 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809B14C @ =0x000012a4 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_0809B148: .4byte gUnknown_083B6DB4 +_0809B14C: .4byte 0x000012a4 + thumb_func_end sub_809B130 + + thumb_func_start sub_809B150 +sub_809B150: @ 809B150 + push {r4,r5,lr} + ldr r0, _0809B16C @ =gUnknown_083B6DB4 + ldr r5, [r0] + ldr r0, _0809B170 @ =0x000012a8 + adds r4, r5, r0 + ldrb r0, [r4] + cmp r0, 0x1 + beq _0809B1A0 + cmp r0, 0x1 + bgt _0809B174 + cmp r0, 0 + beq _0809B17E + b _0809B1CE + .align 2, 0 +_0809B16C: .4byte gUnknown_083B6DB4 +_0809B170: .4byte 0x000012a8 +_0809B174: + cmp r0, 0x2 + beq _0809B1BE + cmp r0, 0x3 + beq _0809B186 + b _0809B1CE +_0809B17E: + ldr r0, _0809B18C @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809B190 +_0809B186: + movs r0, 0 + b _0809B1D0 + .align 2, 0 +_0809B18C: .4byte gUnknown_020384E6 +_0809B190: + movs r1, 0x8E + lsls r1, 5 + adds r0, r5, r1 + ldr r0, [r0] + movs r1, 0x2 + bl StartSpriteAnim + b _0809B1C8 +_0809B1A0: + bl sub_809B324 + lsls r0, 24 + cmp r0, 0 + bne _0809B1CE + movs r1, 0x8E + lsls r1, 5 + adds r0, r5, r1 + ldr r0, [r0] + movs r1, 0x3 + bl StartSpriteAnim + bl sub_809B384 + b _0809B1C8 +_0809B1BE: + bl sub_809B358 + lsls r0, 24 + cmp r0, 0 + bne _0809B1CE +_0809B1C8: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] +_0809B1CE: + movs r0, 0x1 +_0809B1D0: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_809B150 + + thumb_func_start sub_809B1D8 +sub_809B1D8: @ 809B1D8 + push {r4,r5,lr} + ldr r0, _0809B1F4 @ =gUnknown_083B6DB4 + ldr r4, [r0] + ldr r0, _0809B1F8 @ =0x000012a8 + adds r5, r4, r0 + ldrb r0, [r5] + cmp r0, 0x1 + beq _0809B220 + cmp r0, 0x1 + bgt _0809B1FC + cmp r0, 0 + beq _0809B202 + b _0809B244 + .align 2, 0 +_0809B1F4: .4byte gUnknown_083B6DB4 +_0809B1F8: .4byte 0x000012a8 +_0809B1FC: + cmp r0, 0x2 + beq _0809B240 + b _0809B244 +_0809B202: + bl sub_809B324 + lsls r0, 24 + cmp r0, 0 + bne _0809B244 + movs r1, 0x8E + lsls r1, 5 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x2 + bl StartSpriteAnim + bl sub_809B3E0 + b _0809B238 +_0809B220: + bl sub_809B358 + lsls r0, 24 + cmp r0, 0 + bne _0809B244 + movs r1, 0x8E + lsls r1, 5 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0 + bl StartSpriteAnim +_0809B238: + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + b _0809B244 +_0809B240: + movs r0, 0 + b _0809B246 +_0809B244: + movs r0, 0x1 +_0809B246: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_809B1D8 + + thumb_func_start sub_809B24C +sub_809B24C: @ 809B24C + push {r4,r5,lr} + ldr r0, _0809B268 @ =gUnknown_083B6DB4 + ldr r4, [r0] + ldr r0, _0809B26C @ =0x000012a8 + adds r5, r4, r0 + ldrb r0, [r5] + cmp r0, 0x1 + beq _0809B2E0 + cmp r0, 0x1 + bgt _0809B270 + cmp r0, 0 + beq _0809B276 + b _0809B31C + .align 2, 0 +_0809B268: .4byte gUnknown_083B6DB4 +_0809B26C: .4byte 0x000012a8 +_0809B270: + cmp r0, 0x2 + beq _0809B318 + b _0809B31C +_0809B276: + ldr r0, _0809B290 @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _0809B298 + cmp r0, 0x1 + bne _0809B318 + ldr r2, _0809B294 @ =0x000012a9 + adds r1, r4, r2 + movs r0, 0xE + b _0809B2A0 + .align 2, 0 +_0809B290: .4byte gUnknown_020384E4 +_0809B294: .4byte 0x000012a9 +_0809B298: + bl get_preferred_box + ldr r2, _0809B2D0 @ =0x000012a9 + adds r1, r4, r2 +_0809B2A0: + strb r0, [r1] + ldr r0, _0809B2D4 @ =gUnknown_083B6DB4 + ldr r4, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x2 + bl StartSpriteAnim + ldr r2, _0809B2D0 @ =0x000012a9 + adds r0, r4, r2 + ldrb r0, [r0] + ldr r1, _0809B2D8 @ =gUnknown_020384E5 + ldrb r1, [r1] + bl sub_80996B0 + ldr r0, _0809B2DC @ =0x000012a8 + adds r4, r0 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _0809B31C + .align 2, 0 +_0809B2D0: .4byte 0x000012a9 +_0809B2D4: .4byte gUnknown_083B6DB4 +_0809B2D8: .4byte gUnknown_020384E5 +_0809B2DC: .4byte 0x000012a8 +_0809B2E0: + bl sub_809971C + lsls r0, 24 + cmp r0, 0 + bne _0809B31C + movs r1, 0x8E + lsls r1, 5 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x3 + bl StartSpriteAnim + ldr r2, _0809B310 @ =0x000012a9 + adds r0, r4, r2 + ldrb r0, [r0] + ldr r1, _0809B314 @ =gUnknown_020384E5 + ldrb r1, [r1] + bl diegohint1 + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + b _0809B31C + .align 2, 0 +_0809B310: .4byte 0x000012a9 +_0809B314: .4byte gUnknown_020384E5 +_0809B318: + movs r0, 0 + b _0809B31E +_0809B31C: + movs r0, 0x1 +_0809B31E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_809B24C + + thumb_func_start sub_809B324 +sub_809B324: @ 809B324 + push {lr} + ldr r0, _0809B348 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r1 + ldr r1, [r0] + movs r2, 0x26 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _0809B33E + cmp r0, 0x8 + beq _0809B34C +_0809B33E: + ldrh r0, [r1, 0x26] + adds r0, 0x1 + strh r0, [r1, 0x26] + b _0809B350 + .align 2, 0 +_0809B348: .4byte gUnknown_083B6DB4 +_0809B34C: + movs r0, 0 + b _0809B352 +_0809B350: + movs r0, 0x1 +_0809B352: + pop {r1} + bx r1 + thumb_func_end sub_809B324 + + thumb_func_start sub_809B358 +sub_809B358: @ 809B358 + push {lr} + ldr r0, _0809B378 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r1 + ldr r1, [r0] + movs r2, 0x26 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _0809B37C + ldrh r0, [r1, 0x26] + subs r0, 0x1 + strh r0, [r1, 0x26] + movs r0, 0x1 + b _0809B37E + .align 2, 0 +_0809B378: .4byte gUnknown_083B6DB4 +_0809B37C: + movs r0, 0 +_0809B37E: + pop {r1} + bx r1 + thumb_func_end sub_809B358 + + thumb_func_start sub_809B384 +sub_809B384: @ 809B384 + push {r4,lr} + ldr r0, _0809B3AC @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _0809B3B4 + cmp r0, 0x1 + bne _0809B3D2 + ldr r4, _0809B3B0 @ =gUnknown_020384E5 + ldrb r1, [r4] + movs r0, 0xE + bl sub_809B44C + ldrb r1, [r4] + movs r0, 0 + bl sub_8099584 + b _0809B3CC + .align 2, 0 +_0809B3AC: .4byte gUnknown_020384E4 +_0809B3B0: .4byte gUnknown_020384E5 +_0809B3B4: + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + ldr r4, _0809B3D8 @ =gUnknown_020384E5 + ldrb r1, [r4] + bl sub_809B44C + ldrb r1, [r4] + movs r0, 0x1 + bl sub_8099584 +_0809B3CC: + ldr r1, _0809B3DC @ =gUnknown_020384E6 + movs r0, 0x1 + strb r0, [r1] +_0809B3D2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809B3D8: .4byte gUnknown_020384E5 +_0809B3DC: .4byte gUnknown_020384E6 + thumb_func_end sub_809B384 + + thumb_func_start sub_809B3E0 +sub_809B3E0: @ 809B3E0 + push {r4,r5,lr} + ldr r0, _0809B408 @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _0809B410 + cmp r0, 0x1 + bne _0809B432 + ldr r4, _0809B40C @ =gUnknown_020384E5 + ldrb r1, [r4] + movs r0, 0xE + bl diegohint2 + ldrb r1, [r4] + movs r0, 0xE + bl sub_809960C + b _0809B42C + .align 2, 0 +_0809B408: .4byte gUnknown_020384E4 +_0809B40C: .4byte gUnknown_020384E5 +_0809B410: + bl get_preferred_box + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _0809B438 @ =gUnknown_020384E5 + ldrb r1, [r5] + adds r0, r4, 0 + bl diegohint2 + ldrb r1, [r5] + adds r0, r4, 0 + bl sub_809960C +_0809B42C: + ldr r1, _0809B43C @ =gUnknown_020384E6 + movs r0, 0 + strb r0, [r1] +_0809B432: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809B438: .4byte gUnknown_020384E5 +_0809B43C: .4byte gUnknown_020384E6 + thumb_func_end sub_809B3E0 + + thumb_func_start sub_809B440 +sub_809B440: @ 809B440 + push {lr} + bl sub_809BF74 + pop {r0} + bx r0 + thumb_func_end sub_809B440 + + thumb_func_start sub_809B44C +sub_809B44C: @ 809B44C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + cmp r4, 0xE + bne _0809B488 + ldr r0, _0809B478 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809B47C @ =0x000025b4 + adds r0, r1 + ldr r3, _0809B480 @ =gPlayerParty + ldr r1, _0809B484 @ =gUnknown_020384E5 + movs r2, 0 + ldrsb r2, [r1, r2] + movs r1, 0x64 + muls r1, r2 + adds r1, r3 + movs r2, 0x64 + bl memcpy + b _0809B4AA + .align 2, 0 +_0809B478: .4byte gUnknown_083B6DB4 +_0809B47C: .4byte 0x000025b4 +_0809B480: .4byte gPlayerParty +_0809B484: .4byte gUnknown_020384E5 +_0809B488: + lsls r1, r4, 2 + adds r1, r4 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 4 + ldr r2, _0809B4C0 @ =gPokemonStorage + 0x4 + adds r1, r2 + adds r0, r1 + ldr r1, _0809B4C4 @ =gUnknown_083B6DB4 + ldr r1, [r1] + ldr r2, _0809B4C8 @ =0x000025b4 + adds r1, r2 + bl sub_803B4B4 +_0809B4AA: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_809B548 + ldr r0, _0809B4CC @ =gUnknown_020384E7 + strb r4, [r0] + ldr r0, _0809B4D0 @ =gUnknown_020384E8 + strb r5, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809B4C0: .4byte gPokemonStorage + 0x4 +_0809B4C4: .4byte gUnknown_083B6DB4 +_0809B4C8: .4byte 0x000025b4 +_0809B4CC: .4byte gUnknown_020384E7 +_0809B4D0: .4byte gUnknown_020384E8 + thumb_func_end sub_809B44C + + thumb_func_start diegohint2 +diegohint2: @ 809B4D4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + cmp r6, 0xE + bne _0809B508 + ldr r1, _0809B4FC @ =gPlayerParty + movs r0, 0x64 + muls r0, r5 + adds r0, r1 + ldr r1, _0809B500 @ =gUnknown_083B6DB4 + ldr r1, [r1] + ldr r2, _0809B504 @ =0x000025b4 + adds r1, r2 + movs r2, 0x64 + bl memcpy + b _0809B536 + .align 2, 0 +_0809B4FC: .4byte gPlayerParty +_0809B500: .4byte gUnknown_083B6DB4 +_0809B504: .4byte 0x000025b4 +_0809B508: + ldr r0, _0809B53C @ =gUnknown_083B6DB4 + ldr r4, [r0] + ldr r0, _0809B540 @ =0x000025b4 + adds r4, r0 + adds r0, r4, 0 + bl pokemon_restore_pp + ldr r3, _0809B544 @ =gPokemonStorage + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 4 + lsls r2, r6, 2 + adds r2, r6 + lsls r1, r2, 4 + subs r1, r2 + lsls r1, 5 + adds r0, r1 + adds r0, r3 + adds r0, 0x4 + adds r1, r4, 0 + movs r2, 0x50 + bl memcpy +_0809B536: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809B53C: .4byte gUnknown_083B6DB4 +_0809B540: .4byte 0x000025b4 +_0809B544: .4byte gPokemonStorage + thumb_func_end diegohint2 + + thumb_func_start sub_809B548 +sub_809B548: @ 809B548 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r2, r1, 24 + cmp r0, 0xE + bne _0809B568 + movs r0, 0x64 + muls r0, r2 + ldr r1, _0809B564 @ =gPlayerParty + adds r0, r1 + bl ZeroMonData + b _0809B582 + .align 2, 0 +_0809B564: .4byte gPlayerParty +_0809B568: + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + ldr r2, _0809B588 @ =gPokemonStorage + 0x4 + adds r1, r2 + adds r0, r1 + bl ZeroBoxMonData +_0809B582: + pop {r0} + bx r0 + .align 2, 0 +_0809B588: .4byte gPokemonStorage + 0x4 + thumb_func_end sub_809B548 + + thumb_func_start diegohint1 +diegohint1: @ 809B58C + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + cmp r5, 0xE + bne _0809B5C0 + ldr r0, _0809B5B4 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809B5B8 @ =0x00002618 + adds r0, r1 + ldr r2, _0809B5BC @ =gPlayerParty + movs r1, 0x64 + muls r1, r6 + adds r1, r2 + movs r2, 0x64 + bl memcpy + b _0809B5E2 + .align 2, 0 +_0809B5B4: .4byte gUnknown_083B6DB4 +_0809B5B8: .4byte 0x00002618 +_0809B5BC: .4byte gPlayerParty +_0809B5C0: + lsls r1, r5, 2 + adds r1, r5 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 4 + ldr r2, _0809B614 @ =gPokemonStorage + 0x4 + adds r1, r2 + adds r0, r1 + ldr r1, _0809B618 @ =gUnknown_083B6DB4 + ldr r1, [r1] + ldr r2, _0809B61C @ =0x00002618 + adds r1, r2 + bl sub_803B4B4 +_0809B5E2: + adds r0, r5, 0 + adds r1, r6, 0 + bl diegohint2 + ldr r0, _0809B618 @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r0, _0809B620 @ =0x000025b4 + adds r4, r1, r0 + ldr r2, _0809B61C @ =0x00002618 + adds r1, r2 + adds r0, r4, 0 + movs r2, 0x64 + bl memcpy + adds r0, r4, 0 + movs r1, 0 + bl sub_809C04C + ldr r0, _0809B624 @ =gUnknown_020384E7 + strb r5, [r0] + ldr r0, _0809B628 @ =gUnknown_020384E8 + strb r6, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809B614: .4byte gPokemonStorage + 0x4 +_0809B618: .4byte gUnknown_083B6DB4 +_0809B61C: .4byte 0x00002618 +_0809B620: .4byte 0x000025b4 +_0809B624: .4byte gUnknown_020384E7 +_0809B628: .4byte gUnknown_020384E8 + thumb_func_end diegohint1 + + thumb_func_start sub_809B62C +sub_809B62C: @ 809B62C + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r6, 0 + bl sub_8095B24 + lsls r0, 16 + lsrs r4, r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _0809B64A + movs r0, 0 + b _0809B6AC +_0809B64A: + ldr r5, _0809B668 @ =gUnknown_020384E6 + ldrb r0, [r5] + cmp r0, 0 + beq _0809B66C + lsls r4, 24 + lsrs r1, r4, 24 + adds r0, r6, 0 + bl diegohint2 + bl sub_8099480 + movs r0, 0 + strb r0, [r5] + b _0809B686 + .align 2, 0 +_0809B668: .4byte gUnknown_020384E6 +_0809B66C: + ldr r5, _0809B6B4 @ =gUnknown_020384E5 + ldrb r1, [r5] + movs r0, 0xE + bl sub_809B44C + lsls r4, 24 + lsrs r1, r4, 24 + adds r0, r6, 0 + bl diegohint2 + ldrb r0, [r5] + bl sub_8099520 +_0809B686: + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + cmp r6, r0 + bne _0809B698 + lsrs r0, r4, 24 + bl sub_8098D20 +_0809B698: + ldr r0, _0809B6B8 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x1 + bl StartSpriteAnim + movs r0, 0x1 +_0809B6AC: + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0809B6B4: .4byte gUnknown_020384E5 +_0809B6B8: .4byte gUnknown_083B6DB4 + thumb_func_end sub_809B62C + + thumb_func_start sub_809B6BC +sub_809B6BC: @ 809B6BC + push {lr} + ldr r0, _0809B6D8 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r1 + ldr r0, [r0] + movs r1, 0 + bl StartSpriteAnim + bl sub_809BF74 + pop {r0} + bx r0 + .align 2, 0 +_0809B6D8: .4byte gUnknown_083B6DB4 + thumb_func_end sub_809B6BC + + thumb_func_start sub_809B6DC +sub_809B6DC: @ 809B6DC + push {lr} + ldr r0, _0809B6EC @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809B6F0 + movs r2, 0x2 + b _0809B700 + .align 2, 0 +_0809B6EC: .4byte gUnknown_020384E6 +_0809B6F0: + ldr r0, _0809B720 @ =gUnknown_020384E4 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r2, 0x1 + eors r1, r2 + negs r0, r1 + orrs r0, r1 + lsrs r2, r0, 31 +_0809B700: + ldr r0, _0809B724 @ =gUnknown_020384E5 + ldrb r1, [r0] + adds r0, r2, 0 + bl sub_809981C + ldr r0, _0809B728 @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r2, _0809B72C @ =0x000026e4 + adds r0, r1, r2 + ldr r2, _0809B730 @ =0x000011fa + adds r1, r2 + bl StringCopy + pop {r0} + bx r0 + .align 2, 0 +_0809B720: .4byte gUnknown_020384E4 +_0809B724: .4byte gUnknown_020384E5 +_0809B728: .4byte gUnknown_083B6DB4 +_0809B72C: .4byte 0x000026e4 +_0809B730: .4byte 0x000011fa + thumb_func_end sub_809B6DC + + thumb_func_start sub_809B734 +sub_809B734: @ 809B734 + push {lr} + bl sub_80998D8 + lsls r0, 24 + cmp r0, 0 + beq _0809B744 + movs r0, 0x1 + b _0809B758 +_0809B744: + ldr r0, _0809B75C @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r1 + ldr r0, [r0] + movs r1, 0 + bl StartSpriteAnim + movs r0, 0 +_0809B758: + pop {r1} + bx r1 + .align 2, 0 +_0809B75C: .4byte gUnknown_083B6DB4 + thumb_func_end sub_809B734 + + thumb_func_start sub_809B760 +sub_809B760: @ 809B760 + push {lr} + bl sub_8099920 + ldr r1, _0809B774 @ =gUnknown_020384E6 + ldrb r0, [r1] + cmp r0, 0 + beq _0809B778 + movs r0, 0 + strb r0, [r1] + b _0809B79E + .align 2, 0 +_0809B774: .4byte gUnknown_020384E6 +_0809B778: + ldr r0, _0809B788 @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0809B78C + movs r2, 0xE + b _0809B794 + .align 2, 0 +_0809B788: .4byte gUnknown_020384E4 +_0809B78C: + bl get_preferred_box + lsls r0, 24 + lsrs r2, r0, 24 +_0809B794: + ldr r0, _0809B7A8 @ =gUnknown_020384E5 + ldrb r1, [r0] + adds r0, r2, 0 + bl sub_809B548 +_0809B79E: + bl sub_809BF74 + pop {r0} + bx r0 + .align 2, 0 +_0809B7A8: .4byte gUnknown_020384E5 + thumb_func_end sub_809B760 + + thumb_func_start sub_809B7AC +sub_809B7AC: @ 809B7AC + push {lr} + ldr r0, _0809B7CC @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809B7C8 + ldr r0, _0809B7D0 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x3 + bl StartSpriteAnim +_0809B7C8: + pop {r0} + bx r0 + .align 2, 0 +_0809B7CC: .4byte gUnknown_020384E6 +_0809B7D0: .4byte gUnknown_083B6DB4 + thumb_func_end sub_809B7AC + + thumb_func_start sub_809B7D4 +sub_809B7D4: @ 809B7D4 + push {r4-r6,lr} + ldr r0, _0809B804 @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809B81C + ldr r0, _0809B808 @ =gUnknown_083B6DB4 + ldr r4, [r0] + ldr r1, _0809B80C @ =0x00002618 + adds r0, r4, r1 + ldr r2, _0809B810 @ =0x000025b4 + adds r1, r4, r2 + movs r2, 0x64 + bl memcpy + ldr r0, _0809B814 @ =0x00002682 + adds r1, r4, r0 + movs r0, 0xFF + strb r0, [r1] + ldr r1, _0809B818 @ =0x00002683 + adds r4, r1 + movs r0, 0x1 + negs r0, r0 + strb r0, [r4] + b _0809B8A6 + .align 2, 0 +_0809B804: .4byte gUnknown_020384E6 +_0809B808: .4byte gUnknown_083B6DB4 +_0809B80C: .4byte 0x00002618 +_0809B810: .4byte 0x000025b4 +_0809B814: .4byte 0x00002682 +_0809B818: .4byte 0x00002683 +_0809B81C: + ldr r0, _0809B84C @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0809B864 + ldr r0, _0809B850 @ =gUnknown_083B6DB4 + ldr r4, [r0] + ldr r2, _0809B854 @ =0x00002618 + adds r0, r4, r2 + ldr r3, _0809B858 @ =gPlayerParty + ldr r1, _0809B85C @ =gUnknown_020384E5 + movs r2, 0 + ldrsb r2, [r1, r2] + movs r1, 0x64 + muls r1, r2 + adds r1, r3 + movs r2, 0x64 + bl memcpy + ldr r0, _0809B860 @ =0x00002682 + adds r4, r0 + movs r0, 0xE + b _0809B896 + .align 2, 0 +_0809B84C: .4byte gUnknown_020384E4 +_0809B850: .4byte gUnknown_083B6DB4 +_0809B854: .4byte 0x00002618 +_0809B858: .4byte gPlayerParty +_0809B85C: .4byte gUnknown_020384E5 +_0809B860: .4byte 0x00002682 +_0809B864: + ldr r5, _0809B8FC @ =gPokemonStorage + ldrb r0, [r5] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldr r1, _0809B900 @ =gUnknown_020384E5 + movs r2, 0 + ldrsb r2, [r1, r2] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + adds r2, r5, 0x4 + adds r1, r2 + adds r0, r1 + ldr r1, _0809B904 @ =gUnknown_083B6DB4 + ldr r4, [r1] + ldr r2, _0809B908 @ =0x00002618 + adds r1, r4, r2 + bl sub_803B4B4 + ldrb r0, [r5] + ldr r1, _0809B90C @ =0x00002682 + adds r4, r1 +_0809B896: + strb r0, [r4] + ldr r0, _0809B904 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809B900 @ =gUnknown_020384E5 + ldrb r1, [r1] + ldr r2, _0809B910 @ =0x00002683 + adds r0, r2 + strb r1, [r0] +_0809B8A6: + ldr r0, _0809B904 @ =gUnknown_083B6DB4 + ldr r6, [r0] + ldr r0, _0809B914 @ =0x0000267e + adds r4, r6, r0 + movs r0, 0 + strb r0, [r4] + ldr r1, _0809B918 @ =0x0000267f + adds r5, r6, r1 + strb r0, [r5] + ldr r0, _0809B91C @ =0x00002686 + adds r2, r6, r0 + movs r0, 0x39 + strh r0, [r2] + ldr r0, _0809B920 @ =0x00002688 + adds r1, r6, r0 + ldr r0, _0809B924 @ =0x00000123 + strh r0, [r1] + ldr r0, _0809B928 @ =0x0000268a + adds r1, r6, r0 + ldr r0, _0809B92C @ =0x00000163 + strh r0, [r1] + ldr r1, _0809B908 @ =0x00002618 + adds r0, r6, r1 + movs r1, 0x50 + bl GetMonData + lsls r0, 16 + lsrs r1, r0, 16 + movs r2, 0x1 + ands r1, r2 + strb r1, [r4] + lsrs r0, 17 + movs r1, 0x1 + ands r0, r1 + strb r0, [r5] + ldrh r0, [r4] + cmp r0, 0 + beq _0809B934 + ldr r2, _0809B930 @ =0x0000267d + adds r1, r6, r2 + movs r0, 0 + strb r0, [r1] + b _0809B940 + .align 2, 0 +_0809B8FC: .4byte gPokemonStorage +_0809B900: .4byte gUnknown_020384E5 +_0809B904: .4byte gUnknown_083B6DB4 +_0809B908: .4byte 0x00002618 +_0809B90C: .4byte 0x00002682 +_0809B910: .4byte 0x00002683 +_0809B914: .4byte 0x0000267e +_0809B918: .4byte 0x0000267f +_0809B91C: .4byte 0x00002686 +_0809B920: .4byte 0x00002688 +_0809B924: .4byte 0x00000123 +_0809B928: .4byte 0x0000268a +_0809B92C: .4byte 0x00000163 +_0809B930: .4byte 0x0000267d +_0809B934: + ldr r2, _0809B954 @ =0x0000267d + adds r0, r6, r2 + strb r1, [r0] + subs r2, 0x1 + adds r0, r6, r2 + strb r1, [r0] +_0809B940: + ldr r0, _0809B958 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809B95C @ =0x00002684 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809B954: .4byte 0x0000267d +_0809B958: .4byte gUnknown_083B6DB4 +_0809B95C: .4byte 0x00002684 + thumb_func_end sub_809B7D4 + + thumb_func_start sub_809B960 +sub_809B960: @ 809B960 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _0809B988 @ =gUnknown_083B6DB4 + ldr r2, [r0] + ldr r3, _0809B98C @ =0x0000267d + adds r1, r2, r3 + ldrb r1, [r1] + mov r12, r0 + cmp r1, 0 + beq _0809B994 + ldr r7, _0809B990 @ =0x0000267c + adds r0, r2, r7 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + b _0809BB5C + .align 2, 0 +_0809B988: .4byte gUnknown_083B6DB4 +_0809B98C: .4byte 0x0000267d +_0809B990: .4byte 0x0000267c +_0809B994: + ldr r1, _0809B9A4 @ =0x00002684 + adds r0, r2, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _0809B9A8 + cmp r0, 0x1 + beq _0809BA84 + b _0809BB58 + .align 2, 0 +_0809B9A4: .4byte 0x00002684 +_0809B9A8: + movs r5, 0 + movs r6, 0 +_0809B9AC: + mov r2, r12 + ldr r4, [r2] + ldr r3, _0809BA28 @ =0x00002682 + adds r0, r4, r3 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0xE + bne _0809B9CC + ldr r7, _0809BA2C @ =0x00002683 + adds r0, r4, r7 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, r5 + beq _0809BA02 +_0809B9CC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0809BA30 @ =gPlayerParty + adds r0, r1 + ldr r1, _0809BA34 @ =0x00002686 + adds r2, r4, r1 + movs r1, 0x50 + bl GetMonData + lsls r0, 16 + lsrs r3, r0, 16 + movs r0, 0x1 + ands r0, r3 + cmp r0, 0 + beq _0809B9F0 + ldr r2, _0809BA38 @ =0x0000267e + adds r0, r4, r2 + strb r6, [r0] +_0809B9F0: + movs r0, 0x2 + ands r3, r0 + ldr r7, _0809BA3C @ =gUnknown_083B6DB4 + mov r12, r7 + cmp r3, 0 + beq _0809BA02 + ldr r1, _0809BA40 @ =0x0000267f + adds r0, r4, r1 + strb r6, [r0] +_0809BA02: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _0809B9AC + mov r3, r12 + ldr r2, [r3] + ldr r7, _0809BA38 @ =0x0000267e + adds r0, r2, r7 + ldrh r0, [r0] + cmp r0, 0 + bne _0809BA4C + ldr r1, _0809BA44 @ =0x0000267d + adds r0, r2, r1 + movs r1, 0x1 + strb r1, [r0] + ldr r3, _0809BA48 @ =0x0000267c + b _0809BB54 + .align 2, 0 +_0809BA28: .4byte 0x00002682 +_0809BA2C: .4byte 0x00002683 +_0809BA30: .4byte gPlayerParty +_0809BA34: .4byte 0x00002686 +_0809BA38: .4byte 0x0000267e +_0809BA3C: .4byte gUnknown_083B6DB4 +_0809BA40: .4byte 0x0000267f +_0809BA44: .4byte 0x0000267d +_0809BA48: .4byte 0x0000267c +_0809BA4C: + movs r7, 0x9A + lsls r7, 6 + adds r0, r2, r7 + movs r1, 0 + strb r1, [r0] + ldr r3, _0809BA68 @ =0x00002681 + adds r0, r2, r3 + strb r1, [r0] + adds r7, 0x4 + adds r1, r2, r7 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _0809BB58 + .align 2, 0 +_0809BA68: .4byte 0x00002681 +_0809BA6C: + ldr r1, _0809BA7C @ =0x0000267d + adds r0, r2, r1 + movs r1, 0x1 + strb r1, [r0] + ldr r7, _0809BA80 @ =0x0000267c + adds r0, r2, r7 + strb r3, [r0] + b _0809BB3C + .align 2, 0 +_0809BA7C: .4byte 0x0000267d +_0809BA80: .4byte 0x0000267c +_0809BA84: + movs r5, 0 + mov r9, r12 + adds r4, r2, 0 + movs r0, 0x9A + lsls r0, 6 + adds r6, r4, r0 + ldr r1, _0809BB6C @ =0x0000267f + adds r1, r4 + mov r8, r1 + ldr r2, _0809BB70 @ =0x0000ffff + mov r10, r2 +_0809BA9A: + movs r0, 0 + ldrsb r0, [r6, r0] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldr r3, _0809BB74 @ =0x00002681 + adds r1, r4, r3 + movs r2, 0 + ldrsb r2, [r1, r2] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + ldr r2, _0809BB78 @ =gPokemonStorage + 0x4 + adds r1, r2 + adds r0, r1 + movs r1, 0x50 + ldr r7, _0809BB7C @ =0x00002686 + adds r2, r4, r7 + bl GetBoxMonData + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0 + beq _0809BB00 + ldr r1, _0809BB80 @ =0x00002682 + adds r0, r4, r1 + ldrh r0, [r0] + ldrh r2, [r6] + mov r1, r10 + ands r1, r0 + mov r0, r10 + ands r0, r2 + cmp r1, r0 + beq _0809BB00 + movs r0, 0x1 + ands r0, r3 + cmp r0, 0 + beq _0809BAF2 + ldr r2, _0809BB84 @ =0x0000267e + adds r1, r4, r2 + movs r0, 0 + strb r0, [r1] +_0809BAF2: + movs r0, 0x2 + ands r3, r0 + cmp r3, 0 + beq _0809BB00 + movs r0, 0 + mov r3, r8 + strb r0, [r3] +_0809BB00: + mov r7, r9 + ldr r2, [r7] + ldr r0, _0809BB74 @ =0x00002681 + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, 0x1 + movs r3, 0 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + ldr r7, _0809BB88 @ =gUnknown_083B6DB4 + mov r12, r7 + cmp r0, 0x1D + ble _0809BB32 + strb r3, [r1] + movs r0, 0x9A + lsls r0, 6 + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0xD + bgt _0809BA6C +_0809BB32: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x4 + bls _0809BA9A +_0809BB3C: + mov r1, r12 + ldr r2, [r1] + ldr r3, _0809BB84 @ =0x0000267e + adds r0, r2, r3 + ldrh r0, [r0] + cmp r0, 0 + bne _0809BB58 + ldr r7, _0809BB8C @ =0x0000267d + adds r0, r2, r7 + movs r1, 0x1 + strb r1, [r0] + subs r3, 0x2 +_0809BB54: + adds r0, r2, r3 + strb r1, [r0] +_0809BB58: + movs r0, 0x1 + negs r0, r0 +_0809BB5C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0809BB6C: .4byte 0x0000267f +_0809BB70: .4byte 0x0000ffff +_0809BB74: .4byte 0x00002681 +_0809BB78: .4byte gPokemonStorage + 0x4 +_0809BB7C: .4byte 0x00002686 +_0809BB80: .4byte 0x00002682 +_0809BB84: .4byte 0x0000267e +_0809BB88: .4byte gUnknown_083B6DB4 +_0809BB8C: .4byte 0x0000267d + thumb_func_end sub_809B960 + + thumb_func_start sub_809BB90 +sub_809BB90: @ 809BB90 + push {lr} + ldr r0, _0809BBB0 @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809BBAA + ldr r0, _0809BBB4 @ =gUnknown_02038480 + ldr r1, _0809BBB8 @ =gUnknown_083B6DB4 + ldr r1, [r1] + ldr r2, _0809BBBC @ =0x000025b4 + adds r1, r2 + movs r2, 0x64 + bl memcpy +_0809BBAA: + pop {r0} + bx r0 + .align 2, 0 +_0809BBB0: .4byte gUnknown_020384E6 +_0809BBB4: .4byte gUnknown_02038480 +_0809BBB8: .4byte gUnknown_083B6DB4 +_0809BBBC: .4byte 0x000025b4 + thumb_func_end sub_809BB90 + + thumb_func_start sub_809BBC0 +sub_809BBC0: @ 809BBC0 + push {lr} + ldr r0, _0809BBE4 @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809BC08 + ldr r0, _0809BBE8 @ =gUnknown_020384E7 + ldrb r0, [r0] + cmp r0, 0xE + bne _0809BBF8 + ldr r0, _0809BBEC @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809BBF0 @ =0x000025b4 + adds r0, r1 + ldr r1, _0809BBF4 @ =gUnknown_02038480 + movs r2, 0x64 + bl memcpy + b _0809BC08 + .align 2, 0 +_0809BBE4: .4byte gUnknown_020384E6 +_0809BBE8: .4byte gUnknown_020384E7 +_0809BBEC: .4byte gUnknown_083B6DB4 +_0809BBF0: .4byte 0x000025b4 +_0809BBF4: .4byte gUnknown_02038480 +_0809BBF8: + ldr r0, _0809BC0C @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809BC10 @ =0x000025b4 + adds r0, r1 + ldr r1, _0809BC14 @ =gUnknown_02038480 + movs r2, 0x50 + bl memcpy +_0809BC08: + pop {r0} + bx r0 + .align 2, 0 +_0809BC0C: .4byte gUnknown_083B6DB4 +_0809BC10: .4byte 0x000025b4 +_0809BC14: .4byte gUnknown_02038480 + thumb_func_end sub_809BBC0 + + thumb_func_start sub_809BC18 +sub_809BC18: @ 809BC18 + push {r4,r5,lr} + ldr r0, _0809BC48 @ =gUnknown_020384E6 + ldrb r5, [r0] + cmp r5, 0 + beq _0809BC64 + bl sub_809BB90 + ldr r0, _0809BC4C @ =gUnknown_083B6DB4 + ldr r2, [r0] + ldr r0, _0809BC50 @ =0x00002690 + adds r1, r2, r0 + ldr r0, _0809BC54 @ =gUnknown_02038480 + str r0, [r1] + ldr r1, _0809BC58 @ =0x0000268d + adds r0, r2, r1 + movs r1, 0 + strb r1, [r0] + ldr r3, _0809BC5C @ =0x0000268c + adds r0, r2, r3 + strb r1, [r0] + ldr r0, _0809BC60 @ =0x0000268e + adds r2, r0 + strb r1, [r2] + b _0809BCF2 + .align 2, 0 +_0809BC48: .4byte gUnknown_020384E6 +_0809BC4C: .4byte gUnknown_083B6DB4 +_0809BC50: .4byte 0x00002690 +_0809BC54: .4byte gUnknown_02038480 +_0809BC58: .4byte 0x0000268d +_0809BC5C: .4byte 0x0000268c +_0809BC60: .4byte 0x0000268e +_0809BC64: + ldr r0, _0809BC9C @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0809BCBC + ldr r0, _0809BCA0 @ =gUnknown_083B6DB4 + ldr r4, [r0] + ldr r2, _0809BCA4 @ =0x00002690 + adds r1, r4, r2 + ldr r0, _0809BCA8 @ =gPlayerParty + str r0, [r1] + ldr r0, _0809BCAC @ =gUnknown_020384E5 + ldrb r1, [r0] + ldr r3, _0809BCB0 @ =0x0000268d + adds r0, r4, r3 + strb r1, [r0] + bl StorageSystemGetPartySize + subs r0, 0x1 + ldr r2, _0809BCB4 @ =0x0000268c + adds r1, r4, r2 + strb r0, [r1] + ldr r3, _0809BCB8 @ =0x0000268e + adds r4, r3 + strb r5, [r4] + b _0809BCF2 + .align 2, 0 +_0809BC9C: .4byte gUnknown_020384E4 +_0809BCA0: .4byte gUnknown_083B6DB4 +_0809BCA4: .4byte 0x00002690 +_0809BCA8: .4byte gPlayerParty +_0809BCAC: .4byte gUnknown_020384E5 +_0809BCB0: .4byte 0x0000268d +_0809BCB4: .4byte 0x0000268c +_0809BCB8: .4byte 0x0000268e +_0809BCBC: + ldr r0, _0809BCF8 @ =gUnknown_083B6DB4 + ldr r3, [r0] + ldr r0, _0809BCFC @ =0x00002690 + adds r4, r3, r0 + ldr r2, _0809BD00 @ =gPokemonStorage + ldrb r0, [r2] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + adds r2, 0x4 + adds r0, r2 + str r0, [r4] + ldr r0, _0809BD04 @ =gUnknown_020384E5 + ldrb r1, [r0] + ldr r2, _0809BD08 @ =0x0000268d + adds r0, r3, r2 + strb r1, [r0] + ldr r0, _0809BD0C @ =0x0000268c + adds r1, r3, r0 + movs r0, 0x1D + strb r0, [r1] + ldr r1, _0809BD10 @ =0x0000268e + adds r3, r1 + movs r0, 0x5 + strb r0, [r3] +_0809BCF2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809BCF8: .4byte gUnknown_083B6DB4 +_0809BCFC: .4byte 0x00002690 +_0809BD00: .4byte gPokemonStorage +_0809BD04: .4byte gUnknown_020384E5 +_0809BD08: .4byte 0x0000268d +_0809BD0C: .4byte 0x0000268c +_0809BD10: .4byte 0x0000268e + thumb_func_end sub_809BC18 + + thumb_func_start sub_809BD14 +sub_809BD14: @ 809BD14 + push {lr} + ldr r0, _0809BD24 @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809BD28 + bl sub_809BBC0 + b _0809BD30 + .align 2, 0 +_0809BD24: .4byte gUnknown_020384E6 +_0809BD28: + ldr r0, _0809BD34 @ =gUnknown_020384E5 + ldr r1, _0809BD38 @ =0x02018000 + ldrb r1, [r1, 0x9] + strb r1, [r0] +_0809BD30: + pop {r0} + bx r0 + .align 2, 0 +_0809BD34: .4byte gUnknown_020384E5 +_0809BD38: .4byte 0x02018000 + thumb_func_end sub_809BD14 + + thumb_func_start party_compaction +party_compaction: @ 809BD3C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r7, _0809BD88 @ =0x0000ffff + movs r6, 0 + movs r5, 0 + movs r0, 0x64 + mov r9, r0 + ldr r1, _0809BD8C @ =gPlayerParty + mov r8, r1 + subs r0, 0x65 + mov r10, r0 +_0809BD58: + mov r0, r9 + muls r0, r6 + mov r1, r8 + adds r4, r0, r1 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + cmp r0, 0 + beq _0809BD90 + cmp r6, r5 + beq _0809BD80 + mov r0, r9 + muls r0, r5 + add r0, r8 + adds r1, r4, 0 + movs r2, 0x64 + bl memcpy +_0809BD80: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + b _0809BD9A + .align 2, 0 +_0809BD88: .4byte 0x0000ffff +_0809BD8C: .4byte gPlayerParty +_0809BD90: + lsls r0, r7, 16 + asrs r0, 16 + cmp r0, r10 + bne _0809BD9A + adds r7, r6, 0 +_0809BD9A: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x5 + bls _0809BD58 + lsls r7, 16 + cmp r5, 0x5 + bhi _0809BDC2 + movs r6, 0x64 + ldr r4, _0809BDD4 @ =gPlayerParty +_0809BDAE: + adds r0, r5, 0 + muls r0, r6 + adds r0, r4 + bl ZeroMonData + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _0809BDAE +_0809BDC2: + asrs r0, r7, 16 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0809BDD4: .4byte gPlayerParty + thumb_func_end party_compaction + + thumb_func_start sub_809BDD8 +sub_809BDD8: @ 809BDD8 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r1, sp + strb r0, [r1] + ldr r1, _0809BE04 @ =gUnknown_083B6DB4 + ldr r2, [r1] + ldr r3, _0809BE08 @ =0x000011f7 + adds r1, r2, r3 + strb r0, [r1] + ldr r0, _0809BE0C @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809BE14 + ldr r1, _0809BE10 @ =0x000025b4 + adds r0, r2, r1 + movs r1, 0x8 + mov r2, sp + bl SetMonData + b _0809BE68 + .align 2, 0 +_0809BE04: .4byte gUnknown_083B6DB4 +_0809BE08: .4byte 0x000011f7 +_0809BE0C: .4byte gUnknown_020384E6 +_0809BE10: .4byte 0x000025b4 +_0809BE14: + ldr r4, _0809BE70 @ =gUnknown_020384E4 + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r0, 0x1 + bne _0809BE34 + ldr r0, _0809BE74 @ =gUnknown_020384E5 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0809BE78 @ =gPlayerParty + adds r0, r1 + movs r1, 0x8 + mov r2, sp + bl SetMonData +_0809BE34: + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r0, 0 + bne _0809BE68 + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldr r1, _0809BE74 @ =gUnknown_020384E5 + movs r2, 0 + ldrsb r2, [r1, r2] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + ldr r2, _0809BE7C @ =gPokemonStorage + 0x4 + adds r1, r2 + adds r0, r1 + movs r1, 0x8 + mov r2, sp + bl SetBoxMonData +_0809BE68: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809BE70: .4byte gUnknown_020384E4 +_0809BE74: .4byte gUnknown_020384E5 +_0809BE78: .4byte gPlayerParty +_0809BE7C: .4byte gPokemonStorage + 0x4 + thumb_func_end sub_809BDD8 + + thumb_func_start sub_809BE80 +sub_809BE80: @ 809BE80 + push {lr} + ldr r0, _0809BEA8 @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0809BEB4 + ldr r0, _0809BEAC @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + bne _0809BEB4 + ldr r0, _0809BEB0 @ =gUnknown_020384E5 + ldrb r0, [r0] + bl CountAlivePartyMonsExceptOne + lsls r0, 24 + cmp r0, 0 + bne _0809BEB4 + movs r0, 0x1 + b _0809BEB6 + .align 2, 0 +_0809BEA8: .4byte gUnknown_020384E4 +_0809BEAC: .4byte gUnknown_020384E6 +_0809BEB0: .4byte gUnknown_020384E5 +_0809BEB4: + movs r0, 0 +_0809BEB6: + pop {r1} + bx r1 + thumb_func_end sub_809BE80 + + thumb_func_start sub_809BEBC +sub_809BEBC: @ 809BEBC + push {lr} + ldr r0, _0809BF00 @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809BF18 + ldr r0, _0809BF04 @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0809BEFC + ldr r0, _0809BF08 @ =gUnknown_020384E5 + ldrb r0, [r0] + bl CountAlivePartyMonsExceptOne + lsls r0, 24 + cmp r0, 0 + bne _0809BEFC + ldr r0, _0809BF0C @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r2, _0809BF10 @ =0x000011f9 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _0809BF18 + ldr r2, _0809BF14 @ =0x000025b4 + adds r0, r1, r2 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _0809BF18 +_0809BEFC: + movs r0, 0x1 + b _0809BF1A + .align 2, 0 +_0809BF00: .4byte gUnknown_020384E6 +_0809BF04: .4byte gUnknown_020384E4 +_0809BF08: .4byte gUnknown_020384E5 +_0809BF0C: .4byte gUnknown_083B6DB4 +_0809BF10: .4byte 0x000011f9 +_0809BF14: .4byte 0x000025b4 +_0809BF18: + movs r0, 0 +_0809BF1A: + pop {r1} + bx r1 + thumb_func_end sub_809BEBC + + thumb_func_start sub_809BF20 +sub_809BF20: @ 809BF20 + ldr r0, _0809BF28 @ =gUnknown_020384E6 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0809BF28: .4byte gUnknown_020384E6 + thumb_func_end sub_809BF20 + + thumb_func_start sub_809BF2C +sub_809BF2C: @ 809BF2C + push {lr} + movs r1, 0 + ldr r0, _0809BF44 @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x2 + bne _0809BF3E + movs r1, 0x1 +_0809BF3E: + adds r0, r1, 0 + pop {r1} + bx r1 + .align 2, 0 +_0809BF44: .4byte gUnknown_020384E4 + thumb_func_end sub_809BF2C + + thumb_func_start sub_809BF48 +sub_809BF48: @ 809BF48 + push {lr} + movs r1, 0 + ldr r0, _0809BF6C @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x3 + bne _0809BF66 + ldr r0, _0809BF70 @ =gUnknown_020384E5 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0809BF66 + movs r1, 0x1 +_0809BF66: + adds r0, r1, 0 + pop {r1} + bx r1 + .align 2, 0 +_0809BF6C: .4byte gUnknown_020384E4 +_0809BF70: .4byte gUnknown_020384E5 + thumb_func_end sub_809BF48 + + thumb_func_start sub_809BF74 +sub_809BF74: @ 809BF74 + push {r4,lr} + ldr r0, _0809BFA8 @ =gUnknown_083B6DB4 + ldr r1, [r0] + movs r2, 0 + ldr r3, _0809BFAC @ =gUnknown_020384E6 + ldrb r0, [r3] + cmp r0, 0 + bne _0809BF86 + movs r2, 0x1 +_0809BF86: + ldr r4, _0809BFB0 @ =0x000011f6 + adds r0, r1, r4 + strb r2, [r0] + ldrb r0, [r3] + cmp r0, 0 + bne _0809C018 + ldr r0, _0809BFB4 @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + beq _0809BFBE + cmp r0, 0x1 + bgt _0809BFB8 + cmp r0, 0 + beq _0809BFEE + b _0809C018 + .align 2, 0 +_0809BFA8: .4byte gUnknown_083B6DB4 +_0809BFAC: .4byte gUnknown_020384E6 +_0809BFB0: .4byte 0x000011f6 +_0809BFB4: .4byte gUnknown_020384E4 +_0809BFB8: + cmp r0, 0x3 + bgt _0809C018 + b _0809BFE4 +_0809BFBE: + ldr r1, _0809BFDC @ =gUnknown_020384E5 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0x5 + bgt _0809BFE4 + adds r1, r0, 0 + movs r0, 0x64 + muls r0, r1 + ldr r1, _0809BFE0 @ =gPlayerParty + adds r0, r1 + movs r1, 0 + bl sub_809C04C + b _0809C018 + .align 2, 0 +_0809BFDC: .4byte gUnknown_020384E5 +_0809BFE0: .4byte gPlayerParty +_0809BFE4: + movs r0, 0 + movs r1, 0x2 + bl sub_809C04C + b _0809C018 +_0809BFEE: + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldr r1, _0809C020 @ =gUnknown_020384E5 + movs r2, 0 + ldrsb r2, [r1, r2] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + ldr r2, _0809C024 @ =gPokemonStorage + 0x4 + adds r1, r2 + adds r0, r1 + movs r1, 0x1 + bl sub_809C04C +_0809C018: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809C020: .4byte gUnknown_020384E5 +_0809C024: .4byte gPokemonStorage + 0x4 + thumb_func_end sub_809BF74 + + thumb_func_start sub_809C028 +sub_809C028: @ 809C028 + push {lr} + ldr r0, _0809C03C @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809C044 + ldr r0, _0809C040 @ =gUnknown_02038480 + movs r1, 0 + bl sub_809C04C + b _0809C048 + .align 2, 0 +_0809C03C: .4byte gUnknown_020384E6 +_0809C040: .4byte gUnknown_02038480 +_0809C044: + bl sub_809BF74 +_0809C048: + pop {r0} + bx r0 + thumb_func_end sub_809C028 + + thumb_func_start sub_809C04C +sub_809C04C: @ 809C04C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r7, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + str r0, [sp] + ldr r0, _0809C0FC @ =gUnknown_083B6DB4 + ldr r6, [r0] + ldr r2, _0809C100 @ =0x000011f2 + adds r2, r6 + mov r8, r2 + mov r0, sp + ldrh r0, [r0] + strh r0, [r2] + cmp r1, 0 + bne _0809C120 + adds r0, r7, 0 + movs r1, 0x41 + bl GetMonData + ldr r2, _0809C104 @ =0x000011f0 + adds r1, r6, r2 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + bne _0809C08C + b _0809C1EC +_0809C08C: + adds r0, r7, 0 + movs r1, 0x2D + bl GetMonData + ldr r2, _0809C108 @ =0x000011f9 + adds r1, r6, r2 + strb r0, [r1] + ldr r0, _0809C10C @ =0x000011fa + adds r4, r6, r0 + adds r0, r7, 0 + movs r1, 0x2 + adds r2, r4, 0 + bl GetMonData + adds r0, r4, 0 + bl StringGetEnd10 + adds r0, r7, 0 + movs r1, 0x38 + bl GetMonData + ldr r2, _0809C110 @ =0x000011f8 + adds r1, r6, r2 + strb r0, [r1] + adds r0, r7, 0 + movs r1, 0x8 + bl GetMonData + ldr r2, _0809C114 @ =0x000011f7 + adds r1, r6, r2 + strb r0, [r1] + adds r0, r7, 0 + movs r1, 0 + bl GetMonData + ldr r2, _0809C118 @ =0x000011ec + adds r1, r6, r2 + str r0, [r1] + adds r0, r7, 0 + bl pokemon_get_pal + ldr r2, _0809C11C @ =0x000011e8 + adds r1, r6, r2 + str r0, [r1] + adds r0, r7, 0 + bl GetMonGender + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + adds r0, r7, 0 + movs r1, 0xC + bl GetMonData + b _0809C1B2 + .align 2, 0 +_0809C0FC: .4byte gUnknown_083B6DB4 +_0809C100: .4byte 0x000011f2 +_0809C104: .4byte 0x000011f0 +_0809C108: .4byte 0x000011f9 +_0809C10C: .4byte 0x000011fa +_0809C110: .4byte 0x000011f8 +_0809C114: .4byte 0x000011f7 +_0809C118: .4byte 0x000011ec +_0809C11C: .4byte 0x000011e8 +_0809C120: + cmp r1, 0x1 + bne _0809C1D4 + adds r0, r7, 0 + movs r1, 0x41 + bl GetBoxMonData + ldr r2, _0809C1B8 @ =0x000011f0 + adds r5, r6, r2 + strh r0, [r5] + lsls r0, 16 + cmp r0, 0 + beq _0809C1EC + adds r0, r7, 0 + movs r1, 0x1 + bl GetBoxMonData + mov r9, r0 + adds r0, r7, 0 + movs r1, 0x2D + bl GetBoxMonData + ldr r2, _0809C1BC @ =0x000011f9 + adds r1, r6, r2 + strb r0, [r1] + ldr r0, _0809C1C0 @ =0x000011fa + adds r4, r6, r0 + adds r0, r7, 0 + movs r1, 0x2 + adds r2, r4, 0 + bl GetBoxMonData + adds r0, r4, 0 + bl StringGetEnd10 + adds r0, r7, 0 + bl GetLevelFromBoxMonExp + ldr r2, _0809C1C4 @ =0x000011f8 + adds r1, r6, r2 + strb r0, [r1] + adds r0, r7, 0 + movs r1, 0x8 + bl GetBoxMonData + ldr r2, _0809C1C8 @ =0x000011f7 + adds r1, r6, r2 + strb r0, [r1] + adds r0, r7, 0 + movs r1, 0 + bl GetBoxMonData + adds r2, r0, 0 + ldr r0, _0809C1CC @ =0x000011ec + adds r4, r6, r0 + str r2, [r4] + ldrh r0, [r5] + mov r1, r9 + bl species_and_otid_get_pal + ldr r2, _0809C1D0 @ =0x000011e8 + adds r1, r6, r2 + str r0, [r1] + ldrh r0, [r5] + ldr r1, [r4] + bl GetGenderFromSpeciesAndPersonality + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + adds r0, r7, 0 + movs r1, 0xC + bl GetBoxMonData +_0809C1B2: + mov r1, r8 + strh r0, [r1] + b _0809C1DE + .align 2, 0 +_0809C1B8: .4byte 0x000011f0 +_0809C1BC: .4byte 0x000011f9 +_0809C1C0: .4byte 0x000011fa +_0809C1C4: .4byte 0x000011f8 +_0809C1C8: .4byte 0x000011f7 +_0809C1CC: .4byte 0x000011ec +_0809C1D0: .4byte 0x000011e8 +_0809C1D4: + ldr r2, _0809C220 @ =0x000011f0 + adds r0, r6, r2 + mov r1, sp + ldrh r1, [r1] + strh r1, [r0] +_0809C1DE: + ldr r0, _0809C224 @ =gUnknown_083B6DB4 + ldr r4, [r0] + ldr r2, _0809C220 @ =0x000011f0 + adds r0, r4, r2 + ldrh r1, [r0] + cmp r1, 0 + bne _0809C23C +_0809C1EC: + ldr r0, _0809C224 @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r0, _0809C228 @ =0x000011fa + adds r2, r1, r0 + movs r0, 0xFF + strb r0, [r2] + ldr r0, _0809C22C @ =0x0000120f + adds r2, r1, r0 + movs r0, 0x1 + negs r0, r0 + strb r0, [r2] + ldr r0, _0809C230 @ =0x00001234 + adds r2, r1, r0 + movs r0, 0x1 + negs r0, r0 + strb r0, [r2] + ldr r0, _0809C234 @ =0x00001259 + adds r2, r1, r0 + movs r0, 0x1 + negs r0, r0 + strb r0, [r2] + ldr r2, _0809C238 @ =0x0000127a + adds r1, r2 + strb r0, [r1] + b _0809C43E + .align 2, 0 +_0809C220: .4byte 0x000011f0 +_0809C224: .4byte gUnknown_083B6DB4 +_0809C228: .4byte 0x000011fa +_0809C22C: .4byte 0x0000120f +_0809C230: .4byte 0x00001234 +_0809C234: .4byte 0x00001259 +_0809C238: .4byte 0x0000127a +_0809C23C: + ldr r2, _0809C28C @ =0x000011f9 + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _0809C2A4 + ldr r0, _0809C290 @ =0x0000120f + adds r7, r4, r0 + movs r0, 0xFC + strb r0, [r7] + movs r0, 0x4 + strb r0, [r7, 0x1] + movs r0, 0xF + strb r0, [r7, 0x2] + movs r0, 0 + strb r0, [r7, 0x3] + movs r0, 0x1 + strb r0, [r7, 0x4] + ldr r1, _0809C294 @ =0x00001214 + adds r7, r4, r1 + adds r2, 0x1 + adds r1, r4, r2 + adds r0, r7, 0 + bl StringCopy + ldr r0, _0809C298 @ =0x00001234 + adds r1, r4, r0 + movs r0, 0xFF + strb r0, [r1] + ldr r2, _0809C29C @ =0x00001259 + adds r1, r4, r2 + movs r0, 0x1 + negs r0, r0 + strb r0, [r1] + ldr r0, _0809C2A0 @ =0x0000127a + adds r1, r4, r0 + movs r0, 0x1 + negs r0, r0 + strb r0, [r1] + b _0809C43E + .align 2, 0 +_0809C28C: .4byte 0x000011f9 +_0809C290: .4byte 0x0000120f +_0809C294: .4byte 0x00001214 +_0809C298: .4byte 0x00001234 +_0809C29C: .4byte 0x00001259 +_0809C2A0: .4byte 0x0000127a +_0809C2A4: + cmp r1, 0x20 + beq _0809C2AC + cmp r1, 0x1D + bne _0809C2B0 +_0809C2AC: + movs r1, 0xFF + str r1, [sp] +_0809C2B0: + ldr r0, _0809C388 @ =gUnknown_083B6DB4 + ldr r4, [r0] + ldr r2, _0809C38C @ =0x0000120f + adds r7, r4, r2 + movs r0, 0xFC + mov r9, r0 + strb r0, [r7] + movs r1, 0x4 + mov r8, r1 + strb r1, [r7, 0x1] + movs r2, 0xF + strb r2, [r7, 0x2] + movs r0, 0 + strb r0, [r7, 0x3] + movs r6, 0x1 + strb r6, [r7, 0x4] + ldr r1, _0809C390 @ =0x00001214 + adds r7, r4, r1 + ldr r2, _0809C394 @ =0x000011fa + adds r1, r4, r2 + adds r0, r7, 0 + bl StringCopy + ldr r0, _0809C398 @ =0x00001234 + adds r7, r4, r0 + mov r1, r9 + strb r1, [r7] + mov r2, r8 + strb r2, [r7, 0x1] + movs r0, 0xF + strb r0, [r7, 0x2] + movs r1, 0 + strb r1, [r7, 0x3] + strb r6, [r7, 0x4] + mov r2, r9 + strb r2, [r7, 0x5] + movs r0, 0x13 + mov r10, r0 + strb r0, [r7, 0x6] + movs r1, 0x7 + strb r1, [r7, 0x7] + movs r0, 0xBA + strb r0, [r7, 0x8] + ldr r2, _0809C39C @ =0x0000123d + adds r7, r4, r2 + ldr r1, _0809C3A0 @ =0x000011f0 + adds r0, r4, r1 + ldrh r1, [r0] + movs r0, 0xB + muls r1, r0 + ldr r0, _0809C3A4 @ =gSpeciesNames + adds r1, r0 + adds r0, r7, 0 + bl StringCopy + adds r7, r0, 0 + mov r2, r9 + strb r2, [r7] + mov r0, r10 + strb r0, [r7, 0x1] + movs r0, 0x50 + strb r0, [r7, 0x2] + movs r0, 0xFF + strb r0, [r7, 0x3] + ldr r1, _0809C3A8 @ =0x00001259 + adds r7, r4, r1 + strb r2, [r7] + mov r2, r8 + strb r2, [r7, 0x1] + movs r0, 0xF + strb r0, [r7, 0x2] + movs r1, 0 + strb r1, [r7, 0x3] + strb r6, [r7, 0x4] + mov r2, r9 + strb r2, [r7, 0x5] + mov r0, r10 + strb r0, [r7, 0x6] + movs r6, 0x8 + strb r6, [r7, 0x7] + ldr r1, _0809C3AC @ =0x00001261 + adds r7, r4, r1 + movs r0, 0x34 + strb r0, [r7] + ldr r2, _0809C3B0 @ =0x00001262 + adds r7, r4, r2 + ldr r0, _0809C3B4 @ =0x000011f8 + adds r4, r0 + ldrb r1, [r4] + adds r0, r7, 0 + movs r2, 0x22 + movs r3, 0x1 + bl sub_8072C14 + adds r7, r0, 0 + mov r1, r9 + strb r1, [r7] + movs r0, 0x11 + strb r0, [r7, 0x1] + strb r6, [r7, 0x2] + adds r7, 0x3 + ldr r2, [sp] + cmp r2, 0 + beq _0809C3B8 + cmp r2, 0xFE + beq _0809C3D0 + b _0809C3EA + .align 2, 0 +_0809C388: .4byte gUnknown_083B6DB4 +_0809C38C: .4byte 0x0000120f +_0809C390: .4byte 0x00001214 +_0809C394: .4byte 0x000011fa +_0809C398: .4byte 0x00001234 +_0809C39C: .4byte 0x0000123d +_0809C3A0: .4byte 0x000011f0 +_0809C3A4: .4byte gSpeciesNames +_0809C3A8: .4byte 0x00001259 +_0809C3AC: .4byte 0x00001261 +_0809C3B0: .4byte 0x00001262 +_0809C3B4: .4byte 0x000011f8 +_0809C3B8: + mov r0, r9 + strb r0, [r7] + mov r1, r8 + strb r1, [r7, 0x1] + strb r1, [r7, 0x2] + mov r2, sp + ldrb r2, [r2] + strb r2, [r7, 0x3] + movs r0, 0x5 + strb r0, [r7, 0x4] + movs r0, 0xB5 + b _0809C3E6 +_0809C3D0: + mov r0, r9 + strb r0, [r7] + mov r1, r8 + strb r1, [r7, 0x1] + movs r0, 0x6 + strb r0, [r7, 0x2] + movs r2, 0 + strb r2, [r7, 0x3] + movs r0, 0x7 + strb r0, [r7, 0x4] + movs r0, 0xB6 +_0809C3E6: + strb r0, [r7, 0x5] + adds r7, 0x6 +_0809C3EA: + movs r5, 0xFF + strb r5, [r7] + ldr r0, _0809C450 @ =gUnknown_083B6DB4 + ldr r2, [r0] + ldr r1, _0809C454 @ =0x0000127a + adds r7, r2, r1 + ldr r0, _0809C458 @ =0x000011f2 + adds r3, r2, r0 + ldrh r0, [r3] + cmp r0, 0 + beq _0809C43C + movs r4, 0xFC + strb r4, [r7] + movs r1, 0x4 + strb r1, [r7, 0x1] + movs r0, 0xF + strb r0, [r7, 0x2] + movs r0, 0 + strb r0, [r7, 0x3] + movs r0, 0x1 + strb r0, [r7, 0x4] + ldr r0, _0809C45C @ =0x0000127f + adds r7, r2, r0 + strb r4, [r7] + movs r0, 0x6 + strb r0, [r7, 0x1] + strb r1, [r7, 0x2] + ldr r1, _0809C460 @ =0x00001282 + adds r7, r2, r1 + ldrh r0, [r3] + bl ItemId_GetItem + adds r1, r0, 0 + adds r0, r7, 0 + bl StringCopy + adds r7, r0, 0 + strb r4, [r7] + movs r0, 0x7 + strb r0, [r7, 0x1] + adds r7, 0x2 +_0809C43C: + strb r5, [r7] +_0809C43E: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809C450: .4byte gUnknown_083B6DB4 +_0809C454: .4byte 0x0000127a +_0809C458: .4byte 0x000011f2 +_0809C45C: .4byte 0x0000127f +_0809C460: .4byte 0x00001282 + thumb_func_end sub_809C04C + + thumb_func_start sub_809C464 +sub_809C464: @ 809C464 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _0809C4D8 @ =gUnknown_020384E4 + ldrb r0, [r0] + mov r8, r0 + ldr r2, _0809C4DC @ =gUnknown_020384E5 + ldrb r4, [r2] + ldr r0, _0809C4E0 @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r0, _0809C4E4 @ =0x000011de + adds r7, r1, r0 + movs r0, 0 + strb r0, [r7] + ldr r3, _0809C4E8 @ =0x000011df + adds r5, r1, r3 + strb r0, [r5] + adds r3, 0x4 + adds r6, r1, r3 + strb r0, [r6] + ldr r0, _0809C4EC @ =gMain + mov r12, r0 + ldrh r1, [r0, 0x30] + movs r0, 0x40 + ands r0, r1 + adds r3, r2, 0 + cmp r0, 0 + beq _0809C4A0 + b _0809C62A +_0809C4A0: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0809C4F0 + movs r1, 0x1 + mov r9, r1 + lsls r0, r4, 24 + movs r3, 0xC0 + lsls r3, 19 + adds r0, r3 + lsrs r4, r0, 24 + asrs r0, 24 + cmp r0, 0x1D + bgt _0809C4BE + b _0809C648 +_0809C4BE: + movs r1, 0x3 + mov r8, r1 + subs r0, 0x1E + lsls r0, 24 + asrs r0, 24 + bl __divsi3 + lsls r0, 24 + lsrs r4, r0, 24 + mov r3, r9 + strb r3, [r7] + strb r3, [r6] + b _0809C648 + .align 2, 0 +_0809C4D8: .4byte gUnknown_020384E4 +_0809C4DC: .4byte gUnknown_020384E5 +_0809C4E0: .4byte gUnknown_083B6DB4 +_0809C4E4: .4byte 0x000011de +_0809C4E8: .4byte 0x000011df +_0809C4EC: .4byte gMain +_0809C4F0: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0809C524 + movs r0, 0x1 + mov r9, r0 + movs r0, 0 + ldrsb r0, [r3, r0] + movs r1, 0x6 + bl __modsi3 + lsls r0, 24 + cmp r0, 0 + beq _0809C514 + lsls r0, r4, 24 + movs r1, 0xFF + lsls r1, 24 + b _0809C63C +_0809C514: + movs r0, 0xFF + strb r0, [r5] + lsls r0, r4, 24 + movs r3, 0xA0 + lsls r3, 19 + adds r0, r3 + lsrs r4, r0, 24 + b _0809C648 +_0809C524: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0809C554 + movs r0, 0x1 + mov r9, r0 + movs r0, 0 + ldrsb r0, [r3, r0] + adds r0, 0x1 + movs r1, 0x6 + bl __modsi3 + cmp r0, 0 + beq _0809C548 + lsls r0, r4, 24 + movs r1, 0x80 + lsls r1, 17 + b _0809C63C +_0809C548: + mov r3, r9 + strb r3, [r5] + lsls r0, r4, 24 + movs r1, 0xFB + lsls r1, 24 + b _0809C63C +_0809C554: + mov r3, r12 + ldrh r1, [r3, 0x2E] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0809C56A + movs r0, 0x1 + mov r9, r0 + movs r1, 0x2 + mov r8, r1 + b _0809C646 +_0809C56A: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809C5D4 + bl sub_809CAB0 + lsls r0, 24 + cmp r0, 0 + beq _0809C5D4 + ldr r0, _0809C588 @ =gUnknown_020384E9 + ldrb r0, [r0] + cmp r0, 0 + bne _0809C58C + movs r0, 0x8 + b _0809C658 + .align 2, 0 +_0809C588: .4byte gUnknown_020384E9 +_0809C58C: + movs r0, 0 + bl sub_809CE4C + subs r0, 0x1 + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x4 + bhi _0809C5D4 + lsls r0, 2 + ldr r1, _0809C5A8 @ =_0809C5AC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809C5A8: .4byte _0809C5AC + .align 2, 0 +_0809C5AC: + .4byte _0809C5C0 + .4byte _0809C5C4 + .4byte _0809C5C8 + .4byte _0809C5CC + .4byte _0809C5D0 +_0809C5C0: + movs r0, 0xB + b _0809C658 +_0809C5C4: + movs r0, 0xC + b _0809C658 +_0809C5C8: + movs r0, 0xD + b _0809C658 +_0809C5CC: + movs r0, 0xE + b _0809C658 +_0809C5D0: + movs r0, 0xF + b _0809C658 +_0809C5D4: + ldr r2, _0809C5E4 @ =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809C5E8 + movs r0, 0x10 + b _0809C658 + .align 2, 0 +_0809C5E4: .4byte gMain +_0809C5E8: + ldr r0, _0809C600 @ =gSaveBlock2 + ldrb r0, [r0, 0x13] + cmp r0, 0x1 + bne _0809C612 + ldrh r1, [r2, 0x2C] + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _0809C604 + movs r0, 0xA + b _0809C658 + .align 2, 0 +_0809C600: .4byte gSaveBlock2 +_0809C604: + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _0809C612 + movs r0, 0x9 + b _0809C658 +_0809C612: + ldrh r1, [r2, 0x2E] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0809C624 + bl sub_809CD88 + movs r0, 0 + b _0809C658 +_0809C624: + movs r3, 0 + mov r9, r3 + b _0809C656 +_0809C62A: + movs r0, 0x1 + mov r9, r0 + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, 0x5 + ble _0809C642 + lsls r0, r4, 24 + movs r1, 0xFA + lsls r1, 24 +_0809C63C: + adds r0, r1 + lsrs r4, r0, 24 + b _0809C648 +_0809C642: + movs r3, 0x2 + mov r8, r3 +_0809C646: + movs r4, 0 +_0809C648: + mov r0, r9 + cmp r0, 0 + beq _0809C656 + mov r0, r8 + adds r1, r4, 0 + bl sub_809AF18 +_0809C656: + mov r0, r9 +_0809C658: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809C464 + + thumb_func_start sub_809C664 +sub_809C664: @ 809C664 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _0809C6D8 @ =gUnknown_020384E4 + ldrb r0, [r0] + mov r10, r0 + ldr r7, _0809C6DC @ =gUnknown_020384E5 + ldrb r4, [r7] + ldr r2, _0809C6E0 @ =gUnknown_083B6DB4 + ldr r5, [r2] + ldr r1, _0809C6E4 @ =0x000011df + adds r0, r5, r1 + movs r1, 0 + strb r1, [r0] + ldr r3, _0809C6E8 @ =0x000011de + adds r0, r5, r3 + strb r1, [r0] + adds r3, 0x5 + adds r0, r5, r3 + strb r1, [r0] + mov r9, r1 + mov r8, r1 + ldr r1, _0809C6EC @ =gMain + ldrh r3, [r1, 0x30] + movs r0, 0x40 + ands r0, r3 + adds r6, r7, 0 + mov r12, r2 + adds r2, r1, 0 + cmp r0, 0 + beq _0809C6A8 + b _0809C81C +_0809C6A8: + movs r0, 0x80 + ands r0, r3 + cmp r0, 0 + beq _0809C6F0 + lsls r0, r4, 24 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r4, r0, 24 + asrs r0, 24 + cmp r0, 0x6 + ble _0809C6C2 + movs r4, 0 +_0809C6C2: + lsls r0, r4, 24 + asrs r0, 24 + movs r1, 0 + ldrsb r1, [r6, r1] + cmp r0, r1 + bne _0809C6D0 + b _0809C83C +_0809C6D0: + movs r2, 0x1 + mov r8, r2 + b _0809C842 + .align 2, 0 +_0809C6D8: .4byte gUnknown_020384E4 +_0809C6DC: .4byte gUnknown_020384E5 +_0809C6E0: .4byte gUnknown_083B6DB4 +_0809C6E4: .4byte 0x000011df +_0809C6E8: .4byte 0x000011de +_0809C6EC: .4byte gMain +_0809C6F0: + movs r0, 0x20 + ands r0, r3 + cmp r0, 0 + beq _0809C714 + ldrb r1, [r6] + movs r0, 0 + ldrsb r0, [r6, r0] + cmp r0, 0 + beq _0809C714 + movs r3, 0x1 + mov r8, r3 + ldr r2, _0809C710 @ =0x000011e2 + adds r0, r5, r2 + strb r1, [r0] + movs r4, 0 + b _0809C83C + .align 2, 0 +_0809C710: .4byte 0x000011e2 +_0809C714: + ldrh r1, [r2, 0x30] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0809C748 + movs r0, 0 + ldrsb r0, [r6, r0] + cmp r0, 0 + bne _0809C73C + movs r3, 0x1 + mov r8, r3 + mov r1, r12 + ldr r0, [r1] + ldr r2, _0809C738 @ =0x000011e2 + adds r0, r2 + ldrb r4, [r0] + b _0809C83C + .align 2, 0 +_0809C738: .4byte 0x000011e2 +_0809C73C: + movs r3, 0x6 + mov r8, r3 + movs r0, 0 + mov r10, r0 + movs r4, 0 + b _0809C83C +_0809C748: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809C7D0 + movs r0, 0 + ldrsb r0, [r6, r0] + cmp r0, 0x6 + bne _0809C76E + mov r1, r12 + ldr r0, [r1] + ldrb r0, [r0, 0x5] + cmp r0, 0x1 + bne _0809C768 + movs r0, 0x4 + b _0809C84C +_0809C768: + movs r2, 0x1 + mov r9, r2 + b _0809C7D0 +_0809C76E: + bl sub_809CAB0 + lsls r0, 24 + cmp r0, 0 + beq _0809C7D0 + ldr r0, _0809C784 @ =gUnknown_020384E9 + ldrb r0, [r0] + cmp r0, 0 + bne _0809C788 + movs r0, 0x8 + b _0809C84C + .align 2, 0 +_0809C784: .4byte gUnknown_020384E9 +_0809C788: + movs r0, 0 + bl sub_809CE4C + subs r0, 0x1 + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x4 + bhi _0809C7D0 + lsls r0, 2 + ldr r1, _0809C7A4 @ =_0809C7A8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809C7A4: .4byte _0809C7A8 + .align 2, 0 +_0809C7A8: + .4byte _0809C7BC + .4byte _0809C7C0 + .4byte _0809C7C4 + .4byte _0809C7C8 + .4byte _0809C7CC +_0809C7BC: + movs r0, 0xB + b _0809C84C +_0809C7C0: + movs r0, 0xC + b _0809C84C +_0809C7C4: + movs r0, 0xD + b _0809C84C +_0809C7C8: + movs r0, 0xE + b _0809C84C +_0809C7CC: + movs r0, 0xF + b _0809C84C +_0809C7D0: + ldr r2, _0809C7EC @ =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809C7F8 + ldr r0, _0809C7F0 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldrb r0, [r0, 0x5] + cmp r0, 0x1 + bne _0809C7F4 + movs r0, 0x10 + b _0809C84C + .align 2, 0 +_0809C7EC: .4byte gMain +_0809C7F0: .4byte gUnknown_083B6DB4 +_0809C7F4: + movs r3, 0x1 + mov r9, r3 +_0809C7F8: + mov r0, r9 + cmp r0, 0 + beq _0809C80A + movs r1, 0x6 + mov r8, r1 + movs r2, 0 + mov r10, r2 + movs r4, 0 + b _0809C83C +_0809C80A: + ldrh r1, [r2, 0x2E] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0809C83C + bl sub_809CD88 + movs r0, 0 + b _0809C84C +_0809C81C: + lsls r0, r4, 24 + movs r3, 0xFF + lsls r3, 24 + adds r0, r3 + lsrs r4, r0, 24 + cmp r0, 0 + bge _0809C82C + movs r4, 0x6 +_0809C82C: + lsls r0, r4, 24 + asrs r0, 24 + movs r1, 0 + ldrsb r1, [r7, r1] + cmp r0, r1 + beq _0809C83C + movs r0, 0x1 + mov r8, r0 +_0809C83C: + mov r1, r8 + cmp r1, 0 + beq _0809C84A +_0809C842: + mov r0, r10 + adds r1, r4, 0 + bl sub_809AF18 +_0809C84A: + mov r0, r8 +_0809C84C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809C664 + + thumb_func_start sub_809C85C +sub_809C85C: @ 809C85C + push {r4-r6,lr} + ldr r0, _0809C894 @ =gUnknown_083B6DB4 + ldr r2, [r0] + ldr r1, _0809C898 @ =0x000011df + adds r0, r2, r1 + movs r1, 0 + strb r1, [r0] + ldr r3, _0809C89C @ =0x000011de + adds r0, r2, r3 + strb r1, [r0] + ldr r0, _0809C8A0 @ =0x000011e3 + adds r2, r0 + strb r1, [r2] + ldr r1, _0809C8A4 @ =gMain + ldrh r3, [r1, 0x30] + movs r0, 0x40 + ands r0, r3 + cmp r0, 0 + bne _0809C91A + movs r0, 0x80 + ands r0, r3 + cmp r0, 0 + beq _0809C8A8 + movs r4, 0x1 + movs r0, 0 + movs r5, 0x2 + b _0809C922 + .align 2, 0 +_0809C894: .4byte gUnknown_083B6DB4 +_0809C898: .4byte 0x000011df +_0809C89C: .4byte 0x000011de +_0809C8A0: .4byte 0x000011e3 +_0809C8A4: .4byte gMain +_0809C8A8: + ldrh r2, [r1, 0x2C] + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + bne _0809C8CC + movs r0, 0x10 + ands r0, r2 + cmp r0, 0 + bne _0809C8DE + ldr r0, _0809C8D0 @ =gSaveBlock2 + ldrb r0, [r0, 0x13] + cmp r0, 0x1 + bne _0809C8E2 + movs r0, 0x80 + lsls r0, 2 + ands r0, r2 + cmp r0, 0 + beq _0809C8D4 +_0809C8CC: + movs r0, 0xA + b _0809C93E + .align 2, 0 +_0809C8D0: .4byte gSaveBlock2 +_0809C8D4: + movs r0, 0x80 + lsls r0, 1 + ands r0, r2 + cmp r0, 0 + beq _0809C8E2 +_0809C8DE: + movs r0, 0x9 + b _0809C93E +_0809C8E2: + ldrh r1, [r1, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809C8FA + movs r0, 0 + bl sub_809A860 + bl sub_809CA8C + movs r0, 0x7 + b _0809C93E +_0809C8FA: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809C906 + movs r0, 0x10 + b _0809C93E +_0809C906: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0809C916 + bl sub_809CD88 + movs r0, 0 + b _0809C93E +_0809C916: + movs r4, 0 + b _0809C93C +_0809C91A: + movs r4, 0x1 + movs r0, 0x3 + movs r5, 0 + strb r4, [r2] +_0809C922: + cmp r4, 0 + beq _0809C93C + lsls r6, r0, 24 + cmp r0, 0x2 + beq _0809C932 + movs r0, 0 + bl sub_809A860 +_0809C932: + lsrs r0, r6, 24 + lsls r1, r5, 24 + lsrs r1, 24 + bl sub_809AF18 +_0809C93C: + adds r0, r4, 0 +_0809C93E: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_809C85C + + thumb_func_start sub_809C944 +sub_809C944: @ 809C944 + push {r4-r7,lr} + ldr r0, _0809C988 @ =gUnknown_020384E4 + ldrb r0, [r0] + mov r12, r0 + ldr r7, _0809C98C @ =gUnknown_020384E5 + ldrb r3, [r7] + ldr r0, _0809C990 @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r0, _0809C994 @ =0x000011df + adds r5, r1, r0 + movs r0, 0 + strb r0, [r5] + ldr r2, _0809C998 @ =0x000011de + adds r4, r1, r2 + strb r0, [r4] + adds r2, 0x5 + adds r1, r2 + strb r0, [r1] + ldr r6, _0809C99C @ =gMain + ldrh r2, [r6, 0x30] + movs r0, 0x40 + ands r0, r2 + cmp r0, 0 + bne _0809CA14 + movs r0, 0x88 + ands r0, r2 + cmp r0, 0 + beq _0809C9A0 + movs r6, 0x1 + movs r0, 0x2 + mov r12, r0 + movs r3, 0 + b _0809CA2A + .align 2, 0 +_0809C988: .4byte gUnknown_020384E4 +_0809C98C: .4byte gUnknown_020384E5 +_0809C990: .4byte gUnknown_083B6DB4 +_0809C994: .4byte 0x000011df +_0809C998: .4byte 0x000011de +_0809C99C: .4byte gMain +_0809C9A0: + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + beq _0809C9C0 + movs r6, 0x1 + lsls r0, r3, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r3, r0, 24 + cmp r0, 0 + bge _0809CA2C + movs r0, 0xFF + strb r0, [r5] + movs r3, 0x1 + b _0809CA2C +_0809C9C0: + movs r0, 0x10 + ands r0, r2 + cmp r0, 0 + beq _0809C9E0 + movs r6, 0x1 + lsls r0, r3, 24 + movs r2, 0x80 + lsls r2, 17 + adds r0, r2 + lsrs r3, r0, 24 + asrs r0, 24 + cmp r0, 0x1 + ble _0809CA2C + strb r6, [r5] + movs r3, 0 + b _0809CA2C +_0809C9E0: + ldrh r1, [r6, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809C9F4 + movs r0, 0x4 + cmp r3, 0 + bne _0809CA3A + movs r0, 0x5 + b _0809CA3A +_0809C9F4: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809CA00 + movs r0, 0x10 + b _0809CA3A +_0809CA00: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0809CA10 + bl sub_809CD88 + movs r0, 0 + b _0809CA3A +_0809CA10: + movs r6, 0 + b _0809CA38 +_0809CA14: + movs r6, 0x1 + movs r0, 0 + mov r12, r0 + movs r0, 0xFF + strb r0, [r4] + movs r0, 0 + ldrsb r0, [r7, r0] + movs r3, 0x1D + cmp r0, 0 + bne _0809CA2A + movs r3, 0x18 +_0809CA2A: + strb r6, [r1] +_0809CA2C: + cmp r6, 0 + beq _0809CA38 + mov r0, r12 + adds r1, r3, 0 + bl sub_809AF18 +_0809CA38: + adds r0, r6, 0 +_0809CA3A: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809C944 + + thumb_func_start sub_809CA40 +sub_809CA40: @ 809CA40 + push {r4,r5,lr} + movs r3, 0 + ldr r0, _0809CA6C @ =gUnknown_083BBBD4 + ldr r1, [r0] + adds r4, r0, 0 + cmp r1, 0 + beq _0809CA84 + ldr r5, _0809CA70 @ =gUnknown_020384E4 +_0809CA50: + lsls r0, r3, 3 + adds r2, r0, r4 + movs r1, 0x4 + ldrsb r1, [r2, r1] + movs r0, 0 + ldrsb r0, [r5, r0] + cmp r1, r0 + bne _0809CA74 + ldr r0, [r2] + bl _call_via_r0 + lsls r0, 24 + lsrs r0, 24 + b _0809CA86 + .align 2, 0 +_0809CA6C: .4byte gUnknown_083BBBD4 +_0809CA70: .4byte gUnknown_020384E4 +_0809CA74: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + lsls r0, r3, 3 + adds r0, r4 + ldr r0, [r0] + cmp r0, 0 + bne _0809CA50 +_0809CA84: + movs r0, 0 +_0809CA86: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_809CA40 + + thumb_func_start sub_809CA8C +sub_809CA8C: @ 809CA8C + push {lr} + bl sub_809CDCC + movs r0, 0x9 + bl sub_809CDEC + movs r0, 0xA + bl sub_809CDEC + movs r0, 0xB + bl sub_809CDEC + movs r0, 0 + bl sub_809CDEC + pop {r0} + bx r0 + thumb_func_end sub_809CA8C + + thumb_func_start sub_809CAB0 +sub_809CAB0: @ 809CAB0 + push {lr} + bl sub_809CDCC + bl sub_809AB8C + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, _0809CAD4 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldrb r0, [r0, 0x5] + cmp r0, 0x1 + beq _0809CADE + cmp r0, 0x1 + bgt _0809CAD8 + cmp r0, 0 + beq _0809CAEA + b _0809CB24 + .align 2, 0 +_0809CAD4: .4byte gUnknown_083B6DB4 +_0809CAD8: + cmp r0, 0x2 + beq _0809CAF6 + b _0809CB24 +_0809CADE: + cmp r1, 0 + beq _0809CB24 + movs r0, 0x1 + bl sub_809CDEC + b _0809CB28 +_0809CAEA: + cmp r1, 0 + beq _0809CB24 + movs r0, 0x2 + bl sub_809CDEC + b _0809CB28 +_0809CAF6: + ldr r0, _0809CB0C @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809CB18 + cmp r1, 0 + beq _0809CB10 + movs r0, 0x4 + bl sub_809CDEC + b _0809CB28 + .align 2, 0 +_0809CB0C: .4byte gUnknown_020384E6 +_0809CB10: + movs r0, 0x5 + bl sub_809CDEC + b _0809CB28 +_0809CB18: + cmp r1, 0 + beq _0809CB24 + movs r0, 0x3 + bl sub_809CDEC + b _0809CB28 +_0809CB24: + movs r0, 0 + b _0809CB6E +_0809CB28: + movs r0, 0x6 + bl sub_809CDEC + ldr r0, _0809CB4C @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldrb r0, [r0, 0x5] + cmp r0, 0x2 + bne _0809CB5A + ldr r0, _0809CB50 @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bne _0809CB54 + movs r0, 0x2 + bl sub_809CDEC + b _0809CB5A + .align 2, 0 +_0809CB4C: .4byte gUnknown_083B6DB4 +_0809CB50: .4byte gUnknown_020384E4 +_0809CB54: + movs r0, 0x1 + bl sub_809CDEC +_0809CB5A: + movs r0, 0x8 + bl sub_809CDEC + movs r0, 0x7 + bl sub_809CDEC + movs r0, 0 + bl sub_809CDEC + movs r0, 0x1 +_0809CB6E: + pop {r1} + bx r1 + thumb_func_end sub_809CAB0 + + thumb_func_start sub_809CB74 +sub_809CB74: @ 809CB74 + ldr r1, _0809CB90 @ =gUnknown_083B6DB4 + ldr r1, [r1] + movs r2, 0x8E + lsls r2, 5 + adds r1, r2 + ldr r2, [r1] + ldrh r2, [r2, 0x20] + strh r2, [r0, 0x20] + ldr r1, [r1] + ldrh r1, [r1, 0x22] + adds r1, 0x14 + strh r1, [r0, 0x22] + bx lr + .align 2, 0 +_0809CB90: .4byte gUnknown_083B6DB4 + thumb_func_end sub_809CB74 + + thumb_func_start unref_sub_809CB94 +unref_sub_809CB94: @ 809CB94 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _0809CBBC @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0809CBC8 + ldr r2, _0809CBC0 @ =gPlayerParty + ldr r0, _0809CBC4 @ =gUnknown_020384E5 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r1, r0 + adds r1, r2 + adds r0, r4, 0 + movs r2, 0x50 + bl memcpy + b _0809CBF6 + .align 2, 0 +_0809CBBC: .4byte gUnknown_020384E4 +_0809CBC0: .4byte gPlayerParty +_0809CBC4: .4byte gUnknown_020384E5 +_0809CBC8: + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + ldr r3, _0809CBFC @ =gPokemonStorage + ldr r1, _0809CC00 @ =gUnknown_020384E5 + movs r2, 0 + ldrsb r2, [r1, r2] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + lsls r2, r0, 2 + adds r2, r0 + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 5 + adds r1, r0 + adds r1, r3 + adds r1, 0x4 + adds r0, r4, 0 + movs r2, 0x50 + bl memcpy +_0809CBF6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809CBFC: .4byte gPokemonStorage +_0809CC00: .4byte gUnknown_020384E5 + thumb_func_end unref_sub_809CB94 + + thumb_func_start sub_809CC04 +sub_809CC04: @ 809CC04 + push {r4-r7,lr} + sub sp, 0x34 + mov r1, sp + ldr r0, _0809CCB0 @ =gHandCursorSpriteSheets + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + add r4, sp, 0x18 + adds r1, r4, 0 + ldr r0, _0809CCB4 @ =gHandCursorSpritePalettes + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + mov r0, sp + bl LoadSpriteSheets + adds r0, r4, 0 + bl LoadSpritePalettes + ldr r0, _0809CCB8 @ =0x0000dac6 + bl IndexOfSpritePaletteTag + ldr r1, _0809CCBC @ =gUnknown_083B6DB4 + ldr r6, [r1] + ldr r4, _0809CCC0 @ =0x000011e4 + adds r7, r6, r4 + strb r0, [r7] + ldr r0, _0809CCC4 @ =0x0000dad1 + bl IndexOfSpritePaletteTag + ldr r5, _0809CCC8 @ =0x000011e5 + adds r1, r6, r5 + strb r0, [r1] + ldr r0, _0809CCCC @ =gUnknown_020384E4 + ldrb r0, [r0] + ldr r1, _0809CCD0 @ =gUnknown_020384E5 + ldrb r1, [r1] + add r4, sp, 0x30 + mov r5, sp + adds r5, 0x32 + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_809AACC + ldr r0, _0809CCD4 @ =gSpriteTemplate_83BBC70 + movs r2, 0 + ldrsh r1, [r4, r2] + movs r3, 0 + ldrsh r2, [r5, r3] + movs r3, 0x6 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _0809CCE4 + movs r5, 0x8E + lsls r5, 5 + adds r4, r6, r5 + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + ldr r0, _0809CCD8 @ =gSprites + adds r1, r0 + str r1, [r4] + ldr r0, _0809CCDC @ =gUnknown_020384E9 + ldrb r0, [r0] + adds r0, r7, r0 + ldrb r2, [r0] + lsls r2, 4 + ldrb r3, [r1, 0x5] + movs r0, 0xF + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0x5] + ldr r0, _0809CCE0 @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809CCEE + ldr r0, [r4] + movs r1, 0x3 + bl StartSpriteAnim + b _0809CCEE + .align 2, 0 +_0809CCB0: .4byte gHandCursorSpriteSheets +_0809CCB4: .4byte gHandCursorSpritePalettes +_0809CCB8: .4byte 0x0000dac6 +_0809CCBC: .4byte gUnknown_083B6DB4 +_0809CCC0: .4byte 0x000011e4 +_0809CCC4: .4byte 0x0000dad1 +_0809CCC8: .4byte 0x000011e5 +_0809CCCC: .4byte gUnknown_020384E4 +_0809CCD0: .4byte gUnknown_020384E5 +_0809CCD4: .4byte gSpriteTemplate_83BBC70 +_0809CCD8: .4byte gSprites +_0809CCDC: .4byte gUnknown_020384E9 +_0809CCE0: .4byte gUnknown_020384E6 +_0809CCE4: + movs r0, 0x8E + lsls r0, 5 + adds r1, r6, r0 + movs r0, 0 + str r0, [r1] +_0809CCEE: + ldr r0, _0809CD00 @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0809CD04 + movs r3, 0xC + movs r5, 0x1 + b _0809CD08 + .align 2, 0 +_0809CD00: .4byte gUnknown_020384E4 +_0809CD04: + movs r3, 0x14 + movs r5, 0x2 +_0809CD08: + ldr r0, _0809CD58 @ =gSpriteTemplate_83BBC88 + movs r1, 0 + movs r2, 0 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _0809CD6C + ldr r0, _0809CD5C @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809CD60 @ =0x000011c4 + adds r4, r0, r1 + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + ldr r0, _0809CD64 @ =gSprites + adds r1, r0 + str r1, [r4] + lsls r3, r5, 2 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldr r0, _0809CD68 @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _0809CD78 + ldr r0, [r4] + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _0809CD78 + .align 2, 0 +_0809CD58: .4byte gSpriteTemplate_83BBC88 +_0809CD5C: .4byte gUnknown_083B6DB4 +_0809CD60: .4byte 0x000011c4 +_0809CD64: .4byte gSprites +_0809CD68: .4byte gUnknown_020384E4 +_0809CD6C: + ldr r0, _0809CD80 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r2, _0809CD84 @ =0x000011c4 + adds r0, r2 + movs r1, 0 + str r1, [r0] +_0809CD78: + add sp, 0x34 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809CD80: .4byte gUnknown_083B6DB4 +_0809CD84: .4byte 0x000011c4 + thumb_func_end sub_809CC04 + + thumb_func_start sub_809CD88 +sub_809CD88: @ 809CD88 + push {lr} + ldr r2, _0809CDC0 @ =gUnknown_020384E9 + movs r1, 0 + ldrb r0, [r2] + cmp r0, 0 + bne _0809CD96 + movs r1, 0x1 +_0809CD96: + strb r1, [r2] + ldr r0, _0809CDC4 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r3, 0x8E + lsls r3, 5 + adds r1, r0, r3 + ldr r3, [r1] + ldr r1, _0809CDC8 @ =0x000011e4 + adds r0, r1 + ldrb r2, [r2] + adds r0, r2 + ldrb r1, [r0] + lsls r1, 4 + ldrb r2, [r3, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x5] + pop {r0} + bx r0 + .align 2, 0 +_0809CDC0: .4byte gUnknown_020384E9 +_0809CDC4: .4byte gUnknown_083B6DB4 +_0809CDC8: .4byte 0x000011e4 + thumb_func_end sub_809CD88 + + thumb_func_start sub_809CDCC +sub_809CDCC: @ 809CDCC + ldr r0, _0809CDE0 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r2, _0809CDE4 @ =0x000011b8 + adds r1, r0, r2 + movs r2, 0 + strb r2, [r1] + ldr r1, _0809CDE8 @ =0x000011b9 + adds r0, r1 + strb r2, [r0] + bx lr + .align 2, 0 +_0809CDE0: .4byte gUnknown_083B6DB4 +_0809CDE4: .4byte 0x000011b8 +_0809CDE8: .4byte 0x000011b9 + thumb_func_end sub_809CDCC + + thumb_func_start sub_809CDEC +sub_809CDEC: @ 809CDEC + push {r4,r5,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _0809CE3C @ =gUnknown_083B6DB4 + ldr r5, [r0] + ldr r0, _0809CE40 @ =0x000011b8 + adds r4, r5, r0 + ldrb r0, [r4] + cmp r0, 0x6 + bhi _0809CE36 + adds r1, r0, 0 + lsls r1, 3 + movs r2, 0x8C + lsls r2, 5 + adds r1, r2 + adds r1, r5, r1 + ldr r2, _0809CE44 @ =gUnknown_083BBCA0 + lsls r0, r3, 2 + adds r0, r2 + ldr r0, [r0] + str r0, [r1] + str r3, [r1, 0x4] + bl sub_8072CA4 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0x7 + lsrs r1, 3 + ldr r2, _0809CE48 @ =0x000011b9 + adds r0, r5, r2 + ldrb r2, [r0] + cmp r1, r2 + bls _0809CE30 + strb r1, [r0] +_0809CE30: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] +_0809CE36: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809CE3C: .4byte gUnknown_083B6DB4 +_0809CE40: .4byte 0x000011b8 +_0809CE44: .4byte gUnknown_083BBCA0 +_0809CE48: .4byte 0x000011b9 + thumb_func_end sub_809CDEC + + thumb_func_start sub_809CE4C +sub_809CE4C: @ 809CE4C + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _0809CE70 @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r3, _0809CE74 @ =0x000011b8 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r2, r0 + bcs _0809CE7C + lsls r0, r2, 3 + ldr r2, _0809CE78 @ =0x00001184 + adds r1, r2 + adds r1, r0 + movs r0, 0 + ldrsb r0, [r1, r0] + b _0809CE80 + .align 2, 0 +_0809CE70: .4byte gUnknown_083B6DB4 +_0809CE74: .4byte 0x000011b8 +_0809CE78: .4byte 0x00001184 +_0809CE7C: + movs r0, 0x1 + negs r0, r0 +_0809CE80: + pop {r1} + bx r1 + thumb_func_end sub_809CE4C + + thumb_func_start sub_809CE84 +sub_809CE84: @ 809CE84 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x8 + ldr r0, _0809CF20 @ =gUnknown_083B6DB4 + ldr r4, [r0] + ldr r0, _0809CF24 @ =0x000011b8 + adds r0, r4 + mov r8, r0 + ldrb r0, [r0] + lsls r0, 1 + movs r1, 0xE + subs r1, r0 + ldr r3, _0809CF28 @ =0x000011bc + adds r6, r4, r3 + movs r0, 0 + mov r10, r0 + strh r1, [r6] + ldr r1, _0809CF2C @ =0x000011b9 + adds r1, r4 + mov r9, r1 + ldrb r1, [r1] + movs r0, 0x1C + subs r0, r1 + subs r3, 0x2 + adds r5, r4, r3 + strh r0, [r5] + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r6] + movs r2, 0x1D + movs r3, 0xF + bl MenuDrawTextWindow + ldrb r0, [r5] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r6] + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + mov r3, r8 + ldrb r2, [r3] + movs r3, 0x8C + lsls r3, 5 + adds r4, r3 + adds r3, r4, 0 + bl PrintMenuItems + ldrb r1, [r5] + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r6] + adds r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + mov r4, r8 + ldrb r3, [r4] + mov r0, r10 + str r0, [sp] + mov r4, r9 + ldrb r0, [r4] + str r0, [sp, 0x4] + movs r0, 0 + bl InitMenu + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809CF20: .4byte gUnknown_083B6DB4 +_0809CF24: .4byte 0x000011b8 +_0809CF28: .4byte 0x000011bc +_0809CF2C: .4byte 0x000011b9 + thumb_func_end sub_809CE84 + + thumb_func_start sub_809CF30 +sub_809CF30: @ 809CF30 + push {r4,r5,lr} + movs r5, 0x2 + negs r5, r5 + ldr r4, _0809CF6C @ =gMain + ldrh r1, [r4, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0809CF86 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809CF52 + movs r0, 0x5 + bl PlaySE + adds r5, 0x1 +_0809CF52: + ldrh r1, [r4, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0809CF70 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursor + b _0809CF8E + .align 2, 0 +_0809CF6C: .4byte gMain +_0809CF70: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0809CF8E + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl MoveMenuCursor + b _0809CF8E +_0809CF86: + bl GetMenuCursorPos + lsls r0, 24 + lsrs r5, r0, 24 +_0809CF8E: + movs r0, 0x2 + negs r0, r0 + cmp r5, r0 + beq _0809CFB2 + bl sub_8072DEC + ldr r0, _0809CFD0 @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r2, _0809CFD4 @ =0x000011ba + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r1, [r1] + movs r2, 0x1D + movs r3, 0xF + bl MenuZeroFillWindowRect +_0809CFB2: + cmp r5, 0 + blt _0809CFC4 + ldr r0, _0809CFD0 @ =gUnknown_083B6DB4 + ldr r0, [r0] + lsls r1, r5, 3 + ldr r2, _0809CFD8 @ =0x00001184 + adds r0, r2 + adds r0, r1 + ldr r5, [r0] +_0809CFC4: + lsls r0, r5, 16 + asrs r0, 16 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0809CFD0: .4byte gUnknown_083B6DB4 +_0809CFD4: .4byte 0x000011ba +_0809CFD8: .4byte 0x00001184 + thumb_func_end sub_809CF30 + + thumb_func_start sub_809CFDC +sub_809CFDC: @ 809CFDC + ldr r3, _0809CFEC @ =gUnknown_020384EC + str r0, [r3] + str r1, [r0] + movs r1, 0 + strb r2, [r0, 0x5] + strb r1, [r0, 0x4] + bx lr + .align 2, 0 +_0809CFEC: .4byte gUnknown_020384EC + thumb_func_end sub_809CFDC + + thumb_func_start sub_809CFF0 +sub_809CFF0: @ 809CFF0 + push {r4,r5,lr} + ldr r2, _0809D030 @ =gUnknown_020384EC + ldr r1, [r2] + ldrb r0, [r1, 0x4] + cmp r0, 0 + beq _0809D02A + movs r4, 0 + ldrb r1, [r1, 0x4] + cmp r4, r1 + bcs _0809D022 + adds r5, r2, 0 +_0809D006: + ldr r0, [r5] + lsls r1, r4, 4 + ldr r0, [r0] + adds r0, r1 + ldr r1, [r0, 0xC] + bl _call_via_r1 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, [r5] + ldrb r0, [r0, 0x4] + cmp r4, r0 + bcc _0809D006 +_0809D022: + ldr r0, _0809D030 @ =gUnknown_020384EC + ldr r1, [r0] + movs r0, 0 + strb r0, [r1, 0x4] +_0809D02A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809D030: .4byte gUnknown_020384EC + thumb_func_end sub_809CFF0 + + thumb_func_start sub_809D034 +sub_809D034: @ 809D034 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r8, r0 + mov r9, r3 + ldr r0, [sp, 0x20] + ldr r3, [sp, 0x24] + ldr r4, [sp, 0x28] + ldr r5, [sp, 0x2C] + lsls r1, 16 + lsrs r1, 16 + mov r10, r1 + lsls r2, 16 + lsrs r6, r2, 16 + lsls r0, 16 + lsrs r0, 16 + mov r12, r0 + lsls r3, 16 + lsrs r3, 16 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + ldr r0, _0809D0A4 @ =gUnknown_020384EC + ldr r2, [r0] + ldrb r0, [r2, 0x4] + adds r1, r0, 0 + ldrb r7, [r2, 0x5] + cmp r1, r7 + bcs _0809D0AC + adds r0, 0x1 + strb r0, [r2, 0x4] + lsls r0, r1, 4 + ldr r2, [r2] + adds r2, r0 + lsls r0, r4, 1 + strh r0, [r2, 0x8] + lsls r0, r6, 6 + add r0, r8 + mov r4, r10 + lsls r1, r4, 1 + adds r0, r1 + str r0, [r2, 0x4] + lsls r0, r3, 6 + add r0, r9 + mov r7, r12 + lsls r1, r7, 1 + adds r0, r1 + str r0, [r2] + strh r5, [r2, 0xA] + ldr r0, _0809D0A8 @ =sub_809D0BC + str r0, [r2, 0xC] + movs r0, 0x1 + b _0809D0AE + .align 2, 0 +_0809D0A4: .4byte gUnknown_020384EC +_0809D0A8: .4byte sub_809D0BC +_0809D0AC: + movs r0, 0 +_0809D0AE: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809D034 + + thumb_func_start sub_809D0BC +sub_809D0BC: @ 809D0BC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r6, [r0] + ldr r5, [r0, 0x4] + ldrh r7, [r0, 0xA] + ldrh r2, [r0, 0x8] + movs r4, 0 + cmp r4, r7 + bcs _0809D0F2 + lsrs r2, 1 + mov r8, r2 + ldr r0, _0809D100 @ =0x001fffff + mov r9, r0 +_0809D0DA: + adds r0, r6, 0 + adds r1, r5, 0 + mov r2, r8 + mov r3, r9 + ands r2, r3 + bl CpuSet + adds r5, 0x40 + adds r6, 0x40 + adds r4, 0x1 + cmp r4, r7 + bcc _0809D0DA +_0809D0F2: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809D100: .4byte 0x001fffff + thumb_func_end sub_809D0BC + + thumb_func_start sub_809D104 +sub_809D104: @ 809D104 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r5, [sp, 0x18] + ldr r4, [sp, 0x1C] + ldr r6, [sp, 0x20] + mov r8, r6 + ldr r6, [sp, 0x24] + lsls r1, 16 + lsls r2, 16 + lsrs r2, 16 + lsls r5, 16 + lsls r4, 16 + mov r7, r8 + lsls r7, 16 + lsls r6, 16 + lsrs r6, 16 + lsrs r4, 10 + adds r3, r4 + lsrs r5, 15 + adds r5, r3, r5 + lsls r3, r2, 6 + adds r3, r0, r3 + lsrs r1, 15 + adds r4, r3, r1 + adds r2, r6 + lsls r2, 6 + adds r6, r0, r2 + lsrs r2, r7, 15 + cmp r4, r6 + bcs _0809D15C + lsrs r7, r2, 1 + ldr r0, _0809D168 @ =0x001fffff + mov r8, r0 +_0809D148: + adds r0, r5, 0 + adds r1, r4, 0 + mov r2, r8 + ands r2, r7 + bl CpuSet + adds r4, 0x40 + adds r5, 0x40 + cmp r4, r6 + bcc _0809D148 +_0809D15C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809D168: .4byte 0x001fffff + thumb_func_end sub_809D104 + + thumb_func_start sub_809D16C +sub_809D16C: @ 809D16C + push {r4-r7,lr} + mov r12, r0 + ldr r0, [sp, 0x14] + lsls r1, 16 + lsrs r6, r1, 16 + lsls r2, 16 + lsrs r4, r2, 16 + lsls r3, 16 + lsrs r3, 16 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _0809D1B4 @ =gUnknown_020384EC + ldr r1, [r0] + ldrb r0, [r1, 0x4] + adds r2, r0, 0 + ldrb r7, [r1, 0x5] + cmp r2, r7 + bcs _0809D1BC + adds r0, 0x1 + strb r0, [r1, 0x4] + lsls r0, r2, 4 + ldr r1, [r1] + adds r1, r0 + lsls r0, r3, 1 + strh r0, [r1, 0x8] + lsls r0, r4, 5 + adds r0, r6 + lsls r0, 1 + add r0, r12 + str r0, [r1, 0x4] + strh r5, [r1, 0xA] + ldr r0, _0809D1B8 @ =sub_809D1C4 + str r0, [r1, 0xC] + movs r0, 0x1 + b _0809D1BE + .align 2, 0 +_0809D1B4: .4byte gUnknown_020384EC +_0809D1B8: .4byte sub_809D1C4 +_0809D1BC: + movs r0, 0 +_0809D1BE: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809D16C + + thumb_func_start sub_809D1C4 +sub_809D1C4: @ 809D1C4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r6, r0, 0 + movs r0, 0 + ldrh r1, [r6, 0xA] + cmp r0, r1 + bcs _0809D252 + movs r7, 0x80 + lsls r7, 5 + mov r5, sp + ldr r2, _0809D210 @ =0x040000d4 + mov r8, r2 + movs r1, 0x81 + lsls r1, 24 + mov r10, r1 +_0809D1EA: + ldr r2, [r6, 0x4] + ldrh r3, [r6, 0x8] + mov r12, r2 + adds r0, 0x1 + mov r9, r0 + cmp r3, r7 + bhi _0809D214 + movs r0, 0 + strh r0, [r5] + mov r2, sp + mov r0, r8 + str r2, [r0] + mov r1, r12 + str r1, [r0, 0x4] + lsrs r0, r3, 1 + mov r2, r10 + orrs r0, r2 + mov r1, r8 + b _0809D23C + .align 2, 0 +_0809D210: .4byte 0x040000d4 +_0809D214: + movs r4, 0 + strh r4, [r5] + ldr r1, _0809D264 @ =0x040000d4 + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + ldr r0, _0809D268 @ =0x81000800 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r7 + subs r3, r7 + cmp r3, r7 + bhi _0809D214 + strh r4, [r5] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 1 + mov r2, r10 + orrs r0, r2 +_0809D23C: + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + mov r0, r12 + adds r0, 0x40 + str r0, [r6, 0x4] + mov r1, r9 + lsls r0, r1, 16 + lsrs r0, 16 + ldrh r2, [r6, 0xA] + cmp r0, r2 + bcc _0809D1EA +_0809D252: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809D264: .4byte 0x040000d4 +_0809D268: .4byte 0x81000800 + thumb_func_end sub_809D1C4 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s new file mode 100644 index 000000000..25144558d --- /dev/null +++ b/asm/pokemon_summary_screen.s @@ -0,0 +1,8776 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_809D844 +sub_809D844: @ 809D844 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_809D844 + + thumb_func_start sub_809D85C +sub_809D85C: @ 809D85C + push {lr} + ldr r1, _0809D8A0 @ =REG_BG1HOFS + ldr r0, _0809D8A4 @ =gUnknown_030042C0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _0809D8A8 @ =gUnknown_030041B4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _0809D8AC @ =gUnknown_03004288 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _0809D8B0 @ =gUnknown_03004280 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _0809D8B4 @ =gUnknown_030041B0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _0809D8B8 @ =gUnknown_030041B8 + ldrh r0, [r0] + strh r0, [r1] + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 +_0809D8A0: .4byte REG_BG1HOFS +_0809D8A4: .4byte gUnknown_030042C0 +_0809D8A8: .4byte gUnknown_030041B4 +_0809D8AC: .4byte gUnknown_03004288 +_0809D8B0: .4byte gUnknown_03004280 +_0809D8B4: .4byte gUnknown_030041B0 +_0809D8B8: .4byte gUnknown_030041B8 + thumb_func_end sub_809D85C + + thumb_func_start ShowPokemonSummaryScreen +ShowPokemonSummaryScreen: @ 809D8BC + push {r4-r7,lr} + ldr r4, [sp, 0x14] + lsls r4, 24 + lsrs r7, r4, 24 + ldr r6, _0809D904 @ =gPaletteFade + ldrb r4, [r6, 0x8] + movs r5, 0x80 + orrs r4, r5 + strb r4, [r6, 0x8] + ldr r5, _0809D908 @ =0x02018000 + str r0, [r5] + movs r4, 0 + strb r7, [r5, 0x8] + strb r1, [r5, 0x9] + strb r2, [r5, 0xA] + str r3, [r5, 0x4] + adds r0, r5, 0 + adds r0, 0x74 + strb r4, [r0] + adds r1, r5, 0 + adds r1, 0x79 + movs r0, 0x4 + strb r0, [r1] + adds r0, r5, 0 + adds r0, 0x7C + movs r1, 0 + strh r4, [r0] + adds r0, 0x4 + strb r1, [r0] + subs r0, 0x5 + strb r1, [r0] + cmp r7, 0x4 + bls _0809D90C + movs r0, 0x1 + strb r0, [r5, 0xE] + b _0809D90E + .align 2, 0 +_0809D904: .4byte gPaletteFade +_0809D908: .4byte 0x02018000 +_0809D90C: + strb r1, [r5, 0xE] +_0809D90E: + cmp r7, 0x6 + bhi _0809D9D6 + lsls r0, r7, 2 + ldr r1, _0809D91C @ =_0809D920 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809D91C: .4byte _0809D920 + .align 2, 0 +_0809D920: + .4byte _0809D93C + .4byte _0809D9BC + .4byte _0809D992 + .4byte _0809D9D6 + .4byte _0809D966 + .4byte _0809D93C + .4byte _0809D9BC +_0809D93C: + adds r0, r5, 0 + adds r0, 0x75 + movs r1, 0 + strb r1, [r0] + adds r2, r5, 0 + adds r2, 0x76 + movs r0, 0x3 + strb r0, [r2] + adds r0, r5, 0 + adds r0, 0x77 + strb r1, [r0] + adds r0, 0x1 + strb r1, [r0] + adds r1, r5, 0 + adds r1, 0x7E + movs r0, 0x1 + strb r0, [r1] + adds r1, 0x1 + movs r0, 0x7 + strb r0, [r1] + b _0809D9D6 +_0809D966: + adds r0, r5, 0 + adds r0, 0x75 + movs r1, 0 + strb r1, [r0] + adds r2, r5, 0 + adds r2, 0x76 + movs r0, 0x3 + strb r0, [r2] + adds r0, r5, 0 + adds r0, 0x77 + strb r1, [r0] + adds r0, 0x1 + strb r1, [r0] + adds r0, 0x6 + movs r1, 0x1 + strb r1, [r0] + adds r2, 0x9 + movs r0, 0x7 + strb r0, [r2] + adds r0, r5, 0 + adds r0, 0x7B + b _0809D9D4 +_0809D992: + adds r1, r5, 0 + adds r1, 0x75 + movs r3, 0 + movs r0, 0x2 + strb r0, [r1] + adds r0, r5, 0 + adds r0, 0x76 + movs r2, 0x3 + strb r2, [r0] + adds r0, 0x1 + movs r1, 0x1 + strb r1, [r0] + adds r0, 0x1 + strb r1, [r0] + adds r0, 0x6 + strb r2, [r0] + adds r0, 0x1 + strb r3, [r0] + subs r0, 0x6 + strb r3, [r0] + b _0809D9D6 +_0809D9BC: + adds r1, r5, 0 + adds r1, 0x75 + movs r0, 0x2 + strb r0, [r1] + adds r1, 0x1 + movs r0, 0x3 + strb r0, [r1] + adds r0, r5, 0 + adds r0, 0x77 + movs r1, 0x1 + strb r1, [r0] + adds r0, 0x1 +_0809D9D4: + strb r1, [r0] +_0809D9D6: + adds r0, r5, 0 + adds r0, 0x75 + ldrb r0, [r0] + strb r0, [r5, 0xB] + ldr r0, _0809D9EC @ =sub_809DE44 + bl SetMainCallback2 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809D9EC: .4byte sub_809DE44 + thumb_func_end ShowPokemonSummaryScreen + + thumb_func_start sub_809D9F0 +sub_809D9F0: @ 809D9F0 + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, [sp, 0x10] + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r5, 16 + lsrs r5, 16 + movs r4, 0x2 + str r4, [sp] + bl ShowPokemonSummaryScreen + ldr r0, _0809DA18 @ =0x02018000 + adds r0, 0x7C + strh r5, [r0] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809DA18: .4byte 0x02018000 + thumb_func_end sub_809D9F0 + + thumb_func_start sub_809DA1C +sub_809DA1C: @ 809DA1C + push {lr} + ldr r0, _0809DA30 @ =0x02018000 + ldrb r0, [r0, 0x8] + cmp r0, 0x6 + bhi _0809DA78 + lsls r0, 2 + ldr r1, _0809DA34 @ =_0809DA38 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809DA30: .4byte 0x02018000 +_0809DA34: .4byte _0809DA38 + .align 2, 0 +_0809DA38: + .4byte _0809DA54 + .4byte _0809DA6C + .4byte _0809DA64 + .4byte _0809DA64 + .4byte _0809DA5C + .4byte _0809DA54 + .4byte _0809DA6C +_0809DA54: + ldr r0, _0809DA58 @ =SummaryScreenHandleKeyInput + b _0809DA6E + .align 2, 0 +_0809DA58: .4byte SummaryScreenHandleKeyInput +_0809DA5C: + ldr r0, _0809DA60 @ =SummaryScreenHandleKeyInput + b _0809DA6E + .align 2, 0 +_0809DA60: .4byte SummaryScreenHandleKeyInput +_0809DA64: + ldr r0, _0809DA68 @ =sub_809EB40 + b _0809DA6E + .align 2, 0 +_0809DA68: .4byte sub_809EB40 +_0809DA6C: + ldr r0, _0809DA7C @ =sub_809E3FC +_0809DA6E: + movs r1, 0 + bl CreateTask + ldr r1, _0809DA80 @ =0x02018000 + strb r0, [r1, 0xF] +_0809DA78: + pop {r0} + bx r0 + .align 2, 0 +_0809DA7C: .4byte sub_809E3FC +_0809DA80: .4byte 0x02018000 + thumb_func_end sub_809DA1C + + thumb_func_start sub_809DA84 +sub_809DA84: @ 809DA84 + push {r4-r7,lr} + sub sp, 0x8 + ldr r1, _0809DAA4 @ =gMain + ldr r2, _0809DAA8 @ =0x0000043c + adds r0, r1, r2 + ldrb r0, [r0] + mov r12, r1 + cmp r0, 0x16 + bls _0809DA98 + b _0809DE00 +_0809DA98: + lsls r0, 2 + ldr r1, _0809DAAC @ =_0809DAB0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809DAA4: .4byte gMain +_0809DAA8: .4byte 0x0000043c +_0809DAAC: .4byte _0809DAB0 + .align 2, 0 +_0809DAB0: + .4byte _0809DB0C + .4byte _0809DB18 + .4byte _0809DB2C + .4byte _0809DB32 + .4byte _0809DB80 + .4byte _0809DB94 + .4byte _0809DBA0 + .4byte _0809DBBC + .4byte _0809DBC8 + .4byte _0809DBDC + .4byte _0809DC2C + .4byte _0809DC48 + .4byte _0809DC5C + .4byte _0809DC90 + .4byte _0809DCB0 + .4byte _0809DCC4 + .4byte _0809DCF8 + .4byte _0809DD02 + .4byte _0809DD30 + .4byte _0809DD3C + .4byte _0809DD68 + .4byte _0809DD98 + .4byte _0809DDE0 +_0809DB0C: + movs r0, 0 + bl SetVBlankCallback + bl ResetSpriteData + b _0809DDE8 +_0809DB18: + bl remove_some_task + ldr r1, _0809DB24 @ =gMain + ldr r2, _0809DB28 @ =0x0000043c + adds r1, r2 + b _0809DDEE + .align 2, 0 +_0809DB24: .4byte gMain +_0809DB28: .4byte 0x0000043c +_0809DB2C: + bl FreeAllSpritePalettes + b _0809DDE8 +_0809DB32: + movs r2, 0xC0 + lsls r2, 19 + movs r3, 0x80 + lsls r3, 9 + movs r5, 0 + ldr r1, _0809DB74 @ =0x040000d4 + movs r4, 0x80 + lsls r4, 5 + ldr r6, _0809DB78 @ =0x85000400 + movs r7, 0x85 + lsls r7, 24 +_0809DB48: + str r5, [sp, 0x4] + add r0, sp, 0x4 + str r0, [r1] + str r2, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _0809DB48 + str r5, [sp, 0x4] + add r0, sp, 0x4 + str r0, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + orrs r0, r7 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, _0809DB7C @ =0x0000043c + add r1, r12 + b _0809DDEE + .align 2, 0 +_0809DB74: .4byte 0x040000d4 +_0809DB78: .4byte 0x85000400 +_0809DB7C: .4byte 0x0000043c +_0809DB80: + bl sub_809DE64 + ldr r1, _0809DB8C @ =gMain + ldr r2, _0809DB90 @ =0x0000043c + adds r1, r2 + b _0809DDEE + .align 2, 0 +_0809DB8C: .4byte gMain +_0809DB90: .4byte 0x0000043c +_0809DB94: + ldr r0, _0809DB9C @ =gWindowConfig_81E6E6C + bl SetUpWindowConfig + b _0809DDE8 + .align 2, 0 +_0809DB9C: .4byte gWindowConfig_81E6E6C +_0809DBA0: + ldr r0, _0809DBB0 @ =gWindowConfig_81E6E6C + bl MultistepInitMenuWindowBegin + ldr r1, _0809DBB4 @ =gMain + ldr r2, _0809DBB8 @ =0x0000043c + adds r1, r2 + b _0809DDEE + .align 2, 0 +_0809DBB0: .4byte gWindowConfig_81E6E6C +_0809DBB4: .4byte gMain +_0809DBB8: .4byte 0x0000043c +_0809DBBC: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + bne _0809DBC6 + b _0809DE38 +_0809DBC6: + b _0809DDE8 +_0809DBC8: + bl sub_809DA1C + ldr r1, _0809DBD4 @ =gMain + ldr r2, _0809DBD8 @ =0x0000043c + adds r1, r2 + b _0809DDEE + .align 2, 0 +_0809DBD4: .4byte gMain +_0809DBD8: .4byte 0x0000043c +_0809DBDC: + ldr r1, _0809DC08 @ =gSummaryScreenTextTiles + ldr r2, _0809DC0C @ =0x0600d000 + ldr r0, _0809DC10 @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _0809DC14 @ =0x800000a0 + str r1, [r0, 0x8] + ldr r1, [r0, 0x8] + ldr r1, _0809DC18 @ =gSummaryScreenButtonTiles + ldr r2, _0809DC1C @ =0x0600d140 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _0809DC20 @ =0x80000080 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r0, _0809DC24 @ =0x02018000 + adds r0, 0x74 + movs r1, 0 + strb r1, [r0] + ldr r1, _0809DC28 @ =0x0000043c + add r1, r12 + b _0809DDEE + .align 2, 0 +_0809DC08: .4byte gSummaryScreenTextTiles +_0809DC0C: .4byte 0x0600d000 +_0809DC10: .4byte 0x040000d4 +_0809DC14: .4byte 0x800000a0 +_0809DC18: .4byte gSummaryScreenButtonTiles +_0809DC1C: .4byte 0x0600d140 +_0809DC20: .4byte 0x80000080 +_0809DC24: .4byte 0x02018000 +_0809DC28: .4byte 0x0000043c +_0809DC2C: + bl sub_809DF00 + lsls r0, 24 + cmp r0, 0 + bne _0809DC38 + b _0809DE38 +_0809DC38: + ldr r0, _0809DC44 @ =0x02018000 + adds r0, 0x74 + movs r1, 0 + strb r1, [r0] + b _0809DDE8 + .align 2, 0 +_0809DC44: .4byte 0x02018000 +_0809DC48: + bl sub_80A18C4 + ldr r1, _0809DC54 @ =gMain + ldr r2, _0809DC58 @ =0x0000043c + adds r1, r2 + b _0809DDEE + .align 2, 0 +_0809DC54: .4byte gMain +_0809DC58: .4byte 0x0000043c +_0809DC5C: + ldr r4, _0809DC78 @ =0x02018010 + adds r0, r4, 0 + bl sub_809F678 + adds r0, r4, 0 + bl GetMonStatusAndPokerus + lsls r0, 24 + cmp r0, 0 + bne _0809DC7C + movs r0, 0 + bl sub_80A12D0 + b _0809DC82 + .align 2, 0 +_0809DC78: .4byte 0x02018010 +_0809DC7C: + movs r0, 0xA + bl sub_80A12D0 +_0809DC82: + ldr r0, _0809DC8C @ =0x02018010 + bl sub_80A0EA4 + b _0809DDE8 + .align 2, 0 +_0809DC8C: .4byte 0x02018010 +_0809DC90: + bl sub_80A1950 + ldr r0, _0809DCA4 @ =0x02018010 + bl sub_80A1D84 + ldr r1, _0809DCA8 @ =gMain + ldr r2, _0809DCAC @ =0x0000043c + adds r1, r2 + b _0809DDEE + .align 2, 0 +_0809DCA4: .4byte 0x02018010 +_0809DCA8: .4byte gMain +_0809DCAC: .4byte 0x0000043c +_0809DCB0: + ldr r4, _0809DCC0 @ =0x02018010 + adds r0, r4, 0 + bl sub_80A1DE8 + adds r4, 0x64 + movs r0, 0 + strb r0, [r4] + b _0809DDE8 + .align 2, 0 +_0809DCC0: .4byte 0x02018010 +_0809DCC4: + ldr r4, _0809DCEC @ =0x02018010 + adds r5, r4, 0 + adds r5, 0x64 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_809F6B4 + subs r4, 0x10 + strb r0, [r4, 0xC] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _0809DCE0 + b _0809DE38 +_0809DCE0: + movs r0, 0 + strb r0, [r5] + ldr r1, _0809DCF0 @ =gMain + ldr r2, _0809DCF4 @ =0x0000043c + adds r1, r2 + b _0809DDEE + .align 2, 0 +_0809DCEC: .4byte 0x02018010 +_0809DCF0: .4byte gMain +_0809DCF4: .4byte 0x0000043c +_0809DCF8: + bl sub_809E044 + bl sub_80A0EE8 + b _0809DDE8 +_0809DD02: + ldr r1, _0809DD20 @ =0x02018000 + ldrb r0, [r1, 0xB] + cmp r0, 0x1 + bhi _0809DD18 + ldr r0, _0809DD24 @ =gUnknown_083C1580 + ldrb r1, [r1, 0xB] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + bl _call_via_r0 +_0809DD18: + ldr r1, _0809DD28 @ =gMain + ldr r2, _0809DD2C @ =0x0000043c + adds r1, r2 + b _0809DDEE + .align 2, 0 +_0809DD20: .4byte 0x02018000 +_0809DD24: .4byte gUnknown_083C1580 +_0809DD28: .4byte gMain +_0809DD2C: .4byte 0x0000043c +_0809DD30: + ldr r0, _0809DD38 @ =0x02018010 + bl sub_809FAC8 + b _0809DDE8 + .align 2, 0 +_0809DD38: .4byte 0x02018010 +_0809DD3C: + ldr r2, _0809DD58 @ =gUnknown_083C1598 + ldr r0, _0809DD5C @ =0x02018000 + ldrb r1, [r0, 0xB] + lsls r1, 2 + adds r1, r2 + adds r0, 0x10 + ldr r1, [r1] + bl _call_via_r1 + ldr r1, _0809DD60 @ =gMain + ldr r2, _0809DD64 @ =0x0000043c + adds r1, r2 + b _0809DDEE + .align 2, 0 +_0809DD58: .4byte gUnknown_083C1598 +_0809DD5C: .4byte 0x02018000 +_0809DD60: .4byte gMain +_0809DD64: .4byte 0x0000043c +_0809DD68: + ldr r0, _0809DD84 @ =0x02018010 + movs r1, 0x2D + bl GetMonData + adds r1, r0, 0 + cmp r1, 0 + beq _0809DD8C + ldr r1, _0809DD88 @ =gUnknown_030041B0 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + b _0809DDE8 + .align 2, 0 +_0809DD84: .4byte 0x02018010 +_0809DD88: .4byte gUnknown_030041B0 +_0809DD8C: + ldr r0, _0809DD94 @ =gUnknown_030041B0 + strh r1, [r0] + b _0809DDE8 + .align 2, 0 +_0809DD94: .4byte gUnknown_030041B0 +_0809DD98: + bl sub_809EBC4 + ldr r0, _0809DDB8 @ =0x02018000 + adds r0, 0x79 + ldrb r0, [r0] + cmp r0, 0 + beq _0809DDBC + movs r0, 0 + movs r1, 0 + bl sub_80A1488 + movs r0, 0 + movs r1, 0 + bl sub_80A1654 + b _0809DDCC + .align 2, 0 +_0809DDB8: .4byte 0x02018000 +_0809DDBC: + movs r0, 0xA + movs r1, 0 + bl sub_80A1488 + movs r0, 0xA + movs r1, 0 + bl sub_80A1654 +_0809DDCC: + bl sub_80A0DD0 + ldr r1, _0809DDD8 @ =gMain + ldr r2, _0809DDDC @ =0x0000043c + adds r1, r2 + b _0809DDEE + .align 2, 0 +_0809DDD8: .4byte gMain +_0809DDDC: .4byte 0x0000043c +_0809DDE0: + bl sub_8055870 + cmp r0, 0x1 + beq _0809DE38 +_0809DDE8: + ldr r1, _0809DDF8 @ =gMain + ldr r0, _0809DDFC @ =0x0000043c + adds r1, r0 +_0809DDEE: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0809DE38 + .align 2, 0 +_0809DDF8: .4byte gMain +_0809DDFC: .4byte 0x0000043c +_0809DE00: + ldr r0, _0809DE2C @ =sub_809D85C + bl SetVBlankCallback + movs r0, 0x1 + str r0, [sp] + movs r0, 0xFF + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginHardwarePaletteFade + ldr r0, _0809DE30 @ =sub_809D844 + bl SetMainCallback2 + ldr r2, _0809DE34 @ =gPaletteFade + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x8] + movs r0, 0x1 + b _0809DE3A + .align 2, 0 +_0809DE2C: .4byte sub_809D85C +_0809DE30: .4byte sub_809D844 +_0809DE34: .4byte gPaletteFade +_0809DE38: + movs r0, 0 +_0809DE3A: + add sp, 0x8 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809DA84 + + thumb_func_start sub_809DE44 +sub_809DE44: @ 809DE44 + push {lr} +_0809DE46: + bl sub_809DA84 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0809DE5E + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0809DE46 +_0809DE5E: + pop {r0} + bx r0 + thumb_func_end sub_809DE44 + + thumb_func_start sub_809DE64 +sub_809DE64: @ 809DE64 + ldr r1, _0809DED0 @ =REG_BG0CNT + ldr r2, _0809DED4 @ =0x00001e08 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _0809DED8 @ =0x00004801 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _0809DEDC @ =0x00004a02 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _0809DEE0 @ =0x00005c03 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _0809DEE4 @ =gUnknown_030042C0 + movs r0, 0 + strh r0, [r1] + ldr r1, _0809DEE8 @ =gUnknown_030041B4 + strh r0, [r1] + ldr r1, _0809DEEC @ =gUnknown_03004288 + strh r0, [r1] + ldr r1, _0809DEF0 @ =gUnknown_03004280 + strh r0, [r1] + ldr r1, _0809DEF4 @ =gUnknown_030041B0 + strh r0, [r1] + ldr r1, _0809DEF8 @ =gUnknown_030041B8 + strh r0, [r1] + ldr r1, _0809DEFC @ =REG_BG0HOFS + strh r0, [r1] + adds r1, 0x2 + strh r0, [r1] + adds r1, 0x2 + strh r0, [r1] + adds r1, 0x2 + strh r0, [r1] + adds r1, 0x2 + strh r0, [r1] + adds r1, 0x2 + strh r0, [r1] + adds r1, 0x2 + strh r0, [r1] + adds r1, 0x2 + strh r0, [r1] + adds r1, 0x32 + strh r0, [r1] + subs r1, 0x50 + movs r2, 0xFA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + bx lr + .align 2, 0 +_0809DED0: .4byte REG_BG0CNT +_0809DED4: .4byte 0x00001e08 +_0809DED8: .4byte 0x00004801 +_0809DEDC: .4byte 0x00004a02 +_0809DEE0: .4byte 0x00005c03 +_0809DEE4: .4byte gUnknown_030042C0 +_0809DEE8: .4byte gUnknown_030041B4 +_0809DEEC: .4byte gUnknown_03004288 +_0809DEF0: .4byte gUnknown_03004280 +_0809DEF4: .4byte gUnknown_030041B0 +_0809DEF8: .4byte gUnknown_030041B8 +_0809DEFC: .4byte REG_BG0HOFS + thumb_func_end sub_809DE64 + + thumb_func_start sub_809DF00 +sub_809DF00: @ 809DF00 + push {lr} + ldr r0, _0809DF18 @ =0x02018000 + adds r0, 0x74 + ldrb r0, [r0] + cmp r0, 0xC + bls _0809DF0E + b _0809E030 +_0809DF0E: + lsls r0, 2 + ldr r1, _0809DF1C @ =_0809DF20 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809DF18: .4byte 0x02018000 +_0809DF1C: .4byte _0809DF20 + .align 2, 0 +_0809DF20: + .4byte _0809DF54 + .4byte _0809DF64 + .4byte _0809DF74 + .4byte _0809DF88 + .4byte _0809DF9C + .4byte _0809DFAC + .4byte _0809DFC4 + .4byte _0809DFD4 + .4byte _0809DFE0 + .4byte _0809DFEC + .4byte _0809DFF8 + .4byte _0809E004 + .4byte _0809E010 +_0809DF54: + ldr r0, _0809DF60 @ =gStatusScreen_Gfx + movs r1, 0xC0 + lsls r1, 19 + bl LZDecompressVram + b _0809E030 + .align 2, 0 +_0809DF60: .4byte gStatusScreen_Gfx +_0809DF64: + ldr r0, _0809DF6C @ =gUnknown_08E73508 + ldr r1, _0809DF70 @ =0x0600e000 + b _0809DFB0 + .align 2, 0 +_0809DF6C: .4byte gUnknown_08E73508 +_0809DF70: .4byte 0x0600e000 +_0809DF74: + ldr r0, _0809DF80 @ =gUnknown_08E74E88 + ldr r1, _0809DF84 @ =0x0600e800 + bl LZDecompressVram + b _0809E030 + .align 2, 0 +_0809DF80: .4byte gUnknown_08E74E88 +_0809DF84: .4byte 0x0600e800 +_0809DF88: + ldr r0, _0809DF94 @ =gStatusScreen_Tilemap + ldr r1, _0809DF98 @ =0x06004800 + bl LZDecompressVram + b _0809E030 + .align 2, 0 +_0809DF94: .4byte gStatusScreen_Tilemap +_0809DF98: .4byte 0x06004800 +_0809DF9C: + ldr r0, _0809DFA4 @ =gUnknown_08E73E88 + ldr r1, _0809DFA8 @ =0x06005800 + b _0809DFB0 + .align 2, 0 +_0809DFA4: .4byte gUnknown_08E73E88 +_0809DFA8: .4byte 0x06005800 +_0809DFAC: + ldr r0, _0809DFBC @ =gUnknown_08E74688 + ldr r1, _0809DFC0 @ =0x06006800 +_0809DFB0: + movs r2, 0x80 + lsls r2, 3 + bl CpuSet + b _0809E030 + .align 2, 0 +_0809DFBC: .4byte gUnknown_08E74688 +_0809DFC0: .4byte 0x06006800 +_0809DFC4: + ldr r0, _0809DFD0 @ =gStatusScreen_Pal + movs r1, 0 + movs r2, 0xA0 + bl LoadCompressedPalette + b _0809E030 + .align 2, 0 +_0809DFD0: .4byte gStatusScreen_Pal +_0809DFD4: + ldr r0, _0809DFDC @ =gUnknown_083C11B8 + bl LoadCompressedObjectPic + b _0809E030 + .align 2, 0 +_0809DFDC: .4byte gUnknown_083C11B8 +_0809DFE0: + ldr r0, _0809DFE8 @ =gUnknown_083C1270 + bl LoadCompressedObjectPic + b _0809E030 + .align 2, 0 +_0809DFE8: .4byte gUnknown_083C1270 +_0809DFEC: + ldr r0, _0809DFF4 @ =gUnknown_083C12F4 + bl LoadCompressedObjectPic + b _0809E030 + .align 2, 0 +_0809DFF4: .4byte gUnknown_083C12F4 +_0809DFF8: + ldr r0, _0809E000 @ =gUnknown_083C12FC + bl LoadCompressedObjectPalette + b _0809E030 + .align 2, 0 +_0809E000: .4byte gUnknown_083C12FC +_0809E004: + ldr r0, _0809E00C @ =gUnknown_083C1278 + bl LoadCompressedObjectPalette + b _0809E030 + .align 2, 0 +_0809E00C: .4byte gUnknown_083C1278 +_0809E010: + ldr r0, _0809E028 @ =gMoveTypes_Pal + movs r1, 0xE8 + lsls r1, 1 + movs r2, 0x60 + bl LoadCompressedPalette + ldr r0, _0809E02C @ =0x02018000 + adds r0, 0x74 + movs r1, 0 + strb r1, [r0] + movs r0, 0x1 + b _0809E03C + .align 2, 0 +_0809E028: .4byte gMoveTypes_Pal +_0809E02C: .4byte 0x02018000 +_0809E030: + ldr r1, _0809E040 @ =0x02018000 + adds r1, 0x74 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r0, 0 +_0809E03C: + pop {r1} + bx r1 + .align 2, 0 +_0809E040: .4byte 0x02018000 + thumb_func_end sub_809DF00 + + thumb_func_start sub_809E044 +sub_809E044: @ 809E044 + push {r4,r5,lr} + ldr r4, _0809E0F4 @ =gUnknownPalette_81E6692+0x1C + adds r0, r4, 0 + movs r1, 0x81 + movs r2, 0x2 + bl LoadPalette + adds r5, r4, 0x2 + adds r0, r5, 0 + movs r1, 0x88 + movs r2, 0x2 + bl LoadPalette + adds r0, r4, 0 + movs r1, 0x8F + movs r2, 0x2 + bl LoadPalette + adds r0, r5, 0 + movs r1, 0x89 + movs r2, 0x2 + bl LoadPalette + subs r5, 0x12 + adds r0, r5, 0 + movs r1, 0xD1 + movs r2, 0x4 + bl LoadPalette + adds r0, r4, 0 + subs r0, 0x8 + movs r1, 0xD3 + movs r2, 0x4 + bl LoadPalette + adds r0, r4, 0 + movs r1, 0xD5 + movs r2, 0x4 + bl LoadPalette + adds r0, r5, 0 + movs r1, 0xD7 + movs r2, 0x4 + bl LoadPalette + adds r0, r4, 0 + subs r0, 0x14 + movs r1, 0xD9 + movs r2, 0x4 + bl LoadPalette + adds r0, r4, 0 + subs r0, 0xC + movs r1, 0xDB + movs r2, 0x4 + bl LoadPalette + adds r0, r4, 0 + subs r0, 0x18 + movs r1, 0xDD + movs r2, 0x2 + bl LoadPalette + subs r5, 0x6 + adds r0, r5, 0 + movs r1, 0xDE + movs r2, 0x2 + bl LoadPalette + subs r4, 0x1A + adds r0, r4, 0 + movs r1, 0xDF + movs r2, 0x2 + bl LoadPalette + ldr r0, _0809E0F8 @ =gFontDefaultPalette + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + adds r0, r5, 0 + movs r1, 0xF9 + movs r2, 0x2 + bl LoadPalette + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809E0F4: .4byte gUnknownPalette_81E6692+0x1C +_0809E0F8: .4byte gFontDefaultPalette + thumb_func_end sub_809E044 + + thumb_func_start SummaryScreenExit +SummaryScreenExit: @ 809E0FC + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _0809E134 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809E138 @ =sub_809E13C + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809E134: .4byte gTasks +_0809E138: .4byte sub_809E13C + thumb_func_end SummaryScreenExit + + thumb_func_start sub_809E13C +sub_809E13C: @ 809E13C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + bl sub_8055870 + cmp r0, 0x1 + beq _0809E182 + ldr r0, _0809E188 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0809E182 + ldr r1, _0809E18C @ =gUnknown_020384F0 + ldr r4, _0809E190 @ =0x02018000 + ldrb r0, [r4, 0x9] + strb r0, [r1] + bl ResetSpriteData + bl FreeAllSpritePalettes + bl StopCryAndClearCrySongs + ldr r0, _0809E194 @ =gMPlay_BGM + ldr r1, _0809E198 @ =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl + ldr r0, [r4, 0x4] + bl SetMainCallback2 + adds r0, r5, 0 + bl DestroyTask +_0809E182: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809E188: .4byte gPaletteFade +_0809E18C: .4byte gUnknown_020384F0 +_0809E190: .4byte 0x02018000 +_0809E194: .4byte gMPlay_BGM +_0809E198: .4byte 0x0000ffff + thumb_func_end sub_809E13C + + thumb_func_start SummaryScreenHandleKeyInput +SummaryScreenHandleKeyInput: @ 809E19C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0809E1C8 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r2, 0x80 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _0809E25A + ldr r5, _0809E1CC @ =gMain + ldrh r1, [r5, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0809E1D0 + movs r1, 0x1 + negs r1, r1 + adds r0, r4, 0 + bl SummaryScreenHandleUpDownInput + b _0809E25A + .align 2, 0 +_0809E1C8: .4byte gPaletteFade +_0809E1CC: .4byte gMain +_0809E1D0: + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _0809E1E2 + adds r0, r4, 0 + movs r1, 0x1 + bl SummaryScreenHandleUpDownInput + b _0809E25A +_0809E1E2: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _0809E1F6 + bl sub_80F9284 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0809E202 +_0809E1F6: + movs r1, 0x1 + negs r1, r1 + adds r0, r4, 0 + bl SummaryScreenHandleLeftRightInput + b _0809E25A +_0809E202: + ldrh r1, [r5, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _0809E218 + bl sub_80F9284 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _0809E222 +_0809E218: + adds r0, r4, 0 + movs r1, 0x1 + bl SummaryScreenHandleLeftRightInput + b _0809E25A +_0809E222: + ldrh r1, [r5, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809E24C + ldr r5, _0809E248 @ =0x02018000 + ldrb r0, [r5, 0xB] + cmp r0, 0x1 + bls _0809E23A + adds r0, r4, 0 + bl SummaryScreenHandleAButton +_0809E23A: + ldrb r0, [r5, 0xB] + cmp r0, 0 + bne _0809E25A + adds r0, r4, 0 + bl SummaryScreenExit + b _0809E25A + .align 2, 0 +_0809E248: .4byte 0x02018000 +_0809E24C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809E25A + adds r0, r4, 0 + bl SummaryScreenExit +_0809E25A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end SummaryScreenHandleKeyInput + + thumb_func_start sub_809E260 +sub_809E260: @ 809E260 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0809E29C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r2, 0x80 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _0809E276 + b _0809E3EE +_0809E276: + ldr r5, _0809E2A0 @ =gMain + ldrh r1, [r5, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0809E2AC + ldr r1, _0809E2A4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0x4 + strh r1, [r0, 0x8] + subs r1, 0x5 + ldr r2, _0809E2A8 @ =0x02018079 + adds r0, r4, 0 + bl sub_809E8F0 + b _0809E3EE + .align 2, 0 +_0809E29C: .4byte gPaletteFade +_0809E2A0: .4byte gMain +_0809E2A4: .4byte gTasks +_0809E2A8: .4byte 0x02018079 +_0809E2AC: + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _0809E2D8 + ldr r1, _0809E2D0 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0x4 + strh r1, [r0, 0x8] + ldr r2, _0809E2D4 @ =0x02018079 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_809E8F0 + b _0809E3EE + .align 2, 0 +_0809E2D0: .4byte gTasks +_0809E2D4: .4byte 0x02018079 +_0809E2D8: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _0809E2EC + bl sub_80F9284 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0809E324 +_0809E2EC: + ldr r1, _0809E320 @ =0x02018000 + ldrb r0, [r1, 0xB] + cmp r0, 0x3 + bne _0809E314 + adds r0, r1, 0 + adds r0, 0x79 + ldrb r0, [r0] + cmp r0, 0x4 + bne _0809E308 + adds r0, r1, 0 + adds r0, 0x7C + ldrh r0, [r0] + cmp r0, 0 + beq _0809E314 +_0809E308: + movs r0, 0 + movs r1, 0xE + movs r2, 0x9 + movs r3, 0x12 + bl MenuZeroFillWindowRect +_0809E314: + movs r1, 0x1 + negs r1, r1 + adds r0, r4, 0 + bl SummaryScreenHandleLeftRightInput + b _0809E3EE + .align 2, 0 +_0809E320: .4byte 0x02018000 +_0809E324: + ldrh r1, [r5, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _0809E33A + bl sub_80F9284 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _0809E37C +_0809E33A: + ldr r1, _0809E378 @ =0x02018000 + adds r2, r1, 0 + adds r2, 0x76 + ldrb r0, [r1, 0xB] + ldrb r2, [r2] + cmp r0, r2 + beq _0809E3EE + cmp r0, 0x2 + bne _0809E36C + adds r0, r1, 0 + adds r0, 0x79 + ldrb r0, [r0] + cmp r0, 0x4 + bne _0809E360 + adds r0, r1, 0 + adds r0, 0x7C + ldrh r0, [r0] + cmp r0, 0 + beq _0809E36C +_0809E360: + movs r0, 0 + movs r1, 0xE + movs r2, 0x9 + movs r3, 0x12 + bl MenuZeroFillWindowRect +_0809E36C: + adds r0, r4, 0 + movs r1, 0x1 + bl SummaryScreenHandleLeftRightInput + b _0809E3EE + .align 2, 0 +_0809E378: .4byte 0x02018000 +_0809E37C: + ldrh r1, [r5, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809E3D4 + adds r0, r4, 0 + bl sub_809F7D0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0809E3A0 + ldr r0, _0809E3BC @ =0x02018000 + adds r5, r0, 0 + adds r5, 0x79 + ldrb r0, [r5] + cmp r0, 0x4 + bne _0809E3C4 +_0809E3A0: + ldr r0, _0809E3BC @ =0x02018000 + adds r1, r0, 0 + adds r1, 0x79 + ldrb r1, [r1] + adds r0, 0x7A + strb r1, [r0] + ldr r1, _0809E3C0 @ =gSpecialVar_0x8005 + ldrb r0, [r0] + strh r0, [r1] + adds r0, r4, 0 + bl SummaryScreenExit + b _0809E3EE + .align 2, 0 +_0809E3BC: .4byte 0x02018000 +_0809E3C0: .4byte gSpecialVar_0x8005 +_0809E3C4: + movs r0, 0x20 + bl PlaySE + ldrb r1, [r5] + adds r0, r4, 0 + bl sub_809F9D0 + b _0809E3EE +_0809E3D4: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809E3EE + ldr r0, _0809E3F4 @ =0x02018000 + adds r0, 0x7A + movs r1, 0x4 + strb r1, [r0] + ldr r0, _0809E3F8 @ =gSpecialVar_0x8005 + strh r1, [r0] + adds r0, r4, 0 + bl SummaryScreenExit +_0809E3EE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809E3F4: .4byte 0x02018000 +_0809E3F8: .4byte gSpecialVar_0x8005 + thumb_func_end sub_809E260 + + thumb_func_start sub_809E3FC +sub_809E3FC: @ 809E3FC + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r7, r5, 0 + ldr r0, _0809E438 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r2, 0x80 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _0809E502 + ldr r0, _0809E43C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0809E448 + ldr r1, _0809E440 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0x4 + strh r1, [r0, 0x8] + subs r1, 0x5 + ldr r2, _0809E444 @ =0x02018079 + adds r0, r5, 0 + bl sub_809E8F0 + b _0809E502 + .align 2, 0 +_0809E438: .4byte gPaletteFade +_0809E43C: .4byte gMain +_0809E440: .4byte gTasks +_0809E444: .4byte 0x02018079 +_0809E448: + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _0809E474 + ldr r1, _0809E46C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0x4 + strh r1, [r0, 0x8] + ldr r2, _0809E470 @ =0x02018079 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_809E8F0 + b _0809E502 + .align 2, 0 +_0809E46C: .4byte gTasks +_0809E470: .4byte 0x02018079 +_0809E474: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809E4EE + ldr r4, _0809E4A8 @ =0x02018000 + adds r6, r4, 0 + adds r6, 0x79 + ldrb r0, [r6] + cmp r0, 0x4 + beq _0809E4E0 + adds r0, r4, 0 + adds r0, 0x7B + ldrb r0, [r0] + cmp r0, 0 + bne _0809E4E0 + adds r0, r4, 0 + adds r0, 0x10 + bl sub_809E508 + lsls r0, 24 + cmp r0, 0 + bne _0809E4AC + movs r0, 0x20 + bl PlaySE + b _0809E502 + .align 2, 0 +_0809E4A8: .4byte 0x02018000 +_0809E4AC: + movs r0, 0x5 + bl PlaySE + ldrb r1, [r6] + adds r0, r4, 0 + adds r0, 0x7A + strb r1, [r0] + movs r0, 0x1 + bl sub_80A1B40 + movs r0, 0x13 + bl sub_80A1A30 + ldr r1, _0809E4D8 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809E4DC @ =sub_809E534 + str r1, [r0] + b _0809E502 + .align 2, 0 +_0809E4D8: .4byte gTasks +_0809E4DC: .4byte sub_809E534 +_0809E4E0: + movs r0, 0x5 + bl PlaySE + adds r0, r7, 0 + bl sub_809EAC8 + b _0809E502 +_0809E4EE: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809E502 + movs r0, 0x5 + bl PlaySE + adds r0, r7, 0 + bl sub_809EAC8 +_0809E502: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_809E3FC + + thumb_func_start sub_809E508 +sub_809E508: @ 809E508 + push {r4,r5,lr} + adds r5, r0, 0 + movs r4, 0x1 +_0809E50E: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_809F760 + lsls r0, 16 + cmp r0, 0 + beq _0809E520 + movs r0, 0x1 + b _0809E52C +_0809E520: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _0809E50E + movs r0, 0 +_0809E52C: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_809E508 + + thumb_func_start sub_809E534 +sub_809E534: @ 809E534 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + adds r2, r3, 0 + ldr r0, _0809E564 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0809E570 + ldr r1, _0809E568 @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + movs r1, 0x3 + strh r1, [r0, 0x8] + subs r1, 0x4 + ldr r2, _0809E56C @ =0x0201807a + adds r0, r3, 0 + bl sub_809E8F0 + b _0809E5C0 + .align 2, 0 +_0809E564: .4byte gMain +_0809E568: .4byte gTasks +_0809E56C: .4byte 0x0201807a +_0809E570: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0809E59C + ldr r1, _0809E594 @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + movs r1, 0x3 + strh r1, [r0, 0x8] + ldr r2, _0809E598 @ =0x0201807a + adds r0, r3, 0 + movs r1, 0x1 + bl sub_809E8F0 + b _0809E5C0 + .align 2, 0 +_0809E594: .4byte gTasks +_0809E598: .4byte 0x0201807a +_0809E59C: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809E5AE + adds r0, r3, 0 + movs r1, 0x1 + bl sub_809E83C + b _0809E5C0 +_0809E5AE: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809E5C0 + movs r1, 0x1 + negs r1, r1 + adds r0, r2, 0 + bl sub_809E83C +_0809E5C0: + pop {r0} + bx r0 + thumb_func_end sub_809E534 + + thumb_func_start sub_809E5C4 +sub_809E5C4: @ 809E5C4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + ldr r1, _0809E6D0 @ =0x02018000 + ldr r5, [r1] + ldrb r2, [r1, 0x9] + movs r0, 0x64 + muls r0, r2 + adds r5, r0 + adds r0, r1, 0 + adds r0, 0x79 + ldrb r0, [r0] + mov r8, r0 + adds r1, 0x7A + ldrb r6, [r1] + adds r0, 0xD + str r0, [sp, 0x8] + adds r0, r5, 0 + ldr r1, [sp, 0x8] + bl GetMonData + mov r1, sp + adds r1, 0x2 + str r1, [sp, 0x14] + strh r0, [r1] + adds r2, r6, 0 + adds r2, 0xD + str r2, [sp, 0xC] + adds r0, r5, 0 + adds r1, r2, 0 + bl GetMonData + mov r1, sp + strh r0, [r1] + mov r3, r8 + adds r3, 0x11 + str r3, [sp, 0x10] + adds r0, r5, 0 + adds r1, r3, 0 + bl GetMonData + mov r7, sp + adds r7, 0x5 + str r7, [sp, 0x18] + strb r0, [r7] + adds r0, r6, 0 + adds r0, 0x11 + str r0, [sp, 0x1C] + adds r0, r5, 0 + ldr r1, [sp, 0x1C] + bl GetMonData + add r1, sp, 0x4 + mov r10, r1 + strb r0, [r1] + adds r0, r5, 0 + movs r1, 0x15 + bl GetMonData + mov r4, sp + adds r4, 0x6 + strb r0, [r4] + ldr r1, _0809E6D4 @ =gUnknown_08208238 + mov r2, r8 + adds r0, r2, r1 + ldrb r0, [r0] + mov r9, r0 + ldrb r0, [r4] + adds r2, r0, 0 + mov r3, r9 + ands r2, r3 + mov r7, r8 + lsls r7, 1 + mov r8, r7 + asrs r2, r7 + lsls r2, 24 + lsrs r2, 24 + adds r1, r6, r1 + ldrb r3, [r1] + adds r1, r0, 0 + ands r1, r3 + lsls r6, 1 + asrs r1, r6 + lsls r1, 24 + lsrs r1, 24 + mov r7, r9 + bics r0, r7 + strb r0, [r4] + ldrb r0, [r4] + bics r0, r3 + strb r0, [r4] + lsls r2, r6 + mov r0, r8 + lsls r1, r0 + adds r2, r1 + ldrb r0, [r4] + orrs r0, r2 + strb r0, [r4] + adds r0, r5, 0 + ldr r1, [sp, 0x8] + mov r2, sp + bl SetMonData + adds r0, r5, 0 + ldr r1, [sp, 0xC] + ldr r2, [sp, 0x14] + bl SetMonData + adds r0, r5, 0 + ldr r1, [sp, 0x10] + mov r2, r10 + bl SetMonData + adds r0, r5, 0 + ldr r1, [sp, 0x1C] + ldr r2, [sp, 0x18] + bl SetMonData + adds r0, r5, 0 + movs r1, 0x15 + adds r2, r4, 0 + bl SetMonData + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809E6D0: .4byte 0x02018000 +_0809E6D4: .4byte gUnknown_08208238 + thumb_func_end sub_809E5C4 + + thumb_func_start sub_809E6D8 +sub_809E6D8: @ 809E6D8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + ldr r2, _0809E7E8 @ =0x02018000 + ldr r5, [r2] + ldrb r1, [r2, 0x9] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 4 + adds r5, r0 + adds r0, r2, 0 + adds r0, 0x79 + ldrb r0, [r0] + mov r8, r0 + adds r2, 0x7A + ldrb r6, [r2] + adds r0, 0xD + str r0, [sp, 0x8] + adds r0, r5, 0 + ldr r1, [sp, 0x8] + bl GetBoxMonData + mov r1, sp + adds r1, 0x2 + str r1, [sp, 0x14] + strh r0, [r1] + adds r2, r6, 0 + adds r2, 0xD + str r2, [sp, 0xC] + adds r0, r5, 0 + adds r1, r2, 0 + bl GetBoxMonData + mov r1, sp + strh r0, [r1] + mov r3, r8 + adds r3, 0x11 + str r3, [sp, 0x10] + adds r0, r5, 0 + adds r1, r3, 0 + bl GetBoxMonData + mov r7, sp + adds r7, 0x5 + str r7, [sp, 0x18] + strb r0, [r7] + adds r0, r6, 0 + adds r0, 0x11 + str r0, [sp, 0x1C] + adds r0, r5, 0 + ldr r1, [sp, 0x1C] + bl GetBoxMonData + add r1, sp, 0x4 + mov r10, r1 + strb r0, [r1] + adds r0, r5, 0 + movs r1, 0x15 + bl GetBoxMonData + mov r4, sp + adds r4, 0x6 + strb r0, [r4] + ldr r1, _0809E7EC @ =gUnknown_08208238 + mov r2, r8 + adds r0, r2, r1 + ldrb r0, [r0] + mov r9, r0 + ldrb r0, [r4] + adds r2, r0, 0 + mov r3, r9 + ands r2, r3 + mov r7, r8 + lsls r7, 1 + mov r8, r7 + asrs r2, r7 + lsls r2, 24 + lsrs r2, 24 + adds r1, r6, r1 + ldrb r3, [r1] + adds r1, r0, 0 + ands r1, r3 + lsls r6, 1 + asrs r1, r6 + lsls r1, 24 + lsrs r1, 24 + mov r7, r9 + bics r0, r7 + strb r0, [r4] + ldrb r0, [r4] + bics r0, r3 + strb r0, [r4] + lsls r2, r6 + mov r0, r8 + lsls r1, r0 + adds r2, r1 + ldrb r0, [r4] + orrs r0, r2 + strb r0, [r4] + adds r0, r5, 0 + ldr r1, [sp, 0x8] + mov r2, sp + bl SetBoxMonData + adds r0, r5, 0 + ldr r1, [sp, 0xC] + ldr r2, [sp, 0x14] + bl SetBoxMonData + adds r0, r5, 0 + ldr r1, [sp, 0x10] + mov r2, r10 + bl SetBoxMonData + adds r0, r5, 0 + ldr r1, [sp, 0x1C] + ldr r2, [sp, 0x18] + bl SetBoxMonData + adds r0, r5, 0 + movs r1, 0x15 + adds r2, r4, 0 + bl SetBoxMonData + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809E7E8: .4byte 0x02018000 +_0809E7EC: .4byte gUnknown_08208238 + thumb_func_end sub_809E6D8 + + thumb_func_start sub_809E7F0 +sub_809E7F0: @ 809E7F0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_809F5F8 + lsls r0, 24 + cmp r0, 0 + beq _0809E828 + ldr r1, _0809E830 @ =0x02018000 + adds r2, r1, 0 + adds r2, 0x74 + movs r0, 0 + strb r0, [r2] + adds r0, r1, 0 + adds r0, 0x10 + adds r1, 0x79 + bl sub_80A0428 + ldr r1, _0809E834 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809E838 @ =sub_809E3FC + str r1, [r0] + adds r0, r4, 0 + bl sub_80A2078 +_0809E828: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809E830: .4byte 0x02018000 +_0809E834: .4byte gTasks +_0809E838: .4byte sub_809E3FC + thumb_func_end sub_809E7F0 + + thumb_func_start sub_809E83C +sub_809E83C: @ 809E83C + push {r4,r5,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl PlaySE + movs r0, 0x13 + bl sub_80A1B1C + movs r0, 0 + bl sub_80A1B40 + cmp r4, 0x1 + bne _0809E8C0 + ldr r1, _0809E87C @ =0x02018000 + adds r0, r1, 0 + adds r0, 0x79 + adds r2, r1, 0 + adds r2, 0x7A + ldrb r0, [r0] + ldrb r2, [r2] + cmp r0, r2 + beq _0809E8CA + ldrb r0, [r1, 0xE] + cmp r0, 0 + bne _0809E880 + bl sub_809E5C4 + b _0809E884 + .align 2, 0 +_0809E87C: .4byte 0x02018000 +_0809E880: + bl sub_809E6D8 +_0809E884: + ldr r4, _0809E8B4 @ =0x02018000 + adds r0, r4, 0 + adds r0, 0x7A + ldrb r0, [r0] + adds r1, r4, 0 + adds r1, 0x79 + strb r0, [r1] + adds r0, r4, 0 + adds r0, 0x10 + bl sub_809F678 + adds r1, r4, 0 + adds r1, 0x74 + movs r0, 0x1 + strb r0, [r1] + ldr r1, _0809E8B8 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809E8BC @ =sub_809E7F0 + str r1, [r0] + b _0809E8DE + .align 2, 0 +_0809E8B4: .4byte 0x02018000 +_0809E8B8: .4byte gTasks +_0809E8BC: .4byte sub_809E7F0 +_0809E8C0: + ldr r0, _0809E8E4 @ =0x02018010 + adds r1, r0, 0 + adds r1, 0x69 + bl sub_80A0428 +_0809E8CA: + ldr r0, _0809E8E8 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _0809E8EC @ =sub_809E3FC + str r0, [r1] + adds r0, r5, 0 + bl sub_80A2078 +_0809E8DE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809E8E4: .4byte 0x02018010 +_0809E8E8: .4byte gTasks +_0809E8EC: .4byte sub_809E3FC + thumb_func_end sub_809E83C + + thumb_func_start sub_809E8F0 +sub_809E8F0: @ 809E8F0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r4, r1, 0 + mov r9, r2 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + str r0, [sp] + movs r0, 0x5 + bl PlaySE + mov r1, r9 + ldrb r6, [r1] + ldr r1, _0809E944 @ =gTasks + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x8] + movs r2, 0 + lsls r4, 24 + asrs r4, 24 + mov r10, r4 + lsls r7, r0, 24 +_0809E930: + lsls r0, r6, 24 + asrs r0, 24 + add r0, r10 + lsls r0, 24 + lsrs r6, r0, 24 + asrs r1, r0, 24 + cmp r0, r7 + ble _0809E948 + movs r6, 0 + b _0809E94E + .align 2, 0 +_0809E944: .4byte gTasks +_0809E948: + cmp r1, 0 + bge _0809E94E + lsrs r6, r7, 24 +_0809E94E: + lsls r4, r6, 24 + lsrs r1, r4, 24 + ldr r0, _0809EA10 @ =0x02018010 + str r2, [sp, 0x4] + bl sub_809F760 + lsls r0, 16 + adds r5, r4, 0 + ldr r2, [sp, 0x4] + cmp r0, 0 + bne _0809E97A + asrs r0, r5, 24 + cmp r0, 0x4 + beq _0809E97A + lsls r0, r2, 24 + movs r3, 0x80 + lsls r3, 17 + adds r0, r3 + lsrs r2, r0, 24 + asrs r0, 24 + cmp r0, 0x3 + ble _0809E930 +_0809E97A: + mov r1, r9 + ldrb r0, [r1] + cmp r0, 0x4 + bne _0809E996 + asrs r0, r5, 24 + cmp r0, 0x4 + beq _0809E996 + ldr r0, _0809EA14 @ =0x02018000 + adds r0, 0x7C + ldrh r0, [r0] + mov r2, r8 + lsls r7, r2, 2 + cmp r0, 0 + beq _0809E9AC +_0809E996: + ldr r2, _0809EA18 @ =gTasks + mov r3, r8 + lsls r1, r3, 2 + adds r0, r1, r3 + lsls r0, 3 + adds r0, r2 + movs r2, 0x22 + ldrsh r0, [r0, r2] + adds r7, r1, 0 + cmp r0, 0x1 + bne _0809E9D0 +_0809E9AC: + lsrs r4, r5, 24 + movs r0, 0x2 + adds r1, r4, 0 + bl sub_80A1488 + movs r0, 0x2 + adds r1, r4, 0 + bl sub_80A1654 + ldr r1, _0809EA18 @ =gTasks + mov r3, r8 + adds r0, r7, r3 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x22] + movs r0, 0 + str r0, [sp] +_0809E9D0: + mov r1, r9 + ldrb r0, [r1] + cmp r0, 0x4 + beq _0809E9FE + asrs r0, r5, 24 + cmp r0, 0x4 + bne _0809E9FE + ldr r0, _0809EA14 @ =0x02018000 + adds r0, 0x7C + ldrh r0, [r0] + cmp r0, 0 + bne _0809E9FE + movs r4, 0x2 + negs r4, r4 + lsrs r5, 24 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80A1488 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80A1654 +_0809E9FE: + mov r2, r9 + strb r6, [r2] + ldr r0, _0809EA1C @ =0x02018079 + cmp r9, r0 + bne _0809EA20 + movs r0, 0 + bl sub_80A1C30 + b _0809EA26 + .align 2, 0 +_0809EA10: .4byte 0x02018010 +_0809EA14: .4byte 0x02018000 +_0809EA18: .4byte gTasks +_0809EA1C: .4byte 0x02018079 +_0809EA20: + movs r0, 0x1 + bl sub_80A1C30 +_0809EA26: + ldr r3, [sp] + cmp r3, 0 + beq _0809EA34 + ldr r0, _0809EA4C @ =0x02018010 + mov r1, r9 + bl sub_80A0428 +_0809EA34: + mov r0, r8 + bl sub_80A2078 + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809EA4C: .4byte 0x02018010 + thumb_func_end sub_809E8F0 + + thumb_func_start SummaryScreenHandleAButton +SummaryScreenHandleAButton: @ 809EA50 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0x5 + bl PlaySE + ldr r4, _0809EABC @ =0x02018000 + adds r1, r4, 0 + adds r1, 0x79 + movs r0, 0 + strb r0, [r1] + movs r0, 0x2 + movs r1, 0 + bl sub_80A1488 + movs r0, 0x2 + movs r1, 0 + bl sub_80A1654 + adds r0, r4, 0 + adds r0, 0x7B + ldrb r0, [r0] + cmp r0, 0 + bne _0809EA8C + adds r1, r4, 0 + adds r1, 0x7F + movs r0, 0x5 + strb r0, [r1] + bl sub_80A0DD0 +_0809EA8C: + movs r0, 0 + bl sub_80A16CC + adds r0, r4, 0 + adds r0, 0x10 + bl sub_80A029C + movs r0, 0x9 + bl sub_80A1A30 + ldr r1, _0809EAC0 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809EAC4 @ =sub_809E3FC + str r1, [r0] + adds r0, r5, 0 + bl sub_80A2078 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809EABC: .4byte 0x02018000 +_0809EAC0: .4byte gTasks +_0809EAC4: .4byte sub_809E3FC + thumb_func_end SummaryScreenHandleAButton + + thumb_func_start sub_809EAC8 +sub_809EAC8: @ 809EAC8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r6, _0809EB34 @ =0x02018000 + adds r0, r6, 0 + adds r0, 0x79 + ldrb r0, [r0] + cmp r0, 0x4 + beq _0809EAEE + movs r4, 0x2 + negs r4, r4 + adds r0, r4, 0 + movs r1, 0 + bl sub_80A1488 + adds r0, r4, 0 + movs r1, 0 + bl sub_80A1654 +_0809EAEE: + movs r0, 0x9 + bl sub_80A1B1C + movs r0, 0x1 + bl sub_80A16CC + movs r0, 0xF + movs r1, 0xC + movs r2, 0x1C + movs r3, 0xD + bl MenuZeroFillWindowRect + movs r0, 0xB + movs r1, 0xF + movs r2, 0x1C + movs r3, 0x12 + bl MenuZeroFillWindowRect + adds r1, r6, 0 + adds r1, 0x7F + movs r0, 0x6 + strb r0, [r1] + bl sub_80A0DD0 + ldr r1, _0809EB38 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809EB3C @ =SummaryScreenHandleKeyInput + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809EB34: .4byte 0x02018000 +_0809EB38: .4byte gTasks +_0809EB3C: .4byte SummaryScreenHandleKeyInput + thumb_func_end sub_809EAC8 + + thumb_func_start sub_809EB40 +sub_809EB40: @ 809EB40 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _0809EB6C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _0809EB74 + cmp r0, 0x5 + bne _0809EBA4 + movs r0, 0x9 + bl sub_80A1A30 + movs r0, 0 + strh r0, [r4, 0x8] + ldr r0, _0809EB70 @ =sub_809E260 + str r0, [r4] + b _0809EBB4 + .align 2, 0 +_0809EB6C: .4byte gTasks +_0809EB70: .4byte sub_809E260 +_0809EB74: + ldr r4, _0809EBBC @ =0x02018000 + adds r6, r4, 0 + adds r6, 0x79 + strb r0, [r6] + adds r0, r4, 0 + adds r0, 0x7C + ldrh r0, [r0] + cmp r0, 0 + beq _0809EB96 + movs r0, 0xA + movs r1, 0 + bl sub_80A1488 + ldrb r1, [r6] + movs r0, 0xA + bl sub_80A1654 +_0809EB96: + movs r0, 0 + bl sub_80A16CC + adds r0, r4, 0 + adds r0, 0x10 + bl sub_80A029C +_0809EBA4: + ldr r0, _0809EBC0 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_0809EBB4: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809EBBC: .4byte 0x02018000 +_0809EBC0: .4byte gTasks + thumb_func_end sub_809EB40 + + thumb_func_start sub_809EBC4 +sub_809EBC4: @ 809EBC4 + push {r4,lr} + ldr r4, _0809EC28 @ =0x02018000 + ldrb r0, [r4, 0xB] + cmp r0, 0 + beq _0809EC22 + bl sub_80A0EE8 + ldr r0, _0809EC2C @ =gUnknown_030042C0 + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + strh r1, [r0] + ldrb r0, [r4, 0xB] + cmp r0, 0x1 + bne _0809EBF4 + ldr r2, _0809EC30 @ =REG_BG1CNT + ldrh r1, [r2] + ldr r0, _0809EC34 @ =0x0000e0ff + ands r0, r1 + movs r3, 0x80 + lsls r3, 4 + adds r1, r3, 0 + adds r0, r1 + strh r0, [r2] +_0809EBF4: + ldrb r3, [r4, 0xB] + cmp r3, 0x2 + bne _0809EC0C + ldr r2, _0809EC30 @ =REG_BG1CNT + ldrh r1, [r2] + ldr r0, _0809EC34 @ =0x0000e0ff + ands r0, r1 + movs r4, 0xA0 + lsls r4, 4 + adds r1, r4, 0 + adds r0, r1 + strh r0, [r2] +_0809EC0C: + cmp r3, 0x3 + bne _0809EC22 + ldr r2, _0809EC30 @ =REG_BG1CNT + ldrh r1, [r2] + ldr r0, _0809EC34 @ =0x0000e0ff + ands r0, r1 + movs r3, 0xC0 + lsls r3, 4 + adds r1, r3, 0 + adds r0, r1 + strh r0, [r2] +_0809EC22: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809EC28: .4byte 0x02018000 +_0809EC2C: .4byte gUnknown_030042C0 +_0809EC30: .4byte REG_BG1CNT +_0809EC34: .4byte 0x0000e0ff + thumb_func_end sub_809EBC4 + + thumb_func_start sub_809EC38 +sub_809EC38: @ 809EC38 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _0809EC5C @ =gTasks + 0x8 + adds r6, r0, r1 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0x5 + bls _0809EC52 + b _0809EE64 +_0809EC52: + lsls r0, 2 + ldr r1, _0809EC60 @ =_0809EC64 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809EC5C: .4byte gTasks + 0x8 +_0809EC60: .4byte _0809EC64 + .align 2, 0 +_0809EC64: + .4byte _0809EC7C + .4byte _0809ED14 + .4byte _0809ED98 + .4byte _0809EE12 + .4byte _0809EE1C + .4byte _0809EE4C +_0809EC7C: + ldr r1, _0809ECB8 @ =0x02018000 + adds r0, r1, 0 + adds r0, 0x80 + ldrb r0, [r0] + cmp r0, 0 + bne _0809ECC8 + ldrb r3, [r1, 0xB] + cmp r3, 0 + beq _0809EC98 + ldr r1, _0809ECBC @ =gUnknown_03004288 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] +_0809EC98: + cmp r3, 0x1 + bne _0809ECAE + ldr r2, _0809ECC0 @ =REG_BG2CNT + ldrh r1, [r2] + ldr r0, _0809ECC4 @ =0x0000e0ff + ands r0, r1 + movs r4, 0x80 + lsls r4, 4 + adds r1, r4, 0 + adds r0, r1 + strh r0, [r2] +_0809ECAE: + cmp r3, 0x2 + beq _0809ECB4 + b _0809EE3A +_0809ECB4: + ldr r2, _0809ECC0 @ =REG_BG2CNT + b _0809ECF6 + .align 2, 0 +_0809ECB8: .4byte 0x02018000 +_0809ECBC: .4byte gUnknown_03004288 +_0809ECC0: .4byte REG_BG2CNT +_0809ECC4: .4byte 0x0000e0ff +_0809ECC8: + ldrb r3, [r1, 0xB] + cmp r3, 0 + beq _0809ECD8 + ldr r1, _0809ED08 @ =gUnknown_030042C0 + movs r4, 0x80 + lsls r4, 1 + adds r0, r4, 0 + strh r0, [r1] +_0809ECD8: + cmp r3, 0x1 + bne _0809ECEE + ldr r2, _0809ED0C @ =REG_BG1CNT + ldrh r1, [r2] + ldr r0, _0809ED10 @ =0x0000e0ff + ands r0, r1 + movs r4, 0x80 + lsls r4, 4 + adds r1, r4, 0 + adds r0, r1 + strh r0, [r2] +_0809ECEE: + cmp r3, 0x2 + beq _0809ECF4 + b _0809EE3A +_0809ECF4: + ldr r2, _0809ED0C @ =REG_BG1CNT +_0809ECF6: + ldrh r1, [r2] + ldr r0, _0809ED10 @ =0x0000e0ff + ands r0, r1 + movs r3, 0xA0 + lsls r3, 4 + adds r1, r3, 0 + adds r0, r1 + strh r0, [r2] + b _0809EE3A + .align 2, 0 +_0809ED08: .4byte gUnknown_030042C0 +_0809ED0C: .4byte REG_BG1CNT +_0809ED10: .4byte 0x0000e0ff +_0809ED14: + ldr r0, _0809ED48 @ =0x02018000 + adds r0, 0x80 + ldrb r0, [r0] + cmp r0, 0 + bne _0809ED5C + ldr r1, _0809ED4C @ =gUnknown_030042C0 + ldrh r0, [r1] + subs r0, 0x20 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + beq _0809ED2E + b _0809EE64 +_0809ED2E: + ldr r3, _0809ED50 @ =REG_BG1CNT + ldrh r2, [r3] + ldr r1, _0809ED54 @ =0x0000fffc + adds r0, r1, 0 + ands r0, r2 + adds r0, 0x2 + strh r0, [r3] + ldr r2, _0809ED58 @ =REG_BG2CNT + ldrh r0, [r2] + ands r1, r0 + adds r1, 0x1 + strh r1, [r2] + b _0809EE3A + .align 2, 0 +_0809ED48: .4byte 0x02018000 +_0809ED4C: .4byte gUnknown_030042C0 +_0809ED50: .4byte REG_BG1CNT +_0809ED54: .4byte 0x0000fffc +_0809ED58: .4byte REG_BG2CNT +_0809ED5C: + ldr r1, _0809ED88 @ =gUnknown_03004288 + ldrh r0, [r1] + subs r0, 0x20 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + beq _0809ED6C + b _0809EE64 +_0809ED6C: + ldr r3, _0809ED8C @ =REG_BG1CNT + ldrh r2, [r3] + ldr r1, _0809ED90 @ =0x0000fffc + adds r0, r1, 0 + ands r0, r2 + adds r0, 0x1 + strh r0, [r3] + ldr r2, _0809ED94 @ =REG_BG2CNT + ldrh r0, [r2] + ands r1, r0 + adds r1, 0x2 + strh r1, [r2] + b _0809EE3A + .align 2, 0 +_0809ED88: .4byte gUnknown_03004288 +_0809ED8C: .4byte REG_BG1CNT +_0809ED90: .4byte 0x0000fffc +_0809ED94: .4byte REG_BG2CNT +_0809ED98: + ldr r1, _0809EDD4 @ =0x02018000 + ldrb r3, [r1, 0xB] + adds r0, r3, 0x1 + adds r2, r1, 0 + adds r2, 0x7E + strb r0, [r2] + ldrb r2, [r1, 0x8] + subs r0, r2, 0x2 + lsls r0, 24 + lsrs r0, 24 + adds r5, r1, 0 + cmp r0, 0x1 + bhi _0809EDD8 + adds r1, 0x7F + movs r0, 0 + strb r0, [r1] + adds r4, r5, 0 + adds r4, 0x10 + adds r0, r4, 0 + bl sub_80A029C + adds r5, 0x79 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80A0428 + ldrb r0, [r5] + bl sub_80A00F4 + b _0809EE3A + .align 2, 0 +_0809EDD4: .4byte 0x02018000 +_0809EDD8: + lsls r0, r3, 24 + lsrs r0, 24 + cmp r0, 0x1 + bls _0809EDFA + adds r0, r5, 0 + adds r0, 0x7B + ldrb r0, [r0] + cmp r0, 0 + beq _0809EDF2 + lsls r0, r2, 24 + lsrs r0, 24 + cmp r0, 0x4 + bne _0809EDFA +_0809EDF2: + adds r1, r5, 0 + adds r1, 0x7F + movs r0, 0x6 + b _0809EE0E +_0809EDFA: + ldrb r0, [r5, 0xB] + cmp r0, 0 + bne _0809EE08 + adds r1, r5, 0 + adds r1, 0x7F + movs r0, 0x7 + b _0809EE0E +_0809EE08: + adds r1, r5, 0 + adds r1, 0x7F + movs r0, 0 +_0809EE0E: + strb r0, [r1] + b _0809EE3A +_0809EE12: + bl sub_80A0EE8 + bl sub_80A0DD0 + b _0809EE3A +_0809EE1C: + ldr r0, _0809EE44 @ =gUnknown_083C1598 + ldr r4, _0809EE48 @ =0x02018000 + ldrb r1, [r4, 0xB] + lsls r1, 2 + adds r1, r0 + adds r0, r4, 0 + adds r0, 0x10 + ldr r1, [r1] + bl _call_via_r1 + adds r4, 0x80 + ldrb r0, [r4] + movs r1, 0x1 + eors r0, r1 + strb r0, [r4] +_0809EE3A: + ldrh r0, [r6] + adds r0, 0x1 + strh r0, [r6] + b _0809EE64 + .align 2, 0 +_0809EE44: .4byte gUnknown_083C1598 +_0809EE48: .4byte 0x02018000 +_0809EE4C: + bl sub_8055870 + cmp r0, 0x1 + beq _0809EE64 + ldr r1, _0809EE6C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809EE70 @ =gUnknown_03005CF0 + ldr r1, [r1] + str r1, [r0] +_0809EE64: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809EE6C: .4byte gTasks +_0809EE70: .4byte gUnknown_03005CF0 + thumb_func_end sub_809EC38 + + thumb_func_start sub_809EE74 +sub_809EE74: @ 809EE74 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _0809EE98 @ =gTasks + 0x8 + adds r6, r0, r1 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0x6 + bls _0809EE8E + b _0809F0C0 +_0809EE8E: + lsls r0, 2 + ldr r1, _0809EE9C @ =_0809EEA0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809EE98: .4byte gTasks + 0x8 +_0809EE9C: .4byte _0809EEA0 + .align 2, 0 +_0809EEA0: + .4byte _0809EEBC + .4byte _0809EEE0 + .4byte _0809EFB4 + .4byte _0809EFF4 + .4byte _0809F06E + .4byte _0809F078 + .4byte _0809F0A8 +_0809EEBC: + ldr r0, _0809EECC @ =0x02018000 + adds r0, 0x80 + ldrb r1, [r0] + cmp r1, 0 + bne _0809EED4 + ldr r0, _0809EED0 @ =gUnknown_03004288 + strh r1, [r0] + b _0809F096 + .align 2, 0 +_0809EECC: .4byte 0x02018000 +_0809EED0: .4byte gUnknown_03004288 +_0809EED4: + ldr r1, _0809EEDC @ =gUnknown_030042C0 + movs r0, 0 + strh r0, [r1] + b _0809F096 + .align 2, 0 +_0809EEDC: .4byte gUnknown_030042C0 +_0809EEE0: + ldr r1, _0809EF30 @ =0x02018000 + adds r0, r1, 0 + adds r0, 0x80 + ldrb r0, [r0] + cmp r0, 0 + bne _0809EF4C + ldrb r3, [r1, 0xB] + cmp r3, 0x1 + bne _0809EF02 + ldr r2, _0809EF34 @ =REG_BG2CNT + ldrh r1, [r2] + ldr r0, _0809EF38 @ =0x0000e0fc + ands r0, r1 + ldr r4, _0809EF3C @ =0x00000801 + adds r1, r4, 0 + adds r0, r1 + strh r0, [r2] +_0809EF02: + cmp r3, 0x2 + bne _0809EF16 + ldr r2, _0809EF34 @ =REG_BG2CNT + ldrh r1, [r2] + ldr r0, _0809EF38 @ =0x0000e0fc + ands r0, r1 + ldr r4, _0809EF40 @ =0x00000a01 + adds r1, r4, 0 + adds r0, r1 + strh r0, [r2] +_0809EF16: + cmp r3, 0x3 + bne _0809EF2A + ldr r2, _0809EF34 @ =REG_BG2CNT + ldrh r1, [r2] + ldr r0, _0809EF38 @ =0x0000e0fc + ands r0, r1 + ldr r3, _0809EF44 @ =0x00000c01 + adds r1, r3, 0 + adds r0, r1 + strh r0, [r2] +_0809EF2A: + ldr r2, _0809EF48 @ =REG_BG1CNT + b _0809EF8C + .align 2, 0 +_0809EF30: .4byte 0x02018000 +_0809EF34: .4byte REG_BG2CNT +_0809EF38: .4byte 0x0000e0fc +_0809EF3C: .4byte 0x00000801 +_0809EF40: .4byte 0x00000a01 +_0809EF44: .4byte 0x00000c01 +_0809EF48: .4byte REG_BG1CNT +_0809EF4C: + ldrb r3, [r1, 0xB] + cmp r3, 0x1 + bne _0809EF62 + ldr r2, _0809EF98 @ =REG_BG1CNT + ldrh r1, [r2] + ldr r0, _0809EF9C @ =0x0000e0fc + ands r0, r1 + ldr r4, _0809EFA0 @ =0x00000801 + adds r1, r4, 0 + adds r0, r1 + strh r0, [r2] +_0809EF62: + cmp r3, 0x2 + bne _0809EF76 + ldr r2, _0809EF98 @ =REG_BG1CNT + ldrh r1, [r2] + ldr r0, _0809EF9C @ =0x0000e0fc + ands r0, r1 + ldr r4, _0809EFA4 @ =0x00000a01 + adds r1, r4, 0 + adds r0, r1 + strh r0, [r2] +_0809EF76: + cmp r3, 0x3 + bne _0809EF8A + ldr r2, _0809EF98 @ =REG_BG1CNT + ldrh r1, [r2] + ldr r0, _0809EF9C @ =0x0000e0fc + ands r0, r1 + ldr r3, _0809EFA8 @ =0x00000c01 + adds r1, r3, 0 + adds r0, r1 + strh r0, [r2] +_0809EF8A: + ldr r2, _0809EFAC @ =REG_BG2CNT +_0809EF8C: + ldrh r1, [r2] + ldr r0, _0809EFB0 @ =0x0000fffc + ands r0, r1 + adds r0, 0x2 + strh r0, [r2] + b _0809F096 + .align 2, 0 +_0809EF98: .4byte REG_BG1CNT +_0809EF9C: .4byte 0x0000e0fc +_0809EFA0: .4byte 0x00000801 +_0809EFA4: .4byte 0x00000a01 +_0809EFA8: .4byte 0x00000c01 +_0809EFAC: .4byte REG_BG2CNT +_0809EFB0: .4byte 0x0000fffc +_0809EFB4: + ldr r0, _0809EFD4 @ =0x02018000 + adds r0, 0x80 + ldrb r0, [r0] + cmp r0, 0 + bne _0809EFDC + ldr r0, _0809EFD8 @ =gUnknown_03004288 + ldrh r1, [r0] + adds r1, 0x20 + strh r1, [r0] + lsls r1, 16 + movs r0, 0x80 + lsls r0, 17 + cmp r1, r0 + bne _0809F0C0 + b _0809F096 + .align 2, 0 +_0809EFD4: .4byte 0x02018000 +_0809EFD8: .4byte gUnknown_03004288 +_0809EFDC: + ldr r0, _0809EFF0 @ =gUnknown_030042C0 + ldrh r1, [r0] + adds r1, 0x20 + strh r1, [r0] + lsls r1, 16 + movs r0, 0x80 + lsls r0, 17 + cmp r1, r0 + bne _0809F0C0 + b _0809F096 + .align 2, 0 +_0809EFF0: .4byte gUnknown_030042C0 +_0809EFF4: + ldr r1, _0809F030 @ =0x02018000 + ldrb r3, [r1, 0xB] + adds r0, r3, 0x1 + adds r2, r1, 0 + adds r2, 0x7E + strb r0, [r2] + ldrb r2, [r1, 0x8] + subs r0, r2, 0x2 + lsls r0, 24 + lsrs r0, 24 + adds r5, r1, 0 + cmp r0, 0x1 + bhi _0809F034 + adds r1, 0x7F + movs r0, 0 + strb r0, [r1] + adds r4, r5, 0 + adds r4, 0x10 + adds r0, r4, 0 + bl sub_80A029C + adds r5, 0x79 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80A0428 + ldrb r0, [r5] + bl sub_80A00F4 + b _0809F096 + .align 2, 0 +_0809F030: .4byte 0x02018000 +_0809F034: + lsls r0, r3, 24 + lsrs r0, 24 + cmp r0, 0x1 + bls _0809F056 + adds r0, r5, 0 + adds r0, 0x7B + ldrb r0, [r0] + cmp r0, 0 + beq _0809F04E + lsls r0, r2, 24 + lsrs r0, 24 + cmp r0, 0x4 + bne _0809F056 +_0809F04E: + adds r1, r5, 0 + adds r1, 0x7F + movs r0, 0x6 + b _0809F06A +_0809F056: + ldrb r0, [r5, 0xB] + cmp r0, 0 + bne _0809F064 + adds r1, r5, 0 + adds r1, 0x7F + movs r0, 0x7 + b _0809F06A +_0809F064: + adds r1, r5, 0 + adds r1, 0x7F + movs r0, 0 +_0809F06A: + strb r0, [r1] + b _0809F096 +_0809F06E: + bl sub_80A0EE8 + bl sub_80A0DD0 + b _0809F096 +_0809F078: + ldr r0, _0809F0A0 @ =gUnknown_083C1598 + ldr r4, _0809F0A4 @ =0x02018000 + ldrb r1, [r4, 0xB] + lsls r1, 2 + adds r1, r0 + adds r0, r4, 0 + adds r0, 0x10 + ldr r1, [r1] + bl _call_via_r1 + adds r4, 0x80 + ldrb r0, [r4] + movs r1, 0x1 + eors r0, r1 + strb r0, [r4] +_0809F096: + ldrh r0, [r6] + adds r0, 0x1 + strh r0, [r6] + b _0809F0C0 + .align 2, 0 +_0809F0A0: .4byte gUnknown_083C1598 +_0809F0A4: .4byte 0x02018000 +_0809F0A8: + bl sub_8055870 + cmp r0, 0x1 + beq _0809F0C0 + ldr r1, _0809F0C8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809F0CC @ =gUnknown_03005CF0 + ldr r1, [r1] + str r1, [r0] +_0809F0C0: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809F0C8: .4byte gTasks +_0809F0CC: .4byte gUnknown_03005CF0 + thumb_func_end sub_809EE74 + + thumb_func_start sub_809F0D0 +sub_809F0D0: @ 809F0D0 + push {r4-r7,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _0809F110 @ =0x02018000 + ldrb r0, [r1, 0xB] + adds r0, r4 + movs r5, 0 + strb r0, [r1, 0xB] + ldr r2, _0809F114 @ =gUnknown_03005CF0 + ldr r1, _0809F118 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r6, r0, r1 + ldr r0, [r6] + str r0, [r2] + bl sub_809FBE4 + strh r5, [r6, 0x8] + lsls r4, 24 + asrs r4, 24 + movs r0, 0x1 + negs r0, r0 + cmp r4, r0 + bne _0809F120 + ldr r0, _0809F11C @ =sub_809EC38 + str r0, [r6] + b _0809F12A + .align 2, 0 +_0809F110: .4byte 0x02018000 +_0809F114: .4byte gUnknown_03005CF0 +_0809F118: .4byte gTasks +_0809F11C: .4byte sub_809EC38 +_0809F120: + ldr r1, _0809F130 @ =sub_809EE74 + str r1, [r6] + adds r0, r7, 0 + bl _call_via_r1 +_0809F12A: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809F130: .4byte sub_809EE74 + thumb_func_end sub_809F0D0 + + thumb_func_start SummaryScreenHandleLeftRightInput +SummaryScreenHandleLeftRightInput: @ 809F134 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r4, _0809F1AC @ =0x02018010 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0809F1A6 + lsls r0, r5, 24 + asrs r5, r0, 24 + movs r0, 0x1 + negs r0, r0 + cmp r5, r0 + bne _0809F168 + adds r0, r4, 0 + subs r0, 0x10 + adds r1, r4, 0 + adds r1, 0x65 + ldrb r0, [r0, 0xB] + ldrb r1, [r1] + cmp r0, r1 + beq _0809F1A6 +_0809F168: + cmp r5, 0x1 + bne _0809F17C + adds r0, r4, 0 + subs r0, 0x10 + adds r1, r4, 0 + adds r1, 0x66 + ldrb r0, [r0, 0xB] + ldrb r1, [r1] + cmp r0, r1 + beq _0809F1A6 +_0809F17C: + ldr r0, _0809F1B0 @ =sub_80A1334 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _0809F1A6 + ldr r0, _0809F1B4 @ =sub_80A1500 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _0809F1A6 + movs r0, 0x5 + bl PlaySE + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_809F0D0 +_0809F1A6: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809F1AC: .4byte 0x02018010 +_0809F1B0: .4byte sub_80A1334 +_0809F1B4: .4byte sub_80A1500 + thumb_func_end SummaryScreenHandleLeftRightInput + + thumb_func_start SummaryScreenHandleUpDownInput +SummaryScreenHandleUpDownInput: @ 809F1B8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + ldr r0, _0809F1E4 @ =0x02018000 + ldrb r1, [r0, 0xE] + adds r2, r0, 0 + cmp r1, 0x1 + bne _0809F202 + ldrb r0, [r2, 0xB] + cmp r0, 0 + beq _0809F1E8 + lsls r1, r4, 24 + asrs r1, 24 + movs r4, 0x1 + eors r1, r4 + negs r0, r1 + orrs r0, r1 + lsrs r4, r0, 31 + b _0809F1F4 + .align 2, 0 +_0809F1E4: .4byte 0x02018000 +_0809F1E8: + lsls r0, r4, 24 + asrs r0, 24 + movs r4, 0x3 + cmp r0, 0x1 + bne _0809F1F4 + movs r4, 0x2 +_0809F1F4: + ldr r0, [r2] + ldrb r1, [r2, 0x9] + ldrb r2, [r2, 0xA] + adds r3, r4, 0 + bl StorageSystemGetNextMonIndex + b _0809F22C +_0809F202: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0809F224 + bl IsLinkDoubleBattle + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0809F224 + lsls r0, r4, 24 + asrs r0, 24 + bl sub_809F3CC + b _0809F22C +_0809F224: + lsls r0, r4, 24 + asrs r0, 24 + bl sub_809F284 +_0809F22C: + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _0809F270 + movs r0, 0x5 + bl PlaySE + ldr r5, _0809F278 @ =0x02018010 + adds r0, r5, 0 + bl GetMonStatusAndPokerus + lsls r0, 24 + cmp r0, 0 + beq _0809F258 + movs r0, 0x2 + negs r0, r0 + bl sub_80A12D0 +_0809F258: + adds r0, r5, 0 + subs r0, 0x10 + strb r4, [r0, 0x9] + ldr r1, _0809F27C @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, [r0] + str r1, [r5, 0x74] + ldr r1, _0809F280 @ =sub_809F43C + str r1, [r0] +_0809F270: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809F278: .4byte 0x02018010 +_0809F27C: .4byte gTasks +_0809F280: .4byte sub_809F43C + thumb_func_end SummaryScreenHandleUpDownInput + + thumb_func_start sub_809F284 +sub_809F284: @ 809F284 + push {r4-r7,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _0809F2C0 @ =0x02018000 + ldr r7, [r0] + movs r6, 0 + ldrb r1, [r0, 0xB] + adds r4, r0, 0 + cmp r1, 0 + bne _0809F2C4 + lsls r0, r3, 24 + asrs r2, r0, 24 + movs r1, 0x1 + negs r1, r1 + adds r5, r0, 0 + cmp r2, r1 + bne _0809F2AC + ldrb r0, [r4, 0x9] + cmp r0, 0 + beq _0809F2E4 +_0809F2AC: + asrs r0, r5, 24 + cmp r0, 0x1 + bne _0809F2BA + ldrb r0, [r4, 0x9] + ldrb r1, [r4, 0xA] + cmp r0, r1 + bcs _0809F2E4 +_0809F2BA: + ldrb r0, [r4, 0x9] + adds r0, r3 + b _0809F304 + .align 2, 0 +_0809F2C0: .4byte 0x02018000 +_0809F2C4: + lsls r5, r3, 24 +_0809F2C6: + lsls r0, r6, 24 + asrs r0, 24 + asrs r1, r5, 24 + adds r0, r1 + lsls r0, 24 + ldr r4, _0809F2EC @ =0x02018000 + lsrs r6, r0, 24 + asrs r0, 24 + ldrb r2, [r4, 0x9] + adds r1, r0, r2 + cmp r1, 0 + blt _0809F2E4 + ldrb r0, [r4, 0xA] + cmp r1, r0 + ble _0809F2F0 +_0809F2E4: + movs r0, 0x1 + negs r0, r0 + b _0809F308 + .align 2, 0 +_0809F2EC: .4byte 0x02018000 +_0809F2F0: + movs r0, 0x64 + muls r0, r1 + adds r0, r7, r0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0809F2C6 + ldrb r0, [r4, 0x9] + adds r0, r6 +_0809F304: + lsls r0, 24 + asrs r0, 24 +_0809F308: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809F284 + + thumb_func_start sub_809F310 +sub_809F310: @ 809F310 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0809F33C + ldr r0, _0809F338 @ =0x02018000 + ldrb r0, [r0, 0xB] + cmp r0, 0 + bne _0809F332 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0809F33C +_0809F332: + movs r0, 0x1 + b _0809F33E + .align 2, 0 +_0809F338: .4byte 0x02018000 +_0809F33C: + movs r0, 0 +_0809F33E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_809F310 + + thumb_func_start sub_809F344 +sub_809F344: @ 809F344 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 +_0809F34A: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x6 + beq _0809F37C + ldr r0, _0809F374 @ =gUnknown_083C15A8 + adds r5, r4, r0 + ldrb r1, [r5] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0809F378 @ =gPlayerParty + adds r0, r1 + bl sub_809F310 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0809F34A + movs r0, 0 + ldrsb r0, [r5, r0] + b _0809F380 + .align 2, 0 +_0809F374: .4byte gUnknown_083C15A8 +_0809F378: .4byte gPlayerParty +_0809F37C: + movs r0, 0x1 + negs r0, r0 +_0809F380: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_809F344 + + thumb_func_start sub_809F388 +sub_809F388: @ 809F388 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 +_0809F38E: + cmp r4, 0 + beq _0809F3C0 + subs r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0809F3B8 @ =gUnknown_083C15A8 + adds r5, r4, r0 + ldrb r1, [r5] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0809F3BC @ =gPlayerParty + adds r0, r1 + bl sub_809F310 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0809F38E + movs r0, 0 + ldrsb r0, [r5, r0] + b _0809F3C4 + .align 2, 0 +_0809F3B8: .4byte gUnknown_083C15A8 +_0809F3BC: .4byte gPlayerParty +_0809F3C0: + movs r0, 0x1 + negs r0, r0 +_0809F3C4: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_809F388 + + thumb_func_start sub_809F3CC +sub_809F3CC: @ 809F3CC + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r2, 0 + movs r1, 0 + ldr r3, _0809F41C @ =gUnknown_083C15A8 + ldr r4, _0809F420 @ =0x02018000 + ldrb r0, [r3] + ldrb r5, [r4, 0x9] + cmp r0, r5 + beq _0809F3FC + adds r5, r3, 0 + adds r3, r4, 0 +_0809F3E6: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x5 + bhi _0809F3FC + adds r0, r1, r5 + ldrb r0, [r0] + ldrb r4, [r3, 0x9] + cmp r0, r4 + bne _0809F3E6 + adds r2, r1, 0 +_0809F3FC: + lsls r0, r6, 24 + asrs r1, r0, 24 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _0809F40C + cmp r2, 0 + beq _0809F414 +_0809F40C: + cmp r1, 0x1 + bne _0809F424 + cmp r2, 0x5 + bne _0809F42C +_0809F414: + movs r0, 0x1 + negs r0, r0 + b _0809F436 + .align 2, 0 +_0809F41C: .4byte gUnknown_083C15A8 +_0809F420: .4byte 0x02018000 +_0809F424: + adds r0, r2, 0 + bl sub_809F388 + b _0809F432 +_0809F42C: + adds r0, r2, 0 + bl sub_809F344 +_0809F432: + lsls r0, 24 + asrs r0, 24 +_0809F436: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_809F3CC + + thumb_func_start sub_809F43C +sub_809F43C: @ 809F43C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0809F45C @ =gMain + ldr r1, _0809F460 @ =0x0000043c + adds r5, r0, r1 + ldrb r2, [r5] + adds r3, r0, 0 + cmp r2, 0x8 + bls _0809F452 + b _0809F5CC +_0809F452: + lsls r0, r2, 2 + ldr r1, _0809F464 @ =_0809F468 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809F45C: .4byte gMain +_0809F460: .4byte 0x0000043c +_0809F464: .4byte _0809F468 + .align 2, 0 +_0809F468: + .4byte _0809F48C + .4byte _0809F492 + .4byte _0809F4BC + .4byte _0809F4D8 + .4byte _0809F4F4 + .4byte _0809F51C + .4byte _0809F578 + .4byte _0809F584 + .4byte _0809F5A0 +_0809F48C: + bl StopCryAndClearCrySongs + b _0809F5B2 +_0809F492: + ldr r0, _0809F4AC @ =0x02018000 + ldrb r1, [r0, 0xC] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0809F4B0 @ =gSprites + adds r0, r1 + bl DestroySpriteAndFreeResources + ldr r1, _0809F4B4 @ =gMain + ldr r0, _0809F4B8 @ =0x0000043c + adds r1, r0 + b _0809F5B8 + .align 2, 0 +_0809F4AC: .4byte 0x02018000 +_0809F4B0: .4byte gSprites +_0809F4B4: .4byte gMain +_0809F4B8: .4byte 0x0000043c +_0809F4BC: + ldr r0, _0809F4D0 @ =0x02018000 + ldrb r1, [r0, 0xD] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0809F4D4 @ =gSprites + adds r0, r1 + bl DestroySpriteAndFreeResources + b _0809F5B2 + .align 2, 0 +_0809F4D0: .4byte 0x02018000 +_0809F4D4: .4byte gSprites +_0809F4D8: + ldr r0, _0809F4EC @ =0x02018000 + adds r1, r0, 0 + adds r1, 0x74 + movs r2, 0 + strb r2, [r1] + adds r0, 0x79 + strb r2, [r0] + ldr r0, _0809F4F0 @ =0x0000043c + adds r1, r3, r0 + b _0809F5B8 + .align 2, 0 +_0809F4EC: .4byte 0x02018000 +_0809F4F0: .4byte 0x0000043c +_0809F4F4: + ldr r4, _0809F518 @ =0x02018010 + adds r0, r4, 0 + bl sub_809F678 + adds r0, r4, 0 + bl GetMonStatusAndPokerus + lsls r0, 24 + cmp r0, 0 + beq _0809F50E + movs r0, 0x2 + bl sub_80A12D0 +_0809F50E: + adds r0, r4, 0 + bl sub_80A0EA4 + b _0809F5B2 + .align 2, 0 +_0809F518: .4byte 0x02018010 +_0809F51C: + ldr r4, _0809F558 @ =0x02018010 + adds r5, r4, 0 + adds r5, 0x64 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_809F6B4 + adds r1, r4, 0 + subs r1, 0x10 + strb r0, [r1, 0xC] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _0809F5EA + movs r0, 0 + strb r0, [r5] + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + adds r1, r0, 0 + cmp r1, 0 + beq _0809F560 + ldr r1, _0809F55C @ =gUnknown_030041B0 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + b _0809F564 + .align 2, 0 +_0809F558: .4byte 0x02018010 +_0809F55C: .4byte gUnknown_030041B0 +_0809F560: + ldr r0, _0809F56C @ =gUnknown_030041B0 + strh r1, [r0] +_0809F564: + ldr r1, _0809F570 @ =gMain + ldr r0, _0809F574 @ =0x0000043c + adds r1, r0 + b _0809F5B8 + .align 2, 0 +_0809F56C: .4byte gUnknown_030041B0 +_0809F570: .4byte gMain +_0809F574: .4byte 0x0000043c +_0809F578: + ldr r0, _0809F580 @ =0x02018010 + bl sub_80A1DCC + b _0809F5B2 + .align 2, 0 +_0809F580: .4byte 0x02018010 +_0809F584: + ldr r0, _0809F594 @ =0x02018010 + bl sub_80A1DE8 + ldr r1, _0809F598 @ =gMain + ldr r0, _0809F59C @ =0x0000043c + adds r1, r0 + b _0809F5B8 + .align 2, 0 +_0809F594: .4byte 0x02018010 +_0809F598: .4byte gMain +_0809F59C: .4byte 0x0000043c +_0809F5A0: + bl sub_809F5F8 + lsls r0, 24 + cmp r0, 0 + beq _0809F5EA + ldr r0, _0809F5C0 @ =0x02018000 + adds r0, 0x74 + movs r1, 0 + strb r1, [r0] +_0809F5B2: + ldr r1, _0809F5C4 @ =gMain + ldr r2, _0809F5C8 @ =0x0000043c + adds r1, r2 +_0809F5B8: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0809F5EA + .align 2, 0 +_0809F5C0: .4byte 0x02018000 +_0809F5C4: .4byte gMain +_0809F5C8: .4byte 0x0000043c +_0809F5CC: + bl sub_8055870 + cmp r0, 0x1 + beq _0809F5EA + movs r0, 0 + strb r0, [r5] + ldr r0, _0809F5F0 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _0809F5F4 @ =0x02018000 + adds r0, 0x84 + ldr r0, [r0] + str r0, [r1] +_0809F5EA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809F5F0: .4byte gTasks +_0809F5F4: .4byte 0x02018000 + thumb_func_end sub_809F43C + + thumb_func_start sub_809F5F8 +sub_809F5F8: @ 809F5F8 + push {r4,lr} + ldr r2, _0809F61C @ =0x02018000 + adds r4, r2, 0 + adds r4, 0x74 + ldrb r0, [r4] + cmp r0, 0 + beq _0809F624 + ldr r0, _0809F620 @ =gUnknown_083C1588 + ldrb r1, [r2, 0xB] + lsls r1, 2 + adds r1, r0 + adds r0, r2, 0 + adds r0, 0x10 + ldr r1, [r1] + bl _call_via_r1 + movs r0, 0x1 + b _0809F634 + .align 2, 0 +_0809F61C: .4byte 0x02018000 +_0809F620: .4byte gUnknown_083C1588 +_0809F624: + adds r0, r2, 0 + adds r0, 0x10 + bl sub_809FAC8 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + movs r0, 0 +_0809F634: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_809F5F8 + + thumb_func_start sub_809F63C +sub_809F63C: @ 809F63C + push {r4,lr} + adds r4, r0, 0 + bl sub_809FE80 + adds r0, r4, 0 + bl sub_809FC34 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_809F63C + + thumb_func_start sub_809F650 +sub_809F650: @ 809F650 + push {r4,lr} + adds r4, r0, 0 + bl sub_80A00A4 + adds r0, r4, 0 + bl sub_809FF64 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_809F650 + + thumb_func_start sub_809F664 +sub_809F664: @ 809F664 + push {r4,lr} + adds r4, r0, 0 + bl sub_80A0390 + adds r0, r4, 0 + bl sub_80A015C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_809F664 + + thumb_func_start sub_809F678 +sub_809F678: @ 809F678 + push {lr} + adds r3, r0, 0 + ldr r1, _0809F698 @ =0x02018000 + ldrb r0, [r1, 0xE] + cmp r0, 0 + bne _0809F69C + ldr r2, [r1] + ldrb r1, [r1, 0x9] + movs r0, 0x64 + muls r1, r0 + adds r1, r2 + adds r0, r3, 0 + movs r2, 0x64 + bl memcpy + b _0809F6AE + .align 2, 0 +_0809F698: .4byte 0x02018000 +_0809F69C: + ldr r0, [r1] + ldrb r2, [r1, 0x9] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + adds r0, r1 + adds r1, r3, 0 + bl sub_803B4B4 +_0809F6AE: + pop {r0} + bx r0 + thumb_func_end sub_809F678 + + thumb_func_start sub_809F6B4 +sub_809F6B4: @ 809F6B4 + push {r4-r7,lr} + sub sp, 0xC + adds r4, r0, 0 + adds r7, r1, 0 + ldrb r0, [r7] + cmp r0, 0 + beq _0809F6D2 + cmp r0, 0x1 + beq _0809F718 + adds r0, r4, 0 + bl sub_80A1808 + lsls r0, 24 + lsrs r0, 24 + b _0809F756 +_0809F6D2: + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + adds r6, r0, 0 + lsls r0, r5, 3 + ldr r1, _0809F70C @ =gMonFrontPicTable + adds r0, r1 + ldr r1, _0809F710 @ =gMonFrontPicCoords + lsls r2, r5, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _0809F714 @ =gUnknown_081FAF4C + ldr r4, [r4, 0x4] + str r4, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + bl HandleLoadSpecialPokePic + b _0809F74E + .align 2, 0 +_0809F70C: .4byte gMonFrontPicTable +_0809F710: .4byte gMonFrontPicCoords +_0809F714: .4byte gUnknown_081FAF4C +_0809F718: + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + adds r6, r0, 0 + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + adds r1, r0, 0 + adds r0, r5, 0 + adds r2, r6, 0 + bl sub_80409C8 + adds r4, r0, 0 + bl LoadCompressedObjectPalette + ldrh r0, [r4, 0x4] + movs r1, 0x1 + bl GetMonSpriteTemplate_803C56C +_0809F74E: + ldrb r0, [r7] + adds r0, 0x1 + strb r0, [r7] + movs r0, 0xFF +_0809F756: + add sp, 0xC + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809F6B4 + + thumb_func_start sub_809F760 +sub_809F760: @ 809F760 + push {lr} + lsls r1, 24 + lsrs r1, 24 + adds r2, r1, 0 + cmp r1, 0x1 + beq _0809F780 + cmp r1, 0x1 + bgt _0809F776 + cmp r1, 0 + beq _0809F77C + b _0809F788 +_0809F776: + cmp r2, 0x2 + beq _0809F784 + b _0809F788 +_0809F77C: + movs r1, 0xD + b _0809F78A +_0809F780: + movs r1, 0xE + b _0809F78A +_0809F784: + movs r1, 0xF + b _0809F78A +_0809F788: + movs r1, 0x10 +_0809F78A: + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_809F760 + + thumb_func_start sub_809F798 +sub_809F798: @ 809F798 + push {lr} + lsls r1, 24 + lsrs r1, 24 + adds r2, r1, 0 + cmp r1, 0x1 + beq _0809F7B8 + cmp r1, 0x1 + bgt _0809F7AE + cmp r1, 0 + beq _0809F7B4 + b _0809F7C0 +_0809F7AE: + cmp r2, 0x2 + beq _0809F7BC + b _0809F7C0 +_0809F7B4: + movs r1, 0x11 + b _0809F7C2 +_0809F7B8: + movs r1, 0x12 + b _0809F7C2 +_0809F7BC: + movs r1, 0x13 + b _0809F7C2 +_0809F7C0: + movs r1, 0x14 +_0809F7C2: + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_809F798 + + thumb_func_start sub_809F7D0 +sub_809F7D0: @ 809F7D0 + push {r4,lr} + sub sp, 0x64 + mov r0, sp + bl sub_809F678 + ldr r4, _0809F804 @ =0x02018000 + adds r0, r4, 0 + adds r0, 0x79 + ldrb r1, [r0] + mov r0, sp + bl sub_809F760 + lsls r0, 16 + lsrs r0, 16 + bl IsHMMove + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0809F808 + ldrb r0, [r4, 0x8] + cmp r0, 0x3 + beq _0809F808 + movs r0, 0 + b _0809F80A + .align 2, 0 +_0809F804: .4byte 0x02018000 +_0809F808: + movs r0, 0x1 +_0809F80A: + add sp, 0x64 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_809F7D0 + + thumb_func_start sub_809F814 +sub_809F814: @ 809F814 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r6, r0, 3 + ldr r0, _0809F83C @ =gTasks + 0x8 + mov r8, r0 + adds r4, r6, r0 + ldrh r1, [r4, 0x1C] + movs r2, 0x1C + ldrsh r0, [r4, r2] + cmp r0, 0x3 + bgt _0809F840 + adds r0, r1, 0x1 + strh r0, [r4, 0x1C] + b _0809F9C0 + .align 2, 0 +_0809F83C: .4byte gTasks + 0x8 +_0809F840: + ldr r7, _0809F874 @ =gMain + ldrh r1, [r7, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0809F880 + mov r0, r8 + subs r0, 0x8 + adds r0, r6, r0 + ldr r1, _0809F878 @ =sub_809E260 + str r1, [r0] + movs r0, 0x4 + strh r0, [r4] + movs r0, 0x1 + strh r0, [r4, 0x1A] + ldr r2, _0809F87C @ =0x02018000 + ldrh r0, [r4, 0x1E] + adds r2, 0x79 + strb r0, [r2] + movs r1, 0x1 + negs r1, r1 + adds r0, r5, 0 + bl sub_809E8F0 + b _0809F9C0 + .align 2, 0 +_0809F874: .4byte gMain +_0809F878: .4byte sub_809E260 +_0809F87C: .4byte 0x02018000 +_0809F880: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0809F8B4 + mov r0, r8 + subs r0, 0x8 + adds r0, r6, r0 + ldr r1, _0809F8AC @ =sub_809E260 + str r1, [r0] + movs r0, 0x4 + strh r0, [r4] + movs r0, 0x1 + strh r0, [r4, 0x1A] + ldr r2, _0809F8B0 @ =0x02018000 + ldrh r0, [r4, 0x1E] + adds r2, 0x79 + strb r0, [r2] + adds r0, r5, 0 + movs r1, 0x1 + bl sub_809E8F0 + b _0809F9C0 + .align 2, 0 +_0809F8AC: .4byte sub_809E260 +_0809F8B0: .4byte 0x02018000 +_0809F8B4: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _0809F8C8 + bl sub_80F9284 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0809F918 +_0809F8C8: + ldr r1, _0809F90C @ =0x02018000 + ldrb r0, [r1, 0xB] + cmp r0, 0x2 + beq _0809F9C0 + cmp r0, 0x3 + bne _0809F8F4 + adds r0, r1, 0 + adds r0, 0x79 + ldrb r0, [r0] + cmp r0, 0x4 + bne _0809F8E8 + adds r0, r1, 0 + adds r0, 0x7C + ldrh r0, [r0] + cmp r0, 0 + beq _0809F8F4 +_0809F8E8: + movs r0, 0 + movs r1, 0xE + movs r2, 0x9 + movs r3, 0x12 + bl MenuZeroFillWindowRect +_0809F8F4: + ldr r1, _0809F910 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809F914 @ =sub_809E260 + str r1, [r0] + movs r1, 0x1 + negs r1, r1 + adds r0, r5, 0 + b _0809F972 + .align 2, 0 +_0809F90C: .4byte 0x02018000 +_0809F910: .4byte gTasks +_0809F914: .4byte sub_809E260 +_0809F918: + ldrh r1, [r7, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _0809F92E + bl sub_80F9284 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _0809F994 +_0809F92E: + ldr r1, _0809F988 @ =0x02018000 + adds r2, r1, 0 + adds r2, 0x76 + ldrb r0, [r1, 0xB] + ldrb r2, [r2] + cmp r0, r2 + beq _0809F9C0 + cmp r0, 0x2 + bne _0809F960 + adds r0, r1, 0 + adds r0, 0x79 + ldrb r0, [r0] + cmp r0, 0x4 + bne _0809F954 + adds r0, r1, 0 + adds r0, 0x7C + ldrh r0, [r0] + cmp r0, 0 + beq _0809F960 +_0809F954: + movs r0, 0 + movs r1, 0xE + movs r2, 0x9 + movs r3, 0x12 + bl MenuZeroFillWindowRect +_0809F960: + ldr r1, _0809F98C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809F990 @ =sub_809E260 + str r1, [r0] + adds r0, r5, 0 + movs r1, 0x1 +_0809F972: + bl SummaryScreenHandleLeftRightInput + ldrb r1, [r4, 0x1E] + movs r0, 0x1 + bl sub_80A1488 + ldrb r1, [r4, 0x1E] + movs r0, 0x1 + bl sub_80A1654 + b _0809F9C0 + .align 2, 0 +_0809F988: .4byte 0x02018000 +_0809F98C: .4byte gTasks +_0809F990: .4byte sub_809E260 +_0809F994: + ldrh r1, [r7, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0809F9A6 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809F9C0 +_0809F9A6: + ldrb r1, [r4, 0x1E] + movs r0, 0x2 + bl sub_80A1488 + ldrb r1, [r4, 0x1E] + movs r0, 0x2 + bl sub_80A1654 + mov r0, r8 + subs r0, 0x8 + adds r0, r6, r0 + ldr r1, _0809F9CC @ =sub_809E260 + str r1, [r0] +_0809F9C0: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809F9CC: .4byte sub_809E260 + thumb_func_end sub_809F814 + + thumb_func_start sub_809F9D0 +sub_809F9D0: @ 809F9D0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r6, _0809FA24 @ =gTasks + 0x8 + adds r2, r4, r6 + movs r0, 0 + strh r0, [r2, 0x1C] + strh r1, [r2, 0x1E] + movs r5, 0x2 + negs r5, r5 + adds r0, r5, 0 + movs r1, 0x4 + bl sub_80A1488 + adds r0, r5, 0 + movs r1, 0x4 + bl sub_80A1654 + movs r0, 0xB + movs r1, 0xF + movs r2, 0x1C + movs r3, 0x12 + bl MenuZeroFillWindowRect + ldr r0, _0809FA28 @ =gOtherText_CantForgetHMs + movs r1, 0xB + movs r2, 0xF + bl MenuPrint + subs r6, 0x8 + adds r4, r6 + ldr r0, _0809FA2C @ =sub_809F814 + str r0, [r4] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809FA24: .4byte gTasks + 0x8 +_0809FA28: .4byte gOtherText_CantForgetHMs +_0809FA2C: .4byte sub_809F814 + thumb_func_end sub_809F9D0 + + thumb_func_start sub_809FA30 +sub_809FA30: @ 809FA30 + ldr r0, _0809FA38 @ =0x02018000 + adds r0, 0x7A + ldrb r0, [r0] + bx lr + .align 2, 0 +_0809FA38: .4byte 0x02018000 + thumb_func_end sub_809FA30 + + thumb_func_start GetStringCenterAlignXOffsetWithLetterSpacing +GetStringCenterAlignXOffsetWithLetterSpacing: @ 809FA3C + push {r4,lr} + lsls r0, 24 + lsls r1, 24 + lsls r2, 24 + lsls r3, 24 + lsrs r2, 23 + lsrs r3, 18 + ldr r4, _0809FA70 @ =0x0600f000 + adds r3, r4 + adds r2, r3 + lsrs r1, 12 + lsrs r0, 23 + movs r4, 0x80 + lsls r4, 2 + adds r3, r4, 0 + adds r0, r3 + adds r1, r0 + adds r0, r1, 0 + adds r0, 0x80 + strh r0, [r2] + adds r2, 0x40 + adds r1, 0x81 + strh r1, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809FA70: .4byte 0x0600f000 + thumb_func_end GetStringCenterAlignXOffsetWithLetterSpacing + + thumb_func_start GetStringCenterAlignXOffset +GetStringCenterAlignXOffset: @ 809FA74 + push {r4,lr} + adds r4, r1, 0 + adds r3, r2, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r3, 24 + lsrs r3, 24 + movs r1, 0xF + adds r2, r4, 0 + bl GetStringCenterAlignXOffsetWithLetterSpacing + pop {r4} + pop {r0} + bx r0 + thumb_func_end GetStringCenterAlignXOffset + + thumb_func_start sub_809FA94 +sub_809FA94: @ 809FA94 + push {lr} + bl sub_8040CB4 + lsls r0, 24 + cmp r0, 0 + beq _0809FAB4 + ldr r0, _0809FAB0 @ =gUnknown_083C157E + movs r1, 0x4 + movs r2, 0x2 + bl LoadPalette + movs r0, 0x1 + b _0809FAC0 + .align 2, 0 +_0809FAB0: .4byte gUnknown_083C157E +_0809FAB4: + ldr r0, _0809FAC4 @ =gUnknown_083C157C + movs r1, 0x4 + movs r2, 0x2 + bl LoadPalette + movs r0, 0 +_0809FAC0: + pop {r1} + bx r1 + .align 2, 0 +_0809FAC4: .4byte gUnknown_083C157C + thumb_func_end sub_809FA94 + + thumb_func_start sub_809FAC8 +sub_809FAC8: @ 809FAC8 + push {r4-r6,lr} + sub sp, 0xC + adds r5, r0, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + beq _0809FB28 + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0x4 + movs r3, 0x3 + bl MenuZeroFillWindowRect + movs r0, 0x3 + movs r1, 0x10 + movs r2, 0x9 + movs r3, 0x11 + bl MenuZeroFillWindowRect + movs r0, 0 + movs r1, 0xC + movs r2, 0xB + movs r3, 0xF + bl MenuZeroFillWindowRect + ldr r4, _0809FB20 @ =gStringVar1 + adds r0, r5, 0 + adds r1, r4, 0 + bl GetMonNickname + adds r0, r4, 0 + movs r1, 0xD + movs r2, 0x3 + movs r3, 0x10 + bl sub_80A1FF8 + ldr r0, _0809FB24 @ =gUnknown_083C157C + movs r1, 0x4 + movs r2, 0x2 + bl LoadPalette + b _0809FBD6 + .align 2, 0 +_0809FB20: .4byte gStringVar1 +_0809FB24: .4byte gUnknown_083C157C +_0809FB28: + adds r0, r5, 0 + bl sub_809FA94 + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + bl SpeciesToPokedexNum + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, _0809FB6C @ =0x0000ffff + cmp r4, r0 + beq _0809FB96 + cmp r6, 0 + bne _0809FB70 + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0x2 + bl GetStringCenterAlignXOffset + movs r0, 0x11 + str r0, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + movs r0, 0x1 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r1, 0xD + b _0809FB8C + .align 2, 0 +_0809FB6C: .4byte 0x0000ffff +_0809FB70: + movs r0, 0x2 + movs r1, 0x8 + movs r2, 0x1 + movs r3, 0x2 + bl GetStringCenterAlignXOffsetWithLetterSpacing + movs r0, 0x11 + str r0, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + movs r0, 0x1 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r1, 0x8 +_0809FB8C: + movs r2, 0x3 + movs r3, 0x2 + bl sub_80A1F98 + b _0809FBA2 +_0809FB96: + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0x4 + movs r3, 0x3 + bl MenuZeroFillWindowRect +_0809FBA2: + ldr r1, _0809FBE0 @ =gStringVar1 + adds r0, r1, 0 + movs r1, 0xD + bl sub_80A1E58 + adds r1, r0, 0 + adds r0, r5, 0 + bl GetMonNickname + adds r1, r0, 0 + movs r0, 0xFC + strb r0, [r1] + movs r0, 0x13 + strb r0, [r1, 0x1] + movs r0, 0x3C + strb r0, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + ldr r0, _0809FBE0 @ =gStringVar1 + movs r1, 0x1 + movs r2, 0xC + bl MenuPrint + adds r0, r5, 0 + bl sub_80A0958 +_0809FBD6: + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809FBE0: .4byte gStringVar1 + thumb_func_end sub_809FAC8 + + thumb_func_start sub_809FBE4 +sub_809FBE4: @ 809FBE4 + push {r4,lr} + movs r4, 0 +_0809FBE8: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80A1918 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1B + bls _0809FBE8 + movs r0, 0xB + movs r1, 0x4 + movs r2, 0x1D + movs r3, 0x12 + bl MenuZeroFillWindowRect + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_809FBE4 + + thumb_func_start sub_809FC0C +sub_809FC0C: @ 809FC0C + push {lr} + ldr r0, _0809FC30 @ =gOtherText_Type2 + movs r1, 0xB + movs r2, 0x6 + bl MenuPrint + movs r0, 0 + movs r1, 0x16 + movs r2, 0x4 + bl GetStringCenterAlignXOffset + movs r0, 0x2 + movs r1, 0x17 + movs r2, 0x4 + bl GetStringCenterAlignXOffset + pop {r0} + bx r0 + .align 2, 0 +_0809FC30: .4byte gOtherText_Type2 + thumb_func_end sub_809FC0C + + thumb_func_start sub_809FC34 +sub_809FC34: @ 809FC34 + push {r4-r6,lr} + sub sp, 0xC + adds r6, r0, 0 + movs r4, 0 +_0809FC3C: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80A1918 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bls _0809FC3C + movs r0, 0xB + movs r1, 0x9 + movs r2, 0x1C + movs r3, 0xC + bl MenuZeroFillWindowRect + adds r0, r6, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + beq _0809FD1C + ldr r5, _0809FCD0 @ =gStringVar1 + adds r0, r5, 0 + movs r1, 0xD + bl sub_80A1E58 + adds r5, r0, 0 + ldr r1, _0809FCD4 @ =gOtherText_OriginalTrainer + bl StringCopy + adds r5, r0, 0 + ldr r4, _0809FCD8 @ =gOtherText_FiveQuestionsAndSlash + adds r1, r4, 0 + bl StringCopy + adds r5, r0, 0 + movs r0, 0xFC + strb r0, [r5] + movs r0, 0x13 + strb r0, [r5, 0x1] + movs r0, 0x4E + strb r0, [r5, 0x2] + movs r0, 0xFF + strb r0, [r5, 0x3] + ldr r0, _0809FCD0 @ =gStringVar1 + movs r1, 0xB + movs r2, 0x4 + bl MenuPrint + movs r0, 0x1 + str r0, [sp] + adds r0, r4, 0 + movs r1, 0xD + movs r2, 0xC1 + movs r3, 0x20 + bl sub_80A1EF8 + movs r0, 0x9 + movs r1, 0x78 + movs r2, 0x30 + movs r3, 0 + bl sub_80A198C + adds r0, r6, 0 + movs r1, 0x20 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + adds r1, r0, 0 + cmp r0, 0x5 + bhi _0809FCE0 + ldr r0, _0809FCDC @ =gOtherText_EggAbout + b _0809FCF2 + .align 2, 0 +_0809FCD0: .4byte gStringVar1 +_0809FCD4: .4byte gOtherText_OriginalTrainer +_0809FCD8: .4byte gOtherText_FiveQuestionsAndSlash +_0809FCDC: .4byte gOtherText_EggAbout +_0809FCE0: + cmp r0, 0xA + bhi _0809FCEC + ldr r0, _0809FCE8 @ =gOtherText_EggSoon + b _0809FCF2 + .align 2, 0 +_0809FCE8: .4byte gOtherText_EggSoon +_0809FCEC: + cmp r1, 0x28 + bhi _0809FD00 + ldr r0, _0809FCFC @ =gOtherText_EggSomeTime +_0809FCF2: + movs r1, 0xB + movs r2, 0x9 + bl MenuPrint + b _0809FD0A + .align 2, 0 +_0809FCFC: .4byte gOtherText_EggSomeTime +_0809FD00: + ldr r0, _0809FD18 @ =gOtherText_EggLongTime + movs r1, 0xB + movs r2, 0x9 + bl MenuPrint +_0809FD0A: + adds r0, r6, 0 + movs r1, 0xB + movs r2, 0xE + bl PokemonSummaryScreen_PrintEggTrainerMemo + b _0809FE4C + .align 2, 0 +_0809FD18: .4byte gOtherText_EggLongTime +_0809FD1C: + ldr r4, _0809FD64 @ =gStringVar2 + adds r0, r6, 0 + movs r1, 0x7 + adds r2, r4, 0 + bl GetMonData + adds r0, r6, 0 + movs r1, 0x3 + bl GetMonData + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl ConvertInternationalString + ldr r5, _0809FD68 @ =gStringVar1 + adds r0, r5, 0 + movs r1, 0xD + bl sub_80A1E58 + adds r5, r0, 0 + ldr r1, _0809FD6C @ =gOtherText_OriginalTrainer + bl StringCopy + adds r5, r0, 0 + adds r0, r6, 0 + movs r1, 0x31 + bl GetMonData + cmp r0, 0 + bne _0809FD70 + adds r0, r5, 0 + movs r1, 0x9 + b _0809FD74 + .align 2, 0 +_0809FD64: .4byte gStringVar2 +_0809FD68: .4byte gStringVar1 +_0809FD6C: .4byte gOtherText_OriginalTrainer +_0809FD70: + adds r0, r5, 0 + movs r1, 0xA +_0809FD74: + bl sub_80A1E58 + adds r5, r0, 0 + ldr r1, _0809FE54 @ =gStringVar2 + adds r0, r5, 0 + bl StringCopy + adds r5, r0, 0 + movs r0, 0xFC + strb r0, [r5] + movs r0, 0x13 + strb r0, [r5, 0x1] + movs r0, 0x4E + strb r0, [r5, 0x2] + movs r0, 0xFF + strb r0, [r5, 0x3] + ldr r0, _0809FE58 @ =gStringVar1 + movs r1, 0xB + movs r2, 0x4 + bl MenuPrint + adds r0, r6, 0 + movs r1, 0x1 + bl GetMonData + ldr r1, _0809FE5C @ =0x0000ffff + ands r1, r0 + movs r0, 0xC1 + str r0, [sp] + movs r0, 0x20 + str r0, [sp, 0x4] + movs r0, 0x1 + str r0, [sp, 0x8] + adds r0, r1, 0 + movs r1, 0xD + movs r2, 0x5 + movs r3, 0x2 + bl sub_80A1F98 + adds r0, r6, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + ldr r2, _0809FE60 @ =gBaseStats + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r5, r1, r2 + ldrb r4, [r5, 0x6] + adds r0, r4, 0 + movs r1, 0x78 + movs r2, 0x30 + movs r3, 0 + bl sub_80A198C + ldrb r0, [r5, 0x7] + cmp r4, r0 + beq _0809FDF8 + ldrb r0, [r5, 0x7] + movs r1, 0xA0 + movs r2, 0x30 + movs r3, 0x1 + bl sub_80A198C +_0809FDF8: + adds r0, r6, 0 + movs r1, 0xB + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r6, 0 + movs r1, 0x2E + bl GetMonData + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl GetAbilityBySpecies + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0xD + muls r0, r4 + ldr r1, _0809FE64 @ =gAbilityNames + adds r0, r1 + movs r1, 0xD + movs r2, 0xB + movs r3, 0x9 + bl sub_80A1FF8 + ldr r0, _0809FE68 @ =gAbilityDescriptions + lsls r4, 2 + adds r4, r0 + ldr r0, [r4] + movs r1, 0xB + movs r2, 0xB + bl MenuPrint + adds r0, r6, 0 + movs r1, 0xB + movs r2, 0xE + bl PokemonSummaryScreen_PrintTrainerMemo +_0809FE4C: + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809FE54: .4byte gStringVar2 +_0809FE58: .4byte gStringVar1 +_0809FE5C: .4byte 0x0000ffff +_0809FE60: .4byte gBaseStats +_0809FE64: .4byte gAbilityNames +_0809FE68: .4byte gAbilityDescriptions + thumb_func_end sub_809FC34 + + thumb_func_start sub_809FE6C +sub_809FE6C: @ 809FE6C + push {r4,lr} + adds r4, r0, 0 + bl sub_809FC0C + adds r0, r4, 0 + bl sub_809FC34 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_809FE6C + + thumb_func_start sub_809FE80 +sub_809FE80: @ 809FE80 + push {lr} + movs r0, 0xE + movs r1, 0x4 + movs r2, 0x12 + movs r3, 0x5 + bl MenuZeroFillWindowRect + movs r0, 0x19 + movs r1, 0x4 + movs r2, 0x1E + movs r3, 0x5 + bl MenuZeroFillWindowRect + movs r0, 0xB + movs r1, 0x9 + movs r2, 0x1C + movs r3, 0xC + bl MenuZeroFillWindowRect + movs r0, 0xB + movs r1, 0xE + movs r2, 0x1C + movs r3, 0x11 + bl MenuZeroFillWindowRect + pop {r0} + bx r0 + thumb_func_end sub_809FE80 + + thumb_func_start sub_809FEB8 +sub_809FEB8: @ 809FEB8 + push {r4,lr} + sub sp, 0x4 + ldr r0, _0809FF40 @ =gOtherText_ExpPoints + movs r1, 0xD + movs r2, 0xB + movs r3, 0xE + bl sub_80A1FF8 + ldr r0, _0809FF44 @ =gOtherText_NextLv + movs r1, 0xD + movs r2, 0xB + movs r3, 0x10 + bl sub_80A1FF8 + ldr r0, _0809FF48 @ =gOtherText_Terminator18 + movs r1, 0x15 + movs r2, 0x10 + bl MenuPrint + ldr r0, _0809FF4C @ =gOtherText_HP + movs r4, 0x2A + str r4, [sp] + movs r1, 0xD + movs r2, 0xB + movs r3, 0x7 + bl sub_80A1F48 + ldr r0, _0809FF50 @ =gOtherText_Attack + str r4, [sp] + movs r1, 0xD + movs r2, 0xB + movs r3, 0x9 + bl sub_80A1F48 + ldr r0, _0809FF54 @ =gOtherText_Defense + str r4, [sp] + movs r1, 0xD + movs r2, 0xB + movs r3, 0xB + bl sub_80A1F48 + ldr r0, _0809FF58 @ =gOtherText_SpAtk + movs r4, 0x24 + str r4, [sp] + movs r1, 0xD + movs r2, 0x16 + movs r3, 0x7 + bl sub_80A1F48 + ldr r0, _0809FF5C @ =gOtherText_SpDef + str r4, [sp] + movs r1, 0xD + movs r2, 0x16 + movs r3, 0x9 + bl sub_80A1F48 + ldr r0, _0809FF60 @ =gOtherText_Speed + str r4, [sp] + movs r1, 0xD + movs r2, 0x16 + movs r3, 0xB + bl sub_80A1F48 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809FF40: .4byte gOtherText_ExpPoints +_0809FF44: .4byte gOtherText_NextLv +_0809FF48: .4byte gOtherText_Terminator18 +_0809FF4C: .4byte gOtherText_HP +_0809FF50: .4byte gOtherText_Attack +_0809FF54: .4byte gOtherText_Defense +_0809FF58: .4byte gOtherText_SpAtk +_0809FF5C: .4byte gOtherText_SpDef +_0809FF60: .4byte gOtherText_Speed + thumb_func_end sub_809FEB8 + + thumb_func_start sub_809FF64 +sub_809FF64: @ 809FF64 + push {r4,r5,lr} + adds r5, r0, 0 + movs r4, 0 +_0809FF6A: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80A1918 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bls _0809FF6A + adds r0, r5, 0 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xB + movs r2, 0x4 + bl sub_80A0BF4 + adds r0, r5, 0 + bl sub_80A0B88 + ldr r4, _080A008C @ =gStringVar1 + adds r0, r5, 0 + movs r1, 0x19 + bl GetMonData + adds r1, r0, 0 + adds r0, r4, 0 + bl ConvertIntToDecimalString + adds r0, r4, 0 + movs r1, 0x1D + movs r2, 0xE + bl MenuPrint_RightAligned + adds r0, r5, 0 + movs r1, 0x17 + movs r2, 0x10 + bl sub_80A0C80 + adds r0, r5, 0 + movs r1, 0x3B + bl GetMonData + adds r1, r0, 0 + adds r0, r4, 0 + bl ConvertIntToDecimalString + adds r0, r4, 0 + movs r1, 0x10 + movs r2, 0x9 + movs r3, 0x32 + bl sub_8072BD8 + adds r0, r5, 0 + movs r1, 0x3C + bl GetMonData + adds r1, r0, 0 + adds r0, r4, 0 + bl ConvertIntToDecimalString + adds r0, r4, 0 + movs r1, 0x10 + movs r2, 0xB + movs r3, 0x32 + bl sub_8072BD8 + adds r0, r5, 0 + movs r1, 0x3E + bl GetMonData + adds r1, r0, 0 + adds r0, r4, 0 + bl ConvertIntToDecimalString + adds r0, r4, 0 + movs r1, 0x1B + movs r2, 0x7 + movs r3, 0x12 + bl sub_8072BD8 + adds r0, r5, 0 + movs r1, 0x3F + bl GetMonData + adds r1, r0, 0 + adds r0, r4, 0 + bl ConvertIntToDecimalString + adds r0, r4, 0 + movs r1, 0x1B + movs r2, 0x9 + movs r3, 0x12 + bl sub_8072BD8 + adds r0, r5, 0 + movs r1, 0x3D + bl GetMonData + adds r1, r0, 0 + adds r0, r4, 0 + bl ConvertIntToDecimalString + adds r0, r4, 0 + movs r1, 0x1B + movs r2, 0xB + movs r3, 0x12 + bl sub_8072BD8 + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0x18 + movs r3, 0x1 + bl sub_8072C14 + adds r4, r0, 0 + movs r0, 0xBA + strb r0, [r4] + adds r4, 0x1 + adds r0, r5, 0 + movs r1, 0x3A + bl GetMonData + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0x30 + movs r3, 0x1 + bl sub_8072C14 + ldr r0, _080A008C @ =gStringVar1 + movs r1, 0x7E + movs r2, 0x38 + movs r3, 0x1 + bl MenuPrint_PixelCoords + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A008C: .4byte gStringVar1 + thumb_func_end sub_809FF64 + + thumb_func_start sub_80A0090 +sub_80A0090: @ 80A0090 + push {r4,lr} + adds r4, r0, 0 + bl sub_809FEB8 + adds r0, r4, 0 + bl sub_809FF64 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A0090 + + thumb_func_start sub_80A00A4 +sub_80A00A4: @ 80A00A4 + push {lr} + movs r0, 0xB + movs r1, 0x4 + movs r2, 0x13 + movs r3, 0x5 + bl MenuZeroFillWindowRect + movs r0, 0x10 + movs r1, 0x7 + movs r2, 0x15 + movs r3, 0x8 + bl MenuZeroFillWindowRect + movs r0, 0x11 + movs r1, 0x9 + movs r2, 0x15 + movs r3, 0xC + bl MenuZeroFillWindowRect + movs r0, 0x1B + movs r1, 0x7 + movs r2, 0x1D + movs r3, 0xC + bl MenuZeroFillWindowRect + movs r0, 0x16 + movs r1, 0xE + movs r2, 0x1C + movs r3, 0xF + bl MenuZeroFillWindowRect + movs r0, 0x17 + movs r1, 0x10 + movs r2, 0x1C + movs r3, 0x11 + bl MenuZeroFillWindowRect + pop {r0} + bx r0 + thumb_func_end sub_80A00A4 + + thumb_func_start sub_80A00F4 +sub_80A00F4: @ 80A00F4 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r2, _080A012C @ =0x02018000 + adds r0, r2, 0 + adds r0, 0x7C + ldrh r0, [r0] + cmp r0, 0 + bne _080A010A + cmp r1, 0x4 + beq _080A0150 +_080A010A: + ldrb r0, [r2, 0xB] + cmp r0, 0x2 + bne _080A0138 + ldr r0, _080A0130 @ =gOtherText_Power2 + movs r1, 0xD + movs r2, 0x1 + movs r3, 0xF + bl sub_80A1FF8 + ldr r0, _080A0134 @ =gOtherText_Accuracy2 + movs r1, 0xD + movs r2, 0x1 + movs r3, 0x11 + bl sub_80A1FF8 + b _080A0150 + .align 2, 0 +_080A012C: .4byte 0x02018000 +_080A0130: .4byte gOtherText_Power2 +_080A0134: .4byte gOtherText_Accuracy2 +_080A0138: + ldr r0, _080A0154 @ =gOtherText_Appeal2 + movs r1, 0xD + movs r2, 0x1 + movs r3, 0xF + bl sub_80A1FF8 + ldr r0, _080A0158 @ =gOtherText_Jam2 + movs r1, 0xD + movs r2, 0x1 + movs r3, 0x11 + bl sub_80A1FF8 +_080A0150: + pop {r0} + bx r0 + .align 2, 0 +_080A0154: .4byte gOtherText_Appeal2 +_080A0158: .4byte gOtherText_Jam2 + thumb_func_end sub_80A00F4 + + thumb_func_start sub_80A015C +sub_80A015C: @ 80A015C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r8, r0 + movs r7, 0 +_080A0168: + mov r0, r8 + adds r1, r7, 0 + bl sub_809F760 + lsls r0, 16 + lsrs r6, r0, 16 + mov r0, r8 + adds r1, r7, 0 + bl sub_809F798 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + cmp r6, 0 + bne _080A01B8 + adds r0, r7, 0 + movs r1, 0x1 + bl sub_80A1918 + lsls r4, r7, 25 + movs r0, 0x80 + lsls r0, 19 + adds r4, r0 + lsrs r4, 24 + ldr r0, _080A01B0 @ =gOtherText_OneDash + movs r1, 0xD + movs r2, 0xF + adds r3, r4, 0 + bl sub_80A1FF8 + ldr r0, _080A01B4 @ =gOtherText_TwoDashes + movs r1, 0x1A + adds r2, r4, 0 + bl MenuPrint + b _080A0276 + .align 2, 0 +_080A01B0: .4byte gOtherText_OneDash +_080A01B4: .4byte gOtherText_TwoDashes +_080A01B8: + ldr r0, _080A01E0 @ =0x02018000 + ldrb r0, [r0, 0xB] + cmp r0, 0x2 + bne _080A01E8 + ldr r1, _080A01E4 @ =gBattleMoves + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x2] + lsls r4, r7, 1 + adds r2, r4, 0x4 + lsls r2, 27 + lsrs r2, 24 + movs r1, 0x57 + adds r3, r7, 0 + bl sub_80A198C + b _080A020C + .align 2, 0 +_080A01E0: .4byte 0x02018000 +_080A01E4: .4byte gBattleMoves +_080A01E8: + ldr r1, _080A0290 @ =gContestMoves + lsls r0, r6, 3 + adds r0, r1 + ldrb r0, [r0, 0x1] + lsls r0, 29 + lsrs r0, 5 + movs r1, 0x90 + lsls r1, 21 + adds r0, r1 + lsrs r0, 24 + lsls r4, r7, 1 + adds r2, r4, 0x4 + lsls r2, 27 + lsrs r2, 24 + movs r1, 0x57 + adds r3, r7, 0 + bl sub_80A198C +_080A020C: + movs r0, 0xD + muls r0, r6 + ldr r1, _080A0294 @ =gMoveNames + adds r0, r1 + adds r5, r4, 0x4 + lsls r5, 24 + lsrs r5, 24 + movs r1, 0xD + movs r2, 0xF + adds r3, r5, 0 + bl sub_80A1FF8 + movs r0, 0x1 + movs r1, 0x18 + adds r2, r5, 0 + bl GetStringCenterAlignXOffset + mov r0, r8 + movs r1, 0x15 + bl GetMonData + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r6, 0 + adds r2, r7, 0 + bl CalculatePPWithBonus + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080A0298 @ =gStringVar1 + adds r0, r1, 0 + mov r1, r9 + movs r2, 0xE + movs r3, 0x1 + bl sub_8072C14 + adds r1, r0, 0 + movs r0, 0xBA + strb r0, [r1] + adds r1, 0x1 + adds r0, r1, 0 + adds r1, r4, 0 + movs r2, 0x20 + movs r3, 0x1 + bl sub_8072C14 + ldr r0, _080A0298 @ =gStringVar1 + movs r1, 0x19 + adds r2, r5, 0 + bl MenuPrint +_080A0276: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x3 + bhi _080A0282 + b _080A0168 +_080A0282: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A0290: .4byte gContestMoves +_080A0294: .4byte gMoveNames +_080A0298: .4byte gStringVar1 + thumb_func_end sub_80A015C + + thumb_func_start sub_80A029C +sub_80A029C: @ 80A029C + push {r4,r5,lr} + ldr r1, _080A02B8 @ =0x02018000 + adds r4, r1, 0 + adds r4, 0x7C + ldrh r0, [r4] + cmp r0, 0 + bne _080A02C0 + ldr r0, _080A02BC @ =gOtherText_CancelNoTerminator + movs r1, 0xD + movs r2, 0xF + movs r3, 0xC + bl sub_80A1FF8 + b _080A037E + .align 2, 0 +_080A02B8: .4byte 0x02018000 +_080A02BC: .4byte gOtherText_CancelNoTerminator +_080A02C0: + ldrh r5, [r4] + ldrb r0, [r1, 0xB] + cmp r0, 0x2 + bne _080A02E4 + ldr r1, _080A02E0 @ =gBattleMoves + lsls r4, r5, 1 + adds r0, r4, r5 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x2] + movs r1, 0x57 + movs r2, 0x60 + movs r3, 0x4 + bl sub_80A198C + b _080A0304 + .align 2, 0 +_080A02E0: .4byte gBattleMoves +_080A02E4: + ldr r1, _080A0320 @ =gContestMoves + lsls r0, r5, 3 + adds r0, r1 + ldrb r0, [r0, 0x1] + lsls r0, 29 + lsrs r0, 5 + movs r1, 0x90 + lsls r1, 21 + adds r0, r1 + lsrs r0, 24 + movs r1, 0x57 + movs r2, 0x60 + movs r3, 0x4 + bl sub_80A198C + lsls r4, r5, 1 +_080A0304: + ldr r0, _080A0324 @ =0x02018000 + ldrb r0, [r0, 0xB] + cmp r0, 0x2 + bne _080A032C + movs r0, 0xD + muls r0, r5 + ldr r1, _080A0328 @ =gMoveNames + adds r0, r1 + movs r1, 0xA + movs r2, 0xF + movs r3, 0xC + bl sub_80A1FF8 + b _080A033E + .align 2, 0 +_080A0320: .4byte gContestMoves +_080A0324: .4byte 0x02018000 +_080A0328: .4byte gMoveNames +_080A032C: + movs r0, 0xD + muls r0, r5 + ldr r1, _080A0384 @ =gMoveNames + adds r0, r1 + movs r1, 0x9 + movs r2, 0xF + movs r3, 0xC + bl sub_80A1FF8 +_080A033E: + movs r0, 0x1 + movs r1, 0x18 + movs r2, 0xC + bl GetStringCenterAlignXOffset + ldr r2, _080A0388 @ =gStringVar1 + ldr r1, _080A038C @ =gBattleMoves + adds r0, r4, r5 + lsls r0, 2 + adds r0, r1 + ldrb r4, [r0, 0x4] + adds r0, r2, 0 + adds r1, r4, 0 + movs r2, 0xE + movs r3, 0x1 + bl sub_8072C14 + adds r2, r0, 0 + movs r0, 0xBA + strb r0, [r2] + adds r2, 0x1 + adds r0, r2, 0 + adds r1, r4, 0 + movs r2, 0x20 + movs r3, 0x1 + bl sub_8072C14 + ldr r0, _080A0388 @ =gStringVar1 + movs r1, 0x19 + movs r2, 0xC + bl MenuPrint +_080A037E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A0384: .4byte gMoveNames +_080A0388: .4byte gStringVar1 +_080A038C: .4byte gBattleMoves + thumb_func_end sub_80A029C + + thumb_func_start sub_80A0390 +sub_80A0390: @ 80A0390 + push {r4,lr} + movs r4, 0 +_080A0394: + lsls r3, r4, 1 + adds r1, r3, 0x4 + lsls r1, 24 + lsrs r1, 24 + adds r3, 0x5 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0xF + movs r2, 0x1C + bl MenuZeroFillWindowRect + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080A0394 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A0390 + + thumb_func_start sub_80A03BC +sub_80A03BC: @ 80A03BC + push {lr} + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x4 + beq _080A03D0 + bl sub_809F760 + lsls r0, 16 + lsrs r1, r0, 16 + b _080A03E0 +_080A03D0: + ldr r0, _080A03E8 @ =0x02018000 + adds r2, r0, 0 + adds r2, 0x7C + ldrh r0, [r2] + ldr r1, _080A03EC @ =0x0000ffff + cmp r0, 0 + beq _080A03E0 + adds r1, r0, 0 +_080A03E0: + adds r0, r1, 0 + pop {r1} + bx r1 + .align 2, 0 +_080A03E8: .4byte 0x02018000 +_080A03EC: .4byte 0x0000ffff + thumb_func_end sub_80A03BC + + thumb_func_start sub_80A03F0 +sub_80A03F0: @ 80A03F0 + push {lr} + ldrb r1, [r1] + bl sub_80A03BC + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, _080A0414 @ =0x02018000 + ldrb r0, [r0, 0xB] + cmp r0, 0x2 + bne _080A041C + adds r0, r1, 0 + bl sub_80A04CC + ldr r0, _080A0418 @ =0x0000ffff + bl sub_80A057C + b _080A0422 + .align 2, 0 +_080A0414: .4byte 0x02018000 +_080A0418: .4byte 0x0000ffff +_080A041C: + adds r0, r1, 0 + bl sub_80A057C +_080A0422: + pop {r0} + bx r0 + thumb_func_end sub_80A03F0 + + thumb_func_start sub_80A0428 +sub_80A0428: @ 80A0428 + push {r4-r6,lr} + adds r5, r0, 0 + adds r6, r1, 0 + ldrb r1, [r6] + bl sub_80A03BC + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0xB + movs r1, 0xF + movs r2, 0x1C + movs r3, 0x12 + bl MenuZeroFillWindowRect + ldr r0, _080A0454 @ =0x02018000 + ldrb r0, [r0, 0xB] + cmp r0, 0x2 + bne _080A0458 + adds r0, r4, 0 + bl sub_80A046C + b _080A045E + .align 2, 0 +_080A0454: .4byte 0x02018000 +_080A0458: + adds r0, r4, 0 + bl sub_80A0498 +_080A045E: + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_80A03F0 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A0428 + + thumb_func_start sub_80A046C +sub_80A046C: @ 80A046C + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, _080A0490 @ =0x0000ffff + cmp r1, r0 + beq _080A048A + ldr r0, _080A0494 @ =gMoveDescriptions + subs r1, 0x1 + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + movs r1, 0xB + movs r2, 0xF + bl MenuPrint +_080A048A: + pop {r0} + bx r0 + .align 2, 0 +_080A0490: .4byte 0x0000ffff +_080A0494: .4byte gMoveDescriptions + thumb_func_end sub_80A046C + + thumb_func_start sub_80A0498 +sub_80A0498: @ 80A0498 + push {lr} + lsls r0, 16 + lsrs r3, r0, 16 + ldr r0, _080A04C0 @ =0x0000ffff + cmp r3, r0 + beq _080A04BC + ldr r2, _080A04C4 @ =gUnknown_083CADD4 + ldr r1, _080A04C8 @ =gContestMoves + lsls r0, r3, 3 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + movs r1, 0xB + movs r2, 0xF + bl MenuPrint +_080A04BC: + pop {r0} + bx r0 + .align 2, 0 +_080A04C0: .4byte 0x0000ffff +_080A04C4: .4byte gUnknown_083CADD4 +_080A04C8: .4byte gContestMoves + thumb_func_end sub_80A0498 + + thumb_func_start sub_80A04CC +sub_80A04CC: @ 80A04CC + push {r4,r5,lr} + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, _080A0504 @ =0x0000ffff + cmp r4, r0 + beq _080A0572 + ldr r2, _080A0508 @ =gBattleMoves + lsls r1, r4, 1 + adds r0, r1, r4 + lsls r0, 2 + adds r2, r0, r2 + ldrb r0, [r2, 0x1] + adds r5, r1, 0 + cmp r0, 0x1 + bhi _080A0514 + ldr r0, _080A050C @ =gStringVar1 + ldr r1, _080A0510 @ =gOtherText_ThreeDashes2 + movs r2, 0x15 + movs r3, 0x1 + bl sub_8072C74 + ldr r0, _080A050C @ =gStringVar1 + movs r1, 0x7 + movs r2, 0xF + bl MenuPrint + b _080A052A + .align 2, 0 +_080A0504: .4byte 0x0000ffff +_080A0508: .4byte gBattleMoves +_080A050C: .4byte gStringVar1 +_080A0510: .4byte gOtherText_ThreeDashes2 +_080A0514: + ldr r0, _080A0550 @ =gStringVar1 + ldrb r1, [r2, 0x1] + movs r2, 0x15 + movs r3, 0x1 + bl sub_8072C14 + ldr r0, _080A0550 @ =gStringVar1 + movs r1, 0x7 + movs r2, 0xF + bl MenuPrint +_080A052A: + ldr r0, _080A0554 @ =gBattleMoves + adds r1, r5, r4 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x3] + cmp r0, 0 + bne _080A055C + ldr r0, _080A0550 @ =gStringVar1 + ldr r1, _080A0558 @ =gOtherText_ThreeDashes2 + movs r2, 0x15 + movs r3, 0x1 + bl sub_8072C74 + ldr r0, _080A0550 @ =gStringVar1 + movs r1, 0x7 + movs r2, 0x11 + bl MenuPrint + b _080A0572 + .align 2, 0 +_080A0550: .4byte gStringVar1 +_080A0554: .4byte gBattleMoves +_080A0558: .4byte gOtherText_ThreeDashes2 +_080A055C: + ldr r0, _080A0578 @ =gStringVar1 + ldrb r1, [r1, 0x3] + movs r2, 0x15 + movs r3, 0x1 + bl sub_8072C14 + ldr r0, _080A0578 @ =gStringVar1 + movs r1, 0x7 + movs r2, 0x11 + bl MenuPrint +_080A0572: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A0578: .4byte gStringVar1 + thumb_func_end sub_80A04CC + + thumb_func_start sub_80A057C +sub_80A057C: @ 80A057C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _080A0648 @ =0x06006800 + mov r8, r0 + ldr r0, _080A064C @ =0x0000ffff + cmp r5, r0 + beq _080A063A + ldr r1, _080A0650 @ =gContestEffects + ldr r2, _080A0654 @ =gContestMoves + lsls r3, r5, 3 + adds r0, r3, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldrb r4, [r0, 0x1] + mov r10, r2 + mov r9, r3 + cmp r4, 0xFF + beq _080A05B8 + adds r0, r4, 0 + movs r1, 0xA + bl __udivsi3 + lsls r0, 24 + lsrs r4, r0, 24 +_080A05B8: + movs r2, 0 + movs r7, 0x3 + movs r6, 0xF3 + lsls r6, 2 +_080A05C0: + ldr r3, _080A0658 @ =0x00001039 + cmp r4, 0xFF + beq _080A05CC + cmp r2, r4 + bcs _080A05CC + adds r3, 0x1 +_080A05CC: + lsrs r0, r2, 2 + lsls r0, 5 + adds r1, r2, 0 + ands r1, r7 + adds r1, r0 + lsls r1, 1 + add r1, r8 + adds r1, r6 + strh r3, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x7 + bls _080A05C0 + ldr r0, _080A064C @ =0x0000ffff + cmp r5, r0 + beq _080A063A + mov r0, r9 + add r0, r10 + ldrb r0, [r0] + lsls r0, 2 + ldr r1, _080A0650 @ =gContestEffects + adds r0, r1 + ldrb r4, [r0, 0x2] + cmp r4, 0xFF + beq _080A060C + adds r0, r4, 0 + movs r1, 0xA + bl __udivsi3 + lsls r0, 24 + lsrs r4, r0, 24 +_080A060C: + movs r2, 0 + movs r6, 0x3 + ldr r5, _080A065C @ =0x0000044c +_080A0612: + ldr r3, _080A0660 @ =0x0000103d + cmp r4, 0xFF + beq _080A061E + cmp r2, r4 + bcs _080A061E + subs r3, 0x1 +_080A061E: + lsrs r0, r2, 2 + lsls r0, 5 + adds r1, r2, 0 + ands r1, r6 + adds r1, r0 + lsls r1, 1 + add r1, r8 + adds r1, r5 + strh r3, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x7 + bls _080A0612 +_080A063A: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A0648: .4byte 0x06006800 +_080A064C: .4byte 0x0000ffff +_080A0650: .4byte gContestEffects +_080A0654: .4byte gContestMoves +_080A0658: .4byte 0x00001039 +_080A065C: .4byte 0x0000044c +_080A0660: .4byte 0x0000103d + thumb_func_end sub_80A057C + + .section .text_80A0958 + + thumb_func_start sub_80A0958 +sub_80A0958: @ 80A0958 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + mov r8, r0 + movs r1, 0xB + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r2, _080A0A24 @ =gStringVar1 + adds r0, r2, 0 + movs r1, 0xD + bl sub_80A1E58 + adds r2, r0, 0 + movs r6, 0xFC + strb r6, [r2] + movs r0, 0x11 + strb r0, [r2, 0x1] + movs r0, 0x7 + strb r0, [r2, 0x2] + movs r0, 0xBA + strb r0, [r2, 0x3] + adds r2, 0x4 + movs r0, 0xB + adds r1, r4, 0 + muls r1, r0 + ldr r0, _080A0A28 @ =gSpeciesNames + adds r1, r0 + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + strb r6, [r2] + movs r0, 0x13 + mov r10, r0 + strb r0, [r2, 0x1] + movs r0, 0x50 + strb r0, [r2, 0x2] + movs r0, 0xFF + mov r9, r0 + strb r0, [r2, 0x3] + ldr r5, _080A0A24 @ =gStringVar1 + adds r0, r5, 0 + movs r1, 0 + movs r2, 0xE + bl MenuPrint + movs r0, 0x3 + movs r1, 0x10 + movs r2, 0x9 + movs r3, 0x11 + bl MenuZeroFillWindowRect + mov r0, r8 + movs r1, 0x38 + bl GetMonData + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0xD + bl sub_80A1E58 + adds r2, r0, 0 + movs r0, 0x34 + strb r0, [r2] + adds r2, 0x1 + adds r0, r2, 0 + adds r1, r4, 0 + bl ConvertIntToDecimalString + adds r2, r0, 0 + strb r6, [r2] + mov r0, r10 + strb r0, [r2, 0x1] + movs r0, 0x20 + strb r0, [r2, 0x2] + mov r0, r9 + strb r0, [r2, 0x3] + adds r0, r5, 0 + movs r1, 0x3 + movs r2, 0x10 + bl MenuPrint + mov r0, r8 + movs r1, 0x7 + movs r2, 0x10 + bl sub_80A0A2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A0A24: .4byte gStringVar1 +_080A0A28: .4byte gSpeciesNames + thumb_func_end sub_80A0958 + + thumb_func_start sub_80A0A2C +sub_80A0A2C: @ 80A0A2C + push {r4-r6,lr} + adds r6, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + lsls r2, 24 + lsrs r4, r2, 24 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x20 + beq _080A0A84 + cmp r0, 0x1D + beq _080A0A84 + adds r0, r6, 0 + bl GetMonGender + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _080A0A6E + cmp r0, 0xFE + beq _080A0A78 + adds r3, r4, 0x1 + lsls r3, 24 + lsrs r3, 24 + adds r0, r5, 0 + adds r1, r4, 0 + adds r2, r5, 0 + bl MenuZeroFillWindowRect + b _080A0A84 +_080A0A6E: + ldr r0, _080A0A74 @ =gOtherText_MaleSymbol2 + movs r1, 0xB + b _080A0A7C + .align 2, 0 +_080A0A74: .4byte gOtherText_MaleSymbol2 +_080A0A78: + ldr r0, _080A0A8C @ =gOtherText_FemaleSymbolAndLv + movs r1, 0xC +_080A0A7C: + adds r2, r5, 0 + adds r3, r4, 0 + bl sub_80A1FF8 +_080A0A84: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A0A8C: .4byte gOtherText_FemaleSymbolAndLv + thumb_func_end sub_80A0A2C + + thumb_func_start sub_80A0A90 +sub_80A0A90: @ 80A0A90 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x32 + bl GetMonData + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x33 + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x34 + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x35 + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x36 + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x43 + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x44 + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x45 + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x46 + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x47 + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x48 + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x49 + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x4A + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x4B + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x4C + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x4D + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x4E + bl GetMonData + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80A0A90 + + thumb_func_start sub_80A0B88 +sub_80A0B88: @ 80A0B88 + push {r4,r5,lr} + bl sub_80A0A90 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080A0BA8 + ldr r0, _080A0BA0 @ =gStringVar1 + ldr r1, _080A0BA4 @ =gOtherText_None + bl StringCopy + b _080A0BD8 + .align 2, 0 +_080A0BA0: .4byte gStringVar1 +_080A0BA4: .4byte gOtherText_None +_080A0BA8: + ldr r4, _080A0BE8 @ =gStringVar1 + ldr r1, _080A0BEC @ =gOtherText_Ribbons00 + adds r0, r4, 0 + bl StringCopy + adds r0, r4, 0 + bl StringLength + lsls r0, 24 + lsrs r0, 24 + subs r4, 0x2 + adds r0, r4 + movs r1, 0xFC + strb r1, [r0] + movs r1, 0x14 + strb r1, [r0, 0x1] + movs r1, 0x6 + strb r1, [r0, 0x2] + adds r0, 0x3 + adds r1, r5, 0 + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN +_080A0BD8: + ldr r0, _080A0BF0 @ =gUnknown_083C15AE + movs r1, 0x15 + movs r2, 0x4 + bl MenuPrint + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A0BE8: .4byte gStringVar1 +_080A0BEC: .4byte gOtherText_Ribbons00 +_080A0BF0: .4byte gUnknown_083C15AE + thumb_func_end sub_80A0B88 + + thumb_func_start sub_80A0BF4 +sub_80A0BF4: @ 80A0BF4 + push {r4-r7,lr} + lsls r0, 16 + lsrs r5, r0, 16 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r6, r2, 24 + cmp r5, 0xAF + bne _080A0C48 + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A0C48 + bl IsLinkDoubleBattle + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A0C48 + ldr r0, _080A0C40 @ =0x02018000 + ldrb r0, [r0, 0x9] + cmp r0, 0x1 + beq _080A0C2E + cmp r0, 0x4 + beq _080A0C2E + cmp r0, 0x5 + bne _080A0C48 +_080A0C2E: + ldr r4, _080A0C44 @ =gStringVar1 + adds r0, r5, 0 + bl ItemId_GetItem + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + b _080A0C68 + .align 2, 0 +_080A0C40: .4byte 0x02018000 +_080A0C44: .4byte gStringVar1 +_080A0C48: + cmp r5, 0 + bne _080A0C60 + ldr r0, _080A0C58 @ =gStringVar1 + ldr r1, _080A0C5C @ =gOtherText_None + bl StringCopy + b _080A0C68 + .align 2, 0 +_080A0C58: .4byte gStringVar1 +_080A0C5C: .4byte gOtherText_None +_080A0C60: + ldr r1, _080A0C78 @ =gStringVar1 + adds r0, r5, 0 + bl CopyItemName +_080A0C68: + ldr r0, _080A0C7C @ =gUnknown_083C15B4 + adds r1, r7, 0 + adds r2, r6, 0 + bl MenuPrint + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A0C78: .4byte gStringVar1 +_080A0C7C: .4byte gUnknown_083C15B4 + thumb_func_end sub_80A0BF4 + + thumb_func_start sub_80A0C80 +sub_80A0C80: @ 80A0C80 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r4, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp] + movs r0, 0 + mov r9, r0 + movs r6, 0 + movs r7, 0 + adds r0, r4, 0 + movs r1, 0x19 + bl GetMonData + mov r8, r0 + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + cmp r5, 0x63 + bhi _080A0D14 + ldr r3, _080A0D4C @ =gExperienceTables + adds r1, r5, 0x1 + lsls r1, 2 + ldr r2, _080A0D50 @ =gBaseStats + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + adds r0, r2 + ldrb r2, [r0, 0x13] + movs r0, 0xCA + lsls r0, 1 + muls r2, r0 + adds r1, r2 + adds r1, r3 + ldr r1, [r1] + mov r0, r8 + subs r0, r1, r0 + mov r9, r0 + lsls r0, r5, 2 + adds r0, r2 + adds r0, r3 + ldr r0, [r0] + subs r1, r0 + mov r2, r8 + subs r4, r2, r0 + lsls r0, r4, 6 + bl __udivsi3 + adds r6, r0, 0 + movs r7, 0 + adds r0, r7, 0 + orrs r0, r6 + cmp r0, 0 + bne _080A0D14 + cmp r4, 0 + beq _080A0D14 + movs r6, 0x1 + movs r7, 0 +_080A0D14: + ldr r4, _080A0D54 @ =gStringVar1 + adds r0, r4, 0 + mov r1, r9 + bl ConvertIntToDecimalString + mov r1, r10 + adds r1, 0x6 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + ldr r2, [sp] + bl MenuPrint_RightAligned + ldr r0, _080A0D58 @ =0x06004caa + mov r9, r0 + movs r2, 0 + mov r12, r2 + ldr r0, _080A0D5C @ =0x00002062 + mov r8, r0 +_080A0D3A: + cmp r7, 0 + bgt _080A0D46 + cmp r7, 0 + bne _080A0D64 + cmp r6, 0x7 + bls _080A0D64 +_080A0D46: + ldr r1, _080A0D60 @ =0x0000206a + b _080A0D96 + .align 2, 0 +_080A0D4C: .4byte gExperienceTables +_080A0D50: .4byte gBaseStats +_080A0D54: .4byte gStringVar1 +_080A0D58: .4byte 0x06004caa +_080A0D5C: .4byte 0x00002062 +_080A0D60: .4byte 0x0000206a +_080A0D64: + adds r5, r7, 0 + adds r4, r6, 0 + cmp r7, 0 + bge _080A0D74 + movs r4, 0x7 + movs r5, 0 + adds r4, r6 + adcs r5, r7 +_080A0D74: + lsls r3, r5, 29 + lsrs r2, r4, 3 + adds r0, r3, 0 + orrs r0, r2 + asrs r1, r5, 3 + lsrs r5, r0, 29 + lsls r4, r1, 3 + adds r3, r5, 0 + orrs r3, r4 + lsls r2, r0, 3 + adds r1, r7, 0 + adds r0, r6, 0 + subs r0, r2 + sbcs r1, r3 + add r0, r8 + lsls r0, 16 + lsrs r1, r0, 16 +_080A0D96: + mov r2, r12 + lsls r0, r2, 1 + add r0, r9 + strh r1, [r0] + movs r0, 0x8 + negs r0, r0 + asrs r1, r0, 31 + adds r6, r0 + adcs r7, r1 + cmp r7, 0 + bge _080A0DB0 + movs r6, 0 + movs r7, 0 +_080A0DB0: + mov r0, r12 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + cmp r0, 0x7 + bls _080A0D3A + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A0C80 + + thumb_func_start sub_80A0DD0 +sub_80A0DD0: @ 80A0DD0 + push {r4,r5,lr} + ldr r2, _080A0E3C @ =gStringVar1 + movs r5, 0xFC + strb r5, [r2] + movs r0, 0x12 + strb r0, [r2, 0x1] + movs r0, 0x2 + strb r0, [r2, 0x2] + adds r2, 0x3 + adds r0, r2, 0 + movs r1, 0xD + bl sub_80A1E58 + adds r2, r0, 0 + ldr r1, _080A0E40 @ =gUnknown_083C1068 + ldr r4, _080A0E44 @ =0x02018000 + adds r0, r4, 0 + adds r0, 0x7E + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + strb r5, [r2] + movs r0, 0x13 + strb r0, [r2, 0x1] + movs r0, 0x58 + strb r0, [r2, 0x2] + movs r0, 0xFF + strb r0, [r2, 0x3] + ldr r0, _080A0E3C @ =gStringVar1 + movs r1, 0 + movs r2, 0 + bl MenuPrint + adds r4, 0x7F + ldrb r0, [r4] + cmp r0, 0 + beq _080A0E48 + movs r0, 0x5 + movs r1, 0x17 + movs r2, 0 + bl GetStringCenterAlignXOffset + movs r0, 0x6 + movs r1, 0x18 + movs r2, 0 + bl GetStringCenterAlignXOffset + b _080A0E54 + .align 2, 0 +_080A0E3C: .4byte gStringVar1 +_080A0E40: .4byte gUnknown_083C1068 +_080A0E44: .4byte 0x02018000 +_080A0E48: + movs r0, 0x17 + movs r1, 0 + movs r2, 0x18 + movs r3, 0x1 + bl MenuZeroFillWindowRect +_080A0E54: + ldr r2, _080A0E98 @ =gStringVar1 + adds r0, r2, 0 + movs r1, 0xD + bl sub_80A1E58 + adds r2, r0, 0 + ldr r1, _080A0E9C @ =gUnknown_083C1068 + ldr r0, _080A0EA0 @ =0x02018000 + adds r0, 0x7F + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + movs r0, 0xFC + strb r0, [r2] + movs r0, 0x13 + strb r0, [r2, 0x1] + movs r0, 0x28 + strb r0, [r2, 0x2] + movs r0, 0xFF + strb r0, [r2, 0x3] + ldr r0, _080A0E98 @ =gStringVar1 + movs r1, 0x19 + movs r2, 0 + bl MenuPrint + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A0E98: .4byte gStringVar1 +_080A0E9C: .4byte gUnknown_083C1068 +_080A0EA0: .4byte 0x02018000 + thumb_func_end sub_80A0DD0 + + thumb_func_start sub_80A0EA4 +sub_80A0EA4: @ 80A0EA4 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r5, _080A0ECC @ =0x0600e444 + ldr r6, _080A0ED0 @ =0x0600ec44 + movs r1, 0 + bl CheckPartyPokerus + lsls r0, 24 + cmp r0, 0 + bne _080A0ED4 + adds r0, r4, 0 + movs r1, 0 + bl CheckPartyHasHadPokerus + lsls r0, 24 + cmp r0, 0 + beq _080A0ED4 + movs r0, 0x2C + b _080A0ED8 + .align 2, 0 +_080A0ECC: .4byte 0x0600e444 +_080A0ED0: .4byte 0x0600ec44 +_080A0ED4: + ldr r1, _080A0EE4 @ =0x0000081a + adds r0, r1, 0 +_080A0ED8: + strh r0, [r5] + strh r0, [r6] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A0EE4: .4byte 0x0000081a + thumb_func_end sub_80A0EA4 + + thumb_func_start sub_80A0EE8 +sub_80A0EE8: @ 80A0EE8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + movs r3, 0 + ldr r6, _080A0F24 @ =0x02018000 + adds r5, r6, 0 + ldr r1, _080A0F28 @ =0x00004040 + mov r8, r1 + ldr r2, _080A0F2C @ =0x0000404a + mov r10, r2 +_080A0F02: + adds r0, r5, 0 + adds r0, 0x75 + ldrb r0, [r0] + cmp r3, r0 + bcs _080A0F30 + lsls r1, r3, 1 + lsls r0, r3, 2 + add r0, sp + mov r4, r8 + strh r4, [r0] + adds r1, 0x1 + lsls r1, 1 + mov r7, sp + adds r0, r7, r1 + strh r4, [r0] + b _080A0FE2 + .align 2, 0 +_080A0F24: .4byte 0x02018000 +_080A0F28: .4byte 0x00004040 +_080A0F2C: .4byte 0x0000404a +_080A0F30: + movs r0, 0x76 + adds r0, r6 + mov r12, r0 + ldrb r1, [r0] + cmp r3, r1 + bls _080A0F52 + lsls r1, r3, 1 + lsls r0, r3, 2 + add r0, sp + mov r2, r10 + strh r2, [r0] + adds r1, 0x1 + lsls r1, 1 + mov r4, sp + adds r0, r4, r1 + strh r2, [r0] + b _080A0FE2 +_080A0F52: + ldrb r4, [r5, 0xB] + cmp r3, r4 + bcs _080A0F6E + lsls r1, r3, 1 + lsls r0, r3, 2 + mov r7, sp + adds r2, r7, r0 + ldr r0, _080A0F88 @ =0x00004046 + strh r0, [r2] + adds r1, 0x1 + lsls r1, 1 + add r1, sp + adds r0, 0x1 + strh r0, [r1] +_080A0F6E: + cmp r3, r4 + bne _080A0FA6 + mov r0, r12 + ldrb r0, [r0] + cmp r3, r0 + beq _080A0F90 + lsls r1, r3, 1 + lsls r0, r3, 2 + mov r4, sp + adds r2, r4, r0 + ldr r0, _080A0F8C @ =0x00004041 + b _080A0F9A + .align 2, 0 +_080A0F88: .4byte 0x00004046 +_080A0F8C: .4byte 0x00004041 +_080A0F90: + lsls r1, r3, 1 + lsls r0, r3, 2 + mov r7, sp + adds r2, r7, r0 + ldr r0, _080A0FC4 @ =0x0000404b +_080A0F9A: + strh r0, [r2] + adds r1, 0x1 + lsls r1, 1 + add r1, sp + adds r0, 0x1 + strh r0, [r1] +_080A0FA6: + ldrb r0, [r5, 0xB] + cmp r3, r0 + bls _080A0FE2 + adds r0, r6, 0 + adds r0, 0x76 + ldrb r0, [r0] + cmp r3, r0 + beq _080A0FCC + lsls r1, r3, 1 + lsls r0, r3, 2 + mov r4, sp + adds r2, r4, r0 + ldr r0, _080A0FC8 @ =0x00004043 + b _080A0FD6 + .align 2, 0 +_080A0FC4: .4byte 0x0000404b +_080A0FC8: .4byte 0x00004043 +_080A0FCC: + lsls r1, r3, 1 + lsls r0, r3, 2 + mov r7, sp + adds r2, r7, r0 + ldr r0, _080A1034 @ =0x00004048 +_080A0FD6: + strh r0, [r2] + adds r1, 0x1 + lsls r1, 1 + add r1, sp + adds r0, 0x1 + strh r0, [r1] +_080A0FE2: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bls _080A0F02 + ldr r1, _080A1038 @ =0x0600e016 + ldr r0, _080A103C @ =0x040000d4 + mov r2, sp + str r2, [r0] + str r1, [r0, 0x4] + ldr r1, _080A1040 @ =0x80000008 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + movs r3, 0 +_080A0FFE: + lsls r0, r3, 1 + mov r4, sp + adds r1, r4, r0 + ldrh r0, [r1] + adds r0, 0x10 + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x7 + bls _080A0FFE + ldr r1, _080A1044 @ =0x0600e056 + ldr r0, _080A103C @ =0x040000d4 + str r4, [r0] + str r1, [r0, 0x4] + ldr r1, _080A1040 @ =0x80000008 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A1034: .4byte 0x00004048 +_080A1038: .4byte 0x0600e016 +_080A103C: .4byte 0x040000d4 +_080A1040: .4byte 0x80000008 +_080A1044: .4byte 0x0600e056 + thumb_func_end sub_80A0EE8 + + thumb_func_start sub_80A1048 +sub_80A1048: @ 80A1048 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r0, 2 + add r0, r8 + lsls r0, 3 + ldr r1, _080A10A0 @ =gTasks + 0x8 + adds r6, r0, r1 + ldrh r0, [r6] + ldrh r1, [r6, 0x2] + adds r0, r1 + strh r0, [r6, 0x2] + lsls r0, 16 + cmp r0, 0 + bne _080A106E + b _080A1224 +_080A106E: + movs r5, 0x2 + ldrsh r2, [r6, r5] + ldr r0, _080A10A4 @ =0x0000024a + subs r0, r2 + lsls r0, 1 + ldr r1, _080A10A8 @ =gUnknown_08E73508 + adds r4, r0, r1 + ldr r5, _080A10AC @ =0x0600e480 + lsls r2, 1 + movs r0, 0x80 + lsls r0, 5 + adds r7, r1, 0 + cmp r2, r0 + bhi _080A10B4 + ldr r0, _080A10B0 @ =0x040000d4 + str r4, [r0] + str r5, [r0, 0x4] + lsrs r1, r2, 1 + movs r2, 0x80 + lsls r2, 24 + orrs r1, r2 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + b _080A10E0 + .align 2, 0 +_080A10A0: .4byte gTasks + 0x8 +_080A10A4: .4byte 0x0000024a +_080A10A8: .4byte gUnknown_08E73508 +_080A10AC: .4byte 0x0600e480 +_080A10B0: .4byte 0x040000d4 +_080A10B4: + ldr r3, _080A110C @ =0x040000d4 + str r4, [r3] + str r5, [r3, 0x4] + ldr r0, _080A1110 @ =0x80000800 + str r0, [r3, 0x8] + ldr r0, [r3, 0x8] + movs r0, 0x80 + lsls r0, 5 + adds r4, r0 + adds r5, r0 + ldr r1, _080A1114 @ =0xfffff000 + adds r2, r1 + cmp r2, r0 + bhi _080A10B4 + str r4, [r3] + str r5, [r3, 0x4] + lsrs r0, r2, 1 + movs r1, 0x80 + lsls r1, 24 + orrs r0, r1 + str r0, [r3, 0x8] + ldr r0, [r3, 0x8] +_080A10E0: + movs r5, 0x2 + ldrsh r0, [r6, r5] + ldr r1, _080A1118 @ =0x0000026a + subs r1, r0 + lsls r1, 1 + adds r3, r1, r7 + ldr r4, _080A111C @ =0x0600e4c0 + lsls r1, r0, 1 + movs r0, 0x80 + lsls r0, 5 + cmp r1, r0 + bhi _080A1120 + ldr r0, _080A110C @ =0x040000d4 + str r3, [r0] + str r4, [r0, 0x4] + lsrs r1, 1 + movs r2, 0x80 + lsls r2, 24 + orrs r1, r2 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + b _080A114C + .align 2, 0 +_080A110C: .4byte 0x040000d4 +_080A1110: .4byte 0x80000800 +_080A1114: .4byte 0xfffff000 +_080A1118: .4byte 0x0000026a +_080A111C: .4byte 0x0600e4c0 +_080A1120: + ldr r2, _080A1178 @ =0x040000d4 + str r3, [r2] + str r4, [r2, 0x4] + ldr r0, _080A117C @ =0x80000800 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + movs r0, 0x80 + lsls r0, 5 + adds r3, r0 + adds r4, r0 + ldr r5, _080A1180 @ =0xfffff000 + adds r1, r5 + cmp r1, r0 + bhi _080A1120 + str r3, [r2] + str r4, [r2, 0x4] + lsrs r0, r1, 1 + movs r1, 0x80 + lsls r1, 24 + orrs r0, r1 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] +_080A114C: + movs r1, 0x2 + ldrsh r0, [r6, r1] + ldr r1, _080A1184 @ =0x0000024a + subs r1, r0 + lsls r1, 1 + adds r3, r1, r7 + ldr r4, _080A1188 @ =0x0600ec80 + lsls r1, r0, 1 + movs r0, 0x80 + lsls r0, 5 + cmp r1, r0 + bhi _080A118C + ldr r0, _080A1178 @ =0x040000d4 + str r3, [r0] + str r4, [r0, 0x4] + lsrs r1, 1 + movs r2, 0x80 + lsls r2, 24 + orrs r1, r2 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + b _080A11B8 + .align 2, 0 +_080A1178: .4byte 0x040000d4 +_080A117C: .4byte 0x80000800 +_080A1180: .4byte 0xfffff000 +_080A1184: .4byte 0x0000024a +_080A1188: .4byte 0x0600ec80 +_080A118C: + ldr r2, _080A11E4 @ =0x040000d4 + str r3, [r2] + str r4, [r2, 0x4] + ldr r0, _080A11E8 @ =0x80000800 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + movs r0, 0x80 + lsls r0, 5 + adds r3, r0 + adds r4, r0 + ldr r5, _080A11EC @ =0xfffff000 + adds r1, r5 + cmp r1, r0 + bhi _080A118C + str r3, [r2] + str r4, [r2, 0x4] + lsrs r0, r1, 1 + movs r1, 0x80 + lsls r1, 24 + orrs r0, r1 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] +_080A11B8: + movs r1, 0x2 + ldrsh r0, [r6, r1] + ldr r1, _080A11F0 @ =0x0000026a + subs r1, r0 + lsls r1, 1 + adds r3, r1, r7 + ldr r4, _080A11F4 @ =0x0600ecc0 + lsls r1, r0, 1 + movs r0, 0x80 + lsls r0, 5 + cmp r1, r0 + bhi _080A11F8 + ldr r0, _080A11E4 @ =0x040000d4 + str r3, [r0] + str r4, [r0, 0x4] + lsrs r1, 1 + movs r2, 0x80 + lsls r2, 24 + orrs r1, r2 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + b _080A1224 + .align 2, 0 +_080A11E4: .4byte 0x040000d4 +_080A11E8: .4byte 0x80000800 +_080A11EC: .4byte 0xfffff000 +_080A11F0: .4byte 0x0000026a +_080A11F4: .4byte 0x0600ecc0 +_080A11F8: + ldr r2, _080A12B0 @ =0x040000d4 + str r3, [r2] + str r4, [r2, 0x4] + ldr r0, _080A12B4 @ =0x80000800 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + movs r0, 0x80 + lsls r0, 5 + adds r3, r0 + adds r4, r0 + ldr r5, _080A12B8 @ =0xfffff000 + adds r1, r5 + cmp r1, r0 + bhi _080A11F8 + str r3, [r2] + str r4, [r2, 0x4] + lsrs r0, r1, 1 + movs r1, 0x80 + lsls r1, 24 + orrs r0, r1 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] +_080A1224: + ldrb r4, [r6, 0x2] + ldrh r7, [r6, 0x2] + ldrh r0, [r6] + mov r12, r0 + cmp r4, 0x9 + bhi _080A1272 + adds r3, r6, 0x4 + ldr r2, _080A12B0 @ =0x040000d4 + ldr r5, _080A12BC @ =0x80000001 +_080A1236: + lsls r1, r4, 1 + ldr r6, _080A12C0 @ =0x0600e480 + adds r0, r1, r6 + str r3, [r2] + str r0, [r2, 0x4] + str r5, [r2, 0x8] + ldr r0, [r2, 0x8] + adds r6, 0x40 + adds r0, r1, r6 + str r3, [r2] + str r0, [r2, 0x4] + str r5, [r2, 0x8] + ldr r0, [r2, 0x8] + ldr r6, _080A12C4 @ =0x0600ec80 + adds r0, r1, r6 + str r3, [r2] + str r0, [r2, 0x4] + str r5, [r2, 0x8] + ldr r0, [r2, 0x8] + ldr r0, _080A12C8 @ =0x0600ecc0 + adds r1, r0 + str r3, [r2] + str r1, [r2, 0x4] + str r5, [r2, 0x8] + ldr r0, [r2, 0x8] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x9 + bls _080A1236 +_080A1272: + mov r1, r12 + lsls r0, r1, 16 + cmp r0, 0 + beq _080A1286 + lsls r0, r7, 16 + asrs r0, 16 + cmp r0, 0 + ble _080A1286 + cmp r0, 0x9 + ble _080A12A4 +_080A1286: + lsls r0, r7, 16 + asrs r0, 16 + cmp r0, 0x9 + ble _080A129A + ldr r0, _080A12CC @ =gOtherText_Status + movs r1, 0xD + movs r2, 0x1 + movs r3, 0x12 + bl sub_80A1FF8 +_080A129A: + bl sub_80A1D18 + mov r0, r8 + bl DestroyTask +_080A12A4: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A12B0: .4byte 0x040000d4 +_080A12B4: .4byte 0x80000800 +_080A12B8: .4byte 0xfffff000 +_080A12BC: .4byte 0x80000001 +_080A12C0: .4byte 0x0600e480 +_080A12C4: .4byte 0x0600ec80 +_080A12C8: .4byte 0x0600ecc0 +_080A12CC: .4byte gOtherText_Status + thumb_func_end sub_80A1048 + + thumb_func_start sub_80A12D0 +sub_80A12D0: @ 80A12D0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + movs r1, 0x12 + movs r2, 0x5 + movs r3, 0x13 + bl MenuZeroFillWindowRect + movs r0, 0x1D + bl sub_80A18E4 + ldr r0, _080A1310 @ =sub_80A1048 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080A1314 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0, r1 + lsls r4, 24 + asrs r4, 24 + strh r4, [r1, 0x8] + cmp r4, 0 + bge _080A1318 + movs r0, 0xA + b _080A131A + .align 2, 0 +_080A1310: .4byte sub_80A1048 +_080A1314: .4byte gTasks +_080A1318: + movs r0, 0 +_080A131A: + strh r0, [r1, 0xA] + ldr r0, _080A1330 @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1 + strh r0, [r1, 0xC] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A1330: .4byte gTasks + thumb_func_end sub_80A12D0 + + thumb_func_start sub_80A1334 +sub_80A1334: @ 80A1334 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + lsls r0, 2 + add r0, r10 + lsls r0, 3 + ldr r1, _080A13E4 @ =gTasks + 0x8 + adds r7, r0, r1 + ldrh r0, [r7] + ldrh r1, [r7, 0x2] + adds r0, r1 + strh r0, [r7, 0x2] + lsls r0, 16 + asrs r1, r0, 16 + movs r0, 0 + cmp r1, 0 + blt _080A136A + movs r0, 0xA + cmp r1, 0xA + bgt _080A136A + ldrh r0, [r7, 0x2] +_080A136A: + lsls r0, 16 + asrs r2, r0, 16 + mov r9, r0 + cmp r2, 0 + ble _080A13A6 + movs r0, 0xA + subs r0, r2 + lsls r0, 1 + ldr r1, _080A13E8 @ =0x06005b40 + adds r4, r0, r1 + movs r5, 0 + adds r6, r2, 0 + ldr r0, _080A13EC @ =0x001fffff + mov r8, r0 +_080A1386: + adds r0, r5, 0 + adds r0, 0xD + lsls r0, 6 + ldr r1, _080A13F0 @ =gUnknown_08E73E88 + adds r0, r1 + adds r1, r4, 0 + mov r2, r8 + ands r2, r6 + bl CpuSet + adds r4, 0x40 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x6 + bls _080A1386 +_080A13A6: + mov r1, r9 + asrs r2, r1, 16 + cmp r2, 0x9 + bgt _080A13F4 + ldr r4, _080A13E8 @ =0x06005b40 + movs r5, 0 + mov r8, sp + movs r0, 0xA + subs r6, r0, r2 + ldr r0, _080A13EC @ =0x001fffff + ands r6, r0 + movs r0, 0x80 + lsls r0, 17 + mov r9, r0 +_080A13C2: + ldrh r0, [r7, 0x4] + mov r1, r8 + strh r0, [r1] + mov r0, sp + adds r1, r4, 0 + mov r2, r9 + orrs r2, r6 + bl CpuSet + adds r4, 0x40 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x6 + bls _080A13C2 + b _080A1400 + .align 2, 0 +_080A13E4: .4byte gTasks + 0x8 +_080A13E8: .4byte 0x06005b40 +_080A13EC: .4byte 0x001fffff +_080A13F0: .4byte gUnknown_08E73E88 +_080A13F4: + movs r0, 0 + movs r1, 0x13 + movs r2, 0x9 + movs r3, 0x13 + bl MenuZeroFillWindowRect +_080A1400: + movs r1, 0 + ldrsh r0, [r7, r1] + cmp r0, 0 + beq _080A1410 + movs r1, 0x2 + ldrsh r0, [r7, r1] + cmp r0, 0 + bge _080A144A +_080A1410: + ldr r4, _080A1480 @ =0x02018000 + ldrb r0, [r4, 0xB] + cmp r0, 0x2 + bne _080A1444 + movs r0, 0 + movs r1, 0xE + movs r2, 0x9 + movs r3, 0x12 + bl MenuZeroFillWindowRect + adds r4, 0x10 + adds r0, r4, 0 + bl sub_80A0958 + adds r0, r4, 0 + bl GetMonStatusAndPokerus + lsls r0, 24 + cmp r0, 0 + beq _080A1444 + ldr r0, _080A1484 @ =gOtherText_Status + movs r1, 0xD + movs r2, 0x1 + movs r3, 0x12 + bl sub_80A1FF8 +_080A1444: + mov r0, r10 + bl DestroyTask +_080A144A: + movs r1, 0x2 + ldrsh r0, [r7, r1] + cmp r0, 0x9 + ble _080A1470 + ldr r4, _080A1480 @ =0x02018000 + ldrb r0, [r4, 0xB] + cmp r0, 0x2 + bne _080A1460 + ldrb r0, [r7, 0x6] + bl sub_80A00F4 +_080A1460: + adds r0, r4, 0 + adds r0, 0x10 + adds r1, r7, 0x6 + bl sub_80A0428 + mov r0, r10 + bl DestroyTask +_080A1470: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A1480: .4byte 0x02018000 +_080A1484: .4byte gOtherText_Status + thumb_func_end sub_80A1334 + + thumb_func_start sub_80A1488 +sub_80A1488: @ 80A1488 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + ldr r0, _080A14DC @ =0x02018000 + ldrb r0, [r0, 0xB] + cmp r0, 0x2 + bne _080A14A6 + movs r0, 0 + movs r1, 0xE + movs r2, 0x9 + movs r3, 0x13 + bl MenuZeroFillWindowRect +_080A14A6: + ldr r5, _080A14E0 @ =sub_80A1334 + adds r0, r5, 0 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xFF + bne _080A14C2 + adds r0, r5, 0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r4, r0, 24 +_080A14C2: + ldr r1, _080A14E4 @ =gTasks + lsls r2, r4, 2 + adds r0, r2, r4 + lsls r0, 3 + adds r3, r0, r1 + lsls r0, r6, 24 + asrs r0, 24 + strh r0, [r3, 0x8] + cmp r0, 0 + bge _080A14E8 + movs r0, 0xA + b _080A14EA + .align 2, 0 +_080A14DC: .4byte 0x02018000 +_080A14E0: .4byte sub_80A1334 +_080A14E4: .4byte gTasks +_080A14E8: + movs r0, 0 +_080A14EA: + strh r0, [r3, 0xA] + adds r0, r2, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0xC] + strh r7, [r0, 0xE] + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A1488 + + thumb_func_start sub_80A1500 +sub_80A1500: @ 80A1500 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + lsls r0, 2 + add r0, r10 + lsls r0, 3 + ldr r1, _080A15B0 @ =gTasks + 0x8 + adds r7, r0, r1 + ldrh r0, [r7] + ldrh r1, [r7, 0x2] + adds r0, r1 + strh r0, [r7, 0x2] + lsls r0, 16 + asrs r1, r0, 16 + movs r0, 0 + cmp r1, 0 + blt _080A1536 + movs r0, 0xA + cmp r1, 0xA + bgt _080A1536 + ldrh r0, [r7, 0x2] +_080A1536: + lsls r0, 16 + asrs r2, r0, 16 + mov r9, r0 + cmp r2, 0 + ble _080A1572 + movs r0, 0xA + subs r0, r2 + lsls r0, 1 + ldr r1, _080A15B4 @ =0x06006b40 + adds r4, r0, r1 + movs r5, 0 + adds r6, r2, 0 + ldr r0, _080A15B8 @ =0x001fffff + mov r8, r0 +_080A1552: + adds r0, r5, 0 + adds r0, 0xD + lsls r0, 6 + ldr r1, _080A15BC @ =gUnknown_08E74688 + adds r0, r1 + adds r1, r4, 0 + mov r2, r8 + ands r2, r6 + bl CpuSet + adds r4, 0x40 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x6 + bls _080A1552 +_080A1572: + mov r1, r9 + asrs r2, r1, 16 + cmp r2, 0x9 + bgt _080A15C0 + ldr r4, _080A15B4 @ =0x06006b40 + movs r5, 0 + mov r8, sp + movs r0, 0xA + subs r6, r0, r2 + ldr r0, _080A15B8 @ =0x001fffff + ands r6, r0 + movs r0, 0x80 + lsls r0, 17 + mov r9, r0 +_080A158E: + ldrh r0, [r7, 0x4] + mov r1, r8 + strh r0, [r1] + mov r0, sp + adds r1, r4, 0 + mov r2, r9 + orrs r2, r6 + bl CpuSet + adds r4, 0x40 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x6 + bls _080A158E + b _080A15CC + .align 2, 0 +_080A15B0: .4byte gTasks + 0x8 +_080A15B4: .4byte 0x06006b40 +_080A15B8: .4byte 0x001fffff +_080A15BC: .4byte gUnknown_08E74688 +_080A15C0: + movs r0, 0 + movs r1, 0x13 + movs r2, 0x9 + movs r3, 0x13 + bl MenuZeroFillWindowRect +_080A15CC: + movs r1, 0 + ldrsh r0, [r7, r1] + cmp r0, 0 + beq _080A15DC + movs r1, 0x2 + ldrsh r0, [r7, r1] + cmp r0, 0 + bge _080A1616 +_080A15DC: + ldr r4, _080A164C @ =0x02018000 + ldrb r0, [r4, 0xB] + cmp r0, 0x3 + bne _080A1610 + movs r0, 0 + movs r1, 0xE + movs r2, 0x9 + movs r3, 0x12 + bl MenuZeroFillWindowRect + adds r4, 0x10 + adds r0, r4, 0 + bl sub_80A0958 + adds r0, r4, 0 + bl GetMonStatusAndPokerus + lsls r0, 24 + cmp r0, 0 + beq _080A1610 + ldr r0, _080A1650 @ =gOtherText_Status + movs r1, 0xD + movs r2, 0x1 + movs r3, 0x12 + bl sub_80A1FF8 +_080A1610: + mov r0, r10 + bl DestroyTask +_080A1616: + movs r1, 0x2 + ldrsh r0, [r7, r1] + cmp r0, 0x9 + ble _080A163C + ldr r4, _080A164C @ =0x02018000 + ldrb r0, [r4, 0xB] + cmp r0, 0x3 + bne _080A162C + ldrb r0, [r7, 0x6] + bl sub_80A00F4 +_080A162C: + adds r0, r4, 0 + adds r0, 0x10 + adds r1, r7, 0x6 + bl sub_80A0428 + mov r0, r10 + bl DestroyTask +_080A163C: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A164C: .4byte 0x02018000 +_080A1650: .4byte gOtherText_Status + thumb_func_end sub_80A1500 + + thumb_func_start sub_80A1654 +sub_80A1654: @ 80A1654 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + ldr r0, _080A16A8 @ =0x02018000 + ldrb r0, [r0, 0xB] + cmp r0, 0x3 + bne _080A1672 + movs r0, 0 + movs r1, 0xE + movs r2, 0x9 + movs r3, 0x13 + bl MenuZeroFillWindowRect +_080A1672: + ldr r5, _080A16AC @ =sub_80A1500 + adds r0, r5, 0 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xFF + bne _080A168E + adds r0, r5, 0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r4, r0, 24 +_080A168E: + ldr r1, _080A16B0 @ =gTasks + lsls r2, r4, 2 + adds r0, r2, r4 + lsls r0, 3 + adds r3, r0, r1 + lsls r0, r6, 24 + asrs r0, 24 + strh r0, [r3, 0x8] + cmp r0, 0 + bge _080A16B4 + movs r0, 0xA + b _080A16B6 + .align 2, 0 +_080A16A8: .4byte 0x02018000 +_080A16AC: .4byte sub_80A1500 +_080A16B0: .4byte gTasks +_080A16B4: + movs r0, 0 +_080A16B6: + strh r0, [r3, 0xA] + adds r0, r2, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0xC] + strh r7, [r0, 0xE] + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A1654 + + thumb_func_start sub_80A16CC +sub_80A16CC: @ 80A16CC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r0, _080A1724 @ =0x06006ad4 + mov r12, r0 + mov r1, r9 + cmp r1, 0 + bne _080A172C + movs r5, 0 + ldr r7, _080A1728 @ =gUnknown_08E94510 + movs r0, 0x80 + lsls r0, 5 + adds r6, r0, 0 + movs r1, 0x40 + adds r1, r7 + mov r8, r1 +_080A16F4: + lsls r2, r5, 1 + mov r0, r12 + adds r3, r2, r0 + adds r4, r2, r7 + ldrh r1, [r4] + adds r0, r6, r1 + strh r0, [r3] + adds r1, r3, 0 + adds r1, 0x40 + ldrh r4, [r4] + adds r0, r6, r4 + strh r0, [r1] + adds r3, 0x80 + add r2, r8 + ldrh r2, [r2] + adds r0, r6, r2 + strh r0, [r3] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080A16F4 + b _080A1768 + .align 2, 0 +_080A1724: .4byte 0x06006ad4 +_080A1728: .4byte gUnknown_08E94510 +_080A172C: + movs r5, 0 + ldr r6, _080A17B0 @ =gUnknown_08E94550 + movs r7, 0x80 + lsls r7, 5 + adds r4, r7, 0 + movs r0, 0x40 + adds r0, r6 + mov r8, r0 +_080A173C: + lsls r1, r5, 1 + mov r7, r12 + adds r2, r1, r7 + adds r0, r1, r6 + ldrh r0, [r0] + adds r0, r4, r0 + strh r0, [r2] + adds r3, r2, 0 + adds r3, 0x40 + add r1, r8 + ldrh r7, [r1] + adds r0, r4, r7 + strh r0, [r3] + adds r2, 0x80 + ldrh r1, [r1] + adds r0, r4, r1 + strh r0, [r2] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080A173C +_080A1768: + ldr r0, _080A17B4 @ =0x06005ad4 + mov r12, r0 + mov r1, r9 + cmp r1, 0 + bne _080A17BC + movs r5, 0 + ldr r7, _080A17B8 @ =gUnknown_08E94510 + movs r0, 0xC0 + lsls r0, 6 + adds r6, r0, 0 + movs r1, 0x40 + adds r1, r7 + mov r8, r1 +_080A1782: + lsls r2, r5, 1 + mov r0, r12 + adds r3, r2, r0 + adds r4, r2, r7 + ldrh r1, [r4] + adds r0, r6, r1 + strh r0, [r3] + adds r1, r3, 0 + adds r1, 0x40 + ldrh r4, [r4] + adds r0, r6, r4 + strh r0, [r1] + adds r3, 0x80 + add r2, r8 + ldrh r2, [r2] + adds r0, r6, r2 + strh r0, [r3] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080A1782 + b _080A17F8 + .align 2, 0 +_080A17B0: .4byte gUnknown_08E94550 +_080A17B4: .4byte 0x06005ad4 +_080A17B8: .4byte gUnknown_08E94510 +_080A17BC: + movs r5, 0 + ldr r6, _080A1804 @ =gUnknown_08E94550 + movs r7, 0xC0 + lsls r7, 6 + adds r4, r7, 0 + movs r0, 0x40 + adds r0, r6 + mov r8, r0 +_080A17CC: + lsls r1, r5, 1 + mov r7, r12 + adds r2, r1, r7 + adds r0, r1, r6 + ldrh r0, [r0] + adds r0, r4, r0 + strh r0, [r2] + adds r3, r2, 0 + adds r3, 0x40 + add r1, r8 + ldrh r7, [r1] + adds r0, r4, r7 + strh r0, [r3] + adds r2, 0x80 + ldrh r1, [r1] + adds r0, r4, r1 + strh r0, [r2] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080A17CC +_080A17F8: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A1804: .4byte gUnknown_08E94550 + thumb_func_end sub_80A16CC + + thumb_func_start sub_80A1808 +sub_80A1808: @ 80A1808 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r1, 0x41 + bl GetMonData + adds r6, r0, 0 + lsls r6, 16 + lsrs r6, 16 + ldr r0, _080A1860 @ =gUnknown_02024E8C + movs r1, 0x28 + movs r2, 0x40 + movs r3, 0x5 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r4, r0, 4 + add r4, r8 + lsls r4, 2 + ldr r5, _080A1864 @ =gSprites + adds r7, r4, r5 + adds r0, r7, 0 + bl FreeSpriteOamMatrix + strh r6, [r7, 0x2E] + adds r5, 0x1C + adds r4, r5 + ldr r0, _080A1868 @ =sub_80A1888 + str r0, [r4] + adds r0, r6, 0 + bl sub_8040A3C + lsls r0, 24 + cmp r0, 0 + bne _080A186C + adds r0, r7, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + b _080A187A + .align 2, 0 +_080A1860: .4byte gUnknown_02024E8C +_080A1864: .4byte gSprites +_080A1868: .4byte sub_80A1888 +_080A186C: + adds r2, r7, 0 + adds r2, 0x3F + ldrb r1, [r2] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080A187A: + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80A1808 + + thumb_func_start sub_80A1888 +sub_80A1888: @ 80A1888 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080A18B8 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080A18B0 + ldr r0, _080A18BC @ =SpriteCallbackDummy + str r0, [r4, 0x1C] + ldr r0, _080A18C0 @ =0x02018010 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _080A18B0 + ldrh r0, [r4, 0x2E] + movs r1, 0 + bl PlayCry1 +_080A18B0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A18B8: .4byte gPaletteFade +_080A18BC: .4byte SpriteCallbackDummy +_080A18C0: .4byte 0x02018010 + thumb_func_end sub_80A1888 + + thumb_func_start sub_80A18C4 +sub_80A18C4: @ 80A18C4 + push {lr} + movs r1, 0 + ldr r3, _080A18E0 @ =0x0201a000 + movs r2, 0xFF +_080A18CC: + adds r0, r1, r3 + strb r2, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x1D + bls _080A18CC + pop {r0} + bx r0 + .align 2, 0 +_080A18E0: .4byte 0x0201a000 + thumb_func_end sub_80A18C4 + + thumb_func_start sub_80A18E4 +sub_80A18E4: @ 80A18E4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080A1910 @ =0x0201a000 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0xFF + beq _080A1908 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080A1914 @ =gSprites + adds r0, r1 + bl DestroySprite + movs r0, 0xFF + strb r0, [r4] +_080A1908: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A1910: .4byte 0x0201a000 +_080A1914: .4byte gSprites + thumb_func_end sub_80A18E4 + + thumb_func_start sub_80A1918 +sub_80A1918: @ 80A1918 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r3, _080A1948 @ =gSprites + ldr r2, _080A194C @ =0x0201a000 + adds r0, r2 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + adds r2, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r3, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + bx lr + .align 2, 0 +_080A1948: .4byte gSprites +_080A194C: .4byte 0x0201a000 + thumb_func_end sub_80A1918 + + thumb_func_start sub_80A1950 +sub_80A1950: @ 80A1950 + push {r4,r5,lr} + movs r5, 0 +_080A1954: + ldr r0, _080A1984 @ =0x0201a000 + adds r4, r5, r0 + ldrb r0, [r4] + cmp r0, 0xFF + bne _080A196C + ldr r0, _080A1988 @ =gSpriteTemplate_83C11C0 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl CreateSprite + strb r0, [r4] +_080A196C: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80A1918 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x4 + bls _080A1954 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A1984: .4byte 0x0201a000 +_080A1988: .4byte gSpriteTemplate_83C11C0 + thumb_func_end sub_80A1950 + + thumb_func_start sub_80A198C +sub_80A198C: @ 80A198C + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + mov r10, r3 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + mov r0, r10 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r1, _080A1A24 @ =0x0201a000 + mov r8, r1 + add r8, r10 + mov r0, r8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080A1A28 @ =gSprites + mov r9, r1 + add r0, r9 + adds r1, r4, 0 + bl StartSpriteAnim + mov r1, r8 + ldrb r0, [r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r9 + ldr r0, _080A1A2C @ =gUnknown_083C11D8 + adds r4, r0 + ldrb r2, [r4] + lsls r2, 4 + ldrb r3, [r1, 0x5] + movs r0, 0xF + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0x5] + mov r0, r8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r9 + adds r5, 0x10 + strh r5, [r0, 0x20] + mov r0, r8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r9 + adds r6, 0x8 + strh r6, [r0, 0x22] + mov r0, r10 + movs r1, 0 + bl sub_80A1918 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A1A24: .4byte 0x0201a000 +_080A1A28: .4byte gSprites +_080A1A2C: .4byte gUnknown_083C11D8 + thumb_func_end sub_80A198C + + thumb_func_start sub_80A1A30 +sub_80A1A30: @ 80A1A30 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0 + mov r9, r0 + ldr r1, _080A1A98 @ =0x02018000 + ldrb r0, [r1, 0xB] + cmp r0, 0x1 + bls _080A1B0A + cmp r4, 0x9 + bne _080A1A52 + movs r3, 0x1 + mov r9, r3 +_080A1A52: + movs r5, 0 + movs r0, 0x80 + lsls r0, 6 + adds r0, r1 + mov r8, r0 + ldr r6, _080A1A9C @ =gSprites + mov r10, r5 +_080A1A60: + lsls r1, r5, 20 + movs r3, 0xB0 + lsls r3, 15 + adds r1, r3 + asrs r1, 16 + ldr r0, _080A1AA0 @ =gSpriteTemplate_83C1280 + movs r2, 0x28 + mov r3, r9 + bl CreateSprite + adds r1, r4, r5 + mov r3, r8 + adds r2, r1, r3 + strb r0, [r2] + adds r7, r1, 0 + cmp r5, 0 + bne _080A1AA4 + adds r0, r4, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x4 + bl StartSpriteAnim + b _080A1AD0 + .align 2, 0 +_080A1A98: .4byte 0x02018000 +_080A1A9C: .4byte gSprites +_080A1AA0: .4byte gSpriteTemplate_83C1280 +_080A1AA4: + cmp r5, 0x9 + bne _080A1AC0 + adds r0, r4, 0 + adds r0, 0x9 + add r0, r8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x5 + bl StartSpriteAnim + b _080A1AD0 +_080A1AC0: + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x6 + bl StartSpriteAnim +_080A1AD0: + mov r0, r8 + adds r2, r7, r0 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r6, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _080A1B18 @ =sub_80A1BC0 + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r4, [r0, 0x2E] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + mov r1, r10 + strh r1, [r0, 0x30] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x9 + bls _080A1A60 +_080A1B0A: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A1B18: .4byte sub_80A1BC0 + thumb_func_end sub_80A1A30 + + thumb_func_start sub_80A1B1C +sub_80A1B1C: @ 80A1B1C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 +_080A1B24: + adds r0, r5, r4 + lsls r0, 24 + lsrs r0, 24 + bl sub_80A18E4 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x9 + bls _080A1B24 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A1B1C + + thumb_func_start sub_80A1B40 +sub_80A1B40: @ 80A1B40 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, r7, 1 + adds r1, r7 + lsls r1, 24 + ldr r0, _080A1BB4 @ =0x0201a009 + ldrb r2, [r0] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + ldr r2, _080A1BB8 @ =gSprites + adds r0, r2 + lsrs r7, r1, 24 + movs r2, 0x80 + lsls r2, 19 + adds r1, r2 + lsrs r1, 24 + bl StartSpriteAnim + movs r4, 0 + adds r0, r7, 0x6 + lsls r0, 24 + mov r8, r0 +_080A1B74: + ldr r6, _080A1BBC @ =0x0201a00a + adds r0, r4, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, _080A1BB8 @ =gSprites + adds r0, r5 + mov r2, r8 + lsrs r1, r2, 24 + bl StartSpriteAnim + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bls _080A1B74 + ldrb r1, [r6, 0x8] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r1, r7, 0x5 + lsls r1, 24 + lsrs r1, 24 + bl StartSpriteAnim + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A1BB4: .4byte 0x0201a009 +_080A1BB8: .4byte gSprites +_080A1BBC: .4byte 0x0201a00a + thumb_func_end sub_80A1B40 + + thumb_func_start sub_80A1BC0 +sub_80A1BC0: @ 80A1BC0 + push {lr} + adds r2, r0, 0 + adds r0, 0x2A + ldrb r0, [r0] + subs r0, 0x4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bhi _080A1BF8 + ldrh r0, [r2, 0x30] + adds r0, 0x1 + movs r1, 0x1F + ands r0, r1 + strh r0, [r2, 0x30] + cmp r0, 0x18 + ble _080A1BEC + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + b _080A1C06 +_080A1BEC: + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + b _080A1C04 +_080A1BF8: + movs r0, 0 + strh r0, [r2, 0x30] + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + subs r0, 0x5 +_080A1C04: + ands r0, r1 +_080A1C06: + strb r0, [r3] + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0x9 + bne _080A1C1C + ldr r0, _080A1C18 @ =0x02018000 + adds r0, 0x79 + b _080A1C20 + .align 2, 0 +_080A1C18: .4byte 0x02018000 +_080A1C1C: + ldr r0, _080A1C2C @ =0x02018000 + adds r0, 0x7A +_080A1C20: + ldrb r0, [r0] + lsls r0, 4 + strh r0, [r2, 0x26] + pop {r0} + bx r0 + .align 2, 0 +_080A1C2C: .4byte 0x02018000 + thumb_func_end sub_80A1BC0 + + thumb_func_start sub_80A1C30 +sub_80A1C30: @ 80A1C30 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 25 + lsrs r3, r0, 24 + adds r4, r3, 0 + adds r0, r3, 0 + adds r0, 0xA + cmp r3, r0 + bge _080A1C82 + ldr r5, _080A1C88 @ =gSprites + movs r7, 0x5 + negs r7, r7 + ldr r6, _080A1C8C @ =0x0201a009 +_080A1C50: + adds r2, r3, r6 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0 + strh r1, [r0, 0x30] + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r1, 0x3E + ldrb r2, [r1] + adds r0, r7, 0 + ands r0, r2 + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + adds r0, r4, 0 + adds r0, 0xA + cmp r3, r0 + blt _080A1C50 +_080A1C82: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A1C88: .4byte gSprites +_080A1C8C: .4byte 0x0201a009 + thumb_func_end sub_80A1C30 + + thumb_func_start pokemon_ailments_get_primary +pokemon_ailments_get_primary: @ 80A1C90 + push {lr} + adds r1, r0, 0 + movs r0, 0x88 + ands r0, r1 + cmp r0, 0 + beq _080A1CA0 + movs r0, 0x1 + b _080A1CD2 +_080A1CA0: + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080A1CAC + movs r0, 0x2 + b _080A1CD2 +_080A1CAC: + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + beq _080A1CB8 + movs r0, 0x3 + b _080A1CD2 +_080A1CB8: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080A1CC4 + movs r0, 0x4 + b _080A1CD2 +_080A1CC4: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _080A1CD0 + movs r0, 0 + b _080A1CD2 +_080A1CD0: + movs r0, 0x5 +_080A1CD2: + pop {r1} + bx r1 + thumb_func_end pokemon_ailments_get_primary + + thumb_func_start GetMonStatusAndPokerus +GetMonStatusAndPokerus: @ 80A1CD8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _080A1CEA + movs r0, 0x7 + b _080A1D12 +_080A1CEA: + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData + bl pokemon_ailments_get_primary + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080A1D12 + adds r0, r4, 0 + movs r1, 0 + bl CheckPartyPokerus + lsls r0, 24 + cmp r0, 0 + bne _080A1D10 + movs r0, 0 + b _080A1D12 +_080A1D10: + movs r0, 0x6 +_080A1D12: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetMonStatusAndPokerus + + thumb_func_start sub_80A1D18 +sub_80A1D18: @ 80A1D18 + push {r4,r5,lr} + sub sp, 0x64 + mov r0, sp + bl sub_809F678 + mov r0, sp + bl GetMonStatusAndPokerus + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _080A1D58 + subs r0, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _080A1D50 @ =0x0201a01d + ldrb r0, [r4] + cmp r0, 0xFF + bne _080A1D60 + ldr r0, _080A1D54 @ =gSpriteTemplate_83C1304 + movs r1, 0x40 + movs r2, 0x98 + movs r3, 0 + bl CreateSprite + strb r0, [r4] + b _080A1D60 + .align 2, 0 +_080A1D50: .4byte 0x0201a01d +_080A1D54: .4byte gSpriteTemplate_83C1304 +_080A1D58: + movs r0, 0x1D + bl sub_80A18E4 + b _080A1D74 +_080A1D60: + ldr r0, _080A1D7C @ =0x0201a01d + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080A1D80 @ =gSprites + adds r0, r1 + adds r1, r5, 0 + bl StartSpriteAnim +_080A1D74: + add sp, 0x64 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A1D7C: .4byte 0x0201a01d +_080A1D80: .4byte gSprites + thumb_func_end sub_80A1D18 + + thumb_func_start sub_80A1D84 +sub_80A1D84: @ 80A1D84 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r1, _080A1DC0 @ =0x00007533 + ldr r2, _080A1DC4 @ =gSummaryScreenMonMarkingsPalette + adds r0, r1, 0 + bl sub_80F7920 + adds r4, r0, 0 + ldr r6, _080A1DC8 @ =gUnknown_020384F4 + str r4, [r6] + cmp r4, 0 + beq _080A1DBA + adds r0, r5, 0 + movs r1, 0x8 + bl GetMonData + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + ldr r1, [r6] + movs r0, 0x3C + strh r0, [r1, 0x20] + movs r0, 0x1A + strh r0, [r1, 0x22] +_080A1DBA: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A1DC0: .4byte 0x00007533 +_080A1DC4: .4byte gSummaryScreenMonMarkingsPalette +_080A1DC8: .4byte gUnknown_020384F4 + thumb_func_end sub_80A1D84 + + thumb_func_start sub_80A1DCC +sub_80A1DCC: @ 80A1DCC + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080A1DE4 @ =gUnknown_020384F4 + ldr r0, [r0] + bl DestroySprite + adds r0, r4, 0 + bl sub_80A1D84 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A1DE4: .4byte gUnknown_020384F4 + thumb_func_end sub_80A1DCC + + thumb_func_start sub_80A1DE8 +sub_80A1DE8: @ 80A1DE8 + push {r4,lr} + movs r1, 0x26 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + bl ball_number_to_ball_processing_index + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_80478DC + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 3 + ldr r1, _080A1E48 @ =gSpriteTemplate_820AAB4 + adds r0, r1 + movs r1, 0x6 + movs r2, 0x88 + movs r3, 0 + bl CreateSprite + ldr r2, _080A1E4C @ =0x02018000 + strb r0, [r2, 0xD] + ldr r3, _080A1E50 @ =gSprites + ldrb r1, [r2, 0xD] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r3, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _080A1E54 @ =SpriteCallbackDummy + str r1, [r0] + ldrb r1, [r2, 0xD] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x5] + movs r2, 0xC + orrs r1, r2 + strb r1, [r0, 0x5] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A1E48: .4byte gSpriteTemplate_820AAB4 +_080A1E4C: .4byte 0x02018000 +_080A1E50: .4byte gSprites +_080A1E54: .4byte SpriteCallbackDummy + thumb_func_end sub_80A1DE8 + + thumb_func_start sub_80A1E58 +sub_80A1E58: @ 80A1E58 + push {r4,lr} + adds r2, r0, 0 + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0xFF + beq _080A1E92 + ldr r3, _080A1E6C @ =gUnknown_083C15BC + ldrb r0, [r3] + adds r4, r2, 0x5 + b _080A1E74 + .align 2, 0 +_080A1E6C: .4byte gUnknown_083C15BC +_080A1E70: + adds r3, 0x4 + ldrb r0, [r3] +_080A1E74: + cmp r0, 0xFF + beq _080A1E7C + cmp r0, r1 + bne _080A1E70 +_080A1E7C: + movs r0, 0xFC + strb r0, [r2] + movs r0, 0x4 + strb r0, [r2, 0x1] + ldrb r0, [r3, 0x1] + strb r0, [r2, 0x2] + ldrb r0, [r3, 0x2] + strb r0, [r2, 0x3] + ldrb r0, [r3, 0x3] + strb r0, [r2, 0x4] + adds r2, r4, 0 +_080A1E92: + adds r0, r2, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80A1E58 + + thumb_func_start sub_80A1E9C +sub_80A1E9C: @ 80A1E9C + push {r4-r6,lr} + sub sp, 0x4 + adds r6, r0, 0 + adds r5, r1, 0 + lsls r4, r2, 24 + lsrs r4, 24 + mov r1, sp + adds r1, 0x1 + mov r2, sp + adds r2, 0x2 + mov r0, sp + bl sub_8072CD4 + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_80A1E58 + adds r6, r0, 0 + adds r1, r5, 0 + bl StringCopy + adds r6, r0, 0 + cmp r4, 0xFF + beq _080A1EEC + movs r0, 0xFC + strb r0, [r6] + movs r0, 0x4 + strb r0, [r6, 0x1] + mov r0, sp + ldrb r0, [r0] + strb r0, [r6, 0x2] + mov r0, sp + ldrb r0, [r0, 0x1] + strb r0, [r6, 0x3] + mov r0, sp + ldrb r0, [r0, 0x2] + strb r0, [r6, 0x4] + movs r0, 0xFF + strb r0, [r6, 0x5] + adds r6, 0x5 +_080A1EEC: + adds r0, r6, 0 + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80A1E9C + + thumb_func_start sub_80A1EF8 +sub_80A1EF8: @ 80A1EF8 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x4 + mov r9, r0 + adds r4, r1, 0 + adds r5, r2, 0 + adds r6, r3, 0 + ldr r3, [sp, 0x1C] + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 16 + lsrs r6, 16 + ldr r0, _080A1F44 @ =gStringVar4 + mov r8, r0 + mov r1, r9 + adds r2, r4, 0 + str r3, [sp] + bl sub_80A1E9C + ldr r3, [sp] + lsls r3, 24 + lsrs r3, 24 + mov r0, r8 + adds r1, r5, 0 + adds r2, r6, 0 + bl MenuPrint_PixelCoords + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A1F44: .4byte gStringVar4 + thumb_func_end sub_80A1EF8 + + thumb_func_start sub_80A1F48 +sub_80A1F48: @ 80A1F48 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x4 + mov r9, r0 + adds r4, r1, 0 + adds r5, r2, 0 + adds r6, r3, 0 + ldr r3, [sp, 0x1C] + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + lsls r3, 16 + lsrs r3, 16 + ldr r0, _080A1F94 @ =gStringVar4 + mov r8, r0 + mov r1, r9 + adds r2, r4, 0 + str r3, [sp] + bl sub_80A1E9C + mov r0, r8 + adds r1, r5, 0 + adds r2, r6, 0 + ldr r3, [sp] + bl sub_8072BD8 + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A1F94: .4byte gStringVar4 + thumb_func_end sub_80A1F48 + + thumb_func_start sub_80A1F98 +sub_80A1F98: @ 80A1F98 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + mov r10, r0 + mov r8, r1 + adds r4, r2, 0 + adds r2, r3, 0 + ldr r5, [sp, 0x24] + ldr r6, [sp, 0x28] + ldr r7, [sp, 0x2C] + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r4, 24 + lsrs r4, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 16 + lsrs r6, 16 + ldr r0, _080A1FF4 @ =gStringVar1 + mov r9, r0 + mov r1, r10 + adds r3, r4, 0 + bl ConvertIntToDecimalStringN + str r7, [sp] + mov r0, r9 + mov r1, r8 + adds r2, r5, 0 + adds r3, r6, 0 + bl sub_80A1EF8 + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A1FF4: .4byte gStringVar1 + thumb_func_end sub_80A1F98 + + thumb_func_start sub_80A1FF8 +sub_80A1FF8: @ 80A1FF8 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + mov r9, r0 + adds r4, r1, 0 + adds r5, r2, 0 + adds r6, r3, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + ldr r0, _080A2038 @ =gStringVar4 + mov r8, r0 + mov r1, r9 + adds r2, r4, 0 + bl sub_80A1E9C + mov r0, r8 + adds r1, r5, 0 + adds r2, r6, 0 + bl MenuPrint + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A2038: .4byte gStringVar4 + thumb_func_end sub_80A1FF8 + + thumb_func_start PokemonSummaryScreen_CopyPokemonLevel +PokemonSummaryScreen_CopyPokemonLevel: @ 80A203C + push {r4,lr} + sub sp, 0xC + adds r4, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x34 + strb r0, [r4] + adds r4, 0x1 + cmp r1, 0 + bne _080A2052 + movs r1, 0x5 +_080A2052: + mov r0, sp + bl ConvertIntToDecimalString + adds r0, r4, 0 + mov r1, sp + movs r2, 0xE + bl sub_80A1E9C + adds r4, r0, 0 + ldr r1, _080A2074 @ =gOtherText_Comma + bl StringCopy + adds r4, r0, 0 + add sp, 0xC + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080A2074: .4byte gOtherText_Comma + thumb_func_end PokemonSummaryScreen_CopyPokemonLevel + + thumb_func_start sub_80A2078 +sub_80A2078: @ 80A2078 + push {lr} + ldr r3, _080A209C @ =gUnknown_03005CF0 + ldr r2, _080A20A0 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, [r1] + str r2, [r3] + ldr r2, _080A20A4 @ =sub_80A20A8 + str r2, [r1] + lsls r0, 24 + lsrs r0, 24 + bl _call_via_r2 + pop {r0} + bx r0 + .align 2, 0 +_080A209C: .4byte gUnknown_03005CF0 +_080A20A0: .4byte gTasks +_080A20A4: .4byte sub_80A20A8 + thumb_func_end sub_80A2078 + + thumb_func_start sub_80A20A8 +sub_80A20A8: @ 80A20A8 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8055870 + cmp r0, 0x1 + beq _080A20C6 + ldr r1, _080A20CC @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080A20D0 @ =gUnknown_03005CF0 + ldr r1, [r1] + str r1, [r0] +_080A20C6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A20CC: .4byte gTasks +_080A20D0: .4byte gUnknown_03005CF0 + thumb_func_end sub_80A20A8 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokenav.s b/asm/pokenav.s index 968386bd1..966285ab3 100644 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -9571,7 +9571,7 @@ _080F088C: bne _080F08C6 _080F089A: movs r0, 0x9 - bl sub_8053108 + bl GetGameStat adds r1, r0, 0 ldr r0, _080F08E0 @ =0x0001869f cmp r1, r0 @@ -12455,7 +12455,7 @@ _080F1F4A: movs r1, 0x3 orrs r0, r1 strb r0, [r4, 0x1] - ldr r0, _080F1FB0 @ =gUnknown_083E4450 + ldr r0, _080F1FB0 @ =gSpriteAffineAnimTable_83E4450 str r0, [r4, 0x10] adds r0, r4, 0 bl InitSpriteAffineAnim @@ -12489,7 +12489,7 @@ _080F1F4A: b _080F1FE4 .align 2, 0 _080F1FAC: .4byte 0x00006dad -_080F1FB0: .4byte gUnknown_083E4450 +_080F1FB0: .4byte gSpriteAffineAnimTable_83E4450 _080F1FB4: .4byte sub_80F2240 _080F1FB8: .4byte gUnknown_083DFEC4 _080F1FBC: .4byte 0x0000030f @@ -17339,7 +17339,7 @@ _080F44FC: lsls r1, r2, 2 adds r1, r2 lsls r1, 4 - ldr r2, _080F451C @ =gUnknown_020300A4 + ldr r2, _080F451C @ =gPokemonStorage + 0x4 adds r1, r2 adds r0, r1 adds r1, r4, 0 @@ -17347,7 +17347,7 @@ _080F44FC: bl GetBoxMonData b _080F453C .align 2, 0 -_080F451C: .4byte gUnknown_020300A4 +_080F451C: .4byte gPokemonStorage + 0x4 _080F4520: lsls r1, r0, 2 adds r1, r0 @@ -17357,7 +17357,7 @@ _080F4520: lsls r1, r2, 2 adds r1, r2 lsls r1, 4 - ldr r2, _080F4544 @ =gUnknown_020300A4 + ldr r2, _080F4544 @ =gPokemonStorage + 0x4 adds r1, r2 adds r0, r1 adds r1, r4, 0 @@ -17367,7 +17367,7 @@ _080F453C: pop {r1} bx r1 .align 2, 0 -_080F4544: .4byte gUnknown_020300A4 +_080F4544: .4byte gPokemonStorage + 0x4 thumb_func_end sub_80F44B0 thumb_func_start sub_80F4548 @@ -17401,7 +17401,7 @@ _080F4574: lsls r1, r4, 2 adds r1, r4 lsls r1, 4 - ldr r2, _080F459C @ =gUnknown_020300A4 + ldr r2, _080F459C @ =gPokemonStorage + 0x4 adds r1, r2 adds r0, r1 movs r1, 0x8 @@ -17413,7 +17413,7 @@ _080F4592: pop {r0} bx r0 .align 2, 0 -_080F459C: .4byte gUnknown_020300A4 +_080F459C: .4byte gPokemonStorage + 0x4 thumb_func_end sub_80F4548 thumb_func_start sub_80F45A0 @@ -17472,7 +17472,7 @@ _080F4608: adds r0, r5, r0 lsls r1, r2, 3 adds r1, r2 - ldr r2, _080F4638 @ =gUnknown_020383E4 + ldr r2, _080F4638 @ =gPokemonStorage + 0x8344 adds r1, r2 movs r2, 0x40 movs r3, 0 @@ -17488,7 +17488,7 @@ _080F4624: b _080F4676 .align 2, 0 _080F4634: .4byte 0x000088e9 -_080F4638: .4byte gUnknown_020383E4 +_080F4638: .4byte gPokemonStorage + 0x8344 _080F463C: .4byte gUnknown_083DFEC4 _080F4640: .4byte 0x00008937 _080F4644: @@ -17783,7 +17783,7 @@ sub_80F4824: @ 80F4824 str r5, [sp, 0x4] str r4, [sp, 0x8] movs r2, 0x1 - bl sub_800D334 + bl HandleLoadSpecialPokePic adds r0, r5, 0 mov r1, r8 adds r2, r4, 0 @@ -18432,7 +18432,7 @@ _080F4DAA: ldr r0, _080F4EA4 @ =0x000087d8 adds r0, r4 mov r9, r0 - ldr r1, _080F4EA8 @ =gUnknown_020300A4 + ldr r1, _080F4EA8 @ =gPokemonStorage + 0x4 mov r8, r1 _080F4DCA: ldrb r0, [r6] @@ -18541,7 +18541,7 @@ _080F4E98: .4byte gUnknown_083DFEC4 _080F4E9C: .4byte 0x00008fe6 _080F4EA0: .4byte 0x00008fe7 _080F4EA4: .4byte 0x000087d8 -_080F4EA8: .4byte gUnknown_020300A4 +_080F4EA8: .4byte gPokemonStorage + 0x4 _080F4EAC: .4byte 0xffff00ff _080F4EB0: .4byte 0xffe0ffff _080F4EB4: .4byte 0xffffff00 @@ -21141,7 +21141,7 @@ _080F6278: adds r5, r7, r1 ldr r0, _080F6310 @ =0x00008fe7 adds r4, r7, r0 - ldr r1, _080F6314 @ =gUnknown_020300A4 + ldr r1, _080F6314 @ =gPokemonStorage + 0x4 mov r8, r1 ldr r0, _080F6318 @ =0x000041a0 add r0, r8 @@ -21205,7 +21205,7 @@ _080F62FE: .align 2, 0 _080F630C: .4byte 0x00008fe6 _080F6310: .4byte 0x00008fe7 -_080F6314: .4byte gUnknown_020300A4 +_080F6314: .4byte gPokemonStorage + 0x4 _080F6318: .4byte 0x000041a0 _080F631C: movs r0, 0 @@ -21336,7 +21336,7 @@ _080F63FC: lsls r1, r2, 2 adds r1, r2 lsls r1, 4 - ldr r2, _080F6488 @ =gUnknown_020300A4 + ldr r2, _080F6488 @ =gPokemonStorage + 0x4 adds r1, r2 adds r0, r1 movs r1, 0x51 @@ -21393,7 +21393,7 @@ _080F646E: _080F647C: .4byte gUnknown_083DFEC4 _080F6480: .4byte 0x00008fe6 _080F6484: .4byte 0x00008fe7 -_080F6488: .4byte gUnknown_020300A4 +_080F6488: .4byte gPokemonStorage + 0x4 _080F648C: .4byte 0xffff00ff _080F6490: .4byte 0xffe0ffff _080F6494: .4byte 0xffffff00 @@ -21544,7 +21544,7 @@ _080F65B4: lsls r1, r7, 2 adds r1, r7 lsls r1, 4 - ldr r2, _080F6620 @ =gUnknown_020300A4 + ldr r2, _080F6620 @ =gPokemonStorage + 0x4 adds r1, r2 adds r0, r1 bl GetLevelFromBoxMonExp @@ -21587,7 +21587,7 @@ _080F65FC: beq _080F663C b _080F6656 .align 2, 0 -_080F6620: .4byte gUnknown_020300A4 +_080F6620: .4byte gPokemonStorage + 0x4 _080F6624: strb r1, [r5] movs r0, 0x1 diff --git a/asm/record_mixing.s b/asm/record_mixing.s index 1c981d167..ce0121a40 100644 --- a/asm/record_mixing.s +++ b/asm/record_mixing.s @@ -496,7 +496,7 @@ _080BA038: .4byte _080BA074 .4byte _080BA08E _080BA050: - bl sub_8047A1C + bl SetSecretBase2Field_9_AndHideBG bl sub_8125E2C b _080BA086 _080BA05A: @@ -504,7 +504,7 @@ _080BA05A: lsls r0, 24 cmp r0, 0 beq _080BA09C - bl sub_8047A34 + bl ClearSecretBase2Field_9_2 ldrh r0, [r4, 0x8] adds r0, 0x1 movs r1, 0 diff --git a/asm/region_map.s b/asm/region_map.s index 61449ba53..c6953705c 100644 --- a/asm/region_map.s +++ b/asm/region_map.s @@ -3034,8 +3034,8 @@ _080FC026: bx r1 thumb_func_end CopyMapName - thumb_func_start sub_80FC02C -sub_80FC02C: @ 80FC02C + thumb_func_start CopyLocationName +CopyLocationName: @ 80FC02C push {lr} lsls r1, 16 lsrs r1, 16 @@ -3051,7 +3051,7 @@ _080FC042: bx r1 .align 2, 0 _080FC048: .4byte gOtherText_Hideout - thumb_func_end sub_80FC02C + thumb_func_end CopyLocationName thumb_func_start sub_80FC04C sub_80FC04C: @ 80FC04C diff --git a/asm/reset_rtc_screen.s b/asm/reset_rtc_screen.s index 082ebf465..1b58b417b 100644 --- a/asm/reset_rtc_screen.s +++ b/asm/reset_rtc_screen.s @@ -655,7 +655,7 @@ Task_ResetRtc_1: @ 806A958 lsls r0, r4, 1 adds r0, r4 lsls r0, 2 - ldr r1, _0806A9A0 @ =gUnknown_08376414 + ldr r1, _0806A9A0 @ =gUnknown_08376420 - 0xC adds r2, r0, r1 ldr r1, _0806A9A4 @ =gMain ldrh r3, [r1, 0x2E] @@ -675,7 +675,7 @@ Task_ResetRtc_1: @ 806A958 b _0806A9CC .align 2, 0 _0806A99C: .4byte gTasks + 0x8 -_0806A9A0: .4byte gUnknown_08376414 +_0806A9A0: .4byte gUnknown_08376420 - 0xC _0806A9A4: .4byte gMain _0806A9A8: .4byte Task_ResetRtc_2 _0806A9AC: @@ -1225,7 +1225,7 @@ _0806AE08: ldr r0, _0806AE54 @ =0x00004040 ldrh r1, [r4] bl VarSet - bl sub_80691A0 + bl DisableResetRTC ldr r0, _0806AE58 @ =gSystemText_ClockResetDataSave bl ResetRtcScreen_ShowMessage movs r0, 0x4 diff --git a/asm/rom3.s b/asm/rom3.s index 823ac4e0c..94862459b 100644 --- a/asm/rom3.s +++ b/asm/rom3.s @@ -9,7 +9,7 @@ thumb_func_start sub_800B858 sub_800B858: @ 800B858 push {lr} - ldr r0, _0800B87C @ =gUnknown_020239F8 + ldr r0, _0800B87C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -24,7 +24,7 @@ _0800B876: pop {r0} bx r0 .align 2, 0 -_0800B87C: .4byte gUnknown_020239F8 +_0800B87C: .4byte gBattleTypeFlags _0800B880: .4byte sub_8083C50 thumb_func_end sub_800B858 @@ -69,8 +69,8 @@ _0800B8A0: str r5, [r0] bl sub_8075624 bl sub_8040710 - bl sub_81070D4 - ldr r0, _0800B940 @ =gUnknown_020239F8 + bl BattleAI_HandleItemUseBeforeAISetup + ldr r0, _0800B940 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x10 ands r0, r1 @@ -111,7 +111,7 @@ _0800B930: .4byte gUnknown_02024E64 _0800B934: .4byte nullsub_91 _0800B938: .4byte gUnknown_02024A72 _0800B93C: .4byte gUnknown_02024A64 -_0800B940: .4byte gUnknown_020239F8 +_0800B940: .4byte gBattleTypeFlags _0800B944: .4byte gEnemyParty _0800B948: .4byte gUnknown_020239FC _0800B94C: .4byte gUnknown_02024C78 @@ -120,7 +120,7 @@ _0800B94C: .4byte gUnknown_02024C78 thumb_func_start sub_800B950 sub_800B950: @ 800B950 push {r4,r5,lr} - ldr r0, _0800B964 @ =gUnknown_020239F8 + ldr r0, _0800B964 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -129,12 +129,12 @@ sub_800B950: @ 800B950 bl sub_800BA78 b _0800B96C .align 2, 0 -_0800B964: .4byte gUnknown_020239F8 +_0800B964: .4byte gBattleTypeFlags _0800B968: bl sub_800B9A8 _0800B96C: bl sub_800BD54 - ldr r0, _0800B9A0 @ =gUnknown_020239F8 + ldr r0, _0800B9A0 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -160,14 +160,14 @@ _0800B99A: pop {r0} bx r0 .align 2, 0 -_0800B9A0: .4byte gUnknown_020239F8 +_0800B9A0: .4byte gBattleTypeFlags _0800B9A4: .4byte gUnknown_02024A68 thumb_func_end sub_800B950 thumb_func_start sub_800B9A8 sub_800B9A8: @ 800B9A8 push {r4,lr} - ldr r0, _0800B9CC @ =gUnknown_020239F8 + ldr r0, _0800B9CC @ =gBattleTypeFlags ldrh r2, [r0] movs r0, 0x1 ands r0, r2 @@ -184,7 +184,7 @@ sub_800B9A8: @ 800B9A8 ldr r0, _0800B9DC @ =sub_812B468 b _0800B9FC .align 2, 0 -_0800B9CC: .4byte gUnknown_020239F8 +_0800B9CC: .4byte gBattleTypeFlags _0800B9D0: .4byte gUnknown_030042D4 _0800B9D4: .4byte sub_8010800 _0800B9D8: .4byte gUnknown_03004330 @@ -267,7 +267,7 @@ sub_800BA78: @ 800BA78 mov r6, r9 mov r5, r8 push {r5-r7} - ldr r6, _0800BAB8 @ =gUnknown_020239F8 + ldr r6, _0800BAB8 @ =gBattleTypeFlags ldrh r1, [r6] movs r5, 0x1 movs r4, 0x1 @@ -295,7 +295,7 @@ sub_800BA78: @ 800BA78 movs r0, 0x2 b _0800BD3E .align 2, 0 -_0800BAB8: .4byte gUnknown_020239F8 +_0800BAB8: .4byte gBattleTypeFlags _0800BABC: .4byte gUnknown_030042D4 _0800BAC0: .4byte sub_8010800 _0800BAC4: .4byte gUnknown_03004330 @@ -632,7 +632,7 @@ sub_800BD54: @ 800BD54 mov r6, r9 mov r5, r8 push {r5-r7} - ldr r0, _0800BD74 @ =gUnknown_020239F8 + ldr r0, _0800BD74 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -644,7 +644,7 @@ _0800BD6C: mov r8, r0 b _0800BE7E .align 2, 0 -_0800BD74: .4byte gUnknown_020239F8 +_0800BD74: .4byte gBattleTypeFlags _0800BD78: movs r5, 0 movs r0, 0x1 @@ -797,7 +797,7 @@ dp01_prepare_buffer: @ 800BE9C adds r5, r3, 0 lsls r2, 16 lsrs r2, 16 - ldr r0, _0800BEC4 @ =gUnknown_020239F8 + ldr r0, _0800BEC4 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -809,7 +809,7 @@ dp01_prepare_buffer: @ 800BE9C bl dp01_prepare_buffer_wireless_probably b _0800BF1A .align 2, 0 -_0800BEC4: .4byte gUnknown_020239F8 +_0800BEC4: .4byte gBattleTypeFlags _0800BEC8: cmp r5, 0 beq _0800BED2 @@ -1393,7 +1393,7 @@ sub_800C35C: @ 800C35C ldrb r0, [r0] cmp r0, 0 beq _0800C458 - ldr r0, _0800C390 @ =gUnknown_020239F8 + ldr r0, _0800C390 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x20 ands r0, r1 @@ -1410,7 +1410,7 @@ sub_800C35C: @ 800C35C b _0800C44C .align 2, 0 _0800C38C: .4byte gReceivedRemoteLinkPlayers -_0800C390: .4byte gUnknown_020239F8 +_0800C390: .4byte gBattleTypeFlags _0800C394: .4byte gLinkPlayers _0800C398: .4byte 0x00002211 _0800C39C: .4byte gBlockRecvBuffer @@ -1620,7 +1620,7 @@ _0800C50E: bl memcpy adds r0, r4, 0 bl sub_80155A4 - ldr r0, _0800C598 @ =gUnknown_020239F8 + ldr r0, _0800C598 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x4 ands r0, r1 @@ -1664,7 +1664,7 @@ _0800C588: .4byte gUnknown_02024A64 _0800C58C: .4byte gBitTable _0800C590: .4byte gUnknown_02023A60 _0800C594: .4byte 0x00015008 -_0800C598: .4byte gUnknown_020239F8 +_0800C598: .4byte gBattleTypeFlags _0800C59C: .4byte gUnknown_02024C07 _0800C5A0: .4byte 0x00015002 _0800C5A4: .4byte gUnknown_02024C08 @@ -2133,7 +2133,7 @@ dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes: @ 800C870 lsls r0, 24 cmp r0, 0 bne _0800C910 - ldr r0, _0800C90C @ =word_2024DB8 + ldr r0, _0800C90C @ =gBattleWeather ldrh r0, [r0] strb r0, [r7, 0xC] ands r6, r0 @@ -2144,7 +2144,7 @@ dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes: @ 800C870 .align 2, 0 _0800C904: .4byte gUnknown_03004040 _0800C908: .4byte gUnknown_02024C0E -_0800C90C: .4byte word_2024DB8 +_0800C90C: .4byte gBattleWeather _0800C910: ldr r0, _0800C944 @ =gUnknown_03004040 movs r1, 0 diff --git a/asm/rom5.s b/asm/rom5.s index 4b0947a5d..3e0ebe208 100644 --- a/asm/rom5.s +++ b/asm/rom5.s @@ -279,7 +279,7 @@ _0807AF88: lsrs r1, 16 adds r0, r4, 0 bl sub_8032984 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0807AFEC @@ -420,7 +420,7 @@ _0807B0E8: bl sub_8032350 b _0807B168 _0807B0F2: - ldr r2, _0807B108 @ =gUnknown_020239F8 + ldr r2, _0807B108 @ =gBattleTypeFlags ldrh r1, [r2] movs r0, 0x80 ands r0, r1 @@ -432,7 +432,7 @@ _0807B0F2: ldrb r0, [r0, 0x8] b _0807B122 .align 2, 0 -_0807B108: .4byte gUnknown_020239F8 +_0807B108: .4byte gBattleTypeFlags _0807B10C: .4byte gSaveBlock2 _0807B110: ldrh r1, [r2] @@ -650,7 +650,7 @@ _0807B2CC: .4byte gSprites _0807B2D0: .4byte SpriteCallbackDummy _0807B2D4: .4byte gUnknown_02024E84 _0807B2D8: - ldr r2, _0807B328 @ =gUnknown_020239F8 + ldr r2, _0807B328 @ =gBattleTypeFlags ldrh r1, [r2] movs r0, 0x80 ands r0, r1 @@ -688,7 +688,7 @@ _0807B2D8: adds r0, r6, 0 b _0807B37C .align 2, 0 -_0807B328: .4byte gUnknown_020239F8 +_0807B328: .4byte gBattleTypeFlags _0807B32C: .4byte gSaveBlock2 _0807B330: .4byte gUnknown_02024E8C _0807B334: .4byte gTrainerBackPicCoords @@ -918,7 +918,7 @@ sub_807B508: @ 807B508 bcc _0807B518 b _0807B68A _0807B518: - ldr r2, _0807B534 @ =gUnknown_020239F8 + ldr r2, _0807B534 @ =gBattleTypeFlags ldrh r1, [r2] movs r0, 0x80 ands r0, r1 @@ -930,7 +930,7 @@ _0807B518: b _0807B550 .align 2, 0 _0807B530: .4byte gUnknown_02024A68 -_0807B534: .4byte gUnknown_020239F8 +_0807B534: .4byte gBattleTypeFlags _0807B538: ldrh r1, [r2] movs r0, 0x80 @@ -976,7 +976,7 @@ _0807B58C: .4byte gUnknown_03004340 _0807B590: .4byte gUnknown_02024A6A _0807B594: .4byte gEnemyParty _0807B598: - ldr r0, _0807B5C0 @ =gUnknown_020239F8 + ldr r0, _0807B5C0 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x80 ands r0, r1 @@ -995,7 +995,7 @@ _0807B598: bl sub_8045A5C b _0807B5E4 .align 2, 0 -_0807B5C0: .4byte gUnknown_020239F8 +_0807B5C0: .4byte gBattleTypeFlags _0807B5C4: .4byte gUnknown_02024A6A _0807B5C8: .4byte gPlayerParty _0807B5CC: @@ -1065,7 +1065,7 @@ _0807B654: .4byte gUnknown_03004340 _0807B658: .4byte gUnknown_02024A6A _0807B65C: .4byte gEnemyParty _0807B660: - ldr r0, _0807B690 @ =gUnknown_020239F8 + ldr r0, _0807B690 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x80 ands r0, r1 @@ -1089,960 +1089,9 @@ _0807B68A: pop {r0} bx r0 .align 2, 0 -_0807B690: .4byte gUnknown_020239F8 +_0807B690: .4byte gBattleTypeFlags _0807B694: .4byte gUnknown_02024A6A _0807B698: .4byte gPlayerParty thumb_func_end sub_807B508 - thumb_func_start unref_sub_807B69C -unref_sub_807B69C: @ 807B69C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _0807B740 @ =gUnknown_02024BE0 - adds r0, r4, r0 - ldrb r6, [r0] - ldr r0, _0807B744 @ =sub_807B7E0 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _0807B748 @ =gBattleAnimPicTable + (136 * 8) - bl LoadCompressedObjectPic - ldr r0, _0807B74C @ =gBattleAnimPaletteTable + (136 * 8) - bl LoadCompressedObjectPalette - ldr r1, _0807B750 @ =gTasks - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r1, r0, r1 - strh r4, [r1, 0x8] - cmp r5, 0 - beq _0807B75C - movs r0, 0x1F - strh r0, [r1, 0xA] - movs r5, 0 - lsls r0, r6, 4 - ldr r7, _0807B754 @ =gSprites - adds r0, r6 - lsls r0, 2 - adds r6, r0, r7 -_0807B6F0: - movs r0, 0x20 - ldrsh r1, [r6, r0] - ldrh r2, [r6, 0x22] - adds r2, 0x20 - lsls r2, 16 - asrs r2, 16 - ldr r0, _0807B758 @ =gSpriteTemplate_83931F8 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r3, r0, r7 - lsls r0, r5, 1 - adds r0, r5 - lsls r1, r0, 4 - adds r0, r1 - strh r0, [r3, 0x2E] - movs r0, 0xFF - lsls r0, 8 - strh r0, [r3, 0x30] - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - cmp r5, 0x4 - bls _0807B734 - movs r0, 0x15 - strh r0, [r3, 0x3A] -_0807B734: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x9 - bls _0807B6F0 - b _0807B7BC - .align 2, 0 -_0807B740: .4byte gUnknown_02024BE0 -_0807B744: .4byte sub_807B7E0 -_0807B748: .4byte gBattleAnimPicTable + (136 * 8) -_0807B74C: .4byte gBattleAnimPaletteTable + (136 * 8) -_0807B750: .4byte gTasks -_0807B754: .4byte gSprites -_0807B758: .4byte gSpriteTemplate_83931F8 -_0807B75C: - movs r0, 0xF8 - lsls r0, 7 - strh r0, [r1, 0xA] - movs r5, 0 - lsls r0, r6, 4 - ldr r7, _0807B7D8 @ =gSprites - adds r0, r6 - lsls r0, 2 - adds r6, r0, r7 -_0807B76E: - movs r2, 0x20 - ldrsh r1, [r6, r2] - ldrh r2, [r6, 0x22] - subs r2, 0x20 - lsls r2, 16 - asrs r2, 16 - ldr r0, _0807B7DC @ =gSpriteTemplate_83931F8 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r3, r0, r7 - lsls r0, r5, 1 - adds r0, r5 - lsls r1, r0, 4 - adds r0, r1 - strh r0, [r3, 0x2E] - movs r0, 0x80 - lsls r0, 1 - strh r0, [r3, 0x30] - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - cmp r5, 0x4 - bls _0807B7B2 - movs r0, 0x15 - strh r0, [r3, 0x3A] -_0807B7B2: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x9 - bls _0807B76E -_0807B7BC: - ldr r0, _0807B7D8 @ =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x3C] - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0807B7D8: .4byte gSprites -_0807B7DC: .4byte gSpriteTemplate_83931F8 - thumb_func_end unref_sub_807B69C - - thumb_func_start sub_807B7E0 -sub_807B7E0: @ 807B7E0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0807B838 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r1, [r4, 0xC] - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0x2 - bne _0807B866 - movs r0, 0 - strh r0, [r4, 0xC] - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 20 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r0, 16 - ldrb r2, [r4, 0x10] - ldrh r3, [r4, 0xA] - movs r1, 0x10 - bl BlendPalette - ldrh r2, [r4, 0x12] - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0807B83C - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _0807B86A - movs r0, 0x1 - eors r0, r2 - strh r0, [r4, 0x12] - b _0807B86A - .align 2, 0 -_0807B838: .4byte gTasks -_0807B83C: - ldrh r1, [r4, 0x10] - subs r0, r1, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - bge _0807B86A - strh r1, [r4, 0x10] - movs r0, 0x1 - eors r0, r2 - strh r0, [r4, 0x12] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _0807B86A - adds r0, r5, 0 - bl DestroyTask - b _0807B86A -_0807B866: - adds r0, r1, 0x1 - strh r0, [r4, 0xC] -_0807B86A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_807B7E0 - - thumb_func_start sub_807B870 -sub_807B870: @ 807B870 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x3A] - movs r3, 0x3A - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _0807B89C - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r3] - ldr r1, _0807B898 @ =sub_807B8A4 - str r1, [r2, 0x1C] - adds r0, r2, 0 - bl _call_via_r1 - b _0807B8A0 - .align 2, 0 -_0807B898: .4byte sub_807B8A4 -_0807B89C: - subs r0, r1, 0x1 - strh r0, [r2, 0x3A] -_0807B8A0: - pop {r0} - bx r0 - thumb_func_end sub_807B870 - - thumb_func_start sub_807B8A4 -sub_807B8A4: @ 807B8A4 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x20 - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Sin - strh r0, [r4, 0x26] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x7F - bgt _0807B8D0 - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1D - b _0807B8D6 -_0807B8D0: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1F -_0807B8D6: - strb r0, [r1] - ldrh r0, [r4, 0x2E] - adds r0, 0x8 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x38] - adds r0, r1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x34 - bne _0807B918 - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0807B912 - adds r0, r4, 0 - bl DestroySpriteAndFreeResources - b _0807B918 -_0807B912: - adds r0, r4, 0 - bl DestroySprite -_0807B918: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_807B8A4 - - thumb_func_start sub_807B920 -sub_807B920: @ 807B920 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, _0807B9B0 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 8 - ldr r1, _0807B9B4 @ =0xffe00000 - adds r0, r1 - lsrs r5, r0, 16 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 8 - ldr r2, _0807B9B8 @ =0xffdc0000 - adds r0, r2 - lsrs r4, r0, 16 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _0807B95E - lsls r0, r5, 16 - ldr r1, _0807B9BC @ =0xfffa0000 - adds r0, r1 - lsrs r5, r0, 16 -_0807B95E: - ldr r1, _0807B9C0 @ =REG_BLDCNT - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _0807B9C4 @ =gSpriteTemplate_83931E0 - lsls r1, r5, 16 - asrs r1, 16 - lsls r2, r4, 16 - asrs r2, 16 - movs r3, 0x4 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _0807B9C8 @ =gSprites - adds r0, r1 - ldr r1, _0807B9CC @ =gUnknown_083931D8 - bl SetSubspriteTables - ldr r1, _0807B9D0 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - strh r4, [r0, 0x26] - ldr r1, _0807B9D4 @ =sub_807B9D8 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0807B9B0: .4byte gUnknown_0202F7C9 -_0807B9B4: .4byte 0xffe00000 -_0807B9B8: .4byte 0xffdc0000 -_0807B9BC: .4byte 0xfffa0000 -_0807B9C0: .4byte REG_BLDCNT -_0807B9C4: .4byte gSpriteTemplate_83931E0 -_0807B9C8: .4byte gSprites -_0807B9CC: .4byte gUnknown_083931D8 -_0807B9D0: .4byte gTasks -_0807B9D4: .4byte sub_807B9D8 - thumb_func_end sub_807B920 - - thumb_func_start sub_807B9D8 -sub_807B9D8: @ 807B9D8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0807BA04 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - adds r2, r0, 0 - strh r0, [r1, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _0807BA0C - ldr r0, _0807BA08 @ =sub_807BA24 - str r0, [r1] - movs r0, 0 - strh r0, [r1, 0xA] - b _0807BA1C - .align 2, 0 -_0807BA04: .4byte gTasks -_0807BA08: .4byte sub_807BA24 -_0807BA0C: - lsls r0, r2, 24 - lsrs r0, 24 - ldr r2, _0807BA20 @ =REG_BLDALPHA - movs r1, 0x10 - subs r1, r0 - lsls r1, 8 - orrs r1, r0 - strh r1, [r2] -_0807BA1C: - pop {r0} - bx r0 - .align 2, 0 -_0807BA20: .4byte REG_BLDALPHA - thumb_func_end sub_807B9D8 - - thumb_func_start sub_807BA24 -sub_807BA24: @ 807BA24 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0807BABC @ =0x0000271a - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _0807BAC0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - ldrh r0, [r5, 0xA] - adds r1, r0, 0x1 - strh r1, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xD - ble _0807BAB4 - ldrh r0, [r5, 0xC] - adds r0, 0x1 - movs r6, 0 - strh r0, [r5, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _0807BAB4 - ldr r3, _0807BAC4 @ =gPlttBufferFaded - lsls r2, 4 - mov r12, r2 - ldr r1, _0807BAC8 @ =0x0000010d - add r1, r12 - lsls r1, 1 - adds r1, r3 - ldrh r4, [r1] - movs r2, 0x87 - lsls r2, 1 - add r2, r12 - lsls r2, 1 - adds r2, r3 - ldrh r0, [r2] - strh r0, [r1] - ldr r0, _0807BACC @ =0x0000010f - add r0, r12 - lsls r0, 1 - adds r0, r3 - ldrh r1, [r0] - strh r1, [r2] - strh r4, [r0] - strh r6, [r5, 0xC] - ldrh r0, [r5, 0xE] - adds r0, 0x1 - strh r0, [r5, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _0807BAB4 - strh r6, [r5, 0xE] - strh r6, [r5, 0xA] - ldrh r0, [r5, 0x10] - adds r0, 0x1 - strh r0, [r5, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _0807BAB4 - movs r0, 0x9 - strh r0, [r5, 0xA] - ldr r0, _0807BAD0 @ =sub_807BAD4 - str r0, [r5] -_0807BAB4: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0807BABC: .4byte 0x0000271a -_0807BAC0: .4byte gTasks -_0807BAC4: .4byte gPlttBufferFaded -_0807BAC8: .4byte 0x0000010d -_0807BACC: .4byte 0x0000010f -_0807BAD0: .4byte sub_807BAD4 - thumb_func_end sub_807BA24 - - thumb_func_start sub_807BAD4 -sub_807BAD4: @ 807BAD4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0807BB04 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r2, r1, r2 - ldrh r0, [r2, 0xA] - subs r0, 0x1 - adds r3, r0, 0 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _0807BB0C - ldr r0, _0807BB08 @ =sub_807BB24 - str r0, [r2] - movs r0, 0 - strh r0, [r2, 0xA] - b _0807BB1C - .align 2, 0 -_0807BB04: .4byte gTasks -_0807BB08: .4byte sub_807BB24 -_0807BB0C: - lsls r0, r3, 24 - lsrs r0, 24 - ldr r2, _0807BB20 @ =REG_BLDALPHA - movs r1, 0x10 - subs r1, r0 - lsls r1, 8 - orrs r1, r0 - strh r1, [r2] -_0807BB1C: - pop {r0} - bx r0 - .align 2, 0 -_0807BB20: .4byte REG_BLDALPHA - thumb_func_end sub_807BAD4 - - thumb_func_start sub_807BB24 -sub_807BB24: @ 807BB24 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - ldr r1, _0807BB64 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0, r1 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - movs r3, 0 - strh r0, [r1, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x25 - bne _0807BB6C - ldrh r0, [r1, 0x26] - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _0807BB68 @ =gSprites - adds r4, r0 - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite - b _0807BB7E - .align 2, 0 -_0807BB64: .4byte gTasks -_0807BB68: .4byte gSprites -_0807BB6C: - cmp r0, 0x27 - bne _0807BB7E - ldr r0, _0807BB84 @ =REG_BLDCNT - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - adds r0, r2, 0 - bl move_anim_task_del -_0807BB7E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807BB84: .4byte REG_BLDCNT - thumb_func_end sub_807BB24 - - thumb_func_start sub_807BB88 -sub_807BB88: @ 807BB88 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r3, 0 - ldr r0, _0807BBA8 @ =0x02017840 - ldrh r0, [r0] - subs r0, 0xF - cmp r0, 0x2B - bls _0807BB9C - b _0807BD20 -_0807BB9C: - lsls r0, 2 - ldr r1, _0807BBAC @ =_0807BBB0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807BBA8: .4byte 0x02017840 -_0807BBAC: .4byte _0807BBB0 - .align 2, 0 -_0807BBB0: - .4byte _0807BC60 - .4byte _0807BC66 - .4byte _0807BC6C - .4byte _0807BC72 - .4byte _0807BC78 - .4byte _0807BC7E - .4byte _0807BC84 - .4byte _0807BC8A - .4byte _0807BC90 - .4byte _0807BC96 - .4byte _0807BC9C - .4byte _0807BCA2 - .4byte _0807BCA8 - .4byte _0807BCAE - .4byte _0807BD20 - .4byte _0807BD20 - .4byte _0807BD20 - .4byte _0807BD20 - .4byte _0807BD20 - .4byte _0807BD20 - .4byte _0807BD20 - .4byte _0807BD20 - .4byte _0807BD20 - .4byte _0807BD20 - .4byte _0807BCB4 - .4byte _0807BCB8 - .4byte _0807BCBC - .4byte _0807BCC0 - .4byte _0807BCC4 - .4byte _0807BCC8 - .4byte _0807BCCC - .4byte _0807BCD0 - .4byte _0807BCD8 - .4byte _0807BCE0 - .4byte _0807BCE8 - .4byte _0807BCF0 - .4byte _0807BCF8 - .4byte _0807BD00 - .4byte _0807BD20 - .4byte _0807BD20 - .4byte _0807BD08 - .4byte _0807BD0C - .4byte _0807BD10 - .4byte _0807BD18 -_0807BC60: - movs r5, 0 - movs r2, 0 - b _0807BD28 -_0807BC66: - movs r5, 0 - movs r2, 0x1 - b _0807BD28 -_0807BC6C: - movs r5, 0 - movs r2, 0x3 - b _0807BD28 -_0807BC72: - movs r5, 0 - movs r2, 0x5 - b _0807BD28 -_0807BC78: - movs r5, 0 - movs r2, 0x6 - b _0807BD28 -_0807BC7E: - movs r5, 0 - movs r2, 0x2 - b _0807BD28 -_0807BC84: - movs r5, 0 - movs r2, 0x4 - b _0807BD28 -_0807BC8A: - movs r5, 0x1 - movs r2, 0 - b _0807BD28 -_0807BC90: - movs r5, 0x1 - movs r2, 0x1 - b _0807BD28 -_0807BC96: - movs r5, 0x1 - movs r2, 0x3 - b _0807BD28 -_0807BC9C: - movs r5, 0x1 - movs r2, 0x5 - b _0807BD28 -_0807BCA2: - movs r5, 0x1 - movs r2, 0x6 - b _0807BD28 -_0807BCA8: - movs r5, 0x1 - movs r2, 0x2 - b _0807BD28 -_0807BCAE: - movs r5, 0x1 - movs r2, 0x4 - b _0807BD28 -_0807BCB4: - movs r5, 0 - b _0807BCD2 -_0807BCB8: - movs r5, 0 - b _0807BCDA -_0807BCBC: - movs r5, 0 - b _0807BCE2 -_0807BCC0: - movs r5, 0 - b _0807BCEA -_0807BCC4: - movs r5, 0 - b _0807BCF2 -_0807BCC8: - movs r5, 0 - b _0807BCFA -_0807BCCC: - movs r5, 0 - b _0807BD02 -_0807BCD0: - movs r5, 0x1 -_0807BCD2: - movs r2, 0 - movs r3, 0x1 - b _0807BD28 -_0807BCD8: - movs r5, 0x1 -_0807BCDA: - movs r2, 0x1 - movs r3, 0x1 - b _0807BD28 -_0807BCE0: - movs r5, 0x1 -_0807BCE2: - movs r2, 0x3 - movs r3, 0x1 - b _0807BD28 -_0807BCE8: - movs r5, 0x1 -_0807BCEA: - movs r2, 0x5 - movs r3, 0x1 - b _0807BD28 -_0807BCF0: - movs r5, 0x1 -_0807BCF2: - movs r2, 0x6 - movs r3, 0x1 - b _0807BD28 -_0807BCF8: - movs r5, 0x1 -_0807BCFA: - movs r2, 0x2 - movs r3, 0x1 - b _0807BD28 -_0807BD00: - movs r5, 0x1 -_0807BD02: - movs r2, 0x4 - movs r3, 0x1 - b _0807BD28 -_0807BD08: - movs r5, 0 - b _0807BD12 -_0807BD0C: - movs r5, 0 - b _0807BD1A -_0807BD10: - movs r5, 0x1 -_0807BD12: - movs r2, 0xFF - movs r3, 0 - b _0807BD28 -_0807BD18: - movs r5, 0x1 -_0807BD1A: - movs r2, 0xFF - movs r3, 0x1 - b _0807BD28 -_0807BD20: - adds r0, r4, 0 - bl move_anim_task_del - b _0807BD4A -_0807BD28: - ldr r0, _0807BD50 @ =gUnknown_03004B00 - movs r1, 0 - strh r5, [r0] - strh r2, [r0, 0x2] - strh r1, [r0, 0x4] - strh r1, [r0, 0x6] - strh r3, [r0, 0x8] - ldr r1, _0807BD54 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0807BD58 @ =sub_80E32E0 - str r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 -_0807BD4A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0807BD50: .4byte gUnknown_03004B00 -_0807BD54: .4byte gTasks -_0807BD58: .4byte sub_80E32E0 - thumb_func_end sub_807BB88 - - thumb_func_start move_anim_start_t2 -move_anim_start_t2: @ 807BD5C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _0807BD98 @ =gUnknown_0202F7C8 - strb r4, [r0] - ldr r0, _0807BD9C @ =gUnknown_0202F7C9 - strb r4, [r0] - ldr r0, _0807BDA0 @ =gBattleAnims_StatusConditions - movs r2, 0 - bl move_something - ldr r0, _0807BDA4 @ =sub_807BDAC - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0807BDA8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807BD98: .4byte gUnknown_0202F7C8 -_0807BD9C: .4byte gUnknown_0202F7C9 -_0807BDA0: .4byte gBattleAnims_StatusConditions -_0807BDA4: .4byte sub_807BDAC -_0807BDA8: .4byte gTasks - thumb_func_end move_anim_start_t2 - - thumb_func_start sub_807BDAC -sub_807BDAC: @ 807BDAC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0807BDF0 @ =gUnknown_0202F7AC - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _0807BDF4 @ =gUnknown_0202F7B1 - ldrb r0, [r0] - cmp r0, 0 - bne _0807BDEA - ldr r1, _0807BDF8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x8 - ldrsh r0, [r0, r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r0, _0807BDFC @ =0x02017810 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, 0 - bl DestroyTask -_0807BDEA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807BDF0: .4byte gUnknown_0202F7AC -_0807BDF4: .4byte gUnknown_0202F7B1 -_0807BDF8: .4byte gTasks -_0807BDFC: .4byte 0x02017810 - thumb_func_end sub_807BDAC - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom6.s b/asm/rom6.s index ad1e71be5..16899bf2e 100644 --- a/asm/rom6.s +++ b/asm/rom6.s @@ -342,7 +342,7 @@ FldEff_RockSmash: @ 810B55C strh r0, [r1, 0x18] strh r2, [r1, 0x1A] movs r0, 0x13 - bl sav12_xor_increment + bl IncrementGameStat movs r0, 0 pop {r1} bx r1 @@ -423,7 +423,7 @@ FldEff_UseDig: @ 810B5F8 lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] - bl sub_81473B8 + bl ShouldDoBrailleDigEffect lsls r0, 24 cmp r0, 0 bne _0810B624 @@ -443,12 +443,12 @@ sub_810B634: @ 810B634 push {r4,lr} movs r0, 0x26 bl FieldEffectActiveListRemove - bl sub_81473B8 + bl ShouldDoBrailleDigEffect lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _0810B64E - bl sub_8147408 + bl DoBrailleDigEffect b _0810B666 _0810B64E: ldr r0, _0810B66C @ =task08_080A1C44 @@ -471,9393 +471,4 @@ _0810B66C: .4byte task08_080A1C44 _0810B670: .4byte gTasks thumb_func_end sub_810B634 - thumb_func_start sub_810B674 -sub_810B674: @ 810B674 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - bl RunTasks - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_810B674 - - thumb_func_start sub_810B68C -sub_810B68C: @ 810B68C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - ldr r1, _0810B6B0 @ =gBGTilemapBuffers + 0x1000 - ldr r2, _0810B6B4 @ =0x06007800 - ldr r0, _0810B6B8 @ =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _0810B6BC @ =0x80000400 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - pop {r0} - bx r0 - .align 2, 0 -_0810B6B0: .4byte gBGTilemapBuffers + 0x1000 -_0810B6B4: .4byte 0x06007800 -_0810B6B8: .4byte 0x040000d4 -_0810B6BC: .4byte 0x80000400 - thumb_func_end sub_810B68C - - thumb_func_start sub_810B6C0 -sub_810B6C0: @ 810B6C0 - push {r4,lr} - sub sp, 0x4 - ldr r0, _0810B6DC @ =gMain - ldr r1, _0810B6E0 @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x12 - bls _0810B6D2 - b _0810B960 -_0810B6D2: - lsls r0, 2 - ldr r1, _0810B6E4 @ =_0810B6E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810B6DC: .4byte gMain -_0810B6E0: .4byte 0x0000043c -_0810B6E4: .4byte _0810B6E8 - .align 2, 0 -_0810B6E8: - .4byte _0810B734 - .4byte _0810B764 - .4byte _0810B76A - .4byte _0810B78C - .4byte _0810B792 - .4byte _0810B7B4 - .4byte _0810B7C0 - .4byte _0810B7DC - .4byte _0810B7E8 - .4byte _0810B804 - .4byte _0810B810 - .4byte _0810B830 - .4byte _0810B84C - .4byte _0810B86A - .4byte _0810B894 - .4byte _0810B89E - .4byte _0810B8C4 - .4byte _0810B914 - .4byte _0810B934 -_0810B734: - bl sub_80F9438 - bl sub_80F9368 - ldr r1, _0810B754 @ =REG_BG2CNT - ldr r2, _0810B758 @ =0x00000f0a - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x44 - movs r0, 0 - strh r0, [r1] - ldr r1, _0810B75C @ =gMain - ldr r0, _0810B760 @ =0x0000043c - adds r1, r0 - b _0810B922 - .align 2, 0 -_0810B754: .4byte REG_BG2CNT -_0810B758: .4byte 0x00000f0a -_0810B75C: .4byte gMain -_0810B760: .4byte 0x0000043c -_0810B764: - bl remove_some_task - b _0810B91C -_0810B76A: - bl ResetPaletteFade - ldr r2, _0810B780 @ =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - ldr r1, _0810B784 @ =gMain - ldr r0, _0810B788 @ =0x0000043c - adds r1, r0 - b _0810B922 - .align 2, 0 -_0810B780: .4byte gPaletteFade -_0810B784: .4byte gMain -_0810B788: .4byte 0x0000043c -_0810B78C: - bl ResetSpriteData - b _0810B91C -_0810B792: - ldr r0, _0810B7A8 @ =gUnknown_02039244 - ldrb r0, [r0] - cmp r0, 0x2 - beq _0810B79E - bl ResetTasks -_0810B79E: - ldr r1, _0810B7AC @ =gMain - ldr r0, _0810B7B0 @ =0x0000043c - adds r1, r0 - b _0810B922 - .align 2, 0 -_0810B7A8: .4byte gUnknown_02039244 -_0810B7AC: .4byte gMain -_0810B7B0: .4byte 0x0000043c -_0810B7B4: - ldr r0, _0810B7BC @ =gWindowConfig_81E6E34 - bl SetUpWindowConfig - b _0810B91C - .align 2, 0 -_0810B7BC: .4byte gWindowConfig_81E6E34 -_0810B7C0: - ldr r0, _0810B7D0 @ =gWindowConfig_81E6E50 - bl SetUpWindowConfig - ldr r1, _0810B7D4 @ =gMain - ldr r0, _0810B7D8 @ =0x0000043c - adds r1, r0 - b _0810B922 - .align 2, 0 -_0810B7D0: .4byte gWindowConfig_81E6E50 -_0810B7D4: .4byte gMain -_0810B7D8: .4byte 0x0000043c -_0810B7DC: - ldr r0, _0810B7E4 @ =gWindowConfig_81E6E34 - bl MultistepInitMenuWindowBegin - b _0810B91C - .align 2, 0 -_0810B7E4: .4byte gWindowConfig_81E6E34 -_0810B7E8: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - bne _0810B7F2 - b _0810B960 -_0810B7F2: - ldr r1, _0810B7FC @ =gMain - ldr r0, _0810B800 @ =0x0000043c - adds r1, r0 - b _0810B922 - .align 2, 0 -_0810B7FC: .4byte gMain -_0810B800: .4byte 0x0000043c -_0810B804: - ldr r0, _0810B80C @ =gWindowConfig_81E6E50 - bl MultistepInitMenuWindowBegin - b _0810B91C - .align 2, 0 -_0810B80C: .4byte gWindowConfig_81E6E50 -_0810B810: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - bne _0810B81A - b _0810B960 -_0810B81A: - ldr r0, _0810B828 @ =0x02000000 - ldr r1, _0810B82C @ =0x0001ffff - adds r0, r1 - movs r1, 0 - strb r1, [r0] - b _0810B91C - .align 2, 0 -_0810B828: .4byte 0x02000000 -_0810B82C: .4byte 0x0001ffff -_0810B830: - bl sub_810B998 - lsls r0, 24 - cmp r0, 0 - bne _0810B83C - b _0810B960 -_0810B83C: - ldr r1, _0810B844 @ =gMain - ldr r0, _0810B848 @ =0x0000043c - adds r1, r0 - b _0810B922 - .align 2, 0 -_0810B844: .4byte gMain -_0810B848: .4byte 0x0000043c -_0810B84C: - bl sub_80F944C - bl LoadScrollIndicatorPalette - movs r0, 0 - movs r1, 0xB0 - movs r2, 0x8 - bl CreateVerticalScrollIndicators - movs r0, 0x1 - movs r1, 0xB0 - movs r2, 0x98 - bl CreateVerticalScrollIndicators - b _0810B91C -_0810B86A: - movs r0, 0x38 - movs r1, 0x40 - movs r2, 0 - bl sub_810BA50 - ldr r1, _0810B884 @ =0x02000000 - ldr r2, _0810B888 @ =0x0001fffe - adds r1, r2 - strb r0, [r1] - ldr r1, _0810B88C @ =gMain - ldr r0, _0810B890 @ =0x0000043c - adds r1, r0 - b _0810B922 - .align 2, 0 -_0810B884: .4byte 0x02000000 -_0810B888: .4byte 0x0001fffe -_0810B88C: .4byte gMain -_0810B890: .4byte 0x0000043c -_0810B894: - bl sub_810BC98 - bl sub_810BD08 - b _0810B91C -_0810B89E: - bl sub_810BB0C - bl sub_810BB30 - ldr r0, _0810B8B8 @ =gUnknown_02039248 - ldrb r0, [r0, 0x1] - bl sub_810BC84 - ldr r1, _0810B8BC @ =gMain - ldr r0, _0810B8C0 @ =0x0000043c - adds r1, r0 - b _0810B922 - .align 2, 0 -_0810B8B8: .4byte gUnknown_02039248 -_0810B8BC: .4byte gMain -_0810B8C0: .4byte 0x0000043c -_0810B8C4: - ldr r3, _0810B8FC @ =0x04000208 - ldrh r2, [r3] - movs r0, 0 - strh r0, [r3] - ldr r4, _0810B900 @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _0810B904 @ =REG_DISPSTAT - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r0, _0810B908 @ =sub_810B68C - bl SetVBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xBA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _0810B90C @ =gMain - ldr r0, _0810B910 @ =0x0000043c - adds r1, r0 - b _0810B922 - .align 2, 0 -_0810B8FC: .4byte 0x04000208 -_0810B900: .4byte 0x04000200 -_0810B904: .4byte REG_DISPSTAT -_0810B908: .4byte sub_810B68C -_0810B90C: .4byte gMain -_0810B910: .4byte 0x0000043c -_0810B914: - bl sub_8055870 - cmp r0, 0x1 - beq _0810B960 -_0810B91C: - ldr r1, _0810B92C @ =gMain - ldr r2, _0810B930 @ =0x0000043c - adds r1, r2 -_0810B922: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0810B960 - .align 2, 0 -_0810B92C: .4byte gMain -_0810B930: .4byte 0x0000043c -_0810B934: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r2, _0810B958 @ =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - ldr r0, _0810B95C @ =sub_810B674 - bl SetMainCallback2 - movs r0, 0x1 - b _0810B962 - .align 2, 0 -_0810B958: .4byte gPaletteFade -_0810B95C: .4byte sub_810B674 -_0810B960: - movs r0, 0 -_0810B962: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810B6C0 - - thumb_func_start sub_810B96C -sub_810B96C: @ 810B96C - push {lr} -_0810B96E: - bl sub_810B6C0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0810B988 - ldr r0, _0810B984 @ =sub_810BF7C - movs r1, 0 - bl CreateTask - b _0810B994 - .align 2, 0 -_0810B984: .4byte sub_810BF7C -_0810B988: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0810B96E -_0810B994: - pop {r0} - bx r0 - thumb_func_end sub_810B96C - - thumb_func_start sub_810B998 -sub_810B998: @ 810B998 - push {lr} - ldr r0, _0810B9B0 @ =0x02000000 - ldr r1, _0810B9B4 @ =0x0001ffff - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x4 - bhi _0810BA48 - lsls r0, 2 - ldr r1, _0810B9B8 @ =_0810B9BC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810B9B0: .4byte 0x02000000 -_0810B9B4: .4byte 0x0001ffff -_0810B9B8: .4byte _0810B9BC - .align 2, 0 -_0810B9BC: - .4byte _0810B9D0 - .4byte _0810B9E4 - .4byte _0810B9F8 - .4byte _0810BA08 - .4byte _0810BA28 -_0810B9D0: - ldr r0, _0810B9DC @ =gMenuPokeblock_Gfx - ldr r1, _0810B9E0 @ =0x06008000 - bl LZDecompressVram - b _0810BA0E - .align 2, 0 -_0810B9DC: .4byte gMenuPokeblock_Gfx -_0810B9E0: .4byte 0x06008000 -_0810B9E4: - ldr r0, _0810B9F0 @ =gMenuPokeblock_Tilemap - ldr r1, _0810B9F4 @ =gBGTilemapBuffers + 0x1000 - bl sub_800D238 - b _0810BA0E - .align 2, 0 -_0810B9F0: .4byte gMenuPokeblock_Tilemap -_0810B9F4: .4byte gBGTilemapBuffers + 0x1000 -_0810B9F8: - ldr r0, _0810BA04 @ =gMenuPokeblock_Pal - movs r1, 0 - movs r2, 0xC0 - bl LoadCompressedPalette - b _0810BA0E - .align 2, 0 -_0810BA04: .4byte gMenuPokeblock_Pal -_0810BA08: - ldr r0, _0810BA1C @ =gUnknown_083F7F74 - bl LoadCompressedObjectPic -_0810BA0E: - ldr r1, _0810BA20 @ =0x02000000 - ldr r0, _0810BA24 @ =0x0001ffff - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0810BA48 - .align 2, 0 -_0810BA1C: .4byte gUnknown_083F7F74 -_0810BA20: .4byte 0x02000000 -_0810BA24: .4byte 0x0001ffff -_0810BA28: - ldr r0, _0810BA3C @ =gUnknown_083F7F7C - bl LoadCompressedObjectPalette - ldr r0, _0810BA40 @ =0x02000000 - ldr r1, _0810BA44 @ =0x0001ffff - adds r0, r1 - movs r1, 0 - strb r1, [r0] - movs r0, 0x1 - b _0810BA4A - .align 2, 0 -_0810BA3C: .4byte gUnknown_083F7F7C -_0810BA40: .4byte 0x02000000 -_0810BA44: .4byte 0x0001ffff -_0810BA48: - movs r0, 0 -_0810BA4A: - pop {r1} - bx r1 - thumb_func_end sub_810B998 - - thumb_func_start sub_810BA50 -sub_810BA50: @ 810BA50 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r3, r2, 0 - lsls r3, 24 - lsrs r3, 24 - ldr r0, _0810BA78 @ =gSpriteTemplate_83F7F84 - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - adds r1, r4, 0 - adds r2, r5, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0810BA78: .4byte gSpriteTemplate_83F7F84 - thumb_func_end sub_810BA50 - - thumb_func_start sub_810BA7C -sub_810BA7C: @ 810BA7C - push {lr} - ldr r1, _0810BA98 @ =gUnknown_02039244 - strb r0, [r1] - ldrb r2, [r1] - cmp r2, 0x2 - beq _0810BAA8 - cmp r2, 0x3 - beq _0810BAC0 - ldr r1, _0810BA9C @ =gUnknown_03000758 - ldr r0, _0810BAA0 @ =gUnknown_083F7F1C - str r0, [r1] - ldr r1, _0810BAA4 @ =gUnknown_0203924C - movs r0, 0x3 - b _0810BACA - .align 2, 0 -_0810BA98: .4byte gUnknown_02039244 -_0810BA9C: .4byte gUnknown_03000758 -_0810BAA0: .4byte gUnknown_083F7F1C -_0810BAA4: .4byte gUnknown_0203924C -_0810BAA8: - ldr r0, _0810BAB4 @ =gUnknown_03000758 - ldr r1, _0810BAB8 @ =gUnknown_083F7F1F - str r1, [r0] - ldr r0, _0810BABC @ =gUnknown_0203924C - strb r2, [r0] - b _0810BACC - .align 2, 0 -_0810BAB4: .4byte gUnknown_03000758 -_0810BAB8: .4byte gUnknown_083F7F1F -_0810BABC: .4byte gUnknown_0203924C -_0810BAC0: - ldr r1, _0810BAD0 @ =gUnknown_03000758 - ldr r0, _0810BAD4 @ =gUnknown_083F7F21 - str r0, [r1] - ldr r1, _0810BAD8 @ =gUnknown_0203924C - movs r0, 0x2 -_0810BACA: - strb r0, [r1] -_0810BACC: - pop {r0} - bx r0 - .align 2, 0 -_0810BAD0: .4byte gUnknown_03000758 -_0810BAD4: .4byte gUnknown_083F7F21 -_0810BAD8: .4byte gUnknown_0203924C - thumb_func_end sub_810BA7C - - thumb_func_start sub_810BADC -sub_810BADC: @ 810BADC - push {lr} - movs r0, 0x2 - bl sub_810BA7C - ldr r0, _0810BAF0 @ =sub_810B96C - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0810BAF0: .4byte sub_810B96C - thumb_func_end sub_810BADC - - thumb_func_start sub_810BAF4 -sub_810BAF4: @ 810BAF4 - push {lr} - movs r0, 0x3 - bl sub_810BA7C - ldr r0, _0810BB08 @ =sub_810B96C - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0810BB08: .4byte sub_810B96C - thumb_func_end sub_810BAF4 - - thumb_func_start sub_810BB0C -sub_810BB0C: @ 810BB0C - push {lr} - ldr r0, _0810BB28 @ =gWindowConfig_81E6E34 - bl BasicInitMenuWindow - ldr r0, _0810BB2C @ =0x00000111 - bl ItemId_GetItem - movs r1, 0x2 - movs r2, 0x1 - movs r3, 0x48 - bl sub_8072BD8 - pop {r0} - bx r0 - .align 2, 0 -_0810BB28: .4byte gWindowConfig_81E6E34 -_0810BB2C: .4byte 0x00000111 - thumb_func_end sub_810BB0C - - thumb_func_start sub_810BB30 -sub_810BB30: @ 810BB30 - push {lr} - ldr r0, _0810BB70 @ =gWindowConfig_81E6E34 - bl BasicInitMenuWindow - ldr r0, _0810BB74 @ =gContestStatsText_Spicy - movs r1, 0x2 - movs r2, 0xD - bl MenuPrint - ldr r0, _0810BB78 @ =gContestStatsText_Dry - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - ldr r0, _0810BB7C @ =gContestStatsText_Sweet - movs r1, 0x2 - movs r2, 0x11 - bl MenuPrint - ldr r0, _0810BB80 @ =gContestStatsText_Bitter - movs r1, 0x8 - movs r2, 0xD - bl MenuPrint - ldr r0, _0810BB84 @ =gContestStatsText_Sour - movs r1, 0x8 - movs r2, 0xF - bl MenuPrint - pop {r0} - bx r0 - .align 2, 0 -_0810BB70: .4byte gWindowConfig_81E6E34 -_0810BB74: .4byte gContestStatsText_Spicy -_0810BB78: .4byte gContestStatsText_Dry -_0810BB7C: .4byte gContestStatsText_Sweet -_0810BB80: .4byte gContestStatsText_Bitter -_0810BB84: .4byte gContestStatsText_Sour - thumb_func_end sub_810BB30 - - thumb_func_start sub_810BB88 -sub_810BB88: @ 810BB88 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _0810BBF4 @ =gWindowConfig_81E6E34 - bl BasicInitMenuWindow - mov r6, r8 - adds r0, r6, 0 - adds r0, 0x8 - cmp r6, r0 - bgt _0810BC6C - ldr r0, _0810BBF8 @ =gStringVar1 - mov r9, r0 - ldr r1, _0810BBFC @ =gSaveBlock1 - mov r10, r1 -_0810BBB0: - mov r1, r8 - subs r0, r6, r1 - lsls r0, 25 - lsrs r7, r0, 24 - ldr r0, _0810BC00 @ =gUnknown_02039248 - ldrb r0, [r0, 0x2] - cmp r6, r0 - bne _0810BC08 - mov r0, r9 - ldr r1, _0810BC04 @ =gContestStatsText_StowCase - movs r2, 0x78 - movs r3, 0 - bl sub_8072C74 - movs r2, 0x1 - orrs r2, r7 - mov r0, r9 - movs r1, 0xF - bl MenuPrint - mov r0, r8 - adds r0, 0x8 - cmp r6, r0 - beq _0810BC6C - adds r1, r7, 0x3 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0xF - movs r2, 0x1D - movs r3, 0x12 - bl MenuZeroFillWindowRect - b _0810BC6C - .align 2, 0 -_0810BBF4: .4byte gWindowConfig_81E6E34 -_0810BBF8: .4byte gStringVar1 -_0810BBFC: .4byte gSaveBlock1 -_0810BC00: .4byte gUnknown_02039248 -_0810BC04: .4byte gContestStatsText_StowCase -_0810BC08: - lsls r5, r6, 3 - mov r1, r10 - adds r0, r5, r1 - movs r1, 0xFF - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 2 - ldr r1, _0810BC7C @ =gPokeblockNames - adds r0, r1 - ldr r1, [r0] - mov r0, r9 - movs r2, 0x5E - movs r3, 0 - bl sub_8072C74 - adds r4, r0, 0 - movs r0, 0xFC - strb r0, [r4] - movs r0, 0x14 - strb r0, [r4, 0x1] - movs r0, 0x6 - strb r0, [r4, 0x2] - adds r4, 0x3 - ldr r0, _0810BC80 @ =gSaveBlock1 + 0x7F8 - adds r5, r0 - adds r0, r5, 0 - bl sub_810C9B0 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r2, 0x1 - orrs r2, r7 - mov r0, r9 - movs r1, 0xF - bl MenuPrint - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - mov r0, r8 - adds r0, 0x8 - cmp r6, r0 - ble _0810BBB0 -_0810BC6C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810BC7C: .4byte gPokeblockNames -_0810BC80: .4byte gSaveBlock1 + 0x7F8 - thumb_func_end sub_810BB88 - - thumb_func_start sub_810BC84 -sub_810BC84: @ 810BC84 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_810BB88 - movs r0, 0 - bl sub_810BDAC - pop {r0} - bx r0 - thumb_func_end sub_810BC84 - - thumb_func_start sub_810BC98 -sub_810BC98: @ 810BC98 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r2, 0 - ldr r0, _0810BD00 @ =gSaveBlock1 - mov r9, r0 -_0810BCA6: - adds r1, r2, 0x1 - lsls r0, r1, 16 - lsrs r5, r0, 16 - mov r8, r1 - cmp r5, 0x27 - bhi _0810BCE8 - lsls r1, r2, 3 - mov r2, r9 - adds r0, r1, r2 - movs r2, 0xFF - lsls r2, 3 - adds r7, r0, r2 - ldr r0, _0810BD04 @ =gSaveBlock1 + 0x7F8 - mov r12, r0 - adds r6, r1, r0 -_0810BCC4: - ldrb r0, [r7] - cmp r0, 0 - bne _0810BCDE - ldr r3, [r6] - ldr r4, [r6, 0x4] - lsls r2, r5, 3 - add r2, r12 - ldr r0, [r2] - ldr r1, [r2, 0x4] - str r0, [r6] - str r1, [r6, 0x4] - str r3, [r2] - str r4, [r2, 0x4] -_0810BCDE: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x27 - bls _0810BCC4 -_0810BCE8: - mov r1, r8 - lsls r0, r1, 16 - lsrs r2, r0, 16 - cmp r2, 0x26 - bls _0810BCA6 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810BD00: .4byte gSaveBlock1 -_0810BD04: .4byte gSaveBlock1 + 0x7F8 - thumb_func_end sub_810BC98 - - thumb_func_start sub_810BD08 -sub_810BD08: @ 810BD08 - push {r4,r5,lr} - ldr r1, _0810BD5C @ =gUnknown_02039248 - movs r0, 0 - strb r0, [r1, 0x2] - movs r2, 0 - ldr r5, _0810BD60 @ =gSaveBlock1 - movs r4, 0xFF - lsls r4, 3 - adds r3, r1, 0 -_0810BD1A: - lsls r0, r2, 3 - adds r0, r5 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _0810BD2C - ldrb r0, [r3, 0x2] - adds r0, 0x1 - strb r0, [r3, 0x2] -_0810BD2C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x27 - bls _0810BD1A - ldrb r0, [r1, 0x2] - cmp r0, 0x7 - bls _0810BD3E - movs r0, 0x8 -_0810BD3E: - strb r0, [r1, 0x3] - ldrb r2, [r1, 0x1] - adds r0, r2, 0 - adds r0, 0x8 - ldrb r3, [r1, 0x2] - cmp r0, r3 - ble _0810BD54 - cmp r2, 0 - beq _0810BD54 - subs r0, r2, 0x1 - strb r0, [r1, 0x1] -_0810BD54: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810BD5C: .4byte gUnknown_02039248 -_0810BD60: .4byte gSaveBlock1 - thumb_func_end sub_810BD08 - - thumb_func_start sub_810BD64 -sub_810BD64: @ 810BD64 - push {r4,r5,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r5, _0810BDA4 @ =gUnknown_02039248 - ldr r4, _0810BDA8 @ =gBGTilemapBuffers + 0x1000 -_0810BD70: - ldrb r0, [r5] - lsls r0, 1 - adds r0, 0x1 - lsls r0, 5 - adds r1, r2, 0 - adds r1, 0xF - adds r0, r1 - lsls r0, 1 - adds r0, r4 - strh r3, [r0] - ldrb r0, [r5] - lsls r0, 6 - adds r0, 0x40 - adds r0, r1 - lsls r0, 1 - adds r0, r4 - strh r3, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xD - bls _0810BD70 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810BDA4: .4byte gUnknown_02039248 -_0810BDA8: .4byte gBGTilemapBuffers + 0x1000 - thumb_func_end sub_810BD64 - - thumb_func_start sub_810BDAC -sub_810BDAC: @ 810BDAC - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - cmp r0, 0 - bne _0810BDCC - ldr r0, _0810BDC4 @ =0x00001005 - ldr r1, _0810BDC8 @ =0x00001014 - bl sub_810BD64 - b _0810BDD4 - .align 2, 0 -_0810BDC4: .4byte 0x00001005 -_0810BDC8: .4byte 0x00001014 -_0810BDCC: - ldr r0, _0810BDE8 @ =0x00002005 - ldr r1, _0810BDEC @ =0x00002014 - bl sub_810BD64 -_0810BDD4: - ldr r0, _0810BDF0 @ =gUnknown_02039248 - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _0810BDF4 - movs r0, 0 - movs r1, 0 - bl sub_80F979C - b _0810BDFC - .align 2, 0 -_0810BDE8: .4byte 0x00002005 -_0810BDEC: .4byte 0x00002014 -_0810BDF0: .4byte gUnknown_02039248 -_0810BDF4: - movs r0, 0 - movs r1, 0x1 - bl sub_80F979C -_0810BDFC: - ldr r2, _0810BE1C @ =gUnknown_02039248 - ldrb r0, [r2, 0x2] - ldrb r1, [r2, 0x3] - cmp r0, r1 - bls _0810BE20 - ldrb r0, [r2, 0x1] - ldrb r1, [r2, 0x3] - adds r0, r1 - ldrb r2, [r2, 0x2] - cmp r0, r2 - beq _0810BE20 - movs r0, 0x1 - movs r1, 0 - bl sub_80F979C - b _0810BE28 - .align 2, 0 -_0810BE1C: .4byte gUnknown_02039248 -_0810BE20: - movs r0, 0x1 - movs r1, 0x1 - bl sub_80F979C -_0810BE28: - movs r6, 0 - ldr r7, _0810BE94 @ =gBGTilemapBuffers + 0x1000 - movs r0, 0xF - mov r8, r0 -_0810BE30: - adds r0, r6, 0 - movs r1, 0x3 - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 18 - ldr r1, _0810BE98 @ =0x000001a1 - adds r4, r1 - adds r0, r6, 0 - movs r1, 0x3 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 1 - adds r5, r4, r1 - ldr r1, _0810BE9C @ =gUnknown_02039248 - ldrb r2, [r1] - ldrb r0, [r1, 0x1] - adds r0, r2, r0 - ldrb r1, [r1, 0x2] - cmp r0, r1 - beq _0810BEB8 - lsls r0, 3 - ldr r1, _0810BEA0 @ =gSaveBlock1 + 0x7F8 - adds r0, r1 - adds r4, r6, 0x1 - lsls r1, r4, 24 - lsrs r1, 24 - bl sub_810CA9C - lsls r0, 16 - cmp r0, 0 - ble _0810BEA4 - lsls r1, r5, 1 - adds r1, r7 - lsls r2, r6, 12 - adds r0, r2, 0 - adds r0, 0x17 - strh r0, [r1] - adds r0, r5, 0 - adds r0, 0x20 - lsls r0, 1 - adds r0, r7 - adds r2, 0x18 - strh r2, [r0] - b _0810BECC - .align 2, 0 -_0810BE94: .4byte gBGTilemapBuffers + 0x1000 -_0810BE98: .4byte 0x000001a1 -_0810BE9C: .4byte gUnknown_02039248 -_0810BEA0: .4byte gSaveBlock1 + 0x7F8 -_0810BEA4: - lsls r0, r5, 1 - adds r0, r7 - mov r1, r8 - strh r1, [r0] - adds r0, r5, 0 - adds r0, 0x20 - lsls r0, 1 - adds r0, r7 - strh r1, [r0] - b _0810BECC -_0810BEB8: - lsls r0, r5, 1 - adds r0, r7 - mov r1, r8 - strh r1, [r0] - adds r0, r5, 0 - adds r0, 0x20 - lsls r0, 1 - adds r0, r7 - strh r1, [r0] - adds r4, r6, 0x1 -_0810BECC: - lsls r0, r4, 24 - lsrs r6, r0, 24 - cmp r6, 0x4 - bls _0810BE30 - ldr r0, _0810BF10 @ =gWindowConfig_81E6E34 - bl BasicInitMenuWindow - ldr r0, _0810BF14 @ =gUnknown_02039248 - ldrb r2, [r0] - ldrb r1, [r0, 0x1] - adds r2, r1 - ldrb r0, [r0, 0x2] - cmp r2, r0 - beq _0810BF20 - ldr r4, _0810BF18 @ =gStringVar1 - lsls r0, r2, 3 - ldr r1, _0810BF1C @ =gSaveBlock1 + 0x7F8 - adds r0, r1 - bl sub_810C9E8 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - movs r2, 0x10 - movs r3, 0x1 - bl sub_8072C14 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0x11 - bl MenuPrint - b _0810BF2C - .align 2, 0 -_0810BF10: .4byte gWindowConfig_81E6E34 -_0810BF14: .4byte gUnknown_02039248 -_0810BF18: .4byte gStringVar1 -_0810BF1C: .4byte gSaveBlock1 + 0x7F8 -_0810BF20: - movs r0, 0xB - movs r1, 0x11 - movs r2, 0xC - movs r3, 0x12 - bl MenuZeroFillWindowRect -_0810BF2C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_810BDAC - - thumb_func_start sub_810BF38 -sub_810BF38: @ 810BF38 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - ldr r2, _0810BF6C @ =gSprites - ldr r0, _0810BF70 @ =0x02000000 - ldr r1, _0810BF74 @ =0x0001fffe - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _0810BF78 @ =sub_810C8D4 - str r1, [r0] - adds r0, r4, 0 - bl sub_810BDAC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810BF6C: .4byte gSprites -_0810BF70: .4byte 0x02000000 -_0810BF74: .4byte 0x0001fffe -_0810BF78: .4byte sub_810C8D4 - thumb_func_end sub_810BF38 - - thumb_func_start sub_810BF7C -sub_810BF7C: @ 810BF7C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, r5, 0 - ldr r0, _0810BFB8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r3, 0x80 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0810BF94 - b _0810C0B8 -_0810BF94: - ldr r2, _0810BFBC @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0810BFCE - ldr r4, _0810BFC0 @ =gUnknown_02039248 - ldrb r0, [r4] - cmp r0, 0 - beq _0810BFC4 - movs r0, 0x5 - movs r1, 0x14 - bl sub_810BD64 - ldrb r0, [r4] - subs r0, 0x1 - strb r0, [r4] - b _0810C00A - .align 2, 0 -_0810BFB8: .4byte gPaletteFade -_0810BFBC: .4byte gMain -_0810BFC0: .4byte gUnknown_02039248 -_0810BFC4: - ldrb r0, [r4, 0x1] - cmp r0, 0 - beq _0810C0B8 - subs r0, 0x1 - b _0810C002 -_0810BFCE: - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0810C012 - ldr r4, _0810BFF0 @ =gUnknown_02039248 - ldrb r0, [r4] - ldrb r1, [r4, 0x3] - cmp r0, r1 - beq _0810BFF4 - movs r0, 0x5 - movs r1, 0x14 - bl sub_810BD64 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _0810C00A - .align 2, 0 -_0810BFF0: .4byte gUnknown_02039248 -_0810BFF4: - ldrb r1, [r4, 0x1] - ldrb r0, [r4] - adds r0, r1, r0 - ldrb r2, [r4, 0x2] - cmp r0, r2 - beq _0810C0B8 - adds r0, r1, 0x1 -_0810C002: - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x1] - bl sub_810BB88 -_0810C00A: - movs r0, 0 - bl sub_810BF38 - b _0810C0B8 -_0810C012: - ldrh r1, [r2, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0810C05C - ldr r4, _0810C050 @ =gUnknown_02039248 - ldrb r0, [r4, 0x1] - ldrb r1, [r4] - adds r0, r1 - ldrb r1, [r4, 0x2] - cmp r0, r1 - beq _0810C0B8 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_810BDAC - ldr r1, _0810C054 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r4, 0x1] - ldrb r2, [r4] - adds r1, r2 - strh r1, [r0, 0x8] - ldr r1, _0810C058 @ =sub_810C0C8 - str r1, [r0] - b _0810C0B8 - .align 2, 0 -_0810C050: .4byte gUnknown_02039248 -_0810C054: .4byte gTasks -_0810C058: .4byte sub_810C0C8 -_0810C05C: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0810C09C - movs r0, 0x5 - bl PlaySE - ldr r0, _0810C088 @ =gUnknown_02039248 - ldrb r1, [r0, 0x1] - ldrb r2, [r0] - adds r1, r2 - ldrb r0, [r0, 0x2] - cmp r1, r0 - bne _0810C094 - ldr r1, _0810C08C @ =gScriptResult - ldr r2, _0810C090 @ =0x0000ffff - adds r0, r2, 0 - strh r0, [r1] - adds r0, r5, 0 - bl sub_810C31C - b _0810C0B8 - .align 2, 0 -_0810C088: .4byte gUnknown_02039248 -_0810C08C: .4byte gScriptResult -_0810C090: .4byte 0x0000ffff -_0810C094: - adds r0, r5, 0 - bl sub_810C368 - b _0810C0B8 -_0810C09C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0810C0B8 - movs r0, 0x5 - bl PlaySE - ldr r1, _0810C0C0 @ =gScriptResult - ldr r2, _0810C0C4 @ =0x0000ffff - adds r0, r2, 0 - strh r0, [r1] - adds r0, r4, 0 - bl sub_810C31C -_0810C0B8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810C0C0: .4byte gScriptResult -_0810C0C4: .4byte 0x0000ffff - thumb_func_end sub_810BF7C - - thumb_func_start sub_810C0C8 -sub_810C0C8: @ 810C0C8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, _0810C0F4 @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0810C110 - ldr r4, _0810C0F8 @ =gUnknown_02039248 - ldrb r0, [r4] - cmp r0, 0 - beq _0810C0FC - movs r0, 0x5 - movs r1, 0x14 - bl sub_810BD64 - ldrb r0, [r4] - subs r0, 0x1 - strb r0, [r4] - b _0810C158 - .align 2, 0 -_0810C0F4: .4byte gMain -_0810C0F8: .4byte gUnknown_02039248 -_0810C0FC: - ldrb r0, [r4, 0x1] - cmp r0, 0 - beq _0810C1BA - adds r0, r5, 0 - movs r1, 0 - bl sub_810C1C8 - ldrb r0, [r4, 0x1] - subs r0, 0x1 - b _0810C150 -_0810C110: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0810C168 - ldr r4, _0810C134 @ =gUnknown_02039248 - ldrb r0, [r4] - ldrb r1, [r4, 0x3] - cmp r0, r1 - beq _0810C138 - movs r0, 0x5 - movs r1, 0x14 - bl sub_810BD64 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _0810C158 - .align 2, 0 -_0810C134: .4byte gUnknown_02039248 -_0810C138: - ldrb r0, [r4, 0x1] - ldrb r1, [r4] - adds r0, r1 - ldrb r1, [r4, 0x2] - cmp r0, r1 - beq _0810C1BA - adds r0, r5, 0 - movs r1, 0 - bl sub_810C1C8 - ldrb r0, [r4, 0x1] - adds r0, 0x1 -_0810C150: - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x1] - bl sub_810BB88 -_0810C158: - movs r0, 0x1 - bl sub_810BF38 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_810C1C8 - b _0810C1BA -_0810C168: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0810C17A - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0810C190 -_0810C17A: - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - movs r1, 0 - bl sub_810C1C8 - adds r0, r5, 0 - bl sub_810C23C - b _0810C1AC -_0810C190: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0810C1BA - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - movs r1, 0 - bl sub_810C1C8 - movs r0, 0 - bl sub_810BDAC -_0810C1AC: - ldr r0, _0810C1C0 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _0810C1C4 @ =sub_810BF7C - str r0, [r1] -_0810C1BA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810C1C0: .4byte gTasks -_0810C1C4: .4byte sub_810BF7C - thumb_func_end sub_810C0C8 - - thumb_func_start sub_810C1C8 -sub_810C1C8: @ 810C1C8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - ldr r6, _0810C22C @ =0x00001005 - cmp r1, 0 - bne _0810C1D8 - movs r6, 0x5 -_0810C1D8: - ldr r1, _0810C230 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - ldr r2, _0810C234 @ =gUnknown_02039248 - ldrb r1, [r2, 0x1] - ldrh r0, [r0, 0x8] - subs r0, r1 - lsls r1, r0, 16 - lsrs r0, r1, 16 - cmp r0, 0x8 - bhi _0810C226 - asrs r0, r1, 16 - ldrb r2, [r2] - cmp r0, r2 - beq _0810C226 - movs r2, 0 - lsls r0, 1 - adds r1, r0, 0x1 - lsls r5, r1, 5 - ldr r3, _0810C238 @ =gBGTilemapBuffers + 0x1000 - adds r0, 0x2 - lsls r4, r0, 5 -_0810C208: - adds r0, r2, 0 - adds r0, 0xF - adds r1, r5, r0 - lsls r1, 1 - adds r1, r3 - strh r6, [r1] - adds r0, r4, r0 - lsls r0, 1 - adds r0, r3 - strh r6, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xD - bls _0810C208 -_0810C226: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810C22C: .4byte 0x00001005 -_0810C230: .4byte gTasks -_0810C234: .4byte gUnknown_02039248 -_0810C238: .4byte gBGTilemapBuffers + 0x1000 - thumb_func_end sub_810C1C8 - - thumb_func_start sub_810C23C -sub_810C23C: @ 810C23C - push {r4-r7,lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r7, _0810C25C @ =gUnknown_02039248 - ldrb r0, [r7] - ldrb r2, [r7, 0x1] - adds r0, r2 - lsls r0, 24 - lsrs r0, 24 - ldrb r2, [r7, 0x2] - cmp r0, r2 - bne _0810C260 - movs r0, 0 - bl sub_810BDAC - b _0810C2A2 - .align 2, 0 -_0810C25C: .4byte gUnknown_02039248 -_0810C260: - ldr r4, _0810C2A8 @ =gSaveBlock1 - lsls r3, r0, 3 - movs r0, 0xFF - lsls r0, 3 - adds r4, r0 - adds r3, r4 - ldr r5, [r3] - ldr r6, [r3, 0x4] - ldr r0, _0810C2AC @ =gTasks - lsls r2, r1, 2 - adds r2, r1 - lsls r2, 3 - adds r2, r0 - movs r1, 0x8 - ldrsh r0, [r2, r1] - lsls r0, 3 - adds r0, r4 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [r3] - str r1, [r3, 0x4] - movs r1, 0x8 - ldrsh r0, [r2, r1] - lsls r0, 3 - adds r0, r4 - str r5, [r0] - str r6, [r0, 0x4] - ldrb r0, [r7, 0x1] - bl sub_810BB88 - movs r0, 0 - bl sub_810BDAC -_0810C2A2: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810C2A8: .4byte gSaveBlock1 -_0810C2AC: .4byte gTasks - thumb_func_end sub_810C23C - - thumb_func_start sub_810C2B0 -sub_810C2B0: @ 810C2B0 - push {lr} - movs r0, 0 - bl DestroyVerticalScrollIndicator - movs r0, 0x1 - bl DestroyVerticalScrollIndicator - bl BuyMenuFreeMemory - pop {r0} - bx r0 - thumb_func_end sub_810C2B0 - - thumb_func_start sub_810C2C8 -sub_810C2C8: @ 810C2C8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0810C308 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0810C300 - ldr r4, _0810C30C @ =gUnknown_02039244 - ldrb r0, [r4] - cmp r0, 0x3 - bne _0810C2E8 - ldr r1, _0810C310 @ =gUnknown_0300485C - ldr r0, _0810C314 @ =sub_8080990 - str r0, [r1] -_0810C2E8: - bl sub_810C2B0 - ldr r0, _0810C318 @ =gUnknown_083F7EA8 - ldrb r1, [r4] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl SetMainCallback2 - adds r0, r5, 0 - bl DestroyTask -_0810C300: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810C308: .4byte gPaletteFade -_0810C30C: .4byte gUnknown_02039244 -_0810C310: .4byte gUnknown_0300485C -_0810C314: .4byte sub_8080990 -_0810C318: .4byte gUnknown_083F7EA8 - thumb_func_end sub_810C2C8 - - thumb_func_start sub_810C31C -sub_810C31C: @ 810C31C - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x1 - negs r0, r0 - movs r5, 0 - str r5, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _0810C358 @ =gUnknown_02039244 - ldrb r0, [r0] - cmp r0, 0x1 - bls _0810C342 - ldr r0, _0810C35C @ =gScriptItemId - strh r5, [r0] -_0810C342: - ldr r0, _0810C360 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0810C364 @ =sub_810C2C8 - str r0, [r1] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810C358: .4byte gUnknown_02039244 -_0810C35C: .4byte gScriptItemId -_0810C360: .4byte gTasks -_0810C364: .4byte sub_810C2C8 - thumb_func_end sub_810C31C - - thumb_func_start sub_810C368 -sub_810C368: @ 810C368 - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - ldr r0, _0810C3E8 @ =gUnknown_02039244 - ldrb r0, [r0] - cmp r0, 0x1 - bls _0810C37C - movs r4, 0x2 -_0810C37C: - movs r0, 0 - bl sub_80F98A4 - movs r0, 0x1 - bl sub_80F98A4 - ldr r0, _0810C3EC @ =gWindowConfig_81E6E50 - bl BasicInitMenuWindow - adds r1, r4, 0x4 - movs r0, 0x7 - movs r2, 0xD - movs r3, 0xB - bl MenuDrawTextWindow - adds r4, 0x5 - ldr r5, _0810C3F0 @ =gUnknown_0203924C - ldrb r2, [r5] - ldr r3, _0810C3F4 @ =gUnknown_083F7EF4 - ldr r0, _0810C3F8 @ =gUnknown_03000758 - ldr r0, [r0] - str r0, [sp] - movs r0, 0x8 - adds r1, r4, 0 - bl PrintMenuItemsReordered - ldrb r3, [r5] - movs r0, 0 - str r0, [sp] - movs r0, 0x5 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x8 - adds r2, r4, 0 - bl InitMenu - ldr r2, _0810C3FC @ =gScriptItemId - ldr r1, _0810C400 @ =gUnknown_02039248 - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - adds r0, r1 - strh r0, [r2] - ldr r1, _0810C404 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810C408 @ =sub_810C40C - str r1, [r0] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810C3E8: .4byte gUnknown_02039244 -_0810C3EC: .4byte gWindowConfig_81E6E50 -_0810C3F0: .4byte gUnknown_0203924C -_0810C3F4: .4byte gUnknown_083F7EF4 -_0810C3F8: .4byte gUnknown_03000758 -_0810C3FC: .4byte gScriptItemId -_0810C400: .4byte gUnknown_02039248 -_0810C404: .4byte gTasks -_0810C408: .4byte sub_810C40C - thumb_func_end sub_810C368 - - thumb_func_start sub_810C40C -sub_810C40C: @ 810C40C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, r5, 0 - ldr r2, _0810C43C @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0810C440 - bl GetMenuCursorPos - lsls r0, 24 - cmp r0, 0 - beq _0810C4BC - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - b _0810C4BC - .align 2, 0 -_0810C43C: .4byte gMain -_0810C440: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0810C46C - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0810C468 @ =gUnknown_0203924C - ldrb r1, [r1] - subs r1, 0x1 - cmp r0, r1 - beq _0810C4BC - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - b _0810C4BC - .align 2, 0 -_0810C468: .4byte gUnknown_0203924C -_0810C46C: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0810C4A8 - movs r0, 0x5 - bl PlaySE - ldr r4, _0810C4A0 @ =gUnknown_083F7EF4 - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0810C4A4 @ =gUnknown_03000758 - ldr r1, [r1] - adds r1, r0 - ldrb r0, [r1] - lsls r0, 3 - adds r4, 0x4 - adds r0, r4 - ldr r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 - b _0810C4BC - .align 2, 0 -_0810C4A0: .4byte gUnknown_083F7EF4 -_0810C4A4: .4byte gUnknown_03000758 -_0810C4A8: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0810C4BC - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_810C748 -_0810C4BC: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_810C40C - - thumb_func_start sub_810C4C4 -sub_810C4C4: @ 810C4C4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0810C4F8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0810C4F0 - bl sub_810C2B0 - ldr r0, _0810C4FC @ =gScriptItemId - ldrh r0, [r0] - lsls r0, 3 - ldr r1, _0810C500 @ =gSaveBlock1 + 0x7F8 - adds r0, r1 - ldr r1, _0810C504 @ =sub_810B96C - bl sub_8136130 - adds r0, r4, 0 - bl DestroyTask -_0810C4F0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810C4F8: .4byte gPaletteFade -_0810C4FC: .4byte gScriptItemId -_0810C500: .4byte gSaveBlock1 + 0x7F8 -_0810C504: .4byte sub_810B96C - thumb_func_end sub_810C4C4 - - thumb_func_start sub_810C508 -sub_810C508: @ 810C508 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0810C538 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810C53C @ =sub_810C4C4 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810C538: .4byte gTasks -_0810C53C: .4byte sub_810C4C4 - thumb_func_end sub_810C508 - - thumb_func_start sub_810C540 -sub_810C540: @ 810C540 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _0810C5A0 @ =gWindowConfig_81E6E50 - bl BasicInitMenuWindow - bl sub_8072DEC - movs r0, 0x7 - movs r1, 0x4 - movs r2, 0xD - movs r3, 0xB - bl MenuZeroFillWindowRect - ldr r0, _0810C5A4 @ =gStringVar1 - ldr r4, _0810C5A8 @ =gPokeblockNames - ldr r3, _0810C5AC @ =gSaveBlock1 - ldr r2, _0810C5B0 @ =gUnknown_02039248 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - adds r1, r2 - lsls r1, 3 - adds r1, r3 - movs r2, 0xFF - lsls r2, 3 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r4 - ldr r1, [r1] - bl StringCopy - ldr r4, _0810C5B4 @ =gStringVar4 - ldr r1, _0810C5B8 @ =gContestStatsText_ThrowAwayPrompt - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _0810C5BC @ =sub_810C5EC - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810C5A0: .4byte gWindowConfig_81E6E50 -_0810C5A4: .4byte gStringVar1 -_0810C5A8: .4byte gPokeblockNames -_0810C5AC: .4byte gSaveBlock1 -_0810C5B0: .4byte gUnknown_02039248 -_0810C5B4: .4byte gStringVar4 -_0810C5B8: .4byte gContestStatsText_ThrowAwayPrompt -_0810C5BC: .4byte sub_810C5EC - thumb_func_end sub_810C540 - - thumb_func_start sub_810C5C0 -sub_810C5C0: @ 810C5C0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - movs r1, 0x1 - bl sub_80F979C - ldr r1, _0810C5E4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810C5E8 @ =sub_810C540 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810C5E4: .4byte gTasks -_0810C5E8: .4byte sub_810C540 - thumb_func_end sub_810C5C0 - - thumb_func_start sub_810C5EC -sub_810C5EC: @ 810C5EC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x7 - movs r1, 0x6 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r1, _0810C60C @ =gUnknown_083F7F24 - adds r0, r4, 0 - bl sub_80F914C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810C60C: .4byte gUnknown_083F7F24 - thumb_func_end sub_810C5EC - - thumb_func_start sub_810C610 -sub_810C610: @ 810C610 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x7 - movs r1, 0x6 - movs r2, 0xD - movs r3, 0xB - bl MenuZeroFillWindowRect - ldr r1, _0810C658 @ =gUnknown_02039248 - ldrb r0, [r1, 0x1] - ldrb r1, [r1] - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl sub_810CA6C - ldr r5, _0810C65C @ =gStringVar4 - ldr r1, _0810C660 @ =gContestStatsText_WasThrownAway - adds r0, r5, 0 - bl StringExpandPlaceholders - ldr r2, _0810C664 @ =sub_810C704 - adds r0, r4, 0 - adds r1, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField - bl sub_810BC98 - bl sub_810BD08 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810C658: .4byte gUnknown_02039248 -_0810C65C: .4byte gStringVar4 -_0810C660: .4byte gContestStatsText_WasThrownAway -_0810C664: .4byte sub_810C704 - thumb_func_end sub_810C610 - - thumb_func_start sub_810C668 -sub_810C668: @ 810C668 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - bl sub_80F98DC - movs r0, 0x1 - bl sub_80F98DC - ldr r2, _0810C6CC @ =gUnknown_02039248 - ldrb r0, [r2, 0x2] - ldrb r1, [r2, 0x3] - cmp r0, r1 - bls _0810C698 - ldrb r0, [r2, 0x1] - ldrb r1, [r2, 0x3] - adds r0, r1 - ldrb r2, [r2, 0x2] - cmp r0, r2 - beq _0810C698 - movs r0, 0x1 - movs r1, 0 - bl sub_80F979C -_0810C698: - ldr r0, _0810C6D0 @ =gWindowConfig_81E6E50 - bl BasicInitMenuWindow - movs r0, 0x7 - movs r1, 0x6 - movs r2, 0xD - movs r3, 0xB - bl MenuZeroFillWindowRect - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _0810C6D4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810C6D8 @ =sub_810BF7C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810C6CC: .4byte gUnknown_02039248 -_0810C6D0: .4byte gWindowConfig_81E6E50 -_0810C6D4: .4byte gTasks -_0810C6D8: .4byte sub_810BF7C - thumb_func_end sub_810C668 - - thumb_func_start sub_810C6DC -sub_810C6DC: @ 810C6DC - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0810C700 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0810C6F6 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0810C6FC -_0810C6F6: - adds r0, r2, 0 - bl sub_810C668 -_0810C6FC: - pop {r0} - bx r0 - .align 2, 0 -_0810C700: .4byte gMain - thumb_func_end sub_810C6DC - - thumb_func_start sub_810C704 -sub_810C704: @ 810C704 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0810C738 @ =gWindowConfig_81E6E34 - bl BasicInitMenuWindow - ldr r0, _0810C73C @ =gUnknown_02039248 - ldrb r0, [r0, 0x1] - bl sub_810BC84 - movs r0, 0x1 - movs r1, 0x1 - bl sub_80F979C - ldr r1, _0810C740 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810C744 @ =sub_810C6DC - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810C738: .4byte gWindowConfig_81E6E34 -_0810C73C: .4byte gUnknown_02039248 -_0810C740: .4byte gTasks -_0810C744: .4byte sub_810C6DC - thumb_func_end sub_810C704 - - thumb_func_start sub_810C748 -sub_810C748: @ 810C748 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl sub_80F98DC - movs r0, 0x1 - bl sub_80F98DC - bl sub_8072DEC - movs r0, 0x7 - movs r1, 0x4 - movs r2, 0xD - movs r3, 0xB - bl MenuZeroFillWindowRect - ldr r1, _0810C780 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810C784 @ =sub_810BF7C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810C780: .4byte gTasks -_0810C784: .4byte sub_810BF7C - thumb_func_end sub_810C748 - - thumb_func_start sub_810C788 -sub_810C788: @ 810C788 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _0810C834 @ =gEnemyParty - bl GetNature - lsls r0, 24 - lsrs r0, 24 - ldr r7, _0810C838 @ =gScriptItemId - ldrh r1, [r7] - lsls r1, 3 - ldr r5, _0810C83C @ =gSaveBlock1 + 0x7F8 - adds r1, r5 - bl sub_810CAE4 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _0810C840 @ =gUnknown_030041C0 - ldr r2, _0810C844 @ =gPokeblockNames - ldr r1, _0810C848 @ =0xfffff808 - adds r5, r1 - ldrh r1, [r7] - lsls r1, 3 - adds r1, r5 - movs r6, 0xFF - lsls r6, 3 - adds r1, r6 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - ldrb r0, [r7] - bl sub_810CA6C - ldrh r0, [r7] - lsls r0, 3 - adds r0, r5 - adds r0, r6 - ldrb r0, [r0] - lsls r0, 8 - strh r0, [r7] - lsls r4, 16 - asrs r4, 16 - cmp r4, 0 - bne _0810C7F4 - adds r0, 0x1 - strh r0, [r7] -_0810C7F4: - cmp r4, 0 - ble _0810C7FE - ldrh r0, [r7] - adds r0, 0x2 - strh r0, [r7] -_0810C7FE: - cmp r4, 0 - bge _0810C808 - ldrh r0, [r7] - adds r0, 0x3 - strh r0, [r7] -_0810C808: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0810C84C @ =gTasks - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810C850 @ =sub_810C2C8 - str r1, [r0] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810C834: .4byte gEnemyParty -_0810C838: .4byte gScriptItemId -_0810C83C: .4byte gSaveBlock1 + 0x7F8 -_0810C840: .4byte gUnknown_030041C0 -_0810C844: .4byte gPokeblockNames -_0810C848: .4byte 0xfffff808 -_0810C84C: .4byte gTasks -_0810C850: .4byte sub_810C2C8 - thumb_func_end sub_810C788 - - thumb_func_start sub_810C854 -sub_810C854: @ 810C854 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r4, _0810C8B8 @ =gScriptItemId - ldrb r0, [r4] - bl SafariZoneActivatePokeblockFeeder - ldr r0, _0810C8BC @ =gStringVar1 - ldr r3, _0810C8C0 @ =gPokeblockNames - ldr r2, _0810C8C4 @ =gSaveBlock1 - ldrh r1, [r4] - lsls r1, 3 - adds r1, r2 - movs r2, 0xFF - lsls r2, 3 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl StringCopy - ldr r1, _0810C8C8 @ =gScriptResult - ldrh r0, [r4] - strh r0, [r1] - lsls r0, 24 - lsrs r0, 24 - bl sub_810CA6C - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0810C8CC @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810C8D0 @ =sub_810C2C8 - str r1, [r0] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810C8B8: .4byte gScriptItemId -_0810C8BC: .4byte gStringVar1 -_0810C8C0: .4byte gPokeblockNames -_0810C8C4: .4byte gSaveBlock1 -_0810C8C8: .4byte gScriptResult -_0810C8CC: .4byte gTasks -_0810C8D0: .4byte sub_810C2C8 - thumb_func_end sub_810C854 - - thumb_func_start sub_810C8D4 -sub_810C8D4: @ 810C8D4 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - ble _0810C8E4 - movs r0, 0 - strh r0, [r4, 0x2E] -_0810C8E4: - movs r0, 0x2E - ldrsh r5, [r4, r0] - cmp r5, 0 - beq _0810C8F2 - cmp r5, 0x1 - beq _0810C918 - b _0810C944 -_0810C8F2: - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4, 0x1] - ldr r0, _0810C914 @ =gUnknown_083F7F70 - str r0, [r4, 0x10] - adds r0, r4, 0 - bl InitSpriteAffineAnim - movs r0, 0x1 - strh r0, [r4, 0x2E] - strh r5, [r4, 0x30] - b _0810C944 - .align 2, 0 -_0810C914: .4byte gUnknown_083F7F70 -_0810C918: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - movs r2, 0 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - ble _0810C944 - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - strh r2, [r4, 0x2E] - strh r2, [r4, 0x30] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldr r0, _0810C94C @ =SpriteCallbackDummy - str r0, [r4, 0x1C] -_0810C944: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810C94C: .4byte SpriteCallbackDummy - thumb_func_end sub_810C8D4 - - thumb_func_start sub_810C950 -sub_810C950: @ 810C950 - lsls r0, 24 - ldr r1, _0810C988 @ =gSaveBlock1 - lsrs r0, 21 - adds r0, r1 - movs r2, 0xFF - lsls r2, 3 - adds r1, r0, r2 - movs r2, 0 - strb r2, [r1] - ldr r3, _0810C98C @ =0x000007f9 - adds r1, r0, r3 - strb r2, [r1] - adds r3, 0x1 - adds r1, r0, r3 - strb r2, [r1] - adds r3, 0x1 - adds r1, r0, r3 - strb r2, [r1] - adds r3, 0x1 - adds r1, r0, r3 - strb r2, [r1] - adds r3, 0x1 - adds r1, r0, r3 - strb r2, [r1] - ldr r1, _0810C990 @ =0x000007fe - adds r0, r1 - strb r2, [r0] - bx lr - .align 2, 0 -_0810C988: .4byte gSaveBlock1 -_0810C98C: .4byte 0x000007f9 -_0810C990: .4byte 0x000007fe - thumb_func_end sub_810C950 - - thumb_func_start sub_810C994 -sub_810C994: @ 810C994 - push {r4,lr} - movs r4, 0 -_0810C998: - adds r0, r4, 0 - bl sub_810C950 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x27 - bls _0810C998 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_810C994 - - thumb_func_start sub_810C9B0 -sub_810C9B0: @ 810C9B0 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x1 - bl sub_810CA9C - lsls r0, 24 - lsrs r5, r0, 24 - movs r1, 0x1 -_0810C9C0: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_810CA9C - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - bcs _0810C9D8 - adds r5, r0, 0 -_0810C9D8: - adds r1, r4, 0 - cmp r1, 0x4 - bls _0810C9C0 - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_810C9B0 - - thumb_func_start sub_810C9E8 -sub_810C9E8: @ 810C9E8 - push {lr} - movs r1, 0x6 - bl sub_810CA9C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x63 - bls _0810C9FA - movs r0, 0x63 -_0810C9FA: - pop {r1} - bx r1 - thumb_func_end sub_810C9E8 - - thumb_func_start sub_810CA00 -sub_810CA00: @ 810CA00 - push {lr} - movs r1, 0 - ldr r3, _0810CA1C @ =gSaveBlock1 - movs r2, 0xFF - lsls r2, 3 -_0810CA0A: - lsls r0, r1, 3 - adds r0, r3 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _0810CA20 - lsls r0, r1, 24 - asrs r0, 24 - b _0810CA2E - .align 2, 0 -_0810CA1C: .4byte gSaveBlock1 -_0810CA20: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x27 - bls _0810CA0A - movs r0, 0x1 - negs r0, r0 -_0810CA2E: - pop {r1} - bx r1 - thumb_func_end sub_810CA00 - - thumb_func_start sub_810CA34 -sub_810CA34: @ 810CA34 - push {r4,lr} - adds r4, r0, 0 - bl sub_810CA00 - lsls r0, 24 - asrs r2, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r2, r0 - beq _0810CA64 - ldr r0, _0810CA60 @ =gSaveBlock1 - lsls r2, 3 - movs r1, 0xFF - lsls r1, 3 - adds r0, r1 - adds r2, r0 - ldr r0, [r4] - ldr r1, [r4, 0x4] - str r0, [r2] - str r1, [r2, 0x4] - movs r0, 0x1 - b _0810CA66 - .align 2, 0 -_0810CA60: .4byte gSaveBlock1 -_0810CA64: - movs r0, 0 -_0810CA66: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810CA34 - - thumb_func_start sub_810CA6C -sub_810CA6C: @ 810CA6C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _0810CA90 @ =gSaveBlock1 - lsls r0, r2, 3 - adds r0, r1 - movs r1, 0xFF - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0810CA94 - adds r0, r2, 0 - bl sub_810C950 - movs r0, 0x1 - b _0810CA96 - .align 2, 0 -_0810CA90: .4byte gSaveBlock1 -_0810CA94: - movs r0, 0 -_0810CA96: - pop {r1} - bx r1 - thumb_func_end sub_810CA6C - - thumb_func_start sub_810CA9C -sub_810CA9C: @ 810CA9C - push {lr} - lsls r1, 24 - lsrs r1, 24 - adds r2, r1, 0 - cmp r1, 0 - bne _0810CAAC - ldrb r0, [r0] - b _0810CADE -_0810CAAC: - cmp r1, 0x1 - bne _0810CAB4 - ldrb r0, [r0, 0x1] - b _0810CADE -_0810CAB4: - cmp r1, 0x2 - bne _0810CABC - ldrb r0, [r0, 0x2] - b _0810CADE -_0810CABC: - cmp r1, 0x3 - bne _0810CAC4 - ldrb r0, [r0, 0x3] - b _0810CADE -_0810CAC4: - cmp r1, 0x4 - bne _0810CACC - ldrb r0, [r0, 0x4] - b _0810CADE -_0810CACC: - cmp r1, 0x5 - bne _0810CAD4 - ldrb r0, [r0, 0x5] - b _0810CADE -_0810CAD4: - cmp r2, 0x6 - beq _0810CADC - movs r0, 0 - b _0810CADE -_0810CADC: - ldrb r0, [r0, 0x6] -_0810CADE: - pop {r1} - bx r1 - thumb_func_end sub_810CA9C - - thumb_func_start sub_810CAE4 -sub_810CAE4: @ 810CAE4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r8, r1 - lsls r0, 24 - lsrs r0, 24 - movs r6, 0 - movs r4, 0 - ldr r1, _0810CB40 @ =gUnknown_083F7E28 - mov r9, r1 - lsls r1, r0, 2 - adds r7, r1, r0 -_0810CAFE: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - mov r0, r8 - adds r1, r5, 0 - bl sub_810CA9C - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - ble _0810CB2A - adds r0, r7, r4 - add r0, r9 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - muls r1, r0 - lsls r0, r6, 16 - asrs r0, 16 - adds r0, r1 - lsls r0, 16 - lsrs r6, r0, 16 -_0810CB2A: - adds r4, r5, 0 - cmp r4, 0x4 - bls _0810CAFE - lsls r0, r6, 16 - asrs r0, 16 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810CB40: .4byte gUnknown_083F7E28 - thumb_func_end sub_810CAE4 - - thumb_func_start sub_810CB44 -sub_810CB44: @ 810CB44 - push {r4,lr} - adds r4, r1, 0 - movs r1, 0 - bl sub_810CA9C - lsls r0, 24 - ldr r1, _0810CB64 @ =gPokeblockNames - lsrs r0, 22 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810CB64: .4byte gPokeblockNames - thumb_func_end sub_810CB44 - - thumb_func_start sub_810CB68 -sub_810CB68: @ 810CB68 - push {r4-r7,lr} - adds r6, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r7, _0810CB98 @ =gPokeblockNames -_0810CB74: - lsls r1, r4, 3 - ldr r0, _0810CB9C @ =gUnknown_083F7F9C - adds r1, r0 - adds r0, r5, 0 - bl sub_810CAE4 - lsls r0, 16 - cmp r0, 0 - ble _0810CBA0 - adds r0, r4, 0x1 - lsls r0, 2 - adds r0, r7 - ldr r1, [r0] - adds r0, r6, 0 - bl StringCopy - movs r0, 0x1 - b _0810CBAC - .align 2, 0 -_0810CB98: .4byte gPokeblockNames -_0810CB9C: .4byte gUnknown_083F7F9C -_0810CBA0: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _0810CB74 - movs r0, 0 -_0810CBAC: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810CB68 - - thumb_func_start SetUpFieldMove_Flash -SetUpFieldMove_Flash: @ 810CBB4 - push {lr} - ldr r0, _0810CBDC @ =gMapHeader - ldrb r0, [r0, 0x15] - cmp r0, 0x1 - bne _0810CBF4 - ldr r0, _0810CBE0 @ =0x00000828 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _0810CBF4 - ldr r1, _0810CBE4 @ =gUnknown_0300485C - ldr r0, _0810CBE8 @ =sub_808AB90 - str r0, [r1] - ldr r1, _0810CBEC @ =gUnknown_03005CE4 - ldr r0, _0810CBF0 @ =sub_810CBFC - str r0, [r1] - movs r0, 0x1 - b _0810CBF6 - .align 2, 0 -_0810CBDC: .4byte gMapHeader -_0810CBE0: .4byte 0x00000828 -_0810CBE4: .4byte gUnknown_0300485C -_0810CBE8: .4byte sub_808AB90 -_0810CBEC: .4byte gUnknown_03005CE4 -_0810CBF0: .4byte sub_810CBFC -_0810CBF4: - movs r0, 0 -_0810CBF6: - pop {r1} - bx r1 - thumb_func_end SetUpFieldMove_Flash - - thumb_func_start sub_810CBFC -sub_810CBFC: @ 810CBFC - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810CC24 @ =gUnknown_0202FF84 - ldr r1, _0810CC28 @ =gUnknown_03005CE0 - ldrb r1, [r1] - str r1, [r2] - ldr r2, _0810CC2C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _0810CC30 @ =sub_810CC34 - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - pop {r0} - bx r0 - .align 2, 0 -_0810CC24: .4byte gUnknown_0202FF84 -_0810CC28: .4byte gUnknown_03005CE0 -_0810CC2C: .4byte gTasks -_0810CC30: .4byte sub_810CC34 - thumb_func_end sub_810CBFC - - thumb_func_start sub_810CC34 -sub_810CC34: @ 810CC34 - push {lr} - movs r0, 0xCF - bl PlaySE - ldr r0, _0810CC4C @ =0x00000828 - bl FlagSet - ldr r0, _0810CC50 @ =gUnknown_081B694A - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_0810CC4C: .4byte 0x00000828 -_0810CC50: .4byte gUnknown_081B694A - thumb_func_end sub_810CC34 - - thumb_func_start sub_810CC54 -sub_810CC54: @ 810CC54 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_810CC54 - - thumb_func_start sub_810CC6C -sub_810CC6C: @ 810CC6C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_810CC6C - - thumb_func_start sub_810CC80 -sub_810CC80: @ 810CC80 - push {r4,lr} - sub sp, 0x8 - movs r0, 0 - bl SetVBlankCallback - movs r0, 0x80 - lsls r0, 19 - movs r1, 0 - strh r1, [r0] - adds r0, 0xC - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x10 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - mov r0, sp - strh r1, [r0] - ldr r1, _0810CD34 @ =0x040000d4 - str r0, [r1] - movs r0, 0xC0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _0810CD38 @ =0x8100c000 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r4, 0 - str r4, [sp, 0x4] - add r0, sp, 0x4 - str r0, [r1] - movs r0, 0xE0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _0810CD3C @ =0x85000100 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - mov r0, sp - strh r4, [r0] - str r0, [r1] - ldr r0, _0810CD40 @ =0x05000002 - str r0, [r1, 0x4] - ldr r0, _0810CD44 @ =0x810001ff - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - bl ResetPaletteFade - bl ResetTasks - bl ResetSpriteData - ldr r3, _0810CD48 @ =0x04000208 - ldrh r2, [r3] - strh r4, [r3] - ldr r4, _0810CD4C @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r0, _0810CD50 @ =sub_810CC6C - bl SetVBlankCallback - ldr r0, _0810CD54 @ =sub_810CC54 - bl SetMainCallback2 - bl sub_810CD5C - lsls r0, 24 - cmp r0, 0 - bne _0810CD2A - ldr r0, _0810CD58 @ =gMain - ldr r0, [r0, 0x8] - bl SetMainCallback2 -_0810CD2A: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810CD34: .4byte 0x040000d4 -_0810CD38: .4byte 0x8100c000 -_0810CD3C: .4byte 0x85000100 -_0810CD40: .4byte 0x05000002 -_0810CD44: .4byte 0x810001ff -_0810CD48: .4byte 0x04000208 -_0810CD4C: .4byte 0x04000200 -_0810CD50: .4byte sub_810CC6C -_0810CD54: .4byte sub_810CC54 -_0810CD58: .4byte gMain - thumb_func_end sub_810CC80 - - thumb_func_start sub_810CD5C -sub_810CD5C: @ 810CD5C - push {r4-r7,lr} - bl get_map_light_from_warp0 - lsls r0, 24 - lsrs r6, r0, 24 - bl sav1_map_get_light_level - lsls r0, 24 - lsrs r5, r0, 24 - movs r3, 0 - ldr r4, _0810CD9C @ =gUnknown_083F7FC4 - ldrb r0, [r4] - cmp r0, 0 - beq _0810CDB0 - adds r7, r4, 0 - adds r0, r4, 0x4 - mov r12, r0 -_0810CD7E: - lsls r2, r3, 3 - adds r1, r2, r7 - ldrb r0, [r1] - cmp r0, r6 - bne _0810CDA0 - ldrb r0, [r1, 0x1] - cmp r0, r5 - bne _0810CDA0 - mov r1, r12 - adds r0, r2, r1 - ldr r0, [r0] - bl _call_via_r0 - movs r0, 0x1 - b _0810CDB2 - .align 2, 0 -_0810CD9C: .4byte gUnknown_083F7FC4 -_0810CDA0: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 3 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _0810CD7E -_0810CDB0: - movs r0, 0 -_0810CDB2: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810CD5C - - thumb_func_start sub_810CDB8 -sub_810CDB8: @ 810CDB8 - push {r4-r6,lr} - lsls r0, 24 - lsls r1, 24 - lsrs r5, r0, 24 - lsrs r4, r1, 24 - movs r3, 0 - ldr r1, _0810CDE4 @ =gUnknown_083F7FC4 - ldrb r0, [r1] - cmp r0, 0 - beq _0810CDF8 - adds r6, r1, 0 -_0810CDCE: - lsls r0, r3, 3 - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, r5 - bne _0810CDE8 - ldrb r0, [r2, 0x1] - cmp r0, r4 - bne _0810CDE8 - ldrb r0, [r2, 0x2] - b _0810CDFA - .align 2, 0 -_0810CDE4: .4byte gUnknown_083F7FC4 -_0810CDE8: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0810CDCE -_0810CDF8: - movs r0, 0 -_0810CDFA: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_810CDB8 - - thumb_func_start fade_type_for_given_maplight_pair -fade_type_for_given_maplight_pair: @ 810CE00 - push {r4-r6,lr} - lsls r0, 24 - lsls r1, 24 - lsrs r5, r0, 24 - lsrs r4, r1, 24 - movs r3, 0 - ldr r1, _0810CE2C @ =gUnknown_083F7FC4 - ldrb r0, [r1] - cmp r0, 0 - beq _0810CE40 - adds r6, r1, 0 -_0810CE16: - lsls r0, r3, 3 - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, r5 - bne _0810CE30 - ldrb r0, [r2, 0x1] - cmp r0, r4 - bne _0810CE30 - ldrb r0, [r2, 0x3] - b _0810CE42 - .align 2, 0 -_0810CE2C: .4byte gUnknown_083F7FC4 -_0810CE30: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0810CE16 -_0810CE40: - movs r0, 0 -_0810CE42: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end fade_type_for_given_maplight_pair - - thumb_func_start sub_810CE48 -sub_810CE48: @ 810CE48 - push {lr} - ldr r0, _0810CE58 @ =sub_810CE5C - movs r1, 0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_0810CE58: .4byte sub_810CE5C - thumb_func_end sub_810CE48 - - thumb_func_start sub_810CE5C -sub_810CE5C: @ 810CE5C - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810CE70 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _0810CE74 @ =sub_810CE78 - str r0, [r1] - bx lr - .align 2, 0 -_0810CE70: .4byte gTasks -_0810CE74: .4byte sub_810CE78 - thumb_func_end sub_810CE5C - - thumb_func_start sub_810CE78 -sub_810CE78: @ 810CE78 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r6, 0x80 - lsls r6, 19 - movs r5, 0 - strh r5, [r6] - ldr r0, _0810CEE8 @ =gCaveTransitionTiles - ldr r1, _0810CEEC @ =0x0600c000 - bl LZ77UnCompVram - ldr r0, _0810CEF0 @ =gCaveTransitionTilemap - ldr r1, _0810CEF4 @ =0x0600f800 - bl LZ77UnCompVram - ldr r0, _0810CEF8 @ =gCaveTransitionPalette_White - movs r1, 0xE0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _0810CEFC @ =gUnknown_083F809C - movs r1, 0xE0 - movs r2, 0x10 - bl LoadPalette - ldr r1, _0810CF00 @ =REG_BLDCNT - ldr r2, _0810CF04 @ =0x00003e41 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _0810CF08 @ =REG_BLDALPHA - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - subs r1, 0x48 - ldr r2, _0810CF0C @ =0x00001f0c - adds r0, r2, 0 - strh r0, [r1] - movs r1, 0x8A - lsls r1, 5 - adds r0, r1, 0 - strh r0, [r6] - ldr r1, _0810CF10 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810CF14 @ =sub_810CF18 - str r1, [r0] - movs r2, 0 - movs r1, 0x10 - strh r1, [r0, 0x8] - strh r2, [r0, 0xA] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810CEE8: .4byte gCaveTransitionTiles -_0810CEEC: .4byte 0x0600c000 -_0810CEF0: .4byte gCaveTransitionTilemap -_0810CEF4: .4byte 0x0600f800 -_0810CEF8: .4byte gCaveTransitionPalette_White -_0810CEFC: .4byte gUnknown_083F809C -_0810CF00: .4byte REG_BLDCNT -_0810CF04: .4byte 0x00003e41 -_0810CF08: .4byte REG_BLDALPHA -_0810CF0C: .4byte 0x00001f0c -_0810CF10: .4byte gTasks -_0810CF14: .4byte sub_810CF18 - thumb_func_end sub_810CE78 - - thumb_func_start sub_810CF18 -sub_810CF18: @ 810CF18 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810CF44 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r3, r1, r2 - ldrh r2, [r3, 0xA] - movs r1, 0x80 - lsls r1, 5 - adds r0, r2, r1 - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0810CF48 @ =REG_BLDALPHA - strh r0, [r1] - cmp r2, 0x10 - bhi _0810CF4C - ldrh r0, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xA] - b _0810CF54 - .align 2, 0 -_0810CF44: .4byte gTasks -_0810CF48: .4byte REG_BLDALPHA -_0810CF4C: - movs r0, 0 - strh r0, [r3, 0xC] - ldr r0, _0810CF58 @ =sub_810CF5C - str r0, [r3] -_0810CF54: - pop {r0} - bx r0 - .align 2, 0 -_0810CF58: .4byte sub_810CF5C - thumb_func_end sub_810CF18 - - thumb_func_start sub_810CF5C -sub_810CF5C: @ 810CF5C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810CF94 @ =REG_BLDALPHA - ldr r3, _0810CF98 @ =0x00001010 - adds r1, r3, 0 - strh r1, [r2] - ldr r2, _0810CF9C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r1, [r4, 0xC] - cmp r1, 0x7 - bhi _0810CFA4 - adds r0, r1, 0x1 - strh r0, [r4, 0xC] - lsls r1, 1 - ldr r0, _0810CFA0 @ =gUnknown_083F809C - adds r0, r1, r0 - movs r2, 0x10 - subs r2, r1 - lsls r2, 16 - lsrs r2, 16 - movs r1, 0xE0 - bl LoadPalette - b _0810CFB6 - .align 2, 0 -_0810CF94: .4byte REG_BLDALPHA -_0810CF98: .4byte 0x00001010 -_0810CF9C: .4byte gTasks -_0810CFA0: .4byte gUnknown_083F809C -_0810CFA4: - ldr r0, _0810CFBC @ =gCaveTransitionPalette_White - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _0810CFC0 @ =sub_810CFC4 - str r0, [r4] - movs r0, 0x8 - strh r0, [r4, 0xC] -_0810CFB6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810CFBC: .4byte gCaveTransitionPalette_White -_0810CFC0: .4byte sub_810CFC4 - thumb_func_end sub_810CF5C - - thumb_func_start sub_810CFC4 -sub_810CFC4: @ 810CFC4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810CFE4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _0810CFE8 - subs r0, r2, 0x1 - strh r0, [r1, 0xC] - b _0810CFF0 - .align 2, 0 -_0810CFE4: .4byte gTasks -_0810CFE8: - ldr r0, _0810CFF4 @ =gMain - ldr r0, [r0, 0x8] - bl SetMainCallback2 -_0810CFF0: - pop {r0} - bx r0 - .align 2, 0 -_0810CFF4: .4byte gMain - thumb_func_end sub_810CFC4 - - thumb_func_start sub_810CFF8 -sub_810CFF8: @ 810CFF8 - push {lr} - ldr r0, _0810D008 @ =sub_810D00C - movs r1, 0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_0810D008: .4byte sub_810D00C - thumb_func_end sub_810CFF8 - - thumb_func_start sub_810D00C -sub_810D00C: @ 810D00C - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810D020 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _0810D024 @ =sub_810D028 - str r0, [r1] - bx lr - .align 2, 0 -_0810D020: .4byte gTasks -_0810D024: .4byte sub_810D028 - thumb_func_end sub_810D00C - - thumb_func_start sub_810D028 -sub_810D028: @ 810D028 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r6, 0x80 - lsls r6, 19 - movs r4, 0 - strh r4, [r6] - ldr r0, _0810D098 @ =gCaveTransitionTiles - ldr r1, _0810D09C @ =0x0600c000 - bl LZ77UnCompVram - ldr r0, _0810D0A0 @ =gCaveTransitionTilemap - ldr r1, _0810D0A4 @ =0x0600f800 - bl LZ77UnCompVram - ldr r0, _0810D0A8 @ =REG_BLDCNT - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - ldr r1, _0810D0AC @ =REG_BG0CNT - ldr r2, _0810D0B0 @ =0x00001f0c - adds r0, r2, 0 - strh r0, [r1] - movs r1, 0x8A - lsls r1, 5 - adds r0, r1, 0 - strh r0, [r6] - ldr r0, _0810D0B4 @ =gCaveTransitionPalette_White - movs r1, 0xE0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _0810D0B8 @ =gCaveTransitionPalette_Black - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - ldr r1, _0810D0BC @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810D0C0 @ =sub_810D0C4 - str r1, [r0] - movs r2, 0 - movs r1, 0x10 - strh r1, [r0, 0x8] - strh r2, [r0, 0xA] - strh r2, [r0, 0xC] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810D098: .4byte gCaveTransitionTiles -_0810D09C: .4byte 0x0600c000 -_0810D0A0: .4byte gCaveTransitionTilemap -_0810D0A4: .4byte 0x0600f800 -_0810D0A8: .4byte REG_BLDCNT -_0810D0AC: .4byte REG_BG0CNT -_0810D0B0: .4byte 0x00001f0c -_0810D0B4: .4byte gCaveTransitionPalette_White -_0810D0B8: .4byte gCaveTransitionPalette_Black -_0810D0BC: .4byte gTasks -_0810D0C0: .4byte sub_810D0C4 - thumb_func_end sub_810D028 - - thumb_func_start sub_810D0C4 -sub_810D0C4: @ 810D0C4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810D0F8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r3, r1, r2 - ldrh r1, [r3, 0xC] - cmp r1, 0xF - bhi _0810D100 - adds r2, r1, 0x1 - adds r0, r2, 0x1 - strh r0, [r3, 0xC] - movs r0, 0xF - subs r0, r1 - lsls r0, 1 - ldr r1, _0810D0FC @ =gUnknown_083F808C - adds r0, r1 - lsls r2, 17 - lsrs r2, 16 - movs r1, 0xE0 - bl LoadPalette - b _0810D114 - .align 2, 0 -_0810D0F8: .4byte gTasks -_0810D0FC: .4byte gUnknown_083F808C -_0810D100: - ldr r1, _0810D118 @ =REG_BLDALPHA - ldr r2, _0810D11C @ =0x00001010 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x2 - ldr r2, _0810D120 @ =0x00003e41 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _0810D124 @ =sub_810D128 - str r0, [r3] -_0810D114: - pop {r0} - bx r0 - .align 2, 0 -_0810D118: .4byte REG_BLDALPHA -_0810D11C: .4byte 0x00001010 -_0810D120: .4byte 0x00003e41 -_0810D124: .4byte sub_810D128 - thumb_func_end sub_810D0C4 - - thumb_func_start sub_810D128 -sub_810D128: @ 810D128 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810D158 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r3, r1, r2 - ldrh r0, [r3, 0xA] - movs r1, 0x10 - subs r1, r0 - lsls r1, 16 - movs r2, 0x80 - lsls r2, 21 - adds r0, r1, r2 - lsrs r0, 16 - ldr r2, _0810D15C @ =REG_BLDALPHA - strh r0, [r2] - cmp r1, 0 - beq _0810D160 - ldrh r0, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xA] - b _0810D172 - .align 2, 0 -_0810D158: .4byte gTasks -_0810D15C: .4byte REG_BLDALPHA -_0810D160: - ldr r0, _0810D178 @ =gCaveTransitionPalette_Black - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _0810D17C @ =gMain - ldr r0, [r0, 0x8] - bl SetMainCallback2 -_0810D172: - pop {r0} - bx r0 - .align 2, 0 -_0810D178: .4byte gCaveTransitionPalette_Black -_0810D17C: .4byte gMain - thumb_func_end sub_810D128 - - thumb_func_start sub_810D180 -sub_810D180: @ 810D180 - push {r4-r7,lr} - sub sp, 0x4 - bl HealPlayerParty - ldr r4, _0810D1A0 @ =0x00000804 - adds r0, r4, 0 - bl FlagGet - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1 - bne _0810D1A8 - ldr r0, _0810D1A4 @ =gUnknown_02039324 - strb r1, [r0] - b _0810D1B4 - .align 2, 0 -_0810D1A0: .4byte 0x00000804 -_0810D1A4: .4byte gUnknown_02039324 -_0810D1A8: - ldr r1, _0810D1E8 @ =gUnknown_02039324 - movs r0, 0 - strb r0, [r1] - adds r0, r4, 0 - bl FlagSet -_0810D1B4: - movs r0, 0x1 - bl sub_8053108 - cmp r0, 0 - bne _0810D1D4 - ldr r2, _0810D1EC @ =gSaveBlock2 - ldrh r1, [r2, 0xE] - lsls r1, 16 - ldrb r0, [r2, 0x10] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x11] - orrs r1, r0 - movs r0, 0x1 - bl sav12_xor_set -_0810D1D4: - bl sub_8047A10 - ldr r0, _0810D1EC @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _0810D1F0 - movs r0, 0x1 - bl sub_80537CC - b _0810D1F6 - .align 2, 0 -_0810D1E8: .4byte gUnknown_02039324 -_0810D1EC: .4byte gSaveBlock2 -_0810D1F0: - movs r0, 0x2 - bl sub_80537CC -_0810D1F6: - movs r6, 0 - movs r5, 0 - mov r7, sp -_0810D1FC: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _0810D260 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x5 - bl GetMonData - cmp r0, 0 - beq _0810D23A - adds r0, r4, 0 - movs r1, 0x6 - bl GetMonData - cmp r0, 0 - bne _0810D23A - adds r0, r4, 0 - movs r1, 0x43 - bl GetMonData - cmp r0, 0 - bne _0810D23A - movs r0, 0x1 - strb r0, [r7] - adds r0, r4, 0 - movs r1, 0x43 - mov r2, sp - bl SetMonData - movs r6, 0x1 -_0810D23A: - adds r5, 0x1 - cmp r5, 0x5 - ble _0810D1FC - cmp r6, 0x1 - bne _0810D250 - movs r0, 0x2A - bl sav12_xor_increment - ldr r0, _0810D264 @ =0x0000083b - bl FlagSet -_0810D250: - ldr r0, _0810D268 @ =sub_8141F90 - bl SetMainCallback2 - movs r0, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810D260: .4byte gPlayerParty -_0810D264: .4byte 0x0000083b -_0810D268: .4byte sub_8141F90 - thumb_func_end sub_810D180 - - thumb_func_start sp0C8_whiteout_maybe -sp0C8_whiteout_maybe: @ 810D26C - push {lr} - ldr r0, _0810D27C @ =c2_whiteout - bl SetMainCallback2 - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0810D27C: .4byte c2_whiteout - thumb_func_end sp0C8_whiteout_maybe - - thumb_func_start sub_810D280 -sub_810D280: @ 810D280 - push {r4,lr} - ldr r0, _0810D2A4 @ =0x00004024 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _0810D2A8 @ =0x00004025 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - lsls r4, 16 - orrs r4, r0 - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0810D2A4: .4byte 0x00004024 -_0810D2A8: .4byte 0x00004025 - thumb_func_end sub_810D280 - - thumb_func_start sub_810D2AC -sub_810D2AC: @ 810D2AC - push {r4,lr} - adds r4, r0, 0 - ldr r0, _0810D2CC @ =0x00004024 - lsrs r1, r4, 16 - bl VarSet - ldr r0, _0810D2D0 @ =0x00004025 - lsls r4, 16 - lsrs r4, 16 - adds r1, r4, 0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810D2CC: .4byte 0x00004024 -_0810D2D0: .4byte 0x00004025 - thumb_func_end sub_810D2AC - - thumb_func_start unref_sub_810D2D4 -unref_sub_810D2D4: @ 810D2D4 - push {r4,lr} - bl Random - adds r4, r0, 0 - bl Random - lsls r4, 16 - lsls r0, 16 - lsrs r0, 16 - orrs r4, r0 - adds r0, r4, 0 - bl sub_810D2AC - pop {r4} - pop {r0} - bx r0 - thumb_func_end unref_sub_810D2D4 - - thumb_func_start sub_810D2F4 -sub_810D2F4: @ 810D2F4 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - bl sub_810D280 - adds r1, r0, 0 - cmp r4, 0 - beq _0810D318 - ldr r3, _0810D324 @ =0x41c64e6d - ldr r2, _0810D328 @ =0x00003039 -_0810D308: - adds r0, r1, 0 - muls r0, r3 - adds r1, r0, r2 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - bne _0810D308 -_0810D318: - adds r0, r1, 0 - bl sub_810D2AC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810D324: .4byte 0x41c64e6d -_0810D328: .4byte 0x00003039 - thumb_func_end sub_810D2F4 - - thumb_func_start sub_810D32C -sub_810D32C: @ 810D32C - push {r4-r6,lr} - bl sub_810D280 - lsrs r6, r0, 16 - movs r5, 0 -_0810D336: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _0810D360 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0810D368 - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - ldr r1, _0810D364 @ =0x0000ffff - ands r1, r0 - cmp r1, r6 - bne _0810D368 - movs r0, 0x1 - b _0810D370 - .align 2, 0 -_0810D360: .4byte gPlayerParty -_0810D364: .4byte 0x0000ffff -_0810D368: - adds r5, 0x1 - cmp r5, 0x5 - ble _0810D336 - movs r0, 0 -_0810D370: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_810D32C - - thumb_func_start sub_810D378 -sub_810D378: @ 810D378 - push {lr} - bl get_map_light_from_warp0 - lsls r0, 24 - lsrs r0, 24 - bl is_light_level_1_2_3_5_or_6 - lsls r0, 24 - cmp r0, 0 - beq _0810D3BE - bl RtcCalcLocalTime - ldr r1, _0810D3AC @ =gUnknown_083F8340 - ldr r0, _0810D3B0 @ =gLocalTime - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0810D3B8 - ldr r0, _0810D3B4 @ =0x0000083a - bl FlagSet - b _0810D3BE - .align 2, 0 -_0810D3AC: .4byte gUnknown_083F8340 -_0810D3B0: .4byte gLocalTime -_0810D3B4: .4byte 0x0000083a -_0810D3B8: - ldr r0, _0810D3C4 @ =0x0000083a - bl FlagReset -_0810D3BE: - pop {r0} - bx r0 - .align 2, 0 -_0810D3C4: .4byte 0x0000083a - thumb_func_end sub_810D378 - - thumb_func_start sub_810D3C8 -sub_810D3C8: @ 810D3C8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_807DDFC - lsls r0, 24 - cmp r0, 0 - beq _0810D3E2 - bl EnableBothScriptContexts - adds r0, r4, 0 - bl DestroyTask -_0810D3E2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_810D3C8 - - thumb_func_start sub_810D3E8 -sub_810D3E8: @ 810D3E8 - push {lr} - ldr r0, _0810D3F8 @ =sub_810D3C8 - movs r1, 0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_0810D3F8: .4byte sub_810D3C8 - thumb_func_end sub_810D3E8 - - thumb_func_start sub_810D3FC -sub_810D3FC: @ 810D3FC - push {lr} - ldr r0, _0810D40C @ =0x00004049 - bl GetVarPointer - movs r1, 0 - strh r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_0810D40C: .4byte 0x00004049 - thumb_func_end sub_810D3FC - - thumb_func_start UpdateBirchState -UpdateBirchState: @ 810D410 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _0810D438 @ =0x00004049 - bl GetVarPointer - adds r5, r0, 0 - ldrh r0, [r5] - adds r4, r0 - strh r4, [r5] - ldrh r0, [r5] - movs r1, 0x7 - bl __umodsi3 - strh r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810D438: .4byte 0x00004049 - thumb_func_end UpdateBirchState - - thumb_func_start ScriptGetPokedexInfo -ScriptGetPokedexInfo: @ 810D43C - push {lr} - ldr r0, _0810D458 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _0810D460 - movs r0, 0 - bl GetHoennPokedexCount - ldr r1, _0810D45C @ =gSpecialVar_0x8005 - strh r0, [r1] - movs r0, 0x1 - bl GetHoennPokedexCount - b _0810D470 - .align 2, 0 -_0810D458: .4byte gSpecialVar_0x8004 -_0810D45C: .4byte gSpecialVar_0x8005 -_0810D460: - movs r0, 0 - bl GetNationalPokedexCount - ldr r1, _0810D480 @ =gSpecialVar_0x8005 - strh r0, [r1] - movs r0, 0x1 - bl GetNationalPokedexCount -_0810D470: - ldr r1, _0810D484 @ =gSpecialVar_0x8006 - strh r0, [r1] - bl IsNationalPokedex - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .align 2, 0 -_0810D480: .4byte gSpecialVar_0x8005 -_0810D484: .4byte gSpecialVar_0x8006 - thumb_func_end ScriptGetPokedexInfo - - thumb_func_start GetPokedexRatingText -GetPokedexRatingText: @ 810D488 - push {lr} - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x9 - bhi _0810D494 - b _0810D5EC -_0810D494: - cmp r0, 0x13 - bhi _0810D4A0 - ldr r0, _0810D49C @ =gUnknown_081C456A - b _0810D5F6 - .align 2, 0 -_0810D49C: .4byte gUnknown_081C456A -_0810D4A0: - cmp r0, 0x1D - bhi _0810D4AC - ldr r0, _0810D4A8 @ =gUnknown_081C45B0 - b _0810D5F6 - .align 2, 0 -_0810D4A8: .4byte gUnknown_081C45B0 -_0810D4AC: - cmp r0, 0x27 - bhi _0810D4B8 - ldr r0, _0810D4B4 @ =gUnknown_081C45F9 - b _0810D5F6 - .align 2, 0 -_0810D4B4: .4byte gUnknown_081C45F9 -_0810D4B8: - cmp r0, 0x31 - bhi _0810D4C4 - ldr r0, _0810D4C0 @ =gUnknown_081C4648 - b _0810D5F6 - .align 2, 0 -_0810D4C0: .4byte gUnknown_081C4648 -_0810D4C4: - cmp r0, 0x3B - bhi _0810D4D0 - ldr r0, _0810D4CC @ =gUnknown_081C467E - b _0810D5F6 - .align 2, 0 -_0810D4CC: .4byte gUnknown_081C467E -_0810D4D0: - cmp r0, 0x45 - bhi _0810D4DC - ldr r0, _0810D4D8 @ =gUnknown_081C46B9 - b _0810D5F6 - .align 2, 0 -_0810D4D8: .4byte gUnknown_081C46B9 -_0810D4DC: - cmp r0, 0x4F - bhi _0810D4E8 - ldr r0, _0810D4E4 @ =gUnknown_081C46FE - b _0810D5F6 - .align 2, 0 -_0810D4E4: .4byte gUnknown_081C46FE -_0810D4E8: - cmp r0, 0x59 - bhi _0810D4F4 - ldr r0, _0810D4F0 @ =gUnknown_081C4747 - b _0810D5F6 - .align 2, 0 -_0810D4F0: .4byte gUnknown_081C4747 -_0810D4F4: - cmp r0, 0x63 - bhi _0810D500 - ldr r0, _0810D4FC @ =gUnknown_081C4780 - b _0810D5F6 - .align 2, 0 -_0810D4FC: .4byte gUnknown_081C4780 -_0810D500: - cmp r0, 0x6D - bhi _0810D50C - ldr r0, _0810D508 @ =gUnknown_081C47DF - b _0810D5F6 - .align 2, 0 -_0810D508: .4byte gUnknown_081C47DF -_0810D50C: - cmp r0, 0x77 - bhi _0810D518 - ldr r0, _0810D514 @ =gUnknown_081C4828 - b _0810D5F6 - .align 2, 0 -_0810D514: .4byte gUnknown_081C4828 -_0810D518: - cmp r0, 0x81 - bhi _0810D524 - ldr r0, _0810D520 @ =gUnknown_081C4863 - b _0810D5F6 - .align 2, 0 -_0810D520: .4byte gUnknown_081C4863 -_0810D524: - cmp r0, 0x8B - bhi _0810D530 - ldr r0, _0810D52C @ =gUnknown_081C489C - b _0810D5F6 - .align 2, 0 -_0810D52C: .4byte gUnknown_081C489C -_0810D530: - cmp r0, 0x95 - bhi _0810D53C - ldr r0, _0810D538 @ =gUnknown_081C48EB - b _0810D5F6 - .align 2, 0 -_0810D538: .4byte gUnknown_081C48EB -_0810D53C: - cmp r0, 0x9F - bhi _0810D548 - ldr r0, _0810D544 @ =gUnknown_081C4936 - b _0810D5F6 - .align 2, 0 -_0810D544: .4byte gUnknown_081C4936 -_0810D548: - cmp r0, 0xA9 - bhi _0810D554 - ldr r0, _0810D550 @ =gUnknown_081C49A2 - b _0810D5F6 - .align 2, 0 -_0810D550: .4byte gUnknown_081C49A2 -_0810D554: - cmp r0, 0xB3 - bhi _0810D560 - ldr r0, _0810D55C @ =gUnknown_081C4A06 - b _0810D5F6 - .align 2, 0 -_0810D55C: .4byte gUnknown_081C4A06 -_0810D560: - cmp r0, 0xBD - bhi _0810D56C - ldr r0, _0810D568 @ =gUnknown_081C4A4F - b _0810D5F6 - .align 2, 0 -_0810D568: .4byte gUnknown_081C4A4F -_0810D56C: - cmp r0, 0xC7 - bls _0810D5DA - cmp r0, 0xC8 - bne _0810D5A8 - ldr r0, _0810D5A4 @ =0x00000199 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl sub_8090D90 - lsls r0, 24 - cmp r0, 0 - bne _0810D5DA - movs r0, 0xCD - lsls r0, 1 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl sub_8090D90 - lsls r0, 24 - cmp r0, 0 - bne _0810D5DA - b _0810D5F4 - .align 2, 0 -_0810D5A4: .4byte 0x00000199 -_0810D5A8: - cmp r0, 0xC9 - bne _0810D5E8 - ldr r0, _0810D5E0 @ =0x00000199 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl sub_8090D90 - lsls r0, 24 - cmp r0, 0 - beq _0810D5F4 - movs r0, 0xCD - lsls r0, 1 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl sub_8090D90 - lsls r0, 24 - cmp r0, 0 - beq _0810D5F4 -_0810D5DA: - ldr r0, _0810D5E4 @ =gUnknown_081C4A91 - b _0810D5F6 - .align 2, 0 -_0810D5E0: .4byte 0x00000199 -_0810D5E4: .4byte gUnknown_081C4A91 -_0810D5E8: - cmp r0, 0xCA - beq _0810D5F4 -_0810D5EC: - ldr r0, _0810D5F0 @ =gUnknown_081C4520 - b _0810D5F6 - .align 2, 0 -_0810D5F0: .4byte gUnknown_081C4520 -_0810D5F4: - ldr r0, _0810D5FC @ =gUnknown_081C4ADA -_0810D5F6: - pop {r1} - bx r1 - .align 2, 0 -_0810D5FC: .4byte gUnknown_081C4ADA - thumb_func_end GetPokedexRatingText - - thumb_func_start ShowPokedexRatingMessage -ShowPokedexRatingMessage: @ 810D600 - push {lr} - ldr r0, _0810D614 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - bl GetPokedexRatingText - bl ShowFieldMessage - pop {r0} - bx r0 - .align 2, 0 -_0810D614: .4byte gSpecialVar_0x8004 - thumb_func_end ShowPokedexRatingMessage - - thumb_func_start AccessHallOfFamePC -AccessHallOfFamePC: @ 810D618 - push {lr} - ldr r0, _0810D628 @ =sub_81428CC - bl SetMainCallback2 - bl ScriptContext2_Enable - pop {r0} - bx r0 - .align 2, 0 -_0810D628: .4byte sub_81428CC - thumb_func_end AccessHallOfFamePC - - thumb_func_start ReturnFromHallOfFamePC -ReturnFromHallOfFamePC: @ 810D62C - push {lr} - ldr r0, _0810D640 @ =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - ldr r1, _0810D644 @ =gUnknown_0300485C - ldr r0, _0810D648 @ =ReshowPCMenuAfterHallOfFamePC - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0810D640: .4byte c2_exit_to_overworld_2_switch -_0810D644: .4byte gUnknown_0300485C -_0810D648: .4byte ReshowPCMenuAfterHallOfFamePC - thumb_func_end ReturnFromHallOfFamePC - - thumb_func_start ReshowPCMenuAfterHallOfFamePC -ReshowPCMenuAfterHallOfFamePC: @ 810D64C - push {lr} - sub sp, 0x4 - bl ScriptContext2_Enable - bl sub_8053E90 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - bl sp109_CreatePCMenu - bl sub_80B5838 - ldr r0, _0810D680 @ =sub_810D684 - movs r1, 0xA - bl CreateTask - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0810D680: .4byte sub_810D684 - thumb_func_end ReshowPCMenuAfterHallOfFamePC - - thumb_func_start sub_810D684 -sub_810D684: @ 810D684 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0810D6A0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0810D69C - adds r0, r2, 0 - bl DestroyTask -_0810D69C: - pop {r0} - bx r0 - .align 2, 0 -_0810D6A0: .4byte gPaletteFade - thumb_func_end sub_810D684 - - thumb_func_start sub_810D6A4 -sub_810D6A4: @ 810D6A4 - push {lr} - ldr r0, _0810D6B4 @ =sub_8145D88 - bl SetMainCallback2 - bl ScriptContext2_Enable - pop {r0} - bx r0 - .align 2, 0 -_0810D6B4: .4byte sub_8145D88 - thumb_func_end sub_810D6A4 - - thumb_func_start sub_810D6B8 -sub_810D6B8: @ 810D6B8 - push {lr} - ldr r0, _0810D6D0 @ =gMain - ldr r1, _0810D6D4 @ =c2_exit_to_overworld_2_switch - str r1, [r0, 0x8] - ldr r0, _0810D6D8 @ =Cb2_ViewWallClock - bl SetMainCallback2 - bl ScriptContext2_Enable - pop {r0} - bx r0 - .align 2, 0 -_0810D6D0: .4byte gMain -_0810D6D4: .4byte c2_exit_to_overworld_2_switch -_0810D6D8: .4byte Cb2_ViewWallClock - thumb_func_end sub_810D6B8 - - thumb_func_start ResetCyclingRoadChallengeData -ResetCyclingRoadChallengeData: @ 810D6DC - ldr r0, _0810D6F0 @ =gUnknown_02039250 - movs r1, 0 - strb r1, [r0] - ldr r0, _0810D6F4 @ =gUnknown_02039251 - strb r1, [r0] - ldr r1, _0810D6F8 @ =gUnknown_02039254 - movs r0, 0 - str r0, [r1] - bx lr - .align 2, 0 -_0810D6F0: .4byte gUnknown_02039250 -_0810D6F4: .4byte gUnknown_02039251 -_0810D6F8: .4byte gUnknown_02039254 - thumb_func_end ResetCyclingRoadChallengeData - - thumb_func_start BeginCyclingRoadChallenge -BeginCyclingRoadChallenge: @ 810D6FC - ldr r1, _0810D714 @ =gUnknown_02039250 - movs r0, 0x1 - strb r0, [r1] - ldr r1, _0810D718 @ =gUnknown_02039251 - movs r0, 0 - strb r0, [r1] - ldr r1, _0810D71C @ =gUnknown_02039254 - ldr r0, _0810D720 @ =gMain - ldr r0, [r0, 0x20] - str r0, [r1] - bx lr - .align 2, 0 -_0810D714: .4byte gUnknown_02039250 -_0810D718: .4byte gUnknown_02039251 -_0810D71C: .4byte gUnknown_02039254 -_0810D720: .4byte gMain - thumb_func_end BeginCyclingRoadChallenge - - thumb_func_start GetPlayerAvatarBike -GetPlayerAvatarBike: @ 810D724 - push {lr} - movs r0, 0x4 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - beq _0810D736 - movs r0, 0x1 - b _0810D748 -_0810D736: - movs r0, 0x2 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - bne _0810D746 - movs r0, 0 - b _0810D748 -_0810D746: - movs r0, 0x2 -_0810D748: - pop {r1} - bx r1 - thumb_func_end GetPlayerAvatarBike - - thumb_func_start DetermineCyclingRoadResults -DetermineCyclingRoadResults: @ 810D74C - push {r4-r7,lr} - adds r7, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - cmp r6, 0x63 - bhi _0810D778 - ldr r4, _0810D770 @ =gStringVar1 - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r1, _0810D774 @ =gOtherText_Times - adds r0, r4, 0 - bl StringAppend - b _0810D780 - .align 2, 0 -_0810D770: .4byte gStringVar1 -_0810D774: .4byte gOtherText_Times -_0810D778: - ldr r0, _0810D7CC @ =gStringVar1 - ldr r1, _0810D7D0 @ =gOtherText_99Times - bl StringCopy -_0810D780: - ldr r0, _0810D7D4 @ =0x00000e0f - cmp r7, r0 - bhi _0810D7E0 - ldr r4, _0810D7D8 @ =gStringVar2 - adds r0, r7, 0 - movs r1, 0x3C - bl __udivsi3 - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - movs r0, 0xAD - strb r0, [r4, 0x2] - adds r5, r4, 0x3 - adds r0, r7, 0 - movs r1, 0x3C - bl __umodsi3 - movs r1, 0x64 - muls r0, r1 - movs r1, 0x3C - bl __udivsi3 - adds r1, r0, 0 - adds r0, r5, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r1, _0810D7DC @ =gOtherText_Seconds - adds r0, r4, 0 - bl StringAppend - b _0810D7E8 - .align 2, 0 -_0810D7CC: .4byte gStringVar1 -_0810D7D0: .4byte gOtherText_99Times -_0810D7D4: .4byte 0x00000e0f -_0810D7D8: .4byte gStringVar2 -_0810D7DC: .4byte gOtherText_Seconds -_0810D7E0: - ldr r0, _0810D7F4 @ =gStringVar2 - ldr r1, _0810D7F8 @ =gOtherText_1Minute - bl StringCopy -_0810D7E8: - movs r4, 0 - cmp r6, 0 - bne _0810D7FC - movs r4, 0x5 - b _0810D81A - .align 2, 0 -_0810D7F4: .4byte gStringVar2 -_0810D7F8: .4byte gOtherText_1Minute -_0810D7FC: - cmp r6, 0x3 - bhi _0810D804 - movs r4, 0x4 - b _0810D81A -_0810D804: - cmp r6, 0x9 - bhi _0810D80C - movs r4, 0x3 - b _0810D81A -_0810D80C: - cmp r6, 0x13 - bhi _0810D814 - movs r4, 0x2 - b _0810D81A -_0810D814: - cmp r6, 0x63 - bhi _0810D81A - movs r4, 0x1 -_0810D81A: - adds r0, r7, 0 - movs r1, 0x3C - bl __udivsi3 - cmp r0, 0xA - bhi _0810D82A - adds r0, r4, 0x5 - b _0810D848 -_0810D82A: - cmp r0, 0xF - bhi _0810D832 - adds r0, r4, 0x4 - b _0810D848 -_0810D832: - cmp r0, 0x14 - bhi _0810D83A - adds r0, r4, 0x3 - b _0810D848 -_0810D83A: - cmp r0, 0x28 - bhi _0810D842 - adds r0, r4, 0x2 - b _0810D848 -_0810D842: - cmp r0, 0x3B - bhi _0810D84C - adds r0, r4, 0x1 -_0810D848: - lsls r0, 24 - lsrs r4, r0, 24 -_0810D84C: - ldr r0, _0810D858 @ =gScriptResult - strh r4, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810D858: .4byte gScriptResult - thumb_func_end DetermineCyclingRoadResults - - thumb_func_start FinishCyclingRoadChallenge -FinishCyclingRoadChallenge: @ 810D85C - push {r4,r5,lr} - ldr r0, _0810D880 @ =gMain - ldr r1, _0810D884 @ =gUnknown_02039254 - ldr r4, [r0, 0x20] - ldr r0, [r1] - subs r4, r0 - ldr r5, _0810D888 @ =gUnknown_02039251 - ldrb r1, [r5] - adds r0, r4, 0 - bl DetermineCyclingRoadResults - ldrb r1, [r5] - adds r0, r4, 0 - bl RecordCyclingRoadResults - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810D880: .4byte gMain -_0810D884: .4byte gUnknown_02039254 -_0810D888: .4byte gUnknown_02039251 - thumb_func_end FinishCyclingRoadChallenge - - thumb_func_start RecordCyclingRoadResults -RecordCyclingRoadResults: @ 810D88C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - ldr r6, _0810D8E0 @ =0x00004028 - adds r0, r6, 0 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r7, _0810D8E4 @ =0x00004029 - adds r0, r7, 0 - bl VarGet - lsls r0, 16 - adds r4, r0 - cmp r4, r5 - bhi _0810D8BC - cmp r4, 0 - bne _0810D8D6 -_0810D8BC: - lsls r1, r5, 16 - lsrs r1, 16 - adds r0, r6, 0 - bl VarSet - lsrs r1, r5, 16 - adds r0, r7, 0 - bl VarSet - ldr r0, _0810D8E8 @ =0x00004027 - mov r1, r8 - bl VarSet -_0810D8D6: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810D8E0: .4byte 0x00004028 -_0810D8E4: .4byte 0x00004029 -_0810D8E8: .4byte 0x00004027 - thumb_func_end RecordCyclingRoadResults - - thumb_func_start GetRecordedCyclingRoadResults -GetRecordedCyclingRoadResults: @ 810D8EC - push {r4,lr} - ldr r0, _0810D920 @ =0x00004028 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _0810D924 @ =0x00004029 - bl VarGet - lsls r0, 16 - adds r4, r0 - cmp r4, 0 - beq _0810D92C - ldr r0, _0810D928 @ =0x00004027 - bl VarGet - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl DetermineCyclingRoadResults - movs r0, 0x1 - b _0810D92E - .align 2, 0 -_0810D920: .4byte 0x00004028 -_0810D924: .4byte 0x00004029 -_0810D928: .4byte 0x00004027 -_0810D92C: - movs r0, 0 -_0810D92E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetRecordedCyclingRoadResults - - thumb_func_start UpdateCyclingRoadState -UpdateCyclingRoadState: @ 810D934 - push {r4,lr} - ldr r0, _0810D974 @ =gUnknown_020297F0 - ldrh r1, [r0] - ldr r0, _0810D978 @ =0x00000c1d - cmp r1, r0 - beq _0810D96C - ldr r4, _0810D97C @ =0x000040a9 - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - beq _0810D95E - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x3 - bne _0810D96C -_0810D95E: - adds r0, r4, 0 - movs r1, 0 - bl VarSet - movs r0, 0 - bl sav1_set_battle_music_maybe -_0810D96C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810D974: .4byte gUnknown_020297F0 -_0810D978: .4byte 0x00000c1d -_0810D97C: .4byte 0x000040a9 - thumb_func_end UpdateCyclingRoadState - - thumb_func_start SetSSTidalFlag -SetSSTidalFlag: @ 810D980 - push {lr} - ldr r0, _0810D998 @ =0x0000082d - bl FlagSet - ldr r0, _0810D99C @ =0x0000404a - bl GetVarPointer - movs r1, 0 - strh r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_0810D998: .4byte 0x0000082d -_0810D99C: .4byte 0x0000404a - thumb_func_end SetSSTidalFlag - - thumb_func_start ResetSSTidalFlag -ResetSSTidalFlag: @ 810D9A0 - push {lr} - ldr r0, _0810D9AC @ =0x0000082d - bl FlagReset - pop {r0} - bx r0 - .align 2, 0 -_0810D9AC: .4byte 0x0000082d - thumb_func_end ResetSSTidalFlag - - thumb_func_start sub_810D9B0 -sub_810D9B0: @ 810D9B0 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _0810D9DC @ =0x0000082d - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0810D9D6 - ldr r0, _0810D9E0 @ =0x0000404a - bl GetVarPointer - ldrh r1, [r0] - adds r1, r4, r1 - strh r1, [r0] - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0xCC - bhi _0810D9E4 -_0810D9D6: - movs r0, 0 - b _0810D9E6 - .align 2, 0 -_0810D9DC: .4byte 0x0000082d -_0810D9E0: .4byte 0x0000404a -_0810D9E4: - movs r0, 0x1 -_0810D9E6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810D9B0 - - thumb_func_start sub_810D9EC -sub_810D9EC: @ 810D9EC - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r5, r1, 0 - adds r6, r2, 0 - adds r7, r3, 0 - ldr r0, _0810DA1C @ =0x0000404a - bl GetVarPointer - adds r4, r0, 0 - ldr r0, _0810DA20 @ =0x000040b4 - bl GetVarPointer - ldrh r0, [r0] - subs r0, 0x1 - cmp r0, 0x9 - bhi _0810DAB2 - lsls r0, 2 - ldr r1, _0810DA24 @ =_0810DA28 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810DA1C: .4byte 0x0000404a -_0810DA20: .4byte 0x000040b4 -_0810DA24: .4byte _0810DA28 - .align 2, 0 -_0810DA28: - .4byte _0810DA50 - .4byte _0810DA60 - .4byte _0810DA54 - .4byte _0810DA58 - .4byte _0810DA58 - .4byte _0810DA5C - .4byte _0810DA88 - .4byte _0810DA50 - .4byte _0810DA54 - .4byte _0810DA5C -_0810DA50: - movs r0, 0x1 - b _0810DABE -_0810DA54: - movs r0, 0x4 - b _0810DABE -_0810DA58: - movs r0, 0x2 - b _0810DABE -_0810DA5C: - movs r0, 0x3 - b _0810DABE -_0810DA60: - ldrh r0, [r4] - cmp r0, 0x3B - bhi _0810DA70 - movs r0, 0x31 - strb r0, [r5] - ldrh r0, [r4] - adds r0, 0x13 - b _0810DAB0 -_0810DA70: - cmp r0, 0x8B - bhi _0810DA7E - movs r0, 0x30 - strb r0, [r5] - ldrh r0, [r4] - subs r0, 0x3C - b _0810DAB0 -_0810DA7E: - movs r0, 0x2F - strb r0, [r5] - ldrh r0, [r4] - subs r0, 0x8C - b _0810DAB0 -_0810DA88: - ldrh r0, [r4] - cmp r0, 0x41 - bhi _0810DA98 - movs r0, 0x2F - strb r0, [r5] - ldrh r1, [r4] - movs r0, 0x41 - b _0810DAAE -_0810DA98: - cmp r0, 0x91 - bhi _0810DAA6 - movs r0, 0x30 - strb r0, [r5] - ldrh r1, [r4] - movs r0, 0x91 - b _0810DAAE -_0810DAA6: - movs r0, 0x31 - strb r0, [r5] - ldrh r1, [r4] - movs r0, 0xE0 -_0810DAAE: - subs r0, r1 -_0810DAB0: - strh r0, [r6] -_0810DAB2: - movs r0, 0 - mov r1, r8 - strb r0, [r1] - movs r0, 0x14 - strh r0, [r7] - movs r0, 0 -_0810DABE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810D9EC - - thumb_func_start GetLinkPartnerNames -GetLinkPartnerNames: @ 810DAC8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0 - bl sub_8008218 - lsls r0, 24 - lsrs r7, r0, 24 - bl sub_800820C - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - cmp r4, r5 - bcs _0810DB12 - ldr r0, _0810DB20 @ =gUnknown_083D1464 - mov r8, r0 -_0810DAEA: - cmp r7, r4 - beq _0810DB08 - lsls r0, r6, 2 - add r0, r8 - ldr r0, [r0] - lsls r1, r4, 3 - subs r1, r4 - lsls r1, 2 - ldr r2, _0810DB24 @ =gLinkPlayers + 0x8 - adds r1, r2 - bl StringCopy - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0810DB08: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _0810DAEA -_0810DB12: - adds r0, r5, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810DB20: .4byte gUnknown_083D1464 -_0810DB24: .4byte gLinkPlayers + 0x8 - thumb_func_end GetLinkPartnerNames - - thumb_func_start sub_810DB28 -sub_810DB28: @ 810DB28 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - movs r7, 0 - movs r0, 0 - mov r9, r0 - mov r8, r0 - ldr r1, _0810DB74 @ =gUnknown_083F8358 - add r0, sp, 0x8 - movs r2, 0x4 - bl memcpy - add r4, sp, 0xC - ldr r1, _0810DB78 @ =gUnknown_083F835C - adds r0, r4, 0 - movs r2, 0x8 - bl memcpy - bl sub_8008218 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x2 - beq _0810DB94 - cmp r0, 0x2 - bgt _0810DB7C - cmp r0, 0x1 - beq _0810DBC0 - b _0810DBD2 - .align 2, 0 -_0810DB74: .4byte gUnknown_083F8358 -_0810DB78: .4byte gUnknown_083F835C -_0810DB7C: - cmp r1, 0x3 - beq _0810DB86 - cmp r1, 0x4 - beq _0810DBA8 - b _0810DBD2 -_0810DB86: - movs r7, 0x2 - ldr r1, _0810DB90 @ =gSaveBlock1 - ldrh r0, [r1] - subs r0, 0x1 - b _0810DBAE - .align 2, 0 -_0810DB90: .4byte gSaveBlock1 -_0810DB94: - movs r7, 0x1 - ldr r0, _0810DBA4 @ =gSaveBlock1 - ldrh r1, [r0] - mov r9, r1 - ldrh r0, [r0, 0x2] - subs r0, 0x1 - b _0810DBCC - .align 2, 0 -_0810DBA4: .4byte gSaveBlock1 -_0810DBA8: - ldr r1, _0810DBBC @ =gSaveBlock1 - ldrh r0, [r1] - adds r0, 0x1 -_0810DBAE: - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - ldrh r1, [r1, 0x2] - mov r8, r1 - b _0810DBD2 - .align 2, 0 -_0810DBBC: .4byte gSaveBlock1 -_0810DBC0: - movs r7, 0x3 - ldr r0, _0810DBD8 @ =gSaveBlock1 - ldrh r4, [r0] - mov r9, r4 - ldrh r0, [r0, 0x2] - adds r0, 0x1 -_0810DBCC: - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 -_0810DBD2: - movs r6, 0 - b _0810DC5C - .align 2, 0 -_0810DBD8: .4byte gSaveBlock1 -_0810DBDC: - cmp r10, r6 - beq _0810DC56 - ldr r1, _0810DC74 @ =gLinkPlayers - lsls r0, r6, 3 - subs r0, r6 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x13] - movs r0, 0 - bl sub_805983C - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - adds r1, r7 - adds r1, 0x8 - ldrb r1, [r1] - movs r2, 0xF0 - subs r2, r6 - lsls r2, 24 - lsrs r2, 24 - lsls r5, r7, 1 - mov r3, sp - adds r3, r5 - adds r3, 0xC - ldrb r3, [r3] - lsls r3, 24 - asrs r3, 24 - mov r12, r3 - mov r4, r9 - lsls r3, r4, 16 - asrs r3, 16 - add r3, r12 - adds r3, 0x7 - lsls r3, 16 - asrs r3, 16 - mov r4, sp - adds r4, 0xD - adds r4, r5 - ldrb r4, [r4] - lsls r4, 24 - asrs r4, 24 - mov r12, r4 - mov r5, r8 - lsls r4, r5, 16 - asrs r4, 16 - add r4, r12 - adds r4, 0x7 - lsls r4, 16 - asrs r4, 16 - str r4, [sp] - movs r4, 0 - str r4, [sp, 0x4] - bl SpawnSpecialFieldObjectParametrized - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x4 - bne _0810DC56 - movs r7, 0 -_0810DC56: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0810DC5C: - ldr r0, _0810DC78 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r6, r0 - bcc _0810DBDC - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810DC74: .4byte gLinkPlayers -_0810DC78: .4byte gSpecialVar_0x8004 - thumb_func_end sub_810DB28 - - thumb_func_start sub_810DC7C -sub_810DC7C: @ 810DC7C - push {r4,r5,lr} - movs r4, 0 - ldr r5, _0810DC9C @ =gUnknown_083F8364 -_0810DC82: - ldr r0, _0810DCA0 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r4, r0 - bne _0810DCA8 - lsls r1, r4, 2 - adds r1, r5 - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - ldr r2, _0810DCA4 @ =0x00000206 - bl MapGridSetMetatileIdAt - b _0810DCB6 - .align 2, 0 -_0810DC9C: .4byte gUnknown_083F8364 -_0810DCA0: .4byte gSpecialVar_0x8004 -_0810DCA4: .4byte 0x00000206 -_0810DCA8: - lsls r1, r4, 2 - adds r1, r5 - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - ldr r2, _0810DCC8 @ =0x00000205 - bl MapGridSetMetatileIdAt -_0810DCB6: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _0810DC82 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810DCC8: .4byte 0x00000205 - thumb_func_end sub_810DC7C - - thumb_func_start sub_810DCCC -sub_810DCCC: @ 810DCCC - push {r4-r6,lr} - movs r5, 0xC -_0810DCD0: - movs r4, 0x7 - adds r6, r5, 0x1 -_0810DCD4: - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetMetatileIdAt - ldr r1, _0810DCF0 @ =0xfffffde6 - adds r0, r1 - cmp r0, 0x37 - bls _0810DCE6 - b _0810DEC0 -_0810DCE6: - lsls r0, 2 - ldr r1, _0810DCF4 @ =_0810DCF8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810DCF0: .4byte 0xfffffde6 -_0810DCF4: .4byte _0810DCF8 - .align 2, 0 -_0810DCF8: - .4byte _0810DE7E - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DDD8 - .4byte _0810DDDE - .4byte _0810DE18 - .4byte _0810DE20 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DDE8 - .4byte _0810DDEE - .4byte _0810DE28 - .4byte _0810DE30 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DDF8 - .4byte _0810DDFE - .4byte _0810DE38 - .4byte _0810DE40 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DE08 - .4byte _0810DE10 - .4byte _0810DE48 - .4byte _0810DE50 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DE58 - .4byte _0810DE68 - .4byte _0810DE78 - .4byte _0810DEA0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DE60 - .4byte _0810DE70 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEB6 - .4byte _0810DEA8 -_0810DDD8: - movs r2, 0x8C - lsls r2, 2 - b _0810DEAC -_0810DDDE: - ldr r2, _0810DDE4 @ =0x00000231 - b _0810DEAC - .align 2, 0 -_0810DDE4: .4byte 0x00000231 -_0810DDE8: - movs r2, 0x8E - lsls r2, 2 - b _0810DEAC -_0810DDEE: - ldr r2, _0810DDF4 @ =0x00000239 - b _0810DEAC - .align 2, 0 -_0810DDF4: .4byte 0x00000239 -_0810DDF8: - movs r2, 0x88 - lsls r2, 2 - b _0810DEAC -_0810DDFE: - ldr r2, _0810DE04 @ =0x00000221 - b _0810DEAC - .align 2, 0 -_0810DE04: .4byte 0x00000221 -_0810DE08: - ldr r2, _0810DE0C @ =0x00000e28 - b _0810DEAC - .align 2, 0 -_0810DE0C: .4byte 0x00000e28 -_0810DE10: - ldr r2, _0810DE14 @ =0x00000e29 - b _0810DEAC - .align 2, 0 -_0810DE14: .4byte 0x00000e29 -_0810DE18: - ldr r2, _0810DE1C @ =0x00000232 - b _0810DEAC - .align 2, 0 -_0810DE1C: .4byte 0x00000232 -_0810DE20: - ldr r2, _0810DE24 @ =0x00000233 - b _0810DEAC - .align 2, 0 -_0810DE24: .4byte 0x00000233 -_0810DE28: - ldr r2, _0810DE2C @ =0x0000023a - b _0810DEAC - .align 2, 0 -_0810DE2C: .4byte 0x0000023a -_0810DE30: - ldr r2, _0810DE34 @ =0x0000023b - b _0810DEAC - .align 2, 0 -_0810DE34: .4byte 0x0000023b -_0810DE38: - ldr r2, _0810DE3C @ =0x00000222 - b _0810DEAC - .align 2, 0 -_0810DE3C: .4byte 0x00000222 -_0810DE40: - ldr r2, _0810DE44 @ =0x00000223 - b _0810DEAC - .align 2, 0 -_0810DE44: .4byte 0x00000223 -_0810DE48: - ldr r2, _0810DE4C @ =0x00000e2a - b _0810DEAC - .align 2, 0 -_0810DE4C: .4byte 0x00000e2a -_0810DE50: - ldr r2, _0810DE54 @ =0x00000e2b - b _0810DEAC - .align 2, 0 -_0810DE54: .4byte 0x00000e2b -_0810DE58: - ldr r2, _0810DE5C @ =0x00000e42 - b _0810DEAC - .align 2, 0 -_0810DE5C: .4byte 0x00000e42 -_0810DE60: - ldr r2, _0810DE64 @ =0x0000021a - b _0810DEAC - .align 2, 0 -_0810DE64: .4byte 0x0000021a -_0810DE68: - ldr r2, _0810DE6C @ =0x00000e43 - b _0810DEAC - .align 2, 0 -_0810DE6C: .4byte 0x00000e43 -_0810DE70: - ldr r2, _0810DE74 @ =0x0000021a - b _0810DEAC - .align 2, 0 -_0810DE74: .4byte 0x0000021a -_0810DE78: - movs r2, 0xE4 - lsls r2, 4 - b _0810DEAC -_0810DE7E: - subs r1, r5, 0x1 - adds r0, r4, 0 - bl MapGridGetMetatileIdAt - movs r1, 0x90 - lsls r1, 2 - cmp r0, r1 - bne _0810DE98 - ldr r2, _0810DE94 @ =0x00000e48 - b _0810DEAC - .align 2, 0 -_0810DE94: .4byte 0x00000e48 -_0810DE98: - ldr r2, _0810DE9C @ =0x00000e49 - b _0810DEAC - .align 2, 0 -_0810DE9C: .4byte 0x00000e49 -_0810DEA0: - ldr r2, _0810DEA4 @ =0x00000e41 - b _0810DEAC - .align 2, 0 -_0810DEA4: .4byte 0x00000e41 -_0810DEA8: - movs r2, 0xE5 - lsls r2, 4 -_0810DEAC: - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt - b _0810DEC0 -_0810DEB6: - ldr r2, _0810DED8 @ =0x00000251 - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt -_0810DEC0: - adds r4, 0x1 - cmp r4, 0xF - bgt _0810DEC8 - b _0810DCD4 -_0810DEC8: - adds r5, r6, 0 - cmp r5, 0x17 - bgt _0810DED0 - b _0810DCD0 -_0810DED0: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810DED8: .4byte 0x00000251 - thumb_func_end sub_810DCCC - - thumb_func_start sub_810DEDC -sub_810DEDC: @ 810DEDC - push {r4-r6,lr} - ldr r4, _0810DF18 @ =gUnknown_083F8364 - movs r5, 0x2 -_0810DEE2: - ldrb r0, [r4] - ldrb r1, [r4, 0x1] - ldr r2, _0810DF1C @ =0x00000206 - bl MapGridSetMetatileIdAt - adds r4, 0x4 - subs r5, 0x1 - cmp r5, 0 - bge _0810DEE2 - movs r5, 0xC -_0810DEF6: - movs r4, 0x7 - adds r6, r5, 0x1 -_0810DEFA: - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetMetatileIdAt - ldr r1, _0810DF20 @ =0xfffffde0 - adds r0, r1 - cmp r0, 0x30 - bls _0810DF0C - b _0810E056 -_0810DF0C: - lsls r0, 2 - ldr r1, _0810DF24 @ =_0810DF28 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810DF18: .4byte gUnknown_083F8364 -_0810DF1C: .4byte 0x00000206 -_0810DF20: .4byte 0xfffffde0 -_0810DF24: .4byte _0810DF28 - .align 2, 0 -_0810DF28: - .4byte _0810DFEC - .4byte _0810DFF2 - .4byte _0810E00C - .4byte _0810E014 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810DFFC - .4byte _0810E002 - .4byte _0810E01C - .4byte _0810E024 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E02C - .4byte _0810E034 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E03C - .4byte _0810E03C - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E04C -_0810DFEC: - movs r2, 0x8C - lsls r2, 2 - b _0810E03E -_0810DFF2: - ldr r2, _0810DFF8 @ =0x00000231 - b _0810E03E - .align 2, 0 -_0810DFF8: .4byte 0x00000231 -_0810DFFC: - movs r2, 0x8E - lsls r2, 2 - b _0810E03E -_0810E002: - ldr r2, _0810E008 @ =0x00000239 - b _0810E03E - .align 2, 0 -_0810E008: .4byte 0x00000239 -_0810E00C: - ldr r2, _0810E010 @ =0x00000232 - b _0810E03E - .align 2, 0 -_0810E010: .4byte 0x00000232 -_0810E014: - ldr r2, _0810E018 @ =0x00000233 - b _0810E03E - .align 2, 0 -_0810E018: .4byte 0x00000233 -_0810E01C: - ldr r2, _0810E020 @ =0x0000023a - b _0810E03E - .align 2, 0 -_0810E020: .4byte 0x0000023a -_0810E024: - ldr r2, _0810E028 @ =0x0000023b - b _0810E03E - .align 2, 0 -_0810E028: .4byte 0x0000023b -_0810E02C: - ldr r2, _0810E030 @ =0x00000e42 - b _0810E03E - .align 2, 0 -_0810E030: .4byte 0x00000e42 -_0810E034: - ldr r2, _0810E038 @ =0x00000e43 - b _0810E03E - .align 2, 0 -_0810E038: .4byte 0x00000e43 -_0810E03C: - ldr r2, _0810E048 @ =0x0000021a -_0810E03E: - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt - b _0810E056 - .align 2, 0 -_0810E048: .4byte 0x0000021a -_0810E04C: - ldr r2, _0810E06C @ =0x00000251 - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt -_0810E056: - adds r4, 0x1 - cmp r4, 0xF - bgt _0810E05E - b _0810DEFA -_0810E05E: - adds r5, r6, 0 - cmp r5, 0x17 - bgt _0810E066 - b _0810DEF6 -_0810E066: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810E06C: .4byte 0x00000251 - thumb_func_end sub_810DEDC - - thumb_func_start sub_810E070 -sub_810E070: @ 810E070 - push {lr} - ldr r0, _0810E090 @ =gUnknown_02039258 - movs r1, 0 - strb r1, [r0] - ldr r0, _0810E094 @ =gUnknown_02039259 - strb r1, [r0] - movs r0, 0x2C - bl PlaySE - ldr r0, _0810E098 @ =sub_810E09C - movs r1, 0x8 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_0810E090: .4byte gUnknown_02039258 -_0810E094: .4byte gUnknown_02039259 -_0810E098: .4byte sub_810E09C - thumb_func_end sub_810E070 - - thumb_func_start sub_810E09C -sub_810E09C: @ 810E09C - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _0810E0E4 @ =gUnknown_083F8370 - ldr r5, _0810E0E8 @ =gUnknown_02039259 - ldrb r1, [r5] - adds r0, r1, r0 - ldr r4, _0810E0EC @ =gUnknown_02039258 - ldrb r2, [r4] - ldrb r0, [r0] - cmp r0, r2 - bne _0810E0F8 - ldr r0, _0810E0F0 @ =gSpecialVar_0x8004 - ldrb r0, [r0] - ldr r2, _0810E0F4 @ =gUnknown_083F8376 - lsls r1, 1 - adds r1, r2 - ldrh r1, [r1] - bl sub_810E104 - movs r0, 0 - strb r0, [r4] - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bne _0810E0FC - adds r0, r6, 0 - bl DestroyTask - bl EnableBothScriptContexts - b _0810E0FC - .align 2, 0 -_0810E0E4: .4byte gUnknown_083F8370 -_0810E0E8: .4byte gUnknown_02039259 -_0810E0EC: .4byte gUnknown_02039258 -_0810E0F0: .4byte gSpecialVar_0x8004 -_0810E0F4: .4byte gUnknown_083F8376 -_0810E0F8: - adds r0, r2, 0x1 - strb r0, [r4] -_0810E0FC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_810E09C - - thumb_func_start sub_810E104 -sub_810E104: @ 810E104 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r2, r1, 16 - movs r7, 0 - subs r0, 0x1 - cmp r0, 0x7 - bhi _0810E1CC - lsls r0, 2 - ldr r1, _0810E128 @ =_0810E12C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810E128: .4byte _0810E12C - .align 2, 0 -_0810E12C: - .4byte _0810E14C - .4byte _0810E15E - .4byte _0810E170 - .4byte _0810E182 - .4byte _0810E190 - .4byte _0810E1A6 - .4byte _0810E1B2 - .4byte _0810E1C0 -_0810E14C: - movs r7, 0x2 - mov r1, sp - movs r0, 0x1 - strh r0, [r1] - movs r0, 0x7 - strh r0, [r1, 0x2] - add r1, sp, 0x8 - movs r0, 0x68 - b _0810E1A0 -_0810E15E: - movs r7, 0x2 - mov r1, sp - movs r0, 0x1 - strh r0, [r1] - movs r0, 0x7 - strh r0, [r1, 0x2] - add r1, sp, 0x8 - movs r0, 0x4E - b _0810E1A0 -_0810E170: - movs r7, 0x2 - mov r1, sp - movs r0, 0x1 - strh r0, [r1] - movs r0, 0x7 - strh r0, [r1, 0x2] - add r1, sp, 0x8 - movs r0, 0x5B - b _0810E1A0 -_0810E182: - movs r7, 0x1 - mov r1, sp - movs r0, 0x7 - strh r0, [r1] - add r1, sp, 0x8 - movs r0, 0x27 - b _0810E1CA -_0810E190: - movs r7, 0x2 - mov r1, sp - movs r0, 0x1 - strh r0, [r1] - movs r0, 0x7 - strh r0, [r1, 0x2] - add r1, sp, 0x8 - movs r0, 0x34 -_0810E1A0: - strh r0, [r1] - strh r0, [r1, 0x2] - b _0810E1CC -_0810E1A6: - movs r7, 0x1 - mov r0, sp - strh r7, [r0] - add r1, sp, 0x8 - movs r0, 0x41 - b _0810E1CA -_0810E1B2: - movs r7, 0x1 - mov r1, sp - movs r0, 0x7 - strh r0, [r1] - add r1, sp, 0x8 - movs r0, 0xD - b _0810E1CA -_0810E1C0: - movs r7, 0x1 - mov r0, sp - strh r7, [r0] - add r1, sp, 0x8 - movs r0, 0x1A -_0810E1CA: - strh r0, [r1] -_0810E1CC: - movs r6, 0 - cmp r6, r7 - bcs _0810E21E - movs r1, 0xC0 - lsls r1, 4 - adds r0, r1, 0 - adds r1, r2, 0 - orrs r1, r0 - lsls r1, 16 - mov r9, r1 - adds r1, r2, 0 - adds r1, 0x8 - orrs r1, r0 - lsls r1, 16 - mov r8, r1 -_0810E1EA: - lsls r1, r6, 1 - mov r3, sp - adds r5, r3, r1 - ldrh r0, [r5] - adds r0, 0x7 - add r4, sp, 0x8 - adds r4, r1 - ldrh r1, [r4] - adds r1, 0x7 - mov r3, r9 - lsrs r2, r3, 16 - bl MapGridSetMetatileIdAt - ldrh r0, [r5] - adds r0, 0x7 - ldrh r1, [r4] - adds r1, 0x8 - mov r3, r8 - lsrs r2, r3, 16 - bl MapGridSetMetatileIdAt - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, r7 - bcc _0810E1EA -_0810E21E: - bl DrawWholeMapView - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_810E104 - - thumb_func_start sub_810E230 -sub_810E230: @ 810E230 - push {lr} - ldr r0, _0810E244 @ =gSpecialVar_0x8004 - ldrb r0, [r0] - ldr r1, _0810E248 @ =gUnknown_083F8376 - ldrh r1, [r1, 0x8] - bl sub_810E104 - pop {r0} - bx r0 - .align 2, 0 -_0810E244: .4byte gSpecialVar_0x8004 -_0810E248: .4byte gUnknown_083F8376 - thumb_func_end sub_810E230 - - thumb_func_start ShowFieldMessageStringVar4 -ShowFieldMessageStringVar4: @ 810E24C - push {lr} - ldr r0, _0810E258 @ =gStringVar4 - bl ShowFieldMessage - pop {r0} - bx r0 - .align 2, 0 -_0810E258: .4byte gStringVar4 - thumb_func_end ShowFieldMessageStringVar4 - - thumb_func_start StorePlayerCoordsInVars -StorePlayerCoordsInVars: @ 810E25C - ldr r1, _0810E26C @ =gSpecialVar_0x8004 - ldr r2, _0810E270 @ =gSaveBlock1 - ldrh r0, [r2] - strh r0, [r1] - ldr r1, _0810E274 @ =gSpecialVar_0x8005 - ldrh r0, [r2, 0x2] - strh r0, [r1] - bx lr - .align 2, 0 -_0810E26C: .4byte gSpecialVar_0x8004 -_0810E270: .4byte gSaveBlock1 -_0810E274: .4byte gSpecialVar_0x8005 - thumb_func_end StorePlayerCoordsInVars - - thumb_func_start GetPlayerTrainerIdOnesDigit -GetPlayerTrainerIdOnesDigit: @ 810E278 - push {lr} - ldr r0, _0810E294 @ =gSaveBlock2 - ldrb r1, [r0, 0xB] - lsls r1, 8 - ldrb r0, [r0, 0xA] - orrs r0, r1 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0810E294: .4byte gSaveBlock2 - thumb_func_end GetPlayerTrainerIdOnesDigit - - thumb_func_start GetPlayerBigGuyGirlString -GetPlayerBigGuyGirlString: @ 810E298 - push {lr} - ldr r0, _0810E2AC @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _0810E2B8 - ldr r0, _0810E2B0 @ =gStringVar1 - ldr r1, _0810E2B4 @ =gOtherText_BigGuy - bl StringCopy - b _0810E2C0 - .align 2, 0 -_0810E2AC: .4byte gSaveBlock2 -_0810E2B0: .4byte gStringVar1 -_0810E2B4: .4byte gOtherText_BigGuy -_0810E2B8: - ldr r0, _0810E2C4 @ =gStringVar1 - ldr r1, _0810E2C8 @ =gOtherText_BigGirl - bl StringCopy -_0810E2C0: - pop {r0} - bx r0 - .align 2, 0 -_0810E2C4: .4byte gStringVar1 -_0810E2C8: .4byte gOtherText_BigGirl - thumb_func_end GetPlayerBigGuyGirlString - - thumb_func_start GetRivalSonDaughterString -GetRivalSonDaughterString: @ 810E2CC - push {lr} - ldr r0, _0810E2E0 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _0810E2EC - ldr r0, _0810E2E4 @ =gStringVar1 - ldr r1, _0810E2E8 @ =gOtherText_Daughter - bl StringCopy - b _0810E2F4 - .align 2, 0 -_0810E2E0: .4byte gSaveBlock2 -_0810E2E4: .4byte gStringVar1 -_0810E2E8: .4byte gOtherText_Daughter -_0810E2EC: - ldr r0, _0810E2F8 @ =gStringVar1 - ldr r1, _0810E2FC @ =gOtherText_Son - bl StringCopy -_0810E2F4: - pop {r0} - bx r0 - .align 2, 0 -_0810E2F8: .4byte gStringVar1 -_0810E2FC: .4byte gOtherText_Son - thumb_func_end GetRivalSonDaughterString - - thumb_func_start sub_810E300 -sub_810E300: @ 810E300 - ldr r0, _0810E308 @ =gUnknown_02024D26 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0810E308: .4byte gUnknown_02024D26 - thumb_func_end sub_810E300 - - thumb_func_start CableCarWarp -CableCarWarp: @ 810E30C - push {lr} - sub sp, 0x4 - ldr r0, _0810E32C @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - beq _0810E330 - movs r2, 0x1 - negs r2, r2 - movs r0, 0x4 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r3, 0x6 - bl warp1_set - b _0810E342 - .align 2, 0 -_0810E32C: .4byte gSpecialVar_0x8004 -_0810E330: - movs r2, 0x1 - negs r2, r2 - movs r0, 0x4 - str r0, [sp] - movs r0, 0x13 - movs r1, 0x1 - movs r3, 0x6 - bl warp1_set -_0810E342: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end CableCarWarp - - thumb_func_start SetFlagInVar -SetFlagInVar: @ 810E348 - push {lr} - ldr r0, _0810E358 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_0810E358: .4byte gSpecialVar_0x8004 - thumb_func_end SetFlagInVar - - thumb_func_start GetWeekCount -GetWeekCount: @ 810E35C - push {lr} - ldr r0, _0810E37C @ =gLocalTime - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x7 - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0810E380 @ =0x0000270f - cmp r0, r1 - bls _0810E376 - adds r0, r1, 0 -_0810E376: - pop {r1} - bx r1 - .align 2, 0 -_0810E37C: .4byte gLocalTime -_0810E380: .4byte 0x0000270f - thumb_func_end GetWeekCount - - thumb_func_start GetLeadMonFriendshipScore -GetLeadMonFriendshipScore: @ 810E384 - push {r4,lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r1, r0 - ldr r0, _0810E3A8 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0xFF - bne _0810E3AC - movs r0, 0x6 - b _0810E3FE - .align 2, 0 -_0810E3A8: .4byte gPlayerParty -_0810E3AC: - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0xC7 - bls _0810E3BC - movs r0, 0x5 - b _0810E3FE -_0810E3BC: - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0x95 - bls _0810E3CC - movs r0, 0x4 - b _0810E3FE -_0810E3CC: - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0x63 - bls _0810E3DC - movs r0, 0x3 - b _0810E3FE -_0810E3DC: - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0x31 - bls _0810E3EC - movs r0, 0x2 - b _0810E3FE -_0810E3EC: - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0 - bne _0810E3FC - movs r0, 0 - b _0810E3FE -_0810E3FC: - movs r0, 0x1 -_0810E3FE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetLeadMonFriendshipScore - - thumb_func_start CB2_FieldShowRegionMap -CB2_FieldShowRegionMap: @ 810E404 - push {lr} - ldr r0, _0810E410 @ =c2_exit_to_overworld_1_continue_scripts_restart_music - bl FieldInitRegionMap - pop {r0} - bx r0 - .align 2, 0 -_0810E410: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end CB2_FieldShowRegionMap - - thumb_func_start FieldShowRegionMap -FieldShowRegionMap: @ 810E414 - push {lr} - ldr r0, _0810E420 @ =CB2_FieldShowRegionMap - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0810E420: .4byte CB2_FieldShowRegionMap - thumb_func_end FieldShowRegionMap - - thumb_func_start DoPCTurnOnEffect -DoPCTurnOnEffect: @ 810E424 - push {r4,lr} - ldr r4, _0810E460 @ =Task_PCTurnOnEffect - adds r0, r4, 0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0810E458 - adds r0, r4, 0 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810E464 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r2, [r1, 0x8] - strh r0, [r1, 0xA] - strh r2, [r1, 0xC] - strh r2, [r1, 0xE] - strh r2, [r1, 0x10] -_0810E458: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810E460: .4byte Task_PCTurnOnEffect -_0810E464: .4byte gTasks - thumb_func_end DoPCTurnOnEffect - - thumb_func_start Task_PCTurnOnEffect -Task_PCTurnOnEffect: @ 810E468 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _0810E48C @ =gTasks - adds r1, r0 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _0810E486 - adds r0, r1, 0 - bl PCTurnOffEffect_0 -_0810E486: - pop {r0} - bx r0 - .align 2, 0 -_0810E48C: .4byte gTasks - thumb_func_end Task_PCTurnOnEffect - - thumb_func_start PCTurnOffEffect_0 -PCTurnOffEffect_0: @ 810E490 - push {r4-r6,lr} - adds r4, r0, 0 - movs r6, 0 - movs r5, 0 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0x6 - bne _0810E4FC - strh r5, [r4, 0xE] - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x3 - beq _0810E4C4 - cmp r0, 0x3 - bgt _0810E4BA - cmp r0, 0x2 - beq _0810E4C0 - b _0810E4CC -_0810E4BA: - cmp r1, 0x4 - beq _0810E4C8 - b _0810E4CC -_0810E4C0: - movs r6, 0 - b _0810E4CA -_0810E4C4: - movs r6, 0xFF - b _0810E4CA -_0810E4C8: - movs r6, 0x1 -_0810E4CA: - movs r5, 0xFF -_0810E4CC: - movs r1, 0x10 - ldrsh r0, [r4, r1] - lsls r1, r6, 24 - asrs r1, 24 - lsls r2, r5, 24 - asrs r2, 24 - bl PCTurnOffEffect_1 - bl DrawWholeMapView - ldrh r0, [r4, 0x10] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _0810E4FC - ldrb r0, [r4, 0xA] - bl DestroyTask -_0810E4FC: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end PCTurnOffEffect_0 - - thumb_func_start PCTurnOffEffect_1 -PCTurnOffEffect_1: @ 810E508 - push {r4,r5,lr} - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r4, r2, 24 - movs r3, 0 - lsls r0, 16 - cmp r0, 0 - beq _0810E544 - ldr r0, _0810E528 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _0810E52C - movs r3, 0x4 - b _0810E566 - .align 2, 0 -_0810E528: .4byte gSpecialVar_0x8004 -_0810E52C: - cmp r0, 0x1 - bne _0810E538 - ldr r3, _0810E534 @ =0x0000025a - b _0810E566 - .align 2, 0 -_0810E534: .4byte 0x0000025a -_0810E538: - cmp r0, 0x2 - bne _0810E566 - ldr r3, _0810E540 @ =0x00000259 - b _0810E566 - .align 2, 0 -_0810E540: .4byte 0x00000259 -_0810E544: - ldr r0, _0810E550 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _0810E554 - movs r3, 0x5 - b _0810E566 - .align 2, 0 -_0810E550: .4byte gSpecialVar_0x8004 -_0810E554: - cmp r0, 0x1 - bne _0810E560 - ldr r3, _0810E55C @ =0x0000027f - b _0810E566 - .align 2, 0 -_0810E55C: .4byte 0x0000027f -_0810E560: - cmp r0, 0x2 - bne _0810E566 - ldr r3, _0810E594 @ =0x0000027e -_0810E566: - ldr r2, _0810E598 @ =gSaveBlock1 - movs r5, 0 - ldrsh r0, [r2, r5] - lsls r1, 24 - asrs r1, 24 - adds r0, r1 - adds r0, 0x7 - movs r5, 0x2 - ldrsh r1, [r2, r5] - lsls r2, r4, 24 - asrs r2, 24 - adds r1, r2 - adds r1, 0x7 - movs r4, 0xC0 - lsls r4, 4 - adds r2, r4, 0 - orrs r3, r2 - adds r2, r3, 0 - bl MapGridSetMetatileIdAt - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810E594: .4byte 0x0000027e -_0810E598: .4byte gSaveBlock1 - thumb_func_end PCTurnOffEffect_1 - - thumb_func_start DoPCTurnOffEffect -DoPCTurnOffEffect: @ 810E59C - push {lr} - bl PCTurnOffEffect - pop {r0} - bx r0 - thumb_func_end DoPCTurnOffEffect - - thumb_func_start PCTurnOffEffect -PCTurnOffEffect: @ 810E5A8 - push {r4-r6,lr} - movs r6, 0 - movs r5, 0 - movs r4, 0 - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x3 - beq _0810E5D2 - cmp r0, 0x3 - bgt _0810E5C8 - cmp r0, 0x2 - beq _0810E5CE - b _0810E5DA -_0810E5C8: - cmp r1, 0x4 - beq _0810E5D6 - b _0810E5DA -_0810E5CE: - movs r6, 0 - b _0810E5D8 -_0810E5D2: - movs r6, 0xFF - b _0810E5D8 -_0810E5D6: - movs r6, 0x1 -_0810E5D8: - movs r5, 0xFF -_0810E5DA: - ldr r0, _0810E5E8 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _0810E5EC - movs r4, 0x4 - b _0810E5FE - .align 2, 0 -_0810E5E8: .4byte gSpecialVar_0x8004 -_0810E5EC: - cmp r0, 0x1 - bne _0810E5F8 - ldr r4, _0810E5F4 @ =0x0000025a - b _0810E5FE - .align 2, 0 -_0810E5F4: .4byte 0x0000025a -_0810E5F8: - cmp r0, 0x2 - bne _0810E5FE - ldr r4, _0810E630 @ =0x00000259 -_0810E5FE: - ldr r2, _0810E634 @ =gSaveBlock1 - movs r1, 0 - ldrsh r0, [r2, r1] - lsls r1, r6, 24 - asrs r1, 24 - adds r0, r1 - adds r0, 0x7 - movs r3, 0x2 - ldrsh r1, [r2, r3] - lsls r2, r5, 24 - asrs r2, 24 - adds r1, r2 - adds r1, 0x7 - movs r3, 0xC0 - lsls r3, 4 - adds r2, r3, 0 - orrs r4, r2 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810E630: .4byte 0x00000259 -_0810E634: .4byte gSaveBlock1 - thumb_func_end PCTurnOffEffect - - thumb_func_start DoLotteryCornerComputerEffect -DoLotteryCornerComputerEffect: @ 810E638 - push {r4,lr} - ldr r4, _0810E674 @ =Task_LotteryCornerComputerEffect - adds r0, r4, 0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0810E66C - adds r0, r4, 0 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810E678 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r2, [r1, 0x8] - strh r0, [r1, 0xA] - strh r2, [r1, 0xC] - strh r2, [r1, 0xE] - strh r2, [r1, 0x10] -_0810E66C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810E674: .4byte Task_LotteryCornerComputerEffect -_0810E678: .4byte gTasks - thumb_func_end DoLotteryCornerComputerEffect - - thumb_func_start Task_LotteryCornerComputerEffect -Task_LotteryCornerComputerEffect: @ 810E67C - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _0810E6A0 @ =gTasks - adds r1, r0 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _0810E69A - adds r0, r1, 0 - bl LotteryCornerComputerEffect -_0810E69A: - pop {r0} - bx r0 - .align 2, 0 -_0810E6A0: .4byte gTasks - thumb_func_end Task_LotteryCornerComputerEffect - - thumb_func_start LotteryCornerComputerEffect -LotteryCornerComputerEffect: @ 810E6A4 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0x6 - bne _0810E712 - movs r0, 0 - strh r0, [r4, 0xE] - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0810E6DC - ldr r2, _0810E6D4 @ =0x00000e9d - movs r0, 0x12 - movs r1, 0x8 - bl MapGridSetMetatileIdAt - ldr r2, _0810E6D8 @ =0x00000ea5 - movs r0, 0x12 - movs r1, 0x9 - bl MapGridSetMetatileIdAt - b _0810E6F2 - .align 2, 0 -_0810E6D4: .4byte 0x00000e9d -_0810E6D8: .4byte 0x00000ea5 -_0810E6DC: - ldr r2, _0810E720 @ =0x00000e58 - movs r0, 0x12 - movs r1, 0x8 - bl MapGridSetMetatileIdAt - movs r2, 0xE6 - lsls r2, 4 - movs r0, 0x12 - movs r1, 0x9 - bl MapGridSetMetatileIdAt -_0810E6F2: - bl DrawWholeMapView - ldrh r0, [r4, 0x10] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _0810E712 - ldrb r0, [r4, 0xA] - bl DestroyTask -_0810E712: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810E720: .4byte 0x00000e58 - thumb_func_end LotteryCornerComputerEffect - - thumb_func_start EndLotteryCornerComputerEffect -EndLotteryCornerComputerEffect: @ 810E724 - push {lr} - ldr r2, _0810E744 @ =0x00000e9d - movs r0, 0x12 - movs r1, 0x8 - bl MapGridSetMetatileIdAt - ldr r2, _0810E748 @ =0x00000ea5 - movs r0, 0x12 - movs r1, 0x9 - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - pop {r0} - bx r0 - .align 2, 0 -_0810E744: .4byte 0x00000e9d -_0810E748: .4byte 0x00000ea5 - thumb_func_end EndLotteryCornerComputerEffect - - thumb_func_start SetDepartmentStoreFloorVar -SetDepartmentStoreFloorVar: @ 810E74C - push {lr} - ldr r0, _0810E768 @ =gSaveBlock1 - ldrb r0, [r0, 0x15] - subs r0, 0x11 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x5 - bhi _0810E79C - lsls r0, 2 - ldr r1, _0810E76C @ =_0810E770 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810E768: .4byte gSaveBlock1 -_0810E76C: .4byte _0810E770 - .align 2, 0 -_0810E770: - .4byte _0810E79C - .4byte _0810E788 - .4byte _0810E78C - .4byte _0810E790 - .4byte _0810E794 - .4byte _0810E798 -_0810E788: - movs r1, 0x1 - b _0810E79E -_0810E78C: - movs r1, 0x2 - b _0810E79E -_0810E790: - movs r1, 0x3 - b _0810E79E -_0810E794: - movs r1, 0x4 - b _0810E79E -_0810E798: - movs r1, 0xF - b _0810E79E -_0810E79C: - movs r1, 0 -_0810E79E: - ldr r0, _0810E7A8 @ =0x00004043 - bl VarSet - pop {r0} - bx r0 - .align 2, 0 -_0810E7A8: .4byte 0x00004043 - thumb_func_end SetDepartmentStoreFloorVar - - thumb_func_start ScriptAddElevatorMenuItem -ScriptAddElevatorMenuItem: @ 810E7AC - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r12, r2 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - ldr r0, _0810E81C @ =gSpecialVar_0x8004 - ldrh r1, [r0] - adds r2, r0, 0 - ldr r3, _0810E820 @ =gUnknown_03000760 - cmp r1, 0 - bne _0810E7E8 - movs r1, 0 - adds r5, r3, 0 - movs r4, 0x10 -_0810E7D8: - lsls r0, r1, 2 - adds r0, r5 - strb r4, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x13 - bls _0810E7D8 -_0810E7E8: - ldrh r0, [r2] - lsls r0, 2 - adds r0, r3 - strb r6, [r0] - ldrh r0, [r2] - lsls r0, 2 - adds r0, r3 - strb r7, [r0, 0x1] - ldrh r0, [r2] - lsls r0, 2 - adds r0, r3 - mov r1, r12 - strb r1, [r0, 0x2] - ldrh r0, [r2] - lsls r0, 2 - adds r0, r3 - mov r1, r8 - strb r1, [r0, 0x3] - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810E81C: .4byte gSpecialVar_0x8004 -_0810E820: .4byte gUnknown_03000760 - thumb_func_end ScriptAddElevatorMenuItem - - thumb_func_start ScriptShowElevatorMenu -ScriptShowElevatorMenu: @ 810E824 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _0810E868 @ =gUnknown_0203925A - strb r4, [r5] - ldr r0, _0810E86C @ =gUnknown_0203925B - strb r4, [r0] - movs r0, 0x10 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl ScriptAddElevatorMenuItem - ldr r2, _0810E870 @ =gUnknown_03000760 - ldrb r0, [r2] - cmp r0, 0x10 - beq _0810E85C - adds r1, r5, 0 -_0810E846: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x10 - bne _0810E846 -_0810E85C: - bl sub_810E874 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810E868: .4byte gUnknown_0203925A -_0810E86C: .4byte gUnknown_0203925B -_0810E870: .4byte gUnknown_03000760 - thumb_func_end ScriptShowElevatorMenu - - thumb_func_start sub_810E874 -sub_810E874: @ 810E874 - push {r4-r6,lr} - sub sp, 0x8 - bl ScriptContext2_Enable - ldr r4, _0810E8B8 @ =gUnknown_0203925A - ldrb r0, [r4] - cmp r0, 0x5 - bls _0810E8C0 - movs r0, 0 - movs r1, 0 - movs r2, 0x8 - movs r3, 0xB - bl MenuDrawTextWindow - movs r4, 0 - str r4, [sp] - movs r0, 0x7 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x5 - bl InitMenu - ldr r0, _0810E8BC @ =gUnknown_0203925C - strb r4, [r0] - bl sub_80F944C - bl LoadScrollIndicatorPalette - bl sub_810ECD4 - b _0810E8E8 - .align 2, 0 -_0810E8B8: .4byte gUnknown_0203925A -_0810E8BC: .4byte gUnknown_0203925C -_0810E8C0: - ldrb r3, [r4] - lsls r3, 1 - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0x8 - bl MenuDrawTextWindow - ldrb r3, [r4] - movs r0, 0 - str r0, [sp] - movs r0, 0x7 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl InitMenu -_0810E8E8: - movs r4, 0 - ldr r1, _0810E938 @ =gUnknown_03000760 - ldrb r0, [r1] - cmp r0, 0x10 - beq _0810E924 - ldr r6, _0810E93C @ =gUnknown_083F8380 - adds r5, r1, 0 -_0810E8F6: - lsls r0, r4, 2 - adds r0, r5 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - lsls r2, r4, 1 - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - movs r1, 0x1 - bl MenuPrint - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bhi _0810E924 - lsls r0, r4, 2 - adds r0, r5 - ldrb r0, [r0] - cmp r0, 0x10 - bne _0810E8F6 -_0810E924: - bl sub_810E944 - ldr r0, _0810E940 @ =sub_810E984 - movs r1, 0x8 - bl CreateTask - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810E938: .4byte gUnknown_03000760 -_0810E93C: .4byte gUnknown_083F8380 -_0810E940: .4byte sub_810E984 - thumb_func_end sub_810E874 - - thumb_func_start sub_810E944 -sub_810E944: @ 810E944 - push {lr} - movs r0, 0x14 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x5 - bl MenuDrawTextWindow - ldr r0, _0810E978 @ =gOtherText_NowOn - movs r1, 0x15 - movs r2, 0x1 - movs r3, 0x40 - bl sub_8072BD8 - ldr r1, _0810E97C @ =gUnknown_083F8380 - ldr r0, _0810E980 @ =gSpecialVar_0x8005 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x15 - movs r2, 0x3 - movs r3, 0x40 - bl sub_8072BD8 - pop {r0} - bx r0 - .align 2, 0 -_0810E978: .4byte gOtherText_NowOn -_0810E97C: .4byte gUnknown_083F8380 -_0810E980: .4byte gSpecialVar_0x8005 - thumb_func_end sub_810E944 - - thumb_func_start sub_810E984 -sub_810E984: @ 810E984 - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _0810EA44 @ =gMain - ldrh r0, [r0, 0x2E] - cmp r0, 0x40 - bne _0810E9B8 - ldr r1, _0810EA48 @ =gUnknown_0203925B - ldrb r0, [r1] - cmp r0, 0 - beq _0810E9B8 - subs r0, 0x1 - strb r0, [r1] - bl GetMenuCursorPos - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursorNoWrap - adds r0, r4, 0 - movs r1, 0x40 - bl sub_810EAC8 -_0810E9B8: - ldr r0, _0810EA44 @ =gMain - ldrh r0, [r0, 0x2E] - cmp r0, 0x80 - bne _0810E9E8 - ldr r2, _0810EA48 @ =gUnknown_0203925B - ldrb r1, [r2] - ldr r0, _0810EA4C @ =gUnknown_0203925A - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - beq _0810E9E8 - adds r0, r1, 0x1 - strb r0, [r2] - bl GetMenuCursorPos - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x1 - bl MoveMenuCursorNoWrap - adds r0, r4, 0 - movs r1, 0x80 - bl sub_810EAC8 -_0810E9E8: - ldr r0, _0810EA44 @ =gMain - ldrh r2, [r0, 0x2E] - movs r5, 0x1 - adds r1, r5, 0 - ands r1, r2 - cmp r1, 0 - beq _0810EA94 - ldr r1, _0810EA50 @ =gUnknown_03000760 - ldr r4, _0810EA48 @ =gUnknown_0203925B - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - movs r1, 0x1 - ldrsb r1, [r0, r1] - movs r2, 0x2 - ldrsb r2, [r0, r2] - movs r3, 0x1 - negs r3, r3 - movs r0, 0x2 - str r0, [sp] - str r5, [sp, 0x4] - movs r0, 0 - bl saved_warp2_set_2 - ldr r1, _0810EA54 @ =gSpecialVar_0x8005 - ldrh r0, [r1] - ldrb r2, [r4] - cmp r0, r2 - bne _0810EA5C - ldr r1, _0810EA58 @ =gScriptResult - movs r0, 0 - strh r0, [r1] - movs r0, 0x5 - bl PlaySE - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0xC - bl MenuZeroFillWindowRect - adds r0, r6, 0 - bl sub_810EC9C - b _0810EABC - .align 2, 0 -_0810EA44: .4byte gMain -_0810EA48: .4byte gUnknown_0203925B -_0810EA4C: .4byte gUnknown_0203925A -_0810EA50: .4byte gUnknown_03000760 -_0810EA54: .4byte gSpecialVar_0x8005 -_0810EA58: .4byte gScriptResult -_0810EA5C: - ldr r0, _0810EA88 @ =gScriptResult - strh r5, [r0] - ldrb r0, [r4] - strh r0, [r1] - bl sub_810EBEC - ldr r0, _0810EA8C @ =gScriptLastTalked - ldrb r0, [r0] - ldr r2, _0810EA90 @ =gSaveBlock1 - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - movs r3, 0x1 - bl FieldObjectTurnByLocalIdAndMap - bl sub_810EEDC - bl MenuZeroFillScreen - adds r0, r6, 0 - bl DestroyTask - b _0810EABC - .align 2, 0 -_0810EA88: .4byte gScriptResult -_0810EA8C: .4byte gScriptLastTalked -_0810EA90: .4byte gSaveBlock1 -_0810EA94: - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _0810EABC - ldr r0, _0810EAC4 @ =gScriptResult - strh r1, [r0] - movs r0, 0x5 - bl PlaySE - bl sub_810EEDC - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0xC - bl MenuZeroFillWindowRect - adds r0, r6, 0 - bl sub_810EC9C -_0810EABC: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810EAC4: .4byte gScriptResult - thumb_func_end sub_810E984 - - thumb_func_start sub_810EAC8 -sub_810EAC8: @ 810EAC8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r2, r0, 24 - adds r5, r2, 0 - lsls r1, 24 - lsrs r1, 24 - adds r3, r1, 0 - movs r7, 0 - movs r4, 0 - ldr r0, _0810EAEC @ =gUnknown_0203925A - ldrb r0, [r0] - cmp r0, 0x4 - bhi _0810EAF0 - movs r0, 0 - b _0810EB78 - .align 2, 0 -_0810EAEC: .4byte gUnknown_0203925A -_0810EAF0: - cmp r1, 0x40 - bne _0810EB04 - cmp r2, 0 - bne _0810EB18 - ldr r0, _0810EB00 @ =gUnknown_0203925B - ldrb r4, [r0] - movs r7, 0x1 - b _0810EB1C - .align 2, 0 -_0810EB00: .4byte gUnknown_0203925B -_0810EB04: - cmp r3, 0x80 - bne _0810EB18 - cmp r5, 0x4 - bne _0810EB18 - ldr r0, _0810EB84 @ =gUnknown_0203925B - ldrb r0, [r0] - subs r0, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - movs r7, 0x1 -_0810EB18: - cmp r7, 0 - beq _0810EB76 -_0810EB1C: - adds r0, r4, 0 - movs r1, 0x5 - bl sub_810EB90 - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0x7 - movs r3, 0xA - bl MenuFillWindowRectWithBlankTile - movs r5, 0 - ldr r2, _0810EB88 @ =gUnknown_03000760 - lsls r1, r4, 2 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x10 - beq _0810EB76 - ldr r0, _0810EB8C @ =gUnknown_083F8380 - mov r8, r0 - adds r6, r2, 0 -_0810EB44: - adds r0, r1, r6 - ldrb r0, [r0] - lsls r0, 2 - add r0, r8 - ldr r0, [r0] - lsls r2, r5, 1 - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - movs r1, 0x1 - bl MenuPrint - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bhi _0810EB76 - lsls r1, r4, 2 - adds r0, r1, r6 - ldrb r0, [r0] - cmp r0, 0x10 - bne _0810EB44 -_0810EB76: - adds r0, r7, 0 -_0810EB78: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810EB84: .4byte gUnknown_0203925B -_0810EB88: .4byte gUnknown_03000760 -_0810EB8C: .4byte gUnknown_083F8380 - thumb_func_end sub_810EAC8 - - thumb_func_start sub_810EB90 -sub_810EB90: @ 810EB90 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - cmp r4, 0 - bne _0810EBB4 - ldr r0, _0810EBB0 @ =gUnknown_0203925C - ldrb r1, [r0] - movs r2, 0x2 - eors r1, r2 - strb r1, [r0] - movs r0, 0 - bl DestroyVerticalScrollIndicator - b _0810EBB8 - .align 2, 0 -_0810EBB0: .4byte gUnknown_0203925C -_0810EBB4: - bl sub_810ECB0 -_0810EBB8: - adds r1, r4, r5 - ldr r0, _0810EBC8 @ =gUnknown_0203925A - ldrb r0, [r0] - cmp r1, r0 - bge _0810EBCC - bl sub_810ECD4 - b _0810EBE0 - .align 2, 0 -_0810EBC8: .4byte gUnknown_0203925A -_0810EBCC: - cmp r1, r0 - bne _0810EBE0 - ldr r0, _0810EBE8 @ =gUnknown_0203925C - ldrb r1, [r0] - movs r2, 0x1 - eors r1, r2 - strb r1, [r0] - movs r0, 0x1 - bl DestroyVerticalScrollIndicator -_0810EBE0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810EBE8: .4byte gUnknown_0203925C - thumb_func_end sub_810EB90 - - thumb_func_start sub_810EBEC -sub_810EBEC: @ 810EBEC - push {lr} - ldr r0, _0810EC2C @ =sub_810EC34 - movs r1, 0x9 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810EC30 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - movs r2, 0x1 - strh r2, [r1, 0x8] - strh r0, [r1, 0xA] - strh r0, [r1, 0xC] - strh r0, [r1, 0xE] - strh r2, [r1, 0x10] - movs r0, 0x3 - strh r0, [r1, 0x12] - movs r0, 0 - bl SetCameraPanningCallback - bl sub_810ECFC - movs r0, 0x59 - bl PlaySE - pop {r0} - bx r0 - .align 2, 0 -_0810EC2C: .4byte sub_810EC34 -_0810EC30: .4byte gTasks - thumb_func_end sub_810EBEC - - thumb_func_start sub_810EC34 -sub_810EC34: @ 810EC34 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0810EC98 @ =gTasks - adds r4, r0, r1 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r2, 0x12 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, 0 - bne _0810EC92 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0810EC92 - ldrh r0, [r4, 0x10] - negs r0, r0 - strh r0, [r4, 0x10] - movs r2, 0x10 - ldrsh r1, [r4, r2] - movs r0, 0 - bl SetCameraPanning - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x17 - bne _0810EC92 - movs r0, 0x49 - bl PlaySE - adds r0, r5, 0 - bl sub_810EC9C - bl InstallCameraPanAheadCallback -_0810EC92: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810EC98: .4byte gTasks - thumb_func_end sub_810EC34 - - thumb_func_start sub_810EC9C -sub_810EC9C: @ 810EC9C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_810EC9C - - thumb_func_start sub_810ECB0 -sub_810ECB0: @ 810ECB0 - push {lr} - ldr r2, _0810ECD0 @ =gUnknown_0203925C - ldrb r1, [r2] - lsrs r0, r1, 1 - cmp r0, 0x1 - beq _0810ECCC - movs r0, 0x2 - orrs r0, r1 - strb r0, [r2] - movs r0, 0 - movs r1, 0x24 - movs r2, 0x8 - bl CreateVerticalScrollIndicators -_0810ECCC: - pop {r0} - bx r0 - .align 2, 0 -_0810ECD0: .4byte gUnknown_0203925C - thumb_func_end sub_810ECB0 - - thumb_func_start sub_810ECD4 -sub_810ECD4: @ 810ECD4 - push {lr} - ldr r2, _0810ECF8 @ =gUnknown_0203925C - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0810ECF2 - movs r0, 0x1 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x1 - movs r1, 0x24 - movs r2, 0x48 - bl CreateVerticalScrollIndicators -_0810ECF2: - pop {r0} - bx r0 - .align 2, 0 -_0810ECF8: .4byte gUnknown_0203925C - thumb_func_end sub_810ECD4 - - thumb_func_start sub_810ECFC -sub_810ECFC: @ 810ECFC - push {r4,lr} - ldr r4, _0810ED38 @ =sub_810ED40 - adds r0, r4, 0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0810ED30 - adds r0, r4, 0 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810ED3C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r2, [r1, 0x8] - strh r0, [r1, 0xA] - strh r2, [r1, 0xC] - strh r2, [r1, 0xE] - strh r2, [r1, 0x10] -_0810ED30: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810ED38: .4byte sub_810ED40 -_0810ED3C: .4byte gTasks - thumb_func_end sub_810ECFC - - thumb_func_start sub_810ED40 -sub_810ED40: @ 810ED40 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _0810ED5C @ =gTasks - adds r0, r1 - bl sub_810ED60 - pop {r0} - bx r0 - .align 2, 0 -_0810ED5C: .4byte gTasks - thumb_func_end sub_810ED40 - - thumb_func_start sub_810ED60 -sub_810ED60: @ 810ED60 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0x8 - beq _0810ED6E - b _0810EEB2 -_0810ED6E: - movs r0, 0 - strh r0, [r5, 0xE] - movs r1, 0x10 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _0810EE14 - ldr r2, _0810EDFC @ =0x00000e68 - movs r0, 0x7 - movs r1, 0x7 - bl MapGridSetMetatileIdAt - ldr r4, _0810EE00 @ =0x00000e69 - movs r0, 0x8 - movs r1, 0x7 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - movs r0, 0x9 - movs r1, 0x7 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - ldr r2, _0810EE04 @ =0x00000e6a - movs r0, 0xA - movs r1, 0x7 - bl MapGridSetMetatileIdAt - movs r2, 0xE7 - lsls r2, 4 - movs r0, 0x7 - movs r1, 0x8 - bl MapGridSetMetatileIdAt - adds r4, 0x8 - movs r0, 0x8 - movs r1, 0x8 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - movs r0, 0x9 - movs r1, 0x8 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - ldr r2, _0810EE08 @ =0x00000e72 - movs r0, 0xA - movs r1, 0x8 - bl MapGridSetMetatileIdAt - ldr r2, _0810EE0C @ =0x00000e78 - movs r0, 0x7 - movs r1, 0x9 - bl MapGridSetMetatileIdAt - adds r4, 0x8 - movs r0, 0x8 - movs r1, 0x9 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - movs r0, 0x9 - movs r1, 0x9 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - ldr r2, _0810EE10 @ =0x00000e7a - movs r0, 0xA - movs r1, 0x9 - bl MapGridSetMetatileIdAt - b _0810EE92 - .align 2, 0 -_0810EDFC: .4byte 0x00000e68 -_0810EE00: .4byte 0x00000e69 -_0810EE04: .4byte 0x00000e6a -_0810EE08: .4byte 0x00000e72 -_0810EE0C: .4byte 0x00000e78 -_0810EE10: .4byte 0x00000e7a -_0810EE14: - ldr r2, _0810EEC0 @ =0x00000e6b - movs r0, 0x7 - movs r1, 0x7 - bl MapGridSetMetatileIdAt - ldr r4, _0810EEC4 @ =0x00000e6c - movs r0, 0x8 - movs r1, 0x7 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - movs r0, 0x9 - movs r1, 0x7 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - ldr r2, _0810EEC8 @ =0x00000e6d - movs r0, 0xA - movs r1, 0x7 - bl MapGridSetMetatileIdAt - ldr r2, _0810EECC @ =0x00000e73 - movs r0, 0x7 - movs r1, 0x8 - bl MapGridSetMetatileIdAt - adds r4, 0x8 - movs r0, 0x8 - movs r1, 0x8 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - movs r0, 0x9 - movs r1, 0x8 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - ldr r2, _0810EED0 @ =0x00000e75 - movs r0, 0xA - movs r1, 0x8 - bl MapGridSetMetatileIdAt - ldr r2, _0810EED4 @ =0x00000e7b - movs r0, 0x7 - movs r1, 0x9 - bl MapGridSetMetatileIdAt - adds r4, 0x8 - movs r0, 0x8 - movs r1, 0x9 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - movs r0, 0x9 - movs r1, 0x9 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - ldr r2, _0810EED8 @ =0x00000e7d - movs r0, 0xA - movs r1, 0x9 - bl MapGridSetMetatileIdAt -_0810EE92: - bl DrawWholeMapView - ldrh r0, [r5, 0x10] - movs r1, 0x1 - eors r0, r1 - strh r0, [r5, 0x10] - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - bne _0810EEB2 - ldrb r0, [r5, 0xA] - bl DestroyTask -_0810EEB2: - ldrh r0, [r5, 0xE] - adds r0, 0x1 - strh r0, [r5, 0xE] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810EEC0: .4byte 0x00000e6b -_0810EEC4: .4byte 0x00000e6c -_0810EEC8: .4byte 0x00000e6d -_0810EECC: .4byte 0x00000e73 -_0810EED0: .4byte 0x00000e75 -_0810EED4: .4byte 0x00000e7b -_0810EED8: .4byte 0x00000e7d - thumb_func_end sub_810ED60 - - thumb_func_start sub_810EEDC -sub_810EEDC: @ 810EEDC - push {r4,lr} - ldr r4, _0810EF08 @ =gUnknown_0203925C - ldrb r1, [r4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0810EEF0 - movs r0, 0x1 - bl DestroyVerticalScrollIndicator -_0810EEF0: - ldrb r0, [r4] - lsrs r0, 1 - cmp r0, 0x1 - bne _0810EEFE - movs r0, 0 - bl DestroyVerticalScrollIndicator -_0810EEFE: - bl BuyMenuFreeMemory - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810EF08: .4byte gUnknown_0203925C - thumb_func_end sub_810EEDC - - thumb_func_start SetTrickHouseEndRoomFlag -SetTrickHouseEndRoomFlag: @ 810EF0C - push {lr} - ldr r1, _0810EF1C @ =gSpecialVar_0x8004 - ldr r0, _0810EF20 @ =0x00000259 - strh r0, [r1] - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_0810EF1C: .4byte gSpecialVar_0x8004 -_0810EF20: .4byte 0x00000259 - thumb_func_end SetTrickHouseEndRoomFlag - - thumb_func_start ResetTrickHouseEndRoomFlag -ResetTrickHouseEndRoomFlag: @ 810EF24 - push {lr} - ldr r1, _0810EF34 @ =gSpecialVar_0x8004 - ldr r0, _0810EF38 @ =0x00000259 - strh r0, [r1] - bl FlagReset - pop {r0} - bx r0 - .align 2, 0 -_0810EF34: .4byte gSpecialVar_0x8004 -_0810EF38: .4byte 0x00000259 - thumb_func_end ResetTrickHouseEndRoomFlag - - thumb_func_start CheckLeadMonCool -CheckLeadMonCool: @ 810EF3C - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0810EF5C @ =gPlayerParty - adds r0, r1 - movs r1, 0x16 - bl GetMonData - cmp r0, 0xC7 - bls _0810EF60 - movs r0, 0x1 - b _0810EF62 - .align 2, 0 -_0810EF5C: .4byte gPlayerParty -_0810EF60: - movs r0, 0 -_0810EF62: - pop {r1} - bx r1 - thumb_func_end CheckLeadMonCool - - thumb_func_start CheckLeadMonBeauty -CheckLeadMonBeauty: @ 810EF68 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0810EF88 @ =gPlayerParty - adds r0, r1 - movs r1, 0x17 - bl GetMonData - cmp r0, 0xC7 - bls _0810EF8C - movs r0, 0x1 - b _0810EF8E - .align 2, 0 -_0810EF88: .4byte gPlayerParty -_0810EF8C: - movs r0, 0 -_0810EF8E: - pop {r1} - bx r1 - thumb_func_end CheckLeadMonBeauty - - thumb_func_start CheckLeadMonCute -CheckLeadMonCute: @ 810EF94 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0810EFB4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x18 - bl GetMonData - cmp r0, 0xC7 - bls _0810EFB8 - movs r0, 0x1 - b _0810EFBA - .align 2, 0 -_0810EFB4: .4byte gPlayerParty -_0810EFB8: - movs r0, 0 -_0810EFBA: - pop {r1} - bx r1 - thumb_func_end CheckLeadMonCute - - thumb_func_start CheckLeadMonSmart -CheckLeadMonSmart: @ 810EFC0 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0810EFE0 @ =gPlayerParty - adds r0, r1 - movs r1, 0x21 - bl GetMonData - cmp r0, 0xC7 - bls _0810EFE4 - movs r0, 0x1 - b _0810EFE6 - .align 2, 0 -_0810EFE0: .4byte gPlayerParty -_0810EFE4: - movs r0, 0 -_0810EFE6: - pop {r1} - bx r1 - thumb_func_end CheckLeadMonSmart - - thumb_func_start CheckLeadMonTough -CheckLeadMonTough: @ 810EFEC - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0810F00C @ =gPlayerParty - adds r0, r1 - movs r1, 0x2F - bl GetMonData - cmp r0, 0xC7 - bls _0810F010 - movs r0, 0x1 - b _0810F012 - .align 2, 0 -_0810F00C: .4byte gPlayerParty -_0810F010: - movs r0, 0 -_0810F012: - pop {r1} - bx r1 - thumb_func_end CheckLeadMonTough - - thumb_func_start IsGrassTypeInParty -IsGrassTypeInParty: @ 810F018 - push {r4-r6,lr} - movs r5, 0 - ldr r6, _0810F068 @ =gBaseStats -_0810F01E: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _0810F06C @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x5 - bl GetMonData - cmp r0, 0 - beq _0810F074 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0810F074 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1, 0x6] - cmp r0, 0xC - beq _0810F060 - ldrb r0, [r1, 0x7] - cmp r0, 0xC - bne _0810F074 -_0810F060: - ldr r1, _0810F070 @ =gScriptResult - movs r0, 0x1 - b _0810F082 - .align 2, 0 -_0810F068: .4byte gBaseStats -_0810F06C: .4byte gPlayerParty -_0810F070: .4byte gScriptResult -_0810F074: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _0810F01E - ldr r1, _0810F08C @ =gScriptResult - movs r0, 0 -_0810F082: - strh r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810F08C: .4byte gScriptResult - thumb_func_end IsGrassTypeInParty - - thumb_func_start ShowGlassWorkshopMenu -ShowGlassWorkshopMenu: @ 810F090 - push {r4,r5,lr} - sub sp, 0x8 - bl ScriptContext2_Enable - movs r0, 0 - movs r1, 0 - movs r2, 0xA - movs r3, 0xB - bl MenuDrawTextWindow - movs r4, 0 - str r4, [sp] - movs r0, 0x9 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x5 - bl InitMenu - ldr r0, _0810F104 @ =gUnknown_0203925C - strb r4, [r0] - bl sub_80F944C - bl LoadScrollIndicatorPalette - bl sub_810F2B4 - ldr r5, _0810F108 @ =gUnknown_083F83C0 -_0810F0CA: - lsls r0, r4, 2 - adds r0, r5 - ldr r0, [r0] - lsls r2, r4, 1 - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - movs r1, 0x1 - bl MenuPrint - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _0810F0CA - ldr r1, _0810F10C @ =gUnknown_0203925B - movs r0, 0 - strb r0, [r1] - ldr r1, _0810F110 @ =gUnknown_0203925A - movs r0, 0x8 - strb r0, [r1] - ldr r0, _0810F114 @ =sub_810F118 - movs r1, 0x8 - bl CreateTask - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810F104: .4byte gUnknown_0203925C -_0810F108: .4byte gUnknown_083F83C0 -_0810F10C: .4byte gUnknown_0203925B -_0810F110: .4byte gUnknown_0203925A -_0810F114: .4byte sub_810F118 - thumb_func_end ShowGlassWorkshopMenu - - thumb_func_start sub_810F118 -sub_810F118: @ 810F118 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0810F1E4 @ =gMain - ldrh r0, [r0, 0x2E] - cmp r0, 0x40 - bne _0810F14A - ldr r1, _0810F1E8 @ =gUnknown_0203925B - ldrb r0, [r1] - cmp r0, 0 - beq _0810F14A - subs r0, 0x1 - strb r0, [r1] - bl GetMenuCursorPos - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursorNoWrap - adds r0, r4, 0 - movs r1, 0x40 - bl sub_810F1F4 -_0810F14A: - ldr r0, _0810F1E4 @ =gMain - ldrh r0, [r0, 0x2E] - cmp r0, 0x80 - bne _0810F17A - ldr r2, _0810F1E8 @ =gUnknown_0203925B - ldrb r1, [r2] - ldr r0, _0810F1EC @ =gUnknown_0203925A - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - beq _0810F17A - adds r0, r1, 0x1 - strb r0, [r2] - bl GetMenuCursorPos - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x1 - bl MoveMenuCursorNoWrap - adds r0, r4, 0 - movs r1, 0x80 - bl sub_810F1F4 -_0810F17A: - ldr r4, _0810F1E4 @ =gMain - ldrh r1, [r4, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0810F1AE - bl sub_8072DEC - ldr r0, _0810F1F0 @ =gScriptResult - ldr r1, _0810F1E8 @ =gUnknown_0203925B - ldrb r1, [r1] - strh r1, [r0] - movs r0, 0x5 - bl PlaySE - bl sub_810EEDC - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0xC - bl MenuZeroFillWindowRect - adds r0, r5, 0 - bl sub_810EC9C -_0810F1AE: - ldrh r1, [r4, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0810F1DE - bl sub_8072DEC - ldr r1, _0810F1F0 @ =gScriptResult - movs r0, 0x7F - strh r0, [r1] - movs r0, 0x5 - bl PlaySE - bl sub_810EEDC - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0xC - bl MenuZeroFillWindowRect - adds r0, r5, 0 - bl sub_810EC9C -_0810F1DE: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810F1E4: .4byte gMain -_0810F1E8: .4byte gUnknown_0203925B -_0810F1EC: .4byte gUnknown_0203925A -_0810F1F0: .4byte gScriptResult - thumb_func_end sub_810F118 - - thumb_func_start sub_810F1F4 -sub_810F1F4: @ 810F1F4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r2, r0, 24 - adds r5, r2, 0 - lsls r1, 24 - lsrs r1, 24 - adds r3, r1, 0 - movs r6, 0 - movs r4, 0 - ldr r0, _0810F214 @ =gUnknown_0203925A - ldrb r0, [r0] - cmp r0, 0x4 - bhi _0810F218 - movs r0, 0 - b _0810F282 - .align 2, 0 -_0810F214: .4byte gUnknown_0203925A -_0810F218: - cmp r1, 0x40 - bne _0810F22C - cmp r2, 0 - bne _0810F240 - ldr r0, _0810F228 @ =gUnknown_0203925B - ldrb r4, [r0] - movs r6, 0x1 - b _0810F244 - .align 2, 0 -_0810F228: .4byte gUnknown_0203925B -_0810F22C: - cmp r3, 0x80 - bne _0810F240 - cmp r5, 0x4 - bne _0810F240 - ldr r0, _0810F288 @ =gUnknown_0203925B - ldrb r0, [r0] - subs r0, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - movs r6, 0x1 -_0810F240: - cmp r6, 0 - beq _0810F280 -_0810F244: - adds r0, r4, 0 - movs r1, 0x5 - bl GlassWorkshopUpdateScrollIndicators - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0x9 - movs r3, 0xA - bl MenuFillWindowRectWithBlankTile - movs r5, 0 - ldr r7, _0810F28C @ =gUnknown_083F83C0 -_0810F25C: - lsls r0, r4, 2 - adds r0, r7 - ldr r0, [r0] - lsls r2, r5, 1 - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - movs r1, 0x1 - bl MenuPrint - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bls _0810F25C -_0810F280: - adds r0, r6, 0 -_0810F282: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810F288: .4byte gUnknown_0203925B -_0810F28C: .4byte gUnknown_083F83C0 - thumb_func_end sub_810F1F4 - - thumb_func_start sub_810F290 -sub_810F290: @ 810F290 - push {lr} - ldr r2, _0810F2B0 @ =gUnknown_0203925C - ldrb r1, [r2] - lsrs r0, r1, 1 - cmp r0, 0x1 - beq _0810F2AC - movs r0, 0x2 - orrs r0, r1 - strb r0, [r2] - movs r0, 0 - movs r1, 0x2C - movs r2, 0x8 - bl CreateVerticalScrollIndicators -_0810F2AC: - pop {r0} - bx r0 - .align 2, 0 -_0810F2B0: .4byte gUnknown_0203925C - thumb_func_end sub_810F290 - - thumb_func_start sub_810F2B4 -sub_810F2B4: @ 810F2B4 - push {lr} - ldr r2, _0810F2D8 @ =gUnknown_0203925C - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0810F2D2 - movs r0, 0x1 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x1 - movs r1, 0x2C - movs r2, 0x58 - bl CreateVerticalScrollIndicators -_0810F2D2: - pop {r0} - bx r0 - .align 2, 0 -_0810F2D8: .4byte gUnknown_0203925C - thumb_func_end sub_810F2B4 - - thumb_func_start GlassWorkshopUpdateScrollIndicators -GlassWorkshopUpdateScrollIndicators: @ 810F2DC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - cmp r4, 0 - bne _0810F300 - ldr r0, _0810F2FC @ =gUnknown_0203925C - ldrb r1, [r0] - movs r2, 0x2 - eors r1, r2 - strb r1, [r0] - movs r0, 0 - bl DestroyVerticalScrollIndicator - b _0810F304 - .align 2, 0 -_0810F2FC: .4byte gUnknown_0203925C -_0810F300: - bl sub_810F290 -_0810F304: - adds r1, r4, r5 - ldr r0, _0810F314 @ =gUnknown_0203925A - ldrb r0, [r0] - cmp r1, r0 - bge _0810F318 - bl sub_810F2B4 - b _0810F32C - .align 2, 0 -_0810F314: .4byte gUnknown_0203925A -_0810F318: - cmp r1, r0 - bne _0810F32C - ldr r0, _0810F334 @ =gUnknown_0203925C - ldrb r1, [r0] - movs r2, 0x1 - eors r1, r2 - strb r1, [r0] - movs r0, 0x1 - bl DestroyVerticalScrollIndicator -_0810F32C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810F334: .4byte gUnknown_0203925C - thumb_func_end GlassWorkshopUpdateScrollIndicators - - thumb_func_start SpawnCameraDummy -SpawnCameraDummy: @ 810F338 - push {lr} - sub sp, 0x8 - ldr r0, _0810F380 @ =gSaveBlock1 - ldrh r3, [r0] - adds r3, 0x7 - lsls r3, 16 - asrs r3, 16 - ldrh r0, [r0, 0x2] - adds r0, 0x7 - lsls r0, 16 - asrs r0, 16 - str r0, [sp] - movs r0, 0x3 - str r0, [sp, 0x4] - movs r0, 0x7 - movs r1, 0x8 - movs r2, 0x7F - bl SpawnSpecialFieldObjectParametrized - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810F384 @ =gMapObjects - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x1] - movs r2, 0x20 - orrs r0, r2 - strb r0, [r1, 0x1] - ldrb r0, [r1, 0x4] - bl CameraObjectSetFollowedObjectId - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_0810F380: .4byte gSaveBlock1 -_0810F384: .4byte gMapObjects - thumb_func_end SpawnCameraDummy - - thumb_func_start RemoveCameraDummy -RemoveCameraDummy: @ 810F388 - push {lr} - bl GetPlayerAvatarObjectId - lsls r0, 24 - lsrs r0, 24 - bl CameraObjectSetFollowedObjectId - ldr r0, _0810F3A8 @ =gSaveBlock1 - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - movs r0, 0x7F - bl RemoveFieldObjectByLocalIdAndMap - pop {r0} - bx r0 - .align 2, 0 -_0810F3A8: .4byte gSaveBlock1 - thumb_func_end RemoveCameraDummy - - thumb_func_start GetPokeblockNameByMonNature -GetPokeblockNameByMonNature: @ 810F3AC - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0810F3D4 @ =gPlayerParty - adds r0, r1 - bl GetNature - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0810F3D8 @ =gStringVar1 - bl sub_810CB68 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0810F3D4: .4byte gPlayerParty -_0810F3D8: .4byte gStringVar1 - thumb_func_end GetPokeblockNameByMonNature - - thumb_func_start GetSecretBaseNearbyMapName -GetSecretBaseNearbyMapName: @ 810F3DC - push {r4,lr} - ldr r4, _0810F3FC @ =gStringVar1 - ldr r0, _0810F400 @ =0x00004026 - bl VarGet - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0 - bl sub_80FBFB4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810F3FC: .4byte gStringVar1 -_0810F400: .4byte 0x00004026 - thumb_func_end GetSecretBaseNearbyMapName - - thumb_func_start sub_810F404 -sub_810F404: @ 810F404 - push {lr} - movs r0, 0x20 - bl sub_8053108 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_810F404 - - thumb_func_start sub_810F414 -sub_810F414: @ 810F414 - push {lr} - ldr r0, _0810F420 @ =gStringVar1 - bl sub_8135FF4 - pop {r0} - bx r0 - .align 2, 0 -_0810F420: .4byte gStringVar1 - thumb_func_end sub_810F414 - - thumb_func_start sub_810F424 -sub_810F424: @ 810F424 - push {r4,r5,lr} - ldr r2, _0810F458 @ =gSaveBlock1 - ldr r1, _0810F45C @ =0x00002dd4 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r1, 25 - ldr r0, _0810F460 @ =0x00002dd6 - adds r2, r0 - lsrs r1, 25 - ldrh r2, [r2] - adds r1, r2 - ldr r2, _0810F464 @ =gUnknown_083F83E0 - ldr r0, _0810F468 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - adds r0, r2 - ldrb r0, [r0] - adds r5, r1, r0 - movs r0, 0x2 - bl GetPriceReduction - lsls r0, 24 - cmp r0, 0 - bne _0810F470 - ldr r4, _0810F46C @ =gUnknown_083F83EC - b _0810F472 - .align 2, 0 -_0810F458: .4byte gSaveBlock1 -_0810F45C: .4byte 0x00002dd4 -_0810F460: .4byte 0x00002dd6 -_0810F464: .4byte gUnknown_083F83E0 -_0810F468: .4byte gSpecialVar_0x8004 -_0810F46C: .4byte gUnknown_083F83EC -_0810F470: - ldr r4, _0810F484 @ =gUnknown_083F83F8 -_0810F472: - adds r0, r5, 0 - movs r1, 0xC - bl __umodsi3 - adds r0, r4 - ldrb r0, [r0] - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0810F484: .4byte gUnknown_083F83F8 - thumb_func_end sub_810F424 - - thumb_func_start sub_810F488 -sub_810F488: @ 810F488 - push {lr} - ldr r1, _0810F4A0 @ =gSpecialVar_0x8004 - ldr r0, _0810F4A4 @ =0x00000277 - strh r0, [r1] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0810F4A8 - movs r0, 0x1 - b _0810F4AA - .align 2, 0 -_0810F4A0: .4byte gSpecialVar_0x8004 -_0810F4A4: .4byte 0x00000277 -_0810F4A8: - movs r0, 0 -_0810F4AA: - pop {r1} - bx r1 - thumb_func_end sub_810F488 - - thumb_func_start sub_810F4B0 -sub_810F4B0: @ 810F4B0 - push {lr} - ldr r1, _0810F4C8 @ =gSpecialVar_0x8004 - movs r0, 0x9E - lsls r0, 2 - strh r0, [r1] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0810F4CC - movs r0, 0x1 - b _0810F4CE - .align 2, 0 -_0810F4C8: .4byte gSpecialVar_0x8004 -_0810F4CC: - movs r0, 0 -_0810F4CE: - pop {r1} - bx r1 - thumb_func_end sub_810F4B0 - - thumb_func_start sub_810F4D4 -sub_810F4D4: @ 810F4D4 - push {lr} - ldr r1, _0810F4EC @ =gSpecialVar_0x8004 - ldr r0, _0810F4F0 @ =0x00000279 - strh r0, [r1] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0810F4F4 - movs r0, 0x1 - b _0810F4F6 - .align 2, 0 -_0810F4EC: .4byte gSpecialVar_0x8004 -_0810F4F0: .4byte 0x00000279 -_0810F4F4: - movs r0, 0 -_0810F4F6: - pop {r1} - bx r1 - thumb_func_end sub_810F4D4 - - thumb_func_start sub_810F4FC -sub_810F4FC: @ 810F4FC - push {lr} - ldr r1, _0810F514 @ =gSpecialVar_0x8004 - ldr r0, _0810F518 @ =0x0000027a - strh r0, [r1] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0810F51C - movs r0, 0x1 - b _0810F51E - .align 2, 0 -_0810F514: .4byte gSpecialVar_0x8004 -_0810F518: .4byte 0x0000027a -_0810F51C: - movs r0, 0 -_0810F51E: - pop {r1} - bx r1 - thumb_func_end sub_810F4FC - - thumb_func_start LeadMonHasEffortRibbon -LeadMonHasEffortRibbon: @ 810F524 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0810F548 @ =gPlayerParty - adds r0, r1 - movs r1, 0x47 - movs r2, 0 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0810F548: .4byte gPlayerParty - thumb_func_end LeadMonHasEffortRibbon - - thumb_func_start GivLeadMonEffortRibbon -GivLeadMonEffortRibbon: @ 810F54C - push {lr} - sub sp, 0x4 - movs r0, 0x2A - bl sav12_xor_increment - ldr r0, _0810F580 @ =0x0000083b - bl FlagSet - movs r1, 0x1 - mov r0, sp - strb r1, [r0] - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0810F584 @ =gPlayerParty - adds r0, r1 - movs r1, 0x47 - mov r2, sp - bl SetMonData - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0810F580: .4byte 0x0000083b -_0810F584: .4byte gPlayerParty - thumb_func_end GivLeadMonEffortRibbon - - thumb_func_start GetLeadMonEVCount -GetLeadMonEVCount: @ 810F588 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0810F5AC @ =gPlayerParty - adds r0, r1 - bl GetMonEVCount - lsls r0, 16 - ldr r1, _0810F5B0 @ =0x01fd0000 - cmp r0, r1 - bhi _0810F5B4 - movs r0, 0 - b _0810F5B6 - .align 2, 0 -_0810F5AC: .4byte gPlayerParty -_0810F5B0: .4byte 0x01fd0000 -_0810F5B4: - movs r0, 0x1 -_0810F5B6: - pop {r1} - bx r1 - thumb_func_end GetLeadMonEVCount - - thumb_func_start sub_810F5BC -sub_810F5BC: @ 810F5BC - push {lr} - movs r0, 0xC7 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _0810F610 - ldr r0, _0810F5E8 @ =gSaveBlock1 - ldrh r1, [r0, 0x4] - movs r0, 0x83 - lsls r0, 3 - cmp r1, r0 - bne _0810F610 - subs r0, 0x75 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0810F5F0 - ldr r0, _0810F5EC @ =0x0000409a - movs r1, 0x4 - b _0810F602 - .align 2, 0 -_0810F5E8: .4byte gSaveBlock1 -_0810F5EC: .4byte 0x0000409a -_0810F5F0: - movs r0, 0xE9 - lsls r0, 2 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0810F610 - ldr r0, _0810F60C @ =0x0000409a - movs r1, 0x5 -_0810F602: - bl VarSet - movs r0, 0x1 - b _0810F612 - .align 2, 0 -_0810F60C: .4byte 0x0000409a -_0810F610: - movs r0, 0 -_0810F612: - pop {r1} - bx r1 - thumb_func_end sub_810F5BC - - thumb_func_start sub_810F618 -sub_810F618: @ 810F618 - push {lr} - ldr r0, _0810F624 @ =0x0000085f - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_0810F624: .4byte 0x0000085f - thumb_func_end sub_810F618 - - thumb_func_start PutZigzagoonInPlayerParty -PutZigzagoonInPlayerParty: @ 810F628 - push {r4,r5,lr} - sub sp, 0x14 - ldr r5, _0810F690 @ =gPlayerParty - movs r1, 0x90 - lsls r1, 1 - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r5, 0 - movs r2, 0x7 - movs r3, 0x20 - bl CreateMon - movs r1, 0x1 - add r0, sp, 0x10 - strh r1, [r0] - adds r0, r5, 0 - movs r1, 0x2E - add r2, sp, 0x10 - bl SetMonData - add r1, sp, 0x10 - movs r0, 0x21 - strh r0, [r1] - adds r0, r5, 0 - movs r1, 0xD - add r2, sp, 0x10 - bl SetMonData - add r0, sp, 0x10 - strh r4, [r0] - adds r0, r5, 0 - movs r1, 0xE - add r2, sp, 0x10 - bl SetMonData - adds r0, r5, 0 - movs r1, 0xF - add r2, sp, 0x10 - bl SetMonData - adds r0, r5, 0 - movs r1, 0x10 - add r2, sp, 0x10 - bl SetMonData - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810F690: .4byte gPlayerParty - thumb_func_end PutZigzagoonInPlayerParty - - thumb_func_start IsStarterInParty -IsStarterInParty: @ 810F694 - push {r4-r6,lr} - ldr r0, _0810F6D0 @ =0x00004023 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl GetStarterPokemon - lsls r0, 16 - lsrs r6, r0, 16 - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - cmp r4, r5 - bcs _0810F6E2 -_0810F6B6: - movs r0, 0x64 - muls r0, r4 - ldr r1, _0810F6D4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - cmp r0, r6 - bne _0810F6D8 - movs r0, 0x1 - b _0810F6E4 - .align 2, 0 -_0810F6D0: .4byte 0x00004023 -_0810F6D4: .4byte gPlayerParty -_0810F6D8: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _0810F6B6 -_0810F6E2: - movs r0, 0 -_0810F6E4: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end IsStarterInParty - - thumb_func_start CheckFreePokemonStorageSpace -CheckFreePokemonStorageSpace: @ 810F6EC - push {r4-r6,lr} - movs r5, 0 -_0810F6F0: - movs r4, 0 - lsls r1, r5, 2 - adds r1, r5 - lsls r0, r1, 4 - subs r0, r1 - lsls r6, r0, 5 -_0810F6FC: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - ldr r1, _0810F718 @ =gUnknown_020300A4 - adds r0, r1 - adds r0, r6, r0 - movs r1, 0xB - movs r2, 0 - bl GetBoxMonData - cmp r0, 0 - bne _0810F71C - movs r0, 0x1 - b _0810F732 - .align 2, 0 -_0810F718: .4byte gUnknown_020300A4 -_0810F71C: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _0810F6FC - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xD - bls _0810F6F0 - movs r0, 0 -_0810F732: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end CheckFreePokemonStorageSpace - - thumb_func_start IsPokerusInParty -IsPokerusInParty: @ 810F738 - push {lr} - ldr r0, _0810F74C @ =gPlayerParty - movs r1, 0x3F - bl CheckPartyPokerus - lsls r0, 24 - cmp r0, 0 - beq _0810F750 - movs r0, 0x1 - b _0810F752 - .align 2, 0 -_0810F74C: .4byte gPlayerParty -_0810F750: - movs r0, 0 -_0810F752: - pop {r1} - bx r1 - thumb_func_end IsPokerusInParty - - thumb_func_start sub_810F758 -sub_810F758: @ 810F758 - push {lr} - ldr r0, _0810F798 @ =sub_810F7A8 - movs r1, 0x9 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810F79C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _0810F7A0 @ =gSpecialVar_0x8005 - ldrh r2, [r0] - movs r0, 0 - strh r2, [r1, 0x8] - strh r0, [r1, 0xA] - strh r0, [r1, 0xC] - strh r0, [r1, 0xE] - ldr r0, _0810F7A4 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - strh r0, [r1, 0x10] - movs r0, 0x5 - strh r0, [r1, 0x12] - movs r0, 0 - bl SetCameraPanningCallback - movs r0, 0xD6 - bl PlaySE - pop {r0} - bx r0 - .align 2, 0 -_0810F798: .4byte sub_810F7A8 -_0810F79C: .4byte gTasks -_0810F7A0: .4byte gSpecialVar_0x8005 -_0810F7A4: .4byte gSpecialVar_0x8004 - thumb_func_end sub_810F758 - - thumb_func_start sub_810F7A8 -sub_810F7A8: @ 810F7A8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0810F810 @ =gTasks - adds r4, r0, r1 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r2, 0x12 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, 0 - bne _0810F808 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0810F808 - ldrh r0, [r4, 0x8] - negs r0, r0 - strh r0, [r4, 0x8] - ldrh r0, [r4, 0x10] - negs r0, r0 - strh r0, [r4, 0x10] - movs r2, 0x8 - ldrsh r0, [r4, r2] - movs r2, 0x10 - ldrsh r1, [r4, r2] - bl SetCameraPanning - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x8 - bne _0810F808 - adds r0, r5, 0 - bl sub_810F814 - bl InstallCameraPanAheadCallback -_0810F808: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810F810: .4byte gTasks - thumb_func_end sub_810F7A8 - - thumb_func_start sub_810F814 -sub_810F814: @ 810F814 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_810F814 - - thumb_func_start sub_810F828 -sub_810F828: @ 810F828 - push {lr} - movs r0, 0xAE - lsls r0, 2 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_810F828 - - thumb_func_start SetRoute119Weather -SetRoute119Weather: @ 810F83C - push {lr} - bl get_map_light_from_warp0 - lsls r0, 24 - lsrs r0, 24 - bl is_light_level_1_2_3_5_or_6 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0810F858 - movs r0, 0x14 - bl SetSav1Weather -_0810F858: - pop {r0} - bx r0 - thumb_func_end SetRoute119Weather - - thumb_func_start SetRoute123Weather -SetRoute123Weather: @ 810F85C - push {lr} - bl get_map_light_from_warp0 - lsls r0, 24 - lsrs r0, 24 - bl is_light_level_1_2_3_5_or_6 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0810F878 - movs r0, 0x15 - bl SetSav1Weather -_0810F878: - pop {r0} - bx r0 - thumb_func_end SetRoute123Weather - - thumb_func_start GetLeadMonIndex -GetLeadMonIndex: @ 810F87C - push {r4-r6,lr} - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - cmp r5, r6 - bcs _0810F8CA -_0810F88C: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _0810F8BC @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _0810F8C0 - adds r0, r4, 0 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - cmp r0, 0 - beq _0810F8C0 - adds r0, r5, 0 - b _0810F8CC - .align 2, 0 -_0810F8BC: .4byte gPlayerParty -_0810F8C0: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r6 - bcc _0810F88C -_0810F8CA: - movs r0, 0 -_0810F8CC: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end GetLeadMonIndex - - thumb_func_start ScriptGetPartyMonSpecies -ScriptGetPartyMonSpecies: @ 810F8D4 - push {lr} - ldr r0, _0810F8F4 @ =gSpecialVar_0x8004 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0810F8F8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .align 2, 0 -_0810F8F4: .4byte gSpecialVar_0x8004 -_0810F8F8: .4byte gPlayerParty - thumb_func_end ScriptGetPartyMonSpecies - - thumb_func_start sub_810F8FC -sub_810F8FC: @ 810F8FC - push {lr} - movs r0, 0x6 - bl sub_805ADDC - pop {r0} - bx r0 - thumb_func_end sub_810F8FC - - thumb_func_start sub_810F908 -sub_810F908: @ 810F908 - push {r4,lr} - ldr r0, _0810F928 @ =0x000040c2 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - adds r3, r0, 0 - ldr r2, _0810F92C @ =gLocalTime - movs r1, 0 - ldrsh r0, [r2, r1] - subs r0, r3 - cmp r0, 0x6 - ble _0810F930 - movs r0, 0 - b _0810F948 - .align 2, 0 -_0810F928: .4byte 0x000040c2 -_0810F92C: .4byte gLocalTime -_0810F930: - ldrh r1, [r2] - movs r4, 0 - ldrsh r0, [r2, r4] - cmp r0, 0 - blt _0810F946 - subs r1, r3 - movs r0, 0x7 - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - b _0810F948 -_0810F946: - movs r0, 0x8 -_0810F948: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810F908 - - thumb_func_start sub_810F950 -sub_810F950: @ 810F950 - push {r4,lr} - ldr r0, _0810F964 @ =0x000040c2 - ldr r4, _0810F968 @ =gLocalTime - ldrh r1, [r4] - bl VarSet - ldrh r0, [r4] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0810F964: .4byte 0x000040c2 -_0810F968: .4byte gLocalTime - thumb_func_end sub_810F950 - - thumb_func_start sub_810F96C -sub_810F96C: @ 810F96C - push {r4,lr} - ldr r0, _0810F994 @ =gSpecialVar_0x8004 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0810F998 @ =gPlayerParty - adds r0, r1 - ldr r4, _0810F99C @ =gStringVar1 - movs r1, 0x7 - adds r2, r4, 0 - bl GetMonData - ldr r0, _0810F9A0 @ =gSaveBlock2 - adds r1, r4, 0 - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - beq _0810F9A4 - movs r0, 0x1 - b _0810F9A6 - .align 2, 0 -_0810F994: .4byte gSpecialVar_0x8004 -_0810F998: .4byte gPlayerParty -_0810F99C: .4byte gStringVar1 -_0810F9A0: .4byte gSaveBlock2 -_0810F9A4: - movs r0, 0 -_0810F9A6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810F96C - - thumb_func_start sub_810F9AC -sub_810F9AC: @ 810F9AC - push {r4,r5,lr} - ldr r2, _0810F9C0 @ =gScriptResult - ldrh r1, [r2] - ldr r0, _0810F9C4 @ =0x0000270f - cmp r1, r0 - bls _0810F9C8 - movs r0, 0 - bl sub_80BF088 - b _0810FA4A - .align 2, 0 -_0810F9C0: .4byte gScriptResult -_0810F9C4: .4byte 0x0000270f -_0810F9C8: - ldr r0, _0810F9D8 @ =0x000003e7 - cmp r1, r0 - bls _0810F9E0 - ldr r4, _0810F9DC @ =gStringVar1 - movs r0, 0xA1 - strb r0, [r4] - adds r4, 0x1 - b _0810FA04 - .align 2, 0 -_0810F9D8: .4byte 0x000003e7 -_0810F9DC: .4byte gStringVar1 -_0810F9E0: - cmp r1, 0x63 - bls _0810F9F4 - ldr r4, _0810F9F0 @ =gStringVar1 - movs r0, 0xA1 - strb r0, [r4] - strb r0, [r4, 0x1] - adds r4, 0x2 - b _0810FA04 - .align 2, 0 -_0810F9F0: .4byte gStringVar1 -_0810F9F4: - cmp r1, 0x9 - bls _0810FA24 - ldr r4, _0810FA20 @ =gStringVar1 - movs r0, 0xA1 - strb r0, [r4] - strb r0, [r4, 0x1] - strb r0, [r4, 0x2] - adds r4, 0x3 -_0810FA04: - ldrh r5, [r2] - adds r0, r5, 0 - bl sub_80BF0B8 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - bl ConvertIntToDecimalStringN - b _0810FA4A - .align 2, 0 -_0810FA20: .4byte gStringVar1 -_0810FA24: - ldr r4, _0810FA50 @ =gStringVar1 - movs r0, 0xA1 - strb r0, [r4] - strb r0, [r4, 0x1] - strb r0, [r4, 0x2] - strb r0, [r4, 0x3] - adds r4, 0x4 - ldrh r5, [r2] - adds r0, r5, 0 - bl sub_80BF0B8 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - bl ConvertIntToDecimalStringN -_0810FA4A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810FA50: .4byte gStringVar1 - thumb_func_end sub_810F9AC - - thumb_func_start sub_810FA54 -sub_810FA54: @ 810FA54 - ldr r0, _0810FA68 @ =gSaveBlock1 - ldr r2, _0810FA6C @ =0x000013c2 - adds r1, r0, r2 - movs r2, 0 - strh r2, [r1] - ldr r1, _0810FA70 @ =0x000013c4 - adds r0, r1 - strh r2, [r0] - bx lr - .align 2, 0 -_0810FA68: .4byte gSaveBlock1 -_0810FA6C: .4byte 0x000013c2 -_0810FA70: .4byte 0x000013c4 - thumb_func_end sub_810FA54 - - thumb_func_start sub_810FA74 -sub_810FA74: @ 810FA74 - push {lr} - bl sub_810FF30 - lsls r0, 24 - cmp r0, 0 - beq _0810FA90 - bl sub_810FCE8 - ldr r0, _0810FA94 @ =gSaveBlock1 - ldr r1, _0810FA98 @ =gSaveBlock2 - ldrh r1, [r1, 0xE] - ldr r2, _0810FA9C @ =0x000013c4 - adds r0, r2 - strh r1, [r0] -_0810FA90: - pop {r0} - bx r0 - .align 2, 0 -_0810FA94: .4byte gSaveBlock1 -_0810FA98: .4byte gSaveBlock2 -_0810FA9C: .4byte 0x000013c4 - thumb_func_end sub_810FA74 - - thumb_func_start sub_810FAA0 -sub_810FAA0: @ 810FAA0 - push {r4,lr} - ldr r4, _0810FAF0 @ =gSaveBlock1 - ldr r1, _0810FAF4 @ =0x000013c2 - adds r0, r4, r1 - ldrh r0, [r0] - lsrs r0, 7 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0810FAE8 - bl sub_810FF48 - bl sub_810FD80 - ldr r0, _0810FAF8 @ =gSaveBlock2 - ldrh r1, [r0, 0xE] - ldr r2, _0810FAFC @ =0x000013c4 - adds r0, r4, r2 - strh r1, [r0] - ldr r0, _0810FB00 @ =0x00000315 - bl FlagReset - ldr r0, _0810FB04 @ =0x00000316 - bl FlagReset - ldr r0, _0810FB08 @ =0x00000317 - bl FlagReset - movs r0, 0xC6 - lsls r0, 2 - bl FlagReset - ldr r0, _0810FB0C @ =0x00004095 - movs r1, 0x1 - bl VarSet -_0810FAE8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810FAF0: .4byte gSaveBlock1 -_0810FAF4: .4byte 0x000013c2 -_0810FAF8: .4byte gSaveBlock2 -_0810FAFC: .4byte 0x000013c4 -_0810FB00: .4byte 0x00000315 -_0810FB04: .4byte 0x00000316 -_0810FB08: .4byte 0x00000317 -_0810FB0C: .4byte 0x00004095 - thumb_func_end sub_810FAA0 - - thumb_func_start sub_810FB10 -sub_810FB10: @ 810FB10 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0810FB54 @ =0x00004095 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bne _0810FB80 - ldr r0, _0810FB58 @ =gSaveBlock1 - ldr r1, _0810FB5C @ =0x000013c2 - adds r4, r0, r1 - ldrh r2, [r4] - movs r1, 0x7F - ands r1, r2 - ldr r0, _0810FB60 @ =gUnknown_083F8404 - adds r0, r5, r0 - ldrb r0, [r0] - adds r1, r0 - cmp r1, 0x13 - ble _0810FB7C - bl sub_810FCB0 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bhi _0810FB68 - bl sub_810FB9C - ldrh r1, [r4] - ldr r0, _0810FB64 @ =0x0000ff80 - ands r0, r1 - b _0810FB7E - .align 2, 0 -_0810FB54: .4byte 0x00004095 -_0810FB58: .4byte gSaveBlock1 -_0810FB5C: .4byte 0x000013c2 -_0810FB60: .4byte gUnknown_083F8404 -_0810FB64: .4byte 0x0000ff80 -_0810FB68: - ldrh r0, [r4] - ldr r1, _0810FB78 @ =0x0000ff80 - ands r1, r0 - movs r0, 0x14 - orrs r1, r0 - strh r1, [r4] - b _0810FB80 - .align 2, 0 -_0810FB78: .4byte 0x0000ff80 -_0810FB7C: - adds r0, r2, r0 -_0810FB7E: - strh r0, [r4] -_0810FB80: - ldr r0, _0810FB94 @ =gSaveBlock1 - ldr r1, _0810FB98 @ =0x000013c2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x7F - ands r0, r1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0810FB94: .4byte gSaveBlock1 -_0810FB98: .4byte 0x000013c2 - thumb_func_end sub_810FB10 - - thumb_func_start sub_810FB9C -sub_810FB9C: @ 810FB9C - push {r4-r7,lr} - sub sp, 0x4 - movs r3, 0 - movs r5, 0 - ldr r7, _0810FBD8 @ =gSaveBlock1 + 0x13C2 - movs r6, 0x1 -_0810FBA8: - ldrh r1, [r7] - ldr r0, _0810FBDC @ =gUnknown_083F8408 - adds r0, r5, r0 - ldrb r4, [r0] - asrs r1, r4 - ands r1, r6 - cmp r1, 0 - bne _0810FBE0 - adds r3, r5, 0 - str r3, [sp] - bl Random - adds r1, r6, 0 - ands r1, r0 - ldr r3, [sp] - cmp r1, 0 - beq _0810FBE0 - adds r0, r6, 0 - lsls r0, r4 - ldrh r1, [r7] - orrs r0, r1 - strh r0, [r7] - b _0810FC00 - .align 2, 0 -_0810FBD8: .4byte gSaveBlock1 + 0x13C2 -_0810FBDC: .4byte gUnknown_083F8408 -_0810FBE0: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x7 - bls _0810FBA8 - ldr r2, _0810FC0C @ =gSaveBlock1 - ldr r0, _0810FC10 @ =0x000013c2 - adds r2, r0 - ldr r1, _0810FC14 @ =gUnknown_083F8408 - adds r1, r3, r1 - movs r0, 0x1 - ldrb r1, [r1] - lsls r0, r1 - ldrh r1, [r2] - orrs r0, r1 - strh r0, [r2] -_0810FC00: - adds r0, r3, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810FC0C: .4byte gSaveBlock1 -_0810FC10: .4byte 0x000013c2 -_0810FC14: .4byte gUnknown_083F8408 - thumb_func_end sub_810FB9C - - thumb_func_start sub_810FC18 -sub_810FC18: @ 810FC18 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - movs r0, 0 - mov r8, r0 - bl sub_810FCB0 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bne _0810FC3E - movs r0, 0 - b _0810FC94 -_0810FC34: - lsls r4, r6 - ldrh r0, [r2] - eors r4, r0 - strh r4, [r2] - b _0810FC92 -_0810FC3E: - movs r5, 0 - ldr r2, _0810FCA0 @ =gSaveBlock1 + 0x13C2 - movs r4, 0x1 -_0810FC44: - ldrh r1, [r2] - ldr r7, _0810FCA4 @ =gUnknown_083F8410 - adds r0, r5, r7 - ldrb r6, [r0] - asrs r1, r6 - ands r1, r4 - cmp r1, 0 - beq _0810FC66 - mov r8, r5 - str r2, [sp] - bl Random - adds r1, r4, 0 - ands r1, r0 - ldr r2, [sp] - cmp r1, 0 - bne _0810FC34 -_0810FC66: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x7 - bls _0810FC44 - ldr r0, _0810FCA8 @ =gSaveBlock1 - ldr r1, _0810FCAC @ =0x000013c2 - adds r4, r0, r1 - ldrh r1, [r4] - mov r2, r8 - adds r0, r2, r7 - ldrb r2, [r0] - adds r0, r1, 0 - asrs r0, r2 - movs r3, 0x1 - ands r0, r3 - cmp r0, 0 - beq _0810FC92 - adds r0, r3, 0 - lsls r0, r2 - eors r1, r0 - strh r1, [r4] -_0810FC92: - mov r0, r8 -_0810FC94: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810FCA0: .4byte gSaveBlock1 + 0x13C2 -_0810FCA4: .4byte gUnknown_083F8410 -_0810FCA8: .4byte gSaveBlock1 -_0810FCAC: .4byte 0x000013c2 - thumb_func_end sub_810FC18 - - thumb_func_start sub_810FCB0 -sub_810FCB0: @ 810FCB0 - push {r4,r5,lr} - movs r3, 0 - movs r2, 0 - ldr r0, _0810FCE4 @ =gSaveBlock1 + 0x13C2 - ldrh r4, [r0] - movs r5, 0x1 -_0810FCBC: - adds r1, r2, 0 - adds r1, 0x8 - adds r0, r4, 0 - asrs r0, r1 - ands r0, r5 - cmp r0, 0 - beq _0810FCD0 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 -_0810FCD0: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _0810FCBC - adds r0, r3, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0810FCE4: .4byte gSaveBlock1 + 0x13C2 - thumb_func_end sub_810FCB0 - - thumb_func_start sub_810FCE8 -sub_810FCE8: @ 810FCE8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r5, 0 - ldr r2, _0810FD08 @ =gSaveBlock2 - ldrh r1, [r2, 0xE] - ldr r0, _0810FD0C @ =0x000003e6 - cmp r1, r0 - bhi _0810FD54 - ldr r7, _0810FD10 @ =gSaveBlock1 - adds r6, r2, 0 - ldr r0, _0810FD14 @ =0x000013c4 - adds r0, r7 - mov r8, r0 - b _0810FD36 - .align 2, 0 -_0810FD08: .4byte gSaveBlock2 -_0810FD0C: .4byte 0x000003e6 -_0810FD10: .4byte gSaveBlock1 -_0810FD14: .4byte 0x000013c4 -_0810FD18: - ldrh r1, [r6, 0xE] - ldr r0, _0810FD4C @ =0x000013c4 - adds r4, r7, r0 - ldrh r0, [r4] - subs r1, r0 - cmp r1, 0xB - ble _0810FD54 - bl sub_810FC18 - ldrh r0, [r4] - adds r0, 0xC - strh r0, [r4] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_0810FD36: - bl sub_810FCB0 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x4 - bhi _0810FD50 - ldrh r0, [r6, 0xE] - mov r1, r8 - strh r0, [r1] - b _0810FD54 - .align 2, 0 -_0810FD4C: .4byte 0x000013c4 -_0810FD50: - cmp r5, 0x8 - bne _0810FD18 -_0810FD54: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_810FCE8 - - thumb_func_start sub_810FD60 -sub_810FD60: @ 810FD60 - ldr r0, _0810FD74 @ =gSaveBlock1 - ldr r1, _0810FD78 @ =0x000013c2 - adds r0, r1 - ldrh r0, [r0] - ldr r1, _0810FD7C @ =gSpecialVar_0x8004 - ldrh r1, [r1] - asrs r0, r1 - movs r1, 0x1 - ands r0, r1 - bx lr - .align 2, 0 -_0810FD74: .4byte gSaveBlock1 -_0810FD78: .4byte 0x000013c2 -_0810FD7C: .4byte gSpecialVar_0x8004 - thumb_func_end sub_810FD60 - - thumb_func_start sub_810FD80 -sub_810FD80: @ 810FD80 - ldr r2, _0810FDA4 @ =gSaveBlock1 - ldr r0, _0810FDA8 @ =0x000013c2 - adds r2, r0 - ldrh r1, [r2] - movs r3, 0x80 - lsls r3, 6 - adds r0, r3, 0 - orrs r0, r1 - movs r3, 0x80 - lsls r3, 1 - adds r1, r3, 0 - orrs r0, r1 - movs r3, 0x80 - lsls r3, 3 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - bx lr - .align 2, 0 -_0810FDA4: .4byte gSaveBlock1 -_0810FDA8: .4byte 0x000013c2 - thumb_func_end sub_810FD80 - - thumb_func_start sub_810FDAC -sub_810FDAC: @ 810FDAC - push {lr} - movs r3, 0 - movs r2, 0 - ldr r0, _0810FDC8 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - subs r0, 0x8 - cmp r0, 0x7 - bhi _0810FE0C - lsls r0, 2 - ldr r1, _0810FDCC @ =_0810FDD0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810FDC8: .4byte gSpecialVar_0x8004 -_0810FDCC: .4byte _0810FDD0 - .align 2, 0 -_0810FDD0: - .4byte _0810FE0C - .4byte _0810FE0C - .4byte _0810FDF0 - .4byte _0810FDF6 - .4byte _0810FDFC - .4byte _0810FE02 - .4byte _0810FE08 - .4byte _0810FE0C -_0810FDF0: - movs r3, 0 - movs r2, 0x3 - b _0810FE0C -_0810FDF6: - movs r3, 0 - movs r2, 0x1 - b _0810FE0C -_0810FDFC: - movs r3, 0x1 - movs r2, 0 - b _0810FE0C -_0810FE02: - movs r3, 0 - movs r2, 0x4 - b _0810FE0C -_0810FE08: - movs r3, 0x1 - movs r2, 0x5 -_0810FE0C: - ldr r0, _0810FE18 @ =gSaveBlock1 + 0x30B8 - adds r1, r3, 0 - bl sub_810FE1C - pop {r0} - bx r0 - .align 2, 0 -_0810FE18: .4byte gSaveBlock1 + 0x30B8 - thumb_func_end sub_810FDAC - - thumb_func_start sub_810FE1C -sub_810FE1C: @ 810FE1C - push {r4,lr} - lsls r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsrs r1, 20 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0xFF - bne _0810FED0 - cmp r2, 0x5 - bhi _0810FEBC - lsls r0, r2, 2 - ldr r1, _0810FE3C @ =_0810FE40 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810FE3C: .4byte _0810FE40 - .align 2, 0 -_0810FE40: - .4byte _0810FEBC - .4byte _0810FE58 - .4byte _0810FE6C - .4byte _0810FE80 - .4byte _0810FE94 - .4byte _0810FEA8 -_0810FE58: - ldr r0, _0810FE64 @ =gStringVar1 - ldr r1, _0810FE68 @ =gOtherText_Steven - bl StringCopy - b _0810FEF2 - .align 2, 0 -_0810FE64: .4byte gStringVar1 -_0810FE68: .4byte gOtherText_Steven -_0810FE6C: - ldr r0, _0810FE78 @ =gStringVar1 - ldr r1, _0810FE7C @ =gOtherText_Brawly - bl StringCopy - b _0810FEF2 - .align 2, 0 -_0810FE78: .4byte gStringVar1 -_0810FE7C: .4byte gOtherText_Brawly -_0810FE80: - ldr r0, _0810FE8C @ =gStringVar1 - ldr r1, _0810FE90 @ =gOtherText_Winona - bl StringCopy - b _0810FEF2 - .align 2, 0 -_0810FE8C: .4byte gStringVar1 -_0810FE90: .4byte gOtherText_Winona -_0810FE94: - ldr r0, _0810FEA0 @ =gStringVar1 - ldr r1, _0810FEA4 @ =gOtherText_Phoebe - bl StringCopy - b _0810FEF2 - .align 2, 0 -_0810FEA0: .4byte gStringVar1 -_0810FEA4: .4byte gOtherText_Phoebe -_0810FEA8: - ldr r0, _0810FEB4 @ =gStringVar1 - ldr r1, _0810FEB8 @ =gOtherText_Glacia - bl StringCopy - b _0810FEF2 - .align 2, 0 -_0810FEB4: .4byte gStringVar1 -_0810FEB8: .4byte gOtherText_Glacia -_0810FEBC: - ldr r0, _0810FEC8 @ =gStringVar1 - ldr r1, _0810FECC @ =gOtherText_Wallace - bl StringCopy - b _0810FEF2 - .align 2, 0 -_0810FEC8: .4byte gStringVar1 -_0810FECC: .4byte gOtherText_Wallace -_0810FED0: - ldr r4, _0810FEF8 @ =gStringVar1 - adds r0, r4, 0 - movs r2, 0x7 - bl StringCopyN - movs r0, 0xFF - strb r0, [r4, 0x7] - ldrb r0, [r4] - cmp r0, 0xFC - bne _0810FEF2 - ldrb r0, [r4, 0x1] - cmp r0, 0x15 - bne _0810FEF2 - adds r0, r4, 0 - movs r1, 0x1 - bl ConvertInternationalString -_0810FEF2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810FEF8: .4byte gStringVar1 - thumb_func_end sub_810FE1C - - thumb_func_start sub_810FEFC -sub_810FEFC: @ 810FEFC - push {lr} - ldr r0, _0810FF20 @ =0x00004095 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bne _0810FF2C - bl sub_810FA74 - ldr r0, _0810FF24 @ =gUnknown_02024D26 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0810FF28 - bl sub_810FB9C - b _0810FF2C - .align 2, 0 -_0810FF20: .4byte 0x00004095 -_0810FF24: .4byte gUnknown_02024D26 -_0810FF28: - bl sub_810FC18 -_0810FF2C: - pop {r0} - bx r0 - thumb_func_end sub_810FEFC - - thumb_func_start sub_810FF30 -sub_810FF30: @ 810FF30 - ldr r0, _0810FF40 @ =gSaveBlock1 - ldr r1, _0810FF44 @ =0x000013c2 - adds r0, r1 - ldrh r0, [r0] - lsrs r0, 7 - movs r1, 0x1 - ands r0, r1 - bx lr - .align 2, 0 -_0810FF40: .4byte gSaveBlock1 -_0810FF44: .4byte 0x000013c2 - thumb_func_end sub_810FF30 - - thumb_func_start sub_810FF48 -sub_810FF48: @ 810FF48 - ldr r0, _0810FF58 @ =gSaveBlock1 - ldr r1, _0810FF5C @ =0x000013c2 - adds r0, r1 - ldrh r2, [r0] - movs r1, 0x80 - orrs r1, r2 - strh r1, [r0] - bx lr - .align 2, 0 -_0810FF58: .4byte gSaveBlock1 -_0810FF5C: .4byte 0x000013c2 - thumb_func_end sub_810FF48 - - thumb_func_start sub_810FF60 -sub_810FF60: @ 810FF60 - push {lr} - ldr r0, _0810FF74 @ =gSpecialVar_0x8004 - ldrb r0, [r0] - bl sub_810FB10 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0810FF74: .4byte gSpecialVar_0x8004 - thumb_func_end sub_810FF60 - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_800D42C.s b/asm/rom_800D42C.s index fdb390563..57a727072 100644 --- a/asm/rom_800D42C.s +++ b/asm/rom_800D42C.s @@ -493,7 +493,7 @@ _0800D7B4: .4byte gPlttBufferFaded + 0xB8 thumb_func_start sub_800D7B8 sub_800D7B8: @ 800D7B8 push {r4,r5,lr} - ldr r0, _0800D7DC @ =gUnknown_020239F8 + ldr r0, _0800D7DC @ =gBattleTypeFlags ldrh r1, [r0] ldr r0, _0800D7E0 @ =0x00000902 ands r0, r1 @@ -508,7 +508,7 @@ sub_800D7B8: @ 800D7B8 ldr r0, _0800D7F4 @ =gBattleTerrainPalette_BattleTower b _0800DA66 .align 2, 0 -_0800D7DC: .4byte gUnknown_020239F8 +_0800D7DC: .4byte gBattleTypeFlags _0800D7E0: .4byte 0x00000902 _0800D7E4: .4byte gBattleTerrainTiles_Building _0800D7E8: .4byte 0x06008000 @@ -631,7 +631,7 @@ _0800D8F4: .4byte _0800DA84 _0800D918: ldr r4, _0800D954 @ =gBattleTerrainTable - ldr r5, _0800D958 @ =gUnknown_0300428C + ldr r5, _0800D958 @ =gBattleTerrain ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 @@ -659,7 +659,7 @@ _0800D918: b _0800DA66 .align 2, 0 _0800D954: .4byte gBattleTerrainTable -_0800D958: .4byte gUnknown_0300428C +_0800D958: .4byte gBattleTerrain _0800D95C: .4byte 0x06008000 _0800D960: .4byte 0x0600d000 _0800D964: @@ -832,7 +832,7 @@ sub_800DAF8: @ 800DAF8 lsls r1, 24 lsrs r3, r1, 24 movs r4, 0 - ldr r0, _0800DB38 @ =gUnknown_020239F8 + ldr r0, _0800DB38 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -855,7 +855,7 @@ sub_800DAF8: @ 800DAF8 beq _0800DB4A b _0800DB84 .align 2, 0 -_0800DB38: .4byte gUnknown_020239F8 +_0800DB38: .4byte gBattleTypeFlags _0800DB3C: .4byte gTasks _0800DB40: cmp r3, 0x2 @@ -984,247 +984,7 @@ _0800DC1C: .4byte gTasks _0800DC20: .4byte 0x00006001 thumb_func_end sub_800DAF8 - thumb_func_start sub_800DC24 -sub_800DC24: @ 800DC24 - push {r4,r5,lr} - sub sp, 0x4 - ldr r0, _0800DC40 @ =gUnknown_02024D26 - ldrb r2, [r0] - cmp r2, 0x3 - bne _0800DC4C - ldr r4, _0800DC44 @ =gUnknown_03004210 - ldr r1, _0800DC48 @ =gUnknown_08400E57 - movs r0, 0x2 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0xA0 - movs r3, 0xD - b _0800DDCA - .align 2, 0 -_0800DC40: .4byte gUnknown_02024D26 -_0800DC44: .4byte gUnknown_03004210 -_0800DC48: .4byte gUnknown_08400E57 -_0800DC4C: - ldr r0, _0800DC80 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0800DD38 - cmp r2, 0x1 - bne _0800DCCC - ldr r2, _0800DC84 @ =gLinkPlayers - ldr r0, _0800DC88 @ =0x02000000 - ldr r1, _0800DC8C @ =0x000160cb - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x18] - cmp r0, 0x1 - beq _0800DC9C - cmp r0, 0x1 - bgt _0800DC90 - cmp r0, 0 - bne _0800DC7E - b _0800DDA8 -_0800DC7E: - b _0800DE1C - .align 2, 0 -_0800DC80: .4byte gUnknown_020239F8 -_0800DC84: .4byte gLinkPlayers -_0800DC88: .4byte 0x02000000 -_0800DC8C: .4byte 0x000160cb -_0800DC90: - cmp r0, 0x2 - bne _0800DC96 - b _0800DDA8 -_0800DC96: - cmp r0, 0x3 - beq _0800DC9C - b _0800DE1C -_0800DC9C: - ldr r4, _0800DCC0 @ =gUnknown_03004210 - ldr r1, _0800DCC4 @ =gUnknown_08400E48 - movs r5, 0x2 - str r5, [sp] - adds r0, r4, 0 - movs r2, 0xA0 - movs r3, 0x15 - bl InitWindow - adds r0, r4, 0 - bl sub_8002F44 - ldr r1, _0800DCC8 @ =gUnknown_08400E4F - str r5, [sp] - adds r0, r4, 0 - movs r2, 0xA8 - movs r3, 0x6 - b _0800DDCA - .align 2, 0 -_0800DCC0: .4byte gUnknown_03004210 -_0800DCC4: .4byte gUnknown_08400E48 -_0800DCC8: .4byte gUnknown_08400E4F -_0800DCCC: - ldr r2, _0800DCF0 @ =gLinkPlayers - ldr r0, _0800DCF4 @ =0x02000000 - ldr r1, _0800DCF8 @ =0x000160cb - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x18] - cmp r0, 0x1 - beq _0800DDA8 - cmp r0, 0x1 - bgt _0800DCFC - cmp r0, 0 - beq _0800DD08 - b _0800DE1C - .align 2, 0 -_0800DCF0: .4byte gLinkPlayers -_0800DCF4: .4byte 0x02000000 -_0800DCF8: .4byte 0x000160cb -_0800DCFC: - cmp r0, 0x2 - beq _0800DD08 - cmp r0, 0x3 - beq _0800DD06 - b _0800DE1C -_0800DD06: - b _0800DDA8 -_0800DD08: - ldr r4, _0800DD2C @ =gUnknown_03004210 - ldr r1, _0800DD30 @ =gUnknown_08400E48 - movs r5, 0x2 - str r5, [sp] - adds r0, r4, 0 - movs r2, 0xA0 - movs r3, 0x15 - bl InitWindow - adds r0, r4, 0 - bl sub_8002F44 - ldr r1, _0800DD34 @ =gUnknown_08400E4F - str r5, [sp] - adds r0, r4, 0 - movs r2, 0xA8 - movs r3, 0x6 - b _0800DDCA - .align 2, 0 -_0800DD2C: .4byte gUnknown_03004210 -_0800DD30: .4byte gUnknown_08400E48 -_0800DD34: .4byte gUnknown_08400E4F -_0800DD38: - cmp r2, 0x1 - bne _0800DD90 - ldr r2, _0800DD78 @ =gLinkPlayers - ldr r0, _0800DD7C @ =0x02000000 - ldr r1, _0800DD80 @ =0x000160cb - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x18] - cmp r0, 0 - beq _0800DDA8 - ldr r4, _0800DD84 @ =gUnknown_03004210 - ldr r1, _0800DD88 @ =gUnknown_08400E48 - movs r5, 0x2 - str r5, [sp] - adds r0, r4, 0 - movs r2, 0xA0 - movs r3, 0x15 - bl InitWindow - adds r0, r4, 0 - bl sub_8002F44 - ldr r1, _0800DD8C @ =gUnknown_08400E4F - str r5, [sp] - adds r0, r4, 0 - movs r2, 0xA8 - movs r3, 0x6 - b _0800DDCA - .align 2, 0 -_0800DD78: .4byte gLinkPlayers -_0800DD7C: .4byte 0x02000000 -_0800DD80: .4byte 0x000160cb -_0800DD84: .4byte gUnknown_03004210 -_0800DD88: .4byte gUnknown_08400E48 -_0800DD8C: .4byte gUnknown_08400E4F -_0800DD90: - ldr r2, _0800DDD8 @ =gLinkPlayers - ldr r0, _0800DDDC @ =0x02000000 - ldr r1, _0800DDE0 @ =0x000160cb - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x18] - cmp r0, 0 - beq _0800DDF0 -_0800DDA8: - ldr r4, _0800DDE4 @ =gUnknown_03004210 - ldr r1, _0800DDE8 @ =gUnknown_08400E48 - movs r5, 0x2 - str r5, [sp] - adds r0, r4, 0 - movs r2, 0xA0 - movs r3, 0x6 - bl InitWindow - adds r0, r4, 0 - bl sub_8002F44 - ldr r1, _0800DDEC @ =gUnknown_08400E4F - str r5, [sp] - adds r0, r4, 0 - movs r2, 0xA8 - movs r3, 0x15 -_0800DDCA: - bl InitWindow - adds r0, r4, 0 - bl sub_8002F44 - b _0800DE1C - .align 2, 0 -_0800DDD8: .4byte gLinkPlayers -_0800DDDC: .4byte 0x02000000 -_0800DDE0: .4byte 0x000160cb -_0800DDE4: .4byte gUnknown_03004210 -_0800DDE8: .4byte gUnknown_08400E48 -_0800DDEC: .4byte gUnknown_08400E4F -_0800DDF0: - ldr r4, _0800DE24 @ =gUnknown_03004210 - ldr r1, _0800DE28 @ =gUnknown_08400E48 - movs r5, 0x2 - str r5, [sp] - adds r0, r4, 0 - movs r2, 0xA0 - movs r3, 0x15 - bl InitWindow - adds r0, r4, 0 - bl sub_8002F44 - ldr r1, _0800DE2C @ =gUnknown_08400E4F - str r5, [sp] - adds r0, r4, 0 - movs r2, 0xA8 - movs r3, 0x6 - bl InitWindow - adds r0, r4, 0 - bl sub_8002F44 -_0800DE1C: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0800DE24: .4byte gUnknown_03004210 -_0800DE28: .4byte gUnknown_08400E48 -_0800DE2C: .4byte gUnknown_08400E4F - thumb_func_end sub_800DC24 + .section .text_800DC24 thumb_func_start sub_800DE30 sub_800DE30: @ 800DE30 @@ -1263,7 +1023,7 @@ _0800DE68: _0800DE6E: b _0800E212 _0800DE70: - ldr r0, _0800DED0 @ =gUnknown_020239F8 + ldr r0, _0800DED0 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -1310,7 +1070,7 @@ _0800DE88: bge _0800DE88 b _0800DF70 .align 2, 0 -_0800DED0: .4byte gUnknown_020239F8 +_0800DED0: .4byte gBattleTypeFlags _0800DED4: .4byte gLinkPlayers _0800DED8: .4byte gUnknown_081F9680 _0800DEDC: .4byte gUnknown_081F9680 + 0x8 @@ -1714,7 +1474,7 @@ _0800E238: .4byte 0xfffffc00 thumb_func_start sub_800E23C sub_800E23C: @ 800E23C push {r4,r5,lr} - ldr r0, _0800E29C @ =gUnknown_020239F8 + ldr r0, _0800E29C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -1756,7 +1516,7 @@ sub_800E23C: @ 800E23C bl LoadCompressedObjectPic b _0800E3FC .align 2, 0 -_0800E29C: .4byte gUnknown_020239F8 +_0800E29C: .4byte gBattleTypeFlags _0800E2A0: .4byte gVersusFrameGfx _0800E2A4: .4byte 0x06004000 _0800E2A8: .4byte gVersusFrameTilemap @@ -1861,7 +1621,7 @@ _0800E3A0: cmp r0, 0 bne _0800E3EC ldr r4, _0800E3DC @ =gBattleTerrainTable - ldr r5, _0800E3E0 @ =gUnknown_0300428C + ldr r5, _0800E3E0 @ =gBattleTerrain ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 @@ -1885,7 +1645,7 @@ _0800E3D2: b _0800E3FC .align 2, 0 _0800E3DC: .4byte gBattleTerrainTable -_0800E3E0: .4byte gUnknown_0300428C +_0800E3E0: .4byte gBattleTerrain _0800E3E4: .4byte 0x06004000 _0800E3E8: .4byte 0x0600e000 _0800E3EC: @@ -1959,7 +1719,7 @@ _0800E474: .align 2, 0 _0800E480: .4byte gUnknown_08D004E0 _0800E484: - ldr r0, _0800E4A8 @ =gUnknown_020239F8 + ldr r0, _0800E4A8 @ =gBattleTypeFlags ldrh r1, [r0] ldr r0, _0800E4AC @ =0x00000902 ands r0, r1 @@ -1979,7 +1739,7 @@ _0800E492: ldr r0, _0800E4B4 @ =gBattleTerrainTiles_Cave b _0800E57E .align 2, 0 -_0800E4A8: .4byte gUnknown_020239F8 +_0800E4A8: .4byte gBattleTypeFlags _0800E4AC: .4byte 0x00000902 _0800E4B0: .4byte gGameVersion _0800E4B4: .4byte gBattleTerrainTiles_Cave @@ -2039,7 +1799,7 @@ _0800E50C: .4byte _0800E57C _0800E530: ldr r2, _0800E544 @ =gBattleTerrainTable - ldr r0, _0800E548 @ =gUnknown_0300428C + ldr r0, _0800E548 @ =gBattleTerrain ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -2049,7 +1809,7 @@ _0800E530: b _0800E57E .align 2, 0 _0800E544: .4byte gBattleTerrainTable -_0800E548: .4byte gUnknown_0300428C +_0800E548: .4byte gBattleTerrain _0800E54C: ldr r0, _0800E550 @ =gBattleTerrainTiles_Stadium b _0800E57E @@ -2090,7 +1850,7 @@ _0800E57E: _0800E588: .4byte gBattleTerrainTiles_Building _0800E58C: .4byte 0x06008000 _0800E590: - ldr r0, _0800E5B4 @ =gUnknown_020239F8 + ldr r0, _0800E5B4 @ =gBattleTypeFlags ldrh r1, [r0] ldr r0, _0800E5B8 @ =0x00000902 ands r0, r1 @@ -2110,7 +1870,7 @@ _0800E59E: ldr r0, _0800E5C0 @ =gBattleTerrainTilemap_Cave b _0800E68A .align 2, 0 -_0800E5B4: .4byte gUnknown_020239F8 +_0800E5B4: .4byte gBattleTypeFlags _0800E5B8: .4byte 0x00000902 _0800E5BC: .4byte gGameVersion _0800E5C0: .4byte gBattleTerrainTilemap_Cave @@ -2170,7 +1930,7 @@ _0800E618: .4byte _0800E688 _0800E63C: ldr r2, _0800E650 @ =gBattleTerrainTable - ldr r0, _0800E654 @ =gUnknown_0300428C + ldr r0, _0800E654 @ =gBattleTerrain ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -2181,7 +1941,7 @@ _0800E63C: b _0800E68A .align 2, 0 _0800E650: .4byte gBattleTerrainTable -_0800E654: .4byte gUnknown_0300428C +_0800E654: .4byte gBattleTerrain _0800E658: ldr r0, _0800E65C @ =gBattleTerrainTilemap_Stadium b _0800E68A @@ -2222,7 +1982,7 @@ _0800E68A: _0800E694: .4byte gBattleTerrainTilemap_Building _0800E698: .4byte 0x0600d000 _0800E69C: - ldr r0, _0800E6C0 @ =gUnknown_020239F8 + ldr r0, _0800E6C0 @ =gBattleTypeFlags ldrh r1, [r0] ldr r0, _0800E6C4 @ =0x00000902 ands r0, r1 @@ -2242,7 +2002,7 @@ _0800E6AA: ldr r0, _0800E6CC @ =gBattleTerrainPalette_Groudon b _0800E7A6 .align 2, 0 -_0800E6C0: .4byte gUnknown_020239F8 +_0800E6C0: .4byte gBattleTypeFlags _0800E6C4: .4byte 0x00000902 _0800E6C8: .4byte gGameVersion _0800E6CC: .4byte gBattleTerrainPalette_Groudon @@ -2305,7 +2065,7 @@ _0800E72C: .4byte _0800E7A4 _0800E750: ldr r2, _0800E764 @ =gBattleTerrainTable - ldr r0, _0800E768 @ =gUnknown_0300428C + ldr r0, _0800E768 @ =gBattleTerrain ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -2316,7 +2076,7 @@ _0800E750: b _0800E7A6 .align 2, 0 _0800E764: .4byte gBattleTerrainTable -_0800E768: .4byte gUnknown_0300428C +_0800E768: .4byte gBattleTerrain _0800E76C: ldr r0, _0800E770 @ =gBattleTerrainPalette_BuildingGym b _0800E7A6 @@ -2376,7 +2136,7 @@ _0800E7BC: thumb_func_start sub_800E7C4 sub_800E7C4: @ 800E7C4 push {lr} - ldr r0, _0800E7E4 @ =gUnknown_020239F8 + ldr r0, _0800E7E4 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -2390,7 +2150,7 @@ sub_800E7C4: @ 800E7C4 strb r0, [r1] b _0800E7F4 .align 2, 0 -_0800E7E4: .4byte gUnknown_020239F8 +_0800E7E4: .4byte gBattleTypeFlags _0800E7E8: .4byte sub_800F104 _0800E7EC: .4byte gUnknown_02024D1E _0800E7F0: @@ -2488,8 +2248,8 @@ _0800E868: strh r1, [r0] ldr r0, _0800E94C @ =gUnknown_030041B8 strh r1, [r0] - bl sub_8081D3C - ldr r1, _0800E950 @ =gUnknown_0300428C + bl GetBattleTerrain + ldr r1, _0800E950 @ =gBattleTerrain strb r0, [r1] ldr r0, _0800E954 @ =gUnknown_03004210 adds r1, r4, 0 @@ -2512,7 +2272,7 @@ _0800E868: ldr r0, _0800E96C @ =sub_800FCFC bl SetVBlankCallback bl sub_800B884 - ldr r0, _0800E970 @ =gUnknown_020239F8 + ldr r0, _0800E970 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -2539,7 +2299,7 @@ _0800E940: .4byte gUnknown_03004288 _0800E944: .4byte gUnknown_03004280 _0800E948: .4byte gUnknown_030041B0 _0800E94C: .4byte gUnknown_030041B8 -_0800E950: .4byte gUnknown_0300428C +_0800E950: .4byte gBattleTerrain _0800E954: .4byte gUnknown_03004210 _0800E958: .4byte gUnknown_030041D0 _0800E95C: .4byte gWindowConfig_81E71D0 @@ -2547,13 +2307,13 @@ _0800E960: .4byte gUnknown_03004250 _0800E964: .4byte gWindowConfig_81E71EC _0800E968: .4byte gReservedSpritePaletteCount _0800E96C: .4byte sub_800FCFC -_0800E970: .4byte gUnknown_020239F8 +_0800E970: .4byte gBattleTypeFlags _0800E974: .4byte sub_800F298 _0800E978: ldr r0, _0800E9CC @ =sub_800EC9C bl SetMainCallback2 _0800E97E: - ldr r0, _0800E9D0 @ =gUnknown_020239F8 + ldr r0, _0800E9D0 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -2592,7 +2352,7 @@ _0800E9AE: bx r0 .align 2, 0 _0800E9CC: .4byte sub_800EC9C -_0800E9D0: .4byte gUnknown_020239F8 +_0800E9D0: .4byte gBattleTypeFlags _0800E9D4: .4byte gEnemyParty _0800E9D8: .4byte gTrainerBattleOpponent _0800E9DC: .4byte gMain @@ -2755,7 +2515,7 @@ sub_800EB08: @ 800EB08 mov r6, r9 mov r5, r8 push {r5-r7} - ldr r0, _0800EB84 @ =gUnknown_020239F8 + ldr r0, _0800EB84 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -2815,7 +2575,7 @@ _0800EB4E: strb r1, [r0] b _0800EC28 .align 2, 0 -_0800EB84: .4byte gUnknown_020239F8 +_0800EB84: .4byte gBattleTypeFlags _0800EB88: .4byte gEnigmaBerries _0800EB8C: .4byte gSaveBlock1 _0800EB90: .4byte 0x00003160 @@ -2996,7 +2756,7 @@ _0800ECE4: .4byte _0800EFB4 .4byte _0800EFCC _0800ED0C: - ldr r2, _0800ED54 @ =gUnknown_020239F8 + ldr r2, _0800ED54 @ =gBattleTypeFlags ldrh r1, [r2] movs r0, 0x2 ands r0, r1 @@ -3030,7 +2790,7 @@ _0800ED2E: strb r5, [r0] b _0800F008 .align 2, 0 -_0800ED54: .4byte gUnknown_020239F8 +_0800ED54: .4byte gBattleTypeFlags _0800ED58: .4byte gReceivedRemoteLinkPlayers _0800ED5C: .4byte 0x02000000 _0800ED60: .4byte gUnknown_02024D1E @@ -3063,15 +2823,15 @@ _0800ED8A: bne _0800EDBC cmp r4, 0 bne _0800EDB0 - ldr r0, _0800EDAC @ =gUnknown_020239F8 + ldr r0, _0800EDAC @ =gBattleTypeFlags ldrh r1, [r0] movs r2, 0xC b _0800EDB6 .align 2, 0 _0800EDA8: .4byte gBlockRecvBuffer -_0800EDAC: .4byte gUnknown_020239F8 +_0800EDAC: .4byte gBattleTypeFlags _0800EDB0: - ldr r0, _0800EDE0 @ =gUnknown_020239F8 + ldr r0, _0800EDE0 @ =gBattleTypeFlags ldrh r1, [r0] movs r2, 0x8 _0800EDB6: @@ -3093,15 +2853,15 @@ _0800EDBC: bne _0800EDF4 cmp r4, 0 bne _0800EDE8 - ldr r0, _0800EDE0 @ =gUnknown_020239F8 + ldr r0, _0800EDE0 @ =gBattleTypeFlags ldrh r1, [r0] movs r2, 0xC b _0800EDEE .align 2, 0 -_0800EDE0: .4byte gUnknown_020239F8 +_0800EDE0: .4byte gBattleTypeFlags _0800EDE4: .4byte gBlockRecvBuffer _0800EDE8: - ldr r0, _0800EE04 @ =gUnknown_020239F8 + ldr r0, _0800EE04 @ =gBattleTypeFlags ldrh r1, [r0] movs r2, 0x8 _0800EDEE: @@ -3114,10 +2874,10 @@ _0800EDF4: bne _0800EE38 ldrh r1, [r6] ldr r0, _0800EE08 @ =0x00000101 - ldr r2, _0800EE04 @ =gUnknown_020239F8 + ldr r2, _0800EE04 @ =gBattleTypeFlags b _0800EE1A .align 2, 0 -_0800EE04: .4byte gUnknown_020239F8 +_0800EE04: .4byte gBattleTypeFlags _0800EE08: .4byte 0x00000101 _0800EE0C: adds r3, 0x1 @@ -3336,7 +3096,7 @@ _0800EFCC: str r0, [r1] ldr r0, _0800F020 @ =sub_800F808 bl SetMainCallback2 - ldr r3, _0800F024 @ =gUnknown_020239F8 + ldr r3, _0800F024 @ =gBattleTypeFlags ldrh r2, [r3] movs r0, 0x2 ands r0, r2 @@ -3360,7 +3120,7 @@ _0800F014: .4byte gUnknown_030042D0 _0800F018: .4byte gMain _0800F01C: .4byte sub_8010824 _0800F020: .4byte sub_800F808 -_0800F024: .4byte gUnknown_020239F8 +_0800F024: .4byte gBattleTypeFlags _0800F028: .4byte gTrainerBattleOpponent thumb_func_end sub_800EC9C @@ -3438,7 +3198,7 @@ _0800F03E: beq _0800F0D4 adds r0, r7, 0 movs r1, 0 - bl sub_814A518 + bl PadNameString _0800F0D4: adds r7, 0x20 movs r0, 0x1 @@ -3593,7 +3353,7 @@ _0800F1FA: ldr r0, [r1, 0x8] mov r2, r9 str r0, [r2] - ldr r0, _0800F238 @ =gUnknown_020239F8 + ldr r0, _0800F238 @ =gBattleTypeFlags ldrh r0, [r0] mov r2, r8 strh r0, [r2] @@ -3608,7 +3368,7 @@ _0800F228: .4byte gBlockRecvBuffer _0800F22C: .4byte gUnknown_02023A00 _0800F230: .4byte gUnknown_02024D1E _0800F234: .4byte gMain -_0800F238: .4byte gUnknown_020239F8 +_0800F238: .4byte gBattleTypeFlags _0800F23C: .4byte sub_800F104 _0800F240: ldr r0, _0800F258 @ =gPaletteFade @@ -3628,7 +3388,7 @@ _0800F25C: ldrb r0, [r0] cmp r0, 0 bne _0800F27A - ldr r1, _0800F28C @ =gUnknown_020239F8 + ldr r1, _0800F28C @ =gBattleTypeFlags mov r2, r8 ldrh r0, [r2] strh r0, [r1] @@ -3647,7 +3407,7 @@ _0800F27A: bx r0 .align 2, 0 _0800F288: .4byte gReceivedRemoteLinkPlayers -_0800F28C: .4byte gUnknown_020239F8 +_0800F28C: .4byte gBattleTypeFlags _0800F290: .4byte gMain _0800F294: .4byte sub_800E7F8 thumb_func_end sub_800F104 @@ -3740,15 +3500,15 @@ _0800F34E: bne _0800F380 cmp r6, 0 bne _0800F374 - ldr r0, _0800F370 @ =gUnknown_020239F8 + ldr r0, _0800F370 @ =gBattleTypeFlags ldrh r1, [r0] movs r2, 0xC b _0800F37A .align 2, 0 _0800F36C: .4byte gBlockRecvBuffer -_0800F370: .4byte gUnknown_020239F8 +_0800F370: .4byte gBattleTypeFlags _0800F374: - ldr r0, _0800F3B0 @ =gUnknown_020239F8 + ldr r0, _0800F3B0 @ =gBattleTypeFlags ldrh r1, [r0] movs r2, 0x8 _0800F37A: @@ -3777,15 +3537,15 @@ _0800F39E: bne _0800F3C4 cmp r6, 0 bne _0800F3B8 - ldr r0, _0800F3B0 @ =gUnknown_020239F8 + ldr r0, _0800F3B0 @ =gBattleTypeFlags ldrh r1, [r0] movs r2, 0xC b _0800F3BE .align 2, 0 -_0800F3B0: .4byte gUnknown_020239F8 +_0800F3B0: .4byte gBattleTypeFlags _0800F3B4: .4byte gBlockRecvBuffer _0800F3B8: - ldr r0, _0800F408 @ =gUnknown_020239F8 + ldr r0, _0800F408 @ =gBattleTypeFlags ldrh r1, [r0] movs r2, 0x8 _0800F3BE: @@ -3799,7 +3559,7 @@ _0800F3C4: ldrh r2, [r0] ldr r1, _0800F410 @ =0x00000101 adds r3, r0, 0 - ldr r5, _0800F408 @ =gUnknown_020239F8 + ldr r5, _0800F408 @ =gBattleTypeFlags cmp r2, r1 beq _0800F3F6 _0800F3D6: @@ -3832,7 +3592,7 @@ _0800F3FE: movs r1, 0xC b _0800F418 .align 2, 0 -_0800F408: .4byte gUnknown_020239F8 +_0800F408: .4byte gBattleTypeFlags _0800F40C: .4byte gBlockRecvBuffer _0800F410: .4byte 0x00000101 _0800F414: @@ -4312,7 +4072,7 @@ _0800F7A4: str r0, [r1] ldr r0, _0800F7FC @ =sub_800F808 bl SetMainCallback2 - ldr r3, _0800F800 @ =gUnknown_020239F8 + ldr r3, _0800F800 @ =gBattleTypeFlags ldrh r2, [r3] movs r0, 0x2 ands r0, r2 @@ -4338,7 +4098,7 @@ _0800F7F0: .4byte gUnknown_030042D0 _0800F7F4: .4byte gMain _0800F7F8: .4byte sub_8010824 _0800F7FC: .4byte sub_800F808 -_0800F800: .4byte gUnknown_020239F8 +_0800F800: .4byte gBattleTypeFlags _0800F804: .4byte gTrainerBattleOpponent thumb_func_end sub_800F298 @@ -4484,7 +4244,7 @@ sub_800F8E8: @ 800F8E8 movs r0, 0 b _0800FCB4 _0800F90C: - ldr r0, _0800F93C @ =gUnknown_020239F8 + ldr r0, _0800F93C @ =gBattleTypeFlags ldrh r1, [r0] ldr r0, _0800F940 @ =0x00000908 ands r0, r1 @@ -4508,7 +4268,7 @@ _0800F920: ldr r4, [sp, 0x18] b _0800FC86 .align 2, 0 -_0800F93C: .4byte gUnknown_020239F8 +_0800F93C: .4byte gBattleTypeFlags _0800F940: .4byte 0x00000908 _0800F944: .4byte gTrainers _0800F948: @@ -4939,7 +4699,7 @@ _0800FC86: bge _0800FC8E b _0800F948 _0800FC8E: - ldr r2, _0800FCD0 @ =gUnknown_020239F8 + ldr r2, _0800FCD0 @ =gBattleTypeFlags ldr r1, _0800FCCC @ =gTrainers ldr r4, [sp, 0x20] ldr r3, [sp, 0x14] @@ -4972,7 +4732,7 @@ _0800FCB4: _0800FCC4: .4byte gSpeciesNames _0800FCC8: .4byte gBattleMoves + 0x4 @ PP offset _0800FCCC: .4byte gTrainers -_0800FCD0: .4byte gUnknown_020239F8 +_0800FCD0: .4byte gBattleTypeFlags thumb_func_end sub_800F8E8 thumb_func_start sub_800FCD4 @@ -5172,7 +4932,7 @@ sub_800FE40: @ 800FE40 ldr r2, _0800FE8C @ =0x000160cb adds r0, r2 ldrb r2, [r0] - ldr r0, _0800FE90 @ =gUnknown_020239F8 + ldr r0, _0800FE90 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -5194,7 +4954,7 @@ sub_800FE40: @ 800FE40 .align 2, 0 _0800FE88: .4byte 0x02000000 _0800FE8C: .4byte 0x000160cb -_0800FE90: .4byte gUnknown_020239F8 +_0800FE90: .4byte gBattleTypeFlags _0800FE94: .4byte gLinkPlayers _0800FE98: cmp r0, 0x2 @@ -6209,7 +5969,7 @@ _0801065A: cmp r0, 0 bne _080106FA ldr r0, _0801069C @ =objc_dp11b_pingpong - bl object_new_hidden_with_callback + bl CreateInvisibleSpriteWithCallback lsls r0, 24 lsrs r5, r0, 24 mov r0, r8 @@ -6574,7 +6334,7 @@ _08010906: strb r1, [r2] ldr r3, _08010B00 @ =gUnknown_02024C08 strb r1, [r3] - ldr r4, _08010B04 @ =word_2024DB8 + ldr r4, _08010B04 @ =gBattleWeather strh r1, [r4] ldr r1, _08010B08 @ =gUnknown_02024DBC movs r2, 0 @@ -6588,7 +6348,7 @@ _0801092E: movs r0, 0 ldr r1, _08010B0C @ =gUnknown_02024C6C str r0, [r1] - ldr r2, _08010B10 @ =gUnknown_020239F8 + ldr r2, _08010B10 @ =gBattleTypeFlags ldrh r1, [r2] movs r0, 0x2 ands r0, r1 @@ -6804,10 +6564,10 @@ _08010AF4: .4byte gUnknown_02024C80 _08010AF8: .4byte gUnknown_02024C7A _08010AFC: .4byte gUnknown_02024C07 _08010B00: .4byte gUnknown_02024C08 -_08010B04: .4byte word_2024DB8 +_08010B04: .4byte gBattleWeather _08010B08: .4byte gUnknown_02024DBC _08010B0C: .4byte gUnknown_02024C6C -_08010B10: .4byte gUnknown_020239F8 +_08010B10: .4byte gBattleTypeFlags _08010B14: .4byte gSaveBlock2 _08010B18: .4byte 0x02000000 _08010B1C: .4byte 0x00016084 @@ -7811,7 +7571,7 @@ bc_load_battlefield: @ 8011334 bl battle_get_side_with_given_state ldr r4, _08011370 @ =gUnknown_02024A60 strb r0, [r4] - ldr r0, _08011374 @ =gUnknown_0300428C + ldr r0, _08011374 @ =gBattleTerrain ldrb r1, [r0] movs r0, 0 bl dp01_build_cmdbuf_x2E_a @@ -7830,7 +7590,7 @@ _08011364: .align 2, 0 _0801136C: .4byte gUnknown_02024A64 _08011370: .4byte gUnknown_02024A60 -_08011374: .4byte gUnknown_0300428C +_08011374: .4byte gBattleTerrain _08011378: .4byte gUnknown_030042D4 _0801137C: .4byte sub_8011384 _08011380: .4byte gUnknown_02024D1E @@ -7861,7 +7621,7 @@ _080113A4: mov r9, r0 mov r8, r2 _080113AC: - ldr r0, _080113F0 @ =gUnknown_020239F8 + ldr r0, _080113F0 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x80 ands r0, r1 @@ -7891,7 +7651,7 @@ _080113E0: .4byte gUnknown_02024A64 _080113E4: .4byte gUnknown_02024A60 _080113E8: .4byte gUnknown_02024A68 _080113EC: .4byte gBattleMons -_080113F0: .4byte gUnknown_020239F8 +_080113F0: .4byte gBattleTypeFlags _080113F4: mov r2, r8 ldrb r0, [r2] @@ -8006,7 +7766,7 @@ _080114BE: ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _080114D8: - ldr r5, _08011544 @ =gUnknown_020239F8 + ldr r5, _08011544 @ =gBattleTypeFlags ldrh r1, [r5] movs r0, 0x8 ands r0, r1 @@ -8051,7 +7811,7 @@ _08011534: .4byte gUnknown_02024260 _08011538: .4byte gUnknown_02024A60 _0801153C: .4byte 0x020160bc _08011540: .4byte gUnknown_02024A98 -_08011544: .4byte gUnknown_020239F8 +_08011544: .4byte gBattleTypeFlags _08011548: .4byte 0x00000902 _0801154C: ldrb r0, [r4] @@ -8080,7 +7840,7 @@ _0801154C: ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _08011588: - ldr r0, _080115EC @ =gUnknown_020239F8 + ldr r0, _080115EC @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -8129,7 +7889,7 @@ _080115DA: bx r0 .align 2, 0 _080115E8: .4byte 0x00000902 -_080115EC: .4byte gUnknown_020239F8 +_080115EC: .4byte gBattleTypeFlags _080115F0: .4byte gUnknown_02024A60 _080115F4: .4byte gUnknown_02024A68 _080115F8: .4byte gUnknown_030042D4 @@ -8148,7 +7908,7 @@ bc_801333C: @ 8011600 beq _08011612 b _0801178C _08011612: - ldr r0, _0801165C @ =gUnknown_020239F8 + ldr r0, _0801165C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x8 ands r0, r1 @@ -8186,7 +7946,7 @@ _08011650: b _0801167A .align 2, 0 _08011658: .4byte gUnknown_02024A64 -_0801165C: .4byte gUnknown_020239F8 +_0801165C: .4byte gBattleTypeFlags _08011660: .4byte gEnemyParty _08011664: .4byte 0x0000ffff _08011668: @@ -8438,7 +8198,7 @@ _0801184C: ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _08011866: - ldr r0, _080118B8 @ =gUnknown_020239F8 + ldr r0, _080118B8 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -8476,7 +8236,7 @@ _080118A4: _080118AC: .4byte gUnknown_02024A64 _080118B0: .4byte gUnknown_02024A60 _080118B4: .4byte gUnknown_02024A68 -_080118B8: .4byte gUnknown_020239F8 +_080118B8: .4byte gBattleTypeFlags _080118BC: .4byte gUnknown_030042D4 _080118C0: .4byte bc_801362C thumb_func_end sub_8011834 @@ -8503,7 +8263,7 @@ _080118DE: lsrs r0, 24 cmp r0, 0x1 bne _08011912 - ldr r0, _08011940 @ =gUnknown_020239F8 + ldr r0, _08011940 @ =gBattleTypeFlags ldrh r1, [r0] ldr r2, _08011944 @ =0x00000902 adds r0, r2, 0 @@ -8543,7 +8303,7 @@ _08011930: .4byte gUnknown_02024A64 _08011934: .4byte gUnknown_02024A60 _08011938: .4byte gUnknown_02024A68 _0801193C: .4byte gBattleMons -_08011940: .4byte gUnknown_020239F8 +_08011940: .4byte gBattleTypeFlags _08011944: .4byte 0x00000902 _08011948: .4byte gUnknown_030042D4 _0801194C: .4byte sub_8011970 @@ -8575,7 +8335,7 @@ sub_8011970: @ 8011970 ldr r0, [r0] cmp r0, 0 bne _0801199E - ldr r0, _080119A8 @ =gUnknown_020239F8 + ldr r0, _080119A8 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x80 ands r0, r1 @@ -8597,7 +8357,7 @@ _0801199E: bx r0 .align 2, 0 _080119A4: .4byte gUnknown_02024A64 -_080119A8: .4byte gUnknown_020239F8 +_080119A8: .4byte gBattleTypeFlags _080119AC: .4byte gUnknown_030042D4 _080119B0: .4byte sub_80119B4 thumb_func_end sub_8011970 @@ -8627,7 +8387,7 @@ _080119CC: ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _080119E4: - ldr r0, _08011A4C @ =gUnknown_020239F8 + ldr r0, _08011A4C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -8676,7 +8436,7 @@ _08011A38: _08011A40: .4byte gUnknown_02024A64 _08011A44: .4byte gUnknown_02024A60 _08011A48: .4byte gUnknown_02024A68 -_08011A4C: .4byte gUnknown_020239F8 +_08011A4C: .4byte gBattleTypeFlags _08011A50: .4byte 0x02000000 _08011A54: .4byte 0x00016058 _08011A58: .4byte 0x000160f9 @@ -9427,7 +9187,7 @@ _08012062: bne _08012070 b _080121F4 _08012070: - ldr r0, _08012184 @ =gUnknown_020239F8 + ldr r0, _08012184 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -9567,7 +9327,7 @@ _0801215E: .align 2, 0 _0801217C: .4byte gUnknown_02024C0B _08012180: .4byte gUnknown_02024A60 -_08012184: .4byte gUnknown_020239F8 +_08012184: .4byte gBattleTypeFlags _08012188: .4byte gBattleMons _0801218C: .4byte gUnknown_02024A68 _08012190: .4byte 0x02000000 @@ -9609,7 +9369,7 @@ _080121DC: .4byte 0x0400e000 _080121E0: .4byte gUnknown_02024C98 _080121E4: .4byte gUnknown_02024D1E _080121E8: - ldr r0, _080121F8 @ =gUnknown_020239F8 + ldr r0, _080121F8 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x10 ands r0, r1 @@ -9619,7 +9379,7 @@ _080121F4: movs r0, 0 b _0801224A .align 2, 0 -_080121F8: .4byte gUnknown_020239F8 +_080121F8: .4byte gBattleTypeFlags _080121FC: ldr r0, _08012210 @ =0x02000000 ldr r1, _08012214 @ =0x00016003 @@ -9705,7 +9465,7 @@ _08012270: lsrs r1, 24 adds r0, r4, 0 bl sub_8094C98 - ldr r0, _080122F8 @ =gUnknown_020239F8 + ldr r0, _080122F8 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -9742,7 +9502,7 @@ _080122E8: .4byte gUnknown_02038470 _080122EC: .4byte 0x02000000 _080122F0: .4byte 0x0001606c _080122F4: .4byte 0x00016068 -_080122F8: .4byte gUnknown_020239F8 +_080122F8: .4byte gBattleTypeFlags _080122FC: movs r3, 0 ldr r2, _0801231C @ =0x0001606c @@ -9827,7 +9587,7 @@ _0801239C: adds r0, r4 movs r1, 0x6 strb r1, [r0] - ldr r0, _08012440 @ =gUnknown_020239F8 + ldr r0, _08012440 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -9880,7 +9640,7 @@ _080123F8: adds r0, r2, r0 movs r1, 0xD strb r1, [r0] - ldr r0, _08012440 @ =gUnknown_020239F8 + ldr r0, _08012440 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -9896,7 +9656,7 @@ _080123F8: _08012434: .4byte 0x02000000 _08012438: .4byte gUnknown_02024A60 _0801243C: .4byte 0x00016068 -_08012440: .4byte gUnknown_020239F8 +_08012440: .4byte gBattleTypeFlags _08012444: .4byte 0x000160a6 _08012448: .4byte gBitTable _0801244C: .4byte gUnknown_02024D1E @@ -10162,7 +9922,7 @@ _0801264E: adds r4, 0x1 cmp r4, 0x3 ble _0801264E - ldr r0, _080126B0 @ =gUnknown_020239F8 + ldr r0, _080126B0 @ =gBattleTypeFlags ldrb r0, [r0] movs r1, 0x1 ands r1, r0 @@ -10173,9 +9933,9 @@ _0801264E: b _0801289E .align 2, 0 _080126AC: .4byte gBattleMons -_080126B0: .4byte gUnknown_020239F8 +_080126B0: .4byte gBattleTypeFlags _080126B4: - ldr r0, _080126D0 @ =gUnknown_020239F8 + ldr r0, _080126D0 @ =gBattleTypeFlags ldrh r1, [r0] ldr r0, _080126D4 @ =0x00000902 ands r0, r1 @@ -10191,7 +9951,7 @@ _080126C2: ldr r1, _080126DC @ =gUnknown_081D9B29 b _080129CC .align 2, 0 -_080126D0: .4byte gUnknown_020239F8 +_080126D0: .4byte gBattleTypeFlags _080126D4: .4byte 0x00000902 _080126D8: .4byte gUnknown_02024C1C _080126DC: .4byte gUnknown_081D9B29 @@ -10494,7 +10254,7 @@ _0801292C: .align 2, 0 _08012964: .4byte gUnknown_02024D1E _08012968: - ldr r0, _08012994 @ =gUnknown_020239F8 + ldr r0, _08012994 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0xA ands r0, r1 @@ -10516,7 +10276,7 @@ _08012968: adds r0, r1 b _08012BFE .align 2, 0 -_08012994: .4byte gUnknown_020239F8 +_08012994: .4byte gBattleTypeFlags _08012998: .4byte gUnknown_02024260 _0801299C: .4byte gUnknown_02024A60 _080129A0: .4byte gUnknown_081D8E37 @@ -10809,7 +10569,7 @@ _08012C10: adds r0, r2, r3 add r0, r12 strb r1, [r0] - ldr r0, _08012CCC @ =gUnknown_020239F8 + ldr r0, _08012CCC @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -10897,7 +10657,7 @@ _08012CBE: .align 2, 0 _08012CC4: .4byte 0x02000000 _08012CC8: .4byte 0x00016068 -_08012CCC: .4byte gUnknown_020239F8 +_08012CCC: .4byte gBattleTypeFlags _08012CD0: .4byte 0x0001606c _08012CD4: .4byte 0x0001606d _08012CD8: .4byte 0x0001606e @@ -11017,7 +10777,7 @@ _08012DA8: beq _08012DD2 b _08012F66 _08012DD2: - ldr r0, _08012E1C @ =gUnknown_020239F8 + ldr r0, _08012E1C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x41 ands r0, r1 @@ -11051,7 +10811,7 @@ _08012E06: _08012E10: .4byte gUnknown_02024A64 _08012E14: .4byte gBitTable _08012E18: .4byte gUnknown_02024A60 -_08012E1C: .4byte gUnknown_020239F8 +_08012E1C: .4byte gBattleTypeFlags _08012E20: .4byte 0x02000000 _08012E24: .4byte 0x000160a6 _08012E28: @@ -11323,7 +11083,7 @@ b_first_side: @ 8012FF0 ldrb r3, [r0] cmp r3, 0x21 bne _0801305C - ldr r0, _08013074 @ =word_2024DB8 + ldr r0, _08013074 @ =gBattleWeather ldrh r1, [r0] movs r0, 0x7 ands r0, r1 @@ -11332,7 +11092,7 @@ b_first_side: @ 8012FF0 _0801305C: cmp r3, 0x22 bne _08013078 - ldr r0, _08013074 @ =word_2024DB8 + ldr r0, _08013074 @ =gBattleWeather ldrh r1, [r0] movs r0, 0x60 ands r0, r1 @@ -11343,7 +11103,7 @@ _0801306C: b _0801307A .align 2, 0 _08013070: .4byte gBattleMons -_08013074: .4byte word_2024DB8 +_08013074: .4byte gBattleWeather _08013078: movs r3, 0x1 _0801307A: @@ -11357,7 +11117,7 @@ _0801307A: ldrb r2, [r0] cmp r2, 0x21 bne _0801309A - ldr r0, _080130B4 @ =word_2024DB8 + ldr r0, _080130B4 @ =gBattleWeather ldrh r1, [r0] movs r0, 0x7 ands r0, r1 @@ -11366,7 +11126,7 @@ _0801307A: _0801309A: cmp r2, 0x22 bne _080130BA - ldr r0, _080130B4 @ =word_2024DB8 + ldr r0, _080130B4 @ =gBattleWeather ldrh r1, [r0] movs r0, 0x60 ands r0, r1 @@ -11377,7 +11137,7 @@ _080130AA: b _080130BC .align 2, 0 _080130B0: .4byte gBattleMons -_080130B4: .4byte word_2024DB8 +_080130B4: .4byte gBattleWeather _080130B8: movs r3, 0x1 _080130BA: @@ -11429,7 +11189,7 @@ _0801310C: lsls r0, 24 lsrs r5, r0, 24 _08013120: - ldr r0, _080131DC @ =gUnknown_020239F8 + ldr r0, _080131DC @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -11523,7 +11283,7 @@ _08013198: ldrb r5, [r0, 0x1A] b _08013208 .align 2, 0 -_080131DC: .4byte gUnknown_020239F8 +_080131DC: .4byte gBattleTypeFlags _080131E0: .4byte 0x00000809 _080131E4: .4byte gBattleMons _080131E8: .4byte gUnknown_02024D1C @@ -11539,7 +11299,7 @@ _080131F4: lsls r0, 24 lsrs r5, r0, 24 _08013208: - ldr r0, _08013280 @ =gUnknown_020239F8 + ldr r0, _08013280 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -11599,7 +11359,7 @@ _08013274: movs r3, 0 b _08013334 .align 2, 0 -_08013280: .4byte gUnknown_020239F8 +_08013280: .4byte gBattleTypeFlags _08013284: .4byte 0x00000809 _08013288: .4byte gBattleMons _0801328C: .4byte gUnknown_02024D1C @@ -11774,7 +11534,7 @@ sub_80133C8: @ 80133C8 mov r5, r8 push {r5-r7} movs r3, 0 - ldr r0, _0801341C @ =gUnknown_020239F8 + ldr r0, _0801341C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x80 ands r0, r1 @@ -11813,7 +11573,7 @@ _080133F8: bcc _080133F8 b _08013622 .align 2, 0 -_0801341C: .4byte gUnknown_020239F8 +_0801341C: .4byte gBattleTypeFlags _08013420: .4byte gUnknown_02024A60 _08013424: .4byte gUnknown_02024A68 _08013428: .4byte gUnknown_02024A76 @@ -12501,7 +12261,7 @@ sub_8013998: @ 8013998 ldr r1, _080139D0 @ =gUnknown_02024A7F movs r0, 0 strb r0, [r1] - ldr r0, _080139D4 @ =gUnknown_020239F8 + ldr r0, _080139D4 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -12525,7 +12285,7 @@ sub_8013998: @ 8013998 b _08013B48 .align 2, 0 _080139D0: .4byte gUnknown_02024A7F -_080139D4: .4byte gUnknown_020239F8 +_080139D4: .4byte gBattleTypeFlags _080139D8: .4byte gUnknown_030041C0 _080139DC: .4byte gUnknown_02024D26 _080139E0: .4byte gUnknown_02024C07 @@ -12676,7 +12436,7 @@ sub_8013B64: @ 8013B64 ldr r1, _08013B9C @ =gUnknown_02024A7F movs r0, 0 strb r0, [r1] - ldr r0, _08013BA0 @ =gUnknown_020239F8 + ldr r0, _08013BA0 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -12700,7 +12460,7 @@ sub_8013B64: @ 8013B64 b _08013BBE .align 2, 0 _08013B9C: .4byte gUnknown_02024A7F -_08013BA0: .4byte gUnknown_020239F8 +_08013BA0: .4byte gBattleTypeFlags _08013BA4: .4byte gUnknown_030041C0 _08013BA8: .4byte gUnknown_02024D26 _08013BAC: .4byte gUnknown_02024C07 @@ -12824,7 +12584,7 @@ sub_8013C9C: @ 8013C9C lsrs r0, 24 cmp r0, 0x1 bhi _08013D7C - ldr r0, _08013D04 @ =gUnknown_020239F8 + ldr r0, _08013D04 @ =gBattleTypeFlags ldrh r0, [r0] ldr r1, _08013D08 @ =0x00000b92 ands r1, r0 @@ -12866,7 +12626,7 @@ _08013CCE: b _08013D36 .align 2, 0 _08013D00: .4byte gUnknown_02024A7F -_08013D04: .4byte gUnknown_020239F8 +_08013D04: .4byte gBattleTypeFlags _08013D08: .4byte 0x00000b92 _08013D0C: .4byte gUnknown_02024A60 _08013D10: .4byte gUnknown_02024A68 @@ -13075,7 +12835,7 @@ _08013EAC: .4byte bc_evolution_cutscene thumb_func_start c4_overworld c4_overworld: @ 8013EB0 push {r4-r6,lr} - ldr r5, _08013F30 @ =gUnknown_020239F8 + ldr r5, _08013F30 @ =gBattleTypeFlags ldrh r1, [r5] movs r6, 0x2 adds r0, r6, 0 @@ -13138,7 +12898,7 @@ _08013F2A: pop {r0} bx r0 .align 2, 0 -_08013F30: .4byte gUnknown_020239F8 +_08013F30: .4byte gBattleTypeFlags _08013F34: .4byte gPlayerParty _08013F38: .4byte gReceivedRemoteLinkPlayers _08013F3C: .4byte gScriptResult @@ -13600,7 +13360,7 @@ _08014324: .4byte gBattleMoves _08014328: .4byte gBattleMons _0801432C: .4byte gUnknown_02024C08 _08014330: - ldr r2, _08014454 @ =gUnknown_020239F8 + ldr r2, _08014454 @ =gBattleTypeFlags ldrh r1, [r2] movs r0, 0x1 ands r0, r1 @@ -13750,7 +13510,7 @@ _0801441E: movs r0, 0x1 b _08014496 .align 2, 0 -_08014454: .4byte gUnknown_020239F8 +_08014454: .4byte gBattleTypeFlags _08014458: .4byte gUnknown_02024C07 _0801445C: .4byte gUnknown_02024C80 _08014460: .4byte gBattleMoves @@ -14433,7 +14193,7 @@ _08014A24: .4byte gUnknown_081D9E7C _08014A28: .4byte 0x000160a4 _08014A2C: .4byte 0x000160a5 _08014A30: - ldr r0, _08014A50 @ =gUnknown_020239F8 + ldr r0, _08014A50 @ =gBattleTypeFlags ldrh r0, [r0] movs r1, 0x1 ands r1, r0 @@ -14450,7 +14210,7 @@ _08014A30: mov r10, r2 b _08014A74 .align 2, 0 -_08014A50: .4byte gUnknown_020239F8 +_08014A50: .4byte gBattleTypeFlags _08014A54: .4byte gUnknown_02024D1E _08014A58: .4byte gUnknown_02024C07 _08014A5C: .4byte gUnknown_02024C10 @@ -14584,7 +14344,7 @@ _08014B5C: .4byte gBattleMons _08014B60: .4byte byte_2024C06 _08014B64: .4byte gUnknown_02024D28 _08014B68: - ldr r0, _08014BDC @ =gUnknown_020239F8 + ldr r0, _08014BDC @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -14645,7 +14405,7 @@ _08014BD4: pop {r1} bx r1 .align 2, 0 -_08014BDC: .4byte gUnknown_020239F8 +_08014BDC: .4byte gBattleTypeFlags _08014BE0: .4byte 0x02000000 _08014BE4: .4byte 0x00016078 _08014BE8: .4byte gUnknown_02024A7E @@ -14663,7 +14423,7 @@ sub_8014BF4: @ 8014BF4 adds r0, r1 ldrb r0, [r0] strb r0, [r4] - ldr r0, _08014C50 @ =gUnknown_020239F8 + ldr r0, _08014C50 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -14699,7 +14459,7 @@ _08014C28: _08014C44: .4byte gUnknown_02024C07 _08014C48: .4byte gUnknown_02024A7A _08014C4C: .4byte gUnknown_02024A7E -_08014C50: .4byte gUnknown_020239F8 +_08014C50: .4byte gBattleTypeFlags _08014C54: .4byte gUnknown_02024A68 _08014C58: .4byte gUnknown_02024A60 _08014C5C: .4byte gUnknown_02024C18 @@ -15756,7 +15516,7 @@ _080154E0: .4byte gUnknown_02024A60 thumb_func_start unref_sub_80154E4 unref_sub_80154E4: @ 80154E4 push {r4,r5,lr} - ldr r0, _08015514 @ =gUnknown_020239F8 + ldr r0, _08015514 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -15781,7 +15541,7 @@ _08015500: blt _08015500 b _08015542 .align 2, 0 -_08015514: .4byte gUnknown_020239F8 +_08015514: .4byte gBattleTypeFlags _08015518: .4byte gUnknown_02024A68 _0801551C: .4byte gUnknown_02024A64 _08015520: .4byte gBitTable @@ -15817,7 +15577,7 @@ dp01_battle_side_mark_buffer_for_execution: @ 8015554 push {lr} lsls r0, 24 lsrs r3, r0, 24 - ldr r0, _0801557C @ =gUnknown_020239F8 + ldr r0, _0801557C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -15834,7 +15594,7 @@ dp01_battle_side_mark_buffer_for_execution: @ 8015554 str r0, [r2] b _08015598 .align 2, 0 -_0801557C: .4byte gUnknown_020239F8 +_0801557C: .4byte gBattleTypeFlags _08015580: .4byte gUnknown_02024A64 _08015584: .4byte gBitTable _08015588: @@ -16779,7 +16539,7 @@ sub_8015C90: @ 8015C90 adds r0, r1 ldr r1, _08015D08 @ =gUnknown_081D9365 str r1, [r0] - ldr r0, _08015D0C @ =gUnknown_020239F8 + ldr r0, _08015D0C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -16809,7 +16569,7 @@ _08015CFC: .4byte gUnknown_02024A60 _08015D00: .4byte gUnknown_02024D28 _08015D04: .4byte gUnknown_02024C1C _08015D08: .4byte gUnknown_081D9365 -_08015D0C: .4byte gUnknown_020239F8 +_08015D0C: .4byte gBattleTypeFlags _08015D10: .4byte gUnknown_02024260 _08015D14: ldrb r0, [r5] @@ -17566,7 +17326,7 @@ _08016318: .4byte gUnknown_081D939A _0801631C: .4byte 0x02000000 _08016320: .4byte 0x0001600e _08016324: - ldr r3, _0801635C @ =word_2024DB8 + ldr r3, _0801635C @ =gBattleWeather ldrh r2, [r3] movs r0, 0x7 ands r0, r2 @@ -17596,7 +17356,7 @@ _08016332: strb r0, [r1, 0x5] b _0801639C .align 2, 0 -_0801635C: .4byte word_2024DB8 +_0801635C: .4byte gBattleWeather _08016360: .4byte gUnknown_02024DBC _08016364: .4byte 0x0000fffe _08016368: .4byte 0x0000fffd @@ -17633,7 +17393,7 @@ _0801639C: _080163A0: .4byte gUnknown_02024D1E _080163A4: .4byte gUnknown_081D8F62 _080163A8: - ldr r3, _080163DC @ =word_2024DB8 + ldr r3, _080163DC @ =gBattleWeather ldrh r2, [r3] movs r0, 0x18 ands r0, r2 @@ -17660,7 +17420,7 @@ _080163B6: ldr r0, _080163EC @ =gUnknown_081D8FFF b _080163F4 .align 2, 0 -_080163DC: .4byte word_2024DB8 +_080163DC: .4byte gBattleWeather _080163E0: .4byte gUnknown_02024DBC _080163E4: .4byte 0x0000fff7 _080163E8: .4byte gUnknown_02024C10 @@ -17687,7 +17447,7 @@ _08016414: .4byte 0x02000000 _08016418: .4byte 0x000160a4 _0801641C: .4byte gUnknown_02024D1E _08016420: - ldr r3, _08016450 @ =word_2024DB8 + ldr r3, _08016450 @ =gBattleWeather ldrh r2, [r3] movs r0, 0x60 ands r0, r2 @@ -17712,7 +17472,7 @@ _08016420: ldr r0, _08016460 @ =gUnknown_081D9016 b _08016468 .align 2, 0 -_08016450: .4byte word_2024DB8 +_08016450: .4byte gBattleWeather _08016454: .4byte gUnknown_02024DBC _08016458: .4byte 0x0000ffdf _0801645C: .4byte gUnknown_02024C10 @@ -17741,7 +17501,7 @@ _08016488: .4byte gUnknown_081D9008 _0801648C: .4byte 0x02000000 _08016490: .4byte 0x0001600e _08016494: - ldr r3, _080164BC @ =word_2024DB8 + ldr r3, _080164BC @ =gBattleWeather ldrh r2, [r3] movs r0, 0x80 ands r0, r2 @@ -17762,7 +17522,7 @@ _08016494: ldr r0, _080164CC @ =gUnknown_081D8FFF b _080164D4 .align 2, 0 -_080164BC: .4byte word_2024DB8 +_080164BC: .4byte gBattleWeather _080164C0: .4byte gUnknown_02024DBC _080164C4: .4byte 0x0000ff7f _080164C8: .4byte gUnknown_02024C10 @@ -19589,7 +19349,7 @@ sub_80173A4: @ 80173A4 mov r5, r8 push {r5-r7} sub sp, 0x4 - ldr r0, _080173C0 @ =gUnknown_020239F8 + ldr r0, _080173C0 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x80 ands r0, r1 @@ -19597,7 +19357,7 @@ sub_80173A4: @ 80173A4 beq _080173F8 b _080176AC .align 2, 0 -_080173C0: .4byte gUnknown_020239F8 +_080173C0: .4byte gBattleTypeFlags _080173C4: ldr r0, _080173D4 @ =gUnknown_081D8C72 bl b_call_bc_move_exec @@ -20796,7 +20556,7 @@ _08017DC0: b _08017F94 _08017DDC: lsrs r0, r1, 16 - bl sub_804114C + bl CountTrailingZeroBits ldr r1, _08017E04 @ =0x02000000 ldr r7, _08017E08 @ =0x00016003 adds r1, r7 @@ -21071,7 +20831,7 @@ sub_8018018: @ 8018018 lsls r2, 24 lsrs r2, 24 mov r9, r2 - ldr r0, _08018044 @ =gUnknown_020239F8 + ldr r0, _08018044 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -21080,7 +20840,7 @@ sub_8018018: @ 8018018 movs r0, 0 b _08018198 .align 2, 0 -_08018044: .4byte gUnknown_020239F8 +_08018044: .4byte gBattleTypeFlags _08018048: movs r0, 0x40 ands r0, r1 @@ -21347,7 +21107,7 @@ _0801825C: movs r0, 0 b _08018314 _08018260: - ldr r1, _0801831C @ =word_2024DB8 + ldr r1, _0801831C @ =gBattleWeather ldrh r0, [r1] movs r2, 0xE7 ands r2, r0 @@ -21447,7 +21207,7 @@ _08018314: pop {r1} bx r1 .align 2, 0 -_0801831C: .4byte word_2024DB8 +_0801831C: .4byte gBattleWeather _08018320: .4byte gBattleMons thumb_func_end castform_switch @@ -21574,7 +21334,7 @@ _080183F4: movs r1, 0 bl GetMonData str r0, [sp, 0x14] - ldr r0, _0801844C @ =gUnknown_020239F8 + ldr r0, _0801844C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x80 ands r0, r1 @@ -21592,7 +21352,7 @@ _08018436: .align 2, 0 _08018444: .4byte gUnknown_02024A6A _08018448: .4byte gEnemyParty -_0801844C: .4byte gUnknown_020239F8 +_0801844C: .4byte gBattleTypeFlags _08018450: .4byte byte_2024C06 _08018454: ldr r2, _08018474 @ =byte_2024C06 @@ -21766,7 +21526,7 @@ _080185A4: .4byte _08018620 .4byte _080185D0 _080185D0: - ldr r2, _080185EC @ =word_2024DB8 + ldr r2, _080185EC @ =gBattleWeather ldrh r1, [r2] movs r0, 0x7 ands r0, r1 @@ -21780,11 +21540,11 @@ _080185D0: movs r1, 0xA b _08018638 .align 2, 0 -_080185EC: .4byte word_2024DB8 +_080185EC: .4byte gBattleWeather _080185F0: .4byte 0x02000000 _080185F4: .4byte 0x000160a4 _080185F8: - ldr r3, _08018614 @ =word_2024DB8 + ldr r3, _08018614 @ =gBattleWeather ldrh r1, [r3] movs r2, 0x18 adds r0, r2, 0 @@ -21798,11 +21558,11 @@ _080185F8: movs r1, 0xC b _08018638 .align 2, 0 -_08018614: .4byte word_2024DB8 +_08018614: .4byte gBattleWeather _08018618: .4byte 0x02000000 _0801861C: .4byte 0x000160a4 _08018620: - ldr r3, _08018668 @ =word_2024DB8 + ldr r3, _08018668 @ =gBattleWeather ldrh r1, [r3] movs r2, 0x60 adds r0, r2, 0 @@ -21838,14 +21598,14 @@ _08018656: bl b_push_move_exec bl _08019F76 .align 2, 0 -_08018668: .4byte word_2024DB8 +_08018668: .4byte gBattleWeather _0801866C: .4byte 0x02000000 _08018670: .4byte 0x000160a4 _08018674: .4byte 0x00016003 _08018678: .4byte gUnknown_02024D1E _0801867C: .4byte gUnknown_081D901D _08018680: - ldr r2, _080186A8 @ =word_2024DB8 + ldr r2, _080186A8 @ =gBattleWeather ldrh r1, [r2] movs r0, 0x4 ands r0, r1 @@ -21864,12 +21624,12 @@ _08018690: strb r5, [r0] bl _08019F22 .align 2, 0 -_080186A8: .4byte word_2024DB8 +_080186A8: .4byte gBattleWeather _080186AC: .4byte gUnknown_081D9704 _080186B0: .4byte 0x02000000 _080186B4: .4byte 0x00016003 _080186B8: - ldr r2, _080186E0 @ =word_2024DB8 + ldr r2, _080186E0 @ =gBattleWeather ldrh r1, [r2] movs r0, 0x10 ands r0, r1 @@ -21888,12 +21648,12 @@ _080186C8: strb r2, [r0] bl _08019F22 .align 2, 0 -_080186E0: .4byte word_2024DB8 +_080186E0: .4byte gBattleWeather _080186E4: .4byte gUnknown_081D9744 _080186E8: .4byte 0x02000000 _080186EC: .4byte 0x00016003 _080186F0: - ldr r2, _08018718 @ =word_2024DB8 + ldr r2, _08018718 @ =gBattleWeather ldrh r1, [r2] movs r0, 0x40 ands r0, r1 @@ -21912,7 +21672,7 @@ _08018700: strb r5, [r0] bl _08019F22 .align 2, 0 -_08018718: .4byte word_2024DB8 +_08018718: .4byte gBattleWeather _0801871C: .4byte gUnknown_081D97FE _08018720: .4byte 0x02000000 _08018724: .4byte 0x00016003 @@ -22086,7 +21846,7 @@ _08018876: beq _0801888E bl _08019F76 _0801888E: - ldr r0, _080188D0 @ =word_2024DB8 + ldr r0, _080188D0 @ =gBattleWeather ldrh r1, [r0] movs r0, 0x7 ands r0, r1 @@ -22118,7 +21878,7 @@ _080188C4: str r0, [r1] bl _08019F22 .align 2, 0 -_080188D0: .4byte word_2024DB8 +_080188D0: .4byte gBattleWeather _080188D4: .4byte gUnknown_081D9730 _080188D8: .4byte gUnknown_02024BEC _080188DC: @@ -24023,7 +23783,7 @@ _0801997A: bl battle_get_side_with_given_state lsls r0, 24 lsrs r7, r0, 24 - ldr r0, _08019A2C @ =gUnknown_020239F8 + ldr r0, _08019A2C @ =gBattleTypeFlags ldrh r1, [r0] movs r2, 0x1 adds r0, r2, 0 @@ -24090,7 +23850,7 @@ _08019A1C: .4byte gUnknown_02024A68 _08019A20: .4byte gUnknown_02024A60 _08019A24: .4byte gBattleMons _08019A28: .4byte gUnknown_02024C98 -_08019A2C: .4byte gUnknown_020239F8 +_08019A2C: .4byte gBattleTypeFlags _08019A30: .4byte byte_2024C06 _08019A34: ldr r3, _08019A74 @ =gBattleMons @@ -27248,7 +27008,7 @@ unref_sub_801B40C: @ 801B40C sub sp, 0x8 movs r0, 0 str r0, [sp] - ldr r0, _0801B464 @ =gUnknown_020239F8 + ldr r0, _0801B464 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -27288,7 +27048,7 @@ _0801B45A: lsrs r5, r0, 24 b _0801B556 .align 2, 0 -_0801B464: .4byte gUnknown_020239F8 +_0801B464: .4byte gBattleTypeFlags _0801B468: .4byte gUnknown_081FC1D0 _0801B46C: .4byte gUnknown_02024C0C _0801B470: .4byte gBitTable @@ -27725,7 +27485,7 @@ _0801B854: .4byte gUnknown_02024C07 _0801B858: .4byte gUnknown_02024C80 _0801B85C: .4byte gBattleMons _0801B860: - ldr r0, _0801B894 @ =gUnknown_020239F8 + ldr r0, _0801B894 @ =gBattleTypeFlags ldrh r1, [r0] movs r4, 0x1 adds r0, r4, 0 @@ -27750,7 +27510,7 @@ _0801B860: movs r0, 0x1 b _0801B8B2 .align 2, 0 -_0801B894: .4byte gUnknown_020239F8 +_0801B894: .4byte gBattleTypeFlags _0801B898: .4byte gUnknown_02024C07 _0801B89C: movs r0, 0x3 @@ -27830,7 +27590,7 @@ sub_801B928: @ 801B928 mov r6, r8 push {r6,r7} sub sp, 0x10 - ldr r0, _0801B9E0 @ =gUnknown_020239F8 + ldr r0, _0801B9E0 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -27914,7 +27674,7 @@ _0801B9DA: movs r0, 0 b _0801BC24 .align 2, 0 -_0801B9E0: .4byte gUnknown_020239F8 +_0801B9E0: .4byte gBattleTypeFlags _0801B9E4: .4byte gUnknown_02024C07 _0801B9E8: .4byte gBattleMons _0801B9EC: .4byte 0x0000080e @@ -28938,7 +28698,7 @@ _0801C22E: lsls r0, 24 cmp r0, 0 bne _0801C27E - ldr r0, _0801C2A8 @ =word_2024DB8 + ldr r0, _0801C2A8 @ =gBattleWeather ldrh r1, [r0] movs r0, 0x7 ands r0, r1 @@ -28971,7 +28731,7 @@ _0801C290: _0801C29C: .4byte 0xfffeffff _0801C2A0: .4byte 0xfffdffff _0801C2A4: .4byte 0xfffbffff -_0801C2A8: .4byte word_2024DB8 +_0801C2A8: .4byte gBattleWeather _0801C2AC: .4byte gBattleMoves _0801C2B0: movs r0, 0 @@ -29197,7 +28957,7 @@ _0801C430: lsls r0, 24 cmp r0, 0 bne _0801C482 - ldr r0, _0801C574 @ =word_2024DB8 + ldr r0, _0801C574 @ =gBattleWeather ldrh r1, [r0] movs r0, 0x60 ands r0, r1 @@ -29267,7 +29027,7 @@ _0801C4C0: ldrb r0, [r0] cmp r0, 0x8 bne _0801C518 - ldr r0, _0801C574 @ =word_2024DB8 + ldr r0, _0801C574 @ =gBattleWeather ldrh r1, [r0] movs r0, 0x18 ands r0, r1 @@ -29325,7 +29085,7 @@ _0801C544: .align 2, 0 _0801C56C: .4byte gUnknown_02024C07 _0801C570: .4byte gBattleMoves -_0801C574: .4byte word_2024DB8 +_0801C574: .4byte gBattleWeather _0801C578: .4byte gAccuracyStageRatios _0801C57C: .4byte gBattleMons _0801C580: .4byte gUnknown_02024C08 @@ -29373,7 +29133,7 @@ _0801C5C0: movs r1, 0x1 orrs r0, r1 strb r0, [r2] - ldr r0, _0801C614 @ =gUnknown_020239F8 + ldr r0, _0801C614 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -29397,7 +29157,7 @@ _0801C602: _0801C608: .4byte gUnknown_02024C0B _0801C60C: .4byte gUnknown_02024C08 _0801C610: .4byte gUnknown_02024C68 -_0801C614: .4byte gUnknown_020239F8 +_0801C614: .4byte gBattleTypeFlags _0801C618: .4byte gBattleMoves _0801C61C: .4byte gUnknown_02024D1E _0801C620: @@ -29841,7 +29601,7 @@ _0801C960: ands r0, r1 cmp r0, 0 bne _0801C9D0 - ldr r0, _0801C9C4 @ =gUnknown_020239F8 + ldr r0, _0801C9C4 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x84 lsls r0, 2 @@ -29865,7 +29625,7 @@ _0801C960: .align 2, 0 _0801C9BC: .4byte gUnknown_02024C08 _0801C9C0: .4byte gUnknown_02024C98 -_0801C9C4: .4byte gUnknown_020239F8 +_0801C9C4: .4byte gBattleTypeFlags _0801C9C8: .4byte gCriticalHitChance _0801C9CC: .4byte gCritMultiplier _0801C9D0: @@ -33722,7 +33482,7 @@ _0801E7EA: lsls r0, 24 cmp r0, 0 bne _0801E826 - ldr r0, _0801E87C @ =word_2024DB8 + ldr r0, _0801E87C @ =gBattleWeather ldrh r1, [r0] movs r0, 0x60 ands r0, r1 @@ -33778,7 +33538,7 @@ _0801E86E: mov r10, r3 b _0801EA14 .align 2, 0 -_0801E87C: .4byte word_2024DB8 +_0801E87C: .4byte gBattleWeather _0801E880: .4byte gBattleMons _0801E884: .4byte gUnknown_02024C0A _0801E888: @@ -34834,7 +34594,7 @@ _0801F1A4: lsrs r0, 24 cmp r0, 0x1 bne _0801F1D8 - ldr r0, _0801F258 @ =gUnknown_020239F8 + ldr r0, _0801F258 @ =gBattleTypeFlags ldrh r1, [r0] ldr r0, _0801F25C @ =0x00000902 ands r0, r1 @@ -34848,7 +34608,7 @@ _0801F1A4: beq _0801F1D8 b _0801F5DC _0801F1D8: - ldr r0, _0801F258 @ =gUnknown_020239F8 + ldr r0, _0801F258 @ =gBattleTypeFlags ldrh r1, [r0] ldr r0, _0801F25C @ =0x00000902 ands r0, r1 @@ -34911,7 +34671,7 @@ _0801F214: b _0801F5FA .align 2, 0 _0801F254: .4byte gUnknown_02024C07 -_0801F258: .4byte gUnknown_020239F8 +_0801F258: .4byte gBattleTypeFlags _0801F25C: .4byte 0x00000902 _0801F260: .4byte gTrainerBattleOpponent _0801F264: .4byte gUnknown_02024DBC @@ -36645,7 +36405,7 @@ _0802007C: lsrs r0, 24 cmp r0, 0x1 bne _08020098 - ldr r0, _080200AC @ =gUnknown_020239F8 + ldr r0, _080200AC @ =gBattleTypeFlags ldrh r1, [r0] ldr r0, _080200B0 @ =0x00000982 ands r0, r1 @@ -36660,7 +36420,7 @@ _08020098: bl _08020996 .align 2, 0 _080200A8: .4byte gUnknown_02024C09 -_080200AC: .4byte gUnknown_020239F8 +_080200AC: .4byte gBattleTypeFlags _080200B0: .4byte 0x00000982 _080200B4: .4byte 0x02000000 _080200B8: .4byte 0x0001600f @@ -36921,7 +36681,7 @@ _080202DC: .4byte 0x0001605f _080202E0: .4byte 0x0001600f _080202E4: .4byte gUnknown_02024BEC _080202E8: - ldr r0, _0802034C @ =gUnknown_020239F8 + ldr r0, _0802034C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x8 ands r0, r1 @@ -36971,7 +36731,7 @@ _08020332: mov r8, r1 b _08020376 .align 2, 0 -_0802034C: .4byte gUnknown_020239F8 +_0802034C: .4byte gBattleTypeFlags _08020350: .4byte gBattleMons _08020354: .4byte 0x0001601b _08020358: .4byte 0x00000161 @@ -37005,7 +36765,7 @@ _08020386: mov r1, r8 str r0, [r1] _0802039C: - ldr r0, _080203F4 @ =gUnknown_020239F8 + ldr r0, _080203F4 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x8 ands r0, r1 @@ -37045,7 +36805,7 @@ _080203B8: .align 2, 0 _080203EC: .4byte gUnknown_02024BEC _080203F0: .4byte gUnknown_02024DEE -_080203F4: .4byte gUnknown_020239F8 +_080203F4: .4byte gBattleTypeFlags _080203F8: .4byte 0x02000000 _080203FC: .4byte 0x00016018 _08020400: .4byte gPlayerParty @@ -37054,7 +36814,7 @@ _08020404: ldr r3, _08020440 @ =gUnknown_02024BEC mov r8, r3 _0802040A: - ldr r0, _08020444 @ =gUnknown_020239F8 + ldr r0, _08020444 @ =gBattleTypeFlags ldrh r0, [r0] movs r1, 0x1 ands r1, r0 @@ -37082,7 +36842,7 @@ _0802040A: .align 2, 0 _0802043C: .4byte 0x00000149 _08020440: .4byte gUnknown_02024BEC -_08020444: .4byte gUnknown_020239F8 +_08020444: .4byte gBattleTypeFlags _08020448: .4byte gUnknown_02024A6A _0802044C: .4byte 0x02000000 _08020450: .4byte 0x00016018 @@ -37339,7 +37099,7 @@ _0802066E: beq _0802067A b _080208F0 _0802067A: - ldr r0, _080208C0 @ =gUnknown_020239F8 + ldr r0, _080208C0 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x8 ands r0, r1 @@ -37528,7 +37288,7 @@ _080207EC: ldrh r0, [r0] cmp r0, 0 beq _080208F6 - ldr r0, _080208C0 @ =gUnknown_020239F8 + ldr r0, _080208C0 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -37606,7 +37366,7 @@ _080208B0: .4byte gUnknown_02024A60 _080208B4: .4byte 0x02000000 _080208B8: .4byte 0x000160a2 _080208BC: .4byte gUnknown_02024260 -_080208C0: .4byte gUnknown_020239F8 +_080208C0: .4byte gBattleTypeFlags _080208C4: .4byte gUnknown_02024A6A _080208C8: .4byte 0x00016018 _080208CC: .4byte gPlayerParty @@ -37799,7 +37559,7 @@ _08020A54: ldrb r0, [r2] cmp r0, 0 bne _08020B3E - ldr r2, _08020B00 @ =gUnknown_020239F8 + ldr r2, _08020B00 @ =gBattleTypeFlags ldrh r1, [r2] movs r0, 0x2 ands r0, r1 @@ -37884,7 +37644,7 @@ _08020AF0: .4byte gUnknown_02024A64 _08020AF4: .4byte gPlayerParty _08020AF8: .4byte gUnknown_02024D26 _08020AFC: .4byte gEnemyParty -_08020B00: .4byte gUnknown_020239F8 +_08020B00: .4byte gBattleTypeFlags _08020B04: .4byte gUnknown_02024A68 _08020B08: .4byte gUnknown_02024C10 _08020B0C: .4byte gUnknown_02024C6C @@ -40846,7 +40606,7 @@ _080221C0: ands r0, r2 cmp r0, 0 bne _08022244 - ldr r0, _080222B4 @ =gUnknown_020239F8 + ldr r0, _080222B4 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -40964,7 +40724,7 @@ _0802229E: bx r0 .align 2, 0 _080222B0: .4byte gUnknown_02024C6C -_080222B4: .4byte gUnknown_020239F8 +_080222B4: .4byte gBattleTypeFlags _080222B8: .4byte gUnknown_02024D28 _080222BC: .4byte gUnknown_02024C07 _080222C0: .4byte gBattleMoves @@ -41571,7 +41331,7 @@ sub_8022784: @ 8022784 lsrs r0, 24 cmp r0, 0x1 bne _080227D0 - ldr r0, _08022818 @ =gUnknown_020239F8 + ldr r0, _08022818 @ =gBattleTypeFlags ldrh r1, [r0] ldr r0, _0802281C @ =0x00000902 ands r0, r1 @@ -41622,7 +41382,7 @@ _08022806: _0802280C: .4byte gUnknown_02024A64 _08022810: .4byte gUnknown_02024C10 _08022814: .4byte gUnknown_02024A60 -_08022818: .4byte gUnknown_020239F8 +_08022818: .4byte gBattleTypeFlags _0802281C: .4byte 0x00000902 _08022820: .4byte gBattleMons _08022824: .4byte gUnknown_02024C0C @@ -41689,7 +41449,7 @@ _0802289C: .4byte gBattleMons _080228A0: .4byte 0x0400e000 _080228A4: .4byte gUnknown_02024C98 _080228A8: - ldr r5, _08022934 @ =gUnknown_020239F8 + ldr r5, _08022934 @ =gBattleTypeFlags ldrh r1, [r5] movs r0, 0x40 ands r0, r1 @@ -41759,7 +41519,7 @@ _0802292E: beq _080229FC b _08022A24 .align 2, 0 -_08022934: .4byte gUnknown_020239F8 +_08022934: .4byte gBattleTypeFlags _08022938: .4byte gUnknown_02024A60 _0802293C: .4byte gPlayerParty _08022940: .4byte gEnemyParty @@ -41963,7 +41723,7 @@ atk50_openpartyscreen: @ 8022A98 beq _08022ACE b _08022F74 _08022ACE: - ldr r0, _08022B48 @ =gUnknown_020239F8 + ldr r0, _08022B48 @ =gBattleTypeFlags ldrh r0, [r0] movs r1, 0x41 ands r1, r0 @@ -42023,7 +41783,7 @@ _08022AF2: b _08022BA2 .align 2, 0 _08022B44: .4byte gUnknown_02024C10 -_08022B48: .4byte gUnknown_020239F8 +_08022B48: .4byte gBattleTypeFlags _08022B4C: .4byte gUnknown_02024A60 _08022B50: .4byte gUnknown_02024A68 _08022B54: .4byte gUnknown_02024C6C @@ -42515,7 +42275,7 @@ _08022F74: beq _08022F7A b _08023170 _08022F7A: - ldr r0, _08022FF0 @ =gUnknown_020239F8 + ldr r0, _08022FF0 @ =gBattleTypeFlags ldrh r2, [r0] movs r0, 0x40 ands r0, r2 @@ -42574,7 +42334,7 @@ _08022F92: bl dp01_battle_side_mark_buffer_for_execution b _0802303A .align 2, 0 -_08022FF0: .4byte gUnknown_020239F8 +_08022FF0: .4byte gBattleTypeFlags _08022FF4: .4byte gUnknown_02024C6C _08022FF8: .4byte gBitTable _08022FFC: .4byte gUnknown_02024A60 @@ -42860,7 +42620,7 @@ _080231F8: adds r0, 0x1 strb r0, [r1, 0x2] _0802325A: - ldr r0, _080232BC @ =gUnknown_020239F8 + ldr r0, _080232BC @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -42902,7 +42662,7 @@ _080232AC: .4byte gUnknown_02024A6A _080232B0: .4byte 0x00016068 _080232B4: .4byte 0x0001606c _080232B8: .4byte gUnknown_030042E0 -_080232BC: .4byte gUnknown_020239F8 +_080232BC: .4byte gBattleTypeFlags _080232C0: .4byte gUnknown_02024A68 _080232C4: adds r0, r7, 0 @@ -43016,7 +42776,7 @@ _08023394: .4byte 0x02000000 _08023398: .4byte gUnknown_02024260 _0802339C: .4byte 0x00016068 _080233A0: - ldr r0, _080233B8 @ =gUnknown_020239F8 + ldr r0, _080233B8 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -43028,7 +42788,7 @@ _080233AE: bl sub_8012258 b _080234F6 .align 2, 0 -_080233B8: .4byte gUnknown_020239F8 +_080233B8: .4byte gBattleTypeFlags _080233BC: ldr r1, _08023484 @ =gUnknown_02024D1E ldr r4, _08023488 @ =gUnknown_02024260 @@ -43047,7 +42807,7 @@ _080233BC: adds r0, r2 ldrb r0, [r0] strb r0, [r1] - ldr r0, _08023494 @ =gUnknown_020239F8 + ldr r0, _08023494 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -43135,7 +42895,7 @@ _08023484: .4byte gUnknown_02024D1E _08023488: .4byte gUnknown_02024260 _0802348C: .4byte 0x02000000 _08023490: .4byte 0x00016068 -_08023494: .4byte gUnknown_020239F8 +_08023494: .4byte gBattleTypeFlags _08023498: .4byte 0x0001606c _0802349C: .4byte 0x0001606d _080234A0: .4byte 0x0001606e @@ -43804,7 +43564,7 @@ _080239C8: adds r1, r5, 0 bl GiveMoveToBattleMon _08023A08: - ldr r0, _08023A78 @ =gUnknown_020239F8 + ldr r0, _08023A78 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -43856,7 +43616,7 @@ _08023A68: .4byte gUnknown_02024A6A _08023A6C: .4byte 0x02000000 _08023A70: .4byte 0x00016018 _08023A74: .4byte gBattleMons -_08023A78: .4byte gUnknown_020239F8 +_08023A78: .4byte gBattleTypeFlags _08023A7C: .4byte gUnknown_02024C10 thumb_func_end atk59_8025230 @@ -44231,7 +43991,7 @@ _08023D20: adds r2, r5, 0 bl SetBattleMonMoveSlot _08023DB0: - ldr r0, _08023E2C @ =gUnknown_020239F8 + ldr r0, _08023E2C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -44284,7 +44044,7 @@ _08023E1C: .4byte gUnknown_02024A6A _08023E20: .4byte gBattleMons _08023E24: .4byte gUnknown_02024CA8 _08023E28: .4byte gBitTable -_08023E2C: .4byte gUnknown_020239F8 +_08023E2C: .4byte gBattleTypeFlags _08023E30: .4byte 0x02000000 _08023E34: .4byte 0x00016018 _08023E38: @@ -44620,7 +44380,7 @@ _080240C4: mov r12, r0 lsls r4, r5, 2 ldr r5, _08024124 @ =0x02000000 - ldr r7, _08024128 @ =gUnknown_020239F8 + ldr r7, _08024128 @ =gBattleTypeFlags ldr r0, _0802412C @ =gSaveBlock1 + 0x490 mov r8, r0 cmp r1, 0xFF @@ -44664,7 +44424,7 @@ _080240FE: .align 2, 0 _08024120: .4byte gTrainerMoney _08024124: .4byte 0x02000000 -_08024128: .4byte gUnknown_020239F8 +_08024128: .4byte gBattleTypeFlags _0802412C: .4byte gSaveBlock1 + 0x490 _08024130: .4byte gTrainers _08024134: .4byte gTrainerBattleOpponent @@ -44858,7 +44618,7 @@ atk60_cmd60: @ 8024298 ldr r0, _080242C4 @ =gUnknown_02024C10 ldr r0, [r0] ldrb r0, [r0, 0x1] - bl sav12_xor_increment + bl IncrementGameStat _080242B2: ldr r1, _080242C4 @ =gUnknown_02024C10 ldr r0, [r1] @@ -46205,7 +45965,7 @@ _08024D6C: .4byte gUnknown_02024C10 thumb_func_start atk73_cmd73 atk73_cmd73: @ 8024D70 push {r4,r5,lr} - ldr r0, _08024DC0 @ =gUnknown_020239F8 + ldr r0, _08024DC0 @ =gBattleTypeFlags ldrh r0, [r0] movs r5, 0x1 ands r5, r0 @@ -46245,7 +46005,7 @@ _08024DB6: strb r5, [r0] b _08024E12 .align 2, 0 -_08024DC0: .4byte gUnknown_020239F8 +_08024DC0: .4byte gBattleTypeFlags _08024DC4: .4byte gUnknown_02024C10 _08024DC8: .4byte gUnknown_02024A60 _08024DCC: .4byte gBattleMons @@ -46297,7 +46057,7 @@ _08024E28: .4byte gUnknown_02024C10 thumb_func_start atk74_hp_tresholds_2 atk74_hp_tresholds_2: @ 8024E2C push {r4-r7,lr} - ldr r0, _08024E8C @ =gUnknown_020239F8 + ldr r0, _08024E8C @ =gBattleTypeFlags ldrh r0, [r0] movs r7, 0x1 ands r7, r0 @@ -46341,7 +46101,7 @@ atk74_hp_tresholds_2: @ 8024E2C strb r7, [r0] b _08024ED0 .align 2, 0 -_08024E8C: .4byte gUnknown_020239F8 +_08024E8C: .4byte gBattleTypeFlags _08024E90: .4byte gUnknown_02024C10 _08024E94: .4byte gUnknown_02024A60 _08024E98: .4byte 0x02000000 @@ -47012,7 +46772,7 @@ sub_80253E8: @ 80253E8 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r4, r0 - ldr r0, _08025464 @ =gUnknown_020239F8 + ldr r0, _08025464 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -47063,7 +46823,7 @@ _0802543E: b _08025484 .align 2, 0 _08025460: .4byte gUnknown_02024C10 -_08025464: .4byte gUnknown_020239F8 +_08025464: .4byte gBattleTypeFlags _08025468: .4byte gUnknown_02024C08 _0802546C: .4byte gUnknown_02024C07 _08025470: .4byte gUnknown_02024C0C @@ -47354,7 +47114,7 @@ _080256CC: .4byte gUnknown_02024C10 thumb_func_start sub_80256D0 sub_80256D0: @ 80256D0 push {lr} - ldr r2, _080256F0 @ =word_2024DB8 + ldr r2, _080256F0 @ =gBattleWeather ldrh r0, [r2] movs r1, 0x7 ands r1, r0 @@ -47370,7 +47130,7 @@ sub_80256D0: @ 80256D0 strb r0, [r1, 0x5] b _0802570C .align 2, 0 -_080256F0: .4byte word_2024DB8 +_080256F0: .4byte gBattleWeather _080256F4: .4byte gUnknown_02024C68 _080256F8: .4byte gUnknown_02024D1E _080256FC: @@ -47447,7 +47207,7 @@ _08025764: adds r0, r2 movs r1, 0x5 strb r1, [r0] - ldr r0, _080257B8 @ =gUnknown_020239F8 + ldr r0, _080257B8 @ =gBattleTypeFlags ldrh r1, [r0] adds r0, r4, 0 ands r0, r1 @@ -47464,7 +47224,7 @@ _08025764: b _080257C6 .align 2, 0 _080257B4: .4byte gUnknown_02024C80 -_080257B8: .4byte gUnknown_020239F8 +_080257B8: .4byte gBattleTypeFlags _080257BC: .4byte gUnknown_02024D1E _080257C0: ldr r1, _080257D4 @ =gUnknown_02024D1E @@ -49241,7 +49001,7 @@ sub_8026590: @ 8026590 push {r4-r7,lr} mov r7, r8 push {r7} - ldr r4, _08026628 @ =gUnknown_020239F8 + ldr r4, _08026628 @ =gBattleTypeFlags ldrh r1, [r4] movs r0, 0x8 ands r0, r1 @@ -49314,7 +49074,7 @@ _0802661A: blt _080265E8 b _08026678 .align 2, 0 -_08026628: .4byte gUnknown_020239F8 +_08026628: .4byte gBattleTypeFlags _0802662C: .4byte gUnknown_02024C08 _08026630: .4byte gEnemyParty _08026634: .4byte gPlayerParty @@ -49353,7 +49113,7 @@ _0802666E: _08026678: cmp r7, 0x1 bhi _08026688 - ldr r0, _080266BC @ =gUnknown_020239F8 + ldr r0, _080266BC @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x41 ands r0, r1 @@ -49362,7 +49122,7 @@ _08026678: _08026688: cmp r7, 0x2 bhi _080266C4 - ldr r0, _080266BC @ =gUnknown_020239F8 + ldr r0, _080266BC @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -49388,7 +49148,7 @@ _080266A0: str r1, [r3] b _08026880 .align 2, 0 -_080266BC: .4byte gUnknown_020239F8 +_080266BC: .4byte gBattleTypeFlags _080266C0: .4byte gUnknown_02024C10 _080266C4: bl sub_80264C0 @@ -49397,7 +49157,7 @@ _080266C4: bne _080266D0 b _08026880 _080266D0: - ldr r0, _08026710 @ =gUnknown_020239F8 + ldr r0, _08026710 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -49426,7 +49186,7 @@ _080266DC: lsrs r5, r0, 24 b _0802671A .align 2, 0 -_08026710: .4byte gUnknown_020239F8 +_08026710: .4byte gBattleTypeFlags _08026714: .4byte gUnknown_02024C08 _08026718: adds r5, r6, 0 @@ -49567,7 +49327,7 @@ _08026832: adds r1, r2 adds r1, r0 strb r5, [r1] - bl sub_806B528 + bl IsLinkDoubleBattle lsls r0, 24 cmp r0, 0 bne _08026850 @@ -49823,7 +49583,7 @@ _08026A2C: .4byte gUnknown_02024C10 thumb_func_start atk91_givemoney atk91_givemoney: @ 8026A30 push {r4,lr} - ldr r0, _08026A8C @ =gUnknown_020239F8 + ldr r0, _08026A8C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -49867,7 +49627,7 @@ atk91_givemoney: @ 8026A30 str r0, [r4] b _08026AB4 .align 2, 0 -_08026A8C: .4byte gUnknown_020239F8 +_08026A8C: .4byte gBattleTypeFlags _08026A90: .4byte gUnknown_02024D1A _08026A94: .4byte gSaveBlock1 + 0x490 _08026A98: .4byte 0x02000000 @@ -49940,7 +49700,7 @@ _08026B00: adds r0, r2 movs r1, 0x5 strb r1, [r0, 0x1] - ldr r0, _08026B54 @ =gUnknown_020239F8 + ldr r0, _08026B54 @ =gBattleTypeFlags ldrh r1, [r0] adds r0, r5, 0 ands r0, r1 @@ -49957,7 +49717,7 @@ _08026B00: b _08026B60 .align 2, 0 _08026B50: .4byte gUnknown_02024C80 -_08026B54: .4byte gUnknown_020239F8 +_08026B54: .4byte gBattleTypeFlags _08026B58: .4byte gUnknown_02024D1E _08026B5C: ldr r1, _08026B70 @ =gUnknown_02024D1E @@ -50358,7 +50118,7 @@ _08026E90: .4byte gUnknown_02024C10 thumb_func_start sub_8026E94 sub_8026E94: @ 8026E94 push {lr} - ldr r2, _08026EB4 @ =word_2024DB8 + ldr r2, _08026EB4 @ =gBattleWeather ldrh r1, [r2] movs r0, 0x18 ands r0, r1 @@ -50374,7 +50134,7 @@ sub_8026E94: @ 8026E94 strb r0, [r1, 0x5] b _08026ED2 .align 2, 0 -_08026EB4: .4byte word_2024DB8 +_08026EB4: .4byte gBattleWeather _08026EB8: .4byte gUnknown_02024C68 _08026EBC: .4byte gUnknown_02024D1E _08026EC0: @@ -50428,7 +50188,7 @@ _08026F0A: beq _08026F20 b _0802701C _08026F20: - ldr r2, _08026F94 @ =word_2024DB8 + ldr r2, _08026F94 @ =gBattleWeather ldrh r1, [r2] movs r0, 0x18 ands r0, r1 @@ -50486,7 +50246,7 @@ _08026F20: movs r0, 0x1 b _08026FAC .align 2, 0 -_08026F94: .4byte word_2024DB8 +_08026F94: .4byte gBattleWeather _08026F98: .4byte gUnknown_02024C07 _08026F9C: .4byte gBattleMons _08026FA0: .4byte gUnknown_02024C98 @@ -50871,7 +50631,7 @@ _08027290: ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _080272CC: - ldr r0, _08027340 @ =gUnknown_020239F8 + ldr r0, _08027340 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -50922,7 +50682,7 @@ _08027330: .4byte gUnknown_02024C07 _08027334: .4byte gUnknown_02024C0C _08027338: .4byte gBitTable _0802733C: .4byte gBattleMons -_08027340: .4byte gUnknown_020239F8 +_08027340: .4byte gBattleTypeFlags _08027344: .4byte gUnknown_02024C10 thumb_func_end sub_8027238 @@ -53030,7 +52790,7 @@ move_weather_interaction: @ 80283B4 adds r3, r1, 0 cmp r0, 0x97 bne _080283D8 - ldr r0, _08028410 @ =word_2024DB8 + ldr r0, _08028410 @ =gBattleWeather ldrh r1, [r0] movs r0, 0x60 ands r0, r1 @@ -53066,7 +52826,7 @@ _080283FA: b _0802841A .align 2, 0 _0802840C: .4byte gBattleMoves -_08028410: .4byte word_2024DB8 +_08028410: .4byte gBattleWeather _08028414: .4byte gUnknown_02024C6C _08028418: movs r0, 0x2 @@ -53325,7 +53085,7 @@ atkAC_remaininghptopower: @ 8028600 movs r2, 0x2C ldrsh r1, [r1, r2] movs r2, 0x30 - bl sub_80461D4 + bl GetScaledHPFraction lsls r0, 24 lsrs r1, r0, 24 movs r3, 0 @@ -53684,7 +53444,7 @@ _080288D4: adds r1, r2 strb r0, [r1] strb r0, [r4] - ldr r0, _08028944 @ =gUnknown_020239F8 + ldr r0, _08028944 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -53720,7 +53480,7 @@ _08028934: .4byte gUnknown_02024A60 _08028938: .4byte gUnknown_02024C07 _0802893C: .4byte 0x02000000 _08028940: .4byte 0x00016003 -_08028944: .4byte gUnknown_020239F8 +_08028944: .4byte gBattleTypeFlags _08028948: .4byte gUnknown_02024C0C _0802894C: .4byte gBitTable _08028950: .4byte gBattleMons @@ -53774,7 +53534,7 @@ _080289B0: .4byte gBattleMons _080289B4: .4byte gUnknown_02024A6A _080289B8: .4byte gUnknown_02024C07 _080289BC: - ldr r0, _080289F4 @ =gUnknown_020239F8 + ldr r0, _080289F4 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -53804,7 +53564,7 @@ _080289EC: ldrb r0, [r0] b _08028A10 .align 2, 0 -_080289F4: .4byte gUnknown_020239F8 +_080289F4: .4byte gBattleTypeFlags _080289F8: .4byte gUnknown_02024A60 _080289FC: .4byte gUnknown_02024C0C _08028A00: .4byte gBitTable @@ -53850,7 +53610,7 @@ _08028A26: bl battle_get_side_with_given_state ldr r3, _08028AC0 @ =gUnknown_02024A60 strb r0, [r3] - ldr r0, _08028AC4 @ =gUnknown_020239F8 + ldr r0, _08028AC4 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -53900,7 +53660,7 @@ _08028AB4: .4byte gUnknown_02024D1E _08028AB8: .4byte gBattleMons _08028ABC: .4byte gUnknown_02024C07 _08028AC0: .4byte gUnknown_02024A60 -_08028AC4: .4byte gUnknown_020239F8 +_08028AC4: .4byte gBattleTypeFlags _08028AC8: .4byte gUnknown_02024C0C _08028ACC: .4byte gBitTable _08028AD0: .4byte gUnknown_02024C10 @@ -55063,7 +54823,7 @@ _080293E4: .4byte gUnknown_02024C10 thumb_func_start sub_80293E8 sub_80293E8: @ 80293E8 push {lr} - ldr r2, _08029408 @ =word_2024DB8 + ldr r2, _08029408 @ =gBattleWeather ldrh r1, [r2] movs r0, 0x60 ands r0, r1 @@ -55079,7 +54839,7 @@ sub_80293E8: @ 80293E8 strb r0, [r1, 0x5] b _08029426 .align 2, 0 -_08029408: .4byte word_2024DB8 +_08029408: .4byte gBattleWeather _0802940C: .4byte gUnknown_02024C68 _08029410: .4byte gUnknown_02024D1E _08029414: @@ -55398,7 +55158,7 @@ atkC0_recoverbasedonsunlight: @ 802967C ldrh r0, [r0, 0x2C] cmp r1, r0 beq _0802975C - ldr r4, _080296F4 @ =word_2024DB8 + ldr r4, _080296F4 @ =gBattleWeather ldrh r0, [r4] cmp r0, 0 beq _080296CE @@ -55439,7 +55199,7 @@ _080296CE: _080296E8: .4byte gUnknown_02024C08 _080296EC: .4byte gUnknown_02024C07 _080296F0: .4byte gBattleMons -_080296F4: .4byte word_2024DB8 +_080296F4: .4byte gBattleWeather _080296F8: .4byte gUnknown_02024BEC _080296FC: ldrh r1, [r4] @@ -56293,7 +56053,7 @@ _08029DA8: .4byte gUnknown_02024C10 thumb_func_start sub_8029DAC sub_8029DAC: @ 8029DAC push {lr} - ldr r3, _08029DD0 @ =word_2024DB8 + ldr r3, _08029DD0 @ =gBattleWeather ldrh r1, [r3] movs r2, 0x80 adds r0, r2, 0 @@ -56310,7 +56070,7 @@ sub_8029DAC: @ 8029DAC strb r0, [r1, 0x5] b _08029DEA .align 2, 0 -_08029DD0: .4byte word_2024DB8 +_08029DD0: .4byte gBattleWeather _08029DD4: .4byte gUnknown_02024C68 _08029DD8: .4byte gUnknown_02024D1E _08029DDC: @@ -56507,7 +56267,7 @@ atkCC_callterrainattack: @ 8029F50 str r0, [r2] ldr r4, _08029FA8 @ =gUnknown_02024BE6 ldr r1, _08029FAC @ =gNaturePowerMoves - ldr r0, _08029FB0 @ =gUnknown_0300428C + ldr r0, _08029FB0 @ =gBattleTerrain ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -56542,7 +56302,7 @@ _08029FA0: .4byte gUnknown_02024C6C _08029FA4: .4byte 0xfffffbff _08029FA8: .4byte gUnknown_02024BE6 _08029FAC: .4byte gNaturePowerMoves -_08029FB0: .4byte gUnknown_0300428C +_08029FB0: .4byte gBattleTerrain _08029FB4: .4byte gUnknown_02024C08 _08029FB8: .4byte gUnknown_081D6BBC _08029FBC: .4byte gBattleMoves @@ -56786,7 +56546,7 @@ sub_802A170: @ 802A170 bl battle_get_side_with_given_state ldr r3, _0802A1DC @ =gUnknown_02024C08 strb r0, [r3] - ldr r0, _0802A1E0 @ =gUnknown_020239F8 + ldr r0, _0802A1E0 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -56827,7 +56587,7 @@ sub_802A170: @ 802A170 .align 2, 0 _0802A1D8: .4byte gUnknown_02024C07 _0802A1DC: .4byte gUnknown_02024C08 -_0802A1E0: .4byte gUnknown_020239F8 +_0802A1E0: .4byte gBattleTypeFlags _0802A1E4: .4byte gUnknown_02024C0C _0802A1E8: .4byte gBitTable _0802A1EC: .4byte gUnknown_02024D28 @@ -56869,7 +56629,7 @@ sub_802A218: @ 802A218 lsrs r0, 24 cmp r0, 0x1 bne _0802A24C - ldr r0, _0802A310 @ =gUnknown_020239F8 + ldr r0, _0802A310 @ =gBattleTypeFlags ldrh r1, [r0] ldr r0, _0802A314 @ =0x00000902 ands r0, r1 @@ -56887,7 +56647,7 @@ _0802A24C: bl battle_side_get_owner lsls r0, 24 lsrs r2, r0, 24 - ldr r0, _0802A310 @ =gUnknown_020239F8 + ldr r0, _0802A310 @ =gBattleTypeFlags ldrh r1, [r0] ldr r0, _0802A314 @ =0x00000902 ands r0, r1 @@ -56981,7 +56741,7 @@ _0802A2EE: b _0802A49A .align 2, 0 _0802A30C: .4byte gUnknown_02024C07 -_0802A310: .4byte gUnknown_020239F8 +_0802A310: .4byte gBattleTypeFlags _0802A314: .4byte 0x00000902 _0802A318: .4byte gTrainerBattleOpponent _0802A31C: .4byte gUnknown_02024DBC @@ -57893,7 +57653,7 @@ _0802AA08: lsls r0, 16 lsrs r0, 16 movs r1, 0x1 - bl sub_8090D54 + bl GetPokedexHeightWeight ldrh r1, [r4] lsls r0, 16 lsrs r0, 16 @@ -58470,7 +58230,7 @@ _0802AEAA: thumb_func_start sub_802AEB0 sub_802AEB0: @ 802AEB0 push {lr} - ldr r0, _0802AEC4 @ =gUnknown_0300428C + ldr r0, _0802AEC4 @ =gBattleTerrain ldrb r0, [r0] cmp r0, 0x7 bhi _0802AF4C @@ -58480,7 +58240,7 @@ sub_802AEB0: @ 802AEB0 ldr r0, [r0] mov pc, r0 .align 2, 0 -_0802AEC4: .4byte gUnknown_0300428C +_0802AEC4: .4byte gBattleTerrain _0802AEC8: .4byte _0802AECC .align 2, 0 _0802AECC: @@ -58875,7 +58635,7 @@ sub_802B1C0: @ 802B1C0 lsls r0, 24 cmp r0, 0 bne _0802B276 - ldr r3, _0802B218 @ =word_2024DB8 + ldr r3, _0802B218 @ =gBattleWeather ldrb r0, [r3] ldr r2, _0802B21C @ =0x02000000 cmp r0, 0 @@ -58896,7 +58656,7 @@ _0802B202: strb r0, [r1] b _0802B276 .align 2, 0 -_0802B218: .4byte word_2024DB8 +_0802B218: .4byte gBattleWeather _0802B21C: .4byte 0x02000000 _0802B220: .4byte 0x0001601f _0802B224: .4byte 0x0001601c @@ -59050,7 +58810,7 @@ atkEB_settypetoterrain: @ 802B330 adds r0, r3 mov r12, r0 ldr r5, _0802B3A8 @ =gTerrainToType - ldr r4, _0802B3AC @ =gUnknown_0300428C + ldr r4, _0802B3AC @ =gBattleTerrain ldrb r0, [r4] adds r0, r5 ldrb r2, [r0] @@ -59095,7 +58855,7 @@ atkEB_settypetoterrain: @ 802B330 _0802B3A0: .4byte gBattleMons _0802B3A4: .4byte gUnknown_02024C07 _0802B3A8: .4byte gTerrainToType -_0802B3AC: .4byte gUnknown_0300428C +_0802B3AC: .4byte gBattleTerrain _0802B3B0: .4byte gUnknown_030041C0 _0802B3B4: .4byte gUnknown_02024C10 _0802B3B8: @@ -59135,7 +58895,7 @@ sub_802B3E0: @ 802B3E0 bl battle_get_side_with_given_state ldr r4, _0802B460 @ =gUnknown_02024A60 strb r0, [r4] - ldr r0, _0802B464 @ =gUnknown_020239F8 + ldr r0, _0802B464 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -59187,7 +58947,7 @@ sub_802B3E0: @ 802B3E0 .align 2, 0 _0802B45C: .4byte gUnknown_02024C07 _0802B460: .4byte gUnknown_02024A60 -_0802B464: .4byte gUnknown_020239F8 +_0802B464: .4byte gBattleTypeFlags _0802B468: .4byte gUnknown_02024C0C _0802B46C: .4byte gBitTable _0802B470: .4byte gUnknown_02024C18 @@ -59362,7 +59122,7 @@ _0802B5C6: movs r1, 0x1 eors r0, r1 strb r0, [r6] - ldr r0, _0802B608 @ =gUnknown_020239F8 + ldr r0, _0802B608 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x8 ands r0, r1 @@ -59381,7 +59141,7 @@ _0802B5F8: .4byte gUnknown_02024A64 _0802B5FC: .4byte gUnknown_02024A60 _0802B600: .4byte gUnknown_02024C07 _0802B604: .4byte gUnknown_02024C08 -_0802B608: .4byte gUnknown_020239F8 +_0802B608: .4byte gBattleTypeFlags _0802B60C: .4byte gUnknown_02024C10 _0802B610: .4byte gUnknown_081D9F35 _0802B614: @@ -60579,7 +60339,7 @@ dp01_tbl1_exec_completed: @ 802BF9C adds r0, r1 ldr r1, _0802BFE4 @ =sub_802C014 str r1, [r0] - ldr r0, _0802BFE8 @ =gUnknown_020239F8 + ldr r0, _0802BFE8 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -60603,7 +60363,7 @@ dp01_tbl1_exec_completed: @ 802BF9C _0802BFDC: .4byte gUnknown_03004330 _0802BFE0: .4byte gUnknown_02024A60 _0802BFE4: .4byte sub_802C014 -_0802BFE8: .4byte gUnknown_020239F8 +_0802BFE8: .4byte gBattleTypeFlags _0802BFEC: .4byte gUnknown_02023A60 _0802BFF0: ldr r2, _0802C00C @ =gUnknown_02024A64 @@ -60886,7 +60646,7 @@ _0802C218: ands r0, r1 cmp r0, 0 beq _0802C2A0 - ldr r6, _0802C294 @ =gUnknown_020239F8 + ldr r6, _0802C294 @ =gBattleTypeFlags ldrh r1, [r6] adds r0, r2, 0 ands r0, r1 @@ -60938,7 +60698,7 @@ _0802C278: bl sub_814A7FC b _0802C2AC .align 2, 0 -_0802C294: .4byte gUnknown_020239F8 +_0802C294: .4byte gBattleTypeFlags _0802C298: .4byte gUnknown_02024C0C _0802C29C: .4byte gBitTable _0802C2A0: @@ -61800,7 +61560,7 @@ _0802C99C: ldrb r0, [r0] cmp r0, 0x1 bls _0802CA38 - ldr r0, _0802C9DC @ =gUnknown_020239F8 + ldr r0, _0802C9DC @ =gBattleTypeFlags ldrh r1, [r0] adds r0, r6, 0 ands r0, r1 @@ -61823,7 +61583,7 @@ _0802C99C: b _0802C9F4 .align 2, 0 _0802C9D8: .4byte gUnknown_03004348 -_0802C9DC: .4byte gUnknown_020239F8 +_0802C9DC: .4byte gBattleTypeFlags _0802C9E0: .4byte gUnknown_02024E64 _0802C9E4: .4byte gUnknown_081FAE80 _0802C9E8: .4byte gUnknown_03004344 @@ -62760,7 +62520,7 @@ sub_802D18C: @ 802D18C ands r0, r1 cmp r0, 0 bne _0802D1F2 - ldr r0, _0802D1C0 @ =gUnknown_020239F8 + ldr r0, _0802D1C0 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -62777,7 +62537,7 @@ sub_802D18C: @ 802D18C b _0802D1F2 .align 2, 0 _0802D1BC: .4byte gPaletteFade -_0802D1C0: .4byte gUnknown_020239F8 +_0802D1C0: .4byte gBattleTypeFlags _0802D1C4: .4byte gUnknown_03004330 _0802D1C8: .4byte gUnknown_02024A60 _0802D1CC: .4byte sub_802D148 @@ -62952,15 +62712,15 @@ _0802D318: .4byte 0x02017810 sub_802D31C: @ 802D31C push {r4-r7,lr} movs r6, 0 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0802D340 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0802D374 - ldr r0, _0802D360 @ =gUnknown_020239F8 + ldr r0, _0802D360 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -62984,7 +62744,7 @@ _0802D340: bne _0802D3AA b _0802D3A8 .align 2, 0 -_0802D360: .4byte gUnknown_020239F8 +_0802D360: .4byte gBattleTypeFlags _0802D364: .4byte gSprites _0802D368: .4byte gUnknown_03004340 _0802D36C: .4byte gUnknown_02024A60 @@ -63097,7 +62857,7 @@ _0802D3D8: bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag - ldr r0, _0802D474 @ =gUnknown_020239F8 + ldr r0, _0802D474 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -63113,7 +62873,7 @@ _0802D464: .4byte gUnknown_02024A60 _0802D468: .4byte SpriteCallbackDummy _0802D46C: .4byte 0x02017810 _0802D470: .4byte 0x000027f9 -_0802D474: .4byte gUnknown_020239F8 +_0802D474: .4byte gBattleTypeFlags _0802D478: .4byte gMPlay_BGM _0802D47C: ldr r0, _0802D4E0 @ =gMPlay_BGM @@ -63133,7 +62893,7 @@ _0802D488: ldr r5, _0802D4F0 @ =gPlayerParty adds r0, r5 bl sub_80324F8 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0802D4BE @@ -63247,11 +63007,11 @@ _0802D55E: ands r0, r1 cmp r0, 0 bne _0802D64C - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0802D5EE - ldr r0, _0802D664 @ =gUnknown_020239F8 + ldr r0, _0802D664 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -63345,7 +63105,7 @@ _0802D654: .4byte gUnknown_02024A60 _0802D658: .4byte 0x02017810 _0802D65C: .4byte gUnknown_02024A6A _0802D660: .4byte gPlayerParty -_0802D664: .4byte gUnknown_020239F8 +_0802D664: .4byte gBattleTypeFlags _0802D668: .4byte gUnknown_0300434C _0802D66C: .4byte gSprites _0802D670: .4byte gUnknown_03004340 @@ -63699,7 +63459,7 @@ sub_802D924: @ 802D924 str r7, [sp, 0x8] ldrh r2, [r1, 0xA] str r2, [sp, 0xC] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -63776,7 +63536,7 @@ _0802D96A: movs r1, 0xB bl dp01_build_cmdbuf_x21_a_bb strb r5, [r4] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -64117,7 +63877,7 @@ sub_802DCB0: @ 802DCB0 adds r0, r1 ldrb r4, [r0, 0xC] ldrb r6, [r0, 0x8] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -64184,7 +63944,7 @@ sub_802DD10: @ 802DD10 adds r0, r7, 0 movs r1, 0x38 bl GetMonData - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -65095,7 +64855,7 @@ _0802E488: .4byte 0x02017810 b_link_standby_message: @ 802E48C push {lr} sub sp, 0x4 - ldr r0, _0802E4BC @ =gUnknown_020239F8 + ldr r0, _0802E4BC @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -65118,7 +64878,7 @@ _0802E4B6: pop {r0} bx r0 .align 2, 0 -_0802E4BC: .4byte gUnknown_020239F8 +_0802E4BC: .4byte gBattleTypeFlags _0802E4C0: .4byte gUnknown_030042A4 _0802E4C4: .4byte gUnknown_030042A0 _0802E4C8: .4byte gUnknown_03004210 @@ -67573,7 +67333,7 @@ sub_802F934: @ 802F934 lsrs r0, 16 mov r8, r0 ldr r0, _0802FA84 @ =sub_80312F0 - bl object_new_hidden_with_callback + bl CreateInvisibleSpriteWithCallback ldr r1, _0802FA88 @ =gUnknown_0300434C mov r9, r1 add r9, r6 @@ -67845,7 +67605,7 @@ sub_802FBB4: @ 802FBB4 push {r4-r7,lr} mov r7, r8 push {r7} - ldr r0, _0802FBDC @ =gUnknown_020239F8 + ldr r0, _0802FBDC @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -67862,7 +67622,7 @@ sub_802FBB4: @ 802FBB4 movs r7, 0x10 b _0802FBEA .align 2, 0 -_0802FBDC: .4byte gUnknown_020239F8 +_0802FBDC: .4byte gBattleTypeFlags _0802FBE0: .4byte gUnknown_02024A60 _0802FBE4: .4byte 0x0000fff0 _0802FBE8: @@ -70181,11 +69941,11 @@ _08030ECC: mov r9, r0 ldrh r0, [r1, 0x8] strb r0, [r7] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08030EEC - ldr r0, _08030F10 @ =gUnknown_020239F8 + ldr r0, _08030F10 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -70208,7 +69968,7 @@ _08030EEC: b _08030F70 .align 2, 0 _08030F0C: .4byte gUnknown_02024A60 -_08030F10: .4byte gUnknown_020239F8 +_08030F10: .4byte gBattleTypeFlags _08030F14: .4byte gUnknown_02023A60 _08030F18: .4byte gUnknown_02024A6A _08030F1C: @@ -71369,7 +71129,7 @@ _080317DC: str r6, [sp, 0x4] str r7, [sp, 0x8] adds r0, r5, 0 - bl sub_800D334 + bl HandleLoadSpecialPokePic mov r1, r9 lsls r2, r1, 4 movs r0, 0x80 @@ -71533,7 +71293,7 @@ _08031944: str r6, [sp, 0x4] str r7, [sp, 0x8] adds r0, r5, 0 - bl sub_800D334 + bl HandleLoadSpecialPokePic mov r1, r9 lsls r2, r1, 4 movs r0, 0x80 @@ -71804,7 +71564,7 @@ unref_sub_8031BA0: @ 8031BA0 adds r4, 0x8 adds r0, r4, 0 bl LoadSpritePalette - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _08031BD8 @@ -71883,13 +71643,13 @@ _08031C40: .align 2, 0 _08031C58: .4byte gUnknown_0820A4D4 _08031C5C: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _08031CC4 cmp r4, 0x2 bne _08031C94 - ldr r0, _08031C80 @ =gUnknown_020239F8 + ldr r0, _08031C80 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x80 ands r0, r1 @@ -71899,7 +71659,7 @@ _08031C5C: bl LoadCompressedObjectPic b _08031D52 .align 2, 0 -_08031C80: .4byte gUnknown_020239F8 +_08031C80: .4byte gBattleTypeFlags _08031C84: .4byte gUnknown_0820A4AC _08031C88: ldr r0, _08031C90 @ =gUnknown_0820A47C @@ -72066,7 +71826,7 @@ _08031DC0: strb r0, [r4] b _08031EDE _08031DC8: - ldr r0, _08031DE0 @ =gUnknown_020239F8 + ldr r0, _08031DE0 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x80 ands r0, r1 @@ -72078,7 +71838,7 @@ _08031DC8: bl battle_make_oam_safari_battle b _08031DEA .align 2, 0 -_08031DE0: .4byte gUnknown_020239F8 +_08031DE0: .4byte gBattleTypeFlags _08031DE4: ldrb r0, [r4] bl battle_make_oam_normal_battle @@ -72123,7 +71883,7 @@ _08031E34: lsls r0, 24 cmp r0, 0 bne _08031E7C - ldr r0, _08031E6C @ =gUnknown_020239F8 + ldr r0, _08031E6C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x80 ands r0, r1 @@ -72145,7 +71905,7 @@ _08031E34: bl sub_8045A5C b _08031E9A .align 2, 0 -_08031E6C: .4byte gUnknown_020239F8 +_08031E6C: .4byte gBattleTypeFlags _08031E70: .4byte gUnknown_03004340 _08031E74: .4byte gUnknown_02024A6A _08031E78: .4byte gPlayerParty @@ -72532,7 +72292,7 @@ _08032114: ldr r4, [r4] _08032184: str r4, [sp, 0x8] - bl sub_800D334 + bl HandleLoadSpecialPokePic b _08032202 .align 2, 0 _0803218C: .4byte gUnknown_02024A6A @@ -72585,7 +72345,7 @@ _080321A4: add r4, r12 ldr r4, [r4] str r4, [sp, 0x8] - bl sub_800D334 + bl HandleLoadSpecialPokePic _08032202: ldr r1, _08032318 @ =gUnknown_081FAF4C mov r2, r10 @@ -72968,7 +72728,7 @@ sub_80324F8: @ 80324F8 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 - bl sub_8046200 + bl GetHPBarLevel lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -73010,7 +72770,7 @@ _08032568: negs r0, r0 ands r0, r2 strb r0, [r1] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _08032590 @@ -73020,7 +72780,7 @@ _08032568: .align 2, 0 _0803258C: .4byte 0x02017800 _08032590: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _080325B2 @@ -73057,7 +72817,7 @@ sub_80325B8: @ 80325B8 adds r0, r5, 0 ands r0, r2 strb r0, [r1] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _080325F2 @@ -73098,7 +72858,7 @@ unref_sub_8032604: @ 8032604 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 - bl sub_8046200 + bl GetHPBarLevel lsls r0, 24 lsrs r0, 24 pop {r4,r5} @@ -73160,7 +72920,7 @@ sub_8032638: @ 8032638 mov r1, r8 bl sub_80324F8 _080326AA: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _080326CE @@ -73349,7 +73109,7 @@ sub_80327CC: @ 80327CC lsls r0, 2 adds r0, r7 strh r5, [r0, 0x2E] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0803288A @@ -73931,15 +73691,15 @@ _08032C84: .4byte 0x02017810 sub_8032C88: @ 8032C88 push {r4-r7,lr} movs r6, 0 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08032CAC - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08032CE0 - ldr r0, _08032CCC @ =gUnknown_020239F8 + ldr r0, _08032CCC @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -73963,7 +73723,7 @@ _08032CAC: bne _08032D16 b _08032D14 .align 2, 0 -_08032CCC: .4byte gUnknown_020239F8 +_08032CCC: .4byte gBattleTypeFlags _08032CD0: .4byte gSprites _08032CD4: .4byte gUnknown_03004340 _08032CD8: .4byte gUnknown_02024A60 @@ -74072,7 +73832,7 @@ _08032D22: bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag - ldr r0, _08032DDC @ =gUnknown_020239F8 + ldr r0, _08032DDC @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -74088,7 +73848,7 @@ _08032DCC: .4byte gUnknown_02024A60 _08032DD0: .4byte SpriteCallbackDummy _08032DD4: .4byte 0x02017810 _08032DD8: .4byte 0x000027f9 -_08032DDC: .4byte gUnknown_020239F8 +_08032DDC: .4byte gBattleTypeFlags _08032DE0: .4byte gMPlay_BGM _08032DE4: ldr r0, _08032E14 @ =gMPlay_BGM @@ -74206,11 +73966,11 @@ _08032EAE: beq _08032EC6 b _08032FE0 _08032EC6: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08032F58 - ldr r0, _08032FFC @ =gUnknown_020239F8 + ldr r0, _08032FFC @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -74347,7 +74107,7 @@ _08032FEC: .4byte gUnknown_02024A60 _08032FF0: .4byte 0x02017810 _08032FF4: .4byte gUnknown_02024A6A _08032FF8: .4byte gEnemyParty -_08032FFC: .4byte gUnknown_020239F8 +_08032FFC: .4byte gBattleTypeFlags _08033000: .4byte gUnknown_0300434C _08033004: .4byte gSprites _08033008: .4byte gUnknown_03004340 @@ -77414,7 +77174,7 @@ sub_803495C: @ 803495C lsrs r0, 16 mov r8, r0 ldr r0, _08034AC4 @ =sub_80312F0 - bl object_new_hidden_with_callback + bl CreateInvisibleSpriteWithCallback ldr r1, _08034AC8 @ =gUnknown_0300434C mov r10, r1 add r10, r6 @@ -77707,7 +77467,7 @@ sub_8034BFC: @ 8034BFC .align 2, 0 _08034C18: .4byte gTrainerBattleOpponent _08034C1C: - ldr r0, _08034C30 @ =gUnknown_020239F8 + ldr r0, _08034C30 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x80 lsls r0, 1 @@ -77717,7 +77477,7 @@ _08034C1C: bl get_trainer_class_pic_index b _08034C42 .align 2, 0 -_08034C30: .4byte gUnknown_020239F8 +_08034C30: .4byte gBattleTypeFlags _08034C34: movs r0, 0x80 lsls r0, 4 @@ -77918,7 +77678,7 @@ sub_8034DC0: @ 8034DC0 .align 2, 0 _08034DDC: .4byte gTrainerBattleOpponent _08034DE0: - ldr r0, _08034DF4 @ =gUnknown_020239F8 + ldr r0, _08034DF4 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x80 lsls r0, 1 @@ -77928,7 +77688,7 @@ _08034DE0: bl get_trainer_class_pic_index b _08034E06 .align 2, 0 -_08034DF4: .4byte gUnknown_020239F8 +_08034DF4: .4byte gBattleTypeFlags _08034DF8: movs r0, 0x80 lsls r0, 4 @@ -78707,15 +78467,15 @@ sub_8035428: @ 8035428 lsls r0, 9 ldr r1, _08035460 @ =gUnknown_02023A64 adds r5, r0, r1 - ldr r0, _08035464 @ =gUnknown_020239F8 + ldr r0, _08035464 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x93 lsls r0, 3 ands r0, r1 cmp r0, 0 beq _080354F8 - bl sub_810715C - bl sub_81072A8 + bl BattleAI_SetupAIData + bl BattleAI_GetAIActionToUse lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 @@ -78728,7 +78488,7 @@ sub_8035428: @ 8035428 .align 2, 0 _0803545C: .4byte gUnknown_02024A60 _08035460: .4byte gUnknown_02023A64 -_08035464: .4byte gUnknown_020239F8 +_08035464: .4byte gBattleTypeFlags _08035468: movs r0, 0x1 movs r1, 0x3 @@ -78832,7 +78592,7 @@ _080354FA: _08035534: .4byte gBattleMoves _08035538: .4byte gUnknown_02024A60 _0803553C: - ldr r0, _0803556C @ =gUnknown_020239F8 + ldr r0, _0803556C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -78854,7 +78614,7 @@ _0803553C: bl dp01_build_cmdbuf_x21_a_bb b _08035586 .align 2, 0 -_0803556C: .4byte gUnknown_020239F8 +_0803556C: .4byte gBattleTypeFlags _08035570: movs r0, 0 bl battle_get_side_with_given_state @@ -78916,7 +78676,7 @@ sub_80355C0: @ 80355C0 lsrs r4, r0, 24 cmp r4, 0x6 bne _0803568A - ldr r0, _08035610 @ =gUnknown_020239F8 + ldr r0, _08035610 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -78932,7 +78692,7 @@ sub_80355C0: @ 80355C0 _08035604: .4byte 0x02000000 _08035608: .4byte gUnknown_02024A60 _0803560C: .4byte 0x000160c8 -_08035610: .4byte gUnknown_020239F8 +_08035610: .4byte gBattleTypeFlags _08035614: movs r0, 0x1 bl battle_get_side_with_given_state @@ -79743,11 +79503,11 @@ sub_8035C44: @ 8035C44 adds r0, r1 ldrh r0, [r0, 0x8] strb r0, [r7] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08035C7E - ldr r0, _08035CA4 @ =gUnknown_020239F8 + ldr r0, _08035CA4 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -79771,7 +79531,7 @@ _08035C7E: .align 2, 0 _08035C9C: .4byte gUnknown_02024A60 _08035CA0: .4byte gTasks -_08035CA4: .4byte gUnknown_020239F8 +_08035CA4: .4byte gBattleTypeFlags _08035CA8: .4byte gUnknown_02023A60 _08035CAC: .4byte gUnknown_02024A6A _08035CB0: @@ -80156,7 +79916,7 @@ sub_8035F98: @ 8035F98 thumb_func_start sub_8035FA4 sub_8035FA4: @ 8035FA4 push {lr} - ldr r0, _08035FD8 @ =gUnknown_020239F8 + ldr r0, _08035FD8 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x6 ands r0, r1 @@ -80180,7 +79940,7 @@ _08035FCE: pop {r0} bx r0 .align 2, 0 -_08035FD8: .4byte gUnknown_020239F8 +_08035FD8: .4byte gBattleTypeFlags _08035FDC: .4byte gMain _08035FE0: .4byte 0x0000043d _08035FE4: .4byte gUnknown_030042D0 @@ -80248,7 +80008,7 @@ sub_8036054: @ 8036054 mov r7, r9 mov r6, r8 push {r6,r7} - ldr r0, _0803606C @ =gUnknown_020239F8 + ldr r0, _0803606C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -80256,7 +80016,7 @@ sub_8036054: @ 8036054 beq _080360A0 b _080361C8 .align 2, 0 -_0803606C: .4byte gUnknown_020239F8 +_0803606C: .4byte gBattleTypeFlags _08036070: ldr r0, _08036094 @ =gUnknown_02024A60 ldrb r0, [r0] @@ -80485,7 +80245,7 @@ _0803622E: bne _08036242 b _08036400 _08036242: - ldr r0, _0803628C @ =gUnknown_020239F8 + ldr r0, _0803628C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -80516,7 +80276,7 @@ _0803627C: .4byte gUnknown_02024C3C _08036280: .4byte gUnknown_02024A60 _08036284: .4byte 0x0000ffff _08036288: .4byte gBattleMoves -_0803628C: .4byte gUnknown_020239F8 +_0803628C: .4byte gBattleTypeFlags _08036290: .4byte gUnknown_02024C0C _08036294: .4byte gBitTable _08036298: @@ -80901,7 +80661,7 @@ _08036596: cmp r4, 0x3 ble _08036550 _0803659C: - ldr r0, _080365BC @ =gUnknown_020239F8 + ldr r0, _080365BC @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -80913,7 +80673,7 @@ _080365AC: .4byte gUnknown_02024C0C _080365B0: .4byte gBitTable _080365B4: .4byte gBattleMons _080365B8: .4byte gUnknown_02024A60 -_080365BC: .4byte gUnknown_020239F8 +_080365BC: .4byte gBattleTypeFlags _080365C0: movs r0, 0x1 b _08036640 @@ -81082,7 +80842,7 @@ _080366E2: bne _080366F6 b _080368D8 _080366F6: - ldr r0, _08036744 @ =gUnknown_020239F8 + ldr r0, _08036744 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -81115,7 +80875,7 @@ _08036734: .4byte gUnknown_02024A60 _08036738: .4byte 0x0000ffff _0803673C: .4byte gUnknown_02024C5C _08036740: .4byte gBattleMoves -_08036744: .4byte gUnknown_020239F8 +_08036744: .4byte gBattleTypeFlags _08036748: .4byte gUnknown_02024C0C _0803674C: .4byte gBitTable _08036750: @@ -81410,7 +81170,7 @@ _08036994: _080369A0: movs r0, 0 mov r8, r0 - ldr r0, _080369F0 @ =gUnknown_020239F8 + ldr r0, _080369F0 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -81442,7 +81202,7 @@ _080369E0: .4byte gBattleMons _080369E4: .4byte gUnknown_02024A60 _080369E8: .4byte 0x0400e000 _080369EC: .4byte gUnknown_02024C98 -_080369F0: .4byte gUnknown_020239F8 +_080369F0: .4byte gBattleTypeFlags _080369F4: .4byte gUnknown_02024C0C _080369F8: .4byte gBitTable _080369FC: @@ -81576,7 +81336,7 @@ _08036AFE: thumb_func_start sub_8036B0C sub_8036B0C: @ 8036B0C push {r4-r6,lr} - ldr r5, _08036B68 @ =gUnknown_020239F8 + ldr r5, _08036B68 @ =gBattleTypeFlags ldrh r1, [r5] movs r0, 0x8 ands r0, r1 @@ -81619,7 +81379,7 @@ _08036B28: adds r6, r5, 0 b _08036B8C .align 2, 0 -_08036B68: .4byte gUnknown_020239F8 +_08036B68: .4byte gBattleTypeFlags _08036B6C: .4byte 0x02000000 _08036B70: .4byte gUnknown_02024A60 _08036B74: .4byte 0x000160c8 @@ -81808,7 +81568,7 @@ sub_8036CD4: @ 8036CD4 mov r5, r8 push {r5-r7} sub sp, 0x1C - ldr r0, _08036D1C @ =gUnknown_020239F8 + ldr r0, _08036D1C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 @@ -81837,7 +81597,7 @@ sub_8036CD4: @ 8036CD4 str r4, [sp, 0x10] b _08036D42 .align 2, 0 -_08036D1C: .4byte gUnknown_020239F8 +_08036D1C: .4byte gBattleTypeFlags _08036D20: .4byte gUnknown_02024A60 _08036D24: .4byte gUnknown_02024C0C _08036D28: .4byte gBitTable @@ -82431,7 +82191,7 @@ _080371D0: mov r0, r10 movs r1, 0x4 movs r2, 0x4 - bl sub_803F1DC + bl GetItemEffectParamOffset lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 @@ -83046,15 +82806,15 @@ _0803767C: .4byte 0x02017810 sub_8037680: @ 8037680 push {r4-r7,lr} movs r6, 0 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _080376A4 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _080376D8 - ldr r0, _080376C4 @ =gUnknown_020239F8 + ldr r0, _080376C4 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -83078,7 +82838,7 @@ _080376A4: bne _0803770E b _0803770C .align 2, 0 -_080376C4: .4byte gUnknown_020239F8 +_080376C4: .4byte gBattleTypeFlags _080376C8: .4byte gSprites _080376CC: .4byte gUnknown_03004340 _080376D0: .4byte gUnknown_02024A60 @@ -83195,7 +82955,7 @@ _08037720: adds r0, r4, 0 bl FreeSpritePaletteByTag _080377B4: - ldr r0, _080377F0 @ =gUnknown_020239F8 + ldr r0, _080377F0 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -83217,7 +82977,7 @@ _080377E0: .4byte gUnknown_02024A60 _080377E4: .4byte SpriteCallbackDummy _080377E8: .4byte 0x02017810 _080377EC: .4byte 0x000027f9 -_080377F0: .4byte gUnknown_020239F8 +_080377F0: .4byte gBattleTypeFlags _080377F4: .4byte gMPlay_BGM _080377F8: ldr r0, _08037828 @ =gMPlay_BGM @@ -83335,7 +83095,7 @@ _080378BE: beq _080378DA b _08037A3A _080378DA: - ldr r0, _08037A58 @ =gUnknown_020239F8 + ldr r0, _08037A58 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -83368,11 +83128,11 @@ _0803790E: adds r0, r5 strb r4, [r0, 0x9] _0803791A: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _080379B2 - ldr r0, _08037A58 @ =gUnknown_020239F8 + ldr r0, _08037A58 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -83513,7 +83273,7 @@ _08037A48: .4byte gUnknown_02024A60 _08037A4C: .4byte 0x02017810 _08037A50: .4byte gUnknown_02024A6A _08037A54: .4byte gEnemyParty -_08037A58: .4byte gUnknown_020239F8 +_08037A58: .4byte gBattleTypeFlags _08037A5C: .4byte gUnknown_0300434C _08037A60: .4byte gSprites _08037A64: .4byte gUnknown_03004340 @@ -84111,7 +83871,7 @@ sub_8037F34: @ 8037F34 ands r0, r1 cmp r0, 0 bne _08037F9A - ldr r0, _08037F68 @ =gUnknown_020239F8 + ldr r0, _08037F68 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -84128,7 +83888,7 @@ sub_8037F34: @ 8037F34 b _08037F9A .align 2, 0 _08037F64: .4byte gPaletteFade -_08037F68: .4byte gUnknown_020239F8 +_08037F68: .4byte gBattleTypeFlags _08037F6C: .4byte gUnknown_03004330 _08037F70: .4byte gUnknown_02024A60 _08037F74: .4byte sub_8037EF0 @@ -84216,7 +83976,7 @@ dp01_tbl4_exec_completed: @ 8038004 adds r0, r1 ldr r1, _0803804C @ =sub_803752C str r1, [r0] - ldr r0, _08038050 @ =gUnknown_020239F8 + ldr r0, _08038050 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -84240,7 +84000,7 @@ dp01_tbl4_exec_completed: @ 8038004 _08038044: .4byte gUnknown_03004330 _08038048: .4byte gUnknown_02024A60 _0803804C: .4byte sub_803752C -_08038050: .4byte gUnknown_020239F8 +_08038050: .4byte gBattleTypeFlags _08038054: .4byte gUnknown_02023A60 _08038058: ldr r2, _08038074 @ =gUnknown_02024A64 @@ -86633,7 +86393,7 @@ sub_8039430: @ 8039430 lsrs r0, 16 mov r8, r0 ldr r0, _08039598 @ =sub_80312F0 - bl object_new_hidden_with_callback + bl CreateInvisibleSpriteWithCallback ldr r1, _0803959C @ =gUnknown_0300434C mov r10, r1 add r10, r6 @@ -86915,7 +86675,7 @@ sub_80396D0: @ 80396D0 mov r6, r9 mov r5, r8 push {r5,r6} - ldr r0, _08039704 @ =gUnknown_020239F8 + ldr r0, _08039704 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -86936,7 +86696,7 @@ _080396F8: bl sub_803FC34 b _08039724 .align 2, 0 -_08039704: .4byte gUnknown_020239F8 +_08039704: .4byte gBattleTypeFlags _08039708: .4byte gUnknown_02024A60 _0803970C: .4byte 0x0000fff0 _08039710: .4byte gLinkPlayers @@ -88441,11 +88201,11 @@ sub_803A2C4: @ 803A2C4 adds r0, r1 ldrh r0, [r0, 0x8] strb r0, [r7] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0803A2FE - ldr r0, _0803A324 @ =gUnknown_020239F8 + ldr r0, _0803A324 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -88469,7 +88229,7 @@ _0803A2FE: .align 2, 0 _0803A31C: .4byte gUnknown_02024A60 _0803A320: .4byte gTasks -_0803A324: .4byte gUnknown_020239F8 +_0803A324: .4byte gBattleTypeFlags _0803A328: .4byte gUnknown_02023A60 _0803A32C: .4byte gUnknown_02024A6A _0803A330: diff --git a/asm/rom_803D1FC.s b/asm/rom_803D1FC.s deleted file mode 100644 index e011d3c43..000000000 --- a/asm/rom_803D1FC.s +++ /dev/null @@ -1,5839 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start ExecuteTableBasedItemEffect_ -ExecuteTableBasedItemEffect_: @ 803E18C - push {r4,lr} - sub sp, 0x4 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - movs r4, 0 - str r4, [sp] - bl sub_803E1B0 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ExecuteTableBasedItemEffect_ - - thumb_func_start sub_803E1B0 -sub_803E1B0: @ 803E1B0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x3C - mov r8, r0 - ldr r0, [sp, 0x5C] - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x8] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0xC] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x10] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x14] - movs r0, 0x1 - str r0, [sp, 0x1C] - movs r1, 0x6 - str r1, [sp, 0x24] - movs r2, 0 - str r2, [sp, 0x2C] - movs r3, 0x4 - str r3, [sp, 0x34] - mov r0, r8 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAF - bne _0803E240 - ldr r0, _0803E21C @ =gMain - ldr r4, _0803E220 @ =0x0000043d - adds r0, r4 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0803E22C - ldr r2, _0803E224 @ =gEnigmaBerries - ldr r0, _0803E228 @ =gUnknown_02024E6C - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x7] - b _0803E248 - .align 2, 0 -_0803E21C: .4byte gMain -_0803E220: .4byte 0x0000043d -_0803E224: .4byte gEnigmaBerries -_0803E228: .4byte gUnknown_02024E6C -_0803E22C: - ldr r0, _0803E238 @ =gSaveBlock1 - ldr r5, _0803E23C @ =0x00003688 - adds r0, r5 - ldrb r0, [r0] - b _0803E248 - .align 2, 0 -_0803E238: .4byte gSaveBlock1 -_0803E23C: .4byte 0x00003688 -_0803E240: - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r0, 24 -_0803E248: - str r0, [sp, 0x30] - ldr r1, _0803E2A4 @ =gUnknown_02024C0B - ldr r0, _0803E2A8 @ =gUnknown_02024E6C - ldrb r2, [r0] - strb r2, [r1] - ldr r0, _0803E2AC @ =gMain - ldr r1, _0803E2B0 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _0803E2E8 - ldr r0, _0803E2B4 @ =gUnknown_02024A60 - strb r2, [r0] - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - negs r1, r0 - orrs r1, r0 - lsrs r1, 31 - str r1, [sp, 0x18] - ldr r0, _0803E2B8 @ =gUnknown_02024A68 - ldr r4, [sp, 0x8] - subs r4, 0xD - ldrb r0, [r0] - cmp r1, r0 - bge _0803E2F4 - ldr r2, _0803E2BC @ =gUnknown_02024A6A - lsls r0, r1, 1 - adds r0, r2 - ldrh r3, [r0] - ldr r5, [sp, 0xC] - lsls r0, r5, 16 - lsrs r1, r0, 16 - adds r5, r0, 0 - cmp r3, r1 - bne _0803E2C0 - ldr r0, [sp, 0x18] - str r0, [sp, 0x34] - b _0803E2F4 - .align 2, 0 -_0803E2A4: .4byte gUnknown_02024C0B -_0803E2A8: .4byte gUnknown_02024E6C -_0803E2AC: .4byte gMain -_0803E2B0: .4byte 0x0000043d -_0803E2B4: .4byte gUnknown_02024A60 -_0803E2B8: .4byte gUnknown_02024A68 -_0803E2BC: .4byte gUnknown_02024A6A -_0803E2C0: - ldr r1, [sp, 0x18] - adds r1, 0x2 - str r1, [sp, 0x18] - ldr r0, _0803E2E4 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r1, r0 - bge _0803E2F4 - lsls r0, r1, 1 - adds r0, r2 - ldrh r1, [r0] - lsrs r0, r5, 16 - cmp r1, r0 - bne _0803E2C0 - ldr r2, [sp, 0x18] - lsls r0, r2, 24 - lsrs r0, 24 - str r0, [sp, 0x34] - b _0803E2F4 - .align 2, 0 -_0803E2E4: .4byte gUnknown_02024A68 -_0803E2E8: - ldr r0, _0803E310 @ =gUnknown_02024A60 - strb r1, [r0] - movs r3, 0x4 - str r3, [sp, 0x34] - ldr r4, [sp, 0x8] - subs r4, 0xD -_0803E2F4: - lsls r0, r4, 16 - lsrs r0, 16 - cmp r0, 0xA5 - bhi _0803E36C - ldr r1, _0803E314 @ =gItemEffectTable - lsls r0, r4, 2 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - bne _0803E318 - ldr r4, [sp, 0x8] - cmp r4, 0xAF - beq _0803E31E - b _0803E36C - .align 2, 0 -_0803E310: .4byte gUnknown_02024A60 -_0803E314: .4byte gItemEffectTable -_0803E318: - ldr r5, [sp, 0x8] - cmp r5, 0xAF - bne _0803E372 -_0803E31E: - ldr r0, _0803E340 @ =gMain - ldr r1, _0803E344 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0803E350 - ldr r0, _0803E348 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r1, _0803E34C @ =gUnknown_02024DF8 - adds r0, r1 - b _0803E372 - .align 2, 0 -_0803E340: .4byte gMain -_0803E344: .4byte 0x0000043d -_0803E348: .4byte gUnknown_02024A60 -_0803E34C: .4byte gUnknown_02024DF8 -_0803E350: - ldr r2, _0803E358 @ =gSaveBlock1 + 0x3676 - str r2, [sp, 0x20] - b _0803E374 - .align 2, 0 -_0803E358: .4byte gSaveBlock1 + 0x3676 -_0803E35C: - mov r0, r8 - movs r2, 0 - ldr r3, [sp, 0xC] - bl BeginEvolutionScene - movs r0, 0 - bl _0803F15C -_0803E36C: - movs r0, 0x1 - bl _0803F15C -_0803E372: - str r0, [sp, 0x20] -_0803E374: - movs r3, 0 - str r3, [sp, 0x18] -_0803E378: - ldr r4, [sp, 0x18] - cmp r4, 0x5 - bls _0803E382 - bl _0803F14C -_0803E382: - lsls r0, r4, 2 - ldr r1, _0803E38C @ =_0803E390 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803E38C: .4byte _0803E390 - .align 2, 0 -_0803E390: - .4byte _0803E3A8 - .4byte _0803E474 - .4byte _0803E508 - .4byte _0803E59C - .4byte _0803E77C - .4byte _0803EE1E -_0803E3A8: - ldr r5, [sp, 0x20] - ldr r0, [sp, 0x18] - adds r2, r5, r0 - ldrb r1, [r2] - movs r0, 0x80 - ands r0, r1 - adds r6, r2, 0 - cmp r0, 0 - beq _0803E3F0 - ldr r0, _0803E460 @ =gMain - ldr r1, _0803E464 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0803E3F0 - ldr r2, [sp, 0x34] - cmp r2, 0x4 - beq _0803E3F0 - ldr r1, _0803E468 @ =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r2, r0, r1 - ldr r1, [r2] - movs r0, 0xF0 - lsls r0, 12 - ands r0, r1 - cmp r0, 0 - beq _0803E3F0 - ldr r0, _0803E46C @ =0xfff0ffff - ands r1, r0 - str r1, [r2] - movs r3, 0 - str r3, [sp, 0x1C] -_0803E3F0: - ldrb r1, [r6] - movs r0, 0x30 - ands r0, r1 - cmp r0, 0 - beq _0803E41E - ldr r1, _0803E468 @ =gBattleMons - ldr r0, _0803E470 @ =gUnknown_02024A60 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r2, r0, r1 - ldr r1, [r2] - movs r3, 0x80 - lsls r3, 13 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - bne _0803E41E - orrs r1, r3 - str r1, [r2] - movs r4, 0 - str r4, [sp, 0x1C] -_0803E41E: - ldrb r0, [r6] - movs r3, 0xF - ands r3, r0 - cmp r3, 0 - bne _0803E42C - bl _0803F14C -_0803E42C: - ldr r6, _0803E468 @ =gBattleMons - ldr r5, _0803E470 @ =gUnknown_02024A60 - ldrb r0, [r5] - movs r4, 0x58 - muls r0, r4 - adds r1, r0, r6 - ldrb r2, [r1, 0x19] - movs r0, 0x19 - ldrsb r0, [r1, r0] - cmp r0, 0xB - ble _0803E446 - bl _0803F14C -_0803E446: - adds r0, r2, r3 - strb r0, [r1, 0x19] - ldrb r0, [r5] - muls r0, r4 - adds r1, r0, r6 - movs r0, 0x19 - ldrsb r0, [r1, r0] - cmp r0, 0xC - bgt _0803E45A - b _0803E74E -_0803E45A: - movs r0, 0xC - strb r0, [r1, 0x19] - b _0803E74E - .align 2, 0 -_0803E460: .4byte gMain -_0803E464: .4byte 0x0000043d -_0803E468: .4byte gBattleMons -_0803E46C: .4byte 0xfff0ffff -_0803E470: .4byte gUnknown_02024A60 -_0803E474: - ldr r0, [sp, 0x20] - ldr r1, [sp, 0x18] - adds r2, r0, r1 - ldrb r1, [r2] - movs r0, 0xF0 - ands r0, r1 - lsls r3, r0, 24 - adds r6, r2, 0 - cmp r3, 0 - beq _0803E4BA - ldr r7, _0803E500 @ =gBattleMons - ldr r5, _0803E504 @ =gUnknown_02024A60 - ldrb r0, [r5] - movs r4, 0x58 - muls r0, r4 - adds r1, r0, r7 - ldrb r2, [r1, 0x1A] - movs r0, 0x1A - ldrsb r0, [r1, r0] - cmp r0, 0xB - bgt _0803E4BA - lsrs r0, r3, 28 - adds r0, r2, r0 - strb r0, [r1, 0x1A] - ldrb r0, [r5] - muls r0, r4 - adds r1, r0, r7 - movs r0, 0x1A - ldrsb r0, [r1, r0] - cmp r0, 0xC - ble _0803E4B6 - movs r0, 0xC - strb r0, [r1, 0x1A] -_0803E4B6: - movs r2, 0 - str r2, [sp, 0x1C] -_0803E4BA: - ldrb r0, [r6] - movs r3, 0xF - ands r3, r0 - cmp r3, 0 - bne _0803E4C8 - bl _0803F14C -_0803E4C8: - ldr r6, _0803E500 @ =gBattleMons - ldr r5, _0803E504 @ =gUnknown_02024A60 - ldrb r0, [r5] - movs r4, 0x58 - muls r0, r4 - adds r1, r0, r6 - ldrb r2, [r1, 0x1B] - movs r0, 0x1B - ldrsb r0, [r1, r0] - cmp r0, 0xB - ble _0803E4E2 - bl _0803F14C -_0803E4E2: - adds r0, r2, r3 - strb r0, [r1, 0x1B] - ldrb r0, [r5] - muls r0, r4 - adds r1, r0, r6 - movs r0, 0x1B - ldrsb r0, [r1, r0] - cmp r0, 0xC - ble _0803E4F8 - movs r0, 0xC - strb r0, [r1, 0x1B] -_0803E4F8: - movs r3, 0 - str r3, [sp, 0x1C] - bl _0803F14C - .align 2, 0 -_0803E500: .4byte gBattleMons -_0803E504: .4byte gUnknown_02024A60 -_0803E508: - ldr r4, [sp, 0x20] - ldr r5, [sp, 0x18] - adds r2, r4, r5 - ldrb r1, [r2] - movs r0, 0xF0 - ands r0, r1 - lsls r3, r0, 24 - adds r6, r2, 0 - cmp r3, 0 - beq _0803E54E - ldr r7, _0803E594 @ =gBattleMons - ldr r5, _0803E598 @ =gUnknown_02024A60 - ldrb r0, [r5] - movs r4, 0x58 - muls r0, r4 - adds r1, r0, r7 - ldrb r2, [r1, 0x1E] - movs r0, 0x1E - ldrsb r0, [r1, r0] - cmp r0, 0xB - bgt _0803E54E - lsrs r0, r3, 28 - adds r0, r2, r0 - strb r0, [r1, 0x1E] - ldrb r0, [r5] - muls r0, r4 - adds r1, r0, r7 - movs r0, 0x1E - ldrsb r0, [r1, r0] - cmp r0, 0xC - ble _0803E54A - movs r0, 0xC - strb r0, [r1, 0x1E] -_0803E54A: - movs r0, 0 - str r0, [sp, 0x1C] -_0803E54E: - ldrb r0, [r6] - movs r3, 0xF - ands r3, r0 - cmp r3, 0 - bne _0803E55C - bl _0803F14C -_0803E55C: - ldr r6, _0803E594 @ =gBattleMons - ldr r5, _0803E598 @ =gUnknown_02024A60 - ldrb r0, [r5] - movs r4, 0x58 - muls r0, r4 - adds r1, r0, r6 - ldrb r2, [r1, 0x1C] - movs r0, 0x1C - ldrsb r0, [r1, r0] - cmp r0, 0xB - ble _0803E576 - bl _0803F14C -_0803E576: - adds r0, r2, r3 - strb r0, [r1, 0x1C] - ldrb r0, [r5] - muls r0, r4 - adds r1, r0, r6 - movs r0, 0x1C - ldrsb r0, [r1, r0] - cmp r0, 0xC - ble _0803E58C - movs r0, 0xC - strb r0, [r1, 0x1C] -_0803E58C: - movs r1, 0 - str r1, [sp, 0x1C] - bl _0803F14C - .align 2, 0 -_0803E594: .4byte gBattleMons -_0803E598: .4byte gUnknown_02024A60 -_0803E59C: - ldr r3, [sp, 0x20] - ldr r4, [sp, 0x18] - adds r2, r3, r4 - ldrb r1, [r2] - movs r0, 0x80 - ands r0, r1 - adds r6, r2, 0 - cmp r0, 0 - beq _0803E5E4 - ldr r5, _0803E758 @ =gUnknown_02024C80 - ldr r4, _0803E75C @ =gUnknown_02024A60 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r0, [r1, 0x2] - cmp r0, 0 - bne _0803E5E4 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - movs r0, 0x5 - strb r0, [r1, 0x2] - movs r5, 0 - str r5, [sp, 0x1C] -_0803E5E4: - ldrb r1, [r6] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0803E646 - mov r0, r8 - movs r1, 0x38 - movs r2, 0 - bl GetMonData - cmp r0, 0x64 - beq _0803E646 - ldr r5, _0803E760 @ =gExperienceTables - mov r0, r8 - movs r1, 0x38 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - mov r0, r8 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r4, 0x1 - lsls r4, 2 - ldr r2, _0803E764 @ =gBaseStats - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r1, [r1, 0x13] - movs r0, 0xCA - lsls r0, 1 - muls r0, r1 - adds r4, r0 - adds r4, r5 - ldr r0, [r4] - str r0, [sp] - mov r0, r8 - movs r1, 0x19 - mov r2, sp - bl SetMonData - mov r0, r8 - bl CalculateMonStats - movs r0, 0 - str r0, [sp, 0x1C] -_0803E646: - ldrb r1, [r6] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0803E682 - mov r0, r8 - ldr r1, [sp, 0xC] - movs r2, 0x7 - ldr r3, [sp, 0x34] - bl HealStatusConditions - lsls r0, 24 - cmp r0, 0 - bne _0803E682 - ldr r1, [sp, 0x34] - cmp r1, 0x4 - beq _0803E67E - ldr r1, _0803E768 @ =gBattleMons - movs r0, 0x58 - ldr r3, [sp, 0x34] - adds r2, r3, 0 - muls r2, r0 - adds r1, 0x50 - adds r2, r1 - ldr r0, [r2] - ldr r1, _0803E76C @ =0xf7ffffff - ands r0, r1 - str r0, [r2] -_0803E67E: - movs r4, 0 - str r4, [sp, 0x1C] -_0803E682: - ldrb r1, [r6] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0803E6A2 - ldr r2, _0803E770 @ =0x00000f88 - mov r0, r8 - ldr r1, [sp, 0xC] - ldr r3, [sp, 0x34] - bl HealStatusConditions - lsls r0, 24 - cmp r0, 0 - bne _0803E6A2 - movs r5, 0 - str r5, [sp, 0x1C] -_0803E6A2: - ldrb r1, [r6] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0803E6C2 - mov r0, r8 - ldr r1, [sp, 0xC] - movs r2, 0x10 - ldr r3, [sp, 0x34] - bl HealStatusConditions - lsls r0, 24 - cmp r0, 0 - bne _0803E6C2 - movs r0, 0 - str r0, [sp, 0x1C] -_0803E6C2: - ldrb r1, [r6] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0803E6E2 - mov r0, r8 - ldr r1, [sp, 0xC] - movs r2, 0x20 - ldr r3, [sp, 0x34] - bl HealStatusConditions - lsls r0, 24 - cmp r0, 0 - bne _0803E6E2 - movs r1, 0 - str r1, [sp, 0x1C] -_0803E6E2: - ldrb r1, [r6] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0803E702 - mov r0, r8 - ldr r1, [sp, 0xC] - movs r2, 0x40 - ldr r3, [sp, 0x34] - bl HealStatusConditions - lsls r0, 24 - cmp r0, 0 - bne _0803E702 - movs r2, 0 - str r2, [sp, 0x1C] -_0803E702: - ldrb r1, [r6] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0803E710 - bl _0803F14C -_0803E710: - ldr r0, _0803E774 @ =gMain - ldr r3, _0803E778 @ =0x0000043d - adds r0, r3 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0803E724 - bl _0803F14C -_0803E724: - ldr r4, [sp, 0x34] - cmp r4, 0x4 - bne _0803E72E - bl _0803F14C -_0803E72E: - ldr r1, _0803E768 @ =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r1, 0x50 - adds r2, r0, r1 - ldr r1, [r2] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0803E746 - bl _0803F14C -_0803E746: - movs r0, 0x8 - negs r0, r0 - ands r1, r0 - str r1, [r2] -_0803E74E: - movs r5, 0 - str r5, [sp, 0x1C] - bl _0803F14C - .align 2, 0 -_0803E758: .4byte gUnknown_02024C80 -_0803E75C: .4byte gUnknown_02024A60 -_0803E760: .4byte gExperienceTables -_0803E764: .4byte gBaseStats -_0803E768: .4byte gBattleMons -_0803E76C: .4byte 0xf7ffffff -_0803E770: .4byte 0x00000f88 -_0803E774: .4byte gMain -_0803E778: .4byte 0x0000043d -_0803E77C: - ldr r1, [sp, 0x20] - ldr r2, [sp, 0x18] - adds r0, r1, r2 - ldrb r0, [r0] - mov r10, r0 - movs r0, 0x20 - mov r3, r10 - ands r0, r3 - cmp r0, 0 - beq _0803E854 - movs r0, 0xDF - ands r3, r0 - mov r10, r3 - mov r0, r8 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - ldr r1, _0803E880 @ =gUnknown_08208238 - ldr r4, [sp, 0x10] - adds r1, r4, r1 - ldrb r1, [r1] - ands r0, r1 - lsls r1, r4, 1 - lsrs r0, r1 - str r0, [sp] - adds r5, r4, 0 - adds r5, 0xD - mov r0, r8 - adds r1, r5, 0 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r8 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - ldr r2, [sp, 0x10] - bl CalculatePPWithBonus - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x28] - ldr r0, [sp] - cmp r0, 0x2 - bhi _0803E854 - ldr r0, [sp, 0x28] - cmp r0, 0x4 - bls _0803E854 - mov r0, r8 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - ldr r1, _0803E884 @ =gUnknown_08208240 - ldr r2, [sp, 0x10] - adds r1, r2, r1 - ldrb r1, [r1] - adds r0, r1 - str r0, [sp] - mov r0, r8 - movs r1, 0x15 - mov r2, sp - bl SetMonData - mov r0, r8 - adds r1, r5, 0 - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - ldr r1, [sp] - lsls r1, 24 - lsrs r1, 24 - ldr r2, [sp, 0x10] - bl CalculatePPWithBonus - lsls r0, 24 - lsrs r0, 24 - ldr r3, [sp, 0x28] - subs r0, r3 - str r0, [sp] - ldr r4, [sp, 0x10] - adds r4, 0x11 - mov r0, r8 - adds r1, r4, 0 - movs r2, 0 - bl GetMonData - ldr r1, [sp] - adds r0, r1 - str r0, [sp] - mov r0, r8 - adds r1, r4, 0 - mov r2, sp - bl SetMonData - movs r4, 0 - str r4, [sp, 0x1C] -_0803E854: - movs r5, 0 - str r5, [sp, 0x28] - mov r0, r10 - cmp r0, 0 - bne _0803E862 - bl _0803F14C -_0803E862: - movs r0, 0x1 - mov r1, r10 - ands r0, r1 - cmp r0, 0 - bne _0803E86E - b _0803EE0A -_0803E86E: - ldr r2, [sp, 0x28] - cmp r2, 0x7 - bls _0803E876 - b _0803EE0A -_0803E876: - lsls r0, r2, 2 - ldr r1, _0803E888 @ =_0803E88C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803E880: .4byte gUnknown_08208238 -_0803E884: .4byte gUnknown_08208240 -_0803E888: .4byte _0803E88C - .align 2, 0 -_0803E88C: - .4byte _0803E8AC - .4byte _0803E8AC - .4byte _0803E934 - .4byte _0803EB5C - .4byte _0803EE0A - .4byte _0803EE0A - .4byte _0803EE0A - .4byte _0803EDF4 -_0803E8AC: - mov r0, r8 - bl GetMonEVCount - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _0803E8EC @ =0x000001fd - cmp r5, r0 - bls _0803E8BE - b _0803E36C -_0803E8BE: - ldr r0, _0803E8F0 @ =gUnknown_082082F2 - ldr r3, [sp, 0x28] - adds r0, r3, r0 - ldrb r1, [r0] - mov r0, r8 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - str r1, [sp] - cmp r1, 0x63 - bls _0803E8D8 - b _0803EE0A -_0803E8D8: - ldr r4, [sp, 0x20] - ldr r2, [sp, 0x24] - adds r0, r4, r2 - ldrb r0, [r0] - adds r1, r0 - cmp r1, 0x64 - bls _0803E8F4 - adds r0, 0x64 - subs r4, r0, r1 - b _0803E8F6 - .align 2, 0 -_0803E8EC: .4byte 0x000001fd -_0803E8F0: .4byte gUnknown_082082F2 -_0803E8F4: - adds r4, r0, 0 -_0803E8F6: - adds r1, r5, r4 - movs r0, 0xFF - lsls r0, 1 - cmp r1, r0 - bls _0803E904 - adds r0, r4, r0 - subs r4, r0, r1 -_0803E904: - ldr r0, [sp] - adds r0, r4 - str r0, [sp] - ldr r0, _0803E930 @ =gUnknown_082082F2 - ldr r3, [sp, 0x28] - adds r0, r3, r0 - ldrb r1, [r0] - mov r0, r8 - mov r2, sp - bl SetMonData - mov r0, r8 - bl CalculateMonStats - ldr r0, [sp, 0x24] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x24] - movs r4, 0 - str r4, [sp, 0x1C] - b _0803EE0A - .align 2, 0 -_0803E930: .4byte gUnknown_082082F2 -_0803E934: - movs r0, 0x10 - mov r5, r10 - ands r0, r5 - cmp r0, 0 - beq _0803E9F4 - mov r0, r8 - movs r1, 0x39 - movs r2, 0 - bl GetMonData - cmp r0, 0 - beq _0803E954 - ldr r0, [sp, 0x24] - adds r0, 0x1 - lsls r0, 24 - b _0803EC9E -_0803E954: - ldr r0, _0803E99C @ =gMain - ldr r1, _0803E9A0 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r4, 0x2 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0803EA0A - ldr r2, [sp, 0x34] - cmp r2, 0x4 - beq _0803E9B4 - ldr r2, _0803E9A4 @ =gUnknown_02024C0C - ldr r1, _0803E9A8 @ =gBitTable - ldr r3, [sp, 0x34] - lsls r0, r3, 2 - adds r0, r1 - ldr r1, [r0] - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - ldr r1, _0803E9AC @ =gUnknown_02024A6A - lsls r0, r3, 1 - adds r0, r1 - ldrb r0, [r0] - bl pokemon_order_func - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, [sp, 0x34] - bl CopyPlayerPartyMonToBattleData - ldr r0, _0803E9B0 @ =gUnknown_02024A60 - ldrb r0, [r0] - b _0803E9CC - .align 2, 0 -_0803E99C: .4byte gMain -_0803E9A0: .4byte 0x0000043d -_0803E9A4: .4byte gUnknown_02024C0C -_0803E9A8: .4byte gBitTable -_0803E9AC: .4byte gUnknown_02024A6A -_0803E9B0: .4byte gUnknown_02024A60 -_0803E9B4: - ldr r3, _0803E9E4 @ =gUnknown_02024C0C - ldr r1, _0803E9E8 @ =gBitTable - ldr r2, _0803E9EC @ =gUnknown_02024A60 - ldrb r0, [r2] - eors r0, r4 - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldrb r0, [r3] - bics r0, r1 - strb r0, [r3] - ldrb r0, [r2] -_0803E9CC: - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0803EA0A - ldr r1, _0803E9F0 @ =gUnknown_030042E0 - ldrb r0, [r1, 0x4] - cmp r0, 0xFE - bhi _0803EA0A - adds r0, 0x1 - strb r0, [r1, 0x4] - b _0803EA0A - .align 2, 0 -_0803E9E4: .4byte gUnknown_02024C0C -_0803E9E8: .4byte gBitTable -_0803E9EC: .4byte gUnknown_02024A60 -_0803E9F0: .4byte gUnknown_030042E0 -_0803E9F4: - mov r0, r8 - movs r1, 0x39 - movs r2, 0 - bl GetMonData - cmp r0, 0 - bne _0803EA0A - ldr r0, [sp, 0x24] - adds r0, 0x1 - lsls r0, 24 - b _0803EC9E -_0803EA0A: - ldr r1, [sp, 0x24] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x24] - ldr r4, [sp, 0x20] - adds r1, r4, r1 - ldrb r1, [r1] - str r1, [sp] - adds r0, r1, 0 - cmp r0, 0xFE - beq _0803EA4C - cmp r0, 0xFE - bhi _0803EA2C - cmp r0, 0xFD - beq _0803EA62 - b _0803EA6C -_0803EA2C: - cmp r1, 0xFF - bne _0803EA6C - mov r0, r8 - movs r1, 0x3A - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - mov r0, r8 - movs r1, 0x39 - movs r2, 0 - bl GetMonData - subs r4, r0 - str r4, [sp] - b _0803EA6C -_0803EA4C: - mov r0, r8 - movs r1, 0x3A - movs r2, 0 - bl GetMonData - lsrs r0, 1 - str r0, [sp] - cmp r0, 0 - bne _0803EA6C - movs r0, 0x1 - b _0803EA6A -_0803EA62: - ldr r0, _0803EB24 @ =0x02000000 - ldr r5, _0803EB28 @ =0x000160fa - adds r0, r5 - ldrb r0, [r0] -_0803EA6A: - str r0, [sp] -_0803EA6C: - mov r0, r8 - movs r1, 0x3A - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - mov r0, r8 - movs r1, 0x39 - movs r2, 0 - bl GetMonData - cmp r4, r0 - beq _0803EB4C - ldr r0, [sp, 0x14] - cmp r0, 0 - bne _0803EB40 - mov r0, r8 - movs r1, 0x39 - movs r2, 0 - bl GetMonData - ldr r1, [sp] - adds r0, r1 - str r0, [sp] - mov r0, r8 - movs r1, 0x3A - movs r2, 0 - bl GetMonData - ldr r1, [sp] - cmp r1, r0 - bls _0803EAB8 - mov r0, r8 - movs r1, 0x3A - movs r2, 0 - bl GetMonData - str r0, [sp] -_0803EAB8: - mov r0, r8 - movs r1, 0x39 - mov r2, sp - bl SetMonData - ldr r0, _0803EB2C @ =gMain - ldr r1, _0803EB30 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0803EB48 - ldr r2, [sp, 0x34] - cmp r2, 0x4 - beq _0803EB48 - ldr r1, _0803EB34 @ =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldr r1, [sp] - strh r1, [r0, 0x28] - movs r0, 0x10 - mov r3, r10 - ands r0, r3 - cmp r0, 0 - bne _0803EB48 - ldr r4, _0803EB38 @ =gUnknown_02024A60 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0803EB48 - ldr r1, _0803EB3C @ =gUnknown_030042E0 - ldrb r0, [r1, 0x3] - cmp r0, 0xFE - bhi _0803EB08 - adds r0, 0x1 - strb r0, [r1, 0x3] -_0803EB08: - ldrb r5, [r4] - add r0, sp, 0x34 - ldrb r0, [r0] - strb r0, [r4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl dp01_build_cmdbuf_x00_a_b_0 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - strb r5, [r4] - b _0803EB48 - .align 2, 0 -_0803EB24: .4byte 0x02000000 -_0803EB28: .4byte 0x000160fa -_0803EB2C: .4byte gMain -_0803EB30: .4byte 0x0000043d -_0803EB34: .4byte gBattleMons -_0803EB38: .4byte gUnknown_02024A60 -_0803EB3C: .4byte gUnknown_030042E0 -_0803EB40: - ldr r1, _0803EB58 @ =gUnknown_02024BEC - ldr r0, [sp] - negs r0, r0 - str r0, [r1] -_0803EB48: - movs r1, 0 - str r1, [sp, 0x1C] -_0803EB4C: - movs r0, 0xEF - mov r2, r10 - ands r2, r0 - mov r10, r2 - b _0803EE0A - .align 2, 0 -_0803EB58: .4byte gUnknown_02024BEC -_0803EB5C: - movs r7, 0x2 - mov r0, r10 - ands r0, r7 - cmp r0, 0 - beq _0803EB68 - b _0803ECB8 -_0803EB68: - movs r5, 0 - ldr r3, [sp, 0x24] - adds r3, 0x1 - str r3, [sp, 0x38] -_0803EB70: - movs r4, 0x11 - adds r4, r5 - mov r9, r4 - mov r0, r8 - mov r1, r9 - movs r2, 0 - bl GetMonData - str r0, [sp] - adds r7, r5, 0 - adds r7, 0xD - mov r0, r8 - adds r1, r7, 0 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r8 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r5, 24 - lsrs r6, r0, 24 - adds r0, r4, 0 - adds r2, r6, 0 - bl CalculatePPWithBonus - lsls r0, 24 - lsrs r0, 24 - ldr r1, [sp] - cmp r1, r0 - beq _0803EC92 - ldr r2, [sp, 0x20] - ldr r3, [sp, 0x24] - adds r0, r2, r3 - ldrb r0, [r0] - adds r0, r1, r0 - str r0, [sp] - mov r0, r8 - adds r1, r7, 0 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r8 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - adds r2, r6, 0 - bl CalculatePPWithBonus - lsls r0, 24 - lsrs r0, 24 - ldr r1, [sp] - cmp r1, r0 - bls _0803EC28 - mov r0, r8 - adds r1, r7, 0 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r8 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - adds r2, r6, 0 - bl CalculatePPWithBonus - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] -_0803EC28: - mov r0, r8 - mov r1, r9 - mov r2, sp - bl SetMonData - ldr r0, _0803ECA4 @ =gMain - ldr r4, _0803ECA8 @ =0x0000043d - adds r0, r4 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0803EC8E - ldr r0, [sp, 0x34] - cmp r0, 0x4 - beq _0803EC8E - ldr r4, _0803ECAC @ =gBattleMons - movs r0, 0x58 - ldr r1, [sp, 0x34] - adds r3, r1, 0 - muls r3, r0 - adds r0, r4, 0 - adds r0, 0x50 - adds r0, r3, r0 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 14 - ands r1, r0 - cmp r1, 0 - bne _0803EC8E - ldr r1, _0803ECB0 @ =gUnknown_02024CA8 - ldr r2, [sp, 0x34] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x18] - lsrs r1, 4 - ldr r2, _0803ECB4 @ =gBitTable - lsls r0, r5, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0803EC8E - adds r0, r5, r3 - adds r1, r4, 0 - adds r1, 0x24 - adds r0, r1 - ldr r1, [sp] - strb r1, [r0] -_0803EC8E: - movs r3, 0 - str r3, [sp, 0x1C] -_0803EC92: - adds r5, 0x1 - cmp r5, 0x3 - bgt _0803EC9A - b _0803EB70 -_0803EC9A: - ldr r4, [sp, 0x38] - lsls r0, r4, 24 -_0803EC9E: - lsrs r0, 24 - str r0, [sp, 0x24] - b _0803EE0A - .align 2, 0 -_0803ECA4: .4byte gMain -_0803ECA8: .4byte 0x0000043d -_0803ECAC: .4byte gBattleMons -_0803ECB0: .4byte gUnknown_02024CA8 -_0803ECB4: .4byte gBitTable -_0803ECB8: - ldr r6, [sp, 0x10] - adds r6, 0x11 - mov r0, r8 - adds r1, r6, 0 - movs r2, 0 - bl GetMonData - str r0, [sp] - ldr r5, [sp, 0x10] - adds r5, 0xD - mov r0, r8 - adds r1, r5, 0 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r8 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - ldr r2, [sp, 0x10] - bl CalculatePPWithBonus - lsls r0, 24 - lsrs r0, 24 - ldr r2, [sp] - cmp r2, r0 - bne _0803ED00 - b _0803EE0A -_0803ED00: - ldr r1, [sp, 0x24] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x24] - ldr r0, [sp, 0x20] - adds r1, r0, r1 - ldrb r0, [r1] - adds r0, r2, r0 - str r0, [sp] - mov r0, r8 - adds r1, r5, 0 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r8 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - ldr r2, [sp, 0x10] - bl CalculatePPWithBonus - lsls r0, 24 - lsrs r0, 24 - ldr r1, [sp] - cmp r1, r0 - bls _0803ED74 - mov r0, r8 - adds r1, r5, 0 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r8 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - ldr r2, [sp, 0x10] - bl CalculatePPWithBonus - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] -_0803ED74: - mov r0, r8 - adds r1, r6, 0 - mov r2, sp - bl SetMonData - ldr r0, _0803EDE0 @ =gMain - ldr r1, _0803EDE4 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _0803EDD8 - ldr r2, [sp, 0x34] - cmp r2, 0x4 - beq _0803EDD8 - ldr r4, _0803EDE8 @ =gBattleMons - movs r0, 0x58 - adds r3, r2, 0 - muls r3, r0 - adds r0, r4, 0 - adds r0, 0x50 - adds r0, r3, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _0803EDD8 - ldr r1, _0803EDEC @ =gUnknown_02024CA8 - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x18] - lsrs r1, 4 - ldr r2, _0803EDF0 @ =gBitTable - ldr r5, [sp, 0x10] - lsls r0, r5, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0803EDD8 - adds r0, r5, r3 - adds r1, r4, 0 - adds r1, 0x24 - adds r0, r1 - ldr r1, [sp] - strb r1, [r0] -_0803EDD8: - movs r0, 0 - str r0, [sp, 0x1C] - b _0803EE0A - .align 2, 0 -_0803EDE0: .4byte gMain -_0803EDE4: .4byte 0x0000043d -_0803EDE8: .4byte gBattleMons -_0803EDEC: .4byte gUnknown_02024CA8 -_0803EDF0: .4byte gBitTable -_0803EDF4: - mov r0, r8 - movs r1, 0x2 - ldr r2, [sp, 0x8] - bl GetEvolutionTargetSpecies - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _0803EE0A - bl _0803E35C -_0803EE0A: - ldr r1, [sp, 0x28] - adds r1, 0x1 - str r1, [sp, 0x28] - mov r2, r10 - lsrs r2, 1 - mov r10, r2 - cmp r2, 0 - beq _0803EE1C - b _0803E862 -_0803EE1C: - b _0803F14C -_0803EE1E: - ldr r3, [sp, 0x20] - ldr r4, [sp, 0x18] - adds r0, r3, r4 - ldrb r0, [r0] - mov r10, r0 - movs r5, 0 - str r5, [sp, 0x28] - cmp r0, 0 - bne _0803EE32 - b _0803F14C -_0803EE32: - movs r0, 0x1 - mov r1, r10 - ands r0, r1 - cmp r0, 0 - bne _0803EE3E - b _0803F13A -_0803EE3E: - ldr r2, [sp, 0x28] - cmp r2, 0x7 - bls _0803EE46 - b _0803F13A -_0803EE46: - lsls r0, r2, 2 - ldr r1, _0803EE50 @ =_0803EE54 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803EE50: .4byte _0803EE54 - .align 2, 0 -_0803EE54: - .4byte _0803EE74 - .4byte _0803EE74 - .4byte _0803EE74 - .4byte _0803EE74 - .4byte _0803EEF8 - .4byte _0803EFCC - .4byte _0803F026 - .4byte _0803F07C -_0803EE74: - mov r0, r8 - bl GetMonEVCount - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _0803EEBC @ =0x000001fd - cmp r5, r0 - bls _0803EE88 - bl _0803E36C -_0803EE88: - ldr r0, _0803EEC0 @ =gUnknown_082082F2 - ldr r4, [sp, 0x28] - adds r4, 0x2 - adds r0, r4, r0 - ldrb r1, [r0] - mov r0, r8 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - str r1, [sp] - adds r2, r4, 0 - cmp r1, 0x63 - bls _0803EEA6 - b _0803F13A -_0803EEA6: - ldr r3, [sp, 0x20] - ldr r4, [sp, 0x24] - adds r0, r3, r4 - ldrb r0, [r0] - adds r1, r0 - cmp r1, 0x64 - bls _0803EEC4 - adds r0, 0x64 - subs r4, r0, r1 - b _0803EEC6 - .align 2, 0 -_0803EEBC: .4byte 0x000001fd -_0803EEC0: .4byte gUnknown_082082F2 -_0803EEC4: - adds r4, r0, 0 -_0803EEC6: - adds r1, r5, r4 - movs r0, 0xFF - lsls r0, 1 - cmp r1, r0 - bls _0803EED4 - adds r0, r4, r0 - subs r4, r0, r1 -_0803EED4: - ldr r0, [sp] - adds r0, r4 - str r0, [sp] - ldr r0, _0803EEF4 @ =gUnknown_082082F2 - adds r0, r2, r0 - ldrb r1, [r0] - mov r0, r8 - mov r2, sp - bl SetMonData - mov r0, r8 - bl CalculateMonStats - movs r5, 0 - str r5, [sp, 0x1C] - b _0803F130 - .align 2, 0 -_0803EEF4: .4byte gUnknown_082082F2 -_0803EEF8: - mov r0, r8 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - ldr r1, _0803EFC0 @ =gUnknown_08208238 - ldr r2, [sp, 0x10] - adds r1, r2, r1 - ldrb r1, [r1] - ands r0, r1 - lsls r1, r2, 1 - lsrs r0, r1 - str r0, [sp] - cmp r0, 0x2 - bls _0803EF18 - b _0803F13A -_0803EF18: - adds r5, r2, 0 - adds r5, 0xD - mov r0, r8 - adds r1, r5, 0 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r8 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - ldr r2, [sp, 0x10] - bl CalculatePPWithBonus - lsls r0, 24 - lsrs r4, r0, 24 - mov r0, r8 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - str r0, [sp] - ldr r1, _0803EFC4 @ =gUnknown_0820823C - ldr r3, [sp, 0x10] - adds r1, r3, r1 - ldrb r2, [r1] - ands r2, r0 - str r2, [sp] - ldr r0, _0803EFC8 @ =gUnknown_08208240 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - adds r2, r0 - str r2, [sp] - mov r0, r8 - movs r1, 0x15 - mov r2, sp - bl SetMonData - mov r0, r8 - adds r1, r5, 0 - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - ldr r1, [sp] - lsls r1, 24 - lsrs r1, 24 - ldr r2, [sp, 0x10] - bl CalculatePPWithBonus - lsls r0, 24 - lsrs r0, 24 - subs r0, r4 - str r0, [sp] - ldr r4, [sp, 0x10] - adds r4, 0x11 - mov r0, r8 - adds r1, r4, 0 - movs r2, 0 - bl GetMonData - ldr r1, [sp] - adds r0, r1 - str r0, [sp] - mov r0, r8 - adds r1, r4, 0 - mov r2, sp - bl SetMonData - movs r4, 0 - str r4, [sp, 0x1C] - b _0803F13A - .align 2, 0 -_0803EFC0: .4byte gUnknown_08208238 -_0803EFC4: .4byte gUnknown_0820823C -_0803EFC8: .4byte gUnknown_08208240 -_0803EFCC: - mov r0, r8 - movs r1, 0x20 - movs r2, 0 - bl GetMonData - cmp r0, 0x63 - bls _0803EFDC - b _0803F130 -_0803EFDC: - ldr r5, [sp, 0x1C] - cmp r5, 0 - beq _0803EFE4 - b _0803F130 -_0803EFE4: - ldr r0, [sp, 0x2C] - cmp r0, 0 - beq _0803EFEC - b _0803F130 -_0803EFEC: - ldr r1, [sp, 0x20] - ldr r2, [sp, 0x24] - adds r0, r1, r2 - ldrb r0, [r0] - str r0, [sp, 0x2C] - mov r0, r8 - movs r1, 0x20 - movs r2, 0 - bl GetMonData - adds r5, r0, 0 - str r5, [sp, 0x4] - ldr r3, [sp, 0x2C] - lsls r4, r3, 24 - asrs r1, r4, 24 - cmp r1, 0 - ble _0803F0D0 - ldr r0, [sp, 0x30] - cmp r0, 0x1B - bne _0803F0D0 - movs r0, 0x96 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - adds r0, r5, r0 - str r0, [sp, 0x4] - adds r2, r4, 0 - b _0803F0DC -_0803F026: - mov r0, r8 - movs r1, 0x20 - movs r2, 0 - bl GetMonData - cmp r0, 0x63 - bls _0803F130 - mov r0, r8 - movs r1, 0x20 - movs r2, 0 - bl GetMonData - cmp r0, 0xC7 - bhi _0803F130 - ldr r2, [sp, 0x1C] - cmp r2, 0 - bne _0803F130 - ldr r3, [sp, 0x2C] - cmp r3, 0 - bne _0803F130 - ldr r4, [sp, 0x20] - ldr r5, [sp, 0x24] - adds r0, r4, r5 - ldrb r0, [r0] - str r0, [sp, 0x2C] - mov r0, r8 - movs r1, 0x20 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - str r4, [sp, 0x4] - ldr r0, [sp, 0x2C] - lsls r5, r0, 24 - asrs r1, r5, 24 - cmp r1, 0 - ble _0803F076 - ldr r2, [sp, 0x30] - cmp r2, 0x1B - beq _0803F0BE -_0803F076: - ldr r3, [sp, 0x2C] - lsls r2, r3, 24 - b _0803F0D4 -_0803F07C: - mov r0, r8 - movs r1, 0x20 - movs r2, 0 - bl GetMonData - cmp r0, 0xC7 - bls _0803F130 - ldr r4, [sp, 0x1C] - cmp r4, 0 - bne _0803F130 - ldr r5, [sp, 0x2C] - cmp r5, 0 - bne _0803F130 - ldr r1, [sp, 0x20] - ldr r2, [sp, 0x24] - adds r0, r1, r2 - ldrb r0, [r0] - str r0, [sp, 0x2C] - mov r0, r8 - movs r1, 0x20 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - str r4, [sp, 0x4] - ldr r3, [sp, 0x2C] - lsls r5, r3, 24 - asrs r1, r5, 24 - cmp r1, 0 - ble _0803F0D0 - ldr r0, [sp, 0x30] - cmp r0, 0x1B - bne _0803F0D0 -_0803F0BE: - movs r0, 0x96 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - adds r0, r4, r0 - str r0, [sp, 0x4] - adds r2, r5, 0 - b _0803F0DC -_0803F0D0: - ldr r1, [sp, 0x2C] - lsls r2, r1, 24 -_0803F0D4: - asrs r1, r2, 24 - ldr r0, [sp, 0x4] - adds r0, r1 - str r0, [sp, 0x4] -_0803F0DC: - cmp r2, 0 - ble _0803F112 - mov r0, r8 - movs r1, 0x26 - movs r2, 0 - bl GetMonData - cmp r0, 0xB - bne _0803F0F4 - ldr r0, [sp, 0x4] - adds r0, 0x1 - str r0, [sp, 0x4] -_0803F0F4: - mov r0, r8 - movs r1, 0x23 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - bl sav1_map_get_name - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _0803F112 - ldr r0, [sp, 0x4] - adds r0, 0x1 - str r0, [sp, 0x4] -_0803F112: - ldr r0, [sp, 0x4] - cmp r0, 0 - bge _0803F11C - movs r0, 0 - str r0, [sp, 0x4] -_0803F11C: - ldr r0, [sp, 0x4] - cmp r0, 0xFF - ble _0803F126 - movs r0, 0xFF - str r0, [sp, 0x4] -_0803F126: - add r2, sp, 0x4 - mov r0, r8 - movs r1, 0x20 - bl SetMonData -_0803F130: - ldr r0, [sp, 0x24] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x24] -_0803F13A: - ldr r2, [sp, 0x28] - adds r2, 0x1 - str r2, [sp, 0x28] - mov r3, r10 - lsrs r3, 1 - mov r10, r3 - cmp r3, 0 - beq _0803F14C - b _0803EE32 -_0803F14C: - ldr r4, [sp, 0x18] - adds r4, 0x1 - str r4, [sp, 0x18] - cmp r4, 0x5 - bgt _0803F15A - bl _0803E378 -_0803F15A: - ldr r0, [sp, 0x1C] -_0803F15C: - add sp, 0x3C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_803E1B0 - - thumb_func_start HealStatusConditions -HealStatusConditions: @ 803F16C - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r4, r2, 0 - lsls r3, 24 - lsrs r6, r3, 24 - movs r1, 0x37 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - str r1, [sp] - ands r0, r4 - cmp r0, 0 - beq _0803F1D0 - mvns r4, r4 - ands r1, r4 - str r1, [sp] - adds r0, r5, 0 - movs r1, 0x37 - mov r2, sp - bl SetMonData - ldr r0, _0803F1C4 @ =gMain - ldr r1, _0803F1C8 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0803F1BE - cmp r6, 0x4 - beq _0803F1BE - ldr r0, _0803F1CC @ =gBattleMons - movs r1, 0x58 - muls r1, r6 - adds r0, 0x4C - adds r1, r0 - ldr r0, [r1] - ands r0, r4 - str r0, [r1] -_0803F1BE: - movs r0, 0 - b _0803F1D2 - .align 2, 0 -_0803F1C4: .4byte gMain -_0803F1C8: .4byte 0x0000043d -_0803F1CC: .4byte gBattleMons -_0803F1D0: - movs r0, 0x1 -_0803F1D2: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end HealStatusConditions - - thumb_func_start sub_803F1DC -sub_803F1DC: @ 803F1DC - push {r4-r7,lr} - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 24 - lsrs r4, r1, 24 - lsls r2, 24 - lsrs r5, r2, 24 - movs r7, 0x6 - ldr r1, _0803F204 @ =gItemEffectTable - adds r0, r3, 0 - subs r0, 0xD - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - bne _0803F208 - cmp r3, 0xAF - beq _0803F20C -_0803F200: - movs r0, 0 - b _0803F31C - .align 2, 0 -_0803F204: .4byte gItemEffectTable -_0803F208: - cmp r3, 0xAF - bne _0803F21A -_0803F20C: - ldr r0, _0803F22C @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r1, _0803F230 @ =gUnknown_02024DF8 - adds r0, r1 -_0803F21A: - mov r12, r0 - movs r2, 0 -_0803F21E: - cmp r2, 0x4 - beq _0803F23E - cmp r2, 0x4 - ble _0803F234 - cmp r2, 0x5 - beq _0803F2C8 - b _0803F312 - .align 2, 0 -_0803F22C: .4byte gUnknown_02024A60 -_0803F230: .4byte gUnknown_02024DF8 -_0803F234: - cmp r2, 0 - blt _0803F312 - cmp r2, r4 - bne _0803F312 - b _0803F200 -_0803F23E: - mov r0, r12 - ldrb r3, [r0, 0x4] - movs r0, 0x20 - ands r0, r3 - cmp r0, 0 - beq _0803F24E - movs r0, 0xDF - ands r3, r0 -_0803F24E: - movs r6, 0 - cmp r3, 0 - beq _0803F312 -_0803F254: - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _0803F2B4 - cmp r6, 0x7 - bhi _0803F2B4 - lsls r0, r6, 2 - ldr r1, _0803F26C @ =_0803F270 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803F26C: .4byte _0803F270 - .align 2, 0 -_0803F270: - .4byte _0803F29C - .4byte _0803F29C - .4byte _0803F290 - .4byte _0803F29C - .4byte _0803F2B4 - .4byte _0803F2B4 - .4byte _0803F2B4 - .4byte _0803F2B0 -_0803F290: - movs r0, 0x10 - ands r0, r3 - cmp r0, 0 - beq _0803F29C - movs r0, 0xEF - ands r3, r0 -_0803F29C: - cmp r2, r4 - bne _0803F2A8 - adds r0, r3, 0 - ands r0, r5 - cmp r0, 0 - bne _0803F31A -_0803F2A8: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - b _0803F2B4 -_0803F2B0: - cmp r2, r4 - beq _0803F200 -_0803F2B4: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - lsrs r3, 1 - cmp r2, r4 - bne _0803F2C2 - lsrs r5, 1 -_0803F2C2: - cmp r3, 0 - bne _0803F254 - b _0803F312 -_0803F2C8: - mov r0, r12 - ldrb r3, [r0, 0x5] - movs r6, 0 -_0803F2CE: - cmp r3, 0 - beq _0803F312 - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _0803F302 - cmp r6, 0 - blt _0803F302 - cmp r6, 0x6 - ble _0803F2E8 - cmp r6, 0x7 - beq _0803F2FC - b _0803F302 -_0803F2E8: - cmp r2, r4 - bne _0803F2F4 - adds r0, r3, 0 - ands r0, r5 - cmp r0, 0 - bne _0803F31A -_0803F2F4: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - b _0803F302 -_0803F2FC: - cmp r2, r4 - bne _0803F302 - b _0803F200 -_0803F302: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - lsrs r3, 1 - cmp r2, r4 - bne _0803F2CE - lsrs r5, 1 - b _0803F2CE -_0803F312: - adds r2, 0x1 - cmp r2, 0x5 - bgt _0803F31A - b _0803F21E -_0803F31A: - adds r0, r7, 0 -_0803F31C: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_803F1DC - - thumb_func_start sub_803F324 -sub_803F324: @ 803F324 - push {lr} - ldr r2, _0803F358 @ =gUnknown_02024C08 - ldr r1, _0803F35C @ =gUnknown_02024E6C - ldrb r1, [r1] - strb r1, [r2] - ldr r3, _0803F360 @ =gUnknown_030041C0 - ldr r2, _0803F364 @ =gUnknown_08400F58 - ldr r1, _0803F368 @ =gUnknown_082082F8 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldr r1, [r0] - adds r0, r3, 0 - bl StringCopy - ldr r0, _0803F36C @ =gUnknown_03004290 - ldr r1, _0803F370 @ =gUnknown_083FFDB3 - bl StringCopy - ldr r0, _0803F374 @ =gUnknown_083FFDD3 - bl get_battle_strings_ - pop {r0} - bx r0 - .align 2, 0 -_0803F358: .4byte gUnknown_02024C08 -_0803F35C: .4byte gUnknown_02024E6C -_0803F360: .4byte gUnknown_030041C0 -_0803F364: .4byte gUnknown_08400F58 -_0803F368: .4byte gUnknown_082082F8 -_0803F36C: .4byte gUnknown_03004290 -_0803F370: .4byte gUnknown_083FFDB3 -_0803F374: .4byte gUnknown_083FFDD3 - thumb_func_end sub_803F324 - - thumb_func_start sub_803F378 -sub_803F378: @ 803F378 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAF - bne _0803F3C0 - ldr r0, _0803F3A8 @ =gMain - ldr r1, _0803F3AC @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0803F3B8 - ldr r2, _0803F3B0 @ =gUnknown_02024E6C - ldrb r1, [r2] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r1, _0803F3B4 @ =gUnknown_02024DF8 - adds r7, r0, r1 - b _0803F3CC - .align 2, 0 -_0803F3A8: .4byte gMain -_0803F3AC: .4byte 0x0000043d -_0803F3B0: .4byte gUnknown_02024E6C -_0803F3B4: .4byte gUnknown_02024DF8 -_0803F3B8: - ldr r7, _0803F3BC @ =gSaveBlock1 + 0x3676 - b _0803F3CA - .align 2, 0 -_0803F3BC: .4byte gSaveBlock1 + 0x3676 -_0803F3C0: - ldr r1, _0803F404 @ =gItemEffectTable - subs r0, 0xD - lsls r0, 2 - adds r0, r1 - ldr r7, [r0] -_0803F3CA: - ldr r2, _0803F408 @ =gUnknown_02024E6C -_0803F3CC: - ldr r1, _0803F40C @ =gUnknown_02024C0B - ldrb r0, [r2] - strb r0, [r1] - movs r5, 0 - ldr r0, _0803F410 @ =gUnknown_02024C07 - mov r8, r0 - movs r6, 0 -_0803F3DA: - adds r4, r7, r5 - ldrb r1, [r4] - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - beq _0803F3EC - adds r0, r6, 0 - bl sub_803F324 -_0803F3EC: - ldrb r1, [r4] - movs r0, 0xF0 - ands r0, r1 - cmp r0, 0 - beq _0803F422 - cmp r5, 0 - beq _0803F414 - adds r0, r6, 0x1 - bl sub_803F324 - b _0803F422 - .align 2, 0 -_0803F404: .4byte gItemEffectTable -_0803F408: .4byte gUnknown_02024E6C -_0803F40C: .4byte gUnknown_02024C0B -_0803F410: .4byte gUnknown_02024C07 -_0803F414: - ldr r0, _0803F450 @ =gUnknown_02024E6C - ldrb r0, [r0] - mov r1, r8 - strb r0, [r1] - ldr r0, _0803F454 @ =gUnknown_083FEE92 - bl get_battle_strings_ -_0803F422: - adds r6, 0x2 - adds r5, 0x1 - cmp r5, 0x2 - ble _0803F3DA - ldrb r1, [r7, 0x3] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0803F442 - ldr r1, _0803F458 @ =gUnknown_02024C07 - ldr r0, _0803F450 @ =gUnknown_02024E6C - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _0803F45C @ =gUnknown_083FEE5D - bl get_battle_strings_ -_0803F442: - ldr r0, _0803F460 @ =gUnknown_020238CC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0803F450: .4byte gUnknown_02024E6C -_0803F454: .4byte gUnknown_083FEE92 -_0803F458: .4byte gUnknown_02024C07 -_0803F45C: .4byte gUnknown_083FEE5D -_0803F460: .4byte gUnknown_020238CC - thumb_func_end sub_803F378 - - thumb_func_start GetNature -GetNature: @ 803F464 - push {lr} - movs r1, 0 - movs r2, 0 - bl GetMonData - movs r1, 0x19 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end GetNature - - thumb_func_start GetNatureFromPersonality -GetNatureFromPersonality: @ 803F47C - push {lr} - movs r1, 0x19 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end GetNatureFromPersonality - - thumb_func_start GetEvolutionTargetSpecies -GetEvolutionTargetSpecies: @ 803F48C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - mov r8, r0 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 16 - lsrs r2, 16 - mov r9, r2 - movs r0, 0 - mov r10, r0 - mov r0, r8 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r7, r0, 16 - mov r0, r8 - movs r1, 0xC - movs r2, 0 - bl GetMonData - mov r1, sp - strh r0, [r1] - mov r0, r8 - movs r1, 0 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - mov r0, r8 - movs r1, 0x17 - movs r2, 0 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0xC] - lsrs r4, 16 - str r4, [sp, 0x10] - mov r0, sp - ldrh r0, [r0] - cmp r0, 0xAF - bne _0803F500 - ldr r0, _0803F4F8 @ =gSaveBlock1 - ldr r1, _0803F4FC @ =0x00003688 - adds r0, r1 - ldrb r0, [r0] - b _0803F508 - .align 2, 0 -_0803F4F8: .4byte gSaveBlock1 -_0803F4FC: .4byte 0x00003688 -_0803F500: - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r0, 24 -_0803F508: - cmp r0, 0x26 - bne _0803F514 - cmp r5, 0x3 - beq _0803F514 - movs r0, 0 - b _0803F7A4 -_0803F514: - cmp r5, 0x1 - bne _0803F51A - b _0803F734 -_0803F51A: - cmp r5, 0x1 - bgt _0803F524 - cmp r5, 0 - beq _0803F538 - b _0803F7A2 -_0803F524: - cmp r5, 0x3 - ble _0803F52A - b _0803F7A2 -_0803F52A: - movs r2, 0 - str r2, [sp, 0x4] - ldr r3, _0803F534 @ =gEvolutionTable - lsls r6, r7, 2 - b _0803F782 - .align 2, 0 -_0803F534: .4byte gEvolutionTable -_0803F538: - mov r0, r8 - movs r1, 0x38 - movs r2, 0 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - mov r0, r8 - movs r1, 0x20 - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - movs r0, 0 - str r0, [sp, 0x4] - lsls r6, r7, 2 -_0803F55E: - ldr r1, _0803F584 @ =gEvolutionTable - ldr r0, [sp, 0x4] - lsls r2, r0, 3 - adds r0, r6, r7 - lsls r0, 3 - adds r0, r2, r0 - adds r0, r1 - ldrh r0, [r0] - subs r0, 0x1 - adds r3, r1, 0 - adds r4, r2, 0 - cmp r0, 0xE - bls _0803F57A - b _0803F726 -_0803F57A: - lsls r0, 2 - ldr r1, _0803F588 @ =_0803F58C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803F584: .4byte gEvolutionTable -_0803F588: .4byte _0803F58C - .align 2, 0 -_0803F58C: - .4byte _0803F5C8 - .4byte _0803F5DA - .4byte _0803F5FC - .4byte _0803F62C - .4byte _0803F726 - .4byte _0803F726 - .4byte _0803F726 - .4byte _0803F63C - .4byte _0803F666 - .4byte _0803F690 - .4byte _0803F6BE - .4byte _0803F6DE - .4byte _0803F702 - .4byte _0803F726 - .4byte _0803F712 -_0803F5C8: - ldr r1, [sp, 0x8] - cmp r1, 0xDB - bhi _0803F5D0 - b _0803F726 -_0803F5D0: - adds r0, r6, r7 - lsls r0, 3 - adds r0, r4, r0 - adds r0, r3 - b _0803F61C -_0803F5DA: - bl RtcCalcLocalTime - ldr r0, _0803F5F8 @ =gLocalTime - ldrb r0, [r0, 0x2] - subs r0, 0xC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB - bls _0803F5EE - b _0803F726 -_0803F5EE: - ldr r2, [sp, 0x8] - cmp r2, 0xDB - bhi _0803F5F6 - b _0803F726 -_0803F5F6: - b _0803F612 - .align 2, 0 -_0803F5F8: .4byte gLocalTime -_0803F5FC: - bl RtcCalcLocalTime - ldr r0, _0803F624 @ =gLocalTime - ldrb r0, [r0, 0x2] - cmp r0, 0xB - bls _0803F60A - b _0803F726 -_0803F60A: - ldr r0, [sp, 0x8] - cmp r0, 0xDB - bhi _0803F612 - b _0803F726 -_0803F612: - ldr r1, _0803F628 @ =gEvolutionTable - adds r0, r6, r7 - lsls r0, 3 - adds r0, r4, r0 - adds r0, r1 -_0803F61C: - ldrh r0, [r0, 0x4] - mov r10, r0 - b _0803F726 - .align 2, 0 -_0803F624: .4byte gLocalTime -_0803F628: .4byte gEvolutionTable -_0803F62C: - adds r0, r6, r7 - lsls r0, 3 - adds r0, r4, r0 - adds r1, r0, r3 - ldrh r0, [r1, 0x2] - cmp r0, r9 - bhi _0803F726 - b _0803F722 -_0803F63C: - adds r0, r6, r7 - lsls r0, 3 - adds r0, r4, r0 - adds r5, r0, r3 - ldrh r0, [r5, 0x2] - cmp r0, r9 - bhi _0803F726 - mov r0, r8 - movs r1, 0x3B - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - mov r0, r8 - movs r1, 0x3C - movs r2, 0 - bl GetMonData - cmp r4, r0 - bls _0803F726 - b _0803F6B8 -_0803F666: - adds r0, r6, r7 - lsls r0, 3 - adds r0, r4, r0 - adds r5, r0, r3 - ldrh r0, [r5, 0x2] - cmp r0, r9 - bhi _0803F726 - mov r0, r8 - movs r1, 0x3B - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - mov r0, r8 - movs r1, 0x3C - movs r2, 0 - bl GetMonData - cmp r4, r0 - bne _0803F726 - b _0803F6B8 -_0803F690: - adds r0, r6, r7 - lsls r0, 3 - adds r0, r4, r0 - adds r5, r0, r3 - ldrh r0, [r5, 0x2] - cmp r0, r9 - bhi _0803F726 - mov r0, r8 - movs r1, 0x3B - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - mov r0, r8 - movs r1, 0x3C - movs r2, 0 - bl GetMonData - cmp r4, r0 - bcs _0803F726 -_0803F6B8: - ldrh r5, [r5, 0x4] - mov r10, r5 - b _0803F726 -_0803F6BE: - adds r0, r6, r7 - lsls r0, 3 - adds r0, r4, r0 - adds r4, r0, r3 - ldrh r0, [r4, 0x2] - cmp r0, r9 - bhi _0803F726 - ldr r0, [sp, 0x10] - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x4 - bhi _0803F726 - b _0803F6FC -_0803F6DE: - adds r0, r6, r7 - lsls r0, 3 - adds r0, r4, r0 - adds r4, r0, r3 - ldrh r0, [r4, 0x2] - cmp r0, r9 - bhi _0803F726 - ldr r0, [sp, 0x10] - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x4 - bls _0803F726 -_0803F6FC: - ldrh r4, [r4, 0x4] - mov r10, r4 - b _0803F726 -_0803F702: - adds r0, r6, r7 - lsls r0, 3 - adds r0, r4, r0 - adds r1, r0, r3 - ldrh r0, [r1, 0x2] - cmp r0, r9 - bhi _0803F726 - b _0803F722 -_0803F712: - adds r0, r6, r7 - lsls r0, 3 - adds r0, r4, r0 - adds r1, r0, r3 - ldrh r0, [r1, 0x2] - ldr r2, [sp, 0xC] - cmp r0, r2 - bhi _0803F726 -_0803F722: - ldrh r1, [r1, 0x4] - mov r10, r1 -_0803F726: - ldr r0, [sp, 0x4] - adds r0, 0x1 - str r0, [sp, 0x4] - cmp r0, 0x4 - bgt _0803F732 - b _0803F55E -_0803F732: - b _0803F7A2 -_0803F734: - lsls r6, r7, 2 - ldr r1, _0803F778 @ =gEvolutionTable - adds r0, r6, r7 - lsls r0, 3 - adds r4, r0, r1 - mov r5, sp - movs r1, 0x4 - str r1, [sp, 0x4] -_0803F744: - ldrh r0, [r4] - cmp r0, 0x5 - beq _0803F764 - cmp r0, 0x6 - bne _0803F768 - ldrh r0, [r4, 0x2] - ldrh r1, [r5] - cmp r0, r1 - bne _0803F768 - movs r0, 0 - strh r0, [r5] - mov r0, r8 - movs r1, 0xC - mov r2, sp - bl SetMonData -_0803F764: - ldrh r2, [r4, 0x4] - mov r10, r2 -_0803F768: - adds r4, 0x8 - ldr r0, [sp, 0x4] - subs r0, 0x1 - str r0, [sp, 0x4] - cmp r0, 0 - bge _0803F744 - b _0803F7A2 - .align 2, 0 -_0803F778: .4byte gEvolutionTable -_0803F77C: - ldrh r1, [r1, 0x4] - mov r10, r1 - b _0803F7A2 -_0803F782: - adds r0, r6, r7 - ldr r1, [sp, 0x4] - adds r0, r1 - lsls r0, 3 - adds r1, r0, r3 - ldrh r0, [r1] - cmp r0, 0x7 - bne _0803F798 - ldrh r0, [r1, 0x2] - cmp r0, r9 - beq _0803F77C -_0803F798: - ldr r2, [sp, 0x4] - adds r2, 0x1 - str r2, [sp, 0x4] - cmp r2, 0x4 - ble _0803F782 -_0803F7A2: - mov r0, r10 -_0803F7A4: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end GetEvolutionTargetSpecies - - thumb_func_start HoennPokedexNumToSpecies -HoennPokedexNumToSpecies: @ 803F7B4 - push {r4,lr} - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _0803F7F8 - movs r1, 0 - ldr r3, _0803F7F0 @ =gSpeciesToHoennPokedexNum - ldrh r0, [r3] - cmp r0, r2 - beq _0803F7E0 - movs r4, 0xCD - lsls r4, 1 -_0803F7CC: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r4 - bhi _0803F7E0 - lsls r0, r1, 1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _0803F7CC -_0803F7E0: - ldr r0, _0803F7F4 @ =0x0000019b - cmp r1, r0 - beq _0803F7F8 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - b _0803F7FA - .align 2, 0 -_0803F7F0: .4byte gSpeciesToHoennPokedexNum -_0803F7F4: .4byte 0x0000019b -_0803F7F8: - movs r0, 0 -_0803F7FA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end HoennPokedexNumToSpecies - - thumb_func_start NationalPokedexNumToSpecies -NationalPokedexNumToSpecies: @ 803F800 - push {r4,lr} - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _0803F844 - movs r1, 0 - ldr r3, _0803F83C @ =gSpeciesToNationalPokedexNum - ldrh r0, [r3] - cmp r0, r2 - beq _0803F82C - movs r4, 0xCD - lsls r4, 1 -_0803F818: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r4 - bhi _0803F82C - lsls r0, r1, 1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _0803F818 -_0803F82C: - ldr r0, _0803F840 @ =0x0000019b - cmp r1, r0 - beq _0803F844 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - b _0803F846 - .align 2, 0 -_0803F83C: .4byte gSpeciesToNationalPokedexNum -_0803F840: .4byte 0x0000019b -_0803F844: - movs r0, 0 -_0803F846: - pop {r4} - pop {r1} - bx r1 - thumb_func_end NationalPokedexNumToSpecies - - thumb_func_start NationalToHoennOrder -NationalToHoennOrder: @ 803F84C - push {r4,lr} - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _0803F890 - movs r1, 0 - ldr r3, _0803F888 @ =gHoennToNationalOrder - ldrh r0, [r3] - cmp r0, r2 - beq _0803F878 - movs r4, 0xCD - lsls r4, 1 -_0803F864: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r4 - bhi _0803F878 - lsls r0, r1, 1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _0803F864 -_0803F878: - ldr r0, _0803F88C @ =0x0000019b - cmp r1, r0 - beq _0803F890 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - b _0803F892 - .align 2, 0 -_0803F888: .4byte gHoennToNationalOrder -_0803F88C: .4byte 0x0000019b -_0803F890: - movs r0, 0 -_0803F892: - pop {r4} - pop {r1} - bx r1 - thumb_func_end NationalToHoennOrder - - thumb_func_start SpeciesToNationalPokedexNum -SpeciesToNationalPokedexNum: @ 803F898 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _0803F8B4 - ldr r0, _0803F8B0 @ =gSpeciesToNationalPokedexNum - subs r1, 0x1 - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - b _0803F8B6 - .align 2, 0 -_0803F8B0: .4byte gSpeciesToNationalPokedexNum -_0803F8B4: - movs r0, 0 -_0803F8B6: - pop {r1} - bx r1 - thumb_func_end SpeciesToNationalPokedexNum - - thumb_func_start SpeciesToHoennPokedexNum -SpeciesToHoennPokedexNum: @ 803F8BC - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _0803F8D8 - ldr r0, _0803F8D4 @ =gSpeciesToHoennPokedexNum - subs r1, 0x1 - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - b _0803F8DA - .align 2, 0 -_0803F8D4: .4byte gSpeciesToHoennPokedexNum -_0803F8D8: - movs r0, 0 -_0803F8DA: - pop {r1} - bx r1 - thumb_func_end SpeciesToHoennPokedexNum - - thumb_func_start HoennToNationalOrder -HoennToNationalOrder: @ 803F8E0 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _0803F8FC - ldr r0, _0803F8F8 @ =gHoennToNationalOrder - subs r1, 0x1 - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - b _0803F8FE - .align 2, 0 -_0803F8F8: .4byte gHoennToNationalOrder -_0803F8FC: - movs r0, 0 -_0803F8FE: - pop {r1} - bx r1 - thumb_func_end HoennToNationalOrder - - thumb_func_start SpeciesToCryId -SpeciesToCryId: @ 803F904 - push {lr} - lsls r0, 16 - lsrs r0, 16 - adds r1, r0, 0 - cmp r0, 0xFA - bls _0803F932 - ldr r0, _0803F924 @ =0x00000113 - cmp r1, r0 - bls _0803F930 - ldr r0, _0803F928 @ =gSpeciesIdToCryId - ldr r2, _0803F92C @ =0xfffffeec - adds r1, r2 - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - b _0803F932 - .align 2, 0 -_0803F924: .4byte 0x00000113 -_0803F928: .4byte gSpeciesIdToCryId -_0803F92C: .4byte 0xfffffeec -_0803F930: - movs r0, 0xC8 -_0803F932: - pop {r1} - bx r1 - thumb_func_end SpeciesToCryId - - thumb_func_start unref_sub_803F938 -unref_sub_803F938: @ 803F938 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r5, r1, 0 - mov r10, r2 - lsls r0, 16 - movs r1, 0x9A - lsls r1, 17 - cmp r0, r1 - bne _0803FA42 - ldr r1, _0803FA04 @ =gUnknown_081FAF4C - ldr r0, [r1] - cmp r10, r0 - beq _0803FA42 - ldr r0, [r1, 0x8] - cmp r10, r0 - beq _0803FA42 - movs r6, 0 -_0803F962: - lsls r3, r6, 3 - adds r3, r6 - lsls r3, 2 - ldr r0, _0803FA08 @ =gSpindaSpotGraphics - adds r4, r3, r0 - ldrb r1, [r4] - adds r1, 0xF8 - movs r2, 0xF - adds r0, r5, 0 - ands r0, r2 - adds r1, r0 - lsls r1, 24 - lsrs r1, 24 - mov r12, r1 - ldrb r1, [r4, 0x1] - adds r1, 0xF8 - movs r0, 0xF0 - ands r0, r5 - lsrs r0, 4 - adds r1, r0 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0 - lsrs r5, 8 - str r5, [sp, 0x4] - adds r6, 0x1 - str r6, [sp] - mov r9, r3 -_0803F99A: - lsls r0, r2, 1 - add r0, r9 - ldr r3, _0803FA0C @ =gSpindaSpotGraphics + 0x2 - adds r0, r3 - ldrh r3, [r0] - mov r4, r12 - adds r0, r4, 0 - adds r0, 0x10 - adds r7, r1, 0x1 - adds r2, 0x1 - mov r8, r2 - cmp r4, r0 - bge _0803FA30 - lsrs r0, r1, 3 - lsls r6, r0, 8 - movs r0, 0x7 - ands r1, r0 - lsls r5, r1, 2 -_0803F9BE: - adds r0, r4, 0 - cmp r4, 0 - bge _0803F9C6 - adds r0, r4, 0x7 -_0803F9C6: - asrs r0, 3 - lsls r2, r0, 5 - add r2, r10 - lsls r0, 3 - subs r0, r4, r0 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r2, r0 - adds r2, r6 - adds r2, r5 - movs r1, 0x1 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0803FA24 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _0803FA10 - ldrb r1, [r2] - movs r0, 0xF0 - ands r0, r1 - subs r0, 0x10 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x20 - bhi _0803FA24 - adds r0, r1, 0 - adds r0, 0x40 - b _0803FA22 - .align 2, 0 -_0803FA04: .4byte gUnknown_081FAF4C -_0803FA08: .4byte gSpindaSpotGraphics -_0803FA0C: .4byte gSpindaSpotGraphics + 0x2 -_0803FA10: - ldrb r1, [r2] - movs r0, 0xF - ands r0, r1 - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bhi _0803FA24 - adds r0, r1, 0x4 -_0803FA22: - strb r0, [r2] -_0803FA24: - asrs r3, 1 - adds r4, 0x1 - mov r0, r12 - adds r0, 0x10 - cmp r4, r0 - blt _0803F9BE -_0803FA30: - lsls r0, r7, 24 - lsrs r1, r0, 24 - mov r2, r8 - cmp r2, 0xF - ble _0803F99A - ldr r5, [sp, 0x4] - ldr r6, [sp] - cmp r6, 0x3 - ble _0803F962 -_0803FA42: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end unref_sub_803F938 - - thumb_func_start DrawSpindaSpots -DrawSpindaSpots: @ 803FA54 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r5, r1, 0 - str r2, [sp] - lsls r0, 16 - lsls r3, 24 - lsrs r3, 24 - movs r1, 0x9A - lsls r1, 17 - cmp r0, r1 - bne _0803FB56 - cmp r3, 0 - beq _0803FB56 - movs r6, 0 -_0803FA78: - lsls r3, r6, 3 - adds r3, r6 - lsls r3, 2 - ldr r0, _0803FB1C @ =gSpindaSpotGraphics - adds r4, r3, r0 - ldrb r1, [r4] - adds r1, 0xF8 - movs r2, 0xF - adds r0, r5, 0 - ands r0, r2 - adds r1, r0 - lsls r1, 24 - lsrs r1, 24 - mov r12, r1 - ldrb r1, [r4, 0x1] - adds r1, 0xF8 - movs r0, 0xF0 - ands r0, r5 - lsrs r0, 4 - adds r1, r0 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0 - lsrs r5, 8 - str r5, [sp, 0x4] - adds r6, 0x1 - mov r10, r6 - mov r9, r3 -_0803FAB0: - lsls r0, r2, 1 - add r0, r9 - ldr r3, _0803FB20 @ =gSpindaSpotGraphics + 0x2 - adds r0, r3 - ldrh r3, [r0] - mov r4, r12 - adds r0, r4, 0 - adds r0, 0x10 - adds r7, r1, 0x1 - adds r2, 0x1 - mov r8, r2 - cmp r4, r0 - bge _0803FB44 - lsrs r0, r1, 3 - lsls r6, r0, 8 - movs r0, 0x7 - ands r1, r0 - lsls r5, r1, 2 -_0803FAD4: - adds r0, r4, 0 - cmp r4, 0 - bge _0803FADC - adds r0, r4, 0x7 -_0803FADC: - asrs r0, 3 - lsls r2, r0, 5 - ldr r1, [sp] - adds r2, r1, r2 - lsls r0, 3 - subs r0, r4, r0 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r2, r0 - adds r2, r6 - adds r2, r5 - movs r1, 0x1 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0803FB38 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _0803FB24 - ldrb r1, [r2] - movs r0, 0xF0 - ands r0, r1 - subs r0, 0x10 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x20 - bhi _0803FB38 - adds r0, r1, 0 - adds r0, 0x40 - b _0803FB36 - .align 2, 0 -_0803FB1C: .4byte gSpindaSpotGraphics -_0803FB20: .4byte gSpindaSpotGraphics + 0x2 -_0803FB24: - ldrb r1, [r2] - movs r0, 0xF - ands r0, r1 - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bhi _0803FB38 - adds r0, r1, 0x4 -_0803FB36: - strb r0, [r2] -_0803FB38: - asrs r3, 1 - adds r4, 0x1 - mov r0, r12 - adds r0, 0x10 - cmp r4, r0 - blt _0803FAD4 -_0803FB44: - lsls r0, r7, 24 - lsrs r1, r0, 24 - mov r2, r8 - cmp r2, 0xF - ble _0803FAB0 - ldr r5, [sp, 0x4] - mov r6, r10 - cmp r6, 0x3 - ble _0803FA78 -_0803FB56: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end DrawSpindaSpots - - .if REVISION >= 1 - thumb_func_start sub_803FB68 -sub_803FB68: @ 803FB68 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - adds r5, r0, 0 - lsls r1, 16 - lsrs r7, r1, 16 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - ldr r0, =gStringVar1 - mov r9, r0 - adds r0, r5, 0 - movs r1, 0x2 - mov r2, r9 - bl GetMonData - mov r4, sp - adds r0, r5, 0 - movs r1, 0x3 - mov r2, sp - bl GetMonData - strb r0, [r4, 0x0] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0803FBC4 - movs r6, 0xB - adds r0, r7, 0 - muls r0, r6 - ldr r4, =gSpeciesNames - adds r0, r4 - mov r1, r9 - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - bne _0803FBC4 - mov r2, r8 - muls r2, r6 - adds r2, r4 - adds r0, r5, 0 - movs r1, 0x2 - bl SetMonData -_0803FBC4: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_803FB68 - .else - thumb_func_start sub_803FB68 -sub_803FB68: @ 803FB68 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - adds r4, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - ldr r5, _0803FBB4 @ =gStringVar1 - movs r1, 0x2 - adds r2, r5, 0 - bl GetMonData - movs r6, 0xB - adds r0, r4, 0 - muls r0, r6 - ldr r4, _0803FBB8 @ =gSpeciesNames - adds r0, r4 - adds r1, r5, 0 - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - bne _0803FBA8 - mov r2, r8 - muls r2, r6 - adds r2, r4 - adds r0, r7, 0 - movs r1, 0x2 - bl SetMonData -_0803FBA8: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803FBB4: .4byte gStringVar1 -_0803FBB8: .4byte gSpeciesNames - thumb_func_end sub_803FB68 - .endif - - thumb_func_start sub_803FBBC -sub_803FBBC: @ 803FBBC - push {r4,r5,lr} - movs r5, 0 - ldr r4, _0803FBE4 @ =gLinkPlayers - bl GetMultiplayerId - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r1, 0x18] - cmp r0, 0x2 - bgt _0803FBE8 - cmp r0, 0x1 - bge _0803FBF0 - cmp r0, 0 - beq _0803FBEC - b _0803FBF2 - .align 2, 0 -_0803FBE4: .4byte gLinkPlayers -_0803FBE8: - cmp r0, 0x3 - bne _0803FBF2 -_0803FBEC: - movs r5, 0 - b _0803FBF2 -_0803FBF0: - movs r5, 0x1 -_0803FBF2: - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_803FBBC - - thumb_func_start sub_803FBFC -sub_803FBFC: @ 803FBFC - push {lr} - lsls r0, 24 - lsrs r0, 24 - movs r3, 0 - ldr r2, _0803FC20 @ =gLinkPlayers - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r1, 0x18] - cmp r0, 0x2 - bgt _0803FC24 - cmp r0, 0x1 - bge _0803FC2C - cmp r0, 0 - beq _0803FC28 - b _0803FC2E - .align 2, 0 -_0803FC20: .4byte gLinkPlayers -_0803FC24: - cmp r0, 0x3 - bne _0803FC2E -_0803FC28: - movs r3, 0 - b _0803FC2E -_0803FC2C: - movs r3, 0x1 -_0803FC2E: - adds r0, r3, 0 - pop {r1} - bx r1 - thumb_func_end sub_803FBFC - - thumb_func_start sub_803FC34 -sub_803FC34: @ 803FC34 - push {lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r1, _0803FC40 @ =gLinkPlayers - b _0803FC4C - .align 2, 0 -_0803FC40: .4byte gLinkPlayers -_0803FC44: - adds r1, 0x1C - adds r2, 0x1 - cmp r2, 0x3 - bgt _0803FC52 -_0803FC4C: - ldrh r0, [r1, 0x18] - cmp r0, r3 - bne _0803FC44 -_0803FC52: - adds r0, r2, 0 - pop {r1} - bx r1 - thumb_func_end sub_803FC34 - - thumb_func_start sub_803FC58 -sub_803FC58: @ 803FC58 - lsls r0, 16 - lsrs r0, 16 - ldr r2, _0803FC70 @ =gTrainers - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrb r1, [r1, 0x2] - movs r0, 0x7F - ands r0, r1 - bx lr - .align 2, 0 -_0803FC70: .4byte gTrainers - thumb_func_end sub_803FC58 - - thumb_func_start nature_stat_mod -nature_stat_mod: @ 803FC74 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 16 - lsrs r3, r1, 16 - lsls r2, 24 - lsrs r5, r2, 24 - movs r0, 0xFF - lsls r0, 24 - adds r2, r0 - lsrs r2, 24 - cmp r2, 0x4 - bls _0803FC92 - adds r0, r3, 0 - b _0803FCCE -_0803FC92: - ldr r0, _0803FCB4 @ =gNatureStatTable - lsls r1, r4, 2 - adds r1, r4 - subs r1, 0x1 - adds r1, r5, r1 - adds r1, r0 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0803FCB8 - cmp r1, 0x1 - bne _0803FCCC - movs r0, 0x6E - b _0803FCBA - .align 2, 0 -_0803FCB4: .4byte gNatureStatTable -_0803FCB8: - movs r0, 0x5A -_0803FCBA: - muls r0, r3 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __udivsi3 - lsls r0, 16 - lsrs r0, 16 - b _0803FCCE -_0803FCCC: - adds r0, r3, 0 -_0803FCCE: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end nature_stat_mod - - thumb_func_start AdjustFriendship -AdjustFriendship: @ 803FCD4 - push {r4-r7,lr} - sub sp, 0x4 - adds r7, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r7, 0 - movs r1, 0xC - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAF - bne _0803FD34 - ldr r0, _0803FD14 @ =gMain - ldr r1, _0803FD18 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0803FD20 - ldr r0, _0803FD1C @ =gEnigmaBerries - ldrb r4, [r0, 0x7] - b _0803FD3C - .align 2, 0 -_0803FD14: .4byte gMain -_0803FD18: .4byte 0x0000043d -_0803FD1C: .4byte gEnigmaBerries -_0803FD20: - ldr r0, _0803FD2C @ =gSaveBlock1 - ldr r1, _0803FD30 @ =0x00003688 - adds r0, r1 - ldrb r4, [r0] - b _0803FD3C - .align 2, 0 -_0803FD2C: .4byte gSaveBlock1 -_0803FD30: .4byte 0x00003688 -_0803FD34: - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r4, r0, 24 -_0803FD3C: - cmp r6, 0 - bne _0803FD42 - b _0803FE56 -_0803FD42: - movs r0, 0xCE - lsls r0, 1 - cmp r6, r0 - bne _0803FD4C - b _0803FE56 -_0803FD4C: - movs r6, 0 - adds r0, r7, 0 - movs r1, 0x20 - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r1, sp - strh r0, [r1] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x63 - ble _0803FD6A - movs r6, 0x1 -_0803FD6A: - cmp r0, 0xC7 - ble _0803FD74 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0803FD74: - cmp r5, 0x5 - bne _0803FD84 - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - bne _0803FE56 -_0803FD84: - cmp r5, 0x3 - bne _0803FDB4 - ldr r0, _0803FE60 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0803FE56 - ldr r2, _0803FE64 @ =gTrainers - ldr r0, _0803FE68 @ =gTrainerBattleOpponent - ldrh r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r1, [r0, 0x1] - adds r0, r1, 0 - subs r0, 0x18 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0803FDB4 - cmp r1, 0x20 - bne _0803FE56 -_0803FDB4: - ldr r1, _0803FE6C @ =gUnknown_082082FE - lsls r0, r5, 1 - adds r0, r5 - adds r0, r6, r0 - adds r0, r1 - ldrb r2, [r0] - movs r1, 0 - ldrsb r1, [r0, r1] - cmp r1, 0 - ble _0803FDDA - cmp r4, 0x1B - bne _0803FDDA - movs r0, 0x96 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - lsls r0, 24 - lsrs r2, r0, 24 -_0803FDDA: - lsls r2, 24 - asrs r2, 24 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - adds r0, r2 - mov r1, sp - strh r0, [r1] - cmp r2, 0 - ble _0803FE2C - adds r0, r7, 0 - movs r1, 0x26 - movs r2, 0 - bl GetMonData - cmp r0, 0xB - bne _0803FE08 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - adds r0, 0x1 - mov r1, sp - strh r0, [r1] -_0803FE08: - adds r0, r7, 0 - movs r1, 0x23 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - bl sav1_map_get_name - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _0803FE2C - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - adds r0, 0x1 - mov r1, sp - strh r0, [r1] -_0803FE2C: - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _0803FE3C - movs r1, 0 - mov r0, sp - strh r1, [r0] -_0803FE3C: - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0xFF - ble _0803FE4C - movs r1, 0xFF - mov r0, sp - strh r1, [r0] -_0803FE4C: - adds r0, r7, 0 - movs r1, 0x20 - mov r2, sp - bl SetMonData -_0803FE56: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803FE60: .4byte gUnknown_020239F8 -_0803FE64: .4byte gTrainers -_0803FE68: .4byte gTrainerBattleOpponent -_0803FE6C: .4byte gUnknown_082082FE - thumb_func_end AdjustFriendship - - thumb_func_start MonGainEVs -MonGainEVs: @ 803FE70 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - mov r8, r0 - lsls r1, 16 - lsrs r5, r1, 16 - movs r4, 0 - movs r7, 0 - movs r6, 0 -_0803FE84: - adds r1, r6, 0 - adds r1, 0x1A - mov r0, r8 - movs r2, 0 - bl GetMonData - mov r2, sp - adds r1, r2, r6 - strb r0, [r1] - ldrb r0, [r1] - adds r0, r7, r0 - lsls r0, 16 - lsrs r7, r0, 16 - adds r6, 0x1 - cmp r6, 0x5 - ble _0803FE84 - movs r6, 0 - b _08040006 -_0803FEA8: - mov r0, r8 - movs r1, 0 - bl CheckPartyHasHadPokerus - lsls r0, 24 - movs r2, 0x1 - cmp r0, 0 - beq _0803FEBA - movs r2, 0x2 -_0803FEBA: - cmp r6, 0x5 - bhi _0803FF5C - lsls r0, r6, 2 - ldr r1, _0803FEC8 @ =_0803FECC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803FEC8: .4byte _0803FECC - .align 2, 0 -_0803FECC: - .4byte _0803FEE4 - .4byte _0803FEF8 - .4byte _0803FF0C - .4byte _0803FF20 - .4byte _0803FF34 - .4byte _0803FF48 -_0803FEE4: - ldr r0, _0803FEF4 @ =gBaseStats - lsls r1, r5, 3 - subs r1, r5 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0xA] - lsls r0, 30 - b _0803FF56 - .align 2, 0 -_0803FEF4: .4byte gBaseStats -_0803FEF8: - ldr r0, _0803FF08 @ =gBaseStats - lsls r1, r5, 3 - subs r1, r5 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0xA] - b _0803FF54 - .align 2, 0 -_0803FF08: .4byte gBaseStats -_0803FF0C: - ldr r0, _0803FF1C @ =gBaseStats - lsls r1, r5, 3 - subs r1, r5 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0xA] - lsls r0, 26 - b _0803FF56 - .align 2, 0 -_0803FF1C: .4byte gBaseStats -_0803FF20: - ldr r0, _0803FF30 @ =gBaseStats - lsls r1, r5, 3 - subs r1, r5 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0xA] - lsrs r0, 6 - b _0803FF58 - .align 2, 0 -_0803FF30: .4byte gBaseStats -_0803FF34: - ldr r0, _0803FF44 @ =gBaseStats - lsls r1, r5, 3 - subs r1, r5 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0xB] - lsls r0, 30 - b _0803FF56 - .align 2, 0 -_0803FF44: .4byte gBaseStats -_0803FF48: - ldr r0, _0803FF84 @ =gBaseStats - lsls r1, r5, 3 - subs r1, r5 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0xB] -_0803FF54: - lsls r0, 28 -_0803FF56: - lsrs r0, 30 -_0803FF58: - adds r4, r0, 0 - muls r4, r2 -_0803FF5C: - mov r0, r8 - movs r1, 0xC - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAF - bne _0803FFA8 - ldr r0, _0803FF88 @ =gMain - ldr r1, _0803FF8C @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0803FF94 - ldr r0, _0803FF90 @ =gEnigmaBerries - ldrb r0, [r0, 0x7] - b _0803FFB0 - .align 2, 0 -_0803FF84: .4byte gBaseStats -_0803FF88: .4byte gMain -_0803FF8C: .4byte 0x0000043d -_0803FF90: .4byte gEnigmaBerries -_0803FF94: - ldr r0, _0803FFA0 @ =gSaveBlock1 - ldr r2, _0803FFA4 @ =0x00003688 - adds r0, r2 - ldrb r0, [r0] - b _0803FFB0 - .align 2, 0 -_0803FFA0: .4byte gSaveBlock1 -_0803FFA4: .4byte 0x00003688 -_0803FFA8: - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r0, 24 -_0803FFB0: - cmp r0, 0x18 - bne _0803FFB8 - lsls r0, r4, 17 - lsrs r4, r0, 16 -_0803FFB8: - lsls r0, r4, 16 - asrs r2, r0, 16 - adds r1, r7, r2 - movs r0, 0xFF - lsls r0, 1 - cmp r1, r0 - ble _0803FFD0 - adds r0, r2, r0 - adds r1, r7, r4 - subs r0, r1 - lsls r0, 16 - lsrs r4, r0, 16 -_0803FFD0: - mov r0, sp - adds r2, r0, r6 - ldrb r3, [r2] - lsls r0, r4, 16 - asrs r1, r0, 16 - adds r0, r3, r1 - cmp r0, 0xFF - ble _0803FFEC - adds r0, r1, 0 - adds r0, 0xFF - adds r1, r3, r4 - subs r0, r1 - lsls r0, 16 - lsrs r4, r0, 16 -_0803FFEC: - adds r0, r3, r4 - strb r0, [r2] - adds r0, r7, r4 - lsls r0, 16 - lsrs r7, r0, 16 - adds r1, r6, 0 - adds r1, 0x1A - mov r0, r8 - bl SetMonData - adds r6, 0x1 - cmp r6, 0x5 - bgt _0804000E -_08040006: - ldr r0, _0804001C @ =0x000001fd - cmp r7, r0 - bhi _0804000E - b _0803FEA8 -_0804000E: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804001C: .4byte 0x000001fd - thumb_func_end MonGainEVs - - thumb_func_start GetMonEVCount -GetMonEVCount: @ 8040020 - push {r4-r6,lr} - adds r6, r0, 0 - movs r5, 0 - movs r4, 0 -_08040028: - adds r1, r4, 0 - adds r1, 0x1A - adds r0, r6, 0 - movs r2, 0 - bl GetMonData - adds r0, r5, r0 - lsls r0, 16 - lsrs r5, r0, 16 - adds r4, 0x1 - cmp r4, 0x5 - ble _08040028 - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end GetMonEVCount - - thumb_func_start RandomlyGivePartyPokerus -RandomlyGivePartyPokerus: @ 8040048 - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - bl Random - lsls r0, 16 - lsrs r5, r0, 16 - movs r0, 0x80 - lsls r0, 7 - cmp r5, r0 - beq _0804006E - movs r0, 0x80 - lsls r0, 8 - cmp r5, r0 - beq _0804006E - movs r0, 0xC0 - lsls r0, 8 - cmp r5, r0 - bne _08040104 -_0804006E: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x6 - bl __umodsi3 - lsls r0, 16 - lsrs r5, r0, 16 - movs r0, 0x64 - muls r0, r5 - adds r4, r6, r0 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - cmp r0, 0 - beq _0804006E - adds r0, r4, 0 - movs r1, 0x2D - movs r2, 0 - bl GetMonData - cmp r0, 0 - bne _0804006E - ldr r1, _0804010C @ =gBitTable - lsls r0, r5, 2 - adds r0, r1 - ldrb r1, [r0] - adds r0, r6, 0 - bl CheckPartyHasHadPokerus - lsls r0, 24 - cmp r0, 0 - bne _08040104 - mov r4, sp -_080400B8: - bl Random - lsls r0, 24 - lsrs r0, 24 - strb r0, [r4] - cmp r0, 0 - beq _080400B8 - movs r0, 0xF0 - mov r1, sp - ldrb r1, [r1] - ands r0, r1 - cmp r0, 0 - beq _080400DA - movs r0, 0x7 - ands r1, r0 - mov r0, sp - strb r1, [r0] -_080400DA: - mov r0, sp - ldrb r0, [r0] - lsls r1, r0, 4 - orrs r0, r1 - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - strb r0, [r1] - movs r1, 0xF3 - ands r1, r0 - mov r0, sp - strb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - movs r0, 0x64 - muls r0, r5 - adds r0, r6, r0 - movs r1, 0x22 - mov r2, sp - bl SetMonData -_08040104: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0804010C: .4byte gBitTable - thumb_func_end RandomlyGivePartyPokerus - - thumb_func_start CheckPartyPokerus -CheckPartyPokerus: @ 8040110 - push {r4-r7,lr} - sub sp, 0x4 - adds r7, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - movs r3, 0 - movs r6, 0x1 - movs r5, 0 - cmp r4, 0 - beq _08040158 -_08040124: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _0804014C - movs r0, 0x64 - muls r0, r3 - adds r0, r7, r0 - movs r1, 0x22 - movs r2, 0 - str r3, [sp] - bl GetMonData - movs r1, 0xF - ands r1, r0 - ldr r3, [sp] - cmp r1, 0 - beq _0804014C - orrs r5, r6 - lsls r0, r5, 24 - lsrs r5, r0, 24 -_0804014C: - adds r3, 0x1 - lsls r6, 1 - lsrs r4, 1 - cmp r4, 0 - bne _08040124 - b _0804016C -_08040158: - adds r0, r7, 0 - movs r1, 0x22 - movs r2, 0 - bl GetMonData - movs r1, 0xF - ands r1, r0 - cmp r1, 0 - beq _0804016C - movs r5, 0x1 -_0804016C: - adds r0, r5, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end CheckPartyPokerus - - thumb_func_start CheckPartyHasHadPokerus -CheckPartyHasHadPokerus: @ 8040178 - push {r4-r7,lr} - sub sp, 0x4 - adds r7, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - movs r3, 0 - movs r6, 0x1 - movs r5, 0 - cmp r4, 0 - beq _080401BC -_0804018C: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _080401B0 - movs r0, 0x64 - muls r0, r3 - adds r0, r7, r0 - movs r1, 0x22 - movs r2, 0 - str r3, [sp] - bl GetMonData - ldr r3, [sp] - cmp r0, 0 - beq _080401B0 - orrs r5, r6 - lsls r0, r5, 24 - lsrs r5, r0, 24 -_080401B0: - adds r3, 0x1 - lsls r6, 1 - lsrs r4, 1 - cmp r4, 0 - bne _0804018C - b _080401CC -_080401BC: - adds r0, r7, 0 - movs r1, 0x22 - movs r2, 0 - bl GetMonData - cmp r0, 0 - beq _080401CC - movs r5, 0x1 -_080401CC: - adds r0, r5, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end CheckPartyHasHadPokerus - - thumb_func_start UpdatePartyPokerusTime -UpdatePartyPokerusTime: @ 80401D8 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r7, r0, 16 - movs r5, 0 - mov r6, sp -_080401E4: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08040224 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - cmp r0, 0 - beq _0804023C - adds r0, r4, 0 - movs r1, 0x22 - movs r2, 0 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - strb r0, [r6] - movs r1, 0xF - adds r2, r0, 0 - ands r1, r2 - cmp r1, 0 - beq _0804023C - cmp r1, r7 - bcc _0804021E - cmp r7, 0x4 - bls _08040228 -_0804021E: - movs r0, 0xF0 - ands r0, r2 - b _0804022A - .align 2, 0 -_08040224: .4byte gPlayerParty -_08040228: - subs r0, r2, r7 -_0804022A: - strb r0, [r6] - movs r0, 0x64 - muls r0, r5 - ldr r1, _0804024C @ =gPlayerParty - adds r0, r1 - movs r1, 0x22 - mov r2, sp - bl SetMonData -_0804023C: - adds r5, 0x1 - cmp r5, 0x5 - ble _080401E4 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804024C: .4byte gPlayerParty - thumb_func_end UpdatePartyPokerusTime - - thumb_func_start PartySpreadPokerus -PartySpreadPokerus: @ 8040250 - push {r4-r7,lr} - sub sp, 0x4 - adds r7, r0, 0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _080402F6 - movs r5, 0 -_0804026C: - movs r0, 0x64 - adds r6, r5, 0 - muls r6, r0 - adds r4, r7, r6 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - cmp r0, 0 - beq _080402F0 - adds r0, r4, 0 - movs r1, 0x22 - movs r2, 0 - bl GetMonData - lsls r0, 24 - lsrs r1, r0, 24 - mov r0, sp - strb r1, [r0] - cmp r1, 0 - beq _080402F0 - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - beq _080402F0 - cmp r5, 0 - beq _080402C6 - adds r0, r6, 0 - subs r0, 0x64 - adds r4, r7, r0 - adds r0, r4, 0 - movs r1, 0x22 - movs r2, 0 - bl GetMonData - movs r1, 0xF0 - ands r1, r0 - cmp r1, 0 - bne _080402C6 - adds r0, r4, 0 - movs r1, 0x22 - mov r2, sp - bl SetMonData -_080402C6: - cmp r5, 0x5 - beq _080402F0 - movs r0, 0x64 - muls r0, r5 - adds r0, 0x64 - adds r4, r7, r0 - adds r0, r4, 0 - movs r1, 0x22 - movs r2, 0 - bl GetMonData - movs r1, 0xF0 - ands r1, r0 - cmp r1, 0 - bne _080402F0 - adds r0, r4, 0 - movs r1, 0x22 - mov r2, sp - bl SetMonData - adds r5, 0x1 -_080402F0: - adds r5, 0x1 - cmp r5, 0x5 - ble _0804026C -_080402F6: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end PartySpreadPokerus - - thumb_func_start TryIncrementMonLevel -TryIncrementMonLevel: @ 8040300 - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r6, 0 - movs r1, 0x38 - movs r2, 0 - bl GetMonData - adds r0, 0x1 - mov r1, sp - strb r0, [r1] - adds r0, r6, 0 - movs r1, 0x19 - movs r2, 0 - bl GetMonData - ldr r5, _08040358 @ =gExperienceTables - mov r1, sp - ldrb r2, [r1] - lsls r2, 2 - ldr r3, _0804035C @ =gBaseStats - lsls r1, r4, 3 - subs r1, r4 - lsls r1, 2 - adds r1, r3 - ldrb r3, [r1, 0x13] - movs r1, 0xCA - lsls r1, 1 - muls r1, r3 - adds r2, r1 - adds r2, r5 - ldr r1, [r2] - cmp r0, r1 - bhi _08040360 - movs r0, 0 - b _0804036C - .align 2, 0 -_08040358: .4byte gExperienceTables -_0804035C: .4byte gBaseStats -_08040360: - adds r0, r6, 0 - movs r1, 0x38 - mov r2, sp - bl SetMonData - movs r0, 0x1 -_0804036C: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end TryIncrementMonLevel - - thumb_func_start CanMonLearnTMHM -CanMonLearnTMHM: @ 8040374 - push {r4,r5,lr} - lsls r1, 24 - lsrs r4, r1, 24 - adds r5, r4, 0 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - adds r3, r1, 0 - movs r0, 0xCE - lsls r0, 1 - cmp r1, r0 - bne _08040396 - movs r0, 0 - b _080403C2 -_08040396: - cmp r4, 0x1F - bls _080403B4 - adds r0, r4, 0 - subs r0, 0x20 - movs r2, 0x1 - lsls r2, r0 - ldr r0, _080403B0 @ =gTMHMLearnsets - lsls r1, 3 - adds r0, 0x4 - adds r1, r0 - ldr r0, [r1] - ands r0, r2 - b _080403C2 - .align 2, 0 -_080403B0: .4byte gTMHMLearnsets -_080403B4: - movs r1, 0x1 - lsls r1, r5 - ldr r2, _080403C8 @ =gTMHMLearnsets - lsls r0, r3, 3 - adds r0, r2 - ldr r0, [r0] - ands r0, r1 -_080403C2: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080403C8: .4byte gTMHMLearnsets - thumb_func_end CanMonLearnTMHM - - thumb_func_start sub_80403CC -sub_80403CC: @ 80403CC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - adds r6, r0, 0 - str r1, [sp, 0x8] - movs r0, 0 - mov r10, r0 - adds r0, r6, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r6, 0 - movs r1, 0x38 - movs r2, 0 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0xC] - movs r5, 0 - mov r4, sp -_08040402: - adds r1, r5, 0 - adds r1, 0xD - adds r0, r6, 0 - movs r2, 0 - bl GetMonData - strh r0, [r4] - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0x3 - ble _08040402 - movs r5, 0 - ldr r6, _08040510 @ =gLevelUpLearnsets - lsls r1, r7, 2 - adds r2, r1, r6 - ldr r3, [r2] - ldrh r0, [r3] - ldr r4, _08040514 @ =0x0000ffff - str r1, [sp, 0x14] - cmp r0, r4 - beq _080404FC - mov r9, r2 - str r3, [sp, 0x10] -_08040430: - lsls r2, r5, 1 - ldr r1, [sp, 0x10] - adds r0, r2, r1 - ldrh r3, [r0] - movs r0, 0xFE - lsls r0, 8 - ands r0, r3 - ldr r4, [sp, 0xC] - lsls r1, r4, 9 - adds r7, r2, 0 - adds r5, 0x1 - mov r12, r5 - cmp r0, r1 - bgt _080404E6 - movs r4, 0 - mov r0, sp - ldrh r1, [r0] - ldr r0, _08040518 @ =0x000001ff - ands r0, r3 - cmp r1, r0 - beq _08040480 - ldr r0, [sp, 0x14] - ldr r1, _08040510 @ =gLevelUpLearnsets - adds r6, r0, r1 - ldr r2, _08040518 @ =0x000001ff - mov r8, r2 - mov r3, sp - adds r5, r7, 0 -_08040468: - adds r3, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - bgt _08040480 - ldr r0, [r6] - adds r0, r5, r0 - ldrh r1, [r0] - ldrh r2, [r3] - mov r0, r8 - ands r0, r1 - cmp r2, r0 - bne _08040468 -_08040480: - cmp r4, 0x4 - bne _080404E6 - movs r4, 0 - cmp r4, r10 - bge _080404C4 - mov r1, r9 - ldr r0, [r1] - adds r0, r7, r0 - ldrh r1, [r0] - ldr r0, [sp, 0x8] - ldrh r2, [r0] - ldr r0, _08040518 @ =0x000001ff - ands r0, r1 - cmp r2, r0 - beq _080404C4 - ldr r1, [sp, 0x14] - ldr r2, _08040510 @ =gLevelUpLearnsets - adds r6, r1, r2 - ldr r0, _08040518 @ =0x000001ff - mov r8, r0 - ldr r3, [sp, 0x8] - adds r5, r7, 0 -_080404AC: - adds r3, 0x2 - adds r4, 0x1 - cmp r4, r10 - bge _080404C4 - ldr r0, [r6] - adds r0, r5, r0 - ldrh r1, [r0] - ldrh r2, [r3] - mov r0, r8 - ands r0, r1 - cmp r2, r0 - bne _080404AC -_080404C4: - cmp r4, r10 - bne _080404E6 - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r2, r4, 1 - ldr r1, [sp, 0x8] - adds r2, r1 - mov r4, r9 - ldr r0, [r4] - adds r0, r7, r0 - ldrh r1, [r0] - ldr r0, _08040518 @ =0x000001ff - ands r0, r1 - strh r0, [r2] -_080404E6: - mov r5, r12 - cmp r5, 0x13 - bgt _080404FC - mov r1, r9 - ldr r0, [r1] - lsls r1, r5, 1 - adds r1, r0 - ldrh r0, [r1] - ldr r2, _08040514 @ =0x0000ffff - cmp r0, r2 - bne _08040430 -_080404FC: - mov r0, r10 - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08040510: .4byte gLevelUpLearnsets -_08040514: .4byte 0x0000ffff -_08040518: .4byte 0x000001ff - thumb_func_end sub_80403CC - - thumb_func_start sub_804051C -sub_804051C: @ 804051C - push {r4-r7,lr} - adds r6, r1, 0 - lsls r0, 16 - movs r5, 0 - movs r4, 0 - ldr r1, _08040568 @ =gLevelUpLearnsets - lsrs r0, 14 - adds r0, r1 - ldr r2, [r0] - ldrh r0, [r2] - ldr r1, _0804056C @ =0x0000ffff - cmp r0, r1 - beq _08040560 - ldr r0, _08040570 @ =0x000001ff - mov r12, r0 - adds r7, r1, 0 - adds r3, r2, 0 -_0804053E: - adds r1, r5, 0 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 1 - adds r1, r6 - ldrh r2, [r3] - mov r0, r12 - ands r0, r2 - strh r0, [r1] - adds r3, 0x2 - adds r4, 0x1 - cmp r4, 0x13 - bgt _08040560 - ldrh r0, [r3] - cmp r0, r7 - bne _0804053E -_08040560: - adds r0, r5, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08040568: .4byte gLevelUpLearnsets -_0804056C: .4byte 0x0000ffff -_08040570: .4byte 0x000001ff - thumb_func_end sub_804051C - - thumb_func_start sub_8040574 -sub_8040574: @ 8040574 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x3C - adds r6, r0, 0 - movs r0, 0 - mov r10, r0 - adds r0, r6, 0 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r6, 0 - movs r1, 0x38 - movs r2, 0 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x30] - movs r0, 0xCE - lsls r0, 1 - cmp r4, r0 - bne _080405B0 - movs r0, 0 - b _080406BA -_080405B0: - movs r5, 0 - lsls r4, 2 - str r4, [sp, 0x38] - mov r4, sp -_080405B8: - adds r1, r5, 0 - adds r1, 0xD - adds r0, r6, 0 - movs r2, 0 - bl GetMonData - strh r0, [r4] - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0x3 - ble _080405B8 - movs r5, 0 - ldr r3, _080406CC @ =gLevelUpLearnsets - ldr r2, [sp, 0x38] - adds r1, r2, r3 - ldr r0, [r1] - ldrh r0, [r0] - ldr r2, _080406D0 @ =0x0000ffff - cmp r0, r2 - beq _080406B8 - mov r9, r1 - mov r4, sp - adds r4, 0x8 - str r4, [sp, 0x34] -_080405E8: - mov r1, r9 - ldr r0, [r1] - lsls r2, r5, 1 - adds r0, r2, r0 - ldrh r3, [r0] - movs r0, 0xFE - lsls r0, 8 - ands r0, r3 - ldr r4, [sp, 0x30] - lsls r1, r4, 9 - adds r7, r2, 0 - adds r5, 0x1 - mov r12, r5 - cmp r0, r1 - bgt _080406A2 - movs r4, 0 - mov r0, sp - ldrh r1, [r0] - ldr r0, _080406D4 @ =0x000001ff - ands r0, r3 - cmp r1, r0 - beq _0804063A - ldr r0, [sp, 0x38] - ldr r1, _080406CC @ =gLevelUpLearnsets - adds r6, r0, r1 - ldr r2, _080406D4 @ =0x000001ff - mov r8, r2 - mov r3, sp - adds r5, r7, 0 -_08040622: - adds r3, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - bgt _0804063A - ldr r0, [r6] - adds r0, r5, r0 - ldrh r1, [r0] - ldrh r2, [r3] - mov r0, r8 - ands r0, r1 - cmp r2, r0 - bne _08040622 -_0804063A: - cmp r4, 0x4 - bne _080406A2 - movs r4, 0 - cmp r4, r10 - bge _08040680 - mov r1, r9 - ldr r0, [r1] - adds r0, r7, r0 - ldrh r1, [r0] - ldr r0, [sp, 0x34] - ldrh r2, [r0] - ldr r0, _080406D4 @ =0x000001ff - ands r0, r1 - add r1, sp, 0x8 - cmp r2, r0 - beq _08040680 - ldr r2, [sp, 0x38] - ldr r0, _080406CC @ =gLevelUpLearnsets - adds r6, r2, r0 - ldr r2, _080406D4 @ =0x000001ff - mov r8, r2 - adds r3, r1, 0 - adds r5, r7, 0 -_08040668: - adds r3, 0x2 - adds r4, 0x1 - cmp r4, r10 - bge _08040680 - ldr r0, [r6] - adds r0, r5, r0 - ldrh r1, [r0] - ldrh r2, [r3] - mov r0, r8 - ands r0, r1 - cmp r2, r0 - bne _08040668 -_08040680: - cmp r4, r10 - bne _080406A2 - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r2, r4, 1 - ldr r4, [sp, 0x34] - adds r2, r4, r2 - mov r1, r9 - ldr r0, [r1] - adds r0, r7, r0 - ldrh r1, [r0] - ldr r0, _080406D4 @ =0x000001ff - ands r0, r1 - strh r0, [r2] -_080406A2: - mov r5, r12 - cmp r5, 0x13 - bgt _080406B8 - mov r2, r9 - ldr r0, [r2] - lsls r1, r5, 1 - adds r1, r0 - ldrh r0, [r1] - ldr r4, _080406D0 @ =0x0000ffff - cmp r0, r4 - bne _080405E8 -_080406B8: - mov r0, r10 -_080406BA: - add sp, 0x3C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080406CC: .4byte gLevelUpLearnsets -_080406D0: .4byte 0x0000ffff -_080406D4: .4byte 0x000001ff - thumb_func_end sub_8040574 - - thumb_func_start SpeciesToPokedexNum -SpeciesToPokedexNum: @ 80406D8 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - bl IsNationalPokedex - cmp r0, 0 - beq _080406F2 - adds r0, r4, 0 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - b _0804070A -_080406F2: - adds r0, r4, 0 - bl SpeciesToHoennPokedexNum - adds r4, r0, 0 - cmp r4, 0xCA - bls _08040708 - ldr r0, _08040704 @ =0x0000ffff - b _0804070A - .align 2, 0 -_08040704: .4byte 0x0000ffff -_08040708: - adds r0, r4, 0 -_0804070A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end SpeciesToPokedexNum - - thumb_func_start sub_8040710 -sub_8040710: @ 8040710 - push {lr} - ldr r1, _08040724 @ =gUnknown_02024E84 - movs r2, 0 - adds r0, r1, 0x3 -_08040718: - strb r2, [r0] - subs r0, 0x1 - cmp r0, r1 - bge _08040718 - pop {r0} - bx r0 - .align 2, 0 -_08040724: .4byte gUnknown_02024E84 - thumb_func_end sub_8040710 - - thumb_func_start sub_8040728 -sub_8040728: @ 8040728 - push {lr} - ldr r0, _0804073C @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 5 - ands r0, r1 - cmp r0, 0 - beq _08040744 - ldr r0, _08040740 @ =0x000001cf - b _080408B2 - .align 2, 0 -_0804073C: .4byte gUnknown_020239F8 -_08040740: .4byte 0x000001cf -_08040744: - movs r0, 0x80 - lsls r0, 7 - ands r0, r1 - cmp r0, 0 - beq _08040754 - movs r0, 0xE7 - lsls r0, 1 - b _080408B2 -_08040754: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0804075E - b _080408A8 -_0804075E: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _08040768 - b _080408B0 -_08040768: - ldr r3, _0804078C @ =gTrainers - ldr r2, _08040790 @ =gTrainerBattleOpponent - ldrh r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - ldrb r0, [r0, 0x1] - subs r0, 0x2 - cmp r0, 0x31 - bls _08040780 - b _080408A8 -_08040780: - lsls r0, 2 - ldr r1, _08040794 @ =_08040798 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804078C: .4byte gTrainers -_08040790: .4byte gTrainerBattleOpponent -_08040794: .4byte _08040798 - .align 2, 0 -_08040798: - .4byte _08040860 - .4byte _08040866 - .4byte _08040866 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A0 - .4byte _0804086C - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _08040872 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _080408A8 - .4byte _0804087C - .4byte _080408A8 - .4byte _080408A8 - .4byte _08040860 - .4byte _08040866 - .4byte _08040866 -_08040860: - movs r0, 0xE9 - lsls r0, 1 - b _080408B2 -_08040866: - movs r0, 0xE5 - lsls r0, 1 - b _080408B2 -_0804086C: - movs r0, 0xE6 - lsls r0, 1 - b _080408B2 -_08040872: - ldr r0, _08040878 @ =0x000001cd - b _080408B2 - .align 2, 0 -_08040878: .4byte 0x000001cd -_0804087C: - ldrh r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _08040898 @ =gTrainers + 0x4 - adds r0, r1 - ldr r1, _0804089C @ =gUnknown_08400E42 - bl StringCompare - cmp r0, 0 - beq _080408A8 - movs r0, 0xE8 - lsls r0, 1 - b _080408B2 - .align 2, 0 -_08040898: .4byte gTrainers + 0x4 -_0804089C: .4byte gUnknown_08400E42 -_080408A0: - ldr r0, _080408A4 @ =0x000001d1 - b _080408B2 - .align 2, 0 -_080408A4: .4byte 0x000001d1 -_080408A8: - ldr r0, _080408AC @ =0x000001cb - b _080408B2 - .align 2, 0 -_080408AC: .4byte 0x000001cb -_080408B0: - ldr r0, _080408B8 @ =0x000001c9 -_080408B2: - pop {r1} - bx r1 - .align 2, 0 -_080408B8: .4byte 0x000001c9 - thumb_func_end sub_8040728 - - thumb_func_start sub_80408BC -sub_80408BC: @ 80408BC - push {lr} - bl ResetMapMusic - bl m4aMPlayAllStop - bl sub_8040728 - lsls r0, 16 - lsrs r0, 16 - bl PlayBGM - pop {r0} - bx r0 - thumb_func_end sub_80408BC - - thumb_func_start current_map_music_set__default_for_battle -current_map_music_set__default_for_battle: @ 80408D8 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - bl ResetMapMusic - bl m4aMPlayAllStop - cmp r4, 0 - beq _080408F2 - adds r0, r4, 0 - bl PlayNewMapMusic - b _080408FE -_080408F2: - bl sub_8040728 - lsls r0, 16 - lsrs r0, 16 - bl PlayNewMapMusic -_080408FE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end current_map_music_set__default_for_battle - - thumb_func_start pokemon_get_pal -pokemon_get_pal: @ 8040904 - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0 - bl GetMonData - adds r6, r0, 0 - adds r0, r5, 0 - movs r1, 0 - movs r2, 0 - bl GetMonData - adds r2, r0, 0 - adds r0, r4, 0 - adds r1, r6, 0 - bl species_and_otid_get_pal - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end pokemon_get_pal - - thumb_func_start species_and_otid_get_pal -species_and_otid_get_pal: @ 804093C - push {r4,r5,lr} - adds r3, r2, 0 - lsls r0, 16 - lsrs r4, r0, 16 - adds r5, r4, 0 - movs r0, 0xCE - lsls r0, 1 - cmp r4, r0 - bls _08040958 - ldr r0, _08040954 @ =gMonPaletteTable - ldr r0, [r0] - b _08040984 - .align 2, 0 -_08040954: .4byte gMonPaletteTable -_08040958: - lsrs r0, r1, 16 - ldr r2, _08040974 @ =0x0000ffff - ands r1, r2 - eors r0, r1 - lsrs r1, r3, 16 - eors r0, r1 - ands r3, r2 - eors r0, r3 - cmp r0, 0x7 - bls _0804097C - ldr r0, _08040978 @ =gMonPaletteTable - lsls r1, r4, 3 - b _08040980 - .align 2, 0 -_08040974: .4byte 0x0000ffff -_08040978: .4byte gMonPaletteTable -_0804097C: - ldr r0, _0804098C @ =gMonShinyPaletteTable - lsls r1, r5, 3 -_08040980: - adds r1, r0 - ldr r0, [r1] -_08040984: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0804098C: .4byte gMonShinyPaletteTable - thumb_func_end species_and_otid_get_pal - - thumb_func_start sub_8040990 -sub_8040990: @ 8040990 - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0 - bl GetMonData - adds r6, r0, 0 - adds r0, r5, 0 - movs r1, 0 - movs r2, 0 - bl GetMonData - adds r2, r0, 0 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_80409C8 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8040990 - - thumb_func_start sub_80409C8 -sub_80409C8: @ 80409C8 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsrs r0, r1, 16 - ldr r3, _080409E8 @ =0x0000ffff - ands r1, r3 - eors r0, r1 - lsrs r1, r2, 16 - eors r0, r1 - ands r2, r3 - eors r0, r2 - cmp r0, 0x7 - bls _080409F0 - lsls r0, r4, 3 - ldr r1, _080409EC @ =gMonPaletteTable - b _080409F4 - .align 2, 0 -_080409E8: .4byte 0x0000ffff -_080409EC: .4byte gMonPaletteTable -_080409F0: - lsls r0, r4, 3 - ldr r1, _080409FC @ =gMonShinyPaletteTable -_080409F4: - adds r0, r1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080409FC: .4byte gMonShinyPaletteTable - thumb_func_end sub_80409C8 - - thumb_func_start sub_8040A00 -sub_8040A00: @ 8040A00 - push {r4,lr} - lsls r0, 16 - lsrs r3, r0, 16 - ldr r2, _08040A24 @ =gUnknown_0820831A - ldrh r0, [r2] - ldr r1, _08040A28 @ =0x0000ffff - cmp r0, r1 - beq _08040A32 - adds r4, r1, 0 - adds r1, r2, 0 -_08040A14: - ldrh r0, [r2] - adds r1, 0x2 - adds r2, 0x2 - cmp r0, r3 - bne _08040A2C - movs r0, 0x1 - b _08040A34 - .align 2, 0 -_08040A24: .4byte gUnknown_0820831A -_08040A28: .4byte 0x0000ffff -_08040A2C: - ldrh r0, [r1] - cmp r0, r4 - bne _08040A14 -_08040A32: - movs r0, 0 -_08040A34: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8040A00 - - thumb_func_start sub_8040A3C -sub_8040A3C: @ 8040A3C - lsls r0, 16 - lsrs r0, 16 - ldr r2, _08040A50 @ =gBaseStats - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x19] - lsrs r0, 7 - bx lr - .align 2, 0 -_08040A50: .4byte gBaseStats - thumb_func_end sub_8040A3C - - thumb_func_start sub_8040A54 -sub_8040A54: @ 8040A54 - push {r4,lr} - lsls r4, r1, 24 - lsrs r4, 24 - bl GetNature - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08040A78 @ =gUnknown_083F7E28 - lsls r1, r0, 2 - adds r1, r0 - adds r1, r4 - adds r1, r2 - movs r0, 0 - ldrsb r0, [r1, r0] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08040A78: .4byte gUnknown_083F7E28 - thumb_func_end sub_8040A54 - - thumb_func_start sub_8040A7C -sub_8040A7C: @ 8040A7C - push {r4,lr} - lsls r4, r1, 24 - lsrs r4, 24 - bl GetNatureFromPersonality - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08040AA0 @ =gUnknown_083F7E28 - lsls r1, r0, 2 - adds r1, r0 - adds r1, r4 - adds r1, r2 - movs r0, 0 - ldrsb r0, [r1, r0] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08040AA0: .4byte gUnknown_083F7E28 - thumb_func_end sub_8040A7C - - thumb_func_start sub_8040AA4 -sub_8040AA4: @ 8040AA4 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - movs r1, 0x7 - mov r2, sp - bl GetMonData - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl GetMonData - mov r1, sp - bl sub_8040AD0 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8040AA4 - - thumb_func_start sub_8040AD0 -sub_8040AD0: @ 8040AD0 - push {r4,r5,lr} - adds r5, r1, 0 - ldr r3, _08040B10 @ =gSaveBlock2 - ldrb r2, [r3, 0xA] - ldrb r1, [r3, 0xB] - lsls r1, 8 - orrs r2, r1 - ldrb r1, [r3, 0xC] - lsls r1, 16 - orrs r2, r1 - ldrb r1, [r3, 0xD] - lsls r1, 24 - orrs r2, r1 - cmp r0, r2 - bne _08040B14 - movs r4, 0 - ldrb r0, [r5] - cmp r0, 0xFF - beq _08040B0C - adds r2, r5, 0 -_08040AF8: - adds r1, r4, r3 - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - bne _08040B14 - adds r2, 0x1 - adds r4, 0x1 - ldrb r0, [r2] - cmp r0, 0xFF - bne _08040AF8 -_08040B0C: - movs r0, 0 - b _08040B16 - .align 2, 0 -_08040B10: .4byte gSaveBlock2 -_08040B14: - movs r0, 0x1 -_08040B16: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8040AD0 - - thumb_func_start sub_8040B1C -sub_8040B1C: @ 8040B1C - push {lr} - bl pokemon_restore_pp - pop {r0} - bx r0 - thumb_func_end sub_8040B1C - - thumb_func_start pokemon_restore_pp -pokemon_restore_pp: @ 8040B28 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r6, 0 -_08040B30: - adds r4, r6, 0 - adds r4, 0xD - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0 - bl GetBoxMonData - cmp r0, 0 - beq _08040B7C - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0 - bl GetBoxMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0x15 - movs r2, 0 - bl GetBoxMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r2, r6, 24 - lsrs r2, 24 - adds r0, r4, 0 - bl CalculatePPWithBonus - mov r1, sp - strb r0, [r1] - adds r1, r6, 0 - adds r1, 0x11 - adds r0, r5, 0 - mov r2, sp - bl SetBoxMonData -_08040B7C: - adds r6, 0x1 - cmp r6, 0x3 - ble _08040B30 - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end pokemon_restore_pp - - thumb_func_start sub_8040B8C -sub_8040B8C: @ 8040B8C - push {r4,r5,lr} - ldr r1, _08040BCC @ =byte_2024C06 - ldr r2, _08040BD0 @ =0x02000000 - ldr r3, _08040BD4 @ =0x000160c0 - adds r0, r2, r3 - ldrb r0, [r0] - strb r0, [r1] - ldr r5, _08040BD8 @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r5] - movs r0, 0x4 - strb r0, [r5, 0x1] - ldr r0, _08040BDC @ =0x00016054 - adds r4, r2, r0 - ldrb r0, [r4] - strb r0, [r5, 0x2] - movs r0, 0xFF - strb r0, [r5, 0x4] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08040BE4 - ldr r1, _08040BE0 @ =gUnknown_02024A6A - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrb r0, [r0] - bl pokemon_order_func - b _08040BEE - .align 2, 0 -_08040BCC: .4byte byte_2024C06 -_08040BD0: .4byte 0x02000000 -_08040BD4: .4byte 0x000160c0 -_08040BD8: .4byte gUnknown_030041C0 -_08040BDC: .4byte 0x00016054 -_08040BE0: .4byte gUnknown_02024A6A -_08040BE4: - ldr r0, _08040C24 @ =gUnknown_02024A6A - ldrb r1, [r4] - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] -_08040BEE: - strb r0, [r5, 0x3] - ldr r4, _08040C28 @ =gUnknown_03004290 - movs r0, 0xFD - strb r0, [r4] - movs r0, 0x4 - strb r0, [r4, 0x1] - ldr r1, _08040C2C @ =gUnknown_02024E6C - ldrb r0, [r1] - strb r0, [r4, 0x2] - ldr r2, _08040C24 @ =gUnknown_02024A6A - ldrb r0, [r1] - lsls r0, 1 - adds r0, r2 - ldrb r0, [r0] - bl pokemon_order_func - strb r0, [r4, 0x3] - movs r0, 0xFF - strb r0, [r4, 0x4] - ldr r0, _08040C30 @ =gUnknown_083FFCCA - ldr r1, _08040C34 @ =gStringVar4 - bl sub_8120FFC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08040C24: .4byte gUnknown_02024A6A -_08040C28: .4byte gUnknown_03004290 -_08040C2C: .4byte gUnknown_02024E6C -_08040C30: .4byte gUnknown_083FFCCA -_08040C34: .4byte gStringVar4 - thumb_func_end sub_8040B8C - - thumb_func_start sub_8040C38 -sub_8040C38: @ 8040C38 - push {r4,r5,lr} - ldr r0, _08040C90 @ =gUnknown_020239F8 - ldrh r1, [r0] - ldr r0, _08040C94 @ =0x00002008 - ands r0, r1 - cmp r0, 0 - bne _08040CAC - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r4, _08040C98 @ =gEnemyParty - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - ldr r2, _08040C9C @ =gBaseStats - lsls r1, r0, 3 - subs r1, r0 - lsls r3, r1, 2 - adds r1, r3, r2 - ldrh r0, [r1, 0xC] - ldrh r1, [r1, 0xE] - cmp r0, r1 - beq _08040C82 - cmp r5, 0x2C - bls _08040CAC - cmp r5, 0x5E - bhi _08040CA0 -_08040C82: - adds r2, 0xC - adds r2, r3, r2 - adds r0, r4, 0 - movs r1, 0xC - bl SetMonData - b _08040CAC - .align 2, 0 -_08040C90: .4byte gUnknown_020239F8 -_08040C94: .4byte 0x00002008 -_08040C98: .4byte gEnemyParty -_08040C9C: .4byte gBaseStats -_08040CA0: - adds r2, 0xE - adds r2, r3, r2 - adds r0, r4, 0 - movs r1, 0xC - bl SetMonData -_08040CAC: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8040C38 - - thumb_func_start sub_8040CB4 -sub_8040CB4: @ 8040CB4 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - movs r2, 0 - bl GetMonData - adds r5, r0, 0 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - adds r0, r5, 0 - bl sub_8040CE0 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8040CB4 - - thumb_func_start sub_8040CE0 -sub_8040CE0: @ 8040CE0 - push {r4,lr} - movs r4, 0 - lsrs r2, r0, 16 - ldr r3, _08040D04 @ =0x0000ffff - ands r0, r3 - eors r2, r0 - lsrs r0, r1, 16 - eors r2, r0 - ands r1, r3 - eors r2, r1 - cmp r2, 0x7 - bhi _08040CFA - movs r4, 0x1 -_08040CFA: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08040D04: .4byte 0x0000ffff - thumb_func_end sub_8040CE0 - - thumb_func_start sub_8040D08 -sub_8040D08: @ 8040D08 - push {r4,lr} - bl GetMultiplayerId - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08040D38 @ =gLinkPlayers - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x18] - movs r0, 0x2 - eors r0, r1 - bl sub_803FC34 - adds r1, r0, 0 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r4, 0x8 - adds r0, r4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08040D38: .4byte gLinkPlayers - thumb_func_end sub_8040D08 - - thumb_func_start sub_8040D3C -sub_8040D3C: @ 8040D3C - push {r4,lr} - adds r4, r1, 0 - lsls r0, 16 - lsrs r1, r0, 16 - adds r0, r1, 0 - lsls r2, 24 - lsrs r2, 24 - movs r3, 0 - cmp r1, 0x20 - beq _08040D54 - cmp r1, 0x1D - bne _08040D7E -_08040D54: - cmp r2, 0x2 - bne _08040D68 - movs r0, 0xB - muls r1, r0 - ldr r0, _08040D64 @ =gSpeciesNames - adds r1, r0 - b _08040D70 - .align 2, 0 -_08040D64: .4byte gSpeciesNames -_08040D68: - ldr r1, _08040D88 @ =gUnknown_08208337 - cmp r0, 0x20 - bne _08040D70 - subs r1, 0xB -_08040D70: - adds r0, r4, 0 - bl StringCompareWithoutExtCtrlCodes - movs r3, 0 - cmp r0, 0 - bne _08040D7E - movs r3, 0x1 -_08040D7E: - adds r0, r3, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08040D88: .4byte gUnknown_08208337 - thumb_func_end sub_8040D3C - - thumb_func_start sub_8040D8C -sub_8040D8C: @ 8040D8C - push {lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0x2 - ldrb r0, [r1] - cmp r0, 0xFC - bne _08040DA2 - ldrb r0, [r1, 0x1] - cmp r0, 0x15 - bne _08040DA2 - movs r2, 0x1 -_08040DA2: - adds r0, r3, 0 - bl sub_8040D3C - pop {r1} - bx r1 - thumb_func_end sub_8040D8C - - thumb_func_start unref_sub_8040DAC -unref_sub_8040DAC: @ 8040DAC - push {r4-r6,lr} - sub sp, 0xC - adds r6, r0, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - movs r1, 0x3 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - movs r1, 0x2 - mov r2, sp - bl GetMonData - adds r0, r5, 0 - mov r1, sp - adds r2, r4, 0 - bl sub_8040D3C - add sp, 0xC - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end unref_sub_8040DAC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_804373C.s b/asm/rom_804373C.s index a134237f1..b84342e18 100644 --- a/asm/rom_804373C.s +++ b/asm/rom_804373C.s @@ -275,7 +275,7 @@ battle_make_oam_normal_battle: @ 8043914 mov r10, r0 movs r0, 0 str r0, [sp] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _08043A28 @@ -1060,7 +1060,7 @@ sub_8043F44: @ 8043F44 lsrs r6, r0, 24 movs r5, 0 movs r4, 0 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _08043F70 @@ -1135,7 +1135,7 @@ sub_8043FC0: @ 8043FC0 mov r0, sp movs r2, 0x1E bl memcpy - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _08044010 @@ -1291,7 +1291,7 @@ sub_80440EC: @ 80440EC adds r4, r0, r1 movs r0, 0x3A ldrsh r5, [r4, r0] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1854,7 +1854,7 @@ _0804458E: bne _080445A2 b _080447D4 _080445A2: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _080445BA @@ -1890,13 +1890,13 @@ _080445BA: lsls r0, 24 cmp r0, 0 bne _080446DC - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _080445FA b _080447D4 _080445FA: - ldr r0, _08044684 @ =gUnknown_020239F8 + ldr r0, _08044684 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x80 ands r0, r1 @@ -1958,7 +1958,7 @@ _08044674: .4byte gUnknown_02024A6A _08044678: .4byte gUnknown_03004340 _0804467C: .4byte SpriteCallbackDummy _08044680: .4byte 0x02017800 -_08044684: .4byte gUnknown_020239F8 +_08044684: .4byte gBattleTypeFlags _08044688: .4byte 0x06010000 _0804468C: .4byte 0x05000040 _08044690: .4byte gPlayerParty @@ -1996,7 +1996,7 @@ _080446D8: .4byte REG_BG0CNT _080446DC: cmp r6, 0x1 bne _0804478C - ldr r0, _08044704 @ =gUnknown_020239F8 + ldr r0, _08044704 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x80 ands r0, r1 @@ -2014,7 +2014,7 @@ _080446DC: bl sub_8044338 b _080447BE .align 2, 0 -_08044704: .4byte gUnknown_020239F8 +_08044704: .4byte gBattleTypeFlags _08044708: .4byte gEnemyParty _0804470C: ldrb r1, [r5] @@ -2085,7 +2085,7 @@ _0804478C: adds r1, r4 movs r2, 0x5 bl sub_8045A5C - ldr r0, _080447F8 @ =gUnknown_020239F8 + ldr r0, _080447F8 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x80 ands r0, r1 @@ -2129,7 +2129,7 @@ _080447E4: bx r0 .align 2, 0 _080447F4: .4byte gEnemyParty -_080447F8: .4byte gUnknown_020239F8 +_080447F8: .4byte gBattleTypeFlags _080447FC: .4byte gUnknown_03004340 _08044800: .4byte gUnknown_02024A68 thumb_func_end sub_804454C @@ -2178,7 +2178,7 @@ _08044854: movs r7, 0x1 cmp r4, 0 beq _08044864 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _0804486A @@ -2448,7 +2448,7 @@ _08044A76: cmp r0, 0 bne _08044B5E movs r6, 0 - ldr r5, _08044AC8 @ =gUnknown_020239F8 + ldr r5, _08044AC8 @ =gBattleTypeFlags mov r10, r5 ldr r0, _08044ACC @ =0x0000ffff mov r9, r0 @@ -2483,7 +2483,7 @@ _08044A9A: b _08044B46 .align 2, 0 _08044AC4: .4byte 0x0000ff88 -_08044AC8: .4byte gUnknown_020239F8 +_08044AC8: .4byte gBattleTypeFlags _08044ACC: .4byte 0x0000ffff _08044AD0: .4byte gSprites _08044AD4: .4byte 0x000003ff @@ -2561,7 +2561,7 @@ _08044B52: b _08044C38 _08044B5E: movs r6, 0 - ldr r1, _08044BA4 @ =gUnknown_020239F8 + ldr r1, _08044BA4 @ =gBattleTypeFlags mov r10, r1 ldr r2, _08044BA8 @ =0x0000ffff mov r9, r2 @@ -2596,7 +2596,7 @@ _08044B78: adds r1, 0x3 b _08044C22 .align 2, 0 -_08044BA4: .4byte gUnknown_020239F8 +_08044BA4: .4byte gBattleTypeFlags _08044BA8: .4byte 0x0000ffff _08044BAC: .4byte gSprites _08044BB0: .4byte 0x000003ff @@ -3630,7 +3630,7 @@ _0804535A: lsls r0, 24 cmp r0, 0 bne _080453D4 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _080453D4 @@ -3748,7 +3748,7 @@ sub_8045458: @ 8045458 lsrs r2, r0, 24 lsls r1, 24 lsrs r7, r1, 24 - ldr r0, _080454F4 @ =gUnknown_020239F8 + ldr r0, _080454F4 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x80 lsls r0, 2 @@ -3815,7 +3815,7 @@ sub_8045458: @ 8045458 bl CpuSet b _0804552E .align 2, 0 -_080454F4: .4byte gUnknown_020239F8 +_080454F4: .4byte gBattleTypeFlags _080454F8: .4byte gSprites _080454FC: .4byte gUnknown_02024A6A _08045500: .4byte gEnemyParty @@ -3887,7 +3887,7 @@ draw_status_ailment_maybe: @ 8045540 movs r1, 0x37 bl GetMonData adds r4, r0, 0 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 movs r3, 0x12 mov r8, r3 @@ -4092,7 +4092,7 @@ _080456FC: ldr r2, _080457DC @ =REG_BG2HOFS adds r0, r6, 0 bl CpuSet - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -4556,7 +4556,7 @@ _08045AEE: movs r3, 0 bl sub_8045C78 _08045B22: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] @@ -4767,7 +4767,7 @@ _08045CBC: ldr r1, [r6, 0xC] ldr r2, [r6, 0x4] movs r3, 0x8 - bl sub_8046188 + bl GetScaledExpFraction lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 @@ -5400,8 +5400,8 @@ _08046154: bx r0 thumb_func_end sub_8046128 - thumb_func_start sub_8046188 -sub_8046188: @ 8046188 + thumb_func_start GetScaledExpFraction +GetScaledExpFraction: @ 8046188 push {r4-r7,lr} adds r6, r2, 0 lsls r3, 27 @@ -5440,10 +5440,10 @@ _080461C8: pop {r4-r7} pop {r1} bx r1 - thumb_func_end sub_8046188 + thumb_func_end GetScaledExpFraction - thumb_func_start sub_80461D4 -sub_80461D4: @ 80461D4 + thumb_func_start GetScaledHPFraction +GetScaledHPFraction: @ 80461D4 push {r4,lr} lsls r2, 24 lsrs r2, 24 @@ -5465,10 +5465,10 @@ _080461F8: pop {r4} pop {r1} bx r1 - thumb_func_end sub_80461D4 + thumb_func_end GetScaledHPFraction - thumb_func_start sub_8046200 -sub_8046200: @ 8046200 + thumb_func_start GetHPBarLevel +GetHPBarLevel: @ 8046200 push {lr} lsls r0, 16 asrs r0, 16 @@ -5480,7 +5480,7 @@ sub_8046200: @ 8046200 b _0804622E _08046212: movs r2, 0x30 - bl sub_80461D4 + bl GetScaledHPFraction lsls r0, 24 lsrs r1, r0, 24 movs r0, 0x3 @@ -5495,3001 +5495,6 @@ _08046212: _0804622E: pop {r1} bx r1 - thumb_func_end sub_8046200 - - thumb_func_start sub_8046234 -sub_8046234: @ 8046234 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r7, r1, 16 - lsls r2, 24 - lsrs r4, r2, 24 - ldr r5, _0804636C @ =gUnknown_081FAEA4 - ldrh r0, [r5, 0x6] - bl GetSpriteTileStartByTag - lsls r0, 16 - ldr r1, _08046370 @ =0xffff0000 - cmp r0, r1 - bne _08046266 - adds r0, r5, 0 - bl LoadCompressedObjectPic - ldr r0, _08046374 @ =gUnknown_081FAEAC - bl LoadCompressedObjectPalette -_08046266: - ldr r0, _08046378 @ =sub_8046388 - bl object_new_hidden_with_callback - mov r8, r0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r5, r0, 4 - add r5, r8 - lsls r5, 2 - ldr r0, _0804637C @ =gSprites - adds r5, r0 - strh r4, [r5, 0x30] - ldr r0, _08046380 @ =gSpriteTemplate_81FAF0C - mov r9, r0 - lsls r6, 16 - asrs r0, r6, 16 - mov r10, r0 - ldr r0, _08046384 @ =0xfff00000 - adds r6, r0 - asrs r6, 16 - lsls r4, r7, 16 - asrs r7, r4, 16 - adds r4, r0 - asrs r4, 16 - mov r0, r9 - adds r1, r6, 0 - adds r2, r4, 0 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _0804637C @ =gSprites - adds r1, r0 - mov r0, r8 - strh r0, [r1, 0x2E] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - adds r0, r1, 0 - bl AnimateSprite - mov r0, r9 - mov r1, r10 - adds r2, r4, 0 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _0804637C @ =gSprites - adds r4, r0 - mov r0, r8 - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - adds r0, r4, 0 - bl AnimateSprite - mov r0, r9 - adds r1, r6, 0 - adds r2, r7, 0 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _0804637C @ =gSprites - adds r4, r0 - mov r0, r8 - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim - adds r0, r4, 0 - bl AnimateSprite - mov r0, r9 - mov r1, r10 - adds r2, r7, 0 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _0804637C @ =gSprites - adds r4, r0 - mov r0, r8 - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - adds r0, r4, 0 - movs r1, 0x3 - bl StartSpriteAnim - adds r0, r4, 0 - bl AnimateSprite - mov r0, r8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0804636C: .4byte gUnknown_081FAEA4 -_08046370: .4byte 0xffff0000 -_08046374: .4byte gUnknown_081FAEAC -_08046378: .4byte sub_8046388 -_0804637C: .4byte gSprites -_08046380: .4byte gSpriteTemplate_81FAF0C -_08046384: .4byte 0xfff00000 - thumb_func_end sub_8046234 - - thumb_func_start sub_8046388 -sub_8046388: @ 8046388 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080463C0 - ldr r0, _080463B4 @ =gUnknown_081FAEA4 - ldrh r0, [r0, 0x6] - bl FreeSpriteTilesByTag - ldr r0, _080463B8 @ =gUnknown_081FAEAC - ldrh r0, [r0, 0x4] - bl FreeSpritePaletteByTag - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080463BC - adds r0, r4, 0 - bl DestroySprite - b _080463C0 - .align 2, 0 -_080463B4: .4byte gUnknown_081FAEA4 -_080463B8: .4byte gUnknown_081FAEAC -_080463BC: - ldr r0, _080463C8 @ =SpriteCallbackDummy - str r0, [r4, 0x1C] -_080463C0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080463C8: .4byte SpriteCallbackDummy - thumb_func_end sub_8046388 - - thumb_func_start sub_80463CC -sub_80463CC: @ 80463CC - push {lr} - adds r3, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080463F6 - ldr r2, _080463FC @ =gSprites - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x2E] - subs r1, 0x1 - strh r1, [r0, 0x2E] - adds r0, r3, 0 - bl DestroySprite -_080463F6: - pop {r0} - bx r0 - .align 2, 0 -_080463FC: .4byte gSprites - thumb_func_end sub_80463CC - - thumb_func_start sub_8046400 -sub_8046400: @ 8046400 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - ldr r1, _08046450 @ =gUnknown_02024E6D - movs r0, 0x1 - strb r0, [r1] - ldr r6, _08046454 @ =gUnknown_02024A60 - ldrb r1, [r6] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _08046458 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0] - ldr r0, _0804645C @ =sub_8046464 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08046460 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0xA] - strh r5, [r1, 0xC] - ldrb r0, [r6] - strh r0, [r1, 0xE] - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08046450: .4byte gUnknown_02024E6D -_08046454: .4byte gUnknown_02024A60 -_08046458: .4byte 0x02017810 -_0804645C: .4byte sub_8046464 -_08046460: .4byte gTasks - thumb_func_end sub_8046400 - - thumb_func_start sub_8046464 -sub_8046464: @ 8046464 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - movs r0, 0 - str r0, [sp] - ldr r1, _08046498 @ =gTasks - mov r2, r10 - lsls r0, r2, 2 - add r0, r10 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0x8] - movs r3, 0x8 - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _0804649C - adds r0, r2, 0x1 - strh r0, [r1, 0x8] - b _08046616 - .align 2, 0 -_08046498: .4byte gTasks -_0804649C: - ldrh r0, [r1, 0xC] - mov r8, r0 - ldrb r5, [r1, 0xE] - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080464C8 - ldr r1, _080464C0 @ =gUnknown_02024A6A - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080464C4 @ =gEnemyParty - b _080464D6 - .align 2, 0 -_080464C0: .4byte gUnknown_02024A6A -_080464C4: .4byte gEnemyParty -_080464C8: - ldr r1, _08046544 @ =gUnknown_02024A6A - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08046548 @ =gPlayerParty -_080464D6: - adds r0, r1 - movs r1, 0x26 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl ball_number_to_ball_processing_index - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_80478DC - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - ldr r1, _0804654C @ =gSpriteTemplate_820AAB4 - adds r0, r1 - movs r1, 0x20 - movs r2, 0x50 - movs r3, 0x1D - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, _08046550 @ =gSprites - mov r9, r2 - lsls r0, r7, 4 - adds r0, r7 - lsls r6, r0, 2 - adds r4, r6, r2 - movs r0, 0x80 - strh r0, [r4, 0x2E] - movs r3, 0 - strh r3, [r4, 0x30] - mov r0, r8 - strh r0, [r4, 0x3C] - mov r2, r8 - cmp r2, 0xFE - beq _0804655C - cmp r2, 0xFF - bne _08046598 - ldr r0, _08046554 @ =gUnknown_02024C08 - strb r5, [r0] - movs r0, 0x18 - strh r0, [r4, 0x20] - movs r0, 0x44 - strh r0, [r4, 0x22] - mov r0, r9 - adds r0, 0x1C - adds r0, r6, r0 - ldr r1, _08046558 @ =sub_8047074 - str r1, [r0] - b _080465A6 - .align 2, 0 -_08046544: .4byte gUnknown_02024A6A -_08046548: .4byte gPlayerParty -_0804654C: .4byte gSpriteTemplate_820AAB4 -_08046550: .4byte gSprites -_08046554: .4byte gUnknown_02024C08 -_08046558: .4byte sub_8047074 -_0804655C: - adds r0, r5, 0 - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x18 - strh r0, [r4, 0x22] - ldr r0, _08046590 @ =gUnknown_02024C08 - strb r5, [r0] - movs r3, 0 - strh r3, [r4, 0x2E] - mov r0, r9 - adds r0, 0x1C - adds r0, r6, r0 - ldr r1, _08046594 @ =sub_8047254 - str r1, [r0] - b _080465A6 - .align 2, 0 -_08046590: .4byte gUnknown_02024C08 -_08046594: .4byte sub_8047254 -_08046598: - movs r0, 0x1 - bl battle_get_side_with_given_state - ldr r1, _080465C4 @ =gUnknown_02024C08 - strb r0, [r1] - movs r0, 0x1 - str r0, [sp] -_080465A6: - ldr r0, _080465C8 @ =gSprites - lsls r1, r7, 4 - adds r1, r7 - lsls r1, 2 - adds r4, r1, r0 - ldr r5, _080465C4 @ =gUnknown_02024C08 - ldrb r0, [r5] - strh r0, [r4, 0x3A] - ldr r2, [sp] - cmp r2, 0 - bne _080465CC - mov r0, r10 - bl DestroyTask - b _08046616 - .align 2, 0 -_080465C4: .4byte gUnknown_02024C08 -_080465C8: .4byte gSprites -_080465CC: - movs r0, 0x22 - strh r0, [r4, 0x2E] - ldrb r0, [r5] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x10 - strh r0, [r4, 0x36] - ldr r0, _08046628 @ =0x0000ffd8 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_80786EC - mov r3, r10 - strh r3, [r4, 0x6] - ldr r1, _0804662C @ =gTasks - mov r2, r10 - lsls r0, r2, 2 - add r0, r10 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r5] - strh r1, [r0, 0x10] - ldr r1, _08046630 @ =TaskDummy - str r1, [r0] - movs r0, 0x3D - bl PlaySE -_08046616: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08046628: .4byte 0x0000ffd8 -_0804662C: .4byte gTasks -_08046630: .4byte TaskDummy - thumb_func_end sub_8046464 - - thumb_func_start objc_0804ABD4 -objc_0804ABD4: @ 8046634 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r7, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080466D4 - ldrb r6, [r7, 0x6] - ldr r1, _080466E0 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldrb r5, [r0, 0x10] - ldrb r0, [r0, 0xC] - mov r8, r0 - adds r0, r7, 0 - movs r1, 0x1 - bl StartSpriteAnim - adds r2, r7, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r7, 0x24] - ldrh r1, [r7, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r7, 0x20] - ldrh r0, [r7, 0x26] - ldrh r2, [r7, 0x22] - adds r0, r2 - strh r0, [r7, 0x22] - strh r1, [r7, 0x24] - strh r1, [r7, 0x26] - strh r1, [r7, 0x38] - adds r0, r5, 0 - bl sub_8047978 - lsls r0, 16 - lsrs r0, 16 - bl ball_number_to_ball_processing_index - adds r4, r0, 0 - ldrh r0, [r7, 0x20] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r7, 0x22] - subs r1, 0x5 - lsls r1, 24 - lsrs r1, 24 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp] - movs r2, 0x1 - movs r3, 0x1C - bl sub_814086C - movs r0, 0 - adds r1, r5, 0 - movs r2, 0xE - adds r3, r4, 0 - bl sub_8141314 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7, 0x2E] - strh r5, [r7, 0x3A] - mov r0, r8 - strh r0, [r7, 0x3C] - adds r0, r6, 0 - bl DestroyTask - ldr r0, _080466E4 @ =sub_80466E8 - str r0, [r7, 0x1C] -_080466D4: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080466E0: .4byte gTasks -_080466E4: .4byte sub_80466E8 - thumb_func_end objc_0804ABD4 - - thumb_func_start sub_80466E8 -sub_80466E8: @ 80466E8 - ldr r1, _080466F0 @ =sub_80466F4 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080466F0: .4byte sub_80466F4 - thumb_func_end sub_80466E8 - - thumb_func_start sub_80466F4 -sub_80466F4: @ 80466F4 - push {r4-r7,lr} - adds r6, r0, 0 - ldrh r0, [r6, 0x38] - adds r0, 0x1 - movs r7, 0 - strh r0, [r6, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _0804674E - strh r7, [r6, 0x38] - ldr r0, _08046754 @ =sub_8046760 - str r0, [r6, 0x1C] - ldr r5, _08046758 @ =gUnknown_02024BE0 - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0804675C @ =gSprites - adds r0, r4 - movs r1, 0x2 - bl StartSpriteAffineAnim - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl AnimateSprite - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r7, [r0, 0x30] -_0804674E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08046754: .4byte sub_8046760 -_08046758: .4byte gUnknown_02024BE0 -_0804675C: .4byte gSprites - thumb_func_end sub_80466F4 - - thumb_func_start sub_8046760 -sub_8046760: @ 8046760 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - bne _08046778 - movs r0, 0x3C - bl PlaySE -_08046778: - ldr r6, _080467C4 @ =gSprites - ldr r5, _080467C8 @ =gUnknown_02024BE0 - movs r1, 0x3A - ldrsh r0, [r4, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r6 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _080467D0 - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim - movs r2, 0x3A - ldrsh r0, [r4, r2] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - movs r0, 0 - strh r0, [r4, 0x38] - ldr r0, _080467CC @ =sub_80467F8 - str r0, [r4, 0x1C] - b _080467F0 - .align 2, 0 -_080467C4: .4byte gSprites -_080467C8: .4byte gUnknown_02024BE0 -_080467CC: .4byte sub_80467F8 -_080467D0: - ldrh r0, [r1, 0x30] - adds r0, 0x60 - strh r0, [r1, 0x30] - movs r1, 0x3A - ldrsh r0, [r4, r1] - adds r0, r5 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - movs r2, 0x30 - ldrsh r0, [r1, r2] - negs r0, r0 - asrs r0, 8 - strh r0, [r1, 0x26] -_080467F0: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8046760 - - thumb_func_start sub_80467F8 -sub_80467F8: @ 80467F8 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08046840 - ldrh r0, [r4, 0x38] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _08046840 - strh r1, [r4, 0x34] - movs r0, 0x20 - strh r0, [r4, 0x36] - strh r1, [r4, 0x38] - movs r0, 0 - movs r1, 0x20 - bl Cos - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - movs r0, 0x36 - ldrsh r1, [r4, r0] - movs r0, 0 - bl Cos - negs r0, r0 - strh r0, [r4, 0x26] - ldr r0, _08046848 @ =sub_804684C - str r0, [r4, 0x1C] -_08046840: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08046848: .4byte sub_804684C - thumb_func_end sub_80467F8 - - thumb_func_start sub_804684C -sub_804684C: @ 804684C - push {r4,r5,lr} - adds r4, r0, 0 - movs r5, 0 - ldrh r0, [r4, 0x34] - movs r1, 0xFF - ands r1, r0 - cmp r1, 0 - beq _08046862 - cmp r1, 0x1 - beq _080468D6 - b _08046902 -_08046862: - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl Cos - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r1, [r4, 0x38] - adds r1, 0x4 - ldrh r2, [r4, 0x34] - lsls r0, r2, 16 - asrs r0, 24 - adds r1, r0 - strh r1, [r4, 0x38] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x3F - ble _08046902 - ldrh r0, [r4, 0x36] - subs r0, 0xA - strh r0, [r4, 0x36] - ldr r1, _080468AC @ =0x00000101 - adds r0, r2, r1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 24 - cmp r0, 0x4 - bne _0804689E - movs r5, 0x1 -_0804689E: - cmp r0, 0x2 - beq _080468BE - cmp r0, 0x2 - bgt _080468B0 - cmp r0, 0x1 - beq _080468B6 - b _080468CE - .align 2, 0 -_080468AC: .4byte 0x00000101 -_080468B0: - cmp r0, 0x3 - beq _080468C6 - b _080468CE -_080468B6: - movs r0, 0x38 - bl PlaySE - b _08046902 -_080468BE: - movs r0, 0x39 - bl PlaySE - b _08046902 -_080468C6: - movs r0, 0x3A - bl PlaySE - b _08046902 -_080468CE: - movs r0, 0x3B - bl PlaySE - b _08046902 -_080468D6: - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl Cos - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r1, [r4, 0x38] - subs r1, 0x4 - ldrh r2, [r4, 0x34] - lsls r0, r2, 16 - asrs r0, 24 - subs r1, r0 - strh r1, [r4, 0x38] - lsls r1, 16 - cmp r1, 0 - bgt _08046902 - strh r5, [r4, 0x38] - ldr r0, _08046928 @ =0xffffff00 - ands r0, r2 - strh r0, [r4, 0x34] -_08046902: - cmp r5, 0 - beq _0804693A - movs r5, 0 - strh r5, [r4, 0x34] - movs r0, 0x40 - movs r1, 0x20 - bl Cos - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - strh r5, [r4, 0x26] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _08046930 - ldr r0, _0804692C @ =sub_8046C78 - str r0, [r4, 0x1C] - b _0804693A - .align 2, 0 -_08046928: .4byte 0xffffff00 -_0804692C: .4byte sub_8046C78 -_08046930: - ldr r0, _08046940 @ =sub_8046944 - str r0, [r4, 0x1C] - movs r0, 0x1 - strh r0, [r4, 0x36] - strh r5, [r4, 0x38] -_0804693A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08046940: .4byte sub_8046944 - thumb_func_end sub_804684C - - thumb_func_start sub_8046944 -sub_8046944: @ 8046944 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _08046978 - movs r0, 0 - strh r0, [r4, 0x34] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r0, _08046980 @ =sub_8046984 - str r0, [r4, 0x1C] - movs r0, 0x17 - bl PlaySE -_08046978: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08046980: .4byte sub_8046984 - thumb_func_end sub_8046944 - - thumb_func_start sub_8046984 -sub_8046984: @ 8046984 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x34] - movs r1, 0xFF - ands r1, r0 - cmp r1, 0x4 - bhi _08046A84 - lsls r0, r1, 2 - ldr r1, _0804699C @ =_080469A0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804699C: .4byte _080469A0 - .align 2, 0 -_080469A0: - .4byte _080469B4 - .4byte _080469E6 - .4byte _080469B4 - .4byte _08046A3A - .4byte _08046A84 -_080469B4: - ldrh r0, [r4, 0x36] - ldrh r2, [r4, 0x24] - adds r1, r0, r2 - strh r1, [r4, 0x24] - ldrh r1, [r4, 0x38] - adds r0, r1 - strh r0, [r4, 0x38] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x38] - adds r0, 0x3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x6 - bls _08046ACA - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - movs r0, 0 - strh r0, [r4, 0x38] - b _08046ACA -_080469E6: - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _08046A2C - movs r0, 0 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x36] - negs r0, r0 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - movs r2, 0x36 - ldrsh r0, [r4, r2] - cmp r0, 0 - bge _08046A22 - adds r0, r4, 0 - movs r1, 0x2 - bl ChangeSpriteAffineAnim - b _08046ACA -_08046A22: - adds r0, r4, 0 - movs r1, 0x1 - bl ChangeSpriteAffineAnim - b _08046ACA -_08046A2C: - adds r0, r4, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - b _08046ACA -_08046A3A: - movs r1, 0x80 - lsls r1, 1 - adds r0, r1, 0 - ldrh r2, [r4, 0x34] - adds r0, r2 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 24 - movs r2, 0x3C - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _08046A5C - ldr r0, _08046A58 @ =sub_8046C78 - str r0, [r4, 0x1C] - b _08046ACA - .align 2, 0 -_08046A58: .4byte sub_8046C78 -_08046A5C: - cmp r1, 0x4 - bne _08046A70 - cmp r0, 0x3 - bne _08046A70 - ldr r0, _08046A6C @ =sub_8046E7C - str r0, [r4, 0x1C] - b _08046A76 - .align 2, 0 -_08046A6C: .4byte sub_8046E7C -_08046A70: - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] -_08046A76: - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - b _08046ACA -_08046A84: - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _08046ACA - movs r0, 0 - strh r0, [r4, 0x38] - ldrh r1, [r4, 0x34] - ldr r0, _08046AB8 @ =0xffffff00 - ands r0, r1 - strh r0, [r4, 0x34] - adds r0, r4, 0 - movs r1, 0x3 - bl StartSpriteAffineAnim - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _08046ABC - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - b _08046AC4 - .align 2, 0 -_08046AB8: .4byte 0xffffff00 -_08046ABC: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_08046AC4: - movs r0, 0x17 - bl PlaySE -_08046ACA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8046984 - - thumb_func_start sub_8046AD0 -sub_8046AD0: @ 8046AD0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _08046AFC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrb r6, [r0, 0xC] - ldrb r3, [r0, 0xA] - ldrh r5, [r0, 0x8] - movs r2, 0x26 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x20 - bhi _08046B88 - lsls r0, 2 - ldr r1, _08046B00 @ =_08046B04 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08046AFC: .4byte gTasks -_08046B00: .4byte _08046B04 - .align 2, 0 -_08046B04: - .4byte _08046B88 - .4byte _08046BA6 - .4byte _08046BB2 - .4byte _08046BF6 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046BD0 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046C08 - .4byte _08046C20 - .4byte _08046C48 -_08046B88: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r2, [r1, 0x18] - movs r3, 0x18 - ldrsh r0, [r1, r3] - cmp r0, 0x2 - bgt _08046BA0 - adds r0, r2, 0x1 - strh r0, [r1, 0x18] - b _08046C72 -_08046BA0: - adds r0, r6, 0x1 - strh r0, [r1, 0x26] - b _08046C72 -_08046BA6: - lsls r1, r3, 24 - asrs r1, 24 - adds r0, r5, 0 - bl PlayCry1 - b _08046BEE -_08046BB2: - bl StopCryAndClearCrySongs - ldr r1, _08046BCC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x3 - strh r1, [r0, 0x1C] - movs r1, 0x14 - strh r1, [r0, 0x26] - b _08046C72 - .align 2, 0 -_08046BCC: .4byte gTasks -_08046BD0: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r2, [r1, 0x1C] - movs r6, 0x1C - ldrsh r0, [r1, r6] - cmp r0, 0 - bne _08046C5A - lsls r1, r3, 24 - asrs r1, 24 - adds r0, r5, 0 - movs r2, 0x1 - bl PlayCry4 -_08046BEE: - adds r0, r4, 0 - bl DestroyTask - b _08046C72 -_08046BF6: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r2 - movs r1, 0x6 - strh r1, [r0, 0x1C] - movs r1, 0x1E - strh r1, [r0, 0x26] - b _08046C72 -_08046C08: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r2, [r1, 0x1C] - movs r3, 0x1C - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _08046C5A - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] -_08046C20: - bl IsCryPlayingOrClearCrySongs - lsls r0, 24 - cmp r0, 0 - bne _08046C72 - bl StopCryAndClearCrySongs - ldr r0, _08046C44 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x3 - strh r0, [r1, 0x1C] - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] - b _08046C72 - .align 2, 0 -_08046C44: .4byte gTasks -_08046C48: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r2, [r1, 0x1C] - movs r6, 0x1C - ldrsh r0, [r1, r6] - cmp r0, 0 - beq _08046C60 -_08046C5A: - subs r0, r2, 0x1 - strh r0, [r1, 0x1C] - b _08046C72 -_08046C60: - lsls r1, r3, 24 - asrs r1, 24 - adds r0, r5, 0 - movs r2, 0 - bl PlayCry4 - adds r0, r4, 0 - bl DestroyTask -_08046C72: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8046AD0 - - thumb_func_start sub_8046C78 -sub_8046C78: @ 8046C78 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r6, r0, 0 - ldrh r0, [r6, 0x3A] - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r6, 0 - movs r1, 0x1 - bl StartSpriteAnim - adds r0, r5, 0 - bl sub_8047978 - lsls r0, 16 - lsrs r0, 16 - bl ball_number_to_ball_processing_index - adds r4, r0, 0 - ldrh r0, [r6, 0x20] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x22] - subs r1, 0x5 - lsls r1, 24 - lsrs r1, 24 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp] - movs r2, 0x1 - movs r3, 0x1C - bl sub_814086C - ldrh r1, [r6, 0x3A] - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x1 - movs r2, 0xE - adds r3, r4, 0 - bl sub_8141314 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x2E] - ldr r0, _08046D0C @ =sub_8046E9C - str r0, [r6, 0x1C] - ldr r0, _08046D10 @ =gMain - ldr r1, _08046D14 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08046CE8 - b _08046E1C -_08046CE8: - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _08046D20 - ldr r1, _08046D18 @ =gUnknown_02024A6A - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08046D1C @ =gEnemyParty - adds r0, r1, r0 - movs r3, 0x19 - mov r8, r3 - b _08046D34 - .align 2, 0 -_08046D0C: .4byte sub_8046E9C -_08046D10: .4byte gMain -_08046D14: .4byte 0x0000043d -_08046D18: .4byte gUnknown_02024A6A -_08046D1C: .4byte gEnemyParty -_08046D20: - ldr r1, _08046D90 @ =gUnknown_02024A6A - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08046D94 @ =gPlayerParty - adds r0, r1, r0 - movs r1, 0xE7 - mov r8, r1 -_08046D34: - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r7, r0, 16 - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - beq _08046D5A - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - bne _08046DAE -_08046D5A: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08046DAE - ldr r0, _08046D98 @ =0x02017840 - ldrb r1, [r0, 0x9] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08046DAE - ldr r0, _08046D9C @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08046DA4 - bl IsBGMPlaying - lsls r0, 24 - cmp r0, 0 - beq _08046DAE - ldr r0, _08046DA0 @ =gMPlay_BGM - bl m4aMPlayStop - b _08046DAE - .align 2, 0 -_08046D90: .4byte gUnknown_02024A6A -_08046D94: .4byte gPlayerParty -_08046D98: .4byte 0x02017840 -_08046D9C: .4byte gUnknown_020239F8 -_08046DA0: .4byte gMPlay_BGM -_08046DA4: - ldr r0, _08046DC8 @ =gMPlay_BGM - ldr r1, _08046DCC @ =0x0000ffff - movs r2, 0x80 - bl m4aMPlayVolumeControl -_08046DAE: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08046DC4 - ldr r0, _08046DD0 @ =0x02017840 - ldrb r1, [r0, 0x9] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08046DD4 -_08046DC4: - movs r4, 0 - b _08046DF6 - .align 2, 0 -_08046DC8: .4byte gMPlay_BGM -_08046DCC: .4byte 0x0000ffff -_08046DD0: .4byte 0x02017840 -_08046DD4: - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - beq _08046DF0 - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - bne _08046DF4 -_08046DF0: - movs r4, 0x1 - b _08046DF6 -_08046DF4: - movs r4, 0x2 -_08046DF6: - ldr r0, _08046E6C @ =sub_8046AD0 - movs r1, 0x3 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08046E70 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r7, [r1, 0x8] - mov r3, r8 - lsls r0, r3, 24 - asrs r0, 24 - strh r0, [r1, 0xA] - strh r4, [r1, 0xC] - strh r2, [r1, 0x26] -_08046E1C: - ldr r5, _08046E74 @ =gUnknown_02024BE0 - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _08046E78 @ =gSprites - adds r0, r4 - movs r1, 0x1 - bl StartSpriteAffineAnim - movs r3, 0x3A - ldrsh r0, [r6, r3] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl AnimateSprite - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x80 - lsls r1, 5 - strh r1, [r0, 0x30] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08046E6C: .4byte sub_8046AD0 -_08046E70: .4byte gTasks -_08046E74: .4byte gUnknown_02024BE0 -_08046E78: .4byte gSprites - thumb_func_end sub_8046C78 - - thumb_func_start sub_8046E7C -sub_8046E7C: @ 8046E7C - adds r3, r0, 0 - adds r3, 0x2C - ldrb r1, [r3] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r3] - ldr r1, _08046E98 @ =sub_8046FBC - str r1, [r0, 0x1C] - movs r1, 0 - strh r1, [r0, 0x34] - strh r1, [r0, 0x36] - strh r1, [r0, 0x38] - bx lr - .align 2, 0 -_08046E98: .4byte sub_8046FBC - thumb_func_end sub_8046E7C - - thumb_func_start sub_8046E9C -sub_8046E9C: @ 8046E9C - push {r4-r7,lr} - adds r5, r0, 0 - movs r7, 0 - ldrh r0, [r5, 0x3A] - lsls r0, 24 - lsrs r4, r0, 24 - ldr r6, _08046F00 @ =gSprites - ldr r0, _08046F04 @ =gUnknown_02024BE0 - adds r3, r4, r0 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08046EDE - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_08046EDE: - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _08046F08 - adds r0, r1, 0 - movs r1, 0 - bl StartSpriteAffineAnim - movs r7, 0x1 - b _08046F24 - .align 2, 0 -_08046F00: .4byte gSprites -_08046F04: .4byte gUnknown_02024BE0 -_08046F08: - ldr r2, _08046FA8 @ =0xfffffee0 - adds r0, r2, 0 - ldrh r2, [r1, 0x30] - adds r0, r2 - strh r0, [r1, 0x30] - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 24 - strh r0, [r1, 0x26] -_08046F24: - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08046FA0 - cmp r7, 0 - beq _08046FA0 - ldr r2, _08046FAC @ =gSprites - ldr r0, _08046FB0 @ =gUnknown_02024BE0 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r2, 0 - movs r1, 0 - strh r1, [r0, 0x26] - ldr r0, _08046FB4 @ =gUnknown_02024E6D - strb r2, [r0] - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 2 - ldr r4, _08046FB8 @ =0x02017810 - adds r1, r4 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - adds r0, r5, 0 - bl FreeSpriteOamMatrix - adds r0, r5, 0 - bl DestroySprite - movs r3, 0 - movs r5, 0x8 - adds r2, r4, 0 - movs r4, 0x3 -_08046F78: - ldrb r1, [r2] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _08046F84 - adds r3, 0x1 -_08046F84: - adds r2, 0xC - subs r4, 0x1 - cmp r4, 0 - bge _08046F78 - cmp r3, 0x4 - bne _08046FA0 - movs r4, 0 -_08046F92: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_804794C - adds r4, 0x1 - cmp r4, 0xB - ble _08046F92 -_08046FA0: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08046FA8: .4byte 0xfffffee0 -_08046FAC: .4byte gSprites -_08046FB0: .4byte gUnknown_02024BE0 -_08046FB4: .4byte gUnknown_02024E6D -_08046FB8: .4byte 0x02017810 - thumb_func_end sub_8046E9C - - thumb_func_start sub_8046FBC -sub_8046FBC: @ 8046FBC - push {r4-r7,lr} - adds r6, r0, 0 - ldrh r0, [r6, 0x3A] - lsls r0, 24 - lsrs r7, r0, 24 - ldrh r0, [r6, 0x36] - adds r0, 0x1 - strh r0, [r6, 0x36] - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0x28 - beq _08047056 - cmp r1, 0x5F - bne _08046FF4 - ldr r0, _08046FEC @ =gUnknown_02024E6D - movs r1, 0 - strb r1, [r0] - bl m4aMPlayAllStop - ldr r0, _08046FF0 @ =0x00000173 - bl PlaySE - b _08047056 - .align 2, 0 -_08046FEC: .4byte gUnknown_02024E6D -_08046FF0: .4byte 0x00000173 -_08046FF4: - ldr r0, _0804705C @ =0x0000013b - cmp r1, r0 - bne _08047056 - ldr r5, _08047060 @ =gSprites - ldr r4, _08047064 @ =gUnknown_02024BE0 - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite - adds r0, r6, 0 - bl DestroySpriteAndFreeResources - ldr r0, _08047068 @ =gMain - ldr r1, _0804706C @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08047056 - lsls r1, r7, 1 - adds r1, r7 - lsls r1, 2 - ldr r0, _08047070 @ =0x02017810 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] -_08047056: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804705C: .4byte 0x0000013b -_08047060: .4byte gSprites -_08047064: .4byte gUnknown_02024BE0 -_08047068: .4byte gMain -_0804706C: .4byte 0x0000043d -_08047070: .4byte 0x02017810 - thumb_func_end sub_8046FBC - - thumb_func_start sub_8047074 -sub_8047074: @ 8047074 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x19 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x18 - strh r0, [r4, 0x36] - ldr r0, _080470BC @ =0x0000ffe2 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x3A] - strh r0, [r4, 0x6] - adds r0, r4, 0 - bl sub_80786EC - ldr r0, _080470C0 @ =sub_80470C4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080470BC: .4byte 0x0000ffe2 -_080470C0: .4byte sub_80470C4 - thumb_func_end sub_8047074 - - thumb_func_start sub_80470C4 -sub_80470C4: @ 80470C4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - ldrh r0, [r5, 0x3C] - movs r1, 0xFF - mov r8, r1 - lsrs r0, 8 - subs r0, 0x23 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2C - bhi _080471B8 - ldrh r1, [r5, 0x6] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - bne _08047126 - ldrh r0, [r5, 0x30] - movs r1, 0x1 - adds r6, r1, 0 - ands r6, r0 - ldrh r0, [r5, 0x32] - adds r7, r1, 0 - ands r7, r0 - movs r2, 0x30 - ldrsh r0, [r5, r2] - movs r1, 0x3 - bl __divsi3 - movs r1, 0x2 - negs r1, r1 - adds r4, r1, 0 - ands r0, r4 - orrs r6, r0 - strh r6, [r5, 0x30] - movs r2, 0x32 - ldrsh r0, [r5, r2] - movs r1, 0x3 - bl __divsi3 - ands r0, r4 - orrs r7, r0 - strh r7, [r5, 0x32] - adds r0, r5, 0 - movs r1, 0x4 - bl StartSpriteAffineAnim -_08047126: - ldrh r4, [r5, 0x2E] - adds r0, r5, 0 - bl sub_8078B5C - movs r1, 0x3A - ldrsh r0, [r5, r1] - movs r1, 0x3 - bl __divsi3 - adds r1, r0, 0 - ldrh r0, [r5, 0x3C] - adds r0, r1 - strh r0, [r5, 0x3C] - lsls r0, 16 - asrs r0, 24 - mov r2, r8 - ands r0, r2 - movs r2, 0x38 - ldrsh r1, [r5, r2] - bl Sin - ldrh r1, [r5, 0x26] - adds r0, r1 - strh r0, [r5, 0x26] - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - ldrh r1, [r5, 0x6] - adds r0, r1 - strh r0, [r5, 0x6] - lsls r0, 16 - lsrs r0, 24 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - beq _08047176 - strh r4, [r5, 0x2E] - b _0804717E -_08047176: - lsls r0, r4, 16 - asrs r0, 16 - subs r0, 0x1 - strh r0, [r5, 0x2E] -_0804717E: - ldrh r0, [r5, 0x3C] - lsrs r0, 8 - cmp r0, 0x4F - ble _08047220 - ldrh r0, [r5, 0x30] - movs r1, 0x1 - adds r6, r1, 0 - ands r6, r0 - ldrh r0, [r5, 0x32] - adds r7, r1, 0 - ands r7, r0 - movs r2, 0x30 - ldrsh r1, [r5, r2] - lsls r0, r1, 1 - adds r0, r1 - movs r1, 0x2 - negs r1, r1 - adds r2, r1, 0 - ands r0, r2 - orrs r0, r6 - strh r0, [r5, 0x30] - movs r0, 0x32 - ldrsh r1, [r5, r0] - lsls r0, r1, 1 - adds r0, r1 - ands r0, r2 - orrs r0, r7 - strh r0, [r5, 0x32] - b _08047220 -_080471B8: - adds r0, r5, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _08047220 - ldrh r0, [r5, 0x24] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r1, [r5, 0x26] - strh r1, [r5, 0x24] - ldrb r0, [r5, 0x6] - strh r0, [r5, 0x3A] - strh r1, [r5, 0x2E] - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08047214 - ldr r0, _0804720C @ =0x02017840 - ldrb r1, [r0, 0x9] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08047214 - movs r0, 0x3A - ldrsh r4, [r5, r0] - movs r0, 0x2 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _08047214 - ldr r0, _08047210 @ =sub_8047230 - b _08047216 - .align 2, 0 -_0804720C: .4byte 0x02017840 -_08047210: .4byte sub_8047230 -_08047214: - ldr r0, _0804722C @ =sub_8046C78 -_08047216: - str r0, [r5, 0x1C] - adds r0, r5, 0 - movs r1, 0 - bl StartSpriteAffineAnim -_08047220: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804722C: .4byte sub_8046C78 - thumb_func_end sub_80470C4 - - thumb_func_start sub_8047230 -sub_8047230: @ 8047230 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r1, r0, 0x1 - strh r1, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x18 - ble _0804724A - movs r0, 0 - strh r0, [r2, 0x2E] - ldr r0, _08047250 @ =sub_8046C78 - str r0, [r2, 0x1C] -_0804724A: - pop {r0} - bx r0 - .align 2, 0 -_08047250: .4byte sub_8046C78 - thumb_func_end sub_8047230 - - thumb_func_start sub_8047254 -sub_8047254: @ 8047254 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _080472A4 - movs r0, 0 - strh r0, [r5, 0x2E] - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080472A0 - ldr r0, _08047298 @ =0x02017840 - ldrb r1, [r0, 0x9] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080472A0 - movs r0, 0x3A - ldrsh r4, [r5, r0] - movs r0, 0x3 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _080472A0 - ldr r0, _0804729C @ =sub_8047230 - b _080472A2 - .align 2, 0 -_08047298: .4byte 0x02017840 -_0804729C: .4byte sub_8047230 -_080472A0: - ldr r0, _080472AC @ =sub_8046C78 -_080472A2: - str r0, [r5, 0x1C] -_080472A4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080472AC: .4byte sub_8046C78 - thumb_func_end sub_8047254 - - thumb_func_start sub_80472B0 -sub_80472B0: @ 80472B0 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - movs r4, 0 - str r4, [sp] - bl sub_814086C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80472B0 - - thumb_func_start sub_80472D8 -sub_80472D8: @ 80472D8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - movs r3, 0 - bl sub_8141314 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80472D8 - - thumb_func_start CreatePokeballSprite -CreatePokeballSprite: @ 80472F0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r5, r0, 0 - mov r9, r2 - mov r10, r3 - ldr r6, [sp, 0x24] - ldr r4, [sp, 0x28] - ldr r0, [sp, 0x2C] - lsls r5, 24 - lsrs r5, 24 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp] - mov r1, r9 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - mov r2, r10 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - lsls r6, 24 - lsrs r6, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _080473BC @ =gUnknown_0820A92C - bl LoadCompressedObjectPic - ldr r0, _080473C0 @ =gUnknown_0820A98C - bl LoadCompressedObjectPalette - ldr r0, _080473C4 @ =gSpriteTemplate_820AAB4 - mov r1, r9 - mov r2, r10 - adds r3, r4, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080473C8 @ =gSprites - mov r8, r3 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r1, r4, r3 - strh r5, [r1, 0x2E] - lsls r2, r5, 4 - adds r2, r5 - lsls r2, 2 - add r2, r8 - ldrh r0, [r2, 0x20] - strh r0, [r1, 0x38] - ldrh r0, [r2, 0x22] - strh r0, [r1, 0x3A] - mov r0, r9 - strh r0, [r2, 0x20] - mov r3, r10 - strh r3, [r2, 0x22] - strh r7, [r1, 0x30] - mov r0, sp - ldrh r0, [r0] - strh r0, [r1, 0x32] - mov r3, sp - ldrh r3, [r3, 0x30] - strh r3, [r1, 0x34] - ldr r3, [sp, 0x30] - lsrs r0, r3, 16 - strh r0, [r1, 0x36] - movs r0, 0x3 - ands r6, r0 - lsls r6, 2 - ldrb r3, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r6 - strb r0, [r1, 0x5] - movs r0, 0x1C - add r8, r0 - add r4, r8 - ldr r0, _080473CC @ =sub_80473D0 - str r0, [r4] - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080473BC: .4byte gUnknown_0820A92C -_080473C0: .4byte gUnknown_0820A98C -_080473C4: .4byte gSpriteTemplate_820AAB4 -_080473C8: .4byte gSprites -_080473CC: .4byte sub_80473D0 - thumb_func_end CreatePokeballSprite - - thumb_func_start sub_80473D0 -sub_80473D0: @ 80473D0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - ldrh r1, [r6, 0x30] - movs r2, 0x30 - ldrsh r0, [r6, r2] - cmp r0, 0 - bne _0804747C - ldrh r0, [r6, 0x2E] - lsls r0, 24 - lsrs r7, r0, 24 - ldrh r0, [r6, 0x32] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrh r4, [r6, 0x34] - ldrh r0, [r6, 0x36] - lsls r0, 16 - orrs r4, r0 - adds r0, r6, 0 - adds r0, 0x43 - ldrb r0, [r0] - cmp r0, 0 - beq _0804740A - subs r0, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - b _0804740C -_0804740A: - movs r5, 0 -_0804740C: - adds r0, r6, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldrh r0, [r6, 0x20] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x22] - subs r1, 0x5 - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r6, 0x5] - lsls r2, 28 - lsrs r2, 30 - adds r3, r5, 0 - bl sub_80472B0 - movs r0, 0x1 - mov r1, r8 - adds r2, r4, 0 - bl sub_80472D8 - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r6, 0x30] - ldr r0, _08047474 @ =sub_804748C - str r0, [r6, 0x1C] - ldr r0, _08047478 @ =gSprites - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - adds r4, r0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - adds r0, r4, 0 - bl AnimateSprite - movs r0, 0x80 - lsls r0, 5 - strh r0, [r4, 0x30] - strh r5, [r6, 0x3C] - b _08047480 - .align 2, 0 -_08047474: .4byte sub_804748C -_08047478: .4byte gSprites -_0804747C: - subs r0, r1, 0x1 - strh r0, [r6, 0x30] -_08047480: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80473D0 - - thumb_func_start sub_804748C -sub_804748C: @ 804748C - push {r4-r7,lr} - adds r4, r0, 0 - movs r0, 0 - mov r12, r0 - movs r6, 0 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080474B6 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_080474B6: - ldr r0, _08047544 @ =gSprites - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - adds r5, r1, r0 - adds r0, r5, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _080474D8 - adds r0, r5, 0 - movs r1, 0 - bl StartSpriteAffineAnim - movs r1, 0x1 - mov r12, r1 -_080474D8: - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r7, 0x20 - ldrsh r1, [r4, r7] - subs r0, r1 - movs r1, 0x3C - ldrsh r2, [r4, r1] - muls r0, r2 - cmp r0, 0 - bge _080474EE - adds r0, 0x7F -_080474EE: - asrs r0, 7 - ldrh r7, [r4, 0x20] - adds r0, r7 - lsls r0, 16 - lsrs r3, r0, 16 - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r7, 0x22 - ldrsh r1, [r4, r7] - subs r0, r1 - muls r0, r2 - cmp r0, 0 - bge _0804750A - adds r0, 0x7F -_0804750A: - asrs r0, 7 - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r3, [r5, 0x20] - strh r0, [r5, 0x22] - ldrh r2, [r4, 0x3C] - movs r7, 0x3C - ldrsh r0, [r4, r7] - cmp r0, 0x7F - bgt _0804754C - ldr r1, _08047548 @ =gSineTable - lsls r0, r2, 24 - lsrs r0, 23 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _08047530 - adds r0, 0x7 -_08047530: - asrs r0, 3 - negs r0, r0 - lsls r0, 16 - lsrs r0, 16 - adds r1, r2, 0x4 - strh r1, [r4, 0x3C] - strh r0, [r5, 0x24] - strh r0, [r5, 0x26] - b _0804755A - .align 2, 0 -_08047544: .4byte gSprites -_08047548: .4byte gSineTable -_0804754C: - ldrh r0, [r4, 0x38] - strh r0, [r5, 0x20] - ldrh r0, [r4, 0x3A] - strh r0, [r5, 0x22] - strh r6, [r5, 0x24] - strh r6, [r5, 0x26] - movs r6, 0x1 -_0804755A: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08047578 - mov r2, r12 - cmp r2, 0 - beq _08047578 - cmp r6, 0 - beq _08047578 - adds r0, r4, 0 - bl DestroySpriteAndFreeResources -_08047578: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804748C - - thumb_func_start sub_8047580 -sub_8047580: @ 8047580 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r10, r0 - adds r6, r2, 0 - mov r8, r3 - ldr r5, [sp, 0x20] - ldr r4, [sp, 0x24] - ldr r0, [sp, 0x28] - mov r9, r0 - mov r0, r10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r6, 24 - lsrs r6, 24 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - lsrs r4, 24 - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, _08047624 @ =gUnknown_0820A92C - bl LoadCompressedObjectPic - ldr r0, _08047628 @ =gUnknown_0820A98C - bl LoadCompressedObjectPalette - ldr r0, _0804762C @ =gSpriteTemplate_820AAB4 - adds r1, r6, 0 - mov r2, r8 - adds r3, r4, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r6, _08047630 @ =gSprites - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - adds r2, r3, r6 - mov r1, r10 - strh r1, [r2, 0x2E] - mov r4, r9 - strh r4, [r2, 0x30] - strh r7, [r2, 0x32] - mov r1, sp - ldrh r1, [r1, 0x2C] - strh r1, [r2, 0x34] - ldr r4, [sp, 0x2C] - lsrs r1, r4, 16 - strh r1, [r2, 0x36] - movs r1, 0x3 - ands r5, r1 - lsls r5, 2 - ldrb r4, [r2, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r4 - orrs r1, r5 - strb r1, [r2, 0x5] - adds r6, 0x1C - adds r3, r6 - ldr r1, _08047634 @ =sub_8047638 - str r1, [r3] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08047624: .4byte gUnknown_0820A92C -_08047628: .4byte gUnknown_0820A98C -_0804762C: .4byte gSpriteTemplate_820AAB4 -_08047630: .4byte gSprites -_08047634: .4byte sub_8047638 - thumb_func_end sub_8047580 - - thumb_func_start sub_8047638 -sub_8047638: @ 8047638 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080476D0 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r7, r0, 24 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrh r5, [r4, 0x34] - ldrh r0, [r4, 0x36] - lsls r0, 16 - orrs r5, r0 - adds r0, r4, 0 - adds r0, 0x43 - ldrb r0, [r0] - cmp r0, 0 - beq _08047672 - subs r0, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - b _08047674 -_08047672: - movs r6, 0 -_08047674: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldrh r0, [r4, 0x20] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x22] - subs r1, 0x5 - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r4, 0x5] - lsls r2, 28 - lsrs r2, 30 - adds r3, r6, 0 - bl sub_80472B0 - movs r0, 0x1 - mov r1, r8 - adds r2, r5, 0 - bl sub_80472D8 - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r4, 0x30] - ldr r0, _080476C8 @ =sub_80476E0 - str r0, [r4, 0x1C] - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - ldr r0, _080476CC @ =gSprites - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - adds r0, r4, 0 - bl AnimateSprite - strh r5, [r4, 0x30] - b _080476D4 - .align 2, 0 -_080476C8: .4byte sub_80476E0 -_080476CC: .4byte gSprites -_080476D0: - subs r0, r1, 0x1 - strh r0, [r4, 0x30] -_080476D4: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8047638 - - thumb_func_start sub_80476E0 -sub_80476E0: @ 80476E0 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x38] - adds r0, 0x1 - strh r0, [r5, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - bne _080476F8 - movs r0, 0x3C - bl PlaySE -_080476F8: - ldrh r1, [r5, 0x2E] - lsls r1, 24 - lsrs r1, 24 - ldr r2, _08047734 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - adds r0, r4, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _0804773C - adds r0, r5, 0 - movs r1, 0x2 - bl StartSpriteAnim - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r0, 0 - strh r0, [r5, 0x38] - ldr r0, _08047738 @ =sub_8047754 - str r0, [r5, 0x1C] - b _0804774C - .align 2, 0 -_08047734: .4byte gSprites -_08047738: .4byte sub_8047754 -_0804773C: - ldrh r0, [r4, 0x30] - adds r0, 0x60 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - negs r0, r0 - asrs r0, 8 - strh r0, [r4, 0x26] -_0804774C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80476E0 - - thumb_func_start sub_8047754 -sub_8047754: @ 8047754 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08047768 - ldr r0, _0804776C @ =SpriteCallbackDummy - str r0, [r2, 0x1C] -_08047768: - pop {r0} - bx r0 - .align 2, 0 -_0804776C: .4byte SpriteCallbackDummy - thumb_func_end sub_8047754 - - thumb_func_start obj_delete_and_free_associated_resources_ -obj_delete_and_free_associated_resources_: @ 8047770 - push {lr} - bl DestroySpriteAndFreeResources - pop {r0} - bx r0 - thumb_func_end obj_delete_and_free_associated_resources_ - - thumb_func_start sub_804777C -sub_804777C: @ 804777C - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r0, _080477FC @ =gUnknown_03004340 - adds r0, r5, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r6, _08047800 @ =gSprites - adds r4, r0, r6 - movs r1, 0 - movs r0, 0x5 - strh r0, [r4, 0x2E] - strh r1, [r4, 0x30] - movs r0, 0x73 - strh r0, [r4, 0x24] - strh r1, [r4, 0x26] - ldr r0, _08047804 @ =sub_8047830 - str r0, [r4, 0x1C] - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080477CA - ldrh r0, [r4, 0x2E] - negs r0, r0 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - negs r0, r0 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x24] - negs r0, r0 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x26] - negs r0, r0 - strh r0, [r4, 0x26] -_080477CA: - movs r0, 0x38 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r6, 0 - adds r1, 0x1C - adds r1, r0, r1 - adds r0, r6 - ldr r1, [r1] - bl _call_via_r1 - adds r0, r5, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _080477F4 - ldr r0, _08047808 @ =sub_804780C - str r0, [r4, 0x1C] -_080477F4: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080477FC: .4byte gUnknown_03004340 -_08047800: .4byte gSprites -_08047804: .4byte sub_8047830 -_08047808: .4byte sub_804780C - thumb_func_end sub_804777C - - thumb_func_start sub_804780C -sub_804780C: @ 804780C - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _08047826 - movs r0, 0 - strh r0, [r1, 0x30] - ldr r0, _0804782C @ =sub_8047830 - str r0, [r1, 0x1C] -_08047826: - pop {r0} - bx r0 - .align 2, 0 -_0804782C: .4byte sub_8047830 - thumb_func_end sub_804780C - - thumb_func_start sub_8047830 -sub_8047830: @ 8047830 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x24] - ldrh r1, [r2, 0x2E] - subs r0, r1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x26] - ldrh r1, [r2, 0x30] - subs r0, r1 - strh r0, [r2, 0x26] - ldr r0, [r2, 0x24] - cmp r0, 0 - bne _0804784E - ldr r0, _08047854 @ =SpriteCallbackDummy - str r0, [r2, 0x1C] -_0804784E: - pop {r0} - bx r0 - .align 2, 0 -_08047854: .4byte SpriteCallbackDummy - thumb_func_end sub_8047830 - - thumb_func_start sub_8047858 -sub_8047858: @ 8047858 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _08047890 @ =oamc_804BEB4 - adds r0, r5, 0 - bl object_new_hidden_with_callback - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08047894 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r3, r1, r2 - movs r0, 0x1 - strh r0, [r3, 0x2E] - ldr r0, _08047898 @ =gUnknown_03004340 - adds r4, r0 - ldrb r0, [r4] - strh r0, [r3, 0x30] - adds r2, 0x1C - adds r1, r2 - str r5, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08047890: .4byte oamc_804BEB4 -_08047894: .4byte gSprites -_08047898: .4byte gUnknown_03004340 - thumb_func_end sub_8047858 - - thumb_func_start oamc_804BEB4 -oamc_804BEB4: @ 804789C - push {lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x30] - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080478D8 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - ldrh r0, [r3, 0x2E] - movs r2, 0 - strh r0, [r1, 0x26] - ldrh r0, [r3, 0x2E] - negs r0, r0 - strh r0, [r3, 0x2E] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bne _080478D4 - strh r2, [r1, 0x24] - strh r2, [r1, 0x26] - adds r0, r3, 0 - bl DestroySprite -_080478D4: - pop {r0} - bx r0 - .align 2, 0 -_080478D8: .4byte gSprites - thumb_func_end oamc_804BEB4 - - thumb_func_start sub_80478DC -sub_80478DC: @ 80478DC - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08047938 @ =gUnknown_0820A92C - lsls r6, r4, 3 - adds r5, r6, r0 - ldrh r0, [r5, 0x6] - bl GetSpriteTileStartByTag - lsls r0, 16 - ldr r1, _0804793C @ =0xffff0000 - cmp r0, r1 - bne _08047904 - adds r0, r5, 0 - bl LoadCompressedObjectPic - ldr r0, _08047940 @ =gUnknown_0820A98C - adds r0, r6, r0 - bl LoadCompressedObjectPalette -_08047904: - cmp r4, 0x6 - beq _08047930 - cmp r4, 0x6 - blt _08047914 - cmp r4, 0xB - bgt _08047914 - cmp r4, 0xA - bge _08047930 -_08047914: - ldr r1, _08047938 @ =gUnknown_0820A92C - lsls r0, r4, 3 - adds r0, r1 - ldrh r0, [r0, 0x6] - bl GetSpriteTileStartByTag - adds r1, r0, 0 - lsls r1, 16 - ldr r0, _08047944 @ =gUnknown_08D030D0 - lsrs r1, 11 - ldr r2, _08047948 @ =0x06010100 - adds r1, r2 - bl LZDecompressVram -_08047930: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08047938: .4byte gUnknown_0820A92C -_0804793C: .4byte 0xffff0000 -_08047940: .4byte gUnknown_0820A98C -_08047944: .4byte gUnknown_08D030D0 -_08047948: .4byte 0x06010100 - thumb_func_end sub_80478DC - - thumb_func_start sub_804794C -sub_804794C: @ 804794C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - ldr r0, _08047970 @ =gUnknown_0820A92C - lsrs r4, 21 - adds r0, r4, r0 - ldrh r0, [r0, 0x6] - bl FreeSpriteTilesByTag - ldr r0, _08047974 @ =gUnknown_0820A98C - adds r4, r0 - ldrh r0, [r4, 0x4] - bl FreeSpritePaletteByTag - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08047970: .4byte gUnknown_0820A92C -_08047974: .4byte gUnknown_0820A98C - thumb_func_end sub_804794C - - thumb_func_start sub_8047978 -sub_8047978: @ 8047978 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080479A4 - ldr r1, _0804799C @ =gUnknown_02024A6A - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080479A0 @ =gEnemyParty - b _080479B2 - .align 2, 0 -_0804799C: .4byte gUnknown_02024A6A -_080479A0: .4byte gEnemyParty -_080479A4: - ldr r1, _080479C4 @ =gUnknown_02024A6A - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080479C8 @ =gPlayerParty -_080479B2: - adds r0, r1 - movs r1, 0x26 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080479C4: .4byte gUnknown_02024A6A -_080479C8: .4byte gPlayerParty - thumb_func_end sub_8047978 + thumb_func_end GetHPBarLevel .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_806D7F8.s b/asm/rom_806D7F8.s deleted file mode 100644 index 8f95428c3..000000000 --- a/asm/rom_806D7F8.s +++ /dev/null @@ -1,6917 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_806D7F8 -sub_806D7F8: @ 806D7F8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 16 - lsls r2, 16 - lsrs r5, r1, 16 - asrs r1, 16 - lsrs r4, r2, 16 - asrs r2, 16 - adds r0, r1, 0 - adds r1, r2, 0 - bl sub_8046200 - lsls r0, 24 - lsrs r0, 24 - movs r2, 0 - cmp r5, r4 - beq _0806D830 - movs r2, 0x1 - cmp r0, 0x3 - beq _0806D830 - movs r2, 0x2 - cmp r0, 0x2 - beq _0806D830 - movs r2, 0x4 - cmp r0, 0x1 - bne _0806D830 - movs r2, 0x3 -_0806D830: - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - ldr r1, _0806D848 @ =gSprites - adds r0, r1 - adds r1, r2, 0 - bl sub_809D824 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806D848: .4byte gSprites - thumb_func_end sub_806D7F8 - - thumb_func_start sub_806D84C -sub_806D84C: @ 806D84C - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r6, 0 - movs r1, 0x39 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r6, 0 - movs r1, 0x3A - bl GetMonData - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_806D7F8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_806D84C - - thumb_func_start sub_806D880 -sub_806D880: @ 806D880 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x8 - adds r6, r0, 0 - adds r5, r1, 0 - mov r8, r3 - lsls r6, 24 - lsrs r6, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r2, 24 - lsrs r2, 24 - ldr r3, _0806D904 @ =gUnknown_08376678 - lsls r1, r5, 2 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, r3 - ldrb r0, [r1] - mov r9, r0 - ldrb r1, [r1, 0x1] - mov r10, r1 - mov r0, r8 - movs r1, 0x41 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r8 - movs r1, 0 - bl GetMonData - ldr r1, _0806D908 @ =sub_809D62C - movs r2, 0x5 - str r2, [sp] - str r0, [sp, 0x4] - adds r0, r4, 0 - mov r2, r9 - mov r3, r10 - bl sub_809D2FC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_806DE50 - adds r0, r4, 0 - mov r1, r8 - bl sub_806D84C - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806D904: .4byte gUnknown_08376678 -_0806D908: .4byte sub_809D62C - thumb_func_end sub_806D880 - - thumb_func_start sub_806D90C -sub_806D90C: @ 806D90C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r2, 0 - lsls r0, 24 - lsrs r6, r0, 24 - mov r8, r6 - lsls r1, 24 - lsrs r5, r1, 24 - adds r7, r5, 0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0806D95A - bl sub_806B528 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806D946 - adds r0, r6, 0 - adds r1, r5, 0 - movs r2, 0x2 - adds r3, r4, 0 - bl sub_806D880 - b _0806D95A -_0806D946: - bl battle_type_is_double - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - mov r0, r8 - adds r1, r7, 0 - adds r3, r4, 0 - bl sub_806D880 -_0806D95A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_806D90C - - thumb_func_start unref_sub_806D964 -unref_sub_806D964: @ 806D964 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - b _0806D986 -_0806D96E: - movs r0, 0x64 - adds r2, r4, 0 - muls r2, r0 - ldr r0, _0806D994 @ =gPlayerParty - adds r2, r0 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_806D90C - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_0806D986: - ldr r0, _0806D998 @ =gPlayerPartyCount - ldrb r0, [r0] - cmp r4, r0 - bcc _0806D96E - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0806D994: .4byte gPlayerParty -_0806D998: .4byte gPlayerPartyCount - thumb_func_end unref_sub_806D964 - - thumb_func_start sub_806D99C -sub_806D99C: @ 806D99C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - adds r6, r0, 0 - adds r5, r1, 0 - mov r8, r3 - lsls r6, 24 - lsrs r6, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r2, 24 - lsrs r2, 24 - ldr r3, _0806DA04 @ =gUnknown_08376678 - lsls r1, r5, 2 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, r3 - ldrb r2, [r1] - ldrb r3, [r1, 0x1] - mov r1, r8 - ldrh r0, [r1] - ldr r1, _0806DA08 @ =sub_809D62C - movs r4, 0x5 - str r4, [sp] - mov r7, r8 - ldr r4, [r7, 0x18] - str r4, [sp, 0x4] - bl sub_809D2FC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_806DE50 - ldrh r1, [r7, 0x10] - ldrh r2, [r7, 0x12] - adds r0, r4, 0 - bl sub_806D7F8 - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0806DA04: .4byte gUnknown_08376678 -_0806DA08: .4byte sub_809D62C - thumb_func_end sub_806D99C - - thumb_func_start sub_806DA0C -sub_806DA0C: @ 806DA0C - push {r4,lr} - adds r4, r0, 0 - bl sub_809D638 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _0806DA32 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0806DA30 - ldr r0, _0806DA2C @ =0x0000fffd - strh r0, [r4, 0x26] - b _0806DA32 - .align 2, 0 -_0806DA2C: .4byte 0x0000fffd -_0806DA30: - strh r1, [r4, 0x26] -_0806DA32: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_806DA0C - - thumb_func_start sub_806DA38 -sub_806DA38: @ 806DA38 - push {lr} - bl sub_809D638 - pop {r0} - bx r0 - thumb_func_end sub_806DA38 - - thumb_func_start sub_806DA44 -sub_806DA44: @ 806DA44 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r4, r2, 24 - cmp r1, 0x5 - bhi _0806DA8E - bl sub_806DDA0 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _0806DA7C @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r2, r1, 2 - adds r1, r2, r3 - movs r0, 0 - strh r0, [r1, 0x26] - strh r0, [r1, 0x2E] - cmp r4, 0 - bne _0806DA84 - adds r0, r3, 0 - adds r0, 0x1C - adds r0, r2, r0 - ldr r1, _0806DA80 @ =sub_806DA38 - b _0806DA8C - .align 2, 0 -_0806DA7C: .4byte gSprites -_0806DA80: .4byte sub_806DA38 -_0806DA84: - adds r0, r3, 0 - adds r0, 0x1C - adds r0, r2, r0 - ldr r1, _0806DA94 @ =sub_806DA0C -_0806DA8C: - str r1, [r0] -_0806DA8E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806DA94: .4byte sub_806DA0C - thumb_func_end sub_806DA44 - - thumb_func_start sub_806DA98 -sub_806DA98: @ 806DA98 - push {lr} - ldr r0, _0806DAAC @ =gUnknown_083765DC - bl LoadSpriteSheet - ldr r0, _0806DAB0 @ =gUnknown_083765E4 - bl LoadSpritePalette - pop {r0} - bx r0 - .align 2, 0 -_0806DAAC: .4byte gUnknown_083765DC -_0806DAB0: .4byte gUnknown_083765E4 - thumb_func_end sub_806DA98 - - thumb_func_start sub_806DAB4 -sub_806DAB4: @ 806DAB4 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x3C] - lsls r1, 24 - lsrs r1, 24 - ldr r2, _0806DAE4 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r2 - adds r0, r2, 0 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _0806DAE8 - adds r0, r4, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _0806DB06 - .align 2, 0 -_0806DAE4: .4byte gSprites -_0806DAE8: - adds r3, r4, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - ldrh r0, [r2, 0x24] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x26] - ldrh r2, [r2, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] -_0806DB06: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_806DAB4 - - thumb_func_start sub_806DB0C -sub_806DB0C: @ 806DB0C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - adds r6, r0, 0 - mov r9, r1 - lsls r6, 24 - lsrs r6, 24 - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, _0806DB84 @ =gSprites - mov r8, r0 - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - add r0, r8 - adds r0, 0x43 - ldrb r3, [r0] - ldr r0, _0806DB88 @ =gSpriteTemplate_837660C - subs r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - movs r1, 0xFA - movs r2, 0xAA - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - mov r0, r8 - adds r5, r4, r0 - movs r0, 0x4 - strh r0, [r5, 0x24] - movs r0, 0xA - strh r0, [r5, 0x26] - movs r0, 0x1C - add r8, r0 - add r4, r8 - ldr r0, _0806DB8C @ =sub_806DAB4 - str r0, [r4] - strh r6, [r5, 0x3C] - adds r0, r5, 0 - mov r1, r9 - bl StartSpriteAnim - ldr r1, [r4] - adds r0, r5, 0 - bl _call_via_r1 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806DB84: .4byte gSprites -_0806DB88: .4byte gSpriteTemplate_837660C -_0806DB8C: .4byte sub_806DAB4 - thumb_func_end sub_806DB0C - - thumb_func_start sub_806DB90 -sub_806DB90: @ 806DB90 - push {r4-r7,lr} - adds r6, r0, 0 - adds r7, r1, 0 - lsls r2, 24 - lsrs r2, 24 - cmp r2, 0 - beq _0806DBA4 - cmp r2, 0x1 - beq _0806DBEC - b _0806DC28 -_0806DBA4: - movs r5, 0 - ldrb r0, [r6] - cmp r5, r0 - bcs _0806DC28 -_0806DBAC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0806DBE8 @ =gPlayerParty - adds r0, r1 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _0806DBD8 - adds r0, r7, r5 - ldrb r4, [r0] - adds r0, r1, 0 - bl itemid_is_mail - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_806DB0C -_0806DBD8: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldrb r0, [r6] - cmp r5, r0 - bcc _0806DBAC - b _0806DC28 - .align 2, 0 -_0806DBE8: .4byte gPlayerParty -_0806DBEC: - movs r5, 0 - b _0806DC22 -_0806DBF0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0806DC30 @ =gEnemyParty - adds r0, r1 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _0806DC1C - adds r0, r5, r7 - ldrb r4, [r0, 0x6] - adds r0, r1, 0 - bl itemid_is_mail - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_806DB0C -_0806DC1C: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_0806DC22: - ldrb r0, [r6, 0x1] - cmp r5, r0 - bcc _0806DBF0 -_0806DC28: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0806DC30: .4byte gEnemyParty - thumb_func_end sub_806DB90 - - thumb_func_start sub_806DC34 -sub_806DC34: @ 806DC34 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r7, 0 - ldr r0, _0806DCC8 @ =gSprites - mov r9, r0 - movs r1, 0x1C - add r1, r9 - mov r10, r1 -_0806DC50: - movs r0, 0x64 - muls r0, r7 - ldr r1, _0806DCCC @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0806DCB0 - mov r0, r8 - adds r1, r7, 0 - bl sub_806DDA0 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _0806DCD0 @ =gSpriteTemplate_837660C - movs r1, 0xFA - movs r2, 0xAA - movs r3, 0x4 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - mov r1, r9 - adds r6, r4, r1 - movs r1, 0x4 - strh r1, [r6, 0x24] - movs r1, 0xA - strh r1, [r6, 0x26] - strh r5, [r6, 0x3C] - lsls r1, r5, 4 - adds r1, r5 - lsls r1, 2 - add r1, r9 - strh r0, [r1, 0x3C] - mov r0, r8 - adds r1, r7, 0 - bl sub_806DF60 - add r4, r10 - ldr r1, [r4] - adds r0, r6, 0 - bl _call_via_r1 -_0806DCB0: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x5 - bls _0806DC50 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0806DCC8: .4byte gSprites -_0806DCCC: .4byte gPlayerParty -_0806DCD0: .4byte gSpriteTemplate_837660C - thumb_func_end sub_806DC34 - - thumb_func_start sub_806DCD4 -sub_806DCD4: @ 806DCD4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 16 - lsrs r7, r2, 16 - bl sub_806DDA0 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0806DD2C @ =gSpriteTemplate_837660C - movs r1, 0xFA - movs r2, 0xAA - movs r3, 0x4 - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _0806DD30 @ =gSprites - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r5, r0, r1 - movs r0, 0x4 - strh r0, [r5, 0x24] - movs r0, 0xA - strh r0, [r5, 0x26] - strh r4, [r5, 0x3C] - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - strh r6, [r0, 0x3C] - cmp r7, 0 - bne _0806DD34 - adds r0, r5, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _0806DD5C - .align 2, 0 -_0806DD2C: .4byte gSpriteTemplate_837660C -_0806DD30: .4byte gSprites -_0806DD34: - adds r0, r7, 0 - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - beq _0806DD46 - adds r0, r5, 0 - movs r1, 0x1 - b _0806DD4A -_0806DD46: - adds r0, r5, 0 - movs r1, 0 -_0806DD4A: - bl StartSpriteAnim - adds r2, r5, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_0806DD5C: - ldr r2, _0806DD78 @ =gSprites - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r1, r2, 0 - adds r1, 0x1C - adds r1, r0, r1 - adds r0, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0806DD78: .4byte gSprites - thumb_func_end sub_806DCD4 - - thumb_func_start sub_806DD7C -sub_806DD7C: @ 806DD7C - ldrh r2, [r0, 0x3C] - lsls r2, 24 - lsrs r2, 24 - ldr r3, _0806DD9C @ =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r3 - ldrh r2, [r1, 0x24] - ldrh r3, [r1, 0x20] - adds r2, r3 - strh r2, [r0, 0x20] - ldrh r1, [r1, 0x22] - strh r1, [r0, 0x22] - bx lr - .align 2, 0 -_0806DD9C: .4byte gSprites - thumb_func_end sub_806DD7C - - thumb_func_start sub_806DDA0 -sub_806DDA0: @ 806DDA0 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r0, r1, 24 - cmp r0, 0x5 - bhi _0806DE38 - lsls r0, 2 - ldr r1, _0806DDB8 @ =_0806DDBC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806DDB8: .4byte _0806DDBC - .align 2, 0 -_0806DDBC: - .4byte _0806DE38 - .4byte _0806DDD4 - .4byte _0806DDE8 - .4byte _0806DDFC - .4byte _0806DE10 - .4byte _0806DE24 -_0806DDD4: - ldr r0, _0806DDE4 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldrb r0, [r1, 0x8] - b _0806DE46 - .align 2, 0 -_0806DDE4: .4byte gTasks -_0806DDE8: - ldr r0, _0806DDF8 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xA] - b _0806DE44 - .align 2, 0 -_0806DDF8: .4byte gTasks -_0806DDFC: - ldr r0, _0806DE0C @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldrb r0, [r1, 0xA] - b _0806DE46 - .align 2, 0 -_0806DE0C: .4byte gTasks -_0806DE10: - ldr r0, _0806DE20 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xC] - b _0806DE44 - .align 2, 0 -_0806DE20: .4byte gTasks -_0806DE24: - ldr r0, _0806DE34 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldrb r0, [r1, 0xC] - b _0806DE46 - .align 2, 0 -_0806DE34: .4byte gTasks -_0806DE38: - ldr r0, _0806DE4C @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] -_0806DE44: - lsrs r0, 8 -_0806DE46: - pop {r1} - bx r1 - .align 2, 0 -_0806DE4C: .4byte gTasks - thumb_func_end sub_806DDA0 - - thumb_func_start sub_806DE50 -sub_806DE50: @ 806DE50 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r0, r1, 24 - lsls r2, 24 - lsrs r4, r2, 24 - cmp r0, 0x5 - bhi _0806DF24 - lsls r0, 2 - ldr r1, _0806DE6C @ =_0806DE70 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806DE6C: .4byte _0806DE70 - .align 2, 0 -_0806DE70: - .4byte _0806DE88 - .4byte _0806DEA0 - .4byte _0806DEC0 - .4byte _0806DED8 - .4byte _0806DEF8 - .4byte _0806DF10 -_0806DE88: - ldr r1, _0806DE9C @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0x8] - lsls r2, r4, 8 - orrs r1, r2 - strh r1, [r0, 0x8] - b _0806DF24 - .align 2, 0 -_0806DE9C: .4byte gTasks -_0806DEA0: - ldr r0, _0806DEB8 @ =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - ldrh r2, [r1, 0x8] - ldr r0, _0806DEBC @ =0xffffff00 - ands r0, r2 - orrs r0, r4 - strh r0, [r1, 0x8] - b _0806DF24 - .align 2, 0 -_0806DEB8: .4byte gTasks -_0806DEBC: .4byte 0xffffff00 -_0806DEC0: - ldr r1, _0806DED4 @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0xA] - lsls r2, r4, 8 - orrs r1, r2 - strh r1, [r0, 0xA] - b _0806DF24 - .align 2, 0 -_0806DED4: .4byte gTasks -_0806DED8: - ldr r0, _0806DEF0 @ =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - ldrh r2, [r1, 0xA] - ldr r0, _0806DEF4 @ =0xffffff00 - ands r0, r2 - orrs r0, r4 - strh r0, [r1, 0xA] - b _0806DF24 - .align 2, 0 -_0806DEF0: .4byte gTasks -_0806DEF4: .4byte 0xffffff00 -_0806DEF8: - ldr r1, _0806DF0C @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0xC] - lsls r2, r4, 8 - orrs r1, r2 - strh r1, [r0, 0xC] - b _0806DF24 - .align 2, 0 -_0806DF0C: .4byte gTasks -_0806DF10: - ldr r0, _0806DF2C @ =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - ldrh r2, [r1, 0xC] - ldr r0, _0806DF30 @ =0xffffff00 - ands r0, r2 - orrs r0, r4 - strh r0, [r1, 0xC] -_0806DF24: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806DF2C: .4byte gTasks -_0806DF30: .4byte 0xffffff00 - thumb_func_end sub_806DE50 - - thumb_func_start sub_806DF34 -sub_806DF34: @ 806DF34 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - bl sub_806DDA0 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0806DF5C @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r1, 0x3C] - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0806DF5C: .4byte gSprites - thumb_func_end sub_806DF34 - - thumb_func_start sub_806DF60 -sub_806DF60: @ 806DF60 - push {r4-r6,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - adds r1, r4, 0 - bl sub_806DF34 - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - movs r0, 0x64 - adds r1, r4, 0 - muls r1, r0 - ldr r0, _0806DFA4 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - cmp r0, 0 - bne _0806DFAC - ldr r1, _0806DFA8 @ =gSprites - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _0806DFF6 - .align 2, 0 -_0806DFA4: .4byte gPlayerParty -_0806DFA8: .4byte gSprites -_0806DFAC: - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - beq _0806DFD8 - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - ldr r0, _0806DFD4 @ =gSprites - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x1 - b _0806DFE6 - .align 2, 0 -_0806DFD4: .4byte gSprites -_0806DFD8: - lsls r4, r6, 4 - adds r4, r6 - lsls r4, 2 - ldr r0, _0806DFFC @ =gSprites - adds r4, r0 - adds r0, r4, 0 - movs r1, 0 -_0806DFE6: - bl StartSpriteAnim - adds r4, 0x3E - ldrb r1, [r4] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r4] -_0806DFF6: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806DFFC: .4byte gSprites - thumb_func_end sub_806DF60 - - thumb_func_start box_print -box_print: @ 806E000 - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r6, r2, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - str r0, [sp] - ldr r5, _0806E040 @ =gTileBuffer - ldr r2, _0806E044 @ =0x01000100 - mov r0, sp - adds r1, r5, 0 - bl CpuFastSet - ldr r0, _0806E048 @ =gWindowConfig_81E6CAC - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_8004E3C - lsls r4, 10 - ldr r0, _0806E04C @ =0x06014000 - adds r4, r0 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x80 - bl CpuFastSet - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806E040: .4byte gTileBuffer -_0806E044: .4byte 0x01000100 -_0806E048: .4byte gWindowConfig_81E6CAC -_0806E04C: .4byte 0x06014000 - thumb_func_end box_print - - thumb_func_start sub_806E050 -sub_806E050: @ 806E050 - push {r4,r5,lr} - sub sp, 0xC - adds r4, r0, 0 - adds r5, r1, 0 - adds r0, r2, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - mov r1, sp - bl GetMonNickname - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl box_print - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_806E050 - - thumb_func_start sub_806E07C -sub_806E07C: @ 806E07C - push {r4-r6,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0806E0BC - bl sub_806B528 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806E0AA - adds r0, r5, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl sub_806E050 - b _0806E0BC -_0806E0AA: - bl battle_type_is_double - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - adds r2, r4, 0 - bl sub_806E050 -_0806E0BC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_806E07C - - thumb_func_start sub_806E0C4 -sub_806E0C4: @ 806E0C4 - push {r4-r6,lr} - movs r4, 0 - movs r6, 0x64 - ldr r5, _0806E0E8 @ =gPlayerParty -_0806E0CC: - adds r1, r4, 0 - muls r1, r6 - adds r1, r5 - adds r0, r4, 0 - bl sub_806E07C - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0806E0CC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806E0E8: .4byte gPlayerParty - thumb_func_end sub_806E0C4 - - thumb_func_start GetMonNickname -GetMonNickname: @ 806E0EC - push {r4,lr} - adds r4, r1, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - adds r0, r4, 0 - bl StringGetEnd10 - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetMonNickname - - thumb_func_start sub_806E104 -sub_806E104: @ 806E104 - push {r4,r5,lr} - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r4, _0806E15C @ =gUnknown_08376738 - lsrs r0, 22 - lsls r3, r1, 1 - adds r3, r1 - lsls r3, 3 - adds r0, r3 - adds r0, r4 - ldrb r1, [r0] - subs r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - ldrb r0, [r0, 0x1] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 19 - adds r1, r0 - lsls r1, 1 - ldr r0, _0806E160 @ =0x0600f000 - adds r4, r1, r0 - lsls r2, 26 - lsrs r2, 24 - movs r3, 0 - movs r0, 0xC6 - lsls r0, 1 - adds r2, r0 - ldr r0, _0806E164 @ =0xffffb000 - adds r5, r0, 0 -_0806E142: - lsls r0, r3, 1 - adds r0, r4 - adds r1, r2, r3 - orrs r1, r5 - strh r1, [r0] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _0806E142 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0806E15C: .4byte gUnknown_08376738 -_0806E160: .4byte 0x0600f000 -_0806E164: .4byte 0xffffb000 - thumb_func_end sub_806E104 - - thumb_func_start sub_806E168 -sub_806E168: @ 806E168 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_806B528 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806E17E - movs r3, 0x2 - b _0806E186 -_0806E17E: - bl battle_type_is_double - lsls r0, 24 - lsrs r3, r0, 24 -_0806E186: - ldr r1, _0806E1C8 @ =gUnknown_08376738 - lsls r2, r4, 2 - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 3 - adds r2, r0 - adds r2, r1 - ldrb r1, [r2] - subs r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - ldrb r0, [r2, 0x1] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 19 - adds r1, r0 - lsls r1, 1 - ldr r0, _0806E1CC @ =0x0600f000 - adds r1, r0 - movs r3, 0 - movs r2, 0 -_0806E1B0: - lsls r0, r3, 1 - adds r0, r1 - strh r2, [r0] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _0806E1B0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806E1C8: .4byte gUnknown_08376738 -_0806E1CC: .4byte 0x0600f000 - thumb_func_end sub_806E168 - - thumb_func_start sub_806E1D0 -sub_806E1D0: @ 806E1D0 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 19 - adds r1, r2 - lsls r1, 1 - ldr r2, _0806E1F0 @ =0x0600f000 - adds r1, r2 - movs r2, 0x86 - lsls r2, 1 - adds r0, r2 - strh r0, [r1] - bx lr - .align 2, 0 -_0806E1F0: .4byte 0x0600f000 - thumb_func_end sub_806E1D0 - - thumb_func_start sub_806E1F4 -sub_806E1F4: @ 806E1F4 - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r2, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r3, _0806E278 @ =gUnknown_08376738 - lsls r2, r4, 2 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r2, r0 - adds r2, r3 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - subs r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - movs r0, 0x40 - bl sub_806E1D0 - ldr r6, _0806E27C @ =gStringVar1 - movs r0, 0xFC - strb r0, [r6] - movs r0, 0x12 - strb r0, [r6, 0x1] - movs r0, 0x8 - strb r0, [r6, 0x2] - adds r0, r6, 0x3 - adds r1, r5, 0 - bl ConvertIntToDecimalString - movs r0, 0 - str r0, [sp] - ldr r5, _0806E280 @ =gUnknown_02039460 - ldr r2, _0806E284 @ =0x01000020 - mov r0, sp - adds r1, r5, 0 - bl CpuFastSet - ldr r0, _0806E288 @ =gWindowConfig_81E6CAC - ldr r2, _0806E28C @ =0xffffff00 - adds r1, r5, r2 - adds r2, r6, 0 - bl sub_8004E3C - lsls r4, 10 - ldr r0, _0806E290 @ =0x06014200 - adds r4, r0 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x20 - bl CpuFastSet - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806E278: .4byte gUnknown_08376738 -_0806E27C: .4byte gStringVar1 -_0806E280: .4byte gUnknown_02039460 -_0806E284: .4byte 0x01000020 -_0806E288: .4byte gWindowConfig_81E6CAC -_0806E28C: .4byte 0xffffff00 -_0806E290: .4byte 0x06014200 - thumb_func_end sub_806E1F4 - - thumb_func_start sub_806E294 -sub_806E294: @ 806E294 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r0, r2, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - movs r1, 0x38 - bl GetMonData - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_806E1F4 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_806E294 - - thumb_func_start sub_806E2C0 -sub_806E2C0: @ 806E2C0 - push {r4-r7,lr} - adds r5, r1, 0 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0806E32E - adds r0, r5, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0806E32E - adds r0, r5, 0 - bl sub_80A1CD8 - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_806B528 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806E2FA - movs r6, 0x2 - b _0806E302 -_0806E2FA: - bl battle_type_is_double - lsls r0, 24 - lsrs r6, r0, 24 -_0806E302: - cmp r4, 0 - beq _0806E31A - cmp r4, 0x6 - beq _0806E31A - subs r2, r4, 0x1 - lsls r2, 24 - lsrs r2, 24 - adds r0, r7, 0 - adds r1, r6, 0 - bl sub_806E104 - b _0806E324 -_0806E31A: - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_806E294 -_0806E324: - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_806E3C0 -_0806E32E: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_806E2C0 - - thumb_func_start sub_806E334 -sub_806E334: @ 806E334 - push {r4-r6,lr} - movs r4, 0 - movs r6, 0x64 - ldr r5, _0806E358 @ =gPlayerParty -_0806E33C: - adds r1, r4, 0 - muls r1, r6 - adds r1, r5 - adds r0, r4, 0 - bl sub_806E2C0 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0806E33C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806E358: .4byte gPlayerParty - thumb_func_end sub_806E334 - - thumb_func_start sub_806E35C -sub_806E35C: @ 806E35C - push {r4-r7,lr} - ldr r4, [sp, 0x14] - lsls r0, 16 - lsrs r0, 16 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r5, r2, 24 - lsls r3, 24 - lsrs r6, r3, 24 - adds r1, r4, 0 - bl sub_8040D8C - cmp r0, 0 - bne _0806E3BA - ldr r2, _0806E3A4 @ =gUnknown_08376738 - lsls r1, r6, 2 - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 3 - adds r1, r0 - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x3 - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r0, [r1, 0x1] - adds r0, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r7, 0 - beq _0806E3A8 - cmp r7, 0xFE - beq _0806E3B2 - b _0806E3BA - .align 2, 0 -_0806E3A4: .4byte gUnknown_08376738 -_0806E3A8: - movs r0, 0x42 - adds r1, r3, 0 - bl sub_806E1D0 - b _0806E3BA -_0806E3B2: - movs r0, 0x44 - adds r1, r3, 0 - bl sub_806E1D0 -_0806E3BA: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_806E35C - - thumb_func_start sub_806E3C0 -sub_806E3C0: @ 806E3C0 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - mov r8, r0 - adds r6, r1, 0 - adds r5, r2, 0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r6, 24 - lsrs r6, 24 - ldr r0, _0806E41C @ =gStringVar1 - mov r9, r0 - adds r0, r5, 0 - mov r1, r9 - bl GetMonNickname - adds r0, r5, 0 - movs r1, 0x41 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl GetMonGender - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r9 - str r0, [sp] - adds r0, r4, 0 - adds r2, r6, 0 - mov r3, r8 - bl sub_806E35C - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806E41C: .4byte gStringVar1 - thumb_func_end sub_806E3C0 - - thumb_func_start sub_806E420 -sub_806E420: @ 806E420 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r1, r2, 0 - adds r5, r3, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 16 - lsrs r1, 16 - lsls r5, 16 - lsrs r5, 16 - ldr r2, _0806E48C @ =gStringVar1 - adds r0, r2, 0 - movs r2, 0xF - movs r3, 0x1 - bl sub_8072C14 - adds r2, r0, 0 - movs r0, 0xBA - strb r0, [r2] - adds r2, 0x1 - adds r0, r2, 0 - adds r1, r5, 0 - movs r2, 0x23 - movs r3, 0x1 - bl sub_8072C14 - movs r0, 0 - str r0, [sp] - ldr r5, _0806E490 @ =gUnknown_02039460 - ldr r2, _0806E494 @ =0x01000040 - mov r0, sp - adds r1, r5, 0 - bl CpuFastSet - ldr r0, _0806E498 @ =gWindowConfig_81E6CAC - ldr r2, _0806E49C @ =0xffffff00 - adds r1, r5, r2 - ldr r2, _0806E48C @ =gStringVar1 - bl sub_8004E3C - lsls r4, 10 - ldr r0, _0806E4A0 @ =0x06014300 - adds r4, r0 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x40 - bl CpuFastSet - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0806E48C: .4byte gStringVar1 -_0806E490: .4byte gUnknown_02039460 -_0806E494: .4byte 0x01000040 -_0806E498: .4byte gWindowConfig_81E6CAC -_0806E49C: .4byte 0xffffff00 -_0806E4A0: .4byte 0x06014300 - thumb_func_end sub_806E420 - - thumb_func_start sub_806E4A4 -sub_806E4A4: @ 806E4A4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r5, r0, 0 - adds r6, r1, 0 - mov r8, r2 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - mov r0, r8 - movs r1, 0x39 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r8 - movs r1, 0x3A - bl GetMonData - adds r3, r0, 0 - lsls r3, 16 - lsrs r3, 16 - adds r0, r5, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_806E420 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_806E4A4 - - thumb_func_start sub_806E4E8 -sub_806E4E8: @ 806E4E8 - push {r4-r6,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0806E534 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0806E534 - bl sub_806B528 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806E522 - adds r0, r5, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl sub_806E4A4 - b _0806E534 -_0806E522: - bl battle_type_is_double - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - adds r2, r4, 0 - bl sub_806E4A4 -_0806E534: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_806E4E8 - - thumb_func_start sub_806E53C -sub_806E53C: @ 806E53C - push {r4-r6,lr} - movs r4, 0 - movs r6, 0x64 - ldr r5, _0806E560 @ =gPlayerParty -_0806E544: - adds r1, r4, 0 - muls r1, r6 - adds r1, r5 - adds r0, r4, 0 - bl sub_806E4E8 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0806E544 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806E560: .4byte gPlayerParty - thumb_func_end sub_806E53C - - thumb_func_start unref_sub_806E564 -unref_sub_806E564: @ 806E564 - bx lr - thumb_func_end unref_sub_806E564 - - thumb_func_start unref_sub_806E568 -unref_sub_806E568: @ 806E568 - bx lr - thumb_func_end unref_sub_806E568 - - thumb_func_start nullsub_12 -nullsub_12: @ 806E56C - bx lr - thumb_func_end nullsub_12 - - thumb_func_start nullsub_13 -nullsub_13: @ 806E570 - bx lr - thumb_func_end nullsub_13 - - thumb_func_start sub_806E574 -sub_806E574: @ 806E574 - push {r4-r6,lr} - sub sp, 0x18 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 16 - lsrs r2, 16 - lsls r3, 16 - lsrs r3, 16 - ldr r0, _0806E624 @ =0xffff8000 - str r0, [sp, 0x14] - str r3, [sp] - str r2, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - lsls r2, 16 - asrs r2, 16 - lsls r3, 16 - asrs r3, 16 - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_8046200 - lsls r0, 24 - lsrs r3, r0, 24 - adds r4, r3, 0 - cmp r3, 0x2 - bls _0806E5BE - mov r2, sp - ldrb r1, [r2, 0xC] - movs r0, 0x20 - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0xC] -_0806E5BE: - cmp r3, 0x2 - bne _0806E5D2 - mov r2, sp - ldrb r1, [r2, 0xC] - movs r0, 0x20 - negs r0, r0 - ands r0, r1 - movs r1, 0x5 - orrs r0, r1 - strb r0, [r2, 0xC] -_0806E5D2: - cmp r4, 0x1 - bhi _0806E5E6 - mov r2, sp - ldrb r1, [r2, 0xC] - movs r0, 0x20 - negs r0, r0 - ands r0, r1 - movs r1, 0x6 - orrs r0, r1 - strb r0, [r2, 0xC] -_0806E5E6: - movs r0, 0x80 - lsls r0, 1 - str r0, [sp, 0x10] - ldr r2, _0806E628 @ =gUnknown_08376858 - lsls r1, r6, 2 - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 3 - adds r1, r0 - adds r1, r2 - ldr r4, [r1] - add r1, sp, 0x14 - mov r0, sp - adds r2, r4, 0 - movs r3, 0 - bl sub_80460C8 - subs r4, 0x4 - ldr r1, _0806E62C @ =0x00003109 - adds r0, r1, 0 - strh r0, [r4] - adds r1, 0x1 - adds r0, r1, 0 - strh r0, [r4, 0x2] - adds r1, 0x1 - adds r0, r1, 0 - strh r0, [r4, 0x10] - add sp, 0x18 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806E624: .4byte 0xffff8000 -_0806E628: .4byte gUnknown_08376858 -_0806E62C: .4byte 0x00003109 - thumb_func_end sub_806E574 - - thumb_func_start sub_806E630 -sub_806E630: @ 806E630 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r5, r0, 0 - adds r6, r1, 0 - mov r8, r2 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - mov r0, r8 - movs r1, 0x39 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r8 - movs r1, 0x3A - bl GetMonData - adds r3, r0, 0 - lsls r3, 16 - lsrs r3, 16 - adds r0, r5, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_806E574 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_806E630 - - thumb_func_start sub_806E674 -sub_806E674: @ 806E674 - push {r4-r6,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0806E6C0 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0806E6C0 - bl sub_806B528 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806E6AE - adds r0, r5, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl sub_806E630 - b _0806E6C0 -_0806E6AE: - bl battle_type_is_double - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - adds r2, r4, 0 - bl sub_806E630 -_0806E6C0: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_806E674 - - thumb_func_start sub_806E6C8 -sub_806E6C8: @ 806E6C8 - push {r4-r6,lr} - movs r4, 0 - movs r6, 0x64 - ldr r5, _0806E6EC @ =gPlayerParty -_0806E6D0: - adds r1, r4, 0 - muls r1, r6 - adds r1, r5 - adds r0, r4, 0 - bl sub_806E674 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0806E6D0 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806E6EC: .4byte gPlayerParty - thumb_func_end sub_806E6C8 - - thumb_func_start sub_806E6F0 -sub_806E6F0: @ 806E6F0 - push {r4,r5,lr} - sub sp, 0x64 - adds r4, r0, 0 - adds r5, r1, 0 - mov r0, sp - adds r1, r4, 0 - movs r2, 0x64 - bl memcpy - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x64 - bl memcpy - adds r0, r5, 0 - mov r1, sp - movs r2, 0x64 - bl memcpy - add sp, 0x64 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_806E6F0 - - thumb_func_start sub_806E720 -sub_806E720: @ 806E720 - push {r4,lr} - lsls r0, 24 - lsrs r0, 21 - adds r0, r3 - ldrb r4, [r0] - lsls r4, 25 - movs r3, 0x80 - lsls r3, 18 - adds r4, r3 - lsrs r4, 24 - ldrb r0, [r0, 0x1] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - movs r3, 0x1E - subs r3, r0 - strb r3, [r1] - movs r0, 0x14 - subs r0, r4 - strb r0, [r2] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_806E720 - - thumb_func_start sub_806E750 -sub_806E750: @ 806E750 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0xC - adds r5, r0, 0 - adds r4, r1, 0 - mov r9, r2 - adds r6, r3, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - movs r0, 0x9 - add r0, sp - mov r8, r0 - adds r0, r5, 0 - add r1, sp, 0x8 - mov r2, r8 - adds r3, r4, 0 - bl sub_806E720 - add r0, sp, 0x8 - ldrb r0, [r0] - mov r2, r8 - ldrb r1, [r2] - lsls r5, 3 - adds r5, r4 - ldrb r2, [r5, 0x1] - ldrb r3, [r5] - mov r4, r9 - str r4, [sp] - ldr r4, [r5, 0x4] - str r4, [sp, 0x4] - bl sub_8089C50 - add r0, sp, 0x8 - ldrb r1, [r0] - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - ldrb r2, [r0] - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r5] - str r6, [sp] - ldrb r0, [r5, 0x1] - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0 - bl InitMenu - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_806E750 - - thumb_func_start sub_806E7D0 -sub_806E7D0: @ 806E7D0 - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r6, r1, 0 - lsls r4, 24 - lsrs r4, 24 - mov r5, sp - adds r5, 0x1 - adds r0, r4, 0 - mov r1, sp - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_806E720 - mov r0, sp - ldrb r0, [r0] - ldrb r1, [r5] - lsls r4, 3 - adds r4, r6 - ldrb r2, [r4, 0x1] - adds r2, r0, r2 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r4] - lsls r3, 1 - adds r3, r1, r3 - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - bl MenuZeroFillWindowRect - bl sub_8072DEC - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_806E7D0 - - thumb_func_start sub_806E81C -sub_806E81C: @ 806E81C - lsls r0, 24 - lsls r3, 24 - lsrs r3, 24 - lsrs r0, 21 - adds r0, r1 - ldr r0, [r0, 0x4] - adds r0, r3 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r2 - ldr r0, [r0, 0x4] - bx lr - thumb_func_end sub_806E81C - - thumb_func_start sub_806E834 -sub_806E834: @ 806E834 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - ldr r1, _0806E878 @ =gUnknown_0202E8F6 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0x3 - movs r1, 0xE - movs r2, 0x1A - movs r3, 0x13 - bl MenuDrawTextWindow - adds r0, r5, 0 - movs r1, 0x4 - movs r2, 0xF - bl MenuPrintMessage - ldr r0, _0806E87C @ =sub_806E884 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0806E880 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806E878: .4byte gUnknown_0202E8F6 -_0806E87C: .4byte sub_806E884 -_0806E880: .4byte gTasks - thumb_func_end sub_806E834 - - thumb_func_start sub_806E884 -sub_806E884: @ 806E884 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl MenuUpdateWindowText - lsls r0, 24 - cmp r0, 0 - beq _0806E8C0 - ldr r1, _0806E8C8 @ =gUnknown_0202E8F6 - movs r0, 0 - strb r0, [r1] - ldr r1, _0806E8CC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _0806E8BA - movs r0, 0x3 - movs r1, 0xE - movs r2, 0x1A - movs r3, 0x13 - bl MenuZeroFillWindowRect -_0806E8BA: - adds r0, r5, 0 - bl DestroyTask -_0806E8C0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0806E8C8: .4byte gUnknown_0202E8F6 -_0806E8CC: .4byte gTasks - thumb_func_end sub_806E884 - - thumb_func_start sub_806E8D0 -sub_806E8D0: @ 806E8D0 - push {r4,r5,lr} - adds r5, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r5, 16 - lsrs r5, 16 - ldr r4, _0806E8FC @ =0x0201c000 - str r2, [r4, 0x10] - strb r0, [r4, 0x4] - bl sub_806CA38 - strb r0, [r4, 0x5] - strh r5, [r4, 0x6] - ldrb r1, [r4, 0x5] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0806E900 @ =gPlayerParty - adds r0, r1 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0806E8FC: .4byte 0x0201c000 -_0806E900: .4byte gPlayerParty - thumb_func_end sub_806E8D0 - - thumb_func_start sub_806E904 -sub_806E904: @ 806E904 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - adds r0, r4, 0 - bl itemid_is_mail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806E93C - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80A2BC4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _0806E930 - movs r0, 0x1 - b _0806E958 -_0806E930: - ldr r1, _0806E938 @ =gUnknown_0202E8F4 - movs r0, 0x2 - b _0806E940 - .align 2, 0 -_0806E938: .4byte gUnknown_0202E8F4 -_0806E93C: - ldr r1, _0806E960 @ =gUnknown_0202E8F4 - movs r0, 0x1 -_0806E940: - strb r0, [r1] - mov r0, sp - strb r4, [r0] - mov r1, sp - lsrs r0, r4, 8 - strb r0, [r1, 0x1] - adds r0, r5, 0 - movs r1, 0xC - mov r2, sp - bl SetMonData - movs r0, 0 -_0806E958: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806E960: .4byte gUnknown_0202E8F4 - thumb_func_end sub_806E904 - - thumb_func_start sub_806E964 -sub_806E964: @ 806E964 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r8, r2 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r5, r1, 16 - mov r9, r5 - ldr r2, _0806E9D4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r6, r1, r2 - ldr r1, _0806E9D8 @ =TaskDummy - str r1, [r6] - adds r1, r5, 0 - mov r2, r8 - bl sub_806E8D0 - ldr r4, _0806E9DC @ =0x0201c000 - ldr r0, [r4] - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r2, r0, 16 - adds r7, r2, 0 - ldr r1, _0806E9E0 @ =gUnknown_0202E8F4 - movs r0, 0 - strb r0, [r1] - ldr r0, _0806E9E4 @ =gUnknown_0202E8F8 - mov r10, r0 - movs r0, 0 - mov r1, r10 - strh r0, [r1] - cmp r2, 0 - beq _0806EA44 - adds r0, r2, 0 - bl itemid_is_mail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806E9F0 - ldr r0, _0806E9E8 @ =gOtherText_MailMustBeRemoved - movs r1, 0x1 - bl sub_806E834 - ldr r0, _0806E9EC @ =party_menu_link_mon_held_item_object - movs r1, 0x5 - bl CreateTask - b _0806EA78 - .align 2, 0 -_0806E9D4: .4byte gTasks -_0806E9D8: .4byte TaskDummy -_0806E9DC: .4byte 0x0201c000 -_0806E9E0: .4byte gUnknown_0202E8F4 -_0806E9E4: .4byte gUnknown_0202E8F8 -_0806E9E8: .4byte gOtherText_MailMustBeRemoved -_0806E9EC: .4byte party_menu_link_mon_held_item_object -_0806E9F0: - ldr r0, [r4] - ldr r1, _0806EA30 @ =gStringVar1 - bl GetMonNickname - ldr r1, _0806EA34 @ =gStringVar2 - adds r0, r7, 0 - bl CopyItemName - ldr r4, _0806EA38 @ =gStringVar4 - ldr r1, _0806EA3C @ =gOtherText_AlreadyHolding - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_806E834 - ldr r0, _0806EA40 @ =sub_806EBB8 - movs r1, 0x5 - bl CreateTask - adds r0, r5, 0 - bl itemid_is_mail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806EA78 - mov r0, r10 - strh r7, [r0] - b _0806EA78 - .align 2, 0 -_0806EA30: .4byte gStringVar1 -_0806EA34: .4byte gStringVar2 -_0806EA38: .4byte gStringVar4 -_0806EA3C: .4byte gOtherText_AlreadyHolding -_0806EA40: .4byte sub_806EBB8 -_0806EA44: - ldr r0, [r4] - adds r1, r5, 0 - bl sub_806E904 - adds r0, r5, 0 - movs r1, 0x1 - bl RemoveBagItem - adds r0, r5, 0 - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - beq _0806EA66 - mov r1, r8 - str r1, [r6] - b _0806EA78 -_0806EA66: - ldrb r0, [r4, 0x5] - mov r1, r9 - movs r2, 0x1 - bl sub_806EBF0 - ldr r0, _0806EA88 @ =party_menu_link_mon_held_item_object - movs r1, 0x5 - bl CreateTask -_0806EA78: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0806EA88: .4byte party_menu_link_mon_held_item_object - thumb_func_end sub_806E964 - - thumb_func_start party_menu_link_mon_held_item_object -party_menu_link_mon_held_item_object: @ 806EA8C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0806EAC0 @ =gUnknown_0202E8F6 - ldrb r0, [r0] - cmp r0, 0 - bne _0806EABA - ldr r4, _0806EAC4 @ =0x0201c000 - ldrb r0, [r4, 0x4] - ldrb r1, [r4, 0x5] - bl sub_806DF60 - ldr r2, _0806EAC8 @ =gTasks - ldrb r1, [r4, 0x4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, [r4, 0x10] - str r1, [r0] - adds r0, r5, 0 - bl DestroyTask -_0806EABA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0806EAC0: .4byte gUnknown_0202E8F6 -_0806EAC4: .4byte 0x0201c000 -_0806EAC8: .4byte gTasks - thumb_func_end party_menu_link_mon_held_item_object - - thumb_func_start sub_806EACC -sub_806EACC: @ 806EACC - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - bne _0806EB74 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl MenuZeroFillWindowRect - ldr r4, _0806EB30 @ =0x0201c000 - ldr r0, [r4] - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - ldrh r0, [r4, 0x6] - movs r1, 0x1 - bl RemoveBagItem - adds r0, r5, 0 - movs r1, 0x1 - bl AddBagItem - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806EB5C - ldr r0, [r4] - ldrh r1, [r4, 0x6] - bl sub_806E904 - ldrh r0, [r4, 0x6] - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - beq _0806EB34 - ldrb r0, [r4, 0x5] - adds r1, r5, 0 - movs r2, 0x1 - bl sub_806EDB4 - b _0806EB9A - .align 2, 0 -_0806EB30: .4byte 0x0201c000 -_0806EB34: - ldrh r0, [r4, 0x6] - ldr r1, _0806EB50 @ =gStringVar1 - bl CopyItemName - ldr r4, _0806EB54 @ =gStringVar4 - ldr r1, _0806EB58 @ =gOtherText_TakenAndReplaced - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_806E834 - b _0806EB9A - .align 2, 0 -_0806EB50: .4byte gStringVar1 -_0806EB54: .4byte gStringVar4 -_0806EB58: .4byte gOtherText_TakenAndReplaced -_0806EB5C: - ldr r0, _0806EB70 @ =gOtherText_BagFullCannotRemoveItem - movs r1, 0 - bl sub_806E834 - ldrh r0, [r4, 0x6] - movs r1, 0x1 - bl AddBagItem - b _0806EB9A - .align 2, 0 -_0806EB70: .4byte gOtherText_BagFullCannotRemoveItem -_0806EB74: - cmp r1, 0x1 - beq _0806EB80 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _0806EBA8 -_0806EB80: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _0806EB8E - movs r0, 0x5 - bl PlaySE -_0806EB8E: - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl MenuZeroFillWindowRect -_0806EB9A: - ldr r0, _0806EBB0 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _0806EBB4 @ =party_menu_link_mon_held_item_object - str r0, [r1] -_0806EBA8: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806EBB0: .4byte gTasks -_0806EBB4: .4byte party_menu_link_mon_held_item_object - thumb_func_end sub_806EACC - - thumb_func_start sub_806EBB8 -sub_806EBB8: @ 806EBB8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0806EBE4 @ =gUnknown_0202E8F6 - ldrb r0, [r0] - cmp r0, 0 - bne _0806EBDE - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r0, _0806EBE8 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0806EBEC @ =sub_806EACC - str r0, [r1] -_0806EBDE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806EBE4: .4byte gUnknown_0202E8F6 -_0806EBE8: .4byte gTasks -_0806EBEC: .4byte sub_806EACC - thumb_func_end sub_806EBB8 - - thumb_func_start sub_806EBF0 -sub_806EBF0: @ 806EBF0 - push {r4,r5,lr} - adds r4, r1, 0 - adds r5, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0806EC30 @ =gPlayerParty - adds r0, r1 - ldr r1, _0806EC34 @ =gStringVar1 - bl GetMonNickname - ldr r1, _0806EC38 @ =gStringVar2 - adds r0, r4, 0 - bl CopyItemName - ldr r4, _0806EC3C @ =gStringVar4 - ldr r1, _0806EC40 @ =gOtherText_WasGivenToHold - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_806E834 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0806EC30: .4byte gPlayerParty -_0806EC34: .4byte gStringVar1 -_0806EC38: .4byte gStringVar2 -_0806EC3C: .4byte gStringVar4 -_0806EC40: .4byte gOtherText_WasGivenToHold - thumb_func_end sub_806EBF0 - - thumb_func_start sub_806EC44 -sub_806EC44: @ 806EC44 - push {r4,r5,lr} - adds r2, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _0806ECA0 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r3 - ldr r3, _0806ECA4 @ =TaskDummy - str r3, [r1] - movs r1, 0 - bl sub_806E8D0 - ldr r5, _0806ECA8 @ =0x0201c000 - ldr r0, [r5] - movs r1, 0xC - bl GetMonData - lsls r0, 16 - ldr r2, _0806ECAC @ =gUnknown_0202E8F4 - movs r1, 0 - strb r1, [r2] - movs r1, 0xF8 - lsls r1, 6 - adds r2, r5, r1 - ldrb r1, [r2] - adds r1, 0x6 - ldrb r2, [r2, 0x2] - adds r1, r2 - lsls r2, r1, 3 - adds r2, r1 - lsls r2, 2 - ldr r1, _0806ECB0 @ =gSaveBlock1 + 0x2B4C - adds r4, r2, r1 - cmp r0, 0 - beq _0806ECBC - ldr r0, _0806ECB4 @ =gOtherText_PokeHoldingItemCantMail - movs r1, 0x1 - bl sub_806E834 - ldr r0, _0806ECB8 @ =party_menu_link_mon_held_item_object - movs r1, 0x5 - bl CreateTask - b _0806ECDA - .align 2, 0 -_0806ECA0: .4byte gTasks -_0806ECA4: .4byte TaskDummy -_0806ECA8: .4byte 0x0201c000 -_0806ECAC: .4byte gUnknown_0202E8F4 -_0806ECB0: .4byte gSaveBlock1 + 0x2B4C -_0806ECB4: .4byte gOtherText_PokeHoldingItemCantMail -_0806ECB8: .4byte party_menu_link_mon_held_item_object -_0806ECBC: - ldr r0, [r5] - adds r1, r4, 0 - bl sub_80A2D88 - adds r0, r4, 0 - bl sub_80A2B40 - ldr r0, _0806ECE0 @ =gOtherText_MailTransferredMailbox - movs r1, 0x1 - bl sub_806E834 - ldr r0, _0806ECE4 @ =party_menu_link_mon_held_item_object - movs r1, 0x5 - bl CreateTask -_0806ECDA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0806ECE0: .4byte gOtherText_MailTransferredMailbox -_0806ECE4: .4byte party_menu_link_mon_held_item_object - thumb_func_end sub_806EC44 - - thumb_func_start sub_806ECE8 -sub_806ECE8: @ 806ECE8 - push {r4-r6,lr} - sub sp, 0x4 - adds r2, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _0806ED38 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r3 - ldr r3, _0806ED3C @ =TaskDummy - str r3, [r1] - movs r1, 0 - bl sub_806E8D0 - ldr r5, _0806ED40 @ =0x0201c000 - ldr r0, [r5] - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - adds r6, r4, 0 - cmp r4, 0 - bne _0806ED50 - ldr r4, _0806ED44 @ =gStringVar4 - ldr r1, _0806ED48 @ =gOtherText_NotHoldingAnything - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_806E834 - ldr r0, _0806ED4C @ =party_menu_link_mon_held_item_object - movs r1, 0x5 - bl CreateTask - b _0806EDA2 - .align 2, 0 -_0806ED38: .4byte gTasks -_0806ED3C: .4byte TaskDummy -_0806ED40: .4byte 0x0201c000 -_0806ED44: .4byte gStringVar4 -_0806ED48: .4byte gOtherText_NotHoldingAnything -_0806ED4C: .4byte party_menu_link_mon_held_item_object -_0806ED50: - mov r0, sp - movs r1, 0 - strb r1, [r0] - strb r1, [r0, 0x1] - adds r0, r4, 0 - movs r1, 0x1 - bl AddBagItem - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806ED92 - adds r0, r4, 0 - bl itemid_is_mail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806ED7C - ldr r0, [r5] - bl sub_80A2DF8 -_0806ED7C: - ldrb r0, [r5, 0x5] - adds r1, r6, 0 - movs r2, 0 - bl sub_806EDB4 - ldr r0, [r5] - movs r1, 0xC - mov r2, sp - bl SetMonData - b _0806ED9A -_0806ED92: - ldr r0, _0806EDAC @ =gOtherText_BagFullCannotRemoveItem - movs r1, 0 - bl sub_806E834 -_0806ED9A: - ldr r0, _0806EDB0 @ =party_menu_link_mon_held_item_object - movs r1, 0x5 - bl CreateTask -_0806EDA2: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806EDAC: .4byte gOtherText_BagFullCannotRemoveItem -_0806EDB0: .4byte party_menu_link_mon_held_item_object - thumb_func_end sub_806ECE8 - - thumb_func_start sub_806EDB4 -sub_806EDB4: @ 806EDB4 - push {r4,r5,lr} - adds r4, r1, 0 - adds r5, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0806EDF4 @ =gPlayerParty - adds r0, r1 - ldr r1, _0806EDF8 @ =gStringVar1 - bl GetMonNickname - ldr r1, _0806EDFC @ =gStringVar2 - adds r0, r4, 0 - bl CopyItemName - ldr r4, _0806EE00 @ =gStringVar4 - ldr r1, _0806EE04 @ =gOtherText_ReceivedTheThingFrom - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_806E834 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0806EDF4: .4byte gPlayerParty -_0806EDF8: .4byte gStringVar1 -_0806EDFC: .4byte gStringVar2 -_0806EE00: .4byte gStringVar4 -_0806EE04: .4byte gOtherText_ReceivedTheThingFrom - thumb_func_end sub_806EDB4 - - thumb_func_start sub_806EE08 -sub_806EE08: @ 806EE08 - push {r4,lr} - adds r2, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _0806EE48 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r3 - ldr r3, _0806EE4C @ =TaskDummy - str r3, [r1] - movs r1, 0 - bl sub_806E8D0 - ldr r4, _0806EE50 @ =0x0201c000 - ldr r0, [r4] - movs r1, 0xC - bl GetMonData - strh r0, [r4, 0x6] - ldr r0, _0806EE54 @ =gOtherText_SendRemovedMailPrompt - movs r1, 0x1 - bl sub_806E834 - ldr r0, _0806EE58 @ =sub_806EFEC - movs r1, 0x5 - bl CreateTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806EE48: .4byte gTasks -_0806EE4C: .4byte TaskDummy -_0806EE50: .4byte 0x0201c000 -_0806EE54: .4byte gOtherText_SendRemovedMailPrompt -_0806EE58: .4byte sub_806EFEC - thumb_func_end sub_806EE08 - - thumb_func_start sub_806EE5C -sub_806EE5C: @ 806EE5C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - bne _0806EEB0 - ldr r5, _0806EE90 @ =0x0201c000 - ldrh r0, [r5, 0x6] - movs r1, 0x1 - bl AddBagItem - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806EE98 - ldr r0, [r5] - bl sub_80A2DF8 - ldr r0, _0806EE94 @ =gOtherText_MailTaken - movs r1, 0 - bl sub_806E834 - b _0806EEA0 - .align 2, 0 -_0806EE90: .4byte 0x0201c000 -_0806EE94: .4byte gOtherText_MailTaken -_0806EE98: - ldr r0, _0806EEAC @ =gOtherText_BagFullCannotRemoveItem - movs r1, 0 - bl sub_806E834 -_0806EEA0: - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - b _0806EEDE - .align 2, 0 -_0806EEAC: .4byte gOtherText_BagFullCannotRemoveItem -_0806EEB0: - cmp r1, 0x1 - beq _0806EEBC - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _0806EEF0 -_0806EEBC: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _0806EECA - movs r0, 0x5 - bl PlaySE -_0806EECA: - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl MenuZeroFillWindowRect - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 -_0806EEDE: - bl MenuZeroFillWindowRect - ldr r0, _0806EEF8 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0806EEFC @ =party_menu_link_mon_held_item_object - str r0, [r1] -_0806EEF0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0806EEF8: .4byte gTasks -_0806EEFC: .4byte party_menu_link_mon_held_item_object - thumb_func_end sub_806EE5C - - thumb_func_start sub_806EF00 -sub_806EF00: @ 806EF00 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0806EF2C @ =gUnknown_0202E8F6 - ldrb r0, [r0] - cmp r0, 0 - bne _0806EF26 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r0, _0806EF30 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0806EF34 @ =sub_806EE5C - str r0, [r1] -_0806EF26: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806EF2C: .4byte gUnknown_0202E8F6 -_0806EF30: .4byte gTasks -_0806EF34: .4byte sub_806EE5C - thumb_func_end sub_806EF00 - - thumb_func_start sub_806EF38 -sub_806EF38: @ 806EF38 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - bne _0806EF9C - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl MenuZeroFillWindowRect - ldr r0, _0806EF70 @ =0x0201c000 - ldr r0, [r0] - bl sub_80A2E78 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _0806EF78 - ldr r0, _0806EF74 @ =gOtherText_MailWasSent - movs r1, 0 - bl sub_806E834 - b _0806EF80 - .align 2, 0 -_0806EF70: .4byte 0x0201c000 -_0806EF74: .4byte gOtherText_MailWasSent -_0806EF78: - ldr r0, _0806EF90 @ =gOtherText_MailboxIsFull - movs r1, 0 - bl sub_806E834 -_0806EF80: - ldr r0, _0806EF94 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0806EF98 @ =party_menu_link_mon_held_item_object - str r0, [r1] - b _0806EFD8 - .align 2, 0 -_0806EF90: .4byte gOtherText_MailboxIsFull -_0806EF94: .4byte gTasks -_0806EF98: .4byte party_menu_link_mon_held_item_object -_0806EF9C: - cmp r1, 0x1 - beq _0806EFA8 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _0806EFD8 -_0806EFA8: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _0806EFB6 - movs r0, 0x5 - bl PlaySE -_0806EFB6: - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl MenuZeroFillWindowRect - ldr r0, _0806EFE0 @ =gOtherText_MailRemovedMessageLost - movs r1, 0x1 - bl sub_806E834 - ldr r1, _0806EFE4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0806EFE8 @ =sub_806EF00 - str r1, [r0] -_0806EFD8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806EFE0: .4byte gOtherText_MailRemovedMessageLost -_0806EFE4: .4byte gTasks -_0806EFE8: .4byte sub_806EF00 - thumb_func_end sub_806EF38 - - thumb_func_start sub_806EFEC -sub_806EFEC: @ 806EFEC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0806F018 @ =gUnknown_0202E8F6 - ldrb r0, [r0] - cmp r0, 0 - bne _0806F012 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r0, _0806F01C @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0806F020 @ =sub_806EF38 - str r0, [r1] -_0806F012: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806F018: .4byte gUnknown_0202E8F6 -_0806F01C: .4byte gTasks -_0806F020: .4byte sub_806EF38 - thumb_func_end sub_806EFEC - - thumb_func_start ItemIdToBattleMoveId -ItemIdToBattleMoveId: @ 806F024 - lsls r0, 16 - ldr r1, _0806F034 @ =0xfedf0000 - adds r0, r1 - ldr r1, _0806F038 @ =gUnknown_08376504 - lsrs r0, 15 - adds r0, r1 - ldrh r0, [r0] - bx lr - .align 2, 0 -_0806F034: .4byte 0xfedf0000 -_0806F038: .4byte gUnknown_08376504 - thumb_func_end ItemIdToBattleMoveId - - thumb_func_start pokemon_has_move -pokemon_has_move: @ 806F03C - push {r4-r6,lr} - adds r6, r0, 0 - lsls r1, 16 - lsrs r5, r1, 16 - movs r4, 0 -_0806F046: - adds r1, r4, 0 - adds r1, 0xD - adds r0, r6, 0 - bl GetMonData - cmp r0, r5 - bne _0806F058 - movs r0, 0x1 - b _0806F064 -_0806F058: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _0806F046 - movs r0, 0 -_0806F064: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end pokemon_has_move - - thumb_func_start sub_806F06C -sub_806F06C: @ 806F06C - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 16 - lsrs r5, 16 - movs r0, 0x5 - bl PlaySE - ldr r1, _0806F0A8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0806F0AC @ =TaskDummy - str r1, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_806E8D0 - ldr r0, _0806F0B0 @ =sub_806F0B4 - movs r1, 0x5 - bl CreateTask - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806F0A8: .4byte gTasks -_0806F0AC: .4byte TaskDummy -_0806F0B0: .4byte sub_806F0B4 - thumb_func_end sub_806F06C - - thumb_func_start sub_806F0B4 -sub_806F0B4: @ 806F0B4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - adds r7, r6, 0 - ldr r5, _0806F114 @ =0x0201c000 - ldr r0, [r5] - ldr r1, _0806F118 @ =gStringVar1 - bl GetMonNickname - ldrh r0, [r5, 0x6] - bl ItemIdToBattleMoveId - movs r4, 0 - strh r0, [r5, 0x8] - ldr r0, _0806F11C @ =gStringVar2 - ldrh r2, [r5, 0x8] - movs r1, 0xD - muls r1, r2 - ldr r2, _0806F120 @ =gMoveNames - adds r1, r2 - bl StringCopy - ldr r1, _0806F124 @ =0xfffff282 - adds r0, r5, r1 - strh r4, [r0] - ldr r0, [r5] - ldrh r1, [r5, 0x8] - bl pokemon_has_move - lsls r0, 24 - cmp r0, 0 - beq _0806F138 - ldr r4, _0806F128 @ =gStringVar4 - ldr r1, _0806F12C @ =gOtherText_AlreadyKnows - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_806E834 - ldr r1, _0806F130 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _0806F134 @ =party_menu_link_mon_held_item_object - b _0806F1B6 - .align 2, 0 -_0806F114: .4byte 0x0201c000 -_0806F118: .4byte gStringVar1 -_0806F11C: .4byte gStringVar2 -_0806F120: .4byte gMoveNames -_0806F124: .4byte 0xfffff282 -_0806F128: .4byte gStringVar4 -_0806F12C: .4byte gOtherText_AlreadyKnows -_0806F130: .4byte gTasks -_0806F134: .4byte party_menu_link_mon_held_item_object -_0806F138: - ldr r0, [r5] - ldrb r1, [r5, 0x6] - subs r1, 0x21 - lsls r1, 24 - lsrs r1, 24 - bl CanMonLearnTMHM - cmp r0, 0 - bne _0806F17C - ldr r4, _0806F16C @ =gStringVar4 - ldr r1, _0806F170 @ =gOtherText_NotCompatible - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_806E834 - ldr r1, _0806F174 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _0806F178 @ =party_menu_link_mon_held_item_object - b _0806F1B6 - .align 2, 0 -_0806F16C: .4byte gStringVar4 -_0806F170: .4byte gOtherText_NotCompatible -_0806F174: .4byte gTasks -_0806F178: .4byte party_menu_link_mon_held_item_object -_0806F17C: - ldr r0, [r5] - ldrh r1, [r5, 0x8] - bl GiveMoveToMon - lsls r0, 16 - ldr r1, _0806F194 @ =0xffff0000 - cmp r0, r1 - beq _0806F198 - adds r0, r6, 0 - bl sub_806F1D0 - b _0806F1B8 - .align 2, 0 -_0806F194: .4byte 0xffff0000 -_0806F198: - ldr r4, _0806F1C0 @ =gStringVar4 - ldr r1, _0806F1C4 @ =gOtherText_WantsToLearn - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_806E834 - ldr r1, _0806F1C8 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, _0806F1CC @ =sub_806F358 -_0806F1B6: - str r1, [r0] -_0806F1B8: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0806F1C0: .4byte gStringVar4 -_0806F1C4: .4byte gOtherText_WantsToLearn -_0806F1C8: .4byte gTasks -_0806F1CC: .4byte sub_806F358 - thumb_func_end sub_806F0B4 - - thumb_func_start sub_806F1D0 -sub_806F1D0: @ 806F1D0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _0806F234 @ =gStringVar2 - ldr r5, _0806F238 @ =0x0201c000 - ldrh r2, [r5, 0x8] - movs r1, 0xD - muls r1, r2 - ldr r2, _0806F23C @ =gMoveNames - adds r1, r2 - bl StringCopy - ldr r4, _0806F240 @ =gStringVar4 - ldr r1, _0806F244 @ =gOtherText_LearnedMove - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_806E834 - ldr r0, [r5] - movs r1, 0x4 - bl AdjustFriendship - ldr r1, _0806F248 @ =0xfffff282 - adds r0, r5, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _0806F220 - ldrh r1, [r5, 0x6] - movs r0, 0xA9 - lsls r0, 1 - cmp r1, r0 - bhi _0806F220 - adds r0, r1, 0 - movs r1, 0x1 - bl RemoveBagItem -_0806F220: - ldr r0, _0806F24C @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _0806F250 @ =sub_806F254 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806F234: .4byte gStringVar2 -_0806F238: .4byte 0x0201c000 -_0806F23C: .4byte gMoveNames -_0806F240: .4byte gStringVar4 -_0806F244: .4byte gOtherText_LearnedMove -_0806F248: .4byte 0xfffff282 -_0806F24C: .4byte gTasks -_0806F250: .4byte sub_806F254 - thumb_func_end sub_806F1D0 - - thumb_func_start sub_806F254 -sub_806F254: @ 806F254 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0806F27C @ =gUnknown_0202E8F6 - ldrb r0, [r0] - cmp r0, 0 - bne _0806F276 - ldr r0, _0806F280 @ =0x0000016f - bl PlayFanfare - ldr r1, _0806F284 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0806F288 @ =sub_806F28C - str r1, [r0] -_0806F276: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806F27C: .4byte gUnknown_0202E8F6 -_0806F280: .4byte 0x0000016f -_0806F284: .4byte gTasks -_0806F288: .4byte sub_806F28C - thumb_func_end sub_806F254 - - thumb_func_start sub_806F28C -sub_806F28C: @ 806F28C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - beq _0806F2F2 - ldr r0, _0806F2D0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0806F2B2 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0806F2F2 -_0806F2B2: - ldr r4, _0806F2D4 @ =0x0201c000 - ldrb r0, [r4, 0x4] - ldrb r1, [r4, 0x5] - bl sub_806DF60 - ldr r1, _0806F2D8 @ =0xfffff282 - adds r0, r4, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - bne _0806F2DC - adds r0, r5, 0 - bl sub_8070C54 - b _0806F2F2 - .align 2, 0 -_0806F2D0: .4byte gMain -_0806F2D4: .4byte 0x0201c000 -_0806F2D8: .4byte 0xfffff282 -_0806F2DC: - ldr r2, _0806F2F8 @ =gTasks - ldrb r1, [r4, 0x4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, [r4, 0x10] - str r1, [r0] - adds r0, r6, 0 - bl DestroyTask -_0806F2F2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806F2F8: .4byte gTasks - thumb_func_end sub_806F28C - - thumb_func_start sub_806F2FC -sub_806F2FC: @ 806F2FC - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - ldr r0, _0806F32C @ =gUnknown_0202E8F6 - ldrb r0, [r0] - cmp r0, 0 - bne _0806F34E - ldr r4, _0806F330 @ =0x0201c000 - ldrb r0, [r4, 0x4] - ldrb r1, [r4, 0x5] - bl sub_806DF60 - ldr r1, _0806F334 @ =0xfffff282 - adds r0, r4, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - bne _0806F338 - adds r0, r5, 0 - bl sub_8070C54 - b _0806F34E - .align 2, 0 -_0806F32C: .4byte gUnknown_0202E8F6 -_0806F330: .4byte 0x0201c000 -_0806F334: .4byte 0xfffff282 -_0806F338: - ldr r2, _0806F354 @ =gTasks - ldrb r1, [r4, 0x4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, [r4, 0x10] - str r1, [r0] - adds r0, r6, 0 - bl DestroyTask -_0806F34E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806F354: .4byte gTasks - thumb_func_end sub_806F2FC - - thumb_func_start sub_806F358 -sub_806F358: @ 806F358 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0806F384 @ =gUnknown_0202E8F6 - ldrb r0, [r0] - cmp r0, 0 - bne _0806F37E - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r0, _0806F388 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0806F38C @ =sub_806F390 - str r0, [r1] -_0806F37E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806F384: .4byte gUnknown_0202E8F6 -_0806F388: .4byte gTasks -_0806F38C: .4byte sub_806F390 - thumb_func_end sub_806F358 - - thumb_func_start sub_806F390 -sub_806F390: @ 806F390 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - bne _0806F3D4 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl MenuZeroFillWindowRect - ldr r0, _0806F3C8 @ =gOtherText_WhichMoveToForget2 - movs r1, 0x1 - bl sub_806E834 - ldr r1, _0806F3CC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0806F3D0 @ =sub_806F44C - str r1, [r0] - b _0806F3F4 - .align 2, 0 -_0806F3C8: .4byte gOtherText_WhichMoveToForget2 -_0806F3CC: .4byte gTasks -_0806F3D0: .4byte sub_806F44C -_0806F3D4: - cmp r1, 0x1 - beq _0806F3E0 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _0806F3F4 -_0806F3E0: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _0806F3EE - movs r0, 0x5 - bl PlaySE -_0806F3EE: - adds r0, r5, 0 - bl sub_806F614 -_0806F3F4: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_806F390 - - thumb_func_start sub_806F3FC -sub_806F3FC: @ 806F3FC - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0806F438 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0806F430 - ldr r0, _0806F43C @ =gPlayerParty - ldr r4, _0806F440 @ =0x0201c000 - ldrb r1, [r4, 0x5] - ldr r2, _0806F444 @ =gPlayerPartyCount - ldrb r2, [r2] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldr r3, _0806F448 @ =sub_808B564 - ldrh r4, [r4, 0x8] - str r4, [sp] - bl sub_809D9F0 - adds r0, r5, 0 - bl DestroyTask -_0806F430: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0806F438: .4byte gPaletteFade -_0806F43C: .4byte gPlayerParty -_0806F440: .4byte 0x0201c000 -_0806F444: .4byte gPlayerPartyCount -_0806F448: .4byte sub_808B564 - thumb_func_end sub_806F3FC - - thumb_func_start sub_806F44C -sub_806F44C: @ 806F44C - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0806F484 @ =gUnknown_0202E8F6 - ldrb r1, [r0] - cmp r1, 0 - bne _0806F47A - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0806F488 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0806F48C @ =sub_806F3FC - str r1, [r0] -_0806F47A: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806F484: .4byte gUnknown_0202E8F6 -_0806F488: .4byte gTasks -_0806F48C: .4byte sub_806F3FC - thumb_func_end sub_806F44C - - thumb_func_start sub_806F490 -sub_806F490: @ 806F490 - push {r4,r5,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _0806F50C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0806F506 - ldr r1, _0806F510 @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - ldr r1, _0806F514 @ =TaskDummy - str r1, [r0] - ldr r0, _0806F518 @ =gScriptItemId - ldrh r1, [r0] - ldr r2, _0806F51C @ =sub_808B508 - adds r0, r3, 0 - bl sub_806E8D0 - bl sub_809FA30 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r5, _0806F520 @ =0x0201c000 - ldr r0, [r5] - adds r1, 0xD - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, [r5] - ldr r1, _0806F524 @ =gStringVar1 - bl GetMonNickname - ldr r0, _0806F528 @ =gStringVar2 - movs r1, 0xD - muls r1, r4 - ldr r2, _0806F52C @ =gMoveNames - adds r1, r2 - bl StringCopy - ldr r4, _0806F530 @ =gStringVar4 - ldr r1, _0806F534 @ =gOtherText_ForgetMove123_2 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_806E834 - ldr r0, _0806F538 @ =sub_806F53C - movs r1, 0x5 - bl CreateTask -_0806F506: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0806F50C: .4byte gPaletteFade -_0806F510: .4byte gTasks -_0806F514: .4byte TaskDummy -_0806F518: .4byte gScriptItemId -_0806F51C: .4byte sub_808B508 -_0806F520: .4byte 0x0201c000 -_0806F524: .4byte gStringVar1 -_0806F528: .4byte gStringVar2 -_0806F52C: .4byte gMoveNames -_0806F530: .4byte gStringVar4 -_0806F534: .4byte gOtherText_ForgetMove123_2 -_0806F538: .4byte sub_806F53C - thumb_func_end sub_806F490 - - thumb_func_start sub_806F53C -sub_806F53C: @ 806F53C - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _0806F580 @ =gUnknown_0202E8F6 - ldrb r0, [r0] - cmp r0, 0 - bne _0806F57A - ldr r4, _0806F584 @ =0x0201c000 - ldr r5, [r4] - bl sub_809FA30 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl RemoveMonPPBonus - ldr r5, [r4] - ldrh r4, [r4, 0x8] - bl sub_809FA30 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl SetMonMoveSlot - adds r0, r6, 0 - bl sub_806F1D0 -_0806F57A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806F580: .4byte gUnknown_0202E8F6 -_0806F584: .4byte 0x0201c000 - thumb_func_end sub_806F53C - - thumb_func_start sub_806F588 -sub_806F588: @ 806F588 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _0806F5E8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0806F5E0 - ldr r1, _0806F5EC @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - ldr r1, _0806F5F0 @ =TaskDummy - str r1, [r0] - ldr r0, _0806F5F4 @ =gScriptItemId - ldrh r1, [r0] - ldr r2, _0806F5F8 @ =sub_808B508 - adds r0, r3, 0 - bl sub_806E8D0 - ldr r0, _0806F5FC @ =gStringVar2 - ldr r1, _0806F600 @ =0x0201c000 - ldrh r2, [r1, 0x8] - movs r1, 0xD - muls r1, r2 - ldr r2, _0806F604 @ =gMoveNames - adds r1, r2 - bl StringCopy - ldr r4, _0806F608 @ =gStringVar4 - ldr r1, _0806F60C @ =gOtherText_StopTryingTo - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_806E834 - ldr r0, _0806F610 @ =sub_806F67C - movs r1, 0x5 - bl CreateTask -_0806F5E0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806F5E8: .4byte gPaletteFade -_0806F5EC: .4byte gTasks -_0806F5F0: .4byte TaskDummy -_0806F5F4: .4byte gScriptItemId -_0806F5F8: .4byte sub_808B508 -_0806F5FC: .4byte gStringVar2 -_0806F600: .4byte 0x0201c000 -_0806F604: .4byte gMoveNames -_0806F608: .4byte gStringVar4 -_0806F60C: .4byte gOtherText_StopTryingTo -_0806F610: .4byte sub_806F67C - thumb_func_end sub_806F588 - - thumb_func_start sub_806F614 -sub_806F614: @ 806F614 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl MenuZeroFillWindowRect - ldr r0, _0806F660 @ =gStringVar2 - ldr r1, _0806F664 @ =0x0201c000 - ldrh r2, [r1, 0x8] - movs r1, 0xD - muls r1, r2 - ldr r2, _0806F668 @ =gMoveNames - adds r1, r2 - bl StringCopy - ldr r4, _0806F66C @ =gStringVar4 - ldr r1, _0806F670 @ =gOtherText_StopTryingTo - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_806E834 - ldr r1, _0806F674 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _0806F678 @ =sub_806F67C - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0806F660: .4byte gStringVar2 -_0806F664: .4byte 0x0201c000 -_0806F668: .4byte gMoveNames -_0806F66C: .4byte gStringVar4 -_0806F670: .4byte gOtherText_StopTryingTo -_0806F674: .4byte gTasks -_0806F678: .4byte sub_806F67C - thumb_func_end sub_806F614 - - thumb_func_start sub_806F67C -sub_806F67C: @ 806F67C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0806F6A8 @ =gUnknown_0202E8F6 - ldrb r0, [r0] - cmp r0, 0 - bne _0806F6A2 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r0, _0806F6AC @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0806F6B0 @ =sub_806F6B4 - str r0, [r1] -_0806F6A2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806F6A8: .4byte gUnknown_0202E8F6 -_0806F6AC: .4byte gTasks -_0806F6B0: .4byte sub_806F6B4 - thumb_func_end sub_806F67C - - thumb_func_start sub_806F6B4 -sub_806F6B4: @ 806F6B4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - bne _0806F730 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl MenuZeroFillWindowRect - ldr r4, _0806F710 @ =0x0201c000 - ldr r0, [r4] - ldr r1, _0806F714 @ =gStringVar1 - bl GetMonNickname - ldr r0, _0806F718 @ =gStringVar2 - ldrh r2, [r4, 0x8] - movs r1, 0xD - muls r1, r2 - ldr r2, _0806F71C @ =gMoveNames - adds r1, r2 - bl StringCopy - ldr r4, _0806F720 @ =gStringVar4 - ldr r1, _0806F724 @ =gOtherText_DidNotLearnMove2 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_806E834 - ldr r1, _0806F728 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _0806F72C @ =sub_806F2FC - b _0806F78E - .align 2, 0 -_0806F710: .4byte 0x0201c000 -_0806F714: .4byte gStringVar1 -_0806F718: .4byte gStringVar2 -_0806F71C: .4byte gMoveNames -_0806F720: .4byte gStringVar4 -_0806F724: .4byte gOtherText_DidNotLearnMove2 -_0806F728: .4byte gTasks -_0806F72C: .4byte sub_806F2FC -_0806F730: - cmp r1, 0x1 - beq _0806F73C - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _0806F790 -_0806F73C: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _0806F74A - movs r0, 0x5 - bl PlaySE -_0806F74A: - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl MenuZeroFillWindowRect - ldr r4, _0806F798 @ =0x0201c000 - ldr r0, [r4] - ldr r1, _0806F79C @ =gStringVar1 - bl GetMonNickname - ldr r0, _0806F7A0 @ =gStringVar2 - ldrh r2, [r4, 0x8] - movs r1, 0xD - muls r1, r2 - ldr r2, _0806F7A4 @ =gMoveNames - adds r1, r2 - bl StringCopy - ldr r4, _0806F7A8 @ =gStringVar4 - ldr r1, _0806F7AC @ =gOtherText_WantsToLearn - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_806E834 - ldr r1, _0806F7B0 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _0806F7B4 @ =sub_806F358 -_0806F78E: - str r1, [r0] -_0806F790: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806F798: .4byte 0x0201c000 -_0806F79C: .4byte gStringVar1 -_0806F7A0: .4byte gStringVar2 -_0806F7A4: .4byte gMoveNames -_0806F7A8: .4byte gStringVar4 -_0806F7AC: .4byte gOtherText_WantsToLearn -_0806F7B0: .4byte gTasks -_0806F7B4: .4byte sub_806F358 - thumb_func_end sub_806F6B4 - - thumb_func_start sub_806F7B8 -sub_806F7B8: @ 806F7B8 - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - movs r1, 0 - ldr r3, _0806F7D4 @ =gUnknown_08376504 -_0806F7C2: - adds r0, r1, 0 - adds r0, 0x32 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _0806F7D8 - movs r0, 0x1 - b _0806F7E4 - .align 2, 0 -_0806F7D4: .4byte gUnknown_08376504 -_0806F7D8: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x7 - bls _0806F7C2 - movs r0, 0 -_0806F7E4: - pop {r1} - bx r1 - thumb_func_end sub_806F7B8 - - thumb_func_start sub_806F7E8 -sub_806F7E8: @ 806F7E8 - push {r4-r6,lr} - adds r5, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r3, r0, 2 - adds r3, r0 - lsls r3, 3 - ldr r0, _0806F898 @ =gTasks + 0x8 - adds r3, r0 - movs r0, 0x14 - ldrsh r1, [r3, r0] - str r1, [r5] - movs r4, 0x16 - ldrsh r0, [r3, r4] - str r0, [r5, 0x4] - movs r4, 0x18 - ldrsh r0, [r3, r4] - lsls r2, 24 - asrs r2, 24 - muls r0, r2 - str r0, [r5, 0x8] - movs r0, 0x80 - lsls r0, 1 - str r0, [r5, 0x10] - ldr r6, _0806F89C @ =0x0201b000 - ldr r2, _0806F8A0 @ =0x00000282 - adds r0, r6, r2 - movs r4, 0 - ldrsh r0, [r0, r4] - bl sub_8046200 - lsls r0, 24 - lsrs r2, r0, 24 - adds r3, r2, 0 - cmp r2, 0x2 - bls _0806F83E - ldrb r0, [r5, 0xC] - movs r1, 0x20 - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r5, 0xC] -_0806F83E: - cmp r2, 0x2 - bne _0806F850 - ldrb r0, [r5, 0xC] - movs r1, 0x20 - negs r1, r1 - ands r1, r0 - movs r0, 0x5 - orrs r1, r0 - strb r1, [r5, 0xC] -_0806F850: - cmp r3, 0x1 - bhi _0806F862 - ldrb r0, [r5, 0xC] - movs r1, 0x20 - negs r1, r1 - ands r1, r0 - movs r0, 0x6 - orrs r1, r0 - strb r1, [r5, 0xC] -_0806F862: - ldr r4, _0806F8A4 @ =gUnknown_08376858 - bl battle_type_is_double - movs r2, 0x80 - lsls r2, 5 - adds r1, r6, r2 - ldrb r2, [r1, 0x5] - lsls r2, 2 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r2, r1 - adds r2, r4 - ldr r2, [r2] - ldr r4, _0806F8A8 @ =0x0000100c - adds r1, r6, r4 - adds r0, r5, 0 - movs r3, 0 - bl sub_80460C8 - lsls r0, 16 - asrs r0, 16 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0806F898: .4byte gTasks + 0x8 -_0806F89C: .4byte 0x0201b000 -_0806F8A0: .4byte 0x00000282 -_0806F8A4: .4byte gUnknown_08376858 -_0806F8A8: .4byte 0x0000100c - thumb_func_end sub_806F7E8 - - thumb_func_start sub_806F8AC -sub_806F8AC: @ 806F8AC - push {r4-r7,lr} - sub sp, 0x18 - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0x1 - negs r4, r4 - adds r0, r6, 0 - mov r1, sp - adds r2, r4, 0 - bl sub_806F7E8 - ldr r1, _0806F8F4 @ =0x0201b000 - ldr r2, _0806F8F8 @ =0x00000282 - adds r5, r1, r2 - strh r0, [r5] - lsls r0, 16 - asrs r0, 16 - cmp r0, r4 - beq _0806F8D4 - b _0806F9F0 -_0806F8D4: - movs r0, 0x80 - lsls r0, 5 - adds r1, r0 - movs r0, 0 - str r0, [r1, 0xC] - ldr r0, [sp, 0x8] - negs r3, r0 - ldr r2, [sp, 0x4] - adds r0, r3, r2 - ldr r1, [sp] - cmp r0, r1 - ble _0806F8FC - subs r1, r2 - add r0, sp, 0x14 - strh r1, [r0] - b _0806F900 - .align 2, 0 -_0806F8F4: .4byte 0x0201b000 -_0806F8F8: .4byte 0x00000282 -_0806F8FC: - add r0, sp, 0x14 - strh r3, [r0] -_0806F900: - adds r5, r0, 0 - ldr r1, _0806F940 @ =gUnknown_02024BEC - ldrh r0, [r5] - negs r0, r0 - str r0, [r1] - ldr r0, _0806F944 @ =0x0201c000 - ldr r0, [r0] - ldr r1, _0806F948 @ =gStringVar1 - bl GetMonNickname - ldr r0, _0806F94C @ =gStringVar2 - ldrh r1, [r5] - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r2, _0806F950 @ =gTasks - lsls r1, r6, 2 - adds r0, r1, r6 - lsls r0, 3 - adds r0, r2 - movs r2, 0x24 - ldrsh r0, [r0, r2] - adds r7, r1, 0 - cmp r0, 0 - bne _0806F95C - ldr r0, _0806F954 @ =gStringVar4 - ldr r1, _0806F958 @ =gOtherText_HPRestoredBy - bl StringExpandPlaceholders - b _0806F964 - .align 2, 0 -_0806F940: .4byte gUnknown_02024BEC -_0806F944: .4byte 0x0201c000 -_0806F948: .4byte gStringVar1 -_0806F94C: .4byte gStringVar2 -_0806F950: .4byte gTasks -_0806F954: .4byte gStringVar4 -_0806F958: .4byte gOtherText_HPRestoredBy -_0806F95C: - ldr r0, _0806F9D4 @ =gStringVar4 - ldr r1, _0806F9D8 @ =gOtherText_RegainedHealth - bl StringExpandPlaceholders -_0806F964: - ldr r4, _0806F9DC @ =0x0201c000 - ldrb r0, [r4, 0x4] - ldrb r1, [r4, 0x5] - bl sub_806DDA0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r4] - bl sub_806D84C - bl battle_type_is_double - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldrb r1, [r4, 0x5] - lsls r1, 1 - adds r0, r1 - ldr r1, _0806F9E0 @ =gUnknown_083769A8 - adds r0, r1 - movs r1, 0x7 - bl task_pc_turn_off - ldr r0, _0806F9E4 @ =0xfffff261 - adds r1, r4, r0 - movs r0, 0x2 - strb r0, [r1] - ldr r0, _0806F9D4 @ =gStringVar4 - movs r1, 0x1 - bl sub_806E834 - ldr r1, [sp, 0x4] - ldrh r0, [r5] - adds r0, r1 - strh r0, [r5] - ldr r0, [r4] - movs r1, 0x39 - adds r2, r5, 0 - bl SetMonData - ldrh r0, [r4, 0x6] - movs r1, 0x1 - bl RemoveBagItem - bl sub_8032638 - ldr r1, _0806F9E8 @ =gTasks - adds r0, r7, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _0806F9EC @ =sub_806FB44 - str r1, [r0] - b _0806FA10 - .align 2, 0 -_0806F9D4: .4byte gStringVar4 -_0806F9D8: .4byte gOtherText_RegainedHealth -_0806F9DC: .4byte 0x0201c000 -_0806F9E0: .4byte gUnknown_083769A8 -_0806F9E4: .4byte 0xfffff261 -_0806F9E8: .4byte gTasks -_0806F9EC: .4byte sub_806FB44 -_0806F9F0: - movs r2, 0x80 - lsls r2, 5 - adds r0, r1, r2 - ldrb r4, [r0, 0x5] - bl battle_type_is_double - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r5] - ldr r3, [sp] - lsls r3, 16 - lsrs r3, 16 - adds r0, r4, 0 - bl sub_806E420 -_0806FA10: - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_806F8AC - - thumb_func_start sub_806FA18 -sub_806FA18: @ 806FA18 - push {r4-r7,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - mov r1, sp - movs r2, 0x1 - bl sub_806F7E8 - ldr r6, _0806FAC4 @ =0x0201b000 - ldr r1, _0806FAC8 @ =0x00000282 - adds r7, r6, r1 - strh r0, [r7] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _0806FAE4 - movs r0, 0x1 - bl PlaySE - movs r0, 0x80 - lsls r0, 5 - adds r4, r6, r0 - movs r0, 0 - str r0, [r4, 0xC] - ldr r2, _0806FACC @ =gTasks - lsls r3, r5, 2 - adds r3, r5 - lsls r3, 3 - adds r5, r3, r2 - ldrh r0, [r5, 0x1E] - ldrh r1, [r5, 0x20] - subs r0, r1 - strh r0, [r5, 0x1E] - ldr r0, [r4] - adds r2, r3 - adds r2, 0x1E - movs r1, 0x39 - bl SetMonData - ldrb r0, [r4, 0x4] - ldr r1, _0806FAD0 @ =0xfffe6000 - adds r6, r1 - ldrb r1, [r6, 0x1] - bl sub_806DDA0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r4] - bl sub_806D84C - ldr r2, _0806FAD4 @ =gSprites - ldrb r1, [r6, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x2E] - strb r0, [r4, 0x5] - ldrb r1, [r4, 0x5] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0806FAD8 @ =gPlayerParty - adds r0, r1 - str r0, [r4] - movs r1, 0x3A - bl GetMonData - strh r0, [r5, 0x1C] - ldr r0, [r4] - movs r1, 0x39 - bl GetMonData - strh r0, [r5, 0x1E] - ldr r0, _0806FADC @ =0xffff8000 - str r0, [r4, 0xC] - ldr r0, [r4, 0x10] - str r0, [r4, 0x14] - ldr r0, _0806FAE0 @ =sub_806F8AC - str r0, [r5] - ldrh r0, [r5, 0x1E] - strh r0, [r7] - b _0806FB04 - .align 2, 0 -_0806FAC4: .4byte 0x0201b000 -_0806FAC8: .4byte 0x00000282 -_0806FACC: .4byte gTasks -_0806FAD0: .4byte 0xfffe6000 -_0806FAD4: .4byte gSprites -_0806FAD8: .4byte gPlayerParty -_0806FADC: .4byte 0xffff8000 -_0806FAE0: .4byte sub_806F8AC -_0806FAE4: - movs r1, 0x80 - lsls r1, 5 - adds r0, r6, r1 - ldrb r4, [r0, 0x5] - bl battle_type_is_double - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r7] - ldr r3, [sp] - lsls r3, 16 - lsrs r3, 16 - adds r0, r4, 0 - bl sub_806E420 -_0806FB04: - add sp, 0x14 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_806FA18 - - thumb_func_start sub_806FB0C -sub_806FB0C: @ 806FB0C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0806FB38 @ =gUnknown_0202E8F6 - ldrb r0, [r0] - cmp r0, 0 - bne _0806FB32 - ldr r3, _0806FB3C @ =gTasks - ldr r2, _0806FB40 @ =0x0201c000 - ldrb r1, [r2, 0x4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - ldr r1, [r2, 0x10] - str r1, [r0] - adds r0, r4, 0 - bl DestroyTask -_0806FB32: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806FB38: .4byte gUnknown_0202E8F6 -_0806FB3C: .4byte gTasks -_0806FB40: .4byte 0x0201c000 - thumb_func_end sub_806FB0C - - thumb_func_start sub_806FB44 -sub_806FB44: @ 806FB44 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0806FB70 @ =gUnknown_0202E8F6 - ldrb r0, [r0] - cmp r0, 0 - bne _0806FB6A - ldr r3, _0806FB74 @ =gTasks - ldr r2, _0806FB78 @ =0x0201c000 - ldrb r1, [r2, 0x4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - ldr r1, [r2, 0x14] - str r1, [r0] - adds r0, r4, 0 - bl DestroyTask -_0806FB6A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806FB70: .4byte gUnknown_0202E8F6 -_0806FB74: .4byte gTasks -_0806FB78: .4byte 0x0201c000 - thumb_func_end sub_806FB44 - - thumb_func_start sub_806FB7C -sub_806FB7C: @ 806FB7C - push {lr} - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAF - bne _0806FB90 - ldr r0, _0806FB8C @ =gSaveBlock1 + 0x3676 - b _0806FB9A - .align 2, 0 -_0806FB8C: .4byte gSaveBlock1 + 0x3676 -_0806FB90: - ldr r1, _0806FBA8 @ =gItemEffectTable - subs r0, 0xD - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] -_0806FB9A: - ldrb r1, [r0, 0x4] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _0806FBAC - movs r0, 0 - b _0806FBAE - .align 2, 0 -_0806FBA8: .4byte gItemEffectTable -_0806FBAC: - movs r0, 0x1 -_0806FBAE: - pop {r1} - bx r1 - thumb_func_end sub_806FB7C - - thumb_func_start sub_806FBB4 -sub_806FBB4: @ 806FBB4 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_806E168 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_806E2C0 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_806FBB4 - - thumb_func_start GetMedicineItemEffectMessage -GetMedicineItemEffectMessage: @ 806FBD0 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl sub_8070E48 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x3 - cmp r0, 0x12 - bls _0806FBE6 - b _0806FD7C -_0806FBE6: - lsls r0, 2 - ldr r1, _0806FBF0 @ =_0806FBF4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806FBF0: .4byte _0806FBF4 - .align 2, 0 -_0806FBF4: - .4byte _0806FC40 - .4byte _0806FC54 - .4byte _0806FC68 - .4byte _0806FC7C - .4byte _0806FC90 - .4byte _0806FCA4 - .4byte _0806FCB8 - .4byte _0806FD7C - .4byte _0806FCCC - .4byte _0806FCF0 - .4byte _0806FCE0 - .4byte _0806FD20 - .4byte _0806FD30 - .4byte _0806FD10 - .4byte _0806FD00 - .4byte _0806FD7C - .4byte _0806FD54 - .4byte _0806FD54 - .4byte _0806FD68 -_0806FC40: - ldr r0, _0806FC4C @ =gStringVar4 - ldr r1, _0806FC50 @ =gOtherText_CuredPoisoning - bl StringExpandPlaceholders - b _0806FD84 - .align 2, 0 -_0806FC4C: .4byte gStringVar4 -_0806FC50: .4byte gOtherText_CuredPoisoning -_0806FC54: - ldr r0, _0806FC60 @ =gStringVar4 - ldr r1, _0806FC64 @ =gOtherText_WokeUp - bl StringExpandPlaceholders - b _0806FD84 - .align 2, 0 -_0806FC60: .4byte gStringVar4 -_0806FC64: .4byte gOtherText_WokeUp -_0806FC68: - ldr r0, _0806FC74 @ =gStringVar4 - ldr r1, _0806FC78 @ =gOtherText_BurnHealed - bl StringExpandPlaceholders - b _0806FD84 - .align 2, 0 -_0806FC74: .4byte gStringVar4 -_0806FC78: .4byte gOtherText_BurnHealed -_0806FC7C: - ldr r0, _0806FC88 @ =gStringVar4 - ldr r1, _0806FC8C @ =gOtherText_ThawedOut - bl StringExpandPlaceholders - b _0806FD84 - .align 2, 0 -_0806FC88: .4byte gStringVar4 -_0806FC8C: .4byte gOtherText_ThawedOut -_0806FC90: - ldr r0, _0806FC9C @ =gStringVar4 - ldr r1, _0806FCA0 @ =gOtherText_CuredParalysis - bl StringExpandPlaceholders - b _0806FD84 - .align 2, 0 -_0806FC9C: .4byte gStringVar4 -_0806FCA0: .4byte gOtherText_CuredParalysis -_0806FCA4: - ldr r0, _0806FCB0 @ =gStringVar4 - ldr r1, _0806FCB4 @ =gOtherText_SnapConfusion - bl StringExpandPlaceholders - b _0806FD84 - .align 2, 0 -_0806FCB0: .4byte gStringVar4 -_0806FCB4: .4byte gOtherText_SnapConfusion -_0806FCB8: - ldr r0, _0806FCC4 @ =gStringVar4 - ldr r1, _0806FCC8 @ =gOtherText_GotOverLove - bl StringExpandPlaceholders - b _0806FD84 - .align 2, 0 -_0806FCC4: .4byte gStringVar4 -_0806FCC8: .4byte gOtherText_GotOverLove -_0806FCCC: - ldr r0, _0806FCD8 @ =gStringVar4 - ldr r1, _0806FCDC @ =gOtherText_BecameHealthy - bl StringExpandPlaceholders - b _0806FD84 - .align 2, 0 -_0806FCD8: .4byte gStringVar4 -_0806FCDC: .4byte gOtherText_BecameHealthy -_0806FCE0: - ldr r0, _0806FCE8 @ =gStringVar2 - ldr r1, _0806FCEC @ =gOtherText_Hp2 - b _0806FD34 - .align 2, 0 -_0806FCE8: .4byte gStringVar2 -_0806FCEC: .4byte gOtherText_Hp2 -_0806FCF0: - ldr r0, _0806FCF8 @ =gStringVar2 - ldr r1, _0806FCFC @ =gOtherText_Attack - b _0806FD34 - .align 2, 0 -_0806FCF8: .4byte gStringVar2 -_0806FCFC: .4byte gOtherText_Attack -_0806FD00: - ldr r0, _0806FD08 @ =gStringVar2 - ldr r1, _0806FD0C @ =gOtherText_Defense - b _0806FD34 - .align 2, 0 -_0806FD08: .4byte gStringVar2 -_0806FD0C: .4byte gOtherText_Defense -_0806FD10: - ldr r0, _0806FD18 @ =gStringVar2 - ldr r1, _0806FD1C @ =gOtherText_Speed - b _0806FD34 - .align 2, 0 -_0806FD18: .4byte gStringVar2 -_0806FD1C: .4byte gOtherText_Speed -_0806FD20: - ldr r0, _0806FD28 @ =gStringVar2 - ldr r1, _0806FD2C @ =gOtherText_SpAtk2 - b _0806FD34 - .align 2, 0 -_0806FD28: .4byte gStringVar2 -_0806FD2C: .4byte gOtherText_SpAtk2 -_0806FD30: - ldr r0, _0806FD44 @ =gStringVar2 - ldr r1, _0806FD48 @ =gOtherText_SpDef2 -_0806FD34: - bl StringCopy - ldr r0, _0806FD4C @ =gStringVar4 - ldr r1, _0806FD50 @ =gOtherText_WasRaised - bl StringExpandPlaceholders - b _0806FD84 - .align 2, 0 -_0806FD44: .4byte gStringVar2 -_0806FD48: .4byte gOtherText_SpDef2 -_0806FD4C: .4byte gStringVar4 -_0806FD50: .4byte gOtherText_WasRaised -_0806FD54: - ldr r0, _0806FD60 @ =gStringVar4 - ldr r1, _0806FD64 @ =gOtherText_PPIncreased - bl StringExpandPlaceholders - b _0806FD84 - .align 2, 0 -_0806FD60: .4byte gStringVar4 -_0806FD64: .4byte gOtherText_PPIncreased -_0806FD68: - ldr r0, _0806FD74 @ =gStringVar4 - ldr r1, _0806FD78 @ =gOtherText_PPRestored - bl StringExpandPlaceholders - b _0806FD84 - .align 2, 0 -_0806FD74: .4byte gStringVar4 -_0806FD78: .4byte gOtherText_PPRestored -_0806FD7C: - ldr r0, _0806FD88 @ =gStringVar4 - ldr r1, _0806FD8C @ =gOtherText_WontHaveAnyEffect - bl StringExpandPlaceholders -_0806FD84: - pop {r0} - bx r0 - .align 2, 0 -_0806FD88: .4byte gStringVar4 -_0806FD8C: .4byte gOtherText_WontHaveAnyEffect - thumb_func_end GetMedicineItemEffectMessage - - thumb_func_start sub_806FD90 -sub_806FD90: @ 806FD90 - push {r4,lr} - adds r4, r0, 0 - lsls r0, r1, 16 - lsrs r0, 16 - bl sub_8070E48 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD - bne _0806FDBC - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - ldr r1, _0806FDB8 @ =0x0000012f - cmp r0, r1 - bne _0806FDBC - movs r0, 0x1 - b _0806FDBE - .align 2, 0 -_0806FDB8: .4byte 0x0000012f -_0806FDBC: - movs r0, 0 -_0806FDBE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806FD90 - - thumb_func_start ExecuteTableBasedItemEffect__ -ExecuteTableBasedItemEffect__: @ 806FDC4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 16 - lsrs r5, r1, 16 - lsls r2, 24 - lsrs r6, r2, 24 - ldr r0, _0806FDF0 @ =gMain - ldr r1, _0806FDF4 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0806FDFC - movs r0, 0x64 - muls r0, r3 - ldr r1, _0806FDF8 @ =gPlayerParty - adds r0, r1 - adds r1, r5, 0 - adds r2, r3, 0 - b _0806FE16 - .align 2, 0 -_0806FDF0: .4byte gMain -_0806FDF4: .4byte 0x0000043d -_0806FDF8: .4byte gPlayerParty -_0806FDFC: - movs r0, 0x64 - adds r4, r3, 0 - muls r4, r0 - ldr r0, _0806FE28 @ =gPlayerParty - adds r4, r0 - adds r0, r3, 0 - bl sub_8094C20 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 -_0806FE16: - adds r3, r6, 0 - bl ExecuteTableBasedItemEffect_ - lsls r0, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0806FE28: .4byte gPlayerParty - thumb_func_end ExecuteTableBasedItemEffect__ - - thumb_func_start sub_806FE2C -sub_806FE2C: @ 806FE2C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r4, r0, 0 - adds r5, r2, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 16 - lsrs r6, r1, 16 - movs r0, 0 - mov r9, r0 - ldr r1, _0806FED4 @ =gTasks - mov r10, r1 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - add r1, r10 - ldr r0, _0806FED8 @ =TaskDummy - str r0, [r1] - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_806E8D0 - ldr r5, _0806FEDC @ =0x0201c000 - ldr r0, [r5] - adds r1, r6, 0 - bl sub_806FD90 - lsls r0, 24 - cmp r0, 0 - bne _0806FEE0 - adds r0, r6, 0 - bl sub_806FB7C - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r2, r7, 2 - mov r8, r2 - cmp r0, 0x1 - bne _0806FEC2 - ldr r0, [r5] - movs r1, 0x3A - bl GetMonData - mov r3, r8 - adds r1, r3, r7 - lsls r1, 3 - mov r2, r10 - adds r4, r1, r2 - strh r0, [r4, 0x1C] - ldr r0, [r5] - movs r1, 0x39 - bl GetMonData - strh r0, [r4, 0x1E] - movs r3, 0x1C - ldrsh r1, [r4, r3] - lsls r0, 16 - asrs r0, 16 - cmp r1, r0 - bne _0806FEC2 - movs r0, 0 - mov r9, r0 - mov r1, r9 - strh r1, [r4, 0x1C] - strh r1, [r4, 0x1E] -_0806FEC2: - ldr r0, _0806FEDC @ =0x0201c000 - ldrb r0, [r0, 0x5] - adds r1, r6, 0 - movs r2, 0 - bl ExecuteTableBasedItemEffect__ - lsls r0, 24 - lsrs r0, 24 - b _0806FEE6 - .align 2, 0 -_0806FED4: .4byte gTasks -_0806FED8: .4byte TaskDummy -_0806FEDC: .4byte 0x0201c000 -_0806FEE0: - movs r0, 0x1 - lsls r2, r7, 2 - mov r8, r2 -_0806FEE6: - cmp r0, 0 - beq _0806FF14 - ldr r1, _0806FF08 @ =gUnknown_0202E8F4 - movs r0, 0 - strb r0, [r1] - movs r0, 0x5 - bl PlaySE - ldr r0, _0806FF0C @ =gOtherText_WontHaveAnyEffect - movs r1, 0x1 - bl sub_806E834 - ldr r1, _0806FF10 @ =gTasks - mov r3, r8 - adds r0, r3, r7 - b _08070002 - .align 2, 0 -_0806FF08: .4byte gUnknown_0202E8F4 -_0806FF0C: .4byte gOtherText_WontHaveAnyEffect -_0806FF10: .4byte gTasks -_0806FF14: - ldr r1, _0806FF30 @ =gUnknown_0202E8F4 - movs r0, 0x1 - strb r0, [r1] - adds r0, r6, 0 - bl IsBlueYellowRedFlute - lsls r0, 24 - cmp r0, 0 - bne _0806FF34 - movs r0, 0x1 - bl PlaySE - b _0806FF3A - .align 2, 0 -_0806FF30: .4byte gUnknown_0202E8F4 -_0806FF34: - movs r0, 0x75 - bl PlaySE -_0806FF3A: - ldr r4, _0806FF88 @ =0x0201c000 - ldr r0, [r4] - bl sub_80A1CD8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - beq _0806FF4E - cmp r0, 0 - bne _0806FF56 -_0806FF4E: - ldr r0, [r4] - ldrb r1, [r4, 0x5] - bl sub_806FBB4 -_0806FF56: - mov r0, r9 - cmp r0, 0x1 - bne _0806FFC8 - ldr r4, _0806FF88 @ =0x0201c000 - ldr r0, [r4] - movs r1, 0x39 - bl GetMonData - ldr r2, _0806FF8C @ =gTasks - mov r3, r8 - adds r1, r3, r7 - lsls r1, 3 - adds r2, r1, r2 - ldrh r1, [r2, 0x1E] - subs r0, r1 - strh r0, [r2, 0x20] - ldr r0, _0806FF90 @ =0xffff8000 - str r0, [r4, 0xC] - movs r1, 0x1E - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _0806FF94 - mov r3, r9 - strh r3, [r2, 0x24] - b _0806FF98 - .align 2, 0 -_0806FF88: .4byte 0x0201c000 -_0806FF8C: .4byte gTasks -_0806FF90: .4byte 0xffff8000 -_0806FF94: - movs r0, 0 - strh r0, [r2, 0x24] -_0806FF98: - ldr r2, _0806FFB8 @ =0x0201c000 - ldr r0, [r2, 0x10] - str r0, [r2, 0x14] - ldr r1, _0806FFBC @ =gTasks - mov r3, r8 - adds r0, r3, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, _0806FFC0 @ =sub_806F8AC - str r1, [r0] - ldrh r0, [r0, 0x1E] - ldr r1, _0806FFC4 @ =0xfffff282 - adds r2, r1 - strh r0, [r2] - b _0807000A - .align 2, 0 -_0806FFB8: .4byte 0x0201c000 -_0806FFBC: .4byte gTasks -_0806FFC0: .4byte sub_806F8AC -_0806FFC4: .4byte 0xfffff282 -_0806FFC8: - ldr r4, _08070018 @ =0x0201c000 - ldr r0, [r4] - ldr r1, _0807001C @ =gStringVar1 - bl GetMonNickname - adds r0, r6, 0 - bl IsBlueYellowRedFlute - lsls r0, 24 - cmp r0, 0 - bne _0806FFE6 - adds r0, r6, 0 - movs r1, 0x1 - bl RemoveBagItem -_0806FFE6: - adds r0, r6, 0 - bl GetMedicineItemEffectMessage - ldrb r0, [r4, 0x5] - ldr r1, [r4] - bl sub_806E07C - ldr r0, _08070020 @ =gStringVar4 - movs r1, 0x1 - bl sub_806E834 - ldr r1, _08070024 @ =gTasks - mov r2, r8 - adds r0, r2, r7 -_08070002: - lsls r0, 3 - adds r0, r1 - ldr r1, _08070028 @ =sub_806FB0C - str r1, [r0] -_0807000A: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08070018: .4byte 0x0201c000 -_0807001C: .4byte gStringVar1 -_08070020: .4byte gStringVar4 -_08070024: .4byte gTasks -_08070028: .4byte sub_806FB0C - thumb_func_end sub_806FE2C - - thumb_func_start IsBlueYellowRedFlute -IsBlueYellowRedFlute: @ 807002C - push {lr} - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x27 - beq _0807003E - cmp r0, 0x29 - beq _0807003E - cmp r0, 0x28 - bne _08070042 -_0807003E: - movs r0, 0x1 - b _08070044 -_08070042: - movs r0, 0 -_08070044: - pop {r1} - bx r1 - thumb_func_end IsBlueYellowRedFlute - - thumb_func_start sub_8070048 -sub_8070048: @ 8070048 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _08070078 @ =0x0201c000 - str r2, [r3, 0x10] - movs r4, 0 - strb r0, [r3, 0x4] - movs r2, 0 - strh r1, [r3, 0x6] - strb r2, [r3, 0x5] - ldr r1, _0807007C @ =sub_80701DC - str r1, [r3, 0x14] - ldr r2, _08070080 @ =0xfffff27e - adds r1, r3, r2 - strh r4, [r1] - ldr r1, _08070084 @ =0xfffff280 - adds r3, r1 - strh r4, [r3] - bl sub_8070088 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08070078: .4byte 0x0201c000 -_0807007C: .4byte sub_80701DC -_08070080: .4byte 0xfffff27e -_08070084: .4byte 0xfffff280 - thumb_func_end sub_8070048 - - thumb_func_start sub_8070088 -sub_8070088: @ 8070088 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08070120 @ =gTasks - mov r10, r1 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - mov r2, r10 - adds r7, r1, r2 - ldr r5, _08070124 @ =TaskDummy - str r5, [r7] - ldr r4, _08070128 @ =0x0201c000 - ldrb r0, [r4, 0x5] - movs r1, 0x64 - mov r9, r1 - mov r2, r9 - muls r2, r0 - adds r0, r2, 0 - ldr r1, _0807012C @ =gPlayerParty - mov r8, r1 - add r0, r8 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08070118 - adds r0, r5, 0 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - str r0, [sp] - mov r0, r10 - adds r0, 0x8 - ldr r2, [sp] - adds r6, r2, r0 - ldrb r0, [r4, 0x5] - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - add r0, r8 - str r0, [r4] - movs r1, 0x3A - bl GetMonData - strh r0, [r6, 0x14] - ldr r0, [r4] - movs r1, 0x39 - bl GetMonData - strh r0, [r6, 0x16] - ldrb r0, [r4, 0x5] - ldrh r1, [r4, 0x6] - movs r2, 0 - bl ExecuteTableBasedItemEffect__ - lsls r0, 24 - cmp r0, 0 - beq _08070134 - adds r0, r5, 0 - bl DestroyTask -_08070118: - ldr r0, _08070130 @ =sub_80701DC - str r0, [r7] - b _080701B0 - .align 2, 0 -_08070120: .4byte gTasks -_08070124: .4byte TaskDummy -_08070128: .4byte 0x0201c000 -_0807012C: .4byte gPlayerParty -_08070130: .4byte sub_80701DC -_08070134: - ldr r1, _080701C0 @ =gUnknown_0202E8F4 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0x3 - movs r1, 0xE - movs r2, 0x1A - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r0, 0x1 - bl PlaySE - ldr r0, [r4] - ldrb r1, [r4, 0x5] - bl sub_806FBB4 - bl battle_type_is_double - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldrb r1, [r4, 0x5] - lsls r1, 1 - adds r0, r1 - ldr r1, _080701C4 @ =gUnknown_083769A8 - adds r0, r1 - movs r1, 0x9 - bl task_pc_turn_off - ldr r2, _080701C8 @ =0xfffff261 - adds r1, r4, r2 - movs r0, 0x2 - strb r0, [r1] - ldr r0, [r4] - movs r1, 0x39 - bl GetMonData - ldrh r1, [r6, 0x16] - subs r0, r1 - strh r0, [r6, 0x18] - movs r0, 0x1 - strh r0, [r6, 0x1C] - ldr r1, _080701CC @ =0xfffff27e - adds r0, r4, r1 - movs r1, 0x1 - strh r1, [r0] - ldr r2, _080701D0 @ =0xfffff280 - adds r0, r4, r2 - strh r1, [r0] - ldrh r1, [r6, 0x16] - adds r2, 0x2 - adds r0, r4, r2 - strh r1, [r0] - ldr r0, _080701D4 @ =0xffff8000 - str r0, [r4, 0xC] - ldr r1, [sp] - add r1, r10 - ldr r0, _080701D8 @ =sub_806F8AC - str r0, [r1] -_080701B0: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080701C0: .4byte gUnknown_0202E8F4 -_080701C4: .4byte gUnknown_083769A8 -_080701C8: .4byte 0xfffff261 -_080701CC: .4byte 0xfffff27e -_080701D0: .4byte 0xfffff280 -_080701D4: .4byte 0xffff8000 -_080701D8: .4byte sub_806F8AC - thumb_func_end sub_8070088 - - thumb_func_start sub_80701DC -sub_80701DC: @ 80701DC - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r6, _08070280 @ =0x0201b000 - ldr r0, _08070284 @ =0x0000027e - adds r7, r6, r0 - movs r1, 0 - ldrsh r0, [r7, r1] - cmp r0, 0x1 - bne _0807023E - movs r0, 0x80 - lsls r0, 5 - adds r4, r6, r0 - ldrh r0, [r4, 0x6] - movs r1, 0x1 - bl AddBagItem - ldrb r1, [r4, 0x5] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08070288 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0807023A - bl battle_type_is_double - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldrb r1, [r4, 0x5] - lsls r1, 1 - adds r0, r1 - ldr r1, _0807028C @ =gUnknown_083769A8 - adds r0, r1 - movs r1, 0x3 - bl task_pc_turn_off - ldr r0, _08070290 @ =0x00000261 - adds r1, r6, r0 - movs r0, 0x2 - strb r0, [r1] -_0807023A: - movs r0, 0 - strh r0, [r7] -_0807023E: - ldr r4, _08070294 @ =0x0201c000 - ldrb r0, [r4, 0x5] - adds r0, 0x1 - strb r0, [r4, 0x5] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bne _080702D8 - ldr r1, _08070298 @ =gUnknown_0202E8F4 - movs r0, 0 - strb r0, [r1] - ldr r1, _0807029C @ =0xfffff280 - adds r0, r4, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080702B0 - ldr r1, _080702A0 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080702A4 @ =TaskDummy - str r1, [r0] - ldr r0, _080702A8 @ =gOtherText_WontHaveAnyEffect - movs r1, 0x1 - bl sub_806E834 - ldr r0, _080702AC @ =sub_806FB0C - movs r1, 0x8 - bl CreateTask - b _080702C6 - .align 2, 0 -_08070280: .4byte 0x0201b000 -_08070284: .4byte 0x0000027e -_08070288: .4byte gPlayerParty -_0807028C: .4byte gUnknown_083769A8 -_08070290: .4byte 0x00000261 -_08070294: .4byte 0x0201c000 -_08070298: .4byte gUnknown_0202E8F4 -_0807029C: .4byte 0xfffff280 -_080702A0: .4byte gTasks -_080702A4: .4byte TaskDummy -_080702A8: .4byte gOtherText_WontHaveAnyEffect -_080702AC: .4byte sub_806FB0C -_080702B0: - ldrh r0, [r4, 0x6] - movs r1, 0x1 - bl RemoveBagItem - ldr r1, _080702D0 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, [r4, 0x10] - str r1, [r0] -_080702C6: - ldr r1, _080702D4 @ =gUnknown_03005CE0 - movs r0, 0 - strb r0, [r1] - b _080702DE - .align 2, 0 -_080702D0: .4byte gTasks -_080702D4: .4byte gUnknown_03005CE0 -_080702D8: - adds r0, r5, 0 - bl sub_8070088 -_080702DE: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80701DC - - thumb_func_start sub_80702E4 -sub_80702E4: @ 80702E4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r6, 0 - movs r0, 0x13 - movs r1, 0xA - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - movs r5, 0 - movs r0, 0x64 - adds r7, r4, 0 - muls r7, r0 - ldr r0, _0807036C @ =gPlayerParty - mov r8, r0 -_0807030C: - adds r1, r5, 0 - adds r1, 0xD - mov r2, r8 - adds r0, r7, r2 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0xD - muls r0, r4 - ldr r1, _08070370 @ =gMoveNames - adds r0, r1 - lsls r2, r5, 25 - movs r1, 0xB0 - lsls r1, 20 - adds r2, r1 - lsrs r2, 24 - movs r1, 0x14 - bl MenuPrint - cmp r4, 0 - beq _08070340 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_08070340: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _0807030C - movs r0, 0 - str r0, [sp] - movs r0, 0x9 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x14 - movs r2, 0xB - adds r3, r6, 0 - bl InitMenu - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0807036C: .4byte gPlayerParty -_08070370: .4byte gMoveNames - thumb_func_end sub_80702E4 - - thumb_func_start sub_8070374 -sub_8070374: @ 8070374 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - adds r4, r2, 0 - ldr r0, _08070398 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0807039C - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - b _080703E4 - .align 2, 0 -_08070398: .4byte gMain -_0807039C: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080703B2 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - b _080703E4 -_080703B2: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080703CC - ldr r0, _080703C8 @ =gUnknown_08376B54 - ldr r1, [r0] - adds r0, r2, 0 - bl _call_via_r1 - b _080703E4 - .align 2, 0 -_080703C8: .4byte gUnknown_08376B54 -_080703CC: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080703E4 - movs r0, 0x5 - bl PlaySE - ldr r0, _080703EC @ =gUnknown_08376B54 - ldr r1, [r0, 0x4] - adds r0, r4, 0 - bl _call_via_r1 -_080703E4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080703EC: .4byte gUnknown_08376B54 - thumb_func_end sub_8070374 - - thumb_func_start dp05_ether -dp05_ether: @ 80703F0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r9, r2 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 16 - lsrs r5, r1, 16 - cmp r5, 0xAF - bne _08070410 - ldr r0, _0807040C @ =gSaveBlock1 + 0x3676 - b _0807041C - .align 2, 0 -_0807040C: .4byte gSaveBlock1 + 0x3676 -_08070410: - ldr r1, _08070464 @ =gItemEffectTable - adds r0, r5, 0 - subs r0, 0xD - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] -_0807041C: - mov r8, r0 - ldr r7, _08070468 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r7 - ldr r0, _0807046C @ =TaskDummy - str r0, [r1] - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r6, 0 - adds r1, r5, 0 - mov r2, r9 - bl sub_806E8D0 - mov r0, r8 - ldrb r1, [r0, 0x4] - movs r0, 0x10 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08070470 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r7 - strh r1, [r0, 0x1E] - adds r0, r4, 0 - bl ether_effect_related - b _08070498 - .align 2, 0 -_08070464: .4byte gItemEffectTable -_08070468: .4byte gTasks -_0807046C: .4byte TaskDummy -_08070470: - movs r0, 0x5 - bl PlaySE - movs r0, 0xA - movs r1, 0x3 - bl sub_806D538 - ldr r0, _080704A4 @ =0x0201c000 - ldrb r0, [r0, 0x5] - bl sub_80702E4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r7 - ldr r1, _080704A8 @ =sub_8070374 - str r1, [r0] - ldr r1, _080704AC @ =gMain - movs r0, 0 - strh r0, [r1, 0x2E] -_08070498: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080704A4: .4byte 0x0201c000 -_080704A8: .4byte sub_8070374 -_080704AC: .4byte gMain - thumb_func_end dp05_ether - - thumb_func_start ether_effect_related_2 -ether_effect_related_2: @ 80704B0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8072DEC - movs r0, 0x13 - movs r1, 0xA - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - bl sub_806D5A4 - bl GetMenuCursorPos - ldr r2, _080704EC @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x1E] - adds r0, r4, 0 - bl ether_effect_related - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080704EC: .4byte gTasks - thumb_func_end ether_effect_related_2 - - thumb_func_start sub_80704F0 -sub_80704F0: @ 80704F0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8072DEC - movs r0, 0x13 - movs r1, 0xA - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r0, _08070528 @ =gMain - ldr r1, _0807052C @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0807053C - ldr r2, _08070530 @ =gTasks - ldr r0, _08070534 @ =0x0201c000 - ldrb r1, [r0, 0x4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, _08070538 @ =sub_8095118 - b _0807054C - .align 2, 0 -_08070528: .4byte gMain -_0807052C: .4byte 0x0000043d -_08070530: .4byte gTasks -_08070534: .4byte 0x0201c000 -_08070538: .4byte sub_8095118 -_0807053C: - ldr r2, _08070564 @ =gTasks - ldr r0, _08070568 @ =0x0201c000 - ldrb r1, [r0, 0x4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, _0807056C @ =sub_808B0C0 -_0807054C: - str r1, [r0] - movs r0, 0x3 - movs r1, 0 - bl sub_806D538 - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08070564: .4byte gTasks -_08070568: .4byte 0x0201c000 -_0807056C: .4byte sub_808B0C0 - thumb_func_end sub_80704F0 - - thumb_func_start ether_effect_related -ether_effect_related: @ 8070570 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r5, 0 - ldr r6, _080705A8 @ =0x0201c000 - ldrb r0, [r6, 0x5] - ldrh r1, [r6, 0x6] - ldr r3, _080705AC @ =gTasks - lsls r2, r4, 2 - adds r2, r4 - lsls r2, 3 - adds r7, r2, r3 - ldrb r2, [r7, 0x1E] - bl ExecuteTableBasedItemEffect__ - lsls r0, 24 - cmp r0, 0 - beq _080705B8 - ldr r0, _080705B0 @ =gUnknown_0202E8F4 - strb r5, [r0] - movs r0, 0x5 - bl PlaySE - ldr r0, _080705B4 @ =gOtherText_WontHaveAnyEffect - movs r1, 0x1 - bl sub_806E834 - b _080705F8 - .align 2, 0 -_080705A8: .4byte 0x0201c000 -_080705AC: .4byte gTasks -_080705B0: .4byte gUnknown_0202E8F4 -_080705B4: .4byte gOtherText_WontHaveAnyEffect -_080705B8: - ldr r1, _0807060C @ =gUnknown_0202E8F4 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0x1 - bl PlaySE - ldrh r0, [r6, 0x6] - movs r1, 0x1 - bl RemoveBagItem - ldr r0, [r6] - movs r2, 0x1E - ldrsh r1, [r7, r2] - adds r1, 0xD - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _08070610 @ =gStringVar1 - movs r1, 0xD - muls r1, r5 - ldr r2, _08070614 @ =gMoveNames - adds r1, r2 - bl StringCopy - ldrh r0, [r6, 0x6] - bl GetMedicineItemEffectMessage - ldr r0, _08070618 @ =gStringVar4 - movs r1, 0x1 - bl sub_806E834 -_080705F8: - ldr r0, _0807061C @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _08070620 @ =sub_806FB0C - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0807060C: .4byte gUnknown_0202E8F4 -_08070610: .4byte gStringVar1 -_08070614: .4byte gMoveNames -_08070618: .4byte gStringVar4 -_0807061C: .4byte gTasks -_08070620: .4byte sub_806FB0C - thumb_func_end ether_effect_related - - thumb_func_start dp05_pp_up -dp05_pp_up: @ 8070624 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - ldr r4, _0807066C @ =gTasks - lsls r3, r0, 2 - adds r3, r0 - lsls r3, 3 - adds r3, r4 - ldr r4, _08070670 @ =TaskDummy - str r4, [r3] - bl sub_806E8D0 - movs r0, 0x5 - bl PlaySE - movs r0, 0xB - movs r1, 0x3 - bl sub_806D538 - ldr r0, _08070674 @ =0x0201c000 - ldrb r0, [r0, 0x5] - bl sub_80702E4 - ldr r0, _08070678 @ =sub_8070374 - movs r1, 0x5 - bl CreateTask - ldr r1, _0807067C @ =gMain - movs r0, 0 - strh r0, [r1, 0x2E] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807066C: .4byte gTasks -_08070670: .4byte TaskDummy -_08070674: .4byte 0x0201c000 -_08070678: .4byte sub_8070374 -_0807067C: .4byte gMain - thumb_func_end dp05_pp_up - - thumb_func_start sub_8070680 -sub_8070680: @ 8070680 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r6, r1, 16 - ldr r3, _080706E0 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r3 - ldr r3, _080706E4 @ =TaskDummy - str r3, [r1] - adds r1, r6, 0 - bl sub_806E8D0 - ldr r5, _080706E8 @ =0x0201c000 - ldr r0, [r5] - movs r1, 0x38 - bl GetMonData - cmp r0, 0x64 - beq _080706F4 - movs r4, 0 - ldr r0, _080706EC @ =0xfffff264 - adds r7, r5, r0 -_080706B2: - ldr r0, [r5] - ldr r1, _080706F0 @ =gUnknown_08376D1C - adds r1, r4, r1 - ldrb r1, [r1] - bl GetMonData - lsls r1, r4, 1 - adds r1, r7, r1 - strh r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _080706B2 - ldr r0, _080706E8 @ =0x0201c000 - ldrb r0, [r0, 0x5] - adds r1, r6, 0 - movs r2, 0 - bl ExecuteTableBasedItemEffect__ - lsls r0, 24 - lsrs r0, 24 - b _080706F6 - .align 2, 0 -_080706E0: .4byte gTasks -_080706E4: .4byte TaskDummy -_080706E8: .4byte 0x0201c000 -_080706EC: .4byte 0xfffff264 -_080706F0: .4byte gUnknown_08376D1C -_080706F4: - movs r0, 0x1 -_080706F6: - cmp r0, 0 - beq _08070724 - ldr r1, _08070718 @ =gUnknown_0202E8F4 - movs r0, 0 - strb r0, [r1] - movs r0, 0x5 - bl PlaySE - ldr r0, _0807071C @ =gOtherText_WontHaveAnyEffect - movs r1, 0x1 - bl sub_806E834 - ldr r0, _08070720 @ =sub_806FB0C - movs r1, 0x5 - bl CreateTask - b _0807077C - .align 2, 0 -_08070718: .4byte gUnknown_0202E8F4 -_0807071C: .4byte gOtherText_WontHaveAnyEffect -_08070720: .4byte sub_806FB0C -_08070724: - ldr r1, _08070784 @ =gUnknown_0202E8F4 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0 - bl PlayFanfareByFanfareNum - ldr r4, _08070788 @ =0x0201c000 - ldrb r0, [r4, 0x5] - ldr r1, [r4] - bl sub_8070A20 - adds r0, r6, 0 - movs r1, 0x1 - bl RemoveBagItem - ldr r0, [r4] - ldr r1, _0807078C @ =gStringVar1 - bl GetMonNickname - ldr r0, [r4] - movs r1, 0x38 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _08070790 @ =gStringVar2 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r4, _08070794 @ =gStringVar4 - ldr r1, _08070798 @ =gOtherText_ElevatedTo - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_806E834 - ldr r0, _0807079C @ =sub_80707A0 - movs r1, 0x5 - bl CreateTask -_0807077C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08070784: .4byte gUnknown_0202E8F4 -_08070788: .4byte 0x0201c000 -_0807078C: .4byte gStringVar1 -_08070790: .4byte gStringVar2 -_08070794: .4byte gStringVar4 -_08070798: .4byte gOtherText_ElevatedTo -_0807079C: .4byte sub_80707A0 - thumb_func_end sub_8070680 - - thumb_func_start sub_80707A0 -sub_80707A0: @ 80707A0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - bl WaitFanfare - lsls r0, 24 - cmp r0, 0 - beq _080707E8 - ldr r0, _080707F0 @ =gUnknown_0202E8F6 - ldrb r0, [r0] - cmp r0, 0 - bne _080707E8 - ldr r0, _080707F4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080707CE - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080707E8 -_080707CE: - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_8070848 - ldr r0, _080707F8 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080707FC @ =sub_8070800 - str r0, [r1] -_080707E8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080707F0: .4byte gUnknown_0202E8F6 -_080707F4: .4byte gMain -_080707F8: .4byte gTasks -_080707FC: .4byte sub_8070800 - thumb_func_end sub_80707A0 - - thumb_func_start sub_8070800 -sub_8070800: @ 8070800 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0807083C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0807081A - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08070834 -_0807081A: - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_8070968 - ldr r0, _08070840 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _08070844 @ =sub_8070AC8 - str r0, [r1] -_08070834: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807083C: .4byte gMain -_08070840: .4byte gTasks -_08070844: .4byte sub_8070AC8 - thumb_func_end sub_8070800 - - thumb_func_start sub_8070848 -sub_8070848: @ 8070848 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r0, 0xB - movs r1, 0 - movs r2, 0x1D - movs r3, 0x7 - bl MenuDrawTextWindow - movs r7, 0 - ldr r0, _080708E4 @ =gStringVar1 - mov r10, r0 -_08070864: - ldr r1, _080708E8 @ =0x0201c000 - ldr r0, [r1] - ldr r1, _080708EC @ =gUnknown_08376D1C - adds r1, r7, r1 - ldrb r1, [r1] - bl GetMonData - adds r1, r7, 0x6 - lsls r1, 1 - ldr r2, _080708F0 @ =0x0201b264 - adds r1, r2 - strh r0, [r1] - lsls r4, r7, 1 - adds r2, r4, r2 - ldrh r1, [r2] - subs r0, r1 - strh r0, [r2] - adds r0, r7, 0 - movs r1, 0x3 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - adds r1, r0 - adds r1, 0xB - lsls r1, 24 - lsrs r6, r1, 24 - adds r0, r7, 0 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 1 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r1, _080708F4 @ =gUnknown_08376D04 - lsls r0, r7, 2 - adds r0, r1 - ldr r0, [r0] - adds r1, r6, 0x1 - lsls r1, 27 - lsrs r1, 24 - mov r2, r9 - lsls r5, r2, 3 - adds r2, r5, 0 - movs r3, 0x1 - bl MenuPrint_PixelCoords - mov r8, r4 - cmp r7, 0x2 - bne _080708FC - adds r4, r6, 0x6 - lsls r1, r4, 3 - adds r1, 0x6 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _080708F8 @ =gOtherText_TallPlusAndRightArrow - adds r2, r5, 0 - movs r3, 0 - bl MenuPrint_PixelCoords - b _08070910 - .align 2, 0 -_080708E4: .4byte gStringVar1 -_080708E8: .4byte 0x0201c000 -_080708EC: .4byte gUnknown_08376D1C -_080708F0: .4byte 0x0201b264 -_080708F4: .4byte gUnknown_08376D04 -_080708F8: .4byte gOtherText_TallPlusAndRightArrow -_080708FC: - adds r4, r6, 0x6 - lsls r1, r4, 3 - adds r1, 0x6 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _08070960 @ =gOtherText_TallPlusAndRightArrow - adds r2, r5, 0 - movs r3, 0x1 - bl MenuPrint_PixelCoords -_08070910: - movs r0, 0xFC - mov r1, r10 - strb r0, [r1] - movs r0, 0x14 - strb r0, [r1, 0x1] - movs r0, 0x6 - strb r0, [r1, 0x2] - ldr r0, _08070964 @ =0x0201b264 - add r0, r8 - movs r2, 0 - ldrsh r1, [r0, r2] - mov r0, r10 - adds r0, 0x3 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - lsls r1, r4, 27 - movs r0, 0xC0 - lsls r0, 20 - adds r1, r0 - lsrs r1, 24 - mov r0, r9 - lsls r2, r0, 3 - mov r0, r10 - movs r3, 0 - bl MenuPrint_PixelCoords - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x5 - bls _08070864 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08070960: .4byte gOtherText_TallPlusAndRightArrow -_08070964: .4byte 0x0201b264 - thumb_func_end sub_8070848 - - thumb_func_start sub_8070968 -sub_8070968: @ 8070968 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r7, 0 - ldr r0, _08070A10 @ =0x0201c000 - mov r9, r0 - ldr r1, _08070A14 @ =0xfffff264 - add r1, r9 - mov r10, r1 - ldr r0, _08070A18 @ =gStringVar1 - mov r8, r0 -_08070982: - mov r1, r9 - ldr r0, [r1] - ldr r1, _08070A1C @ =gUnknown_08376D1C - adds r1, r7, r1 - ldrb r1, [r1] - bl GetMonData - adds r6, r7, 0x6 - lsls r6, 1 - add r6, r10 - strh r0, [r6] - adds r0, r7, 0 - movs r1, 0x3 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 3 - adds r4, r0 - adds r4, 0xB - lsls r4, 24 - lsrs r4, 24 - adds r0, r7, 0 - movs r1, 0x3 - bl __umodsi3 - adds r5, r0, 0 - lsls r5, 1 - adds r5, 0x1 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0xFC - mov r1, r8 - strb r0, [r1] - movs r0, 0x14 - strb r0, [r1, 0x1] - movs r0, 0x6 - strb r0, [r1, 0x2] - movs r0, 0 - ldrsh r1, [r6, r0] - mov r0, r8 - adds r0, 0x3 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r4, 0x6 - lsls r4, 3 - adds r4, 0x6 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 3 - mov r0, r8 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0 - bl MenuPrint_PixelCoords - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x5 - bls _08070982 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08070A10: .4byte 0x0201c000 -_08070A14: .4byte 0xfffff264 -_08070A18: .4byte gStringVar1 -_08070A1C: .4byte gUnknown_08376D1C - thumb_func_end sub_8070968 - - thumb_func_start sub_8070A20 -sub_8070A20: @ 8070A20 - push {r4-r7,lr} - adds r6, r1, 0 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r6, 0 - bl sub_80A1CD8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08070A3A - cmp r0, 0x6 - bne _08070A42 -_08070A3A: - adds r0, r6, 0 - adds r1, r7, 0 - bl sub_806FBB4 -_08070A42: - bl battle_type_is_double - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r6, 0 - movs r1, 0x39 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r6, 0 - movs r1, 0x3A - bl GetMonData - adds r3, r0, 0 - lsls r3, 16 - lsrs r3, 16 - adds r0, r7, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_806E420 - adds r0, r7, 0 - adds r1, r6, 0 - bl sub_806E674 - ldr r4, _08070ABC @ =0x0201c000 - ldrb r0, [r4, 0x4] - adds r1, r7, 0 - bl sub_806DDA0 - lsls r0, 24 - lsrs r0, 24 - adds r1, r6, 0 - bl sub_806D84C - bl battle_type_is_double - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - lsls r1, r7, 1 - adds r0, r1 - ldr r1, _08070AC0 @ =gUnknown_083769A8 - adds r0, r1 - movs r1, 0x7 - bl task_pc_turn_off - ldr r0, _08070AC4 @ =0xfffff261 - adds r4, r0 - movs r0, 0x2 - strb r0, [r4] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08070ABC: .4byte 0x0201c000 -_08070AC0: .4byte gUnknown_083769A8 -_08070AC4: .4byte 0xfffff261 - thumb_func_end sub_8070A20 - - thumb_func_start sub_8070AC8 -sub_8070AC8: @ 8070AC8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0 - bl WaitFanfare - lsls r0, 24 - cmp r0, 0 - bne _08070ADC - b _08070C2C -_08070ADC: - ldr r0, _08070B24 @ =gMain - ldrh r1, [r0, 0x2E] - movs r5, 0x1 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _08070AF4 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08070AF4 - b _08070C2C -_08070AF4: - movs r0, 0xB - movs r1, 0 - movs r2, 0x1D - movs r3, 0x7 - bl MenuZeroFillWindowRect - ldr r7, _08070B28 @ =0x0201c000 - ldr r0, [r7] - movs r1, 0x1 - bl sub_803B7C8 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r1, _08070B2C @ =0xfffff282 - adds r0, r7, r1 - strh r5, [r0] - ldr r0, _08070B30 @ =0x0000fffe - cmp r4, r0 - beq _08070BDC - cmp r4, r0 - bgt _08070B34 - cmp r4, 0 - beq _08070B40 - b _08070BF4 - .align 2, 0 -_08070B24: .4byte gMain -_08070B28: .4byte 0x0201c000 -_08070B2C: .4byte 0xfffff282 -_08070B30: .4byte 0x0000fffe -_08070B34: - ldr r0, _08070B3C @ =0x0000ffff - cmp r4, r0 - beq _08070B7C - b _08070BF4 - .align 2, 0 -_08070B3C: .4byte 0x0000ffff -_08070B40: - ldr r0, [r7] - movs r1, 0 - movs r2, 0 - bl GetEvolutionTargetSpecies - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _08070B74 - ldr r1, _08070B6C @ =gUnknown_03005E94 - ldr r0, _08070B70 @ =sub_80A53F8 - str r0, [r1] - ldr r0, [r7] - ldrb r3, [r7, 0x5] - adds r1, r2, 0 - movs r2, 0x1 - bl BeginEvolutionScene - adds r0, r6, 0 - bl DestroyTask - b _08070C2C - .align 2, 0 -_08070B6C: .4byte gUnknown_03005E94 -_08070B70: .4byte sub_80A53F8 -_08070B74: - adds r0, r6, 0 - bl sub_8070D90 - b _08070C2C -_08070B7C: - ldr r0, [r7] - ldr r1, _08070BBC @ =gStringVar1 - bl GetMonNickname - ldr r0, _08070BC0 @ =gStringVar2 - ldr r5, _08070BC4 @ =word_2024E82 - ldrh r2, [r5] - movs r1, 0xD - muls r1, r2 - ldr r2, _08070BC8 @ =gMoveNames - adds r1, r2 - bl StringCopy - ldr r4, _08070BCC @ =gStringVar4 - ldr r1, _08070BD0 @ =gOtherText_WantsToLearn - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_806E834 - ldrh r0, [r5] - strh r0, [r7, 0x8] - ldr r1, _08070BD4 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _08070BD8 @ =sub_806F358 - b _08070C2A - .align 2, 0 -_08070BBC: .4byte gStringVar1 -_08070BC0: .4byte gStringVar2 -_08070BC4: .4byte word_2024E82 -_08070BC8: .4byte gMoveNames -_08070BCC: .4byte gStringVar4 -_08070BD0: .4byte gOtherText_WantsToLearn -_08070BD4: .4byte gTasks -_08070BD8: .4byte sub_806F358 -_08070BDC: - ldr r0, _08070BEC @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _08070BF0 @ =sub_8070C54 - str r0, [r1] - b _08070C2C - .align 2, 0 -_08070BEC: .4byte gTasks -_08070BF0: .4byte sub_8070C54 -_08070BF4: - ldr r0, _08070C34 @ =0x0201c000 - ldr r0, [r0] - ldr r1, _08070C38 @ =gStringVar1 - bl GetMonNickname - ldr r0, _08070C3C @ =gStringVar2 - movs r1, 0xD - muls r1, r4 - ldr r2, _08070C40 @ =gMoveNames - adds r1, r2 - bl StringCopy - ldr r4, _08070C44 @ =gStringVar4 - ldr r1, _08070C48 @ =gOtherText_LearnedMove - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_806E834 - ldr r1, _08070C4C @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _08070C50 @ =sub_806F254 -_08070C2A: - str r1, [r0] -_08070C2C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08070C34: .4byte 0x0201c000 -_08070C38: .4byte gStringVar1 -_08070C3C: .4byte gStringVar2 -_08070C40: .4byte gMoveNames -_08070C44: .4byte gStringVar4 -_08070C48: .4byte gOtherText_LearnedMove -_08070C4C: .4byte gTasks -_08070C50: .4byte sub_806F254 - thumb_func_end sub_8070AC8 - - thumb_func_start sub_8070C54 -sub_8070C54: @ 8070C54 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r7, _08070C78 @ =0x0201c000 - ldr r0, [r7] - movs r1, 0 - bl sub_803B7C8 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _08070C7C @ =0x0000fffe - cmp r4, r0 - beq _08070D28 - cmp r4, r0 - bgt _08070C80 - cmp r4, 0 - beq _08070C8C - b _08070D30 - .align 2, 0 -_08070C78: .4byte 0x0201c000 -_08070C7C: .4byte 0x0000fffe -_08070C80: - ldr r0, _08070C88 @ =0x0000ffff - cmp r4, r0 - beq _08070CC8 - b _08070D30 - .align 2, 0 -_08070C88: .4byte 0x0000ffff -_08070C8C: - ldr r0, [r7] - movs r1, 0 - movs r2, 0 - bl GetEvolutionTargetSpecies - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _08070CC0 - ldr r1, _08070CB8 @ =gUnknown_03005E94 - ldr r0, _08070CBC @ =sub_80A53F8 - str r0, [r1] - ldr r0, [r7] - ldrb r3, [r7, 0x5] - adds r1, r2, 0 - movs r2, 0x1 - bl BeginEvolutionScene - adds r0, r6, 0 - bl DestroyTask - b _08070D68 - .align 2, 0 -_08070CB8: .4byte gUnknown_03005E94 -_08070CBC: .4byte sub_80A53F8 -_08070CC0: - adds r0, r6, 0 - bl sub_8070D90 - b _08070D68 -_08070CC8: - ldr r0, [r7] - ldr r1, _08070D08 @ =gStringVar1 - bl GetMonNickname - ldr r0, _08070D0C @ =gStringVar2 - ldr r5, _08070D10 @ =word_2024E82 - ldrh r2, [r5] - movs r1, 0xD - muls r1, r2 - ldr r2, _08070D14 @ =gMoveNames - adds r1, r2 - bl StringCopy - ldr r4, _08070D18 @ =gStringVar4 - ldr r1, _08070D1C @ =gOtherText_WantsToLearn - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_806E834 - ldrh r0, [r5] - strh r0, [r7, 0x8] - ldr r1, _08070D20 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _08070D24 @ =sub_806F358 - b _08070D66 - .align 2, 0 -_08070D08: .4byte gStringVar1 -_08070D0C: .4byte gStringVar2 -_08070D10: .4byte word_2024E82 -_08070D14: .4byte gMoveNames -_08070D18: .4byte gStringVar4 -_08070D1C: .4byte gOtherText_WantsToLearn -_08070D20: .4byte gTasks -_08070D24: .4byte sub_806F358 -_08070D28: - adds r0, r6, 0 - bl sub_8070C54 - b _08070D68 -_08070D30: - ldr r0, _08070D70 @ =0x0201c000 - ldr r0, [r0] - ldr r1, _08070D74 @ =gStringVar1 - bl GetMonNickname - ldr r0, _08070D78 @ =gStringVar2 - movs r1, 0xD - muls r1, r4 - ldr r2, _08070D7C @ =gMoveNames - adds r1, r2 - bl StringCopy - ldr r4, _08070D80 @ =gStringVar4 - ldr r1, _08070D84 @ =gOtherText_LearnedMove - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_806E834 - ldr r1, _08070D88 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _08070D8C @ =sub_806F254 -_08070D66: - str r1, [r0] -_08070D68: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08070D70: .4byte 0x0201c000 -_08070D74: .4byte gStringVar1 -_08070D78: .4byte gStringVar2 -_08070D7C: .4byte gMoveNames -_08070D80: .4byte gStringVar4 -_08070D84: .4byte gOtherText_LearnedMove -_08070D88: .4byte gTasks -_08070D8C: .4byte sub_806F254 - thumb_func_end sub_8070C54 - - thumb_func_start sub_8070D90 -sub_8070D90: @ 8070D90 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08070DB4 @ =gTasks - ldr r3, _08070DB8 @ =0x0201c000 - ldrb r2, [r3, 0x4] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r4 - ldr r2, [r3, 0x10] - str r2, [r1] - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08070DB4: .4byte gTasks -_08070DB8: .4byte 0x0201c000 - thumb_func_end sub_8070D90 - - thumb_func_start sub_8070DBC -sub_8070DBC: @ 8070DBC - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r2, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 16 - lsrs r6, r1, 16 - movs r0, 0x5 - bl PlaySE - ldr r1, _08070E18 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08070E1C @ =TaskDummy - str r1, [r0] - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_806E8D0 - ldr r1, _08070E20 @ =gUnknown_03005E94 - ldr r0, _08070E24 @ =sub_80A53F8 - str r0, [r1] - ldr r0, _08070E28 @ =0x0201c000 - ldrb r0, [r0, 0x5] - adds r1, r6, 0 - movs r2, 0 - bl ExecuteTableBasedItemEffect__ - lsls r0, 24 - cmp r0, 0 - beq _08070E38 - ldr r1, _08070E2C @ =gUnknown_0202E8F4 - movs r0, 0 - strb r0, [r1] - ldr r0, _08070E30 @ =gOtherText_WontHaveAnyEffect - movs r1, 0x1 - bl sub_806E834 - ldr r0, _08070E34 @ =sub_806FB0C - movs r1, 0x5 - bl CreateTask - b _08070E40 - .align 2, 0 -_08070E18: .4byte gTasks -_08070E1C: .4byte TaskDummy -_08070E20: .4byte gUnknown_03005E94 -_08070E24: .4byte sub_80A53F8 -_08070E28: .4byte 0x0201c000 -_08070E2C: .4byte gUnknown_0202E8F4 -_08070E30: .4byte gOtherText_WontHaveAnyEffect -_08070E34: .4byte sub_806FB0C -_08070E38: - adds r0, r6, 0 - movs r1, 0x1 - bl RemoveBagItem -_08070E40: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8070DBC - - thumb_func_start sub_8070E48 -sub_8070E48: @ 8070E48 - push {r4,r5,lr} - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAF - bne _08070E5C - ldr r4, _08070E58 @ =gSaveBlock1 + 0x3676 - b _08070E66 - .align 2, 0 -_08070E58: .4byte gSaveBlock1 + 0x3676 -_08070E5C: - ldr r1, _08070E8C @ =gItemEffectTable - subs r0, 0xD - lsls r0, 2 - adds r0, r1 - ldr r4, [r0] -_08070E66: - ldrb r1, [r4] - movs r5, 0x3F - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _08070E88 - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _08070E88 - ldrb r0, [r4, 0x2] - cmp r0, 0 - bne _08070E88 - ldrb r3, [r4, 0x3] - movs r0, 0x80 - ands r0, r3 - cmp r0, 0 - beq _08070E90 -_08070E88: - movs r0, 0 - b _08070F8A - .align 2, 0 -_08070E8C: .4byte gItemEffectTable -_08070E90: - movs r2, 0x40 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _08070E9E - movs r0, 0xA - b _08070F8A -_08070E9E: - adds r0, r2, 0 - ands r0, r3 - cmp r0, 0 - beq _08070EAA - movs r0, 0x1 - b _08070F8A -_08070EAA: - adds r2, r5, 0 - ands r2, r3 - cmp r2, 0 - bne _08070EB8 - lsrs r0, r1, 7 - cmp r0, 0 - beq _08070EFA -_08070EB8: - cmp r2, 0x20 - bne _08070EC0 - movs r0, 0x4 - b _08070F8A -_08070EC0: - cmp r2, 0x10 - bne _08070EC8 - movs r0, 0x3 - b _08070F8A -_08070EC8: - cmp r2, 0x8 - bne _08070ED0 - movs r0, 0x5 - b _08070F8A -_08070ED0: - cmp r2, 0x4 - bne _08070ED8 - movs r0, 0x6 - b _08070F8A -_08070ED8: - cmp r2, 0x2 - bne _08070EE0 - movs r0, 0x7 - b _08070F8A -_08070EE0: - cmp r2, 0x1 - bne _08070EE8 - movs r0, 0x8 - b _08070F8A -_08070EE8: - lsrs r0, r1, 7 - cmp r0, 0 - beq _08070EF6 - cmp r2, 0 - bne _08070EF6 - movs r0, 0x9 - b _08070F8A -_08070EF6: - movs r0, 0xB - b _08070F8A -_08070EFA: - ldrb r1, [r4, 0x4] - movs r0, 0x44 - ands r0, r1 - adds r2, r1, 0 - cmp r0, 0 - beq _08070F0A - movs r0, 0x2 - b _08070F8A -_08070F0A: - movs r5, 0x2 - adds r0, r5, 0 - ands r0, r2 - cmp r0, 0 - beq _08070F18 - movs r0, 0xC - b _08070F8A -_08070F18: - movs r3, 0x1 - adds r0, r3, 0 - ands r0, r2 - cmp r0, 0 - beq _08070F26 - movs r0, 0xD - b _08070F8A -_08070F26: - ldrb r1, [r4, 0x5] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08070F34 - movs r0, 0xE - b _08070F8A -_08070F34: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08070F40 - movs r0, 0xF - b _08070F8A -_08070F40: - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _08070F4C - movs r0, 0x10 - b _08070F8A -_08070F4C: - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08070F58 - movs r0, 0x11 - b _08070F8A -_08070F58: - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _08070F64 - movs r0, 0x12 - b _08070F8A -_08070F64: - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - beq _08070F70 - movs r0, 0x13 - b _08070F8A -_08070F70: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08070F7C - movs r0, 0x14 - b _08070F8A -_08070F7C: - movs r0, 0x18 - ands r0, r2 - cmp r0, 0 - bne _08070F88 - movs r0, 0x16 - b _08070F8A -_08070F88: - movs r0, 0x15 -_08070F8A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8070E48 - - thumb_func_start unref_sub_8070F90 -unref_sub_8070F90: @ 8070F90 - push {lr} - ldr r0, _08070FAC @ =0x00000801 - bl FlagSet - movs r0, 0x80 - lsls r0, 4 - bl FlagSet - ldr r0, _08070FB0 @ =0x00000802 - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_08070FAC: .4byte 0x00000801 -_08070FB0: .4byte 0x00000802 - thumb_func_end unref_sub_8070F90 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_8074BAC.s b/asm/rom_8077ABC.s index 27f89abde..db413817a 100644 --- a/asm/rom_8074BAC.s +++ b/asm/rom_8077ABC.s @@ -6,4726 +6,6 @@ .text - thumb_func_start sub_8075624 -sub_8075624: @ 8075624 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _080756B8 @ =gUnknown_0202F7B0 - movs r1, 0 - strb r1, [r0] - ldr r0, _080756BC @ =gUnknown_0202F7B1 - strb r1, [r0] - ldr r0, _080756C0 @ =gUnknown_0202F7B2 - strb r1, [r0] - ldr r0, _080756C4 @ =gUnknown_0202F7B3 - strb r1, [r0] - ldr r0, _080756C8 @ =gUnknown_0202F7B4 - movs r1, 0 - str r1, [r0] - ldr r0, _080756CC @ =gUnknown_0202F7B8 - str r1, [r0] - ldr r0, _080756D0 @ =gUnknown_0202F7BC - movs r2, 0 - strh r1, [r0] - ldr r0, _080756D4 @ =gUnknown_0202F7BE - strb r2, [r0] - ldr r4, _080756D8 @ =gUnknown_0202F7C2 - ldr r5, _080756DC @ =gUnknown_0202F7C4 - ldr r6, _080756E0 @ =gUnknown_0202F7C5 - ldr r7, _080756E4 @ =gUnknown_0202F7C6 - ldr r0, _080756E8 @ =gUnknown_0202F7C8 - mov r12, r0 - ldr r1, _080756EC @ =gUnknown_0202F7C9 - mov r8, r1 - ldr r0, _080756F0 @ =gUnknown_0202F7D2 - mov r9, r0 - ldr r1, _080756F4 @ =0x0000ffff - adds r3, r1, 0 - ldr r1, _080756F8 @ =gUnknown_03004B10 - movs r2, 0x7 -_0807566E: - ldrh r0, [r1] - orrs r0, r3 - strh r0, [r1] - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _0807566E - ldr r1, _080756FC @ =gUnknown_03004B00 - movs r2, 0 - adds r0, r1, 0 - adds r0, 0xE -_08075684: - strh r2, [r0] - subs r0, 0x2 - cmp r0, r1 - bge _08075684 - movs r1, 0 - movs r0, 0xFF - strb r0, [r4] - movs r0, 0x1 - negs r0, r0 - strb r0, [r4, 0x1] - strb r1, [r5] - strb r1, [r6] - movs r0, 0 - strh r1, [r7] - mov r1, r12 - strb r0, [r1] - mov r1, r8 - strb r0, [r1] - mov r1, r9 - strb r0, [r1] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080756B8: .4byte gUnknown_0202F7B0 -_080756BC: .4byte gUnknown_0202F7B1 -_080756C0: .4byte gUnknown_0202F7B2 -_080756C4: .4byte gUnknown_0202F7B3 -_080756C8: .4byte gUnknown_0202F7B4 -_080756CC: .4byte gUnknown_0202F7B8 -_080756D0: .4byte gUnknown_0202F7BC -_080756D4: .4byte gUnknown_0202F7BE -_080756D8: .4byte gUnknown_0202F7C2 -_080756DC: .4byte gUnknown_0202F7C4 -_080756E0: .4byte gUnknown_0202F7C5 -_080756E4: .4byte gUnknown_0202F7C6 -_080756E8: .4byte gUnknown_0202F7C8 -_080756EC: .4byte gUnknown_0202F7C9 -_080756F0: .4byte gUnknown_0202F7D2 -_080756F4: .4byte 0x0000ffff -_080756F8: .4byte gUnknown_03004B10 -_080756FC: .4byte gUnknown_03004B00 - thumb_func_end sub_8075624 - - thumb_func_start move_anim_start_t1 -move_anim_start_t1: @ 8075700 - push {lr} - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r2, _08075724 @ =gUnknown_0202F7C8 - ldr r0, _08075728 @ =gUnknown_02024C07 - ldrb r0, [r0] - strb r0, [r2] - ldr r2, _0807572C @ =gUnknown_0202F7C9 - ldr r0, _08075730 @ =gUnknown_02024C08 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, _08075734 @ =gBattleAnims_Moves - movs r2, 0x1 - bl move_something - pop {r0} - bx r0 - .align 2, 0 -_08075724: .4byte gUnknown_0202F7C8 -_08075728: .4byte gUnknown_02024C07 -_0807572C: .4byte gUnknown_0202F7C9 -_08075730: .4byte gUnknown_02024C08 -_08075734: .4byte gBattleAnims_Moves - thumb_func_end move_anim_start_t1 - - thumb_func_start move_something -move_something: @ 8075738 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - str r0, [sp] - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080757D8 - bl sub_8079E24 - movs r0, 0 - bl sub_8043EB4 - movs r4, 0 - mov r0, r8 - lsls r0, 2 - mov r10, r0 - ldr r6, _0807578C @ =gUnknown_02024A6A - movs r7, 0x64 - ldr r5, _08075790 @ =gUnknown_0202F7CA -_08075774: - lsls r0, r4, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _08075798 - ldrh r0, [r6] - muls r0, r7 - ldr r1, _08075794 @ =gEnemyParty - b _0807579E - .align 2, 0 -_0807578C: .4byte gUnknown_02024A6A -_08075790: .4byte gUnknown_0202F7CA -_08075794: .4byte gEnemyParty -_08075798: - ldrh r0, [r6] - muls r0, r7 - ldr r1, _080757C0 @ =gPlayerParty -_0807579E: - adds r0, r1 - movs r1, 0xB - bl GetMonData - strh r0, [r5] - adds r6, 0x2 - adds r5, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _08075774 - ldr r3, _080757C4 @ =gUnknown_0202F7C6 - ldr r5, _080757C8 @ =gUnknown_0202F7C2 - ldr r1, _080757CC @ =gUnknown_0202F7B1 - mov r12, r1 - ldr r7, _080757D0 @ =gUnknown_0202F7AC - ldr r6, _080757D4 @ =sub_80759D0 - b _080757FC - .align 2, 0 -_080757C0: .4byte gPlayerParty -_080757C4: .4byte gUnknown_0202F7C6 -_080757C8: .4byte gUnknown_0202F7C2 -_080757CC: .4byte gUnknown_0202F7B1 -_080757D0: .4byte gUnknown_0202F7AC -_080757D4: .4byte sub_80759D0 -_080757D8: - ldr r3, _08075808 @ =gUnknown_0202F7C6 - ldr r5, _0807580C @ =gUnknown_0202F7C2 - mov r0, r8 - lsls r0, 2 - mov r10, r0 - ldr r1, _08075810 @ =gUnknown_0202F7B1 - mov r12, r1 - ldr r7, _08075814 @ =gUnknown_0202F7AC - ldr r6, _08075818 @ =sub_80759D0 - ldr r2, _0807581C @ =0x02019348 - ldr r1, _08075820 @ =gUnknown_0202F7CA - movs r4, 0x3 -_080757F0: - ldrh r0, [r2] - strh r0, [r1] - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080757F0 -_080757FC: - mov r0, r9 - cmp r0, 0 - bne _08075824 - strh r0, [r3] - b _08075828 - .align 2, 0 -_08075808: .4byte gUnknown_0202F7C6 -_0807580C: .4byte gUnknown_0202F7C2 -_08075810: .4byte gUnknown_0202F7B1 -_08075814: .4byte gUnknown_0202F7AC -_08075818: .4byte sub_80759D0 -_0807581C: .4byte 0x02019348 -_08075820: .4byte gUnknown_0202F7CA -_08075824: - mov r1, r8 - strh r1, [r3] -_08075828: - ldr r1, _0807587C @ =gUnknown_03004B00 - movs r2, 0 - adds r0, r1, 0 - adds r0, 0xE -_08075830: - strh r2, [r0] - subs r0, 0x2 - cmp r0, r1 - bge _08075830 - movs r0, 0xFF - strb r0, [r5] - movs r0, 0x1 - negs r0, r0 - strb r0, [r5, 0x1] - ldr r0, [sp] - add r0, r10 - ldr r0, [r0] - ldr r1, _08075880 @ =gUnknown_0202F7A4 - str r0, [r1] - movs r0, 0x1 - mov r1, r12 - strb r0, [r1] - movs r0, 0 - ldr r1, _08075884 @ =gUnknown_0202F7B0 - strb r0, [r1] - str r6, [r7] - ldr r0, _08075888 @ =0x0000ffff - adds r2, r0, 0 - ldr r1, _0807588C @ =gUnknown_03004B10 - movs r4, 0x7 -_08075862: - ldrh r0, [r1] - orrs r0, r2 - strh r0, [r1] - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _08075862 - mov r1, r9 - cmp r1, 0 - beq _080758AE - movs r4, 0 - ldr r2, _08075890 @ =gUnknown_081C7160 - b _08075896 - .align 2, 0 -_0807587C: .4byte gUnknown_03004B00 -_08075880: .4byte gUnknown_0202F7A4 -_08075884: .4byte gUnknown_0202F7B0 -_08075888: .4byte 0x0000ffff -_0807588C: .4byte gUnknown_03004B10 -_08075890: .4byte gUnknown_081C7160 -_08075894: - adds r4, 0x1 -_08075896: - lsls r0, r4, 1 - adds r0, r2 - ldrh r0, [r0] - ldr r1, _080758D0 @ =0x0000ffff - cmp r0, r1 - beq _080758AE - cmp r8, r0 - bne _08075894 - ldr r0, _080758D4 @ =gMPlay_BGM - movs r2, 0x80 - bl m4aMPlayVolumeControl -_080758AE: - ldr r0, _080758D8 @ =gUnknown_030042C4 - movs r1, 0 - strh r1, [r0] - ldr r0, _080758DC @ =gUnknown_03004240 - strh r1, [r0] - ldr r0, _080758E0 @ =gUnknown_03004200 - strh r1, [r0] - ldr r0, _080758E4 @ =gUnknown_03004244 - strh r1, [r0] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080758D0: .4byte 0x0000ffff -_080758D4: .4byte gMPlay_BGM -_080758D8: .4byte gUnknown_030042C4 -_080758DC: .4byte gUnknown_03004240 -_080758E0: .4byte gUnknown_03004200 -_080758E4: .4byte gUnknown_03004244 - thumb_func_end move_something - - thumb_func_start move_anim_8072740 -move_anim_8072740: @ 80758E8 - push {r4,lr} - adds r4, r0, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite - ldr r1, _08075904 @ =gUnknown_0202F7B2 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08075904: .4byte gUnknown_0202F7B2 - thumb_func_end move_anim_8072740 - - thumb_func_start move_anim_task_del -move_anim_task_del: @ 8075908 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - ldr r1, _08075920 @ =gUnknown_0202F7B2 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08075920: .4byte gUnknown_0202F7B2 - thumb_func_end move_anim_task_del - - thumb_func_start move_anim_related_task_del -move_anim_related_task_del: @ 8075924 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - ldr r1, _0807593C @ =gUnknown_0202F7B3 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0807593C: .4byte gUnknown_0202F7B3 - thumb_func_end move_anim_related_task_del - - thumb_func_start sub_8075940 -sub_8075940: @ 8075940 - push {r4,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r4, _08075958 @ =0x0000ffff - ldr r1, _0807595C @ =gUnknown_03004B10 -_0807594C: - ldrh r0, [r1] - cmp r0, r4 - bne _08075960 - strh r3, [r1] - b _08075968 - .align 2, 0 -_08075958: .4byte 0x0000ffff -_0807595C: .4byte gUnknown_03004B10 -_08075960: - adds r1, 0x2 - adds r2, 0x1 - cmp r2, 0x7 - ble _0807594C -_08075968: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8075940 - - thumb_func_start sub_8075970 -sub_8075970: @ 8075970 - push {r4,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r0, _0807598C @ =0x0000ffff - adds r4, r0, 0 - ldr r1, _08075990 @ =gUnknown_03004B10 -_0807597E: - ldrh r0, [r1] - cmp r0, r3 - bne _08075994 - orrs r0, r4 - strh r0, [r1] - b _0807599C - .align 2, 0 -_0807598C: .4byte 0x0000ffff -_08075990: .4byte gUnknown_03004B10 -_08075994: - adds r1, 0x2 - adds r2, 0x1 - cmp r2, 0x7 - ble _0807597E -_0807599C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8075970 - - thumb_func_start move_anim_waiter -move_anim_waiter: @ 80759A4 - push {lr} - ldr r2, _080759BC @ =gUnknown_0202F7B0 - ldrb r1, [r2] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0 - bgt _080759C8 - ldr r0, _080759C0 @ =gUnknown_0202F7AC - ldr r1, _080759C4 @ =sub_80759D0 - str r1, [r0] - movs r0, 0 - b _080759CA - .align 2, 0 -_080759BC: .4byte gUnknown_0202F7B0 -_080759C0: .4byte gUnknown_0202F7AC -_080759C4: .4byte sub_80759D0 -_080759C8: - subs r0, r1, 0x1 -_080759CA: - strb r0, [r2] - pop {r0} - bx r0 - thumb_func_end move_anim_waiter - - thumb_func_start sub_80759D0 -sub_80759D0: @ 80759D0 - push {r4,lr} - ldr r4, _08075A00 @ =gUnknown_0837F4B8 -_080759D4: - ldr r0, _08075A04 @ =gUnknown_0202F7A4 - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _08075A08 @ =gUnknown_0202F7B0 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _080759F8 - ldr r0, _08075A0C @ =gUnknown_0202F7B1 - ldrb r0, [r0] - cmp r0, 0 - bne _080759D4 -_080759F8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08075A00: .4byte gUnknown_0837F4B8 -_08075A04: .4byte gUnknown_0202F7A4 -_08075A08: .4byte gUnknown_0202F7B0 -_08075A0C: .4byte gUnknown_0202F7B1 - thumb_func_end sub_80759D0 - - thumb_func_start ma00_load_graphics -ma00_load_graphics: @ 8075A10 - push {r4-r6,lr} - ldr r6, _08075A5C @ =gUnknown_0202F7A4 - ldr r0, [r6] - adds r1, r0, 0x1 - str r1, [r6] - ldrb r4, [r0, 0x1] - ldrb r0, [r1, 0x1] - lsls r0, 8 - orrs r4, r0 - lsls r5, r4, 3 - ldr r0, _08075A60 @ =gBattleAnimPicTable - (10000 * 8) - adds r0, r5, r0 - bl LoadCompressedObjectPic - ldr r0, _08075A64 @ =gBattleAnimPaletteTable - (10000 * 8) - adds r5, r0 - adds r0, r5, 0 - bl LoadCompressedObjectPalette - ldr r0, [r6] - adds r0, 0x2 - str r0, [r6] - ldr r0, _08075A68 @ =0xffffd8f0 - adds r4, r0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - bl sub_8075940 - ldr r1, _08075A6C @ =gUnknown_0202F7B0 - movs r0, 0x1 - strb r0, [r1] - ldr r1, _08075A70 @ =gUnknown_0202F7AC - ldr r0, _08075A74 @ =move_anim_waiter - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08075A5C: .4byte gUnknown_0202F7A4 -_08075A60: .4byte gBattleAnimPicTable - (10000 * 8) -_08075A64: .4byte gBattleAnimPaletteTable - (10000 * 8) -_08075A68: .4byte 0xffffd8f0 -_08075A6C: .4byte gUnknown_0202F7B0 -_08075A70: .4byte gUnknown_0202F7AC -_08075A74: .4byte move_anim_waiter - thumb_func_end ma00_load_graphics - - thumb_func_start ma01_080728D0 -ma01_080728D0: @ 8075A78 - push {r4-r6,lr} - ldr r6, _08075AB8 @ =gUnknown_0202F7A4 - ldr r0, [r6] - adds r1, r0, 0x1 - str r1, [r6] - ldrb r4, [r0, 0x1] - ldrb r0, [r1, 0x1] - lsls r0, 8 - orrs r4, r0 - ldr r1, _08075ABC @ =gBattleAnimPicTable - ldr r0, _08075AC0 @ =0xffffd8f0 - adds r4, r0 - lsls r0, r4, 3 - adds r0, r1 - ldrh r5, [r0, 0x6] - adds r0, r5, 0 - bl FreeSpriteTilesByTag - adds r0, r5, 0 - bl FreeSpritePaletteByTag - ldr r0, [r6] - adds r0, 0x2 - str r0, [r6] - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - bl sub_8075970 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08075AB8: .4byte gUnknown_0202F7A4 -_08075ABC: .4byte gBattleAnimPicTable -_08075AC0: .4byte 0xffffd8f0 - thumb_func_end ma01_080728D0 - - thumb_func_start ma02_instanciate_template -ma02_instanciate_template: @ 8075AC4 - push {r4-r7,lr} - ldr r5, _08075B2C @ =gUnknown_0202F7A4 - ldr r1, [r5] - adds r3, r1, 0x1 - str r3, [r5] - ldrb r2, [r1, 0x1] - ldrb r0, [r3, 0x1] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r3, 0x2] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r3, 0x3] - lsls r0, 24 - adds r7, r2, r0 - adds r0, r1, 0x5 - str r0, [r5] - ldrb r4, [r1, 0x5] - adds r0, r1, 0x6 - str r0, [r5] - ldrb r0, [r1, 0x6] - adds r1, 0x7 - str r1, [r5] - cmp r0, 0 - beq _08075B14 - adds r6, r5, 0 - ldr r5, _08075B30 @ =gUnknown_03004B00 - adds r3, r0, 0 -_08075AFC: - ldr r2, [r6] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - strh r1, [r5] - adds r2, 0x2 - str r2, [r6] - adds r5, 0x2 - subs r3, 0x1 - cmp r3, 0 - bne _08075AFC -_08075B14: - movs r0, 0x80 - ands r0, r4 - cmp r0, 0 - beq _08075B44 - movs r0, 0x80 - eors r4, r0 - cmp r4, 0x3F - bls _08075B34 - adds r0, r4, 0 - subs r0, 0x40 - b _08075B36 - .align 2, 0 -_08075B2C: .4byte gUnknown_0202F7A4 -_08075B30: .4byte gUnknown_03004B00 -_08075B34: - negs r0, r4 -_08075B36: - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08075B40 @ =gUnknown_0202F7C9 - b _08075B56 - .align 2, 0 -_08075B40: .4byte gUnknown_0202F7C9 -_08075B44: - cmp r4, 0x3F - bls _08075B4E - adds r0, r4, 0 - subs r0, 0x40 - b _08075B50 -_08075B4E: - negs r0, r4 -_08075B50: - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08075BAC @ =gUnknown_0202F7C8 -_08075B56: - ldrb r0, [r0] - bl sub_8079E90 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r4, 24 - asrs r1, 24 - adds r0, r1 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r0, r6, 16 - asrs r0, 16 - cmp r0, 0x2 - bgt _08075B74 - movs r6, 0x3 -_08075B74: - ldr r5, _08075BB0 @ =gUnknown_0202F7C9 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - lsls r3, r6, 24 - lsrs r3, 24 - adds r0, r7, 0 - adds r1, r4, 0 - bl CreateSpriteAndAnimate - ldr r1, _08075BB4 @ =gUnknown_0202F7B2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08075BAC: .4byte gUnknown_0202F7C8 -_08075BB0: .4byte gUnknown_0202F7C9 -_08075BB4: .4byte gUnknown_0202F7B2 - thumb_func_end ma02_instanciate_template - - thumb_func_start sub_8075BB8 -sub_8075BB8: @ 8075BB8 - push {r4-r7,lr} - ldr r4, _08075C28 @ =gUnknown_0202F7A4 - ldr r1, [r4] - adds r3, r1, 0x1 - str r3, [r4] - ldrb r2, [r1, 0x1] - ldrb r0, [r3, 0x1] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r3, 0x2] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r3, 0x3] - lsls r0, 24 - adds r6, r2, r0 - adds r0, r1, 0x5 - str r0, [r4] - ldrb r7, [r1, 0x5] - adds r0, r1, 0x6 - str r0, [r4] - ldrb r0, [r1, 0x6] - adds r1, 0x7 - str r1, [r4] - cmp r0, 0 - beq _08075C08 - adds r5, r4, 0 - ldr r4, _08075C2C @ =gUnknown_03004B00 - adds r3, r0, 0 -_08075BF0: - ldr r2, [r5] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - strh r1, [r4] - adds r2, 0x2 - str r2, [r5] - adds r4, 0x2 - subs r3, 0x1 - cmp r3, 0 - bne _08075BF0 -_08075C08: - adds r0, r6, 0 - adds r1, r7, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r6 - ldr r1, _08075C30 @ =gUnknown_0202F7B2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08075C28: .4byte gUnknown_0202F7A4 -_08075C2C: .4byte gUnknown_03004B00 -_08075C30: .4byte gUnknown_0202F7B2 - thumb_func_end sub_8075BB8 - - thumb_func_start ma04_wait_countdown -ma04_wait_countdown: @ 8075C34 - push {r4,lr} - ldr r1, _08075C64 @ =gUnknown_0202F7A4 - ldr r0, [r1] - adds r2, r0, 0x1 - str r2, [r1] - ldr r3, _08075C68 @ =gUnknown_0202F7B0 - ldrb r0, [r0, 0x1] - strb r0, [r3] - lsls r0, 24 - cmp r0, 0 - bne _08075C52 - movs r4, 0x1 - negs r4, r4 - adds r0, r4, 0 - strb r0, [r3] -_08075C52: - adds r0, r2, 0x1 - str r0, [r1] - ldr r1, _08075C6C @ =gUnknown_0202F7AC - ldr r0, _08075C70 @ =move_anim_waiter - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08075C64: .4byte gUnknown_0202F7A4 -_08075C68: .4byte gUnknown_0202F7B0 -_08075C6C: .4byte gUnknown_0202F7AC -_08075C70: .4byte move_anim_waiter - thumb_func_end ma04_wait_countdown - - thumb_func_start sub_8075C74 -sub_8075C74: @ 8075C74 - push {lr} - ldr r0, _08075C8C @ =gUnknown_0202F7B2 - ldrb r2, [r0] - cmp r2, 0 - bne _08075C98 - ldr r0, _08075C90 @ =gUnknown_0202F7A4 - ldr r1, [r0] - adds r1, 0x1 - str r1, [r0] - ldr r0, _08075C94 @ =gUnknown_0202F7B0 - strb r2, [r0] - b _08075C9E - .align 2, 0 -_08075C8C: .4byte gUnknown_0202F7B2 -_08075C90: .4byte gUnknown_0202F7A4 -_08075C94: .4byte gUnknown_0202F7B0 -_08075C98: - ldr r1, _08075CA4 @ =gUnknown_0202F7B0 - movs r0, 0x1 - strb r0, [r1] -_08075C9E: - pop {r0} - bx r0 - .align 2, 0 -_08075CA4: .4byte gUnknown_0202F7B0 - thumb_func_end sub_8075C74 - - thumb_func_start nullsub_53 -nullsub_53: @ 8075CA8 - bx lr - thumb_func_end nullsub_53 - - thumb_func_start nullsub_88 -nullsub_88: @ 8075CAC - bx lr - thumb_func_end nullsub_88 - - thumb_func_start sub_8075CB0 -sub_8075CB0: @ 8075CB0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r0, 0 - mov r8, r0 - ldr r0, _08075CE0 @ =gUnknown_0202F7B2 - ldrb r0, [r0] - cmp r0, 0 - bne _08075CD8 - ldr r0, _08075CE4 @ =gUnknown_0202F7B3 - ldrb r0, [r0] - cmp r0, 0 - bne _08075CD8 - ldr r1, _08075CE8 @ =gUnknown_0202F7C2 - ldrb r0, [r1] - cmp r0, 0xFF - bne _08075CD8 - ldrb r0, [r1, 0x1] - cmp r0, 0xFF - beq _08075CF0 -_08075CD8: - ldr r1, _08075CEC @ =gUnknown_03004AF0 - movs r0, 0 - strh r0, [r1] - b _08075D0A - .align 2, 0 -_08075CE0: .4byte gUnknown_0202F7B2 -_08075CE4: .4byte gUnknown_0202F7B3 -_08075CE8: .4byte gUnknown_0202F7C2 -_08075CEC: .4byte gUnknown_03004AF0 -_08075CF0: - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - beq _08075D28 - ldr r1, _08075D14 @ =gUnknown_03004AF0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5A - bhi _08075D1C -_08075D0A: - ldr r1, _08075D18 @ =gUnknown_0202F7B0 - movs r0, 0x1 - strb r0, [r1] - b _08075D8E - .align 2, 0 -_08075D14: .4byte gUnknown_03004AF0 -_08075D18: .4byte gUnknown_0202F7B0 -_08075D1C: - ldr r0, _08075D98 @ =gMPlay_SE1 - bl m4aMPlayStop - ldr r0, _08075D9C @ =gMPlay_SE2 - bl m4aMPlayStop -_08075D28: - ldr r1, _08075DA0 @ =gUnknown_03004AF0 - movs r0, 0 - strh r0, [r1] - movs r5, 0 - ldr r7, _08075DA4 @ =0x0000ffff - ldr r6, _08075DA8 @ =gBattleAnimPicTable - ldr r4, _08075DAC @ =gUnknown_03004B10 -_08075D36: - ldrh r0, [r4] - cmp r0, r7 - beq _08075D5A - lsls r0, 3 - adds r0, r6 - ldrh r0, [r0, 0x6] - bl FreeSpriteTilesByTag - ldrh r0, [r4] - lsls r0, 3 - adds r0, r6 - ldrh r0, [r0, 0x6] - bl FreeSpritePaletteByTag - ldrh r1, [r4] - adds r0, r7, 0 - orrs r0, r1 - strh r0, [r4] -_08075D5A: - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0x7 - ble _08075D36 - mov r1, r8 - cmp r1, 0 - bne _08075D8E - ldr r0, _08075DB0 @ =gMPlay_BGM - ldr r1, _08075DA4 @ =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _08075D88 - bl sub_8079E24 - movs r0, 0x1 - bl sub_8043EB4 -_08075D88: - ldr r0, _08075DB4 @ =gUnknown_0202F7B1 - mov r1, r8 - strb r1, [r0] -_08075D8E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08075D98: .4byte gMPlay_SE1 -_08075D9C: .4byte gMPlay_SE2 -_08075DA0: .4byte gUnknown_03004AF0 -_08075DA4: .4byte 0x0000ffff -_08075DA8: .4byte gBattleAnimPicTable -_08075DAC: .4byte gUnknown_03004B10 -_08075DB0: .4byte gMPlay_BGM -_08075DB4: .4byte gUnknown_0202F7B1 - thumb_func_end sub_8075CB0 - - thumb_func_start ma09_play_sound -ma09_play_sound: @ 8075DB8 - push {r4,lr} - ldr r4, _08075DDC @ =gUnknown_0202F7A4 - ldr r0, [r4] - adds r1, r0, 0x1 - str r1, [r4] - ldrb r0, [r0, 0x1] - ldrb r1, [r1, 0x1] - lsls r1, 8 - orrs r0, r1 - bl PlaySE - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08075DDC: .4byte gUnknown_0202F7A4 - thumb_func_end ma09_play_sound - - thumb_func_start sub_8075DE0 -sub_8075DE0: @ 8075DE0 - push {r4-r7,lr} - ldr r0, _08075DF4 @ =gUnknown_0202F7A4 - ldr r2, [r0] - adds r1, r2, 0x1 - str r1, [r0] - ldrb r6, [r2, 0x1] - cmp r6, 0 - bne _08075DF8 - movs r6, 0x2 - b _08075E02 - .align 2, 0 -_08075DF4: .4byte gUnknown_0202F7A4 -_08075DF8: - cmp r6, 0x1 - bne _08075DFE - movs r6, 0x3 -_08075DFE: - cmp r6, 0 - beq _08075E06 -_08075E02: - cmp r6, 0x2 - bne _08075E10 -_08075E06: - ldr r0, _08075E0C @ =gUnknown_0202F7C8 - b _08075E12 - .align 2, 0 -_08075E0C: .4byte gUnknown_0202F7C8 -_08075E10: - ldr r0, _08075E44 @ =gUnknown_0202F7C9 -_08075E12: - ldrb r5, [r0] - adds r0, r5, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _08075ECE - adds r0, r5, 0 - bl battle_get_per_side_status - lsls r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bls _08075E3E - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08075E48 -_08075E3E: - movs r7, 0 - b _08075E4A - .align 2, 0 -_08075E44: .4byte gUnknown_0202F7C9 -_08075E48: - movs r7, 0x1 -_08075E4A: - adds r0, r5, 0 - adds r1, r7, 0 - bl sub_8076034 - ldr r0, _08075E98 @ =gUnknown_02024BE0 - adds r0, r5, r0 - ldrb r4, [r0] - ldr r0, _08075E9C @ =task_pA_ma0A_obj_to_bg_pal - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, _08075EA0 @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r2, r0, r1 - strh r4, [r2, 0x8] - ldr r1, _08075EA4 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0, 0x24] - ldrh r4, [r0, 0x20] - adds r1, r4 - strh r1, [r2, 0xA] - ldrh r1, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r1, r0 - strh r1, [r2, 0xC] - cmp r7, 0 - bne _08075EB0 - ldr r0, _08075EA8 @ =gUnknown_030042C0 - ldrh r0, [r0] - strh r0, [r2, 0xE] - ldr r0, _08075EAC @ =gUnknown_030041B4 - b _08075EB8 - .align 2, 0 -_08075E98: .4byte gUnknown_02024BE0 -_08075E9C: .4byte task_pA_ma0A_obj_to_bg_pal -_08075EA0: .4byte gTasks -_08075EA4: .4byte gSprites -_08075EA8: .4byte gUnknown_030042C0 -_08075EAC: .4byte gUnknown_030041B4 -_08075EB0: - ldr r0, _08075F04 @ =gUnknown_03004288 - ldrh r0, [r0] - strh r0, [r2, 0xE] - ldr r0, _08075F08 @ =gUnknown_03004280 -_08075EB8: - ldrh r0, [r0] - strh r0, [r2, 0x10] - ldr r0, _08075F0C @ =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - strh r7, [r1, 0x12] - strh r5, [r1, 0x14] - ldr r0, _08075F10 @ =gUnknown_0202F7C2 - strb r3, [r0] -_08075ECE: - movs r0, 0x2 - eors r5, r0 - cmp r6, 0x1 - bls _08075F9A - adds r0, r5, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _08075F9A - adds r0, r5, 0 - bl battle_get_per_side_status - lsls r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bls _08075F00 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08075F14 -_08075F00: - movs r7, 0 - b _08075F16 - .align 2, 0 -_08075F04: .4byte gUnknown_03004288 -_08075F08: .4byte gUnknown_03004280 -_08075F0C: .4byte gTasks -_08075F10: .4byte gUnknown_0202F7C2 -_08075F14: - movs r7, 0x1 -_08075F16: - adds r0, r5, 0 - adds r1, r7, 0 - bl sub_8076034 - ldr r0, _08075F64 @ =gUnknown_02024BE0 - adds r0, r5, r0 - ldrb r4, [r0] - ldr r0, _08075F68 @ =task_pA_ma0A_obj_to_bg_pal - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, _08075F6C @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r2, r0, r1 - strh r4, [r2, 0x8] - ldr r1, _08075F70 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0, 0x24] - ldrh r4, [r0, 0x20] - adds r1, r4 - strh r1, [r2, 0xA] - ldrh r1, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r1, r0 - strh r1, [r2, 0xC] - cmp r7, 0 - bne _08075F7C - ldr r0, _08075F74 @ =gUnknown_030042C0 - ldrh r0, [r0] - strh r0, [r2, 0xE] - ldr r0, _08075F78 @ =gUnknown_030041B4 - b _08075F84 - .align 2, 0 -_08075F64: .4byte gUnknown_02024BE0 -_08075F68: .4byte task_pA_ma0A_obj_to_bg_pal -_08075F6C: .4byte gTasks -_08075F70: .4byte gSprites -_08075F74: .4byte gUnknown_030042C0 -_08075F78: .4byte gUnknown_030041B4 -_08075F7C: - ldr r0, _08075FA8 @ =gUnknown_03004288 - ldrh r0, [r0] - strh r0, [r2, 0xE] - ldr r0, _08075FAC @ =gUnknown_03004280 -_08075F84: - ldrh r0, [r0] - strh r0, [r2, 0x10] - ldr r0, _08075FB0 @ =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - strh r7, [r1, 0x12] - strh r5, [r1, 0x14] - ldr r0, _08075FB4 @ =gUnknown_0202F7C2 - strb r3, [r0, 0x1] -_08075F9A: - ldr r1, _08075FB8 @ =gUnknown_0202F7A4 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08075FA8: .4byte gUnknown_03004288 -_08075FAC: .4byte gUnknown_03004280 -_08075FB0: .4byte gTasks -_08075FB4: .4byte gUnknown_0202F7C2 -_08075FB8: .4byte gUnknown_0202F7A4 - thumb_func_end sub_8075DE0 - - thumb_func_start b_side_obj__get_some_boolean -b_side_obj__get_some_boolean: @ 8075FBC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08075FDC - ldr r0, _08075FD8 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - cmp r4, r0 - beq _0807601C - b _0807602C - .align 2, 0 -_08075FD8: .4byte gUnknown_0202F7C8 -_08075FDC: - adds r0, r4, 0 - bl sub_8078874 - lsls r0, 24 - cmp r0, 0 - beq _0807602C - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _0807601C - lsls r0, r5, 2 - ldr r1, _08076020 @ =0x02017800 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0807601C - ldr r2, _08076024 @ =gSprites - ldr r0, _08076028 @ =gUnknown_02024BE0 - adds r0, r5, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _0807602C -_0807601C: - movs r0, 0x1 - b _0807602E - .align 2, 0 -_08076020: .4byte 0x02017800 -_08076024: .4byte gSprites -_08076028: .4byte gUnknown_02024BE0 -_0807602C: - movs r0, 0 -_0807602E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end b_side_obj__get_some_boolean - - thumb_func_start sub_8076034 -sub_8076034: @ 8076034 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 24 - cmp r1, 0 - beq _0807604E - b _08076220 -_0807604E: - add r4, sp, 0x10 - adds r0, r4, 0 - bl sub_8078914 - ldr r2, [sp, 0x10] - movs r3, 0x80 - lsls r3, 6 - add r6, sp, 0x1C - add r0, sp, 0x20 - mov r10, r0 - mov r1, r9 - lsls r1, 5 - str r1, [sp, 0x24] - movs r5, 0 - ldr r1, _08076194 @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - mov r12, r6 - ldr r7, _08076198 @ =0x85000400 - movs r0, 0x85 - lsls r0, 24 - mov r8, r0 -_0807607A: - str r5, [sp, 0x1C] - mov r0, r12 - str r0, [r1] - str r2, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _0807607A - str r5, [sp, 0x1C] - str r6, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r8 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add r0, sp, 0xC - movs r1, 0 - strb r1, [r0] - strb r1, [r0] - ldr r1, [sp, 0x14] - movs r0, 0xFF - mov r3, r10 - strh r0, [r3] - ldr r0, _08076194 @ =0x040000d4 - str r3, [r0] - str r1, [r0, 0x4] - ldr r1, _0807619C @ =0x81000800 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r2, _080761A0 @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r2, 0x1] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2, 0x1] - ldrb r1, [r2, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x1] - ldr r0, _080761A4 @ =gUnknown_02024BE0 - add r0, r9 - ldrb r4, [r0] - ldr r5, _080761A8 @ =gUnknown_030042C0 - ldr r0, _080761AC @ =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x24] - ldrh r1, [r1, 0x20] - adds r0, r1 - negs r0, r0 - adds r0, 0x20 - strh r0, [r5] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _0807611C - ldr r0, _080761B0 @ =0x02019348 - ldrh r0, [r0] - bl sub_80AEB1C - lsls r0, 24 - cmp r0, 0 - beq _0807611C - ldrh r0, [r5] - subs r0, 0x1 - strh r0, [r5] -_0807611C: - ldr r3, _080761B4 @ =gUnknown_030041B4 - ldr r2, _080761AC @ =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r1, 0x26] - ldrh r1, [r1, 0x22] - adds r0, r1 - negs r0, r0 - adds r0, 0x20 - strh r0, [r3] - ldr r0, _080761A4 @ =gUnknown_02024BE0 - add r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldr r1, _080761B8 @ =REG_BG1HOFS - ldr r0, _080761A8 @ =gUnknown_030042C0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r3] - strh r0, [r1] - ldr r4, _080761BC @ =gPlttBufferUnfaded + 0x200 - ldr r0, [sp, 0x24] - adds r4, r0, r4 - mov r2, sp - ldrb r1, [r2, 0x18] - lsls r1, 4 - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - mov r3, sp - ldrb r0, [r3, 0x18] - lsls r0, 5 - movs r1, 0xA0 - lsls r1, 19 - adds r0, r1 - ldr r1, _08076194 @ =0x040000d4 - str r4, [r1] - str r0, [r1, 0x4] - ldr r0, _080761C0 @ =0x84000008 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080761C4 - movs r2, 0 - b _080761CE - .align 2, 0 -_08076194: .4byte 0x040000d4 -_08076198: .4byte 0x85000400 -_0807619C: .4byte 0x81000800 -_080761A0: .4byte REG_BG1CNT -_080761A4: .4byte gUnknown_02024BE0 -_080761A8: .4byte gUnknown_030042C0 -_080761AC: .4byte gSprites -_080761B0: .4byte 0x02019348 -_080761B4: .4byte gUnknown_030041B4 -_080761B8: .4byte REG_BG1HOFS -_080761BC: .4byte gPlttBufferUnfaded + 0x200 -_080761C0: .4byte 0x84000008 -_080761C4: - mov r0, r9 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r2, r0, 24 -_080761CE: - mov r0, sp - ldrb r3, [r0, 0x18] - ldr r0, [sp, 0x10] - lsls r0, 16 - lsrs r0, 16 - str r0, [sp] - ldr r4, [sp, 0x14] - movs r1, 0xFA - lsls r1, 24 - adds r0, r4, r1 - cmp r0, 0 - bge _080761EA - ldr r1, _08076218 @ =0xfa0007ff - adds r0, r4, r1 -_080761EA: - asrs r0, 11 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - ldr r0, _0807621C @ =REG_BG1CNT - ldr r0, [r0] - lsls r0, 28 - lsrs r0, 30 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - bl sub_80E4EF8 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _08076210 - b _08076338 -_08076210: - bl sub_8076380 - b _08076338 - .align 2, 0 -_08076218: .4byte 0xfa0007ff -_0807621C: .4byte REG_BG1CNT -_08076220: - ldr r3, _08076348 @ =0x06006000 - movs r5, 0x80 - lsls r5, 6 - add r6, sp, 0x1C - ldr r2, _0807634C @ =gSprites - mov r10, r2 - mov r0, r9 - lsls r0, 5 - str r0, [sp, 0x24] - movs r4, 0 - ldr r1, _08076350 @ =0x040000d4 - movs r2, 0x80 - lsls r2, 5 - mov r12, r6 - ldr r7, _08076354 @ =0x85000400 - movs r0, 0x85 - lsls r0, 24 - mov r8, r0 -_08076244: - str r4, [sp, 0x1C] - mov r0, r12 - str r0, [r1] - str r3, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r2 - subs r5, r2 - cmp r5, r2 - bhi _08076244 - str r4, [sp, 0x1C] - str r6, [r1] - str r3, [r1, 0x4] - lsrs r0, r5, 2 - mov r2, r8 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add r0, sp, 0xC - movs r1, 0 - strb r1, [r0] - strb r1, [r0] - ldr r1, _08076358 @ =0x0600f000 - movs r0, 0 - str r0, [sp, 0x1C] - ldr r5, _08076350 @ =0x040000d4 - str r6, [r5] - str r1, [r5, 0x4] - ldr r0, _0807635C @ =0x85000200 - str r0, [r5, 0x8] - ldr r0, [r5, 0x8] - ldr r6, _08076360 @ =REG_BG2CNT - ldrb r1, [r6] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - strb r0, [r6] - ldrb r1, [r6, 0x1] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r6, 0x1] - ldrb r1, [r6, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r6, 0x1] - ldr r2, _08076364 @ =gUnknown_02024BE0 - add r2, r9 - ldrb r4, [r2] - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - add r1, r10 - ldrh r0, [r1, 0x24] - ldrh r3, [r1, 0x20] - adds r0, r3 - negs r0, r0 - adds r0, 0x20 - ldr r3, _08076368 @ =gUnknown_03004288 - strh r0, [r3] - ldrh r0, [r1, 0x26] - ldrh r1, [r1, 0x22] - adds r0, r1 - negs r0, r0 - adds r0, 0x20 - ldr r1, _0807636C @ =gUnknown_03004280 - strh r0, [r1] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r10 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldr r1, _08076370 @ =REG_BG2HOFS - ldrh r0, [r3] - strh r0, [r1] - adds r1, 0x2 - ldr r2, _0807636C @ =gUnknown_03004280 - ldrh r0, [r2] - strh r0, [r1] - ldr r3, [sp, 0x24] - ldr r0, _08076374 @ =gPlttBufferUnfaded + 0x200 - adds r4, r3, r0 - adds r0, r4, 0 - movs r1, 0x90 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08076378 @ =0x05000120 - str r4, [r5] - str r0, [r5, 0x4] - ldr r0, _0807637C @ =0x84000008 - str r0, [r5, 0x8] - ldr r0, [r5, 0x8] - mov r0, r9 - bl battle_get_per_side_status - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - movs r0, 0xC0 - lsls r0, 7 - str r0, [sp] - movs r0, 0x1E - str r0, [sp, 0x4] - ldr r0, [r6] - lsls r0, 28 - lsrs r0, 30 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r3, 0x9 - bl sub_80E4EF8 -_08076338: - add sp, 0x28 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08076348: .4byte 0x06006000 -_0807634C: .4byte gSprites -_08076350: .4byte 0x040000d4 -_08076354: .4byte 0x85000400 -_08076358: .4byte 0x0600f000 -_0807635C: .4byte 0x85000200 -_08076360: .4byte REG_BG2CNT -_08076364: .4byte gUnknown_02024BE0 -_08076368: .4byte gUnknown_03004288 -_0807636C: .4byte gUnknown_03004280 -_08076370: .4byte REG_BG2HOFS -_08076374: .4byte gPlttBufferUnfaded + 0x200 -_08076378: .4byte 0x05000120 -_0807637C: .4byte 0x84000008 - thumb_func_end sub_8076034 - - thumb_func_start sub_8076380 -sub_8076380: @ 8076380 - push {r4-r7,lr} - sub sp, 0xC - ldr r0, _080763F8 @ =0x02019348 - ldrh r0, [r0] - bl sub_80AEB1C - lsls r0, 24 - cmp r0, 0 - beq _080763EE - mov r0, sp - bl sub_8078914 - ldr r6, [sp, 0x4] - movs r5, 0 - movs r0, 0x7 - mov r12, r0 - movs r7, 0 -_080763A2: - movs r4, 0 - adds r3, r7, r6 - mov r1, r12 - lsls r0, r1, 1 - adds r2, r0, r6 -_080763AC: - ldrh r1, [r3] - ldrh r0, [r2] - strh r0, [r3] - strh r1, [r2] - adds r3, 0x2 - subs r2, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _080763AC - movs r0, 0x20 - add r12, r0 - adds r7, 0x40 - adds r5, 0x1 - cmp r5, 0x7 - ble _080763A2 - movs r5, 0 - movs r1, 0x80 - lsls r1, 3 - adds r3, r1, 0 -_080763D2: - adds r2, r5, 0x1 - lsls r0, r5, 6 - adds r1, r0, r6 - movs r4, 0x7 -_080763DA: - ldrh r0, [r1] - eors r0, r3 - strh r0, [r1] - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080763DA - adds r5, r2, 0 - cmp r5, 0x7 - ble _080763D2 -_080763EE: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080763F8: .4byte 0x02019348 - thumb_func_end sub_8076380 - - thumb_func_start sub_80763FC -sub_80763FC: @ 80763FC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r12, r1 - adds r7, r2, 0 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r3, 24 - movs r0, 0x40 - mov r9, r0 - cmp r3, 0 - bne _0807641A - movs r1, 0x20 - mov r9, r1 -_0807641A: - lsls r0, r6, 28 - lsrs r6, r0, 16 - movs r0, 0 - cmp r0, r9 - bcs _08076452 - ldr r1, _08076460 @ =0x00000fff - mov r8, r1 -_08076428: - movs r3, 0 - adds r5, r0, 0x1 - lsls r4, r0, 5 -_0807642E: - adds r1, r4, r3 - lsls r1, 1 - add r1, r12 - ldrh r2, [r1] - mov r0, r8 - ands r0, r2 - orrs r0, r6 - adds r0, r7 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1F - bls _0807642E - lsls r0, r5, 24 - lsrs r0, 24 - cmp r0, r9 - bcc _08076428 -_08076452: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08076460: .4byte 0x00000fff - thumb_func_end sub_80763FC - - thumb_func_start sub_8076464 -sub_8076464: @ 8076464 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - add r5, sp, 0x4 - adds r0, r5, 0 - bl sub_8078914 - cmp r4, 0 - beq _0807648C - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080764F0 -_0807648C: - ldr r2, [sp, 0x4] - movs r3, 0x80 - lsls r3, 6 - add r5, sp, 0x10 - ldr r0, _080764E0 @ =gUnknown_030042C0 - mov r9, r0 - ldr r0, _080764E4 @ =gUnknown_030041B4 - mov r10, r0 - movs r6, 0 - ldr r1, _080764E8 @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - mov r12, r5 - ldr r7, _080764EC @ =0x85000400 - movs r0, 0x85 - lsls r0, 24 - mov r8, r0 -_080764AE: - str r6, [sp, 0x10] - mov r0, r12 - str r0, [r1] - str r2, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080764AE - str r6, [sp, 0x10] - str r5, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r8 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - mov r0, sp - movs r1, 0 - strb r1, [r0] - strb r1, [r0] - ldr r1, [sp, 0x8] - b _08076540 - .align 2, 0 -_080764E0: .4byte gUnknown_030042C0 -_080764E4: .4byte gUnknown_030041B4 -_080764E8: .4byte 0x040000d4 -_080764EC: .4byte 0x85000400 -_080764F0: - ldr r2, _08076568 @ =0x06006000 - movs r3, 0x80 - lsls r3, 6 - add r5, sp, 0x10 - ldr r0, _0807656C @ =gUnknown_03004288 - mov r9, r0 - ldr r0, _08076570 @ =gUnknown_03004280 - mov r10, r0 - movs r6, 0 - ldr r1, _08076574 @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - mov r12, r5 - ldr r7, _08076578 @ =0x85000400 - movs r0, 0x85 - lsls r0, 24 - mov r8, r0 -_08076512: - str r6, [sp, 0x10] - mov r0, r12 - str r0, [r1] - str r2, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _08076512 - str r6, [sp, 0x10] - str r5, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r8 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - mov r0, sp - movs r1, 0 - strb r1, [r0] - strb r1, [r0] - ldr r1, _0807657C @ =0x0600f000 -_08076540: - movs r2, 0 - str r2, [sp, 0x10] - ldr r0, _08076574 @ =0x040000d4 - str r5, [r0] - str r1, [r0, 0x4] - ldr r1, _08076580 @ =0x85000200 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - mov r0, r9 - strh r2, [r0] - mov r0, r10 - strh r2, [r0] - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08076568: .4byte 0x06006000 -_0807656C: .4byte gUnknown_03004288 -_08076570: .4byte gUnknown_03004280 -_08076574: .4byte 0x040000d4 -_08076578: .4byte 0x85000400 -_0807657C: .4byte 0x0600f000 -_08076580: .4byte 0x85000200 - thumb_func_end sub_8076464 - - thumb_func_start task_pA_ma0A_obj_to_bg_pal -task_pA_ma0A_obj_to_bg_pal: @ 8076584 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080765FC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r5, r1, r2 - ldrb r4, [r5, 0x8] - ldrb r6, [r5, 0x14] - mov r0, sp - bl sub_8078914 - ldr r0, _08076600 @ =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrh r2, [r1, 0x24] - ldrh r0, [r1, 0x20] - adds r2, r0 - ldrh r0, [r5, 0xA] - subs r0, r2 - lsls r0, 16 - lsrs r3, r0, 16 - ldrh r2, [r1, 0x26] - ldrh r1, [r1, 0x22] - adds r2, r1 - ldrh r0, [r5, 0xC] - subs r0, r2 - lsls r0, 16 - lsrs r2, r0, 16 - movs r1, 0x12 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _08076614 - ldr r1, _08076604 @ =gUnknown_030042C0 - lsls r0, r3, 16 - asrs r0, 16 - ldrh r3, [r5, 0xE] - adds r0, r3 - strh r0, [r1] - ldr r1, _08076608 @ =gUnknown_030041B4 - lsls r0, r2, 16 - asrs r0, 16 - ldrh r5, [r5, 0x10] - adds r0, r5 - strh r0, [r1] - lsls r2, r6, 5 - ldr r1, _0807660C @ =gPlttBufferFaded + 0x200 - adds r2, r1 - mov r0, sp - ldrb r0, [r0, 0x8] - lsls r0, 5 - ldr r3, _08076610 @ =0xfffffe00 - adds r1, r3 - adds r0, r1 - b _08076634 - .align 2, 0 -_080765FC: .4byte gTasks -_08076600: .4byte gSprites -_08076604: .4byte gUnknown_030042C0 -_08076608: .4byte gUnknown_030041B4 -_0807660C: .4byte gPlttBufferFaded + 0x200 -_08076610: .4byte 0xfffffe00 -_08076614: - ldr r1, _08076648 @ =gUnknown_03004288 - lsls r0, r3, 16 - asrs r0, 16 - ldrh r3, [r5, 0xE] - adds r0, r3 - strh r0, [r1] - ldr r1, _0807664C @ =gUnknown_03004280 - lsls r0, r2, 16 - asrs r0, 16 - ldrh r5, [r5, 0x10] - adds r0, r5 - strh r0, [r1] - lsls r2, r6, 5 - ldr r0, _08076650 @ =gPlttBufferFaded + 0x200 - adds r2, r0 - subs r0, 0xE0 -_08076634: - ldr r1, _08076654 @ =0x040000d4 - str r2, [r1] - str r0, [r1, 0x4] - ldr r0, _08076658 @ =0x84000008 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08076648: .4byte gUnknown_03004288 -_0807664C: .4byte gUnknown_03004280 -_08076650: .4byte gPlttBufferFaded + 0x200 -_08076654: .4byte 0x040000d4 -_08076658: .4byte 0x84000008 - thumb_func_end task_pA_ma0A_obj_to_bg_pal - - thumb_func_start ma0B_0807324C -ma0B_0807324C: @ 807665C - push {r4,r5,lr} - ldr r0, _08076670 @ =gUnknown_0202F7A4 - ldr r2, [r0] - adds r1, r2, 0x1 - str r1, [r0] - ldrb r4, [r2, 0x1] - cmp r4, 0 - bne _08076674 - movs r4, 0x2 - b _0807667E - .align 2, 0 -_08076670: .4byte gUnknown_0202F7A4 -_08076674: - cmp r4, 0x1 - bne _0807667A - movs r4, 0x3 -_0807667A: - cmp r4, 0 - beq _08076682 -_0807667E: - cmp r4, 0x2 - bne _0807668C -_08076682: - ldr r0, _08076688 @ =gUnknown_0202F7C8 - b _0807668E - .align 2, 0 -_08076688: .4byte gUnknown_0202F7C8 -_0807668C: - ldr r0, _080766E4 @ =gUnknown_0202F7C9 -_0807668E: - ldrb r5, [r0] - ldr r3, _080766E8 @ =gUnknown_0202F7C2 - ldrb r0, [r3] - cmp r0, 0xFF - beq _080766B4 - ldr r2, _080766EC @ =gSprites - ldr r0, _080766F0 @ =gUnknown_02024BE0 - adds r0, r5, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_080766B4: - cmp r4, 0x1 - bls _080766F4 - ldrb r0, [r3, 0x1] - cmp r0, 0xFF - beq _080766F4 - ldr r3, _080766EC @ =gSprites - ldr r2, _080766F0 @ =gUnknown_02024BE0 - movs r1, 0x2 - adds r0, r5, 0 - eors r0, r1 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - b _080766F6 - .align 2, 0 -_080766E4: .4byte gUnknown_0202F7C9 -_080766E8: .4byte gUnknown_0202F7C2 -_080766EC: .4byte gSprites -_080766F0: .4byte gUnknown_02024BE0 -_080766F4: - movs r4, 0 -_080766F6: - ldr r0, _08076720 @ =sub_807672C - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08076724 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - strh r5, [r1, 0xC] - ldr r1, _08076728 @ =gUnknown_0202F7A4 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08076720: .4byte sub_807672C -_08076724: .4byte gTasks -_08076728: .4byte gUnknown_0202F7A4 - thumb_func_end ma0B_0807324C - - thumb_func_start sub_807672C -sub_807672C: @ 807672C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0807676C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r1, r0, r1 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - beq _080767B6 - ldrb r0, [r1, 0xC] - bl battle_get_per_side_status - lsls r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bls _08076768 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08076770 -_08076768: - movs r4, 0 - b _08076772 - .align 2, 0 -_0807676C: .4byte gTasks -_08076770: - movs r4, 0x1 -_08076772: - ldr r6, _080767BC @ =gUnknown_0202F7C2 - ldrb r0, [r6] - cmp r0, 0xFF - beq _0807678A - adds r0, r4, 0 - bl sub_8076464 - ldrb r0, [r6] - bl DestroyTask - movs r0, 0xFF - strb r0, [r6] -_0807678A: - ldr r0, _080767C0 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - ble _080767B0 - movs r0, 0x1 - eors r4, r0 - adds r0, r4, 0 - bl sub_8076464 - ldrb r0, [r6, 0x1] - bl DestroyTask - movs r0, 0xFF - strb r0, [r6, 0x1] -_080767B0: - adds r0, r5, 0 - bl DestroyTask -_080767B6: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080767BC: .4byte gUnknown_0202F7C2 -_080767C0: .4byte gTasks - thumb_func_end sub_807672C - - thumb_func_start sub_80767C4 -sub_80767C4: @ 80767C4 - push {r4,r5,lr} - ldr r0, _080767D8 @ =gUnknown_0202F7A4 - ldr r2, [r0] - adds r1, r2, 0x1 - str r1, [r0] - ldrb r5, [r2, 0x1] - cmp r5, 0 - bne _080767DC - movs r5, 0x2 - b _080767E6 - .align 2, 0 -_080767D8: .4byte gUnknown_0202F7A4 -_080767DC: - cmp r5, 0x1 - bne _080767E2 - movs r5, 0x3 -_080767E2: - cmp r5, 0 - beq _080767EA -_080767E6: - cmp r5, 0x2 - bne _080767F4 -_080767EA: - ldr r0, _080767F0 @ =gUnknown_0202F7C8 - b _080767F6 - .align 2, 0 -_080767F0: .4byte gUnknown_0202F7C8 -_080767F4: - ldr r0, _08076828 @ =gUnknown_0202F7C9 -_080767F6: - ldrb r4, [r0] - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _08076850 - adds r0, r4, 0 - bl battle_get_per_side_status - lsls r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bls _08076822 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _0807682C -_08076822: - movs r1, 0 - b _0807682E - .align 2, 0 -_08076828: .4byte gUnknown_0202F7C9 -_0807682C: - movs r1, 0x1 -_0807682E: - adds r0, r4, 0 - bl sub_8076034 - ldr r2, _08076888 @ =gSprites - ldr r0, _0807688C @ =gUnknown_02024BE0 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_08076850: - movs r0, 0x2 - eors r4, r0 - cmp r5, 0x1 - bls _080768B4 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080768B4 - adds r0, r4, 0 - bl battle_get_per_side_status - lsls r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bls _08076882 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08076890 -_08076882: - movs r1, 0 - b _08076892 - .align 2, 0 -_08076888: .4byte gSprites -_0807688C: .4byte gUnknown_02024BE0 -_08076890: - movs r1, 0x1 -_08076892: - adds r0, r4, 0 - bl sub_8076034 - ldr r2, _080768C4 @ =gSprites - ldr r0, _080768C8 @ =gUnknown_02024BE0 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_080768B4: - ldr r1, _080768CC @ =gUnknown_0202F7A4 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080768C4: .4byte gSprites -_080768C8: .4byte gUnknown_02024BE0 -_080768CC: .4byte gUnknown_0202F7A4 - thumb_func_end sub_80767C4 - - thumb_func_start ma23_8073484 -ma23_8073484: @ 80768D0 - push {r4-r6,lr} - ldr r0, _080768E4 @ =gUnknown_0202F7A4 - ldr r2, [r0] - adds r1, r2, 0x1 - str r1, [r0] - ldrb r5, [r2, 0x1] - cmp r5, 0 - bne _080768E8 - movs r5, 0x2 - b _080768F2 - .align 2, 0 -_080768E4: .4byte gUnknown_0202F7A4 -_080768E8: - cmp r5, 0x1 - bne _080768EE - movs r5, 0x3 -_080768EE: - cmp r5, 0 - beq _080768F6 -_080768F2: - cmp r5, 0x2 - bne _08076900 -_080768F6: - ldr r0, _080768FC @ =gUnknown_0202F7C8 - b _08076902 - .align 2, 0 -_080768FC: .4byte gUnknown_0202F7C8 -_08076900: - ldr r0, _08076960 @ =gUnknown_0202F7C9 -_08076902: - ldrb r6, [r0] - adds r0, r6, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _0807692C - ldr r2, _08076964 @ =gSprites - ldr r0, _08076968 @ =gUnknown_02024BE0 - adds r0, r6, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_0807692C: - cmp r5, 0x1 - bls _0807696C - movs r0, 0x2 - adds r4, r6, 0 - eors r4, r0 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _0807696C - ldr r2, _08076964 @ =gSprites - ldr r0, _08076968 @ =gUnknown_02024BE0 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - b _0807696E - .align 2, 0 -_08076960: .4byte gUnknown_0202F7C9 -_08076964: .4byte gSprites -_08076968: .4byte gUnknown_02024BE0 -_0807696C: - movs r5, 0 -_0807696E: - ldr r0, _08076998 @ =sub_80769A4 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0807699C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r5, [r1, 0x8] - strh r6, [r1, 0xC] - ldr r1, _080769A0 @ =gUnknown_0202F7A4 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08076998: .4byte sub_80769A4 -_0807699C: .4byte gTasks -_080769A0: .4byte gUnknown_0202F7A4 - thumb_func_end ma23_8073484 - - thumb_func_start sub_80769A4 -sub_80769A4: @ 80769A4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080769E8 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r1, r0, r1 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - beq _08076A32 - ldrb r4, [r1, 0xC] - adds r0, r4, 0 - bl battle_get_per_side_status - lsls r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bls _080769E2 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080769EC -_080769E2: - movs r5, 0 - b _080769EE - .align 2, 0 -_080769E8: .4byte gTasks -_080769EC: - movs r5, 0x1 -_080769EE: - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _08076A00 - adds r0, r5, 0 - bl sub_8076464 -_08076A00: - ldr r0, _08076A38 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - ble _08076A2C - movs r0, 0x2 - eors r4, r0 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _08076A2C - movs r0, 0x1 - eors r5, r0 - adds r0, r5, 0 - bl sub_8076464 -_08076A2C: - adds r0, r6, 0 - bl DestroyTask -_08076A32: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08076A38: .4byte gTasks - thumb_func_end sub_80769A4 - - thumb_func_start sub_8076A3C -sub_8076A3C: @ 8076A3C - push {r4,lr} - ldr r2, _08076A6C @ =gUnknown_0202F7A4 - ldr r0, [r2] - adds r1, r0, 0x1 - str r1, [r2] - ldrb r3, [r0, 0x1] - adds r0, r1, 0x1 - str r0, [r2] - ldrb r1, [r1, 0x1] - lsls r1, 8 - adds r0, 0x1 - str r0, [r2] - ldr r2, _08076A70 @ =REG_BLDCNT - movs r4, 0xFD - lsls r4, 6 - adds r0, r4, 0 - strh r0, [r2] - ldr r0, _08076A74 @ =REG_BLDALPHA - orrs r3, r1 - strh r3, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08076A6C: .4byte gUnknown_0202F7A4 -_08076A70: .4byte REG_BLDCNT -_08076A74: .4byte REG_BLDALPHA - thumb_func_end sub_8076A3C - - thumb_func_start sub_8076A78 -sub_8076A78: @ 8076A78 - ldr r2, _08076A98 @ =gUnknown_0202F7A4 - ldr r0, [r2] - adds r1, r0, 0x1 - str r1, [r2] - ldrb r3, [r0, 0x1] - adds r0, r1, 0x1 - str r0, [r2] - ldrb r1, [r1, 0x1] - lsls r1, 8 - adds r0, 0x1 - str r0, [r2] - ldr r0, _08076A9C @ =REG_BLDCNT - orrs r3, r1 - strh r3, [r0] - bx lr - .align 2, 0 -_08076A98: .4byte gUnknown_0202F7A4 -_08076A9C: .4byte REG_BLDCNT - thumb_func_end sub_8076A78 - - thumb_func_start sub_8076AA0 -sub_8076AA0: @ 8076AA0 - ldr r1, _08076AB4 @ =gUnknown_0202F7A4 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r0, _08076AB8 @ =REG_BLDCNT - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bx lr - .align 2, 0 -_08076AB4: .4byte gUnknown_0202F7A4 -_08076AB8: .4byte REG_BLDCNT - thumb_func_end sub_8076AA0 - - thumb_func_start ma0E_call -ma0E_call: @ 8076ABC - push {r4,lr} - ldr r4, _08076AE8 @ =gUnknown_0202F7A4 - ldr r1, [r4] - adds r3, r1, 0x1 - str r3, [r4] - ldr r2, _08076AEC @ =gUnknown_0202F7A8 - adds r0, r1, 0x5 - str r0, [r2] - ldrb r1, [r1, 0x1] - ldrb r0, [r3, 0x1] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r3, 0x2] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r3, 0x3] - lsls r0, 24 - adds r1, r0 - str r1, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08076AE8: .4byte gUnknown_0202F7A4 -_08076AEC: .4byte gUnknown_0202F7A8 - thumb_func_end ma0E_call - - thumb_func_start sub_8076AF0 -sub_8076AF0: @ 8076AF0 - ldr r0, _08076AFC @ =gUnknown_0202F7A4 - ldr r1, _08076B00 @ =gUnknown_0202F7A8 - ldr r1, [r1] - str r1, [r0] - bx lr - .align 2, 0 -_08076AFC: .4byte gUnknown_0202F7A4 -_08076B00: .4byte gUnknown_0202F7A8 - thumb_func_end sub_8076AF0 - - thumb_func_start ma10_080736AC -ma10_080736AC: @ 8076B04 - push {r4,r5,lr} - ldr r5, _08076B30 @ =gUnknown_0202F7A4 - ldr r1, [r5] - adds r0, r1, 0x1 - str r0, [r5] - ldrb r2, [r1, 0x1] - adds r3, r0, 0x1 - str r3, [r5] - ldrb r4, [r0, 0x1] - ldrb r0, [r3, 0x1] - lsls r0, 8 - orrs r4, r0 - adds r1, 0x4 - str r1, [r5] - ldr r0, _08076B34 @ =gUnknown_03004B00 - lsls r2, 1 - adds r2, r0 - strh r4, [r2] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08076B30: .4byte gUnknown_0202F7A4 -_08076B34: .4byte gUnknown_03004B00 - thumb_func_end ma10_080736AC - - thumb_func_start ma11_if_else -ma11_if_else: @ 8076B38 - push {lr} - ldr r3, _08076B70 @ =gUnknown_0202F7A4 - ldr r2, [r3] - adds r0, r2, 0x1 - str r0, [r3] - ldr r0, _08076B74 @ =gUnknown_0202F7C4 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08076B52 - adds r0, r2, 0x5 - str r0, [r3] -_08076B52: - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - adds r1, r0 - str r1, [r3] - pop {r0} - bx r0 - .align 2, 0 -_08076B70: .4byte gUnknown_0202F7A4 -_08076B74: .4byte gUnknown_0202F7C4 - thumb_func_end ma11_if_else - - thumb_func_start ma12_cond_if -ma12_cond_if: @ 8076B78 - push {r4,r5,lr} - ldr r5, _08076BA8 @ =gUnknown_0202F7A4 - ldr r4, [r5] - adds r2, r4, 0x1 - str r2, [r5] - ldrb r1, [r4, 0x1] - adds r3, r2, 0x1 - str r3, [r5] - ldr r0, _08076BAC @ =gUnknown_0202F7C4 - ldrb r0, [r0] - cmp r1, r0 - bne _08076BB0 - ldrb r1, [r2, 0x1] - ldrb r0, [r3, 0x1] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r3, 0x2] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r3, 0x3] - lsls r0, 24 - adds r1, r0 - str r1, [r5] - b _08076BB4 - .align 2, 0 -_08076BA8: .4byte gUnknown_0202F7A4 -_08076BAC: .4byte gUnknown_0202F7C4 -_08076BB0: - adds r0, r4, 0x6 - str r0, [r5] -_08076BB4: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end ma12_cond_if - - thumb_func_start sub_8076BBC -sub_8076BBC: @ 8076BBC - ldr r3, _08076BDC @ =gUnknown_0202F7A4 - ldr r0, [r3] - adds r2, r0, 0x1 - str r2, [r3] - ldrb r1, [r0, 0x1] - ldrb r0, [r2, 0x1] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - adds r1, r0 - str r1, [r3] - bx lr - .align 2, 0 -_08076BDC: .4byte gUnknown_0202F7A4 - thumb_func_end sub_8076BBC - - thumb_func_start sub_8076BE0 -sub_8076BE0: @ 8076BE0 - push {lr} - ldr r0, _08076BF8 @ =gMain - ldr r1, _08076BFC @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08076C00 - movs r0, 0 - b _08076C02 - .align 2, 0 -_08076BF8: .4byte gMain -_08076BFC: .4byte 0x0000043d -_08076C00: - movs r0, 0x1 -_08076C02: - pop {r1} - bx r1 - thumb_func_end sub_8076BE0 - - thumb_func_start ma14_load_background -ma14_load_background: @ 8076C08 - push {r4,lr} - ldr r1, _08076C3C @ =gUnknown_0202F7A4 - ldr r2, [r1] - adds r0, r2, 0x1 - str r0, [r1] - ldrb r4, [r2, 0x1] - adds r0, 0x1 - str r0, [r1] - ldr r0, _08076C40 @ =task_p5_load_battle_screen_elements - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08076C44 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - ldr r1, _08076C48 @ =gUnknown_0202F7C5 - movs r0, 0x1 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08076C3C: .4byte gUnknown_0202F7A4 -_08076C40: .4byte task_p5_load_battle_screen_elements -_08076C44: .4byte gTasks -_08076C48: .4byte gUnknown_0202F7C5 - thumb_func_end ma14_load_background - - thumb_func_start sub_8076C4C -sub_8076C4C: @ 8076C4C - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r2, _08076C8C @ =gUnknown_0202F7A4 - ldr r1, [r2] - adds r0, r1, 0x1 - str r0, [r2] - ldrb r3, [r1, 0x1] - mov r8, r3 - ldrb r7, [r0, 0x1] - ldrb r6, [r0, 0x2] - adds r1, 0x4 - str r1, [r2] - ldr r0, _08076C90 @ =task_p5_load_battle_screen_elements - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08076C98 - ldr r1, _08076C94 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r6, [r0, 0x8] - b _08076CCA - .align 2, 0 -_08076C8C: .4byte gUnknown_0202F7A4 -_08076C90: .4byte task_p5_load_battle_screen_elements -_08076C94: .4byte gTasks -_08076C98: - ldr r0, _08076CB4 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08076CBC - ldr r1, _08076CB8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r7, [r0, 0x8] - b _08076CCA - .align 2, 0 -_08076CB4: .4byte gUnknown_0202F7C9 -_08076CB8: .4byte gTasks -_08076CBC: - ldr r1, _08076CDC @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - mov r1, r8 - strh r1, [r0, 0x8] -_08076CCA: - ldr r1, _08076CE0 @ =gUnknown_0202F7C5 - movs r0, 0x1 - strb r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08076CDC: .4byte gTasks -_08076CE0: .4byte gUnknown_0202F7C5 - thumb_func_end sub_8076C4C - - thumb_func_start task_p5_load_battle_screen_elements -task_p5_load_battle_screen_elements: @ 8076CE4 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08076D18 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r6, [r4, 0x1C] - movs r0, 0x1C - ldrsh r3, [r4, r0] - adds r7, r1, 0 - cmp r3, 0 - bne _08076D1C - str r3, [sp] - movs r0, 0xE8 - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginHardwarePaletteFade - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - b _08076DAC - .align 2, 0 -_08076D18: .4byte gTasks -_08076D1C: - ldr r2, _08076D38 @ =gPaletteFade - ldrb r1, [r2, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08076DAC - cmp r3, 0x1 - bne _08076D40 - adds r0, r6, 0x1 - strh r0, [r4, 0x1C] - ldr r1, _08076D3C @ =gUnknown_0202F7C5 - movs r0, 0x2 - strb r0, [r1] - b _08076D84 - .align 2, 0 -_08076D38: .4byte gPaletteFade -_08076D3C: .4byte gUnknown_0202F7C5 -_08076D40: - cmp r3, 0x2 - bne _08076D84 - ldrh r0, [r4, 0x8] - lsls r2, r0, 16 - asrs r1, r2, 16 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _08076D58 - bl dp01t_11_3_message_for_player_only - b _08076D5E -_08076D58: - lsrs r0, r2, 16 - bl sub_8076DB8 -_08076D5E: - movs r0, 0x1 - str r0, [sp] - movs r0, 0xE8 - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginHardwarePaletteFade - ldr r1, _08076D80 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x1C] - adds r1, 0x1 - strh r1, [r0, 0x1C] - b _08076DAC - .align 2, 0 -_08076D80: .4byte gTasks -_08076D84: - ldrb r1, [r2, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _08076DAC - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r7 - movs r1, 0x1C - ldrsh r0, [r0, r1] - cmp r0, 0x3 - bne _08076DAC - adds r0, r5, 0 - bl DestroyTask - ldr r0, _08076DB4 @ =gUnknown_0202F7C5 - strb r4, [r0] -_08076DAC: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08076DB4: .4byte gUnknown_0202F7C5 - thumb_func_end task_p5_load_battle_screen_elements - - thumb_func_start sub_8076DB8 -sub_8076DB8: @ 8076DB8 - push {r4-r7,lr} - lsls r0, 16 - lsrs r6, r0, 16 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08076E70 - ldr r7, _08076E54 @ =gBattleAnimBackgroundTable - lsls r0, r6, 1 - adds r0, r6 - lsls r4, r0, 2 - adds r0, r7, 0 - adds r0, 0x8 - adds r0, r4, r0 - ldr r5, [r0] - bl sub_8076BE0 - lsls r0, 24 - ldr r1, _08076E58 @ =0x02018000 - cmp r0, 0 - beq _08076DE8 - ldr r0, _08076E5C @ =0xffffc800 - adds r1, r0 -_08076DE8: - adds r0, r5, 0 - bl sub_800D238 - bl sub_80789BC - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - ldr r1, _08076E58 @ =0x02018000 - cmp r0, 0 - beq _08076E06 - ldr r0, _08076E5C @ =0xffffc800 - adds r1, r0 -_08076E06: - movs r2, 0x80 - lsls r2, 1 - adds r0, r5, 0 - movs r3, 0 - bl sub_80763FC - bl sub_8076BE0 - lsls r0, 24 - ldr r2, _08076E58 @ =0x02018000 - cmp r0, 0 - beq _08076E22 - ldr r0, _08076E5C @ =0xffffc800 - adds r2, r0 -_08076E22: - ldr r1, _08076E60 @ =0x0600d000 - ldr r0, _08076E64 @ =0x040000d4 - str r2, [r0] - str r1, [r0, 0x4] - ldr r1, _08076E68 @ =0x84000200 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - adds r0, r4, r7 - ldr r0, [r0] - ldr r1, _08076E6C @ =0x06002000 - bl LZDecompressVram - adds r0, r7, 0x4 - adds r0, r4, r0 - ldr r4, [r0] - bl sub_80789BC - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 20 - adds r0, r4, 0 - movs r2, 0x20 - bl LoadCompressedPalette - b _08076E9E - .align 2, 0 -_08076E54: .4byte gBattleAnimBackgroundTable -_08076E58: .4byte 0x02018000 -_08076E5C: .4byte 0xffffc800 -_08076E60: .4byte 0x0600d000 -_08076E64: .4byte 0x040000d4 -_08076E68: .4byte 0x84000200 -_08076E6C: .4byte 0x06002000 -_08076E70: - ldr r5, _08076EA4 @ =gBattleAnimBackgroundTable - lsls r4, r6, 1 - adds r4, r6 - lsls r4, 2 - adds r0, r5, 0 - adds r0, 0x8 - adds r0, r4, r0 - ldr r0, [r0] - ldr r1, _08076EA8 @ =0x0600d000 - bl LZDecompressVram - adds r0, r4, r5 - ldr r0, [r0] - ldr r1, _08076EAC @ =0x06008000 - bl LZDecompressVram - adds r5, 0x4 - adds r4, r5 - ldr r0, [r4] - movs r1, 0x20 - movs r2, 0x20 - bl LoadCompressedPalette -_08076E9E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08076EA4: .4byte gBattleAnimBackgroundTable -_08076EA8: .4byte 0x0600d000 -_08076EAC: .4byte 0x06008000 - thumb_func_end sub_8076DB8 - - thumb_func_start dp01t_11_3_message_for_player_only -dp01t_11_3_message_for_player_only: @ 8076EB0 - push {lr} - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08076EC2 - bl sub_80AB2AC - b _08076EC6 -_08076EC2: - bl sub_800D7B8 -_08076EC6: - pop {r0} - bx r0 - thumb_func_end dp01t_11_3_message_for_player_only - - thumb_func_start ma15_load_battle_screen_elements -ma15_load_battle_screen_elements: @ 8076ECC - push {lr} - ldr r1, _08076EFC @ =gUnknown_0202F7A4 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r0, _08076F00 @ =task_p5_load_battle_screen_elements - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08076F04 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _08076F08 @ =0x0000ffff - strh r0, [r1, 0x8] - ldr r1, _08076F0C @ =gUnknown_0202F7C5 - movs r0, 0x1 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08076EFC: .4byte gUnknown_0202F7A4 -_08076F00: .4byte task_p5_load_battle_screen_elements -_08076F04: .4byte gTasks -_08076F08: .4byte 0x0000ffff -_08076F0C: .4byte gUnknown_0202F7C5 - thumb_func_end ma15_load_battle_screen_elements - - thumb_func_start ma16_wait_for_battle_screen_elements_s2 -ma16_wait_for_battle_screen_elements_s2: @ 8076F10 - push {lr} - ldr r0, _08076F28 @ =gUnknown_0202F7C5 - ldrb r0, [r0] - cmp r0, 0x2 - bne _08076F34 - ldr r1, _08076F2C @ =gUnknown_0202F7A4 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r1, _08076F30 @ =gUnknown_0202F7B0 - movs r0, 0 - b _08076F38 - .align 2, 0 -_08076F28: .4byte gUnknown_0202F7C5 -_08076F2C: .4byte gUnknown_0202F7A4 -_08076F30: .4byte gUnknown_0202F7B0 -_08076F34: - ldr r1, _08076F40 @ =gUnknown_0202F7B0 - movs r0, 0x1 -_08076F38: - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08076F40: .4byte gUnknown_0202F7B0 - thumb_func_end ma16_wait_for_battle_screen_elements_s2 - - thumb_func_start sub_8076F44 -sub_8076F44: @ 8076F44 - push {lr} - ldr r0, _08076F5C @ =gUnknown_0202F7C5 - ldrb r2, [r0] - cmp r2, 0 - bne _08076F68 - ldr r0, _08076F60 @ =gUnknown_0202F7A4 - ldr r1, [r0] - adds r1, 0x1 - str r1, [r0] - ldr r0, _08076F64 @ =gUnknown_0202F7B0 - strb r2, [r0] - b _08076F6E - .align 2, 0 -_08076F5C: .4byte gUnknown_0202F7C5 -_08076F60: .4byte gUnknown_0202F7A4 -_08076F64: .4byte gUnknown_0202F7B0 -_08076F68: - ldr r1, _08076F74 @ =gUnknown_0202F7B0 - movs r0, 0x1 - strb r0, [r1] -_08076F6E: - pop {r0} - bx r0 - .align 2, 0 -_08076F74: .4byte gUnknown_0202F7B0 - thumb_func_end sub_8076F44 - - thumb_func_start ma18_load_background_probably -ma18_load_background_probably: @ 8076F78 - push {r4,lr} - ldr r4, _08076F94 @ =gUnknown_0202F7A4 - ldr r1, [r4] - adds r0, r1, 0x1 - str r0, [r4] - ldrb r0, [r1, 0x1] - bl sub_8076DB8 - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08076F94: .4byte gUnknown_0202F7A4 - thumb_func_end ma18_load_background_probably - - thumb_func_start sub_8076F98 -sub_8076F98: @ 8076F98 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _08076FDC - ldr r0, _08076FD4 @ =gUnknown_0202F7C8 - ldrb r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r1, _08076FD8 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08076FDC - adds r0, r2, 0 - bl battle_side_get_owner - lsls r0, 24 - movs r4, 0xC0 - cmp r0, 0 - beq _0807706E - movs r4, 0x3F - b _0807706E - .align 2, 0 -_08076FD4: .4byte gUnknown_0202F7C8 -_08076FD8: .4byte 0x02017810 -_08076FDC: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08077004 - ldr r0, _08076FFC @ =gUnknown_0202F7C8 - ldr r1, _08077000 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bne _08077068 - cmp r0, 0x2 - bne _08077068 - cmp r4, 0x3F - beq _0807707A - b _08077068 - .align 2, 0 -_08076FFC: .4byte gUnknown_0202F7C8 -_08077000: .4byte gUnknown_0202F7C9 -_08077004: - ldr r0, _0807702C @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08077042 - ldr r0, _08077030 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0807706E - lsls r0, r4, 24 - asrs r1, r0, 24 - cmp r1, 0x3F - bne _08077034 - movs r4, 0xC0 - b _0807706E - .align 2, 0 -_0807702C: .4byte gUnknown_0202F7C8 -_08077030: .4byte gUnknown_0202F7C9 -_08077034: - movs r0, 0x40 - negs r0, r0 - cmp r1, r0 - beq _0807706E - negs r0, r1 - lsls r0, 24 - b _0807706C -_08077042: - ldr r0, _08077064 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08077068 - lsls r0, r4, 24 - asrs r0, 24 - movs r1, 0x40 - negs r1, r1 - cmp r0, r1 - bne _0807706E - movs r4, 0x3F - b _0807706E - .align 2, 0 -_08077064: .4byte gUnknown_0202F7C9 -_08077068: - lsls r0, r4, 24 - negs r0, r0 -_0807706C: - lsrs r4, r0, 24 -_0807706E: - lsls r0, r4, 24 - asrs r0, 24 - cmp r0, 0x3F - ble _0807707A - movs r4, 0x3F - b _08077088 -_0807707A: - lsls r0, r4, 24 - asrs r0, 24 - movs r1, 0x40 - negs r1, r1 - cmp r0, r1 - bge _08077088 - movs r4, 0xC0 -_08077088: - lsls r0, r4, 24 - asrs r0, 24 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8076F98 - - thumb_func_start sub_8077094 -sub_8077094: @ 8077094 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080770D8 - ldr r0, _080770D0 @ =gUnknown_0202F7C8 - ldrb r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r1, _080770D4 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080770D8 - adds r0, r2, 0 - bl battle_side_get_owner - lsls r0, 24 - movs r4, 0xC0 - cmp r0, 0 - beq _080770F6 - movs r4, 0x3F - b _080770F6 - .align 2, 0 -_080770D0: .4byte gUnknown_0202F7C8 -_080770D4: .4byte 0x02017810 -_080770D8: - ldr r0, _08077100 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080770F0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080770F6 -_080770F0: - lsls r0, r4, 24 - negs r0, r0 - lsrs r4, r0, 24 -_080770F6: - lsls r0, r4, 24 - asrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08077100: .4byte gUnknown_0202F7C8 - thumb_func_end sub_8077094 - - thumb_func_start sub_8077104 -sub_8077104: @ 8077104 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - asrs r2, r0, 16 - cmp r2, 0x3F - ble _08077114 - movs r1, 0x3F - b _0807711E -_08077114: - movs r0, 0x40 - negs r0, r0 - cmp r2, r0 - bge _0807711E - ldr r1, _08077128 @ =0x0000ffc0 -_0807711E: - lsls r0, r1, 16 - asrs r0, 16 - pop {r1} - bx r1 - .align 2, 0 -_08077128: .4byte 0x0000ffc0 - thumb_func_end sub_8077104 - - thumb_func_start sub_807712C -sub_807712C: @ 807712C - push {lr} - lsls r2, 16 - lsrs r2, 16 - adds r3, r2, 0 - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - cmp r0, r1 - bge _0807714A - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0 - bge _0807715A - b _08077158 -_0807714A: - cmp r0, r1 - ble _08077160 - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, 0 - bge _08077158 - negs r0, r0 -_08077158: - negs r0, r0 -_0807715A: - lsls r0, 16 - lsrs r0, 16 - b _08077162 -_08077160: - movs r0, 0 -_08077162: - lsls r0, 16 - asrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_807712C - - thumb_func_start ma19_08073BC8 -ma19_08073BC8: @ 807716C - push {r4,r5,lr} - ldr r5, _080771A0 @ =gUnknown_0202F7A4 - ldr r0, [r5] - adds r1, r0, 0x1 - str r1, [r5] - ldrb r4, [r0, 0x1] - ldrb r0, [r1, 0x1] - lsls r0, 8 - orrs r4, r0 - movs r0, 0x2 - ldrsb r0, [r1, r0] - bl sub_8076F98 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - adds r0, r4, 0 - bl PlaySE12WithPanning - ldr r0, [r5] - adds r0, 0x3 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080771A0: .4byte gUnknown_0202F7A4 - thumb_func_end ma19_08073BC8 - - thumb_func_start ma1A_8073C00 -ma1A_8073C00: @ 80771A4 - push {r4,lr} - ldr r4, _080771CC @ =gUnknown_0202F7A4 - ldr r1, [r4] - adds r0, r1, 0x1 - str r0, [r4] - movs r0, 0x1 - ldrsb r0, [r1, r0] - bl sub_8076F98 - lsls r0, 24 - asrs r0, 24 - bl SE12PanpotControl - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080771CC: .4byte gUnknown_0202F7A4 - thumb_func_end ma1A_8073C00 - - thumb_func_start ma1B_8073C2C -ma1B_8073C2C: @ 80771D0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _08077280 @ =gUnknown_0202F7A4 - mov r10, r0 - ldr r0, [r0] - adds r1, r0, 0x1 - mov r2, r10 - str r1, [r2] - ldrb r0, [r0, 0x1] - mov r9, r0 - ldrb r0, [r1, 0x1] - lsls r0, 8 - mov r2, r9 - orrs r2, r0 - mov r9, r2 - ldrb r4, [r1, 0x3] - ldrb r6, [r1, 0x4] - ldrb r7, [r1, 0x5] - movs r0, 0x2 - ldrsb r0, [r1, r0] - bl sub_8076F98 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - asrs r4, 24 - adds r0, r4, 0 - bl sub_8076F98 - mov r8, r0 - lsls r5, 24 - asrs r5, 24 - mov r0, r8 - lsls r0, 24 - asrs r0, 24 - mov r8, r0 - lsls r6, 24 - asrs r6, 24 - adds r0, r5, 0 - mov r1, r8 - adds r2, r6, 0 - bl sub_807712C - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08077284 @ =c3_08073CEC - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08077288 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r5, [r1, 0x8] - mov r2, r8 - strh r2, [r1, 0xA] - lsls r4, 24 - asrs r4, 24 - strh r4, [r1, 0xC] - strh r7, [r1, 0xE] - strh r5, [r1, 0x10] - mov r0, r9 - adds r1, r5, 0 - bl PlaySE12WithPanning - ldr r1, _0807728C @ =gUnknown_0202F7B3 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r1, r10 - ldr r0, [r1] - adds r0, 0x6 - str r0, [r1] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08077280: .4byte gUnknown_0202F7A4 -_08077284: .4byte c3_08073CEC -_08077288: .4byte gTasks -_0807728C: .4byte gUnknown_0202F7B3 - thumb_func_end ma1B_8073C2C - - thumb_func_start c3_08073CEC -c3_08073CEC: @ 8077290 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r7, 0 - ldr r1, _080772D4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r2, r0, r1 - ldrh r0, [r2, 0x18] - adds r1, r0, 0x1 - strh r1, [r2, 0x18] - lsls r0, 16 - asrs r0, 16 - movs r3, 0xE - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _08077314 - strh r7, [r2, 0x18] - ldrh r6, [r2, 0x8] - ldrh r3, [r2, 0xA] - movs r4, 0x10 - ldrsh r0, [r2, r4] - movs r4, 0xC - ldrsh r1, [r2, r4] - adds r0, r1 - lsls r0, 16 - lsrs r4, r0, 16 - strh r4, [r2, 0x10] - cmp r1, 0 - bne _080772D8 - lsls r2, r3, 16 - b _080772FC - .align 2, 0 -_080772D4: .4byte gTasks -_080772D8: - lsls r1, r6, 16 - lsls r0, r3, 16 - asrs r3, r0, 16 - adds r2, r0, 0 - cmp r1, r2 - bge _080772EE - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, r3 - blt _080772F8 - b _080772FC -_080772EE: - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, r3 - bgt _080772F8 - movs r7, 0x1 -_080772F8: - cmp r7, 0 - beq _0807730C -_080772FC: - lsrs r4, r2, 16 - adds r0, r5, 0 - bl DestroyTask - ldr r1, _0807731C @ =gUnknown_0202F7B3 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] -_0807730C: - lsls r0, r4, 24 - asrs r0, 24 - bl SE12PanpotControl -_08077314: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0807731C: .4byte gUnknown_0202F7B3 - thumb_func_end c3_08073CEC - - thumb_func_start sub_8077320 -sub_8077320: @ 8077320 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - ldr r0, _080773A4 @ =gUnknown_0202F7A4 - mov r9, r0 - ldr r0, [r0] - adds r1, r0, 0x1 - mov r2, r9 - str r1, [r2] - ldrb r0, [r0, 0x1] - mov r8, r0 - ldrb r0, [r1, 0x1] - lsls r0, 8 - mov r2, r8 - orrs r2, r0 - mov r8, r2 - ldrb r4, [r1, 0x2] - ldrb r5, [r1, 0x3] - ldrb r6, [r1, 0x4] - ldrb r1, [r1, 0x5] - mov r10, r1 - ldr r0, _080773A8 @ =c3_08073CEC - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080773AC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - lsls r4, 24 - asrs r4, 24 - strh r4, [r1, 0x8] - lsls r5, 24 - asrs r5, 24 - strh r5, [r1, 0xA] - lsls r6, 24 - asrs r6, 24 - strh r6, [r1, 0xC] - mov r0, r10 - strh r0, [r1, 0xE] - strh r4, [r1, 0x10] - mov r0, r8 - adds r1, r4, 0 - bl PlaySE12WithPanning - ldr r1, _080773B0 @ =gUnknown_0202F7B3 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r1, r9 - ldr r0, [r1] - adds r0, 0x6 - str r0, [r1] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080773A4: .4byte gUnknown_0202F7A4 -_080773A8: .4byte c3_08073CEC -_080773AC: .4byte gTasks -_080773B0: .4byte gUnknown_0202F7B3 - thumb_func_end sub_8077320 - - thumb_func_start sub_80773B4 -sub_80773B4: @ 80773B4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _08077464 @ =gUnknown_0202F7A4 - mov r10, r0 - ldr r0, [r0] - adds r1, r0, 0x1 - mov r2, r10 - str r1, [r2] - ldrb r0, [r0, 0x1] - mov r9, r0 - ldrb r0, [r1, 0x1] - lsls r0, 8 - mov r2, r9 - orrs r2, r0 - mov r9, r2 - ldrb r4, [r1, 0x3] - ldrb r0, [r1, 0x4] - mov r8, r0 - ldrb r7, [r1, 0x5] - movs r0, 0x2 - ldrsb r0, [r1, r0] - bl sub_8077094 - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r4, 24 - asrs r4, 24 - adds r0, r4, 0 - bl sub_8077094 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - mov r0, r8 - bl sub_8077094 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08077468 @ =c3_08073CEC - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0807746C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - lsls r6, 24 - asrs r6, 24 - strh r6, [r1, 0x8] - lsls r5, 24 - asrs r5, 24 - strh r5, [r1, 0xA] - lsls r4, 24 - asrs r4, 24 - strh r4, [r1, 0xC] - strh r7, [r1, 0xE] - strh r6, [r1, 0x10] - mov r0, r9 - adds r1, r6, 0 - bl PlaySE12WithPanning - ldr r1, _08077470 @ =gUnknown_0202F7B3 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r2, r10 - ldr r0, [r2] - adds r0, 0x6 - str r0, [r2] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08077464: .4byte gUnknown_0202F7A4 -_08077468: .4byte c3_08073CEC -_0807746C: .4byte gTasks -_08077470: .4byte gUnknown_0202F7B3 - thumb_func_end sub_80773B4 - - thumb_func_start ma1C_8073ED0 -ma1C_8073ED0: @ 8077474 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - ldr r6, _080774EC @ =gUnknown_0202F7A4 - ldr r0, [r6] - adds r1, r0, 0x1 - str r1, [r6] - ldrb r5, [r0, 0x1] - ldrb r0, [r1, 0x1] - lsls r0, 8 - orrs r5, r0 - ldrb r0, [r1, 0x3] - mov r8, r0 - ldrb r2, [r1, 0x4] - mov r9, r2 - movs r0, 0x2 - ldrsb r0, [r1, r0] - bl sub_8076F98 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080774F0 @ =sub_80774FC - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080774F4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r5, [r1, 0x8] - lsls r4, 24 - asrs r4, 24 - strh r4, [r1, 0xA] - mov r2, r8 - strh r2, [r1, 0xC] - mov r2, r9 - strh r2, [r1, 0xE] - mov r2, r8 - strh r2, [r1, 0x18] - ldr r1, [r1] - bl _call_via_r1 - ldr r1, _080774F8 @ =gUnknown_0202F7B3 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r6] - adds r0, 0x5 - str r0, [r6] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080774EC: .4byte gUnknown_0202F7A4 -_080774F0: .4byte sub_80774FC -_080774F4: .4byte gTasks -_080774F8: .4byte gUnknown_0202F7B3 - thumb_func_end ma1C_8073ED0 - - thumb_func_start sub_80774FC -sub_80774FC: @ 80774FC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08077550 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r2, r0, r1 - ldrh r0, [r2, 0x18] - adds r1, r0, 0x1 - strh r1, [r2, 0x18] - lsls r0, 16 - asrs r0, 16 - movs r3, 0xC - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _0807754A - movs r0, 0 - strh r0, [r2, 0x18] - ldrh r0, [r2, 0x8] - ldrb r1, [r2, 0xA] - ldrh r4, [r2, 0xE] - subs r4, 0x1 - strh r4, [r2, 0xE] - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - asrs r1, 24 - bl PlaySE12WithPanning - cmp r4, 0 - bne _0807754A - adds r0, r5, 0 - bl DestroyTask - ldr r1, _08077554 @ =gUnknown_0202F7B3 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] -_0807754A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08077550: .4byte gTasks -_08077554: .4byte gUnknown_0202F7B3 - thumb_func_end sub_80774FC - - thumb_func_start ma1D_08073FB4 -ma1D_08073FB4: @ 8077558 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r6, _080775BC @ =gUnknown_0202F7A4 - ldr r0, [r6] - adds r1, r0, 0x1 - str r1, [r6] - ldrb r5, [r0, 0x1] - ldrb r0, [r1, 0x1] - lsls r0, 8 - orrs r5, r0 - ldrb r0, [r1, 0x3] - mov r8, r0 - movs r0, 0x2 - ldrsb r0, [r1, r0] - bl sub_8076F98 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080775C0 @ =sub_80775CC - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080775C4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r5, [r1, 0x8] - lsls r4, 24 - asrs r4, 24 - strh r4, [r1, 0xA] - mov r0, r8 - strh r0, [r1, 0xC] - ldr r1, _080775C8 @ =gUnknown_0202F7B3 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r6] - adds r0, 0x4 - str r0, [r6] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080775BC: .4byte gUnknown_0202F7A4 -_080775C0: .4byte sub_80775CC -_080775C4: .4byte gTasks -_080775C8: .4byte gUnknown_0202F7B3 - thumb_func_end ma1D_08073FB4 - - thumb_func_start sub_80775CC -sub_80775CC: @ 80775CC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _08077608 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - ldrh r0, [r2, 0xC] - subs r1, r0, 0x1 - strh r1, [r2, 0xC] - lsls r0, 16 - cmp r0, 0 - bgt _08077600 - ldrh r0, [r2, 0x8] - movs r1, 0xA - ldrsb r1, [r2, r1] - bl PlaySE12WithPanning - adds r0, r4, 0 - bl DestroyTask - ldr r1, _0807760C @ =gUnknown_0202F7B3 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] -_08077600: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08077608: .4byte gTasks -_0807760C: .4byte gUnknown_0202F7B3 - thumb_func_end sub_80775CC - - thumb_func_start sub_8077610 -sub_8077610: @ 8077610 - push {r4-r6,lr} - ldr r4, _08077678 @ =gUnknown_0202F7A4 - ldr r1, [r4] - adds r3, r1, 0x1 - str r3, [r4] - ldrb r2, [r1, 0x1] - ldrb r0, [r3, 0x1] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r3, 0x2] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r3, 0x3] - lsls r0, 24 - adds r6, r2, r0 - adds r0, r1, 0x5 - str r0, [r4] - ldrb r0, [r1, 0x5] - adds r1, 0x6 - str r1, [r4] - cmp r0, 0 - beq _0807765A - adds r5, r4, 0 - ldr r4, _0807767C @ =gUnknown_03004B00 - adds r3, r0, 0 -_08077642: - ldr r2, [r5] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - strh r1, [r4] - adds r2, 0x2 - str r2, [r5] - adds r4, 0x2 - subs r3, 0x1 - cmp r3, 0 - bne _08077642 -_0807765A: - adds r0, r6, 0 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r6 - ldr r1, _08077680 @ =gUnknown_0202F7B3 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08077678: .4byte gUnknown_0202F7A4 -_0807767C: .4byte gUnknown_03004B00 -_08077680: .4byte gUnknown_0202F7B3 - thumb_func_end sub_8077610 - - thumb_func_start ma20_wait_for_something -ma20_wait_for_something: @ 8077684 - push {r4,r5,lr} - ldr r0, _080776BC @ =gUnknown_0202F7B3 - ldrb r5, [r0] - cmp r5, 0 - bne _080776CC - bl IsSEPlaying - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _080776E4 - ldr r4, _080776C0 @ =gUnknown_03004AF0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5A - bls _080776D2 - ldr r0, _080776C4 @ =gMPlay_SE1 - bl m4aMPlayStop - ldr r0, _080776C8 @ =gMPlay_SE2 - bl m4aMPlayStop - strh r5, [r4] - b _080776F6 - .align 2, 0 -_080776BC: .4byte gUnknown_0202F7B3 -_080776C0: .4byte gUnknown_03004AF0 -_080776C4: .4byte gMPlay_SE1 -_080776C8: .4byte gMPlay_SE2 -_080776CC: - ldr r1, _080776DC @ =gUnknown_03004AF0 - movs r0, 0 - strh r0, [r1] -_080776D2: - ldr r1, _080776E0 @ =gUnknown_0202F7B0 - movs r0, 0x1 - strb r0, [r1] - b _080776F6 - .align 2, 0 -_080776DC: .4byte gUnknown_03004AF0 -_080776E0: .4byte gUnknown_0202F7B0 -_080776E4: - ldr r0, _080776FC @ =gUnknown_03004AF0 - movs r2, 0 - strh r1, [r0] - ldr r1, _08077700 @ =gUnknown_0202F7A4 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r0, _08077704 @ =gUnknown_0202F7B0 - strb r2, [r0] -_080776F6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080776FC: .4byte gUnknown_03004AF0 -_08077700: .4byte gUnknown_0202F7A4 -_08077704: .4byte gUnknown_0202F7B0 - thumb_func_end ma20_wait_for_something - - thumb_func_start ma21_08074164 -ma21_08074164: @ 8077708 - push {r4-r6,lr} - ldr r5, _08077748 @ =gUnknown_0202F7A4 - ldr r4, [r5] - adds r3, r4, 0x1 - str r3, [r5] - ldrb r2, [r4, 0x1] - ldrb r1, [r3, 0x1] - ldrb r0, [r3, 0x2] - lsls r0, 8 - orrs r1, r0 - ldr r0, _0807774C @ =gUnknown_03004B00 - lsls r2, 1 - adds r2, r0 - lsls r1, 16 - asrs r1, 16 - movs r6, 0 - ldrsh r0, [r2, r6] - cmp r1, r0 - bne _08077750 - ldrb r1, [r3, 0x3] - ldrb r0, [r3, 0x4] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r3, 0x6] - lsls r0, 24 - adds r1, r0 - str r1, [r5] - b _08077756 - .align 2, 0 -_08077748: .4byte gUnknown_0202F7A4 -_0807774C: .4byte gUnknown_03004B00 -_08077750: - adds r0, r4, 0 - adds r0, 0x8 - str r0, [r5] -_08077756: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end ma21_08074164 - - thumb_func_start sub_807775C -sub_807775C: @ 807775C - push {r4,lr} - ldr r4, _0807778C @ =gUnknown_0202F7A4 - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08077790 - ldr r2, [r4] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - adds r1, r0 - str r1, [r4] - b _08077796 - .align 2, 0 -_0807778C: .4byte gUnknown_0202F7A4 -_08077790: - ldr r0, [r4] - adds r0, 0x4 - str r0, [r4] -_08077796: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_807775C - - thumb_func_start sub_807779C -sub_807779C: @ 807779C - push {r4,lr} - ldr r0, _080777B0 @ =gUnknown_0202F7A4 - ldr r1, [r0] - ldrb r2, [r1, 0x1] - adds r1, 0x2 - str r1, [r0] - cmp r2, 0 - beq _080777B8 - ldr r0, _080777B4 @ =gUnknown_0202F7C9 - b _080777BA - .align 2, 0 -_080777B0: .4byte gUnknown_0202F7A4 -_080777B4: .4byte gUnknown_0202F7C9 -_080777B8: - ldr r0, _080777FC @ =gUnknown_0202F7C8 -_080777BA: - ldrb r0, [r0] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080777F4 - cmp r4, 0 - beq _080777D6 - cmp r4, 0x3 - bne _080777F4 -_080777D6: - ldr r3, _08077800 @ =REG_BG1CNT - ldrb r2, [r3] - movs r1, 0x4 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - movs r2, 0x1 - orrs r0, r2 - strb r0, [r3] - ldr r2, _08077804 @ =REG_BG2CNT - ldrb r0, [r2] - ands r1, r0 - movs r0, 0x2 - orrs r1, r0 - strb r1, [r2] -_080777F4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080777FC: .4byte gUnknown_0202F7C8 -_08077800: .4byte REG_BG1CNT -_08077804: .4byte REG_BG2CNT - thumb_func_end sub_807779C - - thumb_func_start sub_8077808 -sub_8077808: @ 8077808 - push {lr} - ldr r0, _08077840 @ =gUnknown_0202F7A4 - ldr r1, [r0] - adds r1, 0x1 - str r1, [r0] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _0807783A - ldr r3, _08077844 @ =REG_BG1CNT - ldrb r2, [r3] - movs r1, 0x4 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - movs r2, 0x1 - orrs r0, r2 - strb r0, [r3] - ldr r2, _08077848 @ =REG_BG2CNT - ldrb r0, [r2] - ands r1, r0 - movs r0, 0x2 - orrs r1, r0 - strb r1, [r2] -_0807783A: - pop {r0} - bx r0 - .align 2, 0 -_08077840: .4byte gUnknown_0202F7A4 -_08077844: .4byte REG_BG1CNT -_08077848: .4byte REG_BG2CNT - thumb_func_end sub_8077808 - - thumb_func_start sub_807784C -sub_807784C: @ 807784C - push {r4-r7,lr} - ldr r1, _0807787C @ =gUnknown_0202F7A4 - ldr r0, [r1] - ldrb r6, [r0, 0x1] - adds r0, 0x2 - str r0, [r1] - ldr r7, _08077880 @ =gUnknown_0202F7C8 - ldrb r0, [r7] - bl battle_side_get_owner - adds r4, r0, 0 - ldr r5, _08077884 @ =gUnknown_0202F7C9 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _080778C2 - cmp r6, 0 - beq _08077888 - ldrb r0, [r5] - b _0807788A - .align 2, 0 -_0807787C: .4byte gUnknown_0202F7A4 -_08077880: .4byte gUnknown_0202F7C8 -_08077884: .4byte gUnknown_0202F7C9 -_08077888: - ldrb r0, [r7] -_0807788A: - bl battle_get_per_side_status - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080778C2 - cmp r4, 0 - beq _080778A4 - cmp r4, 0x3 - bne _080778C2 -_080778A4: - ldr r3, _080778C8 @ =REG_BG1CNT - ldrb r2, [r3] - movs r1, 0x4 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - movs r2, 0x1 - orrs r0, r2 - strb r0, [r3] - ldr r2, _080778CC @ =REG_BG2CNT - ldrb r0, [r2] - ands r1, r0 - movs r0, 0x2 - orrs r1, r0 - strb r1, [r2] -_080778C2: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080778C8: .4byte REG_BG1CNT -_080778CC: .4byte REG_BG2CNT - thumb_func_end sub_807784C - - thumb_func_start ma2B_make_side_invisible -ma2B_make_side_invisible: @ 80778D0 - push {r4,lr} - ldr r4, _08077904 @ =gUnknown_0202F7A4 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080778F8 - ldr r1, _08077908 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_080778F8: - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08077904: .4byte gUnknown_0202F7A4 -_08077908: .4byte gSprites - thumb_func_end ma2B_make_side_invisible - - thumb_func_start ma2C_make_side_visible -ma2C_make_side_visible: @ 807790C - push {r4,lr} - ldr r4, _08077944 @ =gUnknown_0202F7A4 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _08077936 - ldr r1, _08077948 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_08077936: - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08077944: .4byte gUnknown_0202F7A4 -_08077948: .4byte gSprites - thumb_func_end ma2C_make_side_visible - - thumb_func_start sub_807794C -sub_807794C: @ 807794C - push {r4-r7,lr} - ldr r1, _08077998 @ =gUnknown_0202F7A4 - ldr r0, [r1] - ldrb r7, [r0, 0x1] - adds r0, 0x2 - str r0, [r1] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080779F6 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080779F6 - ldr r6, _0807799C @ =gUnknown_0202F7C8 - ldrb r0, [r6] - bl battle_side_get_owner - adds r4, r0, 0 - ldr r5, _080779A0 @ =gUnknown_0202F7C9 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080779F6 - cmp r7, 0 - bne _080779A4 - ldrb r0, [r6] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - b _080779B0 - .align 2, 0 -_08077998: .4byte gUnknown_0202F7A4 -_0807799C: .4byte gUnknown_0202F7C8 -_080779A0: .4byte gUnknown_0202F7C9 -_080779A4: - ldrb r0, [r5] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x1 -_080779B0: - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080779F6 - ldr r1, _080779EC @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r2, r0, r1 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - cmp r4, 0x2 - bne _080779E0 - ldrb r0, [r2, 0x5] - movs r1, 0xC - orrs r0, r1 - strb r0, [r2, 0x5] -_080779E0: - cmp r4, 0x1 - bne _080779F0 - movs r0, 0 - bl sub_8076464 - b _080779F6 - .align 2, 0 -_080779EC: .4byte gSprites -_080779F0: - movs r0, 0x1 - bl sub_8076464 -_080779F6: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_807794C - - thumb_func_start sub_80779FC -sub_80779FC: @ 80779FC - push {r4-r7,lr} - ldr r1, _08077A48 @ =gUnknown_0202F7A4 - ldr r0, [r1] - ldrb r7, [r0, 0x1] - adds r0, 0x2 - str r0, [r1] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _08077A88 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08077A88 - ldr r6, _08077A4C @ =gUnknown_0202F7C8 - ldrb r0, [r6] - bl battle_side_get_owner - adds r4, r0, 0 - ldr r5, _08077A50 @ =gUnknown_0202F7C9 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _08077A88 - cmp r7, 0 - bne _08077A54 - ldrb r0, [r6] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - b _08077A60 - .align 2, 0 -_08077A48: .4byte gUnknown_0202F7A4 -_08077A4C: .4byte gUnknown_0202F7C8 -_08077A50: .4byte gUnknown_0202F7C9 -_08077A54: - ldrb r0, [r5] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x1 -_08077A60: - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _08077A88 - cmp r4, 0x2 - bne _08077A88 - ldr r1, _08077A90 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0, 0x5] -_08077A88: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08077A90: .4byte gSprites - thumb_func_end sub_80779FC - - thumb_func_start ma2F_stop_music -ma2F_stop_music: @ 8077A94 - push {lr} - ldr r0, _08077AB0 @ =gMPlay_SE1 - bl m4aMPlayStop - ldr r0, _08077AB4 @ =gMPlay_SE2 - bl m4aMPlayStop - ldr r1, _08077AB8 @ =gUnknown_0202F7A4 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08077AB0: .4byte gMPlay_SE1 -_08077AB4: .4byte gMPlay_SE2 -_08077AB8: .4byte gUnknown_0202F7A4 - thumb_func_end ma2F_stop_music - thumb_func_start sub_8077ABC sub_8077ABC: @ 8077ABC push {r4,r5,lr} @@ -4765,7 +45,7 @@ _08077B00: bl battle_get_per_side_status lsls r0, 24 lsrs r0, 22 - ldr r1, _08077B24 @ =gUnknown_020239F8 + ldr r1, _08077B24 @ =gBattleTypeFlags ldrh r2, [r1] movs r1, 0x1 ands r1, r2 @@ -4776,14 +56,14 @@ _08077B00: b _08077BF4 .align 2, 0 _08077B20: .4byte gUnknown_0837F578 -_08077B24: .4byte gUnknown_020239F8 +_08077B24: .4byte gBattleTypeFlags _08077B28: ldr r4, _08077B48 @ =gUnknown_0837F578 adds r0, r5, 0 bl battle_get_per_side_status lsls r0, 24 lsrs r0, 22 - ldr r1, _08077B4C @ =gUnknown_020239F8 + ldr r1, _08077B4C @ =gBattleTypeFlags ldrh r2, [r1] movs r1, 0x1 ands r1, r2 @@ -4794,7 +74,7 @@ _08077B28: b _08077BF4 .align 2, 0 _08077B48: .4byte gUnknown_0837F578 -_08077B4C: .4byte gUnknown_020239F8 +_08077B4C: .4byte gBattleTypeFlags _08077B50: bl sub_8076BE0 lsls r0, 24 @@ -5226,7 +506,7 @@ _08077E94: ldr r3, _08077EDC @ =gUnknown_0837F578 lsls r0, 24 lsrs r0, 22 - ldr r1, _08077EE0 @ =gUnknown_020239F8 + ldr r1, _08077EE0 @ =gBattleTypeFlags ldrh r2, [r1] movs r1, 0x1 ands r1, r2 @@ -5259,7 +539,7 @@ _08077ED4: bx r1 .align 2, 0 _08077EDC: .4byte gUnknown_0837F578 -_08077EE0: .4byte gUnknown_020239F8 +_08077EE0: .4byte gBattleTypeFlags thumb_func_end sub_8077E44 thumb_func_start sub_8077EE4 @@ -5986,7 +1266,7 @@ _08078400: bl sub_8078104 _08078406: adds r0, r4, 0 - bl sub_809D638 + bl UpdateMonIconFrame pop {r4} pop {r0} bx r0 @@ -6480,7 +1760,7 @@ sub_8078764: @ 8078764 lsrs r0, 24 strh r0, [r5, 0x22] _0807878C: - ldr r4, _080787AC @ =gUnknown_03004B00 + ldr r4, _080787AC @ =gBattleAnimArgs movs r0, 0 ldrsh r1, [r4, r0] adds r0, r5, 0 @@ -6494,7 +1774,7 @@ _0807878C: bx r0 .align 2, 0 _080787A8: .4byte gUnknown_0202F7C9 -_080787AC: .4byte gUnknown_03004B00 +_080787AC: .4byte gBattleAnimArgs thumb_func_end sub_8078764 thumb_func_start sub_80787B0 @@ -6531,7 +1811,7 @@ _080787E8: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r4, _08078810 @ =gUnknown_03004B00 + ldr r4, _08078810 @ =gBattleAnimArgs movs r0, 0 ldrsh r1, [r4, r0] adds r0, r5, 0 @@ -6545,7 +1825,7 @@ _080787E8: bx r0 .align 2, 0 _0807880C: .4byte gUnknown_0202F7C8 -_08078810: .4byte gUnknown_03004B00 +_08078810: .4byte gBattleAnimArgs thumb_func_end sub_80787B0 thumb_func_start battle_side_get_owner @@ -6681,16 +1961,16 @@ _080788FE: bx r1 thumb_func_end sub_8078874 - thumb_func_start battle_type_is_double -battle_type_is_double: @ 8078904 - ldr r0, _08078910 @ =gUnknown_020239F8 + thumb_func_start IsDoubleBattle +IsDoubleBattle: @ 8078904 + ldr r0, _08078910 @ =gBattleTypeFlags ldrb r1, [r0] movs r0, 0x1 ands r0, r1 bx lr .align 2, 0 -_08078910: .4byte gUnknown_020239F8 - thumb_func_end battle_type_is_double +_08078910: .4byte gBattleTypeFlags + thumb_func_end IsDoubleBattle thumb_func_start sub_8078914 sub_8078914: @ 8078914 @@ -8149,7 +3429,7 @@ sub_80793C4: @ 80793C4 ldrsh r0, [r4, r1] cmp r0, 0 bne _08079402 - ldr r2, _080793F0 @ =gUnknown_03004B00 + ldr r2, _080793F0 @ =gBattleAnimArgs movs r3, 0x6 ldrsh r0, [r2, r3] movs r1, 0 @@ -8165,7 +3445,7 @@ _080793DE: bl sub_80787B0 b _080793FA .align 2, 0 -_080793F0: .4byte gUnknown_03004B00 +_080793F0: .4byte gBattleAnimArgs _080793F4: adds r0, r4, 0 bl sub_8078764 @@ -8194,7 +3474,7 @@ _08079416: sub_807941C: @ 807941C push {r4-r7,lr} adds r5, r0, 0 - ldr r6, _08079494 @ =gUnknown_03004B00 + ldr r6, _08079494 @ =gBattleAnimArgs movs r1, 0xA ldrsh r0, [r6, r1] movs r1, 0xFF @@ -8251,7 +3531,7 @@ _08079458: pop {r0} bx r0 .align 2, 0 -_08079494: .4byte gUnknown_03004B00 +_08079494: .4byte gBattleAnimArgs _08079498: .4byte gUnknown_0202F7C8 _0807949C: .4byte gUnknown_0202F7C9 _080794A0: .4byte sub_8078B34 @@ -8270,12 +3550,12 @@ sub_80794A8: @ 80794A8 lsls r0, 24 cmp r0, 0 beq _080794C8 - ldr r1, _0807950C @ =gUnknown_03004B00 + ldr r1, _0807950C @ =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080794C8: - ldr r4, _0807950C @ =gUnknown_03004B00 + ldr r4, _0807950C @ =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] ldr r5, _08079510 @ =gUnknown_0202F7C9 @@ -8306,7 +3586,7 @@ _080794C8: bx r0 .align 2, 0 _08079508: .4byte gUnknown_0202F7C8 -_0807950C: .4byte gUnknown_03004B00 +_0807950C: .4byte gBattleAnimArgs _08079510: .4byte gUnknown_0202F7C9 _08079514: .4byte sub_8079518 thumb_func_end sub_80794A8 @@ -8331,7 +3611,7 @@ _0807952C: sub_8079534: @ 8079534 push {r4-r7,lr} adds r5, r0, 0 - ldr r0, _08079548 @ =gUnknown_03004B00 + ldr r0, _08079548 @ =gBattleAnimArgs movs r2, 0xC ldrsh r1, [r0, r2] cmp r1, 0 @@ -8340,7 +3620,7 @@ sub_8079534: @ 8079534 movs r7, 0x3 b _08079550 .align 2, 0 -_08079548: .4byte gUnknown_03004B00 +_08079548: .4byte gBattleAnimArgs _0807954C: movs r4, 0 movs r7, 0x1 @@ -8369,7 +3649,7 @@ _08079572: lsls r0, 24 cmp r0, 0 beq _0807958A - ldr r1, _080795D8 @ =gUnknown_03004B00 + ldr r1, _080795D8 @ =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] @@ -8377,7 +3657,7 @@ _0807958A: adds r0, r5, 0 adds r1, r4, 0 bl sub_8078764 - ldr r4, _080795D8 @ =gUnknown_03004B00 + ldr r4, _080795D8 @ =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r5, 0x2E] adds r0, r6, 0 @@ -8407,7 +3687,7 @@ _0807958A: .align 2, 0 _080795D0: .4byte gUnknown_0202F7C9 _080795D4: .4byte gUnknown_0202F7C8 -_080795D8: .4byte gUnknown_03004B00 +_080795D8: .4byte gBattleAnimArgs _080795DC: .4byte sub_8078B34 _080795E0: .4byte move_anim_8072740 thumb_func_end sub_8079534 @@ -8496,7 +3776,7 @@ sub_8079670: @ 8079670 lsrs r2, r0, 24 movs r5, 0 movs r3, 0 - ldr r4, _080796E4 @ =gUnknown_03004B00 + ldr r4, _080796E4 @ =gBattleAnimArgs movs r0, 0x4 ldrsh r1, [r4, r0] movs r6, 0 @@ -8553,7 +3833,7 @@ _080796A4: pop {r0} bx r0 .align 2, 0 -_080796E4: .4byte gUnknown_03004B00 +_080796E4: .4byte gBattleAnimArgs _080796E8: .4byte 0x0000ffff _080796EC: .4byte gTasks _080796F0: .4byte REG_BLDALPHA @@ -8646,7 +3926,7 @@ sub_8079790: @ 8079790 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _080797B0 @ =gUnknown_03004B00 + ldr r0, _080797B0 @ =gBattleAnimArgs ldrb r0, [r0] bl obj_id_for_side_relative_to_move lsls r0, 24 @@ -8657,7 +3937,7 @@ sub_8079790: @ 8079790 bl move_anim_task_del b _080797DA .align 2, 0 -_080797B0: .4byte gUnknown_03004B00 +_080797B0: .4byte gBattleAnimArgs _080797B4: ldr r1, _080797E0 @ =gTasks lsls r0, r4, 2 @@ -8689,7 +3969,7 @@ _080797E8: .4byte 0x00000101 thumb_func_start sub_80797EC sub_80797EC: @ 80797EC - ldr r3, _0807980C @ =gUnknown_03004B00 + ldr r3, _0807980C @ =gBattleAnimArgs ldrh r1, [r3, 0x2] movs r2, 0 strh r1, [r0, 0xA] @@ -8706,7 +3986,7 @@ sub_80797EC: @ 80797EC str r1, [r0] bx lr .align 2, 0 -_0807980C: .4byte gUnknown_03004B00 +_0807980C: .4byte gBattleAnimArgs _08079810: .4byte sub_8079814 thumb_func_end sub_80797EC @@ -8793,7 +4073,7 @@ sub_80798AC: @ 80798AC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _080798CC @ =gUnknown_03004B00 + ldr r0, _080798CC @ =gBattleAnimArgs ldrh r0, [r0] bl IndexOfSpritePaletteTag lsls r0, 24 @@ -8804,7 +4084,7 @@ sub_80798AC: @ 80798AC bl move_anim_task_del b _080798E6 .align 2, 0 -_080798CC: .4byte gUnknown_03004B00 +_080798CC: .4byte gBattleAnimArgs _080798D0: ldr r1, _080798EC @ =gTasks lsls r0, r4, 2 @@ -9381,7 +4661,7 @@ sub_8079CEC: @ 8079CEC bhi _08079D0A movs r1, 0x2 _08079D0A: - ldr r0, _08079D1C @ =gUnknown_03004B00 + ldr r0, _08079D1C @ =gBattleAnimArgs strh r1, [r0, 0xE] adds r0, r2, 0 bl move_anim_task_del @@ -9389,7 +4669,7 @@ _08079D0A: bx r0 .align 2, 0 _08079D18: .4byte gUnknown_0202F7BE -_08079D1C: .4byte gUnknown_03004B00 +_08079D1C: .4byte gBattleAnimArgs thumb_func_end sub_8079CEC thumb_func_start unref_sub_8079D20 @@ -9756,7 +5036,7 @@ sub_8079F44: @ 8079F44 str r4, [sp, 0x8] movs r4, 0x1 str r4, [sp, 0xC] - bl sub_800D378 + bl LoadSpecialPokePic b _0807A02E .align 2, 0 _08079FE0: .4byte gUnknown_0837F5E0 @@ -9791,7 +5071,7 @@ _08079FF0: str r4, [sp, 0x8] movs r4, 0 str r4, [sp, 0xC] - bl sub_800D378 + bl LoadSpecialPokePic _0807A02E: movs r2, 0x80 lsls r2, 18 @@ -10314,7 +5594,7 @@ _0807A41E: bl sub_8077ABC lsls r0, 24 lsrs r7, r0, 24 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0807A470 @@ -10377,7 +5657,7 @@ sub_807A4A0: @ 807A4A0 lsrs r6, 24 ldr r0, _0807A538 @ =SpriteCallbackDummy mov r10, r0 - bl object_new_hidden_with_callback + bl CreateInvisibleSpriteWithCallback mov r8, r0 mov r0, r8 lsls r0, 24 @@ -10457,7 +5737,7 @@ sub_807A544: @ 807A544 lsls r0, 24 cmp r0, 0 beq _0807A584 - ldr r2, _0807A580 @ =gUnknown_03004B00 + ldr r2, _0807A580 @ =gBattleAnimArgs ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 @@ -10475,9 +5755,9 @@ sub_807A544: @ 807A544 b _0807A58E .align 2, 0 _0807A57C: .4byte gUnknown_0202F7C8 -_0807A580: .4byte gUnknown_03004B00 +_0807A580: .4byte gBattleAnimArgs _0807A584: - ldr r1, _0807A5B8 @ =gUnknown_03004B00 + ldr r1, _0807A5B8 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -10504,7 +5784,7 @@ _0807A58E: pop {r0} bx r0 .align 2, 0 -_0807A5B8: .4byte gUnknown_03004B00 +_0807A5B8: .4byte gBattleAnimArgs _0807A5BC: .4byte move_anim_8074EE0 _0807A5C0: .4byte sub_8078504 thumb_func_end sub_807A544 @@ -10519,7 +5799,7 @@ sub_807A5C4: @ 807A5C4 lsls r0, 24 cmp r0, 0 beq _0807A5F4 - ldr r2, _0807A5F0 @ =gUnknown_03004B00 + ldr r2, _0807A5F0 @ =gBattleAnimArgs ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 @@ -10532,9 +5812,9 @@ sub_807A5C4: @ 807A5C4 b _0807A5FE .align 2, 0 _0807A5EC: .4byte gUnknown_0202F7C8 -_0807A5F0: .4byte gUnknown_03004B00 +_0807A5F0: .4byte gBattleAnimArgs _0807A5F4: - ldr r1, _0807A630 @ =gUnknown_03004B00 + ldr r1, _0807A630 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -10564,7 +5844,7 @@ _0807A5FE: pop {r0} bx r0 .align 2, 0 -_0807A630: .4byte gUnknown_03004B00 +_0807A630: .4byte gBattleAnimArgs _0807A634: .4byte move_anim_8074EE0 _0807A638: .4byte sub_8078504 thumb_func_end sub_807A5C4 @@ -10580,7 +5860,7 @@ sub_807A63C: @ 807A63C lsls r0, 24 cmp r0, 0 beq _0807A668 - ldr r0, _0807A664 @ =gUnknown_03004B00 + ldr r0, _0807A664 @ =gBattleAnimArgs ldrh r1, [r4, 0x20] ldrh r2, [r0] subs r1, r2 @@ -10588,9 +5868,9 @@ sub_807A63C: @ 807A63C b _0807A674 .align 2, 0 _0807A660: .4byte gUnknown_0202F7C8 -_0807A664: .4byte gUnknown_03004B00 +_0807A664: .4byte gBattleAnimArgs _0807A668: - ldr r1, _0807A690 @ =gUnknown_03004B00 + ldr r1, _0807A690 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -10610,7 +5890,7 @@ _0807A674: pop {r0} bx r0 .align 2, 0 -_0807A690: .4byte gUnknown_03004B00 +_0807A690: .4byte gBattleAnimArgs _0807A694: .4byte sub_8078600 _0807A698: .4byte move_anim_8072740 thumb_func_end sub_807A63C @@ -10706,7 +5986,7 @@ _0807A742: adds r1, r2 ldr r2, _0807A778 @ =REG_BG0CNT bl CpuSet - ldr r0, _0807A77C @ =gUnknown_03004B00 + ldr r0, _0807A77C @ =gBattleAnimArgs ldrb r2, [r0, 0x2] ldrh r3, [r0] adds r0, r6, 0 @@ -10721,7 +6001,7 @@ _0807A742: _0807A770: .4byte gPlttBufferUnfaded _0807A774: .4byte gPlttBufferFaded _0807A778: .4byte REG_BG0CNT -_0807A77C: .4byte gUnknown_03004B00 +_0807A77C: .4byte gBattleAnimArgs _0807A780: .4byte sub_807A784 thumb_func_end sub_807A69C @@ -11021,7 +6301,7 @@ _0807A9B4: sub_807A9BC: @ 807A9BC push {r4,r5,lr} adds r4, r0, 0 - ldr r5, _0807A9F4 @ =gUnknown_03004B00 + ldr r5, _0807A9F4 @ =gBattleAnimArgs ldrh r0, [r5, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r5, 0x8] @@ -11047,7 +6327,7 @@ sub_807A9BC: @ 807A9BC subs r0, 0x14 b _0807AA0A .align 2, 0 -_0807A9F4: .4byte gUnknown_03004B00 +_0807A9F4: .4byte gBattleAnimArgs _0807A9F8: .4byte gUnknown_0202F7C9 _0807A9FC: ldrh r0, [r5, 0x8] diff --git a/asm/rom_8080874.s b/asm/rom_8080874.s index d4a6414fb..77dad9f9e 100644 --- a/asm/rom_8080874.s +++ b/asm/rom_8080874.s @@ -6,8 +6,8 @@ .text - thumb_func_start palette_bg_faded_fill_black -palette_bg_faded_fill_black: @ 8080874 + thumb_func_start palette_bg_fill_white +palette_bg_fill_white: @ 8080874 push {lr} sub sp, 0x4 ldr r0, _0808088C @ =0x7fff7fff @@ -23,10 +23,10 @@ palette_bg_faded_fill_black: @ 8080874 _0808088C: .4byte 0x7fff7fff _08080890: .4byte gPlttBufferFaded _08080894: .4byte 0x01000100 - thumb_func_end palette_bg_faded_fill_black + thumb_func_end palette_bg_fill_white - thumb_func_start palette_bg_faded_fill_white -palette_bg_faded_fill_white: @ 8080898 + thumb_func_start palette_bg_fill_black +palette_bg_fill_black: @ 8080898 push {lr} sub sp, 0x4 movs r0, 0 @@ -41,10 +41,10 @@ palette_bg_faded_fill_white: @ 8080898 .align 2, 0 _080808B0: .4byte gPlttBufferFaded _080808B4: .4byte 0x01000100 - thumb_func_end palette_bg_faded_fill_white + thumb_func_end palette_bg_fill_black - thumb_func_start pal_fill_for_maplights -pal_fill_for_maplights: @ 80808B8 + thumb_func_start pal_fill_for_map_transition +pal_fill_for_map_transition: @ 80808B8 push {r4,lr} bl get_map_light_from_warp0 adds r4, r0, 0 @@ -67,18 +67,18 @@ _080808E2: movs r0, 0 movs r1, 0 bl fade_screen - bl palette_bg_faded_fill_white + bl palette_bg_fill_black b _080808FC _080808F0: movs r0, 0x2 movs r1, 0 bl fade_screen - bl palette_bg_faded_fill_black + bl palette_bg_fill_white _080808FC: pop {r4} pop {r0} bx r0 - thumb_func_end pal_fill_for_maplights + thumb_func_end pal_fill_for_map_transition thumb_func_start pal_fill_black pal_fill_black: @ 8080904 @@ -86,13 +86,13 @@ pal_fill_black: @ 8080904 movs r0, 0 movs r1, 0 bl fade_screen - bl palette_bg_faded_fill_white + bl palette_bg_fill_black pop {r0} bx r0 thumb_func_end pal_fill_black - thumb_func_start sub_8080918 -sub_8080918: @ 8080918 + thumb_func_start fade_8080918 +fade_8080918: @ 8080918 push {r4,lr} bl sav1_map_get_light_level adds r4, r0, 0 @@ -122,7 +122,7 @@ _08080950: pop {r4} pop {r0} bx r0 - thumb_func_end sub_8080918 + thumb_func_end fade_8080918 thumb_func_start sub_8080958 sub_8080958: @ 8080958 @@ -226,7 +226,7 @@ _08080A06: ldrb r0, [r1, 0x4] cmp r0, 0x1 beq _08080A36 - bl pal_fill_for_maplights + bl pal_fill_for_map_transition _08080A1C: ldrh r0, [r4, 0x8] adds r0, 0x1 @@ -250,7 +250,7 @@ sub_8080A3C: @ 8080A3C push {lr} bl ScriptContext2_Enable bl sub_8053E90 - bl palette_bg_faded_fill_white + bl palette_bg_fill_black ldr r0, _08080A58 @ =task_mpl_807DD60 movs r1, 0xA bl CreateTask @@ -293,7 +293,7 @@ _08080A90: lsls r0, 24 cmp r0, 0 beq _08080ABC - bl pal_fill_for_maplights + bl pal_fill_for_map_transition _08080A9E: ldrh r0, [r4, 0x8] adds r0, 0x1 @@ -318,7 +318,7 @@ sub_8080AC4: @ 8080AC4 push {lr} bl ScriptContext2_Enable bl sub_8053E90 - bl palette_bg_faded_fill_white + bl palette_bg_fill_black ldr r0, _08080AE0 @ =sub_8080A5C movs r1, 0xA bl CreateTask @@ -357,7 +357,7 @@ sub_8080AE4: @ 8080AE4 _08080B18: .4byte sub_8080B9C _08080B1C: adds r0, r4, 0 - bl sub_8056F08 + bl MetatileBehavior_IsNonAnimDoor lsls r0, 24 lsrs r0, 24 ldr r1, _08080B40 @ =task_map_chg_seq_0807E2CC @@ -381,7 +381,7 @@ _08080B44: .4byte task_map_chg_seq_0807E20C mapldr_default: @ 8080B48 push {lr} bl sub_8053E90 - bl pal_fill_for_maplights + bl pal_fill_for_map_transition bl sub_8080AE4 bl ScriptContext2_Enable pop {r0} @@ -403,7 +403,7 @@ sub_8080B60: @ 8080B60 sub_8080B78: @ 8080B78 push {lr} bl sub_8053E90 - bl pal_fill_for_maplights + bl pal_fill_for_map_transition movs r0, 0x2E bl PlaySE ldr r0, _08080B98 @ =task_map_chg_seq_0807E2CC @@ -453,7 +453,7 @@ _08080BD0: _08080BE4: movs r0, 0 bl sub_8080958 - bl player_bitmagic + bl FreezeMapObjects adds r0, r6, 0 adds r1, r7, 0 bl PlayerGetDestCoords @@ -534,7 +534,7 @@ _08080C84: cmp r0, 0x1 beq _08080CAE _08080C9A: - bl sub_806451C + bl UnfreezeMapObjects movs r0, 0x4 strh r0, [r5, 0x8] b _08080CAE @@ -582,7 +582,7 @@ _08080CE4: _08080CEE: movs r0, 0 bl sub_8080958 - bl player_bitmagic + bl FreezeMapObjects adds r0, r6, 0 adds r1, r7, 0 bl PlayerGetDestCoords @@ -625,7 +625,7 @@ _08080D50: lsls r0, 24 cmp r0, 0 beq _08080D6E - bl sub_806451C + bl UnfreezeMapObjects movs r0, 0x3 strh r0, [r5, 0x8] b _08080D6E @@ -659,7 +659,7 @@ task_map_chg_seq_0807E2CC: @ 8080D74 .align 2, 0 _08080D94: .4byte gTasks _08080D98: - bl player_bitmagic + bl FreezeMapObjects bl ScriptContext2_Enable ldrh r0, [r4, 0x8] adds r0, 0x1 @@ -669,7 +669,7 @@ _08080DA8: bl sub_8080E70 cmp r0, 0 beq _08080DBE - bl sub_806451C + bl UnfreezeMapObjects bl ScriptContext2_Disable adds r0, r5, 0 bl DestroyTask @@ -792,7 +792,7 @@ sub_8080E88: @ 8080E88 push {lr} bl ScriptContext2_Enable bl sub_8053FF8 - bl sub_8080918 + bl fade_8080918 bl PlayRainSoundEffect movs r0, 0x9 bl PlaySE @@ -815,7 +815,7 @@ sp13E_warp_to_last_warp: @ 8080EC0 push {lr} bl ScriptContext2_Enable bl sub_8053FF8 - bl sub_8080918 + bl fade_8080918 bl PlayRainSoundEffect ldr r0, _08080EE4 @ =gUnknown_0300485C ldr r1, _08080EE8 @ =mapldr_default @@ -903,7 +903,7 @@ sub_8080F68: @ 8080F68 push {lr} bl ScriptContext2_Enable bl sub_8053FF8 - bl sub_8080918 + bl fade_8080918 movs r0, 0x2D bl PlaySE ldr r0, _08080F90 @ =task0A_fade_n_map_maybe @@ -924,7 +924,7 @@ _08080F98: .4byte sub_8080B78 sub_8080F9C: @ 8080F9C push {lr} bl ScriptContext2_Enable - bl sub_8080918 + bl fade_8080918 ldr r0, _08080FB8 @ =task0A_fade_n_map_maybe movs r1, 0xA bl CreateTask @@ -999,7 +999,7 @@ sub_808102C: @ 808102C push {lr} bl ScriptContext2_Enable bl sub_8053FF8 - bl sub_8080918 + bl fade_8080918 movs r0, 0x9 bl PlaySE ldr r0, _0808104C @ =sub_8080FC4 @@ -1116,7 +1116,7 @@ _08081118: beq _08081142 b _08081152 _0808111E: - bl player_bitmagic + bl FreezeMapObjects bl ScriptContext2_Enable b _0808113A _08081128: @@ -1183,7 +1183,7 @@ _08081194: .4byte _0808128C .4byte _080812A8 _080811A8: - bl player_bitmagic + bl FreezeMapObjects adds r0, r4, 0 adds r1, r6, 0 bl PlayerGetDestCoords @@ -1304,7 +1304,7 @@ _080812A2: b _080812BC _080812A8: bl sub_8053FF8 - bl sub_8080918 + bl fade_8080918 bl PlayRainSoundEffect movs r0, 0 strh r0, [r5, 0x8] @@ -1344,7 +1344,7 @@ _080812F0: beq _0808131A b _0808132A _080812F6: - bl player_bitmagic + bl FreezeMapObjects bl ScriptContext2_Enable b _08081312 _08081300: @@ -1379,7 +1379,7 @@ sub_8081334: @ 8081334 push {lr} bl ScriptContext2_Enable bl sub_8053FF8 - bl sub_8080918 + bl fade_8080918 bl PlayRainSoundEffect movs r0, 0x9 bl PlaySE diff --git a/asm/rom_8094928.s b/asm/rom_8094928.s index 231f13e9c..d272b277a 100644 --- a/asm/rom_8094928.s +++ b/asm/rom_8094928.s @@ -76,7 +76,7 @@ sub_8094998: @ 8094998 adds r6, r0, 0 lsls r1, 24 lsrs r4, r1, 24 - bl sub_806B528 + bl IsLinkDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -99,7 +99,7 @@ _080949C0: strb r0, [r6, 0x2] b _08094A68 _080949CE: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _08094A0C @@ -218,7 +218,7 @@ _08094AA8: bl battle_get_side_with_given_state lsls r0, 24 lsrs r6, r0, 24 - bl sub_806B528 + bl IsLinkDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -241,7 +241,7 @@ _08094ACE: strb r0, [r5, 0x2] b _08094B5E _08094ADC: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _08094B14 @@ -331,7 +331,7 @@ sub_8094B6C: @ 8094B6C lsls r2, 24 lsrs r6, r2, 24 movs r7, 0 - bl sub_806B528 + bl IsLinkDoubleBattle lsls r0, 24 cmp r0, 0 beq _08094C16 @@ -722,28738 +722,4 @@ sub_8094E4C: @ 8094E4C bx r0 thumb_func_end sub_8094E4C - thumb_func_start sub_8094E58 -sub_8094E58: @ 8094E58 - push {r4,r5,lr} - ldr r1, _08094E78 @ =0x0201b000 - movs r2, 0x99 - lsls r2, 2 - adds r0, r1, r2 - movs r3, 0 - ldrsh r0, [r0, r3] - adds r4, r1, 0 - cmp r0, 0xA - bls _08094E6E - b _08095048 -_08094E6E: - lsls r0, 2 - ldr r1, _08094E7C @ =_08094E80 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08094E78: .4byte 0x0201b000 -_08094E7C: .4byte _08094E80 - .align 2, 0 -_08094E80: - .4byte _08094EAC - .4byte _08094F28 - .4byte _08094F3C - .4byte _08094F4A - .4byte _08094F6C - .4byte _08094F80 - .4byte _08094F94 - .4byte _08094FA8 - .4byte _08094FBC - .4byte _08094FD0 - .4byte _08095000 -_08094EAC: - bl sub_806B528 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08094EDC - ldr r1, _08094ED4 @ =0x0201b000 - ldr r0, _08094ED8 @ =0x00000266 - adds r4, r1, r0 - ldrh r2, [r4] - movs r3, 0 - ldrsh r0, [r4, r3] - cmp r0, 0x6 - bne _08094EEC - movs r0, 0 - strh r0, [r4] - movs r3, 0x99 - lsls r3, 2 - adds r1, r3 - b _08094FEC - .align 2, 0 -_08094ED4: .4byte 0x0201b000 -_08094ED8: .4byte 0x00000266 -_08094EDC: - ldr r1, _08094F10 @ =0x0201b000 - ldr r0, _08094F14 @ =0x00000266 - adds r4, r1, r0 - ldrh r2, [r4] - movs r3, 0 - ldrsh r0, [r4, r3] - cmp r0, 0x5 - bgt _08094F1C -_08094EEC: - movs r3, 0x98 - lsls r3, 2 - adds r0, r1, r3 - ldrb r0, [r0] - lsls r1, r2, 24 - lsrs r1, 24 - movs r2, 0 - ldrsh r3, [r4, r2] - movs r2, 0x64 - muls r2, r3 - ldr r3, _08094F18 @ =gPlayerParty - adds r2, r3 - bl sub_806D90C - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _08095048 - .align 2, 0 -_08094F10: .4byte 0x0201b000 -_08094F14: .4byte 0x00000266 -_08094F18: .4byte gPlayerParty -_08094F1C: - movs r0, 0 - strh r0, [r4] - movs r3, 0x99 - lsls r3, 2 - adds r1, r3 - b _08094FEC -_08094F28: - bl sub_806DA98 - ldr r1, _08094F38 @ =0x0201b000 - movs r0, 0x99 - lsls r0, 2 - adds r1, r0 - b _08094FEC - .align 2, 0 -_08094F38: .4byte 0x0201b000 -_08094F3C: - movs r1, 0x98 - lsls r1, 2 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_806DC34 - b _08094FE6 -_08094F4A: - movs r3, 0x98 - lsls r3, 2 - adds r0, r4, r3 - ldrb r0, [r0] - ldr r1, _08094F68 @ =0x00000266 - adds r5, r4, r1 - ldrb r1, [r5] - bl sub_806BD58 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08094FE2 - b _08094FF8 - .align 2, 0 -_08094F68: .4byte 0x00000266 -_08094F6C: - bl sub_806E334 - ldr r1, _08094F7C @ =0x0201b000 - movs r3, 0x99 - lsls r3, 2 - adds r1, r3 - b _08094FEC - .align 2, 0 -_08094F7C: .4byte 0x0201b000 -_08094F80: - bl sub_806E0C4 - ldr r1, _08094F90 @ =0x0201b000 - movs r0, 0x99 - lsls r0, 2 - adds r1, r0 - b _08094FEC - .align 2, 0 -_08094F90: .4byte 0x0201b000 -_08094F94: - bl sub_806E53C - ldr r1, _08094FA4 @ =0x0201b000 - movs r2, 0x99 - lsls r2, 2 - adds r1, r2 - b _08094FEC - .align 2, 0 -_08094FA4: .4byte 0x0201b000 -_08094FA8: - bl nullsub_13 - ldr r1, _08094FB8 @ =0x0201b000 - movs r3, 0x99 - lsls r3, 2 - adds r1, r3 - b _08094FEC - .align 2, 0 -_08094FB8: .4byte 0x0201b000 -_08094FBC: - bl sub_806E6C8 - ldr r1, _08094FCC @ =0x0201b000 - movs r0, 0x99 - lsls r0, 2 - adds r1, r0 - b _08094FEC - .align 2, 0 -_08094FCC: .4byte 0x0201b000 -_08094FD0: - ldr r1, _08094FF4 @ =0x00000266 - adds r5, r4, r1 - ldrb r0, [r5] - bl sub_806B58C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08094FF8 -_08094FE2: - movs r0, 0 - strh r0, [r5] -_08094FE6: - movs r2, 0x99 - lsls r2, 2 - adds r1, r4, r2 -_08094FEC: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _08095048 - .align 2, 0 -_08094FF4: .4byte 0x00000266 -_08094FF8: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - b _08095048 -_08095000: - ldr r0, _08095024 @ =gUnknown_02038473 - ldrb r4, [r0] - cmp r4, 0x3 - bne _0809503C - ldr r0, _08095028 @ =gScriptItemId - ldrh r0, [r0] - bl sub_8070E48 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xA - bne _08095034 - ldr r0, _0809502C @ =0x0201b000 - ldr r3, _08095030 @ =0x00000259 - adds r0, r3 - movs r1, 0xFF - strb r1, [r0] - b _0809503C - .align 2, 0 -_08095024: .4byte gUnknown_02038473 -_08095028: .4byte gScriptItemId -_0809502C: .4byte 0x0201b000 -_08095030: .4byte 0x00000259 -_08095034: - ldr r0, _08095040 @ =0x0201b000 - ldr r1, _08095044 @ =0x00000259 - adds r0, r1 - strb r4, [r0] -_0809503C: - movs r0, 0x1 - b _0809504A - .align 2, 0 -_08095040: .4byte 0x0201b000 -_08095044: .4byte 0x00000259 -_08095048: - movs r0, 0 -_0809504A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094E58 - - thumb_func_start sub_8095050 -sub_8095050: @ 8095050 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x64 - muls r0, r1 - ldr r1, _0809508C @ =gPlayerParty - adds r0, r1 - movs r1, 0x2D - bl GetMonData - adds r5, r0, 0 - cmp r5, 0 - bne _080950C8 - ldr r0, _08095090 @ =gUnknown_02038473 - ldrb r4, [r0] - cmp r4, 0x1 - bne _0809509C - ldr r3, _08095094 @ =gTasks - ldr r2, _08095098 @ =0x0201b000 - movs r0, 0x98 - lsls r0, 2 - adds r2, r0 - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - b _080950DE - .align 2, 0 -_0809508C: .4byte gPlayerParty -_08095090: .4byte gUnknown_02038473 -_08095094: .4byte gTasks -_08095098: .4byte 0x0201b000 -_0809509C: - ldr r3, _080950C0 @ =gTasks - ldr r2, _080950C4 @ =0x0201b000 - movs r0, 0x98 - lsls r0, 2 - adds r2, r0 - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - strh r5, [r0, 0x10] - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - strh r5, [r0, 0x12] - b _080950EC - .align 2, 0 -_080950C0: .4byte gTasks -_080950C4: .4byte 0x0201b000 -_080950C8: - ldr r3, _08095108 @ =gTasks - ldr r2, _0809510C @ =0x0201b000 - movs r0, 0x98 - lsls r0, 2 - adds r2, r0 - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - movs r4, 0x2 -_080950DE: - strh r4, [r0, 0x10] - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - strh r4, [r0, 0x12] -_080950EC: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r3 - ldrb r0, [r0, 0x10] - ldr r1, _08095110 @ =gUnknown_083B5FF4 - ldr r2, _08095114 @ =gUnknown_083B5FCC - movs r3, 0 - bl sub_806E750 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08095108: .4byte gTasks -_0809510C: .4byte 0x0201b000 -_08095110: .4byte gUnknown_083B5FF4 -_08095114: .4byte gUnknown_083B5FCC - thumb_func_end sub_8095050 - - thumb_func_start sub_8095118 -sub_8095118: @ 8095118 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08095150 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0809512C - b _08095268 -_0809512C: - ldr r0, _08095154 @ =gUnknown_02038473 - ldrb r0, [r0] - cmp r0, 0x3 - bne _08095164 - ldr r5, _08095158 @ =gScriptItemId - ldrh r0, [r5] - bl sub_8070E48 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xA - bne _08095164 - ldr r0, _0809515C @ =gUnknown_03004AE4 - ldrh r1, [r5] - ldr r2, _08095160 @ =sub_80952E4 - ldr r3, [r0] - b _080951AA - .align 2, 0 -_08095150: .4byte gPaletteFade -_08095154: .4byte gUnknown_02038473 -_08095158: .4byte gScriptItemId -_0809515C: .4byte gUnknown_03004AE4 -_08095160: .4byte sub_80952E4 -_08095164: - adds r0, r4, 0 - bl sub_806BD80 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - beq _08095178 - cmp r0, 0x2 - beq _08095214 - b _08095268 -_08095178: - ldr r0, _080951B4 @ =gUnknown_02038473 - ldrb r0, [r0] - cmp r0, 0x3 - bne _080951C8 - adds r0, r4, 0 - bl sub_806CA38 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _080951B8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0809521C - bl sub_806D5A4 - ldr r3, _080951BC @ =gUnknown_03004AE4 - ldr r0, _080951C0 @ =gScriptItemId - ldrh r1, [r0] - ldr r2, _080951C4 @ =sub_80952E4 - ldr r3, [r3] -_080951AA: - adds r0, r4, 0 - bl _call_via_r3 - b _08095268 - .align 2, 0 -_080951B4: .4byte gUnknown_02038473 -_080951B8: .4byte gPlayerParty -_080951BC: .4byte gUnknown_03004AE4 -_080951C0: .4byte gScriptItemId -_080951C4: .4byte sub_80952E4 -_080951C8: - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_806CA38 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _08095204 @ =gPlayerParty - adds r0, r1 - ldr r1, _08095208 @ =gStringVar1 - bl GetMonNickname - adds r0, r4, 0 - bl sub_806CA38 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_8095050 - ldr r1, _0809520C @ =sub_8095408 - ldr r2, _08095210 @ =sub_8095118 - adds r0, r4, 0 - bl SetTaskFuncWithFollowupFunc - b _08095268 - .align 2, 0 -_08095204: .4byte gPlayerParty -_08095208: .4byte gStringVar1 -_0809520C: .4byte sub_8095408 -_08095210: .4byte sub_8095118 -_08095214: - ldr r5, _08095224 @ =gUnknown_02038473 - ldrb r0, [r5] - cmp r0, 0x1 - bne _08095228 -_0809521C: - movs r0, 0x20 - bl PlaySE - b _08095268 - .align 2, 0 -_08095224: .4byte gUnknown_02038473 -_08095228: - movs r0, 0x5 - bl PlaySE - ldrb r0, [r5] - cmp r0, 0x3 - bne _08095254 - ldr r1, _08095248 @ =gUnknown_0202E8F4 - movs r0, 0 - strb r0, [r1] - ldr r1, _0809524C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08095250 @ =sub_80952E4 - b _08095266 - .align 2, 0 -_08095248: .4byte gUnknown_0202E8F4 -_0809524C: .4byte gTasks -_08095250: .4byte sub_80952E4 -_08095254: - ldr r1, _08095270 @ =gUnknown_0202E8F4 - movs r0, 0 - strb r0, [r1] - ldr r1, _08095274 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08095278 @ =sub_809527C -_08095266: - str r1, [r0] -_08095268: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08095270: .4byte gUnknown_0202E8F4 -_08095274: .4byte gTasks -_08095278: .4byte sub_809527C - thumb_func_end sub_8095118 - - thumb_func_start sub_809527C -sub_809527C: @ 809527C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _080952AC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080952B0 @ =sub_80952B4 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080952AC: .4byte gTasks -_080952B0: .4byte sub_80952B4 - thumb_func_end sub_809527C - - thumb_func_start sub_80952B4 -sub_80952B4: @ 80952B4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080952DC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080952D6 - bl sub_8094D60 - adds r0, r4, 0 - bl DestroyTask - ldr r0, _080952E0 @ =sub_802E414 - bl SetMainCallback2 -_080952D6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080952DC: .4byte gPaletteFade -_080952E0: .4byte sub_802E414 - thumb_func_end sub_80952B4 - - thumb_func_start sub_80952E4 -sub_80952E4: @ 80952E4 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080952FC @ =gUnknown_0202E8F4 - ldrb r1, [r0] - cmp r1, 0 - beq _08095300 - adds r0, r4, 0 - bl sub_809527C - b _0809531E - .align 2, 0 -_080952FC: .4byte gUnknown_0202E8F4 -_08095300: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _08095328 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809532C @ =sub_8095330 - str r1, [r0] -_0809531E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08095328: .4byte gTasks -_0809532C: .4byte sub_8095330 - thumb_func_end sub_80952E4 - - thumb_func_start sub_8095330 -sub_8095330: @ 8095330 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08095358 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08095350 - bl sub_8094D60 - adds r0, r4, 0 - bl DestroyTask - bl sub_80A6DCC -_08095350: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08095358: .4byte gPaletteFade - thumb_func_end sub_8095330 - - thumb_func_start sub_809535C -sub_809535C: @ 809535C - push {lr} - ldr r2, _08095380 @ =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - ldr r2, _08095384 @ =sub_8095118 - movs r0, 0x1 - movs r1, 0xFF - movs r3, 0x5 - bl sub_806AF4C - ldr r0, _08095388 @ =sub_809538C - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08095380: .4byte gPaletteFade -_08095384: .4byte sub_8095118 -_08095388: .4byte sub_809538C - thumb_func_end sub_809535C - - thumb_func_start sub_809538C -sub_809538C: @ 809538C - push {r4,r5,lr} - ldr r4, _080953D8 @ =0x0201b260 - ldr r5, _080953DC @ =gUnknown_020384F0 -_08095392: - bl sub_806B124 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080953F4 - ldrb r0, [r4] - ldrb r1, [r5] - bl sub_806C994 - ldrb r0, [r4] - movs r1, 0 - bl sub_806BF74 - ldrb r1, [r5] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080953E0 @ =gPlayerParty - adds r0, r1 - ldr r1, _080953E4 @ =gStringVar1 - bl GetMonNickname - ldrb r0, [r4] - ldrb r1, [r5] - bl sub_8095050 - ldrb r0, [r4] - ldr r1, _080953E8 @ =sub_8095408 - ldr r2, _080953EC @ =sub_8095118 - bl SetTaskFuncWithFollowupFunc - ldr r0, _080953F0 @ =sub_806AEDC - bl SetMainCallback2 - b _08095400 - .align 2, 0 -_080953D8: .4byte 0x0201b260 -_080953DC: .4byte gUnknown_020384F0 -_080953E0: .4byte gPlayerParty -_080953E4: .4byte gStringVar1 -_080953E8: .4byte sub_8095408 -_080953EC: .4byte sub_8095118 -_080953F0: .4byte sub_806AEDC -_080953F4: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08095392 -_08095400: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_809538C - - thumb_func_start sub_8095408 -sub_8095408: @ 8095408 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - adds r4, r7, 0 - ldr r0, _0809543C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r3, 0x80 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _080954B8 - ldr r2, _08095440 @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08095444 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - b _080954B8 - .align 2, 0 -_0809543C: .4byte gPaletteFade -_08095440: .4byte gMain -_08095444: - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0809545A - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - b _080954B8 -_0809545A: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080954A4 - movs r0, 0x5 - bl PlaySE - ldr r1, _08095498 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldrb r4, [r0, 0x10] - ldr r5, _0809549C @ =gUnknown_083B5FF4 - ldr r6, _080954A0 @ =gUnknown_083B5FCC - bl GetMenuCursorPos - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_806E81C - adds r1, r0, 0 - adds r0, r7, 0 - bl _call_via_r1 - b _080954B8 - .align 2, 0 -_08095498: .4byte gTasks -_0809549C: .4byte gUnknown_083B5FF4 -_080954A0: .4byte gUnknown_083B5FCC -_080954A4: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080954B8 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_80958C4 -_080954B8: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8095408 - - thumb_func_start sub_80954C0 -sub_80954C0: @ 80954C0 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080954D8 @ =gUnknown_0202E8F6 - ldrb r0, [r0] - cmp r0, 0 - bne _080954D4 - adds r0, r1, 0 - bl sub_80958C4 -_080954D4: - pop {r0} - bx r0 - .align 2, 0 -_080954D8: .4byte gUnknown_0202E8F6 - thumb_func_end sub_80954C0 - - thumb_func_start sub_80954DC -sub_80954DC: @ 80954DC - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_806CA38 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0809552C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08095522 - adds r0, r4, 0 - bl DestroyTask - ldr r0, _08095530 @ =0x0201b000 - ldr r1, _08095534 @ =0x00000262 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r0, _08095538 @ =gPlayerParty - ldr r1, _0809553C @ =gPlayerPartyCount - ldrb r2, [r1] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldr r3, _08095540 @ =sub_809535C - movs r1, 0x4 - str r1, [sp] - adds r1, r5, 0 - bl sub_809D8BC -_08095522: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809552C: .4byte gPaletteFade -_08095530: .4byte 0x0201b000 -_08095534: .4byte 0x00000262 -_08095538: .4byte gPlayerParty -_0809553C: .4byte gPlayerPartyCount -_08095540: .4byte sub_809535C - thumb_func_end sub_80954DC - - thumb_func_start sub_8095544 -sub_8095544: @ 8095544 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_806CA38 - ldr r1, _0809557C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08095580 @ =sub_80954DC - str r1, [r0] - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809557C: .4byte gTasks -_08095580: .4byte sub_80954DC - thumb_func_end sub_8095544 - - thumb_func_start sub_8095584 -sub_8095584: @ 8095584 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080955F8 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x10] - ldr r1, _080955FC @ =gUnknown_083B5FF4 - bl sub_806E7D0 - adds r0, r6, 0 - bl sub_806CA38 - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_806B528 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08095610 - cmp r5, 0x1 - beq _080955C6 - cmp r5, 0x4 - beq _080955C6 - cmp r5, 0x5 - bne _08095610 -_080955C6: - bl sub_806D5A4 - ldr r4, _08095600 @ =gStringVar1 - bl sub_8040D08 - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldr r4, _08095604 @ =gStringVar4 - ldr r1, _08095608 @ =gOtherText_CantSwitchPokeWithYours - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_806E834 - ldr r1, _080955F8 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809560C @ =sub_80954C0 - b _0809589A - .align 2, 0 -_080955F8: .4byte gTasks -_080955FC: .4byte gUnknown_083B5FF4 -_08095600: .4byte gStringVar1 -_08095604: .4byte gStringVar4 -_08095608: .4byte gOtherText_CantSwitchPokeWithYours -_0809560C: .4byte sub_80954C0 -_08095610: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08095654 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _0809566C - bl sub_806D5A4 - ldr r1, _08095658 @ =gStringVar1 - adds r0, r4, 0 - bl GetMonNickname - ldr r4, _0809565C @ =gStringVar4 - ldr r1, _08095660 @ =gOtherText_NoEnergyLeft - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_806E834 - ldr r1, _08095664 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _08095668 @ =sub_80954C0 - b _0809589A - .align 2, 0 -_08095654: .4byte gPlayerParty -_08095658: .4byte gStringVar1 -_0809565C: .4byte gStringVar4 -_08095660: .4byte gOtherText_NoEnergyLeft -_08095664: .4byte gTasks -_08095668: .4byte sub_80954C0 -_0809566C: - movs r4, 0 - ldr r0, _08095678 @ =gUnknown_02024A68 - lsls r1, r6, 2 - mov r8, r1 - b _080956A8 - .align 2, 0 -_08095678: .4byte gUnknown_02024A68 -_0809567C: - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080956A0 - adds r0, r5, 0 - bl sub_8094C20 - lsls r0, 24 - ldr r2, _080956EC @ =gUnknown_02024A6A - lsls r1, r4, 1 - adds r1, r2 - lsrs r0, 24 - ldrh r1, [r1] - cmp r0, r1 - bne _080956A0 - b _08095808 -_080956A0: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080956F0 @ =gUnknown_02024A68 -_080956A8: - ldrb r0, [r0] - cmp r4, r0 - bcc _0809567C - movs r2, 0x64 - mov r9, r2 - mov r0, r9 - muls r0, r5 - ldr r1, _080956F4 @ =gPlayerParty - mov r10, r1 - adds r7, r0, r1 - adds r0, r7, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - beq _08095708 - bl sub_806D5A4 - ldr r4, _080956F8 @ =gStringVar4 - ldr r1, _080956FC @ =gOtherText_EGGCantBattle - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_806E834 - ldr r1, _08095700 @ =gTasks - mov r2, r8 - adds r0, r2, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _08095704 @ =sub_80954C0 - b _0809589A - .align 2, 0 -_080956EC: .4byte gUnknown_02024A6A -_080956F0: .4byte gUnknown_02024A68 -_080956F4: .4byte gPlayerParty -_080956F8: .4byte gStringVar4 -_080956FC: .4byte gOtherText_EGGCantBattle -_08095700: .4byte gTasks -_08095704: .4byte sub_80954C0 -_08095708: - adds r0, r5, 0 - bl sub_8094C20 - ldr r1, _0809574C @ =0x02000000 - ldr r2, _08095750 @ =0x0001609d - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bne _08095768 - bl sub_806D5A4 - ldr r1, _08095754 @ =gStringVar1 - adds r0, r7, 0 - bl GetMonNickname - ldr r4, _08095758 @ =gStringVar4 - ldr r1, _0809575C @ =gOtherText_AlreadySelected - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_806E834 - ldr r1, _08095760 @ =gTasks - mov r2, r8 - adds r0, r2, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _08095764 @ =sub_80954C0 - b _0809589A - .align 2, 0 -_0809574C: .4byte 0x02000000 -_08095750: .4byte 0x0001609d -_08095754: .4byte gStringVar1 -_08095758: .4byte gStringVar4 -_0809575C: .4byte gOtherText_AlreadySelected -_08095760: .4byte gTasks -_08095764: .4byte sub_80954C0 -_08095768: - ldr r0, _08095790 @ =gUnknown_02038473 - ldrb r0, [r0] - cmp r0, 0x4 - bne _080957A0 - bl sub_806D5A4 - bl sub_8040B8C - ldr r0, _08095794 @ =gStringVar4 - movs r1, 0 - bl sub_806E834 - ldr r1, _08095798 @ =gTasks - mov r2, r8 - adds r0, r2, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809579C @ =sub_80954C0 - b _0809589A - .align 2, 0 -_08095790: .4byte gUnknown_02038473 -_08095794: .4byte gStringVar4 -_08095798: .4byte gTasks -_0809579C: .4byte sub_80954C0 -_080957A0: - cmp r0, 0x2 - bne _08095854 - ldr r0, _080957EC @ =gUnknown_02024E6C - ldrb r4, [r0] - bl sub_806D5A4 - ldr r0, _080957F0 @ =gUnknown_02024A6A - lsls r4, 1 - adds r4, r0 - ldrb r0, [r4] - bl pokemon_order_func - lsls r0, 24 - lsrs r0, 24 - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - add r0, r10 - ldr r1, _080957F4 @ =gStringVar1 - bl GetMonNickname - ldr r4, _080957F8 @ =gStringVar4 - ldr r1, _080957FC @ =gOtherText_CantBeSwitched - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_806E834 - ldr r1, _08095800 @ =gTasks - mov r2, r8 - adds r0, r2, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _08095804 @ =sub_80954C0 - b _0809589A - .align 2, 0 -_080957EC: .4byte gUnknown_02024E6C -_080957F0: .4byte gUnknown_02024A6A -_080957F4: .4byte gStringVar1 -_080957F8: .4byte gStringVar4 -_080957FC: .4byte gOtherText_CantBeSwitched -_08095800: .4byte gTasks -_08095804: .4byte sub_80954C0 -_08095808: - bl sub_806D5A4 - movs r0, 0x64 - muls r0, r5 - ldr r1, _0809583C @ =gPlayerParty - adds r0, r1 - ldr r1, _08095840 @ =gStringVar1 - bl GetMonNickname - ldr r4, _08095844 @ =gStringVar4 - ldr r1, _08095848 @ =gOtherText_AlreadyBattle - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_806E834 - ldr r1, _0809584C @ =gTasks - mov r2, r8 - adds r0, r2, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _08095850 @ =sub_80954C0 - b _0809589A - .align 2, 0 -_0809583C: .4byte gPlayerParty -_08095840: .4byte gStringVar1 -_08095844: .4byte gStringVar4 -_08095848: .4byte gOtherText_AlreadyBattle -_0809584C: .4byte gTasks -_08095850: .4byte sub_80954C0 -_08095854: - adds r0, r5, 0 - bl sub_8094C20 - ldr r1, _080958AC @ =gUnknown_0202E8F5 - strb r0, [r1] - ldr r1, _080958B0 @ =gUnknown_0202E8F4 - movs r0, 0x1 - strb r0, [r1] - ldr r1, _080958B4 @ =gUnknown_02024A6A - ldr r0, _080958B8 @ =gUnknown_02024E6C - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrb r0, [r0] - bl pokemon_order_func - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8094C98 - mov r0, r9 - muls r0, r4 - add r0, r10 - adds r1, r7, 0 - bl sub_806E6F0 - ldr r1, _080958BC @ =gTasks - mov r2, r8 - adds r0, r2, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _080958C0 @ =sub_809527C -_0809589A: - str r1, [r0] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080958AC: .4byte gUnknown_0202E8F5 -_080958B0: .4byte gUnknown_0202E8F4 -_080958B4: .4byte gUnknown_02024A6A -_080958B8: .4byte gUnknown_02024E6C -_080958BC: .4byte gTasks -_080958C0: .4byte sub_809527C - thumb_func_end sub_8095584 - - thumb_func_start sub_80958C4 -sub_80958C4: @ 80958C4 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - bl sub_8072DEC - ldr r0, _080958FC @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldrb r0, [r4, 0x10] - ldr r1, _08095900 @ =gUnknown_083B5FF4 - bl sub_806E7D0 - ldrh r0, [r4, 0x12] - strh r0, [r4, 0x10] - movs r0, 0 - movs r1, 0 - bl sub_806D538 - adds r0, r5, 0 - bl SwitchTaskToFollowupFunc - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080958FC: .4byte gTasks -_08095900: .4byte gUnknown_083B5FF4 - thumb_func_end sub_80958C4 - - thumb_func_start sub_8095904 -sub_8095904: @ 8095904 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - str r0, [sp] - adds r7, r1, 0 - adds r4, r2, 0 - ldr r0, [sp, 0x3C] - lsls r4, 24 - lsrs r4, 24 - lsls r3, 16 - lsrs r3, 16 - str r3, [sp, 0x4] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - ldr r0, [sp] - bl StringLength - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r4, 0 - bne _08095988 - movs r5, 0 - cmp r5, r8 - bcs _08095A2E -_0809593E: - ldr r1, [sp] - adds r0, r1, r5 - ldrb r2, [r0] - ldr r0, _08095980 @ =0x0000fff0 - ands r0, r2 - lsls r0, 6 - movs r1, 0xF - ands r2, r1 - lsls r2, 5 - adds r0, r2 - ldr r1, _08095984 @ =gFont3LatinGlyphs - adds r4, r0, r1 - adds r0, r4, 0 - adds r1, r7, 0 - movs r2, 0x10 - bl CpuSet - movs r2, 0x80 - lsls r2, 2 - adds r0, r4, r2 - ldr r3, [sp, 0x4] - adds r1, r7, r3 - movs r2, 0x10 - bl CpuSet - adds r7, 0x20 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcc _0809593E - b _08095A2E - .align 2, 0 -_08095980: .4byte 0x0000fff0 -_08095984: .4byte gFont3LatinGlyphs -_08095988: - movs r0, 0 - mov r9, r0 - ldr r1, [sp, 0x8] - lsls r0, r1, 28 - lsrs r0, 24 - str r0, [sp, 0xC] - mov r2, r8 - lsls r0, r2, 21 - movs r1, 0 - lsrs r0, 1 - str r0, [sp, 0x10] -_0809599E: - movs r5, 0 - ldr r3, [sp, 0x4] - adds r3, r7, r3 - str r3, [sp, 0x14] - adds r0, r1, 0x1 - str r0, [sp, 0x18] - cmp r5, r8 - bcs _08095A12 - movs r2, 0xF - mov r12, r2 - lsls r1, 9 - ldr r0, _08095A40 @ =gFont3LatinGlyphs - adds r1, r0 - mov r10, r1 -_080959BA: - ldr r3, [sp] - adds r0, r3, r5 - ldrb r1, [r0] - ldr r0, _08095A44 @ =0x0000fff0 - ands r0, r1 - lsls r0, 6 - mov r2, r12 - ands r1, r2 - lsls r1, 5 - adds r0, r1 - mov r3, r10 - adds r4, r0, r3 - movs r6, 0 - adds r5, 0x1 -_080959D6: - ldrb r0, [r4] - movs r3, 0xF0 - ands r3, r0 - mov r2, r12 - ands r2, r0 - cmp r3, 0 - bne _080959E6 - ldr r3, [sp, 0xC] -_080959E6: - cmp r2, 0 - bne _080959EC - ldr r2, [sp, 0x8] -_080959EC: - mov r0, r9 - adds r1, r0, 0x1 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - ldr r1, [sp, 0x40] - adds r0, r1, r0 - orrs r3, r2 - strb r3, [r0] - adds r4, 0x1 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x1F - bls _080959D6 - lsls r0, r5, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcc _080959BA -_08095A12: - ldr r0, [sp, 0x40] - adds r1, r7, 0 - ldr r3, [sp, 0x10] - lsrs r2, r3, 16 - bl CpuSet - ldr r7, [sp, 0x14] - movs r0, 0 - mov r9, r0 - ldr r1, [sp, 0x18] - lsls r0, r1, 16 - lsrs r1, r0, 16 - cmp r1, 0x1 - bls _0809599E -_08095A2E: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08095A40: .4byte gFont3LatinGlyphs -_08095A44: .4byte 0x0000fff0 - thumb_func_end sub_8095904 - - thumb_func_start unref_sub_8095A48 -unref_sub_8095A48: @ 8095A48 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - lsls r3, 24 - lsrs r7, r3, 24 - movs r6, 0 -_08095A60: - movs r3, 0 - ldrb r0, [r4] - adds r1, r0, 0 - adds r2, r0, 0 - cmp r1, 0xFF - beq _08095ACE -_08095A6C: - mov r0, sp - adds r0, r3 - adds r0, 0x8 - strb r2, [r0] - adds r4, 0x1 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bhi _08095AA8 - ldrb r0, [r4] - adds r1, r0, 0 - adds r2, r0, 0 - cmp r1, 0xFF - bne _08095A6C - cmp r3, 0 - beq _08095ACE - movs r6, 0x1 - cmp r3, 0x3 - bhi _08095AA8 - movs r2, 0 -_08095A96: - adds r0, r3, 0 - adds r1, r0, 0x1 - lsls r1, 16 - lsrs r3, r1, 16 - add r0, sp - adds r0, 0x8 - strb r2, [r0] - cmp r3, 0x3 - bls _08095A96 -_08095AA8: - mov r1, sp - adds r1, r3 - adds r1, 0x8 - movs r0, 0xFF - strb r0, [r1] - str r7, [sp] - ldr r0, [sp, 0x28] - str r0, [sp, 0x4] - add r0, sp, 0x8 - adds r1, r5, 0 - mov r2, r8 - movs r3, 0x80 - bl sub_8095904 - movs r0, 0x80 - lsls r0, 1 - adds r5, r0 - cmp r6, 0 - beq _08095A60 -_08095ACE: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end unref_sub_8095A48 - - thumb_func_start sub_8095ADC -sub_8095ADC: @ 8095ADC - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - movs r4, 0 - movs r5, 0 - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r6, r0, 5 -_08095AF0: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - ldr r1, _08095B20 @ =gUnknown_020300A4 - adds r0, r1 - adds r0, r6, r0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _08095B0C - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_08095B0C: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _08095AF0 - lsls r0, r5, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08095B20: .4byte gUnknown_020300A4 - thumb_func_end sub_8095ADC - - thumb_func_start sub_8095B24 -sub_8095B24: @ 8095B24 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - movs r4, 0 - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r5, r0, 5 -_08095B36: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - ldr r1, _08095B54 @ =gUnknown_020300A4 - adds r0, r1 - adds r0, r5, r0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - bne _08095B58 - lsls r0, r4, 16 - asrs r0, 16 - b _08095B66 - .align 2, 0 -_08095B54: .4byte gUnknown_020300A4 -_08095B58: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _08095B36 - movs r0, 0x1 - negs r0, r0 -_08095B66: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095B24 - - thumb_func_start sub_8095B6C -sub_8095B6C: @ 8095B6C - push {r4-r6,lr} - movs r5, 0 - movs r6, 0 -_08095B72: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08095BB0 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08095B9A - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _08095B9A - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08095B9A: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _08095B72 - lsls r0, r6, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08095BB0: .4byte gPlayerParty - thumb_func_end sub_8095B6C - - thumb_func_start sub_8095BB4 -sub_8095BB4: @ 8095BB4 - push {r4-r7,lr} - lsls r0, 24 - movs r5, 0 - movs r6, 0 - lsrs r7, r0, 24 -_08095BBE: - cmp r5, r7 - beq _08095BF6 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08095C0C @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08095BF6 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _08095BF6 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08095BF6 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08095BF6: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _08095BBE - lsls r0, r6, 24 - lsrs r0, 24 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08095C0C: .4byte gPlayerParty - thumb_func_end sub_8095BB4 - - thumb_func_start sub_8095C10 -sub_8095C10: @ 8095C10 - push {lr} - ldr r0, _08095C24 @ =gSpecialVar_0x8004 - ldrb r0, [r0] - bl sub_8095BB4 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08095C24: .4byte gSpecialVar_0x8004 - thumb_func_end sub_8095C10 - - thumb_func_start sub_8095C28 -sub_8095C28: @ 8095C28 - push {r4,r5,lr} - movs r4, 0 - movs r5, 0 -_08095C2E: - movs r0, 0x64 - muls r0, r4 - ldr r1, _08095C5C @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08095C46 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_08095C46: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x5 - bls _08095C2E - lsls r0, r5, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08095C5C: .4byte gPlayerParty - thumb_func_end sub_8095C28 - - thumb_func_start unref_sub_8095C60 -unref_sub_8095C60: @ 8095C60 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r4, r2, 16 - lsrs r4, 16 - bl StringCopy - adds r1, r0, 0 - adds r5, r4 - cmp r1, r5 - bcs _08095C7E - movs r0, 0 -_08095C76: - strb r0, [r1] - adds r1, 0x1 - cmp r1, r5 - bcc _08095C76 -_08095C7E: - movs r0, 0xFF - strb r0, [r1] - adds r0, r1, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end unref_sub_8095C60 - - thumb_func_start sub_8095C8C -sub_8095C8C: @ 8095C8C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - adds r7, r3, 0 - ldr r5, [sp, 0x1C] - ldr r4, [sp, 0x20] - ldr r0, [sp, 0x24] - mov r9, r0 - ldr r0, [sp, 0x28] - ldr r3, [sp, 0x2C] - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 16 - lsrs r4, 16 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r3, 16 - lsrs r3, 16 - mov r0, r9 - lsls r0, 17 - mov r9, r0 - lsrs r2, 11 - adds r2, r1 - lsls r2, 1 - adds r6, r2 - adds r0, r4, 0 - muls r0, r3 - adds r0, r5 - lsls r0, 1 - adds r7, r0 - movs r4, 0 - cmp r4, r8 - bcs _08095CFC - mov r0, r9 - lsrs r0, 1 - mov r9, r0 - lsls r5, r3, 1 -_08095CE2: - adds r0, r7, 0 - adds r1, r6, 0 - mov r3, r9 - lsrs r2, r3, 16 - bl CpuSet - adds r6, 0x40 - adds r7, r5 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r8 - bcc _08095CE2 -_08095CFC: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8095C8C - - thumb_func_start unref_sub_8095D08 -unref_sub_8095D08: @ 8095D08 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r4, r0, 0 - ldr r0, [sp, 0x28] - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - lsrs r2, 11 - adds r2, r1 - lsls r2, 1 - adds r4, r2 - lsls r3, 17 - lsrs r0, r3, 16 - str r0, [sp, 0x4] - movs r0, 0 - cmp r0, r10 - bcs _08095DB2 - movs r6, 0x80 - lsls r6, 5 - mov r5, sp - ldr r7, _08095D74 @ =0x040000d4 - lsrs r3, 17 - mov r9, r3 - mov r1, r9 - movs r2, 0x81 - lsls r2, 24 - orrs r1, r2 - mov r9, r1 -_08095D4E: - adds r3, r4, 0 - ldr r2, [sp, 0x4] - movs r1, 0x40 - adds r1, r4 - mov r8, r1 - adds r0, 0x1 - mov r12, r0 - cmp r2, r6 - bhi _08095D78 - movs r0, 0 - strh r0, [r5] - mov r2, sp - str r2, [r7] - str r4, [r7, 0x4] - mov r0, r9 - str r0, [r7, 0x8] - ldr r0, [r7, 0x8] - b _08095DA6 - .align 2, 0 -_08095D74: .4byte 0x040000d4 -_08095D78: - movs r4, 0 - strh r4, [r5] - ldr r1, _08095DC4 @ =0x040000d4 - mov r0, sp - str r0, [r1] - str r3, [r1, 0x4] - ldr r0, _08095DC8 @ =0x81000800 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r6 - subs r2, r6 - cmp r2, r6 - bhi _08095D78 - strh r4, [r5] - mov r0, sp - str r0, [r1] - str r3, [r1, 0x4] - lsrs r0, r2, 1 - movs r2, 0x81 - lsls r2, 24 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] -_08095DA6: - mov r4, r8 - mov r1, r12 - lsls r0, r1, 16 - lsrs r0, 16 - cmp r0, r10 - bcc _08095D4E -_08095DB2: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08095DC4: .4byte 0x040000d4 -_08095DC8: .4byte 0x81000800 - thumb_func_end unref_sub_8095D08 - - thumb_func_start sub_8095DCC -sub_8095DCC: @ 8095DCC - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r0, r3, 24 - cmp r0, 0 - beq _08095DE8 - cmp r0, 0x2 - bne _08095DEC -_08095DE8: - movs r2, 0x1 - b _08095DEE -_08095DEC: - ldr r2, _08095E38 @ =0x0000ffff -_08095DEE: - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08095E44 - lsls r0, r1, 24 - asrs r0, 24 - lsls r2, 16 - asrs r1, r2, 16 - adds r1, r0 - lsls r0, r1, 16 - asrs r1, r0, 16 - adds r6, r2, 0 - cmp r1, 0 - blt _08095E90 - cmp r1, r7 - bgt _08095E90 -_08095E10: - asrs r4, r0, 16 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - add r0, r8 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - bne _08095E3C - asrs r0, r6, 16 - adds r0, r4, r0 - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - blt _08095E90 - cmp r2, r7 - ble _08095E10 - b _08095E90 - .align 2, 0 -_08095E38: .4byte 0x0000ffff -_08095E3C: - adds r0, r4, 0 - b _08095E94 -_08095E40: - adds r0, r5, 0 - b _08095E94 -_08095E44: - lsls r0, r1, 24 - asrs r0, 24 - lsls r2, 16 - asrs r1, r2, 16 - adds r1, r0 - lsls r0, r1, 16 - asrs r1, r0, 16 - adds r6, r2, 0 - cmp r1, 0 - blt _08095E90 - cmp r1, r7 - bgt _08095E90 -_08095E5C: - asrs r5, r0, 16 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 4 - mov r1, r8 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _08095E80 - adds r0, r4, 0 - movs r1, 0x2D - bl GetBoxMonData - cmp r0, 0 - beq _08095E40 -_08095E80: - asrs r0, r6, 16 - adds r0, r5, r0 - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - blt _08095E90 - cmp r2, r7 - ble _08095E5C -_08095E90: - movs r0, 0x1 - negs r0, r0 -_08095E94: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8095DCC - - thumb_func_start sub_8095EA0 -sub_8095EA0: @ 8095EA0 - push {lr} - movs r0, 0x2 - movs r1, 0xF - movs r2, 0x1B - movs r3, 0x12 - bl MenuFillWindowRectWithBlankTile - pop {r0} - bx r0 - thumb_func_end sub_8095EA0 - - thumb_func_start sub_8095EB4 -sub_8095EB4: @ 8095EB4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08095ED8 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _08095ECE - b _080960F4 -_08095ECE: - lsls r0, 2 - ldr r1, _08095EDC @ =_08095EE0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08095ED8: .4byte gTasks -_08095EDC: .4byte _08095EE0 - .align 2, 0 -_08095EE0: - .4byte _08095EF4 - .4byte _08095F1C - .4byte _08095F30 - .4byte _08096042 - .4byte _080960DC -_08095EF4: - ldrb r0, [r4, 0xA] - bl sub_8096168 - bl MenuDisplayMessageBox - ldr r1, _08095F18 @ =gUnknown_083B600C - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - b _08095F28 - .align 2, 0 -_08095F18: .4byte gUnknown_083B600C -_08095F1C: - bl sub_807D770 - lsls r0, 24 - cmp r0, 0 - bne _08095F28 - b _080960F4 -_08095F28: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080960F4 -_08095F30: - bl ProcessMenuInput - lsls r0, 24 - asrs r0, 24 - strh r0, [r4, 0xC] - movs r3, 0xC - ldrsh r1, [r4, r3] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08095FC8 - cmp r1, r0 - bgt _08095F52 - subs r0, 0x1 - cmp r1, r0 - beq _08095F58 - b _08095FE8 -_08095F52: - cmp r1, 0x3 - beq _08095FC8 - b _08095FE8 -_08095F58: - ldrh r3, [r4, 0xA] - strh r3, [r4, 0xE] - ldr r2, _08095FC0 @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08095F76 - subs r0, r3, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - cmp r0, 0 - bge _08095F76 - movs r0, 0x3 - strh r0, [r4, 0xE] -_08095F76: - ldrh r1, [r2, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08095F92 - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _08095F92 - movs r0, 0 - strh r0, [r4, 0xE] -_08095F92: - lsls r0, r3, 16 - asrs r0, 16 - ldrh r2, [r4, 0xE] - movs r3, 0xE - ldrsh r1, [r4, r3] - cmp r0, r1 - bne _08095FA2 - b _080960F4 -_08095FA2: - strh r2, [r4, 0xA] - bl sub_8095EA0 - ldr r0, _08095FC4 @ =gUnknown_083B600C - movs r2, 0xA - ldrsh r1, [r4, r2] - lsls r1, 3 - adds r0, 0x4 - adds r1, r0 - ldr r0, [r1] - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - b _080960F4 - .align 2, 0 -_08095FC0: .4byte gMain -_08095FC4: .4byte gUnknown_083B600C -_08095FC8: - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0xD - movs r3, 0x9 - bl MenuZeroFillWindowRect - bl ScriptContext2_Disable - bl EnableBothScriptContexts - adds r0, r5, 0 - bl DestroyTask - b _080960F4 -_08095FE8: - movs r3, 0xC - ldrsh r0, [r4, r3] - cmp r0, 0 - bne _08096008 - bl sub_8095C28 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bne _08096008 - bl sub_8095EA0 - ldr r0, _08096004 @ =gPCText_PartyFull2 - b _08096022 - .align 2, 0 -_08096004: .4byte gPCText_PartyFull2 -_08096008: - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _08096034 - bl sub_8095C28 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08096034 - bl sub_8095EA0 - ldr r0, _08096030 @ =gPCText_OnlyOne -_08096022: - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - movs r0, 0x3 - strh r0, [r4, 0x8] - b _080960F4 - .align 2, 0 -_08096030: .4byte gPCText_OnlyOne -_08096034: - movs r0, 0x1 - movs r1, 0 - bl fade_screen - movs r0, 0x4 - strh r0, [r4, 0x8] - b _080960F4 -_08096042: - ldr r0, _08096088 @ =gMain - ldrh r1, [r0, 0x2E] - movs r3, 0x3 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _080960B8 - movs r0, 0x40 - ands r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _08096090 - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - bge _0809606A - strh r3, [r4, 0xA] -_0809606A: - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] - bl sub_8095EA0 - ldr r1, _0809608C @ =gUnknown_083B600C - movs r3, 0xA - ldrsh r0, [r4, r3] - b _080960C2 - .align 2, 0 -_08096088: .4byte gMain -_0809608C: .4byte gUnknown_083B600C -_08096090: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080960F4 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080960A8 - strh r2, [r4, 0xA] -_080960A8: - movs r0, 0x1 - bl MoveMenuCursor - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] -_080960B8: - bl sub_8095EA0 - ldr r1, _080960D8 @ =gUnknown_083B600C - movs r2, 0xA - ldrsh r0, [r4, r2] -_080960C2: - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - movs r0, 0x2 - strh r0, [r4, 0x8] - b _080960F4 - .align 2, 0 -_080960D8: .4byte gUnknown_083B600C -_080960DC: - ldr r0, _080960FC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080960F4 - ldrb r0, [r4, 0xC] - bl task_intro_29 - adds r0, r5, 0 - bl DestroyTask -_080960F4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080960FC: .4byte gPaletteFade - thumb_func_end sub_8095EB4 - - thumb_func_start sub_8096100 -sub_8096100: @ 8096100 - push {lr} - ldr r0, _08096128 @ =sub_8095EB4 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0809612C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - strh r0, [r1, 0xA] - bl ScriptContext2_Enable - pop {r0} - bx r0 - .align 2, 0 -_08096128: .4byte sub_8095EB4 -_0809612C: .4byte gTasks - thumb_func_end sub_8096100 - - thumb_func_start sub_8096130 -sub_8096130: @ 8096130 - push {lr} - ldr r0, _0809615C @ =sub_8095EB4 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08096160 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - ldr r0, _08096164 @ =gUnknown_02038474 - ldrb r0, [r0] - strh r0, [r1, 0xA] - bl pal_fill_black - pop {r0} - bx r0 - .align 2, 0 -_0809615C: .4byte sub_8095EB4 -_08096160: .4byte gTasks -_08096164: .4byte gUnknown_02038474 - thumb_func_end sub_8096130 - - thumb_func_start sub_8096168 -sub_8096168: @ 8096168 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0xD - movs r3, 0x9 - bl MenuDrawTextWindow - ldr r3, _080961A4 @ =gUnknown_083B600C - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x4 - bl PrintMenuItems - str r4, [sp] - movs r0, 0xC - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x4 - bl InitMenu - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080961A4: .4byte gUnknown_083B600C - thumb_func_end sub_8096168 - - thumb_func_start sub_80961A8 -sub_80961A8: @ 80961A8 - push {lr} - ldr r1, _080961C4 @ =gUnknown_02038474 - ldr r0, _080961C8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldrb r0, [r0, 0x5] - strb r0, [r1] - ldr r1, _080961CC @ =gUnknown_0300485C - ldr r0, _080961D0 @ =sub_8096130 - str r0, [r1] - ldr r0, _080961D4 @ =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080961C4: .4byte gUnknown_02038474 -_080961C8: .4byte gUnknown_083B6DB4 -_080961CC: .4byte gUnknown_0300485C -_080961D0: .4byte sub_8096130 -_080961D4: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_80961A8 - - thumb_func_start sub_80961D8 -sub_80961D8: @ 80961D8 - push {r4-r7,lr} - ldr r1, _08096258 @ =gPokemonStorage - movs r0, 0 - strb r0, [r1] - movs r5, 0 - adds r7, r1, 0x4 -_080961E4: - movs r4, 0 - lsls r1, r5, 2 - adds r1, r5 - lsls r0, r1, 4 - subs r0, r1 - lsls r6, r0, 5 -_080961F0: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - adds r0, r7 - adds r0, r6, r0 - bl ZeroBoxMonData - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _080961F0 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xD - bls _080961E4 - movs r5, 0 -_08096214: - lsls r0, r5, 3 - adds r0, r5 - ldr r6, _0809625C @ =gUnknown_020383E4 - adds r0, r6 - ldr r1, _08096260 @ =gPCText_BOX - bl StringCopy - adds r4, r5, 0x1 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - lsls r4, 16 - lsrs r5, r4, 16 - cmp r5, 0xD - bls _08096214 - movs r5, 0 - adds r3, r6, 0 - adds r3, 0x7E - movs r2, 0x3 -_0809623E: - adds r0, r5, r3 - adds r1, r5, 0 - ands r1, r2 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xD - bls _0809623E - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08096258: .4byte gPokemonStorage -_0809625C: .4byte gUnknown_020383E4 -_08096260: .4byte gPCText_BOX - thumb_func_end sub_80961D8 - - thumb_func_start sub_8096264 -sub_8096264: @ 8096264 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x20 - mov r8, r0 - adds r4, r1, 0 - adds r6, r2, 0 - mov r9, r3 - lsls r4, 16 - lsrs r4, 16 - lsls r6, 16 - lsrs r6, 16 - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, _080962F4 @ =gBoxSelectionPopupPalette - str r0, [sp, 0x18] - ldr r1, _080962F8 @ =0xffff0000 - add r5, sp, 0x18 - ldr r0, [r5, 0x4] - ands r0, r1 - orrs r0, r6 - str r0, [r5, 0x4] - mov r1, sp - ldr r0, _080962FC @ =gBoxSelectionPopupCenterTiles - str r0, [sp] - movs r0, 0x80 - lsls r0, 4 - strh r0, [r1, 0x4] - strh r4, [r1, 0x6] - ldr r0, _08096300 @ =gBoxSelectionPopupSidesTiles - str r0, [sp, 0x8] - movs r0, 0xC0 - lsls r0, 1 - strh r0, [r1, 0xC] - adds r0, r4, 0x1 - strh r0, [r1, 0xE] - add r0, sp, 0x10 - movs r1, 0 - movs r2, 0x8 - bl memset - adds r0, r5, 0 - bl LoadSpritePalette - mov r0, sp - bl LoadSpriteSheets - ldr r0, _08096304 @ =gUnknown_02038478 - mov r1, r8 - str r1, [r0] - movs r0, 0x90 - lsls r0, 2 - add r0, r8 - strh r4, [r0] - ldr r0, _08096308 @ =0x00000242 - add r0, r8 - strh r6, [r0] - ldr r0, _0809630C @ =0x0000023e - add r8, r0 - mov r0, r9 - mov r1, r8 - strb r0, [r1] - add sp, 0x20 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080962F4: .4byte gBoxSelectionPopupPalette -_080962F8: .4byte 0xffff0000 -_080962FC: .4byte gBoxSelectionPopupCenterTiles -_08096300: .4byte gBoxSelectionPopupSidesTiles -_08096304: .4byte gUnknown_02038478 -_08096308: .4byte 0x00000242 -_0809630C: .4byte 0x0000023e - thumb_func_end sub_8096264 - - thumb_func_start sub_8096310 -sub_8096310: @ 8096310 - push {r4,r5,lr} - ldr r4, _08096344 @ =gUnknown_02038478 - ldr r0, [r4] - ldr r1, _08096348 @ =0x00000242 - adds r0, r1 - ldrh r0, [r0] - bl FreeSpritePaletteByTag - ldr r0, [r4] - movs r5, 0x90 - lsls r5, 2 - adds r0, r5 - ldrh r0, [r0] - bl FreeSpriteTilesByTag - ldr r0, [r4] - adds r0, r5 - ldrh r0, [r0] - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - bl FreeSpriteTilesByTag - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08096344: .4byte gUnknown_02038478 -_08096348: .4byte 0x00000242 - thumb_func_end sub_8096310 - - thumb_func_start sub_809634C -sub_809634C: @ 809634C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80963D0 - pop {r0} - bx r0 - thumb_func_end sub_809634C - - thumb_func_start sub_809635C -sub_809635C: @ 809635C - push {lr} - bl sub_809658C - pop {r0} - bx r0 - thumb_func_end sub_809635C - - thumb_func_start sub_8096368 -sub_8096368: @ 8096368 - push {lr} - ldr r0, _08096380 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08096384 - movs r0, 0x5 - bl PlaySE - movs r0, 0xC9 - b _080963CC - .align 2, 0 -_08096380: .4byte gMain -_08096384: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080963A4 - movs r0, 0x5 - bl PlaySE - ldr r0, _080963A0 @ =gUnknown_02038478 - ldr r0, [r0] - movs r1, 0x8F - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - b _080963CC - .align 2, 0 -_080963A0: .4byte gUnknown_02038478 -_080963A4: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080963B8 - movs r0, 0x5 - bl PlaySE - bl sub_809662C - b _080963CA -_080963B8: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080963CA - movs r0, 0x5 - bl PlaySE - bl sub_80965F8 -_080963CA: - movs r0, 0xC8 -_080963CC: - pop {r1} - bx r1 - thumb_func_end sub_8096368 - - thumb_func_start sub_80963D0 -sub_80963D0: @ 80963D0 - push {r4-r6,lr} - sub sp, 0x3C - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0 - movs r1, 0 - str r0, [sp, 0x34] - str r1, [sp, 0x38] - movs r1, 0xC0 - lsls r1, 24 - ldr r0, [sp, 0x34] - orrs r0, r1 - str r0, [sp, 0x34] - ldr r1, _08096564 @ =0xffff0fff - add r4, sp, 0x34 - ldr r0, [r4, 0x4] - ands r0, r1 - movs r1, 0x80 - lsls r1, 5 - orrs r0, r1 - str r0, [r4, 0x4] - add r1, sp, 0x1C - movs r2, 0 - strh r2, [r1] - mov r0, sp - adds r0, 0x1E - strh r2, [r0] - str r4, [sp, 0x20] - ldr r0, _08096568 @ =gDummySpriteAnimTable - str r0, [sp, 0x24] - str r2, [sp, 0x28] - ldr r0, _0809656C @ =gDummySpriteAffineAnimTable - str r0, [sp, 0x2C] - ldr r0, _08096570 @ =SpriteCallbackDummy - str r0, [sp, 0x30] - add r0, sp, 0x4 - movs r2, 0x18 - bl memcpy - ldr r6, _08096574 @ =gUnknown_02038478 - ldr r0, [r6] - movs r1, 0x8F - lsls r1, 2 - adds r0, r1 - strb r5, [r0] - add r2, sp, 0x4 - ldr r1, [r6] - movs r5, 0x90 - lsls r5, 2 - adds r0, r1, r5 - ldrh r0, [r0] - strh r0, [r2] - ldr r3, _08096578 @ =0x00000242 - adds r1, r3 - ldrh r0, [r1] - strh r0, [r2, 0x2] - adds r0, r2, 0 - movs r1, 0xA0 - movs r2, 0x60 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - ldr r3, [r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0809657C @ =gSprites - adds r0, r1 - str r0, [r3] - ldrb r2, [r4, 0x1] - movs r1, 0x3F - adds r0, r1, 0 - ands r0, r2 - movs r2, 0x80 - orrs r0, r2 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - ands r1, r0 - movs r0, 0x40 - orrs r1, r0 - strb r1, [r4, 0x3] - add r1, sp, 0x4 - adds r3, r5 - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r1] - ldr r0, _08096580 @ =gSpriteAnimTable_83B604C - str r0, [sp, 0xC] - movs r4, 0 -_08096488: - ldr r0, [r6] - ldr r1, _08096584 @ =0x0000023e - adds r0, r1 - ldrb r3, [r0] - add r0, sp, 0x4 - movs r1, 0x7C - movs r2, 0x50 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - ldr r2, [r6] - lsls r3, r4, 2 - adds r2, 0x4 - adds r2, r3 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0809657C @ =gSprites - adds r1, r0, r1 - str r1, [r2] - movs r5, 0 - movs r0, 0x2 - ands r0, r4 - cmp r0, 0 - beq _080964C2 - movs r0, 0xC4 - strh r0, [r1, 0x20] - movs r5, 0x2 -_080964C2: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _080964E6 - ldr r1, [r6] - adds r1, 0x4 - adds r1, r3 - ldr r2, [r1] - movs r0, 0x70 - strh r0, [r2, 0x22] - ldr r2, [r1] - ldrb r1, [r2, 0x3] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2, 0x3] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_080964E6: - ldr r0, [r6] - adds r0, 0x4 - adds r0, r3 - ldr r0, [r0] - lsls r1, r5, 24 - lsrs r1, 24 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _08096488 - movs r4, 0 - ldr r5, _08096574 @ =gUnknown_02038478 -_08096504: - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 19 - movs r3, 0xF8 - lsls r3, 15 - adds r0, r3 - lsrs r0, 16 - lsls r2, r4, 24 - lsrs r2, 24 - ldr r1, [r5] - ldr r3, _08096584 @ =0x0000023e - adds r1, r3 - ldrb r1, [r1] - str r1, [sp] - movs r1, 0x58 - movs r3, 0 - bl sub_809A9A0 - adds r2, r0, 0 - ldr r0, [r5] - lsls r1, r4, 2 - adds r0, 0x20 - adds r0, r1 - str r2, [r0] - cmp r2, 0 - beq _0809654C - movs r1, 0x1 - cmp r4, 0 - bne _08096544 - movs r3, 0x1 - negs r3, r3 - adds r1, r3, 0 -_08096544: - strh r1, [r2, 0x2E] - ldr r1, [r0] - ldr r0, _08096588 @ =sub_8096784 - str r0, [r1, 0x1C] -_0809654C: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _08096504 - bl sub_809665C - add sp, 0x3C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08096564: .4byte 0xffff0fff -_08096568: .4byte gDummySpriteAnimTable -_0809656C: .4byte gDummySpriteAffineAnimTable -_08096570: .4byte SpriteCallbackDummy -_08096574: .4byte gUnknown_02038478 -_08096578: .4byte 0x00000242 -_0809657C: .4byte gSprites -_08096580: .4byte gSpriteAnimTable_83B604C -_08096584: .4byte 0x0000023e -_08096588: .4byte sub_8096784 - thumb_func_end sub_80963D0 - - thumb_func_start sub_809658C -sub_809658C: @ 809658C - push {r4-r6,lr} - ldr r4, _080965F4 @ =gUnknown_02038478 - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0 - beq _080965A2 - bl DestroySprite - ldr r1, [r4] - movs r0, 0 - str r0, [r1] -_080965A2: - movs r5, 0 - adds r6, r4, 0 -_080965A6: - ldr r0, [r6] - lsls r4, r5, 2 - adds r0, 0x4 - adds r0, r4 - ldr r0, [r0] - cmp r0, 0 - beq _080965C2 - bl DestroySprite - ldr r0, [r6] - adds r0, 0x4 - adds r0, r4 - movs r1, 0 - str r1, [r0] -_080965C2: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _080965A6 - movs r5, 0 -_080965CE: - ldr r0, _080965F4 @ =gUnknown_02038478 - ldr r0, [r0] - lsls r1, r5, 2 - adds r0, 0x20 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - beq _080965E2 - bl DestroySprite -_080965E2: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080965CE - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080965F4: .4byte gUnknown_02038478 - thumb_func_end sub_809658C - - thumb_func_start sub_80965F8 -sub_80965F8: @ 80965F8 - push {lr} - ldr r2, _08096628 @ =gUnknown_02038478 - ldr r1, [r2] - movs r0, 0x8F - lsls r0, 2 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD - bls _0809661E - ldr r0, [r2] - movs r1, 0x8F - lsls r1, 2 - adds r0, r1 - movs r1, 0 - strb r1, [r0] -_0809661E: - bl sub_809665C - pop {r0} - bx r0 - .align 2, 0 -_08096628: .4byte gUnknown_02038478 - thumb_func_end sub_80965F8 - - thumb_func_start sub_809662C -sub_809662C: @ 809662C - push {lr} - ldr r0, _08096644 @ =gUnknown_02038478 - ldr r2, [r0] - movs r1, 0x8F - lsls r1, 2 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08096648 - subs r1, r0, 0x1 - b _0809664A - .align 2, 0 -_08096644: .4byte gUnknown_02038478 -_08096648: - movs r1, 0xD -_0809664A: - movs r3, 0x8F - lsls r3, 2 - adds r0, r2, r3 - strb r1, [r0] - bl sub_809665C - pop {r0} - bx r0 - thumb_func_end sub_809662C - - thumb_func_start sub_809665C -sub_809665C: @ 809665C - push {r4-r7,lr} - ldr r5, _080966B4 @ =gUnknown_02038478 - ldr r0, [r5] - movs r4, 0x8F - lsls r4, 2 - adds r0, r4 - ldrb r0, [r0] - bl sub_8095ADC - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, _080966B8 @ =gStringVar1 - movs r6, 0xFC - strb r6, [r2] - movs r0, 0x4 - strb r0, [r2, 0x1] - movs r0, 0xF - strb r0, [r2, 0x2] - movs r0, 0x1 - strb r0, [r2, 0x3] - movs r0, 0xE - strb r0, [r2, 0x4] - adds r2, 0x5 - ldr r0, [r5] - adds r0, r4 - ldrb r0, [r0] - lsls r1, r0, 3 - adds r1, r0 - ldr r0, _080966BC @ =gUnknown_020383E4 - adds r1, r0 - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - movs r0, 0xFE - strb r0, [r2] - strb r6, [r2, 0x1] - movs r0, 0x11 - strb r0, [r2, 0x2] - cmp r7, 0x9 - bhi _080966C0 - movs r0, 0x28 - b _080966C2 - .align 2, 0 -_080966B4: .4byte gUnknown_02038478 -_080966B8: .4byte gStringVar1 -_080966BC: .4byte gUnknown_020383E4 -_080966C0: - movs r0, 0x22 -_080966C2: - strb r0, [r2, 0x3] - adds r2, 0x4 - adds r0, r2, 0 - adds r1, r7, 0 - bl ConvertIntToDecimalString - adds r2, r0, 0 - movs r0, 0xBA - strb r0, [r2] - movs r0, 0xA4 - strb r0, [r2, 0x1] - movs r0, 0xA1 - strb r0, [r2, 0x2] - movs r0, 0xFF - strb r0, [r2, 0x3] - ldr r0, _080966F0 @ =gStringVar1 - movs r1, 0 - movs r2, 0x1 - bl sub_80966F4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080966F0: .4byte gStringVar1 - thumb_func_end sub_809665C - - thumb_func_start sub_80966F4 -sub_80966F4: @ 80966F4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - mov r8, r0 - adds r5, r1, 0 - adds r4, r2, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _08096764 @ =gUnknown_02038478 - ldr r0, [r0] - movs r1, 0x90 - lsls r1, 2 - adds r0, r1 - ldrh r0, [r0] - bl GetSpriteTileStartByTag - adds r6, r0, 0 - lsls r6, 16 - lsrs r6, 11 - lsls r4, 8 - ldr r2, _08096768 @ =0x06010000 - adds r4, r2 - adds r6, r4 - lsls r5, 5 - adds r6, r5 - ldr r0, _0809676C @ =gUnknown_083B6DB8 - ldr r5, [r0] - mov r1, sp - ldr r2, _08096770 @ =0x00001111 - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _08096774 @ =0x040000d4 - str r1, [r4] - str r5, [r4, 0x4] - ldr r0, _08096778 @ =0x81000200 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _0809677C @ =gWindowConfig_81E6D38 - adds r1, r5, 0 - mov r2, r8 - bl sub_8004E3C - str r5, [r4] - str r6, [r4, 0x4] - ldr r0, _08096780 @ =0x80000200 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08096764: .4byte gUnknown_02038478 -_08096768: .4byte 0x06010000 -_0809676C: .4byte gUnknown_083B6DB8 -_08096770: .4byte 0x00001111 -_08096774: .4byte 0x040000d4 -_08096778: .4byte 0x81000200 -_0809677C: .4byte gWindowConfig_81E6D38 -_08096780: .4byte 0x80000200 - thumb_func_end sub_80966F4 - - thumb_func_start sub_8096784 -sub_8096784: @ 8096784 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - adds r0, 0x1 - movs r2, 0 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080967B4 - strh r2, [r1, 0x30] - ldrh r0, [r1, 0x2E] - ldrh r3, [r1, 0x24] - adds r0, r3 - strh r0, [r1, 0x24] - ldrh r0, [r1, 0x32] - adds r0, 0x1 - strh r0, [r1, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080967B4 - strh r2, [r1, 0x32] - strh r2, [r1, 0x24] -_080967B4: - pop {r0} - bx r0 - thumb_func_end sub_8096784 - - thumb_func_start task_intro_29 -task_intro_29: @ 80967B8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080967D0 @ =gUnknown_0203847D - strb r0, [r1] - ldr r1, _080967D4 @ =0x02000000 - strb r0, [r1, 0x5] - ldr r0, _080967D8 @ =sub_8096884 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080967D0: .4byte gUnknown_0203847D -_080967D4: .4byte 0x02000000 -_080967D8: .4byte sub_8096884 - thumb_func_end task_intro_29 - - thumb_func_start sub_80967DC -sub_80967DC: @ 80967DC - ldr r0, _08096800 @ =REG_BG0HOFS - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bx lr - .align 2, 0 -_08096800: .4byte REG_BG0HOFS - thumb_func_end sub_80967DC - - thumb_func_start sub_8096804 -sub_8096804: @ 8096804 - push {lr} - bl ResetPaletteFade - bl ResetSpriteData - bl FreeSpriteTileRanges - bl FreeAllSpritePalettes - bl ResetTasks - ldr r1, _0809683C @ =gReservedSpriteTileCount - movs r2, 0xA0 - lsls r2, 2 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08096840 @ =0x02000020 - adds r1, r0, 0 - adds r1, 0x8 - movs r2, 0x8 - bl sub_809CFDC - ldr r1, _08096844 @ =gKeyRepeatStartDelay - movs r0, 0x14 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0809683C: .4byte gReservedSpriteTileCount -_08096840: .4byte 0x02000020 -_08096844: .4byte gKeyRepeatStartDelay - thumb_func_end sub_8096804 - - thumb_func_start sub_8096848 -sub_8096848: @ 8096848 - push {lr} - bl sub_809B0D4 - ldr r2, _08096868 @ =gUnknown_0203847C - movs r1, 0 - ldr r0, _0809686C @ =0x02000000 - ldrb r0, [r0, 0x5] - cmp r0, 0x1 - bne _0809685C - movs r1, 0x1 -_0809685C: - strb r1, [r2] - ldr r1, _08096870 @ =gUnknown_0203847E - movs r0, 0 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08096868: .4byte gUnknown_0203847C -_0809686C: .4byte 0x02000000 -_08096870: .4byte gUnknown_0203847E - thumb_func_end sub_8096848 - - thumb_func_start sub_8096874 -sub_8096874: @ 8096874 - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - bx lr - thumb_func_end sub_8096874 - - thumb_func_start sub_8096884 -sub_8096884: @ 8096884 - push {lr} - ldr r0, _080968A0 @ =gMain - ldr r1, _080968A4 @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x9 - bls _08096894 - b _08096986 -_08096894: - lsls r0, 2 - ldr r1, _080968A8 @ =_080968AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080968A0: .4byte gMain -_080968A4: .4byte 0x0000043c -_080968A8: .4byte _080968AC - .align 2, 0 -_080968AC: - .4byte _080968D4 - .4byte _080968E8 - .4byte _080968F4 - .4byte _08096904 - .4byte _0809690E - .4byte _08096918 - .4byte _0809691E - .4byte _08096924 - .4byte _0809692A - .4byte _08096964 -_080968D4: - movs r0, 0 - bl SetVBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - bl sub_8096804 - b _0809697A -_080968E8: - ldr r0, _080968F0 @ =gWindowConfig_81E6D00 - bl SetUpWindowConfig - b _0809697A - .align 2, 0 -_080968F0: .4byte gWindowConfig_81E6D00 -_080968F4: - ldr r0, _08096900 @ =gWindowConfig_81E6D00 - bl InitMenuWindow - bl MenuZeroFillScreen - b _0809697A - .align 2, 0 -_08096900: .4byte gWindowConfig_81E6D00 -_08096904: - bl sub_80967DC - bl sub_8096848 - b _0809697A -_0809690E: - bl sub_8098B48 - bl sub_809AA24 - b _0809697A -_08096918: - bl sub_8097DE0 - b _0809697A -_0809691E: - bl sub_8097E70 - b _0809697A -_08096924: - bl sub_8098400 - b _0809697A -_0809692A: - ldr r0, _08096950 @ =gPokemonStorage - ldrb r0, [r0] - bl sub_8099BF8 - ldr r2, _08096954 @ =0x02000000 - ldr r1, _08096958 @ =0x000012bc - adds r0, r2, r1 - movs r1, 0xA - strh r1, [r0] - ldr r1, _0809695C @ =0x000012be - adds r2, r1 - ldr r1, _08096960 @ =0x0000dacb - strh r1, [r2] - bl sub_80F727C - bl sub_80F7404 - b _0809697A - .align 2, 0 -_08096950: .4byte gPokemonStorage -_08096954: .4byte 0x02000000 -_08096958: .4byte 0x000012bc -_0809695C: .4byte 0x000012be -_08096960: .4byte 0x0000dacb -_08096964: - bl sub_8096874 - ldr r0, _0809698C @ =sub_8096BF0 - bl sub_8096BE0 - ldr r0, _08096990 @ =sub_8096B38 - bl SetMainCallback2 - ldr r0, _08096994 @ =sub_8096AFC - bl SetVBlankCallback -_0809697A: - ldr r1, _08096998 @ =gMain - ldr r0, _0809699C @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08096986: - pop {r0} - bx r0 - .align 2, 0 -_0809698C: .4byte sub_8096BF0 -_08096990: .4byte sub_8096B38 -_08096994: .4byte sub_8096AFC -_08096998: .4byte gMain -_0809699C: .4byte 0x0000043c - thumb_func_end sub_8096884 - - thumb_func_start sub_80969A0 -sub_80969A0: @ 80969A0 - push {r4,lr} - sub sp, 0x4 - ldr r0, _080969BC @ =gMain - ldr r1, _080969C0 @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xA - bls _080969B2 - b _08096AE4 -_080969B2: - lsls r0, 2 - ldr r1, _080969C4 @ =_080969C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080969BC: .4byte gMain -_080969C0: .4byte 0x0000043c -_080969C4: .4byte _080969C8 - .align 2, 0 -_080969C8: - .4byte _080969F4 - .4byte _08096A34 - .4byte _08096A40 - .4byte _08096A50 - .4byte _08096A56 - .4byte _08096A60 - .4byte _08096A66 - .4byte _08096A6C - .4byte _08096A72 - .4byte _08096AAC - .4byte _08096AC8 -_080969F4: - movs r0, 0 - bl SetVBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - ldr r1, _08096A28 @ =0x02000000 - ldr r0, _08096A2C @ =gUnknown_0203847D - ldrb r0, [r0] - strb r0, [r1, 0x5] - bl sub_8096804 - ldr r4, _08096A30 @ =gUnknown_0203847F - ldrb r0, [r4] - cmp r0, 0x1 - bne _08096A1A - bl sub_809BBC0 -_08096A1A: - ldrb r0, [r4] - cmp r0, 0 - bne _08096AD8 - bl sub_809BD14 - b _08096AD8 - .align 2, 0 -_08096A28: .4byte 0x02000000 -_08096A2C: .4byte gUnknown_0203847D -_08096A30: .4byte gUnknown_0203847F -_08096A34: - ldr r0, _08096A3C @ =gWindowConfig_81E6D00 - bl SetUpWindowConfig - b _08096AD8 - .align 2, 0 -_08096A3C: .4byte gWindowConfig_81E6D00 -_08096A40: - ldr r0, _08096A4C @ =gWindowConfig_81E6D00 - bl InitMenuWindow - bl MenuZeroFillScreen - b _08096AD8 - .align 2, 0 -_08096A4C: .4byte gWindowConfig_81E6D00 -_08096A50: - bl sub_80967DC - b _08096AD8 -_08096A56: - bl sub_8098B48 - bl sub_809AA98 - b _08096AD8 -_08096A60: - bl sub_8097DE0 - b _08096AD8 -_08096A66: - bl sub_8097E70 - b _08096AD8 -_08096A6C: - bl sub_8098400 - b _08096AD8 -_08096A72: - ldr r0, _08096A98 @ =gPokemonStorage - ldrb r0, [r0] - bl sub_8099BF8 - ldr r2, _08096A9C @ =0x02000000 - ldr r1, _08096AA0 @ =0x000012bc - adds r0, r2, r1 - movs r1, 0xA - strh r1, [r0] - ldr r1, _08096AA4 @ =0x000012be - adds r2, r1 - ldr r1, _08096AA8 @ =0x0000dacb - strh r1, [r2] - bl sub_80F727C - bl sub_80F7404 - b _08096AD8 - .align 2, 0 -_08096A98: .4byte gPokemonStorage -_08096A9C: .4byte 0x02000000 -_08096AA0: .4byte 0x000012bc -_08096AA4: .4byte 0x000012be -_08096AA8: .4byte 0x0000dacb -_08096AAC: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _08096AC4 @ =sub_8096AFC - bl SetVBlankCallback - b _08096AD8 - .align 2, 0 -_08096AC4: .4byte sub_8096AFC -_08096AC8: - bl sub_8096874 - ldr r0, _08096AEC @ =sub_8096C68 - bl sub_8096BE0 - ldr r0, _08096AF0 @ =sub_8096B38 - bl SetMainCallback2 -_08096AD8: - ldr r1, _08096AF4 @ =gMain - ldr r0, _08096AF8 @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08096AE4: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08096AEC: .4byte sub_8096C68 -_08096AF0: .4byte sub_8096B38 -_08096AF4: .4byte gMain -_08096AF8: .4byte 0x0000043c - thumb_func_end sub_80969A0 - - thumb_func_start sub_8096AFC -sub_8096AFC: @ 8096AFC - push {lr} - ldr r2, _08096B2C @ =REG_BG2HOFS - ldr r1, _08096B30 @ =0x02000000 - ldr r3, _08096B34 @ =0x000008b4 - adds r0, r1, r3 - ldrh r0, [r0] - strh r0, [r2] - adds r2, 0x4 - ldrh r0, [r1, 0xA] - strh r0, [r2] - adds r2, 0x2 - ldrh r0, [r1, 0x8] - strh r0, [r2] - bl LoadOam - bl ProcessSpriteCopyRequests - bl sub_809CFF0 - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 -_08096B2C: .4byte REG_BG2HOFS -_08096B30: .4byte 0x02000000 -_08096B34: .4byte 0x000008b4 - thumb_func_end sub_8096AFC - - thumb_func_start sub_8096B38 -sub_8096B38: @ 8096B38 - push {lr} - ldr r0, _08096B58 @ =0x02000000 - ldr r0, [r0] - bl _call_via_r0 - bl sub_8097E44 - bl sub_8098734 - bl AnimateSprites - bl BuildOamBuffer - pop {r0} - bx r0 - .align 2, 0 -_08096B58: .4byte 0x02000000 - thumb_func_end sub_8096B38 - - thumb_func_start sub_8096B5C -sub_8096B5C: @ 8096B5C - push {r4,r5,lr} - sub sp, 0x8 - ldr r4, _08096B70 @ =0x02000000 - ldrb r0, [r4, 0x6] - cmp r0, 0 - beq _08096B74 - cmp r0, 0x1 - beq _08096BAC - b _08096BCC - .align 2, 0 -_08096B70: .4byte 0x02000000 -_08096B74: - ldr r1, _08096B98 @ =0x00002690 - adds r0, r4, r1 - ldr r0, [r0] - ldr r2, _08096B9C @ =0x0000268d - adds r1, r4, r2 - ldrb r1, [r1] - ldr r3, _08096BA0 @ =0x0000268c - adds r2, r4, r3 - ldrb r2, [r2] - ldr r3, _08096BA4 @ =sub_80969A0 - ldr r5, _08096BA8 @ =0x0000268e - adds r4, r5 - ldrb r4, [r4] - str r4, [sp] - bl sub_809D8BC - b _08096BCC - .align 2, 0 -_08096B98: .4byte 0x00002690 -_08096B9C: .4byte 0x0000268d -_08096BA0: .4byte 0x0000268c -_08096BA4: .4byte sub_80969A0 -_08096BA8: .4byte 0x0000268e -_08096BAC: - ldr r0, _08096BD4 @ =gPokemonStorage - ldrb r2, [r0] - lsls r1, r2, 3 - adds r1, r2 - ldr r2, _08096BD8 @ =0x00008344 - adds r0, r2 - adds r1, r0 - movs r0, 0 - str r0, [sp] - ldr r0, _08096BDC @ =sub_80969A0 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl DoNamingScreen -_08096BCC: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08096BD4: .4byte gPokemonStorage -_08096BD8: .4byte 0x00008344 -_08096BDC: .4byte sub_80969A0 - thumb_func_end sub_8096B5C - - thumb_func_start sub_8096BE0 -sub_8096BE0: @ 8096BE0 - ldr r1, _08096BEC @ =0x02000000 - str r0, [r1] - movs r0, 0 - strb r0, [r1, 0x4] - bx lr - .align 2, 0 -_08096BEC: .4byte 0x02000000 - thumb_func_end sub_8096BE0 - - thumb_func_start sub_8096BF0 -sub_8096BF0: @ 8096BF0 - push {r4,lr} - ldr r4, _08096C04 @ =0x02000000 - ldrb r0, [r4, 0x4] - cmp r0, 0x1 - beq _08096C16 - cmp r0, 0x1 - bgt _08096C08 - cmp r0, 0 - beq _08096C0E - b _08096C5C - .align 2, 0 -_08096C04: .4byte 0x02000000 -_08096C08: - cmp r0, 0x2 - beq _08096C4C - b _08096C5C -_08096C0E: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - b _08096C38 -_08096C16: - movs r0, 0x2 - bl PlaySE - movs r1, 0 - movs r0, 0xE - strh r0, [r4, 0xC] - ldr r0, _08096C48 @ =0x0000dad0 - strh r0, [r4, 0xE] - strh r1, [r4, 0x10] - strh r1, [r4, 0x12] - adds r0, r4, 0 - adds r0, 0xC - bl sub_80C5CD4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 -_08096C38: - movs r2, 0 - bl BlendPalettes - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08096C5C - .align 2, 0 -_08096C48: .4byte 0x0000dad0 -_08096C4C: - bl sub_80C5DCC - lsls r0, 24 - cmp r0, 0 - beq _08096C5C - ldr r0, _08096C64 @ =sub_8096C84 - bl sub_8096BE0 -_08096C5C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08096C64: .4byte sub_8096C84 - thumb_func_end sub_8096BF0 - - thumb_func_start sub_8096C68 -sub_8096C68: @ 8096C68 - push {lr} - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08096C7A - ldr r0, _08096C80 @ =sub_8096C84 - bl sub_8096BE0 -_08096C7A: - pop {r0} - bx r0 - .align 2, 0 -_08096C80: .4byte sub_8096C84 - thumb_func_end sub_8096C68 - - thumb_func_start sub_8096C84 -sub_8096C84: @ 8096C84 - push {r4,lr} - ldr r0, _08096C9C @ =0x02000000 - ldrb r0, [r0, 0x4] - cmp r0, 0x6 - bls _08096C90 - b _08096FBA -_08096C90: - lsls r0, 2 - ldr r1, _08096CA0 @ =_08096CA4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08096C9C: .4byte 0x02000000 -_08096CA0: .4byte _08096CA4 - .align 2, 0 -_08096CA4: - .4byte _08096CC0 - .4byte _08096EE0 - .4byte _08096F1C - .4byte _08096F60 - .4byte _08096F80 - .4byte _08096F8A - .4byte _08096FA4 -_08096CC0: - bl sub_809CA40 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - cmp r0, 0xF - bls _08096CD0 - b _08096FBA -_08096CD0: - lsls r0, 2 - ldr r1, _08096CDC @ =_08096CE0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08096CDC: .4byte _08096CE0 - .align 2, 0 -_08096CE0: - .4byte _08096D20 - .4byte _08096FBA - .4byte _08096FBA - .4byte _08096D94 - .4byte _08096D34 - .4byte _08096D5C - .4byte _08096DAC - .4byte _08096DC0 - .4byte _08096DD4 - .4byte _08096DFC - .4byte _08096E30 - .4byte _08096EB8 - .4byte _08096E70 - .4byte _08096E8C - .4byte _08096ECC - .4byte _08096DA0 -_08096D20: - movs r0, 0x5 - bl PlaySE - ldr r1, _08096D30 @ =0x02000000 - movs r0, 0x1 - strb r0, [r1, 0x4] - b _08096FBA - .align 2, 0 -_08096D30: .4byte 0x02000000 -_08096D34: - ldr r4, _08096D48 @ =0x02000000 - ldrb r0, [r4, 0x5] - cmp r0, 0x2 - beq _08096D4C - movs r0, 0x10 - bl sub_8098898 - movs r0, 0x3 - strb r0, [r4, 0x4] - b _08096FBA - .align 2, 0 -_08096D48: .4byte 0x02000000 -_08096D4C: - bl sub_809B0D4 - ldr r0, _08096D58 @ =sub_8096FC8 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096D58: .4byte sub_8096FC8 -_08096D5C: - ldr r4, _08096D88 @ =0x02000000 - ldrb r0, [r4, 0x5] - cmp r0, 0x2 - beq _08096D66 - b _08096FBA -_08096D66: - bl sub_809BF20 - lsls r0, 24 - cmp r0, 0 - beq _08096D80 - ldr r1, _08096D8C @ =0x000011f2 - adds r0, r4, r1 - ldrh r0, [r0] - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - bne _08096E4C -_08096D80: - ldr r0, _08096D90 @ =sub_8097004 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096D88: .4byte 0x02000000 -_08096D8C: .4byte 0x000011f2 -_08096D90: .4byte sub_8097004 -_08096D94: - ldr r0, _08096D9C @ =sub_8097BA0 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096D9C: .4byte sub_8097BA0 -_08096DA0: - ldr r0, _08096DA8 @ =sub_8097CC0 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096DA8: .4byte sub_8097CC0 -_08096DAC: - movs r0, 0x5 - bl PlaySE - ldr r0, _08096DBC @ =sub_809789C - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096DBC: .4byte sub_809789C -_08096DC0: - movs r0, 0x5 - bl PlaySE - ldr r0, _08096DD0 @ =sub_8097078 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096DD0: .4byte sub_8097078 -_08096DD4: - movs r0, 0x5 - bl PlaySE - ldr r4, _08096DF0 @ =0x02000000 - ldr r0, _08096DF4 @ =gPokemonStorage - ldrb r0, [r0] - adds r0, 0x1 - ldr r2, _08096DF8 @ =0x000008b2 - adds r1, r4, r2 - strh r0, [r1] - cmp r0, 0xD - ble _08096E18 - movs r0, 0 - b _08096E16 - .align 2, 0 -_08096DF0: .4byte 0x02000000 -_08096DF4: .4byte gPokemonStorage -_08096DF8: .4byte 0x000008b2 -_08096DFC: - movs r0, 0x5 - bl PlaySE - ldr r4, _08096E24 @ =0x02000000 - ldr r0, _08096E28 @ =gPokemonStorage - ldrb r0, [r0] - subs r0, 0x1 - ldr r2, _08096E2C @ =0x000008b2 - adds r1, r4, r2 - strh r0, [r1] - cmp r0, 0 - bge _08096E18 - movs r0, 0xD -_08096E16: - strh r0, [r1] -_08096E18: - ldrb r0, [r1] - bl sub_8099C70 - movs r0, 0x2 - strb r0, [r4, 0x4] - b _08096FBA - .align 2, 0 -_08096E24: .4byte 0x02000000 -_08096E28: .4byte gPokemonStorage -_08096E2C: .4byte 0x000008b2 -_08096E30: - bl sub_809BE80 - lsls r0, 24 - cmp r0, 0 - bne _08096E96 - ldr r4, _08096E54 @ =0x02000000 - ldr r1, _08096E58 @ =0x000011f2 - adds r0, r4, r1 - ldrh r0, [r0] - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - beq _08096E5C -_08096E4C: - movs r0, 0x5 - strb r0, [r4, 0x4] - b _08096FBA - .align 2, 0 -_08096E54: .4byte 0x02000000 -_08096E58: .4byte 0x000011f2 -_08096E5C: - movs r0, 0x5 - bl PlaySE - ldr r0, _08096E6C @ =sub_809746C - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096E6C: .4byte sub_809746C -_08096E70: - bl sub_809BE80 - lsls r0, 24 - cmp r0, 0 - bne _08096E96 - movs r0, 0x5 - bl PlaySE - ldr r0, _08096E88 @ =sub_80972A8 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096E88: .4byte sub_80972A8 -_08096E8C: - bl sub_809BEBC - lsls r0, 24 - cmp r0, 0 - bne _08096EA4 -_08096E96: - ldr r1, _08096EA0 @ =0x02000000 - movs r0, 0x4 - strb r0, [r1, 0x4] - b _08096FBA - .align 2, 0 -_08096EA0: .4byte 0x02000000 -_08096EA4: - movs r0, 0x5 - bl PlaySE - ldr r0, _08096EB4 @ =c3_0808DC50 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096EB4: .4byte c3_0808DC50 -_08096EB8: - movs r0, 0x5 - bl PlaySE - ldr r0, _08096EC8 @ =sub_8097390 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096EC8: .4byte sub_8097390 -_08096ECC: - movs r0, 0x5 - bl PlaySE - ldr r0, _08096EDC @ =sub_80972FC - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096EDC: .4byte sub_80972FC -_08096EE0: - bl sub_809AC00 - lsls r0, 24 - cmp r0, 0 - bne _08096FBA - bl sub_809BF48 - lsls r0, 24 - cmp r0, 0 - beq _08096EFA - bl sub_80986E8 - b _08096EFE -_08096EFA: - bl sub_8098710 -_08096EFE: - ldr r4, _08096F14 @ =0x02000000 - ldr r2, _08096F18 @ =0x000011f6 - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _08096F0E - bl BoxSetMosaic -_08096F0E: - movs r0, 0 - strb r0, [r4, 0x4] - b _08096FBA - .align 2, 0 -_08096F14: .4byte 0x02000000 -_08096F18: .4byte 0x000011f6 -_08096F1C: - bl sub_8099D34 - lsls r0, 24 - cmp r0, 0 - bne _08096FBA - ldr r1, _08096F50 @ =gPokemonStorage - ldr r0, _08096F54 @ =0x02000000 - ldr r2, _08096F58 @ =0x000008b2 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1] - ldr r0, _08096F5C @ =gUnknown_0203847C - ldrb r0, [r0] - cmp r0, 0 - bne _08096F70 - bl sub_809BF20 - lsls r0, 24 - cmp r0, 0 - bne _08096F70 - bl sub_809B440 - bl BoxSetMosaic - b _08096F70 - .align 2, 0 -_08096F50: .4byte gPokemonStorage -_08096F54: .4byte 0x02000000 -_08096F58: .4byte 0x000008b2 -_08096F5C: .4byte gUnknown_0203847C -_08096F60: - ldr r0, _08096F78 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _08096FBA - bl sub_8098A5C -_08096F70: - ldr r1, _08096F7C @ =0x02000000 - movs r0, 0 - strb r0, [r1, 0x4] - b _08096FBA - .align 2, 0 -_08096F78: .4byte gMain -_08096F7C: .4byte 0x02000000 -_08096F80: - movs r0, 0x20 - bl PlaySE - movs r0, 0xD - b _08096F92 -_08096F8A: - movs r0, 0x20 - bl PlaySE - movs r0, 0x16 -_08096F92: - bl sub_8098898 - ldr r1, _08096FA0 @ =0x02000000 - movs r0, 0x6 - strb r0, [r1, 0x4] - b _08096FBA - .align 2, 0 -_08096FA0: .4byte 0x02000000 -_08096FA4: - ldr r0, _08096FC0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _08096FBA - bl sub_8098A5C - ldr r0, _08096FC4 @ =sub_8096C84 - bl sub_8096BE0 -_08096FBA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08096FC0: .4byte gMain -_08096FC4: .4byte sub_8096C84 - thumb_func_end sub_8096C84 - - thumb_func_start sub_8096FC8 -sub_8096FC8: @ 8096FC8 - push {r4,lr} - ldr r4, _08096FD8 @ =0x02000000 - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _08096FDC - cmp r0, 0x1 - beq _08096FE8 - b _08096FF8 - .align 2, 0 -_08096FD8: .4byte 0x02000000 -_08096FDC: - bl sub_809880C - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08096FF8 -_08096FE8: - bl sub_8098830 - lsls r0, 24 - cmp r0, 0 - bne _08096FF8 - ldr r0, _08097000 @ =sub_8096C84 - bl sub_8096BE0 -_08096FF8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097000: .4byte sub_8096C84 - thumb_func_end sub_8096FC8 - - thumb_func_start sub_8097004 -sub_8097004: @ 8097004 - push {r4,lr} - ldr r4, _08097018 @ =0x02000000 - ldrb r0, [r4, 0x4] - cmp r0, 0x1 - beq _0809702E - cmp r0, 0x1 - bgt _0809701C - cmp r0, 0 - beq _08097022 - b _0809706A - .align 2, 0 -_08097018: .4byte 0x02000000 -_0809701C: - cmp r0, 0x2 - beq _0809704C - b _0809706A -_08097022: - movs r0, 0x5 - bl PlaySE - bl add_to_c3_somehow - b _08097044 -_0809702E: - bl sub_80985CC - lsls r0, 24 - cmp r0, 0 - bne _0809706A - bl sub_809B0F4 - lsls r0, 24 - lsrs r0, 24 - bl sub_809B0C0 -_08097044: - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _0809706A -_0809704C: - bl sub_809AC00 - lsls r0, 24 - cmp r0, 0 - bne _0809706A - ldr r1, _08097070 @ =0x000011f6 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08097064 - bl BoxSetMosaic -_08097064: - ldr r0, _08097074 @ =sub_8096C84 - bl sub_8096BE0 -_0809706A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097070: .4byte 0x000011f6 -_08097074: .4byte sub_8096C84 - thumb_func_end sub_8097004 - - thumb_func_start sub_8097078 -sub_8097078: @ 8097078 - push {r4,lr} - ldr r0, _08097090 @ =0x02000000 - ldrb r0, [r0, 0x4] - cmp r0, 0x5 - bls _08097084 - b _0809729A -_08097084: - lsls r0, 2 - ldr r1, _08097094 @ =_08097098 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08097090: .4byte 0x02000000 -_08097094: .4byte _08097098 - .align 2, 0 -_08097098: - .4byte _080970B0 - .4byte _080970C8 - .4byte _08097258 - .4byte _0809726C - .4byte _08097262 - .4byte _08097284 -_080970B0: - movs r0, 0x4 - bl sub_8098898 - bl sub_809CE84 - ldr r1, _080970C4 @ =0x02000000 - movs r0, 0x1 - strb r0, [r1, 0x4] - b _0809729A - .align 2, 0 -_080970C4: .4byte 0x02000000 -_080970C8: - bl sub_809CF30 - adds r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x9 - bls _080970D8 - b _0809729A -_080970D8: - lsls r0, 2 - ldr r1, _080970E4 @ =_080970E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080970E4: .4byte _080970E8 - .align 2, 0 -_080970E8: - .4byte _08097110 - .4byte _08097110 - .4byte _08097190 - .4byte _08097178 - .4byte _08097120 - .4byte _08097158 - .4byte _08097140 - .4byte _08097230 - .4byte _080971CC - .4byte _08097244 -_08097110: - bl sub_8098A5C - ldr r0, _0809711C @ =sub_8096C84 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_0809711C: .4byte sub_8096C84 -_08097120: - bl sub_809BE80 - lsls r0, 24 - cmp r0, 0 - bne _080971D6 - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _0809713C @ =sub_80972A8 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_0809713C: .4byte sub_80972A8 -_08097140: - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _08097154 @ =sub_80972FC - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_08097154: .4byte sub_80972FC -_08097158: - bl sub_809BEBC - lsls r0, 24 - cmp r0, 0 - beq _080971D6 - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _08097174 @ =c3_0808DC50 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_08097174: .4byte c3_0808DC50 -_08097178: - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _0809718C @ =sub_8097390 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_0809718C: .4byte sub_8097390 -_08097190: - bl sub_809BE80 - lsls r0, 24 - cmp r0, 0 - bne _080971D6 - ldr r4, _080971C0 @ =0x02000000 - ldr r1, _080971C4 @ =0x000011f2 - adds r0, r4, r1 - ldrh r0, [r0] - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - bne _08097210 - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _080971C8 @ =sub_809746C - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_080971C0: .4byte 0x02000000 -_080971C4: .4byte 0x000011f2 -_080971C8: .4byte sub_809746C -_080971CC: - bl sub_809BE80 - lsls r0, 24 - cmp r0, 0 - beq _080971E4 -_080971D6: - ldr r1, _080971E0 @ =0x02000000 - movs r0, 0x2 - strb r0, [r1, 0x4] - b _0809729A - .align 2, 0 -_080971E0: .4byte 0x02000000 -_080971E4: - ldr r4, _080971F8 @ =0x02000000 - ldr r1, _080971FC @ =0x000011f9 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08097200 - movs r0, 0x4 - strb r0, [r4, 0x4] - b _0809729A - .align 2, 0 -_080971F8: .4byte 0x02000000 -_080971FC: .4byte 0x000011f9 -_08097200: - ldr r1, _08097218 @ =0x000011f2 - adds r0, r4, r1 - ldrh r0, [r0] - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - beq _0809721C -_08097210: - movs r0, 0x3 - strb r0, [r4, 0x4] - b _0809729A - .align 2, 0 -_08097218: .4byte 0x000011f2 -_0809721C: - movs r0, 0x5 - bl PlaySE - ldr r0, _0809722C @ =sub_8097594 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_0809722C: .4byte sub_8097594 -_08097230: - movs r0, 0x5 - bl PlaySE - ldr r0, _08097240 @ =sub_8097788 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_08097240: .4byte sub_8097788 -_08097244: - movs r0, 0x5 - bl PlaySE - ldr r0, _08097254 @ =sub_80977E4 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_08097254: .4byte sub_80977E4 -_08097258: - movs r0, 0x20 - bl PlaySE - movs r0, 0xD - b _08097274 -_08097262: - movs r0, 0x20 - bl PlaySE - movs r0, 0x11 - b _08097274 -_0809726C: - movs r0, 0x20 - bl PlaySE - movs r0, 0x16 -_08097274: - bl sub_8098898 - ldr r1, _08097280 @ =0x02000000 - movs r0, 0x5 - strb r0, [r1, 0x4] - b _0809729A - .align 2, 0 -_08097280: .4byte 0x02000000 -_08097284: - ldr r0, _080972A0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _0809729A - bl sub_8098A5C - ldr r0, _080972A4 @ =sub_8096C84 - bl sub_8096BE0 -_0809729A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080972A0: .4byte gMain -_080972A4: .4byte sub_8096C84 - thumb_func_end sub_8097078 - - thumb_func_start sub_80972A8 -sub_80972A8: @ 80972A8 - push {r4,lr} - ldr r4, _080972B8 @ =0x02000000 - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _080972BC - cmp r0, 0x1 - beq _080972CA - b _080972F2 - .align 2, 0 -_080972B8: .4byte 0x02000000 -_080972BC: - movs r0, 0 - bl sub_809B100 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _080972F2 -_080972CA: - bl sub_809B130 - lsls r0, 24 - cmp r0, 0 - bne _080972F2 - ldr r0, _080972E4 @ =gUnknown_0203847C - ldrb r0, [r0] - cmp r0, 0 - beq _080972EC - ldr r0, _080972E8 @ =sub_8097858 - bl sub_8096BE0 - b _080972F2 - .align 2, 0 -_080972E4: .4byte gUnknown_0203847C -_080972E8: .4byte sub_8097858 -_080972EC: - ldr r0, _080972F8 @ =sub_8096C84 - bl sub_8096BE0 -_080972F2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080972F8: .4byte sub_8096C84 - thumb_func_end sub_80972A8 - - thumb_func_start sub_80972FC -sub_80972FC: @ 80972FC - push {r4,lr} - ldr r4, _0809730C @ =0x02000000 - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _08097310 - cmp r0, 0x1 - beq _0809731E - b _08097346 - .align 2, 0 -_0809730C: .4byte 0x02000000 -_08097310: - movs r0, 0x1 - bl sub_809B100 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097346 -_0809731E: - bl sub_809B130 - lsls r0, 24 - cmp r0, 0 - bne _08097346 - ldr r0, _08097338 @ =gUnknown_0203847C - ldrb r0, [r0] - cmp r0, 0 - beq _08097340 - ldr r0, _0809733C @ =sub_8097858 - bl sub_8096BE0 - b _08097346 - .align 2, 0 -_08097338: .4byte gUnknown_0203847C -_0809733C: .4byte sub_8097858 -_08097340: - ldr r0, _0809734C @ =sub_8096C84 - bl sub_8096BE0 -_08097346: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809734C: .4byte sub_8096C84 - thumb_func_end sub_80972FC - - thumb_func_start c3_0808DC50 -c3_0808DC50: @ 8097350 - push {r4,lr} - ldr r4, _08097360 @ =0x02000000 - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _08097364 - cmp r0, 0x1 - beq _08097372 - b _08097386 - .align 2, 0 -_08097360: .4byte 0x02000000 -_08097364: - movs r0, 0x2 - bl sub_809B100 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097386 -_08097372: - bl sub_809B130 - lsls r0, 24 - cmp r0, 0 - bne _08097386 - bl BoxSetMosaic - ldr r0, _0809738C @ =sub_8096C84 - bl sub_8096BE0 -_08097386: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809738C: .4byte sub_8096C84 - thumb_func_end c3_0808DC50 - - thumb_func_start sub_8097390 -sub_8097390: @ 8097390 - push {lr} - ldr r0, _080973A4 @ =0x02000000 - ldrb r0, [r0, 0x4] - cmp r0, 0x5 - bhi _08097462 - lsls r0, 2 - ldr r1, _080973A8 @ =_080973AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080973A4: .4byte 0x02000000 -_080973A8: .4byte _080973AC - .align 2, 0 -_080973AC: - .4byte _080973C4 - .4byte _080973FC - .4byte _0809741C - .4byte _0809742C - .4byte _0809743E - .4byte _0809745C -_080973C4: - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bne _080973E4 - movs r0, 0xE - bl sub_8098898 - ldr r1, _080973E0 @ =0x02000000 - movs r0, 0x1 - strb r0, [r1, 0x4] - b _08097462 - .align 2, 0 -_080973E0: .4byte 0x02000000 -_080973E4: - bl sub_809B0E0 - movs r0, 0 - bl sub_809B100 - ldr r1, _080973F8 @ =0x02000000 - movs r0, 0x2 - strb r0, [r1, 0x4] - b _08097462 - .align 2, 0 -_080973F8: .4byte 0x02000000 -_080973FC: - ldr r0, _08097414 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _08097462 - bl sub_8098A5C - ldr r0, _08097418 @ =sub_8096C84 - bl sub_8096BE0 - b _08097462 - .align 2, 0 -_08097414: .4byte gMain -_08097418: .4byte sub_8096C84 -_0809741C: - bl sub_809B130 - lsls r0, 24 - cmp r0, 0 - bne _08097462 - bl sub_809880C - b _0809744C -_0809742C: - bl sub_8098830 - lsls r0, 24 - cmp r0, 0 - bne _08097462 - movs r0, 0x1 - bl sub_809B100 - b _0809744C -_0809743E: - bl sub_809B130 - lsls r0, 24 - cmp r0, 0 - bne _08097462 - bl sub_80987DC -_0809744C: - ldr r1, _08097458 @ =0x02000000 - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _08097462 - .align 2, 0 -_08097458: .4byte 0x02000000 -_0809745C: - ldr r0, _08097468 @ =sub_8097004 - bl sub_8096BE0 -_08097462: - pop {r0} - bx r0 - .align 2, 0 -_08097468: .4byte sub_8097004 - thumb_func_end sub_8097390 - - thumb_func_start sub_809746C -sub_809746C: @ 809746C - push {r4,lr} - ldr r0, _08097484 @ =0x02000000 - ldrb r0, [r0, 0x4] - cmp r0, 0x4 - bls _08097478 - b _08097584 -_08097478: - lsls r0, 2 - ldr r1, _08097488 @ =_0809748C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08097484: .4byte 0x02000000 -_08097488: .4byte _0809748C - .align 2, 0 -_0809748C: - .4byte _080974A0 - .4byte _080974D8 - .4byte _08097534 - .4byte _08097548 - .4byte _0809756C -_080974A0: - movs r0, 0x6 - bl sub_8098898 - ldr r4, _080974C8 @ =0x02002370 - ldr r2, _080974CC @ =0x0000daca - adds r0, r4, 0 - movs r1, 0x7 - movs r3, 0x3 - bl sub_8096264 - ldr r0, _080974D0 @ =gUnknown_0203847E - ldrb r0, [r0] - bl sub_809634C - ldr r0, _080974D4 @ =0xffffdc90 - adds r4, r0 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097584 - .align 2, 0 -_080974C8: .4byte 0x02002370 -_080974CC: .4byte 0x0000daca -_080974D0: .4byte gUnknown_0203847E -_080974D4: .4byte 0xffffdc90 -_080974D8: - bl sub_8096368 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xC8 - beq _08097584 - cmp r4, 0xC9 - bne _080974F6 - bl sub_8098A5C - bl sub_809635C - bl sub_8096310 - b _0809755E -_080974F6: - adds r0, r4, 0 - bl sub_809B62C - lsls r0, 24 - cmp r0, 0 - beq _08097518 - bl sub_8098A5C - bl sub_809635C - bl sub_8096310 - ldr r1, _08097514 @ =0x02000000 - movs r0, 0x2 - b _08097522 - .align 2, 0 -_08097514: .4byte 0x02000000 -_08097518: - movs r0, 0x8 - bl sub_8098898 - ldr r1, _0809752C @ =0x02000000 - movs r0, 0x4 -_08097522: - strb r0, [r1, 0x4] - ldr r0, _08097530 @ =gUnknown_0203847E - strb r4, [r0] - b _08097584 - .align 2, 0 -_0809752C: .4byte 0x02000000 -_08097530: .4byte gUnknown_0203847E -_08097534: - bl party_compaction - bl sub_8099310 - ldr r1, _08097544 @ =0x02000000 - ldrb r0, [r1, 0x4] - adds r0, 0x1 - b _08097582 - .align 2, 0 -_08097544: .4byte 0x02000000 -_08097548: - bl sub_8099374 - lsls r0, 24 - cmp r0, 0 - bne _08097584 - bl sub_809B6BC - bl BoxSetMosaic - bl sub_80987DC -_0809755E: - ldr r0, _08097568 @ =sub_8096C84 - bl sub_8096BE0 - b _08097584 - .align 2, 0 -_08097568: .4byte sub_8096C84 -_0809756C: - ldr r0, _0809758C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08097584 - movs r0, 0x6 - bl sub_8098898 - ldr r1, _08097590 @ =0x02000000 - movs r0, 0x1 -_08097582: - strb r0, [r1, 0x4] -_08097584: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809758C: .4byte gMain -_08097590: .4byte 0x02000000 - thumb_func_end sub_809746C - - thumb_func_start sub_8097594 -sub_8097594: @ 8097594 - push {r4,lr} - ldr r0, _080975AC @ =0x02000000 - ldrb r0, [r0, 0x4] - cmp r0, 0xD - bls _080975A0 - b _0809777A -_080975A0: - lsls r0, 2 - ldr r1, _080975B0 @ =_080975B4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080975AC: .4byte 0x02000000 -_080975B0: .4byte _080975B4 - .align 2, 0 -_080975B4: - .4byte _080975EC - .4byte _08097600 - .4byte _0809763A - .4byte _0809766E - .4byte _0809767A - .4byte _08097690 - .4byte _080976C8 - .4byte _080976E0 - .4byte _080976EC - .4byte _080976F0 - .4byte _08097704 - .4byte _08097720 - .4byte _08097732 - .4byte _08097764 -_080975EC: - movs r0, 0x9 - bl sub_8098898 - movs r0, 0x1 - bl sub_8098A38 - ldr r1, _0809761C @ =0x02000000 - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] -_08097600: - bl ProcessMenuInputNoWrap - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _0809762C - cmp r1, 0 - bgt _08097620 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08097626 - b _0809777A - .align 2, 0 -_0809761C: .4byte 0x02000000 -_08097620: - cmp r1, 0x1 - beq _08097626 - b _0809777A -_08097626: - bl sub_8098A5C - b _080976E0 -_0809762C: - bl sub_8098A5C - bl sub_809B7D4 - bl sub_809B6DC - b _08097744 -_0809763A: - bl sub_809B960 - bl sub_809B734 - lsls r0, 24 - cmp r0, 0 - beq _0809764A - b _0809777A -_0809764A: - ldr r4, _08097650 @ =0x02000000 - b _0809765A - .align 2, 0 -_08097650: .4byte 0x02000000 -_08097654: - cmp r0, 0 - bne _0809765A - b _08097758 -_0809765A: - bl sub_809B960 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _08097654 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _0809777A -_0809766E: - bl sub_809B760 - bl sub_809801C - movs r0, 0xA - b _08097740 -_0809767A: - ldr r0, _0809768C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08097688 - b _0809777A -_08097688: - movs r0, 0xB - b _08097740 - .align 2, 0 -_0809768C: .4byte gMain -_08097690: - ldr r0, _080976B4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0809777A - bl sub_8098A5C - ldr r0, _080976B8 @ =gUnknown_0203847C - ldrb r0, [r0] - cmp r0, 0 - beq _080976BC - bl party_compaction - bl sub_8099310 - b _08097744 - .align 2, 0 -_080976B4: .4byte gMain -_080976B8: .4byte gUnknown_0203847C -_080976BC: - ldr r1, _080976C4 @ =0x02000000 - movs r0, 0x7 - strb r0, [r1, 0x4] - b _0809777A - .align 2, 0 -_080976C4: .4byte 0x02000000 -_080976C8: - bl sub_8099374 - lsls r0, 24 - cmp r0, 0 - bne _0809777A - bl sub_809B440 - bl BoxSetMosaic - bl sub_80987DC - b _08097744 -_080976E0: - ldr r0, _080976E8 @ =sub_8096C84 - bl sub_8096BE0 - b _0809777A - .align 2, 0 -_080976E8: .4byte sub_8096C84 -_080976EC: - movs r0, 0xA - b _08097740 -_080976F0: - ldr r0, _08097700 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0809777A - movs r0, 0x15 - b _08097740 - .align 2, 0 -_08097700: .4byte gMain -_08097704: - ldr r0, _0809771C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0809777A - bl sub_8098A5C - bl sub_8099958 - b _08097744 - .align 2, 0 -_0809771C: .4byte gMain -_08097720: - bl sub_8099990 - lsls r0, 24 - cmp r0, 0 - bne _0809777A - bl sub_809B7AC - movs r0, 0x13 - b _08097740 -_08097732: - ldr r0, _08097750 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0809777A - movs r0, 0x14 -_08097740: - bl sub_8098898 -_08097744: - ldr r1, _08097754 @ =0x02000000 - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _0809777A - .align 2, 0 -_08097750: .4byte gMain -_08097754: .4byte 0x02000000 -_08097758: - ldr r1, _08097760 @ =0x02000000 - movs r0, 0x8 - strb r0, [r1, 0x4] - b _0809777A - .align 2, 0 -_08097760: .4byte 0x02000000 -_08097764: - ldr r0, _08097780 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0809777A - bl sub_8098A5C - ldr r0, _08097784 @ =sub_8096C84 - bl sub_8096BE0 -_0809777A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097780: .4byte gMain -_08097784: .4byte sub_8096C84 - thumb_func_end sub_8097594 - - thumb_func_start sub_8097788 -sub_8097788: @ 8097788 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _0809779C @ =0x02000000 - ldrb r4, [r5, 0x4] - cmp r4, 0 - beq _080977A0 - cmp r4, 0x1 - beq _080977BC - b _080977D4 - .align 2, 0 -_0809779C: .4byte 0x02000000 -_080977A0: - bl sub_809BC18 - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrb r0, [r5, 0x4] - adds r0, 0x1 - strb r0, [r5, 0x4] - b _080977D4 -_080977BC: - bl UpdatePaletteFade - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080977D4 - ldr r0, _080977DC @ =gUnknown_0203847F - strb r1, [r0] - strb r1, [r5, 0x6] - ldr r0, _080977E0 @ =sub_8096B5C - bl SetMainCallback2 -_080977D4: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080977DC: .4byte gUnknown_0203847F -_080977E0: .4byte sub_8096B5C - thumb_func_end sub_8097788 - - thumb_func_start sub_80977E4 -sub_80977E4: @ 80977E4 - push {r4,lr} - ldr r4, _080977F4 @ =0x02000000 - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _080977F8 - cmp r0, 0x1 - beq _08097824 - b _0809784C - .align 2, 0 -_080977F4: .4byte 0x02000000 -_080977F8: - movs r0, 0xC - bl sub_8098898 - ldr r0, _08097820 @ =0x000011f7 - adds r2, r4, r0 - ldrb r1, [r2] - movs r3, 0x96 - lsls r3, 5 - adds r0, r4, r3 - strb r1, [r0] - ldrb r0, [r2] - movs r1, 0xB0 - movs r2, 0x10 - bl sub_80F7418 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _0809784C - .align 2, 0 -_08097820: .4byte 0x000011f7 -_08097824: - bl sub_80F7500 - lsls r0, 24 - cmp r0, 0 - bne _0809784C - bl sub_80F7470 - bl sub_8098A5C - movs r1, 0x96 - lsls r1, 5 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_809BDD8 - bl sub_809801C - ldr r0, _08097854 @ =sub_8096C84 - bl sub_8096BE0 -_0809784C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097854: .4byte sub_8096C84 - thumb_func_end sub_80977E4 - - thumb_func_start sub_8097858 -sub_8097858: @ 8097858 - push {r4,lr} - ldr r4, _08097868 @ =0x02000000 - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _0809786C - cmp r0, 0x1 - beq _0809787C - b _08097890 - .align 2, 0 -_08097868: .4byte 0x02000000 -_0809786C: - bl party_compaction - bl sub_8099310 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097890 -_0809787C: - bl sub_8099374 - lsls r0, 24 - cmp r0, 0 - bne _08097890 - bl sub_80987DC - ldr r0, _08097898 @ =sub_8096C84 - bl sub_8096BE0 -_08097890: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097898: .4byte sub_8096C84 - thumb_func_end sub_8097858 - - thumb_func_start sub_809789C -sub_809789C: @ 809789C - push {r4,lr} - ldr r4, _080978AC @ =0x02000000 - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _080978B0 - cmp r0, 0x1 - beq _080978C2 - b _08097968 - .align 2, 0 -_080978AC: .4byte 0x02000000 -_080978B0: - movs r0, 0x1 - bl sub_8098898 - bl sub_809CE84 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097968 -_080978C2: - bl sub_809CF30 - adds r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - bhi _08097968 - lsls r0, 2 - ldr r1, _080978DC @ =_080978E0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080978DC: .4byte _080978E0 - .align 2, 0 -_080978E0: - .4byte _08097914 - .4byte _08097914 - .4byte _08097968 - .4byte _08097968 - .4byte _08097968 - .4byte _08097968 - .4byte _08097968 - .4byte _08097968 - .4byte _08097968 - .4byte _08097968 - .4byte _08097958 - .4byte _08097940 - .4byte _0809792C -_08097914: - movs r0, 0x1 - bl sub_809A860 - bl sub_8098A5C - ldr r0, _08097928 @ =sub_8096C84 - bl sub_8096BE0 - b _08097968 - .align 2, 0 -_08097928: .4byte sub_8096C84 -_0809792C: - movs r0, 0x5 - bl PlaySE - ldr r0, _0809793C @ =sub_8097B44 - bl sub_8096BE0 - b _08097968 - .align 2, 0 -_0809793C: .4byte sub_8097B44 -_08097940: - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _08097954 @ =sub_8097974 - bl sub_8096BE0 - b _08097968 - .align 2, 0 -_08097954: .4byte sub_8097974 -_08097958: - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _08097970 @ =sub_8097A64 - bl sub_8096BE0 -_08097968: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097970: .4byte sub_8097A64 - thumb_func_end sub_809789C - - thumb_func_start sub_8097974 -sub_8097974: @ 8097974 - push {r4,r5,lr} - ldr r5, _08097988 @ =0x02000000 - ldrb r0, [r5, 0x4] - cmp r0, 0x1 - beq _080979A2 - cmp r0, 0x1 - bgt _0809798C - cmp r0, 0 - beq _08097996 - b _08097A5A - .align 2, 0 -_08097988: .4byte 0x02000000 -_0809798C: - cmp r0, 0x2 - beq _080979FC - cmp r0, 0x3 - beq _08097A44 - b _08097A5A -_08097996: - bl sub_8098A80 - movs r0, 0x2 - bl sub_8098898 - b _08097A3C -_080979A2: - bl sub_809CF30 - ldr r1, _080979CC @ =0x00000d5e - adds r4, r5, r1 - strh r0, [r4] - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080979D4 - movs r0, 0x1 - bl sub_809A860 - bl sub_8098A5C - ldr r0, _080979D0 @ =sub_8096C84 - bl sub_8096BE0 - b _08097A5A - .align 2, 0 -_080979CC: .4byte 0x00000d5e -_080979D0: .4byte sub_8096C84 -_080979D4: - cmp r0, r1 - blt _08097A5A - cmp r0, 0xF - bgt _08097A5A - cmp r0, 0xC - blt _08097A5A - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4] - subs r0, 0xC - strh r0, [r4] - lsls r0, 24 - lsrs r0, 24 - bl sub_8098AA8 - movs r0, 0x3 - bl sub_8098898 - b _08097A3C -_080979FC: - bl sub_809CF30 - movs r1, 0xD6 - lsls r1, 4 - adds r4, r5, r1 - strh r0, [r4] - movs r0, 0 - ldrsh r1, [r4, r0] - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _08097A5A - adds r0, 0x1 - cmp r1, r0 - bne _08097A24 - bl sub_8098A5C - movs r0, 0 - strb r0, [r5, 0x4] - b _08097A5A -_08097A24: - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldrh r0, [r4] - subs r0, 0x10 - strh r0, [r4] - lsls r0, 24 - lsrs r0, 24 - bl sub_8099DCC -_08097A3C: - ldrb r0, [r5, 0x4] - adds r0, 0x1 - strb r0, [r5, 0x4] - b _08097A5A -_08097A44: - bl sub_8099E08 - lsls r0, 24 - cmp r0, 0 - bne _08097A5A - movs r0, 0x1 - bl sub_809A860 - ldr r0, _08097A60 @ =sub_8096C84 - bl sub_8096BE0 -_08097A5A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08097A60: .4byte sub_8096C84 - thumb_func_end sub_8097974 - - thumb_func_start sub_8097A64 -sub_8097A64: @ 8097A64 - push {r4,r5,lr} - ldr r5, _08097A78 @ =0x02000000 - ldrb r0, [r5, 0x4] - cmp r0, 0x1 - beq _08097AB0 - cmp r0, 0x1 - bgt _08097A7C - cmp r0, 0 - beq _08097A86 - b _08097B32 - .align 2, 0 -_08097A78: .4byte 0x02000000 -_08097A7C: - cmp r0, 0x2 - beq _08097B00 - cmp r0, 0x3 - beq _08097B18 - b _08097B32 -_08097A86: - movs r0, 0x5 - bl sub_8098898 - ldr r1, _08097AA4 @ =0x00002370 - adds r0, r5, r1 - ldr r2, _08097AA8 @ =0x0000daca - movs r1, 0x7 - movs r3, 0x3 - bl sub_8096264 - ldr r0, _08097AAC @ =gPokemonStorage - ldrb r0, [r0] - bl sub_809634C - b _08097B0A - .align 2, 0 -_08097AA4: .4byte 0x00002370 -_08097AA8: .4byte 0x0000daca -_08097AAC: .4byte gPokemonStorage -_08097AB0: - bl sub_8096368 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08097AF4 @ =0x000008b2 - adds r4, r5, r2 - strh r0, [r4] - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0xC8 - beq _08097B32 - bl sub_8098A5C - bl sub_809635C - bl sub_8096310 - movs r2, 0 - ldrsh r0, [r4, r2] - cmp r0, 0xC9 - beq _08097AE4 - adds r1, r0, 0 - ldr r0, _08097AF8 @ =gPokemonStorage - ldrb r0, [r0] - cmp r1, r0 - bne _08097B0A -_08097AE4: - movs r0, 0x1 - bl sub_809A860 - ldr r0, _08097AFC @ =sub_8096C84 - bl sub_8096BE0 - b _08097B32 - .align 2, 0 -_08097AF4: .4byte 0x000008b2 -_08097AF8: .4byte gPokemonStorage -_08097AFC: .4byte sub_8096C84 -_08097B00: - ldr r1, _08097B14 @ =0x000008b2 - adds r0, r5, r1 - ldrb r0, [r0] - bl sub_8099C70 -_08097B0A: - ldrb r0, [r5, 0x4] - adds r0, 0x1 - strb r0, [r5, 0x4] - b _08097B32 - .align 2, 0 -_08097B14: .4byte 0x000008b2 -_08097B18: - bl sub_8099D34 - lsls r0, 24 - cmp r0, 0 - bne _08097B32 - ldr r1, _08097B38 @ =gPokemonStorage - ldr r2, _08097B3C @ =0x000008b2 - adds r0, r5, r2 - ldrh r0, [r0] - strb r0, [r1] - ldr r0, _08097B40 @ =sub_8096C84 - bl sub_8096BE0 -_08097B32: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08097B38: .4byte gPokemonStorage -_08097B3C: .4byte 0x000008b2 -_08097B40: .4byte sub_8096C84 - thumb_func_end sub_8097A64 - - thumb_func_start sub_8097B44 -sub_8097B44: @ 8097B44 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _08097B58 @ =0x02000000 - ldrb r4, [r5, 0x4] - cmp r4, 0 - beq _08097B5C - cmp r4, 0x1 - beq _08097B78 - b _08097B8E - .align 2, 0 -_08097B58: .4byte 0x02000000 -_08097B5C: - bl sub_809BB90 - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrb r0, [r5, 0x4] - adds r0, 0x1 - strb r0, [r5, 0x4] - b _08097B8E -_08097B78: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08097B8E - ldr r0, _08097B98 @ =gUnknown_0203847F - strb r4, [r0] - strb r4, [r5, 0x6] - ldr r0, _08097B9C @ =sub_8096B5C - bl SetMainCallback2 -_08097B8E: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08097B98: .4byte gUnknown_0203847F -_08097B9C: .4byte sub_8096B5C - thumb_func_end sub_8097B44 - - thumb_func_start sub_8097BA0 -sub_8097BA0: @ 8097BA0 - push {r4,lr} - ldr r0, _08097BB8 @ =0x02000000 - ldrb r1, [r0, 0x4] - adds r4, r0, 0 - cmp r1, 0x4 - bls _08097BAE - b _08097CB0 -_08097BAE: - lsls r0, r1, 2 - ldr r1, _08097BBC @ =_08097BC0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08097BB8: .4byte 0x02000000 -_08097BBC: .4byte _08097BC0 - .align 2, 0 -_08097BC0: - .4byte _08097BD4 - .4byte _08097C18 - .4byte _08097C2C - .4byte _08097C74 - .4byte _08097C98 -_08097BD4: - bl sub_809BF20 - lsls r0, 24 - cmp r0, 0 - beq _08097BF8 - movs r0, 0x20 - bl PlaySE - movs r0, 0xF - bl sub_8098898 - ldr r1, _08097BF4 @ =0x02000000 - movs r0, 0x1 - strb r0, [r1, 0x4] - b _08097CB0 - .align 2, 0 -_08097BF4: .4byte 0x02000000 -_08097BF8: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_8098898 - movs r0, 0 - bl sub_8098A38 - ldr r1, _08097C14 @ =0x02000000 - movs r0, 0x2 - strb r0, [r1, 0x4] - b _08097CB0 - .align 2, 0 -_08097C14: .4byte 0x02000000 -_08097C18: - ldr r0, _08097C28 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _08097CB0 - b _08097C4A - .align 2, 0 -_08097C28: .4byte gMain -_08097C2C: - bl ProcessMenuInputNoWrap - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _08097C5C - cmp r1, 0 - bgt _08097C46 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08097C4A - b _08097CB0 -_08097C46: - cmp r1, 0x1 - bne _08097CB0 -_08097C4A: - bl sub_8098A5C - ldr r0, _08097C58 @ =sub_8096C84 - bl sub_8096BE0 - b _08097CB0 - .align 2, 0 -_08097C58: .4byte sub_8096C84 -_08097C5C: - movs r0, 0x3 - bl PlaySE - bl sub_8098A5C - ldr r1, _08097C70 @ =0x02000000 - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _08097CB0 - .align 2, 0 -_08097C70: .4byte 0x02000000 -_08097C74: - movs r1, 0 - movs r0, 0xE - strh r0, [r4, 0xC] - ldr r0, _08097C94 @ =0x0000dad0 - strh r0, [r4, 0xE] - movs r0, 0x14 - strh r0, [r4, 0x10] - strh r1, [r4, 0x12] - adds r0, r4, 0 - adds r0, 0xC - bl sub_80C5E38 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097CB0 - .align 2, 0 -_08097C94: .4byte 0x0000dad0 -_08097C98: - bl sub_80C5F98 - lsls r0, 24 - cmp r0, 0 - beq _08097CB0 - bl CalculatePlayerPartyCount - ldr r1, _08097CB8 @ =gPlayerPartyCount - strb r0, [r1] - ldr r0, _08097CBC @ =sub_80961A8 - bl SetMainCallback2 -_08097CB0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097CB8: .4byte gPlayerPartyCount -_08097CBC: .4byte sub_80961A8 - thumb_func_end sub_8097BA0 - - thumb_func_start sub_8097CC0 -sub_8097CC0: @ 8097CC0 - push {r4,lr} - ldr r0, _08097CD8 @ =0x02000000 - ldrb r1, [r0, 0x4] - adds r4, r0, 0 - cmp r1, 0x4 - bls _08097CCE - b _08097DD0 -_08097CCE: - lsls r0, r1, 2 - ldr r1, _08097CDC @ =_08097CE0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08097CD8: .4byte 0x02000000 -_08097CDC: .4byte _08097CE0 - .align 2, 0 -_08097CE0: - .4byte _08097CF4 - .4byte _08097D38 - .4byte _08097D4C - .4byte _08097D94 - .4byte _08097DB8 -_08097CF4: - bl sub_809BF20 - lsls r0, 24 - cmp r0, 0 - beq _08097D18 - movs r0, 0x20 - bl PlaySE - movs r0, 0xF - bl sub_8098898 - ldr r1, _08097D14 @ =0x02000000 - movs r0, 0x1 - strb r0, [r1, 0x4] - b _08097DD0 - .align 2, 0 -_08097D14: .4byte 0x02000000 -_08097D18: - movs r0, 0x5 - bl PlaySE - movs r0, 0x12 - bl sub_8098898 - movs r0, 0 - bl sub_8098A38 - ldr r1, _08097D34 @ =0x02000000 - movs r0, 0x2 - strb r0, [r1, 0x4] - b _08097DD0 - .align 2, 0 -_08097D34: .4byte 0x02000000 -_08097D38: - ldr r0, _08097D48 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _08097DD0 - b _08097D6C - .align 2, 0 -_08097D48: .4byte gMain -_08097D4C: - bl ProcessMenuInputNoWrap - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _08097D6C - cmp r1, 0 - bgt _08097D66 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08097D7C - b _08097DD0 -_08097D66: - cmp r1, 0x1 - beq _08097D7C - b _08097DD0 -_08097D6C: - bl sub_8098A5C - ldr r0, _08097D78 @ =sub_8096C84 - bl sub_8096BE0 - b _08097DD0 - .align 2, 0 -_08097D78: .4byte sub_8096C84 -_08097D7C: - movs r0, 0x3 - bl PlaySE - bl sub_8098A5C - ldr r1, _08097D90 @ =0x02000000 - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _08097DD0 - .align 2, 0 -_08097D90: .4byte 0x02000000 -_08097D94: - movs r1, 0 - movs r0, 0xE - strh r0, [r4, 0xC] - ldr r0, _08097DB4 @ =0x0000dad0 - strh r0, [r4, 0xE] - movs r0, 0x14 - strh r0, [r4, 0x10] - strh r1, [r4, 0x12] - adds r0, r4, 0 - adds r0, 0xC - bl sub_80C5E38 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097DD0 - .align 2, 0 -_08097DB4: .4byte 0x0000dad0 -_08097DB8: - bl sub_80C5F98 - lsls r0, 24 - cmp r0, 0 - beq _08097DD0 - bl CalculatePlayerPartyCount - ldr r1, _08097DD8 @ =gPlayerPartyCount - strb r0, [r1] - ldr r0, _08097DDC @ =sub_80961A8 - bl SetMainCallback2 -_08097DD0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097DD8: .4byte gPlayerPartyCount -_08097DDC: .4byte sub_80961A8 - thumb_func_end sub_8097CC0 - - thumb_func_start sub_8097DE0 -sub_8097DE0: @ 8097DE0 - push {lr} - ldr r1, _08097E1C @ =0x02000000 - movs r0, 0 - strb r0, [r1, 0x7] - strh r0, [r1, 0x8] - strh r0, [r1, 0xA] - ldr r1, _08097E20 @ =REG_BG3CNT - ldr r2, _08097E24 @ =0x00001e0f - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _08097E28 @ =gPokemonStorageScrollingBGTile - ldr r2, _08097E2C @ =0x0600e000 - ldr r0, _08097E30 @ =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _08097E34 @ =0x80000010 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r0, _08097E38 @ =gPokemonStorageScrollingBGTilemap - ldr r1, _08097E3C @ =0x0600f000 - bl LZ77UnCompVram - ldr r0, _08097E40 @ =gPokemonStorageScrollingBGPalette - movs r1, 0xD0 - movs r2, 0x10 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_08097E1C: .4byte 0x02000000 -_08097E20: .4byte REG_BG3CNT -_08097E24: .4byte 0x00001e0f -_08097E28: .4byte gPokemonStorageScrollingBGTile -_08097E2C: .4byte 0x0600e000 -_08097E30: .4byte 0x040000d4 -_08097E34: .4byte 0x80000010 -_08097E38: .4byte gPokemonStorageScrollingBGTilemap -_08097E3C: .4byte 0x0600f000 -_08097E40: .4byte gPokemonStorageScrollingBGPalette - thumb_func_end sub_8097DE0 - - thumb_func_start sub_8097E44 -sub_8097E44: @ 8097E44 - push {lr} - ldr r1, _08097E6C @ =0x02000000 - ldrb r0, [r1, 0x7] - adds r0, 0x1 - strb r0, [r1, 0x7] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _08097E66 - movs r0, 0 - strb r0, [r1, 0x7] - ldrh r0, [r1, 0x8] - subs r0, 0x1 - strh r0, [r1, 0x8] - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] -_08097E66: - pop {r0} - bx r0 - .align 2, 0 -_08097E6C: .4byte 0x02000000 - thumb_func_end sub_8097E44 - - thumb_func_start sub_8097E70 -sub_8097E70: @ 8097E70 - push {r4,lr} - sub sp, 0x10 - ldr r0, _08097F2C @ =gPSSMenuHeader_Gfx - ldr r1, _08097F30 @ =0x06005000 - bl LZ77UnCompVram - ldr r0, _08097F34 @ =gPSSMenuHeader_Tilemap - ldr r4, _08097F38 @ =gUnknown_02039760 - adds r1, r4, 0 - bl LZ77UnCompWram - ldr r0, _08097F3C @ =0x06007800 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0xA - str r1, [sp, 0x8] - movs r1, 0x14 - str r1, [sp, 0xC] - movs r1, 0 - movs r2, 0 - adds r3, r4, 0 - bl sub_809D034 - ldr r0, _08097F40 @ =gPSSMenu1_Pal - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08097F44 @ =gPSSMenu2_Pal - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08097F48 @ =gUnknown_083B6D74 - movs r1, 0xB0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08097F4C @ =gUnknown_083B6D94 - movs r1, 0xC0 - movs r2, 0x20 - bl LoadPalette - ldr r4, _08097F50 @ =gUnknownPalette_81E6692+0x2 - adds r0, r4, 0 - movs r1, 0xF1 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - movs r1, 0xF2 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - adds r0, 0x8 - movs r1, 0xF3 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - adds r0, 0x16 - movs r1, 0xF4 - movs r2, 0x4 - bl LoadPalette - adds r0, r4, 0 - adds r0, 0x12 - movs r1, 0xF6 - movs r2, 0x4 - bl LoadPalette - adds r4, 0x2 - adds r0, r4, 0 - movs r1, 0xFF - movs r2, 0x2 - bl LoadPalette - ldr r0, _08097F54 @ =gWaveformSpritePalette - bl LoadSpritePalette - bl sub_80980D4 - bl sub_8097F58 - bl sub_8097FB8 - bl sub_809801C - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097F2C: .4byte gPSSMenuHeader_Gfx -_08097F30: .4byte 0x06005000 -_08097F34: .4byte gPSSMenuHeader_Tilemap -_08097F38: .4byte gUnknown_02039760 -_08097F3C: .4byte 0x06007800 -_08097F40: .4byte gPSSMenu1_Pal -_08097F44: .4byte gPSSMenu2_Pal -_08097F48: .4byte gUnknown_083B6D74 -_08097F4C: .4byte gUnknown_083B6D94 -_08097F50: .4byte gUnknownPalette_81E6692+0x2 -_08097F54: .4byte gWaveformSpritePalette - thumb_func_end sub_8097E70 - - thumb_func_start sub_8097F58 -sub_8097F58: @ 8097F58 - push {r4,lr} - ldr r1, _08097FA4 @ =0x0000dace - movs r0, 0xD - movs r2, 0 - bl sub_80F7940 - ldr r4, _08097FA8 @ =0x02000000 - ldr r1, _08097FAC @ =0x000012ac - adds r3, r4, r1 - str r0, [r3] - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - strb r1, [r0, 0x5] - ldr r0, [r3] - adds r0, 0x43 - movs r1, 0x1 - strb r1, [r0] - ldr r1, [r3] - movs r0, 0x28 - strh r0, [r1, 0x20] - ldr r1, [r3] - movs r0, 0x95 - strh r0, [r1, 0x22] - movs r0, 0xD - bl GetSpriteTileStartByTag - ldr r1, _08097FB0 @ =0x000012b8 - adds r4, r1 - lsls r0, 16 - lsrs r0, 11 - ldr r1, _08097FB4 @ =0x06010000 - adds r0, r1 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097FA4: .4byte 0x0000dace -_08097FA8: .4byte 0x02000000 -_08097FAC: .4byte 0x000012ac -_08097FB0: .4byte 0x000012b8 -_08097FB4: .4byte 0x06010000 - thumb_func_end sub_8097F58 - - thumb_func_start sub_8097FB8 -sub_8097FB8: @ 8097FB8 - push {r4,r5,lr} - sub sp, 0x8 - ldr r0, _0809800C @ =gWaveformSpriteSheet - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - movs r4, 0 - ldr r5, _08098010 @ =0x020012b0 -_08097FD0: - lsls r1, r4, 6 - subs r1, r4 - adds r1, 0x8 - lsls r1, 16 - asrs r1, 16 - ldr r0, _08098014 @ =gSpriteTemplate_83B6EFC - movs r2, 0x9 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r2, r4, 2 - adds r2, r5 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08098018 @ =gSprites - adds r1, r0 - str r1, [r2] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _08097FD0 - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809800C: .4byte gWaveformSpriteSheet -_08098010: .4byte 0x020012b0 -_08098014: .4byte gSpriteTemplate_83B6EFC -_08098018: .4byte gSprites - thumb_func_end sub_8097FB8 - - thumb_func_start sub_809801C -sub_809801C: @ 809801C - push {lr} - ldr r1, _0809803C @ =0x02000000 - ldr r2, _08098040 @ =0x000011f0 - adds r0, r1, r2 - ldrh r0, [r0] - subs r2, 0x4 - adds r1, r2 - ldr r1, [r1] - bl sub_80981F0 - bl sub_80982B4 - bl sub_8098350 - pop {r0} - bx r0 - .align 2, 0 -_0809803C: .4byte 0x02000000 -_08098040: .4byte 0x000011f0 - thumb_func_end sub_809801C - - thumb_func_start BoxSetMosaic -BoxSetMosaic: @ 8098044 - push {lr} - bl sub_809801C - ldr r0, _08098084 @ =0x02000000 - movs r1, 0x9C - lsls r1, 6 - adds r3, r0, r1 - ldr r2, [r3] - cmp r2, 0 - beq _08098080 - ldrb r0, [r2, 0x1] - movs r1, 0x10 - orrs r0, r1 - strb r0, [r2, 0x1] - ldr r1, [r3] - movs r0, 0xA - strh r0, [r1, 0x2E] - ldr r1, [r3] - movs r0, 0x1 - strh r0, [r1, 0x30] - ldr r1, [r3] - ldr r0, _08098088 @ =sub_8098090 - str r0, [r1, 0x1C] - ldr r2, _0809808C @ =REG_MOSAIC - ldr r0, [r3] - ldrh r0, [r0, 0x2E] - lsls r1, r0, 12 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] -_08098080: - pop {r0} - bx r0 - .align 2, 0 -_08098084: .4byte 0x02000000 -_08098088: .4byte sub_8098090 -_0809808C: .4byte REG_MOSAIC - thumb_func_end BoxSetMosaic - - thumb_func_start sub_8098090 -sub_8098090: @ 8098090 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - ldrh r1, [r3, 0x30] - subs r0, r1 - strh r0, [r3, 0x2E] - lsls r0, 16 - cmp r0, 0 - bge _080980A6 - movs r0, 0 - strh r0, [r3, 0x2E] -_080980A6: - ldr r2, _080980CC @ =REG_MOSAIC - ldrh r0, [r3, 0x2E] - lsls r1, r0, 12 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080980C8 - ldrb r0, [r3, 0x1] - movs r1, 0x11 - negs r1, r1 - ands r1, r0 - strb r1, [r3, 0x1] - ldr r0, _080980D0 @ =SpriteCallbackDummy - str r0, [r3, 0x1C] -_080980C8: - pop {r0} - bx r0 - .align 2, 0 -_080980CC: .4byte REG_MOSAIC -_080980D0: .4byte SpriteCallbackDummy - thumb_func_end sub_8098090 - - thumb_func_start sub_80980D4 -sub_80980D4: @ 80980D4 - push {r4,r5,lr} - sub sp, 0x28 - ldr r0, _08098150 @ =gUnknown_083B6DCC - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - ldr r0, _08098154 @ =gUnknown_083B6DD4 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x20] - str r1, [sp, 0x24] - mov r1, sp - ldr r0, _08098158 @ =gSpriteTemplate_83B6DDC - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r1, 0 - add r5, sp, 0x18 - ldr r4, _0809815C @ =0x02002784 - movs r3, 0 - ldr r2, _08098160 @ =0x000007ff -_08098102: - adds r0, r1, r4 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bls _08098102 - movs r1, 0 - ldr r3, _08098164 @ =0x02002704 - movs r2, 0 -_08098116: - lsls r0, r1, 1 - adds r0, r3 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xF - bls _08098116 - ldr r0, _08098168 @ =0x02000000 - movs r1, 0x9C - lsls r1, 6 - adds r0, r1 - movs r1, 0 - str r1, [r0] - adds r0, r5, 0 - bl LoadSpriteSheet - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _080981C4 - add r0, sp, 0x20 - bl LoadSpritePalette - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xFF - beq _080981C4 - b _080981B0 - .align 2, 0 -_08098150: .4byte gUnknown_083B6DCC -_08098154: .4byte gUnknown_083B6DD4 -_08098158: .4byte gSpriteTemplate_83B6DDC -_0809815C: .4byte 0x02002784 -_08098160: .4byte 0x000007ff -_08098164: .4byte 0x02002704 -_08098168: .4byte 0x02000000 -_0809816C: - ldr r2, _0809819C @ =0x02000000 - movs r0, 0x9C - lsls r0, 6 - adds r3, r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080981A0 @ =gSprites - adds r0, r1 - str r0, [r3] - lsls r0, r4, 4 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - ldr r3, _080981A4 @ =0x000026fa - adds r1, r2, r3 - strh r0, [r1] - ldr r4, _080981A8 @ =0x000026fc - adds r2, r4 - lsls r0, r5, 5 - ldr r1, _080981AC @ =0x06010000 - adds r0, r1 - str r0, [r2] - b _080981C4 - .align 2, 0 -_0809819C: .4byte 0x02000000 -_080981A0: .4byte gSprites -_080981A4: .4byte 0x000026fa -_080981A8: .4byte 0x000026fc -_080981AC: .4byte 0x06010000 -_080981B0: - mov r0, sp - movs r1, 0x28 - movs r2, 0x30 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - bne _0809816C -_080981C4: - ldr r0, _080981E8 @ =0x02000000 - movs r2, 0x9C - lsls r2, 6 - adds r0, r2 - ldr r0, [r0] - cmp r0, 0 - bne _080981DE - movs r0, 0x2 - bl FreeSpriteTilesByTag - ldr r0, _080981EC @ =0x0000dac7 - bl FreeSpritePaletteByTag -_080981DE: - add sp, 0x28 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080981E8: .4byte 0x02000000 -_080981EC: .4byte 0x0000dac7 - thumb_func_end sub_80980D4 - - thumb_func_start sub_80981F0 -sub_80981F0: @ 80981F0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - adds r7, r1, 0 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r6, _08098274 @ =0x02000000 - movs r0, 0x9C - lsls r0, 6 - adds r0, r6 - mov r8, r0 - ldr r0, [r0] - cmp r0, 0 - beq _080982A6 - cmp r4, 0 - beq _0809829C - lsls r0, r4, 3 - ldr r1, _08098278 @ =gMonFrontPicTable - adds r0, r1 - ldr r2, _0809827C @ =gMonFrontPicCoords - lsls r1, r4, 2 - adds r1, r2 - ldrb r1, [r1] - ldr r2, _08098280 @ =0x00004784 - adds r3, r6, r2 - ldr r2, _08098284 @ =0x00002784 - adds r5, r6, r2 - str r5, [sp] - str r4, [sp, 0x4] - str r7, [sp, 0x8] - movs r2, 0x1 - bl sub_800D334 - ldr r1, _08098288 @ =0x000011e8 - adds r0, r6, r1 - ldr r0, [r0] - ldr r2, _0809828C @ =0x00002704 - adds r4, r6, r2 - adds r1, r4, 0 - bl LZ77UnCompWram - ldr r1, _08098290 @ =0x000026fc - adds r0, r6, r1 - ldr r1, [r0] - ldr r2, _08098294 @ =0x04000200 - adds r0, r5, 0 - bl CpuSet - ldr r2, _08098298 @ =0x000026fa - adds r0, r6, r2 - ldrh r1, [r0] - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - mov r0, r8 - ldr r1, [r0] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - b _080982A6 - .align 2, 0 -_08098274: .4byte 0x02000000 -_08098278: .4byte gMonFrontPicTable -_0809827C: .4byte gMonFrontPicCoords -_08098280: .4byte 0x00004784 -_08098284: .4byte 0x00002784 -_08098288: .4byte 0x000011e8 -_0809828C: .4byte 0x00002704 -_08098290: .4byte 0x000026fc -_08098294: .4byte 0x04000200 -_08098298: .4byte 0x000026fa -_0809829C: - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_080982A6: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80981F0 - - thumb_func_start sub_80982B4 -sub_80982B4: @ 80982B4 - push {r4,lr} - ldr r4, _080982E4 @ =0x02000000 - ldr r1, _080982E8 @ =0x000011f0 - adds r0, r4, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _080982F4 - ldr r2, _080982EC @ =0x000011f7 - adds r0, r4, r2 - ldrb r0, [r0] - adds r2, 0xC1 - adds r1, r4, r2 - ldr r1, [r1] - bl sub_80F7A10 - ldr r1, _080982F0 @ =0x000012ac - adds r0, r4, r1 - ldr r1, [r0] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - b _08098302 - .align 2, 0 -_080982E4: .4byte 0x02000000 -_080982E8: .4byte 0x000011f0 -_080982EC: .4byte 0x000011f7 -_080982F0: .4byte 0x000012ac -_080982F4: - ldr r2, _08098348 @ =0x000012ac - adds r0, r4, r2 - ldr r1, [r0] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 -_08098302: - strb r0, [r1] - movs r0, 0 - movs r1, 0xB - movs r2, 0x9 - movs r3, 0x11 - bl MenuZeroFillWindowRect - ldr r4, _0809834C @ =0x0200127a - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0x10 - bl MenuPrint - adds r0, r4, 0 - subs r0, 0x6B - movs r1, 0x1 - movs r2, 0xB - bl MenuPrint - adds r0, r4, 0 - subs r0, 0x46 - movs r1, 0 - movs r2, 0xD - bl MenuPrint - subs r4, 0x21 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08098348: .4byte 0x000012ac -_0809834C: .4byte 0x0200127a - thumb_func_end sub_80982B4 - - thumb_func_start sub_8098350 -sub_8098350: @ 8098350 - push {r4,r5,lr} - sub sp, 0x10 - ldr r5, _080983A0 @ =0x02000000 - ldr r1, _080983A4 @ =0x000011f0 - adds r0, r5, r1 - ldrh r2, [r0] - cmp r2, 0 - beq _080983B4 - ldr r0, _080983A8 @ =0x06007800 - ldr r3, _080983AC @ =gUnknown_02039760 - movs r1, 0x1 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - movs r1, 0x8 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0x1 - movs r2, 0 - bl sub_809D034 - movs r4, 0 - ldr r0, _080983B0 @ =0x000012b0 - adds r5, r0 -_08098382: - lsls r0, r4, 2 - adds r0, r5 - ldr r0, [r0] - lsls r1, r4, 1 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - bl StartSpriteAnimIfDifferent - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _08098382 - b _080983EC - .align 2, 0 -_080983A0: .4byte 0x02000000 -_080983A4: .4byte 0x000011f0 -_080983A8: .4byte 0x06007800 -_080983AC: .4byte gUnknown_02039760 -_080983B0: .4byte 0x000012b0 -_080983B4: - ldr r0, _080983F4 @ =0x06007800 - ldr r3, _080983F8 @ =gUnknown_02039760 - movs r1, 0xA - str r1, [sp] - str r2, [sp, 0x4] - movs r1, 0x8 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0x1 - movs r2, 0 - bl sub_809D034 - movs r4, 0 - ldr r1, _080983FC @ =0x000012b0 - adds r5, r1 -_080983D4: - lsls r0, r4, 2 - adds r0, r5 - ldr r0, [r0] - lsls r1, r4, 25 - lsrs r1, 24 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080983D4 -_080983EC: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080983F4: .4byte 0x06007800 -_080983F8: .4byte gUnknown_02039760 -_080983FC: .4byte 0x000012b0 - thumb_func_end sub_8098350 - - thumb_func_start sub_8098400 -sub_8098400: @ 8098400 - push {r4,r5,lr} - sub sp, 0x14 - ldr r1, _0809847C @ =REG_BG1CNT - ldr r2, _08098480 @ =0x00000f01 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08098484 @ =gPSSMenuMisc_Gfx - ldr r1, _08098488 @ =0x06006800 - bl LZ77UnCompVram - ldr r0, _0809848C @ =gPSSMenuMisc_Tilemap - ldr r5, _08098490 @ =0x020000a8 - adds r1, r5, 0 - bl LZ77UnCompWram - ldr r0, _08098494 @ =gPSSMenu3_Pal - movs r1, 0x20 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08098498 @ =gPSSMenu4_Pal - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - ldr r4, _0809849C @ =0x06007800 - add r1, sp, 0x10 - movs r0, 0 - strh r0, [r1] - ldr r0, _080984A0 @ =0x040000d4 - str r1, [r0] - str r4, [r0, 0x4] - ldr r1, _080984A4 @ =0x81000400 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl sub_8098780 - ldr r0, _080984A8 @ =gUnknown_0203847C - ldrb r0, [r0] - cmp r0, 0 - beq _080984AC - movs r0, 0x1 - bl sub_8098690 - movs r0, 0x1 - bl sub_8099200 - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0xC - str r0, [sp, 0x8] - movs r0, 0x16 - str r0, [sp, 0xC] - adds r0, r4, 0 - movs r1, 0xA - movs r2, 0 - adds r3, r5, 0 - bl sub_809D034 - b _080984CC - .align 2, 0 -_0809847C: .4byte REG_BG1CNT -_08098480: .4byte 0x00000f01 -_08098484: .4byte gPSSMenuMisc_Gfx -_08098488: .4byte 0x06006800 -_0809848C: .4byte gPSSMenuMisc_Tilemap -_08098490: .4byte 0x020000a8 -_08098494: .4byte gPSSMenu3_Pal -_08098498: .4byte gPSSMenu4_Pal -_0809849C: .4byte 0x06007800 -_080984A0: .4byte 0x040000d4 -_080984A4: .4byte 0x81000400 -_080984A8: .4byte gUnknown_0203847C -_080984AC: - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0xC - str r0, [sp, 0x8] - movs r0, 0x2 - str r0, [sp, 0xC] - adds r0, r4, 0 - movs r1, 0xA - movs r2, 0 - adds r3, r5, 0 - bl sub_809D034 - movs r0, 0x1 - bl sub_8098690 -_080984CC: - ldr r0, _080984E0 @ =0x02000000 - ldr r1, _080984E4 @ =0x000008af - adds r0, r1 - movs r1, 0 - strb r1, [r0] - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080984E0: .4byte 0x02000000 -_080984E4: .4byte 0x000008af - thumb_func_end sub_8098400 - - thumb_func_start sub_80984E8 -sub_80984E8: @ 80984E8 - push {lr} - ldr r1, _08098510 @ =0x02000000 - ldr r0, _08098514 @ =0x000008a8 - adds r2, r1, r0 - movs r3, 0 - movs r0, 0x14 - strh r0, [r2] - ldr r0, _08098518 @ =0x000008aa - adds r2, r1, r0 - movs r0, 0x2 - strh r0, [r2] - ldr r0, _0809851C @ =0x000008ad - adds r1, r0 - strb r3, [r1] - movs r0, 0 - bl sub_8099200 - pop {r0} - bx r0 - .align 2, 0 -_08098510: .4byte 0x02000000 -_08098514: .4byte 0x000008a8 -_08098518: .4byte 0x000008aa -_0809851C: .4byte 0x000008ad - thumb_func_end sub_80984E8 - - thumb_func_start sub_8098520 -sub_8098520: @ 8098520 - push {r4,r5,lr} - sub sp, 0x10 - ldr r3, _08098578 @ =0x02000000 - ldr r0, _0809857C @ =0x000008ad - adds r5, r3, r0 - ldrb r0, [r5] - cmp r0, 0x14 - beq _08098592 - ldr r0, _08098580 @ =0x000008a8 - adds r1, r3, r0 - ldrh r0, [r1] - subs r0, 0x1 - movs r4, 0 - strh r0, [r1] - ldr r0, _08098584 @ =0x000008aa - adds r2, r3, r0 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - ldr r0, _08098588 @ =0x06007800 - adds r3, 0xA8 - str r4, [sp] - ldrh r1, [r1] - str r1, [sp, 0x4] - movs r1, 0xC - str r1, [sp, 0x8] - ldrh r1, [r2] - str r1, [sp, 0xC] - movs r1, 0xA - movs r2, 0 - bl sub_809D034 - movs r0, 0x8 - bl sub_80994A8 - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x14 - beq _0809858C - movs r0, 0x1 - b _08098594 - .align 2, 0 -_08098578: .4byte 0x02000000 -_0809857C: .4byte 0x000008ad -_08098580: .4byte 0x000008a8 -_08098584: .4byte 0x000008aa -_08098588: .4byte 0x06007800 -_0809858C: - ldr r1, _0809859C @ =gUnknown_0203847C - movs r0, 0x1 - strb r0, [r1] -_08098592: - movs r0, 0 -_08098594: - add sp, 0x10 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0809859C: .4byte gUnknown_0203847C - thumb_func_end sub_8098520 - - thumb_func_start add_to_c3_somehow -add_to_c3_somehow: @ 80985A0 - ldr r1, _080985BC @ =0x02000000 - ldr r0, _080985C0 @ =0x000008a8 - adds r2, r1, r0 - movs r3, 0 - movs r0, 0 - strh r0, [r2] - ldr r0, _080985C4 @ =0x000008aa - adds r2, r1, r0 - movs r0, 0x16 - strh r0, [r2] - ldr r0, _080985C8 @ =0x000008ad - adds r1, r0 - strb r3, [r1] - bx lr - .align 2, 0 -_080985BC: .4byte 0x02000000 -_080985C0: .4byte 0x000008a8 -_080985C4: .4byte 0x000008aa -_080985C8: .4byte 0x000008ad - thumb_func_end add_to_c3_somehow - - thumb_func_start sub_80985CC -sub_80985CC: @ 80985CC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - ldr r3, _08098640 @ =0x02000000 - ldr r0, _08098644 @ =0x000008ad - adds r6, r3, r0 - ldrb r0, [r6] - cmp r0, 0x14 - beq _0809867A - ldr r2, _08098648 @ =0x000008a8 - adds r1, r3, r2 - ldrh r0, [r1] - adds r0, 0x1 - movs r2, 0 - mov r9, r2 - strh r0, [r1] - ldr r0, _0809864C @ =0x000008aa - adds r4, r3, r0 - ldrh r0, [r4] - subs r0, 0x1 - strh r0, [r4] - ldr r5, _08098650 @ =0x06007800 - adds r3, 0xA8 - mov r8, r3 - str r2, [sp] - ldrh r0, [r1] - str r0, [sp, 0x4] - movs r7, 0xC - str r7, [sp, 0x8] - ldrh r0, [r4] - str r0, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0xA - bl sub_809D034 - ldrh r2, [r4] - movs r4, 0x1 - str r4, [sp] - adds r0, r5, 0 - movs r1, 0xA - movs r3, 0xC - bl sub_809D16C - movs r0, 0x8 - negs r0, r0 - bl sub_80994A8 - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x14 - beq _08098654 - movs r0, 0x1 - b _0809867C - .align 2, 0 -_08098640: .4byte 0x02000000 -_08098644: .4byte 0x000008ad -_08098648: .4byte 0x000008a8 -_0809864C: .4byte 0x000008aa -_08098650: .4byte 0x06007800 -_08098654: - ldr r0, _0809868C @ =gUnknown_0203847C - movs r1, 0 - strb r1, [r0] - bl sub_809954C - bl party_compaction - str r7, [sp] - mov r2, r9 - str r2, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x2 - str r0, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0x15 - movs r2, 0 - mov r3, r8 - bl sub_809D034 -_0809867A: - movs r0, 0 -_0809867C: - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0809868C: .4byte gUnknown_0203847C - thumb_func_end sub_80985CC - - thumb_func_start sub_8098690 -sub_8098690: @ 8098690 - push {lr} - sub sp, 0x10 - lsls r0, 24 - cmp r0, 0 - beq _080986C0 - ldr r0, _080986B8 @ =0x06007800 - ldr r3, _080986BC @ =0x020000a8 - movs r1, 0xC - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - movs r1, 0x9 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0x15 - movs r2, 0 - bl sub_809D034 - b _080986DA - .align 2, 0 -_080986B8: .4byte 0x06007800 -_080986BC: .4byte 0x020000a8 -_080986C0: - ldr r0, _080986E0 @ =0x06007800 - ldr r3, _080986E4 @ =0x020000a8 - movs r1, 0xC - str r1, [sp] - movs r2, 0x2 - str r2, [sp, 0x4] - movs r1, 0x9 - str r1, [sp, 0x8] - str r2, [sp, 0xC] - movs r1, 0x15 - movs r2, 0 - bl sub_809D034 -_080986DA: - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_080986E0: .4byte 0x06007800 -_080986E4: .4byte 0x020000a8 - thumb_func_end sub_8098690 - - thumb_func_start sub_80986E8 -sub_80986E8: @ 80986E8 - ldr r1, _08098704 @ =0x02000000 - ldr r2, _08098708 @ =0x000008af - adds r0, r1, r2 - movs r3, 0x1 - strb r3, [r0] - movs r0, 0x8B - lsls r0, 4 - adds r2, r1, r0 - movs r0, 0x1E - strb r0, [r2] - ldr r2, _0809870C @ =0x000008b1 - adds r1, r2 - strb r3, [r1] - bx lr - .align 2, 0 -_08098704: .4byte 0x02000000 -_08098708: .4byte 0x000008af -_0809870C: .4byte 0x000008b1 - thumb_func_end sub_80986E8 - - thumb_func_start sub_8098710 -sub_8098710: @ 8098710 - push {lr} - ldr r0, _0809872C @ =0x02000000 - ldr r2, _08098730 @ =0x000008af - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0 - beq _08098728 - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - bl sub_8098690 -_08098728: - pop {r0} - bx r0 - .align 2, 0 -_0809872C: .4byte 0x02000000 -_08098730: .4byte 0x000008af - thumb_func_end sub_8098710 - - thumb_func_start sub_8098734 -sub_8098734: @ 8098734 - push {lr} - ldr r2, _08098774 @ =0x02000000 - ldr r1, _08098778 @ =0x000008af - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08098770 - movs r0, 0x8B - lsls r0, 4 - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1E - bls _08098770 - movs r0, 0 - strb r0, [r1] - movs r3, 0 - ldr r0, _0809877C @ =0x000008b1 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0 - bne _08098768 - movs r3, 0x1 -_08098768: - strb r3, [r1] - ldrb r0, [r1] - bl sub_8098690 -_08098770: - pop {r0} - bx r0 - .align 2, 0 -_08098774: .4byte 0x02000000 -_08098778: .4byte 0x000008af -_0809877C: .4byte 0x000008b1 - thumb_func_end sub_8098734 - - thumb_func_start sub_8098780 -sub_8098780: @ 8098780 - push {r4-r6,lr} - sub sp, 0x10 - movs r4, 0x1 - ldr r6, _080987D4 @ =0x020000a8 - movs r5, 0x80 - lsls r5, 9 -_0809878C: - movs r0, 0x64 - muls r0, r4 - ldr r1, _080987D8 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _080987A0 - movs r0, 0x1 -_080987A0: - movs r1, 0x10 - cmp r0, 0 - beq _080987A8 - movs r1, 0xC -_080987A8: - lsrs r2, r5, 16 - str r1, [sp] - movs r0, 0x4 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - adds r0, r6, 0 - movs r1, 0x7 - adds r3, r6, 0 - bl sub_809D104 - movs r0, 0xC0 - lsls r0, 10 - adds r5, r0 - adds r4, 0x1 - cmp r4, 0x5 - ble _0809878C - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080987D4: .4byte 0x020000a8 -_080987D8: .4byte gPlayerParty - thumb_func_end sub_8098780 - - thumb_func_start sub_80987DC -sub_80987DC: @ 80987DC - push {lr} - sub sp, 0x10 - bl sub_8098780 - ldr r0, _08098804 @ =0x06007800 - ldr r3, _08098808 @ =0x020000a8 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0xC - str r1, [sp, 0x8] - movs r1, 0x16 - str r1, [sp, 0xC] - movs r1, 0xA - movs r2, 0 - bl sub_809D034 - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_08098804: .4byte 0x06007800 -_08098808: .4byte 0x020000a8 - thumb_func_end sub_80987DC - - thumb_func_start sub_809880C -sub_809880C: @ 809880C - push {lr} - ldr r0, _08098828 @ =0x02000000 - ldr r1, _0809882C @ =0x000008ae - adds r0, r1 - movs r1, 0 - strb r1, [r0] - movs r0, 0x6 - bl PlaySE - bl sub_80984E8 - pop {r0} - bx r0 - .align 2, 0 -_08098828: .4byte 0x02000000 -_0809882C: .4byte 0x000008ae - thumb_func_end sub_809880C - - thumb_func_start sub_8098830 -sub_8098830: @ 8098830 - push {r4,r5,lr} - ldr r5, _08098848 @ =0x02000000 - ldr r0, _0809884C @ =0x000008ae - adds r4, r5, r0 - ldrb r0, [r4] - cmp r0, 0x1 - beq _08098866 - cmp r0, 0x1 - bgt _08098850 - cmp r0, 0 - beq _08098856 - b _08098890 - .align 2, 0 -_08098848: .4byte 0x02000000 -_0809884C: .4byte 0x000008ae -_08098850: - cmp r0, 0x2 - beq _0809888C - b _08098890 -_08098856: - bl sub_8098520 - lsls r0, 24 - cmp r0, 0 - bne _08098890 - bl sub_809B068 - b _0809887E -_08098866: - bl sub_809AC00 - lsls r0, 24 - cmp r0, 0 - bne _08098890 - ldr r1, _08098888 @ =0x000011f6 - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0809887E - bl BoxSetMosaic -_0809887E: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _08098890 - .align 2, 0 -_08098888: .4byte 0x000011f6 -_0809888C: - movs r0, 0 - b _08098892 -_08098890: - movs r0, 0x1 -_08098892: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8098830 - - thumb_func_start sub_8098898 -sub_8098898: @ 8098898 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0xA - movs r1, 0x10 - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r1, _080988C4 @ =gUnknown_083B6DF4 - lsls r0, r5, 3 - adds r0, r1 - ldrb r0, [r0, 0x4] - cmp r0, 0x6 - bls _080988B8 - b _080989F4 -_080988B8: - lsls r0, 2 - ldr r1, _080988C8 @ =_080988CC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080988C4: .4byte gUnknown_083B6DF4 -_080988C8: .4byte _080988CC - .align 2, 0 -_080988CC: - .4byte _080989F4 - .4byte _08098930 - .4byte _080988E8 - .4byte _08098974 - .4byte _08098954 - .4byte _08098910 - .4byte _080989B8 -_080988E8: - ldr r4, _08098904 @ =0x02002694 - ldr r1, _08098908 @ =gUnknown_083B6DF4 - lsls r0, r5, 3 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl StringCopy - adds r2, r0, 0 - ldr r0, _0809890C @ =0xffffeb66 - adds r4, r0 - adds r0, r2, 0 - adds r1, r4, 0 - b _080989FE - .align 2, 0 -_08098904: .4byte 0x02002694 -_08098908: .4byte gUnknown_083B6DF4 -_0809890C: .4byte 0xffffeb66 -_08098910: - ldr r4, _08098928 @ =0x02002694 - ldr r1, _0809892C @ =gUnknown_083B6DF4 - lsls r0, r5, 3 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl StringCopy - adds r2, r0, 0 - adds r4, 0x50 - adds r1, r4, 0 - b _080989FE - .align 2, 0 -_08098928: .4byte 0x02002694 -_0809892C: .4byte gUnknown_083B6DF4 -_08098930: - ldr r0, _08098948 @ =0x02002694 - ldr r2, _0809894C @ =0xffffeb66 - adds r1, r0, r2 - bl StringCopy - adds r2, r0, 0 - ldr r1, _08098950 @ =gUnknown_083B6DF4 - lsls r0, r5, 3 - adds r0, r1 - ldr r1, [r0] - adds r0, r2, 0 - b _080989FE - .align 2, 0 -_08098948: .4byte 0x02002694 -_0809894C: .4byte 0xffffeb66 -_08098950: .4byte gUnknown_083B6DF4 -_08098954: - ldr r0, _0809896C @ =0x02002694 - adds r1, r0, 0 - adds r1, 0x50 - bl StringCopy - adds r2, r0, 0 - ldr r1, _08098970 @ =gUnknown_083B6DF4 - lsls r0, r5, 3 - adds r0, r1 - ldr r1, [r0] - adds r0, r2, 0 - b _080989FE - .align 2, 0 -_0809896C: .4byte 0x02002694 -_08098970: .4byte gUnknown_083B6DF4 -_08098974: - ldr r1, _080989AC @ =gUnknown_083B6DF4 - lsls r0, r5, 3 - adds r0, r1 - ldr r6, [r0] - adds r0, r6, 0 - bl StringLength - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r4, r6, r4 - adds r4, 0x1 - ldr r5, _080989B0 @ =0x02002694 - adds r0, r5, 0 - adds r1, r6, 0 - bl StringCopy - adds r2, r0, 0 - ldr r0, _080989B4 @ =0xffffeb66 - adds r5, r0 - adds r0, r2, 0 - adds r1, r5, 0 - bl StringCopy - adds r2, r0, 0 - adds r1, r4, 0 - b _080989FE - .align 2, 0 -_080989AC: .4byte gUnknown_083B6DF4 -_080989B0: .4byte 0x02002694 -_080989B4: .4byte 0xffffeb66 -_080989B8: - ldr r1, _080989EC @ =gUnknown_083B6DF4 - lsls r0, r5, 3 - adds r0, r1 - ldr r6, [r0] - adds r0, r6, 0 - bl StringLength - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r4, r6, r4 - subs r4, 0x1 - ldr r5, _080989F0 @ =0x02002694 - adds r0, r5, 0 - adds r1, r6, 0 - bl StringCopy - adds r2, r0, 0 - subs r0, r2, 0x1 - adds r5, 0x50 - adds r1, r5, 0 - bl StringCopy - adds r2, r0, 0 - adds r1, r4, 0 - b _080989FE - .align 2, 0 -_080989EC: .4byte gUnknown_083B6DF4 -_080989F0: .4byte 0x02002694 -_080989F4: - ldr r0, _08098A2C @ =0x02002694 - ldr r2, _08098A30 @ =gUnknown_083B6DF4 - lsls r1, r5, 3 - adds r1, r2 - ldr r1, [r1] -_080989FE: - bl StringCopy - adds r2, r0, 0 - ldr r0, _08098A34 @ =0x020026a6 - adds r3, r0, 0 - subs r3, 0x12 - cmp r2, r0 - bcs _08098A18 - movs r1, 0 -_08098A10: - strb r1, [r2] - adds r2, 0x1 - cmp r2, r0 - bcc _08098A10 -_08098A18: - movs r0, 0xFF - strb r0, [r2] - adds r0, r3, 0 - movs r1, 0xB - movs r2, 0x11 - bl MenuPrint - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08098A2C: .4byte 0x02002694 -_08098A30: .4byte gUnknown_083B6DF4 -_08098A34: .4byte 0x020026a6 - thumb_func_end sub_8098898 - - thumb_func_start sub_8098A38 -sub_8098A38: @ 8098A38 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x17 - movs r1, 0xA - movs r2, 0 - bl DisplayYesNoMenu - lsls r4, 24 - asrs r4, 24 - adds r0, r4, 0 - bl MoveMenuCursor - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8098A38 - - thumb_func_start sub_8098A5C -sub_8098A5C: @ 8098A5C - push {lr} - bl sub_8072DEC - movs r0, 0xA - movs r1, 0x10 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r0, 0x17 - movs r1, 0xA - movs r2, 0x1D - movs r3, 0xF - bl MenuZeroFillWindowRect - pop {r0} - bx r0 - thumb_func_end sub_8098A5C - - thumb_func_start sub_8098A80 -sub_8098A80: @ 8098A80 - push {lr} - bl sub_809CDCC - movs r0, 0xC - bl sub_809CDEC - movs r0, 0xD - bl sub_809CDEC - movs r0, 0xE - bl sub_809CDEC - movs r0, 0xF - bl sub_809CDEC - bl sub_809CE84 - pop {r0} - bx r0 - thumb_func_end sub_8098A80 - - thumb_func_start sub_8098AA8 -sub_8098AA8: @ 8098AA8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl sub_809CDCC - cmp r4, 0x1 - beq _08098AE6 - cmp r4, 0x1 - bgt _08098AC2 - cmp r4, 0 - beq _08098ACC - b _08098B32 -_08098AC2: - cmp r5, 0x2 - beq _08098B00 - cmp r5, 0x3 - beq _08098B1A - b _08098B32 -_08098ACC: - movs r0, 0x10 - bl sub_809CDEC - movs r0, 0x11 - bl sub_809CDEC - movs r0, 0x12 - bl sub_809CDEC - movs r0, 0x13 - bl sub_809CDEC - b _08098B32 -_08098AE6: - movs r0, 0x14 - bl sub_809CDEC - movs r0, 0x15 - bl sub_809CDEC - movs r0, 0x16 - bl sub_809CDEC - movs r0, 0x17 - bl sub_809CDEC - b _08098B32 -_08098B00: - movs r0, 0x18 - bl sub_809CDEC - movs r0, 0x19 - bl sub_809CDEC - movs r0, 0x1A - bl sub_809CDEC - movs r0, 0x1B - bl sub_809CDEC - b _08098B32 -_08098B1A: - movs r0, 0x1C - bl sub_809CDEC - movs r0, 0x1D - bl sub_809CDEC - movs r0, 0x1E - bl sub_809CDEC - movs r0, 0x1F - bl sub_809CDEC -_08098B32: - bl sub_809CE84 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8098AA8 - - thumb_func_start get_preferred_box -get_preferred_box: @ 8098B3C - ldr r0, _08098B44 @ =gPokemonStorage - ldrb r0, [r0] - bx lr - .align 2, 0 -_08098B44: .4byte gPokemonStorage - thumb_func_end get_preferred_box - - thumb_func_start sub_8098B48 -sub_8098B48: @ 8098B48 - push {r4,r5,lr} - bl sub_809D51C - movs r2, 0 - ldr r1, _08098BD8 @ =gUnknown_083B6DB4 - ldr r0, [r1] - ldr r4, _08098BDC @ =0x000010d0 - adds r3, r0, r4 - movs r4, 0 - adds r5, r1, 0 -_08098B5C: - lsls r0, r2, 1 - adds r0, r3, r0 - strh r4, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x27 - bls _08098B5C - movs r2, 0 - ldr r0, _08098BD8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x89 - lsls r1, 5 - adds r3, r0, r1 - movs r1, 0 -_08098B7A: - lsls r0, r2, 1 - adds r0, r3, r0 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x27 - bls _08098B7A - movs r2, 0 - ldr r0, _08098BD8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r4, _08098BE0 @ =0x00001038 - adds r3, r0, r4 - movs r1, 0 -_08098B96: - lsls r0, r2, 2 - adds r0, r3, r0 - str r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _08098B96 - movs r2, 0 - ldr r0, _08098BD8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08098BE4 @ =0x00001050 - adds r3, r0, r1 - movs r1, 0 -_08098BB2: - lsls r0, r2, 2 - adds r0, r3, r0 - str r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1D - bls _08098BB2 - ldr r0, [r5] - ldr r2, _08098BE8 @ =0x00001034 - adds r1, r0, r2 - movs r2, 0 - str r2, [r1] - ldr r4, _08098BEC @ =0x00000d5c - adds r0, r4 - strh r2, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08098BD8: .4byte gUnknown_083B6DB4 -_08098BDC: .4byte 0x000010d0 -_08098BE0: .4byte 0x00001038 -_08098BE4: .4byte 0x00001050 -_08098BE8: .4byte 0x00001034 -_08098BEC: .4byte 0x00000d5c - thumb_func_end sub_8098B48 - - thumb_func_start sub_8098BF0 -sub_8098BF0: @ 8098BF0 - push {r4-r6,lr} - sub sp, 0x8 - ldr r0, _08098C38 @ =gUnknown_083B6DB4 - ldr r5, [r0] - ldr r0, _08098C3C @ =0x000025b4 - adds r4, r5, r0 - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - adds r6, r0, 0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - str r1, [sp] - movs r1, 0x7 - str r1, [sp, 0x4] - adds r1, r6, 0 - movs r2, 0 - movs r3, 0 - bl sub_8099AFC - ldr r1, _08098C40 @ =0x00001034 - adds r5, r1 - str r0, [r5] - ldr r1, _08098C44 @ =sub_80999C4 - str r1, [r0, 0x1C] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08098C38: .4byte gUnknown_083B6DB4 -_08098C3C: .4byte 0x000025b4 -_08098C40: .4byte 0x00001034 -_08098C44: .4byte sub_80999C4 - thumb_func_end sub_8098BF0 - - thumb_func_start sub_8098C48 -sub_8098C48: @ 8098C48 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldr r1, _08098CCC @ =gUnknown_020300A4 - adds r6, r0, r1 - movs r0, 0 - mov r8, r0 - movs r7, 0 -_08098C6A: - movs r5, 0 - adds r1, r7, 0x1 - mov r9, r1 -_08098C70: - adds r0, r6, 0 - movs r1, 0x41 - bl GetBoxMonData - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _08098CD8 - adds r0, r6, 0 - movs r1, 0 - bl GetBoxMonData - adds r1, r0, 0 - lsls r2, r5, 1 - adds r2, r5 - lsls r2, 19 - movs r3, 0xC8 - lsls r3, 15 - adds r2, r3 - asrs r2, 16 - lsls r3, r7, 1 - adds r3, r7 - lsls r3, 19 - movs r0, 0xB0 - lsls r0, 14 - adds r3, r0 - movs r0, 0x2 - str r0, [sp] - movs r0, 0x12 - subs r0, r5 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - adds r0, r4, 0 - asrs r3, 16 - bl sub_8099AFC - ldr r1, _08098CD0 @ =gUnknown_083B6DB4 - ldr r1, [r1] - mov r3, r8 - lsls r2, r3, 2 - ldr r3, _08098CD4 @ =0x00001050 - adds r1, r3 - adds r1, r2 - str r0, [r1] - b _08098CE8 - .align 2, 0 -_08098CCC: .4byte gUnknown_020300A4 -_08098CD0: .4byte gUnknown_083B6DB4 -_08098CD4: .4byte 0x00001050 -_08098CD8: - ldr r0, _08098D18 @ =gUnknown_083B6DB4 - ldr r0, [r0] - mov r2, r8 - lsls r1, r2, 2 - ldr r3, _08098D1C @ =0x00001050 - adds r0, r3 - adds r0, r1 - str r4, [r0] -_08098CE8: - adds r6, 0x50 - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _08098C70 - mov r1, r9 - lsls r0, r1, 16 - lsrs r7, r0, 16 - cmp r7, 0x4 - bls _08098C6A - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08098D18: .4byte gUnknown_083B6DB4 -_08098D1C: .4byte 0x00001050 - thumb_func_end sub_8098C48 - - thumb_func_start sub_8098D20 -sub_8098D20: @ 8098D20 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r2, r1, 4 - subs r2, r1 - lsls r2, 5 - lsls r0, r4, 2 - mov r9, r0 - adds r0, r4 - lsls r0, 4 - ldr r1, _08098DD4 @ =gUnknown_020300A4 - adds r0, r1 - adds r7, r2, r0 - adds r0, r7, 0 - movs r1, 0x41 - bl GetBoxMonData - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0 - beq _08098DC4 - adds r0, r4, 0 - movs r1, 0x6 - bl __umodsi3 - adds r6, r0, 0 - lsls r0, r6, 24 - lsrs r0, 24 - lsls r5, r0, 1 - adds r5, r0 - lsls r5, 19 - movs r1, 0xC8 - lsls r1, 15 - adds r5, r1 - lsrs r5, 16 - adds r0, r4, 0 - movs r1, 0x6 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 1 - adds r4, r0 - lsls r4, 19 - movs r2, 0xB0 - lsls r2, 14 - adds r4, r2 - lsrs r4, 16 - adds r0, r7, 0 - movs r1, 0 - bl GetBoxMonData - adds r1, r0, 0 - movs r0, 0x2 - str r0, [sp] - movs r0, 0x12 - subs r0, r6 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - mov r0, r8 - adds r2, r5, 0 - adds r3, r4, 0 - bl sub_8099AFC - ldr r1, _08098DD8 @ =gUnknown_083B6DB4 - ldr r1, [r1] - ldr r2, _08098DDC @ =0x00001050 - adds r1, r2 - add r1, r9 - str r0, [r1] -_08098DC4: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08098DD4: .4byte gUnknown_020300A4 -_08098DD8: .4byte gUnknown_083B6DB4 -_08098DDC: .4byte 0x00001050 - thumb_func_end sub_8098D20 - - thumb_func_start sub_8098DE0 -sub_8098DE0: @ 8098DE0 - push {r4-r6,lr} - lsls r0, 16 - lsrs r4, r0, 16 - movs r2, 0 - ldr r0, _08098E18 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08098E1C @ =0x00001050 - adds r3, r0, r1 - movs r6, 0x1 - ldr r5, _08098E20 @ =sub_8098E68 -_08098DF4: - lsls r0, r2, 2 - adds r1, r3, r0 - ldr r0, [r1] - cmp r0, 0 - beq _08098E08 - strh r4, [r0, 0x32] - ldr r0, [r1] - strh r6, [r0, 0x36] - ldr r0, [r1] - str r5, [r0, 0x1C] -_08098E08: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1D - bls _08098DF4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08098E18: .4byte gUnknown_083B6DB4 -_08098E1C: .4byte 0x00001050 -_08098E20: .4byte sub_8098E68 - thumb_func_end sub_8098DE0 - - thumb_func_start sub_8098E24 -sub_8098E24: @ 8098E24 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x30] - movs r3, 0x30 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _08098E40 - subs r0, r1, 0x1 - strh r0, [r2, 0x30] - ldrh r0, [r2, 0x32] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] - b _08098E56 -_08098E40: - ldr r0, _08098E5C @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r3, _08098E60 @ =0x00001178 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrh r0, [r2, 0x34] - strh r0, [r2, 0x20] - ldr r0, _08098E64 @ =SpriteCallbackDummy - str r0, [r2, 0x1C] -_08098E56: - pop {r0} - bx r0 - .align 2, 0 -_08098E5C: .4byte gUnknown_083B6DB4 -_08098E60: .4byte 0x00001178 -_08098E64: .4byte SpriteCallbackDummy - thumb_func_end sub_8098E24 - - thumb_func_start sub_8098E68 -sub_8098E68: @ 8098E68 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x36] - movs r3, 0x36 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _08098E7C - subs r0, r1, 0x1 - strh r0, [r2, 0x36] - b _08098E98 -_08098E7C: - ldrh r0, [r2, 0x32] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x38] - subs r0, 0x45 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xB6 - bls _08098E98 - ldr r0, _08098E9C @ =SpriteCallbackDummy - str r0, [r2, 0x1C] -_08098E98: - pop {r0} - bx r0 - .align 2, 0 -_08098E9C: .4byte SpriteCallbackDummy - thumb_func_end sub_8098E68 - - thumb_func_start sub_8098EA0 -sub_8098EA0: @ 8098EA0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - ldr r0, _08098ED8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08098EDC @ =0x00001050 - adds r7, r0, r1 -_08098EB0: - lsls r0, r5, 2 - adds r4, r7, r0 - ldr r0, [r4] - cmp r0, 0 - beq _08098EC2 - bl sub_8099BE0 - movs r0, 0 - str r0, [r4] -_08098EC2: - adds r0, r5, 0x6 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x4 - bls _08098EB0 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08098ED8: .4byte gUnknown_083B6DB4 -_08098EDC: .4byte 0x00001050 - thumb_func_end sub_8098EA0 - - thumb_func_start sub_8098EE0 -sub_8098EE0: @ 8098EE0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x8] - lsls r2, 16 - movs r0, 0x2C - str r0, [sp, 0x10] - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 19 - movs r1, 0xC8 - lsls r1, 15 - adds r0, r1 - lsrs r0, 16 - mov r10, r0 - ldr r0, [sp, 0x8] - adds r0, 0x1 - lsrs r3, r2, 16 - str r3, [sp, 0xC] - asrs r2, 16 - adds r1, r0, 0 - muls r1, r2 - mov r4, r10 - subs r1, r4, r1 - movs r0, 0x12 - subs r0, r6 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x18] - movs r0, 0 - str r0, [sp, 0x14] - mov r9, r0 - ldr r0, _08098FF8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r2, _08098FFC @ =0x0000117d - adds r2, r0 - mov r8, r2 - ldr r3, _08099000 @ =0x00001050 - adds r3, r0, r3 - str r3, [sp, 0x20] - lsls r1, 16 - str r1, [sp, 0x1C] -_08098F42: - mov r4, r8 - ldrb r0, [r4] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - lsls r7, r6, 2 - adds r1, r7, r6 - lsls r1, 4 - ldr r2, _08099004 @ =gUnknown_020300A4 - adds r4, r1, r2 - adds r0, r4 - movs r1, 0x41 - bl GetBoxMonData - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _08098FC8 - mov r1, r8 - ldrb r0, [r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - adds r0, r4 - movs r1, 0 - bl GetBoxMonData - adds r1, r0, 0 - ldr r2, [sp, 0x10] - lsls r3, r2, 16 - asrs r3, 16 - movs r0, 0x2 - str r0, [sp] - ldr r4, [sp, 0x18] - str r4, [sp, 0x4] - adds r0, r5, 0 - ldr r4, [sp, 0x1C] - asrs r2, r4, 16 - bl sub_8099AFC - ldr r2, [sp, 0x20] - adds r1, r2, r7 - str r0, [r1] - cmp r0, 0 - beq _08098FC8 - mov r3, sp - ldrh r3, [r3, 0x8] - strh r3, [r0, 0x30] - ldr r0, [r1] - mov r4, sp - ldrh r4, [r4, 0xC] - strh r4, [r0, 0x32] - ldr r0, [r1] - mov r2, r10 - strh r2, [r0, 0x34] - ldr r1, [r1] - ldr r0, _08099008 @ =sub_8098E24 - str r0, [r1, 0x1C] - ldr r0, [sp, 0x14] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x14] -_08098FC8: - adds r0, r6, 0x6 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, [sp, 0x10] - adds r0, 0x18 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x10] - mov r0, r9 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - cmp r0, 0x4 - bls _08098F42 - ldr r0, [sp, 0x14] - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08098FF8: .4byte gUnknown_083B6DB4 -_08098FFC: .4byte 0x0000117d -_08099000: .4byte 0x00001050 -_08099004: .4byte gUnknown_020300A4 -_08099008: .4byte sub_8098E24 - thumb_func_end sub_8098EE0 - - thumb_func_start sub_809900C -sub_809900C: @ 809900C - push {r4-r6,lr} - lsls r1, 24 - lsrs r1, 24 - ldr r4, _08099058 @ =gUnknown_083B6DB4 - ldr r5, [r4] - ldr r3, _0809905C @ =0x0000117c - adds r2, r5, r3 - movs r3, 0 - strb r3, [r2] - ldr r6, _08099060 @ =0x0000117d - adds r2, r5, r6 - strb r0, [r2] - ldr r2, _08099064 @ =0x0000117b - adds r0, r5, r2 - strb r1, [r0] - subs r6, 0xB - adds r2, r5, r6 - movs r0, 0x20 - strh r0, [r2] - lsls r1, 24 - asrs r1, 24 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - negs r0, r0 - adds r6, 0x4 - adds r2, r5, r6 - strh r0, [r2] - ldr r2, _08099068 @ =0x00001178 - adds r0, r5, r2 - strh r3, [r0] - cmp r1, 0 - ble _08099070 - ldr r3, _0809906C @ =0x0000117a - adds r1, r5, r3 - movs r0, 0 - b _08099076 - .align 2, 0 -_08099058: .4byte gUnknown_083B6DB4 -_0809905C: .4byte 0x0000117c -_08099060: .4byte 0x0000117d -_08099064: .4byte 0x0000117b -_08099068: .4byte 0x00001178 -_0809906C: .4byte 0x0000117a -_08099070: - ldr r6, _080990A0 @ =0x0000117a - adds r1, r5, r6 - movs r0, 0x5 -_08099076: - strb r0, [r1] - ldr r2, [r4] - ldr r1, _080990A0 @ =0x0000117a - adds r0, r2, r1 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, 0x64 - ldr r3, _080990A4 @ =0x00001174 - adds r1, r2, r3 - strh r0, [r1] - ldr r6, _080990A8 @ =0x00001176 - adds r2, r6 - movs r1, 0 - ldrsh r0, [r2, r1] - bl sub_8098DE0 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080990A0: .4byte 0x0000117a -_080990A4: .4byte 0x00001174 -_080990A8: .4byte 0x00001176 - thumb_func_end sub_809900C - - thumb_func_start sub_80990AC -sub_80990AC: @ 80990AC - push {r4-r6,lr} - ldr r0, _080990D4 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r0, _080990D8 @ =0x00001172 - adds r3, r4, r0 - ldrh r0, [r3] - cmp r0, 0 - beq _080990C0 - subs r0, 0x1 - strh r0, [r3] -_080990C0: - ldr r1, _080990DC @ =0x0000117c - adds r6, r4, r1 - ldrb r0, [r6] - cmp r0, 0x1 - beq _08099138 - cmp r0, 0x1 - bgt _080990E0 - cmp r0, 0 - beq _080990E8 - b _080991F0 - .align 2, 0 -_080990D4: .4byte gUnknown_083B6DB4 -_080990D8: .4byte 0x00001172 -_080990DC: .4byte 0x0000117c -_080990E0: - cmp r0, 0x2 - bne _080990E6 - b _080991E0 -_080990E6: - b _080991F0 -_080990E8: - ldr r2, _0809912C @ =0x00001174 - adds r5, r4, r2 - ldr r3, _08099130 @ =0x00001176 - adds r0, r4, r3 - ldrh r0, [r0] - ldrh r1, [r5] - adds r0, r1 - strh r0, [r5] - subs r0, 0x41 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xBA - bhi _08099104 - b _080991F8 -_08099104: - adds r2, 0x6 - adds r0, r4, r2 - ldrb r0, [r0] - bl sub_8098EA0 - ldr r3, _08099134 @ =0x0000117b - adds r0, r4, r3 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - ldrh r1, [r5] - adds r0, r1 - strh r0, [r5] - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - b _080991F8 - .align 2, 0 -_0809912C: .4byte 0x00001174 -_08099130: .4byte 0x00001176 -_08099134: .4byte 0x0000117b -_08099138: - ldr r2, _08099194 @ =0x00001174 - adds r1, r4, r2 - ldr r5, _08099198 @ =0x00001176 - adds r2, r4, r5 - ldrh r0, [r2] - ldrh r5, [r1] - adds r0, r5 - strh r0, [r1] - ldr r0, _0809919C @ =0x0000117a - adds r5, r4, r0 - ldrb r0, [r5] - ldrh r1, [r3] - movs r3, 0 - ldrsh r2, [r2, r3] - bl sub_8098EE0 - ldr r2, _080991A0 @ =0x00001178 - adds r1, r4, r2 - lsls r0, 24 - lsrs r0, 24 - ldrh r3, [r1] - adds r0, r3 - strh r0, [r1] - ldr r1, _080991A4 @ =0x0000117b - adds r0, r4, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - cmp r1, 0 - ble _08099178 - ldrb r0, [r5] - cmp r0, 0x5 - beq _08099182 -_08099178: - cmp r1, 0 - bge _080991B0 - ldrb r0, [r5] - cmp r0, 0 - bne _080991B0 -_08099182: - ldr r0, _080991A8 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r2, _080991AC @ =0x0000117c - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080991F8 - .align 2, 0 -_08099194: .4byte 0x00001174 -_08099198: .4byte 0x00001176 -_0809919C: .4byte 0x0000117a -_080991A0: .4byte 0x00001178 -_080991A4: .4byte 0x0000117b -_080991A8: .4byte gUnknown_083B6DB4 -_080991AC: .4byte 0x0000117c -_080991B0: - ldr r0, _080991D0 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r5, _080991D4 @ =0x0000117a - adds r3, r1, r5 - ldr r2, _080991D8 @ =0x0000117b - adds r0, r1, r2 - ldrb r0, [r0] - ldrb r5, [r3] - adds r0, r5 - movs r2, 0 - strb r0, [r3] - ldr r0, _080991DC @ =0x0000117c - adds r1, r0 - strb r2, [r1] - b _080991F8 - .align 2, 0 -_080991D0: .4byte gUnknown_083B6DB4 -_080991D4: .4byte 0x0000117a -_080991D8: .4byte 0x0000117b -_080991DC: .4byte 0x0000117c -_080991E0: - ldr r1, _080991F4 @ =0x00001178 - adds r0, r4, r1 - ldrh r0, [r0] - cmp r0, 0 - bne _080991F8 - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] -_080991F0: - movs r0, 0 - b _080991FA - .align 2, 0 -_080991F4: .4byte 0x00001178 -_080991F8: - movs r0, 0x1 -_080991FA: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80990AC - - thumb_func_start sub_8099200 -sub_8099200: @ 8099200 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r4, _080992A0 @ =gPlayerParty - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - adds r1, r0, 0 - movs r0, 0x1 - str r0, [sp] - movs r0, 0xB - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r2, 0x68 - movs r3, 0x40 - bl sub_8099AFC - ldr r1, _080992A4 @ =gUnknown_083B6DB4 - ldr r1, [r1] - ldr r2, _080992A8 @ =0x00001038 - adds r1, r2 - str r0, [r1] - movs r7, 0x1 - movs r6, 0x1 -_08099246: - movs r0, 0x64 - adds r1, r6, 0 - muls r1, r0 - ldr r0, _080992A0 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _080992AC - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - adds r1, r0, 0 - subs r0, r6, 0x1 - lsls r3, r0, 1 - adds r3, r0 - lsls r3, 19 - movs r0, 0x80 - lsls r0, 13 - adds r3, r0 - asrs r3, 16 - movs r0, 0x1 - str r0, [sp] - movs r0, 0xB - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r2, 0x98 - bl sub_8099AFC - ldr r1, _080992A4 @ =gUnknown_083B6DB4 - ldr r1, [r1] - lsls r2, r6, 2 - ldr r3, _080992A8 @ =0x00001038 - adds r1, r3 - adds r1, r2 - str r0, [r1] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - b _080992BA - .align 2, 0 -_080992A0: .4byte gPlayerParty -_080992A4: .4byte gUnknown_083B6DB4 -_080992A8: .4byte 0x00001038 -_080992AC: - ldr r0, _08099308 @ =gUnknown_083B6DB4 - ldr r0, [r0] - lsls r1, r6, 2 - ldr r2, _0809930C @ =0x00001038 - adds r0, r2 - adds r0, r1 - str r5, [r0] -_080992BA: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x5 - bls _08099246 - mov r3, r8 - cmp r3, 0 - bne _080992FA - movs r6, 0 - cmp r6, r7 - bcs _080992FA - ldr r0, _08099308 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809930C @ =0x00001038 - adds r3, r0, r1 - movs r4, 0x4 -_080992DA: - lsls r1, r6, 2 - adds r1, r3, r1 - ldr r2, [r1] - ldrh r0, [r2, 0x22] - subs r0, 0xA0 - strh r0, [r2, 0x22] - ldr r1, [r1] - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, r7 - bcc _080992DA -_080992FA: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099308: .4byte gUnknown_083B6DB4 -_0809930C: .4byte 0x00001038 - thumb_func_end sub_8099200 - - thumb_func_start sub_8099310 -sub_8099310: @ 8099310 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _08099368 @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r0, _0809936C @ =0x00001171 - adds r1, r2, r0 - movs r0, 0 - strb r0, [r1] - movs r5, 0 - movs r6, 0 - mov r8, r2 - ldr r7, _0809936C @ =0x00001171 - add r7, r8 -_0809932C: - lsls r1, r5, 2 - ldr r0, _08099370 @ =0x00001038 - add r0, r8 - adds r4, r0, r1 - ldr r0, [r4] - cmp r0, 0 - beq _08099354 - cmp r5, r6 - beq _0809934E - adds r1, r6, 0 - bl sub_8099388 - movs r0, 0 - str r0, [r4] - ldrb r0, [r7] - adds r0, 0x1 - strb r0, [r7] -_0809934E: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08099354: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _0809932C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099368: .4byte gUnknown_083B6DB4 -_0809936C: .4byte 0x00001171 -_08099370: .4byte 0x00001038 - thumb_func_end sub_8099310 - - thumb_func_start sub_8099374 -sub_8099374: @ 8099374 - ldr r0, _08099380 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08099384 @ =0x00001171 - adds r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08099380: .4byte gUnknown_083B6DB4 -_08099384: .4byte 0x00001171 - thumb_func_end sub_8099374 - - thumb_func_start sub_8099388 -sub_8099388: @ 8099388 - push {r4,lr} - adds r2, r0, 0 - lsls r1, 16 - lsrs r1, 16 - strh r1, [r2, 0x30] - cmp r1, 0 - bne _0809939C - movs r3, 0x68 - movs r4, 0x40 - b _080993AE -_0809939C: - movs r3, 0x98 - subs r1, 0x1 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 19 - movs r1, 0x80 - lsls r1, 13 - adds r0, r1 - lsrs r4, r0, 16 -_080993AE: - ldrh r0, [r2, 0x20] - lsls r0, 3 - strh r0, [r2, 0x32] - ldrh r0, [r2, 0x22] - lsls r0, 3 - strh r0, [r2, 0x34] - lsls r1, r3, 3 - movs r3, 0x32 - ldrsh r0, [r2, r3] - subs r0, r1, r0 - cmp r0, 0 - bge _080993C8 - adds r0, 0x7 -_080993C8: - asrs r0, 3 - strh r0, [r2, 0x36] - lsls r0, r4, 16 - asrs r0, 13 - movs r3, 0x34 - ldrsh r1, [r2, r3] - subs r0, r1 - cmp r0, 0 - bge _080993DC - adds r0, 0x7 -_080993DC: - asrs r0, 3 - strh r0, [r2, 0x38] - movs r0, 0x8 - strh r0, [r2, 0x3A] - ldr r0, _080993F0 @ =sub_80993F4 - str r0, [r2, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080993F0: .4byte sub_80993F4 - thumb_func_end sub_8099388 - - thumb_func_start sub_80993F4 -sub_80993F4: @ 80993F4 - push {r4,lr} - adds r3, r0, 0 - ldrh r2, [r3, 0x3A] - movs r1, 0x3A - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _08099424 - ldrh r0, [r3, 0x36] - ldrh r4, [r3, 0x32] - adds r0, r4 - strh r0, [r3, 0x32] - ldrh r1, [r3, 0x38] - ldrh r4, [r3, 0x34] - adds r1, r4 - strh r1, [r3, 0x34] - lsls r0, 16 - asrs r0, 19 - strh r0, [r3, 0x20] - lsls r1, 16 - asrs r1, 19 - strh r1, [r3, 0x22] - subs r0, r2, 0x1 - strh r0, [r3, 0x3A] - b _08099468 -_08099424: - movs r1, 0x30 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _08099434 - movs r0, 0x68 - strh r0, [r3, 0x20] - movs r0, 0x40 - b _08099446 -_08099434: - movs r0, 0x98 - strh r0, [r3, 0x20] - movs r4, 0x30 - ldrsh r1, [r3, r4] - subs r1, 0x1 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, 0x10 -_08099446: - strh r0, [r3, 0x22] - ldr r0, _08099470 @ =SpriteCallbackDummy - str r0, [r3, 0x1C] - ldr r0, _08099474 @ =gUnknown_083B6DB4 - ldr r2, [r0] - movs r0, 0x30 - ldrsh r1, [r3, r0] - lsls r1, 2 - ldr r4, _08099478 @ =0x00001038 - adds r0, r2, r4 - adds r0, r1 - str r3, [r0] - ldr r0, _0809947C @ =0x00001171 - adds r2, r0 - ldrb r0, [r2] - subs r0, 0x1 - strb r0, [r2] -_08099468: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099470: .4byte SpriteCallbackDummy -_08099474: .4byte gUnknown_083B6DB4 -_08099478: .4byte 0x00001038 -_0809947C: .4byte 0x00001171 - thumb_func_end sub_80993F4 - - thumb_func_start sub_8099480 -sub_8099480: @ 8099480 - push {r4,lr} - ldr r0, _080994A0 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _080994A4 @ =0x00001034 - adds r4, r0, r1 - ldr r0, [r4] - cmp r0, 0 - beq _08099498 - bl sub_8099BE0 - movs r0, 0 - str r0, [r4] -_08099498: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080994A0: .4byte gUnknown_083B6DB4 -_080994A4: .4byte 0x00001034 - thumb_func_end sub_8099480 - - thumb_func_start sub_80994A8 -sub_80994A8: @ 80994A8 - push {r4-r6,lr} - movs r3, 0 - ldr r1, _080994FC @ =gUnknown_083B6DB4 - ldr r1, [r1] - ldr r2, _08099500 @ =0x00001038 - adds r5, r1, r2 - lsls r0, 16 - asrs r4, r0, 16 - movs r6, 0x5 - negs r6, r6 -_080994BC: - lsls r0, r3, 2 - adds r2, r5, r0 - ldr r1, [r2] - cmp r1, 0 - beq _0809950E - ldrh r0, [r1, 0x22] - adds r0, r4, r0 - strh r0, [r1, 0x22] - ldr r2, [r2] - ldrh r1, [r2, 0x26] - ldrh r0, [r2, 0x22] - adds r1, r0 - adds r0, r2, 0 - adds r0, 0x29 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - lsls r0, 16 - movs r1, 0x80 - lsls r1, 13 - adds r0, r1 - lsrs r0, 16 - cmp r0, 0xC0 - bls _08099504 - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _0809950E - .align 2, 0 -_080994FC: .4byte gUnknown_083B6DB4 -_08099500: .4byte 0x00001038 -_08099504: - adds r2, 0x3E - ldrb r1, [r2] - adds r0, r6, 0 - ands r0, r1 - strb r0, [r2] -_0809950E: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x5 - bls _080994BC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80994A8 - - thumb_func_start sub_8099520 -sub_8099520: @ 8099520 - push {r4,lr} - lsls r0, 24 - ldr r1, _08099544 @ =gUnknown_083B6DB4 - ldr r1, [r1] - lsrs r0, 22 - ldr r2, _08099548 @ =0x00001038 - adds r1, r2 - adds r4, r1, r0 - ldr r0, [r4] - cmp r0, 0 - beq _0809953E - bl sub_8099BE0 - movs r0, 0 - str r0, [r4] -_0809953E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099544: .4byte gUnknown_083B6DB4 -_08099548: .4byte 0x00001038 - thumb_func_end sub_8099520 - - thumb_func_start sub_809954C -sub_809954C: @ 809954C - push {r4-r6,lr} - movs r5, 0 - ldr r0, _0809957C @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08099580 @ =0x00001038 - adds r6, r0, r1 -_08099558: - lsls r0, r5, 2 - adds r4, r6, r0 - ldr r0, [r4] - cmp r0, 0 - beq _0809956A - bl sub_8099BE0 - movs r0, 0 - str r0, [r4] -_0809956A: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _08099558 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809957C: .4byte gUnknown_083B6DB4 -_08099580: .4byte 0x00001038 - thumb_func_end sub_809954C - - thumb_func_start sub_8099584 -sub_8099584: @ 8099584 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r1, 24 - adds r5, r1, 0 - cmp r4, 0 - bne _080995B4 - ldr r3, _080995AC @ =gUnknown_083B6DB4 - ldr r0, [r3] - ldr r5, _080995B0 @ =0x00001034 - adds r2, r0, r5 - lsls r1, 2 - adds r5, 0x4 - adds r0, r5 - adds r0, r1 - ldr r1, [r0] - str r1, [r2] - str r4, [r0] - b _080995D0 - .align 2, 0 -_080995AC: .4byte gUnknown_083B6DB4 -_080995B0: .4byte 0x00001034 -_080995B4: - cmp r4, 0x1 - bne _080995F4 - ldr r3, _080995FC @ =gUnknown_083B6DB4 - ldr r0, [r3] - ldr r1, _08099600 @ =0x00001034 - adds r2, r0, r1 - lsls r1, r5, 2 - ldr r4, _08099604 @ =0x00001050 - adds r0, r4 - adds r0, r1 - ldr r1, [r0] - str r1, [r2] - movs r1, 0 - str r1, [r0] -_080995D0: - ldr r2, [r3] - ldr r5, _08099600 @ =0x00001034 - adds r2, r5 - ldr r1, [r2] - ldr r0, _08099608 @ =sub_80999C4 - str r0, [r1, 0x1C] - ldr r3, [r2] - ldrb r1, [r3, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3, 0x5] - ldr r0, [r2] - adds r0, 0x43 - movs r1, 0x7 - strb r1, [r0] -_080995F4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080995FC: .4byte gUnknown_083B6DB4 -_08099600: .4byte 0x00001034 -_08099604: .4byte 0x00001050 -_08099608: .4byte sub_80999C4 - thumb_func_end sub_8099584 - - thumb_func_start sub_809960C -sub_809960C: @ 809960C - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - cmp r0, 0xE - bne _08099654 - ldr r4, _08099648 @ =gUnknown_083B6DB4 - ldr r0, [r4] - lsls r1, r6, 2 - ldr r2, _0809964C @ =0x00001038 - adds r3, r0, r2 - adds r3, r1 - ldr r1, _08099650 @ =0x00001034 - adds r0, r1 - ldr r2, [r0] - str r2, [r3] - ldrb r1, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, [r3] - adds r0, 0x43 - movs r1, 0xB - strb r1, [r0] - b _0809968A - .align 2, 0 -_08099648: .4byte gUnknown_083B6DB4 -_0809964C: .4byte 0x00001038 -_08099650: .4byte 0x00001034 -_08099654: - ldr r5, _080996A0 @ =gUnknown_083B6DB4 - ldr r0, [r5] - lsls r1, r6, 2 - ldr r2, _080996A4 @ =0x00001050 - adds r3, r0, r2 - adds r3, r1 - ldr r1, _080996A8 @ =0x00001034 - adds r0, r1 - ldr r2, [r0] - str r2, [r3] - ldrb r1, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r4, [r3] - adds r0, r6, 0 - movs r1, 0x6 - bl __umodsi3 - movs r1, 0x12 - subs r1, r0 - adds r4, 0x43 - strb r1, [r4] - adds r4, r5, 0 -_0809968A: - ldr r1, [r4] - ldr r2, _080996A8 @ =0x00001034 - adds r1, r2 - ldr r2, [r1] - ldr r0, _080996AC @ =SpriteCallbackDummy - str r0, [r2, 0x1C] - movs r0, 0 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080996A0: .4byte gUnknown_083B6DB4 -_080996A4: .4byte 0x00001050 -_080996A8: .4byte 0x00001034 -_080996AC: .4byte SpriteCallbackDummy - thumb_func_end sub_809960C - - thumb_func_start sub_80996B0 -sub_80996B0: @ 80996B0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - cmp r0, 0xE - bne _080996D8 - ldr r3, _080996CC @ =gUnknown_083B6DB4 - ldr r1, [r3] - ldr r0, _080996D0 @ =0x000010c8 - adds r2, r1, r0 - lsls r0, r4, 2 - ldr r4, _080996D4 @ =0x00001038 - b _080996E4 - .align 2, 0 -_080996CC: .4byte gUnknown_083B6DB4 -_080996D0: .4byte 0x000010c8 -_080996D4: .4byte 0x00001038 -_080996D8: - ldr r3, _08099704 @ =gUnknown_083B6DB4 - ldr r1, [r3] - ldr r0, _08099708 @ =0x000010c8 - adds r2, r1, r0 - lsls r0, r4, 2 - ldr r4, _0809970C @ =0x00001050 -_080996E4: - adds r0, r4 - adds r1, r0 - str r1, [r2] - ldr r1, [r3] - ldr r2, _08099710 @ =0x00001034 - adds r0, r1, r2 - ldr r2, [r0] - ldr r0, _08099714 @ =SpriteCallbackDummy - str r0, [r2, 0x1C] - ldr r4, _08099718 @ =0x00001170 - adds r1, r4 - movs r0, 0 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099704: .4byte gUnknown_083B6DB4 -_08099708: .4byte 0x000010c8 -_0809970C: .4byte 0x00001050 -_08099710: .4byte 0x00001034 -_08099714: .4byte SpriteCallbackDummy -_08099718: .4byte 0x00001170 - thumb_func_end sub_80996B0 - - thumb_func_start sub_809971C -sub_809971C: @ 809971C - push {r4-r7,lr} - ldr r0, _08099730 @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r0, _08099734 @ =0x00001170 - adds r7, r2, r0 - ldrb r0, [r7] - cmp r0, 0x10 - bne _08099738 - movs r0, 0 - b _08099800 - .align 2, 0 -_08099730: .4byte gUnknown_083B6DB4 -_08099734: .4byte 0x00001170 -_08099738: - adds r0, 0x1 - strb r0, [r7] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809975E - ldr r1, _08099808 @ =0x000010c8 - adds r0, r2, r1 - ldr r0, [r0] - ldr r1, [r0] - ldrh r0, [r1, 0x22] - subs r0, 0x1 - strh r0, [r1, 0x22] - ldr r4, _0809980C @ =0x00001034 - adds r0, r2, r4 - ldr r1, [r0] - ldrh r0, [r1, 0x22] - adds r0, 0x1 - strh r0, [r1, 0x22] -_0809975E: - ldr r0, _08099808 @ =0x000010c8 - adds r5, r2, r0 - ldr r0, [r5] - ldr r1, [r0] - ldr r3, _08099810 @ =gSineTable - ldrb r0, [r7] - lsls r0, 4 - adds r0, r3 - movs r4, 0 - ldrsh r0, [r0, r4] - cmp r0, 0 - bge _08099778 - adds r0, 0xF -_08099778: - asrs r0, 4 - strh r0, [r1, 0x24] - ldr r0, _0809980C @ =0x00001034 - adds r6, r2, r0 - ldr r1, [r6] - ldrb r0, [r7] - lsls r0, 4 - adds r0, r3 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - bge _08099792 - adds r0, 0xF -_08099792: - asrs r0, 4 - negs r0, r0 - strh r0, [r1, 0x24] - ldrb r0, [r7] - cmp r0, 0x8 - bne _080997DE - ldr r4, [r6] - ldr r0, [r5] - ldr r0, [r0] - ldrb r0, [r0, 0x5] - movs r2, 0xC - ands r2, r0 - ldrb r3, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - adds r0, r1, 0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, 0x5] - ldr r2, [r6] - ldr r0, [r5] - ldr r0, [r0] - adds r0, 0x43 - ldrb r0, [r0] - adds r2, 0x43 - strb r0, [r2] - ldr r0, [r5] - ldr r2, [r0] - ldrb r0, [r2, 0x5] - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r2, 0x5] - ldr r0, [r5] - ldr r0, [r0] - adds r0, 0x43 - movs r1, 0x7 - strb r1, [r0] -_080997DE: - ldrb r0, [r7] - cmp r0, 0x10 - bne _080997FE - ldr r1, [r6] - ldr r0, [r5] - ldr r0, [r0] - str r0, [r6] - ldr r0, [r5] - str r1, [r0] - ldr r1, [r6] - ldr r0, _08099814 @ =sub_80999C4 - str r0, [r1, 0x1C] - ldr r0, [r5] - ldr r1, [r0] - ldr r0, _08099818 @ =SpriteCallbackDummy - str r0, [r1, 0x1C] -_080997FE: - movs r0, 0x1 -_08099800: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08099808: .4byte 0x000010c8 -_0809980C: .4byte 0x00001034 -_08099810: .4byte gSineTable -_08099814: .4byte sub_80999C4 -_08099818: .4byte SpriteCallbackDummy - thumb_func_end sub_809971C - - thumb_func_start sub_809981C -sub_809981C: @ 809981C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - cmp r0, 0x1 - beq _08099858 - cmp r0, 0x1 - bgt _08099836 - cmp r0, 0 - beq _0809983C - b _080998C0 -_08099836: - cmp r2, 0x2 - beq _0809987C - b _080998C0 -_0809983C: - ldr r3, _0809984C @ =gUnknown_083B6DB4 - ldr r1, [r3] - ldr r0, _08099850 @ =0x000010cc - adds r2, r1, r0 - lsls r0, r4, 2 - ldr r4, _08099854 @ =0x00001038 - b _08099864 - .align 2, 0 -_0809984C: .4byte gUnknown_083B6DB4 -_08099850: .4byte 0x000010cc -_08099854: .4byte 0x00001038 -_08099858: - ldr r3, _08099870 @ =gUnknown_083B6DB4 - ldr r1, [r3] - ldr r0, _08099874 @ =0x000010cc - adds r2, r1, r0 - lsls r0, r4, 2 - ldr r4, _08099878 @ =0x00001050 -_08099864: - adds r0, r4 - adds r1, r0 - str r1, [r2] - adds r0, r3, 0 - b _0809988A - .align 2, 0 -_08099870: .4byte gUnknown_083B6DB4 -_08099874: .4byte 0x000010cc -_08099878: .4byte 0x00001050 -_0809987C: - ldr r0, _080998C8 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r3, _080998CC @ =0x000010cc - adds r2, r1, r3 - ldr r4, _080998D0 @ =0x00001034 - adds r1, r4 - str r1, [r2] -_0809988A: - ldr r0, [r0] - ldr r1, _080998CC @ =0x000010cc - adds r4, r0, r1 - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0 - beq _080998C0 - bl InitSpriteAffineAnim - ldr r0, [r4] - ldr r2, [r0] - ldrb r1, [r2, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x1] - ldr r0, [r4] - ldr r1, [r0] - ldr r0, _080998D4 @ =gUnknown_083B6F5C - str r0, [r1, 0x10] - ldr r0, [r4] - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAffineAnim -_080998C0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080998C8: .4byte gUnknown_083B6DB4 -_080998CC: .4byte 0x000010cc -_080998D0: .4byte 0x00001034 -_080998D4: .4byte gUnknown_083B6F5C - thumb_func_end sub_809981C - - thumb_func_start sub_80998D8 -sub_80998D8: @ 80998D8 - push {lr} - ldr r0, _080998FC @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08099900 @ =0x000010cc - adds r0, r1 - ldr r0, [r0] - ldr r1, [r0] - cmp r1, 0 - beq _080998F8 - adds r3, r1, 0 - adds r3, 0x3E - ldrb r2, [r3] - movs r0, 0x4 - ands r0, r2 - cmp r0, 0 - beq _08099904 -_080998F8: - movs r0, 0 - b _0809991A - .align 2, 0 -_080998FC: .4byte gUnknown_083B6DB4 -_08099900: .4byte 0x000010cc -_08099904: - adds r0, r1, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08099918 - movs r0, 0x4 - orrs r0, r2 - strb r0, [r3] -_08099918: - movs r0, 0x1 -_0809991A: - pop {r1} - bx r1 - thumb_func_end sub_80998D8 - - thumb_func_start sub_8099920 -sub_8099920: @ 8099920 - push {r4,lr} - ldr r0, _08099950 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08099954 @ =0x000010cc - adds r4, r0, r1 - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0 - beq _0809994A - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldr r0, [r4] - ldr r0, [r0] - bl sub_8099BE0 - ldr r1, [r4] - movs r0, 0 - str r0, [r1] -_0809994A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099950: .4byte gUnknown_083B6DB4 -_08099954: .4byte 0x000010cc - thumb_func_end sub_8099920 - - thumb_func_start sub_8099958 -sub_8099958: @ 8099958 - push {lr} - ldr r0, _08099988 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809998C @ =0x000010cc - adds r3, r0, r1 - ldr r0, [r3] - ldr r0, [r0] - cmp r0, 0 - beq _08099982 - adds r2, r0, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r0, [r3] - ldr r0, [r0] - movs r1, 0x1 - bl StartSpriteAffineAnim -_08099982: - pop {r0} - bx r0 - .align 2, 0 -_08099988: .4byte gUnknown_083B6DB4 -_0809998C: .4byte 0x000010cc - thumb_func_end sub_8099958 - - thumb_func_start sub_8099990 -sub_8099990: @ 8099990 - push {lr} - ldr r0, _080999A4 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _080999A8 @ =0x000010cc - adds r2, r0, r1 - ldr r0, [r2] - cmp r0, 0 - bne _080999AC - movs r0, 0 - b _080999C0 - .align 2, 0 -_080999A4: .4byte gUnknown_083B6DB4 -_080999A8: .4byte 0x000010cc -_080999AC: - ldr r0, [r0] - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080999BE - movs r0, 0 - str r0, [r2] -_080999BE: - movs r0, 0x1 -_080999C0: - pop {r1} - bx r1 - thumb_func_end sub_8099990 - - thumb_func_start sub_80999C4 -sub_80999C4: @ 80999C4 - ldr r1, _080999E4 @ =gUnknown_083B6DB4 - ldr r1, [r1] - movs r2, 0x8E - lsls r2, 5 - adds r1, r2 - ldr r2, [r1] - ldrh r2, [r2, 0x20] - strh r2, [r0, 0x20] - ldr r2, [r1] - ldrh r1, [r2, 0x26] - ldrh r2, [r2, 0x22] - adds r1, r2 - adds r1, 0x4 - strh r1, [r0, 0x22] - bx lr - .align 2, 0 -_080999E4: .4byte gUnknown_083B6DB4 - thumb_func_end sub_80999C4 - - thumb_func_start sub_80999E8 -sub_80999E8: @ 80999E8 - push {r4-r6,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r4, 0 - ldr r1, _08099A58 @ =gUnknown_083B6DB4 - ldr r0, [r1] - movs r2, 0x89 - lsls r2, 5 - adds r0, r2 - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, r3 - beq _08099A20 - adds r6, r2, 0 - movs r5, 0x89 - lsls r5, 5 -_08099A08: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x27 - bhi _08099A20 - ldr r0, [r6] - lsls r1, r4, 1 - adds r0, r5 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r3 - bne _08099A08 -_08099A20: - cmp r4, 0x28 - bne _08099A60 - movs r4, 0 - ldr r0, [r2] - movs r5, 0x89 - lsls r5, 5 - adds r0, r5 - ldrh r0, [r0] - cmp r0, 0 - beq _08099A4E - adds r6, r2, 0 -_08099A36: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x27 - bhi _08099A4E - ldr r0, [r6] - lsls r1, r4, 1 - adds r0, r5 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - bne _08099A36 -_08099A4E: - cmp r4, 0x28 - bne _08099A60 - ldr r0, _08099A5C @ =0x0000ffff - b _08099A94 - .align 2, 0 -_08099A58: .4byte gUnknown_083B6DB4 -_08099A5C: .4byte 0x0000ffff -_08099A60: - ldr r1, [r2] - lsls r2, r4, 1 - movs r5, 0x89 - lsls r5, 5 - adds r0, r1, r5 - adds r0, r2 - strh r3, [r0] - ldr r0, _08099A9C @ =0x000010d0 - adds r1, r0 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r4, 20 - lsrs r4, 16 - ldr r1, _08099AA0 @ =gMonIconTable - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - lsls r1, r4, 5 - ldr r2, _08099AA4 @ =0x06010000 - adds r1, r2 - ldr r2, _08099AA8 @ =0x04000080 - bl CpuSet - adds r0, r4, 0 -_08099A94: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08099A9C: .4byte 0x000010d0 -_08099AA0: .4byte gMonIconTable -_08099AA4: .4byte 0x06010000 -_08099AA8: .4byte 0x04000080 - thumb_func_end sub_80999E8 - - thumb_func_start sub_8099AAC -sub_8099AAC: @ 8099AAC - push {r4-r7,lr} - lsls r0, 16 - lsrs r6, r0, 16 - movs r3, 0 - ldr r0, _08099AE4 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x89 - lsls r1, 5 - adds r5, r0, r1 - subs r1, 0x50 - adds r4, r0, r1 - ldr r0, _08099AE8 @ =0x0000ffff - adds r7, r0, 0 -_08099AC6: - lsls r1, r3, 1 - adds r2, r5, r1 - ldrh r0, [r2] - cmp r0, r6 - bne _08099AEC - adds r1, r4, r1 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ands r0, r7 - cmp r0, 0 - bne _08099AF6 - strh r0, [r2] - b _08099AF6 - .align 2, 0 -_08099AE4: .4byte gUnknown_083B6DB4 -_08099AE8: .4byte 0x0000ffff -_08099AEC: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x27 - bls _08099AC6 -_08099AF6: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8099AAC - - thumb_func_start sub_8099AFC -sub_8099AFC: @ 8099AFC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - ldr r4, [sp, 0x3C] - ldr r5, [sp, 0x40] - lsls r0, 16 - lsrs r6, r0, 16 - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x18] - lsls r3, 16 - lsrs r3, 16 - mov r8, r3 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - mov r9, r5 - mov r2, sp - ldr r0, _08099BAC @ =gSpriteTemplate_83B6F14 - ldm r0!, {r3,r5,r7} - stm r2!, {r3,r5,r7} - ldm r0!, {r3,r5,r7} - stm r2!, {r3,r5,r7} - adds r0, r6, 0 - bl mon_icon_convert_unown_species_id - mov r10, r0 - mov r6, r10 - mov r2, sp - ldr r1, _08099BB0 @ =gMonIconPaletteIndices - adds r1, r6, r1 - ldr r3, _08099BB4 @ =0x0000dac0 - adds r0, r3, 0 - ldrb r1, [r1] - adds r0, r1 - strh r0, [r2, 0x2] - adds r0, r6, 0 - bl sub_80999E8 - lsls r0, 16 - lsrs r0, 16 - adds r5, r0, 0 - ldr r0, _08099BB8 @ =0x0000ffff - cmp r5, r0 - beq _08099BCE - ldr r7, [sp, 0x18] - lsls r1, r7, 16 - asrs r1, 16 - mov r0, r8 - lsls r2, r0, 16 - asrs r2, 16 - mov r0, sp - mov r3, r9 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _08099BC8 - ldr r1, _08099BBC @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldr r2, _08099BC0 @ =0x000003ff - ands r2, r5 - ldrh r3, [r0, 0x4] - ldr r1, _08099BC4 @ =0xfffffc00 - ands r1, r3 - orrs r1, r2 - strh r1, [r0, 0x4] - movs r1, 0x3 - ands r4, r1 - lsls r3, r4, 2 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r3 - strb r1, [r0, 0x5] - mov r1, r10 - strh r1, [r0, 0x2E] - b _08099BD0 - .align 2, 0 -_08099BAC: .4byte gSpriteTemplate_83B6F14 -_08099BB0: .4byte gMonIconPaletteIndices -_08099BB4: .4byte 0x0000dac0 -_08099BB8: .4byte 0x0000ffff -_08099BBC: .4byte gSprites -_08099BC0: .4byte 0x000003ff -_08099BC4: .4byte 0xfffffc00 -_08099BC8: - adds r0, r6, 0 - bl sub_8099AAC -_08099BCE: - movs r0, 0 -_08099BD0: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8099AFC - - thumb_func_start sub_8099BE0 -sub_8099BE0: @ 8099BE0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - bl sub_8099AAC - adds r0, r4, 0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8099BE0 - - thumb_func_start sub_8099BF8 -sub_8099BF8: @ 8099BF8 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08099C50 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08099C54 @ =0x000008ba - adds r2, r0, r1 - movs r1, 0 - strb r1, [r2] - ldr r2, _08099C58 @ =0x000008b4 - adds r0, r2 - strh r1, [r0] - str r1, [sp] - ldr r1, _08099C5C @ =0x040000d4 - mov r0, sp - str r0, [r1] - ldr r0, _08099C60 @ =0x0600d000 - str r0, [r1, 0x4] - ldr r0, _08099C64 @ =0x85000400 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r0, r4, 0 - movs r1, 0 - bl sub_8099EB0 - adds r0, r4, 0 - bl sub_809A23C - bl sub_809A6DC - adds r0, r4, 0 - bl sub_8098C48 - ldr r1, _08099C68 @ =REG_BG2CNT - ldr r2, _08099C6C @ =0x00005a0a - adds r0, r2, 0 - strh r0, [r1] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099C50: .4byte gUnknown_083B6DB4 -_08099C54: .4byte 0x000008ba -_08099C58: .4byte 0x000008b4 -_08099C5C: .4byte 0x040000d4 -_08099C60: .4byte 0x0600d000 -_08099C64: .4byte 0x85000400 -_08099C68: .4byte REG_BG2CNT -_08099C6C: .4byte 0x00005a0a - thumb_func_end sub_8099BF8 - - thumb_func_start sub_8099C70 -sub_8099C70: @ 8099C70 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - bl sub_8099D90 - lsls r0, 24 - asrs r4, r0, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8099EB0 - ldr r0, _08099D10 @ =gUnknown_083B6DB4 - ldr r2, [r0] - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 1 - ldr r3, _08099D14 @ =0x000008b6 - adds r1, r2, r3 - strh r0, [r1] - ldr r0, _08099D18 @ =0x000008b8 - adds r1, r2, r0 - movs r0, 0x20 - strh r0, [r1] - ldr r1, _08099D1C @ =0x000008bb - adds r0, r2, r1 - strb r5, [r0] - movs r1, 0 - cmp r4, 0 - bgt _08099CAE - movs r1, 0x5 -_08099CAE: - ldr r3, _08099D20 @ =0x000008bc - adds r0, r2, r3 - strh r1, [r0] - ldr r1, _08099D24 @ =0x000008be - adds r0, r2, r1 - strh r4, [r0] - movs r1, 0x38 - cmp r4, 0 - ble _08099CC6 - movs r3, 0x84 - lsls r3, 1 - adds r1, r3, 0 -_08099CC6: - movs r3, 0x8C - lsls r3, 4 - adds r0, r2, r3 - strh r1, [r0] - movs r1, 0 - cmp r4, 0 - bgt _08099CD6 - movs r1, 0x5 -_08099CD6: - ldr r3, _08099D28 @ =0x000008c2 - adds r0, r2, r3 - strh r1, [r0] - ldr r1, _08099D2C @ =0x000008c4 - adds r0, r2, r1 - strh r4, [r0] - adds r3, 0x4 - adds r1, r2, r3 - movs r0, 0 - strh r0, [r1] - ldr r0, _08099D30 @ =0x000008c8 - adds r1, r2, r0 - movs r0, 0x2 - strh r0, [r1] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_809900C - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_809A3D0 - adds r0, r4, 0 - bl sub_809A774 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08099D10: .4byte gUnknown_083B6DB4 -_08099D14: .4byte 0x000008b6 -_08099D18: .4byte 0x000008b8 -_08099D1C: .4byte 0x000008bb -_08099D20: .4byte 0x000008bc -_08099D24: .4byte 0x000008be -_08099D28: .4byte 0x000008c2 -_08099D2C: .4byte 0x000008c4 -_08099D30: .4byte 0x000008c8 - thumb_func_end sub_8099C70 - - thumb_func_start sub_8099D34 -sub_8099D34: @ 8099D34 - push {r4,lr} - bl sub_80990AC - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _08099D78 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r0, _08099D7C @ =0x000008b8 - adds r3, r1, r0 - ldrh r0, [r3] - cmp r0, 0 - beq _08099D88 - ldr r4, _08099D80 @ =0x000008b4 - adds r2, r1, r4 - adds r4, 0x2 - adds r0, r1, r4 - ldrh r0, [r0] - ldrh r1, [r2] - adds r0, r1 - ldr r1, _08099D84 @ =0x000001ff - ands r0, r1 - strh r0, [r2] - ldrh r0, [r3] - subs r0, 0x1 - strh r0, [r3] - lsls r0, 16 - cmp r0, 0 - bne _08099D74 - bl sub_809A598 - bl sub_809A810 -_08099D74: - movs r0, 0x1 - b _08099D8A - .align 2, 0 -_08099D78: .4byte gUnknown_083B6DB4 -_08099D7C: .4byte 0x000008b8 -_08099D80: .4byte 0x000008b4 -_08099D84: .4byte 0x000001ff -_08099D88: - adds r0, r2, 0 -_08099D8A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8099D34 - - thumb_func_start sub_8099D90 -sub_8099D90: @ 8099D90 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl get_preferred_box - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0 - cmp r1, r4 - beq _08099DBA -_08099DA4: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xD - bls _08099DB0 - movs r1, 0 -_08099DB0: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r1, r4 - bne _08099DA4 -_08099DBA: - movs r0, 0x1 - negs r0, r0 - cmp r2, 0x6 - bhi _08099DC4 - movs r0, 0x1 -_08099DC4: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8099D90 - - thumb_func_start sub_8099DCC -sub_8099DCC: @ 8099DCC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08099DF8 @ =gPokemonStorage - ldr r2, _08099DFC @ =0x000083c2 - adds r1, r2 - adds r0, r1 - movs r1, 0 - strb r4, [r0] - ldr r0, _08099E00 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r2, _08099E04 @ =0x00001032 - adds r0, r2 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099DF8: .4byte gPokemonStorage -_08099DFC: .4byte 0x000083c2 -_08099E00: .4byte gUnknown_083B6DB4 -_08099E04: .4byte 0x00001032 - thumb_func_end sub_8099DCC - - thumb_func_start sub_8099E08 -sub_8099E08: @ 8099E08 - push {r4,r5,lr} - sub sp, 0x4 - ldr r0, _08099E24 @ =gUnknown_083B6DB4 - ldr r5, [r0] - ldr r0, _08099E28 @ =0x00001032 - adds r4, r5, r0 - ldrb r0, [r4] - cmp r0, 0x1 - beq _08099E54 - cmp r0, 0x1 - bgt _08099E2C - cmp r0, 0 - beq _08099E36 - b _08099EA6 - .align 2, 0 -_08099E24: .4byte gUnknown_083B6DB4 -_08099E28: .4byte 0x00001032 -_08099E2C: - cmp r0, 0x2 - beq _08099E90 - cmp r0, 0x3 - beq _08099EA2 - b _08099EA6 -_08099E36: - ldr r1, _08099E4C @ =0x00000d08 - adds r0, r5, r1 - ldr r0, [r0] - ldr r1, _08099E50 @ =0x0000ffff - str r1, [sp] - movs r1, 0x1 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _08099E9A - .align 2, 0 -_08099E4C: .4byte 0x00000d08 -_08099E50: .4byte 0x0000ffff -_08099E54: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08099EA6 - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_8099EB0 - bl sub_809A654 - ldr r1, _08099E88 @ =0x00000d08 - adds r0, r5, r1 - ldr r0, [r0] - ldr r1, _08099E8C @ =0x0000ffff - str r1, [sp] - movs r1, 0x1 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _08099E9A - .align 2, 0 -_08099E88: .4byte 0x00000d08 -_08099E8C: .4byte 0x0000ffff -_08099E90: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08099EA6 -_08099E9A: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _08099EA6 -_08099EA2: - movs r0, 0 - b _08099EA8 -_08099EA6: - movs r0, 0x1 -_08099EA8: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8099E08 - - thumb_func_start sub_8099EB0 -sub_8099EB0: @ 8099EB0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - cmp r1, 0 - beq _08099ED8 - ldr r0, _08099F38 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r2, 0 - ldr r3, _08099F3C @ =0x000008ba - adds r1, r0, r3 - ldrb r0, [r1] - cmp r0, 0 - bne _08099ED0 - movs r2, 0x1 -_08099ED0: - strb r2, [r1] - ldr r0, _08099F40 @ =0x0600d000 - bl sub_809A14C -_08099ED8: - ldr r0, _08099F44 @ =gPokemonStorage - ldr r1, _08099F48 @ =0x000083c2 - adds r0, r1 - adds r0, r4, r0 - ldrb r4, [r0] - lsls r4, 4 - ldr r0, _08099F4C @ =gWallpaperTable - adds r4, r0 - ldr r0, [r4, 0xC] - ldr r1, _08099F38 @ =gUnknown_083B6DB4 - ldr r5, [r1] - ldr r2, _08099F3C @ =0x000008ba - adds r6, r5, r2 - ldrb r2, [r6] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 20 - movs r3, 0x80 - lsls r3, 15 - adds r1, r3 - lsrs r1, 16 - movs r2, 0x60 - bl LoadPalette - ldr r0, [r4, 0x8] - ldr r1, _08099F50 @ =0x00000d62 - adds r5, r1 - adds r1, r5, 0 - bl LZ77UnCompWram - ldr r0, _08099F40 @ =0x0600d000 - lsls r2, r7, 24 - asrs r2, 24 - ldrb r3, [r6] - adds r1, r5, 0 - bl sub_8099F58 - ldr r0, [r4] - ldrb r1, [r6] - lsls r1, 13 - ldr r2, _08099F54 @ =0x06008000 - adds r1, r2 - bl LZ77UnCompVram - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099F38: .4byte gUnknown_083B6DB4 -_08099F3C: .4byte 0x000008ba -_08099F40: .4byte 0x0600d000 -_08099F44: .4byte gPokemonStorage -_08099F48: .4byte 0x000083c2 -_08099F4C: .4byte gWallpaperTable -_08099F50: .4byte 0x00000d62 -_08099F54: .4byte 0x06008000 - thumb_func_end sub_8099EB0 - - thumb_func_start sub_8099F58 -sub_8099F58: @ 8099F58 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - mov r9, r0 - adds r5, r1, 0 - lsls r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r0, r3, 8 - str r0, [sp] - lsls r0, r3, 1 - adds r0, r3 - adds r0, 0x4 - lsls r0, 28 - lsrs r0, 16 - str r0, [sp, 0x4] - ldr r0, _08099FB8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08099FBC @ =0x000008b4 - adds r0, r1 - ldrh r1, [r0] - lsrs r1, 3 - adds r1, 0xA - lsrs r0, r2, 24 - mov r8, r0 - asrs r2, 24 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - movs r0, 0x3F - ands r1, r0 - str r1, [sp, 0x8] - adds r2, r1, 0 - cmp r2, 0xC - bgt _08099FC0 - movs r6, 0x14 - movs r3, 0 - lsls r0, r2, 1 - adds r0, 0x80 - mov r1, r9 - adds r4, r1, r0 - movs r7, 0 - b _0809A020 - .align 2, 0 -_08099FB8: .4byte gUnknown_083B6DB4 -_08099FBC: .4byte 0x000008b4 -_08099FC0: - cmp r2, 0x1F - bgt _08099FE6 - movs r0, 0x20 - subs r0, r2 - lsls r0, 16 - movs r1, 0x14 - lsrs r6, r0, 16 - asrs r0, 16 - subs r1, r0 - lsls r1, 16 - lsrs r3, r1, 16 - lsls r0, r2, 1 - adds r0, 0x80 - mov r2, r9 - adds r4, r2, r0 - movs r7, 0x88 - lsls r7, 4 - add r7, r9 - b _0809A020 -_08099FE6: - cmp r2, 0x2C - bgt _08099FFE - movs r6, 0x14 - movs r3, 0 - lsls r0, r2, 1 - movs r1, 0x84 - lsls r1, 4 - adds r0, r1 - mov r2, r9 - adds r4, r2, r0 - movs r7, 0 - b _0809A020 -_08099FFE: - movs r0, 0x40 - subs r0, r2 - lsls r0, 16 - movs r1, 0x14 - lsrs r6, r0, 16 - asrs r0, 16 - subs r1, r0 - lsls r1, 16 - lsrs r3, r1, 16 - lsls r0, r2, 1 - movs r1, 0x84 - lsls r1, 4 - adds r0, r1 - mov r2, r9 - adds r4, r2, r0 - mov r7, r9 - adds r7, 0x80 -_0809A020: - movs r1, 0 - mov r0, r8 - lsls r0, 24 - str r0, [sp, 0x14] - lsls r0, r6, 16 - asrs r0, 16 - mov r8, r0 - lsls r3, 16 - str r3, [sp, 0xC] - asrs r2, r3, 16 - str r2, [sp, 0x10] -_0809A036: - movs r3, 0 - adds r0, r4, 0 - adds r0, 0x40 - str r0, [sp, 0x18] - adds r2, r7, 0 - adds r2, 0x40 - str r2, [sp, 0x1C] - adds r1, 0x1 - mov r10, r1 - cmp r3, r8 - bge _0809A07A - ldr r0, _0809A0D4 @ =0x00000fff - mov r12, r0 - movs r6, 0xF0 - lsls r6, 8 -_0809A054: - ldrh r2, [r5] - mov r0, r12 - ands r0, r2 - ldr r1, [sp] - adds r0, r1, r0 - adds r1, r6, 0 - ands r1, r2 - ldr r2, [sp, 0x4] - adds r1, r2, r1 - orrs r1, r0 - lsls r0, r3, 1 - adds r0, r4 - strh r1, [r0] - adds r5, 0x2 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r8 - blt _0809A054 -_0809A07A: - movs r3, 0 - ldr r0, [sp, 0x10] - cmp r3, r0 - bge _0809A0B4 - ldr r1, _0809A0D4 @ =0x00000fff - mov r12, r1 - movs r6, 0xF0 - lsls r6, 8 - ldr r2, [sp, 0xC] - asrs r4, r2, 16 -_0809A08E: - ldrh r2, [r5] - mov r0, r12 - ands r0, r2 - ldr r1, [sp] - adds r0, r1, r0 - adds r1, r6, 0 - ands r1, r2 - ldr r2, [sp, 0x4] - adds r1, r2, r1 - orrs r1, r0 - lsls r0, r3, 1 - adds r0, r7 - strh r1, [r0] - adds r5, 0x2 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r4 - blt _0809A08E -_0809A0B4: - ldr r4, [sp, 0x18] - ldr r7, [sp, 0x1C] - mov r1, r10 - lsls r0, r1, 16 - lsrs r1, r0, 16 - cmp r1, 0x11 - bls _0809A036 - ldr r0, [sp, 0x14] - asrs r2, r0, 24 - cmp r2, 0 - beq _0809A13A - cmp r2, 0 - ble _0809A0D8 - ldr r1, [sp, 0x8] - adds r1, 0x14 - b _0809A0DC - .align 2, 0 -_0809A0D4: .4byte 0x00000fff -_0809A0D8: - ldr r1, [sp, 0x8] - subs r1, 0x4 -_0809A0DC: - movs r0, 0x3F - ands r1, r0 - adds r4, r1, 0 - adds r0, r4, 0 - cmp r0, 0x1F - bgt _0809A0EE - lsls r0, 1 - adds r0, 0x80 - b _0809A0F6 -_0809A0EE: - lsls r0, 1 - movs r2, 0x84 - lsls r2, 4 - adds r0, r2 -_0809A0F6: - mov r1, r9 - adds r2, r1, r0 - movs r3, 0 - movs r6, 0 -_0809A0FE: - movs r1, 0 - adds r5, r3, 0x1 - lsls r3, r4, 16 -_0809A104: - strh r6, [r2] - adds r2, 0x40 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x11 - bls _0809A104 - asrs r0, r3, 16 - adds r4, r0, 0x1 - movs r0, 0x3F - ands r4, r0 - adds r0, r4, 0 - cmp r0, 0x1F - bgt _0809A126 - lsls r0, 1 - adds r0, 0x80 - b _0809A12E -_0809A126: - lsls r0, 1 - movs r2, 0x84 - lsls r2, 4 - adds r0, r2 -_0809A12E: - mov r1, r9 - adds r2, r1, r0 - lsls r0, r5, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _0809A0FE -_0809A13A: - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8099F58 - - thumb_func_start sub_809A14C -sub_809A14C: @ 809A14C - push {r4-r6,lr} - adds r2, r0, 0 - ldr r0, _0809A174 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809A178 @ =0x000008b4 - adds r0, r1 - ldrh r0, [r0] - lsrs r0, 3 - adds r3, r0, 0 - adds r3, 0x1E - movs r0, 0x3F - ands r3, r0 - adds r0, r3, 0 - cmp r0, 0x1F - bgt _0809A17C - lsls r0, 1 - movs r6, 0x98 - lsls r6, 3 - adds r0, r6 - b _0809A184 - .align 2, 0 -_0809A174: .4byte gUnknown_083B6DB4 -_0809A178: .4byte 0x000008b4 -_0809A17C: - lsls r0, 1 - movs r1, 0xC8 - lsls r1, 4 - adds r0, r1 -_0809A184: - adds r2, r0 - movs r0, 0 - movs r5, 0 - movs r4, 0x3F -_0809A18C: - strh r5, [r2] - adds r2, 0x2 - adds r3, 0x1 - ands r3, r4 - adds r1, r3, 0 - cmp r1, 0 - bne _0809A19E - ldr r6, _0809A1B8 @ =0xfffff7c0 - adds r2, r6 -_0809A19E: - cmp r1, 0x20 - bne _0809A1A8 - movs r1, 0xF8 - lsls r1, 3 - adds r2, r1 -_0809A1A8: - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2B - bls _0809A18C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809A1B8: .4byte 0xfffff7c0 - thumb_func_end sub_809A14C - - thumb_func_start sub_809A1BC -sub_809A1BC: @ 809A1BC - push {r4-r6,lr} - sub sp, 0x8 - adds r3, r0, 0 - adds r2, r1, 0 - ldr r0, _0809A228 @ =gUnknown_083B6DB8 - ldr r5, [r0] - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r4, _0809A22C @ =0x040000d4 - str r1, [r4] - str r5, [r4, 0x4] - movs r6, 0x80 - lsls r6, 1 - ldr r0, _0809A230 @ =0x81000100 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _0809A234 @ =gWindowConfig_81E6D38 - adds r1, r5, 0 - str r3, [sp, 0x4] - bl sub_8004E3C - str r5, [r4] - ldr r3, [sp, 0x4] - str r3, [r4, 0x4] - ldr r1, _0809A238 @ =0x80000040 - str r1, [r4, 0x8] - ldr r0, [r4, 0x8] - adds r0, r5, r6 - str r0, [r4] - adds r0, r3, 0 - adds r0, 0x80 - str r0, [r4, 0x4] - str r1, [r4, 0x8] - ldr r0, [r4, 0x8] - adds r0, r5, 0 - adds r0, 0x80 - str r0, [r4] - adds r6, r3, r6 - str r6, [r4, 0x4] - str r1, [r4, 0x8] - ldr r0, [r4, 0x8] - movs r0, 0xC0 - lsls r0, 1 - adds r5, r0 - str r5, [r4] - adds r3, r0 - str r3, [r4, 0x4] - str r1, [r4, 0x8] - ldr r0, [r4, 0x8] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809A228: .4byte gUnknown_083B6DB8 -_0809A22C: .4byte 0x040000d4 -_0809A230: .4byte 0x81000100 -_0809A234: .4byte gWindowConfig_81E6D38 -_0809A238: .4byte 0x80000040 - thumb_func_end sub_809A1BC - - thumb_func_start sub_809A23C -sub_809A23C: @ 809A23C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - mov r8, r0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _0809A384 @ =gUnknown_083B6DB4 - ldr r5, [r0] - ldr r1, _0809A388 @ =0x000008ca - adds r7, r5, r1 - str r7, [sp, 0x18] - mov r2, sp - adds r2, 0x18 - str r2, [sp, 0x20] - ldr r0, _0809A38C @ =0x00030200 - str r0, [r2, 0x4] - mov r1, sp - ldr r3, _0809A390 @ =0x00000ccc - adds r0, r5, r3 - str r0, [sp] - ldr r4, _0809A394 @ =0x0000dac8 - strh r4, [r1, 0x4] - str r0, [sp, 0x8] - ldr r6, _0809A398 @ =0xffffdac9 - strh r6, [r1, 0xC] - add r0, sp, 0x10 - movs r1, 0 - movs r2, 0x8 - bl memset - ldr r0, _0809A39C @ =gPokemonStorage - mov r9, r0 - ldr r0, _0809A3A0 @ =0x000083c2 - add r0, r9 - add r0, r8 - ldrb r1, [r0] - ldr r2, _0809A3A4 @ =gUnknown_083BB0A8 - lsls r1, 2 - adds r0, r1, r2 - ldrh r3, [r0] - ldr r6, _0809A3A8 @ =0x00000ce8 - adds r0, r5, r6 - strh r3, [r0] - adds r2, 0x2 - adds r1, r2 - ldrh r1, [r1] - ldr r2, _0809A3AC @ =0x00000cea - adds r0, r5, r2 - strh r1, [r0] - mov r0, sp - bl LoadSpritePalettes - ldr r3, _0809A3B0 @ =0x00000d08 - adds r6, r5, r3 - movs r0, 0xFC - lsls r0, 2 - str r0, [r6] - adds r0, r4, 0 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - movs r2, 0x87 - lsls r2, 1 - mov r10, r2 - add r1, r10 - ldr r3, _0809A3B4 @ =0x00000cec - adds r2, r5, r3 - strh r1, [r2] - movs r4, 0x80 - lsls r4, 9 - adds r1, r4, 0 - lsls r1, r0 - ldr r0, [r6] - orrs r0, r1 - str r0, [r6] - ldr r0, _0809A3B8 @ =0x0000dac9 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - add r1, r10 - ldr r2, _0809A3BC @ =0x00000cee - adds r5, r2 - strh r1, [r5] - lsls r4, r0 - ldr r0, [r6] - orrs r0, r4 - str r0, [r6] - mov r3, r8 - lsls r4, r3, 3 - add r4, r8 - ldr r6, _0809A3C0 @ =0x00008344 - add r9, r6 - add r4, r9 - adds r0, r7, 0 - adds r1, r4, 0 - bl sub_809A1BC - ldr r0, [sp, 0x20] - bl LoadSpriteSheet - adds r0, r4, 0 - bl sub_8072CA4 - lsls r0, 24 - lsrs r0, 24 - bl sub_809A6D0 - movs r4, 0 - lsls r0, 16 - asrs r6, r0, 16 -_0809A328: - lsls r1, r4, 5 - adds r1, r6, r1 - lsls r1, 16 - asrs r1, 16 - ldr r0, _0809A3C4 @ =gSpriteTemplate_83BB2B8 - movs r2, 0x1C - movs r3, 0x17 - bl CreateSprite - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _0809A384 @ =gUnknown_083B6DB4 - ldr r5, [r0] - lsls r0, r4, 2 - movs r3, 0xCF - lsls r3, 4 - adds r2, r5, r3 - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0809A3C8 @ =gSprites - adds r0, r1 - str r0, [r2] - lsls r1, r4, 24 - lsrs r1, 24 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _0809A328 - ldr r6, _0809A3CC @ =0x00000cca - adds r1, r5, r6 - movs r0, 0 - strb r0, [r1] - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809A384: .4byte gUnknown_083B6DB4 -_0809A388: .4byte 0x000008ca -_0809A38C: .4byte 0x00030200 -_0809A390: .4byte 0x00000ccc -_0809A394: .4byte 0x0000dac8 -_0809A398: .4byte 0xffffdac9 -_0809A39C: .4byte gPokemonStorage -_0809A3A0: .4byte 0x000083c2 -_0809A3A4: .4byte gUnknown_083BB0A8 -_0809A3A8: .4byte 0x00000ce8 -_0809A3AC: .4byte 0x00000cea -_0809A3B0: .4byte 0x00000d08 -_0809A3B4: .4byte 0x00000cec -_0809A3B8: .4byte 0x0000dac9 -_0809A3BC: .4byte 0x00000cee -_0809A3C0: .4byte 0x00008344 -_0809A3C4: .4byte gSpriteTemplate_83BB2B8 -_0809A3C8: .4byte gSprites -_0809A3CC: .4byte 0x00000cca - thumb_func_end sub_809A23C - - thumb_func_start sub_809A3D0 -sub_809A3D0: @ 809A3D0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x28] - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - ldr r3, _0809A43C @ =gUnknown_083B6DB4 - ldr r5, [r3] - ldr r1, _0809A440 @ =0x000008ca - adds r0, r5, r1 - str r0, [sp, 0x18] - add r2, sp, 0x18 - ldr r4, _0809A444 @ =0x0000ffff - mov r9, r4 - movs r6, 0xC0 - lsls r6, 10 - mov r8, r6 - ldr r0, _0809A448 @ =0x00030200 - str r0, [r2, 0x4] - mov r1, sp - ldr r0, _0809A44C @ =gSpriteTemplate_83BB2B8 - ldm r0!, {r4,r6,r7} - stm r1!, {r4,r6,r7} - ldm r0!, {r4,r6,r7} - stm r1!, {r4,r6,r7} - movs r1, 0 - ldr r7, _0809A450 @ =0x00000cca - adds r4, r5, r7 - ldrb r0, [r4] - adds r6, r2, 0 - cmp r0, 0 - bne _0809A41E - movs r1, 0x1 -_0809A41E: - strb r1, [r4] - cmp r1, 0 - bne _0809A458 - ldr r0, [r6, 0x4] - mov r1, r9 - ands r0, r1 - mov r4, r8 - orrs r0, r4 - str r0, [r6, 0x4] - ldr r7, _0809A454 @ =0x00000cec - adds r0, r5, r7 - ldrh r0, [r0] - mov r8, r0 - b _0809A478 - .align 2, 0 -_0809A43C: .4byte gUnknown_083B6DB4 -_0809A440: .4byte 0x000008ca -_0809A444: .4byte 0x0000ffff -_0809A448: .4byte 0x00030200 -_0809A44C: .4byte gSpriteTemplate_83BB2B8 -_0809A450: .4byte 0x00000cca -_0809A454: .4byte 0x00000cec -_0809A458: - ldr r0, [r6, 0x4] - mov r1, r9 - ands r0, r1 - movs r1, 0x80 - lsls r1, 11 - orrs r0, r1 - str r0, [r6, 0x4] - ldr r4, _0809A570 @ =0x00000cec - adds r0, r5, r4 - ldrh r0, [r0] - mov r8, r0 - mov r1, sp - movs r0, 0x4 - strh r0, [r1] - ldr r0, _0809A574 @ =0x0000dac9 - strh r0, [r1, 0x2] -_0809A478: - ldr r0, [r3] - ldr r7, _0809A578 @ =0x000008ca - adds r0, r7 - ldr r1, [sp, 0x28] - lsls r5, r1, 3 - adds r5, r1 - ldr r4, _0809A57C @ =gUnknown_020383E4 - adds r5, r4 - adds r1, r5, 0 - bl sub_809A1BC - adds r0, r6, 0 - bl LoadSpriteSheet - adds r4, 0x7E - ldr r3, [sp, 0x28] - adds r4, r3, r4 - ldrb r0, [r4] - lsls r0, 2 - ldr r1, _0809A580 @ =gUnknown_083BB0A8 - adds r0, r1 - mov r1, r8 - movs r2, 0x4 - bl LoadPalette - adds r0, r5, 0 - bl sub_8072CA4 - lsls r0, 24 - lsrs r0, 24 - bl sub_809A6D0 - lsls r0, 16 - mov r4, r10 - lsls r2, r4, 24 - asrs r2, 24 - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 6 - lsrs r6, r0, 16 - str r6, [sp, 0x20] - asrs r0, 16 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x24] - movs r7, 0 - negs r2, r2 - mov r9, r2 - movs r0, 0x1 - mov r10, r0 -_0809A4DE: - lsls r1, r7, 5 - mov r8, r1 - ldr r3, [sp, 0x24] - lsls r1, r3, 16 - asrs r1, 16 - add r1, r8 - lsls r1, 16 - asrs r1, 16 - mov r0, sp - movs r2, 0x1C - movs r3, 0x17 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0809A584 @ =gUnknown_083B6DB4 - ldr r4, [r1] - lsls r6, r7, 2 - ldr r1, _0809A588 @ =0x00000cf8 - adds r2, r4, r1 - adds r2, r6 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _0809A58C @ =gSprites - adds r1, r0 - str r1, [r2] - mov r3, r9 - lsls r5, r3, 1 - add r5, r9 - lsls r5, 1 - strh r5, [r1, 0x2E] - ldr r1, [r2] - ldr r3, [sp, 0x20] - lsls r0, r3, 16 - asrs r0, 16 - add r0, r8 - strh r0, [r1, 0x30] - ldr r0, [r2] - mov r1, r10 - strh r1, [r0, 0x32] - ldr r0, [r2] - ldr r1, _0809A590 @ =sub_809A5E8 - str r1, [r0, 0x1C] - lsls r1, r7, 24 - lsrs r1, 24 - bl StartSpriteAnim - movs r3, 0xCF - lsls r3, 4 - adds r4, r3 - adds r4, r6 - ldr r0, [r4] - strh r5, [r0, 0x2E] - ldr r0, [r4] - mov r6, r10 - strh r6, [r0, 0x30] - ldr r1, [r4] - ldr r0, _0809A594 @ =sub_809A61C - str r0, [r1, 0x1C] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, 0x1 - bls _0809A4DE - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809A570: .4byte 0x00000cec -_0809A574: .4byte 0x0000dac9 -_0809A578: .4byte 0x000008ca -_0809A57C: .4byte gUnknown_020383E4 -_0809A580: .4byte gUnknown_083BB0A8 -_0809A584: .4byte gUnknown_083B6DB4 -_0809A588: .4byte 0x00000cf8 -_0809A58C: .4byte gSprites -_0809A590: .4byte sub_809A5E8 -_0809A594: .4byte sub_809A61C - thumb_func_end sub_809A3D0 - - thumb_func_start sub_809A598 -sub_809A598: @ 809A598 - push {lr} - ldr r0, _0809A5B0 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809A5B4 @ =0x00000cca - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0809A5B8 - movs r0, 0x4 - bl FreeSpriteTilesByTag - b _0809A5BE - .align 2, 0 -_0809A5B0: .4byte gUnknown_083B6DB4 -_0809A5B4: .4byte 0x00000cca -_0809A5B8: - movs r0, 0x3 - bl FreeSpriteTilesByTag -_0809A5BE: - ldr r0, _0809A5E0 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r3, 0xCF - lsls r3, 4 - adds r2, r0, r3 - adds r3, 0x8 - adds r1, r0, r3 - ldr r1, [r1] - str r1, [r2] - ldr r2, _0809A5E4 @ =0x00000cf4 - adds r1, r0, r2 - adds r3, 0x4 - adds r0, r3 - ldr r0, [r0] - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0809A5E0: .4byte gUnknown_083B6DB4 -_0809A5E4: .4byte 0x00000cf4 - thumb_func_end sub_809A598 - - thumb_func_start sub_809A5E8 -sub_809A5E8: @ 809A5E8 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x32] - movs r3, 0x32 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _0809A5FC - subs r0, r1, 0x1 - strh r0, [r2, 0x32] - b _0809A614 -_0809A5FC: - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x30 - ldrsh r1, [r2, r3] - cmp r0, r1 - bne _0809A614 - ldr r0, _0809A618 @ =SpriteCallbackDummy - str r0, [r2, 0x1C] -_0809A614: - pop {r0} - bx r0 - .align 2, 0 -_0809A618: .4byte SpriteCallbackDummy - thumb_func_end sub_809A5E8 - - thumb_func_start sub_809A61C -sub_809A61C: @ 809A61C - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x30] - movs r3, 0x30 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _0809A630 - subs r0, r1, 0x1 - strh r0, [r2, 0x30] - b _0809A64E -_0809A630: - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x32] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xC0 - bls _0809A64E - adds r0, r2, 0 - bl DestroySprite -_0809A64E: - pop {r0} - bx r0 - thumb_func_end sub_809A61C - - thumb_func_start sub_809A654 -sub_809A654: @ 809A654 - push {lr} - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0809A690 @ =gPokemonStorage - ldr r2, _0809A694 @ =0x000083c2 - adds r1, r2 - adds r0, r1 - ldrb r1, [r0] - ldr r0, _0809A698 @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r3, _0809A69C @ =0x00000cca - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _0809A6A8 - lsls r0, r1, 2 - ldr r1, _0809A6A0 @ =gUnknown_083BB0A8 - adds r0, r1 - adds r3, 0x22 - adds r1, r2, r3 - ldrh r1, [r1] - lsls r1, 1 - ldr r2, _0809A6A4 @ =gPlttBufferUnfaded - adds r1, r2 - movs r2, 0x2 - bl CpuSet - b _0809A6C0 - .align 2, 0 -_0809A690: .4byte gPokemonStorage -_0809A694: .4byte 0x000083c2 -_0809A698: .4byte gUnknown_083B6DB4 -_0809A69C: .4byte 0x00000cca -_0809A6A0: .4byte gUnknown_083BB0A8 -_0809A6A4: .4byte gPlttBufferUnfaded -_0809A6A8: - lsls r0, r1, 2 - ldr r1, _0809A6C4 @ =gUnknown_083BB0A8 - adds r0, r1 - ldr r3, _0809A6C8 @ =0x00000cee - adds r1, r2, r3 - ldrh r1, [r1] - lsls r1, 1 - ldr r2, _0809A6CC @ =gPlttBufferUnfaded - adds r1, r2 - movs r2, 0x2 - bl CpuSet -_0809A6C0: - pop {r0} - bx r0 - .align 2, 0 -_0809A6C4: .4byte gUnknown_083BB0A8 -_0809A6C8: .4byte 0x00000cee -_0809A6CC: .4byte gPlttBufferUnfaded - thumb_func_end sub_809A654 - - thumb_func_start sub_809A6D0 -sub_809A6D0: @ 809A6D0 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 25 - movs r0, 0xB0 - subs r0, r1 - bx lr - thumb_func_end sub_809A6D0 - - thumb_func_start sub_809A6DC -sub_809A6DC: @ 809A6DC - push {r4,r5,lr} - ldr r0, _0809A760 @ =gUnknown_083BB288 - bl LoadSpriteSheet - ldr r0, _0809A764 @ =gUnknown_083BB290 - bl LoadSpritePalette - movs r5, 0 -_0809A6EC: - lsls r1, r5, 4 - adds r1, r5 - lsls r1, 19 - movs r0, 0xB8 - lsls r0, 15 - adds r1, r0 - asrs r1, 16 - ldr r0, _0809A768 @ =gSpriteTemplate_83BB2F0 - movs r2, 0x1C - movs r3, 0x15 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _0809A73E - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0809A76C @ =gSprites - adds r4, r0, r1 - lsls r1, r5, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - movs r0, 0x1 - cmp r5, 0 - bne _0809A72C - movs r1, 0x1 - negs r1, r1 - adds r0, r1, 0 -_0809A72C: - strh r0, [r4, 0x34] - ldr r0, _0809A770 @ =gUnknown_083B6DB4 - ldr r0, [r0] - lsls r1, r5, 2 - movs r2, 0xD0 - lsls r2, 4 - adds r0, r2 - adds r0, r1 - str r4, [r0] -_0809A73E: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _0809A6EC - bl sub_809BF2C - lsls r0, 24 - cmp r0, 0 - beq _0809A758 - movs r0, 0x1 - bl sub_809A860 -_0809A758: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809A760: .4byte gUnknown_083BB288 -_0809A764: .4byte gUnknown_083BB290 -_0809A768: .4byte gSpriteTemplate_83BB2F0 -_0809A76C: .4byte gSprites -_0809A770: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809A6DC - - thumb_func_start sub_809A774 -sub_809A774: @ 809A774 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r2, 0 - ldr r7, _0809A7C4 @ =gUnknown_083B6DB4 - ldr r0, [r7] - movs r1, 0xD0 - lsls r1, 4 - adds r3, r0, r1 - movs r5, 0 - movs r4, 0x2 -_0809A78A: - lsls r1, r2, 2 - adds r1, r3, r1 - ldr r0, [r1] - strh r5, [r0, 0x24] - ldr r0, [r1] - strh r4, [r0, 0x2E] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1 - bls _0809A78A - lsls r0, r6, 24 - cmp r0, 0 - bge _0809A7CC - ldr r1, [r7] - movs r2, 0xD0 - lsls r2, 4 - adds r3, r1, r2 - ldr r2, [r3] - movs r0, 0x1D - strh r0, [r2, 0x30] - ldr r0, _0809A7C8 @ =0x00000d04 - adds r1, r0 - ldr r2, [r1] - movs r0, 0x5 - strh r0, [r2, 0x30] - ldr r0, [r3] - movs r2, 0x48 - b _0809A7E8 - .align 2, 0 -_0809A7C4: .4byte gUnknown_083B6DB4 -_0809A7C8: .4byte 0x00000d04 -_0809A7CC: - ldr r1, [r7] - movs r2, 0xD0 - lsls r2, 4 - adds r3, r1, r2 - ldr r2, [r3] - movs r0, 0x5 - strh r0, [r2, 0x30] - ldr r0, _0809A80C @ =0x00000d04 - adds r1, r0 - ldr r2, [r1] - movs r0, 0x1D - strh r0, [r2, 0x30] - ldr r0, [r3] - movs r2, 0xF8 -_0809A7E8: - strh r2, [r0, 0x32] - ldr r0, [r1] - strh r2, [r0, 0x32] - ldr r1, [r7] - movs r2, 0xD0 - lsls r2, 4 - adds r0, r1, r2 - ldr r2, [r0] - movs r0, 0 - strh r0, [r2, 0x3C] - ldr r0, _0809A80C @ =0x00000d04 - adds r1, r0 - ldr r1, [r1] - movs r0, 0x1 - strh r0, [r1, 0x3C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809A80C: .4byte 0x00000d04 - thumb_func_end sub_809A774 - - thumb_func_start sub_809A810 -sub_809A810: @ 809A810 - push {r4-r6,lr} - movs r3, 0 - ldr r0, _0809A85C @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0xD0 - lsls r1, 4 - adds r4, r0, r1 - movs r5, 0 - movs r6, 0x5 - negs r6, r6 -_0809A824: - lsls r1, r3, 2 - adds r1, r4, r1 - ldr r2, [r1] - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 3 - adds r0, 0x5C - strh r0, [r2, 0x20] - ldr r0, [r1] - strh r5, [r0, 0x24] - ldr r1, [r1] - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r6, 0 - ands r0, r2 - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x1 - bls _0809A824 - movs r0, 0x1 - bl sub_809A860 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809A85C: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809A810 - - thumb_func_start sub_809A860 -sub_809A860: @ 809A860 - push {r4,r5,lr} - lsls r0, 24 - cmp r0, 0 - beq _0809A89C - movs r2, 0 - ldr r0, _0809A898 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0xD0 - lsls r1, 4 - adds r4, r0, r1 - movs r3, 0 - movs r5, 0x1 -_0809A878: - lsls r1, r2, 2 - adds r1, r4, r1 - ldr r0, [r1] - strh r5, [r0, 0x2E] - ldr r0, [r1] - strh r3, [r0, 0x30] - ldr r0, [r1] - strh r3, [r0, 0x32] - ldr r0, [r1] - strh r3, [r0, 0x36] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1 - bls _0809A878 - b _0809A8BC - .align 2, 0 -_0809A898: .4byte gUnknown_083B6DB4 -_0809A89C: - movs r2, 0 - ldr r0, _0809A8C4 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r3, 0xD0 - lsls r3, 4 - adds r1, r0, r3 - movs r3, 0 -_0809A8AA: - lsls r0, r2, 2 - adds r0, r1, r0 - ldr r0, [r0] - strh r3, [r0, 0x2E] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1 - bls _0809A8AA -_0809A8BC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809A8C4: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809A860 - - thumb_func_start sub_809A8C8 -sub_809A8C8: @ 809A8C8 - push {lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0x4 - bhi _0809A994 - lsls r0, 2 - ldr r1, _0809A8E0 @ =_0809A8E4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809A8E0: .4byte _0809A8E4 - .align 2, 0 -_0809A8E4: - .4byte _0809A8F8 - .4byte _0809A8FE - .4byte _0809A92C - .4byte _0809A932 - .4byte _0809A984 -_0809A8F8: - movs r0, 0 - strh r0, [r2, 0x24] - b _0809A994 -_0809A8FE: - ldrh r0, [r2, 0x30] - adds r0, 0x1 - movs r1, 0 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _0809A994 - strh r1, [r2, 0x30] - ldrh r0, [r2, 0x34] - ldrh r3, [r2, 0x24] - adds r0, r3 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x32] - adds r0, 0x1 - strh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _0809A994 - strh r1, [r2, 0x32] - strh r1, [r2, 0x24] - b _0809A994 -_0809A92C: - movs r0, 0x3 - strh r0, [r2, 0x2E] - b _0809A994 -_0809A932: - ldr r0, _0809A97C @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r0, _0809A980 @ =0x000008b6 - adds r1, r0 - ldrh r0, [r2, 0x20] - ldrh r1, [r1] - subs r0, r1 - strh r0, [r2, 0x20] - subs r0, 0x49 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAE - bls _0809A958 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] -_0809A958: - ldrh r0, [r2, 0x30] - subs r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _0809A994 - ldrh r0, [r2, 0x32] - strh r0, [r2, 0x20] - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - movs r0, 0x4 - strh r0, [r2, 0x2E] - b _0809A994 - .align 2, 0 -_0809A97C: .4byte gUnknown_083B6DB4 -_0809A980: .4byte 0x000008b6 -_0809A984: - ldr r0, _0809A998 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809A99C @ =0x000008b6 - adds r0, r1 - ldrh r1, [r2, 0x20] - ldrh r0, [r0] - subs r1, r0 - strh r1, [r2, 0x20] -_0809A994: - pop {r0} - bx r0 - .align 2, 0 -_0809A998: .4byte gUnknown_083B6DB4 -_0809A99C: .4byte 0x000008b6 - thumb_func_end sub_809A8C8 - - thumb_func_start sub_809A9A0 -sub_809A9A0: @ 809A9A0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - adds r6, r1, 0 - ldr r4, [sp, 0x18] - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0809AA0C @ =gSpriteTemplate_83BB2F0 - lsls r5, 16 - asrs r5, 16 - lsls r6, 16 - asrs r6, 16 - adds r1, r5, 0 - adds r2, r6, 0 - adds r3, r4, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _0809AA18 - movs r1, 0x1 - ands r1, r7 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r5, _0809AA10 @ =gSprites - adds r6, r4, r5 - adds r0, r6, 0 - bl StartSpriteAnim - movs r0, 0x3 - mov r1, r8 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r6, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r6, 0x5] - adds r5, 0x1C - adds r4, r5 - ldr r0, _0809AA14 @ =SpriteCallbackDummy - str r0, [r4] - adds r0, r6, 0 - b _0809AA1A - .align 2, 0 -_0809AA0C: .4byte gSpriteTemplate_83BB2F0 -_0809AA10: .4byte gSprites -_0809AA14: .4byte SpriteCallbackDummy -_0809AA18: - movs r0, 0 -_0809AA1A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809A9A0 - - thumb_func_start sub_809AA24 -sub_809AA24: @ 809AA24 - push {lr} - ldr r0, _0809AA38 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldrb r1, [r0, 0x5] - cmp r1, 0x1 - beq _0809AA40 - ldr r1, _0809AA3C @ =gUnknown_020384E4 - movs r0, 0 - strb r0, [r1] - b _0809AA44 - .align 2, 0 -_0809AA38: .4byte gUnknown_083B6DB4 -_0809AA3C: .4byte gUnknown_020384E4 -_0809AA40: - ldr r0, _0809AA78 @ =gUnknown_020384E4 - strb r1, [r0] -_0809AA44: - ldr r0, _0809AA7C @ =gUnknown_020384E5 - movs r1, 0 - strb r1, [r0] - ldr r0, _0809AA80 @ =gUnknown_020384E6 - strb r1, [r0] - ldr r0, _0809AA84 @ =gUnknown_020384E7 - strb r1, [r0] - ldr r0, _0809AA88 @ =gUnknown_020384E8 - strb r1, [r0] - ldr r0, _0809AA8C @ =gUnknown_020384E9 - strb r1, [r0] - bl sub_809B0D4 - bl sub_809CC04 - ldr r0, _0809AA90 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809AA94 @ =0x000011e2 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - bl sub_809BF74 - pop {r0} - bx r0 - .align 2, 0 -_0809AA78: .4byte gUnknown_020384E4 -_0809AA7C: .4byte gUnknown_020384E5 -_0809AA80: .4byte gUnknown_020384E6 -_0809AA84: .4byte gUnknown_020384E7 -_0809AA88: .4byte gUnknown_020384E8 -_0809AA8C: .4byte gUnknown_020384E9 -_0809AA90: .4byte gUnknown_083B6DB4 -_0809AA94: .4byte 0x000011e2 - thumb_func_end sub_809AA24 - - thumb_func_start sub_809AA98 -sub_809AA98: @ 809AA98 - push {lr} - bl sub_809CC04 - bl sub_809C028 - ldr r0, _0809AAC0 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809AAC4 @ =0x000011e2 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r0, _0809AAC8 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809AABA - bl sub_8098BF0 -_0809AABA: - pop {r0} - bx r0 - .align 2, 0 -_0809AAC0: .4byte gUnknown_083B6DB4 -_0809AAC4: .4byte 0x000011e2 -_0809AAC8: .4byte gUnknown_020384E6 - thumb_func_end sub_809AA98 - - thumb_func_start sub_809AACC -sub_809AACC: @ 809AACC - push {r4-r6,lr} - adds r4, r2, 0 - adds r6, r3, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - cmp r0, 0x4 - bhi _0809AB84 - lsls r0, 2 - ldr r1, _0809AAE8 @ =_0809AAEC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809AAE8: .4byte _0809AAEC - .align 2, 0 -_0809AAEC: - .4byte _0809AB00 - .4byte _0809AB2E - .4byte _0809AB56 - .4byte _0809AB5E - .4byte _0809AB7C -_0809AB00: - adds r0, r5, 0 - movs r1, 0x6 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, 0x64 - strh r1, [r4] - adds r0, r5, 0 - movs r1, 0x6 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, 0x20 - strh r1, [r6] - b _0809AB84 -_0809AB2E: - cmp r5, 0 - bne _0809AB3A - movs r0, 0x68 - strh r0, [r4] - movs r0, 0x34 - b _0809AB82 -_0809AB3A: - cmp r5, 0x6 - bne _0809AB46 - movs r0, 0x98 - strh r0, [r4] - movs r0, 0x84 - b _0809AB82 -_0809AB46: - movs r0, 0x98 - strh r0, [r4] - subs r1, r5, 0x1 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, 0x4 - b _0809AB82 -_0809AB56: - movs r0, 0xA2 - strh r0, [r4] - movs r0, 0xC - b _0809AB82 -_0809AB5E: - ldr r0, _0809AB78 @ =gUnknown_020384E6 - ldrb r0, [r0] - movs r1, 0xE - cmp r0, 0 - beq _0809AB6A - movs r1, 0x8 -_0809AB6A: - strh r1, [r6] - movs r0, 0x58 - muls r0, r5 - adds r0, 0x78 - strh r0, [r4] - b _0809AB84 - .align 2, 0 -_0809AB78: .4byte gUnknown_020384E6 -_0809AB7C: - movs r0, 0xA0 - strh r0, [r4] - movs r0, 0x60 -_0809AB82: - strh r0, [r6] -_0809AB84: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_809AACC - - thumb_func_start sub_809AB8C -sub_809AB8C: @ 809AB8C - push {lr} - ldr r0, _0809ABB4 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _0809ABC0 - cmp r0, 0x1 - bne _0809ABF8 - ldr r0, _0809ABB8 @ =gUnknown_020384E5 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0809ABBC @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - b _0809ABEA - .align 2, 0 -_0809ABB4: .4byte gUnknown_020384E4 -_0809ABB8: .4byte gUnknown_020384E5 -_0809ABBC: .4byte gPlayerParty -_0809ABC0: - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldr r1, _0809ABF0 @ =gUnknown_020384E5 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _0809ABF4 @ =gUnknown_020300A4 - adds r1, r2 - adds r0, r1 - movs r1, 0xB - bl GetBoxMonData -_0809ABEA: - lsls r0, 16 - lsrs r0, 16 - b _0809ABFA - .align 2, 0 -_0809ABF0: .4byte gUnknown_020384E5 -_0809ABF4: .4byte gUnknown_020300A4 -_0809ABF8: - movs r0, 0 -_0809ABFA: - pop {r1} - bx r1 - thumb_func_end sub_809AB8C - - thumb_func_start sub_809AC00 -sub_809AC00: @ 809AC00 - push {r4-r6,lr} - ldr r0, _0809AC14 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r0, _0809AC18 @ =0x000011dc - adds r1, r4, r0 - ldrh r0, [r1] - cmp r0, 0 - bne _0809AC1C - movs r0, 0 - b _0809AD2C - .align 2, 0 -_0809AC14: .4byte gUnknown_083B6DB4 -_0809AC18: .4byte 0x000011dc -_0809AC1C: - subs r0, 0x1 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - beq _0809AD0C - ldr r1, _0809ACF4 @ =0x000011c8 - adds r3, r4, r1 - ldr r2, _0809ACF8 @ =0x000011d0 - adds r1, r4, r2 - ldr r0, [r3] - ldr r1, [r1] - adds r0, r1 - str r0, [r3] - ldr r6, _0809ACFC @ =0x000011cc - adds r2, r4, r6 - ldr r0, _0809AD00 @ =0x000011d4 - adds r1, r4, r0 - ldr r0, [r2] - ldr r1, [r1] - adds r0, r1 - str r0, [r2] - movs r1, 0x8E - lsls r1, 5 - adds r5, r4, r1 - ldr r1, [r5] - ldr r0, [r3] - asrs r0, 8 - strh r0, [r1, 0x20] - ldr r1, [r5] - ldr r0, [r2] - asrs r0, 8 - strh r0, [r1, 0x22] - ldr r1, [r5] - ldrh r2, [r1, 0x20] - movs r3, 0x20 - ldrsh r0, [r1, r3] - movs r3, 0x80 - lsls r3, 1 - cmp r0, r3 - ble _0809AC78 - ldr r6, _0809AD04 @ =0xffffff00 - adds r0, r2, r6 - lsls r0, 16 - asrs r0, 16 - adds r0, 0x40 - strh r0, [r1, 0x20] -_0809AC78: - ldr r1, [r5] - ldrh r2, [r1, 0x20] - movs r6, 0x20 - ldrsh r0, [r1, r6] - cmp r0, 0x3F - bgt _0809AC90 - movs r0, 0x40 - subs r0, r2 - lsls r0, 16 - asrs r0, 16 - subs r0, r3, r0 - strh r0, [r1, 0x20] -_0809AC90: - ldr r1, [r5] - ldrh r2, [r1, 0x22] - movs r3, 0x22 - ldrsh r0, [r1, r3] - cmp r0, 0xB0 - ble _0809ACA8 - adds r0, r2, 0 - subs r0, 0xB0 - lsls r0, 16 - asrs r0, 16 - subs r0, 0x10 - strh r0, [r1, 0x22] -_0809ACA8: - ldr r2, [r5] - ldrh r3, [r2, 0x22] - movs r6, 0x22 - ldrsh r0, [r2, r6] - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bge _0809ACC4 - subs r0, r1, r3 - movs r1, 0xB0 - lsls r0, 16 - asrs r0, 16 - subs r1, r0 - strh r1, [r2, 0x22] -_0809ACC4: - ldr r0, _0809AD08 @ =0x000011e3 - adds r1, r4, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _0809AD2A - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _0809AD2A - ldr r2, [r5] - adds r2, 0x3F - ldrb r3, [r2] - lsrs r1, r3, 1 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 1 - movs r0, 0x3 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - b _0809AD2A - .align 2, 0 -_0809ACF4: .4byte 0x000011c8 -_0809ACF8: .4byte 0x000011d0 -_0809ACFC: .4byte 0x000011cc -_0809AD00: .4byte 0x000011d4 -_0809AD04: .4byte 0xffffff00 -_0809AD08: .4byte 0x000011e3 -_0809AD0C: - movs r1, 0x8E - lsls r1, 5 - adds r2, r4, r1 - ldr r1, [r2] - ldr r3, _0809AD34 @ =0x000011d8 - adds r0, r4, r3 - ldrh r0, [r0] - strh r0, [r1, 0x20] - ldr r1, [r2] - ldr r6, _0809AD38 @ =0x000011da - adds r0, r4, r6 - ldrh r0, [r0] - strh r0, [r1, 0x22] - bl sub_809AFB8 -_0809AD2A: - movs r0, 0x1 -_0809AD2C: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0809AD34: .4byte 0x000011d8 -_0809AD38: .4byte 0x000011da - thumb_func_end sub_809AC00 - - thumb_func_start sub_809AD3C -sub_809AD3C: @ 809AD3C - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - mov r6, sp - adds r6, 0x2 - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - adds r3, r6, 0 - bl sub_809AACC - ldr r0, _0809AD88 @ =gUnknown_083B6DB4 - ldr r1, [r0] - movs r2, 0x8F - lsls r2, 5 - adds r0, r1, r2 - strb r4, [r0] - ldr r3, _0809AD8C @ =0x000011e1 - adds r0, r1, r3 - strb r5, [r0] - mov r0, sp - ldrh r2, [r0] - subs r3, 0x9 - adds r0, r1, r3 - strh r2, [r0] - ldrh r0, [r6] - ldr r2, _0809AD90 @ =0x000011da - adds r1, r2 - strh r0, [r1] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809AD88: .4byte gUnknown_083B6DB4 -_0809AD8C: .4byte 0x000011e1 -_0809AD90: .4byte 0x000011da - thumb_func_end sub_809AD3C - - thumb_func_start sub_809AD94 -sub_809AD94: @ 809AD94 - push {r4-r7,lr} - ldr r0, _0809ADB0 @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r3, _0809ADB4 @ =0x000011de - adds r1, r2, r3 - ldrh r1, [r1] - adds r4, r0, 0 - cmp r1, 0 - beq _0809ADBC - ldr r0, _0809ADB8 @ =0x000011dc - adds r1, r2, r0 - movs r0, 0xC - b _0809ADC2 - .align 2, 0 -_0809ADB0: .4byte gUnknown_083B6DB4 -_0809ADB4: .4byte 0x000011de -_0809ADB8: .4byte 0x000011dc -_0809ADBC: - ldr r3, _0809AE04 @ =0x000011dc - adds r1, r2, r3 - movs r0, 0x6 -_0809ADC2: - strh r0, [r1] - ldr r2, [r4] - ldr r0, _0809AE08 @ =0x000011e3 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _0809ADDA - ldr r3, _0809AE04 @ =0x000011dc - adds r0, r2, r3 - ldrh r0, [r0] - lsrs r0, 1 - strb r0, [r1] -_0809ADDA: - ldr r1, _0809AE0C @ =0x000011de - adds r0, r2, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0809AE14 - cmp r1, 0x1 - beq _0809AE30 - ldr r3, _0809AE10 @ =0x000011da - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x8E - lsls r3, 5 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x22 - ldrsh r0, [r0, r2] - b _0809AE46 - .align 2, 0 -_0809AE04: .4byte 0x000011dc -_0809AE08: .4byte 0x000011e3 -_0809AE0C: .4byte 0x000011de -_0809AE10: .4byte 0x000011da -_0809AE14: - ldr r3, _0809AE2C @ =0x000011da - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x8E - lsls r3, 5 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x22 - ldrsh r0, [r0, r2] - adds r0, 0xC0 - b _0809AE46 - .align 2, 0 -_0809AE2C: .4byte 0x000011da -_0809AE30: - ldr r3, _0809AE74 @ =0x000011da - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x8E - lsls r3, 5 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x22 - ldrsh r0, [r0, r2] - subs r0, 0xC0 -_0809AE46: - subs r7, r1, r0 - ldr r2, [r4] - ldr r3, _0809AE78 @ =0x000011df - adds r0, r2, r3 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0809AE80 - cmp r1, 0x1 - beq _0809AE9C - ldr r1, _0809AE7C @ =0x000011d8 - adds r0, r2, r1 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x8E - lsls r3, 5 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x20 - ldrsh r0, [r0, r2] - b _0809AEB2 - .align 2, 0 -_0809AE74: .4byte 0x000011da -_0809AE78: .4byte 0x000011df -_0809AE7C: .4byte 0x000011d8 -_0809AE80: - ldr r3, _0809AE98 @ =0x000011d8 - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x8E - lsls r3, 5 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x20 - ldrsh r0, [r0, r2] - adds r0, 0xC0 - b _0809AEB2 - .align 2, 0 -_0809AE98: .4byte 0x000011d8 -_0809AE9C: - ldr r3, _0809AF00 @ =0x000011d8 - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x8E - lsls r3, 5 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x20 - ldrsh r0, [r0, r2] - subs r0, 0xC0 -_0809AEB2: - subs r0, r1, r0 - lsls r7, 8 - lsls r0, 8 - ldr r4, [r4] - ldr r3, _0809AF04 @ =0x000011d0 - adds r6, r4, r3 - ldr r1, _0809AF08 @ =0x000011dc - adds r5, r4, r1 - ldrh r1, [r5] - bl __divsi3 - str r0, [r6] - ldr r2, _0809AF0C @ =0x000011d4 - adds r6, r4, r2 - ldrh r1, [r5] - adds r0, r7, 0 - bl __divsi3 - str r0, [r6] - ldr r3, _0809AF10 @ =0x000011c8 - adds r2, r4, r3 - movs r0, 0x8E - lsls r0, 5 - adds r1, r4, r0 - ldr r0, [r1] - movs r3, 0x20 - ldrsh r0, [r0, r3] - lsls r0, 8 - str r0, [r2] - ldr r0, _0809AF14 @ =0x000011cc - adds r4, r0 - ldr r0, [r1] - movs r1, 0x22 - ldrsh r0, [r0, r1] - lsls r0, 8 - str r0, [r4] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809AF00: .4byte 0x000011d8 -_0809AF04: .4byte 0x000011d0 -_0809AF08: .4byte 0x000011dc -_0809AF0C: .4byte 0x000011d4 -_0809AF10: .4byte 0x000011c8 -_0809AF14: .4byte 0x000011cc - thumb_func_end sub_809AD94 - - thumb_func_start sub_809AF18 -sub_809AF18: @ 809AF18 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_809AD3C - bl sub_809AD94 - ldr r0, _0809AFA4 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - bne _0809AF46 - ldr r0, _0809AFA8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x1 - bl StartSpriteAnim -_0809AF46: - cmp r4, 0x1 - bne _0809AF70 - ldr r0, _0809AFAC @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - beq _0809AF70 - ldr r0, _0809AFA8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r2, _0809AFB0 @ =0x000011e2 - adds r1, r0, r2 - strb r4, [r1] - ldr r1, _0809AFB4 @ =0x000011c4 - adds r0, r1 - ldr r1, [r0] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] -_0809AF70: - cmp r4, 0 - beq _0809AF9E - cmp r4, 0 - blt _0809AF9E - cmp r4, 0x3 - bgt _0809AF9E - ldr r0, _0809AFA8 @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r0, _0809AFB4 @ =0x000011c4 - adds r2, r0 - ldr r1, [r2] - adds r1, 0x3E - ldrb r0, [r1] - movs r3, 0x4 - orrs r0, r3 - strb r0, [r1] - ldr r2, [r2] - ldrb r1, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2, 0x5] -_0809AF9E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809AFA4: .4byte gUnknown_020384E6 -_0809AFA8: .4byte gUnknown_083B6DB4 -_0809AFAC: .4byte gUnknown_020384E4 -_0809AFB0: .4byte 0x000011e2 -_0809AFB4: .4byte 0x000011c4 - thumb_func_end sub_809AF18 - - thumb_func_start sub_809AFB8 -sub_809AFB8: @ 809AFB8 - push {r4,r5,lr} - ldr r5, _0809B000 @ =gUnknown_020384E4 - ldr r0, _0809B004 @ =gUnknown_083B6DB4 - ldr r4, [r0] - movs r1, 0x8F - lsls r1, 5 - adds r0, r4, r1 - ldrb r0, [r0] - strb r0, [r5] - ldr r1, _0809B008 @ =gUnknown_020384E5 - ldr r2, _0809B00C @ =0x000011e1 - adds r0, r4, r2 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _0809B010 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - bne _0809AFEA - movs r1, 0x8E - lsls r1, 5 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAnim -_0809AFEA: - bl sub_809BF74 - movs r0, 0 - ldrsb r0, [r5, r0] - cmp r0, 0x1 - beq _0809B020 - cmp r0, 0x1 - bgt _0809B014 - cmp r0, 0 - beq _0809B034 - b _0809B05E - .align 2, 0 -_0809B000: .4byte gUnknown_020384E4 -_0809B004: .4byte gUnknown_083B6DB4 -_0809B008: .4byte gUnknown_020384E5 -_0809B00C: .4byte 0x000011e1 -_0809B010: .4byte gUnknown_020384E6 -_0809B014: - cmp r0, 0x2 - bne _0809B05E - movs r0, 0x1 - bl sub_809A860 - b _0809B05E -_0809B020: - ldr r2, _0809B030 @ =0x000011c4 - adds r0, r4, r2 - ldr r0, [r0] - adds r0, 0x43 - movs r1, 0xC - strb r1, [r0] - b _0809B05E - .align 2, 0 -_0809B030: .4byte 0x000011c4 -_0809B034: - ldr r0, _0809B064 @ =0x000011c4 - adds r2, r4, r0 - ldr r3, [r2] - ldrb r1, [r3, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r3, 0x5] - ldr r0, [r2] - adds r0, 0x43 - movs r1, 0x14 - strb r1, [r0] - ldr r1, [r2] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] -_0809B05E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809B064: .4byte 0x000011c4 - thumb_func_end sub_809AFB8 - - thumb_func_start sub_809B068 -sub_809B068: @ 809B068 - push {lr} - ldr r0, _0809B078 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - bne _0809B07C - movs r3, 0 - b _0809B08A - .align 2, 0 -_0809B078: .4byte gUnknown_020384E6 -_0809B07C: - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x5 - bls _0809B08A - movs r3, 0x5 -_0809B08A: - ldr r0, _0809B0B8 @ =gUnknown_083B6DB4 - ldr r2, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r2, r1 - ldr r0, [r0] - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809B0AA - ldr r0, _0809B0BC @ =0x000011e3 - adds r1, r2, r0 - movs r0, 0x1 - strb r0, [r1] -_0809B0AA: - movs r0, 0x1 - adds r1, r3, 0 - bl sub_809AF18 - pop {r0} - bx r0 - .align 2, 0 -_0809B0B8: .4byte gUnknown_083B6DB4 -_0809B0BC: .4byte 0x000011e3 - thumb_func_end sub_809B068 - - thumb_func_start sub_809B0C0 -sub_809B0C0: @ 809B0C0 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - bl sub_809AF18 - pop {r0} - bx r0 - thumb_func_end sub_809B0C0 - - thumb_func_start sub_809B0D4 -sub_809B0D4: @ 809B0D4 - ldr r1, _0809B0DC @ =gUnknown_020384EA - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_0809B0DC: .4byte gUnknown_020384EA - thumb_func_end sub_809B0D4 - - thumb_func_start sub_809B0E0 -sub_809B0E0: @ 809B0E0 - ldr r0, _0809B0EC @ =gUnknown_020384EA - ldr r1, _0809B0F0 @ =gUnknown_020384E5 - ldrb r1, [r1] - strb r1, [r0] - bx lr - .align 2, 0 -_0809B0EC: .4byte gUnknown_020384EA -_0809B0F0: .4byte gUnknown_020384E5 - thumb_func_end sub_809B0E0 - - thumb_func_start sub_809B0F4 -sub_809B0F4: @ 809B0F4 - ldr r0, _0809B0FC @ =gUnknown_020384EA - ldrb r0, [r0] - bx lr - .align 2, 0 -_0809B0FC: .4byte gUnknown_020384EA - thumb_func_end sub_809B0F4 - - thumb_func_start sub_809B100 -sub_809B100: @ 809B100 - lsls r0, 24 - ldr r1, _0809B120 @ =gUnknown_083B6DB4 - ldr r1, [r1] - ldr r2, _0809B124 @ =0x000012a4 - adds r3, r1, r2 - ldr r2, _0809B128 @ =gUnknown_083BBBC8 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - str r0, [r3] - ldr r0, _0809B12C @ =0x000012a8 - adds r1, r0 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_0809B120: .4byte gUnknown_083B6DB4 -_0809B124: .4byte 0x000012a4 -_0809B128: .4byte gUnknown_083BBBC8 -_0809B12C: .4byte 0x000012a8 - thumb_func_end sub_809B100 - - thumb_func_start sub_809B130 -sub_809B130: @ 809B130 - push {lr} - ldr r0, _0809B148 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809B14C @ =0x000012a4 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0809B148: .4byte gUnknown_083B6DB4 -_0809B14C: .4byte 0x000012a4 - thumb_func_end sub_809B130 - - thumb_func_start sub_809B150 -sub_809B150: @ 809B150 - push {r4,r5,lr} - ldr r0, _0809B16C @ =gUnknown_083B6DB4 - ldr r5, [r0] - ldr r0, _0809B170 @ =0x000012a8 - adds r4, r5, r0 - ldrb r0, [r4] - cmp r0, 0x1 - beq _0809B1A0 - cmp r0, 0x1 - bgt _0809B174 - cmp r0, 0 - beq _0809B17E - b _0809B1CE - .align 2, 0 -_0809B16C: .4byte gUnknown_083B6DB4 -_0809B170: .4byte 0x000012a8 -_0809B174: - cmp r0, 0x2 - beq _0809B1BE - cmp r0, 0x3 - beq _0809B186 - b _0809B1CE -_0809B17E: - ldr r0, _0809B18C @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809B190 -_0809B186: - movs r0, 0 - b _0809B1D0 - .align 2, 0 -_0809B18C: .4byte gUnknown_020384E6 -_0809B190: - movs r1, 0x8E - lsls r1, 5 - adds r0, r5, r1 - ldr r0, [r0] - movs r1, 0x2 - bl StartSpriteAnim - b _0809B1C8 -_0809B1A0: - bl sub_809B324 - lsls r0, 24 - cmp r0, 0 - bne _0809B1CE - movs r1, 0x8E - lsls r1, 5 - adds r0, r5, r1 - ldr r0, [r0] - movs r1, 0x3 - bl StartSpriteAnim - bl sub_809B384 - b _0809B1C8 -_0809B1BE: - bl sub_809B358 - lsls r0, 24 - cmp r0, 0 - bne _0809B1CE -_0809B1C8: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] -_0809B1CE: - movs r0, 0x1 -_0809B1D0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809B150 - - thumb_func_start sub_809B1D8 -sub_809B1D8: @ 809B1D8 - push {r4,r5,lr} - ldr r0, _0809B1F4 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r0, _0809B1F8 @ =0x000012a8 - adds r5, r4, r0 - ldrb r0, [r5] - cmp r0, 0x1 - beq _0809B220 - cmp r0, 0x1 - bgt _0809B1FC - cmp r0, 0 - beq _0809B202 - b _0809B244 - .align 2, 0 -_0809B1F4: .4byte gUnknown_083B6DB4 -_0809B1F8: .4byte 0x000012a8 -_0809B1FC: - cmp r0, 0x2 - beq _0809B240 - b _0809B244 -_0809B202: - bl sub_809B324 - lsls r0, 24 - cmp r0, 0 - bne _0809B244 - movs r1, 0x8E - lsls r1, 5 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x2 - bl StartSpriteAnim - bl sub_809B3E0 - b _0809B238 -_0809B220: - bl sub_809B358 - lsls r0, 24 - cmp r0, 0 - bne _0809B244 - movs r1, 0x8E - lsls r1, 5 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAnim -_0809B238: - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _0809B244 -_0809B240: - movs r0, 0 - b _0809B246 -_0809B244: - movs r0, 0x1 -_0809B246: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809B1D8 - - thumb_func_start sub_809B24C -sub_809B24C: @ 809B24C - push {r4,r5,lr} - ldr r0, _0809B268 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r0, _0809B26C @ =0x000012a8 - adds r5, r4, r0 - ldrb r0, [r5] - cmp r0, 0x1 - beq _0809B2E0 - cmp r0, 0x1 - bgt _0809B270 - cmp r0, 0 - beq _0809B276 - b _0809B31C - .align 2, 0 -_0809B268: .4byte gUnknown_083B6DB4 -_0809B26C: .4byte 0x000012a8 -_0809B270: - cmp r0, 0x2 - beq _0809B318 - b _0809B31C -_0809B276: - ldr r0, _0809B290 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _0809B298 - cmp r0, 0x1 - bne _0809B318 - ldr r2, _0809B294 @ =0x000012a9 - adds r1, r4, r2 - movs r0, 0xE - b _0809B2A0 - .align 2, 0 -_0809B290: .4byte gUnknown_020384E4 -_0809B294: .4byte 0x000012a9 -_0809B298: - bl get_preferred_box - ldr r2, _0809B2D0 @ =0x000012a9 - adds r1, r4, r2 -_0809B2A0: - strb r0, [r1] - ldr r0, _0809B2D4 @ =gUnknown_083B6DB4 - ldr r4, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x2 - bl StartSpriteAnim - ldr r2, _0809B2D0 @ =0x000012a9 - adds r0, r4, r2 - ldrb r0, [r0] - ldr r1, _0809B2D8 @ =gUnknown_020384E5 - ldrb r1, [r1] - bl sub_80996B0 - ldr r0, _0809B2DC @ =0x000012a8 - adds r4, r0 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _0809B31C - .align 2, 0 -_0809B2D0: .4byte 0x000012a9 -_0809B2D4: .4byte gUnknown_083B6DB4 -_0809B2D8: .4byte gUnknown_020384E5 -_0809B2DC: .4byte 0x000012a8 -_0809B2E0: - bl sub_809971C - lsls r0, 24 - cmp r0, 0 - bne _0809B31C - movs r1, 0x8E - lsls r1, 5 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x3 - bl StartSpriteAnim - ldr r2, _0809B310 @ =0x000012a9 - adds r0, r4, r2 - ldrb r0, [r0] - ldr r1, _0809B314 @ =gUnknown_020384E5 - ldrb r1, [r1] - bl diegohint1 - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _0809B31C - .align 2, 0 -_0809B310: .4byte 0x000012a9 -_0809B314: .4byte gUnknown_020384E5 -_0809B318: - movs r0, 0 - b _0809B31E -_0809B31C: - movs r0, 0x1 -_0809B31E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809B24C - - thumb_func_start sub_809B324 -sub_809B324: @ 809B324 - push {lr} - ldr r0, _0809B348 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r1, [r0] - movs r2, 0x26 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _0809B33E - cmp r0, 0x8 - beq _0809B34C -_0809B33E: - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] - b _0809B350 - .align 2, 0 -_0809B348: .4byte gUnknown_083B6DB4 -_0809B34C: - movs r0, 0 - b _0809B352 -_0809B350: - movs r0, 0x1 -_0809B352: - pop {r1} - bx r1 - thumb_func_end sub_809B324 - - thumb_func_start sub_809B358 -sub_809B358: @ 809B358 - push {lr} - ldr r0, _0809B378 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r1, [r0] - movs r2, 0x26 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _0809B37C - ldrh r0, [r1, 0x26] - subs r0, 0x1 - strh r0, [r1, 0x26] - movs r0, 0x1 - b _0809B37E - .align 2, 0 -_0809B378: .4byte gUnknown_083B6DB4 -_0809B37C: - movs r0, 0 -_0809B37E: - pop {r1} - bx r1 - thumb_func_end sub_809B358 - - thumb_func_start sub_809B384 -sub_809B384: @ 809B384 - push {r4,lr} - ldr r0, _0809B3AC @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _0809B3B4 - cmp r0, 0x1 - bne _0809B3D2 - ldr r4, _0809B3B0 @ =gUnknown_020384E5 - ldrb r1, [r4] - movs r0, 0xE - bl sub_809B44C - ldrb r1, [r4] - movs r0, 0 - bl sub_8099584 - b _0809B3CC - .align 2, 0 -_0809B3AC: .4byte gUnknown_020384E4 -_0809B3B0: .4byte gUnknown_020384E5 -_0809B3B4: - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - ldr r4, _0809B3D8 @ =gUnknown_020384E5 - ldrb r1, [r4] - bl sub_809B44C - ldrb r1, [r4] - movs r0, 0x1 - bl sub_8099584 -_0809B3CC: - ldr r1, _0809B3DC @ =gUnknown_020384E6 - movs r0, 0x1 - strb r0, [r1] -_0809B3D2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809B3D8: .4byte gUnknown_020384E5 -_0809B3DC: .4byte gUnknown_020384E6 - thumb_func_end sub_809B384 - - thumb_func_start sub_809B3E0 -sub_809B3E0: @ 809B3E0 - push {r4,r5,lr} - ldr r0, _0809B408 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _0809B410 - cmp r0, 0x1 - bne _0809B432 - ldr r4, _0809B40C @ =gUnknown_020384E5 - ldrb r1, [r4] - movs r0, 0xE - bl diegohint2 - ldrb r1, [r4] - movs r0, 0xE - bl sub_809960C - b _0809B42C - .align 2, 0 -_0809B408: .4byte gUnknown_020384E4 -_0809B40C: .4byte gUnknown_020384E5 -_0809B410: - bl get_preferred_box - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _0809B438 @ =gUnknown_020384E5 - ldrb r1, [r5] - adds r0, r4, 0 - bl diegohint2 - ldrb r1, [r5] - adds r0, r4, 0 - bl sub_809960C -_0809B42C: - ldr r1, _0809B43C @ =gUnknown_020384E6 - movs r0, 0 - strb r0, [r1] -_0809B432: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809B438: .4byte gUnknown_020384E5 -_0809B43C: .4byte gUnknown_020384E6 - thumb_func_end sub_809B3E0 - - thumb_func_start sub_809B440 -sub_809B440: @ 809B440 - push {lr} - bl sub_809BF74 - pop {r0} - bx r0 - thumb_func_end sub_809B440 - - thumb_func_start sub_809B44C -sub_809B44C: @ 809B44C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - cmp r4, 0xE - bne _0809B488 - ldr r0, _0809B478 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809B47C @ =0x000025b4 - adds r0, r1 - ldr r3, _0809B480 @ =gPlayerParty - ldr r1, _0809B484 @ =gUnknown_020384E5 - movs r2, 0 - ldrsb r2, [r1, r2] - movs r1, 0x64 - muls r1, r2 - adds r1, r3 - movs r2, 0x64 - bl memcpy - b _0809B4AA - .align 2, 0 -_0809B478: .4byte gUnknown_083B6DB4 -_0809B47C: .4byte 0x000025b4 -_0809B480: .4byte gPlayerParty -_0809B484: .4byte gUnknown_020384E5 -_0809B488: - lsls r1, r4, 2 - adds r1, r4 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 4 - ldr r2, _0809B4C0 @ =gUnknown_020300A4 - adds r1, r2 - adds r0, r1 - ldr r1, _0809B4C4 @ =gUnknown_083B6DB4 - ldr r1, [r1] - ldr r2, _0809B4C8 @ =0x000025b4 - adds r1, r2 - bl sub_803B4B4 -_0809B4AA: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809B548 - ldr r0, _0809B4CC @ =gUnknown_020384E7 - strb r4, [r0] - ldr r0, _0809B4D0 @ =gUnknown_020384E8 - strb r5, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809B4C0: .4byte gUnknown_020300A4 -_0809B4C4: .4byte gUnknown_083B6DB4 -_0809B4C8: .4byte 0x000025b4 -_0809B4CC: .4byte gUnknown_020384E7 -_0809B4D0: .4byte gUnknown_020384E8 - thumb_func_end sub_809B44C - - thumb_func_start diegohint2 -diegohint2: @ 809B4D4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - cmp r6, 0xE - bne _0809B508 - ldr r1, _0809B4FC @ =gPlayerParty - movs r0, 0x64 - muls r0, r5 - adds r0, r1 - ldr r1, _0809B500 @ =gUnknown_083B6DB4 - ldr r1, [r1] - ldr r2, _0809B504 @ =0x000025b4 - adds r1, r2 - movs r2, 0x64 - bl memcpy - b _0809B536 - .align 2, 0 -_0809B4FC: .4byte gPlayerParty -_0809B500: .4byte gUnknown_083B6DB4 -_0809B504: .4byte 0x000025b4 -_0809B508: - ldr r0, _0809B53C @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r0, _0809B540 @ =0x000025b4 - adds r4, r0 - adds r0, r4, 0 - bl pokemon_restore_pp - ldr r3, _0809B544 @ =gPokemonStorage - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 4 - lsls r2, r6, 2 - adds r2, r6 - lsls r1, r2, 4 - subs r1, r2 - lsls r1, 5 - adds r0, r1 - adds r0, r3 - adds r0, 0x4 - adds r1, r4, 0 - movs r2, 0x50 - bl memcpy -_0809B536: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809B53C: .4byte gUnknown_083B6DB4 -_0809B540: .4byte 0x000025b4 -_0809B544: .4byte gPokemonStorage - thumb_func_end diegohint2 - - thumb_func_start sub_809B548 -sub_809B548: @ 809B548 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r2, r1, 24 - cmp r0, 0xE - bne _0809B568 - movs r0, 0x64 - muls r0, r2 - ldr r1, _0809B564 @ =gPlayerParty - adds r0, r1 - bl ZeroMonData - b _0809B582 - .align 2, 0 -_0809B564: .4byte gPlayerParty -_0809B568: - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _0809B588 @ =gUnknown_020300A4 - adds r1, r2 - adds r0, r1 - bl ZeroBoxMonData -_0809B582: - pop {r0} - bx r0 - .align 2, 0 -_0809B588: .4byte gUnknown_020300A4 - thumb_func_end sub_809B548 - - thumb_func_start diegohint1 -diegohint1: @ 809B58C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - cmp r5, 0xE - bne _0809B5C0 - ldr r0, _0809B5B4 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809B5B8 @ =0x00002618 - adds r0, r1 - ldr r2, _0809B5BC @ =gPlayerParty - movs r1, 0x64 - muls r1, r6 - adds r1, r2 - movs r2, 0x64 - bl memcpy - b _0809B5E2 - .align 2, 0 -_0809B5B4: .4byte gUnknown_083B6DB4 -_0809B5B8: .4byte 0x00002618 -_0809B5BC: .4byte gPlayerParty -_0809B5C0: - lsls r1, r5, 2 - adds r1, r5 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 4 - ldr r2, _0809B614 @ =gUnknown_020300A4 - adds r1, r2 - adds r0, r1 - ldr r1, _0809B618 @ =gUnknown_083B6DB4 - ldr r1, [r1] - ldr r2, _0809B61C @ =0x00002618 - adds r1, r2 - bl sub_803B4B4 -_0809B5E2: - adds r0, r5, 0 - adds r1, r6, 0 - bl diegohint2 - ldr r0, _0809B618 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r0, _0809B620 @ =0x000025b4 - adds r4, r1, r0 - ldr r2, _0809B61C @ =0x00002618 - adds r1, r2 - adds r0, r4, 0 - movs r2, 0x64 - bl memcpy - adds r0, r4, 0 - movs r1, 0 - bl sub_809C04C - ldr r0, _0809B624 @ =gUnknown_020384E7 - strb r5, [r0] - ldr r0, _0809B628 @ =gUnknown_020384E8 - strb r6, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809B614: .4byte gUnknown_020300A4 -_0809B618: .4byte gUnknown_083B6DB4 -_0809B61C: .4byte 0x00002618 -_0809B620: .4byte 0x000025b4 -_0809B624: .4byte gUnknown_020384E7 -_0809B628: .4byte gUnknown_020384E8 - thumb_func_end diegohint1 - - thumb_func_start sub_809B62C -sub_809B62C: @ 809B62C - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r6, 0 - bl sub_8095B24 - lsls r0, 16 - lsrs r4, r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _0809B64A - movs r0, 0 - b _0809B6AC -_0809B64A: - ldr r5, _0809B668 @ =gUnknown_020384E6 - ldrb r0, [r5] - cmp r0, 0 - beq _0809B66C - lsls r4, 24 - lsrs r1, r4, 24 - adds r0, r6, 0 - bl diegohint2 - bl sub_8099480 - movs r0, 0 - strb r0, [r5] - b _0809B686 - .align 2, 0 -_0809B668: .4byte gUnknown_020384E6 -_0809B66C: - ldr r5, _0809B6B4 @ =gUnknown_020384E5 - ldrb r1, [r5] - movs r0, 0xE - bl sub_809B44C - lsls r4, 24 - lsrs r1, r4, 24 - adds r0, r6, 0 - bl diegohint2 - ldrb r0, [r5] - bl sub_8099520 -_0809B686: - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - cmp r6, r0 - bne _0809B698 - lsrs r0, r4, 24 - bl sub_8098D20 -_0809B698: - ldr r0, _0809B6B8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x1 - bl StartSpriteAnim - movs r0, 0x1 -_0809B6AC: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0809B6B4: .4byte gUnknown_020384E5 -_0809B6B8: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809B62C - - thumb_func_start sub_809B6BC -sub_809B6BC: @ 809B6BC - push {lr} - ldr r0, _0809B6D8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAnim - bl sub_809BF74 - pop {r0} - bx r0 - .align 2, 0 -_0809B6D8: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809B6BC - - thumb_func_start sub_809B6DC -sub_809B6DC: @ 809B6DC - push {lr} - ldr r0, _0809B6EC @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809B6F0 - movs r2, 0x2 - b _0809B700 - .align 2, 0 -_0809B6EC: .4byte gUnknown_020384E6 -_0809B6F0: - ldr r0, _0809B720 @ =gUnknown_020384E4 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r2, 0x1 - eors r1, r2 - negs r0, r1 - orrs r0, r1 - lsrs r2, r0, 31 -_0809B700: - ldr r0, _0809B724 @ =gUnknown_020384E5 - ldrb r1, [r0] - adds r0, r2, 0 - bl sub_809981C - ldr r0, _0809B728 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r2, _0809B72C @ =0x000026e4 - adds r0, r1, r2 - ldr r2, _0809B730 @ =0x000011fa - adds r1, r2 - bl StringCopy - pop {r0} - bx r0 - .align 2, 0 -_0809B720: .4byte gUnknown_020384E4 -_0809B724: .4byte gUnknown_020384E5 -_0809B728: .4byte gUnknown_083B6DB4 -_0809B72C: .4byte 0x000026e4 -_0809B730: .4byte 0x000011fa - thumb_func_end sub_809B6DC - - thumb_func_start sub_809B734 -sub_809B734: @ 809B734 - push {lr} - bl sub_80998D8 - lsls r0, 24 - cmp r0, 0 - beq _0809B744 - movs r0, 0x1 - b _0809B758 -_0809B744: - ldr r0, _0809B75C @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAnim - movs r0, 0 -_0809B758: - pop {r1} - bx r1 - .align 2, 0 -_0809B75C: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809B734 - - thumb_func_start sub_809B760 -sub_809B760: @ 809B760 - push {lr} - bl sub_8099920 - ldr r1, _0809B774 @ =gUnknown_020384E6 - ldrb r0, [r1] - cmp r0, 0 - beq _0809B778 - movs r0, 0 - strb r0, [r1] - b _0809B79E - .align 2, 0 -_0809B774: .4byte gUnknown_020384E6 -_0809B778: - ldr r0, _0809B788 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809B78C - movs r2, 0xE - b _0809B794 - .align 2, 0 -_0809B788: .4byte gUnknown_020384E4 -_0809B78C: - bl get_preferred_box - lsls r0, 24 - lsrs r2, r0, 24 -_0809B794: - ldr r0, _0809B7A8 @ =gUnknown_020384E5 - ldrb r1, [r0] - adds r0, r2, 0 - bl sub_809B548 -_0809B79E: - bl sub_809BF74 - pop {r0} - bx r0 - .align 2, 0 -_0809B7A8: .4byte gUnknown_020384E5 - thumb_func_end sub_809B760 - - thumb_func_start sub_809B7AC -sub_809B7AC: @ 809B7AC - push {lr} - ldr r0, _0809B7CC @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809B7C8 - ldr r0, _0809B7D0 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x3 - bl StartSpriteAnim -_0809B7C8: - pop {r0} - bx r0 - .align 2, 0 -_0809B7CC: .4byte gUnknown_020384E6 -_0809B7D0: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809B7AC - - thumb_func_start sub_809B7D4 -sub_809B7D4: @ 809B7D4 - push {r4-r6,lr} - ldr r0, _0809B804 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809B81C - ldr r0, _0809B808 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r1, _0809B80C @ =0x00002618 - adds r0, r4, r1 - ldr r2, _0809B810 @ =0x000025b4 - adds r1, r4, r2 - movs r2, 0x64 - bl memcpy - ldr r0, _0809B814 @ =0x00002682 - adds r1, r4, r0 - movs r0, 0xFF - strb r0, [r1] - ldr r1, _0809B818 @ =0x00002683 - adds r4, r1 - movs r0, 0x1 - negs r0, r0 - strb r0, [r4] - b _0809B8A6 - .align 2, 0 -_0809B804: .4byte gUnknown_020384E6 -_0809B808: .4byte gUnknown_083B6DB4 -_0809B80C: .4byte 0x00002618 -_0809B810: .4byte 0x000025b4 -_0809B814: .4byte 0x00002682 -_0809B818: .4byte 0x00002683 -_0809B81C: - ldr r0, _0809B84C @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809B864 - ldr r0, _0809B850 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r2, _0809B854 @ =0x00002618 - adds r0, r4, r2 - ldr r3, _0809B858 @ =gPlayerParty - ldr r1, _0809B85C @ =gUnknown_020384E5 - movs r2, 0 - ldrsb r2, [r1, r2] - movs r1, 0x64 - muls r1, r2 - adds r1, r3 - movs r2, 0x64 - bl memcpy - ldr r0, _0809B860 @ =0x00002682 - adds r4, r0 - movs r0, 0xE - b _0809B896 - .align 2, 0 -_0809B84C: .4byte gUnknown_020384E4 -_0809B850: .4byte gUnknown_083B6DB4 -_0809B854: .4byte 0x00002618 -_0809B858: .4byte gPlayerParty -_0809B85C: .4byte gUnknown_020384E5 -_0809B860: .4byte 0x00002682 -_0809B864: - ldr r5, _0809B8FC @ =gPokemonStorage - ldrb r0, [r5] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldr r1, _0809B900 @ =gUnknown_020384E5 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - adds r2, r5, 0x4 - adds r1, r2 - adds r0, r1 - ldr r1, _0809B904 @ =gUnknown_083B6DB4 - ldr r4, [r1] - ldr r2, _0809B908 @ =0x00002618 - adds r1, r4, r2 - bl sub_803B4B4 - ldrb r0, [r5] - ldr r1, _0809B90C @ =0x00002682 - adds r4, r1 -_0809B896: - strb r0, [r4] - ldr r0, _0809B904 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809B900 @ =gUnknown_020384E5 - ldrb r1, [r1] - ldr r2, _0809B910 @ =0x00002683 - adds r0, r2 - strb r1, [r0] -_0809B8A6: - ldr r0, _0809B904 @ =gUnknown_083B6DB4 - ldr r6, [r0] - ldr r0, _0809B914 @ =0x0000267e - adds r4, r6, r0 - movs r0, 0 - strb r0, [r4] - ldr r1, _0809B918 @ =0x0000267f - adds r5, r6, r1 - strb r0, [r5] - ldr r0, _0809B91C @ =0x00002686 - adds r2, r6, r0 - movs r0, 0x39 - strh r0, [r2] - ldr r0, _0809B920 @ =0x00002688 - adds r1, r6, r0 - ldr r0, _0809B924 @ =0x00000123 - strh r0, [r1] - ldr r0, _0809B928 @ =0x0000268a - adds r1, r6, r0 - ldr r0, _0809B92C @ =0x00000163 - strh r0, [r1] - ldr r1, _0809B908 @ =0x00002618 - adds r0, r6, r1 - movs r1, 0x50 - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - movs r2, 0x1 - ands r1, r2 - strb r1, [r4] - lsrs r0, 17 - movs r1, 0x1 - ands r0, r1 - strb r0, [r5] - ldrh r0, [r4] - cmp r0, 0 - beq _0809B934 - ldr r2, _0809B930 @ =0x0000267d - adds r1, r6, r2 - movs r0, 0 - strb r0, [r1] - b _0809B940 - .align 2, 0 -_0809B8FC: .4byte gPokemonStorage -_0809B900: .4byte gUnknown_020384E5 -_0809B904: .4byte gUnknown_083B6DB4 -_0809B908: .4byte 0x00002618 -_0809B90C: .4byte 0x00002682 -_0809B910: .4byte 0x00002683 -_0809B914: .4byte 0x0000267e -_0809B918: .4byte 0x0000267f -_0809B91C: .4byte 0x00002686 -_0809B920: .4byte 0x00002688 -_0809B924: .4byte 0x00000123 -_0809B928: .4byte 0x0000268a -_0809B92C: .4byte 0x00000163 -_0809B930: .4byte 0x0000267d -_0809B934: - ldr r2, _0809B954 @ =0x0000267d - adds r0, r6, r2 - strb r1, [r0] - subs r2, 0x1 - adds r0, r6, r2 - strb r1, [r0] -_0809B940: - ldr r0, _0809B958 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809B95C @ =0x00002684 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809B954: .4byte 0x0000267d -_0809B958: .4byte gUnknown_083B6DB4 -_0809B95C: .4byte 0x00002684 - thumb_func_end sub_809B7D4 - - thumb_func_start sub_809B960 -sub_809B960: @ 809B960 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _0809B988 @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r3, _0809B98C @ =0x0000267d - adds r1, r2, r3 - ldrb r1, [r1] - mov r12, r0 - cmp r1, 0 - beq _0809B994 - ldr r7, _0809B990 @ =0x0000267c - adds r0, r2, r7 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - b _0809BB5C - .align 2, 0 -_0809B988: .4byte gUnknown_083B6DB4 -_0809B98C: .4byte 0x0000267d -_0809B990: .4byte 0x0000267c -_0809B994: - ldr r1, _0809B9A4 @ =0x00002684 - adds r0, r2, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _0809B9A8 - cmp r0, 0x1 - beq _0809BA84 - b _0809BB58 - .align 2, 0 -_0809B9A4: .4byte 0x00002684 -_0809B9A8: - movs r5, 0 - movs r6, 0 -_0809B9AC: - mov r2, r12 - ldr r4, [r2] - ldr r3, _0809BA28 @ =0x00002682 - adds r0, r4, r3 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0xE - bne _0809B9CC - ldr r7, _0809BA2C @ =0x00002683 - adds r0, r4, r7 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, r5 - beq _0809BA02 -_0809B9CC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0809BA30 @ =gPlayerParty - adds r0, r1 - ldr r1, _0809BA34 @ =0x00002686 - adds r2, r4, r1 - movs r1, 0x50 - bl GetMonData - lsls r0, 16 - lsrs r3, r0, 16 - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _0809B9F0 - ldr r2, _0809BA38 @ =0x0000267e - adds r0, r4, r2 - strb r6, [r0] -_0809B9F0: - movs r0, 0x2 - ands r3, r0 - ldr r7, _0809BA3C @ =gUnknown_083B6DB4 - mov r12, r7 - cmp r3, 0 - beq _0809BA02 - ldr r1, _0809BA40 @ =0x0000267f - adds r0, r4, r1 - strb r6, [r0] -_0809BA02: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _0809B9AC - mov r3, r12 - ldr r2, [r3] - ldr r7, _0809BA38 @ =0x0000267e - adds r0, r2, r7 - ldrh r0, [r0] - cmp r0, 0 - bne _0809BA4C - ldr r1, _0809BA44 @ =0x0000267d - adds r0, r2, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r3, _0809BA48 @ =0x0000267c - b _0809BB54 - .align 2, 0 -_0809BA28: .4byte 0x00002682 -_0809BA2C: .4byte 0x00002683 -_0809BA30: .4byte gPlayerParty -_0809BA34: .4byte 0x00002686 -_0809BA38: .4byte 0x0000267e -_0809BA3C: .4byte gUnknown_083B6DB4 -_0809BA40: .4byte 0x0000267f -_0809BA44: .4byte 0x0000267d -_0809BA48: .4byte 0x0000267c -_0809BA4C: - movs r7, 0x9A - lsls r7, 6 - adds r0, r2, r7 - movs r1, 0 - strb r1, [r0] - ldr r3, _0809BA68 @ =0x00002681 - adds r0, r2, r3 - strb r1, [r0] - adds r7, 0x4 - adds r1, r2, r7 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _0809BB58 - .align 2, 0 -_0809BA68: .4byte 0x00002681 -_0809BA6C: - ldr r1, _0809BA7C @ =0x0000267d - adds r0, r2, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r7, _0809BA80 @ =0x0000267c - adds r0, r2, r7 - strb r3, [r0] - b _0809BB3C - .align 2, 0 -_0809BA7C: .4byte 0x0000267d -_0809BA80: .4byte 0x0000267c -_0809BA84: - movs r5, 0 - mov r9, r12 - adds r4, r2, 0 - movs r0, 0x9A - lsls r0, 6 - adds r6, r4, r0 - ldr r1, _0809BB6C @ =0x0000267f - adds r1, r4 - mov r8, r1 - ldr r2, _0809BB70 @ =0x0000ffff - mov r10, r2 -_0809BA9A: - movs r0, 0 - ldrsb r0, [r6, r0] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldr r3, _0809BB74 @ =0x00002681 - adds r1, r4, r3 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _0809BB78 @ =gUnknown_020300A4 - adds r1, r2 - adds r0, r1 - movs r1, 0x50 - ldr r7, _0809BB7C @ =0x00002686 - adds r2, r4, r7 - bl GetBoxMonData - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - beq _0809BB00 - ldr r1, _0809BB80 @ =0x00002682 - adds r0, r4, r1 - ldrh r0, [r0] - ldrh r2, [r6] - mov r1, r10 - ands r1, r0 - mov r0, r10 - ands r0, r2 - cmp r1, r0 - beq _0809BB00 - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _0809BAF2 - ldr r2, _0809BB84 @ =0x0000267e - adds r1, r4, r2 - movs r0, 0 - strb r0, [r1] -_0809BAF2: - movs r0, 0x2 - ands r3, r0 - cmp r3, 0 - beq _0809BB00 - movs r0, 0 - mov r3, r8 - strb r0, [r3] -_0809BB00: - mov r7, r9 - ldr r2, [r7] - ldr r0, _0809BB74 @ =0x00002681 - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, 0x1 - movs r3, 0 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - ldr r7, _0809BB88 @ =gUnknown_083B6DB4 - mov r12, r7 - cmp r0, 0x1D - ble _0809BB32 - strb r3, [r1] - movs r0, 0x9A - lsls r0, 6 - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0xD - bgt _0809BA6C -_0809BB32: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x4 - bls _0809BA9A -_0809BB3C: - mov r1, r12 - ldr r2, [r1] - ldr r3, _0809BB84 @ =0x0000267e - adds r0, r2, r3 - ldrh r0, [r0] - cmp r0, 0 - bne _0809BB58 - ldr r7, _0809BB8C @ =0x0000267d - adds r0, r2, r7 - movs r1, 0x1 - strb r1, [r0] - subs r3, 0x2 -_0809BB54: - adds r0, r2, r3 - strb r1, [r0] -_0809BB58: - movs r0, 0x1 - negs r0, r0 -_0809BB5C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0809BB6C: .4byte 0x0000267f -_0809BB70: .4byte 0x0000ffff -_0809BB74: .4byte 0x00002681 -_0809BB78: .4byte gUnknown_020300A4 -_0809BB7C: .4byte 0x00002686 -_0809BB80: .4byte 0x00002682 -_0809BB84: .4byte 0x0000267e -_0809BB88: .4byte gUnknown_083B6DB4 -_0809BB8C: .4byte 0x0000267d - thumb_func_end sub_809B960 - - thumb_func_start sub_809BB90 -sub_809BB90: @ 809BB90 - push {lr} - ldr r0, _0809BBB0 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809BBAA - ldr r0, _0809BBB4 @ =gUnknown_02038480 - ldr r1, _0809BBB8 @ =gUnknown_083B6DB4 - ldr r1, [r1] - ldr r2, _0809BBBC @ =0x000025b4 - adds r1, r2 - movs r2, 0x64 - bl memcpy -_0809BBAA: - pop {r0} - bx r0 - .align 2, 0 -_0809BBB0: .4byte gUnknown_020384E6 -_0809BBB4: .4byte gUnknown_02038480 -_0809BBB8: .4byte gUnknown_083B6DB4 -_0809BBBC: .4byte 0x000025b4 - thumb_func_end sub_809BB90 - - thumb_func_start sub_809BBC0 -sub_809BBC0: @ 809BBC0 - push {lr} - ldr r0, _0809BBE4 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809BC08 - ldr r0, _0809BBE8 @ =gUnknown_020384E7 - ldrb r0, [r0] - cmp r0, 0xE - bne _0809BBF8 - ldr r0, _0809BBEC @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809BBF0 @ =0x000025b4 - adds r0, r1 - ldr r1, _0809BBF4 @ =gUnknown_02038480 - movs r2, 0x64 - bl memcpy - b _0809BC08 - .align 2, 0 -_0809BBE4: .4byte gUnknown_020384E6 -_0809BBE8: .4byte gUnknown_020384E7 -_0809BBEC: .4byte gUnknown_083B6DB4 -_0809BBF0: .4byte 0x000025b4 -_0809BBF4: .4byte gUnknown_02038480 -_0809BBF8: - ldr r0, _0809BC0C @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809BC10 @ =0x000025b4 - adds r0, r1 - ldr r1, _0809BC14 @ =gUnknown_02038480 - movs r2, 0x50 - bl memcpy -_0809BC08: - pop {r0} - bx r0 - .align 2, 0 -_0809BC0C: .4byte gUnknown_083B6DB4 -_0809BC10: .4byte 0x000025b4 -_0809BC14: .4byte gUnknown_02038480 - thumb_func_end sub_809BBC0 - - thumb_func_start sub_809BC18 -sub_809BC18: @ 809BC18 - push {r4,r5,lr} - ldr r0, _0809BC48 @ =gUnknown_020384E6 - ldrb r5, [r0] - cmp r5, 0 - beq _0809BC64 - bl sub_809BB90 - ldr r0, _0809BC4C @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r0, _0809BC50 @ =0x00002690 - adds r1, r2, r0 - ldr r0, _0809BC54 @ =gUnknown_02038480 - str r0, [r1] - ldr r1, _0809BC58 @ =0x0000268d - adds r0, r2, r1 - movs r1, 0 - strb r1, [r0] - ldr r3, _0809BC5C @ =0x0000268c - adds r0, r2, r3 - strb r1, [r0] - ldr r0, _0809BC60 @ =0x0000268e - adds r2, r0 - strb r1, [r2] - b _0809BCF2 - .align 2, 0 -_0809BC48: .4byte gUnknown_020384E6 -_0809BC4C: .4byte gUnknown_083B6DB4 -_0809BC50: .4byte 0x00002690 -_0809BC54: .4byte gUnknown_02038480 -_0809BC58: .4byte 0x0000268d -_0809BC5C: .4byte 0x0000268c -_0809BC60: .4byte 0x0000268e -_0809BC64: - ldr r0, _0809BC9C @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809BCBC - ldr r0, _0809BCA0 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r2, _0809BCA4 @ =0x00002690 - adds r1, r4, r2 - ldr r0, _0809BCA8 @ =gPlayerParty - str r0, [r1] - ldr r0, _0809BCAC @ =gUnknown_020384E5 - ldrb r1, [r0] - ldr r3, _0809BCB0 @ =0x0000268d - adds r0, r4, r3 - strb r1, [r0] - bl sub_8095C28 - subs r0, 0x1 - ldr r2, _0809BCB4 @ =0x0000268c - adds r1, r4, r2 - strb r0, [r1] - ldr r3, _0809BCB8 @ =0x0000268e - adds r4, r3 - strb r5, [r4] - b _0809BCF2 - .align 2, 0 -_0809BC9C: .4byte gUnknown_020384E4 -_0809BCA0: .4byte gUnknown_083B6DB4 -_0809BCA4: .4byte 0x00002690 -_0809BCA8: .4byte gPlayerParty -_0809BCAC: .4byte gUnknown_020384E5 -_0809BCB0: .4byte 0x0000268d -_0809BCB4: .4byte 0x0000268c -_0809BCB8: .4byte 0x0000268e -_0809BCBC: - ldr r0, _0809BCF8 @ =gUnknown_083B6DB4 - ldr r3, [r0] - ldr r0, _0809BCFC @ =0x00002690 - adds r4, r3, r0 - ldr r2, _0809BD00 @ =gPokemonStorage - ldrb r0, [r2] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - adds r2, 0x4 - adds r0, r2 - str r0, [r4] - ldr r0, _0809BD04 @ =gUnknown_020384E5 - ldrb r1, [r0] - ldr r2, _0809BD08 @ =0x0000268d - adds r0, r3, r2 - strb r1, [r0] - ldr r0, _0809BD0C @ =0x0000268c - adds r1, r3, r0 - movs r0, 0x1D - strb r0, [r1] - ldr r1, _0809BD10 @ =0x0000268e - adds r3, r1 - movs r0, 0x5 - strb r0, [r3] -_0809BCF2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809BCF8: .4byte gUnknown_083B6DB4 -_0809BCFC: .4byte 0x00002690 -_0809BD00: .4byte gPokemonStorage -_0809BD04: .4byte gUnknown_020384E5 -_0809BD08: .4byte 0x0000268d -_0809BD0C: .4byte 0x0000268c -_0809BD10: .4byte 0x0000268e - thumb_func_end sub_809BC18 - - thumb_func_start sub_809BD14 -sub_809BD14: @ 809BD14 - push {lr} - ldr r0, _0809BD24 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809BD28 - bl sub_809BBC0 - b _0809BD30 - .align 2, 0 -_0809BD24: .4byte gUnknown_020384E6 -_0809BD28: - ldr r0, _0809BD34 @ =gUnknown_020384E5 - ldr r1, _0809BD38 @ =0x02018000 - ldrb r1, [r1, 0x9] - strb r1, [r0] -_0809BD30: - pop {r0} - bx r0 - .align 2, 0 -_0809BD34: .4byte gUnknown_020384E5 -_0809BD38: .4byte 0x02018000 - thumb_func_end sub_809BD14 - - thumb_func_start party_compaction -party_compaction: @ 809BD3C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r7, _0809BD88 @ =0x0000ffff - movs r6, 0 - movs r5, 0 - movs r0, 0x64 - mov r9, r0 - ldr r1, _0809BD8C @ =gPlayerParty - mov r8, r1 - subs r0, 0x65 - mov r10, r0 -_0809BD58: - mov r0, r9 - muls r0, r6 - mov r1, r8 - adds r4, r0, r1 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - cmp r0, 0 - beq _0809BD90 - cmp r6, r5 - beq _0809BD80 - mov r0, r9 - muls r0, r5 - add r0, r8 - adds r1, r4, 0 - movs r2, 0x64 - bl memcpy -_0809BD80: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - b _0809BD9A - .align 2, 0 -_0809BD88: .4byte 0x0000ffff -_0809BD8C: .4byte gPlayerParty -_0809BD90: - lsls r0, r7, 16 - asrs r0, 16 - cmp r0, r10 - bne _0809BD9A - adds r7, r6, 0 -_0809BD9A: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x5 - bls _0809BD58 - lsls r7, 16 - cmp r5, 0x5 - bhi _0809BDC2 - movs r6, 0x64 - ldr r4, _0809BDD4 @ =gPlayerParty -_0809BDAE: - adds r0, r5, 0 - muls r0, r6 - adds r0, r4 - bl ZeroMonData - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _0809BDAE -_0809BDC2: - asrs r0, r7, 16 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0809BDD4: .4byte gPlayerParty - thumb_func_end party_compaction - - thumb_func_start sub_809BDD8 -sub_809BDD8: @ 809BDD8 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - strb r0, [r1] - ldr r1, _0809BE04 @ =gUnknown_083B6DB4 - ldr r2, [r1] - ldr r3, _0809BE08 @ =0x000011f7 - adds r1, r2, r3 - strb r0, [r1] - ldr r0, _0809BE0C @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809BE14 - ldr r1, _0809BE10 @ =0x000025b4 - adds r0, r2, r1 - movs r1, 0x8 - mov r2, sp - bl SetMonData - b _0809BE68 - .align 2, 0 -_0809BE04: .4byte gUnknown_083B6DB4 -_0809BE08: .4byte 0x000011f7 -_0809BE0C: .4byte gUnknown_020384E6 -_0809BE10: .4byte 0x000025b4 -_0809BE14: - ldr r4, _0809BE70 @ =gUnknown_020384E4 - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r0, 0x1 - bne _0809BE34 - ldr r0, _0809BE74 @ =gUnknown_020384E5 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0809BE78 @ =gPlayerParty - adds r0, r1 - movs r1, 0x8 - mov r2, sp - bl SetMonData -_0809BE34: - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r0, 0 - bne _0809BE68 - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldr r1, _0809BE74 @ =gUnknown_020384E5 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _0809BE7C @ =gUnknown_020300A4 - adds r1, r2 - adds r0, r1 - movs r1, 0x8 - mov r2, sp - bl SetBoxMonData -_0809BE68: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809BE70: .4byte gUnknown_020384E4 -_0809BE74: .4byte gUnknown_020384E5 -_0809BE78: .4byte gPlayerParty -_0809BE7C: .4byte gUnknown_020300A4 - thumb_func_end sub_809BDD8 - - thumb_func_start sub_809BE80 -sub_809BE80: @ 809BE80 - push {lr} - ldr r0, _0809BEA8 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809BEB4 - ldr r0, _0809BEAC @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - bne _0809BEB4 - ldr r0, _0809BEB0 @ =gUnknown_020384E5 - ldrb r0, [r0] - bl sub_8095BB4 - lsls r0, 24 - cmp r0, 0 - bne _0809BEB4 - movs r0, 0x1 - b _0809BEB6 - .align 2, 0 -_0809BEA8: .4byte gUnknown_020384E4 -_0809BEAC: .4byte gUnknown_020384E6 -_0809BEB0: .4byte gUnknown_020384E5 -_0809BEB4: - movs r0, 0 -_0809BEB6: - pop {r1} - bx r1 - thumb_func_end sub_809BE80 - - thumb_func_start sub_809BEBC -sub_809BEBC: @ 809BEBC - push {lr} - ldr r0, _0809BF00 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809BF18 - ldr r0, _0809BF04 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809BEFC - ldr r0, _0809BF08 @ =gUnknown_020384E5 - ldrb r0, [r0] - bl sub_8095BB4 - lsls r0, 24 - cmp r0, 0 - bne _0809BEFC - ldr r0, _0809BF0C @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r2, _0809BF10 @ =0x000011f9 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _0809BF18 - ldr r2, _0809BF14 @ =0x000025b4 - adds r0, r1, r2 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0809BF18 -_0809BEFC: - movs r0, 0x1 - b _0809BF1A - .align 2, 0 -_0809BF00: .4byte gUnknown_020384E6 -_0809BF04: .4byte gUnknown_020384E4 -_0809BF08: .4byte gUnknown_020384E5 -_0809BF0C: .4byte gUnknown_083B6DB4 -_0809BF10: .4byte 0x000011f9 -_0809BF14: .4byte 0x000025b4 -_0809BF18: - movs r0, 0 -_0809BF1A: - pop {r1} - bx r1 - thumb_func_end sub_809BEBC - - thumb_func_start sub_809BF20 -sub_809BF20: @ 809BF20 - ldr r0, _0809BF28 @ =gUnknown_020384E6 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0809BF28: .4byte gUnknown_020384E6 - thumb_func_end sub_809BF20 - - thumb_func_start sub_809BF2C -sub_809BF2C: @ 809BF2C - push {lr} - movs r1, 0 - ldr r0, _0809BF44 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x2 - bne _0809BF3E - movs r1, 0x1 -_0809BF3E: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_0809BF44: .4byte gUnknown_020384E4 - thumb_func_end sub_809BF2C - - thumb_func_start sub_809BF48 -sub_809BF48: @ 809BF48 - push {lr} - movs r1, 0 - ldr r0, _0809BF6C @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - bne _0809BF66 - ldr r0, _0809BF70 @ =gUnknown_020384E5 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809BF66 - movs r1, 0x1 -_0809BF66: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_0809BF6C: .4byte gUnknown_020384E4 -_0809BF70: .4byte gUnknown_020384E5 - thumb_func_end sub_809BF48 - - thumb_func_start sub_809BF74 -sub_809BF74: @ 809BF74 - push {r4,lr} - ldr r0, _0809BFA8 @ =gUnknown_083B6DB4 - ldr r1, [r0] - movs r2, 0 - ldr r3, _0809BFAC @ =gUnknown_020384E6 - ldrb r0, [r3] - cmp r0, 0 - bne _0809BF86 - movs r2, 0x1 -_0809BF86: - ldr r4, _0809BFB0 @ =0x000011f6 - adds r0, r1, r4 - strb r2, [r0] - ldrb r0, [r3] - cmp r0, 0 - bne _0809C018 - ldr r0, _0809BFB4 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - beq _0809BFBE - cmp r0, 0x1 - bgt _0809BFB8 - cmp r0, 0 - beq _0809BFEE - b _0809C018 - .align 2, 0 -_0809BFA8: .4byte gUnknown_083B6DB4 -_0809BFAC: .4byte gUnknown_020384E6 -_0809BFB0: .4byte 0x000011f6 -_0809BFB4: .4byte gUnknown_020384E4 -_0809BFB8: - cmp r0, 0x3 - bgt _0809C018 - b _0809BFE4 -_0809BFBE: - ldr r1, _0809BFDC @ =gUnknown_020384E5 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0x5 - bgt _0809BFE4 - adds r1, r0, 0 - movs r0, 0x64 - muls r0, r1 - ldr r1, _0809BFE0 @ =gPlayerParty - adds r0, r1 - movs r1, 0 - bl sub_809C04C - b _0809C018 - .align 2, 0 -_0809BFDC: .4byte gUnknown_020384E5 -_0809BFE0: .4byte gPlayerParty -_0809BFE4: - movs r0, 0 - movs r1, 0x2 - bl sub_809C04C - b _0809C018 -_0809BFEE: - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldr r1, _0809C020 @ =gUnknown_020384E5 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _0809C024 @ =gUnknown_020300A4 - adds r1, r2 - adds r0, r1 - movs r1, 0x1 - bl sub_809C04C -_0809C018: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809C020: .4byte gUnknown_020384E5 -_0809C024: .4byte gUnknown_020300A4 - thumb_func_end sub_809BF74 - - thumb_func_start sub_809C028 -sub_809C028: @ 809C028 - push {lr} - ldr r0, _0809C03C @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809C044 - ldr r0, _0809C040 @ =gUnknown_02038480 - movs r1, 0 - bl sub_809C04C - b _0809C048 - .align 2, 0 -_0809C03C: .4byte gUnknown_020384E6 -_0809C040: .4byte gUnknown_02038480 -_0809C044: - bl sub_809BF74 -_0809C048: - pop {r0} - bx r0 - thumb_func_end sub_809C028 - - thumb_func_start sub_809C04C -sub_809C04C: @ 809C04C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r7, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - str r0, [sp] - ldr r0, _0809C0FC @ =gUnknown_083B6DB4 - ldr r6, [r0] - ldr r2, _0809C100 @ =0x000011f2 - adds r2, r6 - mov r8, r2 - mov r0, sp - ldrh r0, [r0] - strh r0, [r2] - cmp r1, 0 - bne _0809C120 - adds r0, r7, 0 - movs r1, 0x41 - bl GetMonData - ldr r2, _0809C104 @ =0x000011f0 - adds r1, r6, r2 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - bne _0809C08C - b _0809C1EC -_0809C08C: - adds r0, r7, 0 - movs r1, 0x2D - bl GetMonData - ldr r2, _0809C108 @ =0x000011f9 - adds r1, r6, r2 - strb r0, [r1] - ldr r0, _0809C10C @ =0x000011fa - adds r4, r6, r0 - adds r0, r7, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - adds r0, r4, 0 - bl StringGetEnd10 - adds r0, r7, 0 - movs r1, 0x38 - bl GetMonData - ldr r2, _0809C110 @ =0x000011f8 - adds r1, r6, r2 - strb r0, [r1] - adds r0, r7, 0 - movs r1, 0x8 - bl GetMonData - ldr r2, _0809C114 @ =0x000011f7 - adds r1, r6, r2 - strb r0, [r1] - adds r0, r7, 0 - movs r1, 0 - bl GetMonData - ldr r2, _0809C118 @ =0x000011ec - adds r1, r6, r2 - str r0, [r1] - adds r0, r7, 0 - bl pokemon_get_pal - ldr r2, _0809C11C @ =0x000011e8 - adds r1, r6, r2 - str r0, [r1] - adds r0, r7, 0 - bl GetMonGender - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - adds r0, r7, 0 - movs r1, 0xC - bl GetMonData - b _0809C1B2 - .align 2, 0 -_0809C0FC: .4byte gUnknown_083B6DB4 -_0809C100: .4byte 0x000011f2 -_0809C104: .4byte 0x000011f0 -_0809C108: .4byte 0x000011f9 -_0809C10C: .4byte 0x000011fa -_0809C110: .4byte 0x000011f8 -_0809C114: .4byte 0x000011f7 -_0809C118: .4byte 0x000011ec -_0809C11C: .4byte 0x000011e8 -_0809C120: - cmp r1, 0x1 - bne _0809C1D4 - adds r0, r7, 0 - movs r1, 0x41 - bl GetBoxMonData - ldr r2, _0809C1B8 @ =0x000011f0 - adds r5, r6, r2 - strh r0, [r5] - lsls r0, 16 - cmp r0, 0 - beq _0809C1EC - adds r0, r7, 0 - movs r1, 0x1 - bl GetBoxMonData - mov r9, r0 - adds r0, r7, 0 - movs r1, 0x2D - bl GetBoxMonData - ldr r2, _0809C1BC @ =0x000011f9 - adds r1, r6, r2 - strb r0, [r1] - ldr r0, _0809C1C0 @ =0x000011fa - adds r4, r6, r0 - adds r0, r7, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl GetBoxMonData - adds r0, r4, 0 - bl StringGetEnd10 - adds r0, r7, 0 - bl GetLevelFromBoxMonExp - ldr r2, _0809C1C4 @ =0x000011f8 - adds r1, r6, r2 - strb r0, [r1] - adds r0, r7, 0 - movs r1, 0x8 - bl GetBoxMonData - ldr r2, _0809C1C8 @ =0x000011f7 - adds r1, r6, r2 - strb r0, [r1] - adds r0, r7, 0 - movs r1, 0 - bl GetBoxMonData - adds r2, r0, 0 - ldr r0, _0809C1CC @ =0x000011ec - adds r4, r6, r0 - str r2, [r4] - ldrh r0, [r5] - mov r1, r9 - bl species_and_otid_get_pal - ldr r2, _0809C1D0 @ =0x000011e8 - adds r1, r6, r2 - str r0, [r1] - ldrh r0, [r5] - ldr r1, [r4] - bl GetGenderFromSpeciesAndPersonality - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - adds r0, r7, 0 - movs r1, 0xC - bl GetBoxMonData -_0809C1B2: - mov r1, r8 - strh r0, [r1] - b _0809C1DE - .align 2, 0 -_0809C1B8: .4byte 0x000011f0 -_0809C1BC: .4byte 0x000011f9 -_0809C1C0: .4byte 0x000011fa -_0809C1C4: .4byte 0x000011f8 -_0809C1C8: .4byte 0x000011f7 -_0809C1CC: .4byte 0x000011ec -_0809C1D0: .4byte 0x000011e8 -_0809C1D4: - ldr r2, _0809C220 @ =0x000011f0 - adds r0, r6, r2 - mov r1, sp - ldrh r1, [r1] - strh r1, [r0] -_0809C1DE: - ldr r0, _0809C224 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r2, _0809C220 @ =0x000011f0 - adds r0, r4, r2 - ldrh r1, [r0] - cmp r1, 0 - bne _0809C23C -_0809C1EC: - ldr r0, _0809C224 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r0, _0809C228 @ =0x000011fa - adds r2, r1, r0 - movs r0, 0xFF - strb r0, [r2] - ldr r0, _0809C22C @ =0x0000120f - adds r2, r1, r0 - movs r0, 0x1 - negs r0, r0 - strb r0, [r2] - ldr r0, _0809C230 @ =0x00001234 - adds r2, r1, r0 - movs r0, 0x1 - negs r0, r0 - strb r0, [r2] - ldr r0, _0809C234 @ =0x00001259 - adds r2, r1, r0 - movs r0, 0x1 - negs r0, r0 - strb r0, [r2] - ldr r2, _0809C238 @ =0x0000127a - adds r1, r2 - strb r0, [r1] - b _0809C43E - .align 2, 0 -_0809C220: .4byte 0x000011f0 -_0809C224: .4byte gUnknown_083B6DB4 -_0809C228: .4byte 0x000011fa -_0809C22C: .4byte 0x0000120f -_0809C230: .4byte 0x00001234 -_0809C234: .4byte 0x00001259 -_0809C238: .4byte 0x0000127a -_0809C23C: - ldr r2, _0809C28C @ =0x000011f9 - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _0809C2A4 - ldr r0, _0809C290 @ =0x0000120f - adds r7, r4, r0 - movs r0, 0xFC - strb r0, [r7] - movs r0, 0x4 - strb r0, [r7, 0x1] - movs r0, 0xF - strb r0, [r7, 0x2] - movs r0, 0 - strb r0, [r7, 0x3] - movs r0, 0x1 - strb r0, [r7, 0x4] - ldr r1, _0809C294 @ =0x00001214 - adds r7, r4, r1 - adds r2, 0x1 - adds r1, r4, r2 - adds r0, r7, 0 - bl StringCopy - ldr r0, _0809C298 @ =0x00001234 - adds r1, r4, r0 - movs r0, 0xFF - strb r0, [r1] - ldr r2, _0809C29C @ =0x00001259 - adds r1, r4, r2 - movs r0, 0x1 - negs r0, r0 - strb r0, [r1] - ldr r0, _0809C2A0 @ =0x0000127a - adds r1, r4, r0 - movs r0, 0x1 - negs r0, r0 - strb r0, [r1] - b _0809C43E - .align 2, 0 -_0809C28C: .4byte 0x000011f9 -_0809C290: .4byte 0x0000120f -_0809C294: .4byte 0x00001214 -_0809C298: .4byte 0x00001234 -_0809C29C: .4byte 0x00001259 -_0809C2A0: .4byte 0x0000127a -_0809C2A4: - cmp r1, 0x20 - beq _0809C2AC - cmp r1, 0x1D - bne _0809C2B0 -_0809C2AC: - movs r1, 0xFF - str r1, [sp] -_0809C2B0: - ldr r0, _0809C388 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r2, _0809C38C @ =0x0000120f - adds r7, r4, r2 - movs r0, 0xFC - mov r9, r0 - strb r0, [r7] - movs r1, 0x4 - mov r8, r1 - strb r1, [r7, 0x1] - movs r2, 0xF - strb r2, [r7, 0x2] - movs r0, 0 - strb r0, [r7, 0x3] - movs r6, 0x1 - strb r6, [r7, 0x4] - ldr r1, _0809C390 @ =0x00001214 - adds r7, r4, r1 - ldr r2, _0809C394 @ =0x000011fa - adds r1, r4, r2 - adds r0, r7, 0 - bl StringCopy - ldr r0, _0809C398 @ =0x00001234 - adds r7, r4, r0 - mov r1, r9 - strb r1, [r7] - mov r2, r8 - strb r2, [r7, 0x1] - movs r0, 0xF - strb r0, [r7, 0x2] - movs r1, 0 - strb r1, [r7, 0x3] - strb r6, [r7, 0x4] - mov r2, r9 - strb r2, [r7, 0x5] - movs r0, 0x13 - mov r10, r0 - strb r0, [r7, 0x6] - movs r1, 0x7 - strb r1, [r7, 0x7] - movs r0, 0xBA - strb r0, [r7, 0x8] - ldr r2, _0809C39C @ =0x0000123d - adds r7, r4, r2 - ldr r1, _0809C3A0 @ =0x000011f0 - adds r0, r4, r1 - ldrh r1, [r0] - movs r0, 0xB - muls r1, r0 - ldr r0, _0809C3A4 @ =gSpeciesNames - adds r1, r0 - adds r0, r7, 0 - bl StringCopy - adds r7, r0, 0 - mov r2, r9 - strb r2, [r7] - mov r0, r10 - strb r0, [r7, 0x1] - movs r0, 0x50 - strb r0, [r7, 0x2] - movs r0, 0xFF - strb r0, [r7, 0x3] - ldr r1, _0809C3A8 @ =0x00001259 - adds r7, r4, r1 - strb r2, [r7] - mov r2, r8 - strb r2, [r7, 0x1] - movs r0, 0xF - strb r0, [r7, 0x2] - movs r1, 0 - strb r1, [r7, 0x3] - strb r6, [r7, 0x4] - mov r2, r9 - strb r2, [r7, 0x5] - mov r0, r10 - strb r0, [r7, 0x6] - movs r6, 0x8 - strb r6, [r7, 0x7] - ldr r1, _0809C3AC @ =0x00001261 - adds r7, r4, r1 - movs r0, 0x34 - strb r0, [r7] - ldr r2, _0809C3B0 @ =0x00001262 - adds r7, r4, r2 - ldr r0, _0809C3B4 @ =0x000011f8 - adds r4, r0 - ldrb r1, [r4] - adds r0, r7, 0 - movs r2, 0x22 - movs r3, 0x1 - bl sub_8072C14 - adds r7, r0, 0 - mov r1, r9 - strb r1, [r7] - movs r0, 0x11 - strb r0, [r7, 0x1] - strb r6, [r7, 0x2] - adds r7, 0x3 - ldr r2, [sp] - cmp r2, 0 - beq _0809C3B8 - cmp r2, 0xFE - beq _0809C3D0 - b _0809C3EA - .align 2, 0 -_0809C388: .4byte gUnknown_083B6DB4 -_0809C38C: .4byte 0x0000120f -_0809C390: .4byte 0x00001214 -_0809C394: .4byte 0x000011fa -_0809C398: .4byte 0x00001234 -_0809C39C: .4byte 0x0000123d -_0809C3A0: .4byte 0x000011f0 -_0809C3A4: .4byte gSpeciesNames -_0809C3A8: .4byte 0x00001259 -_0809C3AC: .4byte 0x00001261 -_0809C3B0: .4byte 0x00001262 -_0809C3B4: .4byte 0x000011f8 -_0809C3B8: - mov r0, r9 - strb r0, [r7] - mov r1, r8 - strb r1, [r7, 0x1] - strb r1, [r7, 0x2] - mov r2, sp - ldrb r2, [r2] - strb r2, [r7, 0x3] - movs r0, 0x5 - strb r0, [r7, 0x4] - movs r0, 0xB5 - b _0809C3E6 -_0809C3D0: - mov r0, r9 - strb r0, [r7] - mov r1, r8 - strb r1, [r7, 0x1] - movs r0, 0x6 - strb r0, [r7, 0x2] - movs r2, 0 - strb r2, [r7, 0x3] - movs r0, 0x7 - strb r0, [r7, 0x4] - movs r0, 0xB6 -_0809C3E6: - strb r0, [r7, 0x5] - adds r7, 0x6 -_0809C3EA: - movs r5, 0xFF - strb r5, [r7] - ldr r0, _0809C450 @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r1, _0809C454 @ =0x0000127a - adds r7, r2, r1 - ldr r0, _0809C458 @ =0x000011f2 - adds r3, r2, r0 - ldrh r0, [r3] - cmp r0, 0 - beq _0809C43C - movs r4, 0xFC - strb r4, [r7] - movs r1, 0x4 - strb r1, [r7, 0x1] - movs r0, 0xF - strb r0, [r7, 0x2] - movs r0, 0 - strb r0, [r7, 0x3] - movs r0, 0x1 - strb r0, [r7, 0x4] - ldr r0, _0809C45C @ =0x0000127f - adds r7, r2, r0 - strb r4, [r7] - movs r0, 0x6 - strb r0, [r7, 0x1] - strb r1, [r7, 0x2] - ldr r1, _0809C460 @ =0x00001282 - adds r7, r2, r1 - ldrh r0, [r3] - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r7, 0 - bl StringCopy - adds r7, r0, 0 - strb r4, [r7] - movs r0, 0x7 - strb r0, [r7, 0x1] - adds r7, 0x2 -_0809C43C: - strb r5, [r7] -_0809C43E: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809C450: .4byte gUnknown_083B6DB4 -_0809C454: .4byte 0x0000127a -_0809C458: .4byte 0x000011f2 -_0809C45C: .4byte 0x0000127f -_0809C460: .4byte 0x00001282 - thumb_func_end sub_809C04C - - thumb_func_start sub_809C464 -sub_809C464: @ 809C464 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _0809C4D8 @ =gUnknown_020384E4 - ldrb r0, [r0] - mov r8, r0 - ldr r2, _0809C4DC @ =gUnknown_020384E5 - ldrb r4, [r2] - ldr r0, _0809C4E0 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r0, _0809C4E4 @ =0x000011de - adds r7, r1, r0 - movs r0, 0 - strb r0, [r7] - ldr r3, _0809C4E8 @ =0x000011df - adds r5, r1, r3 - strb r0, [r5] - adds r3, 0x4 - adds r6, r1, r3 - strb r0, [r6] - ldr r0, _0809C4EC @ =gMain - mov r12, r0 - ldrh r1, [r0, 0x30] - movs r0, 0x40 - ands r0, r1 - adds r3, r2, 0 - cmp r0, 0 - beq _0809C4A0 - b _0809C62A -_0809C4A0: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0809C4F0 - movs r1, 0x1 - mov r9, r1 - lsls r0, r4, 24 - movs r3, 0xC0 - lsls r3, 19 - adds r0, r3 - lsrs r4, r0, 24 - asrs r0, 24 - cmp r0, 0x1D - bgt _0809C4BE - b _0809C648 -_0809C4BE: - movs r1, 0x3 - mov r8, r1 - subs r0, 0x1E - lsls r0, 24 - asrs r0, 24 - bl __divsi3 - lsls r0, 24 - lsrs r4, r0, 24 - mov r3, r9 - strb r3, [r7] - strb r3, [r6] - b _0809C648 - .align 2, 0 -_0809C4D8: .4byte gUnknown_020384E4 -_0809C4DC: .4byte gUnknown_020384E5 -_0809C4E0: .4byte gUnknown_083B6DB4 -_0809C4E4: .4byte 0x000011de -_0809C4E8: .4byte 0x000011df -_0809C4EC: .4byte gMain -_0809C4F0: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0809C524 - movs r0, 0x1 - mov r9, r0 - movs r0, 0 - ldrsb r0, [r3, r0] - movs r1, 0x6 - bl __modsi3 - lsls r0, 24 - cmp r0, 0 - beq _0809C514 - lsls r0, r4, 24 - movs r1, 0xFF - lsls r1, 24 - b _0809C63C -_0809C514: - movs r0, 0xFF - strb r0, [r5] - lsls r0, r4, 24 - movs r3, 0xA0 - lsls r3, 19 - adds r0, r3 - lsrs r4, r0, 24 - b _0809C648 -_0809C524: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0809C554 - movs r0, 0x1 - mov r9, r0 - movs r0, 0 - ldrsb r0, [r3, r0] - adds r0, 0x1 - movs r1, 0x6 - bl __modsi3 - cmp r0, 0 - beq _0809C548 - lsls r0, r4, 24 - movs r1, 0x80 - lsls r1, 17 - b _0809C63C -_0809C548: - mov r3, r9 - strb r3, [r5] - lsls r0, r4, 24 - movs r1, 0xFB - lsls r1, 24 - b _0809C63C -_0809C554: - mov r3, r12 - ldrh r1, [r3, 0x2E] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0809C56A - movs r0, 0x1 - mov r9, r0 - movs r1, 0x2 - mov r8, r1 - b _0809C646 -_0809C56A: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809C5D4 - bl sub_809CAB0 - lsls r0, 24 - cmp r0, 0 - beq _0809C5D4 - ldr r0, _0809C588 @ =gUnknown_020384E9 - ldrb r0, [r0] - cmp r0, 0 - bne _0809C58C - movs r0, 0x8 - b _0809C658 - .align 2, 0 -_0809C588: .4byte gUnknown_020384E9 -_0809C58C: - movs r0, 0 - bl sub_809CE4C - subs r0, 0x1 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x4 - bhi _0809C5D4 - lsls r0, 2 - ldr r1, _0809C5A8 @ =_0809C5AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809C5A8: .4byte _0809C5AC - .align 2, 0 -_0809C5AC: - .4byte _0809C5C0 - .4byte _0809C5C4 - .4byte _0809C5C8 - .4byte _0809C5CC - .4byte _0809C5D0 -_0809C5C0: - movs r0, 0xB - b _0809C658 -_0809C5C4: - movs r0, 0xC - b _0809C658 -_0809C5C8: - movs r0, 0xD - b _0809C658 -_0809C5CC: - movs r0, 0xE - b _0809C658 -_0809C5D0: - movs r0, 0xF - b _0809C658 -_0809C5D4: - ldr r2, _0809C5E4 @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809C5E8 - movs r0, 0x10 - b _0809C658 - .align 2, 0 -_0809C5E4: .4byte gMain -_0809C5E8: - ldr r0, _0809C600 @ =gSaveBlock2 - ldrb r0, [r0, 0x13] - cmp r0, 0x1 - bne _0809C612 - ldrh r1, [r2, 0x2C] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _0809C604 - movs r0, 0xA - b _0809C658 - .align 2, 0 -_0809C600: .4byte gSaveBlock2 -_0809C604: - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _0809C612 - movs r0, 0x9 - b _0809C658 -_0809C612: - ldrh r1, [r2, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0809C624 - bl sub_809CD88 - movs r0, 0 - b _0809C658 -_0809C624: - movs r3, 0 - mov r9, r3 - b _0809C656 -_0809C62A: - movs r0, 0x1 - mov r9, r0 - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0x5 - ble _0809C642 - lsls r0, r4, 24 - movs r1, 0xFA - lsls r1, 24 -_0809C63C: - adds r0, r1 - lsrs r4, r0, 24 - b _0809C648 -_0809C642: - movs r3, 0x2 - mov r8, r3 -_0809C646: - movs r4, 0 -_0809C648: - mov r0, r9 - cmp r0, 0 - beq _0809C656 - mov r0, r8 - adds r1, r4, 0 - bl sub_809AF18 -_0809C656: - mov r0, r9 -_0809C658: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809C464 - - thumb_func_start sub_809C664 -sub_809C664: @ 809C664 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _0809C6D8 @ =gUnknown_020384E4 - ldrb r0, [r0] - mov r10, r0 - ldr r7, _0809C6DC @ =gUnknown_020384E5 - ldrb r4, [r7] - ldr r2, _0809C6E0 @ =gUnknown_083B6DB4 - ldr r5, [r2] - ldr r1, _0809C6E4 @ =0x000011df - adds r0, r5, r1 - movs r1, 0 - strb r1, [r0] - ldr r3, _0809C6E8 @ =0x000011de - adds r0, r5, r3 - strb r1, [r0] - adds r3, 0x5 - adds r0, r5, r3 - strb r1, [r0] - mov r9, r1 - mov r8, r1 - ldr r1, _0809C6EC @ =gMain - ldrh r3, [r1, 0x30] - movs r0, 0x40 - ands r0, r3 - adds r6, r7, 0 - mov r12, r2 - adds r2, r1, 0 - cmp r0, 0 - beq _0809C6A8 - b _0809C81C -_0809C6A8: - movs r0, 0x80 - ands r0, r3 - cmp r0, 0 - beq _0809C6F0 - lsls r0, r4, 24 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r4, r0, 24 - asrs r0, 24 - cmp r0, 0x6 - ble _0809C6C2 - movs r4, 0 -_0809C6C2: - lsls r0, r4, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r6, r1] - cmp r0, r1 - bne _0809C6D0 - b _0809C83C -_0809C6D0: - movs r2, 0x1 - mov r8, r2 - b _0809C842 - .align 2, 0 -_0809C6D8: .4byte gUnknown_020384E4 -_0809C6DC: .4byte gUnknown_020384E5 -_0809C6E0: .4byte gUnknown_083B6DB4 -_0809C6E4: .4byte 0x000011df -_0809C6E8: .4byte 0x000011de -_0809C6EC: .4byte gMain -_0809C6F0: - movs r0, 0x20 - ands r0, r3 - cmp r0, 0 - beq _0809C714 - ldrb r1, [r6] - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r0, 0 - beq _0809C714 - movs r3, 0x1 - mov r8, r3 - ldr r2, _0809C710 @ =0x000011e2 - adds r0, r5, r2 - strb r1, [r0] - movs r4, 0 - b _0809C83C - .align 2, 0 -_0809C710: .4byte 0x000011e2 -_0809C714: - ldrh r1, [r2, 0x30] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0809C748 - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r0, 0 - bne _0809C73C - movs r3, 0x1 - mov r8, r3 - mov r1, r12 - ldr r0, [r1] - ldr r2, _0809C738 @ =0x000011e2 - adds r0, r2 - ldrb r4, [r0] - b _0809C83C - .align 2, 0 -_0809C738: .4byte 0x000011e2 -_0809C73C: - movs r3, 0x6 - mov r8, r3 - movs r0, 0 - mov r10, r0 - movs r4, 0 - b _0809C83C -_0809C748: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809C7D0 - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r0, 0x6 - bne _0809C76E - mov r1, r12 - ldr r0, [r1] - ldrb r0, [r0, 0x5] - cmp r0, 0x1 - bne _0809C768 - movs r0, 0x4 - b _0809C84C -_0809C768: - movs r2, 0x1 - mov r9, r2 - b _0809C7D0 -_0809C76E: - bl sub_809CAB0 - lsls r0, 24 - cmp r0, 0 - beq _0809C7D0 - ldr r0, _0809C784 @ =gUnknown_020384E9 - ldrb r0, [r0] - cmp r0, 0 - bne _0809C788 - movs r0, 0x8 - b _0809C84C - .align 2, 0 -_0809C784: .4byte gUnknown_020384E9 -_0809C788: - movs r0, 0 - bl sub_809CE4C - subs r0, 0x1 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x4 - bhi _0809C7D0 - lsls r0, 2 - ldr r1, _0809C7A4 @ =_0809C7A8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809C7A4: .4byte _0809C7A8 - .align 2, 0 -_0809C7A8: - .4byte _0809C7BC - .4byte _0809C7C0 - .4byte _0809C7C4 - .4byte _0809C7C8 - .4byte _0809C7CC -_0809C7BC: - movs r0, 0xB - b _0809C84C -_0809C7C0: - movs r0, 0xC - b _0809C84C -_0809C7C4: - movs r0, 0xD - b _0809C84C -_0809C7C8: - movs r0, 0xE - b _0809C84C -_0809C7CC: - movs r0, 0xF - b _0809C84C -_0809C7D0: - ldr r2, _0809C7EC @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809C7F8 - ldr r0, _0809C7F0 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldrb r0, [r0, 0x5] - cmp r0, 0x1 - bne _0809C7F4 - movs r0, 0x10 - b _0809C84C - .align 2, 0 -_0809C7EC: .4byte gMain -_0809C7F0: .4byte gUnknown_083B6DB4 -_0809C7F4: - movs r3, 0x1 - mov r9, r3 -_0809C7F8: - mov r0, r9 - cmp r0, 0 - beq _0809C80A - movs r1, 0x6 - mov r8, r1 - movs r2, 0 - mov r10, r2 - movs r4, 0 - b _0809C83C -_0809C80A: - ldrh r1, [r2, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0809C83C - bl sub_809CD88 - movs r0, 0 - b _0809C84C -_0809C81C: - lsls r0, r4, 24 - movs r3, 0xFF - lsls r3, 24 - adds r0, r3 - lsrs r4, r0, 24 - cmp r0, 0 - bge _0809C82C - movs r4, 0x6 -_0809C82C: - lsls r0, r4, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r7, r1] - cmp r0, r1 - beq _0809C83C - movs r0, 0x1 - mov r8, r0 -_0809C83C: - mov r1, r8 - cmp r1, 0 - beq _0809C84A -_0809C842: - mov r0, r10 - adds r1, r4, 0 - bl sub_809AF18 -_0809C84A: - mov r0, r8 -_0809C84C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809C664 - - thumb_func_start sub_809C85C -sub_809C85C: @ 809C85C - push {r4-r6,lr} - ldr r0, _0809C894 @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r1, _0809C898 @ =0x000011df - adds r0, r2, r1 - movs r1, 0 - strb r1, [r0] - ldr r3, _0809C89C @ =0x000011de - adds r0, r2, r3 - strb r1, [r0] - ldr r0, _0809C8A0 @ =0x000011e3 - adds r2, r0 - strb r1, [r2] - ldr r1, _0809C8A4 @ =gMain - ldrh r3, [r1, 0x30] - movs r0, 0x40 - ands r0, r3 - cmp r0, 0 - bne _0809C91A - movs r0, 0x80 - ands r0, r3 - cmp r0, 0 - beq _0809C8A8 - movs r4, 0x1 - movs r0, 0 - movs r5, 0x2 - b _0809C922 - .align 2, 0 -_0809C894: .4byte gUnknown_083B6DB4 -_0809C898: .4byte 0x000011df -_0809C89C: .4byte 0x000011de -_0809C8A0: .4byte 0x000011e3 -_0809C8A4: .4byte gMain -_0809C8A8: - ldrh r2, [r1, 0x2C] - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - bne _0809C8CC - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - bne _0809C8DE - ldr r0, _0809C8D0 @ =gSaveBlock2 - ldrb r0, [r0, 0x13] - cmp r0, 0x1 - bne _0809C8E2 - movs r0, 0x80 - lsls r0, 2 - ands r0, r2 - cmp r0, 0 - beq _0809C8D4 -_0809C8CC: - movs r0, 0xA - b _0809C93E - .align 2, 0 -_0809C8D0: .4byte gSaveBlock2 -_0809C8D4: - movs r0, 0x80 - lsls r0, 1 - ands r0, r2 - cmp r0, 0 - beq _0809C8E2 -_0809C8DE: - movs r0, 0x9 - b _0809C93E -_0809C8E2: - ldrh r1, [r1, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809C8FA - movs r0, 0 - bl sub_809A860 - bl sub_809CA8C - movs r0, 0x7 - b _0809C93E -_0809C8FA: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809C906 - movs r0, 0x10 - b _0809C93E -_0809C906: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0809C916 - bl sub_809CD88 - movs r0, 0 - b _0809C93E -_0809C916: - movs r4, 0 - b _0809C93C -_0809C91A: - movs r4, 0x1 - movs r0, 0x3 - movs r5, 0 - strb r4, [r2] -_0809C922: - cmp r4, 0 - beq _0809C93C - lsls r6, r0, 24 - cmp r0, 0x2 - beq _0809C932 - movs r0, 0 - bl sub_809A860 -_0809C932: - lsrs r0, r6, 24 - lsls r1, r5, 24 - lsrs r1, 24 - bl sub_809AF18 -_0809C93C: - adds r0, r4, 0 -_0809C93E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_809C85C - - thumb_func_start sub_809C944 -sub_809C944: @ 809C944 - push {r4-r7,lr} - ldr r0, _0809C988 @ =gUnknown_020384E4 - ldrb r0, [r0] - mov r12, r0 - ldr r7, _0809C98C @ =gUnknown_020384E5 - ldrb r3, [r7] - ldr r0, _0809C990 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r0, _0809C994 @ =0x000011df - adds r5, r1, r0 - movs r0, 0 - strb r0, [r5] - ldr r2, _0809C998 @ =0x000011de - adds r4, r1, r2 - strb r0, [r4] - adds r2, 0x5 - adds r1, r2 - strb r0, [r1] - ldr r6, _0809C99C @ =gMain - ldrh r2, [r6, 0x30] - movs r0, 0x40 - ands r0, r2 - cmp r0, 0 - bne _0809CA14 - movs r0, 0x88 - ands r0, r2 - cmp r0, 0 - beq _0809C9A0 - movs r6, 0x1 - movs r0, 0x2 - mov r12, r0 - movs r3, 0 - b _0809CA2A - .align 2, 0 -_0809C988: .4byte gUnknown_020384E4 -_0809C98C: .4byte gUnknown_020384E5 -_0809C990: .4byte gUnknown_083B6DB4 -_0809C994: .4byte 0x000011df -_0809C998: .4byte 0x000011de -_0809C99C: .4byte gMain -_0809C9A0: - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - beq _0809C9C0 - movs r6, 0x1 - lsls r0, r3, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r3, r0, 24 - cmp r0, 0 - bge _0809CA2C - movs r0, 0xFF - strb r0, [r5] - movs r3, 0x1 - b _0809CA2C -_0809C9C0: - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - beq _0809C9E0 - movs r6, 0x1 - lsls r0, r3, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r3, r0, 24 - asrs r0, 24 - cmp r0, 0x1 - ble _0809CA2C - strb r6, [r5] - movs r3, 0 - b _0809CA2C -_0809C9E0: - ldrh r1, [r6, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809C9F4 - movs r0, 0x4 - cmp r3, 0 - bne _0809CA3A - movs r0, 0x5 - b _0809CA3A -_0809C9F4: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809CA00 - movs r0, 0x10 - b _0809CA3A -_0809CA00: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0809CA10 - bl sub_809CD88 - movs r0, 0 - b _0809CA3A -_0809CA10: - movs r6, 0 - b _0809CA38 -_0809CA14: - movs r6, 0x1 - movs r0, 0 - mov r12, r0 - movs r0, 0xFF - strb r0, [r4] - movs r0, 0 - ldrsb r0, [r7, r0] - movs r3, 0x1D - cmp r0, 0 - bne _0809CA2A - movs r3, 0x18 -_0809CA2A: - strb r6, [r1] -_0809CA2C: - cmp r6, 0 - beq _0809CA38 - mov r0, r12 - adds r1, r3, 0 - bl sub_809AF18 -_0809CA38: - adds r0, r6, 0 -_0809CA3A: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809C944 - - thumb_func_start sub_809CA40 -sub_809CA40: @ 809CA40 - push {r4,r5,lr} - movs r3, 0 - ldr r0, _0809CA6C @ =gUnknown_083BBBD4 - ldr r1, [r0] - adds r4, r0, 0 - cmp r1, 0 - beq _0809CA84 - ldr r5, _0809CA70 @ =gUnknown_020384E4 -_0809CA50: - lsls r0, r3, 3 - adds r2, r0, r4 - movs r1, 0x4 - ldrsb r1, [r2, r1] - movs r0, 0 - ldrsb r0, [r5, r0] - cmp r1, r0 - bne _0809CA74 - ldr r0, [r2] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - b _0809CA86 - .align 2, 0 -_0809CA6C: .4byte gUnknown_083BBBD4 -_0809CA70: .4byte gUnknown_020384E4 -_0809CA74: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - lsls r0, r3, 3 - adds r0, r4 - ldr r0, [r0] - cmp r0, 0 - bne _0809CA50 -_0809CA84: - movs r0, 0 -_0809CA86: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809CA40 - - thumb_func_start sub_809CA8C -sub_809CA8C: @ 809CA8C - push {lr} - bl sub_809CDCC - movs r0, 0x9 - bl sub_809CDEC - movs r0, 0xA - bl sub_809CDEC - movs r0, 0xB - bl sub_809CDEC - movs r0, 0 - bl sub_809CDEC - pop {r0} - bx r0 - thumb_func_end sub_809CA8C - - thumb_func_start sub_809CAB0 -sub_809CAB0: @ 809CAB0 - push {lr} - bl sub_809CDCC - bl sub_809AB8C - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _0809CAD4 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldrb r0, [r0, 0x5] - cmp r0, 0x1 - beq _0809CADE - cmp r0, 0x1 - bgt _0809CAD8 - cmp r0, 0 - beq _0809CAEA - b _0809CB24 - .align 2, 0 -_0809CAD4: .4byte gUnknown_083B6DB4 -_0809CAD8: - cmp r0, 0x2 - beq _0809CAF6 - b _0809CB24 -_0809CADE: - cmp r1, 0 - beq _0809CB24 - movs r0, 0x1 - bl sub_809CDEC - b _0809CB28 -_0809CAEA: - cmp r1, 0 - beq _0809CB24 - movs r0, 0x2 - bl sub_809CDEC - b _0809CB28 -_0809CAF6: - ldr r0, _0809CB0C @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809CB18 - cmp r1, 0 - beq _0809CB10 - movs r0, 0x4 - bl sub_809CDEC - b _0809CB28 - .align 2, 0 -_0809CB0C: .4byte gUnknown_020384E6 -_0809CB10: - movs r0, 0x5 - bl sub_809CDEC - b _0809CB28 -_0809CB18: - cmp r1, 0 - beq _0809CB24 - movs r0, 0x3 - bl sub_809CDEC - b _0809CB28 -_0809CB24: - movs r0, 0 - b _0809CB6E -_0809CB28: - movs r0, 0x6 - bl sub_809CDEC - ldr r0, _0809CB4C @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldrb r0, [r0, 0x5] - cmp r0, 0x2 - bne _0809CB5A - ldr r0, _0809CB50 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _0809CB54 - movs r0, 0x2 - bl sub_809CDEC - b _0809CB5A - .align 2, 0 -_0809CB4C: .4byte gUnknown_083B6DB4 -_0809CB50: .4byte gUnknown_020384E4 -_0809CB54: - movs r0, 0x1 - bl sub_809CDEC -_0809CB5A: - movs r0, 0x8 - bl sub_809CDEC - movs r0, 0x7 - bl sub_809CDEC - movs r0, 0 - bl sub_809CDEC - movs r0, 0x1 -_0809CB6E: - pop {r1} - bx r1 - thumb_func_end sub_809CAB0 - - thumb_func_start sub_809CB74 -sub_809CB74: @ 809CB74 - ldr r1, _0809CB90 @ =gUnknown_083B6DB4 - ldr r1, [r1] - movs r2, 0x8E - lsls r2, 5 - adds r1, r2 - ldr r2, [r1] - ldrh r2, [r2, 0x20] - strh r2, [r0, 0x20] - ldr r1, [r1] - ldrh r1, [r1, 0x22] - adds r1, 0x14 - strh r1, [r0, 0x22] - bx lr - .align 2, 0 -_0809CB90: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809CB74 - - thumb_func_start unref_sub_809CB94 -unref_sub_809CB94: @ 809CB94 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _0809CBBC @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809CBC8 - ldr r2, _0809CBC0 @ =gPlayerParty - ldr r0, _0809CBC4 @ =gUnknown_020384E5 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r1, r0 - adds r1, r2 - adds r0, r4, 0 - movs r2, 0x50 - bl memcpy - b _0809CBF6 - .align 2, 0 -_0809CBBC: .4byte gUnknown_020384E4 -_0809CBC0: .4byte gPlayerParty -_0809CBC4: .4byte gUnknown_020384E5 -_0809CBC8: - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - ldr r3, _0809CBFC @ =gPokemonStorage - ldr r1, _0809CC00 @ =gUnknown_020384E5 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - lsls r2, r0, 2 - adds r2, r0 - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 5 - adds r1, r0 - adds r1, r3 - adds r1, 0x4 - adds r0, r4, 0 - movs r2, 0x50 - bl memcpy -_0809CBF6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809CBFC: .4byte gPokemonStorage -_0809CC00: .4byte gUnknown_020384E5 - thumb_func_end unref_sub_809CB94 - - thumb_func_start sub_809CC04 -sub_809CC04: @ 809CC04 - push {r4-r7,lr} - sub sp, 0x34 - mov r1, sp - ldr r0, _0809CCB0 @ =gHandCursorSpriteSheets - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - add r4, sp, 0x18 - adds r1, r4, 0 - ldr r0, _0809CCB4 @ =gHandCursorSpritePalettes - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - mov r0, sp - bl LoadSpriteSheets - adds r0, r4, 0 - bl LoadSpritePalettes - ldr r0, _0809CCB8 @ =0x0000dac6 - bl IndexOfSpritePaletteTag - ldr r1, _0809CCBC @ =gUnknown_083B6DB4 - ldr r6, [r1] - ldr r4, _0809CCC0 @ =0x000011e4 - adds r7, r6, r4 - strb r0, [r7] - ldr r0, _0809CCC4 @ =0x0000dad1 - bl IndexOfSpritePaletteTag - ldr r5, _0809CCC8 @ =0x000011e5 - adds r1, r6, r5 - strb r0, [r1] - ldr r0, _0809CCCC @ =gUnknown_020384E4 - ldrb r0, [r0] - ldr r1, _0809CCD0 @ =gUnknown_020384E5 - ldrb r1, [r1] - add r4, sp, 0x30 - mov r5, sp - adds r5, 0x32 - adds r2, r4, 0 - adds r3, r5, 0 - bl sub_809AACC - ldr r0, _0809CCD4 @ =gSpriteTemplate_83BBC70 - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0 - ldrsh r2, [r5, r3] - movs r3, 0x6 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _0809CCE4 - movs r5, 0x8E - lsls r5, 5 - adds r4, r6, r5 - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - ldr r0, _0809CCD8 @ =gSprites - adds r1, r0 - str r1, [r4] - ldr r0, _0809CCDC @ =gUnknown_020384E9 - ldrb r0, [r0] - adds r0, r7, r0 - ldrb r2, [r0] - lsls r2, 4 - ldrb r3, [r1, 0x5] - movs r0, 0xF - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] - ldr r0, _0809CCE0 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809CCEE - ldr r0, [r4] - movs r1, 0x3 - bl StartSpriteAnim - b _0809CCEE - .align 2, 0 -_0809CCB0: .4byte gHandCursorSpriteSheets -_0809CCB4: .4byte gHandCursorSpritePalettes -_0809CCB8: .4byte 0x0000dac6 -_0809CCBC: .4byte gUnknown_083B6DB4 -_0809CCC0: .4byte 0x000011e4 -_0809CCC4: .4byte 0x0000dad1 -_0809CCC8: .4byte 0x000011e5 -_0809CCCC: .4byte gUnknown_020384E4 -_0809CCD0: .4byte gUnknown_020384E5 -_0809CCD4: .4byte gSpriteTemplate_83BBC70 -_0809CCD8: .4byte gSprites -_0809CCDC: .4byte gUnknown_020384E9 -_0809CCE0: .4byte gUnknown_020384E6 -_0809CCE4: - movs r0, 0x8E - lsls r0, 5 - adds r1, r6, r0 - movs r0, 0 - str r0, [r1] -_0809CCEE: - ldr r0, _0809CD00 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809CD04 - movs r3, 0xC - movs r5, 0x1 - b _0809CD08 - .align 2, 0 -_0809CD00: .4byte gUnknown_020384E4 -_0809CD04: - movs r3, 0x14 - movs r5, 0x2 -_0809CD08: - ldr r0, _0809CD58 @ =gSpriteTemplate_83BBC88 - movs r1, 0 - movs r2, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _0809CD6C - ldr r0, _0809CD5C @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809CD60 @ =0x000011c4 - adds r4, r0, r1 - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - ldr r0, _0809CD64 @ =gSprites - adds r1, r0 - str r1, [r4] - lsls r3, r5, 2 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldr r0, _0809CD68 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _0809CD78 - ldr r0, [r4] - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _0809CD78 - .align 2, 0 -_0809CD58: .4byte gSpriteTemplate_83BBC88 -_0809CD5C: .4byte gUnknown_083B6DB4 -_0809CD60: .4byte 0x000011c4 -_0809CD64: .4byte gSprites -_0809CD68: .4byte gUnknown_020384E4 -_0809CD6C: - ldr r0, _0809CD80 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r2, _0809CD84 @ =0x000011c4 - adds r0, r2 - movs r1, 0 - str r1, [r0] -_0809CD78: - add sp, 0x34 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809CD80: .4byte gUnknown_083B6DB4 -_0809CD84: .4byte 0x000011c4 - thumb_func_end sub_809CC04 - - thumb_func_start sub_809CD88 -sub_809CD88: @ 809CD88 - push {lr} - ldr r2, _0809CDC0 @ =gUnknown_020384E9 - movs r1, 0 - ldrb r0, [r2] - cmp r0, 0 - bne _0809CD96 - movs r1, 0x1 -_0809CD96: - strb r1, [r2] - ldr r0, _0809CDC4 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r3, 0x8E - lsls r3, 5 - adds r1, r0, r3 - ldr r3, [r1] - ldr r1, _0809CDC8 @ =0x000011e4 - adds r0, r1 - ldrb r2, [r2] - adds r0, r2 - ldrb r1, [r0] - lsls r1, 4 - ldrb r2, [r3, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x5] - pop {r0} - bx r0 - .align 2, 0 -_0809CDC0: .4byte gUnknown_020384E9 -_0809CDC4: .4byte gUnknown_083B6DB4 -_0809CDC8: .4byte 0x000011e4 - thumb_func_end sub_809CD88 - - thumb_func_start sub_809CDCC -sub_809CDCC: @ 809CDCC - ldr r0, _0809CDE0 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r2, _0809CDE4 @ =0x000011b8 - adds r1, r0, r2 - movs r2, 0 - strb r2, [r1] - ldr r1, _0809CDE8 @ =0x000011b9 - adds r0, r1 - strb r2, [r0] - bx lr - .align 2, 0 -_0809CDE0: .4byte gUnknown_083B6DB4 -_0809CDE4: .4byte 0x000011b8 -_0809CDE8: .4byte 0x000011b9 - thumb_func_end sub_809CDCC - - thumb_func_start sub_809CDEC -sub_809CDEC: @ 809CDEC - push {r4,r5,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _0809CE3C @ =gUnknown_083B6DB4 - ldr r5, [r0] - ldr r0, _0809CE40 @ =0x000011b8 - adds r4, r5, r0 - ldrb r0, [r4] - cmp r0, 0x6 - bhi _0809CE36 - adds r1, r0, 0 - lsls r1, 3 - movs r2, 0x8C - lsls r2, 5 - adds r1, r2 - adds r1, r5, r1 - ldr r2, _0809CE44 @ =gUnknown_083BBCA0 - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - str r0, [r1] - str r3, [r1, 0x4] - bl sub_8072CA4 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0x7 - lsrs r1, 3 - ldr r2, _0809CE48 @ =0x000011b9 - adds r0, r5, r2 - ldrb r2, [r0] - cmp r1, r2 - bls _0809CE30 - strb r1, [r0] -_0809CE30: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] -_0809CE36: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809CE3C: .4byte gUnknown_083B6DB4 -_0809CE40: .4byte 0x000011b8 -_0809CE44: .4byte gUnknown_083BBCA0 -_0809CE48: .4byte 0x000011b9 - thumb_func_end sub_809CDEC - - thumb_func_start sub_809CE4C -sub_809CE4C: @ 809CE4C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0809CE70 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r3, _0809CE74 @ =0x000011b8 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r2, r0 - bcs _0809CE7C - lsls r0, r2, 3 - ldr r2, _0809CE78 @ =0x00001184 - adds r1, r2 - adds r1, r0 - movs r0, 0 - ldrsb r0, [r1, r0] - b _0809CE80 - .align 2, 0 -_0809CE70: .4byte gUnknown_083B6DB4 -_0809CE74: .4byte 0x000011b8 -_0809CE78: .4byte 0x00001184 -_0809CE7C: - movs r0, 0x1 - negs r0, r0 -_0809CE80: - pop {r1} - bx r1 - thumb_func_end sub_809CE4C - - thumb_func_start sub_809CE84 -sub_809CE84: @ 809CE84 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x8 - ldr r0, _0809CF20 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r0, _0809CF24 @ =0x000011b8 - adds r0, r4 - mov r8, r0 - ldrb r0, [r0] - lsls r0, 1 - movs r1, 0xE - subs r1, r0 - ldr r3, _0809CF28 @ =0x000011bc - adds r6, r4, r3 - movs r0, 0 - mov r10, r0 - strh r1, [r6] - ldr r1, _0809CF2C @ =0x000011b9 - adds r1, r4 - mov r9, r1 - ldrb r1, [r1] - movs r0, 0x1C - subs r0, r1 - subs r3, 0x2 - adds r5, r4, r3 - strh r0, [r5] - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r6] - movs r2, 0x1D - movs r3, 0xF - bl MenuDrawTextWindow - ldrb r0, [r5] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r6] - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - mov r3, r8 - ldrb r2, [r3] - movs r3, 0x8C - lsls r3, 5 - adds r4, r3 - adds r3, r4, 0 - bl PrintMenuItems - ldrb r1, [r5] - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r6] - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - mov r4, r8 - ldrb r3, [r4] - mov r0, r10 - str r0, [sp] - mov r4, r9 - ldrb r0, [r4] - str r0, [sp, 0x4] - movs r0, 0 - bl InitMenu - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809CF20: .4byte gUnknown_083B6DB4 -_0809CF24: .4byte 0x000011b8 -_0809CF28: .4byte 0x000011bc -_0809CF2C: .4byte 0x000011b9 - thumb_func_end sub_809CE84 - - thumb_func_start sub_809CF30 -sub_809CF30: @ 809CF30 - push {r4,r5,lr} - movs r5, 0x2 - negs r5, r5 - ldr r4, _0809CF6C @ =gMain - ldrh r1, [r4, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0809CF86 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809CF52 - movs r0, 0x5 - bl PlaySE - adds r5, 0x1 -_0809CF52: - ldrh r1, [r4, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0809CF70 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - b _0809CF8E - .align 2, 0 -_0809CF6C: .4byte gMain -_0809CF70: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0809CF8E - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - b _0809CF8E -_0809CF86: - bl GetMenuCursorPos - lsls r0, 24 - lsrs r5, r0, 24 -_0809CF8E: - movs r0, 0x2 - negs r0, r0 - cmp r5, r0 - beq _0809CFB2 - bl sub_8072DEC - ldr r0, _0809CFD0 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r2, _0809CFD4 @ =0x000011ba - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - movs r2, 0x1D - movs r3, 0xF - bl MenuZeroFillWindowRect -_0809CFB2: - cmp r5, 0 - blt _0809CFC4 - ldr r0, _0809CFD0 @ =gUnknown_083B6DB4 - ldr r0, [r0] - lsls r1, r5, 3 - ldr r2, _0809CFD8 @ =0x00001184 - adds r0, r2 - adds r0, r1 - ldr r5, [r0] -_0809CFC4: - lsls r0, r5, 16 - asrs r0, 16 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0809CFD0: .4byte gUnknown_083B6DB4 -_0809CFD4: .4byte 0x000011ba -_0809CFD8: .4byte 0x00001184 - thumb_func_end sub_809CF30 - - thumb_func_start sub_809CFDC -sub_809CFDC: @ 809CFDC - ldr r3, _0809CFEC @ =gUnknown_020384EC - str r0, [r3] - str r1, [r0] - movs r1, 0 - strb r2, [r0, 0x5] - strb r1, [r0, 0x4] - bx lr - .align 2, 0 -_0809CFEC: .4byte gUnknown_020384EC - thumb_func_end sub_809CFDC - - thumb_func_start sub_809CFF0 -sub_809CFF0: @ 809CFF0 - push {r4,r5,lr} - ldr r2, _0809D030 @ =gUnknown_020384EC - ldr r1, [r2] - ldrb r0, [r1, 0x4] - cmp r0, 0 - beq _0809D02A - movs r4, 0 - ldrb r1, [r1, 0x4] - cmp r4, r1 - bcs _0809D022 - adds r5, r2, 0 -_0809D006: - ldr r0, [r5] - lsls r1, r4, 4 - ldr r0, [r0] - adds r0, r1 - ldr r1, [r0, 0xC] - bl _call_via_r1 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, [r5] - ldrb r0, [r0, 0x4] - cmp r4, r0 - bcc _0809D006 -_0809D022: - ldr r0, _0809D030 @ =gUnknown_020384EC - ldr r1, [r0] - movs r0, 0 - strb r0, [r1, 0x4] -_0809D02A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809D030: .4byte gUnknown_020384EC - thumb_func_end sub_809CFF0 - - thumb_func_start sub_809D034 -sub_809D034: @ 809D034 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r8, r0 - mov r9, r3 - ldr r0, [sp, 0x20] - ldr r3, [sp, 0x24] - ldr r4, [sp, 0x28] - ldr r5, [sp, 0x2C] - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - lsls r2, 16 - lsrs r6, r2, 16 - lsls r0, 16 - lsrs r0, 16 - mov r12, r0 - lsls r3, 16 - lsrs r3, 16 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - ldr r0, _0809D0A4 @ =gUnknown_020384EC - ldr r2, [r0] - ldrb r0, [r2, 0x4] - adds r1, r0, 0 - ldrb r7, [r2, 0x5] - cmp r1, r7 - bcs _0809D0AC - adds r0, 0x1 - strb r0, [r2, 0x4] - lsls r0, r1, 4 - ldr r2, [r2] - adds r2, r0 - lsls r0, r4, 1 - strh r0, [r2, 0x8] - lsls r0, r6, 6 - add r0, r8 - mov r4, r10 - lsls r1, r4, 1 - adds r0, r1 - str r0, [r2, 0x4] - lsls r0, r3, 6 - add r0, r9 - mov r7, r12 - lsls r1, r7, 1 - adds r0, r1 - str r0, [r2] - strh r5, [r2, 0xA] - ldr r0, _0809D0A8 @ =sub_809D0BC - str r0, [r2, 0xC] - movs r0, 0x1 - b _0809D0AE - .align 2, 0 -_0809D0A4: .4byte gUnknown_020384EC -_0809D0A8: .4byte sub_809D0BC -_0809D0AC: - movs r0, 0 -_0809D0AE: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809D034 - - thumb_func_start sub_809D0BC -sub_809D0BC: @ 809D0BC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r6, [r0] - ldr r5, [r0, 0x4] - ldrh r7, [r0, 0xA] - ldrh r2, [r0, 0x8] - movs r4, 0 - cmp r4, r7 - bcs _0809D0F2 - lsrs r2, 1 - mov r8, r2 - ldr r0, _0809D100 @ =0x001fffff - mov r9, r0 -_0809D0DA: - adds r0, r6, 0 - adds r1, r5, 0 - mov r2, r8 - mov r3, r9 - ands r2, r3 - bl CpuSet - adds r5, 0x40 - adds r6, 0x40 - adds r4, 0x1 - cmp r4, r7 - bcc _0809D0DA -_0809D0F2: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809D100: .4byte 0x001fffff - thumb_func_end sub_809D0BC - - thumb_func_start sub_809D104 -sub_809D104: @ 809D104 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r5, [sp, 0x18] - ldr r4, [sp, 0x1C] - ldr r6, [sp, 0x20] - mov r8, r6 - ldr r6, [sp, 0x24] - lsls r1, 16 - lsls r2, 16 - lsrs r2, 16 - lsls r5, 16 - lsls r4, 16 - mov r7, r8 - lsls r7, 16 - lsls r6, 16 - lsrs r6, 16 - lsrs r4, 10 - adds r3, r4 - lsrs r5, 15 - adds r5, r3, r5 - lsls r3, r2, 6 - adds r3, r0, r3 - lsrs r1, 15 - adds r4, r3, r1 - adds r2, r6 - lsls r2, 6 - adds r6, r0, r2 - lsrs r2, r7, 15 - cmp r4, r6 - bcs _0809D15C - lsrs r7, r2, 1 - ldr r0, _0809D168 @ =0x001fffff - mov r8, r0 -_0809D148: - adds r0, r5, 0 - adds r1, r4, 0 - mov r2, r8 - ands r2, r7 - bl CpuSet - adds r4, 0x40 - adds r5, 0x40 - cmp r4, r6 - bcc _0809D148 -_0809D15C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809D168: .4byte 0x001fffff - thumb_func_end sub_809D104 - - thumb_func_start sub_809D16C -sub_809D16C: @ 809D16C - push {r4-r7,lr} - mov r12, r0 - ldr r0, [sp, 0x14] - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 16 - lsrs r4, r2, 16 - lsls r3, 16 - lsrs r3, 16 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _0809D1B4 @ =gUnknown_020384EC - ldr r1, [r0] - ldrb r0, [r1, 0x4] - adds r2, r0, 0 - ldrb r7, [r1, 0x5] - cmp r2, r7 - bcs _0809D1BC - adds r0, 0x1 - strb r0, [r1, 0x4] - lsls r0, r2, 4 - ldr r1, [r1] - adds r1, r0 - lsls r0, r3, 1 - strh r0, [r1, 0x8] - lsls r0, r4, 5 - adds r0, r6 - lsls r0, 1 - add r0, r12 - str r0, [r1, 0x4] - strh r5, [r1, 0xA] - ldr r0, _0809D1B8 @ =sub_809D1C4 - str r0, [r1, 0xC] - movs r0, 0x1 - b _0809D1BE - .align 2, 0 -_0809D1B4: .4byte gUnknown_020384EC -_0809D1B8: .4byte sub_809D1C4 -_0809D1BC: - movs r0, 0 -_0809D1BE: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809D16C - - thumb_func_start sub_809D1C4 -sub_809D1C4: @ 809D1C4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r6, r0, 0 - movs r0, 0 - ldrh r1, [r6, 0xA] - cmp r0, r1 - bcs _0809D252 - movs r7, 0x80 - lsls r7, 5 - mov r5, sp - ldr r2, _0809D210 @ =0x040000d4 - mov r8, r2 - movs r1, 0x81 - lsls r1, 24 - mov r10, r1 -_0809D1EA: - ldr r2, [r6, 0x4] - ldrh r3, [r6, 0x8] - mov r12, r2 - adds r0, 0x1 - mov r9, r0 - cmp r3, r7 - bhi _0809D214 - movs r0, 0 - strh r0, [r5] - mov r2, sp - mov r0, r8 - str r2, [r0] - mov r1, r12 - str r1, [r0, 0x4] - lsrs r0, r3, 1 - mov r2, r10 - orrs r0, r2 - mov r1, r8 - b _0809D23C - .align 2, 0 -_0809D210: .4byte 0x040000d4 -_0809D214: - movs r4, 0 - strh r4, [r5] - ldr r1, _0809D264 @ =0x040000d4 - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - ldr r0, _0809D268 @ =0x81000800 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r7 - subs r3, r7 - cmp r3, r7 - bhi _0809D214 - strh r4, [r5] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 1 - mov r2, r10 - orrs r0, r2 -_0809D23C: - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - mov r0, r12 - adds r0, 0x40 - str r0, [r6, 0x4] - mov r1, r9 - lsls r0, r1, 16 - lsrs r0, 16 - ldrh r2, [r6, 0xA] - cmp r0, r2 - bcc _0809D1EA -_0809D252: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809D264: .4byte 0x040000d4 -_0809D268: .4byte 0x81000800 - thumb_func_end sub_809D1C4 - - thumb_func_start unref_sub_809D26C -unref_sub_809D26C: @ 809D26C - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x18 - adds r6, r3, 0 - ldr r3, [sp, 0x2C] - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - mov r8, sp - ldr r4, _0809D2E0 @ =gOamData_83BC5E8 - str r4, [sp] - ldr r5, _0809D2E4 @ =gMonIconTable - lsls r4, r0, 2 - adds r4, r5 - ldr r4, [r4] - str r4, [sp, 0x4] - ldr r4, _0809D2E8 @ =gSpriteAnimTable_83BC62C - str r4, [sp, 0x8] - ldr r4, _0809D2EC @ =gSpriteAffineAnimTable_83BC660 - str r4, [sp, 0xC] - str r1, [sp, 0x10] - ldr r1, _0809D2F0 @ =gMonIconPaletteIndices - adds r0, r1 - ldr r4, _0809D2F4 @ =0x0000dac0 - adds r1, r4, 0 - ldrb r0, [r0] - adds r1, r0 - mov r0, r8 - strh r1, [r0, 0x14] - lsls r2, 16 - asrs r2, 16 - lsls r6, 16 - asrs r6, 16 - mov r0, sp - adds r1, r2, 0 - adds r2, r6, 0 - bl sub_809D710 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _0809D2F8 @ =gSprites - adds r0, r1 - bl sub_809D638 - adds r0, r4, 0 - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0809D2E0: .4byte gOamData_83BC5E8 -_0809D2E4: .4byte gMonIconTable -_0809D2E8: .4byte gSpriteAnimTable_83BC62C -_0809D2EC: .4byte gSpriteAffineAnimTable_83BC660 -_0809D2F0: .4byte gMonIconPaletteIndices -_0809D2F4: .4byte 0x0000dac0 -_0809D2F8: .4byte gSprites - thumb_func_end unref_sub_809D26C - - thumb_func_start sub_809D2FC -sub_809D2FC: @ 809D2FC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x30 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, [sp, 0x48] - ldr r1, [sp, 0x4C] - lsls r4, 16 - lsrs r4, 16 - lsls r2, 16 - lsrs r7, r2, 16 - lsls r3, 16 - lsrs r6, r3, 16 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _0809D38C @ =gOamData_83BC5E8 - str r0, [sp, 0x18] - adds r0, r4, 0 - bl sub_809D4F4 - str r0, [sp, 0x1C] - ldr r0, _0809D390 @ =gSpriteAnimTable_83BC62C - str r0, [sp, 0x20] - ldr r0, _0809D394 @ =gSpriteAffineAnimTable_83BC660 - str r0, [sp, 0x24] - str r5, [sp, 0x28] - ldr r0, _0809D398 @ =gMonIconPaletteIndices - adds r0, r4, r0 - ldr r1, _0809D39C @ =0x0000dac0 - adds r5, r1, 0 - ldrb r0, [r0] - adds r1, r5, r0 - add r0, sp, 0x2C - strh r1, [r0] - add r1, sp, 0x18 - mov r0, sp - movs r2, 0x18 - bl memcpy - movs r0, 0xCE - lsls r0, 1 - cmp r4, r0 - bls _0809D35A - mov r0, sp - strh r5, [r0, 0x14] -_0809D35A: - lsls r1, r7, 16 - asrs r1, 16 - lsls r2, r6, 16 - asrs r2, 16 - mov r0, sp - mov r3, r8 - bl sub_809D710 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _0809D3A0 @ =gSprites - adds r0, r1 - bl sub_809D638 - adds r0, r4, 0 - add sp, 0x30 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0809D38C: .4byte gOamData_83BC5E8 -_0809D390: .4byte gSpriteAnimTable_83BC62C -_0809D394: .4byte gSpriteAffineAnimTable_83BC660 -_0809D398: .4byte gMonIconPaletteIndices -_0809D39C: .4byte 0x0000dac0 -_0809D3A0: .4byte gSprites - thumb_func_end sub_809D2FC - - thumb_func_start sub_809D3A4 -sub_809D3A4: @ 809D3A4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x18 - adds r6, r3, 0 - ldr r3, [sp, 0x2C] - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - mov r8, sp - ldr r4, _0809D418 @ =gOamData_83BC5E8 - str r4, [sp] - ldr r5, _0809D41C @ =gMonIconTable - lsls r4, r0, 2 - adds r4, r5 - ldr r4, [r4] - str r4, [sp, 0x4] - ldr r4, _0809D420 @ =gSpriteAnimTable_83BC62C - str r4, [sp, 0x8] - ldr r4, _0809D424 @ =gSpriteAffineAnimTable_83BC660 - str r4, [sp, 0xC] - str r1, [sp, 0x10] - ldr r1, _0809D428 @ =gMonIconPaletteIndices - adds r0, r1 - ldr r4, _0809D42C @ =0x0000dac0 - adds r1, r4, 0 - ldrb r0, [r0] - adds r1, r0 - mov r0, r8 - strh r1, [r0, 0x14] - lsls r2, 16 - asrs r2, 16 - lsls r6, 16 - asrs r6, 16 - mov r0, sp - adds r1, r2, 0 - adds r2, r6, 0 - bl sub_809D710 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _0809D430 @ =gSprites - adds r0, r1 - bl sub_809D638 - adds r0, r4, 0 - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0809D418: .4byte gOamData_83BC5E8 -_0809D41C: .4byte gMonIconTable -_0809D420: .4byte gSpriteAnimTable_83BC62C -_0809D424: .4byte gSpriteAffineAnimTable_83BC660 -_0809D428: .4byte gMonIconPaletteIndices -_0809D42C: .4byte 0x0000dac0 -_0809D430: .4byte gSprites - thumb_func_end sub_809D3A4 - - thumb_func_start mon_icon_convert_unown_species_id -mon_icon_convert_unown_species_id: @ 809D434 - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, SPECIES_UNOWN - bne _0809D45E - adds r0, r1, 0 - bl sub_809D474 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _0809D450 - movs r0, SPECIES_UNOWN - b _0809D45A -_0809D450: - movs r1, 0xCE - lsls r1, 1 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 -_0809D45A: - adds r1, r0, 0 - b _0809D46C -_0809D45E: - movs r0, 0xCE - lsls r0, 1 - adds r1, r2, 0 - cmp r1, r0 - bls _0809D46C - movs r1, 0x82 - lsls r1, 1 -_0809D46C: - adds r0, r1, 0 - pop {r1} - bx r1 - thumb_func_end mon_icon_convert_unown_species_id - - thumb_func_start sub_809D474 -sub_809D474: @ 809D474 - push {lr} - adds r2, r0, 0 - movs r0, 0xC0 - lsls r0, 18 - ands r0, r2 - lsrs r0, 18 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r2 - lsrs r1, 12 - orrs r0, r1 - movs r1, 0xC0 - lsls r1, 2 - ands r1, r2 - lsrs r1, 6 - orrs r0, r1 - movs r1, 0x3 - ands r1, r2 - orrs r0, r1 - movs r1, 0x1C - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_809D474 - - thumb_func_start sub_809D4A8 -sub_809D4A8: @ 809D4A8 - push {r4,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - mov r1, sp - bl sub_80A2D64 - lsls r0, 16 - lsrs r0, 16 - cmp r0, SPECIES_UNOWN - bne _0809D4DE - mov r0, sp - ldrh r0, [r0] - cmp r0, 0 - bne _0809D4CE - mov r1, sp - adds r0, SPECIES_UNOWN - b _0809D4D6 -_0809D4CE: - mov r1, sp - movs r2, 0xCE - lsls r2, 1 - adds r0, r2 -_0809D4D6: - strh r0, [r1] - mov r0, sp - ldrh r0, [r0] - b _0809D4EA -_0809D4DE: - adds r0, r4, 0 - movs r1, 0 - bl mon_icon_convert_unown_species_id - lsls r0, 16 - lsrs r0, 16 -_0809D4EA: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_809D4A8 - - thumb_func_start sub_809D4F4 -sub_809D4F4: @ 809D4F4 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl mon_icon_convert_unown_species_id - lsls r0, 16 - ldr r1, _0809D50C @ =gMonIconTable - lsrs r0, 14 - adds r0, r1 - ldr r0, [r0] - pop {r1} - bx r1 - .align 2, 0 -_0809D50C: .4byte gMonIconTable - thumb_func_end sub_809D4F4 - - thumb_func_start sub_809D510 -sub_809D510: @ 809D510 - push {lr} - bl sub_809D7E8 - pop {r0} - bx r0 - thumb_func_end sub_809D510 - - thumb_func_start sub_809D51C -sub_809D51C: @ 809D51C - push {r4,r5,lr} - movs r4, 0 - ldr r5, _0809D53C @ =gMonIconPaletteTable -_0809D522: - lsls r0, r4, 3 - adds r0, r5 - bl LoadSpritePalette - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0809D522 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809D53C: .4byte gMonIconPaletteTable - thumb_func_end sub_809D51C - - thumb_func_start unref_sub_809D540 -unref_sub_809D540: @ 809D540 - push {r4,lr} - lsls r0, 16 - lsrs r1, r0, 16 - movs r0, 0xCE - lsls r0, 1 - cmp r1, r0 - bls _0809D552 - movs r1, 0x82 - lsls r1, 1 -_0809D552: - ldr r0, _0809D578 @ =gMonIconPaletteIndices - adds r0, r1, r0 - ldrb r0, [r0] - ldr r1, _0809D57C @ =gMonIconPaletteTable - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x4] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _0809D572 - adds r0, r4, 0 - bl LoadSpritePalette -_0809D572: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809D578: .4byte gMonIconPaletteIndices -_0809D57C: .4byte gMonIconPaletteTable - thumb_func_end unref_sub_809D540 - - thumb_func_start sub_809D580 -sub_809D580: @ 809D580 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0809D5AC @ =gMonIconPaletteIndices - adds r0, r1 - ldrb r0, [r0] - ldr r1, _0809D5B0 @ =gMonIconPaletteTable - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x4] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _0809D5A6 - adds r0, r4, 0 - bl LoadSpritePalette -_0809D5A6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809D5AC: .4byte gMonIconPaletteIndices -_0809D5B0: .4byte gMonIconPaletteTable - thumb_func_end sub_809D580 - - thumb_func_start unref_sub_809D5B4 -unref_sub_809D5B4: @ 809D5B4 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _0809D5D4 @ =gMonIconPaletteTable -_0809D5BA: - lsls r0, r4, 3 - adds r0, r5 - ldrh r0, [r0, 0x4] - bl FreeSpritePaletteByTag - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0809D5BA - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809D5D4: .4byte gMonIconPaletteTable - thumb_func_end unref_sub_809D5B4 - - thumb_func_start unref_sub_809D5D8 -unref_sub_809D5D8: @ 809D5D8 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - movs r0, 0xCE - lsls r0, 1 - cmp r1, r0 - bls _0809D5EA - movs r1, 0x82 - lsls r1, 1 -_0809D5EA: - ldr r0, _0809D600 @ =gMonIconPaletteIndices - adds r0, r1, r0 - ldrb r0, [r0] - ldr r1, _0809D604 @ =gMonIconPaletteTable - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x4] - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - .align 2, 0 -_0809D600: .4byte gMonIconPaletteIndices -_0809D604: .4byte gMonIconPaletteTable - thumb_func_end unref_sub_809D5D8 - - thumb_func_start sub_809D608 -sub_809D608: @ 809D608 - push {lr} - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0809D624 @ =gMonIconPaletteIndices - adds r0, r1 - ldrb r0, [r0] - ldr r1, _0809D628 @ =gMonIconPaletteTable - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x4] - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - .align 2, 0 -_0809D624: .4byte gMonIconPaletteIndices -_0809D628: .4byte gMonIconPaletteTable - thumb_func_end sub_809D608 - - thumb_func_start sub_809D62C -sub_809D62C: @ 809D62C - push {lr} - bl sub_809D638 - pop {r0} - bx r0 - thumb_func_end sub_809D62C - - thumb_func_start sub_809D638 -sub_809D638: @ 809D638 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r4, r0, 0 - movs r7, 0 - adds r6, r4, 0 - adds r6, 0x2C - ldrb r2, [r6] - movs r0, 0x3F - mov r9, r0 - ands r0, r2 - cmp r0, 0 - bne _0809D6EC - movs r1, 0x2A - adds r1, r4 - mov r8, r1 - ldrb r1, [r1] - ldr r0, [r4, 0x8] - lsls r1, 2 - adds r1, r0 - adds r5, r4, 0 - adds r5, 0x2B - ldrb r0, [r5] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - movs r1, 0 - ldrsh r3, [r0, r1] - movs r0, 0x2 - negs r0, r0 - cmp r3, r0 - beq _0809D682 - adds r0, 0x1 - cmp r3, r0 - bne _0809D686 - b _0809D700 -_0809D682: - strb r7, [r5] - b _0809D700 -_0809D686: - ldr r2, _0809D6E4 @ =gSpriteImageSizes - ldrb r1, [r4, 0x3] - lsrs r1, 6 - lsls r1, 1 - ldrb r0, [r4, 0x1] - lsrs r0, 6 - lsls r0, 3 - adds r1, r0 - adds r1, r2 - ldrh r2, [r1] - adds r1, r2, 0 - muls r1, r3 - ldr r0, [r4, 0xC] - adds r0, r1 - ldrh r1, [r4, 0x4] - lsls r1, 22 - lsrs r1, 17 - ldr r3, _0809D6E8 @ =0x06010000 - adds r1, r3 - bl RequestSpriteCopy - mov r0, r8 - ldrb r1, [r0] - ldr r0, [r4, 0x8] - lsls r1, 2 - adds r1, r0 - ldrb r0, [r5] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - lsls r0, 10 - lsrs r0, 26 - mov r1, r9 - ands r1, r0 - ldrb r2, [r6] - movs r0, 0x40 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r6] - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - ldrb r7, [r5] - b _0809D700 - .align 2, 0 -_0809D6E4: .4byte gSpriteImageSizes -_0809D6E8: .4byte 0x06010000 -_0809D6EC: - lsls r0, r2, 26 - lsrs r0, 26 - subs r0, 0x1 - movs r1, 0x3F - ands r0, r1 - movs r1, 0x40 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r6] -_0809D700: - adds r0, r7, 0 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809D638 - - thumb_func_start sub_809D710 -sub_809D710: @ 809D710 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x38 - mov r9, r0 - adds r4, r1, 0 - adds r5, r2, 0 - mov r8, r3 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0 - str r0, [sp, 0x30] - ldr r2, _0809D7D8 @ =gSpriteImageSizes - mov r0, r9 - ldr r6, [r0] - ldrb r1, [r6, 0x3] - lsrs r1, 6 - lsls r1, 1 - ldrb r0, [r6, 0x1] - lsrs r0, 6 - lsls r0, 3 - adds r1, r0 - adds r1, r2 - ldrh r2, [r1] - ldr r1, _0809D7DC @ =0xffff0000 - add r3, sp, 0x30 - ldr r0, [r3, 0x4] - ands r0, r1 - orrs r0, r2 - str r0, [r3, 0x4] - add r1, sp, 0x18 - ldr r0, _0809D7E0 @ =0x0000ffff - strh r0, [r1] - mov r0, r9 - ldrh r2, [r0, 0x14] - mov r0, sp - adds r0, 0x1A - strh r2, [r0] - str r6, [sp, 0x1C] - mov r2, r9 - ldr r0, [r2, 0x8] - str r0, [sp, 0x20] - str r3, [sp, 0x24] - ldr r0, [r2, 0xC] - str r0, [sp, 0x28] - ldr r0, [r2, 0x10] - str r0, [sp, 0x2C] - mov r0, sp - movs r2, 0x18 - bl memcpy - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - mov r0, sp - adds r1, r4, 0 - adds r2, r5, 0 - mov r3, r8 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r6, _0809D7E4 @ =gSprites - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - adds r4, r3, r6 - adds r5, r4, 0 - adds r5, 0x2C - ldrb r1, [r5] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r5] - adds r4, 0x3F - ldrb r2, [r4] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r4] - adds r6, 0xC - adds r3, r6 - mov r2, r9 - ldr r1, [r2, 0x4] - str r1, [r3] - add sp, 0x38 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0809D7D8: .4byte gSpriteImageSizes -_0809D7DC: .4byte 0xffff0000 -_0809D7E0: .4byte 0x0000ffff -_0809D7E4: .4byte gSprites - thumb_func_end sub_809D710 - - thumb_func_start sub_809D7E8 -sub_809D7E8: @ 809D7E8 - push {lr} - sub sp, 0x8 - movs r1, 0 - str r1, [sp] - ldr r3, _0809D81C @ =gSpriteImageSizes - ldrb r2, [r0, 0x3] - lsrs r2, 6 - lsls r2, 1 - ldrb r1, [r0, 0x1] - lsrs r1, 6 - lsls r1, 3 - adds r2, r1 - adds r2, r3 - ldrh r3, [r2] - ldr r2, _0809D820 @ =0xffff0000 - ldr r1, [sp, 0x4] - ands r1, r2 - orrs r1, r3 - str r1, [sp, 0x4] - mov r1, sp - str r1, [r0, 0xC] - bl DestroySprite - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_0809D81C: .4byte gSpriteImageSizes -_0809D820: .4byte 0xffff0000 - thumb_func_end sub_809D7E8 - - thumb_func_start sub_809D824 -sub_809D824: @ 809D824 - mov r12, r0 - adds r0, 0x2A - movs r3, 0 - strb r1, [r0] - mov r2, r12 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x40 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - mov r0, r12 - adds r0, 0x2B - strb r3, [r0] - bx lr - thumb_func_end sub_809D824 - - thumb_func_start sub_809D844 -sub_809D844: @ 809D844 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_809D844 - - thumb_func_start sub_809D85C -sub_809D85C: @ 809D85C - push {lr} - ldr r1, _0809D8A0 @ =REG_BG1HOFS - ldr r0, _0809D8A4 @ =gUnknown_030042C0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _0809D8A8 @ =gUnknown_030041B4 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _0809D8AC @ =gUnknown_03004288 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _0809D8B0 @ =gUnknown_03004280 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _0809D8B4 @ =gUnknown_030041B0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _0809D8B8 @ =gUnknown_030041B8 - ldrh r0, [r0] - strh r0, [r1] - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 -_0809D8A0: .4byte REG_BG1HOFS -_0809D8A4: .4byte gUnknown_030042C0 -_0809D8A8: .4byte gUnknown_030041B4 -_0809D8AC: .4byte gUnknown_03004288 -_0809D8B0: .4byte gUnknown_03004280 -_0809D8B4: .4byte gUnknown_030041B0 -_0809D8B8: .4byte gUnknown_030041B8 - thumb_func_end sub_809D85C - - thumb_func_start sub_809D8BC -sub_809D8BC: @ 809D8BC - push {r4-r7,lr} - ldr r4, [sp, 0x14] - lsls r4, 24 - lsrs r7, r4, 24 - ldr r6, _0809D904 @ =gPaletteFade - ldrb r4, [r6, 0x8] - movs r5, 0x80 - orrs r4, r5 - strb r4, [r6, 0x8] - ldr r5, _0809D908 @ =0x02018000 - str r0, [r5] - movs r4, 0 - strb r7, [r5, 0x8] - strb r1, [r5, 0x9] - strb r2, [r5, 0xA] - str r3, [r5, 0x4] - adds r0, r5, 0 - adds r0, 0x74 - strb r4, [r0] - adds r1, r5, 0 - adds r1, 0x79 - movs r0, 0x4 - strb r0, [r1] - adds r0, r5, 0 - adds r0, 0x7C - movs r1, 0 - strh r4, [r0] - adds r0, 0x4 - strb r1, [r0] - subs r0, 0x5 - strb r1, [r0] - cmp r7, 0x4 - bls _0809D90C - movs r0, 0x1 - strb r0, [r5, 0xE] - b _0809D90E - .align 2, 0 -_0809D904: .4byte gPaletteFade -_0809D908: .4byte 0x02018000 -_0809D90C: - strb r1, [r5, 0xE] -_0809D90E: - cmp r7, 0x6 - bhi _0809D9D6 - lsls r0, r7, 2 - ldr r1, _0809D91C @ =_0809D920 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809D91C: .4byte _0809D920 - .align 2, 0 -_0809D920: - .4byte _0809D93C - .4byte _0809D9BC - .4byte _0809D992 - .4byte _0809D9D6 - .4byte _0809D966 - .4byte _0809D93C - .4byte _0809D9BC -_0809D93C: - adds r0, r5, 0 - adds r0, 0x75 - movs r1, 0 - strb r1, [r0] - adds r2, r5, 0 - adds r2, 0x76 - movs r0, 0x3 - strb r0, [r2] - adds r0, r5, 0 - adds r0, 0x77 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - adds r1, r5, 0 - adds r1, 0x7E - movs r0, 0x1 - strb r0, [r1] - adds r1, 0x1 - movs r0, 0x7 - strb r0, [r1] - b _0809D9D6 -_0809D966: - adds r0, r5, 0 - adds r0, 0x75 - movs r1, 0 - strb r1, [r0] - adds r2, r5, 0 - adds r2, 0x76 - movs r0, 0x3 - strb r0, [r2] - adds r0, r5, 0 - adds r0, 0x77 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - adds r0, 0x6 - movs r1, 0x1 - strb r1, [r0] - adds r2, 0x9 - movs r0, 0x7 - strb r0, [r2] - adds r0, r5, 0 - adds r0, 0x7B - b _0809D9D4 -_0809D992: - adds r1, r5, 0 - adds r1, 0x75 - movs r3, 0 - movs r0, 0x2 - strb r0, [r1] - adds r0, r5, 0 - adds r0, 0x76 - movs r2, 0x3 - strb r2, [r0] - adds r0, 0x1 - movs r1, 0x1 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - adds r0, 0x6 - strb r2, [r0] - adds r0, 0x1 - strb r3, [r0] - subs r0, 0x6 - strb r3, [r0] - b _0809D9D6 -_0809D9BC: - adds r1, r5, 0 - adds r1, 0x75 - movs r0, 0x2 - strb r0, [r1] - adds r1, 0x1 - movs r0, 0x3 - strb r0, [r1] - adds r0, r5, 0 - adds r0, 0x77 - movs r1, 0x1 - strb r1, [r0] - adds r0, 0x1 -_0809D9D4: - strb r1, [r0] -_0809D9D6: - adds r0, r5, 0 - adds r0, 0x75 - ldrb r0, [r0] - strb r0, [r5, 0xB] - ldr r0, _0809D9EC @ =sub_809DE44 - bl SetMainCallback2 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809D9EC: .4byte sub_809DE44 - thumb_func_end sub_809D8BC - - thumb_func_start sub_809D9F0 -sub_809D9F0: @ 809D9F0 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, [sp, 0x10] - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r5, 16 - lsrs r5, 16 - movs r4, 0x2 - str r4, [sp] - bl sub_809D8BC - ldr r0, _0809DA18 @ =0x02018000 - adds r0, 0x7C - strh r5, [r0] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809DA18: .4byte 0x02018000 - thumb_func_end sub_809D9F0 - - thumb_func_start sub_809DA1C -sub_809DA1C: @ 809DA1C - push {lr} - ldr r0, _0809DA30 @ =0x02018000 - ldrb r0, [r0, 0x8] - cmp r0, 0x6 - bhi _0809DA78 - lsls r0, 2 - ldr r1, _0809DA34 @ =_0809DA38 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809DA30: .4byte 0x02018000 -_0809DA34: .4byte _0809DA38 - .align 2, 0 -_0809DA38: - .4byte _0809DA54 - .4byte _0809DA6C - .4byte _0809DA64 - .4byte _0809DA64 - .4byte _0809DA5C - .4byte _0809DA54 - .4byte _0809DA6C -_0809DA54: - ldr r0, _0809DA58 @ =sub_809E19C - b _0809DA6E - .align 2, 0 -_0809DA58: .4byte sub_809E19C -_0809DA5C: - ldr r0, _0809DA60 @ =sub_809E19C - b _0809DA6E - .align 2, 0 -_0809DA60: .4byte sub_809E19C -_0809DA64: - ldr r0, _0809DA68 @ =sub_809EB40 - b _0809DA6E - .align 2, 0 -_0809DA68: .4byte sub_809EB40 -_0809DA6C: - ldr r0, _0809DA7C @ =sub_809E3FC -_0809DA6E: - movs r1, 0 - bl CreateTask - ldr r1, _0809DA80 @ =0x02018000 - strb r0, [r1, 0xF] -_0809DA78: - pop {r0} - bx r0 - .align 2, 0 -_0809DA7C: .4byte sub_809E3FC -_0809DA80: .4byte 0x02018000 - thumb_func_end sub_809DA1C - - thumb_func_start sub_809DA84 -sub_809DA84: @ 809DA84 - push {r4-r7,lr} - sub sp, 0x8 - ldr r1, _0809DAA4 @ =gMain - ldr r2, _0809DAA8 @ =0x0000043c - adds r0, r1, r2 - ldrb r0, [r0] - mov r12, r1 - cmp r0, 0x16 - bls _0809DA98 - b _0809DE00 -_0809DA98: - lsls r0, 2 - ldr r1, _0809DAAC @ =_0809DAB0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809DAA4: .4byte gMain -_0809DAA8: .4byte 0x0000043c -_0809DAAC: .4byte _0809DAB0 - .align 2, 0 -_0809DAB0: - .4byte _0809DB0C - .4byte _0809DB18 - .4byte _0809DB2C - .4byte _0809DB32 - .4byte _0809DB80 - .4byte _0809DB94 - .4byte _0809DBA0 - .4byte _0809DBBC - .4byte _0809DBC8 - .4byte _0809DBDC - .4byte _0809DC2C - .4byte _0809DC48 - .4byte _0809DC5C - .4byte _0809DC90 - .4byte _0809DCB0 - .4byte _0809DCC4 - .4byte _0809DCF8 - .4byte _0809DD02 - .4byte _0809DD30 - .4byte _0809DD3C - .4byte _0809DD68 - .4byte _0809DD98 - .4byte _0809DDE0 -_0809DB0C: - movs r0, 0 - bl SetVBlankCallback - bl ResetSpriteData - b _0809DDE8 -_0809DB18: - bl remove_some_task - ldr r1, _0809DB24 @ =gMain - ldr r2, _0809DB28 @ =0x0000043c - adds r1, r2 - b _0809DDEE - .align 2, 0 -_0809DB24: .4byte gMain -_0809DB28: .4byte 0x0000043c -_0809DB2C: - bl FreeAllSpritePalettes - b _0809DDE8 -_0809DB32: - movs r2, 0xC0 - lsls r2, 19 - movs r3, 0x80 - lsls r3, 9 - movs r5, 0 - ldr r1, _0809DB74 @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - ldr r6, _0809DB78 @ =0x85000400 - movs r7, 0x85 - lsls r7, 24 -_0809DB48: - str r5, [sp, 0x4] - add r0, sp, 0x4 - str r0, [r1] - str r2, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _0809DB48 - str r5, [sp, 0x4] - add r0, sp, 0x4 - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, _0809DB7C @ =0x0000043c - add r1, r12 - b _0809DDEE - .align 2, 0 -_0809DB74: .4byte 0x040000d4 -_0809DB78: .4byte 0x85000400 -_0809DB7C: .4byte 0x0000043c -_0809DB80: - bl sub_809DE64 - ldr r1, _0809DB8C @ =gMain - ldr r2, _0809DB90 @ =0x0000043c - adds r1, r2 - b _0809DDEE - .align 2, 0 -_0809DB8C: .4byte gMain -_0809DB90: .4byte 0x0000043c -_0809DB94: - ldr r0, _0809DB9C @ =gWindowConfig_81E6E6C - bl SetUpWindowConfig - b _0809DDE8 - .align 2, 0 -_0809DB9C: .4byte gWindowConfig_81E6E6C -_0809DBA0: - ldr r0, _0809DBB0 @ =gWindowConfig_81E6E6C - bl MultistepInitMenuWindowBegin - ldr r1, _0809DBB4 @ =gMain - ldr r2, _0809DBB8 @ =0x0000043c - adds r1, r2 - b _0809DDEE - .align 2, 0 -_0809DBB0: .4byte gWindowConfig_81E6E6C -_0809DBB4: .4byte gMain -_0809DBB8: .4byte 0x0000043c -_0809DBBC: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - bne _0809DBC6 - b _0809DE38 -_0809DBC6: - b _0809DDE8 -_0809DBC8: - bl sub_809DA1C - ldr r1, _0809DBD4 @ =gMain - ldr r2, _0809DBD8 @ =0x0000043c - adds r1, r2 - b _0809DDEE - .align 2, 0 -_0809DBD4: .4byte gMain -_0809DBD8: .4byte 0x0000043c -_0809DBDC: - ldr r1, _0809DC08 @ =gSummaryScreenTextTiles - ldr r2, _0809DC0C @ =0x0600d000 - ldr r0, _0809DC10 @ =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _0809DC14 @ =0x800000a0 - str r1, [r0, 0x8] - ldr r1, [r0, 0x8] - ldr r1, _0809DC18 @ =gSummaryScreenButtonTiles - ldr r2, _0809DC1C @ =0x0600d140 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _0809DC20 @ =0x80000080 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r0, _0809DC24 @ =0x02018000 - adds r0, 0x74 - movs r1, 0 - strb r1, [r0] - ldr r1, _0809DC28 @ =0x0000043c - add r1, r12 - b _0809DDEE - .align 2, 0 -_0809DC08: .4byte gSummaryScreenTextTiles -_0809DC0C: .4byte 0x0600d000 -_0809DC10: .4byte 0x040000d4 -_0809DC14: .4byte 0x800000a0 -_0809DC18: .4byte gSummaryScreenButtonTiles -_0809DC1C: .4byte 0x0600d140 -_0809DC20: .4byte 0x80000080 -_0809DC24: .4byte 0x02018000 -_0809DC28: .4byte 0x0000043c -_0809DC2C: - bl sub_809DF00 - lsls r0, 24 - cmp r0, 0 - bne _0809DC38 - b _0809DE38 -_0809DC38: - ldr r0, _0809DC44 @ =0x02018000 - adds r0, 0x74 - movs r1, 0 - strb r1, [r0] - b _0809DDE8 - .align 2, 0 -_0809DC44: .4byte 0x02018000 -_0809DC48: - bl sub_80A18C4 - ldr r1, _0809DC54 @ =gMain - ldr r2, _0809DC58 @ =0x0000043c - adds r1, r2 - b _0809DDEE - .align 2, 0 -_0809DC54: .4byte gMain -_0809DC58: .4byte 0x0000043c -_0809DC5C: - ldr r4, _0809DC78 @ =0x02018010 - adds r0, r4, 0 - bl sub_809F678 - adds r0, r4, 0 - bl sub_80A1CD8 - lsls r0, 24 - cmp r0, 0 - bne _0809DC7C - movs r0, 0 - bl sub_80A12D0 - b _0809DC82 - .align 2, 0 -_0809DC78: .4byte 0x02018010 -_0809DC7C: - movs r0, 0xA - bl sub_80A12D0 -_0809DC82: - ldr r0, _0809DC8C @ =0x02018010 - bl sub_80A0EA4 - b _0809DDE8 - .align 2, 0 -_0809DC8C: .4byte 0x02018010 -_0809DC90: - bl sub_80A1950 - ldr r0, _0809DCA4 @ =0x02018010 - bl sub_80A1D84 - ldr r1, _0809DCA8 @ =gMain - ldr r2, _0809DCAC @ =0x0000043c - adds r1, r2 - b _0809DDEE - .align 2, 0 -_0809DCA4: .4byte 0x02018010 -_0809DCA8: .4byte gMain -_0809DCAC: .4byte 0x0000043c -_0809DCB0: - ldr r4, _0809DCC0 @ =0x02018010 - adds r0, r4, 0 - bl sub_80A1DE8 - adds r4, 0x64 - movs r0, 0 - strb r0, [r4] - b _0809DDE8 - .align 2, 0 -_0809DCC0: .4byte 0x02018010 -_0809DCC4: - ldr r4, _0809DCEC @ =0x02018010 - adds r5, r4, 0 - adds r5, 0x64 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809F6B4 - subs r4, 0x10 - strb r0, [r4, 0xC] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _0809DCE0 - b _0809DE38 -_0809DCE0: - movs r0, 0 - strb r0, [r5] - ldr r1, _0809DCF0 @ =gMain - ldr r2, _0809DCF4 @ =0x0000043c - adds r1, r2 - b _0809DDEE - .align 2, 0 -_0809DCEC: .4byte 0x02018010 -_0809DCF0: .4byte gMain -_0809DCF4: .4byte 0x0000043c -_0809DCF8: - bl sub_809E044 - bl sub_80A0EE8 - b _0809DDE8 -_0809DD02: - ldr r1, _0809DD20 @ =0x02018000 - ldrb r0, [r1, 0xB] - cmp r0, 0x1 - bhi _0809DD18 - ldr r0, _0809DD24 @ =gUnknown_083C1580 - ldrb r1, [r1, 0xB] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 -_0809DD18: - ldr r1, _0809DD28 @ =gMain - ldr r2, _0809DD2C @ =0x0000043c - adds r1, r2 - b _0809DDEE - .align 2, 0 -_0809DD20: .4byte 0x02018000 -_0809DD24: .4byte gUnknown_083C1580 -_0809DD28: .4byte gMain -_0809DD2C: .4byte 0x0000043c -_0809DD30: - ldr r0, _0809DD38 @ =0x02018010 - bl sub_809FAC8 - b _0809DDE8 - .align 2, 0 -_0809DD38: .4byte 0x02018010 -_0809DD3C: - ldr r2, _0809DD58 @ =gUnknown_083C1598 - ldr r0, _0809DD5C @ =0x02018000 - ldrb r1, [r0, 0xB] - lsls r1, 2 - adds r1, r2 - adds r0, 0x10 - ldr r1, [r1] - bl _call_via_r1 - ldr r1, _0809DD60 @ =gMain - ldr r2, _0809DD64 @ =0x0000043c - adds r1, r2 - b _0809DDEE - .align 2, 0 -_0809DD58: .4byte gUnknown_083C1598 -_0809DD5C: .4byte 0x02018000 -_0809DD60: .4byte gMain -_0809DD64: .4byte 0x0000043c -_0809DD68: - ldr r0, _0809DD84 @ =0x02018010 - movs r1, 0x2D - bl GetMonData - adds r1, r0, 0 - cmp r1, 0 - beq _0809DD8C - ldr r1, _0809DD88 @ =gUnknown_030041B0 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - b _0809DDE8 - .align 2, 0 -_0809DD84: .4byte 0x02018010 -_0809DD88: .4byte gUnknown_030041B0 -_0809DD8C: - ldr r0, _0809DD94 @ =gUnknown_030041B0 - strh r1, [r0] - b _0809DDE8 - .align 2, 0 -_0809DD94: .4byte gUnknown_030041B0 -_0809DD98: - bl sub_809EBC4 - ldr r0, _0809DDB8 @ =0x02018000 - adds r0, 0x79 - ldrb r0, [r0] - cmp r0, 0 - beq _0809DDBC - movs r0, 0 - movs r1, 0 - bl sub_80A1488 - movs r0, 0 - movs r1, 0 - bl sub_80A1654 - b _0809DDCC - .align 2, 0 -_0809DDB8: .4byte 0x02018000 -_0809DDBC: - movs r0, 0xA - movs r1, 0 - bl sub_80A1488 - movs r0, 0xA - movs r1, 0 - bl sub_80A1654 -_0809DDCC: - bl sub_80A0DD0 - ldr r1, _0809DDD8 @ =gMain - ldr r2, _0809DDDC @ =0x0000043c - adds r1, r2 - b _0809DDEE - .align 2, 0 -_0809DDD8: .4byte gMain -_0809DDDC: .4byte 0x0000043c -_0809DDE0: - bl sub_8055870 - cmp r0, 0x1 - beq _0809DE38 -_0809DDE8: - ldr r1, _0809DDF8 @ =gMain - ldr r0, _0809DDFC @ =0x0000043c - adds r1, r0 -_0809DDEE: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0809DE38 - .align 2, 0 -_0809DDF8: .4byte gMain -_0809DDFC: .4byte 0x0000043c -_0809DE00: - ldr r0, _0809DE2C @ =sub_809D85C - bl SetVBlankCallback - movs r0, 0x1 - str r0, [sp] - movs r0, 0xFF - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginHardwarePaletteFade - ldr r0, _0809DE30 @ =sub_809D844 - bl SetMainCallback2 - ldr r2, _0809DE34 @ =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - movs r0, 0x1 - b _0809DE3A - .align 2, 0 -_0809DE2C: .4byte sub_809D85C -_0809DE30: .4byte sub_809D844 -_0809DE34: .4byte gPaletteFade -_0809DE38: - movs r0, 0 -_0809DE3A: - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809DA84 - - thumb_func_start sub_809DE44 -sub_809DE44: @ 809DE44 - push {lr} -_0809DE46: - bl sub_809DA84 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809DE5E - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809DE46 -_0809DE5E: - pop {r0} - bx r0 - thumb_func_end sub_809DE44 - - thumb_func_start sub_809DE64 -sub_809DE64: @ 809DE64 - ldr r1, _0809DED0 @ =REG_BG0CNT - ldr r2, _0809DED4 @ =0x00001e08 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _0809DED8 @ =0x00004801 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _0809DEDC @ =0x00004a02 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _0809DEE0 @ =0x00005c03 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _0809DEE4 @ =gUnknown_030042C0 - movs r0, 0 - strh r0, [r1] - ldr r1, _0809DEE8 @ =gUnknown_030041B4 - strh r0, [r1] - ldr r1, _0809DEEC @ =gUnknown_03004288 - strh r0, [r1] - ldr r1, _0809DEF0 @ =gUnknown_03004280 - strh r0, [r1] - ldr r1, _0809DEF4 @ =gUnknown_030041B0 - strh r0, [r1] - ldr r1, _0809DEF8 @ =gUnknown_030041B8 - strh r0, [r1] - ldr r1, _0809DEFC @ =REG_BG0HOFS - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - adds r1, 0x32 - strh r0, [r1] - subs r1, 0x50 - movs r2, 0xFA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_0809DED0: .4byte REG_BG0CNT -_0809DED4: .4byte 0x00001e08 -_0809DED8: .4byte 0x00004801 -_0809DEDC: .4byte 0x00004a02 -_0809DEE0: .4byte 0x00005c03 -_0809DEE4: .4byte gUnknown_030042C0 -_0809DEE8: .4byte gUnknown_030041B4 -_0809DEEC: .4byte gUnknown_03004288 -_0809DEF0: .4byte gUnknown_03004280 -_0809DEF4: .4byte gUnknown_030041B0 -_0809DEF8: .4byte gUnknown_030041B8 -_0809DEFC: .4byte REG_BG0HOFS - thumb_func_end sub_809DE64 - - thumb_func_start sub_809DF00 -sub_809DF00: @ 809DF00 - push {lr} - ldr r0, _0809DF18 @ =0x02018000 - adds r0, 0x74 - ldrb r0, [r0] - cmp r0, 0xC - bls _0809DF0E - b _0809E030 -_0809DF0E: - lsls r0, 2 - ldr r1, _0809DF1C @ =_0809DF20 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809DF18: .4byte 0x02018000 -_0809DF1C: .4byte _0809DF20 - .align 2, 0 -_0809DF20: - .4byte _0809DF54 - .4byte _0809DF64 - .4byte _0809DF74 - .4byte _0809DF88 - .4byte _0809DF9C - .4byte _0809DFAC - .4byte _0809DFC4 - .4byte _0809DFD4 - .4byte _0809DFE0 - .4byte _0809DFEC - .4byte _0809DFF8 - .4byte _0809E004 - .4byte _0809E010 -_0809DF54: - ldr r0, _0809DF60 @ =gStatusScreen_Gfx - movs r1, 0xC0 - lsls r1, 19 - bl LZDecompressVram - b _0809E030 - .align 2, 0 -_0809DF60: .4byte gStatusScreen_Gfx -_0809DF64: - ldr r0, _0809DF6C @ =gUnknown_08E73508 - ldr r1, _0809DF70 @ =0x0600e000 - b _0809DFB0 - .align 2, 0 -_0809DF6C: .4byte gUnknown_08E73508 -_0809DF70: .4byte 0x0600e000 -_0809DF74: - ldr r0, _0809DF80 @ =gUnknown_08E74E88 - ldr r1, _0809DF84 @ =0x0600e800 - bl LZDecompressVram - b _0809E030 - .align 2, 0 -_0809DF80: .4byte gUnknown_08E74E88 -_0809DF84: .4byte 0x0600e800 -_0809DF88: - ldr r0, _0809DF94 @ =gStatusScreen_Tilemap - ldr r1, _0809DF98 @ =0x06004800 - bl LZDecompressVram - b _0809E030 - .align 2, 0 -_0809DF94: .4byte gStatusScreen_Tilemap -_0809DF98: .4byte 0x06004800 -_0809DF9C: - ldr r0, _0809DFA4 @ =gUnknown_08E73E88 - ldr r1, _0809DFA8 @ =0x06005800 - b _0809DFB0 - .align 2, 0 -_0809DFA4: .4byte gUnknown_08E73E88 -_0809DFA8: .4byte 0x06005800 -_0809DFAC: - ldr r0, _0809DFBC @ =gUnknown_08E74688 - ldr r1, _0809DFC0 @ =0x06006800 -_0809DFB0: - movs r2, 0x80 - lsls r2, 3 - bl CpuSet - b _0809E030 - .align 2, 0 -_0809DFBC: .4byte gUnknown_08E74688 -_0809DFC0: .4byte 0x06006800 -_0809DFC4: - ldr r0, _0809DFD0 @ =gStatusScreen_Pal - movs r1, 0 - movs r2, 0xA0 - bl LoadCompressedPalette - b _0809E030 - .align 2, 0 -_0809DFD0: .4byte gStatusScreen_Pal -_0809DFD4: - ldr r0, _0809DFDC @ =gUnknown_083C11B8 - bl LoadCompressedObjectPic - b _0809E030 - .align 2, 0 -_0809DFDC: .4byte gUnknown_083C11B8 -_0809DFE0: - ldr r0, _0809DFE8 @ =gUnknown_083C1270 - bl LoadCompressedObjectPic - b _0809E030 - .align 2, 0 -_0809DFE8: .4byte gUnknown_083C1270 -_0809DFEC: - ldr r0, _0809DFF4 @ =gUnknown_083C12F4 - bl LoadCompressedObjectPic - b _0809E030 - .align 2, 0 -_0809DFF4: .4byte gUnknown_083C12F4 -_0809DFF8: - ldr r0, _0809E000 @ =gUnknown_083C12FC - bl LoadCompressedObjectPalette - b _0809E030 - .align 2, 0 -_0809E000: .4byte gUnknown_083C12FC -_0809E004: - ldr r0, _0809E00C @ =gUnknown_083C1278 - bl LoadCompressedObjectPalette - b _0809E030 - .align 2, 0 -_0809E00C: .4byte gUnknown_083C1278 -_0809E010: - ldr r0, _0809E028 @ =gMoveTypes_Pal - movs r1, 0xE8 - lsls r1, 1 - movs r2, 0x60 - bl LoadCompressedPalette - ldr r0, _0809E02C @ =0x02018000 - adds r0, 0x74 - movs r1, 0 - strb r1, [r0] - movs r0, 0x1 - b _0809E03C - .align 2, 0 -_0809E028: .4byte gMoveTypes_Pal -_0809E02C: .4byte 0x02018000 -_0809E030: - ldr r1, _0809E040 @ =0x02018000 - adds r1, 0x74 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0 -_0809E03C: - pop {r1} - bx r1 - .align 2, 0 -_0809E040: .4byte 0x02018000 - thumb_func_end sub_809DF00 - - thumb_func_start sub_809E044 -sub_809E044: @ 809E044 - push {r4,r5,lr} - ldr r4, _0809E0F4 @ =gUnknownPalette_81E6692+0x1C - adds r0, r4, 0 - movs r1, 0x81 - movs r2, 0x2 - bl LoadPalette - adds r5, r4, 0x2 - adds r0, r5, 0 - movs r1, 0x88 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - movs r1, 0x8F - movs r2, 0x2 - bl LoadPalette - adds r0, r5, 0 - movs r1, 0x89 - movs r2, 0x2 - bl LoadPalette - subs r5, 0x12 - adds r0, r5, 0 - movs r1, 0xD1 - movs r2, 0x4 - bl LoadPalette - adds r0, r4, 0 - subs r0, 0x8 - movs r1, 0xD3 - movs r2, 0x4 - bl LoadPalette - adds r0, r4, 0 - movs r1, 0xD5 - movs r2, 0x4 - bl LoadPalette - adds r0, r5, 0 - movs r1, 0xD7 - movs r2, 0x4 - bl LoadPalette - adds r0, r4, 0 - subs r0, 0x14 - movs r1, 0xD9 - movs r2, 0x4 - bl LoadPalette - adds r0, r4, 0 - subs r0, 0xC - movs r1, 0xDB - movs r2, 0x4 - bl LoadPalette - adds r0, r4, 0 - subs r0, 0x18 - movs r1, 0xDD - movs r2, 0x2 - bl LoadPalette - subs r5, 0x6 - adds r0, r5, 0 - movs r1, 0xDE - movs r2, 0x2 - bl LoadPalette - subs r4, 0x1A - adds r0, r4, 0 - movs r1, 0xDF - movs r2, 0x2 - bl LoadPalette - ldr r0, _0809E0F8 @ =gFontDefaultPalette - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - adds r0, r5, 0 - movs r1, 0xF9 - movs r2, 0x2 - bl LoadPalette - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809E0F4: .4byte gUnknownPalette_81E6692+0x1C -_0809E0F8: .4byte gFontDefaultPalette - thumb_func_end sub_809E044 - - thumb_func_start sub_809E0FC -sub_809E0FC: @ 809E0FC - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0809E134 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809E138 @ =sub_809E13C - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809E134: .4byte gTasks -_0809E138: .4byte sub_809E13C - thumb_func_end sub_809E0FC - - thumb_func_start sub_809E13C -sub_809E13C: @ 809E13C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_8055870 - cmp r0, 0x1 - beq _0809E182 - ldr r0, _0809E188 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0809E182 - ldr r1, _0809E18C @ =gUnknown_020384F0 - ldr r4, _0809E190 @ =0x02018000 - ldrb r0, [r4, 0x9] - strb r0, [r1] - bl ResetSpriteData - bl FreeAllSpritePalettes - bl StopCryAndClearCrySongs - ldr r0, _0809E194 @ =gMPlay_BGM - ldr r1, _0809E198 @ =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl - ldr r0, [r4, 0x4] - bl SetMainCallback2 - adds r0, r5, 0 - bl DestroyTask -_0809E182: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809E188: .4byte gPaletteFade -_0809E18C: .4byte gUnknown_020384F0 -_0809E190: .4byte 0x02018000 -_0809E194: .4byte gMPlay_BGM -_0809E198: .4byte 0x0000ffff - thumb_func_end sub_809E13C - - thumb_func_start sub_809E19C -sub_809E19C: @ 809E19C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0809E1C8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r2, 0x80 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _0809E25A - ldr r5, _0809E1CC @ =gMain - ldrh r1, [r5, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0809E1D0 - movs r1, 0x1 - negs r1, r1 - adds r0, r4, 0 - bl sub_809F1B8 - b _0809E25A - .align 2, 0 -_0809E1C8: .4byte gPaletteFade -_0809E1CC: .4byte gMain -_0809E1D0: - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _0809E1E2 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_809F1B8 - b _0809E25A -_0809E1E2: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _0809E1F6 - bl sub_80F9284 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809E202 -_0809E1F6: - movs r1, 0x1 - negs r1, r1 - adds r0, r4, 0 - bl sub_809F134 - b _0809E25A -_0809E202: - ldrh r1, [r5, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _0809E218 - bl sub_80F9284 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0809E222 -_0809E218: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_809F134 - b _0809E25A -_0809E222: - ldrh r1, [r5, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809E24C - ldr r5, _0809E248 @ =0x02018000 - ldrb r0, [r5, 0xB] - cmp r0, 0x1 - bls _0809E23A - adds r0, r4, 0 - bl sub_809EA50 -_0809E23A: - ldrb r0, [r5, 0xB] - cmp r0, 0 - bne _0809E25A - adds r0, r4, 0 - bl sub_809E0FC - b _0809E25A - .align 2, 0 -_0809E248: .4byte 0x02018000 -_0809E24C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809E25A - adds r0, r4, 0 - bl sub_809E0FC -_0809E25A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_809E19C - - thumb_func_start sub_809E260 -sub_809E260: @ 809E260 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0809E29C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r2, 0x80 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _0809E276 - b _0809E3EE -_0809E276: - ldr r5, _0809E2A0 @ =gMain - ldrh r1, [r5, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0809E2AC - ldr r1, _0809E2A4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x4 - strh r1, [r0, 0x8] - subs r1, 0x5 - ldr r2, _0809E2A8 @ =0x02018079 - adds r0, r4, 0 - bl sub_809E8F0 - b _0809E3EE - .align 2, 0 -_0809E29C: .4byte gPaletteFade -_0809E2A0: .4byte gMain -_0809E2A4: .4byte gTasks -_0809E2A8: .4byte 0x02018079 -_0809E2AC: - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _0809E2D8 - ldr r1, _0809E2D0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x4 - strh r1, [r0, 0x8] - ldr r2, _0809E2D4 @ =0x02018079 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_809E8F0 - b _0809E3EE - .align 2, 0 -_0809E2D0: .4byte gTasks -_0809E2D4: .4byte 0x02018079 -_0809E2D8: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _0809E2EC - bl sub_80F9284 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809E324 -_0809E2EC: - ldr r1, _0809E320 @ =0x02018000 - ldrb r0, [r1, 0xB] - cmp r0, 0x3 - bne _0809E314 - adds r0, r1, 0 - adds r0, 0x79 - ldrb r0, [r0] - cmp r0, 0x4 - bne _0809E308 - adds r0, r1, 0 - adds r0, 0x7C - ldrh r0, [r0] - cmp r0, 0 - beq _0809E314 -_0809E308: - movs r0, 0 - movs r1, 0xE - movs r2, 0x9 - movs r3, 0x12 - bl MenuZeroFillWindowRect -_0809E314: - movs r1, 0x1 - negs r1, r1 - adds r0, r4, 0 - bl sub_809F134 - b _0809E3EE - .align 2, 0 -_0809E320: .4byte 0x02018000 -_0809E324: - ldrh r1, [r5, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _0809E33A - bl sub_80F9284 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0809E37C -_0809E33A: - ldr r1, _0809E378 @ =0x02018000 - adds r2, r1, 0 - adds r2, 0x76 - ldrb r0, [r1, 0xB] - ldrb r2, [r2] - cmp r0, r2 - beq _0809E3EE - cmp r0, 0x2 - bne _0809E36C - adds r0, r1, 0 - adds r0, 0x79 - ldrb r0, [r0] - cmp r0, 0x4 - bne _0809E360 - adds r0, r1, 0 - adds r0, 0x7C - ldrh r0, [r0] - cmp r0, 0 - beq _0809E36C -_0809E360: - movs r0, 0 - movs r1, 0xE - movs r2, 0x9 - movs r3, 0x12 - bl MenuZeroFillWindowRect -_0809E36C: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_809F134 - b _0809E3EE - .align 2, 0 -_0809E378: .4byte 0x02018000 -_0809E37C: - ldrh r1, [r5, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809E3D4 - adds r0, r4, 0 - bl sub_809F7D0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809E3A0 - ldr r0, _0809E3BC @ =0x02018000 - adds r5, r0, 0 - adds r5, 0x79 - ldrb r0, [r5] - cmp r0, 0x4 - bne _0809E3C4 -_0809E3A0: - ldr r0, _0809E3BC @ =0x02018000 - adds r1, r0, 0 - adds r1, 0x79 - ldrb r1, [r1] - adds r0, 0x7A - strb r1, [r0] - ldr r1, _0809E3C0 @ =gSpecialVar_0x8005 - ldrb r0, [r0] - strh r0, [r1] - adds r0, r4, 0 - bl sub_809E0FC - b _0809E3EE - .align 2, 0 -_0809E3BC: .4byte 0x02018000 -_0809E3C0: .4byte gSpecialVar_0x8005 -_0809E3C4: - movs r0, 0x20 - bl PlaySE - ldrb r1, [r5] - adds r0, r4, 0 - bl sub_809F9D0 - b _0809E3EE -_0809E3D4: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809E3EE - ldr r0, _0809E3F4 @ =0x02018000 - adds r0, 0x7A - movs r1, 0x4 - strb r1, [r0] - ldr r0, _0809E3F8 @ =gSpecialVar_0x8005 - strh r1, [r0] - adds r0, r4, 0 - bl sub_809E0FC -_0809E3EE: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809E3F4: .4byte 0x02018000 -_0809E3F8: .4byte gSpecialVar_0x8005 - thumb_func_end sub_809E260 - - thumb_func_start sub_809E3FC -sub_809E3FC: @ 809E3FC - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r7, r5, 0 - ldr r0, _0809E438 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r2, 0x80 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _0809E502 - ldr r0, _0809E43C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0809E448 - ldr r1, _0809E440 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x4 - strh r1, [r0, 0x8] - subs r1, 0x5 - ldr r2, _0809E444 @ =0x02018079 - adds r0, r5, 0 - bl sub_809E8F0 - b _0809E502 - .align 2, 0 -_0809E438: .4byte gPaletteFade -_0809E43C: .4byte gMain -_0809E440: .4byte gTasks -_0809E444: .4byte 0x02018079 -_0809E448: - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _0809E474 - ldr r1, _0809E46C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x4 - strh r1, [r0, 0x8] - ldr r2, _0809E470 @ =0x02018079 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_809E8F0 - b _0809E502 - .align 2, 0 -_0809E46C: .4byte gTasks -_0809E470: .4byte 0x02018079 -_0809E474: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809E4EE - ldr r4, _0809E4A8 @ =0x02018000 - adds r6, r4, 0 - adds r6, 0x79 - ldrb r0, [r6] - cmp r0, 0x4 - beq _0809E4E0 - adds r0, r4, 0 - adds r0, 0x7B - ldrb r0, [r0] - cmp r0, 0 - bne _0809E4E0 - adds r0, r4, 0 - adds r0, 0x10 - bl sub_809E508 - lsls r0, 24 - cmp r0, 0 - bne _0809E4AC - movs r0, 0x20 - bl PlaySE - b _0809E502 - .align 2, 0 -_0809E4A8: .4byte 0x02018000 -_0809E4AC: - movs r0, 0x5 - bl PlaySE - ldrb r1, [r6] - adds r0, r4, 0 - adds r0, 0x7A - strb r1, [r0] - movs r0, 0x1 - bl sub_80A1B40 - movs r0, 0x13 - bl sub_80A1A30 - ldr r1, _0809E4D8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809E4DC @ =sub_809E534 - str r1, [r0] - b _0809E502 - .align 2, 0 -_0809E4D8: .4byte gTasks -_0809E4DC: .4byte sub_809E534 -_0809E4E0: - movs r0, 0x5 - bl PlaySE - adds r0, r7, 0 - bl sub_809EAC8 - b _0809E502 -_0809E4EE: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809E502 - movs r0, 0x5 - bl PlaySE - adds r0, r7, 0 - bl sub_809EAC8 -_0809E502: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_809E3FC - - thumb_func_start sub_809E508 -sub_809E508: @ 809E508 - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0x1 -_0809E50E: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_809F760 - lsls r0, 16 - cmp r0, 0 - beq _0809E520 - movs r0, 0x1 - b _0809E52C -_0809E520: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _0809E50E - movs r0, 0 -_0809E52C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809E508 - - thumb_func_start sub_809E534 -sub_809E534: @ 809E534 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - adds r2, r3, 0 - ldr r0, _0809E564 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0809E570 - ldr r1, _0809E568 @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x3 - strh r1, [r0, 0x8] - subs r1, 0x4 - ldr r2, _0809E56C @ =0x0201807a - adds r0, r3, 0 - bl sub_809E8F0 - b _0809E5C0 - .align 2, 0 -_0809E564: .4byte gMain -_0809E568: .4byte gTasks -_0809E56C: .4byte 0x0201807a -_0809E570: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0809E59C - ldr r1, _0809E594 @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x3 - strh r1, [r0, 0x8] - ldr r2, _0809E598 @ =0x0201807a - adds r0, r3, 0 - movs r1, 0x1 - bl sub_809E8F0 - b _0809E5C0 - .align 2, 0 -_0809E594: .4byte gTasks -_0809E598: .4byte 0x0201807a -_0809E59C: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809E5AE - adds r0, r3, 0 - movs r1, 0x1 - bl sub_809E83C - b _0809E5C0 -_0809E5AE: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809E5C0 - movs r1, 0x1 - negs r1, r1 - adds r0, r2, 0 - bl sub_809E83C -_0809E5C0: - pop {r0} - bx r0 - thumb_func_end sub_809E534 - - thumb_func_start sub_809E5C4 -sub_809E5C4: @ 809E5C4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - ldr r1, _0809E6D0 @ =0x02018000 - ldr r5, [r1] - ldrb r2, [r1, 0x9] - movs r0, 0x64 - muls r0, r2 - adds r5, r0 - adds r0, r1, 0 - adds r0, 0x79 - ldrb r0, [r0] - mov r8, r0 - adds r1, 0x7A - ldrb r6, [r1] - adds r0, 0xD - str r0, [sp, 0x8] - adds r0, r5, 0 - ldr r1, [sp, 0x8] - bl GetMonData - mov r1, sp - adds r1, 0x2 - str r1, [sp, 0x14] - strh r0, [r1] - adds r2, r6, 0 - adds r2, 0xD - str r2, [sp, 0xC] - adds r0, r5, 0 - adds r1, r2, 0 - bl GetMonData - mov r1, sp - strh r0, [r1] - mov r3, r8 - adds r3, 0x11 - str r3, [sp, 0x10] - adds r0, r5, 0 - adds r1, r3, 0 - bl GetMonData - mov r7, sp - adds r7, 0x5 - str r7, [sp, 0x18] - strb r0, [r7] - adds r0, r6, 0 - adds r0, 0x11 - str r0, [sp, 0x1C] - adds r0, r5, 0 - ldr r1, [sp, 0x1C] - bl GetMonData - add r1, sp, 0x4 - mov r10, r1 - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x15 - bl GetMonData - mov r4, sp - adds r4, 0x6 - strb r0, [r4] - ldr r1, _0809E6D4 @ =gUnknown_08208238 - mov r2, r8 - adds r0, r2, r1 - ldrb r0, [r0] - mov r9, r0 - ldrb r0, [r4] - adds r2, r0, 0 - mov r3, r9 - ands r2, r3 - mov r7, r8 - lsls r7, 1 - mov r8, r7 - asrs r2, r7 - lsls r2, 24 - lsrs r2, 24 - adds r1, r6, r1 - ldrb r3, [r1] - adds r1, r0, 0 - ands r1, r3 - lsls r6, 1 - asrs r1, r6 - lsls r1, 24 - lsrs r1, 24 - mov r7, r9 - bics r0, r7 - strb r0, [r4] - ldrb r0, [r4] - bics r0, r3 - strb r0, [r4] - lsls r2, r6 - mov r0, r8 - lsls r1, r0 - adds r2, r1 - ldrb r0, [r4] - orrs r0, r2 - strb r0, [r4] - adds r0, r5, 0 - ldr r1, [sp, 0x8] - mov r2, sp - bl SetMonData - adds r0, r5, 0 - ldr r1, [sp, 0xC] - ldr r2, [sp, 0x14] - bl SetMonData - adds r0, r5, 0 - ldr r1, [sp, 0x10] - mov r2, r10 - bl SetMonData - adds r0, r5, 0 - ldr r1, [sp, 0x1C] - ldr r2, [sp, 0x18] - bl SetMonData - adds r0, r5, 0 - movs r1, 0x15 - adds r2, r4, 0 - bl SetMonData - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809E6D0: .4byte 0x02018000 -_0809E6D4: .4byte gUnknown_08208238 - thumb_func_end sub_809E5C4 - - thumb_func_start sub_809E6D8 -sub_809E6D8: @ 809E6D8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - ldr r2, _0809E7E8 @ =0x02018000 - ldr r5, [r2] - ldrb r1, [r2, 0x9] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - adds r5, r0 - adds r0, r2, 0 - adds r0, 0x79 - ldrb r0, [r0] - mov r8, r0 - adds r2, 0x7A - ldrb r6, [r2] - adds r0, 0xD - str r0, [sp, 0x8] - adds r0, r5, 0 - ldr r1, [sp, 0x8] - bl GetBoxMonData - mov r1, sp - adds r1, 0x2 - str r1, [sp, 0x14] - strh r0, [r1] - adds r2, r6, 0 - adds r2, 0xD - str r2, [sp, 0xC] - adds r0, r5, 0 - adds r1, r2, 0 - bl GetBoxMonData - mov r1, sp - strh r0, [r1] - mov r3, r8 - adds r3, 0x11 - str r3, [sp, 0x10] - adds r0, r5, 0 - adds r1, r3, 0 - bl GetBoxMonData - mov r7, sp - adds r7, 0x5 - str r7, [sp, 0x18] - strb r0, [r7] - adds r0, r6, 0 - adds r0, 0x11 - str r0, [sp, 0x1C] - adds r0, r5, 0 - ldr r1, [sp, 0x1C] - bl GetBoxMonData - add r1, sp, 0x4 - mov r10, r1 - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x15 - bl GetBoxMonData - mov r4, sp - adds r4, 0x6 - strb r0, [r4] - ldr r1, _0809E7EC @ =gUnknown_08208238 - mov r2, r8 - adds r0, r2, r1 - ldrb r0, [r0] - mov r9, r0 - ldrb r0, [r4] - adds r2, r0, 0 - mov r3, r9 - ands r2, r3 - mov r7, r8 - lsls r7, 1 - mov r8, r7 - asrs r2, r7 - lsls r2, 24 - lsrs r2, 24 - adds r1, r6, r1 - ldrb r3, [r1] - adds r1, r0, 0 - ands r1, r3 - lsls r6, 1 - asrs r1, r6 - lsls r1, 24 - lsrs r1, 24 - mov r7, r9 - bics r0, r7 - strb r0, [r4] - ldrb r0, [r4] - bics r0, r3 - strb r0, [r4] - lsls r2, r6 - mov r0, r8 - lsls r1, r0 - adds r2, r1 - ldrb r0, [r4] - orrs r0, r2 - strb r0, [r4] - adds r0, r5, 0 - ldr r1, [sp, 0x8] - mov r2, sp - bl SetBoxMonData - adds r0, r5, 0 - ldr r1, [sp, 0xC] - ldr r2, [sp, 0x14] - bl SetBoxMonData - adds r0, r5, 0 - ldr r1, [sp, 0x10] - mov r2, r10 - bl SetBoxMonData - adds r0, r5, 0 - ldr r1, [sp, 0x1C] - ldr r2, [sp, 0x18] - bl SetBoxMonData - adds r0, r5, 0 - movs r1, 0x15 - adds r2, r4, 0 - bl SetBoxMonData - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809E7E8: .4byte 0x02018000 -_0809E7EC: .4byte gUnknown_08208238 - thumb_func_end sub_809E6D8 - - thumb_func_start sub_809E7F0 -sub_809E7F0: @ 809E7F0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_809F5F8 - lsls r0, 24 - cmp r0, 0 - beq _0809E828 - ldr r1, _0809E830 @ =0x02018000 - adds r2, r1, 0 - adds r2, 0x74 - movs r0, 0 - strb r0, [r2] - adds r0, r1, 0 - adds r0, 0x10 - adds r1, 0x79 - bl sub_80A0428 - ldr r1, _0809E834 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809E838 @ =sub_809E3FC - str r1, [r0] - adds r0, r4, 0 - bl sub_80A2078 -_0809E828: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809E830: .4byte 0x02018000 -_0809E834: .4byte gTasks -_0809E838: .4byte sub_809E3FC - thumb_func_end sub_809E7F0 - - thumb_func_start sub_809E83C -sub_809E83C: @ 809E83C - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - movs r0, 0x13 - bl sub_80A1B1C - movs r0, 0 - bl sub_80A1B40 - cmp r4, 0x1 - bne _0809E8C0 - ldr r1, _0809E87C @ =0x02018000 - adds r0, r1, 0 - adds r0, 0x79 - adds r2, r1, 0 - adds r2, 0x7A - ldrb r0, [r0] - ldrb r2, [r2] - cmp r0, r2 - beq _0809E8CA - ldrb r0, [r1, 0xE] - cmp r0, 0 - bne _0809E880 - bl sub_809E5C4 - b _0809E884 - .align 2, 0 -_0809E87C: .4byte 0x02018000 -_0809E880: - bl sub_809E6D8 -_0809E884: - ldr r4, _0809E8B4 @ =0x02018000 - adds r0, r4, 0 - adds r0, 0x7A - ldrb r0, [r0] - adds r1, r4, 0 - adds r1, 0x79 - strb r0, [r1] - adds r0, r4, 0 - adds r0, 0x10 - bl sub_809F678 - adds r1, r4, 0 - adds r1, 0x74 - movs r0, 0x1 - strb r0, [r1] - ldr r1, _0809E8B8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809E8BC @ =sub_809E7F0 - str r1, [r0] - b _0809E8DE - .align 2, 0 -_0809E8B4: .4byte 0x02018000 -_0809E8B8: .4byte gTasks -_0809E8BC: .4byte sub_809E7F0 -_0809E8C0: - ldr r0, _0809E8E4 @ =0x02018010 - adds r1, r0, 0 - adds r1, 0x69 - bl sub_80A0428 -_0809E8CA: - ldr r0, _0809E8E8 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _0809E8EC @ =sub_809E3FC - str r0, [r1] - adds r0, r5, 0 - bl sub_80A2078 -_0809E8DE: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809E8E4: .4byte 0x02018010 -_0809E8E8: .4byte gTasks -_0809E8EC: .4byte sub_809E3FC - thumb_func_end sub_809E83C - - thumb_func_start sub_809E8F0 -sub_809E8F0: @ 809E8F0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r4, r1, 0 - mov r9, r2 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - str r0, [sp] - movs r0, 0x5 - bl PlaySE - mov r1, r9 - ldrb r6, [r1] - ldr r1, _0809E944 @ =gTasks - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x8] - movs r2, 0 - lsls r4, 24 - asrs r4, 24 - mov r10, r4 - lsls r7, r0, 24 -_0809E930: - lsls r0, r6, 24 - asrs r0, 24 - add r0, r10 - lsls r0, 24 - lsrs r6, r0, 24 - asrs r1, r0, 24 - cmp r0, r7 - ble _0809E948 - movs r6, 0 - b _0809E94E - .align 2, 0 -_0809E944: .4byte gTasks -_0809E948: - cmp r1, 0 - bge _0809E94E - lsrs r6, r7, 24 -_0809E94E: - lsls r4, r6, 24 - lsrs r1, r4, 24 - ldr r0, _0809EA10 @ =0x02018010 - str r2, [sp, 0x4] - bl sub_809F760 - lsls r0, 16 - adds r5, r4, 0 - ldr r2, [sp, 0x4] - cmp r0, 0 - bne _0809E97A - asrs r0, r5, 24 - cmp r0, 0x4 - beq _0809E97A - lsls r0, r2, 24 - movs r3, 0x80 - lsls r3, 17 - adds r0, r3 - lsrs r2, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _0809E930 -_0809E97A: - mov r1, r9 - ldrb r0, [r1] - cmp r0, 0x4 - bne _0809E996 - asrs r0, r5, 24 - cmp r0, 0x4 - beq _0809E996 - ldr r0, _0809EA14 @ =0x02018000 - adds r0, 0x7C - ldrh r0, [r0] - mov r2, r8 - lsls r7, r2, 2 - cmp r0, 0 - beq _0809E9AC -_0809E996: - ldr r2, _0809EA18 @ =gTasks - mov r3, r8 - lsls r1, r3, 2 - adds r0, r1, r3 - lsls r0, 3 - adds r0, r2 - movs r2, 0x22 - ldrsh r0, [r0, r2] - adds r7, r1, 0 - cmp r0, 0x1 - bne _0809E9D0 -_0809E9AC: - lsrs r4, r5, 24 - movs r0, 0x2 - adds r1, r4, 0 - bl sub_80A1488 - movs r0, 0x2 - adds r1, r4, 0 - bl sub_80A1654 - ldr r1, _0809EA18 @ =gTasks - mov r3, r8 - adds r0, r7, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x22] - movs r0, 0 - str r0, [sp] -_0809E9D0: - mov r1, r9 - ldrb r0, [r1] - cmp r0, 0x4 - beq _0809E9FE - asrs r0, r5, 24 - cmp r0, 0x4 - bne _0809E9FE - ldr r0, _0809EA14 @ =0x02018000 - adds r0, 0x7C - ldrh r0, [r0] - cmp r0, 0 - bne _0809E9FE - movs r4, 0x2 - negs r4, r4 - lsrs r5, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80A1488 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80A1654 -_0809E9FE: - mov r2, r9 - strb r6, [r2] - ldr r0, _0809EA1C @ =0x02018079 - cmp r9, r0 - bne _0809EA20 - movs r0, 0 - bl sub_80A1C30 - b _0809EA26 - .align 2, 0 -_0809EA10: .4byte 0x02018010 -_0809EA14: .4byte 0x02018000 -_0809EA18: .4byte gTasks -_0809EA1C: .4byte 0x02018079 -_0809EA20: - movs r0, 0x1 - bl sub_80A1C30 -_0809EA26: - ldr r3, [sp] - cmp r3, 0 - beq _0809EA34 - ldr r0, _0809EA4C @ =0x02018010 - mov r1, r9 - bl sub_80A0428 -_0809EA34: - mov r0, r8 - bl sub_80A2078 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809EA4C: .4byte 0x02018010 - thumb_func_end sub_809E8F0 - - thumb_func_start sub_809EA50 -sub_809EA50: @ 809EA50 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x5 - bl PlaySE - ldr r4, _0809EABC @ =0x02018000 - adds r1, r4, 0 - adds r1, 0x79 - movs r0, 0 - strb r0, [r1] - movs r0, 0x2 - movs r1, 0 - bl sub_80A1488 - movs r0, 0x2 - movs r1, 0 - bl sub_80A1654 - adds r0, r4, 0 - adds r0, 0x7B - ldrb r0, [r0] - cmp r0, 0 - bne _0809EA8C - adds r1, r4, 0 - adds r1, 0x7F - movs r0, 0x5 - strb r0, [r1] - bl sub_80A0DD0 -_0809EA8C: - movs r0, 0 - bl sub_80A16CC - adds r0, r4, 0 - adds r0, 0x10 - bl sub_80A029C - movs r0, 0x9 - bl sub_80A1A30 - ldr r1, _0809EAC0 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809EAC4 @ =sub_809E3FC - str r1, [r0] - adds r0, r5, 0 - bl sub_80A2078 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809EABC: .4byte 0x02018000 -_0809EAC0: .4byte gTasks -_0809EAC4: .4byte sub_809E3FC - thumb_func_end sub_809EA50 - - thumb_func_start sub_809EAC8 -sub_809EAC8: @ 809EAC8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r6, _0809EB34 @ =0x02018000 - adds r0, r6, 0 - adds r0, 0x79 - ldrb r0, [r0] - cmp r0, 0x4 - beq _0809EAEE - movs r4, 0x2 - negs r4, r4 - adds r0, r4, 0 - movs r1, 0 - bl sub_80A1488 - adds r0, r4, 0 - movs r1, 0 - bl sub_80A1654 -_0809EAEE: - movs r0, 0x9 - bl sub_80A1B1C - movs r0, 0x1 - bl sub_80A16CC - movs r0, 0xF - movs r1, 0xC - movs r2, 0x1C - movs r3, 0xD - bl MenuZeroFillWindowRect - movs r0, 0xB - movs r1, 0xF - movs r2, 0x1C - movs r3, 0x12 - bl MenuZeroFillWindowRect - adds r1, r6, 0 - adds r1, 0x7F - movs r0, 0x6 - strb r0, [r1] - bl sub_80A0DD0 - ldr r1, _0809EB38 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809EB3C @ =sub_809E19C - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809EB34: .4byte 0x02018000 -_0809EB38: .4byte gTasks -_0809EB3C: .4byte sub_809E19C - thumb_func_end sub_809EAC8 - - thumb_func_start sub_809EB40 -sub_809EB40: @ 809EB40 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0809EB6C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0809EB74 - cmp r0, 0x5 - bne _0809EBA4 - movs r0, 0x9 - bl sub_80A1A30 - movs r0, 0 - strh r0, [r4, 0x8] - ldr r0, _0809EB70 @ =sub_809E260 - str r0, [r4] - b _0809EBB4 - .align 2, 0 -_0809EB6C: .4byte gTasks -_0809EB70: .4byte sub_809E260 -_0809EB74: - ldr r4, _0809EBBC @ =0x02018000 - adds r6, r4, 0 - adds r6, 0x79 - strb r0, [r6] - adds r0, r4, 0 - adds r0, 0x7C - ldrh r0, [r0] - cmp r0, 0 - beq _0809EB96 - movs r0, 0xA - movs r1, 0 - bl sub_80A1488 - ldrb r1, [r6] - movs r0, 0xA - bl sub_80A1654 -_0809EB96: - movs r0, 0 - bl sub_80A16CC - adds r0, r4, 0 - adds r0, 0x10 - bl sub_80A029C -_0809EBA4: - ldr r0, _0809EBC0 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_0809EBB4: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809EBBC: .4byte 0x02018000 -_0809EBC0: .4byte gTasks - thumb_func_end sub_809EB40 - - thumb_func_start sub_809EBC4 -sub_809EBC4: @ 809EBC4 - push {r4,lr} - ldr r4, _0809EC28 @ =0x02018000 - ldrb r0, [r4, 0xB] - cmp r0, 0 - beq _0809EC22 - bl sub_80A0EE8 - ldr r0, _0809EC2C @ =gUnknown_030042C0 - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - strh r1, [r0] - ldrb r0, [r4, 0xB] - cmp r0, 0x1 - bne _0809EBF4 - ldr r2, _0809EC30 @ =REG_BG1CNT - ldrh r1, [r2] - ldr r0, _0809EC34 @ =0x0000e0ff - ands r0, r1 - movs r3, 0x80 - lsls r3, 4 - adds r1, r3, 0 - adds r0, r1 - strh r0, [r2] -_0809EBF4: - ldrb r3, [r4, 0xB] - cmp r3, 0x2 - bne _0809EC0C - ldr r2, _0809EC30 @ =REG_BG1CNT - ldrh r1, [r2] - ldr r0, _0809EC34 @ =0x0000e0ff - ands r0, r1 - movs r4, 0xA0 - lsls r4, 4 - adds r1, r4, 0 - adds r0, r1 - strh r0, [r2] -_0809EC0C: - cmp r3, 0x3 - bne _0809EC22 - ldr r2, _0809EC30 @ =REG_BG1CNT - ldrh r1, [r2] - ldr r0, _0809EC34 @ =0x0000e0ff - ands r0, r1 - movs r3, 0xC0 - lsls r3, 4 - adds r1, r3, 0 - adds r0, r1 - strh r0, [r2] -_0809EC22: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809EC28: .4byte 0x02018000 -_0809EC2C: .4byte gUnknown_030042C0 -_0809EC30: .4byte REG_BG1CNT -_0809EC34: .4byte 0x0000e0ff - thumb_func_end sub_809EBC4 - - thumb_func_start sub_809EC38 -sub_809EC38: @ 809EC38 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _0809EC5C @ =gTasks + 0x8 - adds r6, r0, r1 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0x5 - bls _0809EC52 - b _0809EE64 -_0809EC52: - lsls r0, 2 - ldr r1, _0809EC60 @ =_0809EC64 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809EC5C: .4byte gTasks + 0x8 -_0809EC60: .4byte _0809EC64 - .align 2, 0 -_0809EC64: - .4byte _0809EC7C - .4byte _0809ED14 - .4byte _0809ED98 - .4byte _0809EE12 - .4byte _0809EE1C - .4byte _0809EE4C -_0809EC7C: - ldr r1, _0809ECB8 @ =0x02018000 - adds r0, r1, 0 - adds r0, 0x80 - ldrb r0, [r0] - cmp r0, 0 - bne _0809ECC8 - ldrb r3, [r1, 0xB] - cmp r3, 0 - beq _0809EC98 - ldr r1, _0809ECBC @ =gUnknown_03004288 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] -_0809EC98: - cmp r3, 0x1 - bne _0809ECAE - ldr r2, _0809ECC0 @ =REG_BG2CNT - ldrh r1, [r2] - ldr r0, _0809ECC4 @ =0x0000e0ff - ands r0, r1 - movs r4, 0x80 - lsls r4, 4 - adds r1, r4, 0 - adds r0, r1 - strh r0, [r2] -_0809ECAE: - cmp r3, 0x2 - beq _0809ECB4 - b _0809EE3A -_0809ECB4: - ldr r2, _0809ECC0 @ =REG_BG2CNT - b _0809ECF6 - .align 2, 0 -_0809ECB8: .4byte 0x02018000 -_0809ECBC: .4byte gUnknown_03004288 -_0809ECC0: .4byte REG_BG2CNT -_0809ECC4: .4byte 0x0000e0ff -_0809ECC8: - ldrb r3, [r1, 0xB] - cmp r3, 0 - beq _0809ECD8 - ldr r1, _0809ED08 @ =gUnknown_030042C0 - movs r4, 0x80 - lsls r4, 1 - adds r0, r4, 0 - strh r0, [r1] -_0809ECD8: - cmp r3, 0x1 - bne _0809ECEE - ldr r2, _0809ED0C @ =REG_BG1CNT - ldrh r1, [r2] - ldr r0, _0809ED10 @ =0x0000e0ff - ands r0, r1 - movs r4, 0x80 - lsls r4, 4 - adds r1, r4, 0 - adds r0, r1 - strh r0, [r2] -_0809ECEE: - cmp r3, 0x2 - beq _0809ECF4 - b _0809EE3A -_0809ECF4: - ldr r2, _0809ED0C @ =REG_BG1CNT -_0809ECF6: - ldrh r1, [r2] - ldr r0, _0809ED10 @ =0x0000e0ff - ands r0, r1 - movs r3, 0xA0 - lsls r3, 4 - adds r1, r3, 0 - adds r0, r1 - strh r0, [r2] - b _0809EE3A - .align 2, 0 -_0809ED08: .4byte gUnknown_030042C0 -_0809ED0C: .4byte REG_BG1CNT -_0809ED10: .4byte 0x0000e0ff -_0809ED14: - ldr r0, _0809ED48 @ =0x02018000 - adds r0, 0x80 - ldrb r0, [r0] - cmp r0, 0 - bne _0809ED5C - ldr r1, _0809ED4C @ =gUnknown_030042C0 - ldrh r0, [r1] - subs r0, 0x20 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - beq _0809ED2E - b _0809EE64 -_0809ED2E: - ldr r3, _0809ED50 @ =REG_BG1CNT - ldrh r2, [r3] - ldr r1, _0809ED54 @ =0x0000fffc - adds r0, r1, 0 - ands r0, r2 - adds r0, 0x2 - strh r0, [r3] - ldr r2, _0809ED58 @ =REG_BG2CNT - ldrh r0, [r2] - ands r1, r0 - adds r1, 0x1 - strh r1, [r2] - b _0809EE3A - .align 2, 0 -_0809ED48: .4byte 0x02018000 -_0809ED4C: .4byte gUnknown_030042C0 -_0809ED50: .4byte REG_BG1CNT -_0809ED54: .4byte 0x0000fffc -_0809ED58: .4byte REG_BG2CNT -_0809ED5C: - ldr r1, _0809ED88 @ =gUnknown_03004288 - ldrh r0, [r1] - subs r0, 0x20 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - beq _0809ED6C - b _0809EE64 -_0809ED6C: - ldr r3, _0809ED8C @ =REG_BG1CNT - ldrh r2, [r3] - ldr r1, _0809ED90 @ =0x0000fffc - adds r0, r1, 0 - ands r0, r2 - adds r0, 0x1 - strh r0, [r3] - ldr r2, _0809ED94 @ =REG_BG2CNT - ldrh r0, [r2] - ands r1, r0 - adds r1, 0x2 - strh r1, [r2] - b _0809EE3A - .align 2, 0 -_0809ED88: .4byte gUnknown_03004288 -_0809ED8C: .4byte REG_BG1CNT -_0809ED90: .4byte 0x0000fffc -_0809ED94: .4byte REG_BG2CNT -_0809ED98: - ldr r1, _0809EDD4 @ =0x02018000 - ldrb r3, [r1, 0xB] - adds r0, r3, 0x1 - adds r2, r1, 0 - adds r2, 0x7E - strb r0, [r2] - ldrb r2, [r1, 0x8] - subs r0, r2, 0x2 - lsls r0, 24 - lsrs r0, 24 - adds r5, r1, 0 - cmp r0, 0x1 - bhi _0809EDD8 - adds r1, 0x7F - movs r0, 0 - strb r0, [r1] - adds r4, r5, 0 - adds r4, 0x10 - adds r0, r4, 0 - bl sub_80A029C - adds r5, 0x79 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80A0428 - ldrb r0, [r5] - bl sub_80A00F4 - b _0809EE3A - .align 2, 0 -_0809EDD4: .4byte 0x02018000 -_0809EDD8: - lsls r0, r3, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0809EDFA - adds r0, r5, 0 - adds r0, 0x7B - ldrb r0, [r0] - cmp r0, 0 - beq _0809EDF2 - lsls r0, r2, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _0809EDFA -_0809EDF2: - adds r1, r5, 0 - adds r1, 0x7F - movs r0, 0x6 - b _0809EE0E -_0809EDFA: - ldrb r0, [r5, 0xB] - cmp r0, 0 - bne _0809EE08 - adds r1, r5, 0 - adds r1, 0x7F - movs r0, 0x7 - b _0809EE0E -_0809EE08: - adds r1, r5, 0 - adds r1, 0x7F - movs r0, 0 -_0809EE0E: - strb r0, [r1] - b _0809EE3A -_0809EE12: - bl sub_80A0EE8 - bl sub_80A0DD0 - b _0809EE3A -_0809EE1C: - ldr r0, _0809EE44 @ =gUnknown_083C1598 - ldr r4, _0809EE48 @ =0x02018000 - ldrb r1, [r4, 0xB] - lsls r1, 2 - adds r1, r0 - adds r0, r4, 0 - adds r0, 0x10 - ldr r1, [r1] - bl _call_via_r1 - adds r4, 0x80 - ldrb r0, [r4] - movs r1, 0x1 - eors r0, r1 - strb r0, [r4] -_0809EE3A: - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] - b _0809EE64 - .align 2, 0 -_0809EE44: .4byte gUnknown_083C1598 -_0809EE48: .4byte 0x02018000 -_0809EE4C: - bl sub_8055870 - cmp r0, 0x1 - beq _0809EE64 - ldr r1, _0809EE6C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809EE70 @ =gUnknown_03005CF0 - ldr r1, [r1] - str r1, [r0] -_0809EE64: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809EE6C: .4byte gTasks -_0809EE70: .4byte gUnknown_03005CF0 - thumb_func_end sub_809EC38 - - thumb_func_start sub_809EE74 -sub_809EE74: @ 809EE74 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _0809EE98 @ =gTasks + 0x8 - adds r6, r0, r1 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0x6 - bls _0809EE8E - b _0809F0C0 -_0809EE8E: - lsls r0, 2 - ldr r1, _0809EE9C @ =_0809EEA0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809EE98: .4byte gTasks + 0x8 -_0809EE9C: .4byte _0809EEA0 - .align 2, 0 -_0809EEA0: - .4byte _0809EEBC - .4byte _0809EEE0 - .4byte _0809EFB4 - .4byte _0809EFF4 - .4byte _0809F06E - .4byte _0809F078 - .4byte _0809F0A8 -_0809EEBC: - ldr r0, _0809EECC @ =0x02018000 - adds r0, 0x80 - ldrb r1, [r0] - cmp r1, 0 - bne _0809EED4 - ldr r0, _0809EED0 @ =gUnknown_03004288 - strh r1, [r0] - b _0809F096 - .align 2, 0 -_0809EECC: .4byte 0x02018000 -_0809EED0: .4byte gUnknown_03004288 -_0809EED4: - ldr r1, _0809EEDC @ =gUnknown_030042C0 - movs r0, 0 - strh r0, [r1] - b _0809F096 - .align 2, 0 -_0809EEDC: .4byte gUnknown_030042C0 -_0809EEE0: - ldr r1, _0809EF30 @ =0x02018000 - adds r0, r1, 0 - adds r0, 0x80 - ldrb r0, [r0] - cmp r0, 0 - bne _0809EF4C - ldrb r3, [r1, 0xB] - cmp r3, 0x1 - bne _0809EF02 - ldr r2, _0809EF34 @ =REG_BG2CNT - ldrh r1, [r2] - ldr r0, _0809EF38 @ =0x0000e0fc - ands r0, r1 - ldr r4, _0809EF3C @ =0x00000801 - adds r1, r4, 0 - adds r0, r1 - strh r0, [r2] -_0809EF02: - cmp r3, 0x2 - bne _0809EF16 - ldr r2, _0809EF34 @ =REG_BG2CNT - ldrh r1, [r2] - ldr r0, _0809EF38 @ =0x0000e0fc - ands r0, r1 - ldr r4, _0809EF40 @ =0x00000a01 - adds r1, r4, 0 - adds r0, r1 - strh r0, [r2] -_0809EF16: - cmp r3, 0x3 - bne _0809EF2A - ldr r2, _0809EF34 @ =REG_BG2CNT - ldrh r1, [r2] - ldr r0, _0809EF38 @ =0x0000e0fc - ands r0, r1 - ldr r3, _0809EF44 @ =0x00000c01 - adds r1, r3, 0 - adds r0, r1 - strh r0, [r2] -_0809EF2A: - ldr r2, _0809EF48 @ =REG_BG1CNT - b _0809EF8C - .align 2, 0 -_0809EF30: .4byte 0x02018000 -_0809EF34: .4byte REG_BG2CNT -_0809EF38: .4byte 0x0000e0fc -_0809EF3C: .4byte 0x00000801 -_0809EF40: .4byte 0x00000a01 -_0809EF44: .4byte 0x00000c01 -_0809EF48: .4byte REG_BG1CNT -_0809EF4C: - ldrb r3, [r1, 0xB] - cmp r3, 0x1 - bne _0809EF62 - ldr r2, _0809EF98 @ =REG_BG1CNT - ldrh r1, [r2] - ldr r0, _0809EF9C @ =0x0000e0fc - ands r0, r1 - ldr r4, _0809EFA0 @ =0x00000801 - adds r1, r4, 0 - adds r0, r1 - strh r0, [r2] -_0809EF62: - cmp r3, 0x2 - bne _0809EF76 - ldr r2, _0809EF98 @ =REG_BG1CNT - ldrh r1, [r2] - ldr r0, _0809EF9C @ =0x0000e0fc - ands r0, r1 - ldr r4, _0809EFA4 @ =0x00000a01 - adds r1, r4, 0 - adds r0, r1 - strh r0, [r2] -_0809EF76: - cmp r3, 0x3 - bne _0809EF8A - ldr r2, _0809EF98 @ =REG_BG1CNT - ldrh r1, [r2] - ldr r0, _0809EF9C @ =0x0000e0fc - ands r0, r1 - ldr r3, _0809EFA8 @ =0x00000c01 - adds r1, r3, 0 - adds r0, r1 - strh r0, [r2] -_0809EF8A: - ldr r2, _0809EFAC @ =REG_BG2CNT -_0809EF8C: - ldrh r1, [r2] - ldr r0, _0809EFB0 @ =0x0000fffc - ands r0, r1 - adds r0, 0x2 - strh r0, [r2] - b _0809F096 - .align 2, 0 -_0809EF98: .4byte REG_BG1CNT -_0809EF9C: .4byte 0x0000e0fc -_0809EFA0: .4byte 0x00000801 -_0809EFA4: .4byte 0x00000a01 -_0809EFA8: .4byte 0x00000c01 -_0809EFAC: .4byte REG_BG2CNT -_0809EFB0: .4byte 0x0000fffc -_0809EFB4: - ldr r0, _0809EFD4 @ =0x02018000 - adds r0, 0x80 - ldrb r0, [r0] - cmp r0, 0 - bne _0809EFDC - ldr r0, _0809EFD8 @ =gUnknown_03004288 - ldrh r1, [r0] - adds r1, 0x20 - strh r1, [r0] - lsls r1, 16 - movs r0, 0x80 - lsls r0, 17 - cmp r1, r0 - bne _0809F0C0 - b _0809F096 - .align 2, 0 -_0809EFD4: .4byte 0x02018000 -_0809EFD8: .4byte gUnknown_03004288 -_0809EFDC: - ldr r0, _0809EFF0 @ =gUnknown_030042C0 - ldrh r1, [r0] - adds r1, 0x20 - strh r1, [r0] - lsls r1, 16 - movs r0, 0x80 - lsls r0, 17 - cmp r1, r0 - bne _0809F0C0 - b _0809F096 - .align 2, 0 -_0809EFF0: .4byte gUnknown_030042C0 -_0809EFF4: - ldr r1, _0809F030 @ =0x02018000 - ldrb r3, [r1, 0xB] - adds r0, r3, 0x1 - adds r2, r1, 0 - adds r2, 0x7E - strb r0, [r2] - ldrb r2, [r1, 0x8] - subs r0, r2, 0x2 - lsls r0, 24 - lsrs r0, 24 - adds r5, r1, 0 - cmp r0, 0x1 - bhi _0809F034 - adds r1, 0x7F - movs r0, 0 - strb r0, [r1] - adds r4, r5, 0 - adds r4, 0x10 - adds r0, r4, 0 - bl sub_80A029C - adds r5, 0x79 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80A0428 - ldrb r0, [r5] - bl sub_80A00F4 - b _0809F096 - .align 2, 0 -_0809F030: .4byte 0x02018000 -_0809F034: - lsls r0, r3, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0809F056 - adds r0, r5, 0 - adds r0, 0x7B - ldrb r0, [r0] - cmp r0, 0 - beq _0809F04E - lsls r0, r2, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _0809F056 -_0809F04E: - adds r1, r5, 0 - adds r1, 0x7F - movs r0, 0x6 - b _0809F06A -_0809F056: - ldrb r0, [r5, 0xB] - cmp r0, 0 - bne _0809F064 - adds r1, r5, 0 - adds r1, 0x7F - movs r0, 0x7 - b _0809F06A -_0809F064: - adds r1, r5, 0 - adds r1, 0x7F - movs r0, 0 -_0809F06A: - strb r0, [r1] - b _0809F096 -_0809F06E: - bl sub_80A0EE8 - bl sub_80A0DD0 - b _0809F096 -_0809F078: - ldr r0, _0809F0A0 @ =gUnknown_083C1598 - ldr r4, _0809F0A4 @ =0x02018000 - ldrb r1, [r4, 0xB] - lsls r1, 2 - adds r1, r0 - adds r0, r4, 0 - adds r0, 0x10 - ldr r1, [r1] - bl _call_via_r1 - adds r4, 0x80 - ldrb r0, [r4] - movs r1, 0x1 - eors r0, r1 - strb r0, [r4] -_0809F096: - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] - b _0809F0C0 - .align 2, 0 -_0809F0A0: .4byte gUnknown_083C1598 -_0809F0A4: .4byte 0x02018000 -_0809F0A8: - bl sub_8055870 - cmp r0, 0x1 - beq _0809F0C0 - ldr r1, _0809F0C8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809F0CC @ =gUnknown_03005CF0 - ldr r1, [r1] - str r1, [r0] -_0809F0C0: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809F0C8: .4byte gTasks -_0809F0CC: .4byte gUnknown_03005CF0 - thumb_func_end sub_809EE74 - - thumb_func_start sub_809F0D0 -sub_809F0D0: @ 809F0D0 - push {r4-r7,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _0809F110 @ =0x02018000 - ldrb r0, [r1, 0xB] - adds r0, r4 - movs r5, 0 - strb r0, [r1, 0xB] - ldr r2, _0809F114 @ =gUnknown_03005CF0 - ldr r1, _0809F118 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r6, r0, r1 - ldr r0, [r6] - str r0, [r2] - bl sub_809FBE4 - strh r5, [r6, 0x8] - lsls r4, 24 - asrs r4, 24 - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - bne _0809F120 - ldr r0, _0809F11C @ =sub_809EC38 - str r0, [r6] - b _0809F12A - .align 2, 0 -_0809F110: .4byte 0x02018000 -_0809F114: .4byte gUnknown_03005CF0 -_0809F118: .4byte gTasks -_0809F11C: .4byte sub_809EC38 -_0809F120: - ldr r1, _0809F130 @ =sub_809EE74 - str r1, [r6] - adds r0, r7, 0 - bl _call_via_r1 -_0809F12A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809F130: .4byte sub_809EE74 - thumb_func_end sub_809F0D0 - - thumb_func_start sub_809F134 -sub_809F134: @ 809F134 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r4, _0809F1AC @ =0x02018010 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0809F1A6 - lsls r0, r5, 24 - asrs r5, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r5, r0 - bne _0809F168 - adds r0, r4, 0 - subs r0, 0x10 - adds r1, r4, 0 - adds r1, 0x65 - ldrb r0, [r0, 0xB] - ldrb r1, [r1] - cmp r0, r1 - beq _0809F1A6 -_0809F168: - cmp r5, 0x1 - bne _0809F17C - adds r0, r4, 0 - subs r0, 0x10 - adds r1, r4, 0 - adds r1, 0x66 - ldrb r0, [r0, 0xB] - ldrb r1, [r1] - cmp r0, r1 - beq _0809F1A6 -_0809F17C: - ldr r0, _0809F1B0 @ =sub_80A1334 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _0809F1A6 - ldr r0, _0809F1B4 @ =sub_80A1500 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _0809F1A6 - movs r0, 0x5 - bl PlaySE - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_809F0D0 -_0809F1A6: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809F1AC: .4byte 0x02018010 -_0809F1B0: .4byte sub_80A1334 -_0809F1B4: .4byte sub_80A1500 - thumb_func_end sub_809F134 - - thumb_func_start sub_809F1B8 -sub_809F1B8: @ 809F1B8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r0, _0809F1E4 @ =0x02018000 - ldrb r1, [r0, 0xE] - adds r2, r0, 0 - cmp r1, 0x1 - bne _0809F202 - ldrb r0, [r2, 0xB] - cmp r0, 0 - beq _0809F1E8 - lsls r1, r4, 24 - asrs r1, 24 - movs r4, 0x1 - eors r1, r4 - negs r0, r1 - orrs r0, r1 - lsrs r4, r0, 31 - b _0809F1F4 - .align 2, 0 -_0809F1E4: .4byte 0x02018000 -_0809F1E8: - lsls r0, r4, 24 - asrs r0, 24 - movs r4, 0x3 - cmp r0, 0x1 - bne _0809F1F4 - movs r4, 0x2 -_0809F1F4: - ldr r0, [r2] - ldrb r1, [r2, 0x9] - ldrb r2, [r2, 0xA] - adds r3, r4, 0 - bl sub_8095DCC - b _0809F22C -_0809F202: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809F224 - bl sub_806B528 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809F224 - lsls r0, r4, 24 - asrs r0, 24 - bl sub_809F3CC - b _0809F22C -_0809F224: - lsls r0, r4, 24 - asrs r0, 24 - bl sub_809F284 -_0809F22C: - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _0809F270 - movs r0, 0x5 - bl PlaySE - ldr r5, _0809F278 @ =0x02018010 - adds r0, r5, 0 - bl sub_80A1CD8 - lsls r0, 24 - cmp r0, 0 - beq _0809F258 - movs r0, 0x2 - negs r0, r0 - bl sub_80A12D0 -_0809F258: - adds r0, r5, 0 - subs r0, 0x10 - strb r4, [r0, 0x9] - ldr r1, _0809F27C @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, [r0] - str r1, [r5, 0x74] - ldr r1, _0809F280 @ =sub_809F43C - str r1, [r0] -_0809F270: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809F278: .4byte 0x02018010 -_0809F27C: .4byte gTasks -_0809F280: .4byte sub_809F43C - thumb_func_end sub_809F1B8 - - thumb_func_start sub_809F284 -sub_809F284: @ 809F284 - push {r4-r7,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _0809F2C0 @ =0x02018000 - ldr r7, [r0] - movs r6, 0 - ldrb r1, [r0, 0xB] - adds r4, r0, 0 - cmp r1, 0 - bne _0809F2C4 - lsls r0, r3, 24 - asrs r2, r0, 24 - movs r1, 0x1 - negs r1, r1 - adds r5, r0, 0 - cmp r2, r1 - bne _0809F2AC - ldrb r0, [r4, 0x9] - cmp r0, 0 - beq _0809F2E4 -_0809F2AC: - asrs r0, r5, 24 - cmp r0, 0x1 - bne _0809F2BA - ldrb r0, [r4, 0x9] - ldrb r1, [r4, 0xA] - cmp r0, r1 - bcs _0809F2E4 -_0809F2BA: - ldrb r0, [r4, 0x9] - adds r0, r3 - b _0809F304 - .align 2, 0 -_0809F2C0: .4byte 0x02018000 -_0809F2C4: - lsls r5, r3, 24 -_0809F2C6: - lsls r0, r6, 24 - asrs r0, 24 - asrs r1, r5, 24 - adds r0, r1 - lsls r0, 24 - ldr r4, _0809F2EC @ =0x02018000 - lsrs r6, r0, 24 - asrs r0, 24 - ldrb r2, [r4, 0x9] - adds r1, r0, r2 - cmp r1, 0 - blt _0809F2E4 - ldrb r0, [r4, 0xA] - cmp r1, r0 - ble _0809F2F0 -_0809F2E4: - movs r0, 0x1 - negs r0, r0 - b _0809F308 - .align 2, 0 -_0809F2EC: .4byte 0x02018000 -_0809F2F0: - movs r0, 0x64 - muls r0, r1 - adds r0, r7, r0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0809F2C6 - ldrb r0, [r4, 0x9] - adds r0, r6 -_0809F304: - lsls r0, 24 - asrs r0, 24 -_0809F308: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809F284 - - thumb_func_start sub_809F310 -sub_809F310: @ 809F310 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0809F33C - ldr r0, _0809F338 @ =0x02018000 - ldrb r0, [r0, 0xB] - cmp r0, 0 - bne _0809F332 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0809F33C -_0809F332: - movs r0, 0x1 - b _0809F33E - .align 2, 0 -_0809F338: .4byte 0x02018000 -_0809F33C: - movs r0, 0 -_0809F33E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_809F310 - - thumb_func_start sub_809F344 -sub_809F344: @ 809F344 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 -_0809F34A: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x6 - beq _0809F37C - ldr r0, _0809F374 @ =gUnknown_083C15A8 - adds r5, r4, r0 - ldrb r1, [r5] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0809F378 @ =gPlayerParty - adds r0, r1 - bl sub_809F310 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809F34A - movs r0, 0 - ldrsb r0, [r5, r0] - b _0809F380 - .align 2, 0 -_0809F374: .4byte gUnknown_083C15A8 -_0809F378: .4byte gPlayerParty -_0809F37C: - movs r0, 0x1 - negs r0, r0 -_0809F380: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809F344 - - thumb_func_start sub_809F388 -sub_809F388: @ 809F388 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 -_0809F38E: - cmp r4, 0 - beq _0809F3C0 - subs r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0809F3B8 @ =gUnknown_083C15A8 - adds r5, r4, r0 - ldrb r1, [r5] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0809F3BC @ =gPlayerParty - adds r0, r1 - bl sub_809F310 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809F38E - movs r0, 0 - ldrsb r0, [r5, r0] - b _0809F3C4 - .align 2, 0 -_0809F3B8: .4byte gUnknown_083C15A8 -_0809F3BC: .4byte gPlayerParty -_0809F3C0: - movs r0, 0x1 - negs r0, r0 -_0809F3C4: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809F388 - - thumb_func_start sub_809F3CC -sub_809F3CC: @ 809F3CC - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r2, 0 - movs r1, 0 - ldr r3, _0809F41C @ =gUnknown_083C15A8 - ldr r4, _0809F420 @ =0x02018000 - ldrb r0, [r3] - ldrb r5, [r4, 0x9] - cmp r0, r5 - beq _0809F3FC - adds r5, r3, 0 - adds r3, r4, 0 -_0809F3E6: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x5 - bhi _0809F3FC - adds r0, r1, r5 - ldrb r0, [r0] - ldrb r4, [r3, 0x9] - cmp r0, r4 - bne _0809F3E6 - adds r2, r1, 0 -_0809F3FC: - lsls r0, r6, 24 - asrs r1, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _0809F40C - cmp r2, 0 - beq _0809F414 -_0809F40C: - cmp r1, 0x1 - bne _0809F424 - cmp r2, 0x5 - bne _0809F42C -_0809F414: - movs r0, 0x1 - negs r0, r0 - b _0809F436 - .align 2, 0 -_0809F41C: .4byte gUnknown_083C15A8 -_0809F420: .4byte 0x02018000 -_0809F424: - adds r0, r2, 0 - bl sub_809F388 - b _0809F432 -_0809F42C: - adds r0, r2, 0 - bl sub_809F344 -_0809F432: - lsls r0, 24 - asrs r0, 24 -_0809F436: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_809F3CC - - thumb_func_start sub_809F43C -sub_809F43C: @ 809F43C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0809F45C @ =gMain - ldr r1, _0809F460 @ =0x0000043c - adds r5, r0, r1 - ldrb r2, [r5] - adds r3, r0, 0 - cmp r2, 0x8 - bls _0809F452 - b _0809F5CC -_0809F452: - lsls r0, r2, 2 - ldr r1, _0809F464 @ =_0809F468 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809F45C: .4byte gMain -_0809F460: .4byte 0x0000043c -_0809F464: .4byte _0809F468 - .align 2, 0 -_0809F468: - .4byte _0809F48C - .4byte _0809F492 - .4byte _0809F4BC - .4byte _0809F4D8 - .4byte _0809F4F4 - .4byte _0809F51C - .4byte _0809F578 - .4byte _0809F584 - .4byte _0809F5A0 -_0809F48C: - bl StopCryAndClearCrySongs - b _0809F5B2 -_0809F492: - ldr r0, _0809F4AC @ =0x02018000 - ldrb r1, [r0, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0809F4B0 @ =gSprites - adds r0, r1 - bl DestroySpriteAndFreeResources - ldr r1, _0809F4B4 @ =gMain - ldr r0, _0809F4B8 @ =0x0000043c - adds r1, r0 - b _0809F5B8 - .align 2, 0 -_0809F4AC: .4byte 0x02018000 -_0809F4B0: .4byte gSprites -_0809F4B4: .4byte gMain -_0809F4B8: .4byte 0x0000043c -_0809F4BC: - ldr r0, _0809F4D0 @ =0x02018000 - ldrb r1, [r0, 0xD] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0809F4D4 @ =gSprites - adds r0, r1 - bl DestroySpriteAndFreeResources - b _0809F5B2 - .align 2, 0 -_0809F4D0: .4byte 0x02018000 -_0809F4D4: .4byte gSprites -_0809F4D8: - ldr r0, _0809F4EC @ =0x02018000 - adds r1, r0, 0 - adds r1, 0x74 - movs r2, 0 - strb r2, [r1] - adds r0, 0x79 - strb r2, [r0] - ldr r0, _0809F4F0 @ =0x0000043c - adds r1, r3, r0 - b _0809F5B8 - .align 2, 0 -_0809F4EC: .4byte 0x02018000 -_0809F4F0: .4byte 0x0000043c -_0809F4F4: - ldr r4, _0809F518 @ =0x02018010 - adds r0, r4, 0 - bl sub_809F678 - adds r0, r4, 0 - bl sub_80A1CD8 - lsls r0, 24 - cmp r0, 0 - beq _0809F50E - movs r0, 0x2 - bl sub_80A12D0 -_0809F50E: - adds r0, r4, 0 - bl sub_80A0EA4 - b _0809F5B2 - .align 2, 0 -_0809F518: .4byte 0x02018010 -_0809F51C: - ldr r4, _0809F558 @ =0x02018010 - adds r5, r4, 0 - adds r5, 0x64 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809F6B4 - adds r1, r4, 0 - subs r1, 0x10 - strb r0, [r1, 0xC] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _0809F5EA - movs r0, 0 - strb r0, [r5] - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - adds r1, r0, 0 - cmp r1, 0 - beq _0809F560 - ldr r1, _0809F55C @ =gUnknown_030041B0 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - b _0809F564 - .align 2, 0 -_0809F558: .4byte 0x02018010 -_0809F55C: .4byte gUnknown_030041B0 -_0809F560: - ldr r0, _0809F56C @ =gUnknown_030041B0 - strh r1, [r0] -_0809F564: - ldr r1, _0809F570 @ =gMain - ldr r0, _0809F574 @ =0x0000043c - adds r1, r0 - b _0809F5B8 - .align 2, 0 -_0809F56C: .4byte gUnknown_030041B0 -_0809F570: .4byte gMain -_0809F574: .4byte 0x0000043c -_0809F578: - ldr r0, _0809F580 @ =0x02018010 - bl sub_80A1DCC - b _0809F5B2 - .align 2, 0 -_0809F580: .4byte 0x02018010 -_0809F584: - ldr r0, _0809F594 @ =0x02018010 - bl sub_80A1DE8 - ldr r1, _0809F598 @ =gMain - ldr r0, _0809F59C @ =0x0000043c - adds r1, r0 - b _0809F5B8 - .align 2, 0 -_0809F594: .4byte 0x02018010 -_0809F598: .4byte gMain -_0809F59C: .4byte 0x0000043c -_0809F5A0: - bl sub_809F5F8 - lsls r0, 24 - cmp r0, 0 - beq _0809F5EA - ldr r0, _0809F5C0 @ =0x02018000 - adds r0, 0x74 - movs r1, 0 - strb r1, [r0] -_0809F5B2: - ldr r1, _0809F5C4 @ =gMain - ldr r2, _0809F5C8 @ =0x0000043c - adds r1, r2 -_0809F5B8: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0809F5EA - .align 2, 0 -_0809F5C0: .4byte 0x02018000 -_0809F5C4: .4byte gMain -_0809F5C8: .4byte 0x0000043c -_0809F5CC: - bl sub_8055870 - cmp r0, 0x1 - beq _0809F5EA - movs r0, 0 - strb r0, [r5] - ldr r0, _0809F5F0 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0809F5F4 @ =0x02018000 - adds r0, 0x84 - ldr r0, [r0] - str r0, [r1] -_0809F5EA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809F5F0: .4byte gTasks -_0809F5F4: .4byte 0x02018000 - thumb_func_end sub_809F43C - - thumb_func_start sub_809F5F8 -sub_809F5F8: @ 809F5F8 - push {r4,lr} - ldr r2, _0809F61C @ =0x02018000 - adds r4, r2, 0 - adds r4, 0x74 - ldrb r0, [r4] - cmp r0, 0 - beq _0809F624 - ldr r0, _0809F620 @ =gUnknown_083C1588 - ldrb r1, [r2, 0xB] - lsls r1, 2 - adds r1, r0 - adds r0, r2, 0 - adds r0, 0x10 - ldr r1, [r1] - bl _call_via_r1 - movs r0, 0x1 - b _0809F634 - .align 2, 0 -_0809F61C: .4byte 0x02018000 -_0809F620: .4byte gUnknown_083C1588 -_0809F624: - adds r0, r2, 0 - adds r0, 0x10 - bl sub_809FAC8 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - movs r0, 0 -_0809F634: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_809F5F8 - - thumb_func_start sub_809F63C -sub_809F63C: @ 809F63C - push {r4,lr} - adds r4, r0, 0 - bl sub_809FE80 - adds r0, r4, 0 - bl sub_809FC34 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_809F63C - - thumb_func_start sub_809F650 -sub_809F650: @ 809F650 - push {r4,lr} - adds r4, r0, 0 - bl sub_80A00A4 - adds r0, r4, 0 - bl sub_809FF64 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_809F650 - - thumb_func_start sub_809F664 -sub_809F664: @ 809F664 - push {r4,lr} - adds r4, r0, 0 - bl sub_80A0390 - adds r0, r4, 0 - bl sub_80A015C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_809F664 - - thumb_func_start sub_809F678 -sub_809F678: @ 809F678 - push {lr} - adds r3, r0, 0 - ldr r1, _0809F698 @ =0x02018000 - ldrb r0, [r1, 0xE] - cmp r0, 0 - bne _0809F69C - ldr r2, [r1] - ldrb r1, [r1, 0x9] - movs r0, 0x64 - muls r1, r0 - adds r1, r2 - adds r0, r3, 0 - movs r2, 0x64 - bl memcpy - b _0809F6AE - .align 2, 0 -_0809F698: .4byte 0x02018000 -_0809F69C: - ldr r0, [r1] - ldrb r2, [r1, 0x9] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - adds r0, r1 - adds r1, r3, 0 - bl sub_803B4B4 -_0809F6AE: - pop {r0} - bx r0 - thumb_func_end sub_809F678 - - thumb_func_start sub_809F6B4 -sub_809F6B4: @ 809F6B4 - push {r4-r7,lr} - sub sp, 0xC - adds r4, r0, 0 - adds r7, r1, 0 - ldrb r0, [r7] - cmp r0, 0 - beq _0809F6D2 - cmp r0, 0x1 - beq _0809F718 - adds r0, r4, 0 - bl sub_80A1808 - lsls r0, 24 - lsrs r0, 24 - b _0809F756 -_0809F6D2: - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - adds r6, r0, 0 - lsls r0, r5, 3 - ldr r1, _0809F70C @ =gMonFrontPicTable - adds r0, r1 - ldr r1, _0809F710 @ =gMonFrontPicCoords - lsls r2, r5, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _0809F714 @ =gUnknown_081FAF4C - ldr r4, [r4, 0x4] - str r4, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - bl sub_800D334 - b _0809F74E - .align 2, 0 -_0809F70C: .4byte gMonFrontPicTable -_0809F710: .4byte gMonFrontPicCoords -_0809F714: .4byte gUnknown_081FAF4C -_0809F718: - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - adds r6, r0, 0 - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - adds r1, r0, 0 - adds r0, r5, 0 - adds r2, r6, 0 - bl sub_80409C8 - adds r4, r0, 0 - bl LoadCompressedObjectPalette - ldrh r0, [r4, 0x4] - movs r1, 0x1 - bl GetMonSpriteTemplate_803C56C -_0809F74E: - ldrb r0, [r7] - adds r0, 0x1 - strb r0, [r7] - movs r0, 0xFF -_0809F756: - add sp, 0xC - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809F6B4 - - thumb_func_start sub_809F760 -sub_809F760: @ 809F760 - push {lr} - lsls r1, 24 - lsrs r1, 24 - adds r2, r1, 0 - cmp r1, 0x1 - beq _0809F780 - cmp r1, 0x1 - bgt _0809F776 - cmp r1, 0 - beq _0809F77C - b _0809F788 -_0809F776: - cmp r2, 0x2 - beq _0809F784 - b _0809F788 -_0809F77C: - movs r1, 0xD - b _0809F78A -_0809F780: - movs r1, 0xE - b _0809F78A -_0809F784: - movs r1, 0xF - b _0809F78A -_0809F788: - movs r1, 0x10 -_0809F78A: - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_809F760 - - thumb_func_start sub_809F798 -sub_809F798: @ 809F798 - push {lr} - lsls r1, 24 - lsrs r1, 24 - adds r2, r1, 0 - cmp r1, 0x1 - beq _0809F7B8 - cmp r1, 0x1 - bgt _0809F7AE - cmp r1, 0 - beq _0809F7B4 - b _0809F7C0 -_0809F7AE: - cmp r2, 0x2 - beq _0809F7BC - b _0809F7C0 -_0809F7B4: - movs r1, 0x11 - b _0809F7C2 -_0809F7B8: - movs r1, 0x12 - b _0809F7C2 -_0809F7BC: - movs r1, 0x13 - b _0809F7C2 -_0809F7C0: - movs r1, 0x14 -_0809F7C2: - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_809F798 - - thumb_func_start sub_809F7D0 -sub_809F7D0: @ 809F7D0 - push {r4,lr} - sub sp, 0x64 - mov r0, sp - bl sub_809F678 - ldr r4, _0809F804 @ =0x02018000 - adds r0, r4, 0 - adds r0, 0x79 - ldrb r1, [r0] - mov r0, sp - bl sub_809F760 - lsls r0, 16 - lsrs r0, 16 - bl sub_806F7B8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809F808 - ldrb r0, [r4, 0x8] - cmp r0, 0x3 - beq _0809F808 - movs r0, 0 - b _0809F80A - .align 2, 0 -_0809F804: .4byte 0x02018000 -_0809F808: - movs r0, 0x1 -_0809F80A: - add sp, 0x64 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_809F7D0 - - thumb_func_start sub_809F814 -sub_809F814: @ 809F814 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r6, r0, 3 - ldr r0, _0809F83C @ =gTasks + 0x8 - mov r8, r0 - adds r4, r6, r0 - ldrh r1, [r4, 0x1C] - movs r2, 0x1C - ldrsh r0, [r4, r2] - cmp r0, 0x3 - bgt _0809F840 - adds r0, r1, 0x1 - strh r0, [r4, 0x1C] - b _0809F9C0 - .align 2, 0 -_0809F83C: .4byte gTasks + 0x8 -_0809F840: - ldr r7, _0809F874 @ =gMain - ldrh r1, [r7, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0809F880 - mov r0, r8 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0809F878 @ =sub_809E260 - str r1, [r0] - movs r0, 0x4 - strh r0, [r4] - movs r0, 0x1 - strh r0, [r4, 0x1A] - ldr r2, _0809F87C @ =0x02018000 - ldrh r0, [r4, 0x1E] - adds r2, 0x79 - strb r0, [r2] - movs r1, 0x1 - negs r1, r1 - adds r0, r5, 0 - bl sub_809E8F0 - b _0809F9C0 - .align 2, 0 -_0809F874: .4byte gMain -_0809F878: .4byte sub_809E260 -_0809F87C: .4byte 0x02018000 -_0809F880: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0809F8B4 - mov r0, r8 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0809F8AC @ =sub_809E260 - str r1, [r0] - movs r0, 0x4 - strh r0, [r4] - movs r0, 0x1 - strh r0, [r4, 0x1A] - ldr r2, _0809F8B0 @ =0x02018000 - ldrh r0, [r4, 0x1E] - adds r2, 0x79 - strb r0, [r2] - adds r0, r5, 0 - movs r1, 0x1 - bl sub_809E8F0 - b _0809F9C0 - .align 2, 0 -_0809F8AC: .4byte sub_809E260 -_0809F8B0: .4byte 0x02018000 -_0809F8B4: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _0809F8C8 - bl sub_80F9284 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809F918 -_0809F8C8: - ldr r1, _0809F90C @ =0x02018000 - ldrb r0, [r1, 0xB] - cmp r0, 0x2 - beq _0809F9C0 - cmp r0, 0x3 - bne _0809F8F4 - adds r0, r1, 0 - adds r0, 0x79 - ldrb r0, [r0] - cmp r0, 0x4 - bne _0809F8E8 - adds r0, r1, 0 - adds r0, 0x7C - ldrh r0, [r0] - cmp r0, 0 - beq _0809F8F4 -_0809F8E8: - movs r0, 0 - movs r1, 0xE - movs r2, 0x9 - movs r3, 0x12 - bl MenuZeroFillWindowRect -_0809F8F4: - ldr r1, _0809F910 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809F914 @ =sub_809E260 - str r1, [r0] - movs r1, 0x1 - negs r1, r1 - adds r0, r5, 0 - b _0809F972 - .align 2, 0 -_0809F90C: .4byte 0x02018000 -_0809F910: .4byte gTasks -_0809F914: .4byte sub_809E260 -_0809F918: - ldrh r1, [r7, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _0809F92E - bl sub_80F9284 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0809F994 -_0809F92E: - ldr r1, _0809F988 @ =0x02018000 - adds r2, r1, 0 - adds r2, 0x76 - ldrb r0, [r1, 0xB] - ldrb r2, [r2] - cmp r0, r2 - beq _0809F9C0 - cmp r0, 0x2 - bne _0809F960 - adds r0, r1, 0 - adds r0, 0x79 - ldrb r0, [r0] - cmp r0, 0x4 - bne _0809F954 - adds r0, r1, 0 - adds r0, 0x7C - ldrh r0, [r0] - cmp r0, 0 - beq _0809F960 -_0809F954: - movs r0, 0 - movs r1, 0xE - movs r2, 0x9 - movs r3, 0x12 - bl MenuZeroFillWindowRect -_0809F960: - ldr r1, _0809F98C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809F990 @ =sub_809E260 - str r1, [r0] - adds r0, r5, 0 - movs r1, 0x1 -_0809F972: - bl sub_809F134 - ldrb r1, [r4, 0x1E] - movs r0, 0x1 - bl sub_80A1488 - ldrb r1, [r4, 0x1E] - movs r0, 0x1 - bl sub_80A1654 - b _0809F9C0 - .align 2, 0 -_0809F988: .4byte 0x02018000 -_0809F98C: .4byte gTasks -_0809F990: .4byte sub_809E260 -_0809F994: - ldrh r1, [r7, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0809F9A6 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809F9C0 -_0809F9A6: - ldrb r1, [r4, 0x1E] - movs r0, 0x2 - bl sub_80A1488 - ldrb r1, [r4, 0x1E] - movs r0, 0x2 - bl sub_80A1654 - mov r0, r8 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0809F9CC @ =sub_809E260 - str r1, [r0] -_0809F9C0: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809F9CC: .4byte sub_809E260 - thumb_func_end sub_809F814 - - thumb_func_start sub_809F9D0 -sub_809F9D0: @ 809F9D0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r6, _0809FA24 @ =gTasks + 0x8 - adds r2, r4, r6 - movs r0, 0 - strh r0, [r2, 0x1C] - strh r1, [r2, 0x1E] - movs r5, 0x2 - negs r5, r5 - adds r0, r5, 0 - movs r1, 0x4 - bl sub_80A1488 - adds r0, r5, 0 - movs r1, 0x4 - bl sub_80A1654 - movs r0, 0xB - movs r1, 0xF - movs r2, 0x1C - movs r3, 0x12 - bl MenuZeroFillWindowRect - ldr r0, _0809FA28 @ =gOtherText_CantForgetHMs - movs r1, 0xB - movs r2, 0xF - bl MenuPrint - subs r6, 0x8 - adds r4, r6 - ldr r0, _0809FA2C @ =sub_809F814 - str r0, [r4] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809FA24: .4byte gTasks + 0x8 -_0809FA28: .4byte gOtherText_CantForgetHMs -_0809FA2C: .4byte sub_809F814 - thumb_func_end sub_809F9D0 - - thumb_func_start sub_809FA30 -sub_809FA30: @ 809FA30 - ldr r0, _0809FA38 @ =0x02018000 - adds r0, 0x7A - ldrb r0, [r0] - bx lr - .align 2, 0 -_0809FA38: .4byte 0x02018000 - thumb_func_end sub_809FA30 - - thumb_func_start GetStringCenterAlignXOffsetWithLetterSpacing -GetStringCenterAlignXOffsetWithLetterSpacing: @ 809FA3C - push {r4,lr} - lsls r0, 24 - lsls r1, 24 - lsls r2, 24 - lsls r3, 24 - lsrs r2, 23 - lsrs r3, 18 - ldr r4, _0809FA70 @ =0x0600f000 - adds r3, r4 - adds r2, r3 - lsrs r1, 12 - lsrs r0, 23 - movs r4, 0x80 - lsls r4, 2 - adds r3, r4, 0 - adds r0, r3 - adds r1, r0 - adds r0, r1, 0 - adds r0, 0x80 - strh r0, [r2] - adds r2, 0x40 - adds r1, 0x81 - strh r1, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809FA70: .4byte 0x0600f000 - thumb_func_end GetStringCenterAlignXOffsetWithLetterSpacing - - thumb_func_start GetStringCenterAlignXOffset -GetStringCenterAlignXOffset: @ 809FA74 - push {r4,lr} - adds r4, r1, 0 - adds r3, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r3, 24 - lsrs r3, 24 - movs r1, 0xF - adds r2, r4, 0 - bl GetStringCenterAlignXOffsetWithLetterSpacing - pop {r4} - pop {r0} - bx r0 - thumb_func_end GetStringCenterAlignXOffset - - thumb_func_start sub_809FA94 -sub_809FA94: @ 809FA94 - push {lr} - bl sub_8040CB4 - lsls r0, 24 - cmp r0, 0 - beq _0809FAB4 - ldr r0, _0809FAB0 @ =gUnknown_083C157E - movs r1, 0x4 - movs r2, 0x2 - bl LoadPalette - movs r0, 0x1 - b _0809FAC0 - .align 2, 0 -_0809FAB0: .4byte gUnknown_083C157E -_0809FAB4: - ldr r0, _0809FAC4 @ =gUnknown_083C157C - movs r1, 0x4 - movs r2, 0x2 - bl LoadPalette - movs r0, 0 -_0809FAC0: - pop {r1} - bx r1 - .align 2, 0 -_0809FAC4: .4byte gUnknown_083C157C - thumb_func_end sub_809FA94 - - thumb_func_start sub_809FAC8 -sub_809FAC8: @ 809FAC8 - push {r4-r6,lr} - sub sp, 0xC - adds r5, r0, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - beq _0809FB28 - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0x4 - movs r3, 0x3 - bl MenuZeroFillWindowRect - movs r0, 0x3 - movs r1, 0x10 - movs r2, 0x9 - movs r3, 0x11 - bl MenuZeroFillWindowRect - movs r0, 0 - movs r1, 0xC - movs r2, 0xB - movs r3, 0xF - bl MenuZeroFillWindowRect - ldr r4, _0809FB20 @ =gStringVar1 - adds r0, r5, 0 - adds r1, r4, 0 - bl GetMonNickname - adds r0, r4, 0 - movs r1, 0xD - movs r2, 0x3 - movs r3, 0x10 - bl sub_80A1FF8 - ldr r0, _0809FB24 @ =gUnknown_083C157C - movs r1, 0x4 - movs r2, 0x2 - bl LoadPalette - b _0809FBD6 - .align 2, 0 -_0809FB20: .4byte gStringVar1 -_0809FB24: .4byte gUnknown_083C157C -_0809FB28: - adds r0, r5, 0 - bl sub_809FA94 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl SpeciesToPokedexNum - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _0809FB6C @ =0x0000ffff - cmp r4, r0 - beq _0809FB96 - cmp r6, 0 - bne _0809FB70 - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0x2 - bl GetStringCenterAlignXOffset - movs r0, 0x11 - str r0, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r1, 0xD - b _0809FB8C - .align 2, 0 -_0809FB6C: .4byte 0x0000ffff -_0809FB70: - movs r0, 0x2 - movs r1, 0x8 - movs r2, 0x1 - movs r3, 0x2 - bl GetStringCenterAlignXOffsetWithLetterSpacing - movs r0, 0x11 - str r0, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r1, 0x8 -_0809FB8C: - movs r2, 0x3 - movs r3, 0x2 - bl sub_80A1F98 - b _0809FBA2 -_0809FB96: - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0x4 - movs r3, 0x3 - bl MenuZeroFillWindowRect -_0809FBA2: - ldr r1, _0809FBE0 @ =gStringVar1 - adds r0, r1, 0 - movs r1, 0xD - bl sub_80A1E58 - adds r1, r0, 0 - adds r0, r5, 0 - bl GetMonNickname - adds r1, r0, 0 - movs r0, 0xFC - strb r0, [r1] - movs r0, 0x13 - strb r0, [r1, 0x1] - movs r0, 0x3C - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r0, _0809FBE0 @ =gStringVar1 - movs r1, 0x1 - movs r2, 0xC - bl MenuPrint - adds r0, r5, 0 - bl sub_80A0958 -_0809FBD6: - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809FBE0: .4byte gStringVar1 - thumb_func_end sub_809FAC8 - - thumb_func_start sub_809FBE4 -sub_809FBE4: @ 809FBE4 - push {r4,lr} - movs r4, 0 -_0809FBE8: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80A1918 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1B - bls _0809FBE8 - movs r0, 0xB - movs r1, 0x4 - movs r2, 0x1D - movs r3, 0x12 - bl MenuZeroFillWindowRect - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_809FBE4 - - thumb_func_start sub_809FC0C -sub_809FC0C: @ 809FC0C - push {lr} - ldr r0, _0809FC30 @ =gOtherText_Type2 - movs r1, 0xB - movs r2, 0x6 - bl MenuPrint - movs r0, 0 - movs r1, 0x16 - movs r2, 0x4 - bl GetStringCenterAlignXOffset - movs r0, 0x2 - movs r1, 0x17 - movs r2, 0x4 - bl GetStringCenterAlignXOffset - pop {r0} - bx r0 - .align 2, 0 -_0809FC30: .4byte gOtherText_Type2 - thumb_func_end sub_809FC0C - - thumb_func_start sub_809FC34 -sub_809FC34: @ 809FC34 - push {r4-r6,lr} - sub sp, 0xC - adds r6, r0, 0 - movs r4, 0 -_0809FC3C: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80A1918 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _0809FC3C - movs r0, 0xB - movs r1, 0x9 - movs r2, 0x1C - movs r3, 0xC - bl MenuZeroFillWindowRect - adds r0, r6, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - beq _0809FD1C - ldr r5, _0809FCD0 @ =gStringVar1 - adds r0, r5, 0 - movs r1, 0xD - bl sub_80A1E58 - adds r5, r0, 0 - ldr r1, _0809FCD4 @ =gOtherText_OriginalTrainer - bl StringCopy - adds r5, r0, 0 - ldr r4, _0809FCD8 @ =gOtherText_FiveQuestionsAndSlash - adds r1, r4, 0 - bl StringCopy - adds r5, r0, 0 - movs r0, 0xFC - strb r0, [r5] - movs r0, 0x13 - strb r0, [r5, 0x1] - movs r0, 0x4E - strb r0, [r5, 0x2] - movs r0, 0xFF - strb r0, [r5, 0x3] - ldr r0, _0809FCD0 @ =gStringVar1 - movs r1, 0xB - movs r2, 0x4 - bl MenuPrint - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0xD - movs r2, 0xC1 - movs r3, 0x20 - bl sub_80A1EF8 - movs r0, 0x9 - movs r1, 0x78 - movs r2, 0x30 - movs r3, 0 - bl sub_80A198C - adds r0, r6, 0 - movs r1, 0x20 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - adds r1, r0, 0 - cmp r0, 0x5 - bhi _0809FCE0 - ldr r0, _0809FCDC @ =gOtherText_EggAbout - b _0809FCF2 - .align 2, 0 -_0809FCD0: .4byte gStringVar1 -_0809FCD4: .4byte gOtherText_OriginalTrainer -_0809FCD8: .4byte gOtherText_FiveQuestionsAndSlash -_0809FCDC: .4byte gOtherText_EggAbout -_0809FCE0: - cmp r0, 0xA - bhi _0809FCEC - ldr r0, _0809FCE8 @ =gOtherText_EggSoon - b _0809FCF2 - .align 2, 0 -_0809FCE8: .4byte gOtherText_EggSoon -_0809FCEC: - cmp r1, 0x28 - bhi _0809FD00 - ldr r0, _0809FCFC @ =gOtherText_EggSomeTime -_0809FCF2: - movs r1, 0xB - movs r2, 0x9 - bl MenuPrint - b _0809FD0A - .align 2, 0 -_0809FCFC: .4byte gOtherText_EggSomeTime -_0809FD00: - ldr r0, _0809FD18 @ =gOtherText_EggLongTime - movs r1, 0xB - movs r2, 0x9 - bl MenuPrint -_0809FD0A: - adds r0, r6, 0 - movs r1, 0xB - movs r2, 0xE - bl sub_80A0708 - b _0809FE4C - .align 2, 0 -_0809FD18: .4byte gOtherText_EggLongTime -_0809FD1C: - ldr r4, _0809FD64 @ =gStringVar2 - adds r0, r6, 0 - movs r1, 0x7 - adds r2, r4, 0 - bl GetMonData - adds r0, r6, 0 - movs r1, 0x3 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl ConvertInternationalString - ldr r5, _0809FD68 @ =gStringVar1 - adds r0, r5, 0 - movs r1, 0xD - bl sub_80A1E58 - adds r5, r0, 0 - ldr r1, _0809FD6C @ =gOtherText_OriginalTrainer - bl StringCopy - adds r5, r0, 0 - adds r0, r6, 0 - movs r1, 0x31 - bl GetMonData - cmp r0, 0 - bne _0809FD70 - adds r0, r5, 0 - movs r1, 0x9 - b _0809FD74 - .align 2, 0 -_0809FD64: .4byte gStringVar2 -_0809FD68: .4byte gStringVar1 -_0809FD6C: .4byte gOtherText_OriginalTrainer -_0809FD70: - adds r0, r5, 0 - movs r1, 0xA -_0809FD74: - bl sub_80A1E58 - adds r5, r0, 0 - ldr r1, _0809FE54 @ =gStringVar2 - adds r0, r5, 0 - bl StringCopy - adds r5, r0, 0 - movs r0, 0xFC - strb r0, [r5] - movs r0, 0x13 - strb r0, [r5, 0x1] - movs r0, 0x4E - strb r0, [r5, 0x2] - movs r0, 0xFF - strb r0, [r5, 0x3] - ldr r0, _0809FE58 @ =gStringVar1 - movs r1, 0xB - movs r2, 0x4 - bl MenuPrint - adds r0, r6, 0 - movs r1, 0x1 - bl GetMonData - ldr r1, _0809FE5C @ =0x0000ffff - ands r1, r0 - movs r0, 0xC1 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - adds r0, r1, 0 - movs r1, 0xD - movs r2, 0x5 - movs r3, 0x2 - bl sub_80A1F98 - adds r0, r6, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - ldr r2, _0809FE60 @ =gBaseStats - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r5, r1, r2 - ldrb r4, [r5, 0x6] - adds r0, r4, 0 - movs r1, 0x78 - movs r2, 0x30 - movs r3, 0 - bl sub_80A198C - ldrb r0, [r5, 0x7] - cmp r4, r0 - beq _0809FDF8 - ldrb r0, [r5, 0x7] - movs r1, 0xA0 - movs r2, 0x30 - movs r3, 0x1 - bl sub_80A198C -_0809FDF8: - adds r0, r6, 0 - movs r1, 0xB - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r6, 0 - movs r1, 0x2E - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl GetAbilityBySpecies - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0xD - muls r0, r4 - ldr r1, _0809FE64 @ =gAbilityNames - adds r0, r1 - movs r1, 0xD - movs r2, 0xB - movs r3, 0x9 - bl sub_80A1FF8 - ldr r0, _0809FE68 @ =gAbilityDescriptions - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - movs r1, 0xB - movs r2, 0xB - bl MenuPrint - adds r0, r6, 0 - movs r1, 0xB - movs r2, 0xE - bl sub_80A0798 -_0809FE4C: - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809FE54: .4byte gStringVar2 -_0809FE58: .4byte gStringVar1 -_0809FE5C: .4byte 0x0000ffff -_0809FE60: .4byte gBaseStats -_0809FE64: .4byte gAbilityNames -_0809FE68: .4byte gAbilityDescriptions - thumb_func_end sub_809FC34 - - thumb_func_start sub_809FE6C -sub_809FE6C: @ 809FE6C - push {r4,lr} - adds r4, r0, 0 - bl sub_809FC0C - adds r0, r4, 0 - bl sub_809FC34 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_809FE6C - - thumb_func_start sub_809FE80 -sub_809FE80: @ 809FE80 - push {lr} - movs r0, 0xE - movs r1, 0x4 - movs r2, 0x12 - movs r3, 0x5 - bl MenuZeroFillWindowRect - movs r0, 0x19 - movs r1, 0x4 - movs r2, 0x1E - movs r3, 0x5 - bl MenuZeroFillWindowRect - movs r0, 0xB - movs r1, 0x9 - movs r2, 0x1C - movs r3, 0xC - bl MenuZeroFillWindowRect - movs r0, 0xB - movs r1, 0xE - movs r2, 0x1C - movs r3, 0x11 - bl MenuZeroFillWindowRect - pop {r0} - bx r0 - thumb_func_end sub_809FE80 - - thumb_func_start sub_809FEB8 -sub_809FEB8: @ 809FEB8 - push {r4,lr} - sub sp, 0x4 - ldr r0, _0809FF40 @ =gOtherText_ExpPoints - movs r1, 0xD - movs r2, 0xB - movs r3, 0xE - bl sub_80A1FF8 - ldr r0, _0809FF44 @ =gOtherText_NextLv - movs r1, 0xD - movs r2, 0xB - movs r3, 0x10 - bl sub_80A1FF8 - ldr r0, _0809FF48 @ =gOtherText_Terminator18 - movs r1, 0x15 - movs r2, 0x10 - bl MenuPrint - ldr r0, _0809FF4C @ =gOtherText_HP - movs r4, 0x2A - str r4, [sp] - movs r1, 0xD - movs r2, 0xB - movs r3, 0x7 - bl sub_80A1F48 - ldr r0, _0809FF50 @ =gOtherText_Attack - str r4, [sp] - movs r1, 0xD - movs r2, 0xB - movs r3, 0x9 - bl sub_80A1F48 - ldr r0, _0809FF54 @ =gOtherText_Defense - str r4, [sp] - movs r1, 0xD - movs r2, 0xB - movs r3, 0xB - bl sub_80A1F48 - ldr r0, _0809FF58 @ =gOtherText_SpAtk - movs r4, 0x24 - str r4, [sp] - movs r1, 0xD - movs r2, 0x16 - movs r3, 0x7 - bl sub_80A1F48 - ldr r0, _0809FF5C @ =gOtherText_SpDef - str r4, [sp] - movs r1, 0xD - movs r2, 0x16 - movs r3, 0x9 - bl sub_80A1F48 - ldr r0, _0809FF60 @ =gOtherText_Speed - str r4, [sp] - movs r1, 0xD - movs r2, 0x16 - movs r3, 0xB - bl sub_80A1F48 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809FF40: .4byte gOtherText_ExpPoints -_0809FF44: .4byte gOtherText_NextLv -_0809FF48: .4byte gOtherText_Terminator18 -_0809FF4C: .4byte gOtherText_HP -_0809FF50: .4byte gOtherText_Attack -_0809FF54: .4byte gOtherText_Defense -_0809FF58: .4byte gOtherText_SpAtk -_0809FF5C: .4byte gOtherText_SpDef -_0809FF60: .4byte gOtherText_Speed - thumb_func_end sub_809FEB8 - - thumb_func_start sub_809FF64 -sub_809FF64: @ 809FF64 - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 -_0809FF6A: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80A1918 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _0809FF6A - adds r0, r5, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xB - movs r2, 0x4 - bl sub_80A0BF4 - adds r0, r5, 0 - bl sub_80A0B88 - ldr r4, _080A008C @ =gStringVar1 - adds r0, r5, 0 - movs r1, 0x19 - bl GetMonData - adds r1, r0, 0 - adds r0, r4, 0 - bl ConvertIntToDecimalString - adds r0, r4, 0 - movs r1, 0x1D - movs r2, 0xE - bl MenuPrint_RightAligned - adds r0, r5, 0 - movs r1, 0x17 - movs r2, 0x10 - bl sub_80A0C80 - adds r0, r5, 0 - movs r1, 0x3B - bl GetMonData - adds r1, r0, 0 - adds r0, r4, 0 - bl ConvertIntToDecimalString - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0x9 - movs r3, 0x32 - bl sub_8072BD8 - adds r0, r5, 0 - movs r1, 0x3C - bl GetMonData - adds r1, r0, 0 - adds r0, r4, 0 - bl ConvertIntToDecimalString - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0xB - movs r3, 0x32 - bl sub_8072BD8 - adds r0, r5, 0 - movs r1, 0x3E - bl GetMonData - adds r1, r0, 0 - adds r0, r4, 0 - bl ConvertIntToDecimalString - adds r0, r4, 0 - movs r1, 0x1B - movs r2, 0x7 - movs r3, 0x12 - bl sub_8072BD8 - adds r0, r5, 0 - movs r1, 0x3F - bl GetMonData - adds r1, r0, 0 - adds r0, r4, 0 - bl ConvertIntToDecimalString - adds r0, r4, 0 - movs r1, 0x1B - movs r2, 0x9 - movs r3, 0x12 - bl sub_8072BD8 - adds r0, r5, 0 - movs r1, 0x3D - bl GetMonData - adds r1, r0, 0 - adds r0, r4, 0 - bl ConvertIntToDecimalString - adds r0, r4, 0 - movs r1, 0x1B - movs r2, 0xB - movs r3, 0x12 - bl sub_8072BD8 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x18 - movs r3, 0x1 - bl sub_8072C14 - adds r4, r0, 0 - movs r0, 0xBA - strb r0, [r4] - adds r4, 0x1 - adds r0, r5, 0 - movs r1, 0x3A - bl GetMonData - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x30 - movs r3, 0x1 - bl sub_8072C14 - ldr r0, _080A008C @ =gStringVar1 - movs r1, 0x7E - movs r2, 0x38 - movs r3, 0x1 - bl MenuPrint_PixelCoords - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A008C: .4byte gStringVar1 - thumb_func_end sub_809FF64 - - thumb_func_start sub_80A0090 -sub_80A0090: @ 80A0090 - push {r4,lr} - adds r4, r0, 0 - bl sub_809FEB8 - adds r0, r4, 0 - bl sub_809FF64 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A0090 - - thumb_func_start sub_80A00A4 -sub_80A00A4: @ 80A00A4 - push {lr} - movs r0, 0xB - movs r1, 0x4 - movs r2, 0x13 - movs r3, 0x5 - bl MenuZeroFillWindowRect - movs r0, 0x10 - movs r1, 0x7 - movs r2, 0x15 - movs r3, 0x8 - bl MenuZeroFillWindowRect - movs r0, 0x11 - movs r1, 0x9 - movs r2, 0x15 - movs r3, 0xC - bl MenuZeroFillWindowRect - movs r0, 0x1B - movs r1, 0x7 - movs r2, 0x1D - movs r3, 0xC - bl MenuZeroFillWindowRect - movs r0, 0x16 - movs r1, 0xE - movs r2, 0x1C - movs r3, 0xF - bl MenuZeroFillWindowRect - movs r0, 0x17 - movs r1, 0x10 - movs r2, 0x1C - movs r3, 0x11 - bl MenuZeroFillWindowRect - pop {r0} - bx r0 - thumb_func_end sub_80A00A4 - - thumb_func_start sub_80A00F4 -sub_80A00F4: @ 80A00F4 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r2, _080A012C @ =0x02018000 - adds r0, r2, 0 - adds r0, 0x7C - ldrh r0, [r0] - cmp r0, 0 - bne _080A010A - cmp r1, 0x4 - beq _080A0150 -_080A010A: - ldrb r0, [r2, 0xB] - cmp r0, 0x2 - bne _080A0138 - ldr r0, _080A0130 @ =gOtherText_Power2 - movs r1, 0xD - movs r2, 0x1 - movs r3, 0xF - bl sub_80A1FF8 - ldr r0, _080A0134 @ =gOtherText_Accuracy2 - movs r1, 0xD - movs r2, 0x1 - movs r3, 0x11 - bl sub_80A1FF8 - b _080A0150 - .align 2, 0 -_080A012C: .4byte 0x02018000 -_080A0130: .4byte gOtherText_Power2 -_080A0134: .4byte gOtherText_Accuracy2 -_080A0138: - ldr r0, _080A0154 @ =gOtherText_Appeal2 - movs r1, 0xD - movs r2, 0x1 - movs r3, 0xF - bl sub_80A1FF8 - ldr r0, _080A0158 @ =gOtherText_Jam2 - movs r1, 0xD - movs r2, 0x1 - movs r3, 0x11 - bl sub_80A1FF8 -_080A0150: - pop {r0} - bx r0 - .align 2, 0 -_080A0154: .4byte gOtherText_Appeal2 -_080A0158: .4byte gOtherText_Jam2 - thumb_func_end sub_80A00F4 - - thumb_func_start sub_80A015C -sub_80A015C: @ 80A015C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r8, r0 - movs r7, 0 -_080A0168: - mov r0, r8 - adds r1, r7, 0 - bl sub_809F760 - lsls r0, 16 - lsrs r6, r0, 16 - mov r0, r8 - adds r1, r7, 0 - bl sub_809F798 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - cmp r6, 0 - bne _080A01B8 - adds r0, r7, 0 - movs r1, 0x1 - bl sub_80A1918 - lsls r4, r7, 25 - movs r0, 0x80 - lsls r0, 19 - adds r4, r0 - lsrs r4, 24 - ldr r0, _080A01B0 @ =gOtherText_OneDash - movs r1, 0xD - movs r2, 0xF - adds r3, r4, 0 - bl sub_80A1FF8 - ldr r0, _080A01B4 @ =gOtherText_TwoDashes - movs r1, 0x1A - adds r2, r4, 0 - bl MenuPrint - b _080A0276 - .align 2, 0 -_080A01B0: .4byte gOtherText_OneDash -_080A01B4: .4byte gOtherText_TwoDashes -_080A01B8: - ldr r0, _080A01E0 @ =0x02018000 - ldrb r0, [r0, 0xB] - cmp r0, 0x2 - bne _080A01E8 - ldr r1, _080A01E4 @ =gBattleMoves - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x2] - lsls r4, r7, 1 - adds r2, r4, 0x4 - lsls r2, 27 - lsrs r2, 24 - movs r1, 0x57 - adds r3, r7, 0 - bl sub_80A198C - b _080A020C - .align 2, 0 -_080A01E0: .4byte 0x02018000 -_080A01E4: .4byte gBattleMoves -_080A01E8: - ldr r1, _080A0290 @ =gContestMoves - lsls r0, r6, 3 - adds r0, r1 - ldrb r0, [r0, 0x1] - lsls r0, 29 - lsrs r0, 5 - movs r1, 0x90 - lsls r1, 21 - adds r0, r1 - lsrs r0, 24 - lsls r4, r7, 1 - adds r2, r4, 0x4 - lsls r2, 27 - lsrs r2, 24 - movs r1, 0x57 - adds r3, r7, 0 - bl sub_80A198C -_080A020C: - movs r0, 0xD - muls r0, r6 - ldr r1, _080A0294 @ =gMoveNames - adds r0, r1 - adds r5, r4, 0x4 - lsls r5, 24 - lsrs r5, 24 - movs r1, 0xD - movs r2, 0xF - adds r3, r5, 0 - bl sub_80A1FF8 - movs r0, 0x1 - movs r1, 0x18 - adds r2, r5, 0 - bl GetStringCenterAlignXOffset - mov r0, r8 - movs r1, 0x15 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - adds r2, r7, 0 - bl CalculatePPWithBonus - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080A0298 @ =gStringVar1 - adds r0, r1, 0 - mov r1, r9 - movs r2, 0xE - movs r3, 0x1 - bl sub_8072C14 - adds r1, r0, 0 - movs r0, 0xBA - strb r0, [r1] - adds r1, 0x1 - adds r0, r1, 0 - adds r1, r4, 0 - movs r2, 0x20 - movs r3, 0x1 - bl sub_8072C14 - ldr r0, _080A0298 @ =gStringVar1 - movs r1, 0x19 - adds r2, r5, 0 - bl MenuPrint -_080A0276: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x3 - bhi _080A0282 - b _080A0168 -_080A0282: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A0290: .4byte gContestMoves -_080A0294: .4byte gMoveNames -_080A0298: .4byte gStringVar1 - thumb_func_end sub_80A015C - - thumb_func_start sub_80A029C -sub_80A029C: @ 80A029C - push {r4,r5,lr} - ldr r1, _080A02B8 @ =0x02018000 - adds r4, r1, 0 - adds r4, 0x7C - ldrh r0, [r4] - cmp r0, 0 - bne _080A02C0 - ldr r0, _080A02BC @ =gOtherText_CancelNoTerminator - movs r1, 0xD - movs r2, 0xF - movs r3, 0xC - bl sub_80A1FF8 - b _080A037E - .align 2, 0 -_080A02B8: .4byte 0x02018000 -_080A02BC: .4byte gOtherText_CancelNoTerminator -_080A02C0: - ldrh r5, [r4] - ldrb r0, [r1, 0xB] - cmp r0, 0x2 - bne _080A02E4 - ldr r1, _080A02E0 @ =gBattleMoves - lsls r4, r5, 1 - adds r0, r4, r5 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x2] - movs r1, 0x57 - movs r2, 0x60 - movs r3, 0x4 - bl sub_80A198C - b _080A0304 - .align 2, 0 -_080A02E0: .4byte gBattleMoves -_080A02E4: - ldr r1, _080A0320 @ =gContestMoves - lsls r0, r5, 3 - adds r0, r1 - ldrb r0, [r0, 0x1] - lsls r0, 29 - lsrs r0, 5 - movs r1, 0x90 - lsls r1, 21 - adds r0, r1 - lsrs r0, 24 - movs r1, 0x57 - movs r2, 0x60 - movs r3, 0x4 - bl sub_80A198C - lsls r4, r5, 1 -_080A0304: - ldr r0, _080A0324 @ =0x02018000 - ldrb r0, [r0, 0xB] - cmp r0, 0x2 - bne _080A032C - movs r0, 0xD - muls r0, r5 - ldr r1, _080A0328 @ =gMoveNames - adds r0, r1 - movs r1, 0xA - movs r2, 0xF - movs r3, 0xC - bl sub_80A1FF8 - b _080A033E - .align 2, 0 -_080A0320: .4byte gContestMoves -_080A0324: .4byte 0x02018000 -_080A0328: .4byte gMoveNames -_080A032C: - movs r0, 0xD - muls r0, r5 - ldr r1, _080A0384 @ =gMoveNames - adds r0, r1 - movs r1, 0x9 - movs r2, 0xF - movs r3, 0xC - bl sub_80A1FF8 -_080A033E: - movs r0, 0x1 - movs r1, 0x18 - movs r2, 0xC - bl GetStringCenterAlignXOffset - ldr r2, _080A0388 @ =gStringVar1 - ldr r1, _080A038C @ =gBattleMoves - adds r0, r4, r5 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x4] - adds r0, r2, 0 - adds r1, r4, 0 - movs r2, 0xE - movs r3, 0x1 - bl sub_8072C14 - adds r2, r0, 0 - movs r0, 0xBA - strb r0, [r2] - adds r2, 0x1 - adds r0, r2, 0 - adds r1, r4, 0 - movs r2, 0x20 - movs r3, 0x1 - bl sub_8072C14 - ldr r0, _080A0388 @ =gStringVar1 - movs r1, 0x19 - movs r2, 0xC - bl MenuPrint -_080A037E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A0384: .4byte gMoveNames -_080A0388: .4byte gStringVar1 -_080A038C: .4byte gBattleMoves - thumb_func_end sub_80A029C - - thumb_func_start sub_80A0390 -sub_80A0390: @ 80A0390 - push {r4,lr} - movs r4, 0 -_080A0394: - lsls r3, r4, 1 - adds r1, r3, 0x4 - lsls r1, 24 - lsrs r1, 24 - adds r3, 0x5 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0xF - movs r2, 0x1C - bl MenuZeroFillWindowRect - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080A0394 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A0390 - - thumb_func_start sub_80A03BC -sub_80A03BC: @ 80A03BC - push {lr} - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x4 - beq _080A03D0 - bl sub_809F760 - lsls r0, 16 - lsrs r1, r0, 16 - b _080A03E0 -_080A03D0: - ldr r0, _080A03E8 @ =0x02018000 - adds r2, r0, 0 - adds r2, 0x7C - ldrh r0, [r2] - ldr r1, _080A03EC @ =0x0000ffff - cmp r0, 0 - beq _080A03E0 - adds r1, r0, 0 -_080A03E0: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_080A03E8: .4byte 0x02018000 -_080A03EC: .4byte 0x0000ffff - thumb_func_end sub_80A03BC - - thumb_func_start sub_80A03F0 -sub_80A03F0: @ 80A03F0 - push {lr} - ldrb r1, [r1] - bl sub_80A03BC - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _080A0414 @ =0x02018000 - ldrb r0, [r0, 0xB] - cmp r0, 0x2 - bne _080A041C - adds r0, r1, 0 - bl sub_80A04CC - ldr r0, _080A0418 @ =0x0000ffff - bl sub_80A057C - b _080A0422 - .align 2, 0 -_080A0414: .4byte 0x02018000 -_080A0418: .4byte 0x0000ffff -_080A041C: - adds r0, r1, 0 - bl sub_80A057C -_080A0422: - pop {r0} - bx r0 - thumb_func_end sub_80A03F0 - - thumb_func_start sub_80A0428 -sub_80A0428: @ 80A0428 - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - ldrb r1, [r6] - bl sub_80A03BC - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0xB - movs r1, 0xF - movs r2, 0x1C - movs r3, 0x12 - bl MenuZeroFillWindowRect - ldr r0, _080A0454 @ =0x02018000 - ldrb r0, [r0, 0xB] - cmp r0, 0x2 - bne _080A0458 - adds r0, r4, 0 - bl sub_80A046C - b _080A045E - .align 2, 0 -_080A0454: .4byte 0x02018000 -_080A0458: - adds r0, r4, 0 - bl sub_80A0498 -_080A045E: - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_80A03F0 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A0428 - - thumb_func_start sub_80A046C -sub_80A046C: @ 80A046C - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _080A0490 @ =0x0000ffff - cmp r1, r0 - beq _080A048A - ldr r0, _080A0494 @ =gMoveDescriptions - subs r1, 0x1 - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - movs r1, 0xB - movs r2, 0xF - bl MenuPrint -_080A048A: - pop {r0} - bx r0 - .align 2, 0 -_080A0490: .4byte 0x0000ffff -_080A0494: .4byte gMoveDescriptions - thumb_func_end sub_80A046C - - thumb_func_start sub_80A0498 -sub_80A0498: @ 80A0498 - push {lr} - lsls r0, 16 - lsrs r3, r0, 16 - ldr r0, _080A04C0 @ =0x0000ffff - cmp r3, r0 - beq _080A04BC - ldr r2, _080A04C4 @ =gUnknown_083CADD4 - ldr r1, _080A04C8 @ =gContestMoves - lsls r0, r3, 3 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - movs r1, 0xB - movs r2, 0xF - bl MenuPrint -_080A04BC: - pop {r0} - bx r0 - .align 2, 0 -_080A04C0: .4byte 0x0000ffff -_080A04C4: .4byte gUnknown_083CADD4 -_080A04C8: .4byte gContestMoves - thumb_func_end sub_80A0498 - - thumb_func_start sub_80A04CC -sub_80A04CC: @ 80A04CC - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _080A0504 @ =0x0000ffff - cmp r4, r0 - beq _080A0572 - ldr r2, _080A0508 @ =gBattleMoves - lsls r1, r4, 1 - adds r0, r1, r4 - lsls r0, 2 - adds r2, r0, r2 - ldrb r0, [r2, 0x1] - adds r5, r1, 0 - cmp r0, 0x1 - bhi _080A0514 - ldr r0, _080A050C @ =gStringVar1 - ldr r1, _080A0510 @ =gOtherText_ThreeDashes2 - movs r2, 0x15 - movs r3, 0x1 - bl sub_8072C74 - ldr r0, _080A050C @ =gStringVar1 - movs r1, 0x7 - movs r2, 0xF - bl MenuPrint - b _080A052A - .align 2, 0 -_080A0504: .4byte 0x0000ffff -_080A0508: .4byte gBattleMoves -_080A050C: .4byte gStringVar1 -_080A0510: .4byte gOtherText_ThreeDashes2 -_080A0514: - ldr r0, _080A0550 @ =gStringVar1 - ldrb r1, [r2, 0x1] - movs r2, 0x15 - movs r3, 0x1 - bl sub_8072C14 - ldr r0, _080A0550 @ =gStringVar1 - movs r1, 0x7 - movs r2, 0xF - bl MenuPrint -_080A052A: - ldr r0, _080A0554 @ =gBattleMoves - adds r1, r5, r4 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x3] - cmp r0, 0 - bne _080A055C - ldr r0, _080A0550 @ =gStringVar1 - ldr r1, _080A0558 @ =gOtherText_ThreeDashes2 - movs r2, 0x15 - movs r3, 0x1 - bl sub_8072C74 - ldr r0, _080A0550 @ =gStringVar1 - movs r1, 0x7 - movs r2, 0x11 - bl MenuPrint - b _080A0572 - .align 2, 0 -_080A0550: .4byte gStringVar1 -_080A0554: .4byte gBattleMoves -_080A0558: .4byte gOtherText_ThreeDashes2 -_080A055C: - ldr r0, _080A0578 @ =gStringVar1 - ldrb r1, [r1, 0x3] - movs r2, 0x15 - movs r3, 0x1 - bl sub_8072C14 - ldr r0, _080A0578 @ =gStringVar1 - movs r1, 0x7 - movs r2, 0x11 - bl MenuPrint -_080A0572: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A0578: .4byte gStringVar1 - thumb_func_end sub_80A04CC - - thumb_func_start sub_80A057C -sub_80A057C: @ 80A057C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _080A0648 @ =0x06006800 - mov r8, r0 - ldr r0, _080A064C @ =0x0000ffff - cmp r5, r0 - beq _080A063A - ldr r1, _080A0650 @ =gContestEffects - ldr r2, _080A0654 @ =gContestMoves - lsls r3, r5, 3 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x1] - mov r10, r2 - mov r9, r3 - cmp r4, 0xFF - beq _080A05B8 - adds r0, r4, 0 - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r4, r0, 24 -_080A05B8: - movs r2, 0 - movs r7, 0x3 - movs r6, 0xF3 - lsls r6, 2 -_080A05C0: - ldr r3, _080A0658 @ =0x00001039 - cmp r4, 0xFF - beq _080A05CC - cmp r2, r4 - bcs _080A05CC - adds r3, 0x1 -_080A05CC: - lsrs r0, r2, 2 - lsls r0, 5 - adds r1, r2, 0 - ands r1, r7 - adds r1, r0 - lsls r1, 1 - add r1, r8 - adds r1, r6 - strh r3, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _080A05C0 - ldr r0, _080A064C @ =0x0000ffff - cmp r5, r0 - beq _080A063A - mov r0, r9 - add r0, r10 - ldrb r0, [r0] - lsls r0, 2 - ldr r1, _080A0650 @ =gContestEffects - adds r0, r1 - ldrb r4, [r0, 0x2] - cmp r4, 0xFF - beq _080A060C - adds r0, r4, 0 - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r4, r0, 24 -_080A060C: - movs r2, 0 - movs r6, 0x3 - ldr r5, _080A065C @ =0x0000044c -_080A0612: - ldr r3, _080A0660 @ =0x0000103d - cmp r4, 0xFF - beq _080A061E - cmp r2, r4 - bcs _080A061E - subs r3, 0x1 -_080A061E: - lsrs r0, r2, 2 - lsls r0, 5 - adds r1, r2, 0 - ands r1, r6 - adds r1, r0 - lsls r1, 1 - add r1, r8 - adds r1, r5 - strh r3, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _080A0612 -_080A063A: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A0648: .4byte 0x06006800 -_080A064C: .4byte 0x0000ffff -_080A0650: .4byte gContestEffects -_080A0654: .4byte gContestMoves -_080A0658: .4byte 0x00001039 -_080A065C: .4byte 0x0000044c -_080A0660: .4byte 0x0000103d - thumb_func_end sub_80A057C - - thumb_func_start sub_80A0664 -sub_80A0664: @ 80A0664 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, _080A06A0 @ =0x02018000 - ldr r1, [r0] - ldr r0, _080A06A4 @ =gEnemyParty - cmp r1, r0 - bne _080A06B0 - bl GetMultiplayerId - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A06A8 @ =gLinkPlayers - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r0, r2, 0x4 - adds r0, r1, r0 - ldrh r5, [r0] - ldr r4, _080A06AC @ =gStringVar1 - adds r2, 0x8 - adds r1, r2 - adds r0, r4, 0 - bl StringCopy - adds r0, r4, 0 - bl StripExtCtrlCodes - b _080A06C2 - .align 2, 0 -_080A06A0: .4byte 0x02018000 -_080A06A4: .4byte gEnemyParty -_080A06A8: .4byte gLinkPlayers -_080A06AC: .4byte gStringVar1 -_080A06B0: - bl sub_80BFB94 - adds r5, r0, 0 - ldr r0, _080A06F0 @ =0x0000ffff - ands r5, r0 - ldr r0, _080A06F4 @ =gStringVar1 - ldr r1, _080A06F8 @ =gSaveBlock2 - bl StringCopy -_080A06C2: - adds r0, r6, 0 - movs r1, 0x1 - bl GetMonData - ldr r1, _080A06F0 @ =0x0000ffff - ands r1, r0 - cmp r5, r1 - bne _080A06EA - ldr r4, _080A06FC @ =gStringVar2 - adds r0, r6, 0 - movs r1, 0x7 - adds r2, r4, 0 - bl GetMonData - ldr r0, _080A06F4 @ =gStringVar1 - adds r1, r4, 0 - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - beq _080A0700 -_080A06EA: - movs r0, 0 - b _080A0702 - .align 2, 0 -_080A06F0: .4byte 0x0000ffff -_080A06F4: .4byte gStringVar1 -_080A06F8: .4byte gSaveBlock2 -_080A06FC: .4byte gStringVar2 -_080A0700: - movs r0, 0x1 -_080A0702: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80A0664 - - thumb_func_start sub_80A0708 -sub_80A0708: @ 80A0708 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - mov r9, r5 - lsls r2, 24 - lsrs r6, r2, 24 - mov r8, r6 - movs r1, 0x25 - bl GetMonData - lsls r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x2 - bls _080A073C - ldr r0, _080A0738 @ =gOtherText_EggObtainedInTrade - b _080A076E - .align 2, 0 -_080A0738: .4byte gOtherText_EggObtainedInTrade -_080A073C: - adds r0, r4, 0 - movs r1, 0x23 - bl GetMonData - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0xFF - bne _080A0754 - ldr r0, _080A0750 @ =gOtherText_EggNicePlace - b _080A076E - .align 2, 0 -_080A0750: .4byte gOtherText_EggNicePlace -_080A0754: - adds r0, r4, 0 - bl sub_80A0664 - lsls r0, 24 - cmp r0, 0 - bne _080A0768 - ldr r0, _080A0764 @ =gOtherText_EggObtainedInTrade - b _080A076E - .align 2, 0 -_080A0764: .4byte gOtherText_EggObtainedInTrade -_080A0768: - cmp r7, 0xFD - bne _080A077C - ldr r0, _080A0778 @ =gOtherText_EggHotSprings -_080A076E: - adds r1, r5, 0 - adds r2, r6, 0 - bl MenuPrint - b _080A0786 - .align 2, 0 -_080A0778: .4byte gOtherText_EggHotSprings -_080A077C: - ldr r0, _080A0794 @ =gOtherText_EggDayCare - mov r1, r9 - mov r2, r8 - bl MenuPrint -_080A0786: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A0794: .4byte gOtherText_EggDayCare - thumb_func_end sub_80A0708 - - thumb_func_start sub_80A0798 -sub_80A0798: @ 80A0798 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - ldr r5, _080A0838 @ =gStringVar4 - bl GetNature - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080A083C @ =gNatureNames - lsls r0, r4, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r5, 0 - movs r2, 0xE - bl sub_80A1E9C - adds r5, r0, 0 - cmp r4, 0x5 - beq _080A07DA - cmp r4, 0x15 - beq _080A07DA - ldr r1, _080A0840 @ =gOtherText_Terminator4 - bl StringCopy - adds r5, r0, 0 -_080A07DA: - ldr r1, _080A0844 @ =gOtherText_Nature - adds r0, r5, 0 - bl StringCopy - adds r5, r0, 0 - adds r0, r7, 0 - bl sub_80A0664 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A0898 - adds r0, r7, 0 - movs r1, 0x23 - bl GetMonData - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r7, 0 - movs r1, 0x24 - bl GetMonData - cmp r0, 0 - bne _080A0850 - adds r0, r5, 0 - movs r1, 0x5 - bl sub_80A203C - adds r5, r0, 0 - movs r0, 0xFE - strb r0, [r5] - adds r5, 0x1 - ldr r4, _080A0848 @ =gStringVar1 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_80FC02C - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0xE - bl sub_80A1E9C - adds r5, r0, 0 - ldr r1, _080A084C @ =gOtherText_Egg2 - bl StringCopy - b _080A0934 - .align 2, 0 -_080A0838: .4byte gStringVar4 -_080A083C: .4byte gNatureNames -_080A0840: .4byte gOtherText_Terminator4 -_080A0844: .4byte gOtherText_Nature -_080A0848: .4byte gStringVar1 -_080A084C: .4byte gOtherText_Egg2 -_080A0850: - cmp r6, 0x57 - bhi _080A08E8 - adds r0, r7, 0 - movs r1, 0x24 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl sub_80A203C - adds r5, r0, 0 - movs r0, 0xFE - strb r0, [r5] - adds r5, 0x1 - ldr r4, _080A0890 @ =gStringVar1 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_80FC02C - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0xE - bl sub_80A1E9C - adds r5, r0, 0 - ldr r1, _080A0894 @ =gOtherText_Met - bl StringCopy - b _080A0934 - .align 2, 0 -_080A0890: .4byte gStringVar1 -_080A0894: .4byte gOtherText_Met -_080A0898: - adds r0, r7, 0 - movs r1, 0x25 - bl GetMonData - lsls r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x2 - bhi _080A08E8 - adds r0, r7, 0 - movs r1, 0x23 - bl GetMonData - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xFF - bne _080A08E4 - adds r0, r7, 0 - movs r1, 0x24 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl sub_80A203C - adds r5, r0, 0 - movs r0, 0xFE - strb r0, [r5] - adds r5, 0x1 - ldr r1, _080A08E0 @ =gOtherText_FatefulEncounter - b _080A08F0 - .align 2, 0 -_080A08E0: .4byte gOtherText_FatefulEncounter -_080A08E4: - cmp r6, 0x57 - bls _080A08FC -_080A08E8: - movs r0, 0xFE - strb r0, [r5] - adds r5, 0x1 - ldr r1, _080A08F8 @ =gOtherText_ObtainedInTrade -_080A08F0: - adds r0, r5, 0 - bl StringCopy - b _080A0934 - .align 2, 0 -_080A08F8: .4byte gOtherText_ObtainedInTrade -_080A08FC: - adds r0, r7, 0 - movs r1, 0x24 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl sub_80A203C - adds r5, r0, 0 - movs r0, 0xFE - strb r0, [r5] - adds r5, 0x1 - ldr r4, _080A094C @ =gStringVar1 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_80FC02C - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0xE - bl sub_80A1E9C - adds r5, r0, 0 - ldr r1, _080A0950 @ =gOtherText_Met2 - bl StringCopy -_080A0934: - ldr r0, _080A0954 @ =gStringVar4 - mov r1, r9 - mov r2, r8 - bl MenuPrint - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A094C: .4byte gStringVar1 -_080A0950: .4byte gOtherText_Met2 -_080A0954: .4byte gStringVar4 - thumb_func_end sub_80A0798 - - thumb_func_start sub_80A0958 -sub_80A0958: @ 80A0958 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - mov r8, r0 - movs r1, 0xB - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r2, _080A0A24 @ =gStringVar1 - adds r0, r2, 0 - movs r1, 0xD - bl sub_80A1E58 - adds r2, r0, 0 - movs r6, 0xFC - strb r6, [r2] - movs r0, 0x11 - strb r0, [r2, 0x1] - movs r0, 0x7 - strb r0, [r2, 0x2] - movs r0, 0xBA - strb r0, [r2, 0x3] - adds r2, 0x4 - movs r0, 0xB - adds r1, r4, 0 - muls r1, r0 - ldr r0, _080A0A28 @ =gSpeciesNames - adds r1, r0 - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - strb r6, [r2] - movs r0, 0x13 - mov r10, r0 - strb r0, [r2, 0x1] - movs r0, 0x50 - strb r0, [r2, 0x2] - movs r0, 0xFF - mov r9, r0 - strb r0, [r2, 0x3] - ldr r5, _080A0A24 @ =gStringVar1 - adds r0, r5, 0 - movs r1, 0 - movs r2, 0xE - bl MenuPrint - movs r0, 0x3 - movs r1, 0x10 - movs r2, 0x9 - movs r3, 0x11 - bl MenuZeroFillWindowRect - mov r0, r8 - movs r1, 0x38 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0xD - bl sub_80A1E58 - adds r2, r0, 0 - movs r0, 0x34 - strb r0, [r2] - adds r2, 0x1 - adds r0, r2, 0 - adds r1, r4, 0 - bl ConvertIntToDecimalString - adds r2, r0, 0 - strb r6, [r2] - mov r0, r10 - strb r0, [r2, 0x1] - movs r0, 0x20 - strb r0, [r2, 0x2] - mov r0, r9 - strb r0, [r2, 0x3] - adds r0, r5, 0 - movs r1, 0x3 - movs r2, 0x10 - bl MenuPrint - mov r0, r8 - movs r1, 0x7 - movs r2, 0x10 - bl sub_80A0A2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A0A24: .4byte gStringVar1 -_080A0A28: .4byte gSpeciesNames - thumb_func_end sub_80A0958 - - thumb_func_start sub_80A0A2C -sub_80A0A2C: @ 80A0A2C - push {r4-r6,lr} - adds r6, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r4, r2, 24 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x20 - beq _080A0A84 - cmp r0, 0x1D - beq _080A0A84 - adds r0, r6, 0 - bl GetMonGender - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _080A0A6E - cmp r0, 0xFE - beq _080A0A78 - adds r3, r4, 0x1 - lsls r3, 24 - lsrs r3, 24 - adds r0, r5, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl MenuZeroFillWindowRect - b _080A0A84 -_080A0A6E: - ldr r0, _080A0A74 @ =gOtherText_MaleSymbol2 - movs r1, 0xB - b _080A0A7C - .align 2, 0 -_080A0A74: .4byte gOtherText_MaleSymbol2 -_080A0A78: - ldr r0, _080A0A8C @ =gOtherText_FemaleSymbolAndLv - movs r1, 0xC -_080A0A7C: - adds r2, r5, 0 - adds r3, r4, 0 - bl sub_80A1FF8 -_080A0A84: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A0A8C: .4byte gOtherText_FemaleSymbolAndLv - thumb_func_end sub_80A0A2C - - thumb_func_start sub_80A0A90 -sub_80A0A90: @ 80A0A90 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x32 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x33 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x34 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x35 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x36 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x43 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x44 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x45 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x46 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x47 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x48 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x49 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x4A - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x4B - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x4C - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x4D - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x4E - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80A0A90 - - thumb_func_start sub_80A0B88 -sub_80A0B88: @ 80A0B88 - push {r4,r5,lr} - bl sub_80A0A90 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080A0BA8 - ldr r0, _080A0BA0 @ =gStringVar1 - ldr r1, _080A0BA4 @ =gOtherText_None - bl StringCopy - b _080A0BD8 - .align 2, 0 -_080A0BA0: .4byte gStringVar1 -_080A0BA4: .4byte gOtherText_None -_080A0BA8: - ldr r4, _080A0BE8 @ =gStringVar1 - ldr r1, _080A0BEC @ =gOtherText_Ribbons00 - adds r0, r4, 0 - bl StringCopy - adds r0, r4, 0 - bl StringLength - lsls r0, 24 - lsrs r0, 24 - subs r4, 0x2 - adds r0, r4 - movs r1, 0xFC - strb r1, [r0] - movs r1, 0x14 - strb r1, [r0, 0x1] - movs r1, 0x6 - strb r1, [r0, 0x2] - adds r0, 0x3 - adds r1, r5, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN -_080A0BD8: - ldr r0, _080A0BF0 @ =gUnknown_083C15AE - movs r1, 0x15 - movs r2, 0x4 - bl MenuPrint - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A0BE8: .4byte gStringVar1 -_080A0BEC: .4byte gOtherText_Ribbons00 -_080A0BF0: .4byte gUnknown_083C15AE - thumb_func_end sub_80A0B88 - - thumb_func_start sub_80A0BF4 -sub_80A0BF4: @ 80A0BF4 - push {r4-r7,lr} - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - cmp r5, 0xAF - bne _080A0C48 - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A0C48 - bl sub_806B528 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A0C48 - ldr r0, _080A0C40 @ =0x02018000 - ldrb r0, [r0, 0x9] - cmp r0, 0x1 - beq _080A0C2E - cmp r0, 0x4 - beq _080A0C2E - cmp r0, 0x5 - bne _080A0C48 -_080A0C2E: - ldr r4, _080A0C44 @ =gStringVar1 - adds r0, r5, 0 - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - b _080A0C68 - .align 2, 0 -_080A0C40: .4byte 0x02018000 -_080A0C44: .4byte gStringVar1 -_080A0C48: - cmp r5, 0 - bne _080A0C60 - ldr r0, _080A0C58 @ =gStringVar1 - ldr r1, _080A0C5C @ =gOtherText_None - bl StringCopy - b _080A0C68 - .align 2, 0 -_080A0C58: .4byte gStringVar1 -_080A0C5C: .4byte gOtherText_None -_080A0C60: - ldr r1, _080A0C78 @ =gStringVar1 - adds r0, r5, 0 - bl CopyItemName -_080A0C68: - ldr r0, _080A0C7C @ =gUnknown_083C15B4 - adds r1, r7, 0 - adds r2, r6, 0 - bl MenuPrint - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A0C78: .4byte gStringVar1 -_080A0C7C: .4byte gUnknown_083C15B4 - thumb_func_end sub_80A0BF4 - - thumb_func_start sub_80A0C80 -sub_80A0C80: @ 80A0C80 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp] - movs r0, 0 - mov r9, r0 - movs r6, 0 - movs r7, 0 - adds r0, r4, 0 - movs r1, 0x19 - bl GetMonData - mov r8, r0 - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - cmp r5, 0x63 - bhi _080A0D14 - ldr r3, _080A0D4C @ =gExperienceTables - adds r1, r5, 0x1 - lsls r1, 2 - ldr r2, _080A0D50 @ =gBaseStats - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r2 - ldrb r2, [r0, 0x13] - movs r0, 0xCA - lsls r0, 1 - muls r2, r0 - adds r1, r2 - adds r1, r3 - ldr r1, [r1] - mov r0, r8 - subs r0, r1, r0 - mov r9, r0 - lsls r0, r5, 2 - adds r0, r2 - adds r0, r3 - ldr r0, [r0] - subs r1, r0 - mov r2, r8 - subs r4, r2, r0 - lsls r0, r4, 6 - bl __udivsi3 - adds r6, r0, 0 - movs r7, 0 - adds r0, r7, 0 - orrs r0, r6 - cmp r0, 0 - bne _080A0D14 - cmp r4, 0 - beq _080A0D14 - movs r6, 0x1 - movs r7, 0 -_080A0D14: - ldr r4, _080A0D54 @ =gStringVar1 - adds r0, r4, 0 - mov r1, r9 - bl ConvertIntToDecimalString - mov r1, r10 - adds r1, 0x6 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - ldr r2, [sp] - bl MenuPrint_RightAligned - ldr r0, _080A0D58 @ =0x06004caa - mov r9, r0 - movs r2, 0 - mov r12, r2 - ldr r0, _080A0D5C @ =0x00002062 - mov r8, r0 -_080A0D3A: - cmp r7, 0 - bgt _080A0D46 - cmp r7, 0 - bne _080A0D64 - cmp r6, 0x7 - bls _080A0D64 -_080A0D46: - ldr r1, _080A0D60 @ =0x0000206a - b _080A0D96 - .align 2, 0 -_080A0D4C: .4byte gExperienceTables -_080A0D50: .4byte gBaseStats -_080A0D54: .4byte gStringVar1 -_080A0D58: .4byte 0x06004caa -_080A0D5C: .4byte 0x00002062 -_080A0D60: .4byte 0x0000206a -_080A0D64: - adds r5, r7, 0 - adds r4, r6, 0 - cmp r7, 0 - bge _080A0D74 - movs r4, 0x7 - movs r5, 0 - adds r4, r6 - adcs r5, r7 -_080A0D74: - lsls r3, r5, 29 - lsrs r2, r4, 3 - adds r0, r3, 0 - orrs r0, r2 - asrs r1, r5, 3 - lsrs r5, r0, 29 - lsls r4, r1, 3 - adds r3, r5, 0 - orrs r3, r4 - lsls r2, r0, 3 - adds r1, r7, 0 - adds r0, r6, 0 - subs r0, r2 - sbcs r1, r3 - add r0, r8 - lsls r0, 16 - lsrs r1, r0, 16 -_080A0D96: - mov r2, r12 - lsls r0, r2, 1 - add r0, r9 - strh r1, [r0] - movs r0, 0x8 - negs r0, r0 - asrs r1, r0, 31 - adds r6, r0 - adcs r7, r1 - cmp r7, 0 - bge _080A0DB0 - movs r6, 0 - movs r7, 0 -_080A0DB0: - mov r0, r12 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - cmp r0, 0x7 - bls _080A0D3A - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A0C80 - - thumb_func_start sub_80A0DD0 -sub_80A0DD0: @ 80A0DD0 - push {r4,r5,lr} - ldr r2, _080A0E3C @ =gStringVar1 - movs r5, 0xFC - strb r5, [r2] - movs r0, 0x12 - strb r0, [r2, 0x1] - movs r0, 0x2 - strb r0, [r2, 0x2] - adds r2, 0x3 - adds r0, r2, 0 - movs r1, 0xD - bl sub_80A1E58 - adds r2, r0, 0 - ldr r1, _080A0E40 @ =gUnknown_083C1068 - ldr r4, _080A0E44 @ =0x02018000 - adds r0, r4, 0 - adds r0, 0x7E - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - strb r5, [r2] - movs r0, 0x13 - strb r0, [r2, 0x1] - movs r0, 0x58 - strb r0, [r2, 0x2] - movs r0, 0xFF - strb r0, [r2, 0x3] - ldr r0, _080A0E3C @ =gStringVar1 - movs r1, 0 - movs r2, 0 - bl MenuPrint - adds r4, 0x7F - ldrb r0, [r4] - cmp r0, 0 - beq _080A0E48 - movs r0, 0x5 - movs r1, 0x17 - movs r2, 0 - bl GetStringCenterAlignXOffset - movs r0, 0x6 - movs r1, 0x18 - movs r2, 0 - bl GetStringCenterAlignXOffset - b _080A0E54 - .align 2, 0 -_080A0E3C: .4byte gStringVar1 -_080A0E40: .4byte gUnknown_083C1068 -_080A0E44: .4byte 0x02018000 -_080A0E48: - movs r0, 0x17 - movs r1, 0 - movs r2, 0x18 - movs r3, 0x1 - bl MenuZeroFillWindowRect -_080A0E54: - ldr r2, _080A0E98 @ =gStringVar1 - adds r0, r2, 0 - movs r1, 0xD - bl sub_80A1E58 - adds r2, r0, 0 - ldr r1, _080A0E9C @ =gUnknown_083C1068 - ldr r0, _080A0EA0 @ =0x02018000 - adds r0, 0x7F - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - movs r0, 0xFC - strb r0, [r2] - movs r0, 0x13 - strb r0, [r2, 0x1] - movs r0, 0x28 - strb r0, [r2, 0x2] - movs r0, 0xFF - strb r0, [r2, 0x3] - ldr r0, _080A0E98 @ =gStringVar1 - movs r1, 0x19 - movs r2, 0 - bl MenuPrint - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A0E98: .4byte gStringVar1 -_080A0E9C: .4byte gUnknown_083C1068 -_080A0EA0: .4byte 0x02018000 - thumb_func_end sub_80A0DD0 - - thumb_func_start sub_80A0EA4 -sub_80A0EA4: @ 80A0EA4 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r5, _080A0ECC @ =0x0600e444 - ldr r6, _080A0ED0 @ =0x0600ec44 - movs r1, 0 - bl CheckPartyPokerus - lsls r0, 24 - cmp r0, 0 - bne _080A0ED4 - adds r0, r4, 0 - movs r1, 0 - bl CheckPartyHasHadPokerus - lsls r0, 24 - cmp r0, 0 - beq _080A0ED4 - movs r0, 0x2C - b _080A0ED8 - .align 2, 0 -_080A0ECC: .4byte 0x0600e444 -_080A0ED0: .4byte 0x0600ec44 -_080A0ED4: - ldr r1, _080A0EE4 @ =0x0000081a - adds r0, r1, 0 -_080A0ED8: - strh r0, [r5] - strh r0, [r6] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A0EE4: .4byte 0x0000081a - thumb_func_end sub_80A0EA4 - - thumb_func_start sub_80A0EE8 -sub_80A0EE8: @ 80A0EE8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - movs r3, 0 - ldr r6, _080A0F24 @ =0x02018000 - adds r5, r6, 0 - ldr r1, _080A0F28 @ =0x00004040 - mov r8, r1 - ldr r2, _080A0F2C @ =0x0000404a - mov r10, r2 -_080A0F02: - adds r0, r5, 0 - adds r0, 0x75 - ldrb r0, [r0] - cmp r3, r0 - bcs _080A0F30 - lsls r1, r3, 1 - lsls r0, r3, 2 - add r0, sp - mov r4, r8 - strh r4, [r0] - adds r1, 0x1 - lsls r1, 1 - mov r7, sp - adds r0, r7, r1 - strh r4, [r0] - b _080A0FE2 - .align 2, 0 -_080A0F24: .4byte 0x02018000 -_080A0F28: .4byte 0x00004040 -_080A0F2C: .4byte 0x0000404a -_080A0F30: - movs r0, 0x76 - adds r0, r6 - mov r12, r0 - ldrb r1, [r0] - cmp r3, r1 - bls _080A0F52 - lsls r1, r3, 1 - lsls r0, r3, 2 - add r0, sp - mov r2, r10 - strh r2, [r0] - adds r1, 0x1 - lsls r1, 1 - mov r4, sp - adds r0, r4, r1 - strh r2, [r0] - b _080A0FE2 -_080A0F52: - ldrb r4, [r5, 0xB] - cmp r3, r4 - bcs _080A0F6E - lsls r1, r3, 1 - lsls r0, r3, 2 - mov r7, sp - adds r2, r7, r0 - ldr r0, _080A0F88 @ =0x00004046 - strh r0, [r2] - adds r1, 0x1 - lsls r1, 1 - add r1, sp - adds r0, 0x1 - strh r0, [r1] -_080A0F6E: - cmp r3, r4 - bne _080A0FA6 - mov r0, r12 - ldrb r0, [r0] - cmp r3, r0 - beq _080A0F90 - lsls r1, r3, 1 - lsls r0, r3, 2 - mov r4, sp - adds r2, r4, r0 - ldr r0, _080A0F8C @ =0x00004041 - b _080A0F9A - .align 2, 0 -_080A0F88: .4byte 0x00004046 -_080A0F8C: .4byte 0x00004041 -_080A0F90: - lsls r1, r3, 1 - lsls r0, r3, 2 - mov r7, sp - adds r2, r7, r0 - ldr r0, _080A0FC4 @ =0x0000404b -_080A0F9A: - strh r0, [r2] - adds r1, 0x1 - lsls r1, 1 - add r1, sp - adds r0, 0x1 - strh r0, [r1] -_080A0FA6: - ldrb r0, [r5, 0xB] - cmp r3, r0 - bls _080A0FE2 - adds r0, r6, 0 - adds r0, 0x76 - ldrb r0, [r0] - cmp r3, r0 - beq _080A0FCC - lsls r1, r3, 1 - lsls r0, r3, 2 - mov r4, sp - adds r2, r4, r0 - ldr r0, _080A0FC8 @ =0x00004043 - b _080A0FD6 - .align 2, 0 -_080A0FC4: .4byte 0x0000404b -_080A0FC8: .4byte 0x00004043 -_080A0FCC: - lsls r1, r3, 1 - lsls r0, r3, 2 - mov r7, sp - adds r2, r7, r0 - ldr r0, _080A1034 @ =0x00004048 -_080A0FD6: - strh r0, [r2] - adds r1, 0x1 - lsls r1, 1 - add r1, sp - adds r0, 0x1 - strh r0, [r1] -_080A0FE2: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _080A0F02 - ldr r1, _080A1038 @ =0x0600e016 - ldr r0, _080A103C @ =0x040000d4 - mov r2, sp - str r2, [r0] - str r1, [r0, 0x4] - ldr r1, _080A1040 @ =0x80000008 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - movs r3, 0 -_080A0FFE: - lsls r0, r3, 1 - mov r4, sp - adds r1, r4, r0 - ldrh r0, [r1] - adds r0, 0x10 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x7 - bls _080A0FFE - ldr r1, _080A1044 @ =0x0600e056 - ldr r0, _080A103C @ =0x040000d4 - str r4, [r0] - str r1, [r0, 0x4] - ldr r1, _080A1040 @ =0x80000008 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A1034: .4byte 0x00004048 -_080A1038: .4byte 0x0600e016 -_080A103C: .4byte 0x040000d4 -_080A1040: .4byte 0x80000008 -_080A1044: .4byte 0x0600e056 - thumb_func_end sub_80A0EE8 - - thumb_func_start sub_80A1048 -sub_80A1048: @ 80A1048 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r0, 2 - add r0, r8 - lsls r0, 3 - ldr r1, _080A10A0 @ =gTasks + 0x8 - adds r6, r0, r1 - ldrh r0, [r6] - ldrh r1, [r6, 0x2] - adds r0, r1 - strh r0, [r6, 0x2] - lsls r0, 16 - cmp r0, 0 - bne _080A106E - b _080A1224 -_080A106E: - movs r5, 0x2 - ldrsh r2, [r6, r5] - ldr r0, _080A10A4 @ =0x0000024a - subs r0, r2 - lsls r0, 1 - ldr r1, _080A10A8 @ =gUnknown_08E73508 - adds r4, r0, r1 - ldr r5, _080A10AC @ =0x0600e480 - lsls r2, 1 - movs r0, 0x80 - lsls r0, 5 - adds r7, r1, 0 - cmp r2, r0 - bhi _080A10B4 - ldr r0, _080A10B0 @ =0x040000d4 - str r4, [r0] - str r5, [r0, 0x4] - lsrs r1, r2, 1 - movs r2, 0x80 - lsls r2, 24 - orrs r1, r2 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - b _080A10E0 - .align 2, 0 -_080A10A0: .4byte gTasks + 0x8 -_080A10A4: .4byte 0x0000024a -_080A10A8: .4byte gUnknown_08E73508 -_080A10AC: .4byte 0x0600e480 -_080A10B0: .4byte 0x040000d4 -_080A10B4: - ldr r3, _080A110C @ =0x040000d4 - str r4, [r3] - str r5, [r3, 0x4] - ldr r0, _080A1110 @ =0x80000800 - str r0, [r3, 0x8] - ldr r0, [r3, 0x8] - movs r0, 0x80 - lsls r0, 5 - adds r4, r0 - adds r5, r0 - ldr r1, _080A1114 @ =0xfffff000 - adds r2, r1 - cmp r2, r0 - bhi _080A10B4 - str r4, [r3] - str r5, [r3, 0x4] - lsrs r0, r2, 1 - movs r1, 0x80 - lsls r1, 24 - orrs r0, r1 - str r0, [r3, 0x8] - ldr r0, [r3, 0x8] -_080A10E0: - movs r5, 0x2 - ldrsh r0, [r6, r5] - ldr r1, _080A1118 @ =0x0000026a - subs r1, r0 - lsls r1, 1 - adds r3, r1, r7 - ldr r4, _080A111C @ =0x0600e4c0 - lsls r1, r0, 1 - movs r0, 0x80 - lsls r0, 5 - cmp r1, r0 - bhi _080A1120 - ldr r0, _080A110C @ =0x040000d4 - str r3, [r0] - str r4, [r0, 0x4] - lsrs r1, 1 - movs r2, 0x80 - lsls r2, 24 - orrs r1, r2 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - b _080A114C - .align 2, 0 -_080A110C: .4byte 0x040000d4 -_080A1110: .4byte 0x80000800 -_080A1114: .4byte 0xfffff000 -_080A1118: .4byte 0x0000026a -_080A111C: .4byte 0x0600e4c0 -_080A1120: - ldr r2, _080A1178 @ =0x040000d4 - str r3, [r2] - str r4, [r2, 0x4] - ldr r0, _080A117C @ =0x80000800 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r0, 0x80 - lsls r0, 5 - adds r3, r0 - adds r4, r0 - ldr r5, _080A1180 @ =0xfffff000 - adds r1, r5 - cmp r1, r0 - bhi _080A1120 - str r3, [r2] - str r4, [r2, 0x4] - lsrs r0, r1, 1 - movs r1, 0x80 - lsls r1, 24 - orrs r0, r1 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] -_080A114C: - movs r1, 0x2 - ldrsh r0, [r6, r1] - ldr r1, _080A1184 @ =0x0000024a - subs r1, r0 - lsls r1, 1 - adds r3, r1, r7 - ldr r4, _080A1188 @ =0x0600ec80 - lsls r1, r0, 1 - movs r0, 0x80 - lsls r0, 5 - cmp r1, r0 - bhi _080A118C - ldr r0, _080A1178 @ =0x040000d4 - str r3, [r0] - str r4, [r0, 0x4] - lsrs r1, 1 - movs r2, 0x80 - lsls r2, 24 - orrs r1, r2 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - b _080A11B8 - .align 2, 0 -_080A1178: .4byte 0x040000d4 -_080A117C: .4byte 0x80000800 -_080A1180: .4byte 0xfffff000 -_080A1184: .4byte 0x0000024a -_080A1188: .4byte 0x0600ec80 -_080A118C: - ldr r2, _080A11E4 @ =0x040000d4 - str r3, [r2] - str r4, [r2, 0x4] - ldr r0, _080A11E8 @ =0x80000800 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r0, 0x80 - lsls r0, 5 - adds r3, r0 - adds r4, r0 - ldr r5, _080A11EC @ =0xfffff000 - adds r1, r5 - cmp r1, r0 - bhi _080A118C - str r3, [r2] - str r4, [r2, 0x4] - lsrs r0, r1, 1 - movs r1, 0x80 - lsls r1, 24 - orrs r0, r1 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] -_080A11B8: - movs r1, 0x2 - ldrsh r0, [r6, r1] - ldr r1, _080A11F0 @ =0x0000026a - subs r1, r0 - lsls r1, 1 - adds r3, r1, r7 - ldr r4, _080A11F4 @ =0x0600ecc0 - lsls r1, r0, 1 - movs r0, 0x80 - lsls r0, 5 - cmp r1, r0 - bhi _080A11F8 - ldr r0, _080A11E4 @ =0x040000d4 - str r3, [r0] - str r4, [r0, 0x4] - lsrs r1, 1 - movs r2, 0x80 - lsls r2, 24 - orrs r1, r2 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - b _080A1224 - .align 2, 0 -_080A11E4: .4byte 0x040000d4 -_080A11E8: .4byte 0x80000800 -_080A11EC: .4byte 0xfffff000 -_080A11F0: .4byte 0x0000026a -_080A11F4: .4byte 0x0600ecc0 -_080A11F8: - ldr r2, _080A12B0 @ =0x040000d4 - str r3, [r2] - str r4, [r2, 0x4] - ldr r0, _080A12B4 @ =0x80000800 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r0, 0x80 - lsls r0, 5 - adds r3, r0 - adds r4, r0 - ldr r5, _080A12B8 @ =0xfffff000 - adds r1, r5 - cmp r1, r0 - bhi _080A11F8 - str r3, [r2] - str r4, [r2, 0x4] - lsrs r0, r1, 1 - movs r1, 0x80 - lsls r1, 24 - orrs r0, r1 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] -_080A1224: - ldrb r4, [r6, 0x2] - ldrh r7, [r6, 0x2] - ldrh r0, [r6] - mov r12, r0 - cmp r4, 0x9 - bhi _080A1272 - adds r3, r6, 0x4 - ldr r2, _080A12B0 @ =0x040000d4 - ldr r5, _080A12BC @ =0x80000001 -_080A1236: - lsls r1, r4, 1 - ldr r6, _080A12C0 @ =0x0600e480 - adds r0, r1, r6 - str r3, [r2] - str r0, [r2, 0x4] - str r5, [r2, 0x8] - ldr r0, [r2, 0x8] - adds r6, 0x40 - adds r0, r1, r6 - str r3, [r2] - str r0, [r2, 0x4] - str r5, [r2, 0x8] - ldr r0, [r2, 0x8] - ldr r6, _080A12C4 @ =0x0600ec80 - adds r0, r1, r6 - str r3, [r2] - str r0, [r2, 0x4] - str r5, [r2, 0x8] - ldr r0, [r2, 0x8] - ldr r0, _080A12C8 @ =0x0600ecc0 - adds r1, r0 - str r3, [r2] - str r1, [r2, 0x4] - str r5, [r2, 0x8] - ldr r0, [r2, 0x8] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _080A1236 -_080A1272: - mov r1, r12 - lsls r0, r1, 16 - cmp r0, 0 - beq _080A1286 - lsls r0, r7, 16 - asrs r0, 16 - cmp r0, 0 - ble _080A1286 - cmp r0, 0x9 - ble _080A12A4 -_080A1286: - lsls r0, r7, 16 - asrs r0, 16 - cmp r0, 0x9 - ble _080A129A - ldr r0, _080A12CC @ =gOtherText_Status - movs r1, 0xD - movs r2, 0x1 - movs r3, 0x12 - bl sub_80A1FF8 -_080A129A: - bl sub_80A1D18 - mov r0, r8 - bl DestroyTask -_080A12A4: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A12B0: .4byte 0x040000d4 -_080A12B4: .4byte 0x80000800 -_080A12B8: .4byte 0xfffff000 -_080A12BC: .4byte 0x80000001 -_080A12C0: .4byte 0x0600e480 -_080A12C4: .4byte 0x0600ec80 -_080A12C8: .4byte 0x0600ecc0 -_080A12CC: .4byte gOtherText_Status - thumb_func_end sub_80A1048 - - thumb_func_start sub_80A12D0 -sub_80A12D0: @ 80A12D0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - movs r1, 0x12 - movs r2, 0x5 - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r0, 0x1D - bl sub_80A18E4 - ldr r0, _080A1310 @ =sub_80A1048 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080A1314 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0, r1 - lsls r4, 24 - asrs r4, 24 - strh r4, [r1, 0x8] - cmp r4, 0 - bge _080A1318 - movs r0, 0xA - b _080A131A - .align 2, 0 -_080A1310: .4byte sub_80A1048 -_080A1314: .4byte gTasks -_080A1318: - movs r0, 0 -_080A131A: - strh r0, [r1, 0xA] - ldr r0, _080A1330 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0xC] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1330: .4byte gTasks - thumb_func_end sub_80A12D0 - - thumb_func_start sub_80A1334 -sub_80A1334: @ 80A1334 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r0, 2 - add r0, r10 - lsls r0, 3 - ldr r1, _080A13E4 @ =gTasks + 0x8 - adds r7, r0, r1 - ldrh r0, [r7] - ldrh r1, [r7, 0x2] - adds r0, r1 - strh r0, [r7, 0x2] - lsls r0, 16 - asrs r1, r0, 16 - movs r0, 0 - cmp r1, 0 - blt _080A136A - movs r0, 0xA - cmp r1, 0xA - bgt _080A136A - ldrh r0, [r7, 0x2] -_080A136A: - lsls r0, 16 - asrs r2, r0, 16 - mov r9, r0 - cmp r2, 0 - ble _080A13A6 - movs r0, 0xA - subs r0, r2 - lsls r0, 1 - ldr r1, _080A13E8 @ =0x06005b40 - adds r4, r0, r1 - movs r5, 0 - adds r6, r2, 0 - ldr r0, _080A13EC @ =0x001fffff - mov r8, r0 -_080A1386: - adds r0, r5, 0 - adds r0, 0xD - lsls r0, 6 - ldr r1, _080A13F0 @ =gUnknown_08E73E88 - adds r0, r1 - adds r1, r4, 0 - mov r2, r8 - ands r2, r6 - bl CpuSet - adds r4, 0x40 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x6 - bls _080A1386 -_080A13A6: - mov r1, r9 - asrs r2, r1, 16 - cmp r2, 0x9 - bgt _080A13F4 - ldr r4, _080A13E8 @ =0x06005b40 - movs r5, 0 - mov r8, sp - movs r0, 0xA - subs r6, r0, r2 - ldr r0, _080A13EC @ =0x001fffff - ands r6, r0 - movs r0, 0x80 - lsls r0, 17 - mov r9, r0 -_080A13C2: - ldrh r0, [r7, 0x4] - mov r1, r8 - strh r0, [r1] - mov r0, sp - adds r1, r4, 0 - mov r2, r9 - orrs r2, r6 - bl CpuSet - adds r4, 0x40 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x6 - bls _080A13C2 - b _080A1400 - .align 2, 0 -_080A13E4: .4byte gTasks + 0x8 -_080A13E8: .4byte 0x06005b40 -_080A13EC: .4byte 0x001fffff -_080A13F0: .4byte gUnknown_08E73E88 -_080A13F4: - movs r0, 0 - movs r1, 0x13 - movs r2, 0x9 - movs r3, 0x13 - bl MenuZeroFillWindowRect -_080A1400: - movs r1, 0 - ldrsh r0, [r7, r1] - cmp r0, 0 - beq _080A1410 - movs r1, 0x2 - ldrsh r0, [r7, r1] - cmp r0, 0 - bge _080A144A -_080A1410: - ldr r4, _080A1480 @ =0x02018000 - ldrb r0, [r4, 0xB] - cmp r0, 0x2 - bne _080A1444 - movs r0, 0 - movs r1, 0xE - movs r2, 0x9 - movs r3, 0x12 - bl MenuZeroFillWindowRect - adds r4, 0x10 - adds r0, r4, 0 - bl sub_80A0958 - adds r0, r4, 0 - bl sub_80A1CD8 - lsls r0, 24 - cmp r0, 0 - beq _080A1444 - ldr r0, _080A1484 @ =gOtherText_Status - movs r1, 0xD - movs r2, 0x1 - movs r3, 0x12 - bl sub_80A1FF8 -_080A1444: - mov r0, r10 - bl DestroyTask -_080A144A: - movs r1, 0x2 - ldrsh r0, [r7, r1] - cmp r0, 0x9 - ble _080A1470 - ldr r4, _080A1480 @ =0x02018000 - ldrb r0, [r4, 0xB] - cmp r0, 0x2 - bne _080A1460 - ldrb r0, [r7, 0x6] - bl sub_80A00F4 -_080A1460: - adds r0, r4, 0 - adds r0, 0x10 - adds r1, r7, 0x6 - bl sub_80A0428 - mov r0, r10 - bl DestroyTask -_080A1470: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A1480: .4byte 0x02018000 -_080A1484: .4byte gOtherText_Status - thumb_func_end sub_80A1334 - - thumb_func_start sub_80A1488 -sub_80A1488: @ 80A1488 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - ldr r0, _080A14DC @ =0x02018000 - ldrb r0, [r0, 0xB] - cmp r0, 0x2 - bne _080A14A6 - movs r0, 0 - movs r1, 0xE - movs r2, 0x9 - movs r3, 0x13 - bl MenuZeroFillWindowRect -_080A14A6: - ldr r5, _080A14E0 @ =sub_80A1334 - adds r0, r5, 0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xFF - bne _080A14C2 - adds r0, r5, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 -_080A14C2: - ldr r1, _080A14E4 @ =gTasks - lsls r2, r4, 2 - adds r0, r2, r4 - lsls r0, 3 - adds r3, r0, r1 - lsls r0, r6, 24 - asrs r0, 24 - strh r0, [r3, 0x8] - cmp r0, 0 - bge _080A14E8 - movs r0, 0xA - b _080A14EA - .align 2, 0 -_080A14DC: .4byte 0x02018000 -_080A14E0: .4byte sub_80A1334 -_080A14E4: .4byte gTasks -_080A14E8: - movs r0, 0 -_080A14EA: - strh r0, [r3, 0xA] - adds r0, r2, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - strh r7, [r0, 0xE] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A1488 - - thumb_func_start sub_80A1500 -sub_80A1500: @ 80A1500 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r0, 2 - add r0, r10 - lsls r0, 3 - ldr r1, _080A15B0 @ =gTasks + 0x8 - adds r7, r0, r1 - ldrh r0, [r7] - ldrh r1, [r7, 0x2] - adds r0, r1 - strh r0, [r7, 0x2] - lsls r0, 16 - asrs r1, r0, 16 - movs r0, 0 - cmp r1, 0 - blt _080A1536 - movs r0, 0xA - cmp r1, 0xA - bgt _080A1536 - ldrh r0, [r7, 0x2] -_080A1536: - lsls r0, 16 - asrs r2, r0, 16 - mov r9, r0 - cmp r2, 0 - ble _080A1572 - movs r0, 0xA - subs r0, r2 - lsls r0, 1 - ldr r1, _080A15B4 @ =0x06006b40 - adds r4, r0, r1 - movs r5, 0 - adds r6, r2, 0 - ldr r0, _080A15B8 @ =0x001fffff - mov r8, r0 -_080A1552: - adds r0, r5, 0 - adds r0, 0xD - lsls r0, 6 - ldr r1, _080A15BC @ =gUnknown_08E74688 - adds r0, r1 - adds r1, r4, 0 - mov r2, r8 - ands r2, r6 - bl CpuSet - adds r4, 0x40 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x6 - bls _080A1552 -_080A1572: - mov r1, r9 - asrs r2, r1, 16 - cmp r2, 0x9 - bgt _080A15C0 - ldr r4, _080A15B4 @ =0x06006b40 - movs r5, 0 - mov r8, sp - movs r0, 0xA - subs r6, r0, r2 - ldr r0, _080A15B8 @ =0x001fffff - ands r6, r0 - movs r0, 0x80 - lsls r0, 17 - mov r9, r0 -_080A158E: - ldrh r0, [r7, 0x4] - mov r1, r8 - strh r0, [r1] - mov r0, sp - adds r1, r4, 0 - mov r2, r9 - orrs r2, r6 - bl CpuSet - adds r4, 0x40 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x6 - bls _080A158E - b _080A15CC - .align 2, 0 -_080A15B0: .4byte gTasks + 0x8 -_080A15B4: .4byte 0x06006b40 -_080A15B8: .4byte 0x001fffff -_080A15BC: .4byte gUnknown_08E74688 -_080A15C0: - movs r0, 0 - movs r1, 0x13 - movs r2, 0x9 - movs r3, 0x13 - bl MenuZeroFillWindowRect -_080A15CC: - movs r1, 0 - ldrsh r0, [r7, r1] - cmp r0, 0 - beq _080A15DC - movs r1, 0x2 - ldrsh r0, [r7, r1] - cmp r0, 0 - bge _080A1616 -_080A15DC: - ldr r4, _080A164C @ =0x02018000 - ldrb r0, [r4, 0xB] - cmp r0, 0x3 - bne _080A1610 - movs r0, 0 - movs r1, 0xE - movs r2, 0x9 - movs r3, 0x12 - bl MenuZeroFillWindowRect - adds r4, 0x10 - adds r0, r4, 0 - bl sub_80A0958 - adds r0, r4, 0 - bl sub_80A1CD8 - lsls r0, 24 - cmp r0, 0 - beq _080A1610 - ldr r0, _080A1650 @ =gOtherText_Status - movs r1, 0xD - movs r2, 0x1 - movs r3, 0x12 - bl sub_80A1FF8 -_080A1610: - mov r0, r10 - bl DestroyTask -_080A1616: - movs r1, 0x2 - ldrsh r0, [r7, r1] - cmp r0, 0x9 - ble _080A163C - ldr r4, _080A164C @ =0x02018000 - ldrb r0, [r4, 0xB] - cmp r0, 0x3 - bne _080A162C - ldrb r0, [r7, 0x6] - bl sub_80A00F4 -_080A162C: - adds r0, r4, 0 - adds r0, 0x10 - adds r1, r7, 0x6 - bl sub_80A0428 - mov r0, r10 - bl DestroyTask -_080A163C: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A164C: .4byte 0x02018000 -_080A1650: .4byte gOtherText_Status - thumb_func_end sub_80A1500 - - thumb_func_start sub_80A1654 -sub_80A1654: @ 80A1654 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - ldr r0, _080A16A8 @ =0x02018000 - ldrb r0, [r0, 0xB] - cmp r0, 0x3 - bne _080A1672 - movs r0, 0 - movs r1, 0xE - movs r2, 0x9 - movs r3, 0x13 - bl MenuZeroFillWindowRect -_080A1672: - ldr r5, _080A16AC @ =sub_80A1500 - adds r0, r5, 0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xFF - bne _080A168E - adds r0, r5, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 -_080A168E: - ldr r1, _080A16B0 @ =gTasks - lsls r2, r4, 2 - adds r0, r2, r4 - lsls r0, 3 - adds r3, r0, r1 - lsls r0, r6, 24 - asrs r0, 24 - strh r0, [r3, 0x8] - cmp r0, 0 - bge _080A16B4 - movs r0, 0xA - b _080A16B6 - .align 2, 0 -_080A16A8: .4byte 0x02018000 -_080A16AC: .4byte sub_80A1500 -_080A16B0: .4byte gTasks -_080A16B4: - movs r0, 0 -_080A16B6: - strh r0, [r3, 0xA] - adds r0, r2, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - strh r7, [r0, 0xE] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A1654 - - thumb_func_start sub_80A16CC -sub_80A16CC: @ 80A16CC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, _080A1724 @ =0x06006ad4 - mov r12, r0 - mov r1, r9 - cmp r1, 0 - bne _080A172C - movs r5, 0 - ldr r7, _080A1728 @ =gUnknown_08E94510 - movs r0, 0x80 - lsls r0, 5 - adds r6, r0, 0 - movs r1, 0x40 - adds r1, r7 - mov r8, r1 -_080A16F4: - lsls r2, r5, 1 - mov r0, r12 - adds r3, r2, r0 - adds r4, r2, r7 - ldrh r1, [r4] - adds r0, r6, r1 - strh r0, [r3] - adds r1, r3, 0 - adds r1, 0x40 - ldrh r4, [r4] - adds r0, r6, r4 - strh r0, [r1] - adds r3, 0x80 - add r2, r8 - ldrh r2, [r2] - adds r0, r6, r2 - strh r0, [r3] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x13 - bls _080A16F4 - b _080A1768 - .align 2, 0 -_080A1724: .4byte 0x06006ad4 -_080A1728: .4byte gUnknown_08E94510 -_080A172C: - movs r5, 0 - ldr r6, _080A17B0 @ =gUnknown_08E94550 - movs r7, 0x80 - lsls r7, 5 - adds r4, r7, 0 - movs r0, 0x40 - adds r0, r6 - mov r8, r0 -_080A173C: - lsls r1, r5, 1 - mov r7, r12 - adds r2, r1, r7 - adds r0, r1, r6 - ldrh r0, [r0] - adds r0, r4, r0 - strh r0, [r2] - adds r3, r2, 0 - adds r3, 0x40 - add r1, r8 - ldrh r7, [r1] - adds r0, r4, r7 - strh r0, [r3] - adds r2, 0x80 - ldrh r1, [r1] - adds r0, r4, r1 - strh r0, [r2] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x13 - bls _080A173C -_080A1768: - ldr r0, _080A17B4 @ =0x06005ad4 - mov r12, r0 - mov r1, r9 - cmp r1, 0 - bne _080A17BC - movs r5, 0 - ldr r7, _080A17B8 @ =gUnknown_08E94510 - movs r0, 0xC0 - lsls r0, 6 - adds r6, r0, 0 - movs r1, 0x40 - adds r1, r7 - mov r8, r1 -_080A1782: - lsls r2, r5, 1 - mov r0, r12 - adds r3, r2, r0 - adds r4, r2, r7 - ldrh r1, [r4] - adds r0, r6, r1 - strh r0, [r3] - adds r1, r3, 0 - adds r1, 0x40 - ldrh r4, [r4] - adds r0, r6, r4 - strh r0, [r1] - adds r3, 0x80 - add r2, r8 - ldrh r2, [r2] - adds r0, r6, r2 - strh r0, [r3] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x13 - bls _080A1782 - b _080A17F8 - .align 2, 0 -_080A17B0: .4byte gUnknown_08E94550 -_080A17B4: .4byte 0x06005ad4 -_080A17B8: .4byte gUnknown_08E94510 -_080A17BC: - movs r5, 0 - ldr r6, _080A1804 @ =gUnknown_08E94550 - movs r7, 0xC0 - lsls r7, 6 - adds r4, r7, 0 - movs r0, 0x40 - adds r0, r6 - mov r8, r0 -_080A17CC: - lsls r1, r5, 1 - mov r7, r12 - adds r2, r1, r7 - adds r0, r1, r6 - ldrh r0, [r0] - adds r0, r4, r0 - strh r0, [r2] - adds r3, r2, 0 - adds r3, 0x40 - add r1, r8 - ldrh r7, [r1] - adds r0, r4, r7 - strh r0, [r3] - adds r2, 0x80 - ldrh r1, [r1] - adds r0, r4, r1 - strh r0, [r2] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x13 - bls _080A17CC -_080A17F8: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A1804: .4byte gUnknown_08E94550 - thumb_func_end sub_80A16CC - - thumb_func_start sub_80A1808 -sub_80A1808: @ 80A1808 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r1, 0x41 - bl GetMonData - adds r6, r0, 0 - lsls r6, 16 - lsrs r6, 16 - ldr r0, _080A1860 @ =gUnknown_02024E8C - movs r1, 0x28 - movs r2, 0x40 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r4, r0, 4 - add r4, r8 - lsls r4, 2 - ldr r5, _080A1864 @ =gSprites - adds r7, r4, r5 - adds r0, r7, 0 - bl FreeSpriteOamMatrix - strh r6, [r7, 0x2E] - adds r5, 0x1C - adds r4, r5 - ldr r0, _080A1868 @ =sub_80A1888 - str r0, [r4] - adds r0, r6, 0 - bl sub_8040A3C - lsls r0, 24 - cmp r0, 0 - bne _080A186C - adds r0, r7, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - b _080A187A - .align 2, 0 -_080A1860: .4byte gUnknown_02024E8C -_080A1864: .4byte gSprites -_080A1868: .4byte sub_80A1888 -_080A186C: - adds r2, r7, 0 - adds r2, 0x3F - ldrb r1, [r2] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080A187A: - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80A1808 - - thumb_func_start sub_80A1888 -sub_80A1888: @ 80A1888 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080A18B8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080A18B0 - ldr r0, _080A18BC @ =SpriteCallbackDummy - str r0, [r4, 0x1C] - ldr r0, _080A18C0 @ =0x02018010 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _080A18B0 - ldrh r0, [r4, 0x2E] - movs r1, 0 - bl PlayCry1 -_080A18B0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A18B8: .4byte gPaletteFade -_080A18BC: .4byte SpriteCallbackDummy -_080A18C0: .4byte 0x02018010 - thumb_func_end sub_80A1888 - - thumb_func_start sub_80A18C4 -sub_80A18C4: @ 80A18C4 - push {lr} - movs r1, 0 - ldr r3, _080A18E0 @ =0x0201a000 - movs r2, 0xFF -_080A18CC: - adds r0, r1, r3 - strb r2, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1D - bls _080A18CC - pop {r0} - bx r0 - .align 2, 0 -_080A18E0: .4byte 0x0201a000 - thumb_func_end sub_80A18C4 - - thumb_func_start sub_80A18E4 -sub_80A18E4: @ 80A18E4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080A1910 @ =0x0201a000 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0xFF - beq _080A1908 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080A1914 @ =gSprites - adds r0, r1 - bl DestroySprite - movs r0, 0xFF - strb r0, [r4] -_080A1908: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1910: .4byte 0x0201a000 -_080A1914: .4byte gSprites - thumb_func_end sub_80A18E4 - - thumb_func_start sub_80A1918 -sub_80A1918: @ 80A1918 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _080A1948 @ =gSprites - ldr r2, _080A194C @ =0x0201a000 - adds r0, r2 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - adds r2, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - bx lr - .align 2, 0 -_080A1948: .4byte gSprites -_080A194C: .4byte 0x0201a000 - thumb_func_end sub_80A1918 - - thumb_func_start sub_80A1950 -sub_80A1950: @ 80A1950 - push {r4,r5,lr} - movs r5, 0 -_080A1954: - ldr r0, _080A1984 @ =0x0201a000 - adds r4, r5, r0 - ldrb r0, [r4] - cmp r0, 0xFF - bne _080A196C - ldr r0, _080A1988 @ =gSpriteTemplate_83C11C0 - movs r1, 0 - movs r2, 0 - movs r3, 0x2 - bl CreateSprite - strb r0, [r4] -_080A196C: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80A1918 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bls _080A1954 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A1984: .4byte 0x0201a000 -_080A1988: .4byte gSpriteTemplate_83C11C0 - thumb_func_end sub_80A1950 - - thumb_func_start sub_80A198C -sub_80A198C: @ 80A198C - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - mov r10, r3 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - mov r0, r10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r1, _080A1A24 @ =0x0201a000 - mov r8, r1 - add r8, r10 - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080A1A28 @ =gSprites - mov r9, r1 - add r0, r9 - adds r1, r4, 0 - bl StartSpriteAnim - mov r1, r8 - ldrb r0, [r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r9 - ldr r0, _080A1A2C @ =gUnknown_083C11D8 - adds r4, r0 - ldrb r2, [r4] - lsls r2, 4 - ldrb r3, [r1, 0x5] - movs r0, 0xF - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - adds r5, 0x10 - strh r5, [r0, 0x20] - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - adds r6, 0x8 - strh r6, [r0, 0x22] - mov r0, r10 - movs r1, 0 - bl sub_80A1918 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A1A24: .4byte 0x0201a000 -_080A1A28: .4byte gSprites -_080A1A2C: .4byte gUnknown_083C11D8 - thumb_func_end sub_80A198C - - thumb_func_start sub_80A1A30 -sub_80A1A30: @ 80A1A30 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - mov r9, r0 - ldr r1, _080A1A98 @ =0x02018000 - ldrb r0, [r1, 0xB] - cmp r0, 0x1 - bls _080A1B0A - cmp r4, 0x9 - bne _080A1A52 - movs r3, 0x1 - mov r9, r3 -_080A1A52: - movs r5, 0 - movs r0, 0x80 - lsls r0, 6 - adds r0, r1 - mov r8, r0 - ldr r6, _080A1A9C @ =gSprites - mov r10, r5 -_080A1A60: - lsls r1, r5, 20 - movs r3, 0xB0 - lsls r3, 15 - adds r1, r3 - asrs r1, 16 - ldr r0, _080A1AA0 @ =gSpriteTemplate_83C1280 - movs r2, 0x28 - mov r3, r9 - bl CreateSprite - adds r1, r4, r5 - mov r3, r8 - adds r2, r1, r3 - strb r0, [r2] - adds r7, r1, 0 - cmp r5, 0 - bne _080A1AA4 - adds r0, r4, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x4 - bl StartSpriteAnim - b _080A1AD0 - .align 2, 0 -_080A1A98: .4byte 0x02018000 -_080A1A9C: .4byte gSprites -_080A1AA0: .4byte gSpriteTemplate_83C1280 -_080A1AA4: - cmp r5, 0x9 - bne _080A1AC0 - adds r0, r4, 0 - adds r0, 0x9 - add r0, r8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x5 - bl StartSpriteAnim - b _080A1AD0 -_080A1AC0: - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x6 - bl StartSpriteAnim -_080A1AD0: - mov r0, r8 - adds r2, r7, r0 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r6, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _080A1B18 @ =sub_80A1BC0 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r4, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - mov r1, r10 - strh r1, [r0, 0x30] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x9 - bls _080A1A60 -_080A1B0A: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A1B18: .4byte sub_80A1BC0 - thumb_func_end sub_80A1A30 - - thumb_func_start sub_80A1B1C -sub_80A1B1C: @ 80A1B1C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 -_080A1B24: - adds r0, r5, r4 - lsls r0, 24 - lsrs r0, 24 - bl sub_80A18E4 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _080A1B24 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A1B1C - - thumb_func_start sub_80A1B40 -sub_80A1B40: @ 80A1B40 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, r7, 1 - adds r1, r7 - lsls r1, 24 - ldr r0, _080A1BB4 @ =0x0201a009 - ldrb r2, [r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - ldr r2, _080A1BB8 @ =gSprites - adds r0, r2 - lsrs r7, r1, 24 - movs r2, 0x80 - lsls r2, 19 - adds r1, r2 - lsrs r1, 24 - bl StartSpriteAnim - movs r4, 0 - adds r0, r7, 0x6 - lsls r0, 24 - mov r8, r0 -_080A1B74: - ldr r6, _080A1BBC @ =0x0201a00a - adds r0, r4, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, _080A1BB8 @ =gSprites - adds r0, r5 - mov r2, r8 - lsrs r1, r2, 24 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _080A1B74 - ldrb r1, [r6, 0x8] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r1, r7, 0x5 - lsls r1, 24 - lsrs r1, 24 - bl StartSpriteAnim - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A1BB4: .4byte 0x0201a009 -_080A1BB8: .4byte gSprites -_080A1BBC: .4byte 0x0201a00a - thumb_func_end sub_80A1B40 - - thumb_func_start sub_80A1BC0 -sub_80A1BC0: @ 80A1BC0 - push {lr} - adds r2, r0, 0 - adds r0, 0x2A - ldrb r0, [r0] - subs r0, 0x4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bhi _080A1BF8 - ldrh r0, [r2, 0x30] - adds r0, 0x1 - movs r1, 0x1F - ands r0, r1 - strh r0, [r2, 0x30] - cmp r0, 0x18 - ble _080A1BEC - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - b _080A1C06 -_080A1BEC: - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - b _080A1C04 -_080A1BF8: - movs r0, 0 - strh r0, [r2, 0x30] - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - subs r0, 0x5 -_080A1C04: - ands r0, r1 -_080A1C06: - strb r0, [r3] - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0x9 - bne _080A1C1C - ldr r0, _080A1C18 @ =0x02018000 - adds r0, 0x79 - b _080A1C20 - .align 2, 0 -_080A1C18: .4byte 0x02018000 -_080A1C1C: - ldr r0, _080A1C2C @ =0x02018000 - adds r0, 0x7A -_080A1C20: - ldrb r0, [r0] - lsls r0, 4 - strh r0, [r2, 0x26] - pop {r0} - bx r0 - .align 2, 0 -_080A1C2C: .4byte 0x02018000 - thumb_func_end sub_80A1BC0 - - thumb_func_start sub_80A1C30 -sub_80A1C30: @ 80A1C30 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 25 - lsrs r3, r0, 24 - adds r4, r3, 0 - adds r0, r3, 0 - adds r0, 0xA - cmp r3, r0 - bge _080A1C82 - ldr r5, _080A1C88 @ =gSprites - movs r7, 0x5 - negs r7, r7 - ldr r6, _080A1C8C @ =0x0201a009 -_080A1C50: - adds r2, r3, r6 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0 - strh r1, [r0, 0x30] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r7, 0 - ands r0, r2 - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r4, 0 - adds r0, 0xA - cmp r3, r0 - blt _080A1C50 -_080A1C82: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A1C88: .4byte gSprites -_080A1C8C: .4byte 0x0201a009 - thumb_func_end sub_80A1C30 - - thumb_func_start pokemon_ailments_get_primary -pokemon_ailments_get_primary: @ 80A1C90 - push {lr} - adds r1, r0, 0 - movs r0, 0x88 - ands r0, r1 - cmp r0, 0 - beq _080A1CA0 - movs r0, 0x1 - b _080A1CD2 -_080A1CA0: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080A1CAC - movs r0, 0x2 - b _080A1CD2 -_080A1CAC: - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - beq _080A1CB8 - movs r0, 0x3 - b _080A1CD2 -_080A1CB8: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080A1CC4 - movs r0, 0x4 - b _080A1CD2 -_080A1CC4: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _080A1CD0 - movs r0, 0 - b _080A1CD2 -_080A1CD0: - movs r0, 0x5 -_080A1CD2: - pop {r1} - bx r1 - thumb_func_end pokemon_ailments_get_primary - - thumb_func_start sub_80A1CD8 -sub_80A1CD8: @ 80A1CD8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _080A1CEA - movs r0, 0x7 - b _080A1D12 -_080A1CEA: - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - bl pokemon_ailments_get_primary - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080A1D12 - adds r0, r4, 0 - movs r1, 0 - bl CheckPartyPokerus - lsls r0, 24 - cmp r0, 0 - bne _080A1D10 - movs r0, 0 - b _080A1D12 -_080A1D10: - movs r0, 0x6 -_080A1D12: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80A1CD8 - - thumb_func_start sub_80A1D18 -sub_80A1D18: @ 80A1D18 - push {r4,r5,lr} - sub sp, 0x64 - mov r0, sp - bl sub_809F678 - mov r0, sp - bl sub_80A1CD8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _080A1D58 - subs r0, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080A1D50 @ =0x0201a01d - ldrb r0, [r4] - cmp r0, 0xFF - bne _080A1D60 - ldr r0, _080A1D54 @ =gSpriteTemplate_83C1304 - movs r1, 0x40 - movs r2, 0x98 - movs r3, 0 - bl CreateSprite - strb r0, [r4] - b _080A1D60 - .align 2, 0 -_080A1D50: .4byte 0x0201a01d -_080A1D54: .4byte gSpriteTemplate_83C1304 -_080A1D58: - movs r0, 0x1D - bl sub_80A18E4 - b _080A1D74 -_080A1D60: - ldr r0, _080A1D7C @ =0x0201a01d - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080A1D80 @ =gSprites - adds r0, r1 - adds r1, r5, 0 - bl StartSpriteAnim -_080A1D74: - add sp, 0x64 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A1D7C: .4byte 0x0201a01d -_080A1D80: .4byte gSprites - thumb_func_end sub_80A1D18 - - thumb_func_start sub_80A1D84 -sub_80A1D84: @ 80A1D84 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r1, _080A1DC0 @ =0x00007533 - ldr r2, _080A1DC4 @ =gSummaryScreenMonMarkingsPalette - adds r0, r1, 0 - bl sub_80F7920 - adds r4, r0, 0 - ldr r6, _080A1DC8 @ =gUnknown_020384F4 - str r4, [r6] - cmp r4, 0 - beq _080A1DBA - adds r0, r5, 0 - movs r1, 0x8 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldr r1, [r6] - movs r0, 0x3C - strh r0, [r1, 0x20] - movs r0, 0x1A - strh r0, [r1, 0x22] -_080A1DBA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A1DC0: .4byte 0x00007533 -_080A1DC4: .4byte gSummaryScreenMonMarkingsPalette -_080A1DC8: .4byte gUnknown_020384F4 - thumb_func_end sub_80A1D84 - - thumb_func_start sub_80A1DCC -sub_80A1DCC: @ 80A1DCC - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080A1DE4 @ =gUnknown_020384F4 - ldr r0, [r0] - bl DestroySprite - adds r0, r4, 0 - bl sub_80A1D84 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1DE4: .4byte gUnknown_020384F4 - thumb_func_end sub_80A1DCC - - thumb_func_start sub_80A1DE8 -sub_80A1DE8: @ 80A1DE8 - push {r4,lr} - movs r1, 0x26 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl ball_number_to_ball_processing_index - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_80478DC - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - ldr r1, _080A1E48 @ =gSpriteTemplate_820AAB4 - adds r0, r1 - movs r1, 0x6 - movs r2, 0x88 - movs r3, 0 - bl CreateSprite - ldr r2, _080A1E4C @ =0x02018000 - strb r0, [r2, 0xD] - ldr r3, _080A1E50 @ =gSprites - ldrb r1, [r2, 0xD] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r3, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _080A1E54 @ =SpriteCallbackDummy - str r1, [r0] - ldrb r1, [r2, 0xD] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x5] - movs r2, 0xC - orrs r1, r2 - strb r1, [r0, 0x5] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1E48: .4byte gSpriteTemplate_820AAB4 -_080A1E4C: .4byte 0x02018000 -_080A1E50: .4byte gSprites -_080A1E54: .4byte SpriteCallbackDummy - thumb_func_end sub_80A1DE8 - - thumb_func_start sub_80A1E58 -sub_80A1E58: @ 80A1E58 - push {r4,lr} - adds r2, r0, 0 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0xFF - beq _080A1E92 - ldr r3, _080A1E6C @ =gUnknown_083C15BC - ldrb r0, [r3] - adds r4, r2, 0x5 - b _080A1E74 - .align 2, 0 -_080A1E6C: .4byte gUnknown_083C15BC -_080A1E70: - adds r3, 0x4 - ldrb r0, [r3] -_080A1E74: - cmp r0, 0xFF - beq _080A1E7C - cmp r0, r1 - bne _080A1E70 -_080A1E7C: - movs r0, 0xFC - strb r0, [r2] - movs r0, 0x4 - strb r0, [r2, 0x1] - ldrb r0, [r3, 0x1] - strb r0, [r2, 0x2] - ldrb r0, [r3, 0x2] - strb r0, [r2, 0x3] - ldrb r0, [r3, 0x3] - strb r0, [r2, 0x4] - adds r2, r4, 0 -_080A1E92: - adds r0, r2, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80A1E58 - - thumb_func_start sub_80A1E9C -sub_80A1E9C: @ 80A1E9C - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - adds r5, r1, 0 - lsls r4, r2, 24 - lsrs r4, 24 - mov r1, sp - adds r1, 0x1 - mov r2, sp - adds r2, 0x2 - mov r0, sp - bl sub_8072CD4 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_80A1E58 - adds r6, r0, 0 - adds r1, r5, 0 - bl StringCopy - adds r6, r0, 0 - cmp r4, 0xFF - beq _080A1EEC - movs r0, 0xFC - strb r0, [r6] - movs r0, 0x4 - strb r0, [r6, 0x1] - mov r0, sp - ldrb r0, [r0] - strb r0, [r6, 0x2] - mov r0, sp - ldrb r0, [r0, 0x1] - strb r0, [r6, 0x3] - mov r0, sp - ldrb r0, [r0, 0x2] - strb r0, [r6, 0x4] - movs r0, 0xFF - strb r0, [r6, 0x5] - adds r6, 0x5 -_080A1EEC: - adds r0, r6, 0 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80A1E9C - - thumb_func_start sub_80A1EF8 -sub_80A1EF8: @ 80A1EF8 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - mov r9, r0 - adds r4, r1, 0 - adds r5, r2, 0 - adds r6, r3, 0 - ldr r3, [sp, 0x1C] - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 16 - lsrs r6, 16 - ldr r0, _080A1F44 @ =gStringVar4 - mov r8, r0 - mov r1, r9 - adds r2, r4, 0 - str r3, [sp] - bl sub_80A1E9C - ldr r3, [sp] - lsls r3, 24 - lsrs r3, 24 - mov r0, r8 - adds r1, r5, 0 - adds r2, r6, 0 - bl MenuPrint_PixelCoords - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A1F44: .4byte gStringVar4 - thumb_func_end sub_80A1EF8 - - thumb_func_start sub_80A1F48 -sub_80A1F48: @ 80A1F48 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - mov r9, r0 - adds r4, r1, 0 - adds r5, r2, 0 - adds r6, r3, 0 - ldr r3, [sp, 0x1C] - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r3, 16 - lsrs r3, 16 - ldr r0, _080A1F94 @ =gStringVar4 - mov r8, r0 - mov r1, r9 - adds r2, r4, 0 - str r3, [sp] - bl sub_80A1E9C - mov r0, r8 - adds r1, r5, 0 - adds r2, r6, 0 - ldr r3, [sp] - bl sub_8072BD8 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A1F94: .4byte gStringVar4 - thumb_func_end sub_80A1F48 - - thumb_func_start sub_80A1F98 -sub_80A1F98: @ 80A1F98 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r10, r0 - mov r8, r1 - adds r4, r2, 0 - adds r2, r3, 0 - ldr r5, [sp, 0x24] - ldr r6, [sp, 0x28] - ldr r7, [sp, 0x2C] - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r4, 24 - lsrs r4, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 16 - lsrs r6, 16 - ldr r0, _080A1FF4 @ =gStringVar1 - mov r9, r0 - mov r1, r10 - adds r3, r4, 0 - bl ConvertIntToDecimalStringN - str r7, [sp] - mov r0, r9 - mov r1, r8 - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_80A1EF8 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A1FF4: .4byte gStringVar1 - thumb_func_end sub_80A1F98 - - thumb_func_start sub_80A1FF8 -sub_80A1FF8: @ 80A1FF8 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - mov r9, r0 - adds r4, r1, 0 - adds r5, r2, 0 - adds r6, r3, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - ldr r0, _080A2038 @ =gStringVar4 - mov r8, r0 - mov r1, r9 - adds r2, r4, 0 - bl sub_80A1E9C - mov r0, r8 - adds r1, r5, 0 - adds r2, r6, 0 - bl MenuPrint - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A2038: .4byte gStringVar4 - thumb_func_end sub_80A1FF8 - - thumb_func_start sub_80A203C -sub_80A203C: @ 80A203C - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x34 - strb r0, [r4] - adds r4, 0x1 - cmp r1, 0 - bne _080A2052 - movs r1, 0x5 -_080A2052: - mov r0, sp - bl ConvertIntToDecimalString - adds r0, r4, 0 - mov r1, sp - movs r2, 0xE - bl sub_80A1E9C - adds r4, r0, 0 - ldr r1, _080A2074 @ =gOtherText_Comma - bl StringCopy - adds r4, r0, 0 - add sp, 0xC - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A2074: .4byte gOtherText_Comma - thumb_func_end sub_80A203C - - thumb_func_start sub_80A2078 -sub_80A2078: @ 80A2078 - push {lr} - ldr r3, _080A209C @ =gUnknown_03005CF0 - ldr r2, _080A20A0 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, [r1] - str r2, [r3] - ldr r2, _080A20A4 @ =sub_80A20A8 - str r2, [r1] - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r2 - pop {r0} - bx r0 - .align 2, 0 -_080A209C: .4byte gUnknown_03005CF0 -_080A20A0: .4byte gTasks -_080A20A4: .4byte sub_80A20A8 - thumb_func_end sub_80A2078 - - thumb_func_start sub_80A20A8 -sub_80A20A8: @ 80A20A8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8055870 - cmp r0, 0x1 - beq _080A20C6 - ldr r1, _080A20CC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A20D0 @ =gUnknown_03005CF0 - ldr r1, [r1] - str r1, [r0] -_080A20C6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A20CC: .4byte gTasks -_080A20D0: .4byte gUnknown_03005CF0 - thumb_func_end sub_80A20A8 - - thumb_func_start exec_movement -exec_movement: @ 80A20D4 - push {r4,lr} - sub sp, 0x4 - adds r4, r3, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - beq _080A20F6 - movs r0, 0x1 - b _080A211E -_080A20F6: - ldr r0, _080A2128 @ =sub_80A244C - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - bne _080A2108 - movs r0, 0x32 - bl sub_80A2198 -_080A2108: - bl sub_80A21E0 - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - ldrb r1, [r1] - adds r2, r4, 0 - bl sub_80A21F4 - lsls r0, 24 - lsrs r0, 24 -_080A211E: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A2128: .4byte sub_80A244C - thumb_func_end exec_movement - - thumb_func_start sub_80A212C -sub_80A212C: @ 80A212C - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _080A216E - bl sub_80A21E0 - lsls r0, 24 - lsrs r4, r0, 24 - mov r0, sp - ldrb r1, [r0] - adds r0, r4, 0 - bl sub_80A2260 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x10 - beq _080A216E - adds r0, r4, 0 - bl sub_80A2370 - lsls r0, 24 - lsrs r0, 24 - b _080A2170 -_080A216E: - movs r0, 0x1 -_080A2170: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80A212C - - thumb_func_start sub_80A2178 -sub_80A2178: @ 80A2178 - push {r4,lr} - bl sub_80A21E0 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xFF - beq _080A2192 - adds r0, r4, 0 - bl sub_80A2408 - adds r0, r4, 0 - bl DestroyTask -_080A2192: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A2178 - - thumb_func_start sub_80A2198 -sub_80A2198: @ 80A2198 - push {r4,r5,lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _080A21D4 @ =sub_80A244C - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x1 - lsls r1, r0, 2 - adds r1, r0 - lsls r3, r1, 3 - ldr r5, _080A21D8 @ =gTasks + 0x8 - ldr r0, _080A21DC @ =0x0000ffff - adds r4, r0, 0 -_080A21B8: - lsls r0, r2, 1 - adds r0, r3 - adds r0, r5 - ldrh r1, [r0] - orrs r1, r4 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bls _080A21B8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A21D4: .4byte sub_80A244C -_080A21D8: .4byte gTasks + 0x8 -_080A21DC: .4byte 0x0000ffff - thumb_func_end sub_80A2198 - - thumb_func_start sub_80A21E0 -sub_80A21E0: @ 80A21E0 - push {lr} - ldr r0, _080A21F0 @ =sub_80A244C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_080A21F0: .4byte sub_80A244C - thumb_func_end sub_80A21E0 - - thumb_func_start sub_80A21F4 -sub_80A21F4: @ 80A21F4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r9, r2 - lsls r0, 24 - lsrs r5, r0, 24 - adds r7, r5, 0 - lsls r1, 24 - lsrs r6, r1, 24 - mov r8, r6 - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_80A2260 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x10 - beq _080A2230 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80A2370 - lsls r0, 24 - cmp r0, 0 - beq _080A2250 - adds r0, r5, 0 - adds r1, r4, 0 - adds r2, r6, 0 - b _080A2246 -_080A2230: - adds r0, r7, 0 - movs r1, 0xFF - bl sub_80A2260 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x10 - beq _080A2250 - adds r0, r7, 0 - adds r1, r4, 0 - mov r2, r8 -_080A2246: - mov r3, r9 - bl sub_80A23C8 - movs r0, 0 - b _080A2252 -_080A2250: - movs r0, 0x1 -_080A2252: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80A21F4 - - thumb_func_start sub_80A2260 -sub_80A2260: @ 80A2260 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080A2284 @ =gTasks + 0x8 - adds r1, r0 - adds r1, 0x2 - movs r2, 0 -_080A2278: - ldrb r0, [r1] - cmp r0, r3 - bne _080A2288 - adds r0, r2, 0 - b _080A2296 - .align 2, 0 -_080A2284: .4byte gTasks + 0x8 -_080A2288: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - adds r1, 0x1 - cmp r2, 0xF - bls _080A2278 - movs r0, 0x10 -_080A2296: - pop {r1} - bx r1 - thumb_func_end sub_80A2260 - - thumb_func_start sub_80A229C -sub_80A229C: @ 80A229C - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080A22CC @ =gTasks + 0x8 - adds r1, r0 - adds r1, 0x2 - str r1, [r2] - movs r0, 0 - cmp r0, r3 - bcs _080A22C8 -_080A22BA: - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - adds r1, 0x1 - cmp r0, r3 - bcc _080A22BA - str r1, [r2] -_080A22C8: - pop {r0} - bx r0 - .align 2, 0 -_080A22CC: .4byte gTasks + 0x8 - thumb_func_end sub_80A229C - - thumb_func_start sub_80A22D0 -sub_80A22D0: @ 80A22D0 - push {r4,lr} - sub sp, 0x4 - adds r4, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r4, 24 - lsrs r4, 24 - mov r2, sp - bl sub_80A229C - ldr r0, [sp] - strb r4, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A22D0 - - thumb_func_start sub_80A22F4 -sub_80A22F4: @ 80A22F4 - push {r4,lr} - sub sp, 0x4 - adds r4, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r2, sp - bl sub_80A229C - ldr r0, [sp] - ldrb r0, [r0] - strb r0, [r4] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A22F4 - - thumb_func_start sub_80A2318 -sub_80A2318: @ 80A2318 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - ldr r2, _080A2340 @ =gBitTable - lsrs r1, 22 - adds r1, r2 - ldr r2, [r1] - mvns r2, r2 - lsls r2, 16 - lsrs r2, 16 - ldr r3, _080A2344 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r3 - ldrh r0, [r1, 0x8] - ands r2, r0 - strh r2, [r1, 0x8] - bx lr - .align 2, 0 -_080A2340: .4byte gBitTable -_080A2344: .4byte gTasks - thumb_func_end sub_80A2318 - - thumb_func_start sub_80A2348 -sub_80A2348: @ 80A2348 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - ldr r3, _080A2368 @ =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r3 - ldr r0, _080A236C @ =gBitTable - lsrs r1, 22 - adds r1, r0 - ldr r0, [r1] - ldrh r1, [r2, 0x8] - orrs r0, r1 - strh r0, [r2, 0x8] - bx lr - .align 2, 0 -_080A2368: .4byte gTasks -_080A236C: .4byte gBitTable - thumb_func_end sub_80A2348 - - thumb_func_start sub_80A2370 -sub_80A2370: @ 80A2370 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - ldr r3, _080A2398 @ =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r3 - ldr r0, _080A239C @ =gBitTable - lsrs r1, 22 - adds r1, r0 - ldr r0, [r1] - ldrh r1, [r2, 0x8] - ands r0, r1 - cmp r0, 0 - bne _080A23A0 - movs r0, 0 - b _080A23A2 - .align 2, 0 -_080A2398: .4byte gTasks -_080A239C: .4byte gBitTable -_080A23A0: - movs r0, 0x1 -_080A23A2: - pop {r1} - bx r1 - thumb_func_end sub_80A2370 - - thumb_func_start npc_obj_offscreen_culling_and_flag_update -npc_obj_offscreen_culling_and_flag_update: @ 80A23A8 - lsls r0, 24 - ldr r2, _080A23B4 @ =gUnknown_020384F8 - lsrs r0, 22 - adds r0, r2 - str r1, [r0] - bx lr - .align 2, 0 -_080A23B4: .4byte gUnknown_020384F8 - thumb_func_end npc_obj_offscreen_culling_and_flag_update - - thumb_func_start sub_80A23B8 -sub_80A23B8: @ 80A23B8 - lsls r0, 24 - ldr r1, _080A23C4 @ =gUnknown_020384F8 - lsrs r0, 22 - adds r0, r1 - ldr r0, [r0] - bx lr - .align 2, 0 -_080A23C4: .4byte gUnknown_020384F8 - thumb_func_end sub_80A23B8 - - thumb_func_start sub_80A23C8 -sub_80A23C8: @ 80A23C8 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r5, r0, 0 - adds r4, r1, 0 - adds r6, r2, 0 - mov r8, r3 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80A2318 - adds r0, r4, 0 - mov r1, r8 - bl npc_obj_offscreen_culling_and_flag_update - adds r0, r5, 0 - adds r1, r4, 0 - adds r2, r6, 0 - bl sub_80A22D0 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A23C8 - - thumb_func_start sub_80A2408 -sub_80A2408: @ 80A2408 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080A2444 @ =gTasks + 0x8 - adds r1, r0 - adds r4, r1, 0x2 - movs r5, 0 -_080A241C: - ldrb r0, [r4] - cmp r0, 0xFF - beq _080A2432 - adds r1, r0, 0 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080A2448 @ =gMapObjects - adds r0, r1 - bl npc_sync_anim_pause_bits -_080A2432: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, 0x1 - cmp r5, 0xF - bls _080A241C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2444: .4byte gTasks + 0x8 -_080A2448: .4byte gMapObjects - thumb_func_end sub_80A2408 - - thumb_func_start sub_80A244C -sub_80A244C: @ 80A244C - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - movs r5, 0 - mov r6, sp -_080A2458: - adds r0, r7, 0 - adds r1, r5, 0 - mov r2, sp - bl sub_80A22F4 - ldrb r0, [r6] - cmp r0, 0xFF - beq _080A247C - adds r4, r0, 0 - adds r0, r5, 0 - bl sub_80A23B8 - adds r3, r0, 0 - adds r0, r7, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_80A2490 -_080A247C: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _080A2458 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A244C - - thumb_func_start sub_80A2490 -sub_80A2490: @ 80A2490 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r3, 0 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - mov r8, r6 - lsls r2, 24 - lsrs r2, 24 - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r1, _080A24E0 @ =gMapObjects - adds r4, r0, r1 - adds r0, r4, 0 - bl FieldObjectIsSpecialAnimActive - lsls r0, 24 - cmp r0, 0 - beq _080A24C8 - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080A24FA -_080A24C8: - ldrb r1, [r5] - cmp r1, 0xFE - bne _080A24E4 - adds r0, r7, 0 - adds r1, r6, 0 - bl sub_80A2348 - adds r0, r4, 0 - bl sub_80643A4 - b _080A24FA - .align 2, 0 -_080A24E0: .4byte gMapObjects -_080A24E4: - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - lsls r0, 24 - cmp r0, 0 - bne _080A24FA - adds r5, 0x1 - mov r0, r8 - adds r1, r5, 0 - bl npc_obj_offscreen_culling_and_flag_update -_080A24FA: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A2490 - - thumb_func_start SetUpFieldMove_Cut -SetUpFieldMove_Cut: @ 80A2504 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r0, 0x52 - bl npc_before_player_of_type - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A2534 - ldr r1, _080A2524 @ =gUnknown_0300485C - ldr r0, _080A2528 @ =sub_808AB90 - str r0, [r1] - ldr r1, _080A252C @ =gUnknown_03005CE4 - ldr r0, _080A2530 @ =sub_80A2634 - b _080A25A8 - .align 2, 0 -_080A2524: .4byte gUnknown_0300485C -_080A2528: .4byte sub_808AB90 -_080A252C: .4byte gUnknown_03005CE4 -_080A2530: .4byte sub_80A2634 -_080A2534: - ldr r4, _080A25B0 @ =gUnknown_0203923C - adds r1, r4, 0x2 - adds r0, r4, 0 - bl PlayerGetDestCoords - movs r7, 0 - mov r8, r4 -_080A2542: - ldr r1, _080A25B4 @ =0x0000ffff - adds r0, r7, r1 - mov r2, r8 - ldrh r2, [r2, 0x2] - adds r0, r2 - movs r6, 0 - lsls r0, 16 - asrs r5, r0, 16 -_080A2552: - ldr r1, _080A25B4 @ =0x0000ffff - adds r0, r6, r1 - mov r2, r8 - ldrh r2, [r2] - adds r0, r2 - lsls r0, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetZCoordAt - lsls r0, 24 - lsrs r0, 24 - mov r2, r8 - movs r1, 0x4 - ldrsb r1, [r2, r1] - cmp r0, r1 - bne _080A25C8 - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_8056E14 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A259E - adds r0, r4, 0 - bl MetatileBehavior_IsAsh - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A25C8 -_080A259E: - ldr r1, _080A25B8 @ =gUnknown_0300485C - ldr r0, _080A25BC @ =sub_808AB90 - str r0, [r1] - ldr r1, _080A25C0 @ =gUnknown_03005CE4 - ldr r0, _080A25C4 @ =sub_80A25E8 -_080A25A8: - str r0, [r1] - movs r0, 0x1 - b _080A25DE - .align 2, 0 -_080A25B0: .4byte gUnknown_0203923C -_080A25B4: .4byte 0x0000ffff -_080A25B8: .4byte gUnknown_0300485C -_080A25BC: .4byte sub_808AB90 -_080A25C0: .4byte gUnknown_03005CE4 -_080A25C4: .4byte sub_80A25E8 -_080A25C8: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x2 - bls _080A2552 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x2 - bls _080A2542 - movs r0, 0 -_080A25DE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end SetUpFieldMove_Cut - - thumb_func_start sub_80A25E8 -sub_80A25E8: @ 80A25E8 - push {lr} - movs r0, 0x1 - bl FieldEffectStart - ldr r0, _080A25FC @ =gUnknown_0202FF84 - ldr r1, _080A2600 @ =gUnknown_03005CE0 - ldrb r1, [r1] - str r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080A25FC: .4byte gUnknown_0202FF84 -_080A2600: .4byte gUnknown_03005CE0 - thumb_func_end sub_80A25E8 - - thumb_func_start FldEff_UseCutOnGrass -FldEff_UseCutOnGrass: @ 80A2604 - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A262C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080A2630 @ =sub_80A2684 - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - movs r0, 0x12 - bl sav12_xor_increment - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080A262C: .4byte gTasks -_080A2630: .4byte sub_80A2684 - thumb_func_end FldEff_UseCutOnGrass - - thumb_func_start sub_80A2634 -sub_80A2634: @ 80A2634 - push {lr} - ldr r1, _080A2648 @ =gUnknown_0202FF84 - ldr r0, _080A264C @ =gUnknown_03005CE0 - ldrb r0, [r0] - str r0, [r1] - ldr r0, _080A2650 @ =UseCutScript - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_080A2648: .4byte gUnknown_0202FF84 -_080A264C: .4byte gUnknown_03005CE0 -_080A2650: .4byte UseCutScript - thumb_func_end sub_80A2634 - - thumb_func_start FldEff_UseCutOnTree -FldEff_UseCutOnTree: @ 80A2654 - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A267C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080A2680 @ =sub_80A2B00 - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - movs r0, 0x12 - bl sav12_xor_increment - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080A267C: .4byte gTasks -_080A2680: .4byte sub_80A2B00 - thumb_func_end FldEff_UseCutOnTree - - thumb_func_start sub_80A2684 -sub_80A2684: @ 80A2684 - push {lr} - movs r0, 0x1 - bl FieldEffectActiveListRemove - movs r0, 0x3A - bl FieldEffectStart - pop {r0} - bx r0 - thumb_func_end sub_80A2684 - - thumb_func_start FldEff_CutGrass -FldEff_CutGrass: @ 80A2698 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r7, 0 - movs r0, 0x80 - bl PlaySE - ldr r4, _080A2790 @ =gUnknown_0203923C - adds r1, r4, 0x2 - adds r0, r4, 0 - bl PlayerGetDestCoords - mov r8, r4 -_080A26B2: - ldr r1, _080A2794 @ =0x0000ffff - adds r0, r7, r1 - mov r2, r8 - ldrh r2, [r2, 0x2] - adds r0, r2 - movs r6, 0 - lsls r0, 16 - asrs r5, r0, 16 -_080A26C2: - ldr r1, _080A2794 @ =0x0000ffff - adds r0, r6, r1 - mov r2, r8 - ldrh r2, [r2] - adds r0, r2 - lsls r0, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetZCoordAt - lsls r0, 24 - lsrs r0, 24 - mov r2, r8 - movs r1, 0x4 - ldrsb r1, [r2, r1] - cmp r0, r1 - bne _080A270E - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl sub_80578F8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A270E - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80A27A8 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_805BCC0 -_080A270E: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x2 - bls _080A26C2 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x2 - bls _080A26B2 - ldr r1, _080A2790 @ =gUnknown_0203923C - ldrh r0, [r1] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - ldrh r1, [r1, 0x2] - subs r1, 0x2 - lsls r1, 16 - asrs r1, 16 - bl sub_80A28F4 - bl DrawWholeMapView - movs r7, 0 - ldr r4, _080A2798 @ =gSprites -_080A2740: - ldr r0, _080A279C @ =gPlayerAvatar - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x2] - lsls r1, 23 - lsrs r1, 7 - movs r2, 0x80 - lsls r2, 12 - adds r1, r2 - asrs r1, 16 - ldrb r2, [r0] - adds r2, 0x14 - ldr r0, _080A27A0 @ =gSpriteTemplate_CutGrass - movs r3, 0 - bl CreateSprite - ldr r1, _080A27A4 @ =0x0201fff0 - adds r1, r7, r1 - strb r0, [r1] - ldrb r1, [r1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - lsls r1, r7, 5 - strh r1, [r0, 0x32] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x7 - bls _080A2740 - movs r0, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080A2790: .4byte gUnknown_0203923C -_080A2794: .4byte 0x0000ffff -_080A2798: .4byte gSprites -_080A279C: .4byte gPlayerAvatar -_080A27A0: .4byte gSpriteTemplate_CutGrass -_080A27A4: .4byte 0x0201fff0 - thumb_func_end FldEff_CutGrass - - thumb_func_start sub_80A27A8 -sub_80A27A8: @ 80A27A8 - push {r4-r7,lr} - lsls r0, 16 - lsls r1, 16 - lsrs r6, r0, 16 - asrs r4, r0, 16 - lsrs r7, r1, 16 - asrs r5, r1, 16 - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetMetatileIdAt - adds r1, r0, 0 - ldr r0, _080A27E0 @ =0x00000207 - cmp r1, r0 - bgt _080A27F4 - subs r0, 0x1 - cmp r1, r0 - bge _080A286C - cmp r1, 0x25 - beq _080A288E - cmp r1, 0x25 - bgt _080A27E4 - cmp r1, 0xD - beq _080A2834 - cmp r1, 0x15 - beq _080A2834 - b _080A2898 - .align 2, 0 -_080A27E0: .4byte 0x00000207 -_080A27E4: - movs r0, 0xE3 - lsls r0, 1 - cmp r1, r0 - beq _080A2844 - adds r0, 0x1 - cmp r1, r0 - beq _080A284A - b _080A2898 -_080A27F4: - ldr r0, _080A280C @ =0x00000212 - cmp r1, r0 - beq _080A287C - cmp r1, r0 - bgt _080A2810 - subs r0, 0xA - cmp r1, r0 - beq _080A2834 - adds r0, 0x2 - cmp r1, r0 - beq _080A287C - b _080A2898 - .align 2, 0 -_080A280C: .4byte 0x00000212 -_080A2810: - ldr r0, _080A2824 @ =0x00000282 - cmp r1, r0 - beq _080A285C - cmp r1, r0 - bgt _080A2828 - subs r0, 0x1 - cmp r1, r0 - beq _080A2854 - b _080A2898 - .align 2, 0 -_080A2824: .4byte 0x00000282 -_080A2828: - ldr r0, _080A2830 @ =0x00000283 - cmp r1, r0 - beq _080A2864 - b _080A2898 - .align 2, 0 -_080A2830: .4byte 0x00000283 -_080A2834: - lsls r0, r6, 16 - asrs r0, 16 - lsls r1, r7, 16 - asrs r1, 16 - movs r2, 0x1 - bl MapGridSetMetatileIdAt - b _080A2898 -_080A2844: - movs r2, 0xE7 - lsls r2, 1 - b _080A286E -_080A284A: - ldr r2, _080A2850 @ =0x000001cf - b _080A286E - .align 2, 0 -_080A2850: .4byte 0x000001cf -_080A2854: - ldr r2, _080A2858 @ =0x00000279 - b _080A286E - .align 2, 0 -_080A2858: .4byte 0x00000279 -_080A285C: - ldr r2, _080A2860 @ =0x0000027a - b _080A286E - .align 2, 0 -_080A2860: .4byte 0x0000027a -_080A2864: - ldr r2, _080A2868 @ =0x0000027b - b _080A286E - .align 2, 0 -_080A2868: .4byte 0x0000027b -_080A286C: - ldr r2, _080A2878 @ =0x00000271 -_080A286E: - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt - b _080A2898 - .align 2, 0 -_080A2878: .4byte 0x00000271 -_080A287C: - lsls r0, r6, 16 - asrs r0, 16 - lsls r1, r7, 16 - asrs r1, 16 - movs r2, 0x86 - lsls r2, 2 - bl MapGridSetMetatileIdAt - b _080A2898 -_080A288E: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0xE - bl MapGridSetMetatileIdAt -_080A2898: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A27A8 - - thumb_func_start sub_80A28A0 -sub_80A28A0: @ 80A28A0 - push {lr} - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - bl MapGridGetMetatileIdAt - lsls r0, 16 - lsrs r1, r0, 16 - adds r2, r1, 0 - cmp r1, 0x1 - bne _080A28BC - movs r0, 0x1 - b _080A28EE -_080A28BC: - ldr r0, _080A28C8 @ =0x00000279 - cmp r1, r0 - bne _080A28CC - movs r0, 0x2 - b _080A28EE - .align 2, 0 -_080A28C8: .4byte 0x00000279 -_080A28CC: - ldr r0, _080A28D8 @ =0x0000027a - cmp r1, r0 - bne _080A28DC - movs r0, 0x3 - b _080A28EE - .align 2, 0 -_080A28D8: .4byte 0x0000027a -_080A28DC: - ldr r0, _080A28E8 @ =0x0000027b - cmp r2, r0 - beq _080A28EC - movs r0, 0 - b _080A28EE - .align 2, 0 -_080A28E8: .4byte 0x0000027b -_080A28EC: - movs r0, 0x4 -_080A28EE: - pop {r1} - bx r1 - thumb_func_end sub_80A28A0 - - thumb_func_start sub_80A28F4 -sub_80A28F4: @ 80A28F4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - lsls r1, 16 - movs r2, 0xC0 - lsls r2, 10 - adds r0, r1, r2 - lsrs r0, 16 - mov r9, r0 - movs r4, 0 - asrs r7, r1, 16 -_080A2914: - mov r1, r10 - lsls r0, r1, 16 - asrs r0, 16 - lsls r4, 16 - asrs r1, r4, 16 - adds r0, r1 - lsls r0, 16 - lsrs r6, r0, 16 - asrs r5, r0, 16 - adds r0, r5, 0 - adds r1, r7, 0 - bl MapGridGetMetatileIdAt - mov r8, r4 - cmp r0, 0x15 - bne _080A2996 - adds r4, r7, 0x1 - lsls r1, r4, 16 - asrs r1, 16 - adds r0, r5, 0 - bl sub_80A28A0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - beq _080A296A - cmp r0, 0x2 - bgt _080A2952 - cmp r0, 0x1 - beq _080A295C - b _080A2996 -_080A2952: - cmp r0, 0x3 - beq _080A297C - cmp r0, 0x4 - beq _080A298C - b _080A2996 -_080A295C: - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x82 - lsls r2, 2 - bl MapGridSetMetatileIdAt - b _080A2996 -_080A296A: - adds r0, r5, 0 - adds r1, r4, 0 - ldr r2, _080A2978 @ =0x00000281 - bl MapGridSetMetatileIdAt - b _080A2996 - .align 2, 0 -_080A2978: .4byte 0x00000281 -_080A297C: - adds r0, r5, 0 - adds r1, r4, 0 - ldr r2, _080A2988 @ =0x00000282 - bl MapGridSetMetatileIdAt - b _080A2996 - .align 2, 0 -_080A2988: .4byte 0x00000282 -_080A298C: - adds r0, r5, 0 - adds r1, r4, 0 - ldr r2, _080A2A30 @ =0x00000283 - bl MapGridSetMetatileIdAt -_080A2996: - lsls r0, r6, 16 - asrs r5, r0, 16 - mov r2, r9 - lsls r0, r2, 16 - asrs r4, r0, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl MapGridGetMetatileIdAt - cmp r0, 0x1 - bne _080A2A10 - adds r4, 0x1 - adds r0, r5, 0 - adds r1, r4, 0 - bl MapGridGetMetatileIdAt - movs r1, 0x82 - lsls r1, 2 - cmp r0, r1 - bne _080A29C8 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x1 - bl MapGridSetMetatileIdAt -_080A29C8: - adds r0, r5, 0 - adds r1, r4, 0 - bl MapGridGetMetatileIdAt - ldr r1, _080A2A34 @ =0x00000281 - cmp r0, r1 - bne _080A29E0 - adds r0, r5, 0 - adds r1, r4, 0 - ldr r2, _080A2A38 @ =0x00000279 - bl MapGridSetMetatileIdAt -_080A29E0: - adds r0, r5, 0 - adds r1, r4, 0 - bl MapGridGetMetatileIdAt - ldr r1, _080A2A3C @ =0x00000282 - cmp r0, r1 - bne _080A29F8 - adds r0, r5, 0 - adds r1, r4, 0 - ldr r2, _080A2A40 @ =0x0000027a - bl MapGridSetMetatileIdAt -_080A29F8: - adds r0, r5, 0 - adds r1, r4, 0 - bl MapGridGetMetatileIdAt - ldr r1, _080A2A30 @ =0x00000283 - cmp r0, r1 - bne _080A2A10 - adds r0, r5, 0 - adds r1, r4, 0 - ldr r2, _080A2A44 @ =0x0000027b - bl MapGridSetMetatileIdAt -_080A2A10: - movs r0, 0x80 - lsls r0, 9 - add r0, r8 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bgt _080A2A20 - b _080A2914 -_080A2A20: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A2A30: .4byte 0x00000283 -_080A2A34: .4byte 0x00000281 -_080A2A38: .4byte 0x00000279 -_080A2A3C: .4byte 0x00000282 -_080A2A40: .4byte 0x0000027a -_080A2A44: .4byte 0x0000027b - thumb_func_end sub_80A28F4 - - thumb_func_start sub_80A2A48 -sub_80A2A48: @ 80A2A48 - movs r2, 0 - movs r1, 0x8 - strh r1, [r0, 0x2E] - strh r2, [r0, 0x30] - strh r2, [r0, 0x34] - ldr r1, _080A2A58 @ =objc_8097BBC - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080A2A58: .4byte objc_8097BBC - thumb_func_end sub_80A2A48 - - thumb_func_start objc_8097BBC -objc_8097BBC: @ 80A2A5C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r2, 0x2E - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r2, 0x2E - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x8 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x2E] - adds r1, 0x1 - ldrh r2, [r4, 0x34] - lsls r0, r2, 16 - asrs r0, 18 - adds r1, r0 - strh r1, [r4, 0x2E] - adds r2, 0x1 - strh r2, [r4, 0x34] - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0x1C - beq _080A2AA8 - adds r0, r1, 0x1 - strh r0, [r4, 0x30] - b _080A2AAC -_080A2AA8: - ldr r0, _080A2AB4 @ =sub_80A2AB8 - str r0, [r4, 0x1C] -_080A2AAC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A2AB4: .4byte sub_80A2AB8 - thumb_func_end objc_8097BBC - - thumb_func_start sub_80A2AB8 -sub_80A2AB8: @ 80A2AB8 - push {r4-r6,lr} - movs r4, 0x1 -_080A2ABC: - ldr r6, _080A2AF8 @ =0x0201fff0 - adds r0, r4, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, _080A2AFC @ =gSprites - adds r0, r5 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _080A2ABC - ldrb r1, [r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x3A - bl FieldEffectStop - bl sub_8064E2C - bl ScriptContext2_Disable - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A2AF8: .4byte 0x0201fff0 -_080A2AFC: .4byte gSprites - thumb_func_end sub_80A2AB8 - - thumb_func_start sub_80A2B00 -sub_80A2B00: @ 80A2B00 - push {lr} - movs r0, 0x80 - bl PlaySE - movs r0, 0x2 - bl FieldEffectActiveListRemove - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_80A2B00 - - thumb_func_start sub_80A2B18 -sub_80A2B18: @ 80A2B18 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _080A2B3C @ =gSaveBlock1 + 0x2B4C -_080A2B1E: - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - adds r0, r5 - bl sub_80A2B40 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _080A2B1E - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2B3C: .4byte gSaveBlock1 + 0x2B4C - thumb_func_end sub_80A2B18 - - thumb_func_start sub_80A2B40 -sub_80A2B40: @ 80A2B40 - push {r4-r6,lr} - adds r3, r0, 0 - ldr r0, _080A2B90 @ =0x0000ffff - adds r4, r0, 0 - adds r1, r3, 0 - movs r2, 0x8 -_080A2B4C: - ldrh r0, [r1] - orrs r0, r4 - strh r0, [r1] - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _080A2B4C - movs r2, 0 - adds r6, r3, 0 - adds r6, 0x1A - adds r4, r3, 0 - adds r4, 0x12 - movs r5, 0xFF -_080A2B66: - adds r1, r4, r2 - ldrb r0, [r1] - orrs r0, r5 - strb r0, [r1] - adds r2, 0x1 - cmp r2, 0x7 - ble _080A2B66 - adds r1, r6, 0 - movs r2, 0 - adds r0, r1, 0x3 -_080A2B7A: - strb r2, [r0] - subs r0, 0x1 - cmp r0, r1 - bge _080A2B7A - movs r1, 0 - movs r0, 0x1 - strh r0, [r3, 0x1E] - strh r1, [r3, 0x20] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A2B90: .4byte 0x0000ffff - thumb_func_end sub_80A2B40 - - thumb_func_start sub_80A2B94 -sub_80A2B94: @ 80A2B94 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - beq _080A2BBC - adds r0, r4, 0 - movs r1, 0x40 - bl GetMonData - cmp r0, 0xFF - beq _080A2BBC - movs r0, 0x1 - b _080A2BBE -_080A2BBC: - movs r0, 0 -_080A2BBE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80A2B94 - - thumb_func_start sub_80A2BC4 -sub_80A2BC4: @ 80A2BC4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - adds r7, r0, 0 - lsls r1, 16 - lsrs r0, r1, 16 - str r0, [sp, 0x8] - mov r0, sp - movs r2, 0 - ldrb r3, [r0, 0x8] - strb r3, [r0] - lsrs r1, 24 - strb r1, [r0, 0x1] - add r3, sp, 0x4 - strb r2, [r3] - mov r10, r3 - ldr r4, _080A2D00 @ =gSaveBlock1 - mov r9, r4 - mov r8, r3 - adds r2, r3, 0 -_080A2BF2: - ldrb r1, [r2] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - add r0, r9 - ldr r5, _080A2D04 @ =0x00002b6c - adds r0, r5 - ldrh r0, [r0] - cmp r0, 0 - beq _080A2C08 - b _080A2D24 -_080A2C08: - movs r3, 0 - ldr r0, _080A2D08 @ =gSaveBlock2 - mov r12, r0 - mov r4, r10 - ldr r6, _080A2D0C @ =gSaveBlock1 + 0x2B4C - ldr r1, _080A2D10 @ =0x0000ffff - adds r5, r1, 0 -_080A2C16: - lsls r2, r3, 1 - ldrb r1, [r4] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - adds r2, r6 - ldrh r0, [r2] - orrs r0, r5 - strh r0, [r2] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x8 - bls _080A2C16 - movs r3, 0 - mov r2, r10 - ldr r4, _080A2D14 @ =gSaveBlock1 + 0x2B5E -_080A2C3A: - ldrb r1, [r2] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r3, r0 - adds r0, r4 - mov r5, r12 - adds r1, r3, r5 - ldrb r1, [r1] - strb r1, [r0] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x6 - bls _080A2C3A - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r3, r0 - ldr r1, _080A2D14 @ =gSaveBlock1 + 0x2B5E - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - mov r2, r8 - ldrb r1, [r2] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r3, _080A2D14 @ =gSaveBlock1 + 0x2B5E - adds r0, r3 - movs r1, 0 - bl sub_814A518 - movs r3, 0 - mov r2, r10 - ldr r5, _080A2D18 @ =gSaveBlock1 + 0x2B66 - ldr r4, _080A2D1C @ =gSaveBlock2 + 0xA -_080A2C88: - ldrb r1, [r2] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r3, r0 - adds r0, r5 - adds r1, r3, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _080A2C88 - adds r0, r7, 0 - movs r1, 0xB - bl GetBoxMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r7, 0 - movs r1, 0 - bl GetBoxMonData - adds r1, r0, 0 - adds r0, r4, 0 - bl sub_80A2D44 - mov r4, r8 - ldrb r2, [r4] - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - add r1, r9 - ldr r5, _080A2D20 @ =0x00002b6a - adds r1, r5 - strh r0, [r1] - ldrb r1, [r4] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - add r0, r9 - ldr r1, _080A2D04 @ =0x00002b6c - adds r0, r1 - mov r2, sp - ldrh r2, [r2, 0x8] - strh r2, [r0] - adds r0, r7, 0 - movs r1, 0x40 - mov r2, r8 - bl SetMonData - adds r0, r7, 0 - movs r1, 0xC - mov r2, sp - bl SetMonData - ldrb r0, [r4] - b _080A2D32 - .align 2, 0 -_080A2D00: .4byte gSaveBlock1 -_080A2D04: .4byte 0x00002b6c -_080A2D08: .4byte gSaveBlock2 -_080A2D0C: .4byte gSaveBlock1 + 0x2B4C -_080A2D10: .4byte 0x0000ffff -_080A2D14: .4byte gSaveBlock1 + 0x2B5E -_080A2D18: .4byte gSaveBlock1 + 0x2B66 -_080A2D1C: .4byte gSaveBlock2 + 0xA -_080A2D20: .4byte 0x00002b6a -_080A2D24: - adds r0, r1, 0x1 - strb r0, [r3] - ldrb r0, [r2] - cmp r0, 0x5 - bhi _080A2D30 - b _080A2BF2 -_080A2D30: - movs r0, 0xFF -_080A2D32: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80A2BC4 - - thumb_func_start sub_80A2D44 -sub_80A2D44: @ 80A2D44 - push {lr} - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xC9 - bne _080A2D5C - adds r0, r1, 0 - bl sub_809D474 - lsls r0, 16 - ldr r1, _080A2D60 @ =0x75300000 - adds r0, r1 - lsrs r0, 16 -_080A2D5C: - pop {r1} - bx r1 - .align 2, 0 -_080A2D60: .4byte 0x75300000 - thumb_func_end sub_80A2D44 - - thumb_func_start sub_80A2D64 -sub_80A2D64: @ 80A2D64 - push {lr} - lsls r0, 16 - lsrs r3, r0, 16 - ldr r0, _080A2D7C @ =0xffff8ad0 - adds r2, r3, r0 - lsls r0, r2, 16 - lsrs r0, 16 - cmp r0, 0x1B - bhi _080A2D80 - movs r0, 0xC9 - strh r2, [r1] - b _080A2D82 - .align 2, 0 -_080A2D7C: .4byte 0xffff8ad0 -_080A2D80: - adds r0, r3, 0 -_080A2D82: - pop {r1} - bx r1 - thumb_func_end sub_80A2D64 - - thumb_func_start sub_80A2D88 -sub_80A2D88: @ 80A2D88 - push {r4-r7,lr} - sub sp, 0x8 - adds r6, r0, 0 - adds r7, r1, 0 - ldrh r5, [r7, 0x20] - adds r1, r5, 0 - bl sub_80A2BC4 - add r4, sp, 0x4 - strb r0, [r4] - ldrb r2, [r4] - cmp r2, 0xFF - beq _080A2DE8 - ldr r0, _080A2DE0 @ =gSaveBlock1 - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldr r0, _080A2DE4 @ =0x00002b4c - adds r1, r0 - adds r0, r7, 0 - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - adds r0, r6, 0 - movs r1, 0x40 - adds r2, r4, 0 - bl SetMonData - mov r0, sp - strb r5, [r0] - mov r1, sp - lsrs r0, r5, 8 - strb r0, [r1, 0x1] - adds r0, r6, 0 - movs r1, 0xC - mov r2, sp - bl SetMonData - ldrb r0, [r4] - b _080A2DEA - .align 2, 0 -_080A2DE0: .4byte gSaveBlock1 -_080A2DE4: .4byte 0x00002b4c -_080A2DE8: - movs r0, 0xFF -_080A2DEA: - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80A2D88 - - thumb_func_start unref_sub_80A2DF4 -unref_sub_80A2DF4: @ 80A2DF4 - movs r0, 0 - bx lr - thumb_func_end unref_sub_80A2DF4 - - thumb_func_start sub_80A2DF8 -sub_80A2DF8: @ 80A2DF8 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - bl sub_80A2B94 - lsls r0, 24 - cmp r0, 0 - beq _080A2E46 - adds r0, r4, 0 - movs r1, 0x40 - bl GetMonData - add r2, sp, 0x4 - strb r0, [r2] - ldr r3, _080A2E50 @ =gSaveBlock1 - ldrb r1, [r2] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldr r1, _080A2E54 @ =0x00002b6c - adds r0, r1 - movs r3, 0 - movs r1, 0 - strh r1, [r0] - movs r0, 0xFF - strb r0, [r2] - mov r0, sp - strb r3, [r0] - strb r3, [r0, 0x1] - adds r0, r4, 0 - movs r1, 0x40 - bl SetMonData - adds r0, r4, 0 - movs r1, 0xC - mov r2, sp - bl SetMonData -_080A2E46: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A2E50: .4byte gSaveBlock1 -_080A2E54: .4byte 0x00002b6c - thumb_func_end sub_80A2DF8 - - thumb_func_start unref_sub_80A2E58 -unref_sub_80A2E58: @ 80A2E58 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A2E70 @ =gSaveBlock1 - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldr r0, _080A2E74 @ =0x00002b6c - adds r1, r0 - movs r0, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_080A2E70: .4byte gSaveBlock1 -_080A2E74: .4byte 0x00002b6c - thumb_func_end unref_sub_80A2E58 - - thumb_func_start sub_80A2E78 -sub_80A2E78: @ 80A2E78 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - adds r5, r0, 0 - mov r0, sp - movs r1, 0 - strb r1, [r0] - strb r1, [r0, 0x1] - add r1, sp, 0x4 - movs r0, 0xFF - strb r0, [r1] - movs r7, 0x6 - mov r9, r1 - ldr r0, _080A2F04 @ =gSaveBlock1 - mov r8, r0 - ldr r2, _080A2F08 @ =0x00002b4c - add r2, r8 -_080A2E9E: - lsls r0, r7, 3 - adds r0, r7 - lsls r4, r0, 2 - mov r1, r8 - adds r0, r4, r1 - ldr r3, _080A2F0C @ =0x00002b6c - adds r0, r3 - ldrh r6, [r0] - cmp r6, 0 - bne _080A2F10 - adds r4, r2 - adds r0, r5, 0 - movs r1, 0x40 - str r2, [sp, 0x8] - bl GetMonData - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r2, [sp, 0x8] - adds r1, r2 - ldm r1!, {r0,r2,r3} - stm r4!, {r0,r2,r3} - ldm r1!, {r0,r2,r3} - stm r4!, {r0,r2,r3} - ldm r1!, {r0,r2,r3} - stm r4!, {r0,r2,r3} - adds r0, r5, 0 - movs r1, 0x40 - bl GetMonData - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - add r1, r8 - ldr r0, _080A2F0C @ =0x00002b6c - adds r1, r0 - strh r6, [r1] - adds r0, r5, 0 - movs r1, 0x40 - mov r2, r9 - bl SetMonData - adds r0, r5, 0 - movs r1, 0xC - mov r2, sp - bl SetMonData - adds r0, r7, 0 - b _080A2F1C - .align 2, 0 -_080A2F04: .4byte gSaveBlock1 -_080A2F08: .4byte 0x00002b4c -_080A2F0C: .4byte 0x00002b6c -_080A2F10: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0xF - bls _080A2E9E - movs r0, 0xFF -_080A2F1C: - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80A2E78 - - thumb_func_start itemid_is_mail -itemid_is_mail: @ 80A2F2C - push {lr} - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x84 - bgt _080A2F3E - cmp r0, 0x79 - blt _080A2F3E - movs r0, 0x1 - b _080A2F40 -_080A2F3E: - movs r0, 0 -_080A2F40: - pop {r1} - bx r1 - thumb_func_end itemid_is_mail - - thumb_func_start unref_sub_80A2F44 -unref_sub_80A2F44: @ 80A2F44 - push {lr} - bl sub_8071C20 - bl AddMapNamePopUpWindowTask - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end unref_sub_80A2F44 - - thumb_func_start AddMapNamePopUpWindowTask -AddMapNamePopUpWindowTask: @ 80A2F54 - push {r4,r5,lr} - movs r0, 0x80 - lsls r0, 7 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A2FE4 - ldr r4, _080A2FAC @ =sub_80A2FF4 - adds r0, r4, 0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080A2FBC - adds r0, r4, 0 - movs r1, 0x5A - bl CreateTask - ldr r4, _080A2FB0 @ =gUnknown_02038538 - strb r0, [r4] - ldr r1, _080A2FB4 @ =REG_BG0VOFS - movs r0, 0x20 - strh r0, [r1] - bl sub_80A30E0 - ldr r2, _080A2FB8 @ =gTasks - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - strh r5, [r0, 0x8] - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x20 - strh r1, [r0, 0xC] - b _080A2FE4 - .align 2, 0 -_080A2FAC: .4byte sub_80A2FF4 -_080A2FB0: .4byte gUnknown_02038538 -_080A2FB4: .4byte REG_BG0VOFS -_080A2FB8: .4byte gTasks -_080A2FBC: - ldr r3, _080A2FEC @ =gTasks - ldr r2, _080A2FF0 @ =gUnknown_02038538 - ldrb r0, [r2] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r3 - movs r4, 0x8 - ldrsh r0, [r1, r4] - cmp r0, 0x2 - beq _080A2FD6 - movs r0, 0x2 - strh r0, [r1, 0x8] -_080A2FD6: - ldrb r0, [r2] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r3 - movs r0, 0x1 - strh r0, [r1, 0xE] -_080A2FE4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2FEC: .4byte gTasks -_080A2FF0: .4byte gUnknown_02038538 - thumb_func_end AddMapNamePopUpWindowTask - - thumb_func_start sub_80A2FF4 -sub_80A2FF4: @ 80A2FF4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r3, _080A3018 @ =gTasks - adds r4, r1, r3 - movs r0, 0x8 - ldrsh r2, [r4, r0] - cmp r2, 0x1 - beq _080A304C - cmp r2, 0x1 - bgt _080A301C - cmp r2, 0 - beq _080A3026 - b _080A3092 - .align 2, 0 -_080A3018: .4byte gTasks -_080A301C: - cmp r2, 0x2 - beq _080A3064 - cmp r2, 0x4 - beq _080A308C - b _080A3092 -_080A3026: - ldrh r0, [r4, 0xC] - subs r0, 0x2 - strh r0, [r4, 0xC] - lsls r0, 16 - cmp r0, 0 - bgt _080A3092 - movs r0, 0x1 - strh r0, [r4, 0x8] - ldr r0, _080A3048 @ =gUnknown_02038538 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - strh r2, [r0, 0xA] - b _080A3092 - .align 2, 0 -_080A3048: .4byte gUnknown_02038538 -_080A304C: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x78 - ble _080A3092 - movs r0, 0 - strh r0, [r4, 0xA] - movs r0, 0x2 - strh r0, [r4, 0x8] - b _080A3092 -_080A3064: - ldrh r0, [r4, 0xC] - adds r0, 0x2 - movs r5, 0 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - ble _080A3092 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080A3086 - bl sub_80A30E0 - strh r5, [r4, 0x8] - strh r5, [r4, 0xE] - b _080A3092 -_080A3086: - movs r0, 0x4 - strh r0, [r4, 0x8] - b _080A3098 -_080A308C: - bl HideMapNamePopUpWindow - b _080A3098 -_080A3092: - ldr r1, _080A30A0 @ =REG_BG0VOFS - ldrh r0, [r4, 0xC] - strh r0, [r1] -_080A3098: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A30A0: .4byte REG_BG0VOFS - thumb_func_end sub_80A2FF4 - - thumb_func_start HideMapNamePopUpWindow -HideMapNamePopUpWindow: @ 80A30A4 - push {lr} - ldr r0, _080A30D4 @ =sub_80A2FF4 - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - beq _080A30D0 - bl MenuLoadTextWindowGraphics - movs r0, 0 - movs r1, 0 - movs r2, 0xD - movs r3, 0x3 - bl MenuZeroFillWindowRect - ldr r1, _080A30D8 @ =REG_BG0VOFS - movs r0, 0 - strh r0, [r1] - ldr r0, _080A30DC @ =gUnknown_02038538 - ldrb r0, [r0] - bl DestroyTask -_080A30D0: - pop {r0} - bx r0 - .align 2, 0 -_080A30D4: .4byte sub_80A2FF4 -_080A30D8: .4byte REG_BG0VOFS -_080A30DC: .4byte gUnknown_02038538 - thumb_func_end HideMapNamePopUpWindow - - thumb_func_start sub_80A30E0 -sub_80A30E0: @ 80A30E0 - push {lr} - sub sp, 0x14 - movs r0, 0 - bl MenuLoadTextWindowGraphics_OverrideFrameType - ldr r0, _080A3114 @ =gMapHeader - ldrb r1, [r0, 0x14] - mov r0, sp - movs r2, 0 - bl sub_80FBFB4 - movs r0, 0 - movs r1, 0 - movs r2, 0xD - movs r3, 0x3 - bl MenuDrawTextWindow - mov r0, sp - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x60 - bl sub_8072BD8 - add sp, 0x14 - pop {r0} - bx r0 - .align 2, 0 -_080A3114: .4byte gMapHeader - thumb_func_end sub_80A30E0 - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_810CBB4.s b/asm/rom_810CBB4.s new file mode 100644 index 000000000..78fb7e6ac --- /dev/null +++ b/asm/rom_810CBB4.s @@ -0,0 +1,6732 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start SetUpFieldMove_Flash +SetUpFieldMove_Flash: @ 810CBB4 + push {lr} + ldr r0, _0810CBDC @ =gMapHeader + ldrb r0, [r0, 0x15] + cmp r0, 0x1 + bne _0810CBF4 + ldr r0, _0810CBE0 @ =0x00000828 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _0810CBF4 + ldr r1, _0810CBE4 @ =gUnknown_0300485C + ldr r0, _0810CBE8 @ =sub_808AB90 + str r0, [r1] + ldr r1, _0810CBEC @ =gUnknown_03005CE4 + ldr r0, _0810CBF0 @ =sub_810CBFC + str r0, [r1] + movs r0, 0x1 + b _0810CBF6 + .align 2, 0 +_0810CBDC: .4byte gMapHeader +_0810CBE0: .4byte 0x00000828 +_0810CBE4: .4byte gUnknown_0300485C +_0810CBE8: .4byte sub_808AB90 +_0810CBEC: .4byte gUnknown_03005CE4 +_0810CBF0: .4byte sub_810CBFC +_0810CBF4: + movs r0, 0 +_0810CBF6: + pop {r1} + bx r1 + thumb_func_end SetUpFieldMove_Flash + + thumb_func_start sub_810CBFC +sub_810CBFC: @ 810CBFC + push {lr} + bl oei_task_add + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810CC24 @ =gUnknown_0202FF84 + ldr r1, _0810CC28 @ =gUnknown_03005CE0 + ldrb r1, [r1] + str r1, [r2] + ldr r2, _0810CC2C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _0810CC30 @ =sub_810CC34 + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + pop {r0} + bx r0 + .align 2, 0 +_0810CC24: .4byte gUnknown_0202FF84 +_0810CC28: .4byte gUnknown_03005CE0 +_0810CC2C: .4byte gTasks +_0810CC30: .4byte sub_810CC34 + thumb_func_end sub_810CBFC + + thumb_func_start sub_810CC34 +sub_810CC34: @ 810CC34 + push {lr} + movs r0, 0xCF + bl PlaySE + ldr r0, _0810CC4C @ =0x00000828 + bl FlagSet + ldr r0, _0810CC50 @ =gUnknown_081B694A + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_0810CC4C: .4byte 0x00000828 +_0810CC50: .4byte gUnknown_081B694A + thumb_func_end sub_810CC34 + + thumb_func_start sub_810CC54 +sub_810CC54: @ 810CC54 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_810CC54 + + thumb_func_start sub_810CC6C +sub_810CC6C: @ 810CC6C + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_810CC6C + + thumb_func_start sub_810CC80 +sub_810CC80: @ 810CC80 + push {r4,lr} + sub sp, 0x8 + movs r0, 0 + bl SetVBlankCallback + movs r0, 0x80 + lsls r0, 19 + movs r1, 0 + strh r1, [r0] + adds r0, 0xC + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x10 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + mov r0, sp + strh r1, [r0] + ldr r1, _0810CD34 @ =0x040000d4 + str r0, [r1] + movs r0, 0xC0 + lsls r0, 19 + str r0, [r1, 0x4] + ldr r0, _0810CD38 @ =0x8100c000 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r4, 0 + str r4, [sp, 0x4] + add r0, sp, 0x4 + str r0, [r1] + movs r0, 0xE0 + lsls r0, 19 + str r0, [r1, 0x4] + ldr r0, _0810CD3C @ =0x85000100 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + mov r0, sp + strh r4, [r0] + str r0, [r1] + ldr r0, _0810CD40 @ =0x05000002 + str r0, [r1, 0x4] + ldr r0, _0810CD44 @ =0x810001ff + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + bl ResetPaletteFade + bl ResetTasks + bl ResetSpriteData + ldr r3, _0810CD48 @ =0x04000208 + ldrh r2, [r3] + strh r4, [r3] + ldr r4, _0810CD4C @ =0x04000200 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r0, _0810CD50 @ =sub_810CC6C + bl SetVBlankCallback + ldr r0, _0810CD54 @ =sub_810CC54 + bl SetMainCallback2 + bl sub_810CD5C + lsls r0, 24 + cmp r0, 0 + bne _0810CD2A + ldr r0, _0810CD58 @ =gMain + ldr r0, [r0, 0x8] + bl SetMainCallback2 +_0810CD2A: + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810CD34: .4byte 0x040000d4 +_0810CD38: .4byte 0x8100c000 +_0810CD3C: .4byte 0x85000100 +_0810CD40: .4byte 0x05000002 +_0810CD44: .4byte 0x810001ff +_0810CD48: .4byte 0x04000208 +_0810CD4C: .4byte 0x04000200 +_0810CD50: .4byte sub_810CC6C +_0810CD54: .4byte sub_810CC54 +_0810CD58: .4byte gMain + thumb_func_end sub_810CC80 + + thumb_func_start sub_810CD5C +sub_810CD5C: @ 810CD5C + push {r4-r7,lr} + bl get_map_light_from_warp0 + lsls r0, 24 + lsrs r6, r0, 24 + bl sav1_map_get_light_level + lsls r0, 24 + lsrs r5, r0, 24 + movs r3, 0 + ldr r4, _0810CD9C @ =gUnknown_083F7FC4 + ldrb r0, [r4] + cmp r0, 0 + beq _0810CDB0 + adds r7, r4, 0 + adds r0, r4, 0x4 + mov r12, r0 +_0810CD7E: + lsls r2, r3, 3 + adds r1, r2, r7 + ldrb r0, [r1] + cmp r0, r6 + bne _0810CDA0 + ldrb r0, [r1, 0x1] + cmp r0, r5 + bne _0810CDA0 + mov r1, r12 + adds r0, r2, r1 + ldr r0, [r0] + bl _call_via_r0 + movs r0, 0x1 + b _0810CDB2 + .align 2, 0 +_0810CD9C: .4byte gUnknown_083F7FC4 +_0810CDA0: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 3 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _0810CD7E +_0810CDB0: + movs r0, 0 +_0810CDB2: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_810CD5C + + thumb_func_start sub_810CDB8 +sub_810CDB8: @ 810CDB8 + push {r4-r6,lr} + lsls r0, 24 + lsls r1, 24 + lsrs r5, r0, 24 + lsrs r4, r1, 24 + movs r3, 0 + ldr r1, _0810CDE4 @ =gUnknown_083F7FC4 + ldrb r0, [r1] + cmp r0, 0 + beq _0810CDF8 + adds r6, r1, 0 +_0810CDCE: + lsls r0, r3, 3 + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, r5 + bne _0810CDE8 + ldrb r0, [r2, 0x1] + cmp r0, r4 + bne _0810CDE8 + ldrb r0, [r2, 0x2] + b _0810CDFA + .align 2, 0 +_0810CDE4: .4byte gUnknown_083F7FC4 +_0810CDE8: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 3 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0810CDCE +_0810CDF8: + movs r0, 0 +_0810CDFA: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_810CDB8 + + thumb_func_start fade_type_for_given_maplight_pair +fade_type_for_given_maplight_pair: @ 810CE00 + push {r4-r6,lr} + lsls r0, 24 + lsls r1, 24 + lsrs r5, r0, 24 + lsrs r4, r1, 24 + movs r3, 0 + ldr r1, _0810CE2C @ =gUnknown_083F7FC4 + ldrb r0, [r1] + cmp r0, 0 + beq _0810CE40 + adds r6, r1, 0 +_0810CE16: + lsls r0, r3, 3 + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, r5 + bne _0810CE30 + ldrb r0, [r2, 0x1] + cmp r0, r4 + bne _0810CE30 + ldrb r0, [r2, 0x3] + b _0810CE42 + .align 2, 0 +_0810CE2C: .4byte gUnknown_083F7FC4 +_0810CE30: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 3 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0810CE16 +_0810CE40: + movs r0, 0 +_0810CE42: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end fade_type_for_given_maplight_pair + + thumb_func_start sub_810CE48 +sub_810CE48: @ 810CE48 + push {lr} + ldr r0, _0810CE58 @ =sub_810CE5C + movs r1, 0 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_0810CE58: .4byte sub_810CE5C + thumb_func_end sub_810CE48 + + thumb_func_start sub_810CE5C +sub_810CE5C: @ 810CE5C + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810CE70 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _0810CE74 @ =sub_810CE78 + str r0, [r1] + bx lr + .align 2, 0 +_0810CE70: .4byte gTasks +_0810CE74: .4byte sub_810CE78 + thumb_func_end sub_810CE5C + + thumb_func_start sub_810CE78 +sub_810CE78: @ 810CE78 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r6, 0x80 + lsls r6, 19 + movs r5, 0 + strh r5, [r6] + ldr r0, _0810CEE8 @ =gCaveTransitionTiles + ldr r1, _0810CEEC @ =0x0600c000 + bl LZ77UnCompVram + ldr r0, _0810CEF0 @ =gCaveTransitionTilemap + ldr r1, _0810CEF4 @ =0x0600f800 + bl LZ77UnCompVram + ldr r0, _0810CEF8 @ =gCaveTransitionPalette_White + movs r1, 0xE0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _0810CEFC @ =gUnknown_083F809C + movs r1, 0xE0 + movs r2, 0x10 + bl LoadPalette + ldr r1, _0810CF00 @ =REG_BLDCNT + ldr r2, _0810CF04 @ =0x00003e41 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _0810CF08 @ =REG_BLDALPHA + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + subs r1, 0x48 + ldr r2, _0810CF0C @ =0x00001f0c + adds r0, r2, 0 + strh r0, [r1] + movs r1, 0x8A + lsls r1, 5 + adds r0, r1, 0 + strh r0, [r6] + ldr r1, _0810CF10 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0810CF14 @ =sub_810CF18 + str r1, [r0] + movs r2, 0 + movs r1, 0x10 + strh r1, [r0, 0x8] + strh r2, [r0, 0xA] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810CEE8: .4byte gCaveTransitionTiles +_0810CEEC: .4byte 0x0600c000 +_0810CEF0: .4byte gCaveTransitionTilemap +_0810CEF4: .4byte 0x0600f800 +_0810CEF8: .4byte gCaveTransitionPalette_White +_0810CEFC: .4byte gUnknown_083F809C +_0810CF00: .4byte REG_BLDCNT +_0810CF04: .4byte 0x00003e41 +_0810CF08: .4byte REG_BLDALPHA +_0810CF0C: .4byte 0x00001f0c +_0810CF10: .4byte gTasks +_0810CF14: .4byte sub_810CF18 + thumb_func_end sub_810CE78 + + thumb_func_start sub_810CF18 +sub_810CF18: @ 810CF18 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810CF44 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r3, r1, r2 + ldrh r2, [r3, 0xA] + movs r1, 0x80 + lsls r1, 5 + adds r0, r2, r1 + lsls r0, 16 + lsrs r0, 16 + ldr r1, _0810CF48 @ =REG_BLDALPHA + strh r0, [r1] + cmp r2, 0x10 + bhi _0810CF4C + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + b _0810CF54 + .align 2, 0 +_0810CF44: .4byte gTasks +_0810CF48: .4byte REG_BLDALPHA +_0810CF4C: + movs r0, 0 + strh r0, [r3, 0xC] + ldr r0, _0810CF58 @ =sub_810CF5C + str r0, [r3] +_0810CF54: + pop {r0} + bx r0 + .align 2, 0 +_0810CF58: .4byte sub_810CF5C + thumb_func_end sub_810CF18 + + thumb_func_start sub_810CF5C +sub_810CF5C: @ 810CF5C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810CF94 @ =REG_BLDALPHA + ldr r3, _0810CF98 @ =0x00001010 + adds r1, r3, 0 + strh r1, [r2] + ldr r2, _0810CF9C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r1, [r4, 0xC] + cmp r1, 0x7 + bhi _0810CFA4 + adds r0, r1, 0x1 + strh r0, [r4, 0xC] + lsls r1, 1 + ldr r0, _0810CFA0 @ =gUnknown_083F809C + adds r0, r1, r0 + movs r2, 0x10 + subs r2, r1 + lsls r2, 16 + lsrs r2, 16 + movs r1, 0xE0 + bl LoadPalette + b _0810CFB6 + .align 2, 0 +_0810CF94: .4byte REG_BLDALPHA +_0810CF98: .4byte 0x00001010 +_0810CF9C: .4byte gTasks +_0810CFA0: .4byte gUnknown_083F809C +_0810CFA4: + ldr r0, _0810CFBC @ =gCaveTransitionPalette_White + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _0810CFC0 @ =sub_810CFC4 + str r0, [r4] + movs r0, 0x8 + strh r0, [r4, 0xC] +_0810CFB6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810CFBC: .4byte gCaveTransitionPalette_White +_0810CFC0: .4byte sub_810CFC4 + thumb_func_end sub_810CF5C + + thumb_func_start sub_810CFC4 +sub_810CFC4: @ 810CFC4 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810CFE4 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrh r2, [r1, 0xC] + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _0810CFE8 + subs r0, r2, 0x1 + strh r0, [r1, 0xC] + b _0810CFF0 + .align 2, 0 +_0810CFE4: .4byte gTasks +_0810CFE8: + ldr r0, _0810CFF4 @ =gMain + ldr r0, [r0, 0x8] + bl SetMainCallback2 +_0810CFF0: + pop {r0} + bx r0 + .align 2, 0 +_0810CFF4: .4byte gMain + thumb_func_end sub_810CFC4 + + thumb_func_start sub_810CFF8 +sub_810CFF8: @ 810CFF8 + push {lr} + ldr r0, _0810D008 @ =sub_810D00C + movs r1, 0 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_0810D008: .4byte sub_810D00C + thumb_func_end sub_810CFF8 + + thumb_func_start sub_810D00C +sub_810D00C: @ 810D00C + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810D020 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _0810D024 @ =sub_810D028 + str r0, [r1] + bx lr + .align 2, 0 +_0810D020: .4byte gTasks +_0810D024: .4byte sub_810D028 + thumb_func_end sub_810D00C + + thumb_func_start sub_810D028 +sub_810D028: @ 810D028 + push {r4-r6,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r6, 0x80 + lsls r6, 19 + movs r4, 0 + strh r4, [r6] + ldr r0, _0810D098 @ =gCaveTransitionTiles + ldr r1, _0810D09C @ =0x0600c000 + bl LZ77UnCompVram + ldr r0, _0810D0A0 @ =gCaveTransitionTilemap + ldr r1, _0810D0A4 @ =0x0600f800 + bl LZ77UnCompVram + ldr r0, _0810D0A8 @ =REG_BLDCNT + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + ldr r1, _0810D0AC @ =REG_BG0CNT + ldr r2, _0810D0B0 @ =0x00001f0c + adds r0, r2, 0 + strh r0, [r1] + movs r1, 0x8A + lsls r1, 5 + adds r0, r1, 0 + strh r0, [r6] + ldr r0, _0810D0B4 @ =gCaveTransitionPalette_White + movs r1, 0xE0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _0810D0B8 @ =gCaveTransitionPalette_Black + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + ldr r1, _0810D0BC @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _0810D0C0 @ =sub_810D0C4 + str r1, [r0] + movs r2, 0 + movs r1, 0x10 + strh r1, [r0, 0x8] + strh r2, [r0, 0xA] + strh r2, [r0, 0xC] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810D098: .4byte gCaveTransitionTiles +_0810D09C: .4byte 0x0600c000 +_0810D0A0: .4byte gCaveTransitionTilemap +_0810D0A4: .4byte 0x0600f800 +_0810D0A8: .4byte REG_BLDCNT +_0810D0AC: .4byte REG_BG0CNT +_0810D0B0: .4byte 0x00001f0c +_0810D0B4: .4byte gCaveTransitionPalette_White +_0810D0B8: .4byte gCaveTransitionPalette_Black +_0810D0BC: .4byte gTasks +_0810D0C0: .4byte sub_810D0C4 + thumb_func_end sub_810D028 + + thumb_func_start sub_810D0C4 +sub_810D0C4: @ 810D0C4 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810D0F8 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r3, r1, r2 + ldrh r1, [r3, 0xC] + cmp r1, 0xF + bhi _0810D100 + adds r2, r1, 0x1 + adds r0, r2, 0x1 + strh r0, [r3, 0xC] + movs r0, 0xF + subs r0, r1 + lsls r0, 1 + ldr r1, _0810D0FC @ =gUnknown_083F808C + adds r0, r1 + lsls r2, 17 + lsrs r2, 16 + movs r1, 0xE0 + bl LoadPalette + b _0810D114 + .align 2, 0 +_0810D0F8: .4byte gTasks +_0810D0FC: .4byte gUnknown_083F808C +_0810D100: + ldr r1, _0810D118 @ =REG_BLDALPHA + ldr r2, _0810D11C @ =0x00001010 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x2 + ldr r2, _0810D120 @ =0x00003e41 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _0810D124 @ =sub_810D128 + str r0, [r3] +_0810D114: + pop {r0} + bx r0 + .align 2, 0 +_0810D118: .4byte REG_BLDALPHA +_0810D11C: .4byte 0x00001010 +_0810D120: .4byte 0x00003e41 +_0810D124: .4byte sub_810D128 + thumb_func_end sub_810D0C4 + + thumb_func_start sub_810D128 +sub_810D128: @ 810D128 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810D158 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r3, r1, r2 + ldrh r0, [r3, 0xA] + movs r1, 0x10 + subs r1, r0 + lsls r1, 16 + movs r2, 0x80 + lsls r2, 21 + adds r0, r1, r2 + lsrs r0, 16 + ldr r2, _0810D15C @ =REG_BLDALPHA + strh r0, [r2] + cmp r1, 0 + beq _0810D160 + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + b _0810D172 + .align 2, 0 +_0810D158: .4byte gTasks +_0810D15C: .4byte REG_BLDALPHA +_0810D160: + ldr r0, _0810D178 @ =gCaveTransitionPalette_Black + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _0810D17C @ =gMain + ldr r0, [r0, 0x8] + bl SetMainCallback2 +_0810D172: + pop {r0} + bx r0 + .align 2, 0 +_0810D178: .4byte gCaveTransitionPalette_Black +_0810D17C: .4byte gMain + thumb_func_end sub_810D128 + + thumb_func_start sub_810D180 +sub_810D180: @ 810D180 + push {r4-r7,lr} + sub sp, 0x4 + bl HealPlayerParty + ldr r4, _0810D1A0 @ =0x00000804 + adds r0, r4, 0 + bl FlagGet + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x1 + bne _0810D1A8 + ldr r0, _0810D1A4 @ =gUnknown_02039324 + strb r1, [r0] + b _0810D1B4 + .align 2, 0 +_0810D1A0: .4byte 0x00000804 +_0810D1A4: .4byte gUnknown_02039324 +_0810D1A8: + ldr r1, _0810D1E8 @ =gUnknown_02039324 + movs r0, 0 + strb r0, [r1] + adds r0, r4, 0 + bl FlagSet +_0810D1B4: + movs r0, 0x1 + bl GetGameStat + cmp r0, 0 + bne _0810D1D4 + ldr r2, _0810D1EC @ =gSaveBlock2 + ldrh r1, [r2, 0xE] + lsls r1, 16 + ldrb r0, [r2, 0x10] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x11] + orrs r1, r0 + movs r0, 0x1 + bl SetGameStat +_0810D1D4: + bl SetSecretBase2Field_9 + ldr r0, _0810D1EC @ =gSaveBlock2 + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _0810D1F0 + movs r0, 0x1 + bl sub_80537CC + b _0810D1F6 + .align 2, 0 +_0810D1E8: .4byte gUnknown_02039324 +_0810D1EC: .4byte gSaveBlock2 +_0810D1F0: + movs r0, 0x2 + bl sub_80537CC +_0810D1F6: + movs r6, 0 + movs r5, 0 + mov r7, sp +_0810D1FC: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _0810D260 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x5 + bl GetMonData + cmp r0, 0 + beq _0810D23A + adds r0, r4, 0 + movs r1, 0x6 + bl GetMonData + cmp r0, 0 + bne _0810D23A + adds r0, r4, 0 + movs r1, 0x43 + bl GetMonData + cmp r0, 0 + bne _0810D23A + movs r0, 0x1 + strb r0, [r7] + adds r0, r4, 0 + movs r1, 0x43 + mov r2, sp + bl SetMonData + movs r6, 0x1 +_0810D23A: + adds r5, 0x1 + cmp r5, 0x5 + ble _0810D1FC + cmp r6, 0x1 + bne _0810D250 + movs r0, 0x2A + bl IncrementGameStat + ldr r0, _0810D264 @ =0x0000083b + bl FlagSet +_0810D250: + ldr r0, _0810D268 @ =sub_8141F90 + bl SetMainCallback2 + movs r0, 0 + add sp, 0x4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0810D260: .4byte gPlayerParty +_0810D264: .4byte 0x0000083b +_0810D268: .4byte sub_8141F90 + thumb_func_end sub_810D180 + + thumb_func_start sp0C8_whiteout_maybe +sp0C8_whiteout_maybe: @ 810D26C + push {lr} + ldr r0, _0810D27C @ =CB2_WhiteOut + bl SetMainCallback2 + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0810D27C: .4byte CB2_WhiteOut + thumb_func_end sp0C8_whiteout_maybe + + thumb_func_start sub_810D280 +sub_810D280: @ 810D280 + push {r4,lr} + ldr r0, _0810D2A4 @ =0x00004024 + bl VarGet + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _0810D2A8 @ =0x00004025 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + lsls r4, 16 + orrs r4, r0 + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0810D2A4: .4byte 0x00004024 +_0810D2A8: .4byte 0x00004025 + thumb_func_end sub_810D280 + + thumb_func_start sub_810D2AC +sub_810D2AC: @ 810D2AC + push {r4,lr} + adds r4, r0, 0 + ldr r0, _0810D2CC @ =0x00004024 + lsrs r1, r4, 16 + bl VarSet + ldr r0, _0810D2D0 @ =0x00004025 + lsls r4, 16 + lsrs r4, 16 + adds r1, r4, 0 + bl VarSet + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810D2CC: .4byte 0x00004024 +_0810D2D0: .4byte 0x00004025 + thumb_func_end sub_810D2AC + + thumb_func_start unref_sub_810D2D4 +unref_sub_810D2D4: @ 810D2D4 + push {r4,lr} + bl Random + adds r4, r0, 0 + bl Random + lsls r4, 16 + lsls r0, 16 + lsrs r0, 16 + orrs r4, r0 + adds r0, r4, 0 + bl sub_810D2AC + pop {r4} + pop {r0} + bx r0 + thumb_func_end unref_sub_810D2D4 + + thumb_func_start sub_810D2F4 +sub_810D2F4: @ 810D2F4 + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + bl sub_810D280 + adds r1, r0, 0 + cmp r4, 0 + beq _0810D318 + ldr r3, _0810D324 @ =0x41c64e6d + ldr r2, _0810D328 @ =0x00003039 +_0810D308: + adds r0, r1, 0 + muls r0, r3 + adds r1, r0, r2 + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + bne _0810D308 +_0810D318: + adds r0, r1, 0 + bl sub_810D2AC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810D324: .4byte 0x41c64e6d +_0810D328: .4byte 0x00003039 + thumb_func_end sub_810D2F4 + + thumb_func_start sub_810D32C +sub_810D32C: @ 810D32C + push {r4-r6,lr} + bl sub_810D280 + lsrs r6, r0, 16 + movs r5, 0 +_0810D336: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _0810D360 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0810D368 + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + ldr r1, _0810D364 @ =0x0000ffff + ands r1, r0 + cmp r1, r6 + bne _0810D368 + movs r0, 0x1 + b _0810D370 + .align 2, 0 +_0810D360: .4byte gPlayerParty +_0810D364: .4byte 0x0000ffff +_0810D368: + adds r5, 0x1 + cmp r5, 0x5 + ble _0810D336 + movs r0, 0 +_0810D370: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_810D32C + + thumb_func_start sub_810D378 +sub_810D378: @ 810D378 + push {lr} + bl get_map_light_from_warp0 + lsls r0, 24 + lsrs r0, 24 + bl is_light_level_1_2_3_5_or_6 + lsls r0, 24 + cmp r0, 0 + beq _0810D3BE + bl RtcCalcLocalTime + ldr r1, _0810D3AC @ =gUnknown_083F8340 + ldr r0, _0810D3B0 @ =gLocalTime + ldrb r0, [r0, 0x2] + lsls r0, 24 + asrs r0, 24 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0810D3B8 + ldr r0, _0810D3B4 @ =0x0000083a + bl FlagSet + b _0810D3BE + .align 2, 0 +_0810D3AC: .4byte gUnknown_083F8340 +_0810D3B0: .4byte gLocalTime +_0810D3B4: .4byte 0x0000083a +_0810D3B8: + ldr r0, _0810D3C4 @ =0x0000083a + bl FlagReset +_0810D3BE: + pop {r0} + bx r0 + .align 2, 0 +_0810D3C4: .4byte 0x0000083a + thumb_func_end sub_810D378 + + thumb_func_start sub_810D3C8 +sub_810D3C8: @ 810D3C8 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_807DDFC + lsls r0, 24 + cmp r0, 0 + beq _0810D3E2 + bl EnableBothScriptContexts + adds r0, r4, 0 + bl DestroyTask +_0810D3E2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_810D3C8 + + thumb_func_start sub_810D3E8 +sub_810D3E8: @ 810D3E8 + push {lr} + ldr r0, _0810D3F8 @ =sub_810D3C8 + movs r1, 0x50 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_0810D3F8: .4byte sub_810D3C8 + thumb_func_end sub_810D3E8 + + thumb_func_start sub_810D3FC +sub_810D3FC: @ 810D3FC + push {lr} + ldr r0, _0810D40C @ =0x00004049 + bl GetVarPointer + movs r1, 0 + strh r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_0810D40C: .4byte 0x00004049 + thumb_func_end sub_810D3FC + + thumb_func_start UpdateBirchState +UpdateBirchState: @ 810D410 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _0810D438 @ =0x00004049 + bl GetVarPointer + adds r5, r0, 0 + ldrh r0, [r5] + adds r4, r0 + strh r4, [r5] + ldrh r0, [r5] + movs r1, 0x7 + bl __umodsi3 + strh r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810D438: .4byte 0x00004049 + thumb_func_end UpdateBirchState + + thumb_func_start ScriptGetPokedexInfo +ScriptGetPokedexInfo: @ 810D43C + push {lr} + ldr r0, _0810D458 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + cmp r0, 0 + bne _0810D460 + movs r0, 0 + bl GetHoennPokedexCount + ldr r1, _0810D45C @ =gSpecialVar_0x8005 + strh r0, [r1] + movs r0, 0x1 + bl GetHoennPokedexCount + b _0810D470 + .align 2, 0 +_0810D458: .4byte gSpecialVar_0x8004 +_0810D45C: .4byte gSpecialVar_0x8005 +_0810D460: + movs r0, 0 + bl GetNationalPokedexCount + ldr r1, _0810D480 @ =gSpecialVar_0x8005 + strh r0, [r1] + movs r0, 0x1 + bl GetNationalPokedexCount +_0810D470: + ldr r1, _0810D484 @ =gSpecialVar_0x8006 + strh r0, [r1] + bl IsNationalPokedexEnabled + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + .align 2, 0 +_0810D480: .4byte gSpecialVar_0x8005 +_0810D484: .4byte gSpecialVar_0x8006 + thumb_func_end ScriptGetPokedexInfo + + thumb_func_start GetPokedexRatingText +GetPokedexRatingText: @ 810D488 + push {lr} + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x9 + bhi _0810D494 + b _0810D5EC +_0810D494: + cmp r0, 0x13 + bhi _0810D4A0 + ldr r0, _0810D49C @ =gUnknown_081C456A + b _0810D5F6 + .align 2, 0 +_0810D49C: .4byte gUnknown_081C456A +_0810D4A0: + cmp r0, 0x1D + bhi _0810D4AC + ldr r0, _0810D4A8 @ =gUnknown_081C45B0 + b _0810D5F6 + .align 2, 0 +_0810D4A8: .4byte gUnknown_081C45B0 +_0810D4AC: + cmp r0, 0x27 + bhi _0810D4B8 + ldr r0, _0810D4B4 @ =gUnknown_081C45F9 + b _0810D5F6 + .align 2, 0 +_0810D4B4: .4byte gUnknown_081C45F9 +_0810D4B8: + cmp r0, 0x31 + bhi _0810D4C4 + ldr r0, _0810D4C0 @ =gUnknown_081C4648 + b _0810D5F6 + .align 2, 0 +_0810D4C0: .4byte gUnknown_081C4648 +_0810D4C4: + cmp r0, 0x3B + bhi _0810D4D0 + ldr r0, _0810D4CC @ =gUnknown_081C467E + b _0810D5F6 + .align 2, 0 +_0810D4CC: .4byte gUnknown_081C467E +_0810D4D0: + cmp r0, 0x45 + bhi _0810D4DC + ldr r0, _0810D4D8 @ =gUnknown_081C46B9 + b _0810D5F6 + .align 2, 0 +_0810D4D8: .4byte gUnknown_081C46B9 +_0810D4DC: + cmp r0, 0x4F + bhi _0810D4E8 + ldr r0, _0810D4E4 @ =gUnknown_081C46FE + b _0810D5F6 + .align 2, 0 +_0810D4E4: .4byte gUnknown_081C46FE +_0810D4E8: + cmp r0, 0x59 + bhi _0810D4F4 + ldr r0, _0810D4F0 @ =gUnknown_081C4747 + b _0810D5F6 + .align 2, 0 +_0810D4F0: .4byte gUnknown_081C4747 +_0810D4F4: + cmp r0, 0x63 + bhi _0810D500 + ldr r0, _0810D4FC @ =gUnknown_081C4780 + b _0810D5F6 + .align 2, 0 +_0810D4FC: .4byte gUnknown_081C4780 +_0810D500: + cmp r0, 0x6D + bhi _0810D50C + ldr r0, _0810D508 @ =gUnknown_081C47DF + b _0810D5F6 + .align 2, 0 +_0810D508: .4byte gUnknown_081C47DF +_0810D50C: + cmp r0, 0x77 + bhi _0810D518 + ldr r0, _0810D514 @ =gUnknown_081C4828 + b _0810D5F6 + .align 2, 0 +_0810D514: .4byte gUnknown_081C4828 +_0810D518: + cmp r0, 0x81 + bhi _0810D524 + ldr r0, _0810D520 @ =gUnknown_081C4863 + b _0810D5F6 + .align 2, 0 +_0810D520: .4byte gUnknown_081C4863 +_0810D524: + cmp r0, 0x8B + bhi _0810D530 + ldr r0, _0810D52C @ =gUnknown_081C489C + b _0810D5F6 + .align 2, 0 +_0810D52C: .4byte gUnknown_081C489C +_0810D530: + cmp r0, 0x95 + bhi _0810D53C + ldr r0, _0810D538 @ =gUnknown_081C48EB + b _0810D5F6 + .align 2, 0 +_0810D538: .4byte gUnknown_081C48EB +_0810D53C: + cmp r0, 0x9F + bhi _0810D548 + ldr r0, _0810D544 @ =gUnknown_081C4936 + b _0810D5F6 + .align 2, 0 +_0810D544: .4byte gUnknown_081C4936 +_0810D548: + cmp r0, 0xA9 + bhi _0810D554 + ldr r0, _0810D550 @ =gUnknown_081C49A2 + b _0810D5F6 + .align 2, 0 +_0810D550: .4byte gUnknown_081C49A2 +_0810D554: + cmp r0, 0xB3 + bhi _0810D560 + ldr r0, _0810D55C @ =gUnknown_081C4A06 + b _0810D5F6 + .align 2, 0 +_0810D55C: .4byte gUnknown_081C4A06 +_0810D560: + cmp r0, 0xBD + bhi _0810D56C + ldr r0, _0810D568 @ =gUnknown_081C4A4F + b _0810D5F6 + .align 2, 0 +_0810D568: .4byte gUnknown_081C4A4F +_0810D56C: + cmp r0, 0xC7 + bls _0810D5DA + cmp r0, 0xC8 + bne _0810D5A8 + ldr r0, _0810D5A4 @ =0x00000199 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl sub_8090D90 + lsls r0, 24 + cmp r0, 0 + bne _0810D5DA + movs r0, 0xCD + lsls r0, 1 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl sub_8090D90 + lsls r0, 24 + cmp r0, 0 + bne _0810D5DA + b _0810D5F4 + .align 2, 0 +_0810D5A4: .4byte 0x00000199 +_0810D5A8: + cmp r0, 0xC9 + bne _0810D5E8 + ldr r0, _0810D5E0 @ =0x00000199 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl sub_8090D90 + lsls r0, 24 + cmp r0, 0 + beq _0810D5F4 + movs r0, 0xCD + lsls r0, 1 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl sub_8090D90 + lsls r0, 24 + cmp r0, 0 + beq _0810D5F4 +_0810D5DA: + ldr r0, _0810D5E4 @ =gUnknown_081C4A91 + b _0810D5F6 + .align 2, 0 +_0810D5E0: .4byte 0x00000199 +_0810D5E4: .4byte gUnknown_081C4A91 +_0810D5E8: + cmp r0, 0xCA + beq _0810D5F4 +_0810D5EC: + ldr r0, _0810D5F0 @ =gUnknown_081C4520 + b _0810D5F6 + .align 2, 0 +_0810D5F0: .4byte gUnknown_081C4520 +_0810D5F4: + ldr r0, _0810D5FC @ =gUnknown_081C4ADA +_0810D5F6: + pop {r1} + bx r1 + .align 2, 0 +_0810D5FC: .4byte gUnknown_081C4ADA + thumb_func_end GetPokedexRatingText + + thumb_func_start ShowPokedexRatingMessage +ShowPokedexRatingMessage: @ 810D600 + push {lr} + ldr r0, _0810D614 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + bl GetPokedexRatingText + bl ShowFieldMessage + pop {r0} + bx r0 + .align 2, 0 +_0810D614: .4byte gSpecialVar_0x8004 + thumb_func_end ShowPokedexRatingMessage + + thumb_func_start AccessHallOfFamePC +AccessHallOfFamePC: @ 810D618 + push {lr} + ldr r0, _0810D628 @ =sub_81428CC + bl SetMainCallback2 + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_0810D628: .4byte sub_81428CC + thumb_func_end AccessHallOfFamePC + + thumb_func_start ReturnFromHallOfFamePC +ReturnFromHallOfFamePC: @ 810D62C + push {lr} + ldr r0, _0810D640 @ =c2_exit_to_overworld_2_switch + bl SetMainCallback2 + ldr r1, _0810D644 @ =gUnknown_0300485C + ldr r0, _0810D648 @ =ReshowPCMenuAfterHallOfFamePC + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0810D640: .4byte c2_exit_to_overworld_2_switch +_0810D644: .4byte gUnknown_0300485C +_0810D648: .4byte ReshowPCMenuAfterHallOfFamePC + thumb_func_end ReturnFromHallOfFamePC + + thumb_func_start ReshowPCMenuAfterHallOfFamePC +ReshowPCMenuAfterHallOfFamePC: @ 810D64C + push {lr} + sub sp, 0x4 + bl ScriptContext2_Enable + bl sub_8053E90 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + bl TryCreatePCMenu + bl sub_80B5838 + ldr r0, _0810D680 @ =sub_810D684 + movs r1, 0xA + bl CreateTask + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_0810D680: .4byte sub_810D684 + thumb_func_end ReshowPCMenuAfterHallOfFamePC + + thumb_func_start sub_810D684 +sub_810D684: @ 810D684 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _0810D6A0 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0810D69C + adds r0, r2, 0 + bl DestroyTask +_0810D69C: + pop {r0} + bx r0 + .align 2, 0 +_0810D6A0: .4byte gPaletteFade + thumb_func_end sub_810D684 + + thumb_func_start sub_810D6A4 +sub_810D6A4: @ 810D6A4 + push {lr} + ldr r0, _0810D6B4 @ =sub_8145D88 + bl SetMainCallback2 + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_0810D6B4: .4byte sub_8145D88 + thumb_func_end sub_810D6A4 + + thumb_func_start sub_810D6B8 +sub_810D6B8: @ 810D6B8 + push {lr} + ldr r0, _0810D6D0 @ =gMain + ldr r1, _0810D6D4 @ =c2_exit_to_overworld_2_switch + str r1, [r0, 0x8] + ldr r0, _0810D6D8 @ =CB2_ViewWallClock + bl SetMainCallback2 + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_0810D6D0: .4byte gMain +_0810D6D4: .4byte c2_exit_to_overworld_2_switch +_0810D6D8: .4byte CB2_ViewWallClock + thumb_func_end sub_810D6B8 + + thumb_func_start ResetCyclingRoadChallengeData +ResetCyclingRoadChallengeData: @ 810D6DC + ldr r0, _0810D6F0 @ =gUnknown_02039250 + movs r1, 0 + strb r1, [r0] + ldr r0, _0810D6F4 @ =gUnknown_02039251 + strb r1, [r0] + ldr r1, _0810D6F8 @ =gUnknown_02039254 + movs r0, 0 + str r0, [r1] + bx lr + .align 2, 0 +_0810D6F0: .4byte gUnknown_02039250 +_0810D6F4: .4byte gUnknown_02039251 +_0810D6F8: .4byte gUnknown_02039254 + thumb_func_end ResetCyclingRoadChallengeData + + thumb_func_start BeginCyclingRoadChallenge +BeginCyclingRoadChallenge: @ 810D6FC + ldr r1, _0810D714 @ =gUnknown_02039250 + movs r0, 0x1 + strb r0, [r1] + ldr r1, _0810D718 @ =gUnknown_02039251 + movs r0, 0 + strb r0, [r1] + ldr r1, _0810D71C @ =gUnknown_02039254 + ldr r0, _0810D720 @ =gMain + ldr r0, [r0, 0x20] + str r0, [r1] + bx lr + .align 2, 0 +_0810D714: .4byte gUnknown_02039250 +_0810D718: .4byte gUnknown_02039251 +_0810D71C: .4byte gUnknown_02039254 +_0810D720: .4byte gMain + thumb_func_end BeginCyclingRoadChallenge + + thumb_func_start GetPlayerAvatarBike +GetPlayerAvatarBike: @ 810D724 + push {lr} + movs r0, 0x4 + bl TestPlayerAvatarFlags + lsls r0, 24 + cmp r0, 0 + beq _0810D736 + movs r0, 0x1 + b _0810D748 +_0810D736: + movs r0, 0x2 + bl TestPlayerAvatarFlags + lsls r0, 24 + cmp r0, 0 + bne _0810D746 + movs r0, 0 + b _0810D748 +_0810D746: + movs r0, 0x2 +_0810D748: + pop {r1} + bx r1 + thumb_func_end GetPlayerAvatarBike + + thumb_func_start DetermineCyclingRoadResults +DetermineCyclingRoadResults: @ 810D74C + push {r4-r7,lr} + adds r7, r0, 0 + lsls r1, 24 + lsrs r6, r1, 24 + cmp r6, 0x63 + bhi _0810D778 + ldr r4, _0810D770 @ =gStringVar1 + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r1, _0810D774 @ =gOtherText_Times + adds r0, r4, 0 + bl StringAppend + b _0810D780 + .align 2, 0 +_0810D770: .4byte gStringVar1 +_0810D774: .4byte gOtherText_Times +_0810D778: + ldr r0, _0810D7CC @ =gStringVar1 + ldr r1, _0810D7D0 @ =gOtherText_99Times + bl StringCopy +_0810D780: + ldr r0, _0810D7D4 @ =0x00000e0f + cmp r7, r0 + bhi _0810D7E0 + ldr r4, _0810D7D8 @ =gStringVar2 + adds r0, r7, 0 + movs r1, 0x3C + bl __udivsi3 + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + movs r0, 0xAD + strb r0, [r4, 0x2] + adds r5, r4, 0x3 + adds r0, r7, 0 + movs r1, 0x3C + bl __umodsi3 + movs r1, 0x64 + muls r0, r1 + movs r1, 0x3C + bl __udivsi3 + adds r1, r0, 0 + adds r0, r5, 0 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r1, _0810D7DC @ =gOtherText_Seconds + adds r0, r4, 0 + bl StringAppend + b _0810D7E8 + .align 2, 0 +_0810D7CC: .4byte gStringVar1 +_0810D7D0: .4byte gOtherText_99Times +_0810D7D4: .4byte 0x00000e0f +_0810D7D8: .4byte gStringVar2 +_0810D7DC: .4byte gOtherText_Seconds +_0810D7E0: + ldr r0, _0810D7F4 @ =gStringVar2 + ldr r1, _0810D7F8 @ =gOtherText_1Minute + bl StringCopy +_0810D7E8: + movs r4, 0 + cmp r6, 0 + bne _0810D7FC + movs r4, 0x5 + b _0810D81A + .align 2, 0 +_0810D7F4: .4byte gStringVar2 +_0810D7F8: .4byte gOtherText_1Minute +_0810D7FC: + cmp r6, 0x3 + bhi _0810D804 + movs r4, 0x4 + b _0810D81A +_0810D804: + cmp r6, 0x9 + bhi _0810D80C + movs r4, 0x3 + b _0810D81A +_0810D80C: + cmp r6, 0x13 + bhi _0810D814 + movs r4, 0x2 + b _0810D81A +_0810D814: + cmp r6, 0x63 + bhi _0810D81A + movs r4, 0x1 +_0810D81A: + adds r0, r7, 0 + movs r1, 0x3C + bl __udivsi3 + cmp r0, 0xA + bhi _0810D82A + adds r0, r4, 0x5 + b _0810D848 +_0810D82A: + cmp r0, 0xF + bhi _0810D832 + adds r0, r4, 0x4 + b _0810D848 +_0810D832: + cmp r0, 0x14 + bhi _0810D83A + adds r0, r4, 0x3 + b _0810D848 +_0810D83A: + cmp r0, 0x28 + bhi _0810D842 + adds r0, r4, 0x2 + b _0810D848 +_0810D842: + cmp r0, 0x3B + bhi _0810D84C + adds r0, r4, 0x1 +_0810D848: + lsls r0, 24 + lsrs r4, r0, 24 +_0810D84C: + ldr r0, _0810D858 @ =gScriptResult + strh r4, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810D858: .4byte gScriptResult + thumb_func_end DetermineCyclingRoadResults + + thumb_func_start FinishCyclingRoadChallenge +FinishCyclingRoadChallenge: @ 810D85C + push {r4,r5,lr} + ldr r0, _0810D880 @ =gMain + ldr r1, _0810D884 @ =gUnknown_02039254 + ldr r4, [r0, 0x20] + ldr r0, [r1] + subs r4, r0 + ldr r5, _0810D888 @ =gUnknown_02039251 + ldrb r1, [r5] + adds r0, r4, 0 + bl DetermineCyclingRoadResults + ldrb r1, [r5] + adds r0, r4, 0 + bl RecordCyclingRoadResults + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810D880: .4byte gMain +_0810D884: .4byte gUnknown_02039254 +_0810D888: .4byte gUnknown_02039251 + thumb_func_end FinishCyclingRoadChallenge + + thumb_func_start RecordCyclingRoadResults +RecordCyclingRoadResults: @ 810D88C + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + ldr r6, _0810D8E0 @ =0x00004028 + adds r0, r6, 0 + bl VarGet + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r7, _0810D8E4 @ =0x00004029 + adds r0, r7, 0 + bl VarGet + lsls r0, 16 + adds r4, r0 + cmp r4, r5 + bhi _0810D8BC + cmp r4, 0 + bne _0810D8D6 +_0810D8BC: + lsls r1, r5, 16 + lsrs r1, 16 + adds r0, r6, 0 + bl VarSet + lsrs r1, r5, 16 + adds r0, r7, 0 + bl VarSet + ldr r0, _0810D8E8 @ =0x00004027 + mov r1, r8 + bl VarSet +_0810D8D6: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810D8E0: .4byte 0x00004028 +_0810D8E4: .4byte 0x00004029 +_0810D8E8: .4byte 0x00004027 + thumb_func_end RecordCyclingRoadResults + + thumb_func_start GetRecordedCyclingRoadResults +GetRecordedCyclingRoadResults: @ 810D8EC + push {r4,lr} + ldr r0, _0810D920 @ =0x00004028 + bl VarGet + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _0810D924 @ =0x00004029 + bl VarGet + lsls r0, 16 + adds r4, r0 + cmp r4, 0 + beq _0810D92C + ldr r0, _0810D928 @ =0x00004027 + bl VarGet + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl DetermineCyclingRoadResults + movs r0, 0x1 + b _0810D92E + .align 2, 0 +_0810D920: .4byte 0x00004028 +_0810D924: .4byte 0x00004029 +_0810D928: .4byte 0x00004027 +_0810D92C: + movs r0, 0 +_0810D92E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetRecordedCyclingRoadResults + + thumb_func_start UpdateCyclingRoadState +UpdateCyclingRoadState: @ 810D934 + push {r4,lr} + ldr r0, _0810D974 @ =gUnknown_020297F0 + ldrh r1, [r0] + ldr r0, _0810D978 @ =0x00000c1d + cmp r1, r0 + beq _0810D96C + ldr r4, _0810D97C @ =0x000040a9 + adds r0, r4, 0 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2 + beq _0810D95E + adds r0, r4, 0 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x3 + bne _0810D96C +_0810D95E: + adds r0, r4, 0 + movs r1, 0 + bl VarSet + movs r0, 0 + bl sav1_set_battle_music_maybe +_0810D96C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810D974: .4byte gUnknown_020297F0 +_0810D978: .4byte 0x00000c1d +_0810D97C: .4byte 0x000040a9 + thumb_func_end UpdateCyclingRoadState + + thumb_func_start SetSSTidalFlag +SetSSTidalFlag: @ 810D980 + push {lr} + ldr r0, _0810D998 @ =0x0000082d + bl FlagSet + ldr r0, _0810D99C @ =0x0000404a + bl GetVarPointer + movs r1, 0 + strh r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_0810D998: .4byte 0x0000082d +_0810D99C: .4byte 0x0000404a + thumb_func_end SetSSTidalFlag + + thumb_func_start ResetSSTidalFlag +ResetSSTidalFlag: @ 810D9A0 + push {lr} + ldr r0, _0810D9AC @ =0x0000082d + bl FlagReset + pop {r0} + bx r0 + .align 2, 0 +_0810D9AC: .4byte 0x0000082d + thumb_func_end ResetSSTidalFlag + + thumb_func_start sub_810D9B0 +sub_810D9B0: @ 810D9B0 + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, _0810D9DC @ =0x0000082d + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _0810D9D6 + ldr r0, _0810D9E0 @ =0x0000404a + bl GetVarPointer + ldrh r1, [r0] + adds r1, r4, r1 + strh r1, [r0] + lsls r1, 16 + lsrs r1, 16 + cmp r1, 0xCC + bhi _0810D9E4 +_0810D9D6: + movs r0, 0 + b _0810D9E6 + .align 2, 0 +_0810D9DC: .4byte 0x0000082d +_0810D9E0: .4byte 0x0000404a +_0810D9E4: + movs r0, 0x1 +_0810D9E6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_810D9B0 + + thumb_func_start sub_810D9EC +sub_810D9EC: @ 810D9EC + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r5, r1, 0 + adds r6, r2, 0 + adds r7, r3, 0 + ldr r0, _0810DA1C @ =0x0000404a + bl GetVarPointer + adds r4, r0, 0 + ldr r0, _0810DA20 @ =0x000040b4 + bl GetVarPointer + ldrh r0, [r0] + subs r0, 0x1 + cmp r0, 0x9 + bhi _0810DAB2 + lsls r0, 2 + ldr r1, _0810DA24 @ =_0810DA28 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0810DA1C: .4byte 0x0000404a +_0810DA20: .4byte 0x000040b4 +_0810DA24: .4byte _0810DA28 + .align 2, 0 +_0810DA28: + .4byte _0810DA50 + .4byte _0810DA60 + .4byte _0810DA54 + .4byte _0810DA58 + .4byte _0810DA58 + .4byte _0810DA5C + .4byte _0810DA88 + .4byte _0810DA50 + .4byte _0810DA54 + .4byte _0810DA5C +_0810DA50: + movs r0, 0x1 + b _0810DABE +_0810DA54: + movs r0, 0x4 + b _0810DABE +_0810DA58: + movs r0, 0x2 + b _0810DABE +_0810DA5C: + movs r0, 0x3 + b _0810DABE +_0810DA60: + ldrh r0, [r4] + cmp r0, 0x3B + bhi _0810DA70 + movs r0, 0x31 + strb r0, [r5] + ldrh r0, [r4] + adds r0, 0x13 + b _0810DAB0 +_0810DA70: + cmp r0, 0x8B + bhi _0810DA7E + movs r0, 0x30 + strb r0, [r5] + ldrh r0, [r4] + subs r0, 0x3C + b _0810DAB0 +_0810DA7E: + movs r0, 0x2F + strb r0, [r5] + ldrh r0, [r4] + subs r0, 0x8C + b _0810DAB0 +_0810DA88: + ldrh r0, [r4] + cmp r0, 0x41 + bhi _0810DA98 + movs r0, 0x2F + strb r0, [r5] + ldrh r1, [r4] + movs r0, 0x41 + b _0810DAAE +_0810DA98: + cmp r0, 0x91 + bhi _0810DAA6 + movs r0, 0x30 + strb r0, [r5] + ldrh r1, [r4] + movs r0, 0x91 + b _0810DAAE +_0810DAA6: + movs r0, 0x31 + strb r0, [r5] + ldrh r1, [r4] + movs r0, 0xE0 +_0810DAAE: + subs r0, r1 +_0810DAB0: + strh r0, [r6] +_0810DAB2: + movs r0, 0 + mov r1, r8 + strb r0, [r1] + movs r0, 0x14 + strh r0, [r7] + movs r0, 0 +_0810DABE: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_810D9EC + + thumb_func_start GetLinkPartnerNames +GetLinkPartnerNames: @ 810DAC8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r6, 0 + bl sub_8008218 + lsls r0, 24 + lsrs r7, r0, 24 + bl sub_800820C + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + cmp r4, r5 + bcs _0810DB12 + ldr r0, _0810DB20 @ =gUnknown_083D1464 + mov r8, r0 +_0810DAEA: + cmp r7, r4 + beq _0810DB08 + lsls r0, r6, 2 + add r0, r8 + ldr r0, [r0] + lsls r1, r4, 3 + subs r1, r4 + lsls r1, 2 + ldr r2, _0810DB24 @ =gLinkPlayers + 0x8 + adds r1, r2 + bl StringCopy + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_0810DB08: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r5 + bcc _0810DAEA +_0810DB12: + adds r0, r5, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0810DB20: .4byte gUnknown_083D1464 +_0810DB24: .4byte gLinkPlayers + 0x8 + thumb_func_end GetLinkPartnerNames + + thumb_func_start sub_810DB28 +sub_810DB28: @ 810DB28 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + movs r7, 0 + movs r0, 0 + mov r9, r0 + mov r8, r0 + ldr r1, _0810DB74 @ =gUnknown_083F8358 + add r0, sp, 0x8 + movs r2, 0x4 + bl memcpy + add r4, sp, 0xC + ldr r1, _0810DB78 @ =gUnknown_083F835C + adds r0, r4, 0 + movs r2, 0x8 + bl memcpy + bl sub_8008218 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0x2 + beq _0810DB94 + cmp r0, 0x2 + bgt _0810DB7C + cmp r0, 0x1 + beq _0810DBC0 + b _0810DBD2 + .align 2, 0 +_0810DB74: .4byte gUnknown_083F8358 +_0810DB78: .4byte gUnknown_083F835C +_0810DB7C: + cmp r1, 0x3 + beq _0810DB86 + cmp r1, 0x4 + beq _0810DBA8 + b _0810DBD2 +_0810DB86: + movs r7, 0x2 + ldr r1, _0810DB90 @ =gSaveBlock1 + ldrh r0, [r1] + subs r0, 0x1 + b _0810DBAE + .align 2, 0 +_0810DB90: .4byte gSaveBlock1 +_0810DB94: + movs r7, 0x1 + ldr r0, _0810DBA4 @ =gSaveBlock1 + ldrh r1, [r0] + mov r9, r1 + ldrh r0, [r0, 0x2] + subs r0, 0x1 + b _0810DBCC + .align 2, 0 +_0810DBA4: .4byte gSaveBlock1 +_0810DBA8: + ldr r1, _0810DBBC @ =gSaveBlock1 + ldrh r0, [r1] + adds r0, 0x1 +_0810DBAE: + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + ldrh r1, [r1, 0x2] + mov r8, r1 + b _0810DBD2 + .align 2, 0 +_0810DBBC: .4byte gSaveBlock1 +_0810DBC0: + movs r7, 0x3 + ldr r0, _0810DBD8 @ =gSaveBlock1 + ldrh r4, [r0] + mov r9, r4 + ldrh r0, [r0, 0x2] + adds r0, 0x1 +_0810DBCC: + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 +_0810DBD2: + movs r6, 0 + b _0810DC5C + .align 2, 0 +_0810DBD8: .4byte gSaveBlock1 +_0810DBDC: + cmp r10, r6 + beq _0810DC56 + ldr r1, _0810DC74 @ =gLinkPlayers + lsls r0, r6, 3 + subs r0, r6 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x13] + movs r0, 0 + bl sub_805983C + lsls r0, 24 + lsrs r0, 24 + mov r1, sp + adds r1, r7 + adds r1, 0x8 + ldrb r1, [r1] + movs r2, 0xF0 + subs r2, r6 + lsls r2, 24 + lsrs r2, 24 + lsls r5, r7, 1 + mov r3, sp + adds r3, r5 + adds r3, 0xC + ldrb r3, [r3] + lsls r3, 24 + asrs r3, 24 + mov r12, r3 + mov r4, r9 + lsls r3, r4, 16 + asrs r3, 16 + add r3, r12 + adds r3, 0x7 + lsls r3, 16 + asrs r3, 16 + mov r4, sp + adds r4, 0xD + adds r4, r5 + ldrb r4, [r4] + lsls r4, 24 + asrs r4, 24 + mov r12, r4 + mov r5, r8 + lsls r4, r5, 16 + asrs r4, 16 + add r4, r12 + adds r4, 0x7 + lsls r4, 16 + asrs r4, 16 + str r4, [sp] + movs r4, 0 + str r4, [sp, 0x4] + bl SpawnSpecialFieldObjectParametrized + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x4 + bne _0810DC56 + movs r7, 0 +_0810DC56: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_0810DC5C: + ldr r0, _0810DC78 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + cmp r6, r0 + bcc _0810DBDC + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810DC74: .4byte gLinkPlayers +_0810DC78: .4byte gSpecialVar_0x8004 + thumb_func_end sub_810DB28 + + thumb_func_start sub_810DC7C +sub_810DC7C: @ 810DC7C + push {r4,r5,lr} + movs r4, 0 + ldr r5, _0810DC9C @ =gUnknown_083F8364 +_0810DC82: + ldr r0, _0810DCA0 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + cmp r4, r0 + bne _0810DCA8 + lsls r1, r4, 2 + adds r1, r5 + ldrb r0, [r1] + ldrb r1, [r1, 0x1] + ldr r2, _0810DCA4 @ =0x00000206 + bl MapGridSetMetatileIdAt + b _0810DCB6 + .align 2, 0 +_0810DC9C: .4byte gUnknown_083F8364 +_0810DCA0: .4byte gSpecialVar_0x8004 +_0810DCA4: .4byte 0x00000206 +_0810DCA8: + lsls r1, r4, 2 + adds r1, r5 + ldrb r0, [r1] + ldrb r1, [r1, 0x1] + ldr r2, _0810DCC8 @ =0x00000205 + bl MapGridSetMetatileIdAt +_0810DCB6: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _0810DC82 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810DCC8: .4byte 0x00000205 + thumb_func_end sub_810DC7C + + thumb_func_start sub_810DCCC +sub_810DCCC: @ 810DCCC + push {r4-r6,lr} + movs r5, 0xC +_0810DCD0: + movs r4, 0x7 + adds r6, r5, 0x1 +_0810DCD4: + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridGetMetatileIdAt + ldr r1, _0810DCF0 @ =0xfffffde6 + adds r0, r1 + cmp r0, 0x37 + bls _0810DCE6 + b _0810DEC0 +_0810DCE6: + lsls r0, 2 + ldr r1, _0810DCF4 @ =_0810DCF8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0810DCF0: .4byte 0xfffffde6 +_0810DCF4: .4byte _0810DCF8 + .align 2, 0 +_0810DCF8: + .4byte _0810DE7E + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DDD8 + .4byte _0810DDDE + .4byte _0810DE18 + .4byte _0810DE20 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DDE8 + .4byte _0810DDEE + .4byte _0810DE28 + .4byte _0810DE30 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DDF8 + .4byte _0810DDFE + .4byte _0810DE38 + .4byte _0810DE40 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DE08 + .4byte _0810DE10 + .4byte _0810DE48 + .4byte _0810DE50 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DE58 + .4byte _0810DE68 + .4byte _0810DE78 + .4byte _0810DEA0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DE60 + .4byte _0810DE70 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEB6 + .4byte _0810DEA8 +_0810DDD8: + movs r2, 0x8C + lsls r2, 2 + b _0810DEAC +_0810DDDE: + ldr r2, _0810DDE4 @ =0x00000231 + b _0810DEAC + .align 2, 0 +_0810DDE4: .4byte 0x00000231 +_0810DDE8: + movs r2, 0x8E + lsls r2, 2 + b _0810DEAC +_0810DDEE: + ldr r2, _0810DDF4 @ =0x00000239 + b _0810DEAC + .align 2, 0 +_0810DDF4: .4byte 0x00000239 +_0810DDF8: + movs r2, 0x88 + lsls r2, 2 + b _0810DEAC +_0810DDFE: + ldr r2, _0810DE04 @ =0x00000221 + b _0810DEAC + .align 2, 0 +_0810DE04: .4byte 0x00000221 +_0810DE08: + ldr r2, _0810DE0C @ =0x00000e28 + b _0810DEAC + .align 2, 0 +_0810DE0C: .4byte 0x00000e28 +_0810DE10: + ldr r2, _0810DE14 @ =0x00000e29 + b _0810DEAC + .align 2, 0 +_0810DE14: .4byte 0x00000e29 +_0810DE18: + ldr r2, _0810DE1C @ =0x00000232 + b _0810DEAC + .align 2, 0 +_0810DE1C: .4byte 0x00000232 +_0810DE20: + ldr r2, _0810DE24 @ =0x00000233 + b _0810DEAC + .align 2, 0 +_0810DE24: .4byte 0x00000233 +_0810DE28: + ldr r2, _0810DE2C @ =0x0000023a + b _0810DEAC + .align 2, 0 +_0810DE2C: .4byte 0x0000023a +_0810DE30: + ldr r2, _0810DE34 @ =0x0000023b + b _0810DEAC + .align 2, 0 +_0810DE34: .4byte 0x0000023b +_0810DE38: + ldr r2, _0810DE3C @ =0x00000222 + b _0810DEAC + .align 2, 0 +_0810DE3C: .4byte 0x00000222 +_0810DE40: + ldr r2, _0810DE44 @ =0x00000223 + b _0810DEAC + .align 2, 0 +_0810DE44: .4byte 0x00000223 +_0810DE48: + ldr r2, _0810DE4C @ =0x00000e2a + b _0810DEAC + .align 2, 0 +_0810DE4C: .4byte 0x00000e2a +_0810DE50: + ldr r2, _0810DE54 @ =0x00000e2b + b _0810DEAC + .align 2, 0 +_0810DE54: .4byte 0x00000e2b +_0810DE58: + ldr r2, _0810DE5C @ =0x00000e42 + b _0810DEAC + .align 2, 0 +_0810DE5C: .4byte 0x00000e42 +_0810DE60: + ldr r2, _0810DE64 @ =0x0000021a + b _0810DEAC + .align 2, 0 +_0810DE64: .4byte 0x0000021a +_0810DE68: + ldr r2, _0810DE6C @ =0x00000e43 + b _0810DEAC + .align 2, 0 +_0810DE6C: .4byte 0x00000e43 +_0810DE70: + ldr r2, _0810DE74 @ =0x0000021a + b _0810DEAC + .align 2, 0 +_0810DE74: .4byte 0x0000021a +_0810DE78: + movs r2, 0xE4 + lsls r2, 4 + b _0810DEAC +_0810DE7E: + subs r1, r5, 0x1 + adds r0, r4, 0 + bl MapGridGetMetatileIdAt + movs r1, 0x90 + lsls r1, 2 + cmp r0, r1 + bne _0810DE98 + ldr r2, _0810DE94 @ =0x00000e48 + b _0810DEAC + .align 2, 0 +_0810DE94: .4byte 0x00000e48 +_0810DE98: + ldr r2, _0810DE9C @ =0x00000e49 + b _0810DEAC + .align 2, 0 +_0810DE9C: .4byte 0x00000e49 +_0810DEA0: + ldr r2, _0810DEA4 @ =0x00000e41 + b _0810DEAC + .align 2, 0 +_0810DEA4: .4byte 0x00000e41 +_0810DEA8: + movs r2, 0xE5 + lsls r2, 4 +_0810DEAC: + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridSetMetatileIdAt + b _0810DEC0 +_0810DEB6: + ldr r2, _0810DED8 @ =0x00000251 + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridSetMetatileIdAt +_0810DEC0: + adds r4, 0x1 + cmp r4, 0xF + bgt _0810DEC8 + b _0810DCD4 +_0810DEC8: + adds r5, r6, 0 + cmp r5, 0x17 + bgt _0810DED0 + b _0810DCD0 +_0810DED0: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810DED8: .4byte 0x00000251 + thumb_func_end sub_810DCCC + + thumb_func_start sub_810DEDC +sub_810DEDC: @ 810DEDC + push {r4-r6,lr} + ldr r4, _0810DF18 @ =gUnknown_083F8364 + movs r5, 0x2 +_0810DEE2: + ldrb r0, [r4] + ldrb r1, [r4, 0x1] + ldr r2, _0810DF1C @ =0x00000206 + bl MapGridSetMetatileIdAt + adds r4, 0x4 + subs r5, 0x1 + cmp r5, 0 + bge _0810DEE2 + movs r5, 0xC +_0810DEF6: + movs r4, 0x7 + adds r6, r5, 0x1 +_0810DEFA: + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridGetMetatileIdAt + ldr r1, _0810DF20 @ =0xfffffde0 + adds r0, r1 + cmp r0, 0x30 + bls _0810DF0C + b _0810E056 +_0810DF0C: + lsls r0, 2 + ldr r1, _0810DF24 @ =_0810DF28 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0810DF18: .4byte gUnknown_083F8364 +_0810DF1C: .4byte 0x00000206 +_0810DF20: .4byte 0xfffffde0 +_0810DF24: .4byte _0810DF28 + .align 2, 0 +_0810DF28: + .4byte _0810DFEC + .4byte _0810DFF2 + .4byte _0810E00C + .4byte _0810E014 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810DFFC + .4byte _0810E002 + .4byte _0810E01C + .4byte _0810E024 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E02C + .4byte _0810E034 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E03C + .4byte _0810E03C + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E04C +_0810DFEC: + movs r2, 0x8C + lsls r2, 2 + b _0810E03E +_0810DFF2: + ldr r2, _0810DFF8 @ =0x00000231 + b _0810E03E + .align 2, 0 +_0810DFF8: .4byte 0x00000231 +_0810DFFC: + movs r2, 0x8E + lsls r2, 2 + b _0810E03E +_0810E002: + ldr r2, _0810E008 @ =0x00000239 + b _0810E03E + .align 2, 0 +_0810E008: .4byte 0x00000239 +_0810E00C: + ldr r2, _0810E010 @ =0x00000232 + b _0810E03E + .align 2, 0 +_0810E010: .4byte 0x00000232 +_0810E014: + ldr r2, _0810E018 @ =0x00000233 + b _0810E03E + .align 2, 0 +_0810E018: .4byte 0x00000233 +_0810E01C: + ldr r2, _0810E020 @ =0x0000023a + b _0810E03E + .align 2, 0 +_0810E020: .4byte 0x0000023a +_0810E024: + ldr r2, _0810E028 @ =0x0000023b + b _0810E03E + .align 2, 0 +_0810E028: .4byte 0x0000023b +_0810E02C: + ldr r2, _0810E030 @ =0x00000e42 + b _0810E03E + .align 2, 0 +_0810E030: .4byte 0x00000e42 +_0810E034: + ldr r2, _0810E038 @ =0x00000e43 + b _0810E03E + .align 2, 0 +_0810E038: .4byte 0x00000e43 +_0810E03C: + ldr r2, _0810E048 @ =0x0000021a +_0810E03E: + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridSetMetatileIdAt + b _0810E056 + .align 2, 0 +_0810E048: .4byte 0x0000021a +_0810E04C: + ldr r2, _0810E06C @ =0x00000251 + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridSetMetatileIdAt +_0810E056: + adds r4, 0x1 + cmp r4, 0xF + bgt _0810E05E + b _0810DEFA +_0810E05E: + adds r5, r6, 0 + cmp r5, 0x17 + bgt _0810E066 + b _0810DEF6 +_0810E066: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810E06C: .4byte 0x00000251 + thumb_func_end sub_810DEDC + + thumb_func_start sub_810E070 +sub_810E070: @ 810E070 + push {lr} + ldr r0, _0810E090 @ =gUnknown_02039258 + movs r1, 0 + strb r1, [r0] + ldr r0, _0810E094 @ =gUnknown_02039259 + strb r1, [r0] + movs r0, 0x2C + bl PlaySE + ldr r0, _0810E098 @ =sub_810E09C + movs r1, 0x8 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_0810E090: .4byte gUnknown_02039258 +_0810E094: .4byte gUnknown_02039259 +_0810E098: .4byte sub_810E09C + thumb_func_end sub_810E070 + + thumb_func_start sub_810E09C +sub_810E09C: @ 810E09C + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _0810E0E4 @ =gUnknown_083F8370 + ldr r5, _0810E0E8 @ =gUnknown_02039259 + ldrb r1, [r5] + adds r0, r1, r0 + ldr r4, _0810E0EC @ =gUnknown_02039258 + ldrb r2, [r4] + ldrb r0, [r0] + cmp r0, r2 + bne _0810E0F8 + ldr r0, _0810E0F0 @ =gSpecialVar_0x8004 + ldrb r0, [r0] + ldr r2, _0810E0F4 @ =gUnknown_083F8376 + lsls r1, 1 + adds r1, r2 + ldrh r1, [r1] + bl sub_810E104 + movs r0, 0 + strb r0, [r4] + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bne _0810E0FC + adds r0, r6, 0 + bl DestroyTask + bl EnableBothScriptContexts + b _0810E0FC + .align 2, 0 +_0810E0E4: .4byte gUnknown_083F8370 +_0810E0E8: .4byte gUnknown_02039259 +_0810E0EC: .4byte gUnknown_02039258 +_0810E0F0: .4byte gSpecialVar_0x8004 +_0810E0F4: .4byte gUnknown_083F8376 +_0810E0F8: + adds r0, r2, 0x1 + strb r0, [r4] +_0810E0FC: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_810E09C + + thumb_func_start sub_810E104 +sub_810E104: @ 810E104 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r2, r1, 16 + movs r7, 0 + subs r0, 0x1 + cmp r0, 0x7 + bhi _0810E1CC + lsls r0, 2 + ldr r1, _0810E128 @ =_0810E12C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0810E128: .4byte _0810E12C + .align 2, 0 +_0810E12C: + .4byte _0810E14C + .4byte _0810E15E + .4byte _0810E170 + .4byte _0810E182 + .4byte _0810E190 + .4byte _0810E1A6 + .4byte _0810E1B2 + .4byte _0810E1C0 +_0810E14C: + movs r7, 0x2 + mov r1, sp + movs r0, 0x1 + strh r0, [r1] + movs r0, 0x7 + strh r0, [r1, 0x2] + add r1, sp, 0x8 + movs r0, 0x68 + b _0810E1A0 +_0810E15E: + movs r7, 0x2 + mov r1, sp + movs r0, 0x1 + strh r0, [r1] + movs r0, 0x7 + strh r0, [r1, 0x2] + add r1, sp, 0x8 + movs r0, 0x4E + b _0810E1A0 +_0810E170: + movs r7, 0x2 + mov r1, sp + movs r0, 0x1 + strh r0, [r1] + movs r0, 0x7 + strh r0, [r1, 0x2] + add r1, sp, 0x8 + movs r0, 0x5B + b _0810E1A0 +_0810E182: + movs r7, 0x1 + mov r1, sp + movs r0, 0x7 + strh r0, [r1] + add r1, sp, 0x8 + movs r0, 0x27 + b _0810E1CA +_0810E190: + movs r7, 0x2 + mov r1, sp + movs r0, 0x1 + strh r0, [r1] + movs r0, 0x7 + strh r0, [r1, 0x2] + add r1, sp, 0x8 + movs r0, 0x34 +_0810E1A0: + strh r0, [r1] + strh r0, [r1, 0x2] + b _0810E1CC +_0810E1A6: + movs r7, 0x1 + mov r0, sp + strh r7, [r0] + add r1, sp, 0x8 + movs r0, 0x41 + b _0810E1CA +_0810E1B2: + movs r7, 0x1 + mov r1, sp + movs r0, 0x7 + strh r0, [r1] + add r1, sp, 0x8 + movs r0, 0xD + b _0810E1CA +_0810E1C0: + movs r7, 0x1 + mov r0, sp + strh r7, [r0] + add r1, sp, 0x8 + movs r0, 0x1A +_0810E1CA: + strh r0, [r1] +_0810E1CC: + movs r6, 0 + cmp r6, r7 + bcs _0810E21E + movs r1, 0xC0 + lsls r1, 4 + adds r0, r1, 0 + adds r1, r2, 0 + orrs r1, r0 + lsls r1, 16 + mov r9, r1 + adds r1, r2, 0 + adds r1, 0x8 + orrs r1, r0 + lsls r1, 16 + mov r8, r1 +_0810E1EA: + lsls r1, r6, 1 + mov r3, sp + adds r5, r3, r1 + ldrh r0, [r5] + adds r0, 0x7 + add r4, sp, 0x8 + adds r4, r1 + ldrh r1, [r4] + adds r1, 0x7 + mov r3, r9 + lsrs r2, r3, 16 + bl MapGridSetMetatileIdAt + ldrh r0, [r5] + adds r0, 0x7 + ldrh r1, [r4] + adds r1, 0x8 + mov r3, r8 + lsrs r2, r3, 16 + bl MapGridSetMetatileIdAt + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, r7 + bcc _0810E1EA +_0810E21E: + bl DrawWholeMapView + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_810E104 + + thumb_func_start sub_810E230 +sub_810E230: @ 810E230 + push {lr} + ldr r0, _0810E244 @ =gSpecialVar_0x8004 + ldrb r0, [r0] + ldr r1, _0810E248 @ =gUnknown_083F8376 + ldrh r1, [r1, 0x8] + bl sub_810E104 + pop {r0} + bx r0 + .align 2, 0 +_0810E244: .4byte gSpecialVar_0x8004 +_0810E248: .4byte gUnknown_083F8376 + thumb_func_end sub_810E230 + + thumb_func_start ShowFieldMessageStringVar4 +ShowFieldMessageStringVar4: @ 810E24C + push {lr} + ldr r0, _0810E258 @ =gStringVar4 + bl ShowFieldMessage + pop {r0} + bx r0 + .align 2, 0 +_0810E258: .4byte gStringVar4 + thumb_func_end ShowFieldMessageStringVar4 + + thumb_func_start StorePlayerCoordsInVars +StorePlayerCoordsInVars: @ 810E25C + ldr r1, _0810E26C @ =gSpecialVar_0x8004 + ldr r2, _0810E270 @ =gSaveBlock1 + ldrh r0, [r2] + strh r0, [r1] + ldr r1, _0810E274 @ =gSpecialVar_0x8005 + ldrh r0, [r2, 0x2] + strh r0, [r1] + bx lr + .align 2, 0 +_0810E26C: .4byte gSpecialVar_0x8004 +_0810E270: .4byte gSaveBlock1 +_0810E274: .4byte gSpecialVar_0x8005 + thumb_func_end StorePlayerCoordsInVars + + thumb_func_start GetPlayerTrainerIdOnesDigit +GetPlayerTrainerIdOnesDigit: @ 810E278 + push {lr} + ldr r0, _0810E294 @ =gSaveBlock2 + ldrb r1, [r0, 0xB] + lsls r1, 8 + ldrb r0, [r0, 0xA] + orrs r0, r1 + movs r1, 0xA + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_0810E294: .4byte gSaveBlock2 + thumb_func_end GetPlayerTrainerIdOnesDigit + + thumb_func_start GetPlayerBigGuyGirlString +GetPlayerBigGuyGirlString: @ 810E298 + push {lr} + ldr r0, _0810E2AC @ =gSaveBlock2 + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _0810E2B8 + ldr r0, _0810E2B0 @ =gStringVar1 + ldr r1, _0810E2B4 @ =gOtherText_BigGuy + bl StringCopy + b _0810E2C0 + .align 2, 0 +_0810E2AC: .4byte gSaveBlock2 +_0810E2B0: .4byte gStringVar1 +_0810E2B4: .4byte gOtherText_BigGuy +_0810E2B8: + ldr r0, _0810E2C4 @ =gStringVar1 + ldr r1, _0810E2C8 @ =gOtherText_BigGirl + bl StringCopy +_0810E2C0: + pop {r0} + bx r0 + .align 2, 0 +_0810E2C4: .4byte gStringVar1 +_0810E2C8: .4byte gOtherText_BigGirl + thumb_func_end GetPlayerBigGuyGirlString + + thumb_func_start GetRivalSonDaughterString +GetRivalSonDaughterString: @ 810E2CC + push {lr} + ldr r0, _0810E2E0 @ =gSaveBlock2 + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _0810E2EC + ldr r0, _0810E2E4 @ =gStringVar1 + ldr r1, _0810E2E8 @ =gOtherText_Daughter + bl StringCopy + b _0810E2F4 + .align 2, 0 +_0810E2E0: .4byte gSaveBlock2 +_0810E2E4: .4byte gStringVar1 +_0810E2E8: .4byte gOtherText_Daughter +_0810E2EC: + ldr r0, _0810E2F8 @ =gStringVar1 + ldr r1, _0810E2FC @ =gOtherText_Son + bl StringCopy +_0810E2F4: + pop {r0} + bx r0 + .align 2, 0 +_0810E2F8: .4byte gStringVar1 +_0810E2FC: .4byte gOtherText_Son + thumb_func_end GetRivalSonDaughterString + + thumb_func_start sub_810E300 +sub_810E300: @ 810E300 + ldr r0, _0810E308 @ =gUnknown_02024D26 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0810E308: .4byte gUnknown_02024D26 + thumb_func_end sub_810E300 + + thumb_func_start CableCarWarp +CableCarWarp: @ 810E30C + push {lr} + sub sp, 0x4 + ldr r0, _0810E32C @ =gSpecialVar_0x8004 + ldrh r0, [r0] + cmp r0, 0 + beq _0810E330 + movs r2, 0x1 + negs r2, r2 + movs r0, 0x4 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r3, 0x6 + bl warp1_set + b _0810E342 + .align 2, 0 +_0810E32C: .4byte gSpecialVar_0x8004 +_0810E330: + movs r2, 0x1 + negs r2, r2 + movs r0, 0x4 + str r0, [sp] + movs r0, 0x13 + movs r1, 0x1 + movs r3, 0x6 + bl warp1_set +_0810E342: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end CableCarWarp + + thumb_func_start SetFlagInVar +SetFlagInVar: @ 810E348 + push {lr} + ldr r0, _0810E358 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + bl FlagSet + pop {r0} + bx r0 + .align 2, 0 +_0810E358: .4byte gSpecialVar_0x8004 + thumb_func_end SetFlagInVar + + thumb_func_start GetWeekCount +GetWeekCount: @ 810E35C + push {lr} + ldr r0, _0810E37C @ =gLocalTime + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0x7 + bl __divsi3 + lsls r0, 16 + lsrs r0, 16 + ldr r1, _0810E380 @ =0x0000270f + cmp r0, r1 + bls _0810E376 + adds r0, r1, 0 +_0810E376: + pop {r1} + bx r1 + .align 2, 0 +_0810E37C: .4byte gLocalTime +_0810E380: .4byte 0x0000270f + thumb_func_end GetWeekCount + + thumb_func_start GetLeadMonFriendshipScore +GetLeadMonFriendshipScore: @ 810E384 + push {r4,lr} + bl GetLeadMonIndex + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r1, r0 + ldr r0, _0810E3A8 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x20 + bl GetMonData + cmp r0, 0xFF + bne _0810E3AC + movs r0, 0x6 + b _0810E3FE + .align 2, 0 +_0810E3A8: .4byte gPlayerParty +_0810E3AC: + adds r0, r4, 0 + movs r1, 0x20 + bl GetMonData + cmp r0, 0xC7 + bls _0810E3BC + movs r0, 0x5 + b _0810E3FE +_0810E3BC: + adds r0, r4, 0 + movs r1, 0x20 + bl GetMonData + cmp r0, 0x95 + bls _0810E3CC + movs r0, 0x4 + b _0810E3FE +_0810E3CC: + adds r0, r4, 0 + movs r1, 0x20 + bl GetMonData + cmp r0, 0x63 + bls _0810E3DC + movs r0, 0x3 + b _0810E3FE +_0810E3DC: + adds r0, r4, 0 + movs r1, 0x20 + bl GetMonData + cmp r0, 0x31 + bls _0810E3EC + movs r0, 0x2 + b _0810E3FE +_0810E3EC: + adds r0, r4, 0 + movs r1, 0x20 + bl GetMonData + cmp r0, 0 + bne _0810E3FC + movs r0, 0 + b _0810E3FE +_0810E3FC: + movs r0, 0x1 +_0810E3FE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetLeadMonFriendshipScore + + thumb_func_start CB2_FieldShowRegionMap +CB2_FieldShowRegionMap: @ 810E404 + push {lr} + ldr r0, _0810E410 @ =c2_exit_to_overworld_1_continue_scripts_restart_music + bl FieldInitRegionMap + pop {r0} + bx r0 + .align 2, 0 +_0810E410: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music + thumb_func_end CB2_FieldShowRegionMap + + thumb_func_start FieldShowRegionMap +FieldShowRegionMap: @ 810E414 + push {lr} + ldr r0, _0810E420 @ =CB2_FieldShowRegionMap + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0810E420: .4byte CB2_FieldShowRegionMap + thumb_func_end FieldShowRegionMap + + thumb_func_start DoPCTurnOnEffect +DoPCTurnOnEffect: @ 810E424 + push {r4,lr} + ldr r4, _0810E460 @ =Task_PCTurnOnEffect + adds r0, r4, 0 + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0810E458 + adds r0, r4, 0 + movs r1, 0x8 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810E464 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0 + strh r2, [r1, 0x8] + strh r0, [r1, 0xA] + strh r2, [r1, 0xC] + strh r2, [r1, 0xE] + strh r2, [r1, 0x10] +_0810E458: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810E460: .4byte Task_PCTurnOnEffect +_0810E464: .4byte gTasks + thumb_func_end DoPCTurnOnEffect + + thumb_func_start Task_PCTurnOnEffect +Task_PCTurnOnEffect: @ 810E468 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _0810E48C @ =gTasks + adds r1, r0 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _0810E486 + adds r0, r1, 0 + bl PCTurnOffEffect_0 +_0810E486: + pop {r0} + bx r0 + .align 2, 0 +_0810E48C: .4byte gTasks + thumb_func_end Task_PCTurnOnEffect + + thumb_func_start PCTurnOffEffect_0 +PCTurnOffEffect_0: @ 810E490 + push {r4-r6,lr} + adds r4, r0, 0 + movs r6, 0 + movs r5, 0 + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0x6 + bne _0810E4FC + strh r5, [r4, 0xE] + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0x3 + beq _0810E4C4 + cmp r0, 0x3 + bgt _0810E4BA + cmp r0, 0x2 + beq _0810E4C0 + b _0810E4CC +_0810E4BA: + cmp r1, 0x4 + beq _0810E4C8 + b _0810E4CC +_0810E4C0: + movs r6, 0 + b _0810E4CA +_0810E4C4: + movs r6, 0xFF + b _0810E4CA +_0810E4C8: + movs r6, 0x1 +_0810E4CA: + movs r5, 0xFF +_0810E4CC: + movs r1, 0x10 + ldrsh r0, [r4, r1] + lsls r1, r6, 24 + asrs r1, 24 + lsls r2, r5, 24 + asrs r2, 24 + bl PCTurnOffEffect_1 + bl DrawWholeMapView + ldrh r0, [r4, 0x10] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x10] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + bne _0810E4FC + ldrb r0, [r4, 0xA] + bl DestroyTask +_0810E4FC: + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end PCTurnOffEffect_0 + + thumb_func_start PCTurnOffEffect_1 +PCTurnOffEffect_1: @ 810E508 + push {r4,r5,lr} + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r4, r2, 24 + movs r3, 0 + lsls r0, 16 + cmp r0, 0 + beq _0810E544 + ldr r0, _0810E528 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + cmp r0, 0 + bne _0810E52C + movs r3, 0x4 + b _0810E566 + .align 2, 0 +_0810E528: .4byte gSpecialVar_0x8004 +_0810E52C: + cmp r0, 0x1 + bne _0810E538 + ldr r3, _0810E534 @ =0x0000025a + b _0810E566 + .align 2, 0 +_0810E534: .4byte 0x0000025a +_0810E538: + cmp r0, 0x2 + bne _0810E566 + ldr r3, _0810E540 @ =0x00000259 + b _0810E566 + .align 2, 0 +_0810E540: .4byte 0x00000259 +_0810E544: + ldr r0, _0810E550 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + cmp r0, 0 + bne _0810E554 + movs r3, 0x5 + b _0810E566 + .align 2, 0 +_0810E550: .4byte gSpecialVar_0x8004 +_0810E554: + cmp r0, 0x1 + bne _0810E560 + ldr r3, _0810E55C @ =0x0000027f + b _0810E566 + .align 2, 0 +_0810E55C: .4byte 0x0000027f +_0810E560: + cmp r0, 0x2 + bne _0810E566 + ldr r3, _0810E594 @ =0x0000027e +_0810E566: + ldr r2, _0810E598 @ =gSaveBlock1 + movs r5, 0 + ldrsh r0, [r2, r5] + lsls r1, 24 + asrs r1, 24 + adds r0, r1 + adds r0, 0x7 + movs r5, 0x2 + ldrsh r1, [r2, r5] + lsls r2, r4, 24 + asrs r2, 24 + adds r1, r2 + adds r1, 0x7 + movs r4, 0xC0 + lsls r4, 4 + adds r2, r4, 0 + orrs r3, r2 + adds r2, r3, 0 + bl MapGridSetMetatileIdAt + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810E594: .4byte 0x0000027e +_0810E598: .4byte gSaveBlock1 + thumb_func_end PCTurnOffEffect_1 + + thumb_func_start DoPCTurnOffEffect +DoPCTurnOffEffect: @ 810E59C + push {lr} + bl PCTurnOffEffect + pop {r0} + bx r0 + thumb_func_end DoPCTurnOffEffect + + thumb_func_start PCTurnOffEffect +PCTurnOffEffect: @ 810E5A8 + push {r4-r6,lr} + movs r6, 0 + movs r5, 0 + movs r4, 0 + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0x3 + beq _0810E5D2 + cmp r0, 0x3 + bgt _0810E5C8 + cmp r0, 0x2 + beq _0810E5CE + b _0810E5DA +_0810E5C8: + cmp r1, 0x4 + beq _0810E5D6 + b _0810E5DA +_0810E5CE: + movs r6, 0 + b _0810E5D8 +_0810E5D2: + movs r6, 0xFF + b _0810E5D8 +_0810E5D6: + movs r6, 0x1 +_0810E5D8: + movs r5, 0xFF +_0810E5DA: + ldr r0, _0810E5E8 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + cmp r0, 0 + bne _0810E5EC + movs r4, 0x4 + b _0810E5FE + .align 2, 0 +_0810E5E8: .4byte gSpecialVar_0x8004 +_0810E5EC: + cmp r0, 0x1 + bne _0810E5F8 + ldr r4, _0810E5F4 @ =0x0000025a + b _0810E5FE + .align 2, 0 +_0810E5F4: .4byte 0x0000025a +_0810E5F8: + cmp r0, 0x2 + bne _0810E5FE + ldr r4, _0810E630 @ =0x00000259 +_0810E5FE: + ldr r2, _0810E634 @ =gSaveBlock1 + movs r1, 0 + ldrsh r0, [r2, r1] + lsls r1, r6, 24 + asrs r1, 24 + adds r0, r1 + adds r0, 0x7 + movs r3, 0x2 + ldrsh r1, [r2, r3] + lsls r2, r5, 24 + asrs r2, 24 + adds r1, r2 + adds r1, 0x7 + movs r3, 0xC0 + lsls r3, 4 + adds r2, r3, 0 + orrs r4, r2 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + bl DrawWholeMapView + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810E630: .4byte 0x00000259 +_0810E634: .4byte gSaveBlock1 + thumb_func_end PCTurnOffEffect + + thumb_func_start DoLotteryCornerComputerEffect +DoLotteryCornerComputerEffect: @ 810E638 + push {r4,lr} + ldr r4, _0810E674 @ =Task_LotteryCornerComputerEffect + adds r0, r4, 0 + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0810E66C + adds r0, r4, 0 + movs r1, 0x8 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810E678 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0 + strh r2, [r1, 0x8] + strh r0, [r1, 0xA] + strh r2, [r1, 0xC] + strh r2, [r1, 0xE] + strh r2, [r1, 0x10] +_0810E66C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810E674: .4byte Task_LotteryCornerComputerEffect +_0810E678: .4byte gTasks + thumb_func_end DoLotteryCornerComputerEffect + + thumb_func_start Task_LotteryCornerComputerEffect +Task_LotteryCornerComputerEffect: @ 810E67C + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _0810E6A0 @ =gTasks + adds r1, r0 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _0810E69A + adds r0, r1, 0 + bl LotteryCornerComputerEffect +_0810E69A: + pop {r0} + bx r0 + .align 2, 0 +_0810E6A0: .4byte gTasks + thumb_func_end Task_LotteryCornerComputerEffect + + thumb_func_start LotteryCornerComputerEffect +LotteryCornerComputerEffect: @ 810E6A4 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0x6 + bne _0810E712 + movs r0, 0 + strh r0, [r4, 0xE] + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _0810E6DC + ldr r2, _0810E6D4 @ =0x00000e9d + movs r0, 0x12 + movs r1, 0x8 + bl MapGridSetMetatileIdAt + ldr r2, _0810E6D8 @ =0x00000ea5 + movs r0, 0x12 + movs r1, 0x9 + bl MapGridSetMetatileIdAt + b _0810E6F2 + .align 2, 0 +_0810E6D4: .4byte 0x00000e9d +_0810E6D8: .4byte 0x00000ea5 +_0810E6DC: + ldr r2, _0810E720 @ =0x00000e58 + movs r0, 0x12 + movs r1, 0x8 + bl MapGridSetMetatileIdAt + movs r2, 0xE6 + lsls r2, 4 + movs r0, 0x12 + movs r1, 0x9 + bl MapGridSetMetatileIdAt +_0810E6F2: + bl DrawWholeMapView + ldrh r0, [r4, 0x10] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x10] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + bne _0810E712 + ldrb r0, [r4, 0xA] + bl DestroyTask +_0810E712: + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810E720: .4byte 0x00000e58 + thumb_func_end LotteryCornerComputerEffect + + thumb_func_start EndLotteryCornerComputerEffect +EndLotteryCornerComputerEffect: @ 810E724 + push {lr} + ldr r2, _0810E744 @ =0x00000e9d + movs r0, 0x12 + movs r1, 0x8 + bl MapGridSetMetatileIdAt + ldr r2, _0810E748 @ =0x00000ea5 + movs r0, 0x12 + movs r1, 0x9 + bl MapGridSetMetatileIdAt + bl DrawWholeMapView + pop {r0} + bx r0 + .align 2, 0 +_0810E744: .4byte 0x00000e9d +_0810E748: .4byte 0x00000ea5 + thumb_func_end EndLotteryCornerComputerEffect + + thumb_func_start SetDepartmentStoreFloorVar +SetDepartmentStoreFloorVar: @ 810E74C + push {lr} + ldr r0, _0810E768 @ =gSaveBlock1 + ldrb r0, [r0, 0x15] + subs r0, 0x11 + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x5 + bhi _0810E79C + lsls r0, 2 + ldr r1, _0810E76C @ =_0810E770 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0810E768: .4byte gSaveBlock1 +_0810E76C: .4byte _0810E770 + .align 2, 0 +_0810E770: + .4byte _0810E79C + .4byte _0810E788 + .4byte _0810E78C + .4byte _0810E790 + .4byte _0810E794 + .4byte _0810E798 +_0810E788: + movs r1, 0x1 + b _0810E79E +_0810E78C: + movs r1, 0x2 + b _0810E79E +_0810E790: + movs r1, 0x3 + b _0810E79E +_0810E794: + movs r1, 0x4 + b _0810E79E +_0810E798: + movs r1, 0xF + b _0810E79E +_0810E79C: + movs r1, 0 +_0810E79E: + ldr r0, _0810E7A8 @ =0x00004043 + bl VarSet + pop {r0} + bx r0 + .align 2, 0 +_0810E7A8: .4byte 0x00004043 + thumb_func_end SetDepartmentStoreFloorVar + + thumb_func_start ScriptAddElevatorMenuItem +ScriptAddElevatorMenuItem: @ 810E7AC + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r2, 24 + mov r12, r2 + lsls r3, 24 + lsrs r3, 24 + mov r8, r3 + ldr r0, _0810E81C @ =gSpecialVar_0x8004 + ldrh r1, [r0] + adds r2, r0, 0 + ldr r3, _0810E820 @ =gUnknown_03000760 + cmp r1, 0 + bne _0810E7E8 + movs r1, 0 + adds r5, r3, 0 + movs r4, 0x10 +_0810E7D8: + lsls r0, r1, 2 + adds r0, r5 + strb r4, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x13 + bls _0810E7D8 +_0810E7E8: + ldrh r0, [r2] + lsls r0, 2 + adds r0, r3 + strb r6, [r0] + ldrh r0, [r2] + lsls r0, 2 + adds r0, r3 + strb r7, [r0, 0x1] + ldrh r0, [r2] + lsls r0, 2 + adds r0, r3 + mov r1, r12 + strb r1, [r0, 0x2] + ldrh r0, [r2] + lsls r0, 2 + adds r0, r3 + mov r1, r8 + strb r1, [r0, 0x3] + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810E81C: .4byte gSpecialVar_0x8004 +_0810E820: .4byte gUnknown_03000760 + thumb_func_end ScriptAddElevatorMenuItem + + thumb_func_start ScriptShowElevatorMenu +ScriptShowElevatorMenu: @ 810E824 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _0810E868 @ =gUnknown_0203925A + strb r4, [r5] + ldr r0, _0810E86C @ =gUnknown_0203925B + strb r4, [r0] + movs r0, 0x10 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl ScriptAddElevatorMenuItem + ldr r2, _0810E870 @ =gUnknown_03000760 + ldrb r0, [r2] + cmp r0, 0x10 + beq _0810E85C + adds r1, r5, 0 +_0810E846: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x10 + bne _0810E846 +_0810E85C: + bl sub_810E874 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810E868: .4byte gUnknown_0203925A +_0810E86C: .4byte gUnknown_0203925B +_0810E870: .4byte gUnknown_03000760 + thumb_func_end ScriptShowElevatorMenu + + thumb_func_start sub_810E874 +sub_810E874: @ 810E874 + push {r4-r6,lr} + sub sp, 0x8 + bl ScriptContext2_Enable + ldr r4, _0810E8B8 @ =gUnknown_0203925A + ldrb r0, [r4] + cmp r0, 0x5 + bls _0810E8C0 + movs r0, 0 + movs r1, 0 + movs r2, 0x8 + movs r3, 0xB + bl MenuDrawTextWindow + movs r4, 0 + str r4, [sp] + movs r0, 0x7 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x5 + bl InitMenu + ldr r0, _0810E8BC @ =gUnknown_0203925C + strb r4, [r0] + bl sub_80F944C + bl LoadScrollIndicatorPalette + bl sub_810ECD4 + b _0810E8E8 + .align 2, 0 +_0810E8B8: .4byte gUnknown_0203925A +_0810E8BC: .4byte gUnknown_0203925C +_0810E8C0: + ldrb r3, [r4] + lsls r3, 1 + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0 + movs r1, 0 + movs r2, 0x8 + bl MenuDrawTextWindow + ldrb r3, [r4] + movs r0, 0 + str r0, [sp] + movs r0, 0x7 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl InitMenu +_0810E8E8: + movs r4, 0 + ldr r1, _0810E938 @ =gUnknown_03000760 + ldrb r0, [r1] + cmp r0, 0x10 + beq _0810E924 + ldr r6, _0810E93C @ =gUnknown_083F8380 + adds r5, r1, 0 +_0810E8F6: + lsls r0, r4, 2 + adds r0, r5 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + lsls r2, r4, 1 + adds r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + movs r1, 0x1 + bl MenuPrint + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bhi _0810E924 + lsls r0, r4, 2 + adds r0, r5 + ldrb r0, [r0] + cmp r0, 0x10 + bne _0810E8F6 +_0810E924: + bl sub_810E944 + ldr r0, _0810E940 @ =sub_810E984 + movs r1, 0x8 + bl CreateTask + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810E938: .4byte gUnknown_03000760 +_0810E93C: .4byte gUnknown_083F8380 +_0810E940: .4byte sub_810E984 + thumb_func_end sub_810E874 + + thumb_func_start sub_810E944 +sub_810E944: @ 810E944 + push {lr} + movs r0, 0x14 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x5 + bl MenuDrawTextWindow + ldr r0, _0810E978 @ =gOtherText_NowOn + movs r1, 0x15 + movs r2, 0x1 + movs r3, 0x40 + bl sub_8072BD8 + ldr r1, _0810E97C @ =gUnknown_083F8380 + ldr r0, _0810E980 @ =gSpecialVar_0x8005 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x15 + movs r2, 0x3 + movs r3, 0x40 + bl sub_8072BD8 + pop {r0} + bx r0 + .align 2, 0 +_0810E978: .4byte gOtherText_NowOn +_0810E97C: .4byte gUnknown_083F8380 +_0810E980: .4byte gSpecialVar_0x8005 + thumb_func_end sub_810E944 + + thumb_func_start sub_810E984 +sub_810E984: @ 810E984 + push {r4-r6,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _0810EA44 @ =gMain + ldrh r0, [r0, 0x2E] + cmp r0, 0x40 + bne _0810E9B8 + ldr r1, _0810EA48 @ =gUnknown_0203925B + ldrb r0, [r1] + cmp r0, 0 + beq _0810E9B8 + subs r0, 0x1 + strb r0, [r1] + bl GetMenuCursorPos + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursorNoWrap + adds r0, r4, 0 + movs r1, 0x40 + bl sub_810EAC8 +_0810E9B8: + ldr r0, _0810EA44 @ =gMain + ldrh r0, [r0, 0x2E] + cmp r0, 0x80 + bne _0810E9E8 + ldr r2, _0810EA48 @ =gUnknown_0203925B + ldrb r1, [r2] + ldr r0, _0810EA4C @ =gUnknown_0203925A + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + beq _0810E9E8 + adds r0, r1, 0x1 + strb r0, [r2] + bl GetMenuCursorPos + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x1 + bl MoveMenuCursorNoWrap + adds r0, r4, 0 + movs r1, 0x80 + bl sub_810EAC8 +_0810E9E8: + ldr r0, _0810EA44 @ =gMain + ldrh r2, [r0, 0x2E] + movs r5, 0x1 + adds r1, r5, 0 + ands r1, r2 + cmp r1, 0 + beq _0810EA94 + ldr r1, _0810EA50 @ =gUnknown_03000760 + ldr r4, _0810EA48 @ =gUnknown_0203925B + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + movs r1, 0x1 + ldrsb r1, [r0, r1] + movs r2, 0x2 + ldrsb r2, [r0, r2] + movs r3, 0x1 + negs r3, r3 + movs r0, 0x2 + str r0, [sp] + str r5, [sp, 0x4] + movs r0, 0 + bl saved_warp2_set_2 + ldr r1, _0810EA54 @ =gSpecialVar_0x8005 + ldrh r0, [r1] + ldrb r2, [r4] + cmp r0, r2 + bne _0810EA5C + ldr r1, _0810EA58 @ =gScriptResult + movs r0, 0 + strh r0, [r1] + movs r0, 0x5 + bl PlaySE + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0xC + bl MenuZeroFillWindowRect + adds r0, r6, 0 + bl sub_810EC9C + b _0810EABC + .align 2, 0 +_0810EA44: .4byte gMain +_0810EA48: .4byte gUnknown_0203925B +_0810EA4C: .4byte gUnknown_0203925A +_0810EA50: .4byte gUnknown_03000760 +_0810EA54: .4byte gSpecialVar_0x8005 +_0810EA58: .4byte gScriptResult +_0810EA5C: + ldr r0, _0810EA88 @ =gScriptResult + strh r5, [r0] + ldrb r0, [r4] + strh r0, [r1] + bl sub_810EBEC + ldr r0, _0810EA8C @ =gScriptLastTalked + ldrb r0, [r0] + ldr r2, _0810EA90 @ =gSaveBlock1 + ldrb r1, [r2, 0x5] + ldrb r2, [r2, 0x4] + movs r3, 0x1 + bl FieldObjectTurnByLocalIdAndMap + bl sub_810EEDC + bl MenuZeroFillScreen + adds r0, r6, 0 + bl DestroyTask + b _0810EABC + .align 2, 0 +_0810EA88: .4byte gScriptResult +_0810EA8C: .4byte gScriptLastTalked +_0810EA90: .4byte gSaveBlock1 +_0810EA94: + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _0810EABC + ldr r0, _0810EAC4 @ =gScriptResult + strh r1, [r0] + movs r0, 0x5 + bl PlaySE + bl sub_810EEDC + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0xC + bl MenuZeroFillWindowRect + adds r0, r6, 0 + bl sub_810EC9C +_0810EABC: + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810EAC4: .4byte gScriptResult + thumb_func_end sub_810E984 + + thumb_func_start sub_810EAC8 +sub_810EAC8: @ 810EAC8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r2, r0, 24 + adds r5, r2, 0 + lsls r1, 24 + lsrs r1, 24 + adds r3, r1, 0 + movs r7, 0 + movs r4, 0 + ldr r0, _0810EAEC @ =gUnknown_0203925A + ldrb r0, [r0] + cmp r0, 0x4 + bhi _0810EAF0 + movs r0, 0 + b _0810EB78 + .align 2, 0 +_0810EAEC: .4byte gUnknown_0203925A +_0810EAF0: + cmp r1, 0x40 + bne _0810EB04 + cmp r2, 0 + bne _0810EB18 + ldr r0, _0810EB00 @ =gUnknown_0203925B + ldrb r4, [r0] + movs r7, 0x1 + b _0810EB1C + .align 2, 0 +_0810EB00: .4byte gUnknown_0203925B +_0810EB04: + cmp r3, 0x80 + bne _0810EB18 + cmp r5, 0x4 + bne _0810EB18 + ldr r0, _0810EB84 @ =gUnknown_0203925B + ldrb r0, [r0] + subs r0, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + movs r7, 0x1 +_0810EB18: + cmp r7, 0 + beq _0810EB76 +_0810EB1C: + adds r0, r4, 0 + movs r1, 0x5 + bl sub_810EB90 + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0x7 + movs r3, 0xA + bl MenuFillWindowRectWithBlankTile + movs r5, 0 + ldr r2, _0810EB88 @ =gUnknown_03000760 + lsls r1, r4, 2 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0x10 + beq _0810EB76 + ldr r0, _0810EB8C @ =gUnknown_083F8380 + mov r8, r0 + adds r6, r2, 0 +_0810EB44: + adds r0, r1, r6 + ldrb r0, [r0] + lsls r0, 2 + add r0, r8 + ldr r0, [r0] + lsls r2, r5, 1 + adds r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + movs r1, 0x1 + bl MenuPrint + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x4 + bhi _0810EB76 + lsls r1, r4, 2 + adds r0, r1, r6 + ldrb r0, [r0] + cmp r0, 0x10 + bne _0810EB44 +_0810EB76: + adds r0, r7, 0 +_0810EB78: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0810EB84: .4byte gUnknown_0203925B +_0810EB88: .4byte gUnknown_03000760 +_0810EB8C: .4byte gUnknown_083F8380 + thumb_func_end sub_810EAC8 + + thumb_func_start sub_810EB90 +sub_810EB90: @ 810EB90 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + cmp r4, 0 + bne _0810EBB4 + ldr r0, _0810EBB0 @ =gUnknown_0203925C + ldrb r1, [r0] + movs r2, 0x2 + eors r1, r2 + strb r1, [r0] + movs r0, 0 + bl DestroyVerticalScrollIndicator + b _0810EBB8 + .align 2, 0 +_0810EBB0: .4byte gUnknown_0203925C +_0810EBB4: + bl sub_810ECB0 +_0810EBB8: + adds r1, r4, r5 + ldr r0, _0810EBC8 @ =gUnknown_0203925A + ldrb r0, [r0] + cmp r1, r0 + bge _0810EBCC + bl sub_810ECD4 + b _0810EBE0 + .align 2, 0 +_0810EBC8: .4byte gUnknown_0203925A +_0810EBCC: + cmp r1, r0 + bne _0810EBE0 + ldr r0, _0810EBE8 @ =gUnknown_0203925C + ldrb r1, [r0] + movs r2, 0x1 + eors r1, r2 + strb r1, [r0] + movs r0, 0x1 + bl DestroyVerticalScrollIndicator +_0810EBE0: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810EBE8: .4byte gUnknown_0203925C + thumb_func_end sub_810EB90 + + thumb_func_start sub_810EBEC +sub_810EBEC: @ 810EBEC + push {lr} + ldr r0, _0810EC2C @ =sub_810EC34 + movs r1, 0x9 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810EC30 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + movs r2, 0x1 + strh r2, [r1, 0x8] + strh r0, [r1, 0xA] + strh r0, [r1, 0xC] + strh r0, [r1, 0xE] + strh r2, [r1, 0x10] + movs r0, 0x3 + strh r0, [r1, 0x12] + movs r0, 0 + bl SetCameraPanningCallback + bl sub_810ECFC + movs r0, 0x59 + bl PlaySE + pop {r0} + bx r0 + .align 2, 0 +_0810EC2C: .4byte sub_810EC34 +_0810EC30: .4byte gTasks + thumb_func_end sub_810EBEC + + thumb_func_start sub_810EC34 +sub_810EC34: @ 810EC34 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _0810EC98 @ =gTasks + adds r4, r0, r1 + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r1, 0xA + ldrsh r0, [r4, r1] + movs r2, 0x12 + ldrsh r1, [r4, r2] + bl __modsi3 + cmp r0, 0 + bne _0810EC92 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _0810EC92 + ldrh r0, [r4, 0x10] + negs r0, r0 + strh r0, [r4, 0x10] + movs r2, 0x10 + ldrsh r1, [r4, r2] + movs r0, 0 + bl SetCameraPanning + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x17 + bne _0810EC92 + movs r0, 0x49 + bl PlaySE + adds r0, r5, 0 + bl sub_810EC9C + bl InstallCameraPanAheadCallback +_0810EC92: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810EC98: .4byte gTasks + thumb_func_end sub_810EC34 + + thumb_func_start sub_810EC9C +sub_810EC9C: @ 810EC9C + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + bl EnableBothScriptContexts + pop {r0} + bx r0 + thumb_func_end sub_810EC9C + + thumb_func_start sub_810ECB0 +sub_810ECB0: @ 810ECB0 + push {lr} + ldr r2, _0810ECD0 @ =gUnknown_0203925C + ldrb r1, [r2] + lsrs r0, r1, 1 + cmp r0, 0x1 + beq _0810ECCC + movs r0, 0x2 + orrs r0, r1 + strb r0, [r2] + movs r0, 0 + movs r1, 0x24 + movs r2, 0x8 + bl CreateVerticalScrollIndicators +_0810ECCC: + pop {r0} + bx r0 + .align 2, 0 +_0810ECD0: .4byte gUnknown_0203925C + thumb_func_end sub_810ECB0 + + thumb_func_start sub_810ECD4 +sub_810ECD4: @ 810ECD4 + push {lr} + ldr r2, _0810ECF8 @ =gUnknown_0203925C + ldrb r1, [r2] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0810ECF2 + movs r0, 0x1 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x1 + movs r1, 0x24 + movs r2, 0x48 + bl CreateVerticalScrollIndicators +_0810ECF2: + pop {r0} + bx r0 + .align 2, 0 +_0810ECF8: .4byte gUnknown_0203925C + thumb_func_end sub_810ECD4 + + thumb_func_start sub_810ECFC +sub_810ECFC: @ 810ECFC + push {r4,lr} + ldr r4, _0810ED38 @ =sub_810ED40 + adds r0, r4, 0 + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0810ED30 + adds r0, r4, 0 + movs r1, 0x8 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810ED3C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0 + strh r2, [r1, 0x8] + strh r0, [r1, 0xA] + strh r2, [r1, 0xC] + strh r2, [r1, 0xE] + strh r2, [r1, 0x10] +_0810ED30: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810ED38: .4byte sub_810ED40 +_0810ED3C: .4byte gTasks + thumb_func_end sub_810ECFC + + thumb_func_start sub_810ED40 +sub_810ED40: @ 810ED40 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _0810ED5C @ =gTasks + adds r0, r1 + bl sub_810ED60 + pop {r0} + bx r0 + .align 2, 0 +_0810ED5C: .4byte gTasks + thumb_func_end sub_810ED40 + + thumb_func_start sub_810ED60 +sub_810ED60: @ 810ED60 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0xE + ldrsh r0, [r5, r1] + cmp r0, 0x8 + beq _0810ED6E + b _0810EEB2 +_0810ED6E: + movs r0, 0 + strh r0, [r5, 0xE] + movs r1, 0x10 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _0810EE14 + ldr r2, _0810EDFC @ =0x00000e68 + movs r0, 0x7 + movs r1, 0x7 + bl MapGridSetMetatileIdAt + ldr r4, _0810EE00 @ =0x00000e69 + movs r0, 0x8 + movs r1, 0x7 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + movs r0, 0x9 + movs r1, 0x7 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + ldr r2, _0810EE04 @ =0x00000e6a + movs r0, 0xA + movs r1, 0x7 + bl MapGridSetMetatileIdAt + movs r2, 0xE7 + lsls r2, 4 + movs r0, 0x7 + movs r1, 0x8 + bl MapGridSetMetatileIdAt + adds r4, 0x8 + movs r0, 0x8 + movs r1, 0x8 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + movs r0, 0x9 + movs r1, 0x8 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + ldr r2, _0810EE08 @ =0x00000e72 + movs r0, 0xA + movs r1, 0x8 + bl MapGridSetMetatileIdAt + ldr r2, _0810EE0C @ =0x00000e78 + movs r0, 0x7 + movs r1, 0x9 + bl MapGridSetMetatileIdAt + adds r4, 0x8 + movs r0, 0x8 + movs r1, 0x9 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + movs r0, 0x9 + movs r1, 0x9 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + ldr r2, _0810EE10 @ =0x00000e7a + movs r0, 0xA + movs r1, 0x9 + bl MapGridSetMetatileIdAt + b _0810EE92 + .align 2, 0 +_0810EDFC: .4byte 0x00000e68 +_0810EE00: .4byte 0x00000e69 +_0810EE04: .4byte 0x00000e6a +_0810EE08: .4byte 0x00000e72 +_0810EE0C: .4byte 0x00000e78 +_0810EE10: .4byte 0x00000e7a +_0810EE14: + ldr r2, _0810EEC0 @ =0x00000e6b + movs r0, 0x7 + movs r1, 0x7 + bl MapGridSetMetatileIdAt + ldr r4, _0810EEC4 @ =0x00000e6c + movs r0, 0x8 + movs r1, 0x7 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + movs r0, 0x9 + movs r1, 0x7 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + ldr r2, _0810EEC8 @ =0x00000e6d + movs r0, 0xA + movs r1, 0x7 + bl MapGridSetMetatileIdAt + ldr r2, _0810EECC @ =0x00000e73 + movs r0, 0x7 + movs r1, 0x8 + bl MapGridSetMetatileIdAt + adds r4, 0x8 + movs r0, 0x8 + movs r1, 0x8 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + movs r0, 0x9 + movs r1, 0x8 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + ldr r2, _0810EED0 @ =0x00000e75 + movs r0, 0xA + movs r1, 0x8 + bl MapGridSetMetatileIdAt + ldr r2, _0810EED4 @ =0x00000e7b + movs r0, 0x7 + movs r1, 0x9 + bl MapGridSetMetatileIdAt + adds r4, 0x8 + movs r0, 0x8 + movs r1, 0x9 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + movs r0, 0x9 + movs r1, 0x9 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + ldr r2, _0810EED8 @ =0x00000e7d + movs r0, 0xA + movs r1, 0x9 + bl MapGridSetMetatileIdAt +_0810EE92: + bl DrawWholeMapView + ldrh r0, [r5, 0x10] + movs r1, 0x1 + eors r0, r1 + strh r0, [r5, 0x10] + ldrh r0, [r5, 0xC] + adds r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + bne _0810EEB2 + ldrb r0, [r5, 0xA] + bl DestroyTask +_0810EEB2: + ldrh r0, [r5, 0xE] + adds r0, 0x1 + strh r0, [r5, 0xE] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810EEC0: .4byte 0x00000e6b +_0810EEC4: .4byte 0x00000e6c +_0810EEC8: .4byte 0x00000e6d +_0810EECC: .4byte 0x00000e73 +_0810EED0: .4byte 0x00000e75 +_0810EED4: .4byte 0x00000e7b +_0810EED8: .4byte 0x00000e7d + thumb_func_end sub_810ED60 + + thumb_func_start sub_810EEDC +sub_810EEDC: @ 810EEDC + push {r4,lr} + ldr r4, _0810EF08 @ =gUnknown_0203925C + ldrb r1, [r4] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0810EEF0 + movs r0, 0x1 + bl DestroyVerticalScrollIndicator +_0810EEF0: + ldrb r0, [r4] + lsrs r0, 1 + cmp r0, 0x1 + bne _0810EEFE + movs r0, 0 + bl DestroyVerticalScrollIndicator +_0810EEFE: + bl BuyMenuFreeMemory + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810EF08: .4byte gUnknown_0203925C + thumb_func_end sub_810EEDC + + thumb_func_start SetTrickHouseEndRoomFlag +SetTrickHouseEndRoomFlag: @ 810EF0C + push {lr} + ldr r1, _0810EF1C @ =gSpecialVar_0x8004 + ldr r0, _0810EF20 @ =0x00000259 + strh r0, [r1] + bl FlagSet + pop {r0} + bx r0 + .align 2, 0 +_0810EF1C: .4byte gSpecialVar_0x8004 +_0810EF20: .4byte 0x00000259 + thumb_func_end SetTrickHouseEndRoomFlag + + thumb_func_start ResetTrickHouseEndRoomFlag +ResetTrickHouseEndRoomFlag: @ 810EF24 + push {lr} + ldr r1, _0810EF34 @ =gSpecialVar_0x8004 + ldr r0, _0810EF38 @ =0x00000259 + strh r0, [r1] + bl FlagReset + pop {r0} + bx r0 + .align 2, 0 +_0810EF34: .4byte gSpecialVar_0x8004 +_0810EF38: .4byte 0x00000259 + thumb_func_end ResetTrickHouseEndRoomFlag + + thumb_func_start CheckLeadMonCool +CheckLeadMonCool: @ 810EF3C + push {lr} + bl GetLeadMonIndex + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0810EF5C @ =gPlayerParty + adds r0, r1 + movs r1, 0x16 + bl GetMonData + cmp r0, 0xC7 + bls _0810EF60 + movs r0, 0x1 + b _0810EF62 + .align 2, 0 +_0810EF5C: .4byte gPlayerParty +_0810EF60: + movs r0, 0 +_0810EF62: + pop {r1} + bx r1 + thumb_func_end CheckLeadMonCool + + thumb_func_start CheckLeadMonBeauty +CheckLeadMonBeauty: @ 810EF68 + push {lr} + bl GetLeadMonIndex + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0810EF88 @ =gPlayerParty + adds r0, r1 + movs r1, 0x17 + bl GetMonData + cmp r0, 0xC7 + bls _0810EF8C + movs r0, 0x1 + b _0810EF8E + .align 2, 0 +_0810EF88: .4byte gPlayerParty +_0810EF8C: + movs r0, 0 +_0810EF8E: + pop {r1} + bx r1 + thumb_func_end CheckLeadMonBeauty + + thumb_func_start CheckLeadMonCute +CheckLeadMonCute: @ 810EF94 + push {lr} + bl GetLeadMonIndex + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0810EFB4 @ =gPlayerParty + adds r0, r1 + movs r1, 0x18 + bl GetMonData + cmp r0, 0xC7 + bls _0810EFB8 + movs r0, 0x1 + b _0810EFBA + .align 2, 0 +_0810EFB4: .4byte gPlayerParty +_0810EFB8: + movs r0, 0 +_0810EFBA: + pop {r1} + bx r1 + thumb_func_end CheckLeadMonCute + + thumb_func_start CheckLeadMonSmart +CheckLeadMonSmart: @ 810EFC0 + push {lr} + bl GetLeadMonIndex + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0810EFE0 @ =gPlayerParty + adds r0, r1 + movs r1, 0x21 + bl GetMonData + cmp r0, 0xC7 + bls _0810EFE4 + movs r0, 0x1 + b _0810EFE6 + .align 2, 0 +_0810EFE0: .4byte gPlayerParty +_0810EFE4: + movs r0, 0 +_0810EFE6: + pop {r1} + bx r1 + thumb_func_end CheckLeadMonSmart + + thumb_func_start CheckLeadMonTough +CheckLeadMonTough: @ 810EFEC + push {lr} + bl GetLeadMonIndex + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0810F00C @ =gPlayerParty + adds r0, r1 + movs r1, 0x2F + bl GetMonData + cmp r0, 0xC7 + bls _0810F010 + movs r0, 0x1 + b _0810F012 + .align 2, 0 +_0810F00C: .4byte gPlayerParty +_0810F010: + movs r0, 0 +_0810F012: + pop {r1} + bx r1 + thumb_func_end CheckLeadMonTough + + thumb_func_start IsGrassTypeInParty +IsGrassTypeInParty: @ 810F018 + push {r4-r6,lr} + movs r5, 0 + ldr r6, _0810F068 @ =gBaseStats +_0810F01E: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _0810F06C @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x5 + bl GetMonData + cmp r0, 0 + beq _0810F074 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0810F074 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r0, [r1, 0x6] + cmp r0, 0xC + beq _0810F060 + ldrb r0, [r1, 0x7] + cmp r0, 0xC + bne _0810F074 +_0810F060: + ldr r1, _0810F070 @ =gScriptResult + movs r0, 0x1 + b _0810F082 + .align 2, 0 +_0810F068: .4byte gBaseStats +_0810F06C: .4byte gPlayerParty +_0810F070: .4byte gScriptResult +_0810F074: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _0810F01E + ldr r1, _0810F08C @ =gScriptResult + movs r0, 0 +_0810F082: + strh r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810F08C: .4byte gScriptResult + thumb_func_end IsGrassTypeInParty + + thumb_func_start ShowGlassWorkshopMenu +ShowGlassWorkshopMenu: @ 810F090 + push {r4,r5,lr} + sub sp, 0x8 + bl ScriptContext2_Enable + movs r0, 0 + movs r1, 0 + movs r2, 0xA + movs r3, 0xB + bl MenuDrawTextWindow + movs r4, 0 + str r4, [sp] + movs r0, 0x9 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x5 + bl InitMenu + ldr r0, _0810F104 @ =gUnknown_0203925C + strb r4, [r0] + bl sub_80F944C + bl LoadScrollIndicatorPalette + bl sub_810F2B4 + ldr r5, _0810F108 @ =gUnknown_083F83C0 +_0810F0CA: + lsls r0, r4, 2 + adds r0, r5 + ldr r0, [r0] + lsls r2, r4, 1 + adds r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + movs r1, 0x1 + bl MenuPrint + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bls _0810F0CA + ldr r1, _0810F10C @ =gUnknown_0203925B + movs r0, 0 + strb r0, [r1] + ldr r1, _0810F110 @ =gUnknown_0203925A + movs r0, 0x8 + strb r0, [r1] + ldr r0, _0810F114 @ =sub_810F118 + movs r1, 0x8 + bl CreateTask + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810F104: .4byte gUnknown_0203925C +_0810F108: .4byte gUnknown_083F83C0 +_0810F10C: .4byte gUnknown_0203925B +_0810F110: .4byte gUnknown_0203925A +_0810F114: .4byte sub_810F118 + thumb_func_end ShowGlassWorkshopMenu + + thumb_func_start sub_810F118 +sub_810F118: @ 810F118 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0810F1E4 @ =gMain + ldrh r0, [r0, 0x2E] + cmp r0, 0x40 + bne _0810F14A + ldr r1, _0810F1E8 @ =gUnknown_0203925B + ldrb r0, [r1] + cmp r0, 0 + beq _0810F14A + subs r0, 0x1 + strb r0, [r1] + bl GetMenuCursorPos + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursorNoWrap + adds r0, r4, 0 + movs r1, 0x40 + bl sub_810F1F4 +_0810F14A: + ldr r0, _0810F1E4 @ =gMain + ldrh r0, [r0, 0x2E] + cmp r0, 0x80 + bne _0810F17A + ldr r2, _0810F1E8 @ =gUnknown_0203925B + ldrb r1, [r2] + ldr r0, _0810F1EC @ =gUnknown_0203925A + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + beq _0810F17A + adds r0, r1, 0x1 + strb r0, [r2] + bl GetMenuCursorPos + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x1 + bl MoveMenuCursorNoWrap + adds r0, r4, 0 + movs r1, 0x80 + bl sub_810F1F4 +_0810F17A: + ldr r4, _0810F1E4 @ =gMain + ldrh r1, [r4, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0810F1AE + bl sub_8072DEC + ldr r0, _0810F1F0 @ =gScriptResult + ldr r1, _0810F1E8 @ =gUnknown_0203925B + ldrb r1, [r1] + strh r1, [r0] + movs r0, 0x5 + bl PlaySE + bl sub_810EEDC + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0xC + bl MenuZeroFillWindowRect + adds r0, r5, 0 + bl sub_810EC9C +_0810F1AE: + ldrh r1, [r4, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0810F1DE + bl sub_8072DEC + ldr r1, _0810F1F0 @ =gScriptResult + movs r0, 0x7F + strh r0, [r1] + movs r0, 0x5 + bl PlaySE + bl sub_810EEDC + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0xC + bl MenuZeroFillWindowRect + adds r0, r5, 0 + bl sub_810EC9C +_0810F1DE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810F1E4: .4byte gMain +_0810F1E8: .4byte gUnknown_0203925B +_0810F1EC: .4byte gUnknown_0203925A +_0810F1F0: .4byte gScriptResult + thumb_func_end sub_810F118 + + thumb_func_start sub_810F1F4 +sub_810F1F4: @ 810F1F4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r2, r0, 24 + adds r5, r2, 0 + lsls r1, 24 + lsrs r1, 24 + adds r3, r1, 0 + movs r6, 0 + movs r4, 0 + ldr r0, _0810F214 @ =gUnknown_0203925A + ldrb r0, [r0] + cmp r0, 0x4 + bhi _0810F218 + movs r0, 0 + b _0810F282 + .align 2, 0 +_0810F214: .4byte gUnknown_0203925A +_0810F218: + cmp r1, 0x40 + bne _0810F22C + cmp r2, 0 + bne _0810F240 + ldr r0, _0810F228 @ =gUnknown_0203925B + ldrb r4, [r0] + movs r6, 0x1 + b _0810F244 + .align 2, 0 +_0810F228: .4byte gUnknown_0203925B +_0810F22C: + cmp r3, 0x80 + bne _0810F240 + cmp r5, 0x4 + bne _0810F240 + ldr r0, _0810F288 @ =gUnknown_0203925B + ldrb r0, [r0] + subs r0, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + movs r6, 0x1 +_0810F240: + cmp r6, 0 + beq _0810F280 +_0810F244: + adds r0, r4, 0 + movs r1, 0x5 + bl GlassWorkshopUpdateScrollIndicators + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0x9 + movs r3, 0xA + bl MenuFillWindowRectWithBlankTile + movs r5, 0 + ldr r7, _0810F28C @ =gUnknown_083F83C0 +_0810F25C: + lsls r0, r4, 2 + adds r0, r7 + ldr r0, [r0] + lsls r2, r5, 1 + adds r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + movs r1, 0x1 + bl MenuPrint + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x4 + bls _0810F25C +_0810F280: + adds r0, r6, 0 +_0810F282: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0810F288: .4byte gUnknown_0203925B +_0810F28C: .4byte gUnknown_083F83C0 + thumb_func_end sub_810F1F4 + + thumb_func_start sub_810F290 +sub_810F290: @ 810F290 + push {lr} + ldr r2, _0810F2B0 @ =gUnknown_0203925C + ldrb r1, [r2] + lsrs r0, r1, 1 + cmp r0, 0x1 + beq _0810F2AC + movs r0, 0x2 + orrs r0, r1 + strb r0, [r2] + movs r0, 0 + movs r1, 0x2C + movs r2, 0x8 + bl CreateVerticalScrollIndicators +_0810F2AC: + pop {r0} + bx r0 + .align 2, 0 +_0810F2B0: .4byte gUnknown_0203925C + thumb_func_end sub_810F290 + + thumb_func_start sub_810F2B4 +sub_810F2B4: @ 810F2B4 + push {lr} + ldr r2, _0810F2D8 @ =gUnknown_0203925C + ldrb r1, [r2] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0810F2D2 + movs r0, 0x1 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x1 + movs r1, 0x2C + movs r2, 0x58 + bl CreateVerticalScrollIndicators +_0810F2D2: + pop {r0} + bx r0 + .align 2, 0 +_0810F2D8: .4byte gUnknown_0203925C + thumb_func_end sub_810F2B4 + + thumb_func_start GlassWorkshopUpdateScrollIndicators +GlassWorkshopUpdateScrollIndicators: @ 810F2DC + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + cmp r4, 0 + bne _0810F300 + ldr r0, _0810F2FC @ =gUnknown_0203925C + ldrb r1, [r0] + movs r2, 0x2 + eors r1, r2 + strb r1, [r0] + movs r0, 0 + bl DestroyVerticalScrollIndicator + b _0810F304 + .align 2, 0 +_0810F2FC: .4byte gUnknown_0203925C +_0810F300: + bl sub_810F290 +_0810F304: + adds r1, r4, r5 + ldr r0, _0810F314 @ =gUnknown_0203925A + ldrb r0, [r0] + cmp r1, r0 + bge _0810F318 + bl sub_810F2B4 + b _0810F32C + .align 2, 0 +_0810F314: .4byte gUnknown_0203925A +_0810F318: + cmp r1, r0 + bne _0810F32C + ldr r0, _0810F334 @ =gUnknown_0203925C + ldrb r1, [r0] + movs r2, 0x1 + eors r1, r2 + strb r1, [r0] + movs r0, 0x1 + bl DestroyVerticalScrollIndicator +_0810F32C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810F334: .4byte gUnknown_0203925C + thumb_func_end GlassWorkshopUpdateScrollIndicators + + thumb_func_start SpawnCameraDummy +SpawnCameraDummy: @ 810F338 + push {lr} + sub sp, 0x8 + ldr r0, _0810F380 @ =gSaveBlock1 + ldrh r3, [r0] + adds r3, 0x7 + lsls r3, 16 + asrs r3, 16 + ldrh r0, [r0, 0x2] + adds r0, 0x7 + lsls r0, 16 + asrs r0, 16 + str r0, [sp] + movs r0, 0x3 + str r0, [sp, 0x4] + movs r0, 0x7 + movs r1, 0x8 + movs r2, 0x7F + bl SpawnSpecialFieldObjectParametrized + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810F384 @ =gMapObjects + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1, 0x1] + movs r2, 0x20 + orrs r0, r2 + strb r0, [r1, 0x1] + ldrb r0, [r1, 0x4] + bl CameraObjectSetFollowedObjectId + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_0810F380: .4byte gSaveBlock1 +_0810F384: .4byte gMapObjects + thumb_func_end SpawnCameraDummy + + thumb_func_start RemoveCameraDummy +RemoveCameraDummy: @ 810F388 + push {lr} + bl GetPlayerAvatarObjectId + lsls r0, 24 + lsrs r0, 24 + bl CameraObjectSetFollowedObjectId + ldr r0, _0810F3A8 @ =gSaveBlock1 + ldrb r1, [r0, 0x5] + ldrb r2, [r0, 0x4] + movs r0, 0x7F + bl RemoveFieldObjectByLocalIdAndMap + pop {r0} + bx r0 + .align 2, 0 +_0810F3A8: .4byte gSaveBlock1 + thumb_func_end RemoveCameraDummy + + thumb_func_start GetPokeblockNameByMonNature +GetPokeblockNameByMonNature: @ 810F3AC + push {lr} + bl GetLeadMonIndex + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0810F3D4 @ =gPlayerParty + adds r0, r1 + bl GetNature + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0810F3D8 @ =gStringVar1 + bl sub_810CB68 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_0810F3D4: .4byte gPlayerParty +_0810F3D8: .4byte gStringVar1 + thumb_func_end GetPokeblockNameByMonNature + + thumb_func_start GetSecretBaseNearbyMapName +GetSecretBaseNearbyMapName: @ 810F3DC + push {r4,lr} + ldr r4, _0810F3FC @ =gStringVar1 + ldr r0, _0810F400 @ =0x00004026 + bl VarGet + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + movs r2, 0 + bl sub_80FBFB4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810F3FC: .4byte gStringVar1 +_0810F400: .4byte 0x00004026 + thumb_func_end GetSecretBaseNearbyMapName + + thumb_func_start sub_810F404 +sub_810F404: @ 810F404 + push {lr} + movs r0, 0x20 + bl GetGameStat + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_810F404 + + thumb_func_start sub_810F414 +sub_810F414: @ 810F414 + push {lr} + ldr r0, _0810F420 @ =gStringVar1 + bl sub_8135FF4 + pop {r0} + bx r0 + .align 2, 0 +_0810F420: .4byte gStringVar1 + thumb_func_end sub_810F414 + + thumb_func_start sub_810F424 +sub_810F424: @ 810F424 + push {r4,r5,lr} + ldr r2, _0810F458 @ =gSaveBlock1 + ldr r1, _0810F45C @ =0x00002dd4 + adds r0, r2, r1 + ldrb r1, [r0] + lsls r1, 25 + ldr r0, _0810F460 @ =0x00002dd6 + adds r2, r0 + lsrs r1, 25 + ldrh r2, [r2] + adds r1, r2 + ldr r2, _0810F464 @ =gUnknown_083F83E0 + ldr r0, _0810F468 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + adds r0, r2 + ldrb r0, [r0] + adds r5, r1, r0 + movs r0, 0x2 + bl GetPriceReduction + lsls r0, 24 + cmp r0, 0 + bne _0810F470 + ldr r4, _0810F46C @ =gUnknown_083F83EC + b _0810F472 + .align 2, 0 +_0810F458: .4byte gSaveBlock1 +_0810F45C: .4byte 0x00002dd4 +_0810F460: .4byte 0x00002dd6 +_0810F464: .4byte gUnknown_083F83E0 +_0810F468: .4byte gSpecialVar_0x8004 +_0810F46C: .4byte gUnknown_083F83EC +_0810F470: + ldr r4, _0810F484 @ =gUnknown_083F83F8 +_0810F472: + adds r0, r5, 0 + movs r1, 0xC + bl __umodsi3 + adds r0, r4 + ldrb r0, [r0] + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0810F484: .4byte gUnknown_083F83F8 + thumb_func_end sub_810F424 + + thumb_func_start sub_810F488 +sub_810F488: @ 810F488 + push {lr} + ldr r1, _0810F4A0 @ =gSpecialVar_0x8004 + ldr r0, _0810F4A4 @ =0x00000277 + strh r0, [r1] + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _0810F4A8 + movs r0, 0x1 + b _0810F4AA + .align 2, 0 +_0810F4A0: .4byte gSpecialVar_0x8004 +_0810F4A4: .4byte 0x00000277 +_0810F4A8: + movs r0, 0 +_0810F4AA: + pop {r1} + bx r1 + thumb_func_end sub_810F488 + + thumb_func_start sub_810F4B0 +sub_810F4B0: @ 810F4B0 + push {lr} + ldr r1, _0810F4C8 @ =gSpecialVar_0x8004 + movs r0, 0x9E + lsls r0, 2 + strh r0, [r1] + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _0810F4CC + movs r0, 0x1 + b _0810F4CE + .align 2, 0 +_0810F4C8: .4byte gSpecialVar_0x8004 +_0810F4CC: + movs r0, 0 +_0810F4CE: + pop {r1} + bx r1 + thumb_func_end sub_810F4B0 + + thumb_func_start sub_810F4D4 +sub_810F4D4: @ 810F4D4 + push {lr} + ldr r1, _0810F4EC @ =gSpecialVar_0x8004 + ldr r0, _0810F4F0 @ =0x00000279 + strh r0, [r1] + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _0810F4F4 + movs r0, 0x1 + b _0810F4F6 + .align 2, 0 +_0810F4EC: .4byte gSpecialVar_0x8004 +_0810F4F0: .4byte 0x00000279 +_0810F4F4: + movs r0, 0 +_0810F4F6: + pop {r1} + bx r1 + thumb_func_end sub_810F4D4 + + thumb_func_start sub_810F4FC +sub_810F4FC: @ 810F4FC + push {lr} + ldr r1, _0810F514 @ =gSpecialVar_0x8004 + ldr r0, _0810F518 @ =0x0000027a + strh r0, [r1] + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _0810F51C + movs r0, 0x1 + b _0810F51E + .align 2, 0 +_0810F514: .4byte gSpecialVar_0x8004 +_0810F518: .4byte 0x0000027a +_0810F51C: + movs r0, 0 +_0810F51E: + pop {r1} + bx r1 + thumb_func_end sub_810F4FC + + thumb_func_start LeadMonHasEffortRibbon +LeadMonHasEffortRibbon: @ 810F524 + push {lr} + bl GetLeadMonIndex + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0810F548 @ =gPlayerParty + adds r0, r1 + movs r1, 0x47 + movs r2, 0 + bl GetMonData + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_0810F548: .4byte gPlayerParty + thumb_func_end LeadMonHasEffortRibbon + + thumb_func_start GivLeadMonEffortRibbon +GivLeadMonEffortRibbon: @ 810F54C + push {lr} + sub sp, 0x4 + movs r0, 0x2A + bl IncrementGameStat + ldr r0, _0810F580 @ =0x0000083b + bl FlagSet + movs r1, 0x1 + mov r0, sp + strb r1, [r0] + bl GetLeadMonIndex + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0810F584 @ =gPlayerParty + adds r0, r1 + movs r1, 0x47 + mov r2, sp + bl SetMonData + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_0810F580: .4byte 0x0000083b +_0810F584: .4byte gPlayerParty + thumb_func_end GivLeadMonEffortRibbon + + thumb_func_start GetLeadMonEVCount +GetLeadMonEVCount: @ 810F588 + push {lr} + bl GetLeadMonIndex + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0810F5AC @ =gPlayerParty + adds r0, r1 + bl GetMonEVCount + lsls r0, 16 + ldr r1, _0810F5B0 @ =0x01fd0000 + cmp r0, r1 + bhi _0810F5B4 + movs r0, 0 + b _0810F5B6 + .align 2, 0 +_0810F5AC: .4byte gPlayerParty +_0810F5B0: .4byte 0x01fd0000 +_0810F5B4: + movs r0, 0x1 +_0810F5B6: + pop {r1} + bx r1 + thumb_func_end GetLeadMonEVCount + + thumb_func_start sub_810F5BC +sub_810F5BC: @ 810F5BC + push {lr} + movs r0, 0xC7 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _0810F610 + ldr r0, _0810F5E8 @ =gSaveBlock1 + ldrh r1, [r0, 0x4] + movs r0, 0x83 + lsls r0, 3 + cmp r1, r0 + bne _0810F610 + subs r0, 0x75 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _0810F5F0 + ldr r0, _0810F5EC @ =0x0000409a + movs r1, 0x4 + b _0810F602 + .align 2, 0 +_0810F5E8: .4byte gSaveBlock1 +_0810F5EC: .4byte 0x0000409a +_0810F5F0: + movs r0, 0xE9 + lsls r0, 2 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _0810F610 + ldr r0, _0810F60C @ =0x0000409a + movs r1, 0x5 +_0810F602: + bl VarSet + movs r0, 0x1 + b _0810F612 + .align 2, 0 +_0810F60C: .4byte 0x0000409a +_0810F610: + movs r0, 0 +_0810F612: + pop {r1} + bx r1 + thumb_func_end sub_810F5BC + + thumb_func_start sub_810F618 +sub_810F618: @ 810F618 + push {lr} + ldr r0, _0810F624 @ =0x0000085f + bl FlagSet + pop {r0} + bx r0 + .align 2, 0 +_0810F624: .4byte 0x0000085f + thumb_func_end sub_810F618 + + thumb_func_start PutZigzagoonInPlayerParty +PutZigzagoonInPlayerParty: @ 810F628 + push {r4,r5,lr} + sub sp, 0x14 + ldr r5, _0810F690 @ =gPlayerParty + movs r1, 0x90 + lsls r1, 1 + movs r4, 0 + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r5, 0 + movs r2, 0x7 + movs r3, 0x20 + bl CreateMon + movs r1, 0x1 + add r0, sp, 0x10 + strh r1, [r0] + adds r0, r5, 0 + movs r1, 0x2E + add r2, sp, 0x10 + bl SetMonData + add r1, sp, 0x10 + movs r0, 0x21 + strh r0, [r1] + adds r0, r5, 0 + movs r1, 0xD + add r2, sp, 0x10 + bl SetMonData + add r0, sp, 0x10 + strh r4, [r0] + adds r0, r5, 0 + movs r1, 0xE + add r2, sp, 0x10 + bl SetMonData + adds r0, r5, 0 + movs r1, 0xF + add r2, sp, 0x10 + bl SetMonData + adds r0, r5, 0 + movs r1, 0x10 + add r2, sp, 0x10 + bl SetMonData + add sp, 0x14 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810F690: .4byte gPlayerParty + thumb_func_end PutZigzagoonInPlayerParty + + thumb_func_start IsStarterInParty +IsStarterInParty: @ 810F694 + push {r4-r6,lr} + ldr r0, _0810F6D0 @ =0x00004023 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + bl GetStarterPokemon + lsls r0, 16 + lsrs r6, r0, 16 + bl CalculatePlayerPartyCount + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + cmp r4, r5 + bcs _0810F6E2 +_0810F6B6: + movs r0, 0x64 + muls r0, r4 + ldr r1, _0810F6D4 @ =gPlayerParty + adds r0, r1 + movs r1, 0x41 + movs r2, 0 + bl GetMonData + cmp r0, r6 + bne _0810F6D8 + movs r0, 0x1 + b _0810F6E4 + .align 2, 0 +_0810F6D0: .4byte 0x00004023 +_0810F6D4: .4byte gPlayerParty +_0810F6D8: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r5 + bcc _0810F6B6 +_0810F6E2: + movs r0, 0 +_0810F6E4: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end IsStarterInParty + + thumb_func_start CheckFreePokemonStorageSpace +CheckFreePokemonStorageSpace: @ 810F6EC + push {r4-r6,lr} + movs r5, 0 +_0810F6F0: + movs r4, 0 + lsls r1, r5, 2 + adds r1, r5 + lsls r0, r1, 4 + subs r0, r1 + lsls r6, r0, 5 +_0810F6FC: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + ldr r1, _0810F718 @ =gPokemonStorage + 0x4 + adds r0, r1 + adds r0, r6, r0 + movs r1, 0xB + movs r2, 0 + bl GetBoxMonData + cmp r0, 0 + bne _0810F71C + movs r0, 0x1 + b _0810F732 + .align 2, 0 +_0810F718: .4byte gPokemonStorage + 0x4 +_0810F71C: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1D + bls _0810F6FC + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0xD + bls _0810F6F0 + movs r0, 0 +_0810F732: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end CheckFreePokemonStorageSpace + + thumb_func_start IsPokerusInParty +IsPokerusInParty: @ 810F738 + push {lr} + ldr r0, _0810F74C @ =gPlayerParty + movs r1, 0x3F + bl CheckPartyPokerus + lsls r0, 24 + cmp r0, 0 + beq _0810F750 + movs r0, 0x1 + b _0810F752 + .align 2, 0 +_0810F74C: .4byte gPlayerParty +_0810F750: + movs r0, 0 +_0810F752: + pop {r1} + bx r1 + thumb_func_end IsPokerusInParty + + thumb_func_start sub_810F758 +sub_810F758: @ 810F758 + push {lr} + ldr r0, _0810F798 @ =sub_810F7A8 + movs r1, 0x9 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810F79C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _0810F7A0 @ =gSpecialVar_0x8005 + ldrh r2, [r0] + movs r0, 0 + strh r2, [r1, 0x8] + strh r0, [r1, 0xA] + strh r0, [r1, 0xC] + strh r0, [r1, 0xE] + ldr r0, _0810F7A4 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + strh r0, [r1, 0x10] + movs r0, 0x5 + strh r0, [r1, 0x12] + movs r0, 0 + bl SetCameraPanningCallback + movs r0, 0xD6 + bl PlaySE + pop {r0} + bx r0 + .align 2, 0 +_0810F798: .4byte sub_810F7A8 +_0810F79C: .4byte gTasks +_0810F7A0: .4byte gSpecialVar_0x8005 +_0810F7A4: .4byte gSpecialVar_0x8004 + thumb_func_end sub_810F758 + + thumb_func_start sub_810F7A8 +sub_810F7A8: @ 810F7A8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _0810F810 @ =gTasks + adds r4, r0, r1 + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r1, 0xA + ldrsh r0, [r4, r1] + movs r2, 0x12 + ldrsh r1, [r4, r2] + bl __modsi3 + cmp r0, 0 + bne _0810F808 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _0810F808 + ldrh r0, [r4, 0x8] + negs r0, r0 + strh r0, [r4, 0x8] + ldrh r0, [r4, 0x10] + negs r0, r0 + strh r0, [r4, 0x10] + movs r2, 0x8 + ldrsh r0, [r4, r2] + movs r2, 0x10 + ldrsh r1, [r4, r2] + bl SetCameraPanning + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x8 + bne _0810F808 + adds r0, r5, 0 + bl sub_810F814 + bl InstallCameraPanAheadCallback +_0810F808: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810F810: .4byte gTasks + thumb_func_end sub_810F7A8 + + thumb_func_start sub_810F814 +sub_810F814: @ 810F814 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + bl EnableBothScriptContexts + pop {r0} + bx r0 + thumb_func_end sub_810F814 + + thumb_func_start sub_810F828 +sub_810F828: @ 810F828 + push {lr} + movs r0, 0xAE + lsls r0, 2 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_810F828 + + thumb_func_start SetRoute119Weather +SetRoute119Weather: @ 810F83C + push {lr} + bl get_map_light_from_warp0 + lsls r0, 24 + lsrs r0, 24 + bl is_light_level_1_2_3_5_or_6 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0810F858 + movs r0, 0x14 + bl SetSav1Weather +_0810F858: + pop {r0} + bx r0 + thumb_func_end SetRoute119Weather + + thumb_func_start SetRoute123Weather +SetRoute123Weather: @ 810F85C + push {lr} + bl get_map_light_from_warp0 + lsls r0, 24 + lsrs r0, 24 + bl is_light_level_1_2_3_5_or_6 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0810F878 + movs r0, 0x15 + bl SetSav1Weather +_0810F878: + pop {r0} + bx r0 + thumb_func_end SetRoute123Weather + + thumb_func_start GetLeadMonIndex +GetLeadMonIndex: @ 810F87C + push {r4-r6,lr} + bl CalculatePlayerPartyCount + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + cmp r5, r6 + bcs _0810F8CA +_0810F88C: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _0810F8BC @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x41 + movs r2, 0 + bl GetMonData + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _0810F8C0 + adds r0, r4, 0 + movs r1, 0x41 + movs r2, 0 + bl GetMonData + cmp r0, 0 + beq _0810F8C0 + adds r0, r5, 0 + b _0810F8CC + .align 2, 0 +_0810F8BC: .4byte gPlayerParty +_0810F8C0: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, r6 + bcc _0810F88C +_0810F8CA: + movs r0, 0 +_0810F8CC: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end GetLeadMonIndex + + thumb_func_start ScriptGetPartyMonSpecies +ScriptGetPartyMonSpecies: @ 810F8D4 + push {lr} + ldr r0, _0810F8F4 @ =gSpecialVar_0x8004 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0810F8F8 @ =gPlayerParty + adds r0, r1 + movs r1, 0x41 + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + .align 2, 0 +_0810F8F4: .4byte gSpecialVar_0x8004 +_0810F8F8: .4byte gPlayerParty + thumb_func_end ScriptGetPartyMonSpecies + + thumb_func_start sub_810F8FC +sub_810F8FC: @ 810F8FC + push {lr} + movs r0, 0x6 + bl sub_805ADDC + pop {r0} + bx r0 + thumb_func_end sub_810F8FC + + thumb_func_start sub_810F908 +sub_810F908: @ 810F908 + push {r4,lr} + ldr r0, _0810F928 @ =0x000040c2 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + adds r3, r0, 0 + ldr r2, _0810F92C @ =gLocalTime + movs r1, 0 + ldrsh r0, [r2, r1] + subs r0, r3 + cmp r0, 0x6 + ble _0810F930 + movs r0, 0 + b _0810F948 + .align 2, 0 +_0810F928: .4byte 0x000040c2 +_0810F92C: .4byte gLocalTime +_0810F930: + ldrh r1, [r2] + movs r4, 0 + ldrsh r0, [r2, r4] + cmp r0, 0 + blt _0810F946 + subs r1, r3 + movs r0, 0x7 + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + b _0810F948 +_0810F946: + movs r0, 0x8 +_0810F948: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_810F908 + + thumb_func_start sub_810F950 +sub_810F950: @ 810F950 + push {r4,lr} + ldr r0, _0810F964 @ =0x000040c2 + ldr r4, _0810F968 @ =gLocalTime + ldrh r1, [r4] + bl VarSet + ldrh r0, [r4] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0810F964: .4byte 0x000040c2 +_0810F968: .4byte gLocalTime + thumb_func_end sub_810F950 + + thumb_func_start sub_810F96C +sub_810F96C: @ 810F96C + push {r4,lr} + ldr r0, _0810F994 @ =gSpecialVar_0x8004 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0810F998 @ =gPlayerParty + adds r0, r1 + ldr r4, _0810F99C @ =gStringVar1 + movs r1, 0x7 + adds r2, r4, 0 + bl GetMonData + ldr r0, _0810F9A0 @ =gSaveBlock2 + adds r1, r4, 0 + bl StringCompareWithoutExtCtrlCodes + cmp r0, 0 + beq _0810F9A4 + movs r0, 0x1 + b _0810F9A6 + .align 2, 0 +_0810F994: .4byte gSpecialVar_0x8004 +_0810F998: .4byte gPlayerParty +_0810F99C: .4byte gStringVar1 +_0810F9A0: .4byte gSaveBlock2 +_0810F9A4: + movs r0, 0 +_0810F9A6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_810F96C + + thumb_func_start sub_810F9AC +sub_810F9AC: @ 810F9AC + push {r4,r5,lr} + ldr r2, _0810F9C0 @ =gScriptResult + ldrh r1, [r2] + ldr r0, _0810F9C4 @ =0x0000270f + cmp r1, r0 + bls _0810F9C8 + movs r0, 0 + bl sub_80BF088 + b _0810FA4A + .align 2, 0 +_0810F9C0: .4byte gScriptResult +_0810F9C4: .4byte 0x0000270f +_0810F9C8: + ldr r0, _0810F9D8 @ =0x000003e7 + cmp r1, r0 + bls _0810F9E0 + ldr r4, _0810F9DC @ =gStringVar1 + movs r0, 0xA1 + strb r0, [r4] + adds r4, 0x1 + b _0810FA04 + .align 2, 0 +_0810F9D8: .4byte 0x000003e7 +_0810F9DC: .4byte gStringVar1 +_0810F9E0: + cmp r1, 0x63 + bls _0810F9F4 + ldr r4, _0810F9F0 @ =gStringVar1 + movs r0, 0xA1 + strb r0, [r4] + strb r0, [r4, 0x1] + adds r4, 0x2 + b _0810FA04 + .align 2, 0 +_0810F9F0: .4byte gStringVar1 +_0810F9F4: + cmp r1, 0x9 + bls _0810FA24 + ldr r4, _0810FA20 @ =gStringVar1 + movs r0, 0xA1 + strb r0, [r4] + strb r0, [r4, 0x1] + strb r0, [r4, 0x2] + adds r4, 0x3 +_0810FA04: + ldrh r5, [r2] + adds r0, r5, 0 + bl sub_80BF0B8 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0 + bl ConvertIntToDecimalStringN + b _0810FA4A + .align 2, 0 +_0810FA20: .4byte gStringVar1 +_0810FA24: + ldr r4, _0810FA50 @ =gStringVar1 + movs r0, 0xA1 + strb r0, [r4] + strb r0, [r4, 0x1] + strb r0, [r4, 0x2] + strb r0, [r4, 0x3] + adds r4, 0x4 + ldrh r5, [r2] + adds r0, r5, 0 + bl sub_80BF0B8 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0 + bl ConvertIntToDecimalStringN +_0810FA4A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810FA50: .4byte gStringVar1 + thumb_func_end sub_810F9AC + + thumb_func_start sub_810FA54 +sub_810FA54: @ 810FA54 + ldr r0, _0810FA68 @ =gSaveBlock1 + ldr r2, _0810FA6C @ =0x000013c2 + adds r1, r0, r2 + movs r2, 0 + strh r2, [r1] + ldr r1, _0810FA70 @ =0x000013c4 + adds r0, r1 + strh r2, [r0] + bx lr + .align 2, 0 +_0810FA68: .4byte gSaveBlock1 +_0810FA6C: .4byte 0x000013c2 +_0810FA70: .4byte 0x000013c4 + thumb_func_end sub_810FA54 + + thumb_func_start sub_810FA74 +sub_810FA74: @ 810FA74 + push {lr} + bl sub_810FF30 + lsls r0, 24 + cmp r0, 0 + beq _0810FA90 + bl sub_810FCE8 + ldr r0, _0810FA94 @ =gSaveBlock1 + ldr r1, _0810FA98 @ =gSaveBlock2 + ldrh r1, [r1, 0xE] + ldr r2, _0810FA9C @ =0x000013c4 + adds r0, r2 + strh r1, [r0] +_0810FA90: + pop {r0} + bx r0 + .align 2, 0 +_0810FA94: .4byte gSaveBlock1 +_0810FA98: .4byte gSaveBlock2 +_0810FA9C: .4byte 0x000013c4 + thumb_func_end sub_810FA74 + + thumb_func_start sub_810FAA0 +sub_810FAA0: @ 810FAA0 + push {r4,lr} + ldr r4, _0810FAF0 @ =gSaveBlock1 + ldr r1, _0810FAF4 @ =0x000013c2 + adds r0, r4, r1 + ldrh r0, [r0] + lsrs r0, 7 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0810FAE8 + bl sub_810FF48 + bl sub_810FD80 + ldr r0, _0810FAF8 @ =gSaveBlock2 + ldrh r1, [r0, 0xE] + ldr r2, _0810FAFC @ =0x000013c4 + adds r0, r4, r2 + strh r1, [r0] + ldr r0, _0810FB00 @ =0x00000315 + bl FlagReset + ldr r0, _0810FB04 @ =0x00000316 + bl FlagReset + ldr r0, _0810FB08 @ =0x00000317 + bl FlagReset + movs r0, 0xC6 + lsls r0, 2 + bl FlagReset + ldr r0, _0810FB0C @ =0x00004095 + movs r1, 0x1 + bl VarSet +_0810FAE8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810FAF0: .4byte gSaveBlock1 +_0810FAF4: .4byte 0x000013c2 +_0810FAF8: .4byte gSaveBlock2 +_0810FAFC: .4byte 0x000013c4 +_0810FB00: .4byte 0x00000315 +_0810FB04: .4byte 0x00000316 +_0810FB08: .4byte 0x00000317 +_0810FB0C: .4byte 0x00004095 + thumb_func_end sub_810FAA0 + + thumb_func_start sub_810FB10 +sub_810FB10: @ 810FB10 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0810FB54 @ =0x00004095 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2 + bne _0810FB80 + ldr r0, _0810FB58 @ =gSaveBlock1 + ldr r1, _0810FB5C @ =0x000013c2 + adds r4, r0, r1 + ldrh r2, [r4] + movs r1, 0x7F + ands r1, r2 + ldr r0, _0810FB60 @ =gUnknown_083F8404 + adds r0, r5, r0 + ldrb r0, [r0] + adds r1, r0 + cmp r1, 0x13 + ble _0810FB7C + bl sub_810FCB0 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2 + bhi _0810FB68 + bl sub_810FB9C + ldrh r1, [r4] + ldr r0, _0810FB64 @ =0x0000ff80 + ands r0, r1 + b _0810FB7E + .align 2, 0 +_0810FB54: .4byte 0x00004095 +_0810FB58: .4byte gSaveBlock1 +_0810FB5C: .4byte 0x000013c2 +_0810FB60: .4byte gUnknown_083F8404 +_0810FB64: .4byte 0x0000ff80 +_0810FB68: + ldrh r0, [r4] + ldr r1, _0810FB78 @ =0x0000ff80 + ands r1, r0 + movs r0, 0x14 + orrs r1, r0 + strh r1, [r4] + b _0810FB80 + .align 2, 0 +_0810FB78: .4byte 0x0000ff80 +_0810FB7C: + adds r0, r2, r0 +_0810FB7E: + strh r0, [r4] +_0810FB80: + ldr r0, _0810FB94 @ =gSaveBlock1 + ldr r1, _0810FB98 @ =0x000013c2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x7F + ands r0, r1 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0810FB94: .4byte gSaveBlock1 +_0810FB98: .4byte 0x000013c2 + thumb_func_end sub_810FB10 + + thumb_func_start sub_810FB9C +sub_810FB9C: @ 810FB9C + push {r4-r7,lr} + sub sp, 0x4 + movs r3, 0 + movs r5, 0 + ldr r7, _0810FBD8 @ =gSaveBlock1 + 0x13C2 + movs r6, 0x1 +_0810FBA8: + ldrh r1, [r7] + ldr r0, _0810FBDC @ =gUnknown_083F8408 + adds r0, r5, r0 + ldrb r4, [r0] + asrs r1, r4 + ands r1, r6 + cmp r1, 0 + bne _0810FBE0 + adds r3, r5, 0 + str r3, [sp] + bl Random + adds r1, r6, 0 + ands r1, r0 + ldr r3, [sp] + cmp r1, 0 + beq _0810FBE0 + adds r0, r6, 0 + lsls r0, r4 + ldrh r1, [r7] + orrs r0, r1 + strh r0, [r7] + b _0810FC00 + .align 2, 0 +_0810FBD8: .4byte gSaveBlock1 + 0x13C2 +_0810FBDC: .4byte gUnknown_083F8408 +_0810FBE0: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x7 + bls _0810FBA8 + ldr r2, _0810FC0C @ =gSaveBlock1 + ldr r0, _0810FC10 @ =0x000013c2 + adds r2, r0 + ldr r1, _0810FC14 @ =gUnknown_083F8408 + adds r1, r3, r1 + movs r0, 0x1 + ldrb r1, [r1] + lsls r0, r1 + ldrh r1, [r2] + orrs r0, r1 + strh r0, [r2] +_0810FC00: + adds r0, r3, 0 + add sp, 0x4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0810FC0C: .4byte gSaveBlock1 +_0810FC10: .4byte 0x000013c2 +_0810FC14: .4byte gUnknown_083F8408 + thumb_func_end sub_810FB9C + + thumb_func_start sub_810FC18 +sub_810FC18: @ 810FC18 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + movs r0, 0 + mov r8, r0 + bl sub_810FCB0 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bne _0810FC3E + movs r0, 0 + b _0810FC94 +_0810FC34: + lsls r4, r6 + ldrh r0, [r2] + eors r4, r0 + strh r4, [r2] + b _0810FC92 +_0810FC3E: + movs r5, 0 + ldr r2, _0810FCA0 @ =gSaveBlock1 + 0x13C2 + movs r4, 0x1 +_0810FC44: + ldrh r1, [r2] + ldr r7, _0810FCA4 @ =gUnknown_083F8410 + adds r0, r5, r7 + ldrb r6, [r0] + asrs r1, r6 + ands r1, r4 + cmp r1, 0 + beq _0810FC66 + mov r8, r5 + str r2, [sp] + bl Random + adds r1, r4, 0 + ands r1, r0 + ldr r2, [sp] + cmp r1, 0 + bne _0810FC34 +_0810FC66: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x7 + bls _0810FC44 + ldr r0, _0810FCA8 @ =gSaveBlock1 + ldr r1, _0810FCAC @ =0x000013c2 + adds r4, r0, r1 + ldrh r1, [r4] + mov r2, r8 + adds r0, r2, r7 + ldrb r2, [r0] + adds r0, r1, 0 + asrs r0, r2 + movs r3, 0x1 + ands r0, r3 + cmp r0, 0 + beq _0810FC92 + adds r0, r3, 0 + lsls r0, r2 + eors r1, r0 + strh r1, [r4] +_0810FC92: + mov r0, r8 +_0810FC94: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0810FCA0: .4byte gSaveBlock1 + 0x13C2 +_0810FCA4: .4byte gUnknown_083F8410 +_0810FCA8: .4byte gSaveBlock1 +_0810FCAC: .4byte 0x000013c2 + thumb_func_end sub_810FC18 + + thumb_func_start sub_810FCB0 +sub_810FCB0: @ 810FCB0 + push {r4,r5,lr} + movs r3, 0 + movs r2, 0 + ldr r0, _0810FCE4 @ =gSaveBlock1 + 0x13C2 + ldrh r4, [r0] + movs r5, 0x1 +_0810FCBC: + adds r1, r2, 0 + adds r1, 0x8 + adds r0, r4, 0 + asrs r0, r1 + ands r0, r5 + cmp r0, 0 + beq _0810FCD0 + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 +_0810FCD0: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x7 + bls _0810FCBC + adds r0, r3, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0810FCE4: .4byte gSaveBlock1 + 0x13C2 + thumb_func_end sub_810FCB0 + + thumb_func_start sub_810FCE8 +sub_810FCE8: @ 810FCE8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r5, 0 + ldr r2, _0810FD08 @ =gSaveBlock2 + ldrh r1, [r2, 0xE] + ldr r0, _0810FD0C @ =0x000003e6 + cmp r1, r0 + bhi _0810FD54 + ldr r7, _0810FD10 @ =gSaveBlock1 + adds r6, r2, 0 + ldr r0, _0810FD14 @ =0x000013c4 + adds r0, r7 + mov r8, r0 + b _0810FD36 + .align 2, 0 +_0810FD08: .4byte gSaveBlock2 +_0810FD0C: .4byte 0x000003e6 +_0810FD10: .4byte gSaveBlock1 +_0810FD14: .4byte 0x000013c4 +_0810FD18: + ldrh r1, [r6, 0xE] + ldr r0, _0810FD4C @ =0x000013c4 + adds r4, r7, r0 + ldrh r0, [r4] + subs r1, r0 + cmp r1, 0xB + ble _0810FD54 + bl sub_810FC18 + ldrh r0, [r4] + adds r0, 0xC + strh r0, [r4] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_0810FD36: + bl sub_810FCB0 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x4 + bhi _0810FD50 + ldrh r0, [r6, 0xE] + mov r1, r8 + strh r0, [r1] + b _0810FD54 + .align 2, 0 +_0810FD4C: .4byte 0x000013c4 +_0810FD50: + cmp r5, 0x8 + bne _0810FD18 +_0810FD54: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_810FCE8 + + thumb_func_start sub_810FD60 +sub_810FD60: @ 810FD60 + ldr r0, _0810FD74 @ =gSaveBlock1 + ldr r1, _0810FD78 @ =0x000013c2 + adds r0, r1 + ldrh r0, [r0] + ldr r1, _0810FD7C @ =gSpecialVar_0x8004 + ldrh r1, [r1] + asrs r0, r1 + movs r1, 0x1 + ands r0, r1 + bx lr + .align 2, 0 +_0810FD74: .4byte gSaveBlock1 +_0810FD78: .4byte 0x000013c2 +_0810FD7C: .4byte gSpecialVar_0x8004 + thumb_func_end sub_810FD60 + + thumb_func_start sub_810FD80 +sub_810FD80: @ 810FD80 + ldr r2, _0810FDA4 @ =gSaveBlock1 + ldr r0, _0810FDA8 @ =0x000013c2 + adds r2, r0 + ldrh r1, [r2] + movs r3, 0x80 + lsls r3, 6 + adds r0, r3, 0 + orrs r0, r1 + movs r3, 0x80 + lsls r3, 1 + adds r1, r3, 0 + orrs r0, r1 + movs r3, 0x80 + lsls r3, 3 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r2] + bx lr + .align 2, 0 +_0810FDA4: .4byte gSaveBlock1 +_0810FDA8: .4byte 0x000013c2 + thumb_func_end sub_810FD80 + + thumb_func_start sub_810FDAC +sub_810FDAC: @ 810FDAC + push {lr} + movs r3, 0 + movs r2, 0 + ldr r0, _0810FDC8 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + subs r0, 0x8 + cmp r0, 0x7 + bhi _0810FE0C + lsls r0, 2 + ldr r1, _0810FDCC @ =_0810FDD0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0810FDC8: .4byte gSpecialVar_0x8004 +_0810FDCC: .4byte _0810FDD0 + .align 2, 0 +_0810FDD0: + .4byte _0810FE0C + .4byte _0810FE0C + .4byte _0810FDF0 + .4byte _0810FDF6 + .4byte _0810FDFC + .4byte _0810FE02 + .4byte _0810FE08 + .4byte _0810FE0C +_0810FDF0: + movs r3, 0 + movs r2, 0x3 + b _0810FE0C +_0810FDF6: + movs r3, 0 + movs r2, 0x1 + b _0810FE0C +_0810FDFC: + movs r3, 0x1 + movs r2, 0 + b _0810FE0C +_0810FE02: + movs r3, 0 + movs r2, 0x4 + b _0810FE0C +_0810FE08: + movs r3, 0x1 + movs r2, 0x5 +_0810FE0C: + ldr r0, _0810FE18 @ =gSaveBlock1 + 0x30B8 + adds r1, r3, 0 + bl sub_810FE1C + pop {r0} + bx r0 + .align 2, 0 +_0810FE18: .4byte gSaveBlock1 + 0x30B8 + thumb_func_end sub_810FDAC + + thumb_func_start sub_810FE1C +sub_810FE1C: @ 810FE1C + push {r4,lr} + lsls r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsrs r1, 20 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0xFF + bne _0810FED0 + cmp r2, 0x5 + bhi _0810FEBC + lsls r0, r2, 2 + ldr r1, _0810FE3C @ =_0810FE40 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0810FE3C: .4byte _0810FE40 + .align 2, 0 +_0810FE40: + .4byte _0810FEBC + .4byte _0810FE58 + .4byte _0810FE6C + .4byte _0810FE80 + .4byte _0810FE94 + .4byte _0810FEA8 +_0810FE58: + ldr r0, _0810FE64 @ =gStringVar1 + ldr r1, _0810FE68 @ =gOtherText_Steven + bl StringCopy + b _0810FEF2 + .align 2, 0 +_0810FE64: .4byte gStringVar1 +_0810FE68: .4byte gOtherText_Steven +_0810FE6C: + ldr r0, _0810FE78 @ =gStringVar1 + ldr r1, _0810FE7C @ =gOtherText_Brawly + bl StringCopy + b _0810FEF2 + .align 2, 0 +_0810FE78: .4byte gStringVar1 +_0810FE7C: .4byte gOtherText_Brawly +_0810FE80: + ldr r0, _0810FE8C @ =gStringVar1 + ldr r1, _0810FE90 @ =gOtherText_Winona + bl StringCopy + b _0810FEF2 + .align 2, 0 +_0810FE8C: .4byte gStringVar1 +_0810FE90: .4byte gOtherText_Winona +_0810FE94: + ldr r0, _0810FEA0 @ =gStringVar1 + ldr r1, _0810FEA4 @ =gOtherText_Phoebe + bl StringCopy + b _0810FEF2 + .align 2, 0 +_0810FEA0: .4byte gStringVar1 +_0810FEA4: .4byte gOtherText_Phoebe +_0810FEA8: + ldr r0, _0810FEB4 @ =gStringVar1 + ldr r1, _0810FEB8 @ =gOtherText_Glacia + bl StringCopy + b _0810FEF2 + .align 2, 0 +_0810FEB4: .4byte gStringVar1 +_0810FEB8: .4byte gOtherText_Glacia +_0810FEBC: + ldr r0, _0810FEC8 @ =gStringVar1 + ldr r1, _0810FECC @ =gOtherText_Wallace + bl StringCopy + b _0810FEF2 + .align 2, 0 +_0810FEC8: .4byte gStringVar1 +_0810FECC: .4byte gOtherText_Wallace +_0810FED0: + ldr r4, _0810FEF8 @ =gStringVar1 + adds r0, r4, 0 + movs r2, 0x7 + bl StringCopyN + movs r0, 0xFF + strb r0, [r4, 0x7] + ldrb r0, [r4] + cmp r0, 0xFC + bne _0810FEF2 + ldrb r0, [r4, 0x1] + cmp r0, 0x15 + bne _0810FEF2 + adds r0, r4, 0 + movs r1, 0x1 + bl ConvertInternationalString +_0810FEF2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810FEF8: .4byte gStringVar1 + thumb_func_end sub_810FE1C + + thumb_func_start sub_810FEFC +sub_810FEFC: @ 810FEFC + push {lr} + ldr r0, _0810FF20 @ =0x00004095 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2 + bne _0810FF2C + bl sub_810FA74 + ldr r0, _0810FF24 @ =gUnknown_02024D26 + ldrb r0, [r0] + cmp r0, 0x1 + bne _0810FF28 + bl sub_810FB9C + b _0810FF2C + .align 2, 0 +_0810FF20: .4byte 0x00004095 +_0810FF24: .4byte gUnknown_02024D26 +_0810FF28: + bl sub_810FC18 +_0810FF2C: + pop {r0} + bx r0 + thumb_func_end sub_810FEFC + + thumb_func_start sub_810FF30 +sub_810FF30: @ 810FF30 + ldr r0, _0810FF40 @ =gSaveBlock1 + ldr r1, _0810FF44 @ =0x000013c2 + adds r0, r1 + ldrh r0, [r0] + lsrs r0, 7 + movs r1, 0x1 + ands r0, r1 + bx lr + .align 2, 0 +_0810FF40: .4byte gSaveBlock1 +_0810FF44: .4byte 0x000013c2 + thumb_func_end sub_810FF30 + + thumb_func_start sub_810FF48 +sub_810FF48: @ 810FF48 + ldr r0, _0810FF58 @ =gSaveBlock1 + ldr r1, _0810FF5C @ =0x000013c2 + adds r0, r1 + ldrh r2, [r0] + movs r1, 0x80 + orrs r1, r2 + strh r1, [r0] + bx lr + .align 2, 0 +_0810FF58: .4byte gSaveBlock1 +_0810FF5C: .4byte 0x000013c2 + thumb_func_end sub_810FF48 + + thumb_func_start sub_810FF60 +sub_810FF60: @ 810FF60 + push {lr} + ldr r0, _0810FF74 @ =gSpecialVar_0x8004 + ldrb r0, [r0] + bl sub_810FB10 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_0810FF74: .4byte gSpecialVar_0x8004 + thumb_func_end sub_810FF60 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_81258BC.s b/asm/rom_81258BC.s index cbc5697a6..a169258ae 100644 --- a/asm/rom_81258BC.s +++ b/asm/rom_81258BC.s @@ -71,7 +71,7 @@ sub_812AF30: @ 812AF30 adds r6, r0 lsls r6, 3 adds r6, r1 - ldr r1, _0812AF90 @ =gUnknown_03004B00 + ldr r1, _0812AF90 @ =gBattleAnimArgs ldrh r0, [r1] strh r0, [r6, 0x8] ldrh r0, [r1, 0x2] @@ -107,7 +107,7 @@ sub_812AF30: @ 812AF30 bx r0 .align 2, 0 _0812AF8C: .4byte gTasks -_0812AF90: .4byte gUnknown_03004B00 +_0812AF90: .4byte gBattleAnimArgs _0812AF94: .4byte sub_812AF98 thumb_func_end sub_812AF30 @@ -224,7 +224,7 @@ sub_812B058: @ 812B058 lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r0, _0812B0FC @ =gUnknown_03004B00 + ldr r0, _0812B0FC @ =gBattleAnimArgs ldrh r1, [r0] str r1, [sp] ldrb r5, [r0, 0x4] @@ -292,7 +292,7 @@ sub_812B058: @ 812B058 pop {r0} bx r0 .align 2, 0 -_0812B0FC: .4byte gUnknown_03004B00 +_0812B0FC: .4byte gBattleAnimArgs _0812B100: .4byte gTasks _0812B104: .4byte sub_812B108 thumb_func_end sub_812B058 @@ -381,7 +381,7 @@ sub_812B18C: @ 812B18C lsls r0, 24 cmp r0, 0 beq _0812B1CC - ldr r0, _0812B1BC @ =gUnknown_03004B00 + ldr r0, _0812B1BC @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -390,14 +390,14 @@ sub_812B18C: @ 812B18C ldrh r4, [r0] b _0812B272 .align 2, 0 -_0812B1BC: .4byte gUnknown_03004B00 +_0812B1BC: .4byte gBattleAnimArgs _0812B1C0: .4byte 0x02019348 _0812B1C4: adds r0, r5, 0 bl move_anim_task_del b _0812B272 _0812B1CC: - ldr r0, _0812B1E0 @ =gUnknown_03004B00 + ldr r0, _0812B1E0 @ =gBattleAnimArgs movs r2, 0 ldrsh r1, [r0, r2] adds r2, r0, 0 @@ -407,7 +407,7 @@ _0812B1CC: ldrb r4, [r0] b _0812B20E .align 2, 0 -_0812B1E0: .4byte gUnknown_03004B00 +_0812B1E0: .4byte gBattleAnimArgs _0812B1E4: .4byte gUnknown_0202F7C8 _0812B1E8: cmp r1, 0x1 @@ -483,7 +483,7 @@ _0812B266: _0812B272: cmp r4, 0 beq _0812B2AA - ldr r0, _0812B298 @ =gUnknown_03004B00 + ldr r0, _0812B298 @ =gBattleAnimArgs ldrh r2, [r0, 0x2] movs r1, 0x2 ldrsh r0, [r0, r1] @@ -497,7 +497,7 @@ _0812B272: .align 2, 0 _0812B290: .4byte gUnknown_02024A6A _0812B294: .4byte gPlayerParty -_0812B298: .4byte gUnknown_03004B00 +_0812B298: .4byte gBattleAnimArgs _0812B29C: lsls r1, r6, 24 asrs r1, 24 @@ -563,7 +563,7 @@ sub_812B30C: @ 812B30C adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, _0812B33C @ =gUnknown_03004B00 + ldr r0, _0812B33C @ =gBattleAnimArgs ldrh r5, [r0] ldrb r0, [r0, 0x2] lsls r0, 24 @@ -580,7 +580,7 @@ sub_812B30C: @ 812B30C pop {r0} bx r0 .align 2, 0 -_0812B33C: .4byte gUnknown_03004B00 +_0812B33C: .4byte gBattleAnimArgs thumb_func_end sub_812B30C thumb_func_start sub_812B340 @@ -589,7 +589,7 @@ sub_812B340: @ 812B340 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, _0812B370 @ =gUnknown_03004B00 + ldr r0, _0812B370 @ =gBattleAnimArgs ldrh r5, [r0] ldrb r0, [r0, 0x2] lsls r0, 24 @@ -606,7 +606,7 @@ sub_812B340: @ 812B340 pop {r0} bx r0 .align 2, 0 -_0812B370: .4byte gUnknown_03004B00 +_0812B370: .4byte gBattleAnimArgs thumb_func_end sub_812B340 thumb_func_start sub_812B374 @@ -619,7 +619,7 @@ sub_812B374: @ 812B374 lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r0, _0812B3F8 @ =gUnknown_03004B00 + ldr r0, _0812B3F8 @ =gBattleAnimArgs ldrb r5, [r0, 0x2] ldrb r6, [r0, 0x4] ldrh r1, [r0, 0x6] @@ -673,7 +673,7 @@ sub_812B374: @ 812B374 pop {r0} bx r0 .align 2, 0 -_0812B3F8: .4byte gUnknown_03004B00 +_0812B3F8: .4byte gBattleAnimArgs _0812B3FC: .4byte gTasks _0812B400: .4byte sub_812B404 thumb_func_end sub_812B374 @@ -1177,7 +1177,7 @@ dp01_tbl6_exec_completed: @ 812B7C0 adds r0, r1 ldr r1, _0812B808 @ =sub_812B484 str r1, [r0] - ldr r0, _0812B80C @ =gUnknown_020239F8 + ldr r0, _0812B80C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -1201,7 +1201,7 @@ dp01_tbl6_exec_completed: @ 812B7C0 _0812B800: .4byte gUnknown_03004330 _0812B804: .4byte gUnknown_02024A60 _0812B808: .4byte sub_812B484 -_0812B80C: .4byte gUnknown_020239F8 +_0812B80C: .4byte gBattleTypeFlags _0812B810: .4byte gUnknown_02023A60 _0812B814: ldr r2, _0812B830 @ =gUnknown_02024A64 @@ -2191,7 +2191,7 @@ sub_812BF54: @ 812BF54 movs r0, 0x3 bl BeginFastPaletteFade bl dp01_tbl6_exec_completed - ldr r0, _0812BFA4 @ =gUnknown_020239F8 + ldr r0, _0812BFA4 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x6 ands r0, r1 @@ -2211,7 +2211,7 @@ _0812BF90: _0812BF98: .4byte gUnknown_02024D26 _0812BF9C: .4byte gUnknown_02023A60 _0812BFA0: .4byte gUnknown_02024A60 -_0812BFA4: .4byte gUnknown_020239F8 +_0812BFA4: .4byte gBattleTypeFlags _0812BFA8: .4byte gUnknown_03004330 _0812BFAC: .4byte sub_812B6AC thumb_func_end sub_812BF54 @@ -2427,7 +2427,7 @@ _0812C140: .4byte SweetScentNothingHereScript sub_812C144: @ 812C144 push {lr} adds r2, r0, 0 - ldr r1, _0812C168 @ =gUnknown_03004B00 + ldr r1, _0812C168 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r3, [r2, 0x20] adds r0, r3 @@ -2443,7 +2443,7 @@ sub_812C144: @ 812C144 ldrh r0, [r1, 0x4] b _0812C170 .align 2, 0 -_0812C168: .4byte gUnknown_03004B00 +_0812C168: .4byte gBattleAnimArgs _0812C16C: ldrh r0, [r1, 0x4] negs r0, r0 @@ -2675,7 +2675,7 @@ _0812C31A: movs r1, 0 adds r2, r3, 0 bl sub_8078FDC - ldr r0, _0812C34C @ =gUnknown_03004B00 + ldr r0, _0812C34C @ =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r5, 0x2E] strh r7, [r5, 0x32] @@ -2691,7 +2691,7 @@ _0812C31A: bx r0 .align 2, 0 _0812C348: .4byte gUnknown_0202F7C9 -_0812C34C: .4byte gUnknown_03004B00 +_0812C34C: .4byte gBattleAnimArgs _0812C350: .4byte sub_8078B34 _0812C354: .4byte move_anim_8072740 thumb_func_end sub_812C2BC @@ -3056,7 +3056,7 @@ _0812C5D6: add r0, r9 strh r1, [r0, 0x12] _0812C5F8: - ldr r0, _0812C61C @ =gUnknown_03004B00 + ldr r0, _0812C61C @ =gBattleAnimArgs ldrh r1, [r0, 0xE] ldr r0, _0812C620 @ =0x0000ffff cmp r1, r0 @@ -3073,7 +3073,7 @@ _0812C608: .align 2, 0 _0812C614: .4byte gTasks _0812C618: .4byte gPlttBufferFaded -_0812C61C: .4byte gUnknown_03004B00 +_0812C61C: .4byte gBattleAnimArgs _0812C620: .4byte 0x0000ffff thumb_func_end sub_812C588 @@ -3184,7 +3184,7 @@ _0812C6CA: adds r0, r2 strh r1, [r0, 0x12] _0812C6EE: - ldr r0, _0812C718 @ =gUnknown_03004B00 + ldr r0, _0812C718 @ =gBattleAnimArgs ldrh r1, [r0, 0xE] ldr r0, _0812C71C @ =0x0000ffff cmp r1, r0 @@ -3203,7 +3203,7 @@ _0812C6FE: _0812C70C: .4byte gTasks _0812C710: .4byte gPlttBufferFaded _0812C714: .4byte gPlttBufferUnfaded -_0812C718: .4byte gUnknown_03004B00 +_0812C718: .4byte gBattleAnimArgs _0812C71C: .4byte 0x0000ffff thumb_func_end sub_812C64C @@ -3228,12 +3228,12 @@ sub_812C720: @ 812C720 lsls r0, 24 cmp r0, 0 beq _0812C754 - ldr r1, _0812C78C @ =gUnknown_03004B00 + ldr r1, _0812C78C @ =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _0812C754: - ldr r1, _0812C78C @ =gUnknown_03004B00 + ldr r1, _0812C78C @ =gBattleAnimArgs ldrh r0, [r1, 0x8] strh r0, [r4, 0x2E] mov r2, sp @@ -3258,7 +3258,7 @@ _0812C754: .align 2, 0 _0812C784: .4byte gUnknown_0202F7C9 _0812C788: .4byte gUnknown_0202F7C8 -_0812C78C: .4byte gUnknown_03004B00 +_0812C78C: .4byte gBattleAnimArgs _0812C790: .4byte 0x0000ffce _0812C794: .4byte sub_812C798 thumb_func_end sub_812C720 @@ -3333,7 +3333,7 @@ sub_812C80C: @ 812C80C push {r4,r5,lr} adds r4, r0, 0 bl sub_8078650 - ldr r5, _0812C83C @ =gUnknown_03004B00 + ldr r5, _0812C83C @ =gBattleAnimArgs movs r0, 0 ldrsh r1, [r5, r0] adds r0, r4, 0 @@ -3351,7 +3351,7 @@ sub_812C80C: @ 812C80C pop {r0} bx r0 .align 2, 0 -_0812C83C: .4byte gUnknown_03004B00 +_0812C83C: .4byte gBattleAnimArgs _0812C840: .4byte sub_8078600 _0812C844: .4byte move_anim_8072740 thumb_func_end sub_812C80C @@ -3366,7 +3366,7 @@ sub_812C848: @ 812C848 bne _0812C8A8 adds r0, r4, 0 bl sub_8078650 - ldr r5, _0812C884 @ =gUnknown_03004B00 + ldr r5, _0812C884 @ =gBattleAnimArgs movs r2, 0 ldrsh r1, [r5, r2] adds r0, r4, 0 @@ -3384,7 +3384,7 @@ sub_812C848: @ 812C848 ldrh r0, [r5, 0x4] b _0812C8A2 .align 2, 0 -_0812C884: .4byte gUnknown_03004B00 +_0812C884: .4byte gBattleAnimArgs _0812C888: .4byte gUnknown_0202F7C8 _0812C88C: movs r1, 0x4 @@ -3482,14 +3482,14 @@ sub_812C924: @ 812C924 lsrs r0, 24 cmp r0, 0x1 bne _0812C948 - ldr r1, _0812C944 @ =gUnknown_03004B00 + ldr r1, _0812C944 @ =gBattleAnimArgs movs r0, 0 b _0812C94C .align 2, 0 _0812C940: .4byte gUnknown_0202F7C9 -_0812C944: .4byte gUnknown_03004B00 +_0812C944: .4byte gBattleAnimArgs _0812C948: - ldr r1, _0812C95C @ =gUnknown_03004B00 + ldr r1, _0812C95C @ =gBattleAnimArgs movs r0, 0x1 _0812C94C: strh r0, [r1, 0xE] @@ -3499,7 +3499,7 @@ _0812C94C: pop {r0} bx r0 .align 2, 0 -_0812C95C: .4byte gUnknown_03004B00 +_0812C95C: .4byte gBattleAnimArgs thumb_func_end sub_812C924 thumb_func_start sub_812C960 @@ -3511,14 +3511,14 @@ sub_812C960: @ 812C960 ldr r0, [r0] cmp r0, 0 ble _0812C97C - ldr r1, _0812C978 @ =gUnknown_03004B00 + ldr r1, _0812C978 @ =gBattleAnimArgs movs r0, 0 b _0812C980 .align 2, 0 _0812C974: .4byte gUnknown_0202F7B8 -_0812C978: .4byte gUnknown_03004B00 +_0812C978: .4byte gBattleAnimArgs _0812C97C: - ldr r1, _0812C98C @ =gUnknown_03004B00 + ldr r1, _0812C98C @ =gBattleAnimArgs movs r0, 0x1 _0812C980: strh r0, [r1, 0xE] @@ -3527,7 +3527,7 @@ _0812C980: pop {r0} bx r0 .align 2, 0 -_0812C98C: .4byte gUnknown_03004B00 +_0812C98C: .4byte gBattleAnimArgs thumb_func_end sub_812C960 thumb_func_start sub_812C990 @@ -3719,7 +3719,7 @@ _0812CAF8: .4byte 0x00003f3f sub_812CAFC: @ 812CAFC push {r4-r6,lr} adds r5, r0, 0 - ldr r6, _0812CB70 @ =gUnknown_03004B00 + ldr r6, _0812CB70 @ =gBattleAnimArgs movs r1, 0x6 ldrsh r0, [r6, r1] cmp r0, 0 @@ -3774,7 +3774,7 @@ _0812CB28: movs r0, 0x2 b _0812CB8A .align 2, 0 -_0812CB70: .4byte gUnknown_03004B00 +_0812CB70: .4byte gBattleAnimArgs _0812CB74: .4byte gUnknown_0202F7C8 _0812CB78: .4byte 0x000003ff _0812CB7C: .4byte 0xfffffc00 @@ -3785,7 +3785,7 @@ _0812CB84: ldr r0, _0812CBA8 @ =0x0000fffe _0812CB8A: strh r0, [r5, 0x30] - ldr r1, _0812CBAC @ =gUnknown_03004B00 + ldr r1, _0812CBAC @ =gBattleAnimArgs ldrh r0, [r1, 0x8] strh r0, [r5, 0x2E] movs r2, 0x34 @@ -3802,7 +3802,7 @@ _0812CB9E: bx r0 .align 2, 0 _0812CBA8: .4byte 0x0000fffe -_0812CBAC: .4byte gUnknown_03004B00 +_0812CBAC: .4byte gBattleAnimArgs _0812CBB0: .4byte sub_812CBB4 thumb_func_end sub_812CAFC @@ -3965,7 +3965,7 @@ _0812CCE4: .4byte gUnknown_03004244 sub_812CCE8: @ 812CCE8 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, _0812CCFC @ =gUnknown_03004B00 + ldr r6, _0812CCFC @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 @@ -3973,7 +3973,7 @@ sub_812CCE8: @ 812CCE8 ldr r4, _0812CD00 @ =gUnknown_0202F7C8 b _0812CD06 .align 2, 0 -_0812CCFC: .4byte gUnknown_03004B00 +_0812CCFC: .4byte gBattleAnimArgs _0812CD00: .4byte gUnknown_0202F7C8 _0812CD04: ldr r4, _0812CD58 @ =gUnknown_0202F7C9 @@ -3992,7 +3992,7 @@ _0812CD06: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r2, _0812CD5C @ =gUnknown_03004B00 + ldr r2, _0812CD5C @ =gBattleAnimArgs ldrh r0, [r2, 0x4] strh r0, [r5, 0x26] movs r3, 0 @@ -4020,7 +4020,7 @@ _0812CD3E: bx r0 .align 2, 0 _0812CD58: .4byte gUnknown_0202F7C9 -_0812CD5C: .4byte gUnknown_03004B00 +_0812CD5C: .4byte gBattleAnimArgs _0812CD60: .4byte sub_812CD64 thumb_func_end sub_812CCE8 @@ -4087,7 +4087,7 @@ sub_812CDC8: @ 812CDC8 lsls r1, 3 ldr r0, _0812CDE8 @ =gTasks adds r5, r1, r0 - ldr r0, _0812CDEC @ =gUnknown_03004B00 + ldr r0, _0812CDEC @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -4096,7 +4096,7 @@ sub_812CDC8: @ 812CDC8 b _0812CDF6 .align 2, 0 _0812CDE8: .4byte gTasks -_0812CDEC: .4byte gUnknown_03004B00 +_0812CDEC: .4byte gBattleAnimArgs _0812CDF0: .4byte gUnknown_0202F7C8 _0812CDF4: ldr r4, _0812CE3C @ =gUnknown_0202F7C9 @@ -4125,7 +4125,7 @@ _0812CE20: strh r0, [r5, 0xE] movs r0, 0x8 strh r0, [r5, 0x10] - ldr r1, _0812CE40 @ =gUnknown_03004B00 + ldr r1, _0812CE40 @ =gBattleAnimArgs ldrh r0, [r1, 0x2] strh r0, [r5, 0x12] strh r2, [r5, 0x14] @@ -4136,7 +4136,7 @@ _0812CE20: b _0812CE4A .align 2, 0 _0812CE3C: .4byte gUnknown_0202F7C9 -_0812CE40: .4byte gUnknown_03004B00 +_0812CE40: .4byte gBattleAnimArgs _0812CE44: .4byte gUnknown_030042C0 _0812CE48: ldr r0, _0812CE68 @ =gUnknown_03004288 @@ -5487,14 +5487,14 @@ _0812D85E: add r1, r8 lsls r1, 3 adds r1, r0 - ldr r0, _0812D884 @ =gUnknown_03004B00 + ldr r0, _0812D884 @ =gBattleAnimArgs ldrh r0, [r0] strh r0, [r1, 0x1C] b _0812DA2A .align 2, 0 _0812D87C: .4byte REG_BG2CNT _0812D880: .4byte gTasks -_0812D884: .4byte gUnknown_03004B00 +_0812D884: .4byte gBattleAnimArgs _0812D888: mov r1, r8 lsls r0, r1, 2 @@ -5817,7 +5817,7 @@ c3_80DFBE4: @ 812DB18 push {r4,lr} lsls r0, 24 lsrs r0, 24 - ldr r4, _0812DB48 @ =gUnknown_03004B00 + ldr r4, _0812DB48 @ =gBattleAnimArgs ldr r3, _0812DB4C @ =gSprites ldr r2, _0812DB50 @ =gUnknown_02024BE0 ldr r1, _0812DB54 @ =gUnknown_0202F7C8 @@ -5838,7 +5838,7 @@ c3_80DFBE4: @ 812DB18 pop {r0} bx r0 .align 2, 0 -_0812DB48: .4byte gUnknown_03004B00 +_0812DB48: .4byte gBattleAnimArgs _0812DB4C: .4byte gSprites _0812DB50: .4byte gUnknown_02024BE0 _0812DB54: .4byte gUnknown_0202F7C8 @@ -6288,7 +6288,7 @@ _0812DED6: lsrs r0, 24 adds r0, 0x20 strh r0, [r7, 0x22] - ldr r1, _0812DFD4 @ =gUnknown_03004B00 + ldr r1, _0812DFD4 @ =gBattleAnimArgs ldrh r0, [r1] strh r0, [r7, 0x30] ldrh r0, [r1, 0x2] @@ -6346,7 +6346,7 @@ _0812DED6: adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnim - ldr r1, _0812DFD4 @ =gUnknown_03004B00 + ldr r1, _0812DFD4 @ =gBattleAnimArgs ldrh r0, [r1] strh r0, [r5, 0x30] ldrh r0, [r1, 0x2] @@ -6393,7 +6393,7 @@ _0812DED6: bx r0 .align 2, 0 _0812DFD0: .4byte gUnknown_0202F7C8 -_0812DFD4: .4byte gUnknown_03004B00 +_0812DFD4: .4byte gBattleAnimArgs _0812DFD8: .4byte gBattleAnimSpriteTemplate_84025EC _0812DFDC: .4byte gSprites _0812DFE0: .4byte 0x0000ffff @@ -6714,7 +6714,7 @@ _0812E260: bl battle_get_per_side_status lsls r0, 24 lsrs r4, r0, 24 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -7107,7 +7107,7 @@ sub_812E568: @ 812E568 lsls r0, 3 ldr r1, _0812E58C @ =gTasks adds r4, r0, r1 - ldr r5, _0812E590 @ =gUnknown_03004B00 + ldr r5, _0812E590 @ =gBattleAnimArgs movs r1, 0x2 ldrsh r0, [r5, r1] cmp r0, 0 @@ -7117,7 +7117,7 @@ sub_812E568: @ 812E568 b _0812E628 .align 2, 0 _0812E58C: .4byte gTasks -_0812E590: .4byte gUnknown_03004B00 +_0812E590: .4byte gBattleAnimArgs _0812E594: movs r1, 0x4 ldrsh r0, [r5, r1] @@ -7396,16 +7396,16 @@ sub_812E7A0: @ 812E7A0 cmp r0, 0 bne _0812E7C4 strh r0, [r4, 0x20] - ldr r1, _0812E7C0 @ =gUnknown_03004B00 + ldr r1, _0812E7C0 @ =gBattleAnimArgs ldrh r0, [r1] b _0812E7CE .align 2, 0 _0812E7BC: .4byte gUnknown_0202F7C8 -_0812E7C0: .4byte gUnknown_03004B00 +_0812E7C0: .4byte gBattleAnimArgs _0812E7C4: movs r0, 0xF0 strh r0, [r4, 0x20] - ldr r1, _0812E7E8 @ =gUnknown_03004B00 + ldr r1, _0812E7E8 @ =gBattleAnimArgs ldrh r0, [r1] subs r0, 0x1E _0812E7CE: @@ -7421,7 +7421,7 @@ _0812E7CE: pop {r0} bx r0 .align 2, 0 -_0812E7E8: .4byte gUnknown_03004B00 +_0812E7E8: .4byte gBattleAnimArgs _0812E7EC: .4byte sub_812E7F0 thumb_func_end sub_812E7A0 @@ -7506,7 +7506,7 @@ sub_812E860: @ 812E860 movs r0, 0x80 lsls r0, 4 strh r0, [r4, 0x24] - ldr r0, _0812E8AC @ =gUnknown_03004B00 + ldr r0, _0812E8AC @ =gBattleAnimArgs ldrb r0, [r0] bl obj_id_for_side_relative_to_move lsls r0, 24 @@ -7521,7 +7521,7 @@ sub_812E860: @ 812E860 bx r0 .align 2, 0 _0812E8A8: .4byte gTasks -_0812E8AC: .4byte gUnknown_03004B00 +_0812E8AC: .4byte gBattleAnimArgs _0812E8B0: .4byte sub_812E8B4 thumb_func_end sub_812E860 @@ -7742,7 +7742,7 @@ sub_812EA4C: @ 812EA4C ldrsh r0, [r5, r1] cmp r0, 0 bne _0812EAAC - ldr r6, _0812EAA4 @ =gUnknown_03004B00 + ldr r6, _0812EAA4 @ =gBattleAnimArgs movs r2, 0x4 ldrsh r0, [r6, r2] cmp r0, 0 @@ -7780,7 +7780,7 @@ _0812EA80: strh r0, [r5, 0x2E] b _0812EB0A .align 2, 0 -_0812EAA4: .4byte gUnknown_03004B00 +_0812EAA4: .4byte gBattleAnimArgs _0812EAA8: .4byte gUnknown_0202F7C8 _0812EAAC: ldrh r1, [r5, 0x30] @@ -7852,7 +7852,7 @@ sub_812EB10: @ 812EB10 ldrsh r0, [r2, r1] cmp r0, 0 bne _0812EC1C - ldr r0, _0812EB44 @ =gUnknown_03004B00 + ldr r0, _0812EB44 @ =gBattleAnimArgs movs r3, 0 ldrsh r1, [r0, r3] mov r8, r0 @@ -7862,7 +7862,7 @@ sub_812EB10: @ 812EB10 b _0812EB4E .align 2, 0 _0812EB40: .4byte gTasks -_0812EB44: .4byte gUnknown_03004B00 +_0812EB44: .4byte gBattleAnimArgs _0812EB48: .4byte gUnknown_0202F7C8 _0812EB4C: ldr r0, _0812EB88 @ =gUnknown_0202F7C9 @@ -8077,7 +8077,7 @@ _0812ECEA: subs r0, r1 _0812ECF2: strh r0, [r4, 0x30] - ldr r0, _0812ED04 @ =gUnknown_03004B00 + ldr r0, _0812ED04 @ =gBattleAnimArgs ldrh r0, [r0] strh r0, [r4, 0x32] lsls r0, 16 @@ -8086,7 +8086,7 @@ _0812ECF2: ldr r0, _0812ED08 @ =0x0000fff8 b _0812ED0E .align 2, 0 -_0812ED04: .4byte gUnknown_03004B00 +_0812ED04: .4byte gBattleAnimArgs _0812ED08: .4byte 0x0000fff8 _0812ED0C: movs r0, 0xF8 @@ -8183,7 +8183,7 @@ sub_812ED84: @ 812ED84 strh r1, [r0] adds r0, 0x4 strh r1, [r0] - ldr r0, _0812EDF8 @ =gUnknown_03004B00 + ldr r0, _0812EDF8 @ =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] adds r0, r4, 0 @@ -8213,7 +8213,7 @@ _0812EDE8: .4byte 0x00001f3f _0812EDEC: .4byte gUnknown_030042C4 _0812EDF0: .4byte gUnknown_03004240 _0812EDF4: .4byte REG_WIN0H -_0812EDF8: .4byte gUnknown_03004B00 +_0812EDF8: .4byte gBattleAnimArgs _0812EDFC: .4byte sub_812EE00 thumb_func_end sub_812ED84 @@ -8323,7 +8323,7 @@ sub_812EEA4: @ 812EEA4 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] - ldr r1, _0812EEE4 @ =gUnknown_03004B00 + ldr r1, _0812EEE4 @ =gBattleAnimArgs ldrh r0, [r1] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x2] @@ -8337,7 +8337,7 @@ sub_812EEA4: @ 812EEA4 bx r0 .align 2, 0 _0812EEE0: .4byte gUnknown_0202F7C8 -_0812EEE4: .4byte gUnknown_03004B00 +_0812EEE4: .4byte gBattleAnimArgs _0812EEE8: .4byte sub_812EEEC thumb_func_end sub_812EEA4 @@ -8867,7 +8867,7 @@ sub_812F314: @ 812F314 lsls r1, 3 ldr r0, _0812F334 @ =gTasks adds r4, r1, r0 - ldr r0, _0812F338 @ =gUnknown_03004B00 + ldr r0, _0812F338 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -8876,7 +8876,7 @@ sub_812F314: @ 812F314 b _0812F342 .align 2, 0 _0812F334: .4byte gTasks -_0812F338: .4byte gUnknown_03004B00 +_0812F338: .4byte gBattleAnimArgs _0812F33C: .4byte gUnknown_0202F7C8 _0812F340: ldr r0, _0812F3C0 @ =gUnknown_0202F7C9 @@ -8919,7 +8919,7 @@ _0812F388: ldrh r0, [r4, 0x22] adds r0, 0x42 strh r0, [r4, 0x24] - ldr r0, _0812F3C4 @ =gUnknown_03004B00 + ldr r0, _0812F3C4 @ =gBattleAnimArgs ldrb r0, [r0] bl obj_id_for_side_relative_to_move lsls r0, 24 @@ -8943,7 +8943,7 @@ _0812F388: b _0812F3EE .align 2, 0 _0812F3C0: .4byte gUnknown_0202F7C9 -_0812F3C4: .4byte gUnknown_03004B00 +_0812F3C4: .4byte gBattleAnimArgs _0812F3C8: .4byte REG_BG1HOFS _0812F3CC: .4byte REG_BLDCNT _0812F3D0: .4byte 0x00003f42 @@ -9390,7 +9390,7 @@ sub_812F724: @ 812F724 adds r4, r0 movs r0, 0 strh r0, [r4, 0x8] - ldr r0, _0812F760 @ =gUnknown_03004B00 + ldr r0, _0812F760 @ =gBattleAnimArgs ldrb r0, [r0] bl obj_id_for_side_relative_to_move adds r1, r0, 0 @@ -9407,7 +9407,7 @@ sub_812F724: @ 812F724 bx r0 .align 2, 0 _0812F75C: .4byte gTasks -_0812F760: .4byte gUnknown_03004B00 +_0812F760: .4byte gBattleAnimArgs _0812F764: .4byte gUnknown_08402750 _0812F768: .4byte sub_812F76C thumb_func_end sub_812F724 @@ -9570,7 +9570,7 @@ sub_812F88C: @ 812F88C ldrh r6, [r4, 0x20] ldrh r5, [r4, 0x22] bl sub_8078650 - ldr r0, _0812F8D4 @ =gUnknown_03004B00 + ldr r0, _0812F8D4 @ =gBattleAnimArgs ldrb r1, [r0] adds r0, r4, 0 bl StartSpriteAffineAnim @@ -9597,7 +9597,7 @@ sub_812F88C: @ 812F88C pop {r0} bx r0 .align 2, 0 -_0812F8D4: .4byte gUnknown_03004B00 +_0812F8D4: .4byte gBattleAnimArgs _0812F8D8: .4byte sub_812F8DC thumb_func_end sub_812F88C @@ -9661,7 +9661,7 @@ _0812F942: sub_812F948: @ 812F948 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, _0812F9A0 @ =gUnknown_03004B00 + ldr r6, _0812F9A0 @ =gBattleAnimArgs ldrh r0, [r6, 0x6] strh r0, [r5, 0x2E] ldrb r1, [r6] @@ -9700,7 +9700,7 @@ _0812F96E: pop {r0} bx r0 .align 2, 0 -_0812F9A0: .4byte gUnknown_03004B00 +_0812F9A0: .4byte gBattleAnimArgs _0812F9A4: .4byte gUnknown_0202F7C9 _0812F9A8: .4byte gUnknown_0202F7C8 _0812F9AC: .4byte sub_80DA48C @@ -10096,7 +10096,7 @@ sub_812FC68: @ 812FC68 adds r0, r1 ldrb r0, [r0] strh r0, [r4, 0x26] - ldr r5, _0812FCD4 @ =gUnknown_03004B00 + ldr r5, _0812FCD4 @ =gBattleAnimArgs ldrh r0, [r5] strh r0, [r4, 0x24] ldrh r0, [r5] @@ -10129,7 +10129,7 @@ _0812FCAC: _0812FCC8: .4byte gTasks _0812FCCC: .4byte gUnknown_02024BE0 _0812FCD0: .4byte gUnknown_0202F7C8 -_0812FCD4: .4byte gUnknown_03004B00 +_0812FCD4: .4byte gBattleAnimArgs _0812FCD8: .4byte 0xffff8000 _0812FCDC: movs r7, 0x2 @@ -10152,7 +10152,7 @@ _0812FCF8: orrs r0, r1 _0812FD00: strh r0, [r4, 0xC] - ldr r0, _0812FD2C @ =gUnknown_03004B00 + ldr r0, _0812FD2C @ =gBattleAnimArgs movs r3, 0x4 ldrsh r1, [r0, r3] movs r2, 0x80 @@ -10172,7 +10172,7 @@ _0812FD00: b _0812FD4A .align 2, 0 _0812FD28: .4byte 0xffff8000 -_0812FD2C: .4byte gUnknown_03004B00 +_0812FD2C: .4byte gBattleAnimArgs _0812FD30: .4byte gTasks _0812FD34: .4byte 0x00007fff _0812FD38: @@ -10221,7 +10221,7 @@ sub_812FD7C: @ 812FD7C lsls r0, 3 ldr r1, _0812FDB4 @ =gTasks adds r5, r0, r1 - ldr r4, _0812FDB8 @ =gUnknown_03004B00 + ldr r4, _0812FDB8 @ =gBattleAnimArgs movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0 @@ -10243,7 +10243,7 @@ _0812FD9C: b _0812FDC2 .align 2, 0 _0812FDB4: .4byte gTasks -_0812FDB8: .4byte gUnknown_03004B00 +_0812FDB8: .4byte gBattleAnimArgs _0812FDBC: .4byte gUnknown_0202F7C8 _0812FDC0: ldr r0, _0812FE10 @ =gUnknown_0202F7C9 @@ -10266,7 +10266,7 @@ _0812FDC2: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x14] - ldr r0, _0812FE14 @ =gUnknown_03004B00 + ldr r0, _0812FE14 @ =gBattleAnimArgs ldrb r0, [r0] bl obj_id_for_side_relative_to_move adds r1, r0, 0 @@ -10283,7 +10283,7 @@ _0812FDC2: bx r0 .align 2, 0 _0812FE10: .4byte gUnknown_0202F7C9 -_0812FE14: .4byte gUnknown_03004B00 +_0812FE14: .4byte gBattleAnimArgs _0812FE18: .4byte gUnknown_084028AC _0812FE1C: .4byte sub_812FE20 thumb_func_end sub_812FD7C @@ -10537,7 +10537,7 @@ sub_812FFE4: @ 812FFE4 adds r4, r1 movs r0, 0 strh r0, [r4, 0x8] - ldr r1, _08130030 @ =gUnknown_03004B00 + ldr r1, _08130030 @ =gBattleAnimArgs ldrh r0, [r1, 0x2] strh r0, [r4, 0xA] ldrb r0, [r1] @@ -10564,7 +10564,7 @@ sub_812FFE4: @ 812FFE4 bx r0 .align 2, 0 _0813002C: .4byte gTasks -_08130030: .4byte gUnknown_03004B00 +_08130030: .4byte gBattleAnimArgs _08130034: .4byte gSprites _08130038: .4byte sub_813003C thumb_func_end sub_812FFE4 @@ -10634,7 +10634,7 @@ sub_81300A4: @ 81300A4 lsls r2, 1 ldr r1, _081300E0 @ =gUnknown_0202F7C8 ldrb r3, [r1] - ldr r1, _081300E4 @ =gUnknown_03004B00 + ldr r1, _081300E4 @ =gBattleAnimArgs ldrb r1, [r1] str r1, [sp] movs r1, 0xA @@ -10656,7 +10656,7 @@ sub_81300A4: @ 81300A4 bx r0 .align 2, 0 _081300E0: .4byte gUnknown_0202F7C8 -_081300E4: .4byte gUnknown_03004B00 +_081300E4: .4byte gBattleAnimArgs _081300E8: .4byte gUnknown_08D2E014 _081300EC: .4byte gUnknown_08D2E170 _081300F0: .4byte gUnknown_08D2E150 @@ -10673,7 +10673,7 @@ sub_81300F4: @ 81300F4 lsrs r0, 24 cmp r0, 0x1 bne _08130110 - ldr r1, _08130150 @ =gUnknown_03004B00 + ldr r1, _08130150 @ =gBattleAnimArgs ldrh r0, [r1] negs r0, r0 strh r0, [r1] @@ -10682,7 +10682,7 @@ _08130110: movs r1, 0 bl sub_8077ABC lsls r0, 24 - ldr r4, _08130150 @ =gUnknown_03004B00 + ldr r4, _08130150 @ =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4] adds r0, r1 @@ -10707,7 +10707,7 @@ _08130110: b _08130180 .align 2, 0 _0813014C: .4byte gUnknown_0202F7C8 -_08130150: .4byte gUnknown_03004B00 +_08130150: .4byte gBattleAnimArgs _08130154: .4byte 0x0000fd80 _08130158: cmp r0, 0x1 @@ -11214,7 +11214,7 @@ _08130518: .4byte gTasks sub_813051C: @ 813051C push {r4,lr} adds r4, r0, 0 - ldr r1, _08130548 @ =gUnknown_03004B00 + ldr r1, _08130548 @ =gBattleAnimArgs ldrh r0, [r1] strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] @@ -11234,7 +11234,7 @@ sub_813051C: @ 813051C pop {r0} bx r0 .align 2, 0 -_08130548: .4byte gUnknown_03004B00 +_08130548: .4byte gBattleAnimArgs _0813054C: .4byte move_anim_8072740 _08130550: .4byte sub_8078CC0 thumb_func_end sub_813051C @@ -11540,7 +11540,7 @@ _081307AA: sub_81307B0: @ 81307B0 push {r4-r6,lr} adds r4, r0, 0 - ldr r0, _081307C4 @ =gUnknown_03004B00 + ldr r0, _081307C4 @ =gBattleAnimArgs movs r2, 0 ldrsh r1, [r0, r2] adds r6, r0, 0 @@ -11549,7 +11549,7 @@ sub_81307B0: @ 81307B0 ldr r0, _081307C8 @ =gUnknown_0202F7C8 b _081307CE .align 2, 0 -_081307C4: .4byte gUnknown_03004B00 +_081307C4: .4byte gBattleAnimArgs _081307C8: .4byte gUnknown_0202F7C8 _081307CC: ldr r0, _08130834 @ =gUnknown_0202F7C9 @@ -11735,7 +11735,7 @@ sub_8130918: @ 8130918 push {r4,lr} lsls r0, 24 lsrs r1, r0, 24 - ldr r2, _08130930 @ =gUnknown_03004B00 + ldr r2, _08130930 @ =gBattleAnimArgs movs r3, 0 ldrsh r0, [r2, r3] cmp r0, 0 @@ -11744,7 +11744,7 @@ sub_8130918: @ 8130918 bl move_anim_task_del b _0813095C .align 2, 0 -_08130930: .4byte gUnknown_03004B00 +_08130930: .4byte gBattleAnimArgs _08130934: ldr r0, _08130964 @ =gTasks lsls r4, r1, 2 @@ -11873,7 +11873,7 @@ _08130A26: sub_8130A2C: @ 8130A2C push {r4,r5,lr} adds r5, r0, 0 - ldr r0, _08130A40 @ =gUnknown_03004B00 + ldr r0, _08130A40 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -11881,7 +11881,7 @@ sub_8130A2C: @ 8130A2C ldr r4, _08130A44 @ =gUnknown_0202F7C8 b _08130A4A .align 2, 0 -_08130A40: .4byte gUnknown_03004B00 +_08130A40: .4byte gBattleAnimArgs _08130A44: .4byte gUnknown_0202F7C8 _08130A48: ldr r4, _08130A88 @ =gUnknown_0202F7C9 @@ -11905,7 +11905,7 @@ _08130A4A: _08130A6E: movs r2, 0 strh r2, [r5, 0x2E] - ldr r1, _08130A8C @ =gUnknown_03004B00 + ldr r1, _08130A8C @ =gBattleAnimArgs ldrh r0, [r1, 0x2] strh r0, [r5, 0x30] strh r2, [r5, 0x32] @@ -11918,7 +11918,7 @@ _08130A6E: bx r0 .align 2, 0 _08130A88: .4byte gUnknown_0202F7C9 -_08130A8C: .4byte gUnknown_03004B00 +_08130A8C: .4byte gBattleAnimArgs _08130A90: .4byte sub_8130A94 thumb_func_end sub_8130A2C @@ -11974,7 +11974,7 @@ _08130AE8: sub_8130AEC: @ 8130AEC push {lr} adds r3, r0, 0 - ldr r0, _08130B18 @ =gUnknown_03004B00 + ldr r0, _08130B18 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -11994,7 +11994,7 @@ sub_8130AEC: @ 8130AEC movs r0, 0x1 b _08130B22 .align 2, 0 -_08130B18: .4byte gUnknown_03004B00 +_08130B18: .4byte gBattleAnimArgs _08130B1C: movs r0, 0x8C strh r0, [r3, 0x20] @@ -12284,7 +12284,7 @@ sub_8130D20: @ 8130D20 lsls r0, 24 cmp r0, 0 bne _08130DA8 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x1 @@ -12562,7 +12562,7 @@ _08130F58: .4byte gSprites sub_8130F5C: @ 8130F5C push {r4,lr} adds r4, r0, 0 - ldr r0, _08130F78 @ =gUnknown_03004B00 + ldr r0, _08130F78 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -12573,7 +12573,7 @@ sub_8130F5C: @ 8130F5C ldr r0, _08130F7C @ =gUnknown_0202F7C8 b _08130F82 .align 2, 0 -_08130F78: .4byte gUnknown_03004B00 +_08130F78: .4byte gBattleAnimArgs _08130F7C: .4byte gUnknown_0202F7C8 _08130F80: ldr r0, _08130FD8 @ =gUnknown_0202F7C9 @@ -12979,7 +12979,7 @@ sub_8131264: @ 8131264 cmp r0, 0 beq _081312A8 _08131290: - ldr r2, _081312A4 @ =gUnknown_03004B00 + ldr r2, _081312A4 @ =gBattleAnimArgs ldrh r1, [r5, 0x20] ldrh r0, [r2] subs r0, r1, r0 @@ -12989,9 +12989,9 @@ _08131290: b _081312B6 .align 2, 0 _081312A0: .4byte gUnknown_0202F7C9 -_081312A4: .4byte gUnknown_03004B00 +_081312A4: .4byte gBattleAnimArgs _081312A8: - ldr r2, _081312DC @ =gUnknown_03004B00 + ldr r2, _081312DC @ =gBattleAnimArgs ldrh r1, [r5, 0x20] ldrh r0, [r2] adds r0, r1, r0 @@ -13019,7 +13019,7 @@ _081312B6: pop {r0} bx r0 .align 2, 0 -_081312DC: .4byte gUnknown_03004B00 +_081312DC: .4byte gBattleAnimArgs _081312E0: .4byte sub_81311E4 thumb_func_end sub_8131264 @@ -13810,7 +13810,7 @@ sub_81318F0: @ 81318F0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r3, _0813193C @ =gUnknown_03004B00 + ldr r3, _0813193C @ =gBattleAnimArgs movs r2, 0 strh r2, [r3, 0xE] ldr r1, _08131940 @ =gUnknown_0202F7BE @@ -13848,7 +13848,7 @@ _08131930: pop {r0} bx r0 .align 2, 0 -_0813193C: .4byte gUnknown_03004B00 +_0813193C: .4byte gBattleAnimArgs _08131940: .4byte gUnknown_0202F7BE thumb_func_end sub_81318F0 @@ -14305,7 +14305,7 @@ _08131D02: ldrh r0, [r6, 0x24] adds r0, 0x1 strh r0, [r6, 0x24] - ldr r1, _08131D34 @ =gUnknown_03004B00 + ldr r1, _08131D34 @ =gBattleAnimArgs ldr r0, _08131D38 @ =0x0000ffff strh r0, [r1, 0xE] _08131D0E: @@ -14329,7 +14329,7 @@ _08131D20: b _08131DB6 .align 2, 0 _08131D30: .4byte gUnknown_0202F7C9 -_08131D34: .4byte gUnknown_03004B00 +_08131D34: .4byte gBattleAnimArgs _08131D38: .4byte 0x0000ffff _08131D3C: .4byte gTasks _08131D40: @@ -14527,7 +14527,7 @@ sub_8131EB8: @ 8131EB8 beq _08131F72 b _08131FF4 _08131ECA: - ldr r0, _08131F50 @ =gUnknown_03004B00 + ldr r0, _08131F50 @ =gBattleAnimArgs movs r2, 0xE ldrsh r1, [r0, r2] movs r0, 0x1 @@ -14589,7 +14589,7 @@ _08131ECA: strb r0, [r1] b _08131FF4 .align 2, 0 -_08131F50: .4byte gUnknown_03004B00 +_08131F50: .4byte gBattleAnimArgs _08131F54: .4byte gUnknown_0202F7C9 _08131F58: .4byte 0x0000ffe0 _08131F5C: .4byte gUnknown_0202F7C8 @@ -15129,7 +15129,7 @@ sub_8132370: @ 8132370 lsls r0, 24 cmp r0, 0 bne _081323B4 - ldr r2, _081323AC @ =gUnknown_03004B00 + ldr r2, _081323AC @ =gBattleAnimArgs ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 @@ -15148,14 +15148,14 @@ sub_8132370: @ 8132370 b _081323CE .align 2, 0 _081323A8: .4byte gUnknown_0202F7C9 -_081323AC: .4byte gUnknown_03004B00 +_081323AC: .4byte gBattleAnimArgs _081323B0: .4byte 0x0000fff5 _081323B4: movs r0, 0xB strh r0, [r4, 0x2E] movs r0, 0xC0 strh r0, [r4, 0x30] - ldr r1, _081323D8 @ =gUnknown_03004B00 + ldr r1, _081323D8 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -15171,7 +15171,7 @@ _081323CE: pop {r0} bx r0 .align 2, 0 -_081323D8: .4byte gUnknown_03004B00 +_081323D8: .4byte gBattleAnimArgs _081323DC: .4byte sub_8132318 thumb_func_end sub_8132370 @@ -15357,7 +15357,7 @@ sub_8132528: @ 8132528 push {lr} lsls r0, 24 lsrs r3, r0, 24 - ldr r2, _08132544 @ =gUnknown_03004B00 + ldr r2, _08132544 @ =gBattleAnimArgs movs r0, 0 strh r0, [r2, 0xE] ldr r0, _08132548 @ =gUnknown_0202F7C0 @@ -15369,7 +15369,7 @@ sub_8132528: @ 8132528 movs r0, 0x1 b _0813256E .align 2, 0 -_08132544: .4byte gUnknown_03004B00 +_08132544: .4byte gBattleAnimArgs _08132548: .4byte gUnknown_0202F7C0 _0813254C: movs r0, 0x7 @@ -15412,7 +15412,7 @@ sub_813257C: @ 813257C adds r4, r0 movs r0, 0 strh r0, [r4, 0x8] - ldr r0, _081325B8 @ =gUnknown_03004B00 + ldr r0, _081325B8 @ =gBattleAnimArgs ldrb r0, [r0] bl obj_id_for_side_relative_to_move adds r1, r0, 0 @@ -15429,7 +15429,7 @@ sub_813257C: @ 813257C bx r0 .align 2, 0 _081325B4: .4byte gTasks -_081325B8: .4byte gUnknown_03004B00 +_081325B8: .4byte gBattleAnimArgs _081325BC: .4byte gUnknown_08402B28 _081325C0: .4byte sub_81325C4 thumb_func_end sub_813257C @@ -21501,7 +21501,7 @@ _08135588: beq _08135600 b _08135648 _0813558E: - ldr r1, _081355A4 @ =gUnknown_020239F8 + ldr r1, _081355A4 @ =gBattleTypeFlags movs r3, 0x84 lsls r3, 1 adds r0, r3, 0 @@ -21511,7 +21511,7 @@ _0813558E: bl sub_8134DD4 b _081355D6 .align 2, 0 -_081355A4: .4byte gUnknown_020239F8 +_081355A4: .4byte gBattleTypeFlags _081355A8: .4byte gTrainerBattleOpponent _081355AC: movs r5, 0 @@ -21565,7 +21565,7 @@ _08135606: adds r5, 0x1 cmp r5, 0x2 ble _08135606 - ldr r1, _08135658 @ =gUnknown_020239F8 + ldr r1, _08135658 @ =gBattleTypeFlags ldr r2, _0813565C @ =0x00000808 adds r0, r2, 0 strh r0, [r1] @@ -21589,7 +21589,7 @@ _08135648: .align 2, 0 _08135650: .4byte gEnemyParty _08135654: .4byte gSaveBlock2 + 0x4CC -_08135658: .4byte gUnknown_020239F8 +_08135658: .4byte gBattleTypeFlags _0813565C: .4byte 0x00000808 _08135660: .4byte gTrainerBattleOpponent _08135664: .4byte sub_8135534 @@ -21803,7 +21803,7 @@ _08135820: adds r0, r5, r2 ldrh r1, [r0] movs r0, 0x20 - bl sav12_xor_set + bl SetGameStat b _0813589A .align 2, 0 _08135830: .4byte 0x00000572 @@ -21985,7 +21985,7 @@ _081359A0: adds r0, r3, r1 ldrh r1, [r0] movs r0, 0x20 - bl sav12_xor_set + bl SetGameStat b _08135A0A .align 2, 0 _081359B0: .4byte 0x00000572 @@ -22093,7 +22093,7 @@ _08135A66: adds r5, r0, 0 movs r0, 0x20 adds r1, r5, 0 - bl sav12_xor_set + bl SetGameStat ldr r1, _08135A90 @ =0x0000270f cmp r5, r1 bhi _08135AA4 @@ -22107,7 +22107,7 @@ _08135A94: ldrh r5, [r1] movs r0, 0x20 adds r1, r5, 0 - bl sav12_xor_set + bl SetGameStat ldr r1, _08135AAC @ =0x0000270f cmp r5, r1 bls _08135AB4 @@ -22179,7 +22179,7 @@ _08135B0E: adds r0, 0xC ldr r4, _08135B88 @ =gSaveBlock2 + 0xA adds r1, r4, 0 - bl sub_8052D10 + bl copy_word_to_mem adds r0, r5, 0x4 subs r4, 0xA adds r1, r4, 0 @@ -22651,7 +22651,7 @@ _08135EBA: cmp r0, 0 beq _08135EC8 movs r0, 0x2A - bl sav12_xor_increment + bl IncrementGameStat _08135EC8: pop {r3} mov r8, r3 @@ -22708,7 +22708,7 @@ _08135F2A: adds r0, 0xC ldr r4, _08135FAC @ =gSaveBlock2 + 0xA adds r1, r4, 0 - bl sub_8052D10 + bl copy_word_to_mem adds r0, r7, 0x4 subs r4, 0xA adds r1, r4, 0 @@ -25546,11 +25546,11 @@ _08137596: ands r0, r1 cmp r0, 0 bne _08137684 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08137626 - ldr r0, _0813769C @ =gUnknown_020239F8 + ldr r0, _0813769C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -25644,7 +25644,7 @@ _0813768C: .4byte gUnknown_02024A60 _08137690: .4byte 0x02017810 _08137694: .4byte gUnknown_02024A6A _08137698: .4byte gPlayerParty -_0813769C: .4byte gUnknown_020239F8 +_0813769C: .4byte gBattleTypeFlags _081376A0: .4byte gUnknown_0300434C _081376A4: .4byte gSprites _081376A8: .4byte gUnknown_03004340 @@ -26001,7 +26001,7 @@ dp01_tbl5_exec_completed: @ 813796C adds r0, r1 ldr r1, _081379B4 @ =sub_813726C str r1, [r0] - ldr r0, _081379B8 @ =gUnknown_020239F8 + ldr r0, _081379B8 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x2 ands r0, r1 @@ -26025,7 +26025,7 @@ dp01_tbl5_exec_completed: @ 813796C _081379AC: .4byte gUnknown_03004330 _081379B0: .4byte gUnknown_02024A60 _081379B4: .4byte sub_813726C -_081379B8: .4byte gUnknown_020239F8 +_081379B8: .4byte gBattleTypeFlags _081379BC: .4byte gUnknown_02023A60 _081379C0: ldr r2, _081379DC @ =gUnknown_02024A64 @@ -29815,7 +29815,7 @@ sub_81398BC: @ 81398BC lsrs r0, 16 mov r8, r0 ldr r0, _08139A10 @ =sub_80312F0 - bl object_new_hidden_with_callback + bl CreateInvisibleSpriteWithCallback ldr r1, _08139A14 @ =gUnknown_0300434C mov r9, r1 add r9, r6 @@ -30171,7 +30171,7 @@ sub_8139BB8: @ 8139BB8 movs r0, 0x3 bl BeginFastPaletteFade bl dp01_tbl5_exec_completed - ldr r0, _08139C08 @ =gUnknown_020239F8 + ldr r0, _08139C08 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x6 ands r0, r1 @@ -30191,7 +30191,7 @@ _08139BF4: _08139BFC: .4byte gUnknown_02024D26 _08139C00: .4byte gUnknown_02023A60 _08139C04: .4byte gUnknown_02024A60 -_08139C08: .4byte gUnknown_020239F8 +_08139C08: .4byte gBattleTypeFlags _08139C0C: .4byte gUnknown_03004330 _08139C10: .4byte sub_813746C thumb_func_end sub_8139BB8 diff --git a/asm/rom_813BA94.s b/asm/rom_813BA94.s deleted file mode 100644 index e11d5fad9..000000000 --- a/asm/rom_813BA94.s +++ /dev/null @@ -1,20259 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start task_intro_1 -task_intro_1: @ 813BA94 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0xC - mov r8, r0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0 - bl SetVBlankCallback - ldr r4, _0813BC18 @ =gUnknown_02039318 - bl Random - movs r1, 0x1 - ands r1, r0 - strh r1, [r4] - bl intro_reset_and_hide_bgs - ldr r0, _0813BC1C @ =REG_BG3VOFS - movs r6, 0 - strh r6, [r0] - ldr r1, _0813BC20 @ =REG_BG2VOFS - movs r0, 0x50 - strh r0, [r1] - subs r1, 0x4 - movs r0, 0x18 - strh r0, [r1] - subs r1, 0x4 - movs r0, 0x28 - strh r0, [r1] - ldr r0, _0813BC24 @ =gUnknown_08407764 - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, _0813BC28 @ =gUnknown_08406B74 - ldr r1, _0813BC2C @ =0x06008000 - bl LZ77UnCompVram - ldr r1, _0813BC30 @ =0x06008800 - add r0, sp, 0x8 - strh r6, [r0] - ldr r4, _0813BC34 @ =0x040000d4 - str r0, [r4] - str r1, [r4, 0x4] - ldr r5, _0813BC38 @ =0x81000400 - str r5, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _0813BC3C @ =gUnknown_08406F28 - ldr r1, _0813BC40 @ =0x06009000 - bl LZ77UnCompVram - ldr r1, _0813BC44 @ =0x06009800 - add r0, sp, 0x8 - strh r6, [r0] - str r0, [r4] - str r1, [r4, 0x4] - str r5, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _0813BC48 @ =gUnknown_0840725C - ldr r1, _0813BC4C @ =0x0600a000 - bl LZ77UnCompVram - ldr r1, _0813BC50 @ =0x0600a800 - add r0, sp, 0x8 - strh r6, [r0] - str r0, [r4] - str r1, [r4, 0x4] - str r5, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _0813BC54 @ =gUnknown_0840754C - ldr r1, _0813BC58 @ =0x0600b000 - bl LZ77UnCompVram - ldr r1, _0813BC5C @ =0x0600b800 - add r0, sp, 0x8 - strh r6, [r0] - str r0, [r4] - str r1, [r4, 0x4] - str r5, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _0813BC60 @ =gUnknown_08406974 - movs r5, 0x80 - lsls r5, 2 - movs r1, 0 - adds r2, r5, 0 - bl LoadPalette - ldr r1, _0813BC64 @ =REG_BG3CNT - ldr r2, _0813BC68 @ =0x00009603 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x2 - ldr r3, _0813BC6C @ =0x00009402 - adds r0, r3, 0 - strh r0, [r1] - subs r1, 0x2 - ldr r2, _0813BC70 @ =0x00009201 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x2 - movs r3, 0x90 - lsls r3, 8 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _0813BC74 @ =gUnknown_0840B008 - bl LoadCompressedObjectPic - ldr r0, _0813BC78 @ =gUnknown_0840B018 - bl LoadCompressedObjectPic - ldr r0, _0813BC7C @ =gUnknown_0840B028 - bl LoadSpritePalettes - ldr r4, _0813BC80 @ =gPlttBufferUnfaded + 0x200 - movs r0, 0xF0 - lsls r0, 1 - adds r1, r4, r0 - adds r0, r4, 0 - movs r2, 0x10 - bl CpuSet - movs r2, 0xE1 - lsls r2, 1 - adds r1, r4, r2 - adds r0, r4, 0 - movs r2, 0xF - bl CpuSet - movs r3, 0xD2 - lsls r3, 1 - adds r1, r4, r3 - adds r0, r4, 0 - movs r2, 0xE - bl CpuSet - movs r0, 0xC3 - lsls r0, 1 - adds r1, r4, r0 - adds r0, r4, 0 - movs r2, 0xD - bl CpuSet - movs r2, 0xB4 - lsls r2, 1 - adds r1, r4, r2 - adds r0, r4, 0 - movs r2, 0xC - bl CpuSet - movs r3, 0xA5 - lsls r3, 1 - adds r1, r4, r3 - adds r0, r4, 0 - movs r2, 0xB - bl CpuSet - movs r0, 0x96 - lsls r0, 1 - adds r1, r4, r0 - adds r0, r4, 0 - movs r2, 0xA - bl CpuSet - movs r1, 0xE - negs r1, r1 - movs r0, 0x78 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - movs r0, 0xEC - adds r2, r5, 0 - movs r3, 0x1 - bl sub_813D584 - ldr r2, _0813BC84 @ =gTasks - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x8] - ldr r0, _0813BC88 @ =task_intro_2 - str r0, [r1] - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813BC18: .4byte gUnknown_02039318 -_0813BC1C: .4byte REG_BG3VOFS -_0813BC20: .4byte REG_BG2VOFS -_0813BC24: .4byte gUnknown_08407764 -_0813BC28: .4byte gUnknown_08406B74 -_0813BC2C: .4byte 0x06008000 -_0813BC30: .4byte 0x06008800 -_0813BC34: .4byte 0x040000d4 -_0813BC38: .4byte 0x81000400 -_0813BC3C: .4byte gUnknown_08406F28 -_0813BC40: .4byte 0x06009000 -_0813BC44: .4byte 0x06009800 -_0813BC48: .4byte gUnknown_0840725C -_0813BC4C: .4byte 0x0600a000 -_0813BC50: .4byte 0x0600a800 -_0813BC54: .4byte gUnknown_0840754C -_0813BC58: .4byte 0x0600b000 -_0813BC5C: .4byte 0x0600b800 -_0813BC60: .4byte gUnknown_08406974 -_0813BC64: .4byte REG_BG3CNT -_0813BC68: .4byte 0x00009603 -_0813BC6C: .4byte 0x00009402 -_0813BC70: .4byte 0x00009201 -_0813BC74: .4byte gUnknown_0840B008 -_0813BC78: .4byte gUnknown_0840B018 -_0813BC7C: .4byte gUnknown_0840B028 -_0813BC80: .4byte gPlttBufferUnfaded + 0x200 -_0813BC84: .4byte gTasks -_0813BC88: .4byte task_intro_2 - thumb_func_end task_intro_1 - - thumb_func_start task_intro_2 -task_intro_2: @ 813BC8C - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r5, 0 - str r5, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _0813BCE0 @ =sub_813B784 - bl SetVBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _0813BCE4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0813BCE8 @ =sub_813BCF0 - str r1, [r0] - ldr r0, _0813BCEC @ =gUnknown_03005ED0 - str r5, [r0] - movs r0, 0xCF - lsls r0, 1 - bl m4aSongNumStart - bl ResetSerial - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813BCE0: .4byte sub_813B784 -_0813BCE4: .4byte gTasks -_0813BCE8: .4byte sub_813BCF0 -_0813BCEC: .4byte gUnknown_03005ED0 - thumb_func_end task_intro_2 - - thumb_func_start sub_813BCF0 -sub_813BCF0: @ 813BCF0 - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r3, r0, 24 - adds r5, r3, 0 - ldr r4, _0813BDD4 @ =gUnknown_03005ED0 - ldr r0, [r4] - cmp r0, 0x4C - bne _0813BD1E - ldr r2, _0813BDD8 @ =gSprites - ldr r1, _0813BDDC @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r6, 0x8 - ldrsh r1, [r0, r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0, 0x2E] -_0813BD1E: - ldr r0, [r4] - cmp r0, 0xFB - bne _0813BD40 - ldr r2, _0813BDD8 @ =gSprites - ldr r1, _0813BDDC @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r3, 0x8 - ldrsh r1, [r0, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2 - strh r1, [r0, 0x2E] -_0813BD40: - ldr r1, [r4] - movs r0, 0xB8 - lsls r0, 1 - cmp r1, r0 - bne _0813BD60 - movs r2, 0x80 - lsls r2, 3 - movs r0, 0x70 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0x30 - movs r1, 0 - movs r3, 0x5 - bl sub_813D584 -_0813BD60: - ldr r1, [r4] - movs r0, 0xC0 - lsls r0, 1 - cmp r1, r0 - bne _0813BD80 - movs r2, 0x80 - lsls r2, 3 - movs r0, 0x80 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0xC8 - movs r1, 0x3C - movs r3, 0x9 - bl sub_813D584 -_0813BD80: - ldr r1, [r4] - movs r0, 0x8C - lsls r0, 2 - cmp r1, r0 - bne _0813BDA0 - ldr r0, _0813BDE0 @ =sub_813CCE8 - movs r1, 0 - bl CreateTask - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - movs r0, 0x78 - movs r1, 0x50 - bl sub_813D954 -_0813BDA0: - ldr r1, [r4] - ldr r0, _0813BDE4 @ =0x000002e3 - cmp r1, r0 - bls _0813BDCA - ldr r1, _0813BDDC @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - movs r1, 0x50 - strh r1, [r0, 0xA] - strh r2, [r0, 0xC] - movs r1, 0x18 - strh r1, [r0, 0xE] - strh r2, [r0, 0x10] - movs r1, 0x28 - strh r1, [r0, 0x12] - strh r2, [r0, 0x14] - ldr r1, _0813BDE8 @ =task_intro_4 - str r1, [r0] -_0813BDCA: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813BDD4: .4byte gUnknown_03005ED0 -_0813BDD8: .4byte gSprites -_0813BDDC: .4byte gTasks -_0813BDE0: .4byte sub_813CCE8 -_0813BDE4: .4byte 0x000002e3 -_0813BDE8: .4byte task_intro_4 - thumb_func_end sub_813BCF0 - - thumb_func_start task_intro_4 -task_intro_4: @ 813BDEC - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - adds r4, r2, 0 - ldr r0, _0813BE80 @ =gUnknown_03005ED0 - ldr r3, [r0] - ldr r0, _0813BE84 @ =0x00000387 - cmp r3, r0 - bhi _0813BEAC - ldr r0, _0813BE88 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - movs r2, 0xA - ldrsh r0, [r1, r2] - lsls r0, 16 - ldrh r2, [r1, 0xC] - adds r0, r2 - ldr r2, _0813BE8C @ =0xffff4000 - adds r0, r2 - asrs r2, r0, 16 - strh r2, [r1, 0xA] - strh r0, [r1, 0xC] - ldr r0, _0813BE90 @ =REG_BG2VOFS - strh r2, [r0] - movs r2, 0xE - ldrsh r0, [r1, r2] - lsls r0, 16 - ldrh r2, [r1, 0x10] - adds r0, r2 - ldr r2, _0813BE94 @ =0xffff0000 - adds r0, r2 - asrs r2, r0, 16 - strh r2, [r1, 0xE] - strh r0, [r1, 0x10] - ldr r0, _0813BE98 @ =REG_BG1VOFS - strh r2, [r0] - movs r2, 0x12 - ldrsh r0, [r1, r2] - lsls r0, 16 - ldrh r2, [r1, 0x14] - adds r0, r2 - ldr r2, _0813BE9C @ =0xfffe8000 - adds r0, r2 - asrs r2, r0, 16 - strh r2, [r1, 0x12] - strh r0, [r1, 0x14] - ldr r0, _0813BEA0 @ =REG_BG0VOFS - strh r2, [r0] - movs r0, 0xDC - lsls r0, 2 - cmp r3, r0 - bne _0813BED2 - ldr r0, _0813BEA4 @ =gSpriteTemplate_840AFF0 - movs r1, 0xC8 - movs r2, 0xA0 - movs r3, 0xA - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0813BEA8 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - b _0813BED2 - .align 2, 0 -_0813BE80: .4byte gUnknown_03005ED0 -_0813BE84: .4byte 0x00000387 -_0813BE88: .4byte gTasks -_0813BE8C: .4byte 0xffff4000 -_0813BE90: .4byte REG_BG2VOFS -_0813BE94: .4byte 0xffff0000 -_0813BE98: .4byte REG_BG1VOFS -_0813BE9C: .4byte 0xfffe8000 -_0813BEA0: .4byte REG_BG0VOFS -_0813BEA4: .4byte gSpriteTemplate_840AFF0 -_0813BEA8: .4byte gSprites -_0813BEAC: - ldr r0, _0813BEDC @ =0x000003ef - cmp r3, r0 - bls _0813BED2 - movs r0, 0x1 - negs r0, r0 - ldr r1, _0813BEE0 @ =0x0000ffff - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0813BEE4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0813BEE8 @ =sub_813BEEC - str r1, [r0] -_0813BED2: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813BEDC: .4byte 0x000003ef -_0813BEE0: .4byte 0x0000ffff -_0813BEE4: .4byte gTasks -_0813BEE8: .4byte sub_813BEEC - thumb_func_end task_intro_4 - - thumb_func_start sub_813BEEC -sub_813BEEC: @ 813BEEC - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0813BF10 @ =gUnknown_03005ED0 - ldr r1, [r0] - ldr r0, _0813BF14 @ =0x00000402 - cmp r1, r0 - bls _0813BF0A - ldr r0, _0813BF18 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, _0813BF1C @ =task_intro_6 - str r0, [r1] -_0813BF0A: - pop {r0} - bx r0 - .align 2, 0 -_0813BF10: .4byte gUnknown_03005ED0 -_0813BF14: .4byte 0x00000402 -_0813BF18: .4byte gTasks -_0813BF1C: .4byte task_intro_6 - thumb_func_end sub_813BEEC - - thumb_func_start task_intro_6 -task_intro_6: @ 813BF20 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl intro_reset_and_hide_bgs - movs r0, 0 - bl SetVBlankCallback - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r0, _0813BF60 @ =gUnknown_02039358 - movs r1, 0 - strh r1, [r0] - ldr r0, _0813BF64 @ =gUnknown_0203935A - strh r1, [r0] - .ifdef SAPPHIRE - movs r0, 0 - .else - movs r0, 0x1 - .endif - bl load_intro_part2_graphics - ldr r1, _0813BF68 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0813BF6C @ =sub_813BF70 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813BF60: .4byte gUnknown_02039358 -_0813BF64: .4byte gUnknown_0203935A -_0813BF68: .4byte gTasks -_0813BF6C: .4byte sub_813BF70 - thumb_func_end task_intro_6 - - thumb_func_start sub_813BF70 -sub_813BF70: @ 813BF70 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _0813BF88 @ =gUnknown_02039318 - ldrh r0, [r0] - cmp r0, 0 - bne _0813BF90 - ldr r0, _0813BF8C @ =gIntro2BrendanSpriteSheet - bl LoadCompressedObjectPic - b _0813BF96 - .align 2, 0 -_0813BF88: .4byte gUnknown_02039318 -_0813BF8C: .4byte gIntro2BrendanSpriteSheet -_0813BF90: - ldr r0, _0813BFBC @ =gIntro2MaySpriteSheet - bl LoadCompressedObjectPic -_0813BF96: - ldr r0, _0813BFC0 @ =gIntro2BicycleSpriteSheet - bl LoadCompressedObjectPic - ldr r0, _0813BFC4 @ =gIntro2LatiasSpriteSheet, =gIntro2LatiosSpriteSheet - bl LoadCompressedObjectPic - ldr r0, _0813BFC8 @ =gIntro2SpritePalettes - bl LoadSpritePalettes - ldr r0, _0813BFCC @ =gUnknown_02039318 - ldrh r0, [r0] - cmp r0, 0 - bne _0813BFD0 - movs r0, 0x88 - lsls r0, 1 - movs r1, 0x64 - bl sub_8149310 - b _0813BFDA - .align 2, 0 -_0813BFBC: .4byte gIntro2MaySpriteSheet -_0813BFC0: .4byte gIntro2BicycleSpriteSheet - .ifdef SAPPHIRE -_0813BFC4: .4byte gIntro2LatiasSpriteSheet - .else -_0813BFC4: .4byte gIntro2LatiosSpriteSheet - .endif -_0813BFC8: .4byte gIntro2SpritePalettes -_0813BFCC: .4byte gUnknown_02039318 -_0813BFD0: - movs r0, 0x88 - lsls r0, 1 - movs r1, 0x64 - bl sub_8149368 -_0813BFDA: - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, _0813C060 @ =gSprites - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r5, r2, 0 - adds r5, 0x1C - adds r3, r0, r5 - ldr r1, _0813C064 @ =sub_813D788 - str r1, [r3] - adds r2, 0x8 - adds r0, r2 - ldr r1, _0813C068 @ =gUnknown_0840AE80 - str r1, [r0] - ldr r0, _0813C06C @ =gTasks - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r0 - strh r6, [r4, 0xA] - movs r0, 0x40 - negs r0, r0 - movs r1, 0x3C - .ifdef SAPPHIRE - bl sapphire_sub_81494A0 - .else - bl sub_8149424 - .endif - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r0, r5 - ldr r1, _0813C070 @ =sub_813D880 - str r1, [r0] - strh r6, [r4, 0xC] - movs r0, 0x1 - negs r0, r0 - ldr r1, _0813C074 @ =0x0000ffff - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _0813C078 @ =sub_813B784 - bl SetVBlankCallback - movs r1, 0x80 - lsls r1, 7 - .ifdef SAPPHIRE - movs r0, 0 - movs r2, 0x40 - .else - movs r2, 0x80 - lsls r2, 3 - movs r0, 0x1 - .endif - movs r3, 0x10 - bl sub_8148EC0 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x8] - .ifdef SAPPHIRE - movs r0, 0 - .else - movs r0, 0x1 - .endif - bl sub_8148C78 - ldr r0, _0813C07C @ =sub_813C080 - str r0, [r4] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813C060: .4byte gSprites -_0813C064: .4byte sub_813D788 -_0813C068: .4byte gUnknown_0840AE80 -_0813C06C: .4byte gTasks -_0813C070: .4byte sub_813D880 -_0813C074: .4byte 0x0000ffff -_0813C078: .4byte sub_813B784 -_0813C07C: .4byte sub_813C080 - thumb_func_end sub_813BF70 - - thumb_func_start sub_813C080 -sub_813C080: @ 813C080 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - ldr r5, _0813C1BC @ =gUnknown_03005ED0 - ldr r1, [r5] - ldr r0, _0813C1C0 @ =0x0000071f - cmp r1, r0 - bls _0813C0B4 - movs r0, 0x1 - negs r0, r0 - ldr r1, _0813C1C4 @ =0x0000ffff - str r1, [sp] - movs r1, 0x10 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0813C1C8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0813C1CC @ =sub_813C1F4 - str r1, [r0] -_0813C0B4: - ldr r1, [r5] - ldr r0, _0813C1D0 @ =0x00000455 - ldr r3, _0813C1C8 @ =gTasks - cmp r1, r0 - bne _0813C0D8 - ldr r2, _0813C1D4 @ =gSprites - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r3 - movs r7, 0xA - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0, 0x2E] -_0813C0D8: - ldr r1, [r5] - ldr r0, _0813C1D8 @ =0x000004be - cmp r1, r0 - bne _0813C0FA - ldr r2, _0813C1D4 @ =gSprites - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r3 - movs r7, 0xA - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0x2E] -_0813C0FA: - ldr r1, [r5] - ldr r0, _0813C1DC @ =0x00000572 - cmp r1, r0 - bne _0813C11C - ldr r2, _0813C1D4 @ =gSprites - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r3 - movs r7, 0xC - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0, 0x2E] -_0813C11C: - ldr r1, [r5] - ldr r0, _0813C1E0 @ =0x00000576 - cmp r1, r0 - bne _0813C13E - ldr r2, _0813C1D4 @ =gSprites - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r3 - movs r7, 0xA - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2 - strh r1, [r0, 0x2E] -_0813C13E: - ldr r1, [r5] - ldr r0, _0813C1E4 @ =0x00000632 - cmp r1, r0 - bne _0813C160 - ldr r2, _0813C1D4 @ =gSprites - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r3 - movs r7, 0xA - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strh r1, [r0, 0x2E] -_0813C160: - ldr r1, [r5] - ldr r0, _0813C1E8 @ =0x000006bf - cmp r1, r0 - bne _0813C182 - ldr r2, _0813C1D4 @ =gSprites - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r3 - movs r4, 0xA - ldrsh r1, [r0, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x4 - strh r1, [r0, 0x2E] -_0813C182: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r3 - ldrh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 18 - movs r1, 0x7F - ands r0, r1 - movs r1, 0x30 - bl Sin - ldr r1, _0813C1EC @ =gUnknown_0203935A - strh r0, [r1] - ldrh r2, [r4, 0xE] - movs r7, 0xE - ldrsh r1, [r4, r7] - ldr r0, _0813C1F0 @ =0x000001ff - cmp r1, r0 - bgt _0813C1AE - adds r0, r2, 0x1 - strh r0, [r4, 0xE] -_0813C1AE: - .ifdef SAPPHIRE - movs r0, 0 - .else - movs r0, 0x1 - .endif - bl sub_8149020 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813C1BC: .4byte gUnknown_03005ED0 -_0813C1C0: .4byte 0x0000071f -_0813C1C4: .4byte 0x0000ffff -_0813C1C8: .4byte gTasks -_0813C1CC: .4byte sub_813C1F4 -_0813C1D0: .4byte 0x00000455 -_0813C1D4: .4byte gSprites -_0813C1D8: .4byte 0x000004be -_0813C1DC: .4byte 0x00000572 -_0813C1E0: .4byte 0x00000576 -_0813C1E4: .4byte 0x00000632 -_0813C1E8: .4byte 0x000006bf -_0813C1EC: .4byte gUnknown_0203935A -_0813C1F0: .4byte 0x000001ff - thumb_func_end sub_813C080 - - thumb_func_start sub_813C1F4 -sub_813C1F4: @ 813C1F4 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0813C220 @ =gUnknown_03005ED0 - ldr r1, [r0] - ldr r0, _0813C224 @ =0x00000814 - cmp r1, r0 - bls _0813C218 - ldr r0, _0813C228 @ =gTasks - lsls r4, r2, 2 - adds r4, r2 - lsls r4, 3 - adds r4, r0 - ldrb r0, [r4, 0x8] - bl DestroyTask - ldr r0, _0813C22C @ =task_intro_10 - str r0, [r4] -_0813C218: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813C220: .4byte gUnknown_03005ED0 -_0813C224: .4byte 0x00000814 -_0813C228: .4byte gTasks -_0813C22C: .4byte task_intro_10 - thumb_func_end sub_813C1F4 - - thumb_func_start task_intro_10 -task_intro_10: @ 813C230 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - bl intro_reset_and_hide_bgs - ldr r0, _0813C2C0 @ =gUnknown_08409C04 - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, _0813C2C4 @ =gUnknown_08409AD4 - ldr r1, _0813C2C8 @ =0x06004000 - bl LZ77UnCompVram - ldr r0, _0813C2CC @ =gUnknown_084098D4 - movs r2, 0x80 - lsls r2, 2 - movs r1, 0 - bl LoadPalette - ldr r0, _0813C2D0 @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - movs r5, 0 - strh r5, [r4, 0x8] - strh r5, [r4, 0xA] - strh r5, [r4, 0xC] - strh r5, [r4, 0xE] - movs r0, 0x78 - movs r1, 0x50 - movs r2, 0 - movs r3, 0 - bl sub_813CE30 - bl ResetSpriteData - bl FreeAllSpritePalettes - movs r0, 0x1 - negs r0, r0 - ldr r1, _0813C2D4 @ =0x0000ffff - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, _0813C2D8 @ =REG_BG2CNT - ldr r2, _0813C2DC @ =0x00004883 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xC - ldr r2, _0813C2E0 @ =0x00001441 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _0813C2E4 @ =task_intro_11 - str r0, [r4] - ldr r0, _0813C2E8 @ =gUnknown_03005ED0 - str r5, [r0] - movs r0, 0xDD - lsls r0, 1 - bl m4aSongNumStart - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813C2C0: .4byte gUnknown_08409C04 -_0813C2C4: .4byte gUnknown_08409AD4 -_0813C2C8: .4byte 0x06004000 -_0813C2CC: .4byte gUnknown_084098D4 -_0813C2D0: .4byte gTasks -_0813C2D4: .4byte 0x0000ffff -_0813C2D8: .4byte REG_BG2CNT -_0813C2DC: .4byte 0x00004883 -_0813C2E0: .4byte 0x00001441 -_0813C2E4: .4byte task_intro_11 -_0813C2E8: .4byte gUnknown_03005ED0 - thumb_func_end task_intro_10 - - thumb_func_start task_intro_11 -task_intro_11: @ 813C2EC - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, _0813C324 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r2 - movs r1, 0x80 - lsls r1, 3 - adds r0, r1, 0 - ldrh r1, [r3, 0x8] - adds r0, r1 - strh r0, [r3, 0x8] - ldrh r4, [r3, 0xA] - movs r0, 0xA - ldrsh r1, [r3, r0] - ldr r0, _0813C328 @ =0x000006bf - cmp r1, r0 - bgt _0813C32C - ldrh r0, [r3, 0xC] - adds r1, r4, r0 - strh r1, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xC] - b _0813C330 - .align 2, 0 -_0813C324: .4byte gTasks -_0813C328: .4byte 0x000006bf -_0813C32C: - ldr r0, _0813C378 @ =sub_813C384 - str r0, [r3] -_0813C330: - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r2 - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0x80 - lsls r0, 9 - bl __divsi3 - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - ldrh r3, [r4, 0x8] - movs r0, 0x78 - movs r1, 0x50 - bl sub_813CE30 - ldr r0, _0813C37C @ =gUnknown_03005ED0 - ldr r0, [r0] - cmp r0, 0x2C - bne _0813C36E - movs r0, 0x1 - negs r0, r0 - ldr r1, _0813C380 @ =0x0000ffff - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_0813C36E: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813C378: .4byte sub_813C384 -_0813C37C: .4byte gUnknown_03005ED0 -_0813C380: .4byte 0x0000ffff - thumb_func_end task_intro_11 - - thumb_func_start sub_813C384 -sub_813C384: @ 813C384 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0813C3A4 @ =gUnknown_03005ED0 - ldr r0, [r0] - cmp r0, 0x3B - bls _0813C3A0 - ldr r0, _0813C3A8 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, _0813C3AC @ =sub_813C3B0 - str r0, [r1] -_0813C3A0: - pop {r0} - bx r0 - .align 2, 0 -_0813C3A4: .4byte gUnknown_03005ED0 -_0813C3A8: .4byte gTasks -_0813C3AC: .4byte sub_813C3B0 - thumb_func_end sub_813C384 - - thumb_func_start sub_813C3B0 -sub_813C3B0: @ 813C3B0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - bl intro_reset_and_hide_bgs - movs r1, 0 - ldr r2, _0813C4E4 @ =0x02000000 - movs r7, 0 - adds r6, r2, 0 - adds r6, 0x20 - adds r5, r2, 0 - adds r5, 0x40 - mov r12, r2 - movs r4, 0x11 - movs r3, 0x22 -_0813C3D4: - adds r0, r1, r2 - strb r7, [r0] - adds r0, r1, r6 - strb r4, [r0] - adds r0, r1, r5 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x1F - bls _0813C3D4 - movs r1, 0xC0 - lsls r1, 19 - ldr r0, _0813C4E8 @ =0x040000d4 - mov r2, r12 - str r2, [r0] - str r1, [r0, 0x4] - ldr r1, _0813C4EC @ =0x80000030 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - movs r1, 0 - ldr r5, _0813C4F0 @ =gPlttBufferUnfaded - ldr r6, _0813C4F4 @ =gPlttBufferFaded - mov r0, r8 - lsls r7, r0, 2 - ldr r4, _0813C4F8 @ =0x06003000 - ldr r2, _0813C4FC @ =0x0000f001 - adds r3, r2, 0 - ldr r2, _0813C500 @ =0x0000027f -_0813C40E: - lsls r0, r1, 1 - adds r0, r4 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bls _0813C40E - movs r1, 0 - ldr r3, _0813C504 @ =0x06003800 - ldr r0, _0813C508 @ =0x0000f002 - adds r2, r0, 0 -_0813C426: - lsls r0, r1, 1 - adds r0, r3 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x7F - bls _0813C426 - movs r1, 0 - ldr r4, _0813C50C @ =0x06003900 - movs r2, 0xF0 - lsls r2, 8 - adds r3, r2, 0 - ldr r2, _0813C510 @ =0x0000017f -_0813C442: - lsls r0, r1, 1 - adds r0, r4 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bls _0813C442 - movs r1, 0 - ldr r3, _0813C514 @ =0x06003c00 - ldr r0, _0813C508 @ =0x0000f002 - adds r2, r0, 0 -_0813C45A: - lsls r0, r1, 1 - adds r0, r3 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x7F - bls _0813C45A - movs r0, 0xF0 - lsls r0, 1 - adds r2, r5, r0 - movs r4, 0 - ldr r1, _0813C518 @ =0x00007fff - strh r1, [r2] - adds r0, r6, r0 - strh r1, [r0] - movs r0, 0x1 - bl sub_813D084 - movs r0, 0xF2 - lsls r0, 1 - adds r1, r5, r0 - strh r4, [r1] - adds r0, r6, r0 - strh r4, [r0] - ldr r0, _0813C51C @ =gUnknown_0840A778 - ldr r1, _0813C520 @ =0x06004000 - bl LZ77UnCompVram - ldr r0, _0813C524 @ =gUnknown_0840A7E4 - ldr r1, _0813C528 @ =0x06007000 - bl LZ77UnCompVram - ldr r0, _0813C52C @ =gUnknown_0840A758 - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r1, _0813C530 @ =gReservedSpritePaletteCount - movs r0, 0x8 - strb r0, [r1] - ldr r0, _0813C534 @ =gUnknown_0840B20C - bl LoadCompressedObjectPic - ldr r0, _0813C538 @ =gUnknown_0840B21C - bl LoadCompressedObjectPic - ldr r0, _0813C53C @ =gUnknown_0840B22C - bl LoadCompressedObjectPalette - ldr r0, _0813C540 @ =gUnknown_0840B23C - bl LoadSpritePalettes - ldr r1, _0813C544 @ =gTasks - mov r2, r8 - adds r0, r7, r2 - lsls r0, 3 - adds r0, r1 - ldr r1, _0813C548 @ =sub_813C54C - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813C4E4: .4byte 0x02000000 -_0813C4E8: .4byte 0x040000d4 -_0813C4EC: .4byte 0x80000030 -_0813C4F0: .4byte gPlttBufferUnfaded -_0813C4F4: .4byte gPlttBufferFaded -_0813C4F8: .4byte 0x06003000 -_0813C4FC: .4byte 0x0000f001 -_0813C500: .4byte 0x0000027f -_0813C504: .4byte 0x06003800 -_0813C508: .4byte 0x0000f002 -_0813C50C: .4byte 0x06003900 -_0813C510: .4byte 0x0000017f -_0813C514: .4byte 0x06003c00 -_0813C518: .4byte 0x00007fff -_0813C51C: .4byte gUnknown_0840A778 -_0813C520: .4byte 0x06004000 -_0813C524: .4byte gUnknown_0840A7E4 -_0813C528: .4byte 0x06007000 -_0813C52C: .4byte gUnknown_0840A758 -_0813C530: .4byte gReservedSpritePaletteCount -_0813C534: .4byte gUnknown_0840B20C -_0813C538: .4byte gUnknown_0840B21C -_0813C53C: .4byte gUnknown_0840B22C -_0813C540: .4byte gUnknown_0840B23C -_0813C544: .4byte gTasks -_0813C548: .4byte sub_813C54C - thumb_func_end sub_813C3B0 - - thumb_func_start sub_813C54C -sub_813C54C: @ 813C54C - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _0813C5BC @ =REG_WIN0H - movs r0, 0xF0 - strh r0, [r1] - adds r1, 0x4 - movs r0, 0xA0 - strh r0, [r1] - adds r1, 0x4 - movs r0, 0x1C - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x1D - strh r0, [r1] - subs r1, 0x3C - ldr r2, _0813C5C0 @ =0x00000603 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x6 - adds r2, 0xFD - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x8 - movs r2, 0xE5 - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _0813C5C4 @ =sub_813CAF4 - movs r1, 0 - bl CreateTask - ldr r5, _0813C5C8 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r5 - lsls r0, 24 - lsrs r0, 24 - movs r3, 0 - strh r0, [r1, 0x26] - movs r0, 0x26 - ldrsh r2, [r1, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r5 - strh r3, [r0, 0x8] - strh r3, [r1, 0x8] - ldr r0, _0813C5CC @ =sub_813C5D0 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813C5BC: .4byte REG_WIN0H -_0813C5C0: .4byte 0x00000603 -_0813C5C4: .4byte sub_813CAF4 -_0813C5C8: .4byte gTasks -_0813C5CC: .4byte sub_813C5D0 - thumb_func_end sub_813C54C - - thumb_func_start sub_813C5D0 -sub_813C5D0: @ 813C5D0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0813C600 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r3, r1, r2 - ldrh r1, [r3, 0x8] - movs r2, 0x8 - ldrsh r0, [r3, r2] - cmp r0, 0x20 - beq _0813C608 - adds r0, r1, 0x4 - strh r0, [r3, 0x8] - ldr r2, _0813C604 @ =REG_WIN0V - movs r4, 0x8 - ldrsh r0, [r3, r4] - lsls r0, 8 - subs r1, 0x9C - subs r0, r1 - strh r0, [r2] - b _0813C616 - .align 2, 0 -_0813C600: .4byte gTasks -_0813C604: .4byte REG_WIN0V -_0813C608: - ldr r0, _0813C61C @ =REG_WIN0V - movs r2, 0x82 - lsls r2, 6 - adds r1, r2, 0 - strh r1, [r0] - ldr r0, _0813C620 @ =sub_813C624 - str r0, [r3] -_0813C616: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813C61C: .4byte REG_WIN0V -_0813C620: .4byte sub_813C624 - thumb_func_end sub_813C5D0 - - thumb_func_start sub_813C624 -sub_813C624: @ 813C624 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0813C638 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _0813C63C @ =sub_813C640 - str r0, [r1] - bx lr - .align 2, 0 -_0813C638: .4byte gTasks -_0813C63C: .4byte sub_813C640 - thumb_func_end sub_813C624 - - thumb_func_start sub_813C640 -sub_813C640: @ 813C640 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0813C65C @ =gUnknown_0203931A - movs r1, 0 - strh r1, [r2] - ldr r2, _0813C660 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _0813C664 @ =sub_813C668 - str r0, [r1] - bx lr - .align 2, 0 -_0813C65C: .4byte gUnknown_0203931A -_0813C660: .4byte gTasks -_0813C664: .4byte sub_813C668 - thumb_func_end sub_813C640 - - thumb_func_start sub_813C668 -sub_813C668: @ 813C668 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _0813CA24 @ =gUnknown_03005ED0 - mov r8, r0 - ldr r0, [r0] - cmp r0, 0x50 - bne _0813C6AC - ldr r0, _0813CA28 @ =0x0000014b - movs r4, 0x1 - str r4, [sp] - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x5 - bl sub_813CE88 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r3, _0813CA2C @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, r3, 0 - adds r1, 0x1C - adds r1, r0, r1 - ldr r2, _0813CA30 @ =sub_813DB9C - str r2, [r1] - adds r0, r3 - movs r1, 0 - strh r4, [r0, 0x30] - strh r1, [r0, 0x32] -_0813C6AC: - mov r1, r8 - ldr r0, [r1] - cmp r0, 0x98 - bne _0813C6E2 - ldr r0, _0813CA34 @ =0x00000169 - movs r4, 0x1 - str r4, [sp] - movs r1, 0 - movs r2, 0xA0 - movs r3, 0x4 - bl sub_813CE88 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r3, _0813CA2C @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, r3, 0 - adds r1, 0x1C - adds r1, r0, r1 - ldr r2, _0813CA30 @ =sub_813DB9C - str r2, [r1] - adds r0, r3 - movs r1, 0x2 - strh r1, [r0, 0x30] - strh r4, [r0, 0x32] -_0813C6E2: - mov r3, r8 - ldr r0, [r3] - cmp r0, 0xDB - bne _0813C720 - movs r0, 0 - bl sub_813D084 - ldr r0, _0813CA38 @ =gUnknown_02039318 - ldrh r0, [r0] - movs r1, 0x88 - lsls r1, 1 - movs r2, 0x60 - movs r3, 0x6 - bl sub_813CFA8 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _0813CA2C @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, 0x1C - adds r0, r1 - ldr r1, _0813CA3C @ =sub_813DE70 - str r1, [r0] - ldr r1, _0813CA40 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0xA] -_0813C720: - mov r0, r8 - ldr r1, [r0] - movs r0, 0x98 - lsls r0, 1 - cmp r1, r0 - bne _0813C758 - ldr r3, _0813CA40 @ =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r3 - movs r0, 0x26 - ldrsh r2, [r1, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r3 - movs r2, 0x4 - strh r2, [r0, 0x8] - ldr r2, _0813CA2C @ =gSprites - movs r3, 0xA - ldrsh r1, [r1, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2 - strh r1, [r0, 0x2E] -_0813C758: - mov r0, r8 - ldr r1, [r0] - movs r0, 0xC0 - lsls r0, 1 - cmp r1, r0 - bne _0813C790 - ldr r3, _0813CA40 @ =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r3 - movs r0, 0x26 - ldrsh r2, [r1, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r3 - movs r2, 0 - strh r2, [r0, 0x8] - ldr r2, _0813CA2C @ =gSprites - movs r3, 0xA - ldrsh r1, [r1, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x4 - strh r1, [r0, 0x2E] -_0813C790: - mov r0, r8 - ldr r1, [r0] - movs r0, 0xC8 - lsls r0, 1 - cmp r1, r0 - bne _0813C7AE - movs r0, 0xFF - lsls r0, 16 - ldr r1, _0813CA44 @ =0x00007eff - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_0813C7AE: - mov r3, r8 - ldr r1, [r3] - movs r0, 0xD8 - lsls r0, 1 - cmp r1, r0 - bne _0813C7D6 - ldr r2, _0813CA2C @ =gSprites - ldr r1, _0813CA40 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - movs r3, 0xA - ldrsh r1, [r0, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x5 - strh r1, [r0, 0x2E] -_0813C7D6: - mov r0, r8 - ldr r1, [r0] - movs r0, 0xE7 - lsls r0, 1 - cmp r1, r0 - bne _0813C80E - ldr r3, _0813CA2C @ =gSprites - ldr r4, _0813CA40 @ =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r4 - movs r0, 0xA - ldrsh r2, [r1, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - movs r2, 0x6 - strh r2, [r0, 0x2E] - movs r3, 0x26 - ldrsh r1, [r1, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x8] -_0813C80E: - mov r0, r8 - ldr r1, [r0] - ldr r0, _0813CA48 @ =0x000001cf - cmp r1, r0 - bne _0813C854 - movs r0, 0x1 - bl sub_813D084 - ldr r0, _0813CA28 @ =0x0000014b - movs r1, 0x1 - str r1, [sp] - movs r1, 0xD0 - movs r2, 0x8 - movs r3, 0x5 - bl sub_813CE88 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _0813CA2C @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, 0x1C - adds r0, r1 - ldr r1, _0813CA4C @ =sub_813E10C - str r1, [r0] - ldr r1, _0813CA40 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0xC] - adds r0, r2, 0 - bl sub_813E7C0 -_0813C854: - mov r3, r8 - ldr r1, [r3] - ldr r0, _0813CA50 @ =0x0000021b - cmp r1, r0 - bne _0813C894 - subs r0, 0xB2 - movs r1, 0x1 - str r1, [sp] - movs r1, 0xF8 - movs r2, 0x10 - movs r3, 0x4 - bl sub_813CE88 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _0813CA2C @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, 0x1C - adds r0, r1 - ldr r1, _0813CA4C @ =sub_813E10C - str r1, [r0] - ldr r1, _0813CA40 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0xE] - adds r0, r2, 0 - bl sub_813E930 -_0813C894: - mov r0, r8 - ldr r1, [r0] - ldr r0, _0813CA54 @ =0x0000026f - cmp r1, r0 - bne _0813C8D8 - ldr r4, _0813CA2C @ =gSprites - ldr r5, _0813CA40 @ =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r5 - movs r3, 0xC - ldrsh r2, [r1, r3] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r4 - movs r3, 0x2 - strh r3, [r0, 0x2E] - movs r0, 0xE - ldrsh r2, [r1, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r4 - strh r3, [r0, 0x2E] - movs r3, 0x26 - ldrsh r1, [r1, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - movs r1, 0x3 - strh r1, [r0, 0x8] -_0813C8D8: - mov r0, r8 - ldr r1, [r0] - movs r0, 0x9C - lsls r0, 2 - cmp r1, r0 - bne _0813C920 - movs r0, 0 - bl sub_813D084 - ldr r0, _0813CA58 @ =0x0000011b - movs r1, 0 - str r1, [sp] - movs r1, 0x20 - movs r2, 0x98 - movs r3, 0 - bl sub_813CE88 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _0813CA2C @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, 0x1C - adds r0, r1 - ldr r1, _0813CA5C @ =sub_813E210 - str r1, [r0] - ldr r1, _0813CA40 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x10] - adds r0, r2, 0 - bl sub_813EDBC -_0813C920: - mov r3, r8 - ldr r1, [r3] - movs r0, 0xAF - lsls r0, 2 - cmp r1, r0 - bne _0813C966 - movs r0, 0x8C - lsls r0, 1 - movs r1, 0x8 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x90 - movs r3, 0x1 - bl sub_813CE88 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _0813CA2C @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, 0x1C - adds r0, r1 - ldr r1, _0813CA5C @ =sub_813E210 - str r1, [r0] - ldr r1, _0813CA40 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x12] - adds r0, r2, 0 - bl sub_813EB4C -_0813C966: - mov r0, r8 - ldr r1, [r0] - movs r0, 0xC2 - lsls r0, 2 - cmp r1, r0 - bne _0813C9B2 - ldr r1, _0813CA60 @ =gUnknown_0203931A - movs r0, 0x1 - strh r0, [r1] - ldr r4, _0813CA2C @ =gSprites - ldr r6, _0813CA40 @ =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r6 - movs r3, 0x10 - ldrsh r2, [r1, r3] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r4 - movs r5, 0 - movs r3, 0x2 - strh r3, [r0, 0x2E] - movs r0, 0x12 - ldrsh r2, [r1, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r4 - strh r3, [r0, 0x2E] - movs r3, 0x26 - ldrsh r1, [r1, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - strh r5, [r0, 0x8] -_0813C9B2: - mov r0, r8 - ldr r1, [r0] - ldr r0, _0813CA64 @ =0x0000030d - cmp r1, r0 - bne _0813CA76 - movs r0, 0x2 - bl sub_813D084 - ldr r4, _0813CA2C @ =gSprites - ldr r0, _0813CA40 @ =gTasks - lsls r2, r7, 2 - adds r2, r7 - lsls r2, 3 - adds r2, r0 - movs r3, 0xC - ldrsh r1, [r2, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r3, 0x3 - strh r3, [r0, 0x2E] - movs r0, 0xE - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r3, [r0, 0x2E] - movs r0, 0x10 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r3, [r0, 0x2E] - movs r0, 0x12 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r3, [r0, 0x2E] - ldr r0, _0813CA68 @ =gSpriteTemplate_840B1F4 - movs r1, 0x78 - movs r2, 0x50 - movs r3, 0xF - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r4 - b _0813CA6C - .align 2, 0 -_0813CA24: .4byte gUnknown_03005ED0 -_0813CA28: .4byte 0x0000014b -_0813CA2C: .4byte gSprites -_0813CA30: .4byte sub_813DB9C -_0813CA34: .4byte 0x00000169 -_0813CA38: .4byte gUnknown_02039318 -_0813CA3C: .4byte sub_813DE70 -_0813CA40: .4byte gTasks -_0813CA44: .4byte 0x00007eff -_0813CA48: .4byte 0x000001cf -_0813CA4C: .4byte sub_813E10C -_0813CA50: .4byte 0x0000021b -_0813CA54: .4byte 0x0000026f -_0813CA58: .4byte 0x0000011b -_0813CA5C: .4byte sub_813E210 -_0813CA60: .4byte gUnknown_0203931A -_0813CA64: .4byte 0x0000030d -_0813CA68: .4byte gSpriteTemplate_840B1F4 -_0813CA6C: - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_0813CA76: - mov r3, r8 - ldr r1, [r3] - movs r0, 0xC8 - lsls r0, 2 - cmp r1, r0 - bne _0813CA88 - movs r0, 0x67 - bl PlaySE -_0813CA88: - mov r0, r8 - ldr r1, [r0] - ldr r0, _0813CAC8 @ =0x00000352 - cmp r1, r0 - bne _0813CAA4 - movs r0, 0x1 - negs r0, r0 - ldr r1, _0813CACC @ =0x0000ffff - str r1, [sp] - movs r1, 0x4 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_0813CAA4: - mov r3, r8 - ldr r1, [r3] - ldr r0, _0813CAD0 @ =0x000003b2 - cmp r1, r0 - bne _0813CABC - ldr r0, _0813CAD4 @ =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r0 - ldr r0, _0813CAD8 @ =sub_813CADC - str r0, [r1] -_0813CABC: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813CAC8: .4byte 0x00000352 -_0813CACC: .4byte 0x0000ffff -_0813CAD0: .4byte 0x000003b2 -_0813CAD4: .4byte gTasks -_0813CAD8: .4byte sub_813CADC - thumb_func_end sub_813C668 - - thumb_func_start sub_813CADC -sub_813CADC: @ 813CADC - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - ldr r0, _0813CAF0 @ =CB2_813B7EC - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0813CAF0: .4byte CB2_813B7EC - thumb_func_end sub_813CADC - - thumb_func_start sub_813CAF4 -sub_813CAF4: @ 813CAF4 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0813CB2C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x26] - adds r0, 0x1 - movs r6, 0 - strh r0, [r4, 0x26] - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bne _0813CB18 - b _0813CC28 -_0813CB18: - cmp r0, 0x4 - bgt _0813CB30 - cmp r0, 0x2 - beq _0813CB60 - cmp r0, 0x2 - bgt _0813CBC4 - cmp r0, 0 - beq _0813CB46 - b _0813CC8E - .align 2, 0 -_0813CB2C: .4byte gTasks -_0813CB30: - cmp r0, 0x1E - beq _0813CBEE - cmp r0, 0x1E - bgt _0813CB3E - cmp r0, 0x14 - beq _0813CB8A - b _0813CC8E -_0813CB3E: - cmp r0, 0x28 - bne _0813CB44 - b _0813CC56 -_0813CB44: - b _0813CC8E -_0813CB46: - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xE5 - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _0813CB5C @ =REG_BG2CNT - strh r6, [r0] - movs r0, 0xFF - strh r0, [r4, 0x8] - b _0813CC8E - .align 2, 0 -_0813CB5C: .4byte REG_BG2CNT -_0813CB60: - ldr r0, _0813CBB0 @ =0x0000ffff - str r0, [sp] - movs r0, 0x1 - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, _0813CBB4 @ =REG_BG2CNT - ldr r2, _0813CBB8 @ =0x00000e07 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xC - movs r2, 0xF5 - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - strh r6, [r4, 0xA] - strh r6, [r4, 0xC] - movs r0, 0x14 - strh r0, [r4, 0x8] -_0813CB8A: - ldr r2, _0813CBBC @ =REG_BG2VOFS - ldr r0, _0813CBC0 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xA] - strh r0, [r2] - subs r2, 0x2 - ldrh r0, [r1, 0xC] - strh r0, [r2] - ldrh r0, [r1, 0xA] - adds r0, 0x6 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xC] - subs r0, 0x8 - strh r0, [r1, 0xC] - b _0813CC8E - .align 2, 0 -_0813CBB0: .4byte 0x0000ffff -_0813CBB4: .4byte REG_BG2CNT -_0813CBB8: .4byte 0x00000e07 -_0813CBBC: .4byte REG_BG2VOFS -_0813CBC0: .4byte gTasks -_0813CBC4: - ldr r0, _0813CC14 @ =0x0000ffff - str r0, [sp] - movs r0, 0x1 - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, _0813CC18 @ =REG_BG2CNT - ldr r2, _0813CC1C @ =0x00000e07 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xC - movs r2, 0xF5 - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - strh r6, [r4, 0xA] - strh r6, [r4, 0xC] - movs r0, 0x1E - strh r0, [r4, 0x8] -_0813CBEE: - ldr r2, _0813CC20 @ =REG_BG2VOFS - ldr r0, _0813CC24 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xA] - strh r0, [r2] - subs r2, 0x2 - ldrh r0, [r1, 0xC] - strh r0, [r2] - ldrh r0, [r1, 0xA] - subs r0, 0x6 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xC] - adds r0, 0x8 - strh r0, [r1, 0xC] - b _0813CC8E - .align 2, 0 -_0813CC14: .4byte 0x0000ffff -_0813CC18: .4byte REG_BG2CNT -_0813CC1C: .4byte 0x00000e07 -_0813CC20: .4byte REG_BG2VOFS -_0813CC24: .4byte gTasks -_0813CC28: - ldr r0, _0813CC98 @ =0x000037f7 - str r0, [sp] - movs r0, 0x1 - movs r1, 0x5 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0813CC9C @ =REG_BG2CNT - ldr r2, _0813CCA0 @ =0x00000e07 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xC - movs r2, 0xF5 - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - strh r6, [r4, 0xA] - strh r6, [r4, 0xC] - movs r0, 0x8 - strh r0, [r4, 0xE] - movs r0, 0x28 - strh r0, [r4, 0x8] -_0813CC56: - ldr r2, _0813CCA4 @ =REG_BG2VOFS - ldr r1, _0813CCA8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r1 - ldrh r0, [r3, 0xA] - strh r0, [r2] - ldr r1, _0813CCAC @ =REG_BG2HOFS - ldrh r0, [r3, 0xC] - strh r0, [r1] - ldrh r0, [r3, 0xA] - ldrh r2, [r3, 0xE] - subs r0, r2 - strh r0, [r3, 0xA] - ldrh r1, [r3, 0xC] - adds r0, r2, r1 - strh r0, [r3, 0xC] - ldrh r1, [r3, 0x26] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0813CC8E - lsls r0, r2, 16 - cmp r0, 0 - beq _0813CC8E - subs r0, r2, 0x1 - strh r0, [r3, 0xE] -_0813CC8E: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813CC98: .4byte 0x000037f7 -_0813CC9C: .4byte REG_BG2CNT -_0813CCA0: .4byte 0x00000e07 -_0813CCA4: .4byte REG_BG2VOFS -_0813CCA8: .4byte gTasks -_0813CCAC: .4byte REG_BG2HOFS - thumb_func_end sub_813CAF4 - - thumb_func_start intro_reset_and_hide_bgs -intro_reset_and_hide_bgs: @ 813CCB0 - movs r0, 0x80 - lsls r0, 19 - movs r1, 0 - strh r1, [r0] - adds r0, 0x1C - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x3E - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bx lr - thumb_func_end intro_reset_and_hide_bgs - - thumb_func_start sub_813CCE8 -sub_813CCE8: @ 813CCE8 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, _0813CD0C @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x4 - bhi _0813CD28 - lsls r0, 2 - ldr r1, _0813CD10 @ =_0813CD14 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813CD0C: .4byte gTasks -_0813CD10: .4byte _0813CD14 - .align 2, 0 -_0813CD14: - .4byte _0813CD28 - .4byte _0813CD5C - .4byte _0813CD8C - .4byte _0813CDA8 - .4byte _0813CDFC -_0813CD28: - ldr r1, _0813CD54 @ =REG_BLDCNT - ldr r4, _0813CD58 @ =0x00003f50 - adds r0, r4, 0 - strh r0, [r1] - adds r1, 0x2 - movs r4, 0x80 - lsls r4, 5 - adds r0, r4, 0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0 - strh r0, [r1] - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r2 - movs r1, 0x40 - strh r1, [r0, 0xA] - movs r1, 0x1 - strh r1, [r0, 0x8] - b _0813CE26 - .align 2, 0 -_0813CD54: .4byte REG_BLDCNT -_0813CD58: .4byte 0x00003f50 -_0813CD5C: - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r2, r0, r2 - ldrh r1, [r2, 0xA] - movs r3, 0xA - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _0813CD78 - subs r0, r1, 0x1 - strh r0, [r2, 0xA] - movs r4, 0xA - ldrsh r0, [r2, r4] - b _0813CDC2 -_0813CD78: - ldr r1, _0813CD84 @ =REG_BLDALPHA - ldr r0, _0813CD88 @ =gUnknown_08393E64 - ldrh r0, [r0] - strh r0, [r1] - movs r0, 0x80 - b _0813CDEA - .align 2, 0 -_0813CD84: .4byte REG_BLDALPHA -_0813CD88: .4byte gUnknown_08393E64 -_0813CD8C: - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r1, r0, r2 - ldrh r0, [r1, 0xA] - movs r3, 0xA - ldrsh r2, [r1, r3] - cmp r2, 0 - bne _0813CE0E - strh r2, [r1, 0xA] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _0813CE26 -_0813CDA8: - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r2, r0, r2 - ldrh r1, [r2, 0xA] - movs r4, 0xA - ldrsh r0, [r2, r4] - cmp r0, 0x3D - bgt _0813CDE0 - adds r0, r1, 0x1 - strh r0, [r2, 0xA] - movs r1, 0xA - ldrsh r0, [r2, r1] -_0813CDC2: - lsrs r1, r0, 31 - adds r0, r1 - movs r2, 0xFF - lsls r2, 1 - ldr r3, _0813CDD8 @ =REG_BLDALPHA - ldr r1, _0813CDDC @ =gUnknown_08393E64 - ands r0, r2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r3] - b _0813CE26 - .align 2, 0 -_0813CDD8: .4byte REG_BLDALPHA -_0813CDDC: .4byte gUnknown_08393E64 -_0813CDE0: - ldr r1, _0813CDF4 @ =REG_BLDALPHA - ldr r0, _0813CDF8 @ =gUnknown_08393E64 - ldrh r0, [r0, 0x3E] - strh r0, [r1] - movs r0, 0x10 -_0813CDEA: - strh r0, [r2, 0xA] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _0813CE26 - .align 2, 0 -_0813CDF4: .4byte REG_BLDALPHA -_0813CDF8: .4byte gUnknown_08393E64 -_0813CDFC: - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r1, r0, r2 - ldrh r0, [r1, 0xA] - movs r4, 0xA - ldrsh r2, [r1, r4] - cmp r2, 0 - beq _0813CE14 -_0813CE0E: - subs r0, 0x1 - strh r0, [r1, 0xA] - b _0813CE26 -_0813CE14: - ldr r0, _0813CE2C @ =REG_BLDCNT - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r0, r3, 0 - bl DestroyTask -_0813CE26: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813CE2C: .4byte REG_BLDCNT - thumb_func_end sub_813CCE8 - - thumb_func_start sub_813CE30 -sub_813CE30: @ 813CE30 - push {r4,lr} - sub sp, 0x24 - lsls r2, 16 - lsrs r2, 16 - movs r4, 0x80 - lsls r4, 8 - str r4, [sp] - str r4, [sp, 0x4] - mov r4, sp - strh r0, [r4, 0x8] - mov r0, sp - strh r1, [r0, 0xA] - strh r2, [r0, 0xC] - strh r2, [r0, 0xE] - strh r3, [r0, 0x10] - add r4, sp, 0x14 - adds r1, r4, 0 - movs r2, 0x1 - bl BgAffineSet - ldr r1, _0813CE84 @ =REG_BG2PA - ldrh r0, [r4] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r4, 0x2] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r4, 0x4] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r4, 0x6] - strh r0, [r1] - adds r1, 0x2 - ldr r0, [r4, 0x8] - str r0, [r1] - adds r1, 0x4 - ldr r0, [r4, 0xC] - str r0, [r1] - add sp, 0x24 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813CE84: .4byte REG_BG2PA - thumb_func_end sub_813CE30 - - thumb_func_start sub_813CE88 -sub_813CE88: @ 813CE88 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - ldr r4, [sp, 0x30] - lsls r0, 16 - lsrs r7, r0, 16 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r2, 16 - lsrs r2, 16 - mov r10, r2 - lsls r3, 16 - lsrs r3, 16 - mov r8, r3 - lsls r4, 24 - lsrs r6, r4, 24 - cmp r6, 0 - beq _0813CEF0 - lsls r0, r7, 3 - ldr r1, _0813CEE4 @ =gMonFrontPicTable - adds r0, r1 - ldr r1, _0813CEE8 @ =gMonFrontPicCoords - lsls r2, r7, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r5, _0813CEEC @ =gUnknown_0840B5A0 - mov r6, r8 - lsls r4, r6, 2 - adds r4, r5 - ldr r4, [r4] - str r4, [sp] - str r7, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - movs r4, 0x1 - str r4, [sp, 0xC] - bl sub_800D378 - b _0813CF1C - .align 2, 0 -_0813CEE4: .4byte gMonFrontPicTable -_0813CEE8: .4byte gMonFrontPicCoords -_0813CEEC: .4byte gUnknown_0840B5A0 -_0813CEF0: - lsls r0, r7, 3 - ldr r1, _0813CF90 @ =gMonBackPicTable - adds r0, r1 - ldr r1, _0813CF94 @ =gMonBackPicCoords - lsls r2, r7, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _0813CF98 @ =gUnknown_0840B5A0 - mov r12, r4 - mov r5, r8 - lsls r4, r5, 2 - add r4, r12 - ldr r4, [r4] - str r4, [sp] - str r7, [sp, 0x4] - str r6, [sp, 0x8] - str r6, [sp, 0xC] - bl sub_800D378 -_0813CF1C: - ldr r2, _0813CF9C @ =0x0000ffff - adds r0, r7, 0 - movs r1, 0 - bl species_and_otid_get_pal - mov r6, r8 - lsls r4, r6, 4 - movs r2, 0x80 - lsls r2, 1 - adds r1, r4, r2 - lsls r1, 16 - lsrs r1, 16 - movs r2, 0x20 - bl LoadCompressedPalette - lsls r1, r6, 24 - lsrs r1, 24 - mov r0, r8 - bl sub_8143648 - ldr r0, _0813CFA0 @ =gUnknown_02024E8C - mov r3, r9 - lsls r1, r3, 16 - asrs r1, 16 - mov r5, r10 - lsls r2, r5, 16 - asrs r2, 16 - mov r3, r8 - adds r3, 0x1 - lsls r3, 26 - lsrs r3, 24 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0813CFA4 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - orrs r1, r4 - movs r3, 0xD - negs r3, r3 - ands r1, r3 - movs r3, 0x4 - orrs r1, r3 - strb r1, [r2, 0x5] - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0813CF90: .4byte gMonBackPicTable -_0813CF94: .4byte gMonBackPicCoords -_0813CF98: .4byte gUnknown_0840B5A0 -_0813CF9C: .4byte 0x0000ffff -_0813CFA0: .4byte gUnknown_02024E8C -_0813CFA4: .4byte gSprites - thumb_func_end sub_813CE88 - - thumb_func_start sub_813CFA8 -sub_813CFA8: @ 813CFA8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - mov r9, r1 - mov r10, r2 - adds r6, r3, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r2, 16 - lsrs r2, 16 - mov r10, r2 - lsls r6, 16 - lsrs r6, 16 - lsls r7, r0, 3 - ldr r1, _0813D068 @ =gTrainerBackPicTable - mov r8, r1 - add r8, r7 - ldr r1, _0813D06C @ =gTrainerBackPicCoords - lsls r2, r0, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r5, _0813D070 @ =gUnknown_0840B5A0 - lsls r4, r6, 2 - adds r4, r5 - ldr r4, [r4] - str r4, [sp] - str r0, [sp, 0x4] - mov r0, r8 - bl DecompressPicFromTable_2 - ldr r0, _0813D074 @ =gTrainerBackPicPaletteTable - adds r0, r7, r0 - ldr r0, [r0] - lsls r4, r6, 4 - movs r2, 0x80 - lsls r2, 1 - adds r1, r4, r2 - lsls r1, 16 - lsrs r1, 16 - movs r2, 0x20 - bl LoadCompressedPalette - lsls r1, r6, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_8143680 - ldr r0, _0813D078 @ =gUnknown_02024E8C - ldr r1, _0813D07C @ =gUnknown_0840B064 - str r1, [r0, 0x8] - mov r1, r9 - lsls r1, 16 - asrs r1, 16 - mov r9, r1 - mov r2, r10 - lsls r2, 16 - asrs r2, 16 - mov r10, r2 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0813D080 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - orrs r1, r4 - movs r3, 0xD - negs r3, r3 - ands r1, r3 - movs r3, 0x4 - orrs r1, r3 - strb r1, [r2, 0x5] - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0813D068: .4byte gTrainerBackPicTable -_0813D06C: .4byte gTrainerBackPicCoords -_0813D070: .4byte gUnknown_0840B5A0 -_0813D074: .4byte gTrainerBackPicPaletteTable -_0813D078: .4byte gUnknown_02024E8C -_0813D07C: .4byte gUnknown_0840B064 -_0813D080: .4byte gSprites - thumb_func_end sub_813CFA8 - - thumb_func_start sub_813D084 -sub_813D084: @ 813D084 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0813D0A0 - cmp r0, 0x1 - ble _0813D096 - cmp r0, 0x2 - beq _0813D0A8 -_0813D096: - ldr r2, _0813D09C @ =0x00003ff6 - b _0813D0AA - .align 2, 0 -_0813D09C: .4byte 0x00003ff6 -_0813D0A0: - ldr r2, _0813D0A4 @ =0x000031df - b _0813D0AA - .align 2, 0 -_0813D0A4: .4byte 0x000031df -_0813D0A8: - ldr r2, _0813D0C0 @ =0x0000518c -_0813D0AA: - ldr r0, _0813D0C4 @ =gPlttBufferUnfaded - movs r1, 0xF1 - lsls r1, 1 - adds r0, r1 - strh r2, [r0] - ldr r0, _0813D0C8 @ =gPlttBufferFaded - adds r0, r1 - strh r2, [r0] - pop {r0} - bx r0 - .align 2, 0 -_0813D0C0: .4byte 0x0000518c -_0813D0C4: .4byte gPlttBufferUnfaded -_0813D0C8: .4byte gPlttBufferFaded - thumb_func_end sub_813D084 - - thumb_func_start sub_813D0CC -sub_813D0CC: @ 813D0CC - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0xBF - ble _0813D148 - ldrh r1, [r4, 0x34] - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0813D0EA - subs r0, r1, 0x1 - strh r0, [r4, 0x34] - b _0813D14E -_0813D0EA: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x32] - str r1, [sp] - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 5 - subs r0, r1 - movs r1, 0x64 - bl __divsi3 - strh r0, [r4, 0x32] - movs r2, 0x32 - ldrsh r1, [r4, r2] - adds r0, r1, 0 - subs r0, 0xC0 - cmp r0, 0 - bge _0813D12C - adds r0, 0x7F -_0813D12C: - asrs r0, 7 - adds r0, 0x9 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xF - bls _0813D13A - movs r0, 0xF -_0813D13A: - lsls r2, r0, 4 - ldrb r1, [r4, 0x5] - movs r0, 0xF - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] - b _0813D14E -_0813D148: - adds r0, r4, 0 - bl DestroySprite -_0813D14E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_813D0CC - - thumb_func_start sub_813D158 -sub_813D158: @ 813D158 - push {r4,lr} - adds r4, r0, 0 - ldr r2, _0813D1CC @ =gSprites - movs r1, 0x3C - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r3, 0x3C - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _0813D1D4 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r0, r3 - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0x3 - bl StartSpriteAnim - movs r0, 0x80 - lsls r0, 3 - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x30] - movs r0, 0x3 - ands r0, r1 - lsls r0, 3 - strh r0, [r4, 0x34] - ldr r0, _0813D1D0 @ =sub_813D0CC - str r0, [r4, 0x1C] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - movs r1, 0xC0 - orrs r0, r1 - strb r0, [r4, 0x3] - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0x3 - movs r3, 0x2 - bl CalcCenterToCornerVec - b _0813D200 - .align 2, 0 -_0813D1CC: .4byte gSprites -_0813D1D0: .4byte sub_813D0CC -_0813D1D4: - ldrh r0, [r1, 0x24] - strh r0, [r4, 0x24] - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x26] - strh r0, [r4, 0x26] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x20] - strh r0, [r4, 0x20] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x22] - strh r0, [r4, 0x22] -_0813D200: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_813D158 - - thumb_func_start sub_813D208 -sub_813D208: @ 813D208 - push {lr} - adds r1, r0, 0 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _0813D218 - ldr r0, _0813D21C @ =sub_813D220 - str r0, [r1, 0x1C] -_0813D218: - pop {r0} - bx r0 - .align 2, 0 -_0813D21C: .4byte sub_813D220 - thumb_func_end sub_813D208 - - thumb_func_start sub_813D220 -sub_813D220: @ 813D220 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r7, r0, 0 - ldrh r4, [r7, 0x20] - movs r1, 0x20 - ldrsh r0, [r7, r1] - cmp r0, 0x74 - bgt _0813D260 - ldrh r0, [r7, 0x26] - ldrh r1, [r7, 0x22] - adds r0, r1 - movs r1, 0 - strh r0, [r7, 0x22] - strh r1, [r7, 0x26] - adds r0, r4, 0x4 - strh r0, [r7, 0x20] - ldr r0, _0813D258 @ =0x0000fffc - strh r0, [r7, 0x24] - movs r0, 0x80 - strh r0, [r7, 0x36] - ldr r0, _0813D25C @ =sub_813D368 - str r0, [r7, 0x1C] - b _0813D352 - .align 2, 0 -_0813D258: .4byte 0x0000fffc -_0813D25C: .4byte sub_813D368 -_0813D260: - ldrh r1, [r7, 0x36] - ldr r5, _0813D364 @ =gSineTable - lsls r0, r1, 24 - lsrs r0, 23 - adds r0, r5 - ldrh r2, [r0] - adds r0, r1, 0 - adds r0, 0x40 - lsls r0, 24 - lsrs r0, 23 - adds r0, r5 - ldrh r3, [r0] - adds r1, 0x2 - strh r1, [r7, 0x36] - lsls r2, 16 - asrs r0, r2, 16 - cmp r0, 0 - bge _0813D286 - adds r0, 0x1F -_0813D286: - asrs r0, 5 - strh r0, [r7, 0x26] - subs r0, r4, 0x1 - strh r0, [r7, 0x20] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0813D29C - ldrh r0, [r7, 0x22] - adds r0, 0x1 - strh r0, [r7, 0x22] -_0813D29C: - lsls r0, r3, 16 - asrs r0, 16 - negs r0, r0 - cmp r0, 0 - bge _0813D2A8 - adds r0, 0xF -_0813D2A8: - lsls r1, r0, 12 - lsrs r1, 16 - ldrh r4, [r7, 0x32] - ldrh r3, [r7, 0x34] - adds r0, r1, 0 - subs r0, 0x10 - lsls r0, 24 - lsrs r0, 23 - adds r0, r5 - ldrh r2, [r0] - adds r1, 0x30 - lsls r1, 24 - lsrs r1, 23 - adds r1, r5 - movs r0, 0 - ldrsh r1, [r1, r0] - adds r0, r1, 0 - muls r0, r4 - cmp r0, 0 - bge _0813D2D2 - adds r0, 0xFF -_0813D2D2: - lsls r0, 8 - lsrs r0, 16 - mov r8, r0 - lsls r0, r2, 16 - asrs r2, r0, 16 - negs r0, r2 - muls r0, r3 - cmp r0, 0 - bge _0813D2E6 - adds r0, 0xFF -_0813D2E6: - lsls r0, 8 - lsrs r0, 16 - mov r10, r0 - adds r0, r2, 0 - muls r0, r4 - cmp r0, 0 - bge _0813D2F6 - adds r0, 0xFF -_0813D2F6: - lsls r0, 8 - lsrs r5, r0, 16 - adds r0, r1, 0 - muls r0, r3 - cmp r0, 0 - bge _0813D304 - adds r0, 0xFF -_0813D304: - lsls r6, r0, 8 - lsrs r6, 16 - ldrh r0, [r7, 0x30] - lsls r0, 24 - lsrs r0, 24 - str r3, [sp] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - ldrh r0, [r7, 0x30] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r5 - mov r1, r10 - lsls r5, r1, 16 - lsrs r3, r5, 16 - lsls r4, r6, 16 - str r6, [sp] - mov r1, r8 - mov r2, r9 - bl SetOamMatrix - ldrh r0, [r7, 0x30] - adds r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - lsls r5, 1 - lsrs r5, 16 - lsls r4, 1 - lsrs r4, 16 - str r4, [sp] - mov r1, r8 - mov r2, r9 - adds r3, r5, 0 - bl SetOamMatrix -_0813D352: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813D364: .4byte gSineTable - thumb_func_end sub_813D220 - - thumb_func_start sub_813D368 -sub_813D368: @ 813D368 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x3A] - adds r1, 0x40 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - ldrh r0, [r4, 0x30] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x3A] - adds r1, 0x40 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - ldrh r0, [r4, 0x30] - adds r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x3A] - adds r1, 0x40 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - ldrh r1, [r4, 0x36] - movs r2, 0x36 - ldrsh r0, [r4, r2] - cmp r0, 0x40 - beq _0813D400 - adds r0, r1, 0 - subs r0, 0x8 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x36] - adds r1, r0, 0 - ldr r2, _0813D3FC @ =gSineTable - adds r0, 0x40 - lsls r0, 24 - lsrs r0, 23 - adds r0, r2 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r0, 0 - bge _0813D3E2 - adds r0, 0x3F -_0813D3E2: - asrs r0, 6 - strh r0, [r4, 0x24] - lsls r0, r1, 24 - lsrs r0, 23 - adds r0, r2 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _0813D3F6 - adds r0, 0x3F -_0813D3F6: - asrs r0, 6 - strh r0, [r4, 0x26] - b _0813D408 - .align 2, 0 -_0813D3FC: .4byte gSineTable -_0813D400: - movs r0, 0 - strh r0, [r4, 0x36] - ldr r0, _0813D410 @ =sub_813D414 - str r0, [r4, 0x1C] -_0813D408: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813D410: .4byte sub_813D414 - thumb_func_end sub_813D368 - - thumb_func_start sub_813D414 -sub_813D414: @ 813D414 - push {r4,lr} - adds r1, r0, 0 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0x2 - beq _0813D474 - ldrh r0, [r1, 0x36] - adds r0, 0x8 - strh r0, [r1, 0x36] - ldr r3, _0813D470 @ =gSineTable - lsls r0, 24 - lsrs r0, 23 - adds r0, r3 - movs r4, 0 - ldrsh r0, [r0, r4] - cmp r0, 0 - bge _0813D438 - adds r0, 0xF -_0813D438: - asrs r0, 4 - adds r0, 0x40 - lsls r0, 16 - lsrs r2, r0, 16 - adds r0, r2, 0 - adds r0, 0x40 - lsls r0, 24 - lsrs r0, 23 - adds r0, r3 - movs r4, 0 - ldrsh r0, [r0, r4] - cmp r0, 0 - bge _0813D454 - adds r0, 0x3F -_0813D454: - asrs r0, 6 - strh r0, [r1, 0x24] - lsls r0, r2, 24 - lsrs r0, 23 - adds r0, r3 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - bge _0813D468 - adds r0, 0x3F -_0813D468: - asrs r0, 6 - strh r0, [r1, 0x26] - b _0813D478 - .align 2, 0 -_0813D470: .4byte gSineTable -_0813D474: - ldr r0, _0813D480 @ =sub_813D484 - str r0, [r1, 0x1C] -_0813D478: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813D480: .4byte sub_813D484 - thumb_func_end sub_813D414 - - thumb_func_start sub_813D484 -sub_813D484: @ 813D484 - push {r4,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x22] - movs r0, 0x22 - ldrsh r1, [r4, r0] - movs r3, 0x38 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _0813D49C - adds r0, r2, 0x4 - strh r0, [r4, 0x22] - b _0813D4F8 -_0813D49C: - movs r0, 0x1 - strh r0, [r4, 0x3C] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r0, r3 - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0x3 - bl StartSpriteAnim - movs r0, 0x80 - lsls r0, 3 - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x30] - movs r0, 0x3 - ands r0, r1 - lsls r0, 3 - strh r0, [r4, 0x34] - ldr r0, _0813D500 @ =sub_813D0CC - str r0, [r4, 0x1C] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - movs r1, 0xC0 - orrs r0, r1 - strb r0, [r4, 0x3] - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0x3 - movs r3, 0x2 - bl CalcCenterToCornerVec -_0813D4F8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813D500: .4byte sub_813D0CC - thumb_func_end sub_813D484 - - thumb_func_start sub_813D504 -sub_813D504: @ 813D504 - push {r4,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x22] - movs r0, 0x22 - ldrsh r1, [r4, r0] - movs r3, 0x38 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _0813D51C - adds r0, r2, 0x4 - strh r0, [r4, 0x22] - b _0813D578 -_0813D51C: - movs r0, 0x1 - strh r0, [r4, 0x3C] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r0, r3 - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0x3 - bl StartSpriteAnim - movs r0, 0x80 - lsls r0, 3 - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x30] - movs r0, 0x3 - ands r0, r1 - lsls r0, 3 - strh r0, [r4, 0x34] - ldr r0, _0813D580 @ =sub_813D0CC - str r0, [r4, 0x1C] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - movs r1, 0xC0 - orrs r0, r1 - strb r0, [r4, 0x3] - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0x3 - movs r3, 0x2 - bl CalcCenterToCornerVec -_0813D578: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813D580: .4byte sub_813D0CC - thumb_func_end sub_813D504 - - thumb_func_start sub_813D584 -sub_813D584: @ 813D584 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r6, [sp, 0x34] - ldr r0, [sp, 0x38] - mov r8, r0 - lsls r4, 16 - lsls r5, 16 - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x8] - lsls r3, 16 - lsrs r3, 16 - str r3, [sp, 0xC] - lsls r6, 16 - lsrs r6, 16 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - ldr r0, _0813D640 @ =gSpriteTemplate_840AE20 - lsrs r2, r4, 16 - mov r10, r2 - asrs r4, 16 - lsrs r1, r5, 16 - str r1, [sp, 0x4] - asrs r5, 16 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, _0813D644 @ =gSprites - mov r9, r2 - lsls r0, r7, 4 - adds r0, r7 - lsls r5, r0, 2 - adds r4, r5, r2 - movs r0, 0 - strh r0, [r4, 0x2E] - strh r0, [r4, 0x3C] - mov r0, sp - ldrh r0, [r0, 0xC] - strh r0, [r4, 0x30] - mov r1, sp - ldrh r1, [r1, 0x8] - strh r1, [r4, 0x32] - mov r2, sp - ldrh r2, [r2, 0x8] - strh r2, [r4, 0x34] - strh r6, [r4, 0x38] - mov r0, sp - ldrh r0, [r0, 0x8] - strh r0, [r4, 0x3A] - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - movs r0, 0x1F - ldr r1, [sp, 0xC] - ands r1, r0 - lsls r1, 1 - ldrb r2, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x3] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x2 - movs r3, 0x2 - bl CalcCenterToCornerVec - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim - mov r1, r8 - cmp r1, 0 - bne _0813D64C - mov r0, r9 - adds r0, 0x1C - adds r0, r5, r0 - ldr r1, _0813D648 @ =sub_813D208 - b _0813D654 - .align 2, 0 -_0813D640: .4byte gSpriteTemplate_840AE20 -_0813D644: .4byte gSprites -_0813D648: .4byte sub_813D208 -_0813D64C: - mov r0, r9 - adds r0, 0x1C - adds r0, r5, r0 - ldr r1, _0813D774 @ =sub_813D504 -_0813D654: - str r1, [r0] - str r7, [sp, 0x10] - mov r2, r10 - lsls r2, 16 - asrs r2, 16 - mov r10, r2 - ldr r0, [sp, 0x4] - lsls r0, 16 - asrs r0, 16 - mov r8, r0 - ldr r0, _0813D778 @ =gSpriteTemplate_840AE20 - mov r1, r10 - mov r2, r8 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - ldr r5, _0813D77C @ =gSprites - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - adds r0, r4, r5 - mov r1, sp - ldrh r1, [r1, 0x10] - strh r1, [r0, 0x3C] - ldr r2, [sp, 0xC] - adds r2, 0x1 - mov r9, r2 - strh r2, [r0, 0x30] - ldrb r1, [r0, 0x1] - movs r2, 0x3 - orrs r1, r2 - strb r1, [r0, 0x1] - mov r2, r9 - movs r1, 0x1F - ands r2, r1 - lsls r2, 1 - ldrb r3, [r0, 0x3] - movs r6, 0x3F - negs r6, r6 - adds r1, r6, 0 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, 0x3] - movs r1, 0 - movs r2, 0x2 - movs r3, 0x2 - bl CalcCenterToCornerVec - ldr r2, _0813D780 @ =gSprites + 0x1C - adds r4, r2 - ldr r0, _0813D784 @ =sub_813D158 - str r0, [r4] - ldr r0, _0813D778 @ =gSpriteTemplate_840AE20 - mov r1, r10 - mov r2, r8 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - adds r5, r4, r5 - mov r1, sp - ldrh r1, [r1, 0x10] - strh r1, [r5, 0x3C] - ldr r2, [sp, 0xC] - adds r2, 0x2 - mov r8, r2 - strh r2, [r5, 0x30] - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldrb r0, [r5, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r5, 0x1] - mov r0, r8 - movs r2, 0x1F - ands r0, r2 - lsls r0, 1 - ldrb r1, [r5, 0x3] - ands r6, r1 - orrs r6, r0 - strb r6, [r5, 0x3] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x2 - movs r3, 0x2 - bl CalcCenterToCornerVec - ldr r0, _0813D780 @ =gSprites + 0x1C - adds r4, r0 - ldr r1, _0813D784 @ =sub_813D158 - str r1, [r4] - ldr r2, [sp, 0xC] - lsls r0, r2, 24 - lsrs r0, 24 - ldr r5, [sp, 0x8] - adds r5, 0x20 - lsls r4, r5, 16 - lsrs r4, 16 - str r4, [sp] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - str r4, [sp] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r5, 17 - lsrs r5, 16 - str r5, [sp] - mov r0, r8 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - ldr r0, [sp, 0x10] - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0813D774: .4byte sub_813D504 -_0813D778: .4byte gSpriteTemplate_840AE20 -_0813D77C: .4byte gSprites -_0813D780: .4byte gSprites + 0x1C -_0813D784: .4byte sub_813D158 - thumb_func_end sub_813D584 - - thumb_func_start sub_813D788 -sub_813D788: @ 813D788 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bhi _0813D830 - lsls r0, 2 - ldr r1, _0813D7A0 @ =_0813D7A4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813D7A0: .4byte _0813D7A4 - .align 2, 0 -_0813D7A4: - .4byte _0813D7B8 - .4byte _0813D7C6 - .4byte _0813D7E4 - .4byte _0813D80C - .4byte _0813D816 -_0813D7B8: - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent - ldrh r0, [r4, 0x20] - subs r0, 0x1 - b _0813D82E -_0813D7C6: - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent - ldr r0, _0813D7E0 @ =gUnknown_03005ED0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0813D87A - ldrh r0, [r4, 0x20] - adds r0, 0x1 - b _0813D82E - .align 2, 0 -_0813D7E0: .4byte gUnknown_03005ED0 -_0813D7E4: - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnimIfDifferent - ldrh r2, [r4, 0x20] - movs r1, 0x20 - ldrsh r0, [r4, r1] - cmp r0, 0x78 - ble _0813D802 - ldr r0, _0813D808 @ =gUnknown_03005ED0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _0813D83C -_0813D802: - adds r0, r2, 0x1 - b _0813D82E - .align 2, 0 -_0813D808: .4byte gUnknown_03005ED0 -_0813D80C: - adds r0, r4, 0 - movs r1, 0x3 - bl StartSpriteAnimIfDifferent - b _0813D830 -_0813D816: - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent - ldrh r2, [r4, 0x20] - movs r0, 0x20 - ldrsh r1, [r4, r0] - movs r0, 0x20 - negs r0, r0 - cmp r1, r0 - ble _0813D830 - subs r0, r2, 0x2 -_0813D82E: - strh r0, [r4, 0x20] -_0813D830: - ldr r0, _0813D84C @ =gUnknown_03005ED0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0813D87A -_0813D83C: - movs r1, 0x26 - ldrsh r5, [r4, r1] - cmp r5, 0 - beq _0813D850 - movs r0, 0 - strh r0, [r4, 0x26] - b _0813D87A - .align 2, 0 -_0813D84C: .4byte gUnknown_03005ED0 -_0813D850: - bl Random - movs r1, 0x3 - ands r1, r0 - cmp r1, 0x1 - beq _0813D878 - cmp r1, 0x1 - bgt _0813D866 - cmp r1, 0 - beq _0813D86E - b _0813D87A -_0813D866: - cmp r1, 0x3 - bgt _0813D87A - strh r5, [r4, 0x26] - b _0813D87A -_0813D86E: - ldr r0, _0813D874 @ =0x0000ffff - strh r0, [r4, 0x26] - b _0813D87A - .align 2, 0 -_0813D874: .4byte 0x0000ffff -_0813D878: - strh r1, [r4, 0x26] -_0813D87A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_813D788 - - thumb_func_start sub_813D880 -sub_813D880: @ 813D880 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0813D89A - cmp r0, 0x1 - ble _0813D8E2 - cmp r0, 0x2 - beq _0813D8BA - cmp r0, 0x3 - beq _0813D8D4 - b _0813D8E2 -_0813D89A: - movs r2, 0x24 - ldrsh r0, [r4, r2] - movs r2, 0x20 - ldrsh r1, [r4, r2] - adds r0, r1 - ldr r1, _0813D8B0 @ =0x0000012f - cmp r0, r1 - bgt _0813D8B4 - ldrh r0, [r4, 0x24] - adds r0, 0x8 - b _0813D8E0 - .align 2, 0 -_0813D8B0: .4byte 0x0000012f -_0813D8B4: - movs r0, 0x2 - strh r0, [r4, 0x2E] - b _0813D8E2 -_0813D8BA: - movs r1, 0x24 - ldrsh r0, [r4, r1] - movs r2, 0x20 - ldrsh r1, [r4, r2] - adds r0, r1 - cmp r0, 0x78 - ble _0813D8CE - ldrh r0, [r4, 0x24] - subs r0, 0x1 - b _0813D8E0 -_0813D8CE: - movs r0, 0x3 - strh r0, [r4, 0x2E] - b _0813D8E2 -_0813D8D4: - ldrh r1, [r4, 0x24] - movs r2, 0x24 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _0813D8E2 - subs r0, r1, 0x2 -_0813D8E0: - strh r0, [r4, 0x24] -_0813D8E2: - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x8 - bl Sin - ldr r1, _0813D904 @ =gUnknown_0203935A - ldrh r1, [r1] - subs r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x4 - strh r0, [r4, 0x30] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813D904: .4byte gUnknown_0203935A - thumb_func_end sub_813D880 - - thumb_func_start sub_813D908 -sub_813D908: @ 813D908 - push {lr} - adds r3, r0, 0 - ldr r2, _0813D930 @ =gTasks - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _0813D934 - adds r0, r3, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _0813D94E - .align 2, 0 -_0813D930: .4byte gTasks -_0813D934: - cmp r0, 0x4 - beq _0813D948 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - b _0813D94E -_0813D948: - adds r0, r3, 0 - bl DestroySprite -_0813D94E: - pop {r0} - bx r0 - thumb_func_end sub_813D908 - - thumb_func_start sub_813D954 -sub_813D954: @ 813D954 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - movs r5, 0 - ldr r7, _0813DA48 @ =gUnknown_0840AF50 - lsls r0, 16 - mov r9, r0 - lsls r0, r6, 16 - str r0, [sp, 0x4] - mov r1, r9 - asrs r1, 16 - str r1, [sp] -_0813D97C: - lsls r4, r5, 2 - adds r0, r7, 0x2 - adds r0, r4, r0 - ldrh r1, [r0] - ldr r2, [sp] - adds r1, r2, r1 - lsls r1, 16 - asrs r1, 16 - lsls r2, r6, 16 - asrs r3, r2, 16 - mov r10, r3 - ldr r0, _0813DA4C @ =0xfffc0000 - adds r2, r0 - ldr r0, _0813DA50 @ =gSpriteTemplate_840AF94 - asrs r2, 16 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _0813DA54 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - mov r1, r8 - strh r1, [r0, 0x2E] - adds r4, r7 - ldrb r1, [r4] - bl StartSpriteAnim - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x8 - bls _0813D97C - movs r5, 0 - ldr r7, _0813DA58 @ =gUnknown_0840AF74 - mov r0, r10 - adds r0, 0xC - lsls r0, 16 - mov r10, r0 -_0813D9D0: - lsls r4, r5, 2 - adds r0, r7, 0x2 - adds r0, r4, r0 - mov r2, r9 - asrs r1, r2, 16 - ldrh r0, [r0] - adds r1, r0 - lsls r1, 16 - asrs r1, 16 - ldr r0, _0813DA5C @ =gSpriteTemplate_840AFAC - mov r3, r10 - asrs r2, r3, 16 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - ldr r6, _0813DA54 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r6 - mov r1, r8 - strh r1, [r0, 0x2E] - adds r4, r7 - ldrb r1, [r4] - bl StartSpriteAnim - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x7 - bls _0813D9D0 - ldr r0, _0813DA60 @ =gSpriteTemplate_840AFC4 - ldr r3, [sp, 0x4] - ldr r1, _0813DA4C @ =0xfffc0000 - adds r2, r3, r1 - asrs r2, 16 - movs r1, 0x78 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r6 - mov r3, r8 - strh r3, [r0, 0x2E] - adds r0, r2, 0 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0813DA48: .4byte gUnknown_0840AF50 -_0813DA4C: .4byte 0xfffc0000 -_0813DA50: .4byte gSpriteTemplate_840AF94 -_0813DA54: .4byte gSprites -_0813DA58: .4byte gUnknown_0840AF74 -_0813DA5C: .4byte gSpriteTemplate_840AFAC -_0813DA60: .4byte gSpriteTemplate_840AFC4 - thumb_func_end sub_813D954 - - thumb_func_start sub_813DA64 -sub_813DA64: @ 813DA64 - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0813DA7C - cmp r0, 0x1 - beq _0813DAC0 -_0813DA7C: - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r1, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4, 0x3] - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0x3 - movs r3, 0x3 - bl CalcCenterToCornerVec - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - movs r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0x80 - strh r0, [r4, 0x30] - ldr r0, _0813DABC @ =0x0000ffe8 - strh r0, [r4, 0x32] - movs r0, 0 - b _0813DB92 - .align 2, 0 -_0813DABC: .4byte 0x0000ffe8 -_0813DAC0: - ldrh r1, [r4, 0x34] - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r0, 0x4F - bgt _0813DAF8 - lsls r0, r1, 24 - lsrs r0, 24 - movs r1, 0x78 - bl Sin - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x34] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x8C - bl Sin - negs r0, r0 - strh r0, [r4, 0x24] - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0x40 - ble _0813DAF8 - ldrb r0, [r4, 0x5] - movs r1, 0xC - orrs r0, r1 - strb r0, [r4, 0x5] -_0813DAF8: - ldr r2, _0813DB60 @ =gSineTable - ldrh r1, [r4, 0x32] - lsls r0, r1, 24 - lsrs r0, 23 - adds r0, r2 - ldrh r3, [r0] - adds r1, 0x40 - lsls r1, 24 - lsrs r1, 23 - adds r1, r2 - movs r2, 0 - ldrsh r0, [r1, r2] - movs r1, 0x30 - ldrsh r2, [r4, r1] - adds r1, r0, 0 - muls r1, r2 - adds r0, r1, 0 - cmp r1, 0 - bge _0813DB20 - adds r0, 0xFF -_0813DB20: - lsls r0, 8 - lsrs r6, r0, 16 - lsls r0, r3, 16 - asrs r3, r0, 16 - negs r0, r3 - muls r0, r2 - cmp r0, 0 - bge _0813DB32 - adds r0, 0xFF -_0813DB32: - lsls r0, 8 - lsrs r5, r0, 16 - adds r0, r3, 0 - muls r0, r2 - cmp r0, 0 - bge _0813DB40 - adds r0, 0xFF -_0813DB40: - lsls r0, 8 - lsrs r2, r0, 16 - adds r1, r6, 0 - adds r3, r5, 0 - str r1, [sp] - movs r0, 0x1 - bl SetOamMatrix - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0xFF - bgt _0813DB64 - adds r0, r1, 0 - adds r0, 0x8 - b _0813DB68 - .align 2, 0 -_0813DB60: .4byte gSineTable -_0813DB64: - adds r0, r1, 0 - adds r0, 0x20 -_0813DB68: - strh r0, [r4, 0x30] - ldrh r1, [r4, 0x32] - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0x17 - bgt _0813DB78 - adds r0, r1, 0x1 - strh r0, [r4, 0x32] -_0813DB78: - ldrh r2, [r4, 0x34] - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0x3F - bgt _0813DB86 - adds r0, r2, 0x2 - b _0813DB92 -_0813DB86: - ldrh r1, [r4, 0x3C] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _0813DB94 - adds r0, r2, 0x1 -_0813DB92: - strh r0, [r4, 0x34] -_0813DB94: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_813DA64 - - thumb_func_start sub_813DB9C -sub_813DB9C: @ 813DB9C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bhi _0813DBCC - lsls r0, 2 - ldr r1, _0813DBB4 @ =_0813DBB8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813DBB4: .4byte _0813DBB8 - .align 2, 0 -_0813DBB8: - .4byte _0813DBCC - .4byte _0813DBF2 - .4byte _0813DC24 - .4byte _0813DC3E - .4byte _0813DCAA -_0813DBCC: - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0813DBE0 - adds r2, r4, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - b _0813DBEC -_0813DBE0: - adds r2, r4, 0 - adds r2, 0x3F - ldrb r1, [r2] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 -_0813DBEC: - strb r0, [r2] - movs r0, 0x1 - strh r0, [r4, 0x2E] -_0813DBF2: - ldrh r1, [r4, 0x22] - movs r3, 0x22 - ldrsh r0, [r4, r3] - cmp r0, 0x60 - ble _0813DC18 - subs r0, r1, 0x4 - strh r0, [r4, 0x22] - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0813DC10 - ldrh r0, [r4, 0x20] - adds r0, 0x2 - strh r0, [r4, 0x20] - b _0813DD4E -_0813DC10: - ldrh r0, [r4, 0x20] - subs r0, 0x2 - strh r0, [r4, 0x20] - b _0813DD4E -_0813DC18: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0x8 - strh r0, [r4, 0x34] - b _0813DD4E -_0813DC24: - ldrh r0, [r4, 0x34] - movs r2, 0x34 - ldrsh r1, [r4, r2] - cmp r1, 0 - beq _0813DC34 - subs r0, 0x1 - strh r0, [r4, 0x34] - b _0813DD4E -_0813DC34: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - strh r1, [r4, 0x34] - b _0813DD4E -_0813DC3E: - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - movs r3, 0x30 - ldrsh r1, [r4, r3] - movs r0, 0x1F - ands r1, r0 - lsls r1, 1 - ldrb r2, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x3] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x3 - movs r3, 0x3 - bl CalcCenterToCornerVec - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0813DC8A - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xFF - lsls r1, 8 - movs r2, 0x80 - lsls r2, 1 - str r2, [sp] - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - b _0813DC9E -_0813DC8A: - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x80 - lsls r1, 1 - str r1, [sp] - movs r2, 0 - movs r3, 0 - bl SetOamMatrix -_0813DC9E: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x2E] - strh r1, [r4, 0x36] - b _0813DD4E -_0813DCAA: - ldrh r0, [r4, 0x36] - adds r2, r0, 0x1 - strh r2, [r4, 0x36] - movs r3, 0x22 - ldrsh r0, [r4, r3] - movs r3, 0x26 - ldrsh r1, [r4, r3] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - ble _0813DD48 - movs r1, 0x20 - ldrsh r0, [r4, r1] - movs r3, 0x24 - ldrsh r1, [r4, r3] - adds r0, r1 - movs r1, 0x40 - negs r1, r1 - cmp r0, r1 - ble _0813DD48 - movs r1, 0x36 - ldrsh r0, [r4, r1] - adds r3, r0, 0 - muls r3, r0 - adds r0, r3, 0 - negs r0, r0 - cmp r0, 0 - bge _0813DCE6 - adds r0, 0x7 -_0813DCE6: - asrs r0, 3 - strh r0, [r4, 0x26] - movs r1, 0x32 - ldrsh r0, [r4, r1] - ldrh r3, [r4, 0x32] - cmp r0, 0 - beq _0813DCFA - ldrh r0, [r4, 0x24] - adds r0, r2 - b _0813DCFE -_0813DCFA: - ldrh r0, [r4, 0x24] - subs r0, r2 -_0813DCFE: - strh r0, [r4, 0x24] - ldrh r1, [r4, 0x34] - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r0, 0x7F - bgt _0813DD10 - adds r0, r1, 0 - adds r0, 0x8 - strh r0, [r4, 0x34] -_0813DD10: - ldrh r0, [r4, 0x34] - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - subs r1, r0 - lsls r1, 16 - lsrs r2, r1, 16 - lsls r0, r3, 16 - cmp r0, 0 - beq _0813DD34 - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - negs r1, r2 - lsls r1, 16 - lsrs r1, 16 - str r2, [sp] - b _0813DD3E -_0813DD34: - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - str r2, [sp] - adds r1, r2, 0 -_0813DD3E: - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - b _0813DD4E -_0813DD48: - adds r0, r4, 0 - bl DestroySprite -_0813DD4E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_813DB9C - - thumb_func_start sub_813DD58 -sub_813DD58: @ 813DD58 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0813DDAE - cmp r0, 0x1 - ble _0813DD72 - cmp r0, 0x2 - beq _0813DE66 - cmp r0, 0x3 - beq _0813DE26 -_0813DD72: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4, 0x1] - movs r2, 0x30 - ldrsh r1, [r4, r2] - movs r0, 0x1F - ands r1, r0 - lsls r1, 1 - ldrb r2, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x3] - movs r0, 0x80 - lsls r0, 4 - strh r0, [r4, 0x34] - movs r0, 0x1 - strh r0, [r4, 0x2E] -_0813DDAE: - ldrh r1, [r4, 0x34] - movs r2, 0x34 - ldrsh r0, [r4, r2] - movs r2, 0x80 - lsls r2, 1 - cmp r0, r2 - ble _0813DDEE - subs r1, 0x80 - strh r1, [r4, 0x34] - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0813DDDA - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - ldrh r2, [r4, 0x34] - str r2, [sp] - b _0813DDE4 -_0813DDDA: - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x34] - str r1, [sp] -_0813DDE4: - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - b _0813DE66 -_0813DDEE: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0813DE0C - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xFF - lsls r1, 8 - str r2, [sp] - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - b _0813DE1E -_0813DE0C: - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - str r2, [sp] - adds r1, r2, 0 - movs r2, 0 - movs r3, 0 - bl SetOamMatrix -_0813DE1E: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _0813DE66 -_0813DE26: - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - movs r2, 0x36 - ldrsh r0, [r4, r2] - adds r1, r0, 0 - muls r1, r0 - adds r0, r1, 0 - cmp r0, 0 - bge _0813DE3C - adds r0, 0x1F -_0813DE3C: - asrs r0, 5 - strh r0, [r4, 0x26] - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0813DE56 - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _0813DE52 - adds r0, 0x3 -_0813DE52: - asrs r0, 2 - b _0813DE64 -_0813DE56: - movs r2, 0x36 - ldrsh r0, [r4, r2] - cmp r0, 0 - bge _0813DE60 - adds r0, 0x3 -_0813DE60: - asrs r0, 2 - negs r0, r0 -_0813DE64: - strh r0, [r4, 0x24] -_0813DE66: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_813DD58 - - thumb_func_start sub_813DE70 -sub_813DE70: @ 813DE70 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r7, r0, 0 - movs r1, 0x2E - ldrsh r0, [r7, r1] - cmp r0, 0x6 - bhi _0813DEB0 - lsls r0, 2 - ldr r1, _0813DE90 @ =_0813DE94 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813DE90: .4byte _0813DE94 - .align 2, 0 -_0813DE94: - .4byte _0813DEB0 - .4byte _0813E0F8 - .4byte _0813DEF4 - .4byte _0813DF2C - .4byte _0813DF54 - .4byte _0813E0A8 - .4byte _0813E0D0 -_0813DEB0: - ldrh r1, [r7, 0x20] - movs r2, 0x20 - ldrsh r0, [r7, r2] - cmp r0, 0x28 - ble _0813DEC0 - subs r0, r1, 0x4 - strh r0, [r7, 0x20] - b _0813E0F8 -_0813DEC0: - adds r0, r7, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldr r4, _0813DEF0 @ =gSpriteTemplate_840B084 - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0x68 - movs r3, 0x64 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7, 0x3A] - adds r0, r4, 0 - movs r1, 0xC - movs r2, 0x6A - movs r3, 0x65 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7, 0x3C] - b _0813DF42 - .align 2, 0 -_0813DEF0: .4byte gSpriteTemplate_840B084 -_0813DEF4: - adds r0, r7, 0 - movs r1, 0x2 - bl StartSpriteAnim - ldr r2, _0813DF28 @ =gSprites - movs r3, 0x3A - ldrsh r1, [r7, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0, 0x2E] - movs r0, 0x3C - ldrsh r1, [r7, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2 - strh r1, [r0, 0x2E] - ldrh r0, [r7, 0x2E] - adds r0, 0x1 - strh r0, [r7, 0x2E] - b _0813E0F8 - .align 2, 0 -_0813DF28: .4byte gSprites -_0813DF2C: - ldrh r1, [r7, 0x22] - movs r2, 0x22 - ldrsh r0, [r7, r2] - cmp r0, 0xA0 - ble _0813DF48 - adds r2, r7, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_0813DF42: - movs r0, 0x1 - strh r0, [r7, 0x2E] - b _0813E0F8 -_0813DF48: - adds r0, r1, 0x2 - strh r0, [r7, 0x22] - ldrh r0, [r7, 0x20] - subs r0, 0x1 - strh r0, [r7, 0x20] - b _0813E0F8 -_0813DF54: - ldr r6, _0813E094 @ =gSprites - movs r3, 0x3A - ldrsh r1, [r7, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r5, [r0, 0x24] - ldrh r1, [r0, 0x20] - adds r5, r1 - lsls r5, 16 - lsrs r5, 16 - ldrh r4, [r0, 0x26] - ldrh r2, [r0, 0x22] - adds r4, r2 - lsls r4, 16 - lsrs r4, 16 - bl DestroySprite - movs r0, 0x8C - lsls r0, 1 - lsls r5, 16 - asrs r1, r5, 16 - lsls r4, 16 - asrs r2, r4, 16 - movs r3, 0x1 - mov r8, r3 - str r3, [sp] - movs r3, 0x2 - bl sub_813CE88 - strh r0, [r7, 0x3A] - movs r0, 0x3A - ldrsh r1, [r7, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0813E098 @ =gSprites + 0x1C - adds r0, r1 - ldr r2, _0813E09C @ =sub_813DD58 - mov r10, r2 - str r2, [r0] - movs r3, 0x3A - ldrsh r1, [r7, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - mov r9, r2 - mov r3, r9 - orrs r1, r3 - strb r1, [r0] - movs r0, 0x3A - ldrsh r1, [r7, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - mov r1, r8 - strh r1, [r0, 0x30] - movs r2, 0x3A - ldrsh r1, [r7, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - mov r3, r8 - strh r3, [r0, 0x32] - lsrs r5, 16 - lsrs r4, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_813E580 - movs r0, 0x3C - ldrsh r1, [r7, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r5, [r0, 0x24] - ldrh r1, [r0, 0x20] - adds r5, r1 - lsls r5, 16 - lsrs r5, 16 - ldrh r4, [r0, 0x26] - ldrh r2, [r0, 0x22] - adds r4, r2 - lsls r4, 16 - lsrs r4, 16 - bl DestroySprite - ldr r0, _0813E0A0 @ =0x0000011b - lsls r5, 16 - asrs r1, r5, 16 - lsls r4, 16 - asrs r2, r4, 16 - mov r3, r8 - str r3, [sp] - movs r3, 0x3 - bl sub_813CE88 - strh r0, [r7, 0x3C] - movs r0, 0x3C - ldrsh r1, [r7, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0813E098 @ =gSprites + 0x1C - adds r0, r1 - mov r2, r10 - str r2, [r0] - movs r3, 0x3C - ldrsh r1, [r7, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - mov r2, r9 - orrs r1, r2 - strb r1, [r0] - movs r3, 0x3C - ldrsh r1, [r7, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x2 - strh r1, [r0, 0x30] - movs r0, 0x3C - ldrsh r1, [r7, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0 - strh r1, [r0, 0x32] - lsrs r5, 16 - lsrs r4, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_813E580 - movs r0, 0xFF - lsls r0, 16 - ldr r1, _0813E0A4 @ =0x00007eff - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0x10 - bl BeginNormalPaletteFade - mov r2, r8 - strh r2, [r7, 0x2E] - b _0813E0F8 - .align 2, 0 -_0813E094: .4byte gSprites -_0813E098: .4byte gSprites + 0x1C -_0813E09C: .4byte sub_813DD58 -_0813E0A0: .4byte 0x0000011b -_0813E0A4: .4byte 0x00007eff -_0813E0A8: - ldr r3, _0813E0CC @ =gSprites - movs r0, 0x3A - ldrsh r1, [r7, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r2, 0x3 - strh r2, [r0, 0x2E] - movs r0, 0x3C - ldrsh r1, [r7, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x2E] - b _0813E0F8 - .align 2, 0 -_0813E0CC: .4byte gSprites -_0813E0D0: - movs r2, 0x3A - ldrsh r1, [r7, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0813E108 @ =gSprites - adds r0, r4 - bl DestroySprite - movs r3, 0x3C - ldrsh r1, [r7, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - adds r0, r7, 0 - bl DestroySprite -_0813E0F8: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813E108: .4byte gSprites - thumb_func_end sub_813DE70 - - thumb_func_start sub_813E10C -sub_813E10C: @ 813E10C - push {r4,lr} - adds r3, r0, 0 - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0x4 - bhi _0813E13C - lsls r0, 2 - ldr r1, _0813E124 @ =_0813E128 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813E124: .4byte _0813E128 - .align 2, 0 -_0813E128: - .4byte _0813E13C - .4byte _0813E178 - .4byte _0813E1A6 - .4byte _0813E1C2 - .4byte _0813E1D6 -_0813E13C: - ldrh r4, [r3, 0x24] - movs r2, 0x24 - ldrsh r1, [r3, r2] - movs r0, 0x38 - negs r0, r0 - cmp r1, r0 - ble _0813E158 - adds r0, r4, 0 - subs r0, 0x8 - strh r0, [r3, 0x24] - ldrh r0, [r3, 0x26] - adds r0, 0x6 - strh r0, [r3, 0x26] - b _0813E208 -_0813E158: - ldrh r0, [r3, 0x20] - movs r2, 0 - strh r0, [r3, 0x3A] - ldrh r1, [r3, 0x22] - strh r1, [r3, 0x3C] - adds r0, r4 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x26] - adds r1, r0 - strh r1, [r3, 0x22] - strh r2, [r3, 0x24] - strh r2, [r3, 0x26] - movs r0, 0x1 - strh r0, [r3, 0x2E] - strh r2, [r3, 0x30] - b _0813E208 -_0813E178: - ldrh r1, [r3, 0x30] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _0813E1A0 - movs r0, 0x2 - ands r0, r1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - beq _0813E19C - ldr r0, _0813E198 @ =0x0000ffff - strh r0, [r3, 0x24] - strh r2, [r3, 0x26] - b _0813E1A0 - .align 2, 0 -_0813E198: .4byte 0x0000ffff -_0813E19C: - strh r0, [r3, 0x24] - strh r0, [r3, 0x26] -_0813E1A0: - adds r0, r1, 0x1 - strh r0, [r3, 0x30] - b _0813E208 -_0813E1A6: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r3, 0x3A] - movs r1, 0 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x3C] - strh r0, [r3, 0x22] - strh r1, [r3, 0x24] - strh r1, [r3, 0x26] - b _0813E208 -_0813E1C2: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r2] - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] -_0813E1D6: - ldrh r2, [r3, 0x24] - movs r0, 0x24 - ldrsh r1, [r3, r0] - movs r0, 0x38 - negs r0, r0 - cmp r1, r0 - ble _0813E1F0 - subs r0, r2, 0x4 - strh r0, [r3, 0x24] - ldrh r0, [r3, 0x26] - adds r0, 0x3 - strh r0, [r3, 0x26] - b _0813E208 -_0813E1F0: - ldrh r1, [r3, 0x20] - adds r0, r2, r1 - movs r1, 0 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x26] - ldrh r2, [r3, 0x22] - adds r0, r2 - strh r0, [r3, 0x22] - strh r1, [r3, 0x24] - strh r1, [r3, 0x26] - movs r0, 0x1 - strh r0, [r3, 0x2E] -_0813E208: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_813E10C - - thumb_func_start sub_813E210 -sub_813E210: @ 813E210 - push {r4,lr} - adds r3, r0, 0 - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0x4 - bhi _0813E240 - lsls r0, 2 - ldr r1, _0813E228 @ =_0813E22C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813E228: .4byte _0813E22C - .align 2, 0 -_0813E22C: - .4byte _0813E240 - .4byte _0813E278 - .4byte _0813E2A6 - .4byte _0813E2C2 - .4byte _0813E2D6 -_0813E240: - ldrh r4, [r3, 0x24] - movs r2, 0x24 - ldrsh r0, [r3, r2] - cmp r0, 0x37 - bgt _0813E258 - adds r0, r4, 0 - adds r0, 0x8 - strh r0, [r3, 0x24] - ldrh r0, [r3, 0x26] - subs r0, 0x6 - strh r0, [r3, 0x26] - b _0813E304 -_0813E258: - ldrh r0, [r3, 0x20] - movs r2, 0 - strh r0, [r3, 0x3A] - ldrh r1, [r3, 0x22] - strh r1, [r3, 0x3C] - adds r0, r4 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x26] - adds r1, r0 - strh r1, [r3, 0x22] - strh r2, [r3, 0x24] - strh r2, [r3, 0x26] - movs r0, 0x1 - strh r0, [r3, 0x2E] - strh r2, [r3, 0x30] - b _0813E304 -_0813E278: - ldrh r1, [r3, 0x30] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _0813E2A0 - movs r0, 0x2 - ands r0, r1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - beq _0813E29C - strh r2, [r3, 0x24] - ldr r0, _0813E298 @ =0x0000ffff - b _0813E29E - .align 2, 0 -_0813E298: .4byte 0x0000ffff -_0813E29C: - strh r0, [r3, 0x24] -_0813E29E: - strh r0, [r3, 0x26] -_0813E2A0: - adds r0, r1, 0x1 - strh r0, [r3, 0x30] - b _0813E304 -_0813E2A6: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r3, 0x3A] - movs r1, 0 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x3C] - strh r0, [r3, 0x22] - strh r1, [r3, 0x24] - strh r1, [r3, 0x26] - b _0813E304 -_0813E2C2: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r2] - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] -_0813E2D6: - ldrh r1, [r3, 0x24] - movs r2, 0x24 - ldrsh r0, [r3, r2] - cmp r0, 0x37 - bgt _0813E2EC - adds r0, r1, 0x4 - strh r0, [r3, 0x24] - ldrh r0, [r3, 0x26] - subs r0, 0x3 - strh r0, [r3, 0x26] - b _0813E304 -_0813E2EC: - ldrh r2, [r3, 0x20] - adds r0, r1, r2 - movs r1, 0 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x26] - ldrh r2, [r3, 0x22] - adds r0, r2 - strh r0, [r3, 0x22] - strh r1, [r3, 0x24] - strh r1, [r3, 0x26] - movs r0, 0x1 - strh r0, [r3, 0x2E] -_0813E304: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_813E210 - - thumb_func_start sub_813E30C -sub_813E30C: @ 813E30C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x14 - bls _0813E322 - b _0813E4AC -_0813E322: - lsls r0, 2 - ldr r1, _0813E32C @ =_0813E330 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813E32C: .4byte _0813E330 - .align 2, 0 -_0813E330: - .4byte _0813E4AC - .4byte _0813E384 - .4byte _0813E41C - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E3A8 - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E440 -_0813E384: - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r1, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4, 0x3] - movs r0, 0xA - strh r0, [r4, 0x2E] - movs r0, 0x24 - strh r0, [r4, 0x36] -_0813E3A8: - ldrh r1, [r4, 0x20] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x90 - bgt _0813E3D2 - adds r0, r1, 0x4 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x22] - subs r0, 0x1 - strh r0, [r4, 0x22] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x18 - bl Sin - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x4 - strh r0, [r4, 0x32] -_0813E3D2: - ldrh r0, [r4, 0x34] - ldrh r2, [r4, 0x36] - subs r0, r2 - strh r0, [r4, 0x34] - ldrh r1, [r4, 0x3C] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0813E3EE - lsls r0, r2, 16 - cmp r0, 0 - beq _0813E3EE - subs r0, r2, 0x1 - strh r0, [r4, 0x36] -_0813E3EE: - ldr r2, _0813E418 @ =gSineTable - ldrh r1, [r4, 0x34] - lsls r0, r1, 24 - lsrs r0, 23 - adds r0, r2 - ldrh r4, [r0] - adds r1, 0x40 - lsls r1, 24 - lsrs r1, 23 - adds r1, r2 - ldrh r1, [r1] - negs r3, r4 - lsls r3, 16 - lsrs r3, 16 - str r1, [sp] - movs r0, 0x1 - adds r2, r4, 0 - bl SetOamMatrix - b _0813E4AC - .align 2, 0 -_0813E418: .4byte gSineTable -_0813E41C: - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r1, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4, 0x3] - movs r0, 0x14 - strh r0, [r4, 0x2E] - movs r0, 0x24 - strh r0, [r4, 0x36] -_0813E440: - ldrh r1, [r4, 0x20] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x60 - bgt _0813E46A - adds r0, r1, 0x3 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x22] - subs r0, 0x1 - strh r0, [r4, 0x22] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x18 - bl Sin - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x4 - strh r0, [r4, 0x32] -_0813E46A: - ldrh r0, [r4, 0x34] - ldrh r2, [r4, 0x36] - subs r0, r2 - strh r0, [r4, 0x34] - ldrh r1, [r4, 0x3C] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0813E486 - lsls r0, r2, 16 - cmp r0, 0 - beq _0813E486 - subs r0, r2, 0x1 - strh r0, [r4, 0x36] -_0813E486: - ldr r2, _0813E4B4 @ =gSineTable - ldrh r1, [r4, 0x34] - lsls r0, r1, 24 - lsrs r0, 23 - adds r0, r2 - ldrh r4, [r0] - adds r1, 0x40 - lsls r1, 24 - lsrs r1, 23 - adds r1, r2 - ldrh r1, [r1] - negs r3, r4 - lsls r3, 16 - lsrs r3, 16 - str r1, [sp] - movs r0, 0x2 - adds r2, r4, 0 - bl SetOamMatrix -_0813E4AC: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813E4B4: .4byte gSineTable - thumb_func_end sub_813E30C - - thumb_func_start sub_813E4B8 -sub_813E4B8: @ 813E4B8 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r0, [r5, 0x3C] - adds r0, 0x1 - strh r0, [r5, 0x3C] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0813E4DA - adds r2, r5, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - b _0813E4E4 -_0813E4DA: - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 -_0813E4E4: - strb r0, [r2] - ldrh r1, [r5, 0x32] - movs r2, 0x32 - ldrsh r0, [r5, r2] - cmp r0, 0x3F - ble _0813E4F8 - adds r0, r5, 0 - bl DestroySprite - b _0813E574 -_0813E4F8: - adds r0, r1, 0x2 - strh r0, [r5, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x28 - bl Sin - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - lsls r0, 29 - lsrs r0, 24 - lsls r4, 16 - asrs r4, 16 - adds r1, r4, 0 - bl Cos - strh r0, [r5, 0x24] - movs r2, 0x2E - ldrsh r0, [r5, r2] - lsls r0, 29 - lsrs r0, 24 - adds r1, r4, 0 - bl Sin - strh r0, [r5, 0x26] - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _0813E574 - ldrh r0, [r5, 0x34] - ldrh r2, [r5, 0x30] - subs r0, r2 - strh r0, [r5, 0x34] - ldrh r1, [r5, 0x3C] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0813E550 - lsls r0, r2, 16 - cmp r0, 0 - beq _0813E550 - subs r0, r2, 0x1 - strh r0, [r5, 0x30] -_0813E550: - ldr r3, _0813E57C @ =gSineTable - ldrh r1, [r5, 0x34] - lsls r0, r1, 24 - lsrs r0, 23 - adds r0, r3 - ldrh r2, [r0] - adds r1, 0x40 - lsls r1, 24 - lsrs r1, 23 - adds r1, r3 - ldrh r1, [r1] - negs r3, r2 - lsls r3, 16 - lsrs r3, 16 - str r1, [sp] - movs r0, 0x10 - bl SetOamMatrix -_0813E574: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813E57C: .4byte gSineTable - thumb_func_end sub_813E4B8 - - thumb_func_start sub_813E580 -sub_813E580: @ 813E580 - push {r4-r7,lr} - movs r4, 0 - ldr r7, _0813E5D8 @ =gSprites - lsls r6, r0, 16 - lsls r5, r1, 16 -_0813E58A: - ldr r0, _0813E5DC @ =gSpriteTemplate_840B0B0 - asrs r1, r6, 16 - asrs r2, r5, 16 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r7 - ldrb r1, [r2, 0x1] - movs r3, 0x4 - negs r3, r3 - adds r0, r3, 0 - ands r1, r0 - movs r0, 0x1 - orrs r1, r0 - strb r1, [r2, 0x1] - ldrb r1, [r2, 0x3] - subs r3, 0x3B - adds r0, r3, 0 - ands r1, r0 - movs r0, 0x20 - orrs r1, r0 - strb r1, [r2, 0x3] - strh r4, [r2, 0x2E] - movs r0, 0x20 - strh r0, [r2, 0x30] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _0813E58A - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813E5D8: .4byte gSprites -_0813E5DC: .4byte gSpriteTemplate_840B0B0 - thumb_func_end sub_813E580 - - thumb_func_start sub_813E5E0 -sub_813E5E0: @ 813E5E0 - push {r4,lr} - adds r3, r0, 0 - ldr r0, _0813E5F4 @ =gUnknown_0203931A - ldrh r0, [r0] - cmp r0, 0 - beq _0813E5F8 - adds r0, r3, 0 - bl DestroySprite - b _0813E6B2 - .align 2, 0 -_0813E5F4: .4byte gUnknown_0203931A -_0813E5F8: - ldr r2, _0813E6B8 @ =gSprites - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - movs r1, 0x4 - ands r1, r0 - mov r4, r12 - ldrb r2, [r4] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - ldrh r1, [r3, 0x3C] - movs r2, 0x3C - ldrsh r0, [r3, r2] - cmp r0, 0xB - bgt _0813E630 - adds r0, r1, 0x1 - strh r0, [r3, 0x3C] -_0813E630: - ldrh r0, [r3, 0x3A] - adds r0, 0x4 - strh r0, [r3, 0x3A] - ldr r4, _0813E6BC @ =gSineTable - ldrh r0, [r3, 0x34] - adds r0, 0x40 - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - movs r2, 0 - ldrsh r1, [r0, r2] - movs r2, 0x3A - ldrsh r0, [r3, r2] - muls r0, r1 - cmp r0, 0 - bge _0813E652 - adds r0, 0xFF -_0813E652: - asrs r0, 8 - ldrh r1, [r3, 0x36] - adds r0, r1 - strh r0, [r3, 0x20] - movs r2, 0x34 - ldrsh r0, [r3, r2] - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - movs r2, 0 - ldrsh r1, [r0, r2] - movs r2, 0x3A - ldrsh r0, [r3, r2] - muls r0, r1 - cmp r0, 0 - bge _0813E674 - adds r0, 0xFF -_0813E674: - asrs r0, 8 - ldrh r1, [r3, 0x38] - adds r2, r0, r1 - strh r2, [r3, 0x22] - movs r1, 0x30 - ldrsh r0, [r3, r1] - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - movs r4, 0 - ldrsh r1, [r0, r4] - movs r4, 0x3C - ldrsh r0, [r3, r4] - muls r0, r1 - cmp r0, 0 - bge _0813E696 - adds r0, 0xFF -_0813E696: - asrs r0, 8 - strh r0, [r3, 0x26] - ldrh r0, [r3, 0x30] - adds r0, 0x10 - strh r0, [r3, 0x30] - lsls r0, r2, 16 - asrs r0, 16 - movs r2, 0x32 - ldrsh r1, [r3, r2] - cmp r0, r1 - ble _0813E6B2 - adds r0, r3, 0 - bl DestroySprite -_0813E6B2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813E6B8: .4byte gSprites -_0813E6BC: .4byte gSineTable - thumb_func_end sub_813E5E0 - - thumb_func_start sub_813E6C0 -sub_813E6C0: @ 813E6C0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r4, r0, 0 - ldr r0, _0813E6E0 @ =gUnknown_0203931A - ldrh r0, [r0] - cmp r0, 0 - beq _0813E6E4 - adds r0, r4, 0 - bl DestroySprite - b _0813E7A8 - .align 2, 0 -_0813E6E0: .4byte gUnknown_0203931A -_0813E6E4: - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r3, _0813E7B8 @ =gSprites - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r3 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _0813E7A8 - ldrh r1, [r4, 0x3C] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _0813E7A8 - ldrh r0, [r2, 0x20] - ldrh r7, [r4, 0x30] - adds r0, r7 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp] - ldrh r0, [r2, 0x22] - ldrh r1, [r4, 0x32] - adds r0, r1 - lsls r0, 16 - lsrs r6, r0, 16 - movs r5, 0 - mov r8, r3 - ldr r2, [sp] - lsls r2, 16 - mov r10, r2 - lsls r7, r6, 16 - mov r9, r7 -_0813E73A: - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - adds r0, 0x43 - ldrb r3, [r0] - subs r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - ldr r0, _0813E7BC @ =gSpriteTemplate_840B0DC - mov r2, r10 - asrs r1, r2, 16 - mov r7, r9 - asrs r2, r7, 16 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _0813E79E - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - add r3, r8 - ldrh r0, [r4, 0x2E] - strh r0, [r3, 0x2E] - ldrh r1, [r4, 0x3C] - lsls r1, 16 - asrs r1, 18 - movs r0, 0x7 - ands r1, r0 - lsls r1, 5 - lsls r0, r5, 2 - adds r0, r5 - lsls r2, r0, 4 - adds r0, r2 - adds r1, r0 - strh r1, [r3, 0x30] - ldrh r0, [r4, 0x34] - strh r0, [r3, 0x32] - movs r0, 0x68 - strh r0, [r3, 0x34] - mov r0, sp - ldrh r0, [r0] - strh r0, [r3, 0x36] - strh r6, [r3, 0x38] - movs r1, 0 - strh r1, [r3, 0x3A] -_0813E79E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _0813E73A -_0813E7A8: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813E7B8: .4byte gSprites -_0813E7BC: .4byte gSpriteTemplate_840B0DC - thumb_func_end sub_813E6C0 - - thumb_func_start sub_813E7C0 -sub_813E7C0: @ 813E7C0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0813E7F8 @ =gSpriteTemplate_840B0F4 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _0813E7F2 - ldr r1, _0813E7FC @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r2, 0 - strh r4, [r0, 0x2E] - ldr r1, _0813E800 @ =0x0000fff4 - strh r1, [r0, 0x30] - strh r2, [r0, 0x32] - movs r1, 0x88 - strh r1, [r0, 0x34] -_0813E7F2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813E7F8: .4byte gSpriteTemplate_840B0F4 -_0813E7FC: .4byte gSprites -_0813E800: .4byte 0x0000fff4 - thumb_func_end sub_813E7C0 - - thumb_func_start sub_813E804 -sub_813E804: @ 813E804 - push {r4-r7,lr} - adds r3, r0, 0 - ldr r0, _0813E818 @ =gUnknown_0203931A - ldrh r0, [r0] - cmp r0, 0 - beq _0813E81C - adds r0, r3, 0 - bl DestroySprite - b _0813E928 - .align 2, 0 -_0813E818: .4byte gUnknown_0203931A -_0813E81C: - ldr r6, _0813E904 @ =gSprites - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r0, [r0] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - movs r1, 0x4 - ands r1, r0 - mov r7, r12 - ldrb r2, [r7] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r7] - ldrh r0, [r3, 0x3C] - adds r0, 0x1 - strh r0, [r3, 0x3C] - ldrh r1, [r3, 0x34] - movs r2, 0x34 - ldrsh r0, [r3, r2] - cmp r0, 0x27 - bgt _0813E85A - adds r0, r1, 0x2 - strh r0, [r3, 0x34] -_0813E85A: - movs r7, 0x2E - ldrsh r1, [r3, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r0, 0x24] - ldrh r0, [r0, 0x20] - adds r2, r1, r0 - ldr r4, _0813E908 @ =gSineTable - ldrh r5, [r3, 0x30] - adds r0, r5, 0 - adds r0, 0x40 - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - movs r7, 0 - ldrsh r1, [r0, r7] - movs r7, 0x34 - ldrsh r0, [r3, r7] - muls r0, r1 - cmp r0, 0 - bge _0813E88A - adds r0, 0xFF -_0813E88A: - asrs r0, 8 - adds r0, r2, r0 - strh r0, [r3, 0x20] - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r2, r1, r0 - movs r1, 0x30 - ldrsh r0, [r3, r1] - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - movs r7, 0 - ldrsh r1, [r0, r7] - movs r7, 0x34 - ldrsh r0, [r3, r7] - muls r0, r1 - cmp r0, 0 - bge _0813E8BE - ldr r1, _0813E90C @ =0x000001ff - adds r0, r1 -_0813E8BE: - asrs r0, 9 - adds r0, r2, r0 - strh r0, [r3, 0x22] - adds r1, r5, 0x2 - strh r1, [r3, 0x30] - movs r2, 0x32 - ldrsh r0, [r3, r2] - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - movs r7, 0 - ldrsh r0, [r0, r7] - cmp r0, 0 - bge _0813E8DC - adds r0, 0x1F -_0813E8DC: - asrs r0, 5 - strh r0, [r3, 0x26] - ldrh r0, [r3, 0x32] - adds r0, 0x8 - strh r0, [r3, 0x32] - movs r0, 0xFF - ands r1, r0 - cmp r1, 0x7F - bgt _0813E910 - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x43 - ldrb r0, [r0] - subs r0, 0x1 - b _0813E922 - .align 2, 0 -_0813E904: .4byte gSprites -_0813E908: .4byte gSineTable -_0813E90C: .4byte 0x000001ff -_0813E910: - movs r2, 0x2E - ldrsh r1, [r3, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x43 - ldrb r0, [r0] - adds r0, 0x1 -_0813E922: - adds r1, r3, 0 - adds r1, 0x43 - strb r0, [r1] -_0813E928: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_813E804 - - thumb_func_start sub_813E930 -sub_813E930: @ 813E930 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - ldr r7, _0813E978 @ =gSprites - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r5, r0, r7 -_0813E942: - movs r0, 0x20 - ldrsh r1, [r5, r0] - movs r0, 0x22 - ldrsh r2, [r5, r0] - ldr r0, _0813E97C @ =gSpriteTemplate_840B124 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _0813E968 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r6, [r0, 0x2E] - lsls r1, r4, 5 - strh r1, [r0, 0x30] -_0813E968: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _0813E942 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813E978: .4byte gSprites -_0813E97C: .4byte gSpriteTemplate_840B124 - thumb_func_end sub_813E930 - - thumb_func_start GetCurrentTrainerHillMapId -GetCurrentTrainerHillMapId: @ 813E980 - push {r4,r5,lr} - adds r3, r0, 0 - ldr r0, _0813E994 @ =gUnknown_0203931A - ldrh r0, [r0] - cmp r0, 0 - beq _0813E998 - adds r0, r3, 0 - bl DestroySprite - b _0813EA50 - .align 2, 0 -_0813E994: .4byte gUnknown_0203931A -_0813E998: - ldr r2, _0813EA58 @ =gSprites - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - movs r1, 0x4 - ands r1, r0 - mov r5, r12 - ldrb r2, [r5] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5] - ldrh r0, [r3, 0x3C] - adds r0, 0x1 - strh r0, [r3, 0x3C] - ldrh r0, [r3, 0x3A] - adds r4, r0, 0 - adds r4, 0x8 - strh r4, [r3, 0x3A] - ldr r2, _0813EA5C @ =gSineTable - ldrh r0, [r3, 0x34] - adds r0, 0x40 - lsls r0, 24 - lsrs r0, 23 - adds r0, r2 - movs r5, 0 - ldrsh r1, [r0, r5] - movs r5, 0x3A - ldrsh r0, [r3, r5] - muls r0, r1 - cmp r0, 0 - bge _0813E9EC - adds r0, 0xFF -_0813E9EC: - asrs r0, 8 - ldrh r1, [r3, 0x36] - adds r0, r1 - strh r0, [r3, 0x20] - movs r5, 0x34 - ldrsh r0, [r3, r5] - lsls r0, 24 - lsrs r0, 23 - adds r0, r2 - movs r2, 0 - ldrsh r1, [r0, r2] - movs r5, 0x3A - ldrsh r0, [r3, r5] - muls r0, r1 - cmp r0, 0 - bge _0813EA0E - adds r0, 0xFF -_0813EA0E: - asrs r0, 8 - ldrh r1, [r3, 0x38] - adds r0, r1 - strh r0, [r3, 0x22] - movs r2, 0x3A - ldrsh r0, [r3, r2] - cmp r0, 0 - bge _0813EA20 - adds r0, 0xF -_0813EA20: - asrs r0, 4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x9 - bls _0813EA2C - movs r0, 0x9 -_0813EA2C: - adds r1, r0, 0 - adds r1, 0x12 - movs r0, 0x1F - ands r1, r0 - lsls r1, 1 - ldrb r2, [r3, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x3] - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, 0xA0 - ble _0813EA50 - adds r0, r3, 0 - bl DestroySprite -_0813EA50: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813EA58: .4byte gSprites -_0813EA5C: .4byte gSineTable - thumb_func_end GetCurrentTrainerHillMapId - - thumb_func_start sub_813EA60 -sub_813EA60: @ 813EA60 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - ldr r0, _0813EA7C @ =gUnknown_0203931A - ldrh r0, [r0] - cmp r0, 0 - beq _0813EA80 - adds r0, r5, 0 - bl DestroySprite - b _0813EB32 - .align 2, 0 -_0813EA7C: .4byte gUnknown_0203931A -_0813EA80: - ldrh r0, [r5, 0x3C] - adds r0, 0x1 - strh r0, [r5, 0x3C] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _0813EB40 @ =gSprites - mov r9, r0 - movs r4, 0x2E - ldrsh r1, [r5, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - mov r1, r9 - adds r3, r0, r1 - movs r4, 0x2E - ldrsh r1, [r3, r4] - cmp r1, 0x1 - bne _0813EB32 - ldrh r0, [r5, 0x3C] - ands r1, r0 - lsls r0, r1, 16 - asrs r6, r0, 16 - cmp r6, 0 - bne _0813EB32 - ldrh r1, [r3, 0x20] - ldrh r0, [r5, 0x30] - adds r1, r0 - lsls r1, 16 - ldrh r2, [r3, 0x22] - ldrh r4, [r5, 0x32] - adds r2, r4 - lsls r2, 16 - ldr r0, _0813EB44 @ =gSpriteTemplate_840B150 - lsrs r4, r1, 16 - mov r8, r4 - asrs r1, 16 - lsrs r7, r2, 16 - asrs r2, 16 - adds r3, 0x43 - ldrb r3, [r3] - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _0813EB32 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - add r4, r9 - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r1, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x24 - orrs r0, r1 - strb r0, [r4, 0x3] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x1 - movs r3, 0x3 - bl CalcCenterToCornerVec - ldrh r0, [r5, 0x2E] - strh r0, [r4, 0x2E] - ldr r2, _0813EB48 @ =gUnknown_0840B168 - ldrh r0, [r5, 0x3C] - lsls r0, 16 - asrs r0, 17 - movs r1, 0x7 - ands r0, r1 - adds r0, r2 - ldrb r0, [r0] - strh r0, [r4, 0x34] - mov r0, r8 - strh r0, [r4, 0x36] - strh r7, [r4, 0x38] - strh r6, [r4, 0x3A] -_0813EB32: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813EB40: .4byte gSprites -_0813EB44: .4byte gSpriteTemplate_840B150 -_0813EB48: .4byte gUnknown_0840B168 - thumb_func_end sub_813EA60 - - thumb_func_start sub_813EB4C -sub_813EB4C: @ 813EB4C - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0813EBB0 @ =gSpriteTemplate_840B170 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _0813EB80 - ldr r1, _0813EBB4 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0 - strh r4, [r0, 0x2E] - strh r1, [r0, 0x30] - movs r1, 0x8 - strh r1, [r0, 0x32] - movs r1, 0x18 - strh r1, [r0, 0x34] -_0813EB80: - movs r4, 0 - ldr r5, _0813EBB8 @ =gUnknown_0840B188 -_0813EB84: - adds r0, r4, 0 - adds r0, 0x12 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r4, 1 - adds r1, r5 - ldrh r1, [r1] - str r1, [sp] - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _0813EB84 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813EBB0: .4byte gSpriteTemplate_840B170 -_0813EBB4: .4byte gSprites -_0813EBB8: .4byte gUnknown_0840B188 - thumb_func_end sub_813EB4C - - thumb_func_start sub_813EBBC -sub_813EBBC: @ 813EBBC - push {r4,lr} - adds r3, r0, 0 - ldr r0, _0813EBD0 @ =gUnknown_0203931A - ldrh r0, [r0] - cmp r0, 0 - beq _0813EBD4 - adds r0, r3, 0 - bl DestroySprite - b _0813EC80 - .align 2, 0 -_0813EBD0: .4byte gUnknown_0203931A -_0813EBD4: - ldr r2, _0813EC88 @ =gSprites - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - movs r1, 0x4 - ands r1, r0 - mov r4, r12 - ldrb r2, [r4] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - ldrh r0, [r3, 0x3C] - adds r0, 0x1 - strh r0, [r3, 0x3C] - ldrh r0, [r3, 0x3A] - adds r0, 0x8 - strh r0, [r3, 0x3A] - ldr r2, _0813EC8C @ =gSineTable - ldrh r0, [r3, 0x34] - adds r0, 0x40 - lsls r0, 24 - lsrs r0, 23 - adds r0, r2 - movs r4, 0 - ldrsh r1, [r0, r4] - movs r4, 0x3A - ldrsh r0, [r3, r4] - muls r0, r1 - cmp r0, 0 - bge _0813EC26 - adds r0, 0xFF -_0813EC26: - asrs r0, 8 - ldrh r1, [r3, 0x36] - adds r0, r1 - strh r0, [r3, 0x20] - movs r4, 0x34 - ldrsh r0, [r3, r4] - lsls r0, 24 - lsrs r0, 23 - adds r0, r2 - movs r4, 0 - ldrsh r1, [r0, r4] - movs r4, 0x3A - ldrsh r0, [r3, r4] - muls r0, r1 - cmp r0, 0 - bge _0813EC48 - adds r0, 0xFF -_0813EC48: - asrs r0, 8 - ldrh r4, [r3, 0x38] - adds r1, r0, r4 - strh r1, [r3, 0x22] - movs r4, 0x30 - ldrsh r0, [r3, r4] - lsls r0, 24 - lsrs r0, 23 - adds r0, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - bge _0813EC64 - adds r0, 0x3F -_0813EC64: - asrs r0, 6 - strh r0, [r3, 0x26] - ldrh r0, [r3, 0x30] - adds r0, 0x10 - strh r0, [r3, 0x30] - lsls r0, r1, 16 - asrs r0, 16 - movs r4, 0x32 - ldrsh r1, [r3, r4] - cmp r0, r1 - bge _0813EC80 - adds r0, r3, 0 - bl DestroySprite -_0813EC80: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813EC88: .4byte gSprites -_0813EC8C: .4byte gSineTable - thumb_func_end sub_813EBBC - - thumb_func_start sub_813EC90 -sub_813EC90: @ 813EC90 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, _0813ECAC @ =gUnknown_0203931A - ldrh r0, [r0] - cmp r0, 0 - beq _0813ECB0 - adds r0, r5, 0 - bl DestroySprite - b _0813EDA0 - .align 2, 0 -_0813ECAC: .4byte gUnknown_0203931A -_0813ECB0: - ldrh r0, [r5, 0x3C] - adds r0, 0x1 - strh r0, [r5, 0x3C] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _0813EDB0 @ =gSprites - mov r9, r0 - movs r2, 0x2E - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - mov r4, r9 - adds r3, r0, r4 - movs r0, 0x2E - ldrsh r1, [r3, r0] - cmp r1, 0x1 - bne _0813ED74 - ldrh r0, [r5, 0x3C] - ands r1, r0 - lsls r0, r1, 16 - asrs r6, r0, 16 - cmp r6, 0 - bne _0813ED66 - ldrh r1, [r3, 0x20] - ldrh r2, [r5, 0x30] - adds r1, r2 - lsls r1, 16 - ldrh r2, [r3, 0x22] - ldrh r4, [r5, 0x32] - adds r2, r4 - lsls r2, 16 - ldr r0, _0813EDB4 @ =gSpriteTemplate_840B1B0 - lsrs r4, r1, 16 - mov r8, r4 - asrs r1, 16 - lsrs r7, r2, 16 - asrs r2, 16 - adds r3, 0x43 - ldrb r3, [r3] - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _0813ED66 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - add r4, r9 - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r1, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x22 - orrs r0, r1 - strb r0, [r4, 0x3] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x1 - movs r3, 0x3 - bl CalcCenterToCornerVec - ldrh r0, [r5, 0x2E] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x3C] - lsls r0, 16 - asrs r0, 18 - movs r1, 0x7 - ands r0, r1 - lsls r0, 5 - strh r0, [r4, 0x30] - ldrh r0, [r5, 0x34] - strh r0, [r4, 0x32] - movs r0, 0xE8 - strh r0, [r4, 0x34] - mov r0, r8 - strh r0, [r4, 0x36] - strh r7, [r4, 0x38] - strh r6, [r4, 0x3A] -_0813ED66: - ldrh r1, [r5, 0x3A] - movs r2, 0x3A - ldrsh r0, [r5, r2] - cmp r0, 0x6F - bgt _0813ED74 - adds r0, r1, 0x4 - strh r0, [r5, 0x3A] -_0813ED74: - ldr r1, _0813EDB8 @ =gSineTable - ldrh r0, [r5, 0x3A] - lsls r0, 24 - lsrs r0, 23 - adds r0, r1 - movs r4, 0 - ldrsh r0, [r0, r4] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - subs r1, r0 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - movs r0, 0x11 - movs r2, 0 - movs r3, 0 - bl SetOamMatrix -_0813EDA0: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813EDB0: .4byte gSprites -_0813EDB4: .4byte gSpriteTemplate_840B1B0 -_0813EDB8: .4byte gSineTable - thumb_func_end sub_813EC90 - - thumb_func_start sub_813EDBC -sub_813EDBC: @ 813EDBC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0813EDF4 @ =gSpriteTemplate_840B1C8 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _0813EDEE - ldr r1, _0813EDF8 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0 - strh r4, [r0, 0x2E] - strh r1, [r0, 0x30] - movs r1, 0xC - strh r1, [r0, 0x32] - movs r1, 0x18 - strh r1, [r0, 0x34] -_0813EDEE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813EDF4: .4byte gSpriteTemplate_840B1C8 -_0813EDF8: .4byte gSprites - thumb_func_end sub_813EDBC - - thumb_func_start sub_813EDFC -sub_813EDFC: @ 813EDFC - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _0813EE12 - adds r4, r5, 0 - adds r4, 0x3E - cmp r0, 0x1 - beq _0813EE4A -_0813EE12: - adds r4, r5, 0 - adds r4, 0x3E - ldrb r1, [r4] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - ldrb r0, [r5, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r5, 0x1] - ldrb r1, [r5, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x24 - orrs r0, r1 - strb r0, [r5, 0x3] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x3 - movs r3, 0x3 - bl CalcCenterToCornerVec - movs r0, 0 - strh r0, [r5, 0x30] - movs r0, 0x1 - strh r0, [r5, 0x2E] -_0813EE4A: - ldrh r0, [r5, 0x3C] - adds r0, 0x1 - strh r0, [r5, 0x3C] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0813EE62 - ldrb r0, [r4] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4] - b _0813EE7A -_0813EE62: - ldrb r0, [r4] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r4] - ldrh r1, [r5, 0x30] - movs r2, 0x30 - ldrsh r0, [r5, r2] - cmp r0, 0x3F - bgt _0813EE7A - adds r0, r1, 0x1 - strh r0, [r5, 0x30] -_0813EE7A: - ldr r1, _0813EEB0 @ =gSineTable - ldrh r0, [r5, 0x30] - lsls r0, 24 - lsrs r0, 23 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - subs r1, r0 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - movs r0, 0x12 - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813EEB0: .4byte gSineTable - thumb_func_end sub_813EDFC - - thumb_func_start FieldInitRegionMap -FieldInitRegionMap: @ 813EEB4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0 - bl SetVBlankCallback - ldr r2, _0813EED8 @ =0x02000000 - ldr r0, _0813EEDC @ =0x00000888 - adds r1, r2, r0 - movs r0, 0 - strh r0, [r1] - str r4, [r2] - ldr r0, _0813EEE0 @ =CB2_FieldInitRegionMap - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813EED8: .4byte 0x02000000 -_0813EEDC: .4byte 0x00000888 -_0813EEE0: .4byte CB2_FieldInitRegionMap - thumb_func_end FieldInitRegionMap - - thumb_func_start CB2_FieldInitRegionMap -CB2_FieldInitRegionMap: @ 813EEE4 - push {r4,lr} - sub sp, 0x4 - movs r0, 0x80 - lsls r0, 19 - movs r1, 0 - strh r1, [r0] - adds r0, 0x10 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r0, _0813EF98 @ =0x02000008 - movs r1, 0 - bl sub_80FA8EC - movs r0, 0 - movs r1, 0 - bl sub_80FBCF0 - movs r0, 0x1 - movs r1, 0x1 - bl sub_80FBB3C - ldr r4, _0813EF9C @ =gWindowConfig_81E709C - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl InitMenuWindow - bl MenuZeroFillScreen - ldr r1, _0813EFA0 @ =REG_BG0CNT - movs r2, 0xF8 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0x15 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x3 - bl MenuDrawTextWindow - ldr r0, _0813EFA4 @ =gOtherText_Hoenn - movs r1, 0x16 - movs r2, 0x1 - movs r3, 0x38 - bl sub_8072BD8 - movs r0, 0x10 - movs r1, 0x10 - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - bl sub_813F0C8 - ldr r0, _0813EFA8 @ =CB2_FieldRegionMap - bl SetMainCallback2 - ldr r0, _0813EFAC @ =VBlankCB_FieldRegionMap - bl SetVBlankCallback - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813EF98: .4byte 0x02000008 -_0813EF9C: .4byte gWindowConfig_81E709C -_0813EFA0: .4byte REG_BG0CNT -_0813EFA4: .4byte gOtherText_Hoenn -_0813EFA8: .4byte CB2_FieldRegionMap -_0813EFAC: .4byte VBlankCB_FieldRegionMap - thumb_func_end CB2_FieldInitRegionMap - - thumb_func_start VBlankCB_FieldRegionMap -VBlankCB_FieldRegionMap: @ 813EFB0 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end VBlankCB_FieldRegionMap - - thumb_func_start CB2_FieldRegionMap -CB2_FieldRegionMap: @ 813EFC4 - push {lr} - bl sub_813EFDC - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end CB2_FieldRegionMap - - thumb_func_start sub_813EFDC -sub_813EFDC: @ 813EFDC - push {lr} - sub sp, 0x4 - ldr r1, _0813EFF8 @ =0x02000000 - ldr r2, _0813EFFC @ =0x00000888 - adds r0, r1, r2 - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, 0x4 - bhi _0813F0B8 - lsls r0, 2 - ldr r1, _0813F000 @ =_0813F004 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813EFF8: .4byte 0x02000000 -_0813EFFC: .4byte 0x00000888 -_0813F000: .4byte _0813F004 - .align 2, 0 -_0813F004: - .4byte _0813F018 - .4byte _0813F030 - .4byte _0813F04C - .4byte _0813F078 - .4byte _0813F0A0 -_0813F018: - movs r1, 0x80 - lsls r1, 19 - ldr r3, _0813F028 @ =0x00001541 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _0813F02C @ =0x00000888 - adds r1, r2, r0 - b _0813F08E - .align 2, 0 -_0813F028: .4byte 0x00001541 -_0813F02C: .4byte 0x00000888 -_0813F030: - ldr r0, _0813F044 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0813F0B8 - ldr r3, _0813F048 @ =0x00000888 - adds r1, r2, r3 - b _0813F08E - .align 2, 0 -_0813F044: .4byte gPaletteFade -_0813F048: .4byte 0x00000888 -_0813F04C: - bl sub_80FAB60 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _0813F05E - bl sub_813F0C8 - b _0813F0B8 -_0813F05E: - cmp r0, 0x3 - blt _0813F0B8 - cmp r0, 0x5 - bgt _0813F0B8 - ldr r1, _0813F070 @ =0x02000000 - ldr r0, _0813F074 @ =0x00000888 - adds r1, r0 - b _0813F08E - .align 2, 0 -_0813F070: .4byte 0x02000000 -_0813F074: .4byte 0x00000888 -_0813F078: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0813F098 @ =0x02000000 - ldr r2, _0813F09C @ =0x00000888 - adds r1, r2 -_0813F08E: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _0813F0B8 - .align 2, 0 -_0813F098: .4byte 0x02000000 -_0813F09C: .4byte 0x00000888 -_0813F0A0: - ldr r0, _0813F0C0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0813F0B8 - bl sub_80FAB10 - ldr r0, _0813F0C4 @ =0x02000000 - ldr r0, [r0] - bl SetMainCallback2 -_0813F0B8: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0813F0C0: .4byte gPaletteFade -_0813F0C4: .4byte 0x02000000 - thumb_func_end sub_813EFDC - - thumb_func_start sub_813F0C8 -sub_813F0C8: @ 813F0C8 - push {lr} - movs r0, 0x11 - movs r1, 0x11 - movs r2, 0x1C - movs r3, 0x12 - bl MenuFillWindowRectWithBlankTile - ldr r1, _0813F0F0 @ =0x02000000 - ldrb r0, [r1, 0x1E] - cmp r0, 0 - beq _0813F0EA - adds r0, r1, 0 - adds r0, 0x8 - movs r1, 0x11 - movs r2, 0x11 - bl MenuPrint -_0813F0EA: - pop {r0} - bx r0 - .align 2, 0 -_0813F0F0: .4byte 0x02000000 - thumb_func_end sub_813F0C8 - - thumb_func_start unref_sub_813F0F4 -unref_sub_813F0F4: @ 813F0F4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x10] - ldr r0, _0813F2AC @ =gUnknown_0202F7C8 - ldrb r3, [r0] - ldr r0, _0813F2B0 @ =gUnknown_030042C4 - movs r1, 0 - strh r1, [r0] - ldr r0, _0813F2B4 @ =gUnknown_03004240 - strh r1, [r0] - ldr r1, _0813F2B8 @ =REG_WININ - ldr r2, _0813F2BC @ =0x00003f3f - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r4, _0813F2C0 @ =0x00003f3d - adds r0, r4, 0 - strh r0, [r1] - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r4, 0x80 - lsls r4, 8 - adds r1, r4, 0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _0813F2C4 @ =REG_BLDCNT - ldr r2, _0813F2C8 @ =0x00003f42 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r4, 0x80 - lsls r4, 5 - adds r0, r4, 0 - strh r0, [r1] - ldr r2, _0813F2CC @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldrb r1, [r2, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2, 0x1] - ldrb r0, [r2, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2, 0x1] - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - mov r9, r0 - ands r0, r1 - movs r1, 0x4 - mov r8, r1 - mov r4, r8 - orrs r0, r4 - strb r0, [r2] - ldr r0, _0813F2D0 @ =gUnknown_03004340 - adds r3, r0 - ldrb r0, [r3] - ldr r1, _0813F2D4 @ =gSprites - mov r10, r1 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - add r4, r10 - ldrb r7, [r4, 0x6] - ldrh r6, [r4, 0x38] - lsls r6, 24 - lsrs r6, 24 - ldr r0, _0813F2D8 @ =SpriteCallbackDummy - bl object_new_hidden_with_callback - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x14] - ldr r0, _0813F2D8 @ =SpriteCallbackDummy - bl object_new_hidden_with_callback - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x18] - ldrb r1, [r4, 0x5] - mov r0, r9 - ands r0, r1 - mov r2, r8 - orrs r0, r2 - strb r0, [r4, 0x5] - lsls r5, r7, 4 - adds r5, r7 - lsls r5, 2 - add r5, r10 - ldrb r1, [r5, 0x5] - mov r0, r9 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, 0x5] - lsls r1, r6, 4 - adds r1, r6 - lsls r1, 2 - add r1, r10 - ldrb r2, [r1, 0x5] - mov r0, r9 - ands r0, r2 - mov r2, r8 - orrs r0, r2 - strb r0, [r1, 0x5] - ldr r0, [sp, 0x14] - lsls r6, r0, 4 - adds r6, r0 - lsls r6, 2 - mov r1, r10 - adds r7, r6, r1 - adds r0, r7, 0 - adds r1, r4, 0 - movs r2, 0x44 - bl memcpy - ldr r2, [sp, 0x18] - lsls r4, r2, 4 - adds r4, r2 - lsls r4, 2 - adds r0, r4, 0 - add r0, r10 - mov r8, r0 - adds r1, r5, 0 - movs r2, 0x44 - bl memcpy - ldrb r1, [r7, 0x1] - mov r0, r9 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r7, 0x1] - mov r2, r8 - ldrb r0, [r2, 0x1] - mov r2, r9 - ands r2, r0 - orrs r2, r1 - mov r0, r8 - strb r2, [r0, 0x1] - movs r1, 0x1C - add r10, r1 - add r6, r10 - ldr r2, _0813F2D8 @ =SpriteCallbackDummy - str r2, [r6] - add r4, r10 - str r2, [r4] - mov r0, sp - bl sub_8078914 - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r2, _0813F2DC @ =0x040000d4 - add r0, sp, 0xC - str r0, [r2] - str r1, [r2, 0x4] - ldr r0, _0813F2E0 @ =0x85000400 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - ldr r0, _0813F2E4 @ =gUnknown_08D2EE48 - bl LZDecompressVram - ldr r0, _0813F2E8 @ =gUnknown_08D2EDFC - ldr r1, [sp] - bl LZDecompressVram - ldr r0, _0813F2EC @ =gUnknown_08D2E150 - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - ldr r1, _0813F2F0 @ =gUnknown_030042C0 - ldrh r0, [r7, 0x20] - negs r0, r0 - adds r0, 0x20 - strh r0, [r1] - ldr r1, _0813F2F4 @ =gUnknown_030041B4 - ldrh r0, [r7, 0x22] - negs r0, r0 - subs r0, 0x20 - strh r0, [r1] - ldr r1, _0813F2F8 @ =gTasks - ldr r4, [sp, 0x10] - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0xA0 - lsls r1, 2 - strh r1, [r0, 0xA] - mov r1, sp - ldrh r1, [r1, 0x14] - strh r1, [r0, 0x8] - mov r2, sp - ldrh r2, [r2, 0x18] - strh r2, [r0, 0xC] - ldr r1, _0813F2FC @ =sub_813F300 - str r1, [r0] - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813F2AC: .4byte gUnknown_0202F7C8 -_0813F2B0: .4byte gUnknown_030042C4 -_0813F2B4: .4byte gUnknown_03004240 -_0813F2B8: .4byte REG_WININ -_0813F2BC: .4byte 0x00003f3f -_0813F2C0: .4byte 0x00003f3d -_0813F2C4: .4byte REG_BLDCNT -_0813F2C8: .4byte 0x00003f42 -_0813F2CC: .4byte REG_BG1CNT -_0813F2D0: .4byte gUnknown_03004340 -_0813F2D4: .4byte gSprites -_0813F2D8: .4byte SpriteCallbackDummy -_0813F2DC: .4byte 0x040000d4 -_0813F2E0: .4byte 0x85000400 -_0813F2E4: .4byte gUnknown_08D2EE48 -_0813F2E8: .4byte gUnknown_08D2EDFC -_0813F2EC: .4byte gUnknown_08D2E150 -_0813F2F0: .4byte gUnknown_030042C0 -_0813F2F4: .4byte gUnknown_030041B4 -_0813F2F8: .4byte gTasks -_0813F2FC: .4byte sub_813F300 - thumb_func_end unref_sub_813F0F4 - - thumb_func_start sub_813F300 -sub_813F300: @ 813F300 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _0813F34C @ =gUnknown_0202F7C8 - ldrb r0, [r0] - mov r9, r0 - ldr r1, _0813F350 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r4, r0, r1 - ldrh r1, [r4, 0xA] - ldrh r0, [r4, 0x22] - adds r1, r0 - movs r3, 0 - strh r1, [r4, 0x22] - ldr r2, _0813F354 @ =gUnknown_030041B4 - lsls r0, r1, 16 - lsrs r0, 24 - ldrh r5, [r2] - adds r0, r5 - strh r0, [r2] - movs r0, 0xFF - ands r1, r0 - strh r1, [r4, 0x22] - movs r1, 0x26 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0813F394 - cmp r0, 0x1 - bgt _0813F358 - cmp r0, 0 - beq _0813F35E - b _0813F4B2 - .align 2, 0 -_0813F34C: .4byte gUnknown_0202F7C8 -_0813F350: .4byte gTasks -_0813F354: .4byte gUnknown_030041B4 -_0813F358: - cmp r0, 0x2 - beq _0813F3AC - b _0813F4B2 -_0813F35E: - ldrh r0, [r4, 0x1E] - adds r1, r0, 0x1 - strh r1, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bgt _0813F36E - b _0813F4B2 -_0813F36E: - strh r3, [r4, 0x1E] - ldrh r1, [r4, 0x20] - adds r1, 0x1 - strh r1, [r4, 0x20] - ldr r2, _0813F390 @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x8 - beq _0813F38C - b _0813F4B2 -_0813F38C: - b _0813F3A4 - .align 2, 0 -_0813F390: .4byte REG_BLDALPHA -_0813F394: - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - beq _0813F3A4 - b _0813F4B2 -_0813F3A4: - ldrh r0, [r4, 0x26] - adds r0, 0x1 - strh r0, [r4, 0x26] - b _0813F4B2 -_0813F3AC: - ldrh r0, [r4, 0x1E] - adds r1, r0, 0x1 - strh r1, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _0813F4B2 - strh r3, [r4, 0x1E] - ldrh r1, [r4, 0x20] - subs r1, 0x1 - strh r1, [r4, 0x20] - ldr r6, _0813F4C0 @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r6] - movs r3, 0x20 - ldrsh r5, [r4, r3] - cmp r5, 0 - bne _0813F4B2 - movs r0, 0 - bl sub_8076464 - ldr r0, _0813F4C4 @ =gUnknown_030042C4 - strh r5, [r0] - ldr r0, _0813F4C8 @ =gUnknown_03004240 - strh r5, [r0] - ldr r0, _0813F4CC @ =REG_WININ - ldr r2, _0813F4D0 @ =0x00003f3f - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _0813F406 - ldr r2, _0813F4D4 @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_0813F406: - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 8 - adds r1, r3, 0 - eors r0, r1 - strh r0, [r2] - ldr r0, _0813F4D8 @ =REG_BLDCNT - strh r5, [r0] - strh r5, [r6] - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0813F4DC @ =gSprites - mov r8, r1 - add r0, r8 - bl DestroySprite - movs r2, 0xC - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - bl DestroySprite - mov r0, sp - bl sub_8078914 - ldr r2, [sp, 0x4] - str r5, [sp, 0xC] - ldr r1, _0813F4E0 @ =0x040000d4 - add r0, sp, 0xC - str r0, [r1] - str r2, [r1, 0x4] - ldr r0, _0813F4E4 @ =0x85000200 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r2, _0813F4D4 @ =REG_BG1CNT - ldrb r1, [r2, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x1] - ldr r0, _0813F4E8 @ =gUnknown_03004340 - add r0, r9 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r8 - ldrb r6, [r1, 0x6] - ldrh r4, [r1, 0x38] - lsls r4, 24 - lsrs r4, 24 - ldrb r3, [r1, 0x5] - movs r2, 0xD - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - movs r5, 0x4 - orrs r0, r5 - strb r0, [r1, 0x5] - lsls r1, r6, 4 - adds r1, r6 - lsls r1, 2 - add r1, r8 - ldrb r3, [r1, 0x5] - adds r0, r2, 0 - ands r0, r3 - orrs r0, r5 - strb r0, [r1, 0x5] - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - add r0, r8 - ldrb r1, [r0, 0x5] - ands r2, r1 - orrs r2, r5 - strb r2, [r0, 0x5] - adds r0, r7, 0 - bl move_anim_task_del -_0813F4B2: - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813F4C0: .4byte REG_BLDALPHA -_0813F4C4: .4byte gUnknown_030042C4 -_0813F4C8: .4byte gUnknown_03004240 -_0813F4CC: .4byte REG_WININ -_0813F4D0: .4byte 0x00003f3f -_0813F4D4: .4byte REG_BG1CNT -_0813F4D8: .4byte REG_BLDCNT -_0813F4DC: .4byte gSprites -_0813F4E0: .4byte 0x040000d4 -_0813F4E4: .4byte 0x85000200 -_0813F4E8: .4byte gUnknown_03004340 - thumb_func_end sub_813F300 - - thumb_func_start sub_813F4EC -sub_813F4EC: @ 813F4EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - ldr r1, _0813F5D0 @ =gUnknown_03004340 - ldr r0, _0813F5D4 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - ldr r7, _0813F5D8 @ =gSprites - lsls r6, r0, 4 - adds r6, r0 - lsls r6, 2 - adds r6, r7 - ldrb r0, [r6, 0x6] - str r0, [sp, 0x4] - ldrh r4, [r6, 0x38] - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0813F5DC @ =0x0000d709 - bl AllocSpritePalette - mov r8, r0 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - ldr r0, _0813F5E0 @ =0x0000d70a - bl AllocSpritePalette - mov r9, r0 - mov r2, r9 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - ldrb r0, [r6, 0x5] - lsrs r0, 4 - lsls r0, 4 - movs r1, 0x80 - lsls r1, 1 - adds r3, r1, 0 - orrs r0, r3 - lsls r5, r4, 4 - adds r5, r4 - lsls r5, 2 - adds r5, r7 - ldrb r4, [r5, 0x5] - lsrs r4, 4 - lsls r4, 4 - orrs r4, r3 - lsls r0, 1 - ldr r2, _0813F5E4 @ =gPlttBufferUnfaded - mov r10, r2 - add r0, r10 - mov r1, r8 - lsls r1, 4 - mov r8, r1 - adds r1, r3, r1 - movs r2, 0x20 - str r3, [sp, 0x8] - bl LoadPalette - lsls r4, 1 - add r4, r10 - mov r2, r9 - lsls r2, 4 - mov r9, r2 - ldr r3, [sp, 0x8] - add r3, r9 - adds r0, r4, 0 - adds r1, r3, 0 - movs r2, 0x20 - bl LoadPalette - ldrb r1, [r6, 0x5] - movs r2, 0xF - adds r0, r2, 0 - ands r0, r1 - mov r3, r8 - orrs r0, r3 - strb r0, [r6, 0x5] - ldr r0, [sp, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - ldrb r3, [r1, 0x5] - adds r0, r2, 0 - ands r0, r3 - mov r3, r8 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r0, [r5, 0x5] - ands r2, r0 - mov r0, r9 - orrs r2, r0 - strb r2, [r5, 0x5] - ldr r0, [sp] - bl move_anim_task_del - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813F5D0: .4byte gUnknown_03004340 -_0813F5D4: .4byte gUnknown_0202F7C8 -_0813F5D8: .4byte gSprites -_0813F5DC: .4byte 0x0000d709 -_0813F5E0: .4byte 0x0000d70a -_0813F5E4: .4byte gPlttBufferUnfaded - thumb_func_end sub_813F4EC - - thumb_func_start sub_813F5E8 -sub_813F5E8: @ 813F5E8 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - mov r8, r0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r1, _0813F684 @ =gUnknown_03004340 - ldr r0, _0813F688 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - ldr r1, _0813F68C @ =gSprites - mov r9, r1 - lsls r5, r0, 4 - adds r5, r0 - lsls r5, 2 - add r5, r9 - ldrb r0, [r5, 0x6] - mov r10, r0 - ldrh r6, [r5, 0x38] - lsls r6, 24 - lsrs r6, 24 - ldr r0, _0813F690 @ =0x0000d709 - bl FreeSpritePaletteByTag - ldr r0, _0813F694 @ =0x0000d70a - bl FreeSpritePaletteByTag - ldr r0, _0813F698 @ =0x0000d6ff - bl IndexOfSpritePaletteTag - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0813F69C @ =0x0000d704 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsls r4, 4 - ldrb r2, [r5, 0x5] - movs r3, 0xF - adds r1, r3, 0 - ands r1, r2 - orrs r1, r4 - strb r1, [r5, 0x5] - mov r1, r10 - lsls r2, r1, 4 - add r2, r10 - lsls r2, 2 - add r2, r9 - ldrb r5, [r2, 0x5] - adds r1, r3, 0 - ands r1, r5 - orrs r1, r4 - strb r1, [r2, 0x5] - lsls r1, r6, 4 - adds r1, r6 - lsls r1, 2 - add r1, r9 - lsrs r0, 20 - ldrb r2, [r1, 0x5] - ands r3, r2 - orrs r3, r0 - strb r3, [r1, 0x5] - mov r0, r8 - bl move_anim_task_del - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813F684: .4byte gUnknown_03004340 -_0813F688: .4byte gUnknown_0202F7C8 -_0813F68C: .4byte gSprites -_0813F690: .4byte 0x0000d709 -_0813F694: .4byte 0x0000d70a -_0813F698: .4byte 0x0000d6ff -_0813F69C: .4byte 0x0000d704 - thumb_func_end sub_813F5E8 - - thumb_func_start sub_813F6A0 -sub_813F6A0: @ 813F6A0 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0813F6C0 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _0813F6C4 @ =gUnknown_03004B00 - ldrh r0, [r2] - strh r0, [r1, 0x1C] - ldrh r0, [r2, 0x2] - strh r0, [r1, 0x1E] - ldr r0, _0813F6C8 @ =sub_813F6CC - str r0, [r1] - bx lr - .align 2, 0 -_0813F6C0: .4byte gTasks -_0813F6C4: .4byte gUnknown_03004B00 -_0813F6C8: .4byte sub_813F6CC - thumb_func_end sub_813F6A0 - - thumb_func_start sub_813F6CC -sub_813F6CC: @ 813F6CC - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0813F718 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - movs r6, 0 - adds r1, r0, 0x1 - strh r1, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x1E - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _0813F78C - strh r6, [r4, 0x8] - ldr r0, _0813F71C @ =0x0000d709 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r2, r0, 24 - movs r3, 0x1C - ldrsh r0, [r4, r3] - movs r1, 0x2 - cmp r0, 0 - bne _0813F70A - movs r1, 0x6 -_0813F70A: - movs r3, 0xA - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _0813F720 - cmp r0, 0x1 - beq _0813F75C - b _0813F78C - .align 2, 0 -_0813F718: .4byte gTasks -_0813F71C: .4byte 0x0000d709 -_0813F720: - ldrh r0, [r4, 0xC] - adds r0, 0x2 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _0813F732 - movs r0, 0x10 - strh r0, [r4, 0xC] -_0813F732: - lsls r0, r2, 4 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2 - orrs r0, r1 - ldrb r2, [r4, 0xC] - ldr r3, _0813F758 @ =0x00007f74 - movs r1, 0x1 - bl BlendPalette - movs r3, 0xC - ldrsh r0, [r4, r3] - cmp r0, 0x10 - bne _0813F78C - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - b _0813F78C - .align 2, 0 -_0813F758: .4byte 0x00007f74 -_0813F75C: - ldrh r0, [r4, 0xC] - subs r0, 0x2 - strh r0, [r4, 0xC] - lsls r0, 16 - cmp r0, 0 - bge _0813F76A - strh r6, [r4, 0xC] -_0813F76A: - lsls r0, r2, 4 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2 - orrs r0, r1 - ldrb r2, [r4, 0xC] - ldr r3, _0813F794 @ =0x00007f74 - movs r1, 0x1 - bl BlendPalette - movs r3, 0xC - ldrsh r0, [r4, r3] - cmp r0, 0 - bne _0813F78C - adds r0, r5, 0 - bl move_anim_task_del -_0813F78C: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813F794: .4byte 0x00007f74 - thumb_func_end sub_813F6CC - - thumb_func_start sub_813F798 -sub_813F798: @ 813F798 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _0813F7C4 @ =gUnknown_02024BE0 - ldr r0, _0813F7C8 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - adds r0, r1 - ldrb r5, [r0] - ldr r1, _0813F7CC @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0813F7E6 - cmp r0, 0x1 - bgt _0813F7D0 - cmp r0, 0 - beq _0813F7D6 - b _0813F838 - .align 2, 0 -_0813F7C4: .4byte gUnknown_02024BE0 -_0813F7C8: .4byte gUnknown_0202F7C8 -_0813F7CC: .4byte gTasks -_0813F7D0: - cmp r0, 0x2 - beq _0813F818 - b _0813F838 -_0813F7D6: - adds r0, r5, 0 - movs r1, 0 - bl sub_8078E70 - movs r0, 0x80 - lsls r0, 1 - strh r0, [r4, 0x1C] - b _0813F80A -_0813F7E6: - ldrh r0, [r4, 0x1C] - adds r0, 0x30 - strh r0, [r4, 0x1C] - movs r0, 0x1C - ldrsh r2, [r4, r0] - adds r0, r5, 0 - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - adds r0, r5, 0 - bl sub_8079A64 - movs r0, 0x1C - ldrsh r1, [r4, r0] - ldr r0, _0813F814 @ =0x000002cf - cmp r1, r0 - ble _0813F838 -_0813F80A: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _0813F838 - .align 2, 0 -_0813F814: .4byte 0x000002cf -_0813F818: - adds r0, r5, 0 - bl sub_8078F40 - ldr r1, _0813F840 @ =gSprites - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - adds r0, r6, 0 - bl move_anim_task_del -_0813F838: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813F840: .4byte gSprites - thumb_func_end sub_813F798 - - thumb_func_start sub_813F844 -sub_813F844: @ 813F844 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0813F87C @ =gUnknown_02024BE0 - ldr r4, _0813F880 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - adds r1, r0, r1 - ldrb r1, [r1] - mov r9, r1 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0813F88C - ldr r1, _0813F884 @ =gUnknown_02024A6A - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0813F888 @ =gPlayerParty - b _0813F89C - .align 2, 0 -_0813F87C: .4byte gUnknown_02024BE0 -_0813F880: .4byte gUnknown_0202F7C8 -_0813F884: .4byte gUnknown_02024A6A -_0813F888: .4byte gPlayerParty -_0813F88C: - ldr r1, _0813F8CC @ =gUnknown_02024A6A - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0813F8D0 @ =gEnemyParty -_0813F89C: - adds r0, r1 - movs r1, 0x26 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl ball_number_to_ball_processing_index - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r2, _0813F8D4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r6, r0, r2 - movs r0, 0x8 - ldrsh r7, [r6, r0] - cmp r7, 0 - beq _0813F8D8 - cmp r7, 0x1 - beq _0813F958 - b _0813F982 - .align 2, 0 -_0813F8CC: .4byte gUnknown_02024A6A -_0813F8D0: .4byte gEnemyParty -_0813F8D4: .4byte gTasks -_0813F8D8: - ldr r5, _0813F950 @ =gUnknown_0202F7C8 - ldrb r0, [r5] - movs r1, 0 - bl sub_8077ABC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8077ABC - adds r1, r0, 0 - lsls r1, 24 - ldr r2, _0813F954 @ =gSprites - mov r3, r9 - lsls r0, r3, 4 - add r0, r9 - lsls r0, 2 - adds r0, r2 - ldrb r2, [r0, 0x5] - lsls r2, 28 - lsrs r2, 30 - adds r0, 0x43 - ldrb r3, [r0] - movs r0, 0x80 - lsls r0, 22 - adds r1, r0 - lsrs r1, 24 - mov r0, r8 - str r0, [sp] - adds r0, r4, 0 - bl sub_814086C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x1C] - str r7, [sp] - str r7, [sp, 0x4] - str r7, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80791A8 - adds r2, r0, 0 - ldrb r1, [r5] - movs r0, 0 - mov r3, r8 - bl sub_8141314 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x1E] - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] - b _0813F982 - .align 2, 0 -_0813F950: .4byte gUnknown_0202F7C8 -_0813F954: .4byte gSprites -_0813F958: - movs r1, 0x1C - ldrsh r0, [r6, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrb r0, [r1, 0x4] - cmp r0, 0 - bne _0813F982 - movs r3, 0x1E - ldrsh r0, [r6, r3] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrb r0, [r1, 0x4] - cmp r0, 0 - bne _0813F982 - adds r0, r5, 0 - bl move_anim_task_del -_0813F982: - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_813F844 - - thumb_func_start sub_813F990 -sub_813F990: @ 813F990 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0813F9B4 @ =gUnknown_02024C04 - ldrh r0, [r0] - bl ball_number_to_ball_processing_index - lsls r0, 24 - lsrs r0, 24 - bl sub_80478DC - adds r0, r4, 0 - bl move_anim_task_del - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813F9B4: .4byte gUnknown_02024C04 - thumb_func_end sub_813F990 - - thumb_func_start sub_813F9B8 -sub_813F9B8: @ 813F9B8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0813F9DC @ =gUnknown_02024C04 - ldrh r0, [r0] - bl ball_number_to_ball_processing_index - lsls r0, 24 - lsrs r0, 24 - bl sub_804794C - adds r0, r4, 0 - bl move_anim_task_del - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813F9DC: .4byte gUnknown_02024C04 - thumb_func_end sub_813F9B8 - - thumb_func_start sub_813F9E0 -sub_813F9E0: @ 813F9E0 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0813F9F4 @ =0x02017840 - ldrb r0, [r0, 0x8] - cmp r0, 0x5 - bne _0813FA00 - ldr r1, _0813F9F8 @ =gUnknown_03004B00 - ldr r0, _0813F9FC @ =0x0000ffff - b _0813FA04 - .align 2, 0 -_0813F9F4: .4byte 0x02017840 -_0813F9F8: .4byte gUnknown_03004B00 -_0813F9FC: .4byte 0x0000ffff -_0813FA00: - ldr r1, _0813FA10 @ =gUnknown_03004B00 - movs r0, 0 -_0813FA04: - strh r0, [r1, 0xE] - adds r0, r2, 0 - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_0813FA10: .4byte gUnknown_03004B00 - thumb_func_end sub_813F9E0 - - thumb_func_start ball_number_to_ball_processing_index -ball_number_to_ball_processing_index: @ 813FA14 - push {lr} - lsls r0, 16 - lsrs r0, 16 - subs r0, 0x1 - cmp r0, 0xB - bhi _0813FA8C - lsls r0, 2 - ldr r1, _0813FA2C @ =_0813FA30 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813FA2C: .4byte _0813FA30 - .align 2, 0 -_0813FA30: - .4byte _0813FA60 - .4byte _0813FA64 - .4byte _0813FA68 - .4byte _0813FA8C - .4byte _0813FA6C - .4byte _0813FA70 - .4byte _0813FA74 - .4byte _0813FA78 - .4byte _0813FA7C - .4byte _0813FA80 - .4byte _0813FA84 - .4byte _0813FA88 -_0813FA60: - movs r0, 0x4 - b _0813FA8E -_0813FA64: - movs r0, 0x3 - b _0813FA8E -_0813FA68: - movs r0, 0x1 - b _0813FA8E -_0813FA6C: - movs r0, 0x2 - b _0813FA8E -_0813FA70: - movs r0, 0x5 - b _0813FA8E -_0813FA74: - movs r0, 0x6 - b _0813FA8E -_0813FA78: - movs r0, 0x7 - b _0813FA8E -_0813FA7C: - movs r0, 0x8 - b _0813FA8E -_0813FA80: - movs r0, 0x9 - b _0813FA8E -_0813FA84: - movs r0, 0xA - b _0813FA8E -_0813FA88: - movs r0, 0xB - b _0813FA8E -_0813FA8C: - movs r0, 0 -_0813FA8E: - pop {r1} - bx r1 - thumb_func_end ball_number_to_ball_processing_index - - thumb_func_start sub_813FA94 -sub_813FA94: @ 813FA94 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - mov r10, r0 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r0, _0813FB58 @ =gUnknown_02024C04 - ldrh r0, [r0] - bl ball_number_to_ball_processing_index - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - ldr r1, _0813FB5C @ =gSpriteTemplate_820AAB4 - adds r0, r1 - movs r1, 0x20 - movs r2, 0x50 - movs r3, 0x1D - bl CreateSprite - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r1, _0813FB60 @ =gSprites - mov r9, r1 - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - adds r6, r4, r1 - movs r0, 0x22 - strh r0, [r6, 0x2E] - ldr r2, _0813FB64 @ =gUnknown_0202F7C9 - mov r8, r2 - ldrb r0, [r2] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x30] - mov r1, r8 - ldrb r0, [r1] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x10 - strh r0, [r6, 0x32] - mov r0, r9 - adds r0, 0x1C - adds r4, r0 - ldr r0, _0813FB68 @ =sub_813FD90 - str r0, [r4] - ldr r3, _0813FB6C @ =0x02017840 - ldr r1, _0813FB70 @ =gUnknown_02024BE0 - mov r2, r8 - ldrb r0, [r2] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - adds r0, 0x3E - ldrb r1, [r0] - lsls r1, 29 - lsrs r1, 31 - lsls r1, 1 - ldrb r2, [r3, 0x9] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x9] - ldr r1, _0813FB74 @ =gTasks - mov r2, r10 - lsls r0, r2, 2 - add r0, r10 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x8] - ldr r1, _0813FB78 @ =sub_813FB7C - str r1, [r0] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813FB58: .4byte gUnknown_02024C04 -_0813FB5C: .4byte gSpriteTemplate_820AAB4 -_0813FB60: .4byte gSprites -_0813FB64: .4byte gUnknown_0202F7C9 -_0813FB68: .4byte sub_813FD90 -_0813FB6C: .4byte 0x02017840 -_0813FB70: .4byte gUnknown_02024BE0 -_0813FB74: .4byte gTasks -_0813FB78: .4byte sub_813FB7C - thumb_func_end sub_813FA94 - - thumb_func_start sub_813FB7C -sub_813FB7C: @ 813FB7C - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, _0813FBAC @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0x8] - ldr r2, _0813FBB0 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x2E] - ldr r0, _0813FBB4 @ =0x0000ffff - cmp r1, r0 - bne _0813FBA6 - adds r0, r3, 0 - bl move_anim_task_del -_0813FBA6: - pop {r0} - bx r0 - .align 2, 0 -_0813FBAC: .4byte gTasks -_0813FBB0: .4byte gSprites -_0813FBB4: .4byte 0x0000ffff - thumb_func_end sub_813FB7C - - thumb_func_start sub_813FBB8 -sub_813FBB8: @ 813FBB8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _0813FBD8 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _0813FBDC - movs r6, 0x20 - movs r5, 0xB - b _0813FBE0 - .align 2, 0 -_0813FBD8: .4byte gUnknown_020239F8 -_0813FBDC: - movs r6, 0x17 - movs r5, 0x5 -_0813FBE0: - ldr r0, _0813FC9C @ =gUnknown_02024C04 - ldrh r0, [r0] - bl ball_number_to_ball_processing_index - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - bl sub_8079E90 - adds r3, r0, 0 - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - ldr r1, _0813FCA0 @ =gSpriteTemplate_820AAB4 - adds r0, r1 - adds r1, r6, 0 - adds r1, 0x20 - movs r2, 0x50 - orrs r5, r2 - adds r2, r5, 0 - bl CreateSprite - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _0813FCA4 @ =gSprites - mov r9, r0 - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - adds r6, r4, r0 - movs r0, 0x22 - strh r0, [r6, 0x2E] - ldr r1, _0813FCA8 @ =gUnknown_0202F7C9 - mov r8, r1 - ldrb r0, [r1] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x30] - mov r1, r8 - ldrb r0, [r1] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x10 - strh r0, [r6, 0x32] - mov r0, r9 - adds r0, 0x1C - adds r4, r0 - ldr r0, _0813FCAC @ =SpriteCallbackDummy - str r0, [r4] - movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, _0813FCB0 @ =gUnknown_02024BE0 - lsls r0, 24 - lsrs r0, 24 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - movs r1, 0x1 - bl StartSpriteAnim - ldr r1, _0813FCB4 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x8] - ldr r1, _0813FCB8 @ =sub_813FCBC - str r1, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813FC9C: .4byte gUnknown_02024C04 -_0813FCA0: .4byte gSpriteTemplate_820AAB4 -_0813FCA4: .4byte gSprites -_0813FCA8: .4byte gUnknown_0202F7C9 -_0813FCAC: .4byte SpriteCallbackDummy -_0813FCB0: .4byte gUnknown_02024BE0 -_0813FCB4: .4byte gTasks -_0813FCB8: .4byte sub_813FCBC - thumb_func_end sub_813FBB8 - - thumb_func_start sub_813FCBC -sub_813FCBC: @ 813FCBC - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r6, _0813FD1C @ =gSprites - movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, _0813FD20 @ =gUnknown_02024BE0 - lsls r0, 24 - lsrs r0, 24 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0x1 - bne _0813FD16 - movs r0, 0x3D - movs r1, 0 - bl PlaySE12WithPanning - ldr r0, _0813FD24 @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r6, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _0813FD28 @ =sub_813FD90 - str r1, [r0] - ldr r0, _0813FD2C @ =sub_813FD34 - movs r1, 0xA - bl CreateTask - ldr r0, _0813FD30 @ =sub_813FB7C - str r0, [r4] -_0813FD16: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813FD1C: .4byte gSprites -_0813FD20: .4byte gUnknown_02024BE0 -_0813FD24: .4byte gTasks -_0813FD28: .4byte sub_813FD90 -_0813FD2C: .4byte sub_813FD34 -_0813FD30: .4byte sub_813FB7C - thumb_func_end sub_813FCBC - - thumb_func_start sub_813FD34 -sub_813FD34: @ 813FD34 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r6, _0813FD88 @ =gSprites - movs r0, 0 - bl battle_get_side_with_given_state - ldr r4, _0813FD8C @ =gUnknown_02024BE0 - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 27 - cmp r0, 0 - bge _0813FD80 - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0 - bl StartSpriteAnim - adds r0, r5, 0 - bl DestroyTask -_0813FD80: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813FD88: .4byte gSprites -_0813FD8C: .4byte gUnknown_02024BE0 - thumb_func_end sub_813FD34 - - thumb_func_start sub_813FD90 -sub_813FD90: @ 813FD90 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - ldrh r2, [r4, 0x32] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - strh r1, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - strh r2, [r4, 0x36] - ldr r0, _0813FDB8 @ =0x0000ffd8 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_80786EC - ldr r0, _0813FDBC @ =sub_813FDC0 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813FDB8: .4byte 0x0000ffd8 -_0813FDBC: .4byte sub_813FDC0 - thumb_func_end sub_813FD90 - - thumb_func_start sub_813FDC0 -sub_813FDC0: @ 813FDC0 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _0813FE5A - ldr r0, _0813FDE0 @ =0x02017840 - ldrb r0, [r0, 0x8] - cmp r0, 0x5 - bne _0813FDE8 - ldr r0, _0813FDE4 @ =sub_81407B8 - str r0, [r4, 0x1C] - b _0813FE5A - .align 2, 0 -_0813FDE0: .4byte 0x02017840 -_0813FDE4: .4byte sub_81407B8 -_0813FDE8: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - strh r1, [r4, 0x24] - strh r1, [r4, 0x26] - adds r1, r4, 0 - adds r1, 0x2E - movs r2, 0 - adds r0, r4, 0 - adds r0, 0x3C -_0813FE10: - strh r2, [r0] - subs r0, 0x2 - cmp r0, r1 - bge _0813FE10 - movs r0, 0 - strh r0, [r4, 0x38] - ldr r0, _0813FE64 @ =sub_813FE70 - str r0, [r4, 0x1C] - ldr r0, _0813FE68 @ =gUnknown_02024C04 - ldrh r0, [r0] - bl ball_number_to_ball_processing_index - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xB - bgt _0813FE5A - cmp r5, 0 - blt _0813FE5A - ldrh r0, [r4, 0x20] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x22] - subs r1, 0x5 - lsls r1, 24 - lsrs r1, 24 - str r5, [sp] - movs r2, 0x1 - movs r3, 0x1C - bl sub_814086C - ldr r0, _0813FE6C @ =gUnknown_0202F7C9 - ldrb r1, [r0] - movs r0, 0 - movs r2, 0xE - adds r3, r5, 0 - bl sub_8141314 -_0813FE5A: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813FE64: .4byte sub_813FE70 -_0813FE68: .4byte gUnknown_02024C04 -_0813FE6C: .4byte gUnknown_0202F7C9 - thumb_func_end sub_813FDC0 - - thumb_func_start sub_813FE70 -sub_813FE70: @ 813FE70 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _0813FEAC - ldr r0, _0813FEB4 @ =TaskDummy - movs r1, 0x32 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x38] - ldr r0, _0813FEB8 @ =sub_813FEC8 - str r0, [r4, 0x1C] - ldr r2, _0813FEBC @ =gSprites - ldr r1, _0813FEC0 @ =gUnknown_02024BE0 - ldr r0, _0813FEC4 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0x30] -_0813FEAC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813FEB4: .4byte TaskDummy -_0813FEB8: .4byte sub_813FEC8 -_0813FEBC: .4byte gSprites -_0813FEC0: .4byte gUnknown_02024BE0 -_0813FEC4: .4byte gUnknown_0202F7C9 - thumb_func_end sub_813FE70 - - thumb_func_start sub_813FEC8 -sub_813FEC8: @ 813FEC8 - push {r4-r7,lr} - adds r7, r0, 0 - ldr r1, _0813FF0C @ =gUnknown_02024BE0 - ldr r0, _0813FF10 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - adds r0, r1 - ldrb r4, [r0] - ldrh r0, [r7, 0x38] - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _0813FF14 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - bne _0813FEFA - movs r0, 0x3C - bl PlaySE -_0813FEFA: - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _0813FF70 - cmp r0, 0x1 - bgt _0813FF18 - cmp r0, 0 - beq _0813FF1E - b _0813FFDC - .align 2, 0 -_0813FF0C: .4byte gUnknown_02024BE0 -_0813FF10: .4byte gUnknown_0202F7C9 -_0813FF14: .4byte gTasks -_0813FF18: - cmp r0, 0x2 - beq _0813FFB4 - b _0813FFDC -_0813FF1E: - adds r0, r4, 0 - movs r1, 0 - bl sub_8078E70 - movs r0, 0x80 - lsls r0, 1 - strh r0, [r5, 0x1C] - ldr r1, _0813FF60 @ =gUnknown_03005F0C - movs r0, 0x1C - str r0, [r1] - ldr r2, _0813FF64 @ =gUnknown_03005F14 - ldr r1, _0813FF68 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r1, r0 - ldrh r0, [r7, 0x26] - ldrh r7, [r7, 0x22] - adds r0, r7 - subs r1, r0 - strh r1, [r2] - ldr r4, _0813FF6C @ =gUnknown_03005F10 - ldrh r0, [r2] - lsls r0, 8 - movs r1, 0x1C - bl __udivsi3 - strh r0, [r4] - strh r0, [r5, 0xC] - b _0813FFCE - .align 2, 0 -_0813FF60: .4byte gUnknown_03005F0C -_0813FF64: .4byte gUnknown_03005F14 -_0813FF68: .4byte gSprites -_0813FF6C: .4byte gUnknown_03005F10 -_0813FF70: - ldrh r0, [r5, 0x1C] - adds r0, 0x20 - strh r0, [r5, 0x1C] - movs r0, 0x1C - ldrsh r2, [r5, r0] - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrh r0, [r5, 0xC] - ldrh r1, [r5, 0xE] - adds r0, r1 - strh r0, [r5, 0xE] - ldr r0, _0813FFAC @ =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - movs r2, 0xE - ldrsh r0, [r5, r2] - negs r0, r0 - asrs r0, 8 - strh r0, [r1, 0x26] - movs r0, 0x1C - ldrsh r1, [r5, r0] - ldr r0, _0813FFB0 @ =0x0000047f - cmp r1, r0 - ble _08140004 - b _0813FFCE - .align 2, 0 -_0813FFAC: .4byte gSprites -_0813FFB0: .4byte 0x0000047f -_0813FFB4: - adds r0, r4, 0 - bl sub_8078F40 - ldr r1, _0813FFD8 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_0813FFCE: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _08140004 - .align 2, 0 -_0813FFD8: .4byte gSprites -_0813FFDC: - ldr r0, _0814000C @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - movs r2, 0xA - ldrsh r0, [r1, r2] - cmp r0, 0xA - ble _08140004 - adds r0, r6, 0 - bl DestroyTask - adds r0, r7, 0 - movs r1, 0x2 - bl StartSpriteAnim - movs r0, 0 - strh r0, [r7, 0x38] - ldr r0, _08140010 @ =sub_8140014 - str r0, [r7, 0x1C] -_08140004: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814000C: .4byte gTasks -_08140010: .4byte sub_8140014 - thumb_func_end sub_813FEC8 - - thumb_func_start sub_8140014 -sub_8140014: @ 8140014 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0814004E - movs r1, 0 - strh r1, [r4, 0x34] - movs r0, 0x20 - strh r0, [r4, 0x36] - strh r1, [r4, 0x38] - movs r0, 0 - movs r1, 0x20 - bl Cos - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - movs r0, 0x36 - ldrsh r1, [r4, r0] - movs r0, 0 - bl Cos - negs r0, r0 - strh r0, [r4, 0x26] - ldr r0, _08140054 @ =sub_8140058 - str r0, [r4, 0x1C] -_0814004E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08140054: .4byte sub_8140058 - thumb_func_end sub_8140014 - - thumb_func_start sub_8140058 -sub_8140058: @ 8140058 - push {r4,r5,lr} - adds r4, r0, 0 - movs r5, 0 - ldrh r0, [r4, 0x34] - movs r1, 0xFF - ands r1, r0 - cmp r1, 0 - beq _0814006E - cmp r1, 0x1 - beq _081400E2 - b _0814010E -_0814006E: - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl Cos - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r1, [r4, 0x38] - adds r1, 0x4 - ldrh r2, [r4, 0x34] - lsls r0, r2, 16 - asrs r0, 24 - adds r1, r0 - strh r1, [r4, 0x38] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x3F - ble _0814010E - ldrh r0, [r4, 0x36] - subs r0, 0xA - strh r0, [r4, 0x36] - ldr r1, _081400B8 @ =0x00000101 - adds r0, r2, r1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 24 - cmp r0, 0x4 - bne _081400AA - movs r5, 0x1 -_081400AA: - cmp r0, 0x2 - beq _081400CA - cmp r0, 0x2 - bgt _081400BC - cmp r0, 0x1 - beq _081400C2 - b _081400DA - .align 2, 0 -_081400B8: .4byte 0x00000101 -_081400BC: - cmp r0, 0x3 - beq _081400D2 - b _081400DA -_081400C2: - movs r0, 0x38 - bl PlaySE - b _0814010E -_081400CA: - movs r0, 0x39 - bl PlaySE - b _0814010E -_081400D2: - movs r0, 0x3A - bl PlaySE - b _0814010E -_081400DA: - movs r0, 0x3B - bl PlaySE - b _0814010E -_081400E2: - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl Cos - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r1, [r4, 0x38] - subs r1, 0x4 - ldrh r2, [r4, 0x34] - lsls r0, r2, 16 - asrs r0, 24 - subs r1, r0 - strh r1, [r4, 0x38] - lsls r1, 16 - cmp r1, 0 - bgt _0814010E - strh r5, [r4, 0x38] - ldr r0, _08140138 @ =0xffffff00 - ands r0, r2 - strh r0, [r4, 0x34] -_0814010E: - cmp r5, 0 - beq _0814014E - movs r5, 0 - strh r5, [r4, 0x34] - movs r0, 0x40 - movs r1, 0x20 - bl Cos - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - strh r5, [r4, 0x26] - ldr r0, _0814013C @ =0x02017840 - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08140144 - strh r5, [r4, 0x38] - ldr r0, _08140140 @ =sub_8140410 - str r0, [r4, 0x1C] - b _0814014E - .align 2, 0 -_08140138: .4byte 0xffffff00 -_0814013C: .4byte 0x02017840 -_08140140: .4byte sub_8140410 -_08140144: - ldr r0, _08140154 @ =sub_8140158 - str r0, [r4, 0x1C] - movs r0, 0x1 - strh r0, [r4, 0x36] - strh r5, [r4, 0x38] -_0814014E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08140154: .4byte sub_8140158 - thumb_func_end sub_8140058 - - thumb_func_start sub_8140158 -sub_8140158: @ 8140158 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x34] - adds r0, 0x1 - movs r5, 0 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _08140190 - strh r5, [r4, 0x34] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r0, _08140198 @ =0x02017840 - strh r5, [r0, 0xC] - ldr r0, _0814019C @ =sub_81401A0 - str r0, [r4, 0x1C] - movs r0, 0x17 - bl PlaySE -_08140190: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08140198: .4byte 0x02017840 -_0814019C: .4byte sub_81401A0 - thumb_func_end sub_8140158 - - thumb_func_start sub_81401A0 -sub_81401A0: @ 81401A0 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x34] - movs r1, 0xFF - ands r1, r0 - cmp r1, 0x6 - bls _081401B0 - b _081403C4 -_081401B0: - lsls r0, r1, 2 - ldr r1, _081401BC @ =_081401C0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081401BC: .4byte _081401C0 - .align 2, 0 -_081401C0: - .4byte _081401DC - .4byte _08140226 - .4byte _0814026C - .4byte _081402C0 - .4byte _08140310 - .4byte _08140368 - .4byte _081403C4 -_081401DC: - ldr r0, _081401F8 @ =0x02017840 - ldrh r2, [r0, 0xC] - movs r3, 0xC - ldrsh r1, [r0, r3] - adds r5, r0, 0 - cmp r1, 0xFF - ble _081401FC - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r0, 0xFF - ands r0, r2 - b _08140200 - .align 2, 0 -_081401F8: .4byte 0x02017840 -_081401FC: - adds r0, r2, 0 - adds r0, 0xB0 -_08140200: - strh r0, [r5, 0xC] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - movs r3, 0 - strh r0, [r4, 0x38] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x38] - adds r0, 0x7 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xE - bhi _08140224 - b _0814040A -_08140224: - b _081402B4 -_08140226: - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _081402CC - movs r0, 0 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x36] - negs r0, r0 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - movs r3, 0x36 - ldrsh r0, [r4, r3] - cmp r0, 0 - bge _08140262 - adds r0, r4, 0 - movs r1, 0x2 - bl ChangeSpriteAffineAnim - b _0814040A -_08140262: - adds r0, r4, 0 - movs r1, 0x1 - bl ChangeSpriteAffineAnim - b _0814040A -_0814026C: - ldr r0, _08140288 @ =0x02017840 - ldrh r2, [r0, 0xC] - movs r3, 0xC - ldrsh r1, [r0, r3] - adds r5, r0, 0 - cmp r1, 0xFF - ble _0814028C - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r0, 0xFF - ands r0, r2 - b _08140290 - .align 2, 0 -_08140288: .4byte 0x02017840 -_0814028C: - adds r0, r2, 0 - adds r0, 0xB0 -_08140290: - strh r0, [r5, 0xC] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - movs r3, 0 - strh r0, [r4, 0x38] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x38] - adds r0, 0xC - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x18 - bhi _081402B4 - b _0814040A -_081402B4: - strh r3, [r5, 0xC] - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - strh r3, [r4, 0x38] - b _0814040A -_081402C0: - ldrh r0, [r4, 0x38] - adds r1, r0, 0x1 - strh r1, [r4, 0x38] - lsls r0, 16 - cmp r0, 0 - bge _081402DA -_081402CC: - adds r0, r4, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - b _0814040A -_081402DA: - movs r0, 0 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x36] - negs r0, r0 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - movs r3, 0x36 - ldrsh r0, [r4, r3] - cmp r0, 0 - bge _08140308 - adds r0, r4, 0 - movs r1, 0x2 - bl ChangeSpriteAffineAnim - b _08140310 -_08140308: - adds r0, r4, 0 - movs r1, 0x1 - bl ChangeSpriteAffineAnim -_08140310: - ldr r0, _0814032C @ =0x02017840 - ldrh r2, [r0, 0xC] - movs r3, 0xC - ldrsh r1, [r0, r3] - adds r5, r0, 0 - cmp r1, 0xFF - ble _08140330 - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r0, 0xFF - ands r0, r2 - b _08140334 - .align 2, 0 -_0814032C: .4byte 0x02017840 -_08140330: - adds r0, r2, 0 - adds r0, 0xB0 -_08140334: - strh r0, [r5, 0xC] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - movs r3, 0 - strh r0, [r4, 0x38] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x38] - adds r0, 0x4 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x8 - bls _0814040A - strh r3, [r5, 0xC] - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - strh r3, [r4, 0x38] - ldrh r0, [r4, 0x36] - negs r0, r0 - strh r0, [r4, 0x36] - b _0814040A -_08140368: - movs r3, 0x80 - lsls r3, 1 - adds r0, r3, 0 - ldrh r1, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r1, r0, 24 - ldr r0, _08140394 @ =0x02017840 - ldrb r0, [r0, 0x8] - cmp r1, r0 - bne _0814039C - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08140398 @ =sub_8140410 - str r0, [r4, 0x1C] - b _0814040A - .align 2, 0 -_08140394: .4byte 0x02017840 -_08140398: .4byte sub_8140410 -_0814039C: - cmp r0, 0x4 - bne _081403B0 - cmp r1, 0x3 - bne _081403B0 - ldr r0, _081403AC @ =sub_8140434 - str r0, [r4, 0x1C] - b _081403B6 - .align 2, 0 -_081403AC: .4byte sub_8140434 -_081403B0: - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] -_081403B6: - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - b _0814040A -_081403C4: - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _0814040A - movs r0, 0 - strh r0, [r4, 0x38] - ldrh r1, [r4, 0x34] - ldr r0, _081403F8 @ =0xffffff00 - ands r0, r1 - strh r0, [r4, 0x34] - adds r0, r4, 0 - movs r1, 0x3 - bl StartSpriteAffineAnim - movs r3, 0x36 - ldrsh r0, [r4, r3] - cmp r0, 0 - bge _081403FC - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - b _08140404 - .align 2, 0 -_081403F8: .4byte 0xffffff00 -_081403FC: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_08140404: - movs r0, 0x17 - bl PlaySE -_0814040A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81401A0 - - thumb_func_start sub_8140410 -sub_8140410: @ 8140410 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x38] - adds r0, 0x1 - strh r0, [r1, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _0814042A - movs r0, 0 - strh r0, [r1, 0x38] - ldr r0, _08140430 @ =sub_81405F4 - str r0, [r1, 0x1C] -_0814042A: - pop {r0} - bx r0 - .align 2, 0 -_08140430: .4byte sub_81405F4 - thumb_func_end sub_8140410 - - thumb_func_start sub_8140434 -sub_8140434: @ 8140434 - adds r3, r0, 0 - adds r3, 0x2C - ldrb r1, [r3] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r3] - ldr r1, _08140450 @ =sub_8140454 - str r1, [r0, 0x1C] - movs r1, 0 - strh r1, [r0, 0x34] - strh r1, [r0, 0x36] - strh r1, [r0, 0x38] - bx lr - .align 2, 0 -_08140450: .4byte sub_8140454 - thumb_func_end sub_8140434 - - thumb_func_start sub_8140454 -sub_8140454: @ 8140454 - push {r4-r7,lr} - adds r6, r0, 0 - ldr r7, _08140484 @ =gUnknown_0202F7C9 - ldrh r0, [r6, 0x36] - adds r0, 0x1 - strh r0, [r6, 0x36] - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0x28 - beq _081404CC - cmp r1, 0x5F - bne _08140490 - ldr r0, _08140488 @ =gUnknown_02024E6D - movs r1, 0 - strb r1, [r0] - movs r0, 0x1 - bl sub_8043EB4 - bl m4aMPlayAllStop - ldr r0, _0814048C @ =0x00000173 - bl PlaySE - b _081404CC - .align 2, 0 -_08140484: .4byte gUnknown_0202F7C9 -_08140488: .4byte gUnknown_02024E6D -_0814048C: .4byte 0x00000173 -_08140490: - ldr r0, _081404D4 @ =0x0000013b - cmp r1, r0 - bne _081404CC - ldr r5, _081404D8 @ =gSprites - ldr r4, _081404DC @ =gUnknown_02024BE0 - ldrb r0, [r7] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r0, [r7] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite - movs r0, 0 - strh r0, [r6, 0x2E] - ldr r0, _081404E0 @ =sub_81404E4 - str r0, [r6, 0x1C] -_081404CC: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081404D4: .4byte 0x0000013b -_081404D8: .4byte gSprites -_081404DC: .4byte gUnknown_02024BE0 -_081404E0: .4byte sub_81404E4 - thumb_func_end sub_8140454 - - thumb_func_start sub_81404E4 -sub_81404E4: @ 81404E4 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08140550 - cmp r0, 0x1 - bgt _081404FC - cmp r0, 0 - beq _08140502 - b _08140594 -_081404FC: - cmp r0, 0x2 - beq _08140580 - b _08140594 -_08140502: - strh r0, [r4, 0x30] - strh r0, [r4, 0x32] - ldrb r1, [r4, 0x1] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4, 0x1] - ldr r1, _08140548 @ =REG_BLDCNT - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x10 - strh r0, [r1] - ldr r0, [r4, 0x14] - ldrh r0, [r0, 0x2] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - movs r1, 0x1 - lsls r1, r0 - ldr r0, _0814054C @ =0x00007fff - str r0, [sp] - adds r0, r1, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _0814058C - .align 2, 0 -_08140548: .4byte REG_BLDCNT -_0814054C: .4byte 0x00007fff -_08140550: - ldrh r0, [r4, 0x30] - adds r1, r0, 0x1 - strh r1, [r4, 0x30] - lsls r0, 16 - cmp r0, 0 - ble _081405B2 - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r1, [r4, 0x32] - adds r1, 0x1 - strh r1, [r4, 0x32] - ldr r3, _0814057C @ =REG_BLDALPHA - lsls r2, r1, 8 - movs r0, 0x10 - subs r0, r1 - orrs r2, r0 - strh r2, [r3] - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x10 - bne _081405B2 - b _0814058C - .align 2, 0 -_0814057C: .4byte REG_BLDALPHA -_08140580: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_0814058C: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _081405B2 -_08140594: - ldr r0, _081405BC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _081405B2 - ldr r0, _081405C0 @ =REG_BLDCNT - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - strh r1, [r4, 0x2E] - ldr r0, _081405C4 @ =sub_81405C8 - str r0, [r4, 0x1C] -_081405B2: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081405BC: .4byte gPaletteFade -_081405C0: .4byte REG_BLDCNT -_081405C4: .4byte sub_81405C8 - thumb_func_end sub_81404E4 - - thumb_func_start sub_81405C8 -sub_81405C8: @ 81405C8 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _081405E0 - ldr r0, _081405DC @ =0x0000ffff - strh r0, [r4, 0x2E] - b _081405EC - .align 2, 0 -_081405DC: .4byte 0x0000ffff -_081405E0: - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite -_081405EC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81405C8 - - thumb_func_start sub_81405F4 -sub_81405F4: @ 81405F4 - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r1, 0x1 - bl StartSpriteAnim - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAffineAnim - ldr r0, _081406A8 @ =sub_81406BC - str r0, [r4, 0x1C] - ldr r0, _081406AC @ =gUnknown_02024C04 - ldrh r0, [r0] - bl ball_number_to_ball_processing_index - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xB - bgt _08140646 - cmp r5, 0 - blt _08140646 - ldrh r0, [r4, 0x20] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x22] - subs r1, 0x5 - lsls r1, 24 - lsrs r1, 24 - str r5, [sp] - movs r2, 0x1 - movs r3, 0x1C - bl sub_814086C - ldr r0, _081406B0 @ =gUnknown_0202F7C9 - ldrb r1, [r0] - movs r0, 0x1 - movs r2, 0xE - adds r3, r5, 0 - bl sub_8141314 -_08140646: - ldr r6, _081406B4 @ =gSprites - ldr r5, _081406B8 @ =gUnknown_02024BE0 - ldr r4, _081406B0 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl AnimateSprite - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x80 - lsls r1, 5 - strh r1, [r0, 0x30] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081406A8: .4byte sub_81406BC -_081406AC: .4byte gUnknown_02024C04 -_081406B0: .4byte gUnknown_0202F7C9 -_081406B4: .4byte gSprites -_081406B8: .4byte gUnknown_02024BE0 - thumb_func_end sub_81405F4 - - thumb_func_start sub_81406BC -sub_81406BC: @ 81406BC - push {r4-r7,lr} - adds r7, r0, 0 - movs r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _081406DA - adds r2, r7, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_081406DA: - ldr r4, _08140708 @ =gSprites - ldr r3, _0814070C @ =gUnknown_02024BE0 - ldr r2, _08140710 @ =gUnknown_0202F7C9 - ldrb r0, [r2] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r4 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _08140714 - adds r0, r1, 0 - movs r1, 0 - bl StartSpriteAffineAnim - movs r5, 0x1 - b _08140734 - .align 2, 0 -_08140708: .4byte gSprites -_0814070C: .4byte gUnknown_02024BE0 -_08140710: .4byte gUnknown_0202F7C9 -_08140714: - ldr r6, _0814079C @ =0xfffffee0 - adds r0, r6, 0 - ldrh r6, [r1, 0x30] - adds r0, r6 - strh r0, [r1, 0x30] - ldrb r0, [r2] - adds r0, r3 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 24 - strh r0, [r1, 0x26] -_08140734: - adds r0, r7, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08140796 - cmp r5, 0 - beq _08140796 - ldr r4, _081407A0 @ =gSprites - ldr r3, _081407A4 @ =gUnknown_02024BE0 - ldr r2, _081407A8 @ =gUnknown_0202F7C9 - ldrb r0, [r2] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r6, 0 - movs r5, 0 - strh r5, [r0, 0x26] - ldrb r0, [r2] - adds r0, r3 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - ldr r0, _081407AC @ =0x02017840 - ldrb r1, [r0, 0x9] - lsls r1, 30 - adds r2, 0x3E - lsrs r1, 31 - lsls r1, 2 - ldrb r3, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - strh r5, [r7, 0x2E] - ldr r0, _081407B0 @ =sub_81405C8 - str r0, [r7, 0x1C] - ldr r0, _081407B4 @ =gUnknown_02024E6D - strb r6, [r0] - movs r0, 0x1 - bl sub_8043EB4 -_08140796: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814079C: .4byte 0xfffffee0 -_081407A0: .4byte gSprites -_081407A4: .4byte gUnknown_02024BE0 -_081407A8: .4byte gUnknown_0202F7C9 -_081407AC: .4byte 0x02017840 -_081407B0: .4byte sub_81405C8 -_081407B4: .4byte gUnknown_02024E6D - thumb_func_end sub_81406BC - - thumb_func_start sub_81407B8 -sub_81407B8: @ 81407B8 - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x24] - ldrh r1, [r2, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r2, 0x20] - ldrh r0, [r2, 0x26] - ldrh r3, [r2, 0x22] - adds r0, r3 - strh r0, [r2, 0x22] - strh r1, [r2, 0x26] - strh r1, [r2, 0x24] - ldr r4, _081407F0 @ =sub_81407F4 - movs r3, 0 - movs r1, 0x5 - adds r0, r2, 0 - adds r0, 0x38 -_081407DC: - strh r3, [r0] - subs r0, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _081407DC - str r4, [r2, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081407F0: .4byte sub_81407F4 - thumb_func_end sub_81407B8 - - thumb_func_start sub_81407F4 -sub_81407F4: @ 81407F4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x80 - lsls r0, 4 - adds r2, r0, 0 - ldrh r1, [r4, 0x2E] - adds r2, r1 - movs r0, 0xD0 - lsls r0, 3 - adds r3, r0, 0 - ldrh r1, [r4, 0x30] - adds r3, r1 - lsls r1, r3, 16 - asrs r1, 24 - ldrh r0, [r4, 0x24] - subs r0, r1 - strh r0, [r4, 0x24] - lsls r0, r2, 16 - asrs r0, 24 - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - movs r0, 0xFF - ands r2, r0 - strh r2, [r4, 0x2E] - ands r3, r0 - strh r3, [r4, 0x30] - movs r2, 0x22 - ldrsh r0, [r4, r2] - movs r2, 0x26 - ldrsh r1, [r4, r2] - adds r0, r1 - cmp r0, 0xA0 - bgt _0814084A - movs r1, 0x20 - ldrsh r0, [r4, r1] - movs r2, 0x24 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0x8 - negs r1, r1 - cmp r0, r1 - bge _0814085E -_0814084A: - movs r0, 0 - strh r0, [r4, 0x2E] - ldr r0, _08140864 @ =sub_81405C8 - str r0, [r4, 0x1C] - ldr r1, _08140868 @ =gUnknown_02024E6D - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - bl sub_8043EB4 -_0814085E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08140864: .4byte sub_81405C8 -_08140868: .4byte gUnknown_02024E6D - thumb_func_end sub_81407F4 - - thumb_func_start sub_814086C -sub_814086C: @ 814086C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, [sp, 0x20] - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - lsls r3, 24 - lsrs r7, r3, 24 - lsls r4, 24 - lsrs r4, 24 - adds r5, r4, 0 - ldr r0, _08140910 @ =gUnknown_0840B258 - lsls r6, r5, 3 - adds r4, r6, r0 - ldrh r0, [r4, 0x6] - bl GetSpriteTileStartByTag - lsls r0, 16 - ldr r1, _08140914 @ =0xffff0000 - cmp r0, r1 - bne _081408B6 - adds r0, r4, 0 - bl LoadCompressedObjectPic - ldr r0, _08140918 @ =gUnknown_0840B2B8 - adds r0, r6, r0 - bl LoadCompressedObjectPalette -_081408B6: - ldr r1, _0814091C @ =gUnknown_0840B384 - lsls r0, r5, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _08140920 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - mov r1, r10 - strh r1, [r0, 0xA] - mov r1, r9 - strh r1, [r0, 0xC] - mov r1, r8 - strh r1, [r0, 0xE] - strh r7, [r0, 0x10] - strh r5, [r0, 0x26] - movs r0, 0xF - bl PlaySE - ldr r0, _08140924 @ =gMain - ldr r1, _08140928 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08140900 - ldr r1, _0814092C @ =0x02017840 - ldrb r0, [r1, 0xA] - adds r0, 0x1 - strb r0, [r1, 0xA] -_08140900: - adds r0, r4, 0 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08140910: .4byte gUnknown_0840B258 -_08140914: .4byte 0xffff0000 -_08140918: .4byte gUnknown_0840B2B8 -_0814091C: .4byte gUnknown_0840B384 -_08140920: .4byte gTasks -_08140924: .4byte gMain -_08140928: .4byte 0x0000043d -_0814092C: .4byte 0x02017840 - thumb_func_end sub_814086C - - thumb_func_start sub_8140930 -sub_8140930: @ 8140930 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r1, _081409D0 @ =gTasks - lsls r0, 2 - add r0, r9 - lsls r0, 3 - adds r7, r0, r1 - ldrh r0, [r7, 0x26] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r1, 0x8 - ldrsh r0, [r7, r1] - cmp r0, 0xF - bgt _081409E4 - ldrb r1, [r7, 0xA] - ldrb r2, [r7, 0xC] - ldrb r6, [r7, 0xE] - ldrb r3, [r7, 0x10] - mov r4, r8 - lsls r0, r4, 1 - add r0, r8 - lsls r0, 3 - ldr r4, _081409D4 @ =gSpriteTemplate_840B3B4 - adds r0, r4 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r5, _081409D8 @ =gSprites - adds r2, r4, r5 - ldr r0, _081409DC @ =gUnknown_0840B378 - add r0, r8 - ldrb r1, [r0] - adds r0, r2, 0 - str r2, [sp] - bl StartSpriteAnim - adds r5, 0x1C - adds r4, r5 - ldr r0, _081409E0 @ =sub_8140A08 - str r0, [r4] - movs r0, 0x3 - ands r6, r0 - lsls r6, 2 - ldr r2, [sp] - ldrb r1, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - orrs r0, r6 - strb r0, [r2, 0x5] - ldrb r0, [r7, 0x8] - cmp r0, 0x7 - bls _081409B6 - subs r0, 0x8 - lsls r0, 24 - lsrs r0, 24 -_081409B6: - lsls r0, 5 - strh r0, [r2, 0x2E] - movs r1, 0x8 - ldrsh r0, [r7, r1] - cmp r0, 0xF - bne _081409E4 - movs r0, 0x1 - strh r0, [r2, 0x3C] - mov r0, r9 - bl DestroyTask - b _081409F6 - .align 2, 0 -_081409D0: .4byte gTasks -_081409D4: .4byte gSpriteTemplate_840B3B4 -_081409D8: .4byte gSprites -_081409DC: .4byte gUnknown_0840B378 -_081409E0: .4byte sub_8140A08 -_081409E4: - ldr r0, _08140A04 @ =gTasks - mov r2, r9 - lsls r1, r2, 2 - add r1, r9 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_081409F6: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08140A04: .4byte gTasks - thumb_func_end sub_8140930 - - thumb_func_start sub_8140A08 -sub_8140A08: @ 8140A08 - push {lr} - adds r1, r0, 0 - ldrh r2, [r1, 0x30] - movs r3, 0x30 - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _08140A20 - ldr r0, _08140A1C @ =sub_8140A28 - str r0, [r1, 0x1C] - b _08140A24 - .align 2, 0 -_08140A1C: .4byte sub_8140A28 -_08140A20: - subs r0, r2, 0x1 - strh r0, [r1, 0x30] -_08140A24: - pop {r0} - bx r0 - thumb_func_end sub_8140A08 - - thumb_func_start sub_8140A28 -sub_8140A28: @ 8140A28 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x2 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x32 - bne _08140A5C - adds r0, r4, 0 - bl sub_8141294 -_08140A5C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8140A28 - - thumb_func_start sub_8140A64 -sub_8140A64: @ 8140A64 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _08140B24 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x26] - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r0, 0xA] - str r2, [sp] - ldrb r3, [r0, 0xC] - str r3, [sp, 0x4] - ldrb r2, [r0, 0xE] - str r2, [sp, 0x8] - ldrb r0, [r0, 0x10] - str r0, [sp, 0xC] - movs r6, 0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - mov r10, r0 - ldr r3, _08140B28 @ =gSprites - mov r8, r3 - ldr r0, _08140B2C @ =gUnknown_0840B378 - adds r1, r0 - mov r9, r1 -_08140AA8: - ldr r0, _08140B30 @ =gSpriteTemplate_840B3B4 - add r0, r10 - ldr r1, [sp] - ldr r2, [sp, 0x4] - ldr r3, [sp, 0xC] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r5, r1, 2 - mov r0, r8 - adds r4, r5, r0 - mov r2, r9 - ldrb r1, [r2] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r3, _08140B34 @ =gSprites + 0x1C - adds r1, r5, r3 - ldr r0, _08140B38 @ =sub_8140ECC - str r0, [r1] - movs r0, 0x3 - ldr r2, [sp, 0x8] - ands r2, r0 - lsls r2, 2 - ldrb r0, [r4, 0x5] - movs r3, 0xD - negs r3, r3 - adds r1, r3, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] - lsls r0, r6, 5 - strh r0, [r4, 0x2E] - movs r0, 0xA - strh r0, [r4, 0x36] - movs r0, 0x2 - strh r0, [r4, 0x38] - movs r2, 0x1 - strh r2, [r4, 0x3A] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x7 - bls _08140AA8 - ldr r0, _08140B28 @ =gSprites - adds r0, r5, r0 - strh r2, [r0, 0x3C] - adds r0, r7, 0 - bl DestroyTask - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08140B24: .4byte gTasks -_08140B28: .4byte gSprites -_08140B2C: .4byte gUnknown_0840B378 -_08140B30: .4byte gSpriteTemplate_840B3B4 -_08140B34: .4byte gSprites + 0x1C -_08140B38: .4byte sub_8140ECC - thumb_func_end sub_8140A64 - - thumb_func_start sub_8140B3C -sub_8140B3C: @ 8140B3C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _08140BFC @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x26] - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r0, 0xA] - str r2, [sp] - ldrb r3, [r0, 0xC] - str r3, [sp, 0x4] - ldrb r2, [r0, 0xE] - str r2, [sp, 0x8] - ldrb r0, [r0, 0x10] - str r0, [sp, 0xC] - movs r6, 0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - mov r10, r0 - ldr r3, _08140C00 @ =gSprites - mov r8, r3 - ldr r0, _08140C04 @ =gUnknown_0840B378 - adds r1, r0 - mov r9, r1 -_08140B80: - ldr r0, _08140C08 @ =gSpriteTemplate_840B3B4 - add r0, r10 - ldr r1, [sp] - ldr r2, [sp, 0x4] - ldr r3, [sp, 0xC] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r5, r1, 2 - mov r0, r8 - adds r4, r5, r0 - mov r2, r9 - ldrb r1, [r2] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r3, _08140C0C @ =gSprites + 0x1C - adds r1, r5, r3 - ldr r0, _08140C10 @ =sub_8140ECC - str r0, [r1] - movs r0, 0x3 - ldr r2, [sp, 0x8] - ands r2, r0 - lsls r2, 2 - ldrb r0, [r4, 0x5] - movs r3, 0xD - negs r3, r3 - adds r1, r3, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] - lsls r0, r6, 5 - strh r0, [r4, 0x2E] - movs r0, 0xA - strh r0, [r4, 0x36] - movs r1, 0x1 - strh r1, [r4, 0x38] - movs r0, 0x2 - strh r0, [r4, 0x3A] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x7 - bls _08140B80 - ldr r0, _08140C00 @ =gSprites - adds r0, r5, r0 - strh r1, [r0, 0x3C] - adds r0, r7, 0 - bl DestroyTask - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08140BFC: .4byte gTasks -_08140C00: .4byte gSprites -_08140C04: .4byte gUnknown_0840B378 -_08140C08: .4byte gSpriteTemplate_840B3B4 -_08140C0C: .4byte gSprites + 0x1C -_08140C10: .4byte sub_8140ECC - thumb_func_end sub_8140B3C - - thumb_func_start sub_8140C14 -sub_8140C14: @ 8140C14 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _08140CD0 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x26] - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r0, 0xA] - str r2, [sp] - ldrb r3, [r0, 0xC] - str r3, [sp, 0x4] - ldrb r2, [r0, 0xE] - str r2, [sp, 0x8] - ldrb r0, [r0, 0x10] - str r0, [sp, 0xC] - movs r6, 0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - mov r10, r0 - ldr r3, _08140CD4 @ =gSprites - mov r8, r3 - ldr r0, _08140CD8 @ =gUnknown_0840B378 - adds r1, r0 - mov r9, r1 -_08140C58: - ldr r0, _08140CDC @ =gSpriteTemplate_840B3B4 - add r0, r10 - ldr r1, [sp] - ldr r2, [sp, 0x4] - ldr r3, [sp, 0xC] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r5, r1, 2 - mov r0, r8 - adds r4, r5, r0 - mov r2, r9 - ldrb r1, [r2] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r3, _08140CE0 @ =gSprites + 0x1C - adds r1, r5, r3 - ldr r0, _08140CE4 @ =sub_8140ECC - str r0, [r1] - movs r0, 0x3 - ldr r2, [sp, 0x8] - ands r2, r0 - lsls r2, 2 - ldrb r0, [r4, 0x5] - movs r3, 0xD - negs r3, r3 - adds r1, r3, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] - lsls r0, r6, 5 - strh r0, [r4, 0x2E] - movs r0, 0x4 - strh r0, [r4, 0x36] - movs r2, 0x1 - strh r2, [r4, 0x38] - strh r2, [r4, 0x3A] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x7 - bls _08140C58 - ldr r0, _08140CD4 @ =gSprites - adds r0, r5, r0 - strh r2, [r0, 0x3C] - adds r0, r7, 0 - bl DestroyTask - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08140CD0: .4byte gTasks -_08140CD4: .4byte gSprites -_08140CD8: .4byte gUnknown_0840B378 -_08140CDC: .4byte gSpriteTemplate_840B3B4 -_08140CE0: .4byte gSprites + 0x1C -_08140CE4: .4byte sub_8140ECC - thumb_func_end sub_8140C14 - - thumb_func_start sub_8140CE8 -sub_8140CE8: @ 8140CE8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _08140DAC @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x26] - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r0, 0xA] - str r2, [sp] - ldrb r3, [r0, 0xC] - str r3, [sp, 0x4] - ldrb r2, [r0, 0xE] - str r2, [sp, 0x8] - ldrb r0, [r0, 0x10] - str r0, [sp, 0xC] - movs r6, 0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - mov r10, r0 - ldr r3, _08140DB0 @ =gSprites - mov r8, r3 - ldr r0, _08140DB4 @ =gUnknown_0840B378 - adds r1, r0 - mov r9, r1 -_08140D2C: - ldr r0, _08140DB8 @ =gSpriteTemplate_840B3B4 - add r0, r10 - ldr r1, [sp] - ldr r2, [sp, 0x4] - ldr r3, [sp, 0xC] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r5, r1, 2 - mov r0, r8 - adds r4, r5, r0 - mov r2, r9 - ldrb r1, [r2] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r3, _08140DBC @ =gSprites + 0x1C - adds r1, r5, r3 - ldr r0, _08140DC0 @ =sub_8140ECC - str r0, [r1] - movs r0, 0x3 - ldr r2, [sp, 0x8] - ands r2, r0 - lsls r2, 2 - ldrb r0, [r4, 0x5] - movs r3, 0xD - negs r3, r3 - adds r1, r3, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 3 - adds r0, r6 - strh r0, [r4, 0x2E] - movs r0, 0x5 - strh r0, [r4, 0x36] - movs r2, 0x1 - strh r2, [r4, 0x38] - strh r2, [r4, 0x3A] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x9 - bls _08140D2C - ldr r0, _08140DB0 @ =gSprites - adds r0, r5, r0 - strh r2, [r0, 0x3C] - adds r0, r7, 0 - bl DestroyTask - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08140DAC: .4byte gTasks -_08140DB0: .4byte gSprites -_08140DB4: .4byte gUnknown_0840B378 -_08140DB8: .4byte gSpriteTemplate_840B3B4 -_08140DBC: .4byte gSprites + 0x1C -_08140DC0: .4byte sub_8140ECC - thumb_func_end sub_8140CE8 - - thumb_func_start sub_8140DC4 -sub_8140DC4: @ 8140DC4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _08140DF0 @ =gTasks - lsls r2, r7, 2 - adds r0, r2, r7 - lsls r0, 3 - adds r3, r0, r1 - ldrh r1, [r3, 0x16] - movs r4, 0x16 - ldrsh r0, [r3, r4] - cmp r0, 0 - beq _08140DF4 - subs r0, r1, 0x1 - strh r0, [r3, 0x16] - b _08140EA4 - .align 2, 0 -_08140DF0: .4byte gTasks -_08140DF4: - ldrh r0, [r3, 0x26] - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r3, 0xA] - str r1, [sp] - ldrb r4, [r3, 0xC] - str r4, [sp, 0x4] - ldrb r1, [r3, 0xE] - str r1, [sp, 0x8] - ldrb r3, [r3, 0x10] - str r3, [sp, 0xC] - movs r6, 0 - str r2, [sp, 0x10] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - mov r10, r1 - ldr r3, _08140EB4 @ =gSprites - mov r8, r3 - ldr r1, _08140EB8 @ =gUnknown_0840B378 - adds r0, r1 - mov r9, r0 -_08140E20: - ldr r0, _08140EBC @ =gSpriteTemplate_840B3B4 - add r0, r10 - ldr r1, [sp] - ldr r2, [sp, 0x4] - ldr r3, [sp, 0xC] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r5, r1, 2 - mov r0, r8 - adds r4, r5, r0 - mov r3, r9 - ldrb r1, [r3] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r0, _08140EC0 @ =gSprites + 0x1C - adds r1, r5, r0 - ldr r0, _08140EC4 @ =sub_8140ECC - str r0, [r1] - movs r0, 0x3 - ldr r2, [sp, 0x8] - ands r2, r0 - lsls r2, 2 - ldrb r0, [r4, 0x5] - movs r3, 0xD - negs r3, r3 - adds r1, r3, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] - lsls r0, r6, 5 - strh r0, [r4, 0x2E] - movs r2, 0x8 - strh r2, [r4, 0x36] - movs r0, 0x2 - strh r0, [r4, 0x38] - strh r0, [r4, 0x3A] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x7 - bls _08140E20 - ldr r0, _08140EC8 @ =gTasks - ldr r4, [sp, 0x10] - adds r1, r4, r7 - lsls r1, 3 - adds r1, r0 - strh r2, [r1, 0x16] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _08140EA4 - ldr r0, _08140EB4 @ =gSprites - adds r0, r5, r0 - movs r1, 0x1 - strh r1, [r0, 0x3C] - adds r0, r7, 0 - bl DestroyTask -_08140EA4: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08140EB4: .4byte gSprites -_08140EB8: .4byte gUnknown_0840B378 -_08140EBC: .4byte gSpriteTemplate_840B3B4 -_08140EC0: .4byte gSprites + 0x1C -_08140EC4: .4byte sub_8140ECC -_08140EC8: .4byte gTasks - thumb_func_end sub_8140DC4 - - thumb_func_start sub_8140ECC -sub_8140ECC: @ 8140ECC - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x2E] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x38] - ldrh r2, [r4, 0x30] - adds r0, r2 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x33 - bne _08140F1C - adds r0, r4, 0 - bl sub_8141294 -_08140F1C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8140ECC - - thumb_func_start sub_8140F24 -sub_8140F24: @ 8140F24 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _08140FE0 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x26] - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r0, 0xA] - str r2, [sp] - ldrb r3, [r0, 0xC] - str r3, [sp, 0x4] - ldrb r2, [r0, 0xE] - str r2, [sp, 0x8] - ldrb r0, [r0, 0x10] - str r0, [sp, 0xC] - movs r6, 0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - mov r10, r0 - ldr r3, _08140FE4 @ =gSprites - mov r8, r3 - ldr r0, _08140FE8 @ =gUnknown_0840B378 - adds r1, r0 - mov r9, r1 -_08140F68: - ldr r0, _08140FEC @ =gSpriteTemplate_840B3B4 - add r0, r10 - ldr r1, [sp] - ldr r2, [sp, 0x4] - ldr r3, [sp, 0xC] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r5, r1, 2 - mov r0, r8 - adds r4, r5, r0 - mov r2, r9 - ldrb r1, [r2] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r3, _08140FF0 @ =gSprites + 0x1C - adds r1, r5, r3 - ldr r0, _08140FF4 @ =sub_8140FF8 - str r0, [r1] - movs r0, 0x3 - ldr r2, [sp, 0x8] - ands r2, r0 - lsls r2, 2 - ldrb r0, [r4, 0x5] - movs r3, 0xD - negs r3, r3 - adds r1, r3, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 2 - adds r0, r6 - strh r0, [r4, 0x2E] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xB - bls _08140F68 - ldr r0, _08140FE4 @ =gSprites - adds r0, r5, r0 - movs r1, 0x1 - strh r1, [r0, 0x3C] - adds r0, r7, 0 - bl DestroyTask - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08140FE0: .4byte gTasks -_08140FE4: .4byte gSprites -_08140FE8: .4byte gUnknown_0840B378 -_08140FEC: .4byte gSpriteTemplate_840B3B4 -_08140FF0: .4byte gSprites + 0x1C -_08140FF4: .4byte sub_8140FF8 - thumb_func_end sub_8140F24 - - thumb_func_start sub_8140FF8 -sub_8140FF8: @ 8140FF8 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - movs r2, 0x30 - ldrsh r1, [r5, r2] - bl Sin - strh r0, [r5, 0x24] - movs r0, 0x2E - ldrsh r4, [r5, r0] - movs r2, 0x32 - ldrsh r1, [r5, r2] - adds r0, r4, 0 - bl Sin - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl Cos - strh r0, [r5, 0x26] - ldrh r0, [r5, 0x2E] - adds r0, 0x6 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x30] - adds r0, 0x1 - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x32] - adds r0, 0x1 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x34] - adds r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x33 - bne _08141050 - adds r0, r5, 0 - bl sub_8141294 -_08141050: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8140FF8 - - thumb_func_start sub_8141058 -sub_8141058: @ 8141058 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - ldr r1, _08141104 @ =gTasks - lsls r0, 2 - ldr r2, [sp] - adds r0, r2 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x26] - lsls r1, 24 - lsrs r1, 24 - ldrb r3, [r0, 0xA] - str r3, [sp, 0x4] - ldrb r2, [r0, 0xC] - str r2, [sp, 0x8] - ldrb r3, [r0, 0xE] - str r3, [sp, 0xC] - ldrb r0, [r0, 0x10] - str r0, [sp, 0x10] - movs r0, 0 - mov r8, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - str r0, [sp, 0x14] - ldr r0, _08141108 @ =gUnknown_0840B378 - adds r1, r0 - mov r10, r1 -_0814109E: - movs r7, 0 - movs r1, 0x1 - add r1, r8 - mov r9, r1 -_081410A6: - ldr r0, _0814110C @ =gSpriteTemplate_840B3B4 - ldr r2, [sp, 0x14] - adds r0, r2, r0 - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - ldr r3, [sp, 0x10] - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - lsls r4, r6, 4 - adds r4, r6 - lsls r4, 2 - ldr r3, _08141110 @ =gSprites - adds r5, r4, r3 - mov r0, r10 - ldrb r1, [r0] - adds r0, r5, 0 - bl StartSpriteAnim - ldr r1, _08141114 @ =gSprites + 0x1C - adds r4, r1 - ldr r0, _08141118 @ =sub_8140ECC - str r0, [r4] - movs r0, 0x3 - ldr r1, [sp, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r0, [r5, 0x5] - movs r3, 0xD - negs r3, r3 - adds r2, r3, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - lsls r0, r7, 5 - strh r0, [r5, 0x2E] - movs r0, 0x8 - strh r0, [r5, 0x36] - mov r0, r8 - cmp r0, 0 - bne _0814111C - movs r0, 0x2 - strh r0, [r5, 0x38] - movs r0, 0x1 - b _08141122 - .align 2, 0 -_08141104: .4byte gTasks -_08141108: .4byte gUnknown_0840B378 -_0814110C: .4byte gSpriteTemplate_840B3B4 -_08141110: .4byte gSprites -_08141114: .4byte gSprites + 0x1C -_08141118: .4byte sub_8140ECC -_0814111C: - movs r0, 0x1 - strh r0, [r5, 0x38] - movs r0, 0x2 -_08141122: - strh r0, [r5, 0x3A] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x7 - bls _081410A6 - mov r1, r9 - lsls r0, r1, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x1 - bls _0814109E - ldr r0, _08141160 @ =gSprites - lsls r1, r6, 4 - adds r1, r6 - lsls r1, 2 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x3C] - ldr r0, [sp] - bl DestroyTask - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08141160: .4byte gSprites - thumb_func_end sub_8141058 - - thumb_func_start sub_8141164 -sub_8141164: @ 8141164 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _08141218 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x26] - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r0, 0xA] - str r2, [sp] - ldrb r3, [r0, 0xC] - str r3, [sp, 0x4] - ldrb r2, [r0, 0xE] - str r2, [sp, 0x8] - ldrb r0, [r0, 0x10] - str r0, [sp, 0xC] - movs r6, 0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - mov r10, r0 - ldr r3, _0814121C @ =gSprites - mov r8, r3 - ldr r0, _08141220 @ =gUnknown_0840B378 - adds r1, r0 - mov r9, r1 -_081411A8: - ldr r0, _08141224 @ =gSpriteTemplate_840B3B4 - add r0, r10 - ldr r1, [sp] - ldr r2, [sp, 0x4] - ldr r3, [sp, 0xC] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r5, r1, 2 - mov r0, r8 - adds r4, r5, r0 - mov r2, r9 - ldrb r1, [r2] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r3, _08141228 @ =gSprites + 0x1C - adds r1, r5, r3 - ldr r0, _0814122C @ =sub_8141230 - str r0, [r1] - movs r0, 0x3 - ldr r2, [sp, 0x8] - ands r2, r0 - lsls r2, 2 - ldrb r0, [r4, 0x5] - movs r3, 0xD - negs r3, r3 - adds r1, r3, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] - lsls r0, r6, 5 - strh r0, [r4, 0x2E] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x7 - bls _081411A8 - ldr r0, _0814121C @ =gSprites - adds r0, r5, r0 - movs r1, 0x1 - strh r1, [r0, 0x3C] - adds r0, r7, 0 - bl DestroyTask - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08141218: .4byte gTasks -_0814121C: .4byte gSprites -_08141220: .4byte gUnknown_0840B378 -_08141224: .4byte gSpriteTemplate_840B3B4 -_08141228: .4byte gSprites + 0x1C -_0814122C: .4byte sub_8141230 - thumb_func_end sub_8141164 - - thumb_func_start sub_8141230 -sub_8141230: @ 8141230 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - movs r2, 0x30 - ldrsh r1, [r5, r2] - bl Sin - strh r0, [r5, 0x24] - movs r0, 0x2E - ldrsh r4, [r5, r0] - ldrh r1, [r5, 0x2E] - movs r0, 0x3F - ands r0, r1 - movs r2, 0x32 - ldrsh r1, [r5, r2] - bl Sin - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl Cos - strh r0, [r5, 0x26] - ldrh r0, [r5, 0x2E] - adds r0, 0xA - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x30] - adds r0, 0x1 - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x32] - adds r0, 0x1 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x34] - adds r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x33 - bne _0814128C - adds r0, r5, 0 - bl sub_8141294 -_0814128C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8141230 - - thumb_func_start sub_8141294 -sub_8141294: @ 8141294 - push {r4-r7,lr} - adds r5, r0, 0 - ldr r0, _081412B8 @ =gMain - ldr r1, _081412BC @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _081412C0 - movs r1, 0x3C - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _081412F2 - adds r0, r5, 0 - bl DestroySpriteAndFreeResources - b _0814130E - .align 2, 0 -_081412B8: .4byte gMain -_081412BC: .4byte 0x0000043d -_081412C0: - movs r1, 0x3C - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _08141308 - ldr r1, _081412FC @ =0x02017840 - ldrb r0, [r1, 0xA] - subs r0, 0x1 - strb r0, [r1, 0xA] - lsls r0, 24 - cmp r0, 0 - bne _081412F2 - movs r7, 0 - ldr r6, _08141300 @ =gUnknown_0840B258 - ldr r4, _08141304 @ =gUnknown_0840B2B8 -_081412DC: - ldrh r0, [r6, 0x6] - bl FreeSpriteTilesByTag - ldrh r0, [r4, 0x4] - bl FreeSpritePaletteByTag - adds r6, 0x8 - adds r4, 0x8 - adds r7, 0x1 - cmp r7, 0xB - ble _081412DC -_081412F2: - adds r0, r5, 0 - bl DestroySprite - b _0814130E - .align 2, 0 -_081412FC: .4byte 0x02017840 -_08141300: .4byte gUnknown_0840B258 -_08141304: .4byte gUnknown_0840B2B8 -_08141308: - adds r0, r5, 0 - bl DestroySprite -_0814130E: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8141294 - - thumb_func_start sub_8141314 -sub_8141314: @ 8141314 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - adds r4, r0, 0 - mov r9, r2 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r3, 24 - lsrs r7, r3, 24 - ldr r0, _08141378 @ =sub_81413DC - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r1, _0814137C @ =gTasks - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r5, r0, r1 - strh r7, [r5, 0x26] - strh r6, [r5, 0xE] - mov r0, r9 - strh r0, [r5, 0x1C] - mov r1, r9 - lsrs r0, r1, 16 - strh r0, [r5, 0x1E] - cmp r4, 0 - bne _08141384 - lsls r0, r6, 20 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r0, 16 - ldr r2, _08141380 @ =gUnknown_0840B4D4 - lsls r1, r7, 1 - adds r1, r2 - ldrh r3, [r1] - movs r1, 0x10 - movs r2, 0 - bl BlendPalette - movs r0, 0x1 - strh r0, [r5, 0xA] - b _081413AA - .align 2, 0 -_08141378: .4byte sub_81413DC -_0814137C: .4byte gTasks -_08141380: .4byte gUnknown_0840B4D4 -_08141384: - lsls r0, r6, 20 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r0, 16 - ldr r2, _081413CC @ =gUnknown_0840B4D4 - lsls r1, r7, 1 - adds r1, r2 - ldrh r3, [r1] - movs r1, 0x10 - movs r2, 0x10 - bl BlendPalette - movs r0, 0x10 - strh r0, [r5, 0x8] - ldr r0, _081413D0 @ =0x0000ffff - strh r0, [r5, 0xA] - ldr r0, _081413D4 @ =sub_814146C - str r0, [r5] -_081413AA: - ldr r0, _081413D8 @ =0x00007fff - str r0, [sp] - mov r0, r9 - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - mov r0, r8 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_081413CC: .4byte gUnknown_0840B4D4 -_081413D0: .4byte 0x0000ffff -_081413D4: .4byte sub_814146C -_081413D8: .4byte 0x00007fff - thumb_func_end sub_8141314 - - thumb_func_start sub_81413DC -sub_81413DC: @ 81413DC - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _0814142C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0x10 - bgt _08141434 - movs r2, 0xE - ldrsh r0, [r4, r2] - lsls r0, 20 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r0, 16 - ldrb r2, [r4, 0x8] - ldr r3, _08141430 @ =gUnknown_0840B4D4 - lsls r1, 1 - adds r1, r3 - ldrh r3, [r1] - movs r1, 0x10 - bl BlendPalette - ldrh r0, [r4, 0xA] - ldrh r1, [r4, 0x8] - adds r0, r1 - strh r0, [r4, 0x8] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - b _0814145C - .align 2, 0 -_0814142C: .4byte gTasks -_08141430: .4byte gUnknown_0840B4D4 -_08141434: - ldr r0, _08141464 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0814145C - ldrh r0, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - lsls r1, 16 - orrs r0, r1 - ldr r1, _08141468 @ =0x00007fff - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - adds r0, r5, 0 - bl DestroyTask -_0814145C: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08141464: .4byte gPaletteFade -_08141468: .4byte 0x00007fff - thumb_func_end sub_81413DC - - thumb_func_start sub_814146C -sub_814146C: @ 814146C - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _081414AC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081414A4 - ldr r0, _081414B0 @ =gTasks - lsls r4, r2, 2 - adds r4, r2 - lsls r4, 3 - adds r4, r0 - ldrh r0, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - lsls r1, 16 - orrs r0, r1 - ldr r1, _081414B4 @ =0x00007fff - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _081414B8 @ =sub_81414BC - str r0, [r4] -_081414A4: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081414AC: .4byte gPaletteFade -_081414B0: .4byte gTasks -_081414B4: .4byte 0x00007fff -_081414B8: .4byte sub_81414BC - thumb_func_end sub_814146C - - thumb_func_start sub_81414BC -sub_81414BC: @ 81414BC - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _08141508 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r1, r0, 24 - movs r3, 0xC - ldrsh r0, [r4, r3] - cmp r0, 0x10 - bgt _08141510 - movs r2, 0xE - ldrsh r0, [r4, r2] - lsls r0, 20 - movs r3, 0x80 - lsls r3, 17 - adds r0, r3 - lsrs r0, 16 - ldrb r2, [r4, 0x8] - ldr r3, _0814150C @ =gUnknown_0840B4D4 - lsls r1, 1 - adds r1, r3 - ldrh r3, [r1] - movs r1, 0x10 - bl BlendPalette - ldrh r0, [r4, 0xA] - ldrh r1, [r4, 0x8] - adds r0, r1 - strh r0, [r4, 0x8] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - b _08141516 - .align 2, 0 -_08141508: .4byte gTasks -_0814150C: .4byte gUnknown_0840B4D4 -_08141510: - adds r0, r2, 0 - bl DestroyTask -_08141516: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81414BC - - thumb_func_start sub_814151C -sub_814151C: @ 814151C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0 - mov r8, r0 - ldr r0, _08141550 @ =gUnknown_02024BE0 - ldr r3, _08141554 @ =gUnknown_0202F7C8 - ldrb r2, [r3] - adds r0, r2, r0 - ldrb r6, [r0] - ldr r1, _08141558 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0x1C - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _081415F4 - cmp r0, 0x1 - bgt _0814155C - cmp r0, 0 - beq _08141562 - b _081416B6 - .align 2, 0 -_08141550: .4byte gUnknown_02024BE0 -_08141554: .4byte gUnknown_0202F7C8 -_08141558: .4byte gTasks -_0814155C: - cmp r0, 0x2 - beq _08141606 - b _081416B6 -_08141562: - ldr r0, _0814159C @ =gUnknown_03004B00 - ldrh r0, [r0] - strh r0, [r5, 0x1E] - movs r2, 0xA0 - lsls r2, 3 - adds r0, r2, 0 - ldrh r4, [r5, 0x8] - adds r0, r4 - strh r0, [r5, 0x8] - ldrb r0, [r3] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _081415A4 - ldr r2, _081415A0 @ =gSprites - lsls r3, r6, 4 - adds r1, r3, r6 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r5, 0x8] - lsls r0, 16 - asrs r0, 24 - ldrh r4, [r1, 0x24] - adds r0, r4 - strh r0, [r1, 0x24] - adds r4, r3, 0 - b _081415BC - .align 2, 0 -_0814159C: .4byte gUnknown_03004B00 -_081415A0: .4byte gSprites -_081415A4: - ldr r3, _081415EC @ =gSprites - lsls r4, r6, 4 - adds r2, r4, r6 - lsls r2, 2 - adds r2, r3 - ldrh r1, [r5, 0x8] - lsls r1, 16 - asrs r1, 24 - ldrh r0, [r2, 0x24] - subs r0, r1 - strh r0, [r2, 0x24] - adds r2, r3, 0 -_081415BC: - ldr r1, _081415F0 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r3, r0, r1 - ldrb r0, [r3, 0x8] - strh r0, [r3, 0x8] - adds r0, r4, r6 - lsls r0, 2 - adds r0, r2 - movs r2, 0x20 - ldrsh r1, [r0, r2] - movs r4, 0x24 - ldrsh r0, [r0, r4] - adds r1, r0 - adds r1, 0x20 - movs r0, 0x98 - lsls r0, 1 - cmp r1, r0 - bls _081416B6 - ldrh r0, [r3, 0x1C] - adds r0, 0x1 - strh r0, [r3, 0x1C] - b _081416B6 - .align 2, 0 -_081415EC: .4byte gSprites -_081415F0: .4byte gTasks -_081415F4: - ldrb r1, [r5, 0x1E] - adds r0, r2, 0 - adds r2, r6, 0 - bl refresh_graphics_maybe - ldrh r0, [r5, 0x1C] - adds r0, 0x1 - strh r0, [r5, 0x1C] - b _081416B6 -_08141606: - movs r1, 0xA0 - lsls r1, 3 - adds r0, r1, 0 - ldrh r2, [r5, 0x8] - adds r0, r2 - strh r0, [r5, 0x8] - ldrb r0, [r3] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _0814163C - ldr r0, _08141638 @ =gSprites - lsls r3, r6, 4 - adds r2, r3, r6 - lsls r2, 2 - adds r2, r0 - ldrh r1, [r5, 0x8] - lsls r1, 16 - asrs r1, 24 - ldrh r0, [r2, 0x24] - subs r0, r1 - strh r0, [r2, 0x24] - adds r4, r3, 0 - b _08141654 - .align 2, 0 -_08141638: .4byte gSprites -_0814163C: - ldr r0, _08141688 @ =gSprites - lsls r2, r6, 4 - adds r1, r2, r6 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r5, 0x8] - lsls r0, 16 - asrs r0, 24 - ldrh r3, [r1, 0x24] - adds r0, r3 - strh r0, [r1, 0x24] - adds r4, r2, 0 -_08141654: - ldr r1, _0814168C @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0x8] - strh r1, [r0, 0x8] - ldr r0, _08141690 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _08141694 - ldr r0, _08141688 @ =gSprites - adds r1, r4, r6 - lsls r1, 2 - adds r1, r0 - movs r4, 0x24 - ldrsh r0, [r1, r4] - cmp r0, 0 - bgt _081416AA - movs r0, 0 - strh r0, [r1, 0x24] - b _081416B0 - .align 2, 0 -_08141688: .4byte gSprites -_0814168C: .4byte gTasks -_08141690: .4byte gUnknown_0202F7C8 -_08141694: - ldr r0, _081416C0 @ =gSprites - adds r1, r4, r6 - lsls r1, 2 - adds r1, r0 - movs r3, 0x24 - ldrsh r0, [r1, r3] - cmp r0, 0 - blt _081416AA - strh r2, [r1, 0x24] - movs r4, 0x1 - mov r8, r4 -_081416AA: - mov r0, r8 - cmp r0, 0 - beq _081416B6 -_081416B0: - adds r0, r7, 0 - bl move_anim_task_del -_081416B6: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081416C0: .4byte gSprites - thumb_func_end sub_814151C - - thumb_func_start sub_81416C4 -sub_81416C4: @ 81416C4 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _081416E8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x26 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08141744 - cmp r0, 0x1 - bgt _081416EC - cmp r0, 0 - beq _081416F2 - b _081417B8 - .align 2, 0 -_081416E8: .4byte gTasks -_081416EC: - cmp r0, 0x2 - beq _0814177C - b _081417B8 -_081416F2: - ldr r0, _08141708 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08141714 - ldr r1, _0814170C @ =REG_BLDCNT - ldr r2, _08141710 @ =0x00003f42 - b _08141718 - .align 2, 0 -_08141708: .4byte gUnknown_0202F7C8 -_0814170C: .4byte REG_BLDCNT -_08141710: .4byte 0x00003f42 -_08141714: - ldr r1, _08141734 @ =REG_BLDCNT - ldr r2, _08141738 @ =0x00003f44 -_08141718: - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _0814173C @ =REG_BLDALPHA - movs r0, 0x10 - strh r0, [r1] - ldr r1, _08141740 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x26] - adds r1, 0x1 - strh r1, [r0, 0x26] - b _081417B8 - .align 2, 0 -_08141734: .4byte REG_BLDCNT -_08141738: .4byte 0x00003f44 -_0814173C: .4byte REG_BLDALPHA -_08141740: .4byte gTasks -_08141744: - ldrh r0, [r4, 0xA] - adds r1, r0, 0x1 - strh r1, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _081417B8 - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r1, [r4, 0x8] - adds r1, 0x1 - strh r1, [r4, 0x8] - ldr r3, _08141778 @ =REG_BLDALPHA - lsls r2, r1, 8 - movs r0, 0x10 - subs r0, r1 - orrs r2, r0 - strh r2, [r3] - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x10 - bne _081417B8 - ldrh r0, [r4, 0x26] - adds r0, 0x1 - strh r0, [r4, 0x26] - b _081417B8 - .align 2, 0 -_08141778: .4byte REG_BLDALPHA -_0814177C: - ldr r1, _081417C0 @ =gUnknown_02024BE0 - ldr r3, _081417C4 @ =gUnknown_0202F7C8 - ldrb r0, [r3] - adds r0, r1 - ldrb r1, [r0] - ldr r2, _081417C8 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x4] - lsls r0, 22 - lsrs r0, 17 - ldr r1, _081417CC @ =0x06010000 - adds r0, r1 - movs r1, 0 - str r1, [sp] - ldr r1, _081417D0 @ =0x040000d4 - mov r2, sp - str r2, [r1] - str r0, [r1, 0x4] - ldr r0, _081417D4 @ =0x85000200 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldrb r0, [r3] - bl sub_80324E0 - adds r0, r5, 0 - bl move_anim_task_del -_081417B8: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081417C0: .4byte gUnknown_02024BE0 -_081417C4: .4byte gUnknown_0202F7C8 -_081417C8: .4byte gSprites -_081417CC: .4byte 0x06010000 -_081417D0: .4byte 0x040000d4 -_081417D4: .4byte 0x85000200 - thumb_func_end sub_81416C4 - - thumb_func_start sub_81417D8 -sub_81417D8: @ 81417D8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _081417FC @ =gUnknown_03004B00 - ldr r1, _08141800 @ =gUnknown_0202F7C8 - ldrb r1, [r1] - lsls r1, 2 - ldr r2, _08141804 @ =0x02017800 - adds r1, r2 - ldr r1, [r1] - lsls r1, 29 - lsrs r1, 31 - strh r1, [r3, 0xE] - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_081417FC: .4byte gUnknown_03004B00 -_08141800: .4byte gUnknown_0202F7C8 -_08141804: .4byte 0x02017800 - thumb_func_end sub_81417D8 - - thumb_func_start sub_8141808 -sub_8141808: @ 8141808 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08141820 @ =gUnknown_0202F7C9 - ldr r1, _08141824 @ =gUnknown_02024C0A - ldrb r1, [r1] - strb r1, [r2] - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_08141820: .4byte gUnknown_0202F7C9 -_08141824: .4byte gUnknown_02024C0A - thumb_func_end sub_8141808 - - thumb_func_start sub_8141828 -sub_8141828: @ 8141828 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r1, 0 - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0 - mov r8, r0 - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - ldr r1, _081418E0 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - adds r5, r0, 0 - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - adds r4, r0, 0 - adds r0, r6, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _081418FC - lsrs r0, r5, 16 - ldr r7, _081418E4 @ =0x0000ffff - ands r5, r7 - eors r0, r5 - lsrs r1, r4, 16 - eors r0, r1 - ands r4, r7 - eors r0, r4 - cmp r0, 0x7 - bhi _08141882 - movs r0, 0x1 - mov r8, r0 -_08141882: - mov r0, r8 - cmp r0, 0 - beq _081418FC - ldr r0, _081418E8 @ =0x000027f9 - bl GetSpriteTileStartByTag - lsls r0, 16 - lsrs r0, 16 - cmp r0, r7 - bne _081418A2 - ldr r0, _081418EC @ =gBattleAnimPicTable + (233 * 8) - bl LoadCompressedObjectPic - ldr r0, _081418F0 @ =gBattleAnimPaletteTable + (233 * 8) - bl LoadCompressedObjectPalette -_081418A2: - ldr r5, _081418F4 @ =sub_814191C - adds r0, r5, 0 - movs r1, 0xA - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r3, _081418F8 @ =gTasks - lsls r2, r4, 2 - adds r2, r4 - lsls r2, 3 - adds r2, r3 - movs r4, 0 - strh r6, [r2, 0x8] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r3 - strh r6, [r1, 0x8] - strh r4, [r2, 0xA] - movs r0, 0x1 - strh r0, [r1, 0xA] - b _0814190E - .align 2, 0 -_081418E0: .4byte 0x02017810 -_081418E4: .4byte 0x0000ffff -_081418E8: .4byte 0x000027f9 -_081418EC: .4byte gBattleAnimPicTable + (233 * 8) -_081418F0: .4byte gBattleAnimPaletteTable + (233 * 8) -_081418F4: .4byte sub_814191C -_081418F8: .4byte gTasks -_081418FC: - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - ldr r1, _08141918 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0, 0x1] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0, 0x1] -_0814190E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08141918: .4byte 0x02017810 - thumb_func_end sub_8141828 - - thumb_func_start sub_814191C -sub_814191C: @ 814191C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _08141944 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r4, r0, r1 - ldrh r1, [r4, 0x22] - movs r2, 0x22 - ldrsh r0, [r4, r2] - cmp r0, 0x3B - bgt _08141948 - adds r0, r1, 0x1 - strh r0, [r4, 0x22] - b _08141AB8 - .align 2, 0 -_08141944: .4byte gTasks -_08141948: - ldr r0, _08141998 @ =0x02017840 - ldrb r0, [r0, 0xA] - cmp r0, 0 - beq _08141952 - b _08141AB8 -_08141952: - ldrh r0, [r4, 0x1C] - adds r1, r0, 0x1 - strh r1, [r4, 0x1C] - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - cmp r1, 0 - beq _08141966 - b _08141AB8 -_08141966: - ldrb r0, [r4, 0x8] - mov r8, r0 - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r5, r0, 24 - mov r0, r8 - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081419A0 - ldr r0, _0814199C @ =gBattleAnimSpriteTemplate_84024E8 - adds r1, r5, 0 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - b _08141A02 - .align 2, 0 -_08141998: .4byte 0x02017840 -_0814199C: .4byte gBattleAnimSpriteTemplate_84024E8 -_081419A0: - cmp r0, 0 - blt _081419D4 - cmp r0, 0x3 - bgt _081419D4 - ldr r0, _081419CC @ =gSpriteTemplate_8402500 - adds r1, r5, 0 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _081419D0 @ =gSprites - lsls r2, r5, 4 - adds r2, r5 - lsls r2, 2 - adds r2, r0 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x4 - b _081419F4 - .align 2, 0 -_081419CC: .4byte gSpriteTemplate_8402500 -_081419D0: .4byte gSprites -_081419D4: - ldr r0, _08141A2C @ =gSpriteTemplate_8402500 - adds r1, r5, 0 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _08141A30 @ =gSprites - lsls r2, r5, 4 - adds r2, r5 - lsls r2, 2 - adds r2, r0 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x5 -_081419F4: - ldr r4, _08141A34 @ =0x000003ff - adds r0, r4, 0 - ands r1, r0 - ldr r0, _08141A38 @ =0xfffffc00 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] -_08141A02: - ldr r2, _08141A3C @ =gTasks - lsls r1, r7, 2 - adds r0, r1, r7 - lsls r0, 3 - adds r6, r0, r2 - movs r2, 0xA - ldrsh r0, [r6, r2] - mov r9, r1 - cmp r0, 0 - bne _08141A44 - ldr r1, _08141A30 @ =gSprites - lsls r2, r5, 4 - adds r0, r2, r5 - lsls r0, 2 - adds r1, 0x1C - adds r0, r1 - ldr r1, _08141A40 @ =sub_8141B20 - str r1, [r0] - adds r4, r2, 0 - b _08141A8C - .align 2, 0 -_08141A2C: .4byte gSpriteTemplate_8402500 -_08141A30: .4byte gSprites -_08141A34: .4byte 0x000003ff -_08141A38: .4byte 0xfffffc00 -_08141A3C: .4byte gTasks -_08141A40: .4byte sub_8141B20 -_08141A44: - ldr r3, _08141AC4 @ =gSprites - lsls r4, r5, 4 - adds r1, r4, r5 - lsls r1, 2 - adds r0, r3, 0 - adds r0, 0x1C - adds r0, r1, r0 - ldr r2, _08141AC8 @ =sub_8141B74 - str r2, [r0] - adds r1, r3 - ldr r0, _08141ACC @ =0x0000ffe0 - strh r0, [r1, 0x24] - movs r0, 0x20 - strh r0, [r1, 0x26] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - movs r1, 0x1E - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _08141A8C - mov r0, r8 - bl battle_side_get_owner - lsls r0, 24 - movs r1, 0x3F - cmp r0, 0 - bne _08141A82 - movs r1, 0xC0 -_08141A82: - lsls r1, 24 - asrs r1, 24 - movs r0, 0x66 - bl PlaySE12WithPanning -_08141A8C: - ldr r1, _08141AC4 @ =gSprites - adds r0, r4, r5 - lsls r0, 2 - adds r0, r1 - strh r7, [r0, 0x2E] - ldr r1, _08141AD0 @ =gTasks - mov r2, r9 - adds r0, r2, r7 - lsls r0, 3 - adds r2, r0, r1 - ldrh r1, [r2, 0x1E] - adds r1, 0x1 - strh r1, [r2, 0x1E] - ldrh r0, [r2, 0x20] - adds r0, 0x1 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x5 - bne _08141AB8 - ldr r0, _08141AD4 @ =sub_8141AD8 - str r0, [r2] -_08141AB8: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08141AC4: .4byte gSprites -_08141AC8: .4byte sub_8141B74 -_08141ACC: .4byte 0x0000ffe0 -_08141AD0: .4byte gTasks -_08141AD4: .4byte sub_8141AD8 - thumb_func_end sub_814191C - - thumb_func_start sub_8141AD8 -sub_8141AD8: @ 8141AD8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r3, r0, 0 - ldr r1, _08141B18 @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r1, r0, r1 - movs r2, 0x20 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _08141B14 - movs r2, 0xA - ldrsh r0, [r1, r2] - cmp r0, 0x1 - bne _08141B0E - ldrb r1, [r1, 0x8] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _08141B1C @ =0x02017810 - adds r0, r1 - ldrb r1, [r0, 0x1] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0, 0x1] -_08141B0E: - adds r0, r3, 0 - bl DestroyTask -_08141B14: - pop {r0} - bx r0 - .align 2, 0 -_08141B18: .4byte gTasks -_08141B1C: .4byte 0x02017810 - thumb_func_end sub_8141AD8 - - thumb_func_start sub_8141B20 -sub_8141B20: @ 8141B20 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x18 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x18 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0xC - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _08141B6A - ldr r2, _08141B70 @ =gTasks - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0x20] - subs r1, 0x1 - strh r1, [r0, 0x20] - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite -_08141B6A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08141B70: .4byte gTasks - thumb_func_end sub_8141B20 - - thumb_func_start sub_8141B74 -sub_8141B74: @ 8141B74 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0x3 - bgt _08141B88 - adds r0, r1, 0x1 - strh r0, [r4, 0x30] - b _08141BCA -_08141B88: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldrh r1, [r4, 0x24] - adds r1, 0x5 - strh r1, [r4, 0x24] - ldrh r0, [r4, 0x26] - subs r0, 0x5 - strh r0, [r4, 0x26] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x20 - ble _08141BCA - ldr r2, _08141BD0 @ =gTasks - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0x20] - subs r1, 0x1 - strh r1, [r0, 0x20] - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite -_08141BCA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08141BD0: .4byte gTasks - thumb_func_end sub_8141B74 - - thumb_func_start sub_8141BD4 -sub_8141BD4: @ 8141BD4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08141BFC @ =gBattleAnimPicTable + (269 * 8) - bl LoadCompressedObjectPic - ldr r0, _08141C00 @ =gBattleAnimPaletteTable + (269 * 8) - bl LoadCompressedObjectPalette - ldr r0, _08141C04 @ =0x0000281d - bl IndexOfSpritePaletteTag - adds r0, r4, 0 - bl move_anim_task_del - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08141BFC: .4byte gBattleAnimPicTable + (269 * 8) -_08141C00: .4byte gBattleAnimPaletteTable + (269 * 8) -_08141C04: .4byte 0x0000281d - thumb_func_end sub_8141BD4 - - thumb_func_start sub_8141C08 -sub_8141C08: @ 8141C08 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _08141C2C @ =0x0000281d - adds r0, r5, 0 - bl FreeSpriteTilesByTag - adds r0, r5, 0 - bl FreeSpritePaletteByTag - adds r0, r4, 0 - bl move_anim_task_del - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08141C2C: .4byte 0x0000281d - thumb_func_end sub_8141C08 - - thumb_func_start sub_8141C30 -sub_8141C30: @ 8141C30 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_80787B0 - movs r0, 0x1E - strh r0, [r4, 0x2E] - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - ldr r5, _08141CA4 @ =gUnknown_03004B00 - lsrs r0, 24 - ldrh r1, [r5, 0x4] - adds r0, r1 - strh r0, [r4, 0x32] - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x6] - adds r0, r5 - strh r0, [r4, 0x36] - ldr r0, _08141CA8 @ =0x0000ffe0 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_80786EC - ldr r1, _08141CAC @ =gUnknown_02024BE0 - ldr r0, _08141CB0 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08141CB4 @ =gSprites - adds r0, r1 - movs r1, 0x1 - bl StartSpriteAnim - ldr r0, _08141CB8 @ =sub_8141CBC - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08141CA4: .4byte gUnknown_03004B00 -_08141CA8: .4byte 0x0000ffe0 -_08141CAC: .4byte gUnknown_02024BE0 -_08141CB0: .4byte gUnknown_0202F7C8 -_08141CB4: .4byte gSprites -_08141CB8: .4byte sub_8141CBC - thumb_func_end sub_8141C30 - - thumb_func_start sub_8141CBC -sub_8141CBC: @ 8141CBC - push {lr} - adds r3, r0, 0 - ldr r2, _08141CE4 @ =gSprites - ldr r1, _08141CE8 @ =gUnknown_02024BE0 - ldr r0, _08141CEC @ =gUnknown_0202F7C8 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0x1 - bne _08141CE0 - ldr r0, _08141CF0 @ =sub_8141CF4 - str r0, [r3, 0x1C] -_08141CE0: - pop {r0} - bx r0 - .align 2, 0 -_08141CE4: .4byte gSprites -_08141CE8: .4byte gUnknown_02024BE0 -_08141CEC: .4byte gUnknown_0202F7C8 -_08141CF0: .4byte sub_8141CF4 - thumb_func_end sub_8141CBC - - thumb_func_start sub_8141CF4 -sub_8141CF4: @ 8141CF4 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _08141D16 - movs r0, 0 - strh r0, [r4, 0x2E] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08141D1C @ =sub_8141D20 - str r0, [r4, 0x1C] -_08141D16: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08141D1C: .4byte sub_8141D20 - thumb_func_end sub_8141CF4 - - thumb_func_start sub_8141D20 -sub_8141D20: @ 8141D20 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _08141D70 @ =gSprites - ldr r3, _08141D74 @ =gUnknown_02024BE0 - ldr r2, _08141D78 @ =gUnknown_0202F7C8 - ldrb r0, [r2] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 27 - cmp r0, 0 - bge _08141D68 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - ble _08141D68 - ldrb r0, [r2] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl move_anim_8072740 -_08141D68: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08141D70: .4byte gSprites -_08141D74: .4byte gUnknown_02024BE0 -_08141D78: .4byte gUnknown_0202F7C8 - thumb_func_end sub_8141D20 - - thumb_func_start sub_8141D7C -sub_8141D7C: @ 8141D7C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, _08141DA4 @ =gUnknown_0202F7C8 - strb r0, [r1] - movs r0, 0x1 - bl battle_get_side_with_given_state - ldr r1, _08141DA8 @ =gUnknown_0202F7C9 - strb r0, [r1] - adds r0, r4, 0 - bl move_anim_task_del - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08141DA4: .4byte gUnknown_0202F7C8 -_08141DA8: .4byte gUnknown_0202F7C9 - thumb_func_end sub_8141D7C - - thumb_func_start sub_8141DAC -sub_8141DAC: @ 8141DAC - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _08141DC0 @ =0x02017840 - ldrh r1, [r0] - cmp r1, 0x53 - bne _08141DC8 - ldr r1, _08141DC4 @ =gUnknown_03004B00 - movs r0, 0x1 - b _08141E00 - .align 2, 0 -_08141DC0: .4byte 0x02017840 -_08141DC4: .4byte gUnknown_03004B00 -_08141DC8: - cmp r1, 0xFA - bne _08141DD8 - ldr r1, _08141DD4 @ =gUnknown_03004B00 - movs r0, 0x2 - b _08141E00 - .align 2, 0 -_08141DD4: .4byte gUnknown_03004B00 -_08141DD8: - cmp r1, 0x80 - bne _08141DE8 - ldr r1, _08141DE4 @ =gUnknown_03004B00 - movs r0, 0x3 - b _08141E00 - .align 2, 0 -_08141DE4: .4byte gUnknown_03004B00 -_08141DE8: - movs r0, 0xA4 - lsls r0, 1 - cmp r1, r0 - bne _08141DFC - ldr r1, _08141DF8 @ =gUnknown_03004B00 - movs r0, 0x4 - b _08141E00 - .align 2, 0 -_08141DF8: .4byte gUnknown_03004B00 -_08141DFC: - ldr r1, _08141E0C @ =gUnknown_03004B00 - movs r0, 0 -_08141E00: - strh r0, [r1] - adds r0, r2, 0 - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_08141E0C: .4byte gUnknown_03004B00 - thumb_func_end sub_8141DAC - - thumb_func_start sub_8141E10 -sub_8141E10: @ 8141E10 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08141E2C @ =gUnknown_0202F7C8 - ldr r1, _08141E30 @ =0x02017840 - ldrh r1, [r1] - strb r1, [r2] - ldr r2, _08141E34 @ =gUnknown_0202F7C9 - lsrs r1, 8 - strb r1, [r2] - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_08141E2C: .4byte gUnknown_0202F7C8 -_08141E30: .4byte 0x02017840 -_08141E34: .4byte gUnknown_0202F7C9 - thumb_func_end sub_8141E10 - - thumb_func_start sub_8141E38 -sub_8141E38: @ 8141E38 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8141E38 - - thumb_func_start sub_8141E4C -sub_8141E4C: @ 8141E4C - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_8141E4C - - thumb_func_start sub_8141E64 -sub_8141E64: @ 8141E64 - push {r4,lr} - sub sp, 0x4 - ldr r0, _08141E80 @ =gMain - ldr r1, _08141E84 @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x4 - bhi _08141EA0 - lsls r0, 2 - ldr r1, _08141E88 @ =_08141E8C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08141E80: .4byte gMain -_08141E84: .4byte 0x0000043c -_08141E88: .4byte _08141E8C - .align 2, 0 -_08141E8C: - .4byte _08141EA0 - .4byte _08141EC0 - .4byte _08141EC6 - .4byte _08141F1C - .4byte _08141F58 -_08141EA0: - movs r0, 0 - bl SetVBlankCallback - bl sub_81433E0 - ldr r0, _08141EB8 @ =gMain - ldr r2, _08141EBC @ =0x0000043c - adds r0, r2 - movs r1, 0x1 - strb r1, [r0] - b _08141F84 - .align 2, 0 -_08141EB8: .4byte gMain -_08141EBC: .4byte 0x0000043c -_08141EC0: - bl sub_8143570 - b _08141F38 -_08141EC6: - movs r0, 0x1 - negs r0, r0 - movs r4, 0 - str r4, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _08141F04 @ =sub_8141E38 - bl SetVBlankCallback - ldr r3, _08141F08 @ =0x04000208 - ldrh r2, [r3] - strh r4, [r3] - ldr r4, _08141F0C @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _08141F10 @ =REG_DISPSTAT - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r1, _08141F14 @ =gMain - ldr r2, _08141F18 @ =0x0000043c - adds r1, r2 - b _08141F3E - .align 2, 0 -_08141F04: .4byte sub_8141E38 -_08141F08: .4byte 0x04000208 -_08141F0C: .4byte 0x04000200 -_08141F10: .4byte REG_DISPSTAT -_08141F14: .4byte gMain -_08141F18: .4byte 0x0000043c -_08141F1C: - ldr r1, _08141F48 @ =REG_BLDCNT - ldr r2, _08141F4C @ =0x00003f42 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0xE2 - lsls r2, 3 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0 - strh r0, [r1] - bl sub_81435B8 -_08141F38: - ldr r1, _08141F50 @ =gMain - ldr r0, _08141F54 @ =0x0000043c - adds r1, r0 -_08141F3E: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08141F84 - .align 2, 0 -_08141F48: .4byte REG_BLDCNT -_08141F4C: .4byte 0x00003f42 -_08141F50: .4byte gMain -_08141F54: .4byte 0x0000043c -_08141F58: - bl UpdatePaletteFade - ldr r0, _08141F7C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08141F84 - ldr r0, _08141F80 @ =sub_8141E4C - bl SetMainCallback2 - movs r0, 0xDA - lsls r0, 1 - bl PlayBGM - movs r0, 0 - b _08141F86 - .align 2, 0 -_08141F7C: .4byte gPaletteFade -_08141F80: .4byte sub_8141E4C -_08141F84: - movs r0, 0x1 -_08141F86: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8141E64 - - thumb_func_start sub_8141F90 -sub_8141F90: @ 8141F90 - push {r4,lr} - bl sub_8141E64 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _08141FB6 - ldr r0, _08141FBC @ =sub_8141FF8 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08141FC0 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] -_08141FB6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08141FBC: .4byte sub_8141FF8 -_08141FC0: .4byte gTasks - thumb_func_end sub_8141F90 - - thumb_func_start sub_8141FC4 -sub_8141FC4: @ 8141FC4 - push {lr} - bl sub_8141E64 - lsls r0, 24 - cmp r0, 0 - bne _08141FEA - ldr r0, _08141FF0 @ =sub_8141FF8 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08141FF4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0x1 - strh r0, [r1, 0x8] -_08141FEA: - pop {r0} - bx r0 - .align 2, 0 -_08141FF0: .4byte sub_8141FF8 -_08141FF4: .4byte gTasks - thumb_func_end sub_8141FC4 - - thumb_func_start sub_8141FF8 -sub_8141FF8: @ 8141FF8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _081420C8 @ =0x0201c000 - mov r9, r0 - ldr r1, _081420CC @ =gTasks - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - movs r7, 0 - ldr r4, _081420D0 @ =0xfffffe00 - mov r10, r4 -_08142024: - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, _081420D4 @ =gPlayerParty - adds r6, r1, r0 - adds r0, r6, 0 - movs r1, 0xB - bl GetMonData - adds r3, r0, 0 - cmp r3, 0 - beq _081420DC - adds r0, r6, 0 - movs r1, 0x41 - bl GetMonData - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 2 - mov r1, r9 - adds r5, r1, r4 - ldr r2, _081420D8 @ =0x000001ff - adds r1, r2, 0 - ands r0, r1 - ldrh r1, [r5, 0x8] - mov r2, r10 - ands r1, r2 - orrs r1, r0 - strh r1, [r5, 0x8] - adds r0, r6, 0 - movs r1, 0x1 - bl GetMonData - str r0, [r5] - adds r0, r6, 0 - movs r1, 0 - bl GetMonData - mov r1, r9 - adds r1, 0x4 - adds r1, r4 - str r0, [r1] - adds r0, r6, 0 - movs r1, 0x38 - bl GetMonData - lsls r0, 1 - ldrb r2, [r5, 0x9] - movs r1, 0x1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x9] - adds r0, r6, 0 - movs r1, 0x2 - mov r2, sp - bl GetMonData - movs r2, 0 - mov r6, r8 - lsls r5, r6, 2 - mov r3, r9 - adds r3, 0xA -_081420A0: - adds r1, r2, r4 - adds r1, r3, r1 - mov r6, sp - adds r0, r6, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x9 - bls _081420A0 - ldr r0, _081420CC @ =gTasks - mov r2, r8 - adds r1, r5, r2 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xC] - adds r0, 0x1 - strh r0, [r1, 0xC] - b _08142108 - .align 2, 0 -_081420C8: .4byte 0x0201c000 -_081420CC: .4byte gTasks -_081420D0: .4byte 0xfffffe00 -_081420D4: .4byte gPlayerParty -_081420D8: .4byte 0x000001ff -_081420DC: - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 2 - mov r4, r9 - adds r2, r4, r1 - ldrh r0, [r2, 0x8] - mov r6, r10 - ands r0, r6 - strh r0, [r2, 0x8] - str r3, [r2] - mov r0, r9 - adds r0, 0x4 - adds r0, r1 - str r3, [r0] - ldrb r1, [r2, 0x9] - movs r0, 0x1 - ands r0, r1 - strb r0, [r2, 0x9] - movs r0, 0xFF - strb r0, [r2, 0xA] - mov r0, r8 - lsls r5, r0, 2 -_08142108: - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, 0x5 - bls _08142024 - ldr r0, _08142158 @ =gUnknown_0203931C - movs r3, 0 - str r3, [r0] - ldr r4, _0814215C @ =gTasks - mov r2, r8 - adds r1, r5, r2 - lsls r1, 3 - adds r2, r1, r4 - strh r3, [r2, 0xA] - movs r0, 0xFF - strh r0, [r2, 0x10] - movs r7, 0 - adds r3, r4, 0 - adds r3, 0x8 - movs r2, 0xFF -_08142130: - adds r0, r7, 0x5 - lsls r0, 1 - adds r0, r1 - adds r0, r3 - strh r2, [r0] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, 0x5 - bls _08142130 - mov r6, r8 - adds r0, r5, r6 - lsls r0, 3 - adds r1, r0, r4 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _08142164 - ldr r0, _08142160 @ =sub_81422E8 - b _08142166 - .align 2, 0 -_08142158: .4byte gUnknown_0203931C -_0814215C: .4byte gTasks -_08142160: .4byte sub_81422E8 -_08142164: - ldr r0, _08142178 @ =sub_814217C -_08142166: - str r0, [r1] - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08142178: .4byte sub_814217C - thumb_func_end sub_8141FF8 - - thumb_func_start sub_814217C -sub_814217C: @ 814217C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _081421C4 @ =0x0201c000 - mov r9, r0 - movs r7, 0x80 - lsls r7, 6 - add r7, r9 - ldr r0, _081421C8 @ =gUnknown_02039324 - ldrb r0, [r0] - cmp r0, 0 - bne _081421D4 - movs r4, 0 - mov r0, r8 - lsls r0, 2 - mov r10, r0 - ldr r5, _081421CC @ =0xfffe4000 - add r5, r9 - movs r3, 0xF0 - lsls r3, 9 - movs r2, 0 - ldr r1, _081421D0 @ =0x00001fff -_081421B2: - adds r0, r4, r3 - adds r0, r5 - strb r2, [r0] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r1 - bls _081421B2 - b _081421E0 - .align 2, 0 -_081421C4: .4byte 0x0201c000 -_081421C8: .4byte gUnknown_02039324 -_081421CC: .4byte 0xfffe4000 -_081421D0: .4byte 0x00001fff -_081421D4: - movs r0, 0x3 - bl sub_8125EC8 - mov r0, r8 - lsls r0, 2 - mov r10, r0 -_081421E0: - movs r4, 0 - ldrh r1, [r7, 0x8] - ldr r2, _081421E8 @ =0x000001ff - b _081421FA - .align 2, 0 -_081421E8: .4byte 0x000001ff -_081421EC: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r7, 0x78 - cmp r4, 0x31 - bhi _08142206 - ldrh r1, [r7, 0x8] -_081421FA: - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _081421EC - cmp r4, 0x31 - bls _08142228 -_08142206: - ldr r5, _08142264 @ =0x0201e000 - adds r6, r5, 0 - adds r5, 0x78 - movs r4, 0 - subs r7, 0x78 -_08142210: - adds r0, r6, 0 - adds r1, r5, 0 - movs r2, 0x78 - bl memcpy - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r6, 0x78 - adds r5, 0x78 - cmp r4, 0x30 - bls _08142210 -_08142228: - adds r0, r7, 0 - mov r1, r9 - movs r2, 0x78 - bl memcpy - movs r0, 0x2 - movs r1, 0xE - movs r2, 0x1B - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _08142268 @ =gMenuText_HOFSaving - movs r1, 0x3 - movs r2, 0xF - bl MenuPrint - ldr r1, _0814226C @ =gTasks - mov r0, r10 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldr r1, _08142270 @ =sub_8142274 - str r1, [r0] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08142264: .4byte 0x0201e000 -_08142268: .4byte gMenuText_HOFSaving -_0814226C: .4byte gTasks -_08142270: .4byte sub_8142274 - thumb_func_end sub_814217C - - thumb_func_start sub_8142274 -sub_8142274: @ 8142274 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _081422A8 @ =gUnknown_03005EBC - ldr r0, _081422AC @ =sub_8141FC4 - str r0, [r1] - movs r0, 0x3 - bl sub_8125D44 - movs r0, 0x37 - bl PlaySE - ldr r1, _081422B0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _081422B4 @ =sub_81422B8 - str r1, [r0] - movs r1, 0x20 - strh r1, [r0, 0xE] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081422A8: .4byte gUnknown_03005EBC -_081422AC: .4byte sub_8141FC4 -_081422B0: .4byte gTasks -_081422B4: .4byte sub_81422B8 - thumb_func_end sub_8142274 - - thumb_func_start sub_81422B8 -sub_81422B8: @ 81422B8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _081422D8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrh r2, [r1, 0xE] - movs r3, 0xE - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _081422DC - subs r0, r2, 0x1 - strh r0, [r1, 0xE] - b _081422E0 - .align 2, 0 -_081422D8: .4byte gTasks -_081422DC: - ldr r0, _081422E4 @ =sub_81422E8 - str r0, [r1] -_081422E0: - pop {r0} - bx r0 - .align 2, 0 -_081422E4: .4byte sub_81422E8 - thumb_func_end sub_81422B8 - - thumb_func_start sub_81422E8 -sub_81422E8: @ 81422E8 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _08142314 @ =gWindowConfig_81E7198 - adds r0, r5, 0 - bl SetUpWindowConfig - adds r0, r5, 0 - bl InitMenuWindow - ldr r1, _08142318 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0814231C @ =sub_8142320 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08142314: .4byte gWindowConfig_81E7198 -_08142318: .4byte gTasks -_0814231C: .4byte sub_8142320 - thumb_func_end sub_81422E8 - - thumb_func_start sub_8142320 -sub_8142320: @ 8142320 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, _08142350 @ =0x0201c000 - ldr r0, _08142354 @ =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r0 - ldrh r6, [r1, 0xA] - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 2 - adds r4, r0, r2 - movs r2, 0xC - ldrsh r0, [r1, r2] - cmp r0, 0x3 - ble _0814235C - ldr r1, _08142358 @ =gUnknown_0840B534 - b _0814235E - .align 2, 0 -_08142350: .4byte 0x0201c000 -_08142354: .4byte gTasks -_08142358: .4byte gUnknown_0840B534 -_0814235C: - ldr r1, _081423F0 @ =gUnknown_0840B564 -_0814235E: - lsls r2, r6, 3 - adds r0, r2, r1 - ldrh r5, [r0] - adds r0, r1, 0x2 - adds r0, r2, r0 - ldrh r3, [r0] - adds r0, r1, 0x4 - adds r0, r2, r0 - ldrh r0, [r0] - mov r9, r0 - adds r1, 0x6 - adds r2, r1 - ldrh r2, [r2] - mov r8, r2 - ldrh r0, [r4, 0x8] - lsls r0, 23 - lsrs r0, 23 - lsls r1, r5, 16 - asrs r1, 16 - lsls r2, r3, 16 - asrs r2, 16 - ldr r3, [r4] - str r3, [sp] - ldr r3, [r4, 0x4] - str r3, [sp, 0x4] - adds r3, r6, 0 - bl sub_81436BC - lsls r0, 24 - lsrs r0, 24 - ldr r3, _081423F4 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r2, r1, r3 - movs r4, 0 - mov r5, r9 - strh r5, [r2, 0x30] - mov r5, r8 - strh r5, [r2, 0x32] - strh r4, [r2, 0x2E] - adds r3, 0x1C - adds r1, r3 - ldr r2, _081423F8 @ =sub_81435DC - str r2, [r1] - ldr r5, _081423FC @ =gTasks - adds r1, r6, 0x5 - lsls r1, 1 - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r1, r4 - adds r2, r5, 0 - adds r2, 0x8 - adds r1, r2 - strh r0, [r1] - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r4, r5 - ldr r0, _08142400 @ =sub_8142404 - str r0, [r4] - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081423F0: .4byte gUnknown_0840B564 -_081423F4: .4byte gSprites -_081423F8: .4byte sub_81435DC -_081423FC: .4byte gTasks -_08142400: .4byte sub_8142404 - thumb_func_end sub_8142320 - - thumb_func_start sub_8142404 -sub_8142404: @ 8142404 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08142470 @ =0x0201c000 - ldr r3, _08142474 @ =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r5, r2, r3 - ldrh r1, [r5, 0xA] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r6, r0, r4 - ldr r4, _08142478 @ =gSprites - adds r1, 0x5 - lsls r1, 1 - adds r1, r2 - adds r3, 0x8 - adds r1, r3 - movs r0, 0 - ldrsh r1, [r1, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x2E - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _0814246A - ldrh r2, [r6, 0x8] - ldr r0, _0814247C @ =0x000001ff - ands r0, r2 - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _08142458 - lsls r0, r2, 23 - lsrs r0, 23 - movs r1, 0 - bl PlayCry1 -_08142458: - adds r0, r6, 0 - movs r1, 0 - movs r2, 0xE - bl sub_8143088 - movs r0, 0x78 - strh r0, [r5, 0xE] - ldr r0, _08142480 @ =sub_8142484 - str r0, [r5] -_0814246A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08142470: .4byte 0x0201c000 -_08142474: .4byte gTasks -_08142478: .4byte gSprites -_0814247C: .4byte 0x000001ff -_08142480: .4byte sub_8142484 - thumb_func_end sub_8142404 - - thumb_func_start sub_8142484 -sub_8142484: @ 8142484 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, _081424BC @ =0x0201c000 - ldr r1, _081424C0 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r6, r0, 3 - adds r4, r6, r1 - ldrh r3, [r4, 0xA] - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 2 - adds r0, r2 - mov r9, r0 - ldrh r2, [r4, 0xE] - movs r7, 0xE - ldrsh r0, [r4, r7] - mov r12, r1 - cmp r0, 0 - beq _081424C4 - subs r0, r2, 0x1 - strh r0, [r4, 0xE] - b _0814255C - .align 2, 0 -_081424BC: .4byte 0x0201c000 -_081424C0: .4byte gTasks -_081424C4: - ldr r2, _0814253C @ =gUnknown_0203931C - ldr r0, _08142540 @ =gSprites - mov r8, r0 - adds r0, r3, 0x5 - lsls r0, 1 - adds r0, r6 - mov r1, r12 - adds r1, 0x8 - adds r6, r0, r1 - movs r7, 0 - ldrsh r1, [r6, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - movs r1, 0x80 - lsls r1, 9 - lsls r1, r0 - ldr r3, [r2] - orrs r3, r1 - str r3, [r2] - ldrh r2, [r4, 0xA] - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bgt _08142550 - mov r7, r9 - ldrh r1, [r7, 0x1C] - ldr r0, _08142544 @ =0x000001ff - ands r0, r1 - cmp r0, 0 - beq _08142550 - adds r0, r2, 0x1 - strh r0, [r4, 0xA] - ldr r0, _08142548 @ =0x0000735f - str r0, [sp] - adds r0, r3, 0 - movs r1, 0 - movs r2, 0xC - movs r3, 0xC - bl BeginNormalPaletteFade - movs r0, 0 - ldrsh r1, [r6, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x5] - ldr r0, _0814254C @ =sub_8142320 - str r0, [r4] - b _0814255C - .align 2, 0 -_0814253C: .4byte gUnknown_0203931C -_08142540: .4byte gSprites -_08142544: .4byte 0x000001ff -_08142548: .4byte 0x0000735f -_0814254C: .4byte sub_8142320 -_08142550: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - add r0, r12 - ldr r1, _0814256C @ =sub_8142570 - str r1, [r0] -_0814255C: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814256C: .4byte sub_8142570 - thumb_func_end sub_8142484 - - thumb_func_start sub_8142570 -sub_8142570: @ 8142570 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08142604 @ =0xffff0000 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0 - bl BeginNormalPaletteFade - movs r3, 0 - lsls r1, r4, 2 - adds r0, r1, r4 - lsls r5, r0, 3 - ldr r0, _08142608 @ =gTasks + 0x8 - mov r12, r0 - mov r8, r1 - ldr r6, _0814260C @ =gSprites - movs r7, 0xD - negs r7, r7 -_0814259E: - adds r0, r3, 0x5 - lsls r0, 1 - adds r0, r5 - mov r2, r12 - adds r1, r0, r2 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0xFF - beq _081425C0 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r2, [r1, 0x5] - adds r0, r7, 0 - ands r0, r2 - strb r0, [r1, 0x5] -_081425C0: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x5 - bls _0814259E - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r0, 0 - movs r1, 0xF - bl sub_8143068 - movs r0, 0x69 - bl PlaySE - ldr r1, _08142610 @ =gTasks - mov r2, r8 - adds r0, r2, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0xC8 - lsls r1, 1 - strh r1, [r0, 0xE] - ldr r1, _08142614 @ =sub_8142618 - str r1, [r0] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08142604: .4byte 0xffff0000 -_08142608: .4byte gTasks + 0x8 -_0814260C: .4byte gSprites -_08142610: .4byte gTasks -_08142614: .4byte sub_8142618 - thumb_func_end sub_8142570 - - thumb_func_start sub_8142618 -sub_8142618: @ 8142618 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r7, _08142658 @ =gTasks - lsls r4, r6, 2 - adds r0, r4, r6 - lsls r5, r0, 3 - adds r1, r5, r7 - ldrh r2, [r1, 0xE] - movs r3, 0xE - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _0814265C - subs r2, 0x1 - strh r2, [r1, 0xE] - movs r0, 0x3 - ands r0, r2 - cmp r0, 0 - bne _081426D2 - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x6E - ble _081426D2 - bl sub_81438C4 - b _081426D2 - .align 2, 0 -_08142658: .4byte gTasks -_0814265C: - movs r3, 0 - mov r9, r4 - ldr r0, _081426E4 @ =gUnknown_0203931C - mov r10, r0 - adds r4, r5, 0 - adds r7, 0x8 - mov r8, r7 - ldr r7, _081426E8 @ =gSprites - movs r1, 0xD - negs r1, r1 - mov r12, r1 - movs r5, 0x4 -_08142674: - adds r0, r3, 0x5 - lsls r0, 1 - adds r0, r4 - mov r2, r8 - adds r1, r0, r2 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0xFF - beq _08142698 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - ldrb r2, [r1, 0x5] - mov r0, r12 - ands r0, r2 - orrs r0, r5 - strb r0, [r1, 0x5] -_08142698: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x5 - bls _08142674 - mov r3, r10 - ldr r0, [r3] - ldr r1, _081426EC @ =0x0000735f - str r1, [sp] - movs r1, 0 - movs r2, 0xC - movs r3, 0xC - bl BeginNormalPaletteFade - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _081426F0 @ =gTasks - mov r2, r9 - adds r0, r2, r6 - lsls r0, 3 - adds r0, r1 - movs r1, 0x7 - strh r1, [r0, 0xE] - ldr r1, _081426F4 @ =sub_81426F8 - str r1, [r0] -_081426D2: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081426E4: .4byte gUnknown_0203931C -_081426E8: .4byte gSprites -_081426EC: .4byte 0x0000735f -_081426F0: .4byte gTasks -_081426F4: .4byte sub_81426F8 - thumb_func_end sub_8142618 - - thumb_func_start sub_81426F8 -sub_81426F8: @ 81426F8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08142718 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r2, r1, r2 - ldrh r1, [r2, 0xE] - movs r3, 0xE - ldrsh r0, [r2, r3] - cmp r0, 0xF - ble _08142720 - ldr r0, _0814271C @ =sub_8142738 - str r0, [r2] - b _0814272E - .align 2, 0 -_08142718: .4byte gTasks -_0814271C: .4byte sub_8142738 -_08142720: - adds r0, r1, 0x1 - strh r0, [r2, 0xE] - ldr r1, _08142734 @ =REG_BLDALPHA - movs r3, 0xE - ldrsh r0, [r2, r3] - lsls r0, 8 - strh r0, [r1] -_0814272E: - pop {r0} - bx r0 - .align 2, 0 -_08142734: .4byte REG_BLDALPHA - thumb_func_end sub_81426F8 - - thumb_func_start sub_8142738 -sub_8142738: @ 8142738 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xCA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _08142784 @ =gWindowConfig_81E71B4 - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl InitMenuWindow - ldr r0, _08142788 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - movs r1, 0x78 - movs r2, 0x48 - movs r3, 0x6 - bl sub_81437A4 - ldr r2, _0814278C @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r2 - strh r0, [r1, 0x10] - movs r0, 0x78 - strh r0, [r1, 0xE] - ldr r0, _08142790 @ =sub_8142794 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08142784: .4byte gWindowConfig_81E71B4 -_08142788: .4byte gSaveBlock2 -_0814278C: .4byte gTasks -_08142790: .4byte sub_8142794 - thumb_func_end sub_8142738 - - thumb_func_start sub_8142794 -sub_8142794: @ 8142794 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _081427B4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _081427B8 - subs r0, r1, 0x1 - strh r0, [r4, 0xE] - b _0814280A - .align 2, 0 -_081427B4: .4byte gTasks -_081427B8: - ldr r2, _081427D8 @ =gSprites - movs r3, 0x10 - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - ldrh r2, [r1, 0x20] - movs r3, 0x20 - ldrsh r0, [r1, r3] - cmp r0, 0xA0 - beq _081427DC - adds r0, r2, 0x1 - strh r0, [r1, 0x20] - b _0814280A - .align 2, 0 -_081427D8: .4byte gSprites -_081427DC: - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0xF - movs r3, 0x9 - bl MenuDrawTextWindow - movs r0, 0x1 - movs r1, 0x2 - bl sub_8143300 - movs r0, 0x2 - movs r1, 0xE - movs r2, 0x1B - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _08142810 @ =gMenuText_HOFCongratulations - movs r1, 0x4 - movs r2, 0xF - bl MenuPrint - ldr r0, _08142814 @ =sub_8142818 - str r0, [r4] -_0814280A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08142810: .4byte gMenuText_HOFCongratulations -_08142814: .4byte sub_8142818 - thumb_func_end sub_8142794 - - thumb_func_start sub_8142818 -sub_8142818: @ 8142818 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08142844 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0814283E - movs r0, 0x4 - bl FadeOutBGM - ldr r0, _08142848 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0814284C @ =sub_8142850 - str r0, [r1] -_0814283E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08142844: .4byte gMain -_08142848: .4byte gTasks -_0814284C: .4byte sub_8142850 - thumb_func_end sub_8142818 - - thumb_func_start sub_8142850 -sub_8142850: @ 8142850 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08142890 @ =gPlttBufferFaded - ldr r1, _08142894 @ =gPlttBufferUnfaded - movs r2, 0x80 - lsls r2, 2 - bl CpuSet - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r1, 0x8 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _08142898 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0814289C @ =sub_81428A0 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08142890: .4byte gPlttBufferFaded -_08142894: .4byte gPlttBufferUnfaded -_08142898: .4byte gTasks -_0814289C: .4byte sub_81428A0 - thumb_func_end sub_8142850 - - thumb_func_start sub_81428A0 -sub_81428A0: @ 81428A0 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _081428C4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081428BE - adds r0, r2, 0 - bl DestroyTask - ldr r0, _081428C8 @ =sub_81439D0 - bl SetMainCallback2 -_081428BE: - pop {r0} - bx r0 - .align 2, 0 -_081428C4: .4byte gPaletteFade -_081428C8: .4byte sub_81439D0 - thumb_func_end sub_81428A0 - - thumb_func_start sub_81428CC -sub_81428CC: @ 81428CC - push {r4,r5,lr} - ldr r0, _081428E4 @ =gMain - ldr r1, _081428E8 @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x5 - bhi _08142908 - lsls r0, 2 - ldr r1, _081428EC @ =_081428F0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081428E4: .4byte gMain -_081428E8: .4byte 0x0000043c -_081428EC: .4byte _081428F0 - .align 2, 0 -_081428F0: - .4byte _08142908 - .4byte _08142928 - .4byte _0814293C - .4byte _08142980 - .4byte _081429C0 - .4byte _081429EC -_08142908: - movs r0, 0 - bl SetVBlankCallback - bl sub_81433E0 - ldr r0, _08142920 @ =gMain - ldr r2, _08142924 @ =0x0000043c - adds r0, r2 - movs r1, 0x1 - strb r1, [r0] - b _08142A12 - .align 2, 0 -_08142920: .4byte gMain -_08142924: .4byte 0x0000043c -_08142928: - bl sub_8143570 - ldr r1, _08142934 @ =gMain - ldr r3, _08142938 @ =0x0000043c - adds r1, r3 - b _081429DC - .align 2, 0 -_08142934: .4byte gMain -_08142938: .4byte 0x0000043c -_0814293C: - ldr r0, _08142968 @ =sub_8141E38 - bl SetVBlankCallback - ldr r3, _0814296C @ =0x04000208 - ldrh r2, [r3] - movs r0, 0 - strh r0, [r3] - ldr r4, _08142970 @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _08142974 @ =REG_DISPSTAT - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r1, _08142978 @ =gMain - ldr r4, _0814297C @ =0x0000043c - adds r1, r4 - b _081429DC - .align 2, 0 -_08142968: .4byte sub_8141E38 -_0814296C: .4byte 0x04000208 -_08142970: .4byte 0x04000200 -_08142974: .4byte REG_DISPSTAT -_08142978: .4byte gMain -_0814297C: .4byte 0x0000043c -_08142980: - ldr r0, _081429AC @ =REG_BLDCNT - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bl sub_81435B8 - ldr r0, _081429B0 @ =0x0201c000 - adds r2, r0, 0 - ldr r1, _081429B4 @ =gUnknown_0840B57C - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - ldm r1!, {r3,r5} - stm r2!, {r3,r5} - bl sub_80C5CD4 - ldr r1, _081429B8 @ =gMain - ldr r4, _081429BC @ =0x0000043c - adds r1, r4 - b _081429DC - .align 2, 0 -_081429AC: .4byte REG_BLDCNT -_081429B0: .4byte 0x0201c000 -_081429B4: .4byte gUnknown_0840B57C -_081429B8: .4byte gMain -_081429BC: .4byte 0x0000043c -_081429C0: - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - bl sub_80C5DCC - lsls r0, 24 - cmp r0, 0 - beq _08142A12 - ldr r1, _081429E4 @ =gMain - ldr r5, _081429E8 @ =0x0000043c - adds r1, r5 -_081429DC: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08142A12 - .align 2, 0 -_081429E4: .4byte gMain -_081429E8: .4byte 0x0000043c -_081429EC: - ldr r1, _08142A18 @ =REG_BLDCNT - ldr r2, _08142A1C @ =0x00003f42 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r3, 0xE2 - lsls r3, 3 - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0 - strh r0, [r1] - ldr r0, _08142A20 @ =sub_8142A28 - movs r1, 0 - bl CreateTask - ldr r0, _08142A24 @ =sub_8141E4C - bl SetMainCallback2 -_08142A12: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08142A18: .4byte REG_BLDCNT -_08142A1C: .4byte 0x00003f42 -_08142A20: .4byte sub_8142A28 -_08142A24: .4byte sub_8141E4C - thumb_func_end sub_81428CC - - thumb_func_start sub_8142A28 -sub_8142A28: @ 8142A28 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x3 - bl sub_8125EC8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08142A54 - ldr r0, _08142A4C @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _08142A50 @ =sub_8142FEC - str r0, [r1] - b _08142AEA - .align 2, 0 -_08142A4C: .4byte gTasks -_08142A50: .4byte sub_8142FEC -_08142A54: - ldr r2, _08142A8C @ =0x0201e000 - movs r3, 0 - ldrh r1, [r2, 0x8] - ldr r4, _08142A90 @ =0x000001ff - adds r0, r4, 0 - ands r0, r1 - ldr r7, _08142A94 @ =gTasks - lsls r6, r5, 2 - cmp r0, 0 - beq _08142A7E -_08142A68: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - adds r2, 0x78 - cmp r3, 0x31 - bhi _08142A98 - ldrh r1, [r2, 0x8] - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - bne _08142A68 -_08142A7E: - cmp r3, 0x31 - bhi _08142A98 - adds r0, r6, r5 - lsls r0, 3 - adds r0, r7 - subs r1, r3, 0x1 - b _08142AA0 - .align 2, 0 -_08142A8C: .4byte 0x0201e000 -_08142A90: .4byte 0x000001ff -_08142A94: .4byte gTasks -_08142A98: - adds r0, r6, r5 - lsls r0, 3 - adds r0, r7 - movs r1, 0x31 -_08142AA0: - strh r1, [r0, 0x8] - movs r0, 0xA - bl sub_8053108 - ldr r2, _08142AF0 @ =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r2 - strh r0, [r1, 0xA] - movs r3, 0 - ldr r7, _08142AF4 @ =0x0600381a - ldr r4, _08142AF8 @ =0x0600385a -_08142AB8: - lsls r1, r3, 1 - adds r2, r1, r7 - adds r0, r3, 0x3 - strh r0, [r2] - adds r1, r4 - adds r0, 0x11 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x10 - bls _08142AB8 - ldr r4, _08142AFC @ =gWindowConfig_81E7198 - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl InitMenuWindow - ldr r1, _08142AF0 @ =gTasks - adds r0, r6, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _08142B00 @ =sub_8142B04 - str r1, [r0] -_08142AEA: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08142AF0: .4byte gTasks -_08142AF4: .4byte 0x0600381a -_08142AF8: .4byte 0x0600385a -_08142AFC: .4byte gWindowConfig_81E7198 -_08142B00: .4byte sub_8142B04 - thumb_func_end sub_8142A28 - - thumb_func_start sub_8142B04 -sub_8142B04: @ 8142B04 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r3, _08142BB8 @ =0x0201e000 - movs r5, 0 - ldr r1, _08142BBC @ =gTasks - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r6, r1, 0 - ldr r2, _08142BC0 @ =gUnknown_0203931C - cmp r5, r0 - bge _08142B3E - adds r1, r0, 0 -_08142B32: - adds r3, 0x78 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r1 - blt _08142B32 -_08142B3E: - adds r4, r3, 0 - movs r0, 0 - str r0, [r2] - mov r5, r8 - lsls r2, r5, 2 - adds r1, r2, r5 - lsls r1, 3 - adds r1, r6 - strh r0, [r1, 0xC] - strh r0, [r1, 0x10] - movs r5, 0 - str r2, [sp, 0xC] - ldr r6, _08142BC4 @ =0x000001ff - adds r2, r1, 0 -_08142B5A: - ldrh r1, [r4, 0x8] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _08142B6A - ldrh r0, [r2, 0x10] - adds r0, 0x1 - strh r0, [r2, 0x10] -_08142B6A: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - adds r4, 0x14 - cmp r5, 0x5 - bls _08142B5A - adds r4, r3, 0 - movs r5, 0 - ldr r1, _08142BBC @ =gTasks - ldr r0, [sp, 0xC] - add r0, r8 - lsls r7, r0, 3 - adds r6, r7, r1 - str r6, [sp, 0x8] - adds r1, 0x8 - mov r9, r1 - ldr r0, _08142BC8 @ =gUnknown_0840B564 - mov r10, r0 -_08142B8E: - ldrh r1, [r4, 0x8] - ldr r2, _08142BC4 @ =0x000001ff - adds r0, r2, 0 - ands r0, r1 - adds r6, r1, 0 - cmp r0, 0 - beq _08142C30 - ldr r1, [sp, 0x8] - movs r2, 0x10 - ldrsh r0, [r1, r2] - cmp r0, 0x3 - ble _08142BD4 - lsls r1, r5, 3 - ldr r0, _08142BCC @ =gUnknown_0840B534 - adds r0, 0x4 - adds r0, r1, r0 - ldrh r3, [r0] - ldr r0, _08142BD0 @ =gUnknown_0840B53A - adds r1, r0 - b _08142BE2 - .align 2, 0 -_08142BB8: .4byte 0x0201e000 -_08142BBC: .4byte gTasks -_08142BC0: .4byte gUnknown_0203931C -_08142BC4: .4byte 0x000001ff -_08142BC8: .4byte gUnknown_0840B564 -_08142BCC: .4byte gUnknown_0840B534 -_08142BD0: .4byte gUnknown_0840B53A -_08142BD4: - lsls r1, r5, 3 - mov r0, r10 - adds r0, 0x4 - adds r0, r1, r0 - ldrh r3, [r0] - ldr r2, _08142C28 @ =gUnknown_0840B56A - adds r1, r2 -_08142BE2: - ldrh r2, [r1] - lsls r0, r6, 23 - lsrs r0, 23 - lsls r1, r3, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - ldr r3, [r4] - str r3, [sp] - ldr r3, [r4, 0x4] - str r3, [sp, 0x4] - adds r3, r5, 0 - bl sub_81436BC - lsls r0, 16 - lsrs r0, 16 - ldr r2, _08142C2C @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r3, [r1, 0x5] - movs r6, 0xD - negs r6, r6 - adds r2, r6, 0 - ands r3, r2 - movs r2, 0x4 - orrs r3, r2 - strb r3, [r1, 0x5] - adds r1, r5, 0x5 - lsls r1, 1 - adds r1, r7 - add r1, r9 - strh r0, [r1] - b _08142C3C - .align 2, 0 -_08142C28: .4byte gUnknown_0840B56A -_08142C2C: .4byte gSprites -_08142C30: - adds r0, r5, 0x5 - lsls r0, 1 - adds r0, r7 - add r0, r9 - movs r1, 0xFF - strh r1, [r0] -_08142C3C: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - adds r4, 0x14 - cmp r5, 0x5 - bls _08142B8E - ldr r0, _08142CB0 @ =0xffff0000 - ldr r2, _08142CB4 @ =0x0000735f - movs r1, 0xC - bl BlendPalettes - ldr r3, _08142CB8 @ =gStringVar1 - ldr r1, _08142CBC @ =gMenuText_HOFNumber - adds r0, r3, 0 - bl StringCopy - adds r3, r0, 0 - movs r5, 0xFC - strb r5, [r3] - movs r0, 0x14 - strb r0, [r3, 0x1] - movs r0, 0x6 - strb r0, [r3, 0x2] - adds r3, 0x3 - ldr r0, _08142CC0 @ =gTasks - ldr r4, [sp, 0xC] - add r4, r8 - lsls r4, 3 - adds r4, r0 - movs r0, 0xA - ldrsh r1, [r4, r0] - adds r0, r3, 0 - bl ConvertIntToDecimalString - adds r3, r0, 0 - strb r5, [r3] - movs r0, 0x13 - strb r0, [r3, 0x1] - movs r0, 0xF0 - strb r0, [r3, 0x2] - movs r0, 0xFF - strb r0, [r3, 0x3] - ldr r0, _08142CB8 @ =gStringVar1 - movs r1, 0 - movs r2, 0 - bl MenuPrint - ldr r0, _08142CC4 @ =sub_8142CC8 - str r0, [r4] - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08142CB0: .4byte 0xffff0000 -_08142CB4: .4byte 0x0000735f -_08142CB8: .4byte gStringVar1 -_08142CBC: .4byte gMenuText_HOFNumber -_08142CC0: .4byte gTasks -_08142CC4: .4byte sub_8142CC8 - thumb_func_end sub_8142B04 - - thumb_func_start sub_8142CC8 -sub_8142CC8: @ 8142CC8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08142DD0 @ =0x0201e000 - mov r8, r0 - movs r3, 0 - ldr r1, _08142DD4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - cmp r3, r0 - bge _08142CFE - adds r1, r0, 0 -_08142CF0: - movs r0, 0x78 - add r8, r0 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r1 - blt _08142CF0 -_08142CFE: - movs r3, 0 - lsls r6, r4, 2 - adds r0, r6, r4 - lsls r5, r0, 3 - ldr r1, _08142DD8 @ =gTasks + 0x8 - mov r10, r1 - ldr r2, _08142DDC @ =gSprites - mov r12, r2 - movs r0, 0xD - negs r0, r0 - mov r9, r0 - movs r7, 0x4 -_08142D16: - adds r0, r3, 0x5 - lsls r0, 1 - adds r0, r5 - add r0, r10 - ldrh r1, [r0] - cmp r1, 0xFF - beq _08142D36 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r12 - ldrb r2, [r0, 0x5] - mov r1, r9 - ands r1, r2 - orrs r1, r7 - strb r1, [r0, 0x5] -_08142D36: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x5 - bls _08142D16 - adds r1, r6, r4 - lsls r1, 3 - ldr r2, _08142DD4 @ =gTasks - adds r5, r1, r2 - movs r2, 0xC - ldrsh r0, [r5, r2] - adds r0, 0x5 - lsls r0, 1 - adds r0, r1 - ldr r1, _08142DD4 @ =gTasks - adds r1, 0x8 - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08142DDC @ =gSprites - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - strb r1, [r0, 0x5] - lsrs r1, 4 - movs r0, 0x80 - lsls r0, 9 - lsls r0, r1 - ldr r1, _08142DE0 @ =0xffff0000 - eors r0, r1 - ldr r2, _08142DE4 @ =gUnknown_0203931C - str r0, [r2] - ldr r2, _08142DE8 @ =0x0000735f - movs r1, 0xC - bl BlendPalettesUnfaded - movs r0, 0xC - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - mov r1, r8 - adds r4, r1, r0 - ldrh r1, [r4, 0x8] - ldr r0, _08142DEC @ =0x000001ff - ands r0, r1 - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _08142DB2 - bl StopCryAndClearCrySongs - ldrh r0, [r4, 0x8] - lsls r0, 23 - lsrs r0, 23 - movs r1, 0 - bl PlayCry1 -_08142DB2: - adds r0, r4, 0 - movs r1, 0 - movs r2, 0xE - bl sub_8143088 - ldr r0, _08142DF0 @ =sub_8142DF4 - str r0, [r5] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08142DD0: .4byte 0x0201e000 -_08142DD4: .4byte gTasks -_08142DD8: .4byte gTasks + 0x8 -_08142DDC: .4byte gSprites -_08142DE0: .4byte 0xffff0000 -_08142DE4: .4byte gUnknown_0203931C -_08142DE8: .4byte 0x0000735f -_08142DEC: .4byte 0x000001ff -_08142DF0: .4byte sub_8142DF4 - thumb_func_end sub_8142CC8 - - thumb_func_start sub_8142DF4 -sub_8142DF4: @ 8142DF4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _08142E88 @ =gMain - ldrh r2, [r1, 0x2E] - movs r0, 0x1 - ands r0, r2 - adds r3, r1, 0 - cmp r0, 0 - beq _08142EC4 - ldr r7, _08142E8C @ =gTasks - lsls r0, r6, 2 - adds r1, r0, r6 - lsls r3, r1, 3 - adds r4, r3, r7 - ldrh r2, [r4, 0x8] - movs r5, 0x8 - ldrsh r1, [r4, r5] - mov r8, r0 - cmp r1, 0 - beq _08142E98 - subs r0, r2, 0x1 - strh r0, [r4, 0x8] - movs r5, 0 - adds r7, 0x8 - mov r9, r7 - adds r7, r3, 0 -_08142E30: - adds r0, r5, 0x5 - lsls r0, 1 - adds r0, r7 - add r0, r9 - ldrb r1, [r0] - cmp r1, 0xFF - beq _08142E5E - ldr r0, _08142E90 @ =gSprites - lsls r4, r1, 4 - adds r4, r1 - lsls r4, 2 - adds r4, r0 - ldrb r0, [r4, 0x5] - lsrs r0, 4 - bl GetSpritePaletteTagByPaletteNum - lsls r0, 16 - lsrs r0, 16 - bl FreeSpritePaletteByTag - adds r0, r4, 0 - bl DestroySprite -_08142E5E: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _08142E30 - ldr r0, _08142E8C @ =gTasks - mov r2, r8 - adds r1, r2, r6 - lsls r1, 3 - adds r1, r0 - ldrh r2, [r1, 0xA] - movs r3, 0xA - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _08142E80 - subs r0, r2, 0x1 - strh r0, [r1, 0xA] -_08142E80: - ldr r0, _08142E94 @ =sub_8142B04 - str r0, [r1] - b _08142F64 - .align 2, 0 -_08142E88: .4byte gMain -_08142E8C: .4byte gTasks -_08142E90: .4byte gSprites -_08142E94: .4byte sub_8142B04 -_08142E98: - bl IsCryPlayingOrClearCrySongs - lsls r0, 24 - cmp r0, 0 - beq _08142EB2 - bl StopCryAndClearCrySongs - ldr r0, _08142EB8 @ =gMPlay_BGM - ldr r1, _08142EBC @ =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl -_08142EB2: - ldr r0, _08142EC0 @ =sub_8142F78 - str r0, [r4] - b _08142F64 - .align 2, 0 -_08142EB8: .4byte gMPlay_BGM -_08142EBC: .4byte 0x0000ffff -_08142EC0: .4byte sub_8142F78 -_08142EC4: - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _08142F08 - bl IsCryPlayingOrClearCrySongs - lsls r0, 24 - cmp r0, 0 - beq _08142EE6 - bl StopCryAndClearCrySongs - ldr r0, _08142EF8 @ =gMPlay_BGM - ldr r1, _08142EFC @ =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl -_08142EE6: - ldr r0, _08142F00 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _08142F04 @ =sub_8142F78 - str r0, [r1] - b _08142F64 - .align 2, 0 -_08142EF8: .4byte gMPlay_BGM -_08142EFC: .4byte 0x0000ffff -_08142F00: .4byte gTasks -_08142F04: .4byte sub_8142F78 -_08142F08: - movs r0, 0x40 - ands r0, r2 - cmp r0, 0 - beq _08142F38 - ldr r0, _08142F30 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldrh r2, [r1, 0xC] - movs r4, 0xC - ldrsh r0, [r1, r4] - cmp r0, 0 - beq _08142F38 - subs r0, r2, 0x1 - strh r0, [r1, 0xC] - ldr r0, _08142F34 @ =sub_8142CC8 - str r0, [r1] - b _08142F64 - .align 2, 0 -_08142F30: .4byte gTasks -_08142F34: .4byte sub_8142CC8 -_08142F38: - ldrh r1, [r3, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08142F64 - ldr r1, _08142F70 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r2, r0, r1 - movs r5, 0xC - ldrsh r1, [r2, r5] - movs r3, 0x10 - ldrsh r0, [r2, r3] - subs r0, 0x1 - cmp r1, r0 - bge _08142F64 - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] - ldr r0, _08142F74 @ =sub_8142CC8 - str r0, [r2] -_08142F64: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08142F70: .4byte gTasks -_08142F74: .4byte sub_8142CC8 - thumb_func_end sub_8142DF4 - - thumb_func_start sub_8142F78 -sub_8142F78: @ 8142F78 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08142FB4 @ =gPlttBufferFaded - ldr r1, _08142FB8 @ =gPlttBufferUnfaded - movs r2, 0x80 - lsls r2, 2 - bl CpuSet - ldr r0, _08142FBC @ =0x0201c000 - adds r2, r0, 0 - ldr r1, _08142FC0 @ =gUnknown_0840B57C - ldm r1!, {r3,r5,r6} - stm r2!, {r3,r5,r6} - ldm r1!, {r3,r5} - stm r2!, {r3,r5} - bl sub_80C5E38 - ldr r1, _08142FC4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08142FC8 @ =sub_8142FCC - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08142FB4: .4byte gPlttBufferFaded -_08142FB8: .4byte gPlttBufferUnfaded -_08142FBC: .4byte 0x0201c000 -_08142FC0: .4byte gUnknown_0840B57C -_08142FC4: .4byte gTasks -_08142FC8: .4byte sub_8142FCC - thumb_func_end sub_8142F78 - - thumb_func_start sub_8142FCC -sub_8142FCC: @ 8142FCC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80C5F98 - lsls r0, 24 - cmp r0, 0 - beq _08142FE6 - adds r0, r4, 0 - bl DestroyTask - bl ReturnFromHallOfFamePC -_08142FE6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8142FCC - - thumb_func_start sub_8142FEC -sub_8142FEC: @ 8142FEC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - movs r1, 0xE - movs r2, 0x1B - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _08143020 @ =gMenuText_HOFCorrupt - movs r1, 0x3 - movs r2, 0xF - bl MenuPrintMessage - ldr r1, _08143024 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08143028 @ =sub_814302C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08143020: .4byte gMenuText_HOFCorrupt -_08143024: .4byte gTasks -_08143028: .4byte sub_814302C - thumb_func_end sub_8142FEC - - thumb_func_start sub_814302C -sub_814302C: @ 814302C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl MenuUpdateWindowText - lsls r0, 24 - cmp r0, 0 - beq _08143056 - ldr r0, _0814305C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08143056 - ldr r0, _08143060 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _08143064 @ =sub_8142F78 - str r0, [r1] -_08143056: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814305C: .4byte gMain -_08143060: .4byte gTasks -_08143064: .4byte sub_8142F78 - thumb_func_end sub_814302C - - thumb_func_start sub_8143068 -sub_8143068: @ 8143068 - push {lr} - lsls r2, r1, 24 - ldr r0, _08143084 @ =gMenuText_WelcomeToHOFAndDexRating - movs r1, 0x80 - lsls r1, 17 - adds r2, r1 - lsrs r2, 24 - movs r1, 0 - movs r3, 0xF0 - bl sub_8072BD8 - pop {r0} - bx r0 - .align 2, 0 -_08143084: .4byte gMenuText_WelcomeToHOFAndDexRating - thumb_func_end sub_8143068 - - thumb_func_start sub_8143088 -sub_8143088: @ 8143088 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - mov r9, r0 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - ldr r7, _08143188 @ =gStringVar1 - movs r0, 0xFC - strb r0, [r7] - movs r0, 0x13 - strb r0, [r7, 0x1] - movs r0, 0x28 - strb r0, [r7, 0x2] - movs r0, 0xFF - strb r0, [r7, 0x3] - mov r0, r9 - ldrh r2, [r0, 0x8] - ldr r0, _0814318C @ =0x000001ff - ands r0, r2 - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _081430EA - lsls r0, r2, 23 - lsrs r0, 23 - bl SpeciesToPokedexNum - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, _08143190 @ =0x0000ffff - cmp r6, r0 - beq _081430EA - ldr r1, _08143194 @ =gOtherText_Number2 - adds r0, r7, 0 - bl StringCopy - adds r7, r0, 0 - adds r1, r6, 0 - movs r2, 0x2 - movs r3, 0x3 - bl ConvertIntToDecimalStringN -_081430EA: - ldr r5, _08143188 @ =gStringVar1 - mov r1, r8 - adds r1, 0x4 - lsls r1, 24 - lsrs r1, 24 - mov r4, r10 - adds r4, 0x1 - lsls r2, r4, 24 - lsrs r2, 24 - adds r0, r5, 0 - bl MenuPrint - adds r7, r5, 0 - movs r3, 0 - mov r1, r9 - ldrb r0, [r1, 0xA] - str r4, [sp] - mov r2, r8 - adds r2, 0x9 - str r2, [sp, 0xC] - mov r6, r10 - adds r6, 0x3 - str r6, [sp, 0x8] - cmp r0, 0xFF - beq _0814313A - mov r2, r9 - adds r2, 0xA -_08143120: - adds r1, r7, r3 - adds r0, r2, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x9 - bhi _0814313A - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08143120 -_0814313A: - adds r7, r3 - movs r2, 0xFF - strb r2, [r7] - mov r1, r9 - ldrh r0, [r1, 0x8] - ldr r1, _0814318C @ =0x000001ff - ands r1, r0 - movs r0, 0xCE - lsls r0, 1 - cmp r1, r0 - bne _08143198 - movs r0, 0xFC - strb r0, [r7] - movs r0, 0x13 - strb r0, [r7, 0x1] - movs r0, 0xA0 - strb r0, [r7, 0x2] - strb r2, [r7, 0x3] - ldr r0, _08143188 @ =gStringVar1 - ldr r2, [sp, 0xC] - lsls r1, r2, 24 - lsrs r1, 24 - ldr r3, [sp] - lsls r2, r3, 24 - lsrs r2, 24 - bl MenuPrint - ldr r6, [sp, 0x8] - lsls r1, r6, 24 - lsrs r1, 24 - mov r3, r10 - adds r3, 0x4 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0 - movs r2, 0x1D - bl MenuZeroFillWindowRect - b _081432E4 - .align 2, 0 -_08143188: .4byte gStringVar1 -_0814318C: .4byte 0x000001ff -_08143190: .4byte 0x0000ffff -_08143194: .4byte gOtherText_Number2 -_08143198: - movs r0, 0xFC - strb r0, [r7] - movs r0, 0x13 - strb r0, [r7, 0x1] - movs r0, 0x3E - strb r0, [r7, 0x2] - adds r7, 0x3 - movs r0, 0xBA - strb r0, [r7] - adds r7, 0x1 - movs r3, 0 - ldr r2, _08143238 @ =gSpeciesNames - mov r1, r9 - ldrh r0, [r1, 0x8] - lsls r0, 23 - lsrs r0, 23 - movs r1, 0xB - muls r0, r1 - adds r0, r2 - ldrb r0, [r0] - mov r6, r8 - adds r6, 0x7 - str r6, [sp, 0x4] - mov r1, r8 - adds r1, 0xD - str r1, [sp, 0x10] - cmp r0, 0xFF - beq _08143204 - adds r5, r2, 0 - movs r4, 0xB -_081431D4: - adds r1, r7, r3 - mov r6, r9 - ldrh r0, [r6, 0x8] - lsls r0, 23 - lsrs r0, 23 - muls r0, r4 - adds r0, r3, r0 - adds r0, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x9 - bhi _08143204 - ldrh r0, [r6, 0x8] - lsls r0, 23 - lsrs r0, 23 - muls r0, r4 - adds r0, r3, r0 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0xFF - bne _081431D4 -_08143204: - adds r7, r3 - movs r0, 0 - strb r0, [r7] - adds r7, 0x1 - mov r1, r9 - ldrh r0, [r1, 0x8] - ldr r1, _0814323C @ =0x000001ff - ands r1, r0 - cmp r1, 0x20 - beq _0814324A - cmp r1, 0x1D - beq _0814324A - lsls r0, 23 - lsrs r0, 23 - mov r2, r9 - ldr r1, [r2, 0x4] - bl GetGenderFromSpeciesAndPersonality - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08143240 - cmp r0, 0xFE - beq _08143244 - b _0814324A - .align 2, 0 -_08143238: .4byte gSpeciesNames -_0814323C: .4byte 0x000001ff -_08143240: - movs r0, 0xB5 - b _08143246 -_08143244: - movs r0, 0xB6 -_08143246: - strb r0, [r7] - adds r7, 0x1 -_0814324A: - movs r4, 0xFC - strb r4, [r7] - movs r3, 0x13 - mov r8, r3 - strb r3, [r7, 0x1] - movs r0, 0xA0 - strb r0, [r7, 0x2] - movs r6, 0xFF - mov r10, r6 - strb r6, [r7, 0x3] - ldr r5, _081432F4 @ =gStringVar1 - ldr r0, [sp, 0xC] - lsls r1, r0, 24 - lsrs r1, 24 - ldr r3, [sp] - lsls r2, r3, 24 - lsrs r2, 24 - adds r0, r5, 0 - bl MenuPrint - mov r6, r9 - ldrb r0, [r6, 0x9] - lsrs r6, r0, 1 - ldr r1, _081432F8 @ =gOtherText_Level3 - adds r0, r5, 0 - bl StringCopy - adds r7, r0, 0 - strb r4, [r7] - movs r0, 0x14 - strb r0, [r7, 0x1] - movs r0, 0x6 - strb r0, [r7, 0x2] - adds r7, 0x3 - adds r0, r7, 0 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r7, r0, 0 - strb r4, [r7] - mov r0, r8 - strb r0, [r7, 0x1] - movs r0, 0x30 - strb r0, [r7, 0x2] - mov r1, r10 - strb r1, [r7, 0x3] - ldr r2, [sp, 0x4] - lsls r1, r2, 24 - lsrs r1, 24 - ldr r3, [sp, 0x8] - lsls r4, r3, 24 - lsrs r4, 24 - adds r0, r5, 0 - adds r2, r4, 0 - bl MenuPrint - mov r0, r9 - ldrh r6, [r0] - ldr r1, _081432FC @ =gOtherText_IDNumber - adds r0, r5, 0 - bl StringCopy - adds r7, r0, 0 - adds r1, r6, 0 - movs r2, 0x2 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - ldr r2, [sp, 0x10] - lsls r1, r2, 24 - lsrs r1, 24 - adds r0, r5, 0 - adds r2, r4, 0 - bl MenuPrint -_081432E4: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081432F4: .4byte gStringVar1 -_081432F8: .4byte gOtherText_Level3 -_081432FC: .4byte gOtherText_IDNumber - thumb_func_end sub_8143088 - - thumb_func_start sub_8143300 -sub_8143300: @ 8143300 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - adds r5, r0, 0 - adds r4, r1, 0 - lsls r5, 24 - lsls r4, 24 - ldr r0, _081433CC @ =gOtherText_Name - lsrs r1, r5, 24 - mov r8, r1 - movs r2, 0x80 - lsls r2, 17 - adds r5, r2 - lsrs r5, 24 - lsrs r6, r4, 24 - adds r4, r2 - lsrs r4, 24 - adds r1, r5, 0 - adds r2, r4, 0 - bl MenuPrint - ldr r0, _081433D0 @ =gSaveBlock2 - mov r10, r0 - movs r1, 0xE - add r8, r1 - mov r2, r8 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - mov r1, r8 - adds r2, r4, 0 - bl MenuPrint_RightAligned - ldr r0, _081433D4 @ =gOtherText_IDNumber2 - adds r4, r6, 0x3 - lsls r4, 24 - lsrs r4, 24 - adds r1, r5, 0 - adds r2, r4, 0 - bl MenuPrint - mov r0, r10 - ldrb r1, [r0, 0xA] - ldrb r0, [r0, 0xB] - lsls r0, 8 - orrs r1, r0 - ldr r2, _081433D8 @ =gStringVar1 - mov r9, r2 - mov r0, r9 - movs r2, 0x2 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - mov r0, r9 - mov r1, r8 - adds r2, r4, 0 - bl MenuPrint_RightAligned - ldr r0, _081433DC @ =gMainMenuString_Time - adds r6, 0x5 - lsls r6, 24 - lsrs r6, 24 - adds r1, r5, 0 - adds r2, r6, 0 - bl MenuPrint - mov r0, r10 - ldrh r1, [r0, 0xE] - mov r0, r9 - bl ConvertIntToDecimalString - adds r2, r0, 0 - movs r1, 0 - strb r1, [r2] - movs r0, 0xF0 - strb r0, [r2, 0x1] - strb r1, [r2, 0x2] - adds r2, 0x3 - mov r0, r10 - ldrb r1, [r0, 0x10] - adds r0, r2, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - adds r2, r0, 0 - movs r0, 0xFF - strb r0, [r2] - mov r0, r9 - mov r1, r8 - adds r2, r6, 0 - bl MenuPrint_RightAligned - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081433CC: .4byte gOtherText_Name -_081433D0: .4byte gSaveBlock2 -_081433D4: .4byte gOtherText_IDNumber2 -_081433D8: .4byte gStringVar1 -_081433DC: .4byte gMainMenuString_Time - thumb_func_end sub_8143300 - - thumb_func_start sub_81433E0 -sub_81433E0: @ 81433E0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - movs r0, 0x80 - lsls r0, 19 - movs r1, 0 - strh r1, [r0] - adds r0, 0x8 - strh r1, [r0] - adds r0, 0x8 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x8 - strh r1, [r0] - adds r0, 0xA - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0xA - strh r1, [r0] - adds r0, 0xC - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0xC - strh r1, [r0] - adds r0, 0xE - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - movs r3, 0xC0 - lsls r3, 19 - movs r4, 0xC0 - lsls r4, 9 - add r0, sp, 0x4 - mov r8, r0 - ldr r1, _0814354C @ =gHallOfFame_Gfx - mov r9, r1 - mov r2, sp - movs r6, 0 - ldr r1, _08143550 @ =0x040000d4 - movs r5, 0x80 - lsls r5, 5 - ldr r7, _08143554 @ =0x81000800 - movs r0, 0x81 - lsls r0, 24 - mov r12, r0 -_08143444: - strh r6, [r2] - mov r0, sp - str r0, [r1] - str r3, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r5 - subs r4, r5 - cmp r4, r5 - bhi _08143444 - strh r6, [r2] - mov r2, sp - str r2, [r1] - str r3, [r1, 0x4] - lsrs r0, r4, 1 - mov r2, r12 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0xE0 - lsls r0, 19 - movs r3, 0x80 - lsls r3, 3 - movs r4, 0 - str r4, [sp, 0x4] - ldr r2, _08143550 @ =0x040000d4 - mov r1, r8 - str r1, [r2] - str r0, [r2, 0x4] - lsrs r0, r3, 2 - movs r1, 0x85 - lsls r1, 24 - orrs r0, r1 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r1, 0xA0 - lsls r1, 19 - mov r0, sp - strh r4, [r0] - str r0, [r2] - str r1, [r2, 0x4] - lsrs r3, 1 - movs r0, 0x81 - lsls r0, 24 - orrs r3, r0 - str r3, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r1, 0xC0 - lsls r1, 19 - mov r0, r9 - bl LZ77UnCompVram - movs r1, 0 - ldr r3, _08143558 @ =0x06003800 - movs r2, 0x1 -_081434B2: - lsls r0, r1, 1 - adds r0, r3 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3F - bls _081434B2 - movs r1, 0 - ldr r5, _0814355C @ =0x02000000 - ldr r3, _08143560 @ =0x06003b80 - movs r2, 0x1 -_081434CA: - lsls r0, r1, 1 - adds r0, r3 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xBF - bls _081434CA - movs r1, 0 - ldr r4, _08143564 @ =0x06003000 - movs r3, 0x2 - ldr r2, _08143568 @ =0x000003ff -_081434E2: - lsls r0, r1, 1 - adds r0, r4 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bls _081434E2 - adds r2, r5, 0 - movs r3, 0x80 - lsls r3, 7 - mov r4, sp - movs r6, 0 - ldr r1, _08143550 @ =0x040000d4 - movs r5, 0x80 - lsls r5, 5 - ldr r7, _08143554 @ =0x81000800 - movs r0, 0x81 - lsls r0, 24 - mov r12, r0 -_0814350A: - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r5 - subs r3, r5 - cmp r3, r5 - bhi _0814350A - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 1 - mov r2, r12 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - bl ResetPaletteFade - ldr r0, _0814356C @ =gHallOfFame_Pal - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814354C: .4byte gHallOfFame_Gfx -_08143550: .4byte 0x040000d4 -_08143554: .4byte 0x81000800 -_08143558: .4byte 0x06003800 -_0814355C: .4byte 0x02000000 -_08143560: .4byte 0x06003b80 -_08143564: .4byte 0x06003000 -_08143568: .4byte 0x000003ff -_0814356C: .4byte gHallOfFame_Pal - thumb_func_end sub_81433E0 - - thumb_func_start sub_8143570 -sub_8143570: @ 8143570 - push {r4,lr} - bl remove_some_task - bl ResetTasks - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r1, _081435A8 @ =gReservedSpritePaletteCount - movs r0, 0x8 - strb r0, [r1] - ldr r0, _081435AC @ =gUnknown_0840B514 - bl LoadCompressedObjectPic - ldr r0, _081435B0 @ =gUnknown_0840B524 - bl LoadCompressedObjectPalette - ldr r4, _081435B4 @ =gWindowConfig_81E71B4 - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl InitMenuWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081435A8: .4byte gReservedSpritePaletteCount -_081435AC: .4byte gUnknown_0840B514 -_081435B0: .4byte gUnknown_0840B524 -_081435B4: .4byte gWindowConfig_81E71B4 - thumb_func_end sub_8143570 - - thumb_func_start sub_81435B8 -sub_81435B8: @ 81435B8 - ldr r1, _081435D8 @ =REG_BG1CNT - movs r2, 0xE0 - lsls r2, 3 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x4 - subs r2, 0xFD - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xE - movs r2, 0xDA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_081435D8: .4byte REG_BG1CNT - thumb_func_end sub_81435B8 - - thumb_func_start sub_81435DC -sub_81435DC: @ 81435DC - push {r4,lr} - adds r2, r0, 0 - ldr r1, [r2, 0x20] - ldr r0, [r2, 0x30] - cmp r1, r0 - beq _08143632 - ldrh r3, [r2, 0x20] - movs r1, 0x20 - ldrsh r0, [r2, r1] - movs r4, 0x30 - ldrsh r1, [r2, r4] - cmp r0, r1 - bge _081435FC - adds r0, r3, 0 - adds r0, 0xF - strh r0, [r2, 0x20] -_081435FC: - ldrh r3, [r2, 0x20] - movs r4, 0x20 - ldrsh r0, [r2, r4] - cmp r0, r1 - ble _0814360C - adds r0, r3, 0 - subs r0, 0xF - strh r0, [r2, 0x20] -_0814360C: - ldrh r3, [r2, 0x22] - movs r1, 0x22 - ldrsh r0, [r2, r1] - movs r4, 0x32 - ldrsh r1, [r2, r4] - cmp r0, r1 - bge _08143620 - adds r0, r3, 0 - adds r0, 0xA - strh r0, [r2, 0x22] -_08143620: - ldrh r3, [r2, 0x22] - movs r4, 0x22 - ldrsh r0, [r2, r4] - cmp r0, r1 - ble _0814363A - adds r0, r3, 0 - subs r0, 0xA - strh r0, [r2, 0x22] - b _0814363A -_08143632: - movs r0, 0x1 - strh r0, [r2, 0x2E] - ldr r0, _08143640 @ =nullsub_81 - str r0, [r2, 0x1C] -_0814363A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08143640: .4byte nullsub_81 - thumb_func_end sub_81435DC - - thumb_func_start nullsub_81 -nullsub_81: @ 8143644 - bx lr - thumb_func_end nullsub_81 - - thumb_func_start sub_8143648 -sub_8143648: @ 8143648 - push {r4-r7,lr} - lsls r1, 24 - ldr r4, _08143670 @ =gUnknown_02024E8C - adds r3, r4, 0 - ldr r2, _08143674 @ =gUnknown_0840B6B8 - ldm r2!, {r5-r7} - stm r3!, {r5-r7} - ldm r2!, {r5-r7} - stm r3!, {r5-r7} - strh r0, [r4, 0x2] - ldr r0, _08143678 @ =gUnknown_0840B69C - lsrs r1, 22 - adds r1, r0 - ldr r0, [r1] - str r0, [r4, 0xC] - ldr r0, _0814367C @ =gSpriteAnimTable_81E7C64 - str r0, [r4, 0x8] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08143670: .4byte gUnknown_02024E8C -_08143674: .4byte gUnknown_0840B6B8 -_08143678: .4byte gUnknown_0840B69C -_0814367C: .4byte gSpriteAnimTable_81E7C64 - thumb_func_end sub_8143648 - - thumb_func_start sub_8143680 -sub_8143680: @ 8143680 - push {r4-r7,lr} - lsls r1, 24 - ldr r4, _081436AC @ =gUnknown_02024E8C - adds r3, r4, 0 - ldr r2, _081436B0 @ =gUnknown_0840B6B8 - ldm r2!, {r5-r7} - stm r3!, {r5-r7} - ldm r2!, {r5-r7} - stm r3!, {r5-r7} - strh r0, [r4, 0x2] - ldr r0, _081436B4 @ =gUnknown_0840B69C - lsrs r1, 22 - adds r1, r0 - ldr r0, [r1] - str r0, [r4, 0xC] - ldr r0, _081436B8 @ =gUnknown_081EC2A4 - ldr r0, [r0] - str r0, [r4, 0x8] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081436AC: .4byte gUnknown_02024E8C -_081436B0: .4byte gUnknown_0840B6B8 -_081436B4: .4byte gUnknown_0840B69C -_081436B8: .4byte gUnknown_081EC2A4 - thumb_func_end sub_8143680 - - thumb_func_start sub_81436BC -sub_81436BC: @ 81436BC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - adds r6, r0, 0 - mov r9, r1 - mov r10, r2 - mov r8, r3 - ldr r7, [sp, 0x34] - lsls r6, 16 - lsrs r6, 16 - mov r0, r9 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - mov r1, r10 - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - mov r2, r8 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - lsls r0, r6, 3 - ldr r1, _08143790 @ =gMonFrontPicTable - adds r0, r1 - ldr r1, _08143794 @ =gMonFrontPicCoords - lsls r2, r6, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08143798 @ =gUnknown_0840B5A0 - mov r12, r4 - mov r5, r8 - lsls r4, r5, 2 - add r4, r12 - ldr r4, [r4] - str r4, [sp] - str r6, [sp, 0x4] - str r7, [sp, 0x8] - movs r4, 0x1 - str r4, [sp, 0xC] - bl sub_800D378 - adds r0, r6, 0 - ldr r1, [sp, 0x30] - adds r2, r7, 0 - bl species_and_otid_get_pal - lsls r4, r5, 4 - movs r2, 0x80 - lsls r2, 1 - adds r1, r4, r2 - lsls r1, 16 - lsrs r1, 16 - movs r2, 0x20 - bl LoadCompressedPalette - lsls r1, r5, 24 - lsrs r1, 24 - mov r0, r8 - bl sub_8143648 - ldr r0, _0814379C @ =gUnknown_02024E8C - mov r5, r9 - lsls r5, 16 - asrs r5, 16 - mov r9, r5 - mov r1, r10 - lsls r1, 16 - asrs r1, 16 - mov r10, r1 - movs r3, 0xA - mov r2, r8 - subs r3, r2 - lsls r3, 24 - lsrs r3, 24 - mov r1, r9 - mov r2, r10 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _081437A0 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - orrs r1, r4 - strb r1, [r2, 0x5] - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08143790: .4byte gMonFrontPicTable -_08143794: .4byte gMonFrontPicCoords -_08143798: .4byte gUnknown_0840B5A0 -_0814379C: .4byte gUnknown_02024E8C -_081437A0: .4byte gSprites - thumb_func_end sub_81436BC - - thumb_func_start sub_81437A4 -sub_81437A4: @ 81437A4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - mov r9, r1 - mov r10, r2 - adds r6, r3, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r2, 16 - lsrs r2, 16 - mov r10, r2 - lsls r6, 16 - lsrs r6, 16 - lsls r7, r0, 3 - ldr r1, _08143854 @ =gTrainerFrontPicTable - mov r8, r1 - add r8, r7 - ldr r1, _08143858 @ =gTrainerFrontPicCoords - lsls r2, r0, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r5, _0814385C @ =gUnknown_0840B5A0 - lsls r4, r6, 2 - adds r4, r5 - ldr r4, [r4] - str r4, [sp] - str r0, [sp, 0x4] - mov r0, r8 - bl DecompressPicFromTable_2 - ldr r0, _08143860 @ =gTrainerFrontPicPaletteTable - adds r0, r7, r0 - ldr r0, [r0] - lsls r4, r6, 4 - movs r2, 0x80 - lsls r2, 1 - adds r1, r4, r2 - lsls r1, 16 - lsrs r1, 16 - movs r2, 0x20 - bl LoadCompressedPalette - lsls r1, r6, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_8143680 - ldr r0, _08143864 @ =gUnknown_02024E8C - mov r1, r9 - lsls r1, 16 - asrs r1, 16 - mov r9, r1 - mov r2, r10 - lsls r2, 16 - asrs r2, 16 - mov r10, r2 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08143868 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - orrs r1, r4 - strb r1, [r2, 0x5] - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08143854: .4byte gTrainerFrontPicTable -_08143858: .4byte gTrainerFrontPicCoords -_0814385C: .4byte gUnknown_0840B5A0 -_08143860: .4byte gTrainerFrontPicPaletteTable -_08143864: .4byte gUnknown_02024E8C -_08143868: .4byte gSprites - thumb_func_end sub_81437A4 - - thumb_func_start sub_814386C -sub_814386C: @ 814386C - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r1, [r5, 0x26] - movs r2, 0x26 - ldrsh r0, [r5, r2] - cmp r0, 0x78 - ble _08143882 - adds r0, r5, 0 - bl DestroySprite - b _081438BA -_08143882: - adds r0, r1, 0x1 - ldrh r1, [r5, 0x30] - adds r0, r1 - strh r0, [r5, 0x26] - ldrh r4, [r5, 0x2E] - lsls r4, 24 - lsrs r4, 24 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - ands r0, r1 - adds r0, 0x8 - ldr r1, _081438C0 @ =gSineTable - lsls r4, 1 - adds r4, r1 - movs r2, 0 - ldrsh r1, [r4, r2] - muls r0, r1 - cmp r0, 0 - bge _081438B0 - adds r0, 0xFF -_081438B0: - asrs r0, 8 - strh r0, [r5, 0x24] - ldrh r0, [r5, 0x2E] - adds r0, 0x4 - strh r0, [r5, 0x2E] -_081438BA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081438C0: .4byte gSineTable - thumb_func_end sub_814386C - - thumb_func_start sub_81438C4 -sub_81438C4: @ 81438C4 - push {r4,lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF0 - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl Random - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - movs r0, 0x7 - ands r2, r0 - negs r2, r2 - ldr r0, _08143934 @ =gSpriteTemplate_840B7A4 - lsls r4, 16 - asrs r4, 16 - lsls r2, 16 - asrs r2, 16 - adds r1, r4, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08143938 @ =gSprites - adds r4, r1, r0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x11 - bl __umodsi3 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - bl Random - movs r1, 0x3 - ands r1, r0 - cmp r1, 0 - beq _0814393C - movs r0, 0 - b _0814393E - .align 2, 0 -_08143934: .4byte gSpriteTemplate_840B7A4 -_08143938: .4byte gSprites -_0814393C: - movs r0, 0x1 -_0814393E: - strh r0, [r4, 0x30] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81438C4 - - thumb_func_start sub_8143948 -sub_8143948: @ 8143948 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8143948 - - thumb_func_start sub_814395C -sub_814395C: @ 814395C - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - ldr r0, _081439B8 @ =gMain - ldrh r1, [r0, 0x2C] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081439B2 - ldr r0, _081439BC @ =gUnknown_02039324 - ldrb r0, [r0] - cmp r0, 0 - beq _081439B2 - ldr r2, _081439C0 @ =gTasks - ldr r0, _081439C4 @ =gUnknown_02039322 - ldrh r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, [r0] - ldr r0, _081439C8 @ =sub_8143B68 - cmp r1, r0 - bne _081439B2 - bl sub_8143948 - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - ldr r1, _081439CC @ =gUnknown_02039325 - movs r0, 0x1 - strb r0, [r1] -_081439B2: - pop {r0} - bx r0 - .align 2, 0 -_081439B8: .4byte gMain -_081439BC: .4byte gUnknown_02039324 -_081439C0: .4byte gTasks -_081439C4: .4byte gUnknown_02039322 -_081439C8: .4byte sub_8143B68 -_081439CC: .4byte gUnknown_02039325 - thumb_func_end sub_814395C - - thumb_func_start sub_81439D0 -sub_81439D0: @ 81439D0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - bl sub_8144130 - movs r0, 0 - bl SetVBlankCallback - bl ResetPaletteFade - bl ResetTasks - ldr r0, _08143AF0 @ =sub_8143B38 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _08143AF4 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x10] - strh r1, [r0, 0x16] - strh r1, [r0, 0x1E] - movs r1, 0x1 - strh r1, [r0, 0x22] -_08143A0E: - movs r0, 0 - adds r1, r7, 0 - bl sub_8144ECC - lsls r0, 24 - cmp r0, 0 - beq _08143A0E - ldr r6, _08143AF4 @ =gTasks - lsls r5, r7, 2 - adds r5, r7 - lsls r5, 3 - adds r5, r6 - movs r0, 0xA - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - movs r1, 0 - mov r9, r1 - movs r2, 0 - mov r8, r2 - movs r1, 0x28 - strh r1, [r0, 0x8] - ldr r4, _08143AF8 @ =gWindowConfig_81E7208 - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl InitMenuWindow - ldr r0, _08143AFC @ =gUnknown_0840B7BC - movs r1, 0x80 - movs r2, 0x40 - bl LoadPalette - ldr r0, _08143B00 @ =gUnknown_0840B7FC - ldr r1, _08143B04 @ =0x0600bee0 - movs r2, 0x20 - bl CpuSet - ldr r1, _08143B08 @ =REG_BG0VOFS - ldr r2, _08143B0C @ =0x0000fffc - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08143B10 @ =sub_81441B8 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r6 - strh r7, [r1, 0xA] - strh r0, [r5, 0x26] - movs r0, 0x1 - negs r0, r0 - mov r1, r8 - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r3, _08143B14 @ =0x04000208 - ldrh r2, [r3] - mov r0, r8 - strh r0, [r3] - ldr r4, _08143B18 @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _08143B1C @ =REG_DISPSTAT - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r0, _08143B20 @ =sub_8143948 - bl SetVBlankCallback - ldr r0, _08143B24 @ =0x000001c7 - bl m4aSongNumStart - ldr r0, _08143B28 @ =sub_814395C - bl SetMainCallback2 - ldr r0, _08143B2C @ =gUnknown_02039325 - mov r1, r9 - strb r1, [r0] - ldr r4, _08143B30 @ =0x0201c000 - bl sub_81458DC - adds r0, r4, 0 - adds r0, 0x88 - mov r2, r8 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - ldr r0, _08143B34 @ =gUnknown_02039322 - strh r7, [r0] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08143AF0: .4byte sub_8143B38 -_08143AF4: .4byte gTasks -_08143AF8: .4byte gWindowConfig_81E7208 -_08143AFC: .4byte gUnknown_0840B7BC -_08143B00: .4byte gUnknown_0840B7FC -_08143B04: .4byte 0x0600bee0 -_08143B08: .4byte REG_BG0VOFS -_08143B0C: .4byte 0x0000fffc -_08143B10: .4byte sub_81441B8 -_08143B14: .4byte 0x04000208 -_08143B18: .4byte 0x04000200 -_08143B1C: .4byte REG_DISPSTAT -_08143B20: .4byte sub_8143948 -_08143B24: .4byte 0x000001c7 -_08143B28: .4byte sub_814395C -_08143B2C: .4byte gUnknown_02039325 -_08143B30: .4byte 0x0201c000 -_08143B34: .4byte gUnknown_02039322 - thumb_func_end sub_81439D0 - - thumb_func_start sub_8143B38 -sub_8143B38: @ 8143B38 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _08143B5C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08143B58 - ldr r0, _08143B60 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, _08143B64 @ =sub_8143B68 - str r0, [r1] -_08143B58: - pop {r0} - bx r0 - .align 2, 0 -_08143B5C: .4byte gPaletteFade -_08143B60: .4byte gTasks -_08143B64: .4byte sub_8143B68 - thumb_func_end sub_8143B38 - - thumb_func_start sub_8143B68 -sub_8143B68: @ 8143B68 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08143B9C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - movs r0, 0x10 - ldrsh r1, [r4, r0] - cmp r1, 0 - beq _08143BA4 - movs r3, 0xA - ldrsh r1, [r4, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x1E - strh r1, [r0, 0x8] - movs r0, 0x80 - lsls r0, 1 - strh r0, [r4, 0x20] - ldr r0, _08143BA0 @ =sub_8143EBC - b _08143BEE - .align 2, 0 -_08143B9C: .4byte gTasks -_08143BA0: .4byte sub_8143EBC -_08143BA4: - ldr r0, _08143BCC @ =gUnknown_02039320 - strh r1, [r0] - ldrh r2, [r4, 0x1E] - movs r3, 0x1E - ldrsh r0, [r4, r3] - cmp r0, 0x1 - bne _08143BD4 - strh r2, [r4, 0x22] - strh r1, [r4, 0x1E] - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _08143BD0 @ =sub_8143BFC - b _08143BEE - .align 2, 0 -_08143BCC: .4byte gUnknown_02039320 -_08143BD0: .4byte sub_8143BFC -_08143BD4: - cmp r0, 0x2 - bne _08143BF0 - strh r2, [r4, 0x22] - strh r1, [r4, 0x1E] - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _08143BF8 @ =sub_8143CC0 -_08143BEE: - str r0, [r4] -_08143BF0: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08143BF8: .4byte sub_8143CC0 - thumb_func_end sub_8143B68 - - thumb_func_start sub_8143BFC -sub_8143BFC: @ 8143BFC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08143C34 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08143C2C - movs r0, 0x80 - lsls r0, 19 - strh r1, [r0] - adds r0, r4, 0 - bl sub_81450AC - ldr r1, _08143C38 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08143C3C @ =c2_080C9BFC - str r1, [r0] -_08143C2C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08143C34: .4byte gPaletteFade -_08143C38: .4byte gTasks -_08143C3C: .4byte c2_080C9BFC - thumb_func_end sub_8143BFC - - thumb_func_start c2_080C9BFC -c2_080C9BFC: @ 8143C40 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl SetVBlankCallback - ldr r1, _08143CA8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - ldrb r0, [r5, 0x16] - adds r1, r4, 0 - bl sub_8144ECC - lsls r0, 24 - cmp r0, 0 - beq _08143CA0 - movs r0, 0x1 - negs r0, r0 - movs r4, 0 - str r4, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r3, _08143CAC @ =0x04000208 - ldrh r2, [r3] - strh r4, [r3] - ldr r4, _08143CB0 @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _08143CB4 @ =REG_DISPSTAT - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r0, _08143CB8 @ =sub_8143948 - bl SetVBlankCallback - ldr r0, _08143CBC @ =sub_8143B38 - str r0, [r5] -_08143CA0: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08143CA8: .4byte gTasks -_08143CAC: .4byte 0x04000208 -_08143CB0: .4byte 0x04000200 -_08143CB4: .4byte REG_DISPSTAT -_08143CB8: .4byte sub_8143948 -_08143CBC: .4byte sub_8143B38 - thumb_func_end c2_080C9BFC - - thumb_func_start sub_8143CC0 -sub_8143CC0: @ 8143CC0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08143CF8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08143CF0 - movs r0, 0x80 - lsls r0, 19 - strh r1, [r0] - adds r0, r4, 0 - bl sub_81450AC - ldr r1, _08143CFC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08143D00 @ =sub_8143D04 - str r1, [r0] -_08143CF0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08143CF8: .4byte gPaletteFade -_08143CFC: .4byte gTasks -_08143D00: .4byte sub_8143D04 - thumb_func_end sub_8143CC0 - - thumb_func_start sub_8143D04 -sub_8143D04: @ 8143D04 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _08143DC8 @ =gMain - ldr r1, _08143DCC @ =0x0000043c - adds r1, r0 - mov r8, r1 - ldrb r7, [r1] - cmp r7, 0 - beq _08143D24 - cmp r7, 0x1 - beq _08143E0C -_08143D24: - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r1, _08143DD0 @ =gReservedSpritePaletteCount - movs r0, 0x8 - strb r0, [r1] - ldr r0, _08143DD4 @ =gUnknown_083F66F0 - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, _08143DD8 @ =gBirchGrassTilemap - ldr r1, _08143DDC @ =0x06003800 - bl LZ77UnCompVram - ldr r0, _08143DE0 @ =gUnknown_083F62EC + 0x2 - movs r1, 0x1 - movs r2, 0x3E - bl LoadPalette - movs r1, 0 - ldr r4, _08143DE4 @ =0x0201e000 - movs r3, 0x11 - ldr r2, _08143DE8 @ =0x000007ff -_08143D56: - adds r0, r1, r4 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bls _08143D56 - movs r1, 0 - ldr r2, _08143DEC @ =0x0201f800 - ldr r6, _08143DF0 @ =gUnknown_0840CAA0 - ldr r0, _08143DF4 @ =0xfffff000 - adds r5, r2, r0 - movs r4, 0x22 - ldr r3, _08143DE8 @ =0x000007ff -_08143D72: - adds r0, r1, r5 - strb r4, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r3 - bls _08143D72 - movs r1, 0 - ldr r5, _08143DF8 @ =0x0201f000 - movs r4, 0x33 - ldr r3, _08143DE8 @ =0x000007ff -_08143D88: - adds r0, r1, r5 - strb r4, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r3 - bls _08143D88 - movs r0, 0 - strh r0, [r2] - ldr r1, _08143DFC @ =0x000053ff - adds r0, r1, 0 - strh r0, [r2, 0x2] - ldr r1, _08143E00 @ =0x0000529f - adds r0, r1, 0 - strh r0, [r2, 0x4] - ldr r1, _08143E04 @ =0x00007e94 - adds r0, r1, 0 - strh r0, [r2, 0x6] - adds r0, r6, 0 - bl LoadSpriteSheet - ldr r0, _08143E08 @ =gUnknown_0840CAB0 - bl LoadSpritePalette - ldr r1, _08143DC8 @ =gMain - ldr r2, _08143DCC @ =0x0000043c - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08143E90 - .align 2, 0 -_08143DC8: .4byte gMain -_08143DCC: .4byte 0x0000043c -_08143DD0: .4byte gReservedSpritePaletteCount -_08143DD4: .4byte gUnknown_083F66F0 -_08143DD8: .4byte gBirchGrassTilemap -_08143DDC: .4byte 0x06003800 -_08143DE0: .4byte gUnknown_083F62EC + 0x2 -_08143DE4: .4byte 0x0201e000 -_08143DE8: .4byte 0x000007ff -_08143DEC: .4byte 0x0201f800 -_08143DF0: .4byte gUnknown_0840CAA0 -_08143DF4: .4byte 0xfffff000 -_08143DF8: .4byte 0x0201f000 -_08143DFC: .4byte 0x000053ff -_08143E00: .4byte 0x0000529f -_08143E04: .4byte 0x00007e94 -_08143E08: .4byte gUnknown_0840CAB0 -_08143E0C: - ldr r0, _08143EA0 @ =sub_8144514 - movs r1, 0 - bl CreateTask - ldr r2, _08143EA4 @ =gTasks - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 3 - adds r4, r2 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - mov r9, r1 - movs r5, 0 - strh r0, [r4, 0xE] - movs r0, 0xE - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - strh r7, [r0, 0x8] - movs r0, 0xE - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - strh r6, [r0, 0xA] - movs r0, 0xE - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r4, 0x16] - strh r1, [r0, 0xC] - movs r0, 0x1 - negs r0, r0 - str r5, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _08143EA8 @ =REG_BG3HOFS - strh r5, [r0] - ldr r1, _08143EAC @ =REG_BG3VOFS - movs r0, 0x20 - strh r0, [r1] - subs r1, 0x10 - ldr r2, _08143EB0 @ =0x00000703 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xE - movs r2, 0xCA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - mov r1, r9 - mov r0, r8 - strb r1, [r0] - ldr r0, _08143EB4 @ =gUnknown_0203935C - strh r5, [r0] - ldr r0, _08143EB8 @ =sub_8143B38 - str r0, [r4] -_08143E90: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08143EA0: .4byte sub_8144514 -_08143EA4: .4byte gTasks -_08143EA8: .4byte REG_BG3HOFS -_08143EAC: .4byte REG_BG3VOFS -_08143EB0: .4byte 0x00000703 -_08143EB4: .4byte gUnknown_0203935C -_08143EB8: .4byte sub_8143B38 - thumb_func_end sub_8143D04 - - thumb_func_start sub_8143EBC -sub_8143EBC: @ 8143EBC - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08143EE0 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x20] - movs r2, 0x20 - ldrsh r1, [r4, r2] - cmp r1, 0 - beq _08143EE4 - subs r0, 0x1 - strh r0, [r4, 0x20] - b _08143EF8 - .align 2, 0 -_08143EE0: .4byte gTasks -_08143EE4: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0xC - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _08143F00 @ =sub_8143F04 - str r0, [r4] -_08143EF8: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08143F00: .4byte sub_8143F04 - thumb_func_end sub_8143EBC - - thumb_func_start sub_8143F04 -sub_8143F04: @ 8143F04 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08143F30 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08143F2A - adds r0, r4, 0 - bl sub_81450AC - ldr r0, _08143F34 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _08143F38 @ =sub_8143F3C - str r0, [r1] -_08143F2A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08143F30: .4byte gPaletteFade -_08143F34: .4byte gTasks -_08143F38: .4byte sub_8143F3C - thumb_func_end sub_8143F04 - - thumb_func_start sub_8143F3C -sub_8143F3C: @ 8143F3C - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - bl sub_8144130 - bl ResetPaletteFade - movs r1, 0xE0 - lsls r1, 6 - movs r0, 0 - movs r2, 0 - bl sub_8145128 - bl ResetSpriteData - bl FreeAllSpritePalettes - movs r0, 0x1 - negs r0, r0 - movs r4, 0 - str r4, [sp] - movs r1, 0x8 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, _08143FC4 @ =REG_BG0CNT - movs r2, 0xE0 - lsls r2, 3 - adds r0, r2, 0 - strh r0, [r1] - ldr r3, _08143FC8 @ =0x04000208 - ldrh r2, [r3] - strh r4, [r3] - ldr r4, _08143FCC @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _08143FD0 @ =REG_DISPSTAT - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xA0 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _08143FD4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x80 - lsls r1, 1 - strh r1, [r0, 0x8] - ldr r1, _08143FD8 @ =sub_8143FDC - str r1, [r0] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08143FC4: .4byte REG_BG0CNT -_08143FC8: .4byte 0x04000208 -_08143FCC: .4byte 0x04000200 -_08143FD0: .4byte REG_DISPSTAT -_08143FD4: .4byte gTasks -_08143FD8: .4byte sub_8143FDC - thumb_func_end sub_8143F3C - - thumb_func_start sub_8143FDC -sub_8143FDC: @ 8143FDC - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08144000 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x8] - movs r2, 0x8 - ldrsh r1, [r4, r2] - cmp r1, 0 - beq _08144004 - subs r0, 0x1 - strh r0, [r4, 0x8] - b _08144018 - .align 2, 0 -_08144000: .4byte gTasks -_08144004: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0x6 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _08144020 @ =sub_8144024 - str r0, [r4] -_08144018: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08144020: .4byte sub_8144024 - thumb_func_end sub_8143FDC - - thumb_func_start sub_8144024 -sub_8144024: @ 8144024 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _08144074 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _0814406A - movs r0, 0xE0 - lsls r0, 6 - movs r1, 0 - bl sub_81452D0 - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, _08144078 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0xE1 - lsls r1, 5 - strh r1, [r0, 0x8] - ldr r1, _0814407C @ =sub_8144080 - str r1, [r0] -_0814406A: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08144074: .4byte gPaletteFade -_08144078: .4byte gTasks -_0814407C: .4byte sub_8144080 - thumb_func_end sub_8144024 - - thumb_func_start sub_8144080 -sub_8144080: @ 8144080 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _081440CC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08144104 - ldr r1, _081440D0 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0 - beq _081440AE - ldr r0, _081440D4 @ =gMain - ldrh r0, [r0, 0x2E] - cmp r0, 0 - beq _081440E0 -_081440AE: - movs r0, 0x4 - bl FadeOutBGM - movs r0, 0x1 - negs r0, r0 - ldr r1, _081440D8 @ =0x0000ffff - str r1, [sp] - movs r1, 0x8 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _081440DC @ =sub_8144114 - str r0, [r4] - b _08144104 - .align 2, 0 -_081440CC: .4byte gPaletteFade -_081440D0: .4byte gTasks -_081440D4: .4byte gMain -_081440D8: .4byte 0x0000ffff -_081440DC: .4byte sub_8144114 -_081440E0: - ldr r0, _0814410C @ =0x00001be8 - cmp r1, r0 - bne _081440EC - movs r0, 0x8 - bl FadeOutBGM -_081440EC: - movs r0, 0x8 - ldrsh r1, [r4, r0] - ldr r0, _08144110 @ =0x00001ab8 - cmp r1, r0 - bne _081440FE - movs r0, 0xE4 - lsls r0, 1 - bl m4aSongNumStart -_081440FE: - ldrh r0, [r4, 0x8] - subs r0, 0x1 - strh r0, [r4, 0x8] -_08144104: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814410C: .4byte 0x00001be8 -_08144110: .4byte 0x00001ab8 - thumb_func_end sub_8144080 - - thumb_func_start sub_8144114 -sub_8144114: @ 8144114 - push {lr} - ldr r0, _0814412C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08144128 - movs r0, 0xFF - bl SoftReset -_08144128: - pop {r0} - bx r0 - .align 2, 0 -_0814412C: .4byte gPaletteFade - thumb_func_end sub_8144114 - - thumb_func_start sub_8144130 -sub_8144130: @ 8144130 - sub sp, 0x8 - movs r0, 0x80 - lsls r0, 19 - movs r1, 0 - strh r1, [r0] - adds r0, 0x1C - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x3E - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - mov r0, sp - strh r1, [r0] - ldr r1, _081441A4 @ =0x040000d4 - str r0, [r1] - movs r0, 0xC0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _081441A8 @ =0x8100c000 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r2, 0 - str r2, [sp, 0x4] - add r0, sp, 0x4 - str r0, [r1] - movs r0, 0xE0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _081441AC @ =0x85000100 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - mov r0, sp - strh r2, [r0] - str r0, [r1] - ldr r0, _081441B0 @ =0x05000002 - str r0, [r1, 0x4] - ldr r0, _081441B4 @ =0x810001ff - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add sp, 0x8 - bx lr - .align 2, 0 -_081441A4: .4byte 0x040000d4 -_081441A8: .4byte 0x8100c000 -_081441AC: .4byte 0x85000100 -_081441B0: .4byte 0x05000002 -_081441B4: .4byte 0x810001ff - thumb_func_end sub_8144130 - - thumb_func_start sub_81441B8 -sub_81441B8: @ 81441B8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _081441E4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r6, r1, 0 - cmp r0, 0xA - bhi _08144218 - lsls r0, 2 - ldr r1, _081441E8 @ =_081441EC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081441E4: .4byte gTasks -_081441E8: .4byte _081441EC - .align 2, 0 -_081441EC: - .4byte _08144218 - .4byte _08144258 - .4byte _08144278 - .4byte _08144358 - .4byte _0814438C - .4byte _081443F8 - .4byte _08144218 - .4byte _08144218 - .4byte _08144218 - .4byte _08144218 - .4byte _08144428 -_08144218: - ldr r0, _08144250 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _0814422A - b _08144446 -_0814422A: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r6 - movs r1, 0x1 - strh r1, [r0, 0x8] - movs r1, 0x58 - strh r1, [r0, 0xE] - movs r3, 0xA - ldrsh r1, [r0, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - strh r2, [r0, 0x24] - ldr r0, _08144254 @ =gUnknown_02039320 - strh r2, [r0] - b _08144446 - .align 2, 0 -_08144250: .4byte gPaletteFade -_08144254: .4byte gUnknown_02039320 -_08144258: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r1, r0, r6 - ldrh r2, [r1, 0xE] - movs r3, 0xE - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _08144270 - subs r0, r2, 0x1 - strh r0, [r1, 0xE] - b _08144446 -_08144270: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _08144446 -_08144278: - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _08144320 @ =0x0000feff - ands r0, r1 - strh r0, [r2] - lsls r2, r5, 2 - adds r0, r2, r5 - lsls r0, 3 - adds r3, r0, r6 - movs r0, 0xA - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r4, r0, r6 - ldr r1, [r4] - ldr r0, _08144324 @ =sub_8143B68 - mov r8, r2 - cmp r1, r0 - bne _08144352 - movs r1, 0xC - ldrsh r0, [r3, r1] - cmp r0, 0x33 - bgt _0814434C - movs r4, 0 - ldr r7, _08144328 @ =gCreditsEntryPointerTable - adds r6, r3, 0 -_081442B0: - movs r2, 0xC - ldrsh r1, [r6, r2] - lsls r0, r1, 2 - adds r0, r1 - adds r0, r4 - lsls r0, 2 - adds r0, r7 - ldr r0, [r0] - ldr r0, [r0, 0x4] - lsls r2, r4, 25 - movs r3, 0x90 - lsls r3, 20 - adds r2, r3 - lsrs r2, 24 - movs r1, 0 - movs r3, 0xF0 - bl sub_8072BD8 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _081442B0 - ldr r3, _0814432C @ =gTasks - mov r0, r8 - adds r1, r0, r5 - lsls r1, 3 - adds r1, r3 - ldrh r0, [r1, 0xC] - adds r0, 0x1 - strh r0, [r1, 0xC] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0xA - ldrsh r2, [r1, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r3 - movs r2, 0x1 - strh r2, [r0, 0x24] - movs r2, 0xA - ldrsh r1, [r1, r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - movs r3, 0x22 - ldrsh r0, [r0, r3] - cmp r0, 0x1 - bne _08144334 - movs r0, 0xC0 - lsls r0, 2 - ldr r1, _08144330 @ =0x0000328d - b _0814433A - .align 2, 0 -_08144320: .4byte 0x0000feff -_08144324: .4byte sub_8143B68 -_08144328: .4byte gCreditsEntryPointerTable -_0814432C: .4byte gTasks -_08144330: .4byte 0x0000328d -_08144334: - movs r0, 0xC0 - lsls r0, 2 - ldr r1, _08144348 @ =0x00001967 -_0814433A: - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _08144446 - .align 2, 0 -_08144348: .4byte 0x00001967 -_0814434C: - movs r0, 0xA - strh r0, [r3, 0x8] - b _08144446 -_08144352: - movs r0, 0 - strh r0, [r4, 0x24] - b _08144446 -_08144358: - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 1 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - ldr r0, _08144388 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08144446 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r6 - movs r1, 0x82 - strh r1, [r0, 0xE] - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _08144446 - .align 2, 0 -_08144388: .4byte gPaletteFade -_0814438C: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r6 - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _081443A4 - subs r0, r1, 0x1 - strh r0, [r4, 0xE] - b _08144446 -_081443A4: - ldrb r0, [r4, 0xC] - ldrb r1, [r4, 0xA] - bl sub_8144454 - lsls r0, 24 - cmp r0, 0 - beq _081443BA - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _08144446 -_081443BA: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r3, 0xA - ldrsh r1, [r4, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - movs r1, 0x22 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - bne _081443E0 - movs r0, 0xC0 - lsls r0, 2 - ldr r1, _081443DC @ =0x0000328d - b _081443E6 - .align 2, 0 -_081443DC: .4byte 0x0000328d -_081443E0: - movs r0, 0xC0 - lsls r0, 2 - ldr r1, _081443F4 @ =0x00001967 -_081443E6: - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _08144446 - .align 2, 0 -_081443F4: .4byte 0x00001967 -_081443F8: - ldr r0, _08144420 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08144446 - movs r0, 0 - movs r1, 0x9 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r0, _08144424 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - movs r0, 0x2 - strh r0, [r1, 0x8] - b _08144446 - .align 2, 0 -_08144420: .4byte gPaletteFade -_08144424: .4byte gTasks -_08144428: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r6 - movs r2, 0xA - ldrsh r1, [r0, r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - movs r1, 0x1 - strh r1, [r0, 0x10] - adds r0, r5, 0 - bl DestroyTask -_08144446: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81441B8 - - thumb_func_start sub_8144454 -sub_8144454: @ 8144454 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - adds r6, r3, 0 - lsls r1, 24 - lsrs r2, r1, 24 - adds r5, r2, 0 - ldr r4, _08144508 @ =gTasks - cmp r3, 0x6 - bne _08144474 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x1E] -_08144474: - cmp r3, 0xC - bne _08144486 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r4 - movs r1, 0x1 - strh r1, [r0, 0x16] - strh r1, [r0, 0x1E] -_08144486: - cmp r3, 0x12 - bne _08144496 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x1E] -_08144496: - cmp r3, 0x18 - bne _081444AA - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x16] - movs r1, 0x1 - strh r1, [r0, 0x1E] -_081444AA: - cmp r3, 0x1E - bne _081444BA - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x1E] -_081444BA: - cmp r3, 0x23 - bne _081444CE - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r4 - movs r1, 0x3 - strh r1, [r0, 0x16] - movs r1, 0x1 - strh r1, [r0, 0x1E] -_081444CE: - cmp r3, 0x28 - bne _081444DE - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x1E] -_081444DE: - cmp r6, 0x2E - bne _081444F2 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r4 - movs r1, 0x4 - strh r1, [r0, 0x16] - movs r1, 0x1 - strh r1, [r0, 0x1E] -_081444F2: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r4 - movs r1, 0x1E - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _0814450C - movs r0, 0 - b _0814450E - .align 2, 0 -_08144508: .4byte gTasks -_0814450C: - movs r0, 0x1 -_0814450E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8144454 - - thumb_func_start sub_8144514 -sub_8144514: @ 8144514 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r6, _08144548 @ =0x0201c000 - ldr r3, _0814454C @ =gTasks - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r2, r0, r3 - movs r1, 0x8 - ldrsh r0, [r2, r1] - cmp r0, 0x1 - beq _08144550 - cmp r0, 0x1 - bgt _0814453C - b _08144658 -_0814453C: - cmp r0, 0x2 - beq _08144584 - cmp r0, 0x3 - bne _08144546 - b _08144644 -_08144546: - b _08144658 - .align 2, 0 -_08144548: .4byte 0x0201c000 -_0814454C: .4byte gTasks -_08144550: - adds r0, r6, 0 - adds r0, 0x8A - ldrh r0, [r0] - cmp r0, 0 - bne _0814456E - movs r4, 0xA - ldrsh r0, [r2, r4] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r3 - movs r4, 0x24 - ldrsh r0, [r1, r4] - cmp r0, 0 - beq _08144658 -_0814456E: - movs r0, 0xA - ldrsh r1, [r2, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - movs r1, 0 - strh r1, [r0, 0x24] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - b _08144656 -_08144584: - adds r0, r6, 0 - adds r0, 0x88 - ldrh r1, [r0] - mov r9, r0 - cmp r1, 0x44 - beq _08144658 - movs r4, 0xA - ldrsh r1, [r2, r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - ldr r1, [r0] - ldr r0, _081445EC @ =sub_8143B68 - cmp r1, r0 - bne _08144658 - adds r7, r6, 0 - adds r7, 0x8C - ldrh r0, [r7] - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - ldr r4, _081445F0 @ =gUnknown_0840CA00 - adds r5, r6, 0 - adds r5, 0x8A - ldrh r3, [r5] - lsls r2, r3, 1 - adds r1, r2, r4 - ldrb r1, [r1] - adds r4, 0x1 - adds r2, r4 - ldrb r2, [r2] - bl sub_81456B4 - lsls r0, 24 - lsrs r2, r0, 24 - ldrh r1, [r7] - adds r0, r6, 0 - adds r0, 0x8E - ldrh r0, [r0] - subs r0, 0x1 - cmp r1, r0 - bge _081445F8 - adds r0, r1, 0x1 - strh r0, [r7] - ldr r1, _081445F4 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x32 - b _0814460A - .align 2, 0 -_081445EC: .4byte sub_8143B68 -_081445F0: .4byte gUnknown_0840CA00 -_081445F4: .4byte gSprites -_081445F8: - movs r0, 0 - strh r0, [r7] - ldr r1, _08144620 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x80 - lsls r1, 2 -_0814460A: - strh r1, [r0, 0x34] - mov r1, r9 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - ldrh r0, [r5] - cmp r0, 0x2 - bne _08144624 - movs r0, 0 - b _08144626 - .align 2, 0 -_08144620: .4byte gSprites -_08144624: - adds r0, 0x1 -_08144626: - strh r0, [r5] - ldr r0, _08144640 @ =gTasks - mov r2, r8 - lsls r1, r2, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x32 - strh r0, [r1, 0xE] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _08144658 - .align 2, 0 -_08144640: .4byte gTasks -_08144644: - ldrh r1, [r2, 0xE] - movs r3, 0xE - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _08144654 - subs r0, r1, 0x1 - strh r0, [r2, 0xE] - b _08144658 -_08144654: - movs r0, 0x1 -_08144656: - strh r0, [r2, 0x8] -_08144658: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8144514 - - thumb_func_start sub_8144664 -sub_8144664: @ 8144664 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0814468C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r6, r1, 0 - cmp r0, 0x32 - bls _08144680 - b _0814492C -_08144680: - lsls r0, 2 - ldr r1, _08144690 @ =_08144694 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814468C: .4byte gTasks -_08144690: .4byte _08144694 - .align 2, 0 -_08144694: - .4byte _08144760 - .4byte _08144784 - .4byte _081447D8 - .4byte _081447F0 - .4byte _0814482C - .4byte _08144850 - .4byte _0814489C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _081448A8 - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _081448C8 - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _081448EC - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _08144920 -_08144760: - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r6 - ldrh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 17 - movs r1, 0x7F - ands r0, r1 - movs r1, 0xC - bl Sin - ldr r1, _08144780 @ =gUnknown_0203935A - strh r0, [r1] - b _081447A8 - .align 2, 0 -_08144780: .4byte gUnknown_0203935A -_08144784: - ldr r7, _081447B0 @ =gUnknown_0203935A - movs r3, 0 - ldrsh r4, [r7, r3] - cmp r4, 0 - beq _081447B4 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r6 - ldrh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 17 - movs r1, 0x7F - ands r0, r1 - movs r1, 0xC - bl Sin - strh r0, [r7] -_081447A8: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - b _0814492C - .align 2, 0 -_081447B0: .4byte gUnknown_0203935A -_081447B4: - ldr r3, _081447D4 @ =gSprites - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r6 - movs r0, 0xC - ldrsh r2, [r1, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - movs r2, 0x2 - strh r2, [r0, 0x2E] - strh r4, [r1, 0x12] - b _08144848 - .align 2, 0 -_081447D4: .4byte gSprites -_081447D8: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r1, r0, r6 - ldrh r2, [r1, 0x12] - movs r3, 0x12 - ldrsh r0, [r1, r3] - cmp r0, 0x3F - bgt _08144848 - adds r0, r2, 0x1 - strh r0, [r1, 0x12] - b _08144866 -_081447F0: - ldr r3, _08144828 @ =gSprites - lsls r2, r5, 2 - adds r2, r5 - lsls r2, 3 - adds r2, r6 - movs r0, 0xC - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x3 - strh r1, [r0, 0x2E] - movs r0, 0xE - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x1 - strh r1, [r0, 0x2E] - movs r0, 0x78 - strh r0, [r2, 0x10] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _0814492C - .align 2, 0 -_08144828: .4byte gSprites -_0814482C: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r1, r0, r6 - ldrh r2, [r1, 0x10] - movs r3, 0x10 - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _08144844 - subs r0, r2, 0x1 - strh r0, [r1, 0x10] - b _0814492C -_08144844: - movs r0, 0x40 - strh r0, [r1, 0x12] -_08144848: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _0814492C -_08144850: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r6 - ldrh r1, [r4, 0x12] - movs r2, 0x12 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _0814487C - subs r0, r1, 0x1 - strh r0, [r4, 0x12] -_08144866: - movs r1, 0x7F - ands r0, r1 - movs r1, 0x14 - bl Sin - ldr r1, _08144878 @ =gUnknown_0203935A - strh r0, [r1] - b _0814492C - .align 2, 0 -_08144878: .4byte gUnknown_0203935A -_0814487C: - ldr r2, _08144898 @ =gSprites - movs r3, 0xC - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0, 0x2E] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _0814492C - .align 2, 0 -_08144898: .4byte gSprites -_0814489C: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r6 - movs r1, 0x32 - b _0814492A -_081448A8: - ldr r3, _081448C4 @ =gSprites - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r6 - movs r0, 0xE - ldrsh r2, [r1, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - movs r2, 0x2 - b _081448E0 - .align 2, 0 -_081448C4: .4byte gSprites -_081448C8: - ldr r3, _081448E8 @ =gSprites - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r6 - movs r0, 0xC - ldrsh r2, [r1, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - movs r2, 0x4 -_081448E0: - strh r2, [r0, 0x2E] - movs r0, 0x32 - strh r0, [r1, 0x8] - b _0814492C - .align 2, 0 -_081448E8: .4byte gSprites -_081448EC: - ldr r3, _0814491C @ =gSprites - lsls r2, r5, 2 - adds r2, r5 - lsls r2, 3 - adds r2, r6 - movs r0, 0xC - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x5 - strh r1, [r0, 0x2E] - movs r0, 0xE - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x3 - strh r1, [r0, 0x2E] - movs r0, 0x32 - strh r0, [r2, 0x8] - b _0814492C - .align 2, 0 -_0814491C: .4byte gSprites -_08144920: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r6 - movs r1, 0 -_0814492A: - strh r1, [r0, 0x8] -_0814492C: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8144664 - - thumb_func_start sub_8144934 -sub_8144934: @ 8144934 - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _08144958 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r3, 0x8 - ldrsh r0, [r0, r3] - adds r4, r1, 0 - cmp r0, 0x4 - bhi _08144974 - lsls r0, 2 - ldr r1, _0814495C @ =_08144960 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08144958: .4byte gTasks -_0814495C: .4byte _08144960 - .align 2, 0 -_08144960: - .4byte _08144974 - .4byte _081449B8 - .4byte _081449C4 - .4byte _08144A0C - .4byte _08144A5C -_08144974: - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r2, r0, r4 - movs r1, 0xA - ldrsh r0, [r2, r1] - ldr r5, _081449C0 @ =0x00007fff - cmp r0, r5 - beq _081449B8 - movs r3, 0xC - ldrsh r1, [r2, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r3, r0, r4 - movs r0, 0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0x2 - bne _081449B8 - movs r1, 0xA - ldrsh r0, [r3, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - movs r0, 0x14 - strh r0, [r1, 0x8] - strh r5, [r2, 0xA] -_081449B8: - movs r0, 0 - bl sub_8149020 - b _08144A62 - .align 2, 0 -_081449C0: .4byte 0x00007fff -_081449C4: - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r2, r0, r4 - movs r3, 0xA - ldrsh r0, [r2, r3] - ldr r5, _08144A08 @ =0x00007fff - cmp r0, r5 - beq _08144A54 - movs r0, 0xC - ldrsh r1, [r2, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r3, 0xA - ldrsh r1, [r0, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r3, r0, r4 - ldrh r1, [r3, 0x12] - movs r0, 0x80 - negs r0, r0 - ands r0, r1 - movs r1, 0xA0 - lsls r1, 2 - cmp r0, r1 - bne _08144A54 - movs r0, 0x1 - strh r0, [r3, 0x8] - strh r5, [r2, 0xA] - b _08144A54 - .align 2, 0 -_08144A08: .4byte 0x00007fff -_08144A0C: - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r2, r0, r4 - ldrh r3, [r2, 0xA] - movs r0, 0xA - ldrsh r1, [r2, r0] - ldr r5, _08144A48 @ =0x00007fff - cmp r1, r5 - beq _08144A54 - ldr r0, _08144A4C @ =0x000001f3 - cmp r1, r0 - bne _08144A50 - movs r3, 0xC - ldrsh r1, [r2, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r3, 0xA - ldrsh r1, [r0, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r1, 0xA - strh r1, [r0, 0x8] - strh r5, [r2, 0xA] - b _08144A54 - .align 2, 0 -_08144A48: .4byte 0x00007fff -_08144A4C: .4byte 0x000001f3 -_08144A50: - adds r0, r3, 0x1 - strh r0, [r2, 0xA] -_08144A54: - movs r0, 0x1 - bl sub_8149020 - b _08144A62 -_08144A5C: - movs r0, 0x2 - bl sub_8149020 -_08144A62: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8144934 - - thumb_func_start sub_8144A68 -sub_8144A68: @ 8144A68 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r7, r1, 24 - cmp r0, 0x4 - bls _08144A7E - b _08144DFC -_08144A7E: - lsls r0, 2 - ldr r1, _08144A88 @ =_08144A8C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08144A88: .4byte _08144A8C - .align 2, 0 -_08144A8C: - .4byte _08144AA0 - .4byte _08144B48 - .4byte _08144BF4 - .4byte _08144CA0 - .4byte _08144D50 -_08144AA0: - ldr r5, _08144B40 @ =gSprites - ldr r0, _08144B44 @ =gTasks - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r0 - movs r1, 0x12 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r3, 0 - movs r2, 0x88 - lsls r2, 1 - strh r2, [r0, 0x20] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x20] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r2, 0x2E - strh r2, [r0, 0x22] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x22] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - movs r2, 0x20 - b _08144DF0 - .align 2, 0 -_08144B40: .4byte gSprites -_08144B44: .4byte gTasks -_08144B48: - ldr r5, _08144BEC @ =gSprites - ldr r0, _08144BF0 @ =gTasks - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r0 - movs r1, 0x12 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r3, 0 - movs r1, 0x78 - strh r1, [r0, 0x20] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x88 - lsls r1, 1 - strh r1, [r0, 0x20] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r2, 0x2E - strh r2, [r0, 0x22] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x22] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - movs r2, 0x20 - b _08144DF0 - .align 2, 0 -_08144BEC: .4byte gSprites -_08144BF0: .4byte gTasks -_08144BF4: - ldr r5, _08144C98 @ =gSprites - ldr r0, _08144C9C @ =gTasks - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r0 - movs r1, 0x12 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r3, 0 - movs r1, 0x78 - strh r1, [r0, 0x20] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x88 - lsls r1, 1 - strh r1, [r0, 0x20] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r2, 0x2E - strh r2, [r0, 0x22] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x22] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r1, 0x80 - lsls r1, 6 - movs r2, 0x80 - lsls r2, 2 - movs r0, 0x1 - b _08144DF0 - .align 2, 0 -_08144C98: .4byte gSprites -_08144C9C: .4byte gTasks -_08144CA0: - ldr r5, _08144D44 @ =gSprites - ldr r0, _08144D48 @ =gTasks - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r0 - movs r1, 0x12 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r3, 0 - movs r1, 0x78 - strh r1, [r0, 0x20] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _08144D4C @ =0x0000ffe0 - strh r1, [r0, 0x20] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r2, 0x2E - strh r2, [r0, 0x22] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x22] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r1, 0x80 - lsls r1, 6 - movs r2, 0x80 - lsls r2, 2 - movs r0, 0x1 - b _08144DF0 - .align 2, 0 -_08144D44: .4byte gSprites -_08144D48: .4byte gTasks -_08144D4C: .4byte 0x0000ffe0 -_08144D50: - ldr r5, _08144EBC @ =gSprites - ldr r0, _08144EC0 @ =gTasks - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r0 - movs r1, 0x12 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r3, 0 - movs r1, 0x58 - strh r1, [r0, 0x20] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x98 - strh r1, [r0, 0x20] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r2, 0x2E - strh r2, [r0, 0x22] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x22] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r1, 0x80 - lsls r1, 6 - movs r2, 0x80 - lsls r2, 2 - movs r0, 0x2 -_08144DF0: - movs r3, 0x8 - bl sub_8148EC0 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x8] -_08144DFC: - ldr r0, _08144EC4 @ =sub_8144934 - movs r1, 0 - bl CreateTask - ldr r6, _08144EC0 @ =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r5, r1, r6 - lsls r0, 24 - lsrs r0, 24 - movs r4, 0 - strh r0, [r5, 0xC] - movs r0, 0xC - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - mov r1, r8 - strh r1, [r0, 0x8] - movs r0, 0xC - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - strh r4, [r0, 0xA] - movs r0, 0xC - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - strh r7, [r0, 0xC] - ldr r0, _08144EC8 @ =sub_8144664 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xA] - movs r0, 0xA - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - strh r4, [r0, 0x8] - movs r0, 0xA - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - strh r7, [r0, 0xA] - movs r0, 0xA - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - ldrh r1, [r5, 0x12] - strh r1, [r0, 0xC] - movs r0, 0xA - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - ldrh r1, [r5, 0x14] - strh r1, [r0, 0xE] - movs r0, 0xA - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - strh r4, [r0, 0x10] - mov r1, r8 - cmp r1, 0x2 - bne _08144EB0 - movs r1, 0xA - ldrsh r0, [r5, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r6 - movs r0, 0x45 - strh r0, [r1, 0x12] -_08144EB0: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08144EBC: .4byte gSprites -_08144EC0: .4byte gTasks -_08144EC4: .4byte sub_8144934 -_08144EC8: .4byte sub_8144664 - thumb_func_end sub_8144A68 - - thumb_func_start sub_8144ECC -sub_8144ECC: @ 8144ECC - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, _08144F28 @ =gMain - ldr r1, _08144F2C @ =0x0000043c - adds r6, r0, r1 - ldrb r0, [r6] - cmp r0, 0x1 - beq _08144F38 - cmp r0, 0x1 - ble _08144EF0 - cmp r0, 0x2 - beq _08144F5C - cmp r0, 0x3 - bne _08144EF0 - b _0814508C -_08144EF0: - movs r0, 0x80 - lsls r0, 19 - movs r1, 0 - strh r1, [r0] - ldr r2, _08144F30 @ =REG_BG3HOFS - movs r0, 0x8 - strh r0, [r2] - ldr r0, _08144F34 @ =REG_BG3VOFS - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x3A - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bl ResetSpriteData - bl FreeAllSpritePalettes - movs r0, 0x1 - strb r0, [r6] - b _081450A2 - .align 2, 0 -_08144F28: .4byte gMain -_08144F2C: .4byte 0x0000043c -_08144F30: .4byte REG_BG3HOFS -_08144F34: .4byte REG_BG3VOFS -_08144F38: - ldr r1, _08144F54 @ =gUnknown_02039358 - movs r0, 0x22 - strh r0, [r1] - ldr r1, _08144F58 @ =gUnknown_0203935A - movs r0, 0 - strh r0, [r1] - adds r0, r4, 0 - bl sub_8148CB0 - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - b _081450A2 - .align 2, 0 -_08144F54: .4byte gUnknown_02039358 -_08144F58: .4byte gUnknown_0203935A -_08144F5C: - ldr r0, _08144FBC @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08144FE0 - ldr r0, _08144FC0 @ =gIntro2BrendanSpriteSheet - bl LoadCompressedObjectPic - ldr r0, _08144FC4 @ =gUnknown_08416E34 - bl LoadCompressedObjectPic - ldr r0, _08144FC8 @ =gIntro2BicycleSpriteSheet - bl LoadCompressedObjectPic - ldr r0, _08144FCC @ =gIntro2SpritePalettes - bl LoadSpritePalettes - movs r0, 0x78 - movs r1, 0x2E - bl sub_8149310 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _08144FD0 @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - strh r2, [r4, 0x12] - ldr r6, _08144FD4 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r5, r6, 0 - adds r5, 0x1C - adds r2, r0, r5 - ldr r1, _08144FD8 @ =sub_8145378 - str r1, [r2] - adds r6, 0x8 - adds r0, r6 - ldr r1, _08144FDC @ =gUnknown_0840CA54 - str r1, [r0] - movs r0, 0x88 - lsls r0, 1 - movs r1, 0x2E - bl sub_8149368 - b _08145034 - .align 2, 0 -_08144FBC: .4byte gSaveBlock2 -_08144FC0: .4byte gIntro2BrendanSpriteSheet -_08144FC4: .4byte gUnknown_08416E34 -_08144FC8: .4byte gIntro2BicycleSpriteSheet -_08144FCC: .4byte gIntro2SpritePalettes -_08144FD0: .4byte gTasks -_08144FD4: .4byte gSprites -_08144FD8: .4byte sub_8145378 -_08144FDC: .4byte gUnknown_0840CA54 -_08144FE0: - ldr r0, _0814505C @ =gIntro2MaySpriteSheet - bl LoadCompressedObjectPic - ldr r0, _08145060 @ =gUnknown_08416E24 - bl LoadCompressedObjectPic - ldr r0, _08145064 @ =gIntro2BicycleSpriteSheet - bl LoadCompressedObjectPic - ldr r0, _08145068 @ =gIntro2SpritePalettes - bl LoadSpritePalettes - movs r0, 0x78 - movs r1, 0x2E - bl sub_8149368 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0814506C @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - strh r2, [r4, 0x12] - ldr r6, _08145070 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r5, r6, 0 - adds r5, 0x1C - adds r2, r0, r5 - ldr r1, _08145074 @ =sub_8145378 - str r1, [r2] - adds r6, 0x8 - adds r0, r6 - ldr r1, _08145078 @ =gUnknown_0840CA54 - str r1, [r0] - movs r0, 0x88 - lsls r0, 1 - movs r1, 0x2E - bl sub_8149310 -_08145034: - lsls r0, 24 - lsrs r2, r0, 24 - strh r2, [r4, 0x14] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r5, r0, r5 - ldr r1, _0814507C @ =sub_8145420 - str r1, [r5] - adds r0, r6 - ldr r1, _08145080 @ =gUnknown_0840CA94 - str r1, [r0] - ldr r1, _08145084 @ =gMain - ldr r0, _08145088 @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _081450A2 - .align 2, 0 -_0814505C: .4byte gIntro2MaySpriteSheet -_08145060: .4byte gUnknown_08416E24 -_08145064: .4byte gIntro2BicycleSpriteSheet -_08145068: .4byte gIntro2SpritePalettes -_0814506C: .4byte gTasks -_08145070: .4byte gSprites -_08145074: .4byte sub_8145378 -_08145078: .4byte gUnknown_0840CA54 -_0814507C: .4byte sub_8145420 -_08145080: .4byte gUnknown_0840CA94 -_08145084: .4byte gMain -_08145088: .4byte 0x0000043c -_0814508C: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8144A68 - adds r0, r4, 0 - bl sub_8148E90 - movs r0, 0 - strb r0, [r6] - movs r0, 0x1 - b _081450A4 -_081450A2: - movs r0, 0 -_081450A4: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8144ECC - - thumb_func_start sub_81450AC -sub_81450AC: @ 81450AC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08145120 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r1, [r4, 0x8] - movs r2, 0x8 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _081450D2 - lsls r0, r1, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0 - strh r0, [r4, 0x8] -_081450D2: - ldrh r1, [r4, 0xA] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _081450E8 - lsls r0, r1, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0 - strh r0, [r4, 0xA] -_081450E8: - ldrh r1, [r4, 0xC] - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _081450FE - lsls r0, r1, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0 - strh r0, [r4, 0xC] -_081450FE: - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08145114 - lsls r0, r1, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0 - strh r0, [r4, 0xE] -_08145114: - ldr r1, _08145124 @ =gUnknown_0203935C - movs r0, 0x1 - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08145120: .4byte gTasks -_08145124: .4byte gUnknown_0203935C - thumb_func_end sub_81450AC - - thumb_func_start sub_8145128 -sub_8145128: @ 8145128 - push {r4-r7,lr} - adds r3, r0, 0 - adds r4, r2, 0 - lsls r3, 16 - lsrs r3, 16 - lsls r1, 16 - lsrs r7, r1, 16 - lsls r4, 16 - lsrs r5, r4, 16 - ldr r0, _081451EC @ =gCreditsCopyrightEnd_Gfx - movs r6, 0xC0 - lsls r6, 19 - adds r3, r6 - adds r1, r3, 0 - bl LZ77UnCompVram - ldr r0, _081451F0 @ =gIntroCopyright_Pal - adds r1, r5, 0 - movs r2, 0x20 - bl LoadPalette - lsrs r4, 20 - lsls r4, 28 - lsrs r4, 16 - movs r2, 0 - adds r1, r4, 0x1 - ldr r3, _081451F4 @ =0x000003ff -_0814515E: - lsls r0, r2, 1 - adds r0, r7 - adds r0, r6 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r3 - bls _0814515E - movs r2, 0 - adds r0, r4, 0x2 - adds r6, r4, 0 - adds r6, 0x17 - movs r1, 0x2B - adds r1, r4 - mov r12, r1 - adds r4, 0x42 - ldr r5, _081451F8 @ =0x060001c8 - adds r3, r0, 0 -_08145184: - lsls r0, r2, 1 - adds r0, r7 - adds r0, r5 - adds r1, r2, r3 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x14 - bls _08145184 - movs r2, 0 - ldr r5, _081451FC @ =0x06000248 - adds r3, r6, 0 -_0814519E: - lsls r0, r2, 1 - adds r0, r7 - adds r0, r5 - adds r1, r2, r3 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x13 - bls _0814519E - movs r2, 0 - ldr r5, _08145200 @ =0x060002c8 - mov r3, r12 -_081451B8: - lsls r0, r2, 1 - adds r0, r7 - adds r0, r5 - adds r1, r2, r3 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x16 - bls _081451B8 - movs r2, 0 - ldr r3, _08145204 @ =0x06000348 -_081451D0: - lsls r0, r2, 1 - adds r0, r7 - adds r0, r3 - adds r1, r2, r4 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0xB - bls _081451D0 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081451EC: .4byte gCreditsCopyrightEnd_Gfx -_081451F0: .4byte gIntroCopyright_Pal -_081451F4: .4byte 0x000003ff -_081451F8: .4byte 0x060001c8 -_081451FC: .4byte 0x06000248 -_08145200: .4byte 0x060002c8 -_08145204: .4byte 0x06000348 - thumb_func_end sub_8145128 - - thumb_func_start sub_8145208 -sub_8145208: @ 8145208 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - adds r3, r2, 0 - movs r0, 0x3F - ands r0, r2 - adds r1, r0, 0 - adds r1, 0x50 - cmp r2, 0xFF - bne _08145220 - movs r0, 0x1 - b _08145246 -_08145220: - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _08145230 - movs r2, 0x80 - lsls r2, 4 - adds r0, r2, 0 - orrs r1, r0 -_08145230: - movs r0, 0x40 - ands r3, r0 - cmp r3, 0 - beq _08145244 - movs r2, 0x80 - lsls r2, 3 - adds r0, r2, 0 - orrs r1, r0 - lsls r0, r1, 16 - lsrs r1, r0, 16 -_08145244: - adds r0, r1, 0 -_08145246: - pop {r1} - bx r1 - thumb_func_end sub_8145208 - - thumb_func_start sub_814524C -sub_814524C: @ 814524C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - str r0, [sp] - ldr r0, [sp, 0x2C] - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x4] - lsls r3, 16 - lsrs r3, 16 - str r3, [sp, 0x8] - lsls r0, 16 - lsrs r0, 20 - lsls r0, 28 - lsrs r0, 16 - mov r9, r0 - movs r5, 0 -_0814527A: - movs r4, 0 - lsls r7, r5, 1 - ldr r1, [sp, 0x4] - adds r0, r1, r5 - adds r2, r5, 0x1 - mov r8, r2 - lsls r0, 6 - ldr r1, [sp, 0x8] - adds r6, r0, r1 -_0814528C: - adds r0, r7, r5 - adds r0, r4 - ldr r2, [sp] - adds r0, r2, r0 - ldrb r0, [r0] - bl sub_8145208 - mov r2, r10 - adds r1, r2, r4 - lsls r1, 1 - adds r1, r6 - movs r2, 0xC0 - lsls r2, 19 - adds r1, r2 - add r0, r9 - strh r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _0814528C - mov r1, r8 - lsls r0, r1, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bls _0814527A - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_814524C - - thumb_func_start sub_81452D0 -sub_81452D0: @ 81452D0 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 16 - lsrs r6, r1, 16 - lsrs r1, 20 - lsls r1, 28 - lsrs r1, 16 - movs r2, 0 - ldr r7, _08145360 @ =gUnknown_0840B83C - movs r4, 0xC0 - lsls r4, 19 - adds r1, 0x1 - ldr r3, _08145364 @ =0x000003ff -_081452EE: - lsls r0, r2, 1 - adds r0, r5 - adds r0, r4 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r3 - bls _081452EE - str r6, [sp] - adds r0, r7, 0 - movs r1, 0x3 - movs r2, 0x7 - adds r3, r5, 0 - bl sub_814524C - ldr r0, _08145368 @ =gUnknown_0840B84B - str r6, [sp] - movs r1, 0x7 - movs r2, 0x7 - adds r3, r5, 0 - bl sub_814524C - ldr r4, _0814536C @ =gUnknown_0840B85A - str r6, [sp] - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0x7 - adds r3, r5, 0 - bl sub_814524C - str r6, [sp] - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0x7 - adds r3, r5, 0 - bl sub_814524C - ldr r0, _08145370 @ =gUnknown_0840B869 - str r6, [sp] - movs r1, 0x14 - movs r2, 0x7 - adds r3, r5, 0 - bl sub_814524C - ldr r0, _08145374 @ =gUnknown_0840B878 - str r6, [sp] - movs r1, 0x18 - movs r2, 0x7 - adds r3, r5, 0 - bl sub_814524C - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08145360: .4byte gUnknown_0840B83C -_08145364: .4byte 0x000003ff -_08145368: .4byte gUnknown_0840B84B -_0814536C: .4byte gUnknown_0840B85A -_08145370: .4byte gUnknown_0840B869 -_08145374: .4byte gUnknown_0840B878 - thumb_func_end sub_81452D0 - - thumb_func_start sub_8145378 -sub_8145378: @ 8145378 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _08145390 @ =gUnknown_0203935C - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08145394 - adds r0, r4, 0 - bl DestroySprite - b _08145418 - .align 2, 0 -_08145390: .4byte gUnknown_0203935C -_08145394: - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0x5 - bhi _08145418 - lsls r0, 2 - ldr r1, _081453A8 @ =_081453AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081453A8: .4byte _081453AC - .align 2, 0 -_081453AC: - .4byte _081453C4 - .4byte _081453CE - .4byte _081453D4 - .4byte _081453DE - .4byte _081453E8 - .4byte _081453FE -_081453C4: - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent - b _08145418 -_081453CE: - adds r0, r4, 0 - movs r1, 0x1 - b _08145402 -_081453D4: - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnimIfDifferent - b _08145418 -_081453DE: - adds r0, r4, 0 - movs r1, 0x3 - bl StartSpriteAnimIfDifferent - b _08145418 -_081453E8: - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent - ldrh r1, [r4, 0x20] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x78 - ble _08145418 - subs r0, r1, 0x1 - b _08145416 -_081453FE: - adds r0, r4, 0 - movs r1, 0 -_08145402: - bl StartSpriteAnimIfDifferent - ldrh r2, [r4, 0x20] - movs r0, 0x20 - ldrsh r1, [r4, r0] - movs r0, 0x20 - negs r0, r0 - cmp r1, r0 - ble _08145418 - subs r0, r2, 0x1 -_08145416: - strh r0, [r4, 0x20] -_08145418: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8145378 - - thumb_func_start sub_8145420 -sub_8145420: @ 8145420 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _08145438 @ =gUnknown_0203935C - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _0814543C - adds r0, r4, 0 - bl DestroySprite - b _081454D8 - .align 2, 0 -_08145438: .4byte gUnknown_0203935C -_0814543C: - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08145464 - cmp r0, 0x1 - bgt _0814544E - cmp r0, 0 - beq _08145458 - b _081454D8 -_0814544E: - cmp r0, 0x2 - beq _081454A0 - cmp r0, 0x3 - beq _081454BE - b _081454D8 -_08145458: - strh r0, [r4, 0x26] - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent - b _081454D8 -_08145464: - movs r1, 0x20 - ldrsh r0, [r4, r1] - cmp r0, 0xC8 - ble _08145476 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnimIfDifferent - b _0814547E -_08145476: - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnimIfDifferent -_0814547E: - ldrh r2, [r4, 0x20] - movs r0, 0x20 - ldrsh r1, [r4, r0] - movs r0, 0x20 - negs r0, r0 - cmp r1, r0 - ble _08145490 - subs r0, r2, 0x2 - strh r0, [r4, 0x20] -_08145490: - ldr r0, _0814549C @ =gUnknown_0203935A - ldrh r0, [r0] - negs r0, r0 - strh r0, [r4, 0x26] - b _081454D8 - .align 2, 0 -_0814549C: .4byte gUnknown_0203935A -_081454A0: - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent - ldrh r1, [r4, 0x3C] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _081454D8 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - b _081454D6 -_081454BE: - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent - ldrh r2, [r4, 0x20] - movs r0, 0x20 - ldrsh r1, [r4, r0] - movs r0, 0x20 - negs r0, r0 - cmp r1, r0 - ble _081454D8 - subs r0, r2, 0x1 -_081454D6: - strh r0, [r4, 0x20] -_081454D8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8145420 - - thumb_func_start sub_81454E0 -sub_81454E0: @ 81454E0 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, _081454F8 @ =gUnknown_0203935C - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _081454FC - adds r0, r5, 0 - bl DestroySprite - b _081456A6 - .align 2, 0 -_081454F8: .4byte gUnknown_0203935C -_081454FC: - ldrh r0, [r5, 0x3C] - adds r0, 0x1 - strh r0, [r5, 0x3C] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0xA - bhi _08145544 - lsls r0, 2 - ldr r1, _08145514 @ =_08145518 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08145514: .4byte _08145518 - .align 2, 0 -_08145518: - .4byte _08145544 - .4byte _0814559E - .4byte _08145620 - .4byte _08145660 - .4byte _08145544 - .4byte _08145544 - .4byte _08145544 - .4byte _08145544 - .4byte _08145544 - .4byte _08145544 - .4byte _08145696 -_08145544: - ldrb r1, [r5, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r5, 0x1] - movs r0, 0x30 - ldrsh r1, [r5, r0] - movs r0, 0x1F - ands r1, r0 - lsls r1, 1 - ldrb r2, [r5, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x3] - movs r0, 0x10 - strh r0, [r5, 0x32] - ldrh r4, [r5, 0x30] - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x80 - lsls r0, 9 - movs r1, 0x10 - bl __divsi3 - adds r1, r0, 0 - str r1, [sp] - adds r0, r4, 0 - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - adds r2, r5, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - movs r0, 0x1 - strh r0, [r5, 0x2E] - b _081456A6 -_0814559E: - ldrh r1, [r5, 0x32] - movs r2, 0x32 - ldrsh r0, [r5, r2] - cmp r0, 0xFF - bgt _081455D4 - adds r0, r1, 0 - adds r0, 0x8 - strh r0, [r5, 0x32] - ldrh r4, [r5, 0x30] - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x32 - ldrsh r1, [r5, r0] - movs r0, 0x80 - lsls r0, 9 - bl __divsi3 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - adds r0, r4, 0 - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - b _081455DA -_081455D4: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] -_081455DA: - movs r2, 0x30 - ldrsh r1, [r5, r2] - cmp r1, 0x2 - beq _081456A6 - cmp r1, 0x2 - bgt _081455EC - cmp r1, 0x1 - beq _081455F2 - b _081456A6 -_081455EC: - cmp r1, 0x3 - beq _0814560A - b _081456A6 -_081455F2: - ldrh r1, [r5, 0x3C] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08145602 - ldrh r0, [r5, 0x22] - adds r0, 0x1 - strh r0, [r5, 0x22] -_08145602: - ldrh r0, [r5, 0x20] - subs r0, 0x2 - strh r0, [r5, 0x20] - b _081456A6 -_0814560A: - ldrh r0, [r5, 0x3C] - ands r1, r0 - cmp r1, 0 - bne _08145618 - ldrh r0, [r5, 0x22] - adds r0, 0x1 - strh r0, [r5, 0x22] -_08145618: - ldrh r0, [r5, 0x20] - adds r0, 0x2 - strh r0, [r5, 0x20] - b _081456A6 -_08145620: - ldrh r1, [r5, 0x34] - movs r2, 0x34 - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _08145630 - subs r0, r1, 0x1 - strh r0, [r5, 0x34] - b _081456A6 -_08145630: - ldr r1, _0814565C @ =REG_BLDCNT - movs r2, 0xF4 - lsls r2, 4 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x10 - strh r0, [r1] - ldrb r1, [r5, 0x1] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r5, 0x1] - movs r0, 0x10 - strh r0, [r5, 0x34] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _081456A6 - .align 2, 0 -_0814565C: .4byte REG_BLDCNT -_08145660: - ldrh r1, [r5, 0x34] - movs r2, 0x34 - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _08145684 - subs r1, 0x1 - strh r1, [r5, 0x34] - ldr r3, _08145680 @ =REG_BLDALPHA - movs r0, 0x34 - ldrsh r2, [r5, r0] - movs r0, 0x10 - subs r0, r2 - lsls r0, 8 - adds r1, r0 - strh r1, [r3] - b _081456A6 - .align 2, 0 -_08145680: .4byte REG_BLDALPHA -_08145684: - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r0, 0xA - strh r0, [r5, 0x2E] - b _081456A6 -_08145696: - ldr r0, _081456B0 @ =REG_BLDCNT - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, r5, 0 - bl DestroySprite -_081456A6: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081456B0: .4byte REG_BLDCNT - thumb_func_end sub_81454E0 - - thumb_func_start sub_81456B4 -sub_81456B4: @ 81456B4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x10] - lsls r3, 16 - lsrs r3, 16 - mov r9, r3 - adds r0, r6, 0 - bl NationalPokedexNumToSpecies - adds r6, r0, 0 - cmp r6, 0xC9 - beq _081456F8 - movs r0, 0x9A - lsls r0, 1 - cmp r6, r0 - beq _081456EE - movs r7, 0 - b _081456FC -_081456EE: - ldr r0, _081456F4 @ =gSaveBlock2 - ldr r7, [r0, 0x20] - b _081456FC - .align 2, 0 -_081456F4: .4byte gSaveBlock2 -_081456F8: - ldr r0, _081457E8 @ =gSaveBlock2 - ldr r7, [r0, 0x1C] -_081456FC: - lsls r0, r6, 3 - ldr r1, _081457EC @ =gMonFrontPicTable - adds r0, r1 - ldr r1, _081457F0 @ =gMonFrontPicCoords - lsls r2, r6, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _081457F4 @ =gUnknown_0840B5A0 - mov r8, r4 - mov r5, r9 - lsls r4, r5, 2 - add r4, r8 - ldr r4, [r4] - str r4, [sp] - str r6, [sp, 0x4] - str r7, [sp, 0x8] - movs r4, 0x1 - str r4, [sp, 0xC] - bl sub_800D378 - ldr r2, _081457F8 @ =0x0000ffff - adds r0, r6, 0 - movs r1, 0 - bl species_and_otid_get_pal - lsls r5, 4 - mov r8, r5 - movs r1, 0x80 - lsls r1, 1 - add r1, r8 - lsls r1, 16 - lsrs r1, 16 - movs r2, 0x20 - bl LoadCompressedPalette - mov r7, r9 - lsls r6, r7, 24 - lsrs r6, 24 - mov r0, r9 - adds r1, r6, 0 - bl sub_8143648 - ldr r0, _081457FC @ =gUnknown_02024E8C - mov r2, r10 - lsls r1, r2, 16 - asrs r1, 16 - ldr r3, [sp, 0x10] - lsls r2, r3, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _08145800 @ =gSprites - lsls r2, r4, 4 - adds r2, r4 - lsls r2, 2 - adds r3, r2, r5 - ldrb r1, [r3, 0x5] - movs r0, 0xF - ands r0, r1 - mov r7, r8 - orrs r0, r7 - movs r1, 0xD - negs r1, r1 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3, 0x5] - mov r0, r9 - adds r0, 0x1 - strh r0, [r3, 0x30] - movs r0, 0x3E - adds r0, r3 - mov r8, r0 - ldrb r0, [r0] - orrs r0, r1 - mov r1, r8 - strb r0, [r1] - adds r0, r5, 0 - adds r0, 0x1C - adds r2, r0 - ldr r0, _08145804 @ =sub_81454E0 - str r0, [r2] - ldr r0, _08145808 @ =gSpriteTemplate_840CAEC - movs r2, 0x20 - ldrsh r1, [r3, r2] - movs r7, 0x22 - ldrsh r2, [r3, r7] - movs r3, 0x1 - bl CreateSprite - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r4, [r0, 0x2E] - adds r1, r6, 0 - bl StartSpriteAnimIfDifferent - adds r0, r4, 0 - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_081457E8: .4byte gSaveBlock2 -_081457EC: .4byte gMonFrontPicTable -_081457F0: .4byte gMonFrontPicCoords -_081457F4: .4byte gUnknown_0840B5A0 -_081457F8: .4byte 0x0000ffff -_081457FC: .4byte gUnknown_02024E8C -_08145800: .4byte gSprites -_08145804: .4byte sub_81454E0 -_08145808: .4byte gSpriteTemplate_840CAEC - thumb_func_end sub_81456B4 - - thumb_func_start sub_814580C -sub_814580C: @ 814580C - push {r4,lr} - adds r3, r0, 0 - ldr r4, _08145838 @ =gSprites - movs r1, 0x2E - ldrsh r0, [r3, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0xA - beq _08145830 - ldr r0, _0814583C @ =gUnknown_0203935C - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - beq _08145840 -_08145830: - adds r0, r3, 0 - bl DestroySprite - b _081458D4 - .align 2, 0 -_08145838: .4byte gSprites -_0814583C: .4byte gUnknown_0203935C -_08145840: - adds r0, r1, 0 - adds r0, 0x3E - ldrb r0, [r0] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - movs r1, 0x4 - ands r1, r0 - mov r0, r12 - ldrb r2, [r0] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - movs r2, 0x2E - ldrsh r1, [r3, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x1] - movs r0, 0xC - ands r0, r1 - ldrb r2, [r3, 0x1] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x1] - movs r0, 0x2E - ldrsh r2, [r3, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r2, 0x4 - negs r2, r2 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x1] - movs r2, 0x2E - ldrsh r1, [r3, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x3] - movs r1, 0x3E - ands r1, r0 - ldrb r2, [r3, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x3] - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x20] - strh r0, [r3, 0x20] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x22] - strh r0, [r3, 0x22] -_081458D4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_814580C - - thumb_func_start sub_81458DC -sub_81458DC: @ 81458DC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r7, _0814597C @ =0x0201c000 - ldr r0, _08145980 @ =0x00004023 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl GetStarterPokemon - lsls r0, 16 - lsrs r0, 16 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - movs r4, 0x1 - movs r5, 0 - ldr r0, _08145984 @ =0x00000181 - mov r8, r0 -_0814590E: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8090D90 - lsls r0, 24 - adds r6, r7, 0 - adds r6, 0x90 - cmp r0, 0 - beq _0814592C - lsls r0, r5, 1 - adds r0, r6, r0 - strh r4, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_0814592C: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r8 - bls _0814590E - adds r4, r5, 0 - ldr r0, _08145984 @ =0x00000181 - lsls r1, r4, 16 - mov r9, r1 - movs r2, 0x8E - adds r2, r7 - mov r8, r2 - adds r1, r7, 0 - adds r1, 0x86 - str r1, [sp] - cmp r4, r0 - bhi _08145964 - adds r1, r6, 0 - movs r3, 0 - adds r2, r0, 0 -_08145954: - lsls r0, r4, 1 - adds r0, r1, r0 - strh r3, [r0] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r2 - bls _08145954 -_08145964: - movs r2, 0xE5 - lsls r2, 2 - adds r0, r7, r2 - strh r5, [r0] - mov r1, r9 - lsrs r0, r1, 16 - cmp r0, 0x43 - bhi _08145988 - mov r2, r8 - strh r5, [r2] - b _0814598E - .align 2, 0 -_0814597C: .4byte 0x0201c000 -_08145980: .4byte 0x00004023 -_08145984: .4byte 0x00000181 -_08145988: - movs r0, 0x44 - mov r1, r8 - strh r0, [r1] -_0814598E: - movs r5, 0 - movs r2, 0xE5 - lsls r2, 2 - adds r4, r7, r2 - mov r9, r5 - b _0814599E -_0814599A: - cmp r5, 0x43 - bhi _081459EE -_0814599E: - bl Random - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r4] - bl __umodsi3 - lsls r0, 16 - lsrs r2, r0, 16 - lsls r1, r5, 1 - adds r1, r7, r1 - lsls r0, r2, 1 - adds r3, r6, r0 - ldrh r0, [r3] - strh r0, [r1] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - mov r0, r9 - strh r0, [r3] - ldrh r0, [r4] - subs r0, 0x1 - strh r0, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r2, r0 - beq _081459E8 - ldrh r0, [r4] - lsls r0, 1 - adds r0, r6, r0 - ldrh r0, [r0] - strh r0, [r3] - ldrh r0, [r4] - lsls r0, 1 - adds r0, r6, r0 - mov r1, r9 - strh r1, [r0] -_081459E8: - ldrh r0, [r4] - cmp r0, 0 - bne _0814599A -_081459EE: - mov r2, r8 - ldrh r0, [r2] - cmp r0, 0x43 - bhi _08145A26 - adds r5, r0, 0 - movs r2, 0 - cmp r5, 0x43 - bhi _08145A5C - mov r3, r8 -_08145A00: - lsls r1, r5, 1 - adds r1, r7, r1 - lsls r0, r2, 1 - adds r0, r7, r0 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r3] - cmp r2, r0 - bne _08145A1A - movs r2, 0 -_08145A1A: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x43 - bls _08145A00 - b _08145A5C -_08145A26: - movs r4, 0 - ldrh r0, [r7] - cmp r0, r10 - beq _08145A42 -_08145A2E: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - lsls r0, r4, 1 - adds r0, r7, r0 - ldrh r0, [r0] - cmp r0, r10 - beq _08145A42 - cmp r4, 0x43 - bls _08145A2E -_08145A42: - mov r1, r8 - ldrh r0, [r1] - subs r0, 0x1 - cmp r4, r0 - bge _08145A5C - lsls r0, r4, 1 - adds r0, r7, r0 - ldr r2, [sp] - ldrh r1, [r2] - strh r1, [r0] - mov r0, r10 - strh r0, [r2] - b _08145A62 -_08145A5C: - mov r2, r10 - ldr r1, [sp] - strh r2, [r1] -_08145A62: - movs r0, 0x44 - mov r1, r8 - strh r0, [r1] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81458DC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/roulette.s b/asm/roulette.s index 01ff3ac8f..0704caf7f 100644 --- a/asm/roulette.s +++ b/asm/roulette.s @@ -2555,7 +2555,7 @@ sub_811659C: @ 811659C cmp r0, 0 beq _08116624 movs r0, 0x1D - bl sub_8053108 + bl GetGameStat ldrh r1, [r4, 0x1E] adds r1, 0x1 strh r1, [r4, 0x1E] @@ -2566,7 +2566,7 @@ sub_811659C: @ 811659C movs r0, 0x1E ldrsh r1, [r4, r0] movs r0, 0x1D - bl sav12_xor_set + bl SetGameStat _081165E4: ldr r1, _081165F8 @ =sub_811677C ldr r2, _081165FC @ =0x0000ffff diff --git a/asm/save_failed_screen.s b/asm/save_failed_screen.s deleted file mode 100644 index a114bbea3..000000000 --- a/asm/save_failed_screen.s +++ /dev/null @@ -1,779 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start fullscreen_save_activate -fullscreen_save_activate: @ 8146E10 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08146E30 @ =sub_8146E50 - bl SetMainCallback2 - ldr r0, _08146E34 @ =gUnknown_0203933C - strh r4, [r0] - ldr r1, _08146E38 @ =gUnknown_0203933E - movs r0, 0 - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08146E30: .4byte sub_8146E50 -_08146E34: .4byte gUnknown_0203933C -_08146E38: .4byte gUnknown_0203933E - thumb_func_end fullscreen_save_activate - - thumb_func_start sub_8146E3C -sub_8146E3C: @ 8146E3C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8146E3C - - thumb_func_start sub_8146E50 -sub_8146E50: @ 8146E50 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - ldr r0, _08146FB0 @ =gMain - ldr r1, _08146FB4 @ =0x0000043c - adds r7, r0, r1 - ldrb r0, [r7] - cmp r0, 0 - beq _08146E6C - cmp r0, 0x1 - bne _08146E6C - b _0814701C -_08146E6C: - movs r0, 0 - bl SetVBlankCallback - movs r0, 0x80 - lsls r0, 19 - mov r9, r0 - movs r1, 0 - strh r1, [r0] - ldr r6, _08146FB8 @ =REG_BG3CNT - strh r1, [r6] - adds r0, 0xC - mov r8, r0 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - ldr r5, _08146FBC @ =REG_BG0CNT - strh r1, [r5] - adds r0, 0x12 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - add r0, sp, 0x4 - strh r1, [r0] - ldr r2, _08146FC0 @ =0x040000d4 - str r0, [r2] - movs r1, 0xC0 - lsls r1, 19 - str r1, [r2, 0x4] - ldr r0, _08146FC4 @ =0x8100c000 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r4, 0 - str r4, [sp, 0x8] - add r0, sp, 0x8 - str r0, [r2] - movs r0, 0xE0 - lsls r0, 19 - str r0, [r2, 0x4] - ldr r0, _08146FC8 @ =0x85000100 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - add r0, sp, 0x4 - strh r4, [r0] - str r0, [r2] - movs r0, 0xA0 - lsls r0, 19 - str r0, [r2, 0x4] - ldr r0, _08146FCC @ =0x81000200 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - ldr r0, _08146FD0 @ =gUnknown_083F66F0 - bl LZ77UnCompVram - ldr r0, _08146FD4 @ =gBirchBagTilemap - ldr r1, _08146FD8 @ =0x06003000 - bl LZ77UnCompVram - ldr r0, _08146FDC @ =gBirchGrassTilemap - ldr r1, _08146FE0 @ =0x06003800 - bl LZ77UnCompVram - ldr r0, _08146FE4 @ =gUnknown_08411980 - ldr r1, _08146FE8 @ =0x06010020 - bl LZ77UnCompVram - bl ResetSpriteData - bl ResetTasks - bl ResetPaletteFade - ldr r0, _08146FEC @ =gUnknown_083F62EC - movs r1, 0 - movs r2, 0x40 - bl LoadPalette - ldr r0, _08146FF0 @ =gUnknown_08411960 - movs r1, 0x80 - lsls r1, 1 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08146FF4 @ =gWindowConfig_81E6C3C - bl SetUpWindowConfig - ldr r0, _08146FF8 @ =gWindowConfig_81E6CE4 - bl InitMenuWindow - .if REVISION >= 1 - movs r0, 0xD - movs r1, 0x6 - movs r2, 0x10 - movs r3, 0x9 - .else - movs r0, 0xD - movs r1, 0x8 - movs r2, 0x10 - movs r3, 0xB - .endif - bl MenuDrawTextWindow - .if REVISION >= 1 - movs r0, 0x1 - movs r1, 0xA - movs r2, 0x1C - movs r3, 0x13 - .else - movs r0, 0x1 - movs r1, 0xC - movs r2, 0x1C - movs r3, 0x13 - .endif - bl MenuDrawTextWindow - ldr r0, _08146FFC @ =gSystemText_SaveFailedBackupCheck - .if REVISION >= 1 - movs r1, 0x2 - movs r2, 0xB - .else - movs r1, 0x2 - movs r2, 0xD - .endif - bl MenuPrint - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r3, _08147000 @ =0x04000208 - ldrh r2, [r3] - strh r4, [r3] - ldr r4, _08147004 @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _08147008 @ =REG_DISPSTAT - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r0, _0814700C @ =sub_8146E3C - bl SetVBlankCallback - ldr r1, _08147010 @ =0x00000703 - adds r0, r1, 0 - strh r0, [r6] - ldr r1, _08147014 @ =0x00000602 - adds r0, r1, 0 - mov r1, r8 - strh r0, [r1] - ldr r1, _08147018 @ =0x00001f08 - adds r0, r1, 0 - strh r0, [r5] - movs r1, 0xEA - lsls r1, 5 - adds r0, r1, 0 - mov r1, r9 - strh r0, [r1] - ldrb r0, [r7] - adds r0, 0x1 - strb r0, [r7] - b _08147032 - .align 2, 0 -_08146FB0: .4byte gMain -_08146FB4: .4byte 0x0000043c -_08146FB8: .4byte REG_BG3CNT -_08146FBC: .4byte REG_BG0CNT -_08146FC0: .4byte 0x040000d4 -_08146FC4: .4byte 0x8100c000 -_08146FC8: .4byte 0x85000100 -_08146FCC: .4byte 0x81000200 -_08146FD0: .4byte gUnknown_083F66F0 -_08146FD4: .4byte gBirchBagTilemap -_08146FD8: .4byte 0x06003000 -_08146FDC: .4byte gBirchGrassTilemap -_08146FE0: .4byte 0x06003800 -_08146FE4: .4byte gUnknown_08411980 -_08146FE8: .4byte 0x06010020 -_08146FEC: .4byte gUnknown_083F62EC -_08146FF0: .4byte gUnknown_08411960 -_08146FF4: .4byte gWindowConfig_81E6C3C -_08146FF8: .4byte gWindowConfig_81E6CE4 -_08146FFC: .4byte gSystemText_SaveFailedBackupCheck -_08147000: .4byte 0x04000208 -_08147004: .4byte 0x04000200 -_08147008: .4byte REG_DISPSTAT -_0814700C: .4byte sub_8146E3C -_08147010: .4byte 0x00000703 -_08147014: .4byte 0x00000602 -_08147018: .4byte 0x00001f08 -_0814701C: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08147032 - ldr r0, _08147040 @ =sub_8147048 - bl SetMainCallback2 - ldr r0, _08147044 @ =sub_8147218 - bl SetVBlankCallback -_08147032: - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08147040: .4byte sub_8147048 -_08147044: .4byte sub_8147218 - thumb_func_end sub_8146E50 - - thumb_func_start sub_8147048 -sub_8147048: @ 8147048 - push {r4,r5,lr} - movs r4, 0 - ldr r0, _081470C8 @ =gUnknown_0203933E - movs r1, 0x1 - strh r1, [r0] - ldr r1, _081470CC @ =gUnknown_03005EA8 - ldr r0, [r1] - cmp r0, 0 - beq _081470A6 - adds r5, r1, 0 -_0814705C: - ldr r0, [r5] - bl sub_814737C - lsls r0, 24 - cmp r0, 0 - bne _0814710C - .if REVISION >= 1 - movs r0, 0x1 - movs r1, 0xA - movs r2, 0x1C - movs r3, 0x13 - .else - movs r0, 0x1 - movs r1, 0xC - movs r2, 0x1C - movs r3, 0x13 - .endif - bl MenuDrawTextWindow - ldr r0, _081470D0 @ =gSystemText_CheckCompleteSaveAttempt - .if REVISION >= 1 - movs r1, 0x2 - movs r2, 0xB - .else - movs r1, 0x2 - movs r2, 0xD - .endif - bl MenuPrint - ldr r0, _081470D4 @ =gUnknown_0203933C - ldrb r0, [r0] - bl sub_8125C3C - ldr r0, [r5] - cmp r0, 0 - beq _08147096 - ldr r0, _081470D8 @ =gSystemText_SaveFailedBackupCheck - .if REVISION >= 1 - movs r1, 0x2 - movs r2, 0xB - .else - movs r1, 0x2 - movs r2, 0xD - .endif - bl MenuPrint -_08147096: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, [r5] - cmp r0, 0 - beq _081470A6 - cmp r4, 0x2 - bls _0814705C -_081470A6: - cmp r4, 0x3 - bne _081470E4 - .if REVISION >= 1 - movs r0, 0x1 - movs r1, 0xA - movs r2, 0x1C - movs r3, 0x13 - .else - movs r0, 0x1 - movs r1, 0xC - movs r2, 0x1C - movs r3, 0x13 - .endif - bl MenuDrawTextWindow - ldr r0, _081470DC @ =gSystemText_BackupDamagedGameContinue - .if REVISION >= 1 - movs r1, 0x2 - movs r2, 0xB - .else - movs r1, 0x2 - movs r2, 0xD - .endif - bl MenuPrint - ldr r0, _081470E0 @ =sub_81471A4 - bl SetMainCallback2 - b _0814713E - .align 2, 0 -_081470C8: .4byte gUnknown_0203933E -_081470CC: .4byte gUnknown_03005EA8 -_081470D0: .4byte gSystemText_CheckCompleteSaveAttempt -_081470D4: .4byte gUnknown_0203933C -_081470D8: .4byte gSystemText_SaveFailedBackupCheck -_081470DC: .4byte gSystemText_BackupDamagedGameContinue -_081470E0: .4byte sub_81471A4 -_081470E4: - .if REVISION >= 1 - movs r0, 0x1 - movs r1, 0xA - movs r2, 0x1C - movs r3, 0x13 - .else - movs r0, 0x1 - movs r1, 0xC - movs r2, 0x1C - movs r3, 0x13 - .endif - bl MenuDrawTextWindow - ldr r0, _08147104 @ =gUnknown_03005EBC - ldr r0, [r0] - cmp r0, 0 - bne _08147134 - ldr r0, _08147108 @ =gSystemText_SaveCompletedGameEnd - .if REVISION >= 1 - movs r1, 0x2 - movs r2, 0xB - .else - movs r1, 0x2 - movs r2, 0xD - .endif - bl MenuPrint - b _0814713E - .align 2, 0 -_08147104: .4byte gUnknown_03005EBC -_08147108: .4byte gSystemText_SaveCompletedGameEnd -_0814710C: - .if REVISION >= 1 - movs r0, 0x1 - movs r1, 0xA - movs r2, 0x1C - movs r3, 0x13 - .else - movs r0, 0x1 - movs r1, 0xC - movs r2, 0x1C - movs r3, 0x13 - .endif - bl MenuDrawTextWindow - ldr r0, _0814712C @ =gSystemText_BackupDamagedGameContinue - .if REVISION >= 1 - movs r1, 0x2 - movs r2, 0xB - .else - movs r1, 0x2 - movs r2, 0xD - .endif - bl MenuPrint - ldr r0, _08147130 @ =sub_8147154 - bl SetMainCallback2 - b _08147144 - .align 2, 0 -_0814712C: .4byte gSystemText_BackupDamagedGameContinue -_08147130: .4byte sub_8147154 -_08147134: - ldr r0, _0814714C @ =gSystemText_SaveCompletedPressA - .if REVISION >= 1 - movs r1, 0x2 - movs r2, 0xB - .else - movs r1, 0x2 - movs r2, 0xD - .endif - bl MenuPrint -_0814713E: - ldr r0, _08147150 @ =sub_81471A4 - bl SetMainCallback2 -_08147144: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814714C: .4byte gSystemText_SaveCompletedPressA -_08147150: .4byte sub_81471A4 - thumb_func_end sub_8147048 - - thumb_func_start sub_8147154 -sub_8147154: @ 8147154 - push {lr} - ldr r1, _08147190 @ =gUnknown_0203933E - movs r0, 0 - strh r0, [r1] - ldr r0, _08147194 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0814718A - .if REVISION >= 1 - movs r0, 0x1 - movs r1, 0xA - movs r2, 0x1C - movs r3, 0x13 - .else - movs r0, 0x1 - movs r1, 0xC - movs r2, 0x1C - movs r3, 0x13 - .endif - bl MenuDrawTextWindow - ldr r0, _08147198 @ =gSystemText_GameplayEnded - .if REVISION >= 1 - movs r1, 0x2 - movs r2, 0xB - .else - movs r1, 0x2 - movs r2, 0xD - .endif - bl MenuPrint - ldr r0, _0814719C @ =sub_8146E3C - bl SetVBlankCallback - ldr r0, _081471A0 @ =sub_81471A4 - bl SetMainCallback2 -_0814718A: - pop {r0} - bx r0 - .align 2, 0 -_08147190: .4byte gUnknown_0203933E -_08147194: .4byte gMain -_08147198: .4byte gSystemText_GameplayEnded -_0814719C: .4byte sub_8146E3C -_081471A0: .4byte sub_81471A4 - thumb_func_end sub_8147154 - - thumb_func_start sub_81471A4 -sub_81471A4: @ 81471A4 - push {lr} - sub sp, 0x4 - ldr r0, _081471DC @ =gUnknown_0203933E - movs r2, 0 - strh r2, [r0] - ldr r0, _081471E0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081471D4 - movs r0, 0x1 - negs r0, r0 - str r2, [sp] - movs r1, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _081471E4 @ =sub_8146E3C - bl SetVBlankCallback - ldr r0, _081471E8 @ =sub_81471EC - bl SetMainCallback2 -_081471D4: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_081471DC: .4byte gUnknown_0203933E -_081471E0: .4byte gMain -_081471E4: .4byte sub_8146E3C -_081471E8: .4byte sub_81471EC - thumb_func_end sub_81471A4 - - thumb_func_start sub_81471EC -sub_81471EC: @ 81471EC - push {r4,r5,lr} - bl UpdatePaletteFade - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _08147212 - ldr r5, _08147208 @ =gUnknown_03005EBC - ldr r0, [r5] - cmp r0, 0 - bne _0814720C - bl DoSoftReset - b _08147212 - .align 2, 0 -_08147208: .4byte gUnknown_03005EBC -_0814720C: - bl SetMainCallback2 - str r4, [r5] -_08147212: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81471EC - - thumb_func_start sub_8147218 -sub_8147218: @ 8147218 - push {r4,r5,lr} - ldr r0, _08147290 @ =gMain - mov r12, r0 - ldr r0, [r0, 0x24] - lsrs r4, r0, 3 - movs r0, 0x7 - ands r4, r0 - ldr r0, _08147294 @ =gUnknown_08411940 - ldr r1, [r0, 0x4] - ldr r0, [r0] - mov r2, r12 - str r0, [r2, 0x3C] - str r1, [r2, 0x40] - ldrh r1, [r2, 0x3E] - ldr r0, _08147298 @ =0xfffffe00 - ands r0, r1 - movs r1, 0x70 - orrs r0, r1 - strh r0, [r2, 0x3E] - mov r1, r12 - adds r1, 0x3C - .if REVISION >= 1 - movs r0, 0x38 - .else - movs r0, 0x48 - .endif - strb r0, [r1] - ldr r0, _0814729C @ =gUnknown_0203933E - ldrh r0, [r0] - cmp r0, 0 - beq _081472A8 - ldr r3, _081472A0 @ =gUnknown_08411948 - lsls r2, r4, 1 - adds r2, r4 - adds r0, r2, r3 - mov r4, r12 - adds r4, 0x40 - ldrb r5, [r0] - ldrh r1, [r4] - ldr r0, _081472A4 @ =0xfffffc00 - ands r0, r1 - orrs r0, r5 - strh r0, [r4] - adds r0, r3, 0x2 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r1, 4 - adds r3, 0x1 - adds r2, r3 - ldrb r0, [r2] - lsls r0, 3 - orrs r1, r0 - mov r3, r12 - adds r3, 0x3F - movs r0, 0x1F - ands r1, r0 - lsls r1, 1 - ldrb r2, [r3] - movs r0, 0x3F - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _081472B8 - .align 2, 0 -_08147290: .4byte gMain -_08147294: .4byte gUnknown_08411940 -_08147298: .4byte 0xfffffe00 -_0814729C: .4byte gUnknown_0203933E -_081472A0: .4byte gUnknown_08411948 -_081472A4: .4byte 0xfffffc00 -_081472A8: - mov r2, r12 - adds r2, 0x40 - ldrh r1, [r2] - ldr r0, _081472D8 @ =0xfffffc00 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] -_081472B8: - ldr r0, _081472DC @ =gMain + 0x3C - movs r1, 0xE0 - lsls r1, 19 - movs r2, 0x1 - bl CpuFastSet - ldr r1, _081472E0 @ =gUnknown_0203933E - ldrh r0, [r1, 0x2] - cmp r0, 0 - beq _081472D0 - subs r0, 0x1 - strh r0, [r1, 0x2] -_081472D0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081472D8: .4byte 0xfffffc00 -_081472DC: .4byte gMain + 0x3C -_081472E0: .4byte gUnknown_0203933E - thumb_func_end sub_8147218 - - thumb_func_start sub_81472E4 -sub_81472E4: @ 81472E4 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _08147308 @ =0x02000000 - movs r3, 0x80 - lsls r3, 5 - movs r1, 0 - adds r2, r4, 0 - bl ReadFlash - movs r1, 0 - ldr r2, _0814730C @ =0x000003ff -_081472FC: - ldr r0, [r4] - cmp r0, 0 - beq _08147310 - movs r0, 0x1 - b _0814731E - .align 2, 0 -_08147308: .4byte 0x02000000 -_0814730C: .4byte 0x000003ff -_08147310: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - adds r4, 0x4 - cmp r1, r2 - bls _081472FC - movs r0, 0 -_0814731E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81472E4 - - thumb_func_start sub_8147324 -sub_8147324: @ 8147324 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r6, r0, 16 - movs r0, 0 - ldr r1, _08147374 @ =0x00000fff - mov r8, r1 - ldr r7, _08147378 @ =ProgramFlashByte -_08147336: - movs r4, 0 - adds r5, r0, 0x1 -_0814733A: - ldr r3, [r7] - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0 - bl _call_via_r3 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r8 - bls _0814733A - adds r0, r6, 0 - bl sub_81472E4 - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r5, 16 - lsrs r0, 16 - cmp r1, 0 - beq _08147366 - cmp r0, 0x81 - bls _08147336 -_08147366: - adds r0, r1, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08147374: .4byte 0x00000fff -_08147378: .4byte ProgramFlashByte - thumb_func_end sub_8147324 - - thumb_func_start sub_814737C -sub_814737C: @ 814737C - push {r4-r6,lr} - adds r5, r0, 0 - movs r6, 0 -_08147382: - movs r4, 0x1 - lsls r4, r6 - adds r0, r5, 0 - ands r0, r4 - cmp r0, 0 - beq _0814739C - adds r0, r6, 0 - bl sub_8147324 - lsls r0, 24 - cmp r0, 0 - bne _0814739C - bics r5, r4 -_0814739C: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x1F - bls _08147382 - cmp r5, 0 - beq _081473AE - movs r0, 0x1 - b _081473B0 -_081473AE: - movs r0, 0 -_081473B0: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_814737C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/script_menu.s b/asm/script_menu.s deleted file mode 100644 index bd6180940..000000000 --- a/asm/script_menu.s +++ /dev/null @@ -1,1237 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_80B5054 -sub_80B5054: @ 80B5054 - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r4, r2, 24 - lsls r3, 24 - lsrs r5, r3, 24 - ldr r0, _080B5098 @ =sub_80B52B4 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080B50A4 - ldr r1, _080B509C @ =gScriptResult - movs r0, 0xFF - strh r0, [r1] - ldr r1, _080B50A0 @ =gMultichoiceLists - lsls r0, r4, 3 - adds r0, r1 - ldrb r2, [r0, 0x4] - ldr r3, [r0] - str r5, [sp] - movs r0, 0 - str r0, [sp, 0x4] - adds r0, r7, 0 - adds r1, r6, 0 - bl sub_80B5138 - movs r0, 0x1 - b _080B50A6 - .align 2, 0 -_080B5098: .4byte sub_80B52B4 -_080B509C: .4byte gScriptResult -_080B50A0: .4byte gMultichoiceLists -_080B50A4: - movs r0, 0 -_080B50A6: - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80B5054 - - thumb_func_start sub_80B50B0 -sub_80B50B0: @ 80B50B0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - ldr r4, [sp, 0x20] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r5, r2, 24 - lsls r3, 24 - lsrs r6, r3, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080B5100 @ =sub_80B52B4 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080B510C - ldr r1, _080B5104 @ =gScriptResult - movs r0, 0xFF - strh r0, [r1] - ldr r1, _080B5108 @ =gMultichoiceLists - lsls r0, r5, 3 - adds r0, r1 - ldrb r2, [r0, 0x4] - ldr r3, [r0] - str r6, [sp] - str r4, [sp, 0x4] - mov r0, r8 - adds r1, r7, 0 - bl sub_80B5138 - movs r0, 0x1 - b _080B510E - .align 2, 0 -_080B5100: .4byte sub_80B52B4 -_080B5104: .4byte gScriptResult -_080B5108: .4byte gMultichoiceLists -_080B510C: - movs r0, 0 -_080B510E: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80B50B0 - - thumb_func_start GetStringWidthInTilesForScriptMenu -GetStringWidthInTilesForScriptMenu: @ 80B511C - push {lr} - adds r1, r0, 0 - ldr r0, _080B5134 @ =gWindowConfig_81E6CE4 - bl GetStringWidthGivenWindowConfig - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0x7 - lsrs r0, r1, 3 - pop {r1} - bx r1 - .align 2, 0 -_080B5134: .4byte gWindowConfig_81E6CE4 - thumb_func_end GetStringWidthInTilesForScriptMenu - - thumb_func_start sub_80B5138 -sub_80B5138: @ 80B5138 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - mov r10, r3 - ldr r3, [sp, 0x34] - ldr r4, [sp, 0x38] - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x8] - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0xC] - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x10] - mov r1, r10 - ldr r0, [r1] - bl GetStringWidthInTilesForScriptMenu - lsls r0, 16 - lsrs r5, r0, 16 - movs r4, 0x1 - cmp r4, r8 - bcs _080B5198 -_080B517A: - lsls r0, r4, 3 - add r0, r10 - ldr r0, [r0] - bl GetStringWidthInTilesForScriptMenu - lsls r0, 16 - lsrs r0, 16 - cmp r5, r0 - bcs _080B518E - adds r5, r0, 0 -_080B518E: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r8 - bcc _080B517A -_080B5198: - lsls r0, r5, 24 - lsrs r7, r0, 24 - mov r1, r9 - adds r0, r7, r1 - adds r0, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x1D - bls _080B51B8 - mov r0, r9 - adds r0, 0x1D - subs r0, r7 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r7, 0x1D -_080B51B8: - mov r1, r8 - lsls r0, r1, 1 - adds r0, 0x1 - ldr r1, [sp, 0x8] - lsls r4, r1, 24 - asrs r4, 24 - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - mov r0, r9 - adds r2, r7, 0 - adds r3, r4, 0 - bl MenuDrawTextWindow - mov r6, r9 - adds r6, 0x1 - lsls r6, 24 - lsrs r6, 24 - ldr r5, [sp, 0x8] - adds r5, 0x1 - lsls r5, 24 - lsrs r5, 24 - adds r0, r6, 0 - adds r1, r5, 0 - mov r2, r8 - mov r3, r10 - bl PrintMenuItems - ldr r0, [sp, 0x10] - str r0, [sp] - mov r1, r9 - subs r0, r7, r1 - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0 - adds r1, r6, 0 - adds r2, r5, 0 - mov r3, r8 - bl InitMenu - ldr r0, [sp, 0xC] - str r0, [sp] - mov r1, r8 - str r1, [sp, 0x4] - mov r0, r9 - ldr r1, [sp, 0x8] - adds r2, r7, 0 - adds r3, r4, 0 - bl sub_80B5230 - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B5138 - - thumb_func_start sub_80B5230 -sub_80B5230: @ 80B5230 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - ldr r0, [sp, 0x1C] - mov r8, r0 - ldr r0, [sp, 0x20] - mov r9, r0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r3, 24 - lsrs r3, 24 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, _080B5298 @ =sub_80B52B4 - movs r1, 0x50 - str r3, [sp] - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B529C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - strh r5, [r1, 0xA] - strh r6, [r1, 0xC] - ldr r3, [sp] - strh r3, [r1, 0xE] - mov r0, r8 - strh r0, [r1, 0x10] - mov r0, r9 - cmp r0, 0x3 - bls _080B52A0 - movs r0, 0x1 - b _080B52A2 - .align 2, 0 -_080B5298: .4byte sub_80B52B4 -_080B529C: .4byte gTasks -_080B52A0: - movs r0, 0 -_080B52A2: - strh r0, [r1, 0x12] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B5230 - - thumb_func_start sub_80B52B4 -sub_80B52B4: @ 80B52B4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080B52E0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B534E - ldr r2, _080B52E4 @ =gTasks - lsls r1, r4, 2 - adds r0, r1, r4 - lsls r0, 3 - adds r0, r2 - movs r2, 0x12 - ldrsh r0, [r0, r2] - adds r5, r1, 0 - cmp r0, 0 - bne _080B52E8 - bl ProcessMenuInputNoWrap - b _080B52EC - .align 2, 0 -_080B52E0: .4byte gPaletteFade -_080B52E4: .4byte gTasks -_080B52E8: - bl ProcessMenuInput -_080B52EC: - lsls r0, 24 - lsrs r0, 24 - lsls r0, 24 - asrs r1, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _080B534E - adds r0, 0x1 - cmp r1, r0 - bne _080B5328 - ldr r0, _080B5320 @ =gTasks - adds r1, r5, r4 - lsls r1, 3 - adds r1, r0 - movs r2, 0x10 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080B534E - movs r0, 0x5 - bl PlaySE - ldr r1, _080B5324 @ =gScriptResult - movs r0, 0x7F - strh r0, [r1] - b _080B532C - .align 2, 0 -_080B5320: .4byte gTasks -_080B5324: .4byte gScriptResult -_080B5328: - ldr r0, _080B5354 @ =gScriptResult - strh r1, [r0] -_080B532C: - bl sub_8072DEC - ldr r0, _080B5358 @ =gTasks - adds r3, r5, r4 - lsls r3, 3 - adds r3, r0 - ldrb r0, [r3, 0x8] - ldrb r1, [r3, 0xA] - ldrb r2, [r3, 0xC] - ldrb r3, [r3, 0xE] - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl DestroyTask - bl EnableBothScriptContexts -_080B534E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B5354: .4byte gScriptResult -_080B5358: .4byte gTasks - thumb_func_end sub_80B52B4 - - thumb_func_start Multichoice -Multichoice: @ 80B535C - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r4, r2, 24 - lsls r3, 24 - lsrs r5, r3, 24 - ldr r0, _080B539C @ =sub_80B52B4 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080B53A8 - ldr r1, _080B53A0 @ =gScriptResult - movs r0, 0xFF - strh r0, [r1] - ldr r1, _080B53A4 @ =gMultichoiceLists - lsls r0, r4, 3 - adds r0, r1 - ldrb r2, [r0, 0x4] - ldr r3, [r0] - str r5, [sp] - adds r0, r7, 0 - adds r1, r6, 0 - bl sub_80B53B4 - movs r0, 0x1 - b _080B53AA - .align 2, 0 -_080B539C: .4byte sub_80B52B4 -_080B53A0: .4byte gScriptResult -_080B53A4: .4byte gMultichoiceLists -_080B53A8: - movs r0, 0 -_080B53AA: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end Multichoice - - thumb_func_start sub_80B53B4 -sub_80B53B4: @ 80B53B4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r7, r3, 0 - ldr r3, [sp, 0x28] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsrs r6, r2, 24 - lsls r3, 24 - lsrs r3, 24 - mov r10, r3 - ldr r0, [r7] - bl GetStringWidthInTilesForScriptMenu - lsls r0, 16 - lsrs r4, r0, 16 - movs r5, 0x1 - cmp r5, r6 - bcs _080B5408 -_080B53EA: - lsls r0, r5, 3 - adds r0, r7 - ldr r0, [r0] - bl GetStringWidthInTilesForScriptMenu - lsls r0, 16 - lsrs r0, 16 - cmp r4, r0 - bcs _080B53FE - adds r4, r0, 0 -_080B53FE: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r6 - bcc _080B53EA -_080B5408: - lsls r4, 24 - lsrs r4, 24 - add r4, r8 - adds r4, 0x2 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r6, 1 - adds r0, 0x1 - mov r1, r9 - lsls r5, r1, 24 - asrs r5, 24 - adds r5, r0 - lsls r5, 24 - lsrs r5, 24 - mov r0, r8 - adds r2, r6, 0 - adds r3, r7, 0 - bl PrintMenuItems - movs r0, 0 - str r0, [sp] - mov r1, r8 - subs r0, r4, r1 - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0 - mov r2, r9 - adds r3, r6, 0 - bl InitMenu - mov r0, r10 - str r0, [sp] - str r6, [sp, 0x4] - mov r0, r8 - mov r1, r9 - adds r2, r4, 0 - adds r3, r5, 0 - bl sub_80B5230 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B53B4 - - thumb_func_start yes_no_box -yes_no_box: @ 80B546C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r6, _080B54B4 @ =task_yes_no_maybe - adds r0, r6, 0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080B54C0 - ldr r1, _080B54B8 @ =gScriptResult - movs r0, 0xFF - strh r0, [r1] - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x1 - bl DisplayYesNoMenu - adds r0, r6, 0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B54BC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r5, [r1, 0x8] - strh r4, [r1, 0xA] - movs r0, 0x1 - b _080B54C2 - .align 2, 0 -_080B54B4: .4byte task_yes_no_maybe -_080B54B8: .4byte gScriptResult -_080B54BC: .4byte gTasks -_080B54C0: - movs r0, 0 -_080B54C2: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end yes_no_box - - thumb_func_start unref_sub_80B54C8 -unref_sub_80B54C8: @ 80B54C8 - push {lr} - ldr r0, _080B54D8 @ =gScriptResult - ldrh r0, [r0] - cmp r0, 0xFF - beq _080B54DC - movs r0, 0x1 - b _080B54DE - .align 2, 0 -_080B54D8: .4byte gScriptResult -_080B54DC: - movs r0, 0 -_080B54DE: - pop {r1} - bx r1 - thumb_func_end unref_sub_80B54C8 - - thumb_func_start task_yes_no_maybe -task_yes_no_maybe: @ 80B54E4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080B5504 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0x4 - bgt _080B5508 - adds r0, r2, 0x1 - strh r0, [r1, 0xC] - b _080B556A - .align 2, 0 -_080B5504: .4byte gTasks -_080B5508: - bl ProcessMenuInputNoWrap - lsls r0, 24 - asrs r1, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080B552C - cmp r1, r0 - bgt _080B5524 - subs r0, 0x1 - cmp r1, r0 - beq _080B556A - b _080B5542 -_080B5524: - cmp r1, 0 - beq _080B553C - cmp r1, 0x1 - bne _080B5542 -_080B552C: - movs r0, 0x5 - bl PlaySE - ldr r1, _080B5538 @ =gScriptResult - movs r0, 0 - b _080B5540 - .align 2, 0 -_080B5538: .4byte gScriptResult -_080B553C: - ldr r1, _080B5570 @ =gScriptResult - movs r0, 0x1 -_080B5540: - strh r0, [r1] -_080B5542: - ldr r0, _080B5574 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r0, [r1, 0x8] - ldrb r1, [r1, 0xA] - adds r2, r0, 0x6 - lsls r2, 24 - lsrs r2, 24 - adds r3, r1, 0x5 - lsls r3, 24 - lsrs r3, 24 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl DestroyTask - bl EnableBothScriptContexts -_080B556A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B5570: .4byte gScriptResult -_080B5574: .4byte gTasks - thumb_func_end task_yes_no_maybe - - thumb_func_start sub_80B5578 -sub_80B5578: @ 80B5578 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - ldr r4, [sp, 0x30] - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r2, 24 - lsrs r6, r2, 24 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0xC] - lsls r4, 24 - lsrs r5, r4, 24 - movs r7, 0 - ldr r0, _080B55B8 @ =sub_80B5684 - mov r10, r0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B55BC - movs r0, 0 - b _080B5670 - .align 2, 0 -_080B55B8: .4byte sub_80B5684 -_080B55BC: - ldr r1, _080B5620 @ =gScriptResult - movs r0, 0xFF - strh r0, [r1] - ldr r0, _080B5624 @ =gMultichoiceLists - lsls r4, r6, 3 - adds r0, r4, r0 - ldrb r6, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r5, [sp, 0x4] - str r7, [sp, 0x8] - mov r0, r9 - mov r1, r8 - adds r2, r6, 0 - movs r3, 0 - bl sub_807274C - mov r0, r10 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r0, r6, 24 - lsrs r1, r0, 24 - lsrs r0, 25 - cmp r0, r5 - bcc _080B55FE - movs r0, 0x1 - ands r0, r6 - cmp r0, 0 - beq _080B5606 -_080B55FE: - cmp r5, 0x1 - beq _080B5606 - cmp r1, r5 - bne _080B5628 -_080B5606: - ldr r0, _080B5624 @ =gMultichoiceLists - adds r0, r4, r0 - ldrb r0, [r0, 0x4] - adds r1, r5, 0 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 23 - adds r0, 0x1 - mov r2, r8 - lsls r1, r2, 24 - b _080B563A - .align 2, 0 -_080B5620: .4byte gScriptResult -_080B5624: .4byte gMultichoiceLists -_080B5628: - adds r0, r6, 0 - adds r1, r5, 0 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 23 - adds r0, 0x3 - mov r3, r8 - lsls r1, r3, 24 -_080B563A: - asrs r1, 24 - adds r1, r0 - lsls r1, 24 - lsrs r7, r1, 24 - adds r0, r5, 0 - bl sub_807288C - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B5680 @ =gTasks - mov r3, r10 - lsls r1, r3, 2 - add r1, r10 - lsls r1, 3 - adds r1, r2 - mov r2, r9 - strh r2, [r1, 0x8] - mov r3, r8 - strh r3, [r1, 0xA] - add r0, r9 - adds r0, 0x2 - strh r0, [r1, 0xC] - strh r7, [r1, 0xE] - mov r0, sp - ldrh r0, [r0, 0xC] - strh r0, [r1, 0x10] - movs r0, 0x1 -_080B5670: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080B5680: .4byte gTasks - thumb_func_end sub_80B5578 - - thumb_func_start sub_80B5684 -sub_80B5684: @ 80B5684 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_80727CC - lsls r0, 24 - asrs r1, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _080B56F4 - adds r0, 0x1 - cmp r1, r0 - bne _080B56CC - ldr r2, _080B56C4 @ =gTasks - lsls r1, r5, 2 - adds r0, r1, r5 - lsls r0, 3 - adds r0, r2 - movs r2, 0x10 - ldrsh r0, [r0, r2] - adds r4, r1, 0 - cmp r0, 0 - bne _080B56F4 - movs r0, 0x5 - bl PlaySE - ldr r1, _080B56C8 @ =gScriptResult - movs r0, 0x7F - strh r0, [r1] - b _080B56D2 - .align 2, 0 -_080B56C4: .4byte gTasks -_080B56C8: .4byte gScriptResult -_080B56CC: - ldr r0, _080B56FC @ =gScriptResult - strh r1, [r0] - lsls r4, r5, 2 -_080B56D2: - bl sub_8072DEC - ldr r0, _080B5700 @ =gTasks - adds r3, r4, r5 - lsls r3, 3 - adds r3, r0 - ldrb r0, [r3, 0x8] - ldrb r1, [r3, 0xA] - ldrb r2, [r3, 0xC] - ldrb r3, [r3, 0xE] - bl MenuZeroFillWindowRect - adds r0, r5, 0 - bl DestroyTask - bl EnableBothScriptContexts -_080B56F4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B56FC: .4byte gScriptResult -_080B5700: .4byte gTasks - thumb_func_end sub_80B5684 - - thumb_func_start sp109_CreatePCMenu -sp109_CreatePCMenu: @ 80B5704 - push {lr} - ldr r0, _080B5724 @ =sub_80B52B4 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080B572C - ldr r1, _080B5728 @ =gScriptResult - movs r0, 0xFF - strh r0, [r1] - bl CreatePCMenu - movs r0, 0x1 - b _080B572E - .align 2, 0 -_080B5724: .4byte sub_80B52B4 -_080B5728: .4byte gScriptResult -_080B572C: - movs r0, 0 -_080B572E: - pop {r1} - bx r1 - thumb_func_end sp109_CreatePCMenu - - thumb_func_start CreatePCMenu -CreatePCMenu: @ 80B5734 - push {r4-r7,lr} - sub sp, 0x8 - ldr r0, _080B5758 @ =gPCText_PlayersPC - bl GetStringWidthInTilesForScriptMenu - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _080B575C @ =gPCText_SomeonesPC - bl GetStringWidthInTilesForScriptMenu - lsls r0, 16 - lsrs r0, 16 - cmp r4, r0 - bls _080B5760 - lsls r0, r4, 24 - lsrs r5, r0, 24 - b _080B5762 - .align 2, 0 -_080B5758: .4byte gPCText_PlayersPC -_080B575C: .4byte gPCText_SomeonesPC -_080B5760: - movs r5, 0x8 -_080B5762: - ldr r0, _080B5798 @ =0x00000804 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080B57A4 - movs r7, 0x4 - adds r4, r5, 0x2 - lsls r2, r4, 24 - lsrs r2, 24 - movs r0, 0 - movs r1, 0 - movs r3, 0x9 - bl MenuDrawTextWindow - ldr r0, _080B579C @ =gPCText_HallOfFame - movs r1, 0x1 - movs r2, 0x5 - bl MenuPrint - ldr r0, _080B57A0 @ =gPCText_LogOff - movs r1, 0x1 - movs r2, 0x7 - bl MenuPrint - b _080B57C0 - .align 2, 0 -_080B5798: .4byte 0x00000804 -_080B579C: .4byte gPCText_HallOfFame -_080B57A0: .4byte gPCText_LogOff -_080B57A4: - movs r7, 0x3 - adds r4, r5, 0x2 - lsls r2, r4, 24 - lsrs r2, 24 - movs r0, 0 - movs r1, 0 - movs r3, 0x7 - bl MenuDrawTextWindow - ldr r0, _080B57DC @ =gPCText_LogOff - movs r1, 0x1 - movs r2, 0x5 - bl MenuPrint -_080B57C0: - adds r6, r4, 0 - ldr r0, _080B57E0 @ =0x0000084b - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080B57E8 - ldr r0, _080B57E4 @ =gPCText_LanettesPC - movs r1, 0x1 - movs r2, 0x1 - bl MenuPrint - b _080B57F2 - .align 2, 0 -_080B57DC: .4byte gPCText_LogOff -_080B57E0: .4byte 0x0000084b -_080B57E4: .4byte gPCText_LanettesPC -_080B57E8: - ldr r0, _080B5830 @ =gPCText_SomeonesPC - movs r1, 0x1 - movs r2, 0x1 - bl MenuPrint -_080B57F2: - ldr r0, _080B5834 @ =gPCText_PlayersPC - movs r1, 0x1 - movs r2, 0x3 - bl MenuPrint - movs r4, 0 - str r4, [sp] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - adds r3, r7, 0 - bl InitMenu - lsls r2, r6, 24 - lsrs r2, 24 - lsls r3, r7, 1 - adds r3, 0x1 - str r4, [sp] - str r7, [sp, 0x4] - movs r0, 0 - movs r1, 0 - bl sub_80B5230 - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B5830: .4byte gPCText_SomeonesPC -_080B5834: .4byte gPCText_PlayersPC - thumb_func_end CreatePCMenu - - thumb_func_start sub_80B5838 -sub_80B5838: @ 80B5838 - push {lr} - bl MenuDisplayMessageBox - ldr r0, _080B584C @ =gUnknown_081A0A01 - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - pop {r0} - bx r0 - .align 2, 0 -_080B584C: .4byte gUnknown_081A0A01 - thumb_func_end sub_80B5838 - - thumb_func_start task_picbox -task_picbox: @ 80B5850 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080B5874 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080B58BE - cmp r0, 0x1 - bgt _080B5878 - cmp r0, 0 - beq _080B5894 - b _080B58BE - .align 2, 0 -_080B5874: .4byte gTasks -_080B5878: - cmp r0, 0x2 - beq _080B5882 - cmp r0, 0x3 - beq _080B58A0 - b _080B58BE -_080B5882: - movs r0, 0xC - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080B589C @ =gSprites - adds r0, r1 - bl FreeResourcesAndDestroySprite -_080B5894: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B58BE - .align 2, 0 -_080B589C: .4byte gSprites -_080B58A0: - ldrb r2, [r4, 0xE] - adds r0, r2, 0 - ldrb r3, [r4, 0x10] - adds r1, r3, 0 - adds r2, 0x9 - lsls r2, 24 - lsrs r2, 24 - adds r3, 0xA - lsls r3, 24 - lsrs r3, 24 - bl MenuZeroFillWindowRect - adds r0, r5, 0 - bl DestroyTask -_080B58BE: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end task_picbox - - thumb_func_start sub_80B58C4 -sub_80B58C4: @ 80B58C4 - push {r4-r7,lr} - lsls r0, 16 - lsrs r7, r0, 16 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r5, r2, 24 - ldr r4, _080B595C @ =task_picbox - adds r0, r4, 0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080B596C - adds r2, r6, 0 - adds r2, 0x9 - lsls r2, 24 - lsrs r2, 24 - adds r3, r5, 0 - adds r3, 0xA - lsls r3, 24 - lsrs r3, 24 - adds r0, r6, 0 - adds r1, r5, 0 - bl MenuDrawTextWindow - adds r0, r4, 0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080B5960 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - movs r0, 0 - strh r0, [r4, 0x8] - strh r7, [r4, 0xA] - lsls r1, r6, 19 - movs r0, 0xA0 - lsls r0, 14 - adds r1, r0 - asrs r1, 16 - lsls r2, r5, 19 - adds r2, r0 - asrs r2, 16 - adds r0, r7, 0 - movs r3, 0 - bl CreateMonSprite_PicBox - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xC] - strh r6, [r4, 0xE] - strh r5, [r4, 0x10] - ldr r3, _080B5964 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r0, r3, 0 - adds r0, 0x1C - adds r0, r1, r0 - ldr r2, _080B5968 @ =SpriteCallbackDummy - str r2, [r0] - adds r1, r3 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x5] - movs r0, 0x1 - b _080B596E - .align 2, 0 -_080B595C: .4byte task_picbox -_080B5960: .4byte gTasks -_080B5964: .4byte gSprites -_080B5968: .4byte SpriteCallbackDummy -_080B596C: - movs r0, 0 -_080B596E: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80B58C4 - - thumb_func_start picbox_close -picbox_close: @ 80B5974 - push {lr} - ldr r0, _080B5998 @ =task_picbox - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080B59A4 - ldr r0, _080B599C @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - ldr r0, _080B59A0 @ =sub_80B59AC - b _080B59A6 - .align 2, 0 -_080B5998: .4byte task_picbox -_080B599C: .4byte gTasks -_080B59A0: .4byte sub_80B59AC -_080B59A4: - movs r0, 0 -_080B59A6: - pop {r1} - bx r1 - thumb_func_end picbox_close - - thumb_func_start sub_80B59AC -sub_80B59AC: @ 80B59AC - push {lr} - ldr r0, _080B59C0 @ =task_picbox - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080B59C4 - movs r0, 0 - b _080B59C6 - .align 2, 0 -_080B59C0: .4byte task_picbox -_080B59C4: - movs r0, 0x1 -_080B59C6: - pop {r1} - bx r1 - thumb_func_end sub_80B59AC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/script_movement.s b/asm/script_movement.s new file mode 100644 index 000000000..72523c639 --- /dev/null +++ b/asm/script_movement.s @@ -0,0 +1,596 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start exec_movement +exec_movement: @ 80A20D4 + push {r4,lr} + sub sp, 0x4 + adds r4, r3, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + mov r3, sp + bl TryGetFieldObjectIdByLocalIdAndMap + lsls r0, 24 + cmp r0, 0 + beq _080A20F6 + movs r0, 0x1 + b _080A211E +_080A20F6: + ldr r0, _080A2128 @ =sub_80A244C + bl FuncIsActiveTask + lsls r0, 24 + cmp r0, 0 + bne _080A2108 + movs r0, 0x32 + bl sub_80A2198 +_080A2108: + bl sub_80A21E0 + lsls r0, 24 + lsrs r0, 24 + mov r1, sp + ldrb r1, [r1] + adds r2, r4, 0 + bl sub_80A21F4 + lsls r0, 24 + lsrs r0, 24 +_080A211E: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080A2128: .4byte sub_80A244C + thumb_func_end exec_movement + + thumb_func_start sub_80A212C +sub_80A212C: @ 80A212C + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + mov r3, sp + bl TryGetFieldObjectIdByLocalIdAndMap + lsls r0, 24 + cmp r0, 0 + bne _080A216E + bl sub_80A21E0 + lsls r0, 24 + lsrs r4, r0, 24 + mov r0, sp + ldrb r1, [r0] + adds r0, r4, 0 + bl sub_80A2260 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x10 + beq _080A216E + adds r0, r4, 0 + bl sub_80A2370 + lsls r0, 24 + lsrs r0, 24 + b _080A2170 +_080A216E: + movs r0, 0x1 +_080A2170: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80A212C + + thumb_func_start sub_80A2178 +sub_80A2178: @ 80A2178 + push {r4,lr} + bl sub_80A21E0 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xFF + beq _080A2192 + adds r0, r4, 0 + bl sub_80A2408 + adds r0, r4, 0 + bl DestroyTask +_080A2192: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A2178 + + thumb_func_start sub_80A2198 +sub_80A2198: @ 80A2198 + push {r4,r5,lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r0, _080A21D4 @ =sub_80A244C + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x1 + lsls r1, r0, 2 + adds r1, r0 + lsls r3, r1, 3 + ldr r5, _080A21D8 @ =gTasks + 0x8 + ldr r0, _080A21DC @ =0x0000ffff + adds r4, r0, 0 +_080A21B8: + lsls r0, r2, 1 + adds r0, r3 + adds r0, r5 + ldrh r1, [r0] + orrs r1, r4 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xF + bls _080A21B8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A21D4: .4byte sub_80A244C +_080A21D8: .4byte gTasks + 0x8 +_080A21DC: .4byte 0x0000ffff + thumb_func_end sub_80A2198 + + thumb_func_start sub_80A21E0 +sub_80A21E0: @ 80A21E0 + push {lr} + ldr r0, _080A21F0 @ =sub_80A244C + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_080A21F0: .4byte sub_80A244C + thumb_func_end sub_80A21E0 + + thumb_func_start sub_80A21F4 +sub_80A21F4: @ 80A21F4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r9, r2 + lsls r0, 24 + lsrs r5, r0, 24 + adds r7, r5, 0 + lsls r1, 24 + lsrs r6, r1, 24 + mov r8, r6 + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_80A2260 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x10 + beq _080A2230 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80A2370 + lsls r0, 24 + cmp r0, 0 + beq _080A2250 + adds r0, r5, 0 + adds r1, r4, 0 + adds r2, r6, 0 + b _080A2246 +_080A2230: + adds r0, r7, 0 + movs r1, 0xFF + bl sub_80A2260 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x10 + beq _080A2250 + adds r0, r7, 0 + adds r1, r4, 0 + mov r2, r8 +_080A2246: + mov r3, r9 + bl sub_80A23C8 + movs r0, 0 + b _080A2252 +_080A2250: + movs r0, 0x1 +_080A2252: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80A21F4 + + thumb_func_start sub_80A2260 +sub_80A2260: @ 80A2260 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r3, r1, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080A2284 @ =gTasks + 0x8 + adds r1, r0 + adds r1, 0x2 + movs r2, 0 +_080A2278: + ldrb r0, [r1] + cmp r0, r3 + bne _080A2288 + adds r0, r2, 0 + b _080A2296 + .align 2, 0 +_080A2284: .4byte gTasks + 0x8 +_080A2288: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + adds r1, 0x1 + cmp r2, 0xF + bls _080A2278 + movs r0, 0x10 +_080A2296: + pop {r1} + bx r1 + thumb_func_end sub_80A2260 + + thumb_func_start sub_80A229C +sub_80A229C: @ 80A229C + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r3, r1, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080A22CC @ =gTasks + 0x8 + adds r1, r0 + adds r1, 0x2 + str r1, [r2] + movs r0, 0 + cmp r0, r3 + bcs _080A22C8 +_080A22BA: + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + adds r1, 0x1 + cmp r0, r3 + bcc _080A22BA + str r1, [r2] +_080A22C8: + pop {r0} + bx r0 + .align 2, 0 +_080A22CC: .4byte gTasks + 0x8 + thumb_func_end sub_80A229C + + thumb_func_start sub_80A22D0 +sub_80A22D0: @ 80A22D0 + push {r4,lr} + sub sp, 0x4 + adds r4, r2, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r4, 24 + lsrs r4, 24 + mov r2, sp + bl sub_80A229C + ldr r0, [sp] + strb r4, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A22D0 + + thumb_func_start sub_80A22F4 +sub_80A22F4: @ 80A22F4 + push {r4,lr} + sub sp, 0x4 + adds r4, r2, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r2, sp + bl sub_80A229C + ldr r0, [sp] + ldrb r0, [r0] + strb r0, [r4] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A22F4 + + thumb_func_start sub_80A2318 +sub_80A2318: @ 80A2318 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + ldr r2, _080A2340 @ =gBitTable + lsrs r1, 22 + adds r1, r2 + ldr r2, [r1] + mvns r2, r2 + lsls r2, 16 + lsrs r2, 16 + ldr r3, _080A2344 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r3 + ldrh r0, [r1, 0x8] + ands r2, r0 + strh r2, [r1, 0x8] + bx lr + .align 2, 0 +_080A2340: .4byte gBitTable +_080A2344: .4byte gTasks + thumb_func_end sub_80A2318 + + thumb_func_start sub_80A2348 +sub_80A2348: @ 80A2348 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + ldr r3, _080A2368 @ =gTasks + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r2, r3 + ldr r0, _080A236C @ =gBitTable + lsrs r1, 22 + adds r1, r0 + ldr r0, [r1] + ldrh r1, [r2, 0x8] + orrs r0, r1 + strh r0, [r2, 0x8] + bx lr + .align 2, 0 +_080A2368: .4byte gTasks +_080A236C: .4byte gBitTable + thumb_func_end sub_80A2348 + + thumb_func_start sub_80A2370 +sub_80A2370: @ 80A2370 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + ldr r3, _080A2398 @ =gTasks + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r2, r3 + ldr r0, _080A239C @ =gBitTable + lsrs r1, 22 + adds r1, r0 + ldr r0, [r1] + ldrh r1, [r2, 0x8] + ands r0, r1 + cmp r0, 0 + bne _080A23A0 + movs r0, 0 + b _080A23A2 + .align 2, 0 +_080A2398: .4byte gTasks +_080A239C: .4byte gBitTable +_080A23A0: + movs r0, 0x1 +_080A23A2: + pop {r1} + bx r1 + thumb_func_end sub_80A2370 + + thumb_func_start npc_obj_offscreen_culling_and_flag_update +npc_obj_offscreen_culling_and_flag_update: @ 80A23A8 + lsls r0, 24 + ldr r2, _080A23B4 @ =gUnknown_020384F8 + lsrs r0, 22 + adds r0, r2 + str r1, [r0] + bx lr + .align 2, 0 +_080A23B4: .4byte gUnknown_020384F8 + thumb_func_end npc_obj_offscreen_culling_and_flag_update + + thumb_func_start sub_80A23B8 +sub_80A23B8: @ 80A23B8 + lsls r0, 24 + ldr r1, _080A23C4 @ =gUnknown_020384F8 + lsrs r0, 22 + adds r0, r1 + ldr r0, [r0] + bx lr + .align 2, 0 +_080A23C4: .4byte gUnknown_020384F8 + thumb_func_end sub_80A23B8 + + thumb_func_start sub_80A23C8 +sub_80A23C8: @ 80A23C8 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r5, r0, 0 + adds r4, r1, 0 + adds r6, r2, 0 + mov r8, r3 + lsls r5, 24 + lsrs r5, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r6, 24 + lsrs r6, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80A2318 + adds r0, r4, 0 + mov r1, r8 + bl npc_obj_offscreen_culling_and_flag_update + adds r0, r5, 0 + adds r1, r4, 0 + adds r2, r6, 0 + bl sub_80A22D0 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A23C8 + + thumb_func_start sub_80A2408 +sub_80A2408: @ 80A2408 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080A2444 @ =gTasks + 0x8 + adds r1, r0 + adds r4, r1, 0x2 + movs r5, 0 +_080A241C: + ldrb r0, [r4] + cmp r0, 0xFF + beq _080A2432 + adds r1, r0, 0 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080A2448 @ =gMapObjects + adds r0, r1 + bl UnfreezeMapObject +_080A2432: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, 0x1 + cmp r5, 0xF + bls _080A241C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2444: .4byte gTasks + 0x8 +_080A2448: .4byte gMapObjects + thumb_func_end sub_80A2408 + + thumb_func_start sub_80A244C +sub_80A244C: @ 80A244C + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r7, r0, 24 + movs r5, 0 + mov r6, sp +_080A2458: + adds r0, r7, 0 + adds r1, r5, 0 + mov r2, sp + bl sub_80A22F4 + ldrb r0, [r6] + cmp r0, 0xFF + beq _080A247C + adds r4, r0, 0 + adds r0, r5, 0 + bl sub_80A23B8 + adds r3, r0, 0 + adds r0, r7, 0 + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_80A2490 +_080A247C: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xF + bls _080A2458 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A244C + + thumb_func_start sub_80A2490 +sub_80A2490: @ 80A2490 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r3, 0 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + mov r8, r6 + lsls r2, 24 + lsrs r2, 24 + lsls r0, r2, 3 + adds r0, r2 + lsls r0, 2 + ldr r1, _080A24E0 @ =gMapObjects + adds r4, r0, r1 + adds r0, r4, 0 + bl FieldObjectIsSpecialAnimActive + lsls r0, 24 + cmp r0, 0 + beq _080A24C8 + adds r0, r4, 0 + bl FieldObjectClearAnimIfSpecialAnimFinished + lsls r0, 24 + cmp r0, 0 + beq _080A24FA +_080A24C8: + ldrb r1, [r5] + cmp r1, 0xFE + bne _080A24E4 + adds r0, r7, 0 + adds r1, r6, 0 + bl sub_80A2348 + adds r0, r4, 0 + bl FreezeMapObject + b _080A24FA + .align 2, 0 +_080A24E0: .4byte gMapObjects +_080A24E4: + adds r0, r4, 0 + bl FieldObjectSetSpecialAnim + lsls r0, 24 + cmp r0, 0 + bne _080A24FA + adds r5, 0x1 + mov r0, r8 + adds r1, r5, 0 + bl npc_obj_offscreen_culling_and_flag_update +_080A24FA: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A2490 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/script_pokemon_util_80C4BF0.s b/asm/script_pokemon_util_80C4BF0.s index dd4c18d96..6777ca135 100644 --- a/asm/script_pokemon_util_80C4BF0.s +++ b/asm/script_pokemon_util_80C4BF0.s @@ -10,7 +10,7 @@ sub_80C4BF0: @ 80C4BF0 push {r4,lr} ldr r2, _080C4C1C @ =gSaveBlock1 - ldr r1, _080C4C20 @ =gUnknown_02038570 + ldr r1, _080C4C20 @ =gContestMons ldrb r3, [r1, 0x15] movs r4, 0x9B lsls r4, 5 @@ -32,7 +32,7 @@ sub_80C4BF0: @ 80C4BF0 bx r0 .align 2, 0 _080C4C1C: .4byte gSaveBlock1 -_080C4C20: .4byte gUnknown_02038570 +_080C4C20: .4byte gContestMons _080C4C24: .4byte 0x00001364 thumb_func_end sub_80C4BF0 @@ -161,7 +161,7 @@ sub_80C4CEC: @ 80C4CEC sub_80C4CF8: @ 80C4CF8 push {lr} ldr r0, _080C4D28 @ =gUnknown_02038690 - ldr r1, _080C4D2C @ =gUnknown_02038695 + ldr r1, _080C4D2C @ =gContestPlayerMonIndex ldrb r2, [r1] adds r0, r2, r0 ldrb r0, [r0] @@ -184,7 +184,7 @@ sub_80C4CF8: @ 80C4CF8 b _080C4D44 .align 2, 0 _080C4D28: .4byte gUnknown_02038690 -_080C4D2C: .4byte gUnknown_02038695 +_080C4D2C: .4byte gContestPlayerMonIndex _080C4D30: .4byte gScriptContestRank _080C4D34: .4byte gUnknown_02038678 _080C4D38: .4byte 0x0000031f @@ -370,7 +370,7 @@ _080C4E78: lsrs r1, 24 mov r0, r9 bl sub_80C4698 - ldr r0, _080C4EAC @ =gUnknown_0203869A + ldr r0, _080C4EAC @ =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -388,7 +388,7 @@ _080C4E78: _080C4EA0: .4byte gUnknown_02038670 _080C4EA4: .4byte gSpecialVar_0x8006 _080C4EA8: .4byte gStringVar1 -_080C4EAC: .4byte gUnknown_0203869A +_080C4EAC: .4byte gIsLinkContest _080C4EB0: .4byte gStringVar2 _080C4EB4: .4byte gLinkPlayers + 0x8 _080C4EB8: @@ -486,7 +486,7 @@ _080C4F6C: .4byte ShowContestWinnerCleanup sub_80C4F70: @ 80C4F70 push {r4,lr} ldr r0, _080C4FA8 @ =0x00004010 - ldr r4, _080C4FAC @ =gUnknown_02038570 + ldr r4, _080C4FAC @ =gContestMons ldrb r1, [r4, 0x15] bl VarSet ldr r0, _080C4FB0 @ =0x00004011 @@ -509,7 +509,7 @@ sub_80C4F70: @ 80C4F70 bx r0 .align 2, 0 _080C4FA8: .4byte 0x00004010 -_080C4FAC: .4byte gUnknown_02038570 +_080C4FAC: .4byte gContestMons _080C4FB0: .4byte 0x00004011 _080C4FB4: .4byte 0x00004012 _080C4FB8: .4byte 0x00004013 @@ -534,7 +534,7 @@ GiveMonArtistRibbon: @ 80C4FBC cmp r0, 0 bne _080C5038 ldr r0, _080C5024 @ =gUnknown_02038690 - ldr r1, _080C5028 @ =gUnknown_02038695 + ldr r1, _080C5028 @ =gContestPlayerMonIndex ldrb r2, [r1] adds r0, r2, r0 ldrb r0, [r0] @@ -567,7 +567,7 @@ GiveMonArtistRibbon: @ 80C4FBC _080C501C: .4byte gUnknown_02038694 _080C5020: .4byte gPlayerParty _080C5024: .4byte gUnknown_02038690 -_080C5028: .4byte gUnknown_02038695 +_080C5028: .4byte gContestPlayerMonIndex _080C502C: .4byte gScriptContestRank _080C5030: .4byte gUnknown_02038678 _080C5034: .4byte 0x0000031f @@ -611,7 +611,7 @@ ShowContestEntryMonPic: @ 80C5050 movs r2, 0x13 movs r3, 0xD bl MenuDrawTextWindow - ldr r2, _080C5140 @ =gUnknown_02038570 + ldr r2, _080C5140 @ =gContestMons ldr r0, _080C5144 @ =gSpecialVar_0x8006 ldrh r1, [r0] lsls r1, 6 @@ -654,7 +654,7 @@ ShowContestEntryMonPic: @ 80C5050 str r6, [sp, 0x4] mov r4, r8 str r4, [sp, 0x8] - bl sub_800D334 + bl HandleLoadSpecialPokePic adds r0, r6, 0 mov r1, r9 mov r2, r8 @@ -703,7 +703,7 @@ _080C512A: bx r0 .align 2, 0 _080C513C: .4byte sub_80C5190 -_080C5140: .4byte gUnknown_02038570 +_080C5140: .4byte gContestMons _080C5144: .4byte gSpecialVar_0x8006 _080C5148: .4byte gTasks _080C514C: .4byte gMonFrontPicTable @@ -821,7 +821,7 @@ _080C5222: thumb_func_start ScriptGetMultiplayerId ScriptGetMultiplayerId: @ 80C5228 push {r4,lr} - ldr r0, _080C5244 @ =gUnknown_0203869A + ldr r0, _080C5244 @ =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -834,7 +834,7 @@ ScriptGetMultiplayerId: @ 80C5228 strh r0, [r4] b _080C5252 .align 2, 0 -_080C5244: .4byte gUnknown_0203869A +_080C5244: .4byte gIsLinkContest _080C5248: .4byte gScriptResult _080C524C: ldr r1, _080C5258 @ =gScriptResult @@ -851,7 +851,7 @@ _080C5258: .4byte gScriptResult thumb_func_start ScriptRandom ScriptRandom: @ 80C525C push {r4,lr} - ldr r0, _080C5280 @ =gUnknown_0203869A + ldr r0, _080C5280 @ =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -868,7 +868,7 @@ ScriptRandom: @ 80C525C ldr r4, _080C5290 @ =gScriptResult b _080C529E .align 2, 0 -_080C5280: .4byte gUnknown_0203869A +_080C5280: .4byte gIsLinkContest _080C5284: .4byte gUnknown_03005D28 _080C5288: .4byte 0x41c64e6d _080C528C: .4byte 0x00006073 @@ -1311,7 +1311,7 @@ SetBattleTowerPlayerParty: @ 80C55C8 ldrb r4, [r0] cmp r4, 0 bne _080C55E4 - bl copy_player_party_from_sav1 + bl LoadPlayerParty ldr r0, _080C55E0 @ =gScriptResult strh r4, [r0] b _080C55EE diff --git a/asm/script_pokemon_util_80F99CC.s b/asm/script_pokemon_util_80F99CC.s index af550f47e..d107902ae 100644 --- a/asm/script_pokemon_util_80F99CC.s +++ b/asm/script_pokemon_util_80F99CC.s @@ -183,7 +183,7 @@ _080F9B14: muls r2, r3 ldr r3, _080F9B44 @ =gPlayerParty adds r2, r3 - bl sub_806D90C + bl TryCreatePartyMenuMonIcon b _080F9BF0 .align 2, 0 _080F9B3C: .4byte 0x00000266 @@ -197,14 +197,14 @@ _080F9B48: adds r1, r4, r0 b _080F9BBC _080F9B54: - bl sub_806DA98 + bl LoadHeldItemIconGraphics b _080F9BB4 _080F9B5A: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] - bl sub_806DC34 + bl CreateHeldItemIcons_806DC34 movs r2, 0x99 lsls r2, 2 adds r1, r4, r2 @@ -231,10 +231,10 @@ _080F9B6E: .align 2, 0 _080F9B94: .4byte 0x00000266 _080F9B98: - bl sub_806E334 + bl PartyMenuPrintMonsLevelOrStatus b _080F9BB4 _080F9B9E: - bl sub_806E0C4 + bl PrintPartyMenuMonNicknames ldr r1, _080F9BAC @ =0x0201b000 movs r0, 0x99 lsls r0, 2 @@ -450,7 +450,7 @@ _080F9D30: muls r2, r3 ldr r3, _080F9D60 @ =gPlayerParty adds r2, r3 - bl sub_806D90C + bl TryCreatePartyMenuMonIcon b _080F9E0C .align 2, 0 _080F9D58: .4byte 0x00000266 @@ -464,14 +464,14 @@ _080F9D64: adds r1, r4, r0 b _080F9DD8 _080F9D70: - bl sub_806DA98 + bl LoadHeldItemIconGraphics b _080F9DD0 _080F9D76: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] - bl sub_806DC34 + bl CreateHeldItemIcons_806DC34 movs r2, 0x99 lsls r2, 2 adds r1, r4, r2 @@ -498,10 +498,10 @@ _080F9D8A: .align 2, 0 _080F9DB0: .4byte 0x00000266 _080F9DB4: - bl sub_806E334 + bl PartyMenuPrintMonsLevelOrStatus b _080F9DD0 _080F9DBA: - bl sub_806E0C4 + bl PrintPartyMenuMonNicknames ldr r1, _080F9DC8 @ =0x0201b000 movs r0, 0x99 lsls r0, 2 diff --git a/asm/secret_base.s b/asm/secret_base.s index 72c467e70..139375998 100644 --- a/asm/secret_base.s +++ b/asm/secret_base.s @@ -2058,7 +2058,7 @@ _080BC460: .4byte 0x00001a16 SecretBasePC_PackUp: @ 80BC464 push {lr} movs r0, 0x14 - bl sav12_xor_increment + bl IncrementGameStat bl sub_80BC440 pop {r0} bx r0 @@ -2149,7 +2149,7 @@ sub_80BC50C: @ 80BC50C push {r4,r5,lr} bl sub_80BC474 movs r0, 0x14 - bl sav12_xor_increment + bl IncrementGameStat ldr r4, _080BC530 @ =gSaveBlock1 ldr r0, _080BC534 @ =0x00001a16 adds r4, r0 diff --git a/asm/shop.s b/asm/shop.s index 94ee3c867..d59f9584e 100644 --- a/asm/shop.s +++ b/asm/shop.s @@ -1820,7 +1820,7 @@ sub_80B3B80: @ 80B3B80 lsls r4, 24 lsrs r4, 24 movs r0, 0x26 - bl sav12_xor_increment + bl IncrementGameStat ldr r5, _080B3BC0 @ =gSaveBlock1 + 0x490 ldr r0, _080B3BC4 @ =gUnknown_020386A0 ldr r1, [r0] diff --git a/asm/slot_machine.s b/asm/slot_machine.s index ee176211f..32abb287d 100644 --- a/asm/slot_machine.s +++ b/asm/slot_machine.s @@ -1254,7 +1254,7 @@ sub_81021FC: @ 81021FC cmp r0, 0 beq _08102220 movs r0, 0x1C - bl sav12_xor_increment + bl IncrementGameStat _08102220: ldrh r1, [r4, 0x8] movs r0, 0x4 @@ -7609,14 +7609,14 @@ sub_81050C4: @ 81050C4 movs r2, 0xC orrs r1, r2 strb r1, [r0, 0x5] - ldr r1, _081050FC @ =gUnknown_083ED704 + ldr r1, _081050FC @ =gSubspriteTables_83ED704 bl SetSubspriteTables pop {r0} bx r0 .align 2, 0 _081050F4: .4byte gSpriteTemplate_83ED444 _081050F8: .4byte gSprites -_081050FC: .4byte gUnknown_083ED704 +_081050FC: .4byte gSubspriteTables_83ED704 thumb_func_end sub_81050C4 thumb_func_start sub_8105100 @@ -7764,7 +7764,7 @@ sub_81051C0: @ 81051C0 mov r3, r8 orrs r0, r3 strb r0, [r1] - ldr r1, _08105274 @ =gUnknown_083ED73C + ldr r1, _08105274 @ =gSubspriteTables_83ED73C adds r0, r2, 0 bl SetSubspriteTables ldr r6, _08105278 @ =0x02000000 @@ -7795,7 +7795,7 @@ sub_81051C0: @ 81051C0 mov r3, r8 orrs r0, r3 strb r0, [r1] - ldr r1, _08105280 @ =gUnknown_083ED75C + ldr r1, _08105280 @ =gSubspriteTables_83ED75C adds r0, r2, 0 bl SetSubspriteTables adds r6, 0x4A @@ -7810,10 +7810,10 @@ sub_81051C0: @ 81051C0 .align 2, 0 _0810526C: .4byte gSpriteTemplate_83ED474 _08105270: .4byte gSprites -_08105274: .4byte gUnknown_083ED73C +_08105274: .4byte gSubspriteTables_83ED73C _08105278: .4byte 0x02000000 _0810527C: .4byte gSpriteTemplate_83ED48C -_08105280: .4byte gUnknown_083ED75C +_08105280: .4byte gSubspriteTables_83ED75C thumb_func_end sub_81051C0 thumb_func_start sub_8105284 @@ -7850,7 +7850,7 @@ sub_8105284: @ 8105284 movs r2, 0x2 orrs r1, r2 strb r1, [r3] - ldr r1, _081052E4 @ =gUnknown_083ED78C + ldr r1, _081052E4 @ =gSubspriteTables_83ED78C bl SetSubspriteTables ldr r0, _081052E8 @ =0x02000000 adds r0, 0x42 @@ -7862,7 +7862,7 @@ sub_8105284: @ 8105284 _081052D8: .4byte gSpriteTemplate_83ED4A4 _081052DC: .4byte gSpriteCoordOffsetX _081052E0: .4byte gSprites -_081052E4: .4byte gUnknown_083ED78C +_081052E4: .4byte gSubspriteTables_83ED78C _081052E8: .4byte 0x02000000 thumb_func_end sub_8105284 @@ -7997,7 +7997,7 @@ sub_81053A0: @ 81053A0 mov r3, r8 orrs r0, r3 strb r0, [r2, 0x5] - ldr r0, _08105454 @ =gUnknown_083ED7B4 + ldr r0, _08105454 @ =gSubspriteTables_83ED7B4 mov r9, r0 adds r0, r2, 0 mov r1, r9 @@ -8045,7 +8045,7 @@ sub_81053A0: @ 81053A0 .align 2, 0 _0810544C: .4byte gSpriteTemplate_83ED4D4 _08105450: .4byte gSprites -_08105454: .4byte gUnknown_083ED7B4 +_08105454: .4byte gSubspriteTables_83ED7B4 _08105458: .4byte 0x02000000 thumb_func_end sub_81053A0 @@ -8079,7 +8079,7 @@ sub_810545C: @ 810545C movs r2, 0x4 orrs r1, r2 strb r1, [r0, 0x5] - ldr r1, _081054B0 @ =gUnknown_083ED7D4 + ldr r1, _081054B0 @ =gSubspriteTables_83ED7D4 bl SetSubspriteTables ldr r0, _081054B4 @ =0x02000000 adds r0, 0x40 @@ -8090,7 +8090,7 @@ sub_810545C: @ 810545C .align 2, 0 _081054A8: .4byte gSpriteTemplate_83ED4EC _081054AC: .4byte gSprites -_081054B0: .4byte gUnknown_083ED7D4 +_081054B0: .4byte gSubspriteTables_83ED7D4 _081054B4: .4byte 0x02000000 thumb_func_end sub_810545C @@ -10258,7 +10258,7 @@ _08106468: movs r1, 0 movs r2, 0xA0 bl LoadPalette - ldr r0, _081064B4 @ =gUnknown_083EDE24 + ldr r0, _081064B4 @ =gPalette_83EDE24 movs r1, 0xD0 movs r2, 0x20 bl LoadPalette @@ -10271,7 +10271,7 @@ _081064A4: .4byte 0x02010000 _081064A8: .4byte 0x040000d4 _081064AC: .4byte 0x80000800 _081064B0: .4byte gUnknown_08E95A18 -_081064B4: .4byte gUnknown_083EDE24 +_081064B4: .4byte gPalette_83EDE24 thumb_func_end sub_8106448 thumb_func_start sub_81064B8 diff --git a/asm/smokescreen.s b/asm/smokescreen.s new file mode 100644 index 000000000..7f4aee269 --- /dev/null +++ b/asm/smokescreen.s @@ -0,0 +1,226 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_8046234 +sub_8046234: @ 8046234 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 16 + lsrs r7, r1, 16 + lsls r2, 24 + lsrs r4, r2, 24 + ldr r5, _0804636C @ =gUnknown_081FAEA4 + ldrh r0, [r5, 0x6] + bl GetSpriteTileStartByTag + lsls r0, 16 + ldr r1, _08046370 @ =0xffff0000 + cmp r0, r1 + bne _08046266 + adds r0, r5, 0 + bl LoadCompressedObjectPic + ldr r0, _08046374 @ =gUnknown_081FAEAC + bl LoadCompressedObjectPalette +_08046266: + ldr r0, _08046378 @ =sub_8046388 + bl CreateInvisibleSpriteWithCallback + mov r8, r0 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r5, r0, 4 + add r5, r8 + lsls r5, 2 + ldr r0, _0804637C @ =gSprites + adds r5, r0 + strh r4, [r5, 0x30] + ldr r0, _08046380 @ =gSpriteTemplate_81FAF0C + mov r9, r0 + lsls r6, 16 + asrs r0, r6, 16 + mov r10, r0 + ldr r0, _08046384 @ =0xfff00000 + adds r6, r0 + asrs r6, 16 + lsls r4, r7, 16 + asrs r7, r4, 16 + adds r4, r0 + asrs r4, 16 + mov r0, r9 + adds r1, r6, 0 + adds r2, r4, 0 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _0804637C @ =gSprites + adds r1, r0 + mov r0, r8 + strh r0, [r1, 0x2E] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + adds r0, r1, 0 + bl AnimateSprite + mov r0, r9 + mov r1, r10 + adds r2, r4, 0 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _0804637C @ =gSprites + adds r4, r0 + mov r0, r8 + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + adds r0, r4, 0 + bl AnimateSprite + mov r0, r9 + adds r1, r6, 0 + adds r2, r7, 0 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _0804637C @ =gSprites + adds r4, r0 + mov r0, r8 + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAnim + adds r0, r4, 0 + bl AnimateSprite + mov r0, r9 + mov r1, r10 + adds r2, r7, 0 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _0804637C @ =gSprites + adds r4, r0 + mov r0, r8 + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + adds r0, r4, 0 + movs r1, 0x3 + bl StartSpriteAnim + adds r0, r4, 0 + bl AnimateSprite + mov r0, r8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0804636C: .4byte gUnknown_081FAEA4 +_08046370: .4byte 0xffff0000 +_08046374: .4byte gUnknown_081FAEAC +_08046378: .4byte sub_8046388 +_0804637C: .4byte gSprites +_08046380: .4byte gSpriteTemplate_81FAF0C +_08046384: .4byte 0xfff00000 + thumb_func_end sub_8046234 + + thumb_func_start sub_8046388 +sub_8046388: @ 8046388 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080463C0 + ldr r0, _080463B4 @ =gUnknown_081FAEA4 + ldrh r0, [r0, 0x6] + bl FreeSpriteTilesByTag + ldr r0, _080463B8 @ =gUnknown_081FAEAC + ldrh r0, [r0, 0x4] + bl FreeSpritePaletteByTag + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080463BC + adds r0, r4, 0 + bl DestroySprite + b _080463C0 + .align 2, 0 +_080463B4: .4byte gUnknown_081FAEA4 +_080463B8: .4byte gUnknown_081FAEAC +_080463BC: + ldr r0, _080463C8 @ =SpriteCallbackDummy + str r0, [r4, 0x1C] +_080463C0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080463C8: .4byte SpriteCallbackDummy + thumb_func_end sub_8046388 + + thumb_func_start sub_80463CC +sub_80463CC: @ 80463CC + push {lr} + adds r3, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080463F6 + ldr r2, _080463FC @ =gSprites + movs r0, 0x2E + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x2E] + subs r1, 0x1 + strh r1, [r0, 0x2E] + adds r0, r3, 0 + bl DestroySprite +_080463F6: + pop {r0} + bx r0 + .align 2, 0 +_080463FC: .4byte gSprites + thumb_func_end sub_80463CC + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/trade.s b/asm/trade.s index ae857d1c3..d1fe82d6c 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -604,7 +604,7 @@ _080481BA: str r0, [sp, 0x4] adds r0, r5, 0 ldr r1, _080482AC @ =sub_809D62C - bl sub_809D2FC + bl CreateMonIcon mov r2, r8 ldr r1, [r2] adds r1, 0x34 @@ -661,7 +661,7 @@ _0804822C: str r0, [sp, 0x4] adds r0, r5, 0 ldr r1, _080482AC @ =sub_809D62C - bl sub_809D2FC + bl CreateMonIcon mov r2, r8 ldr r1, [r2] adds r1, 0x3A @@ -689,14 +689,14 @@ _080482A8: .4byte 0xfff40000 _080482AC: .4byte sub_809D62C _080482B0: .4byte gEnemyParty _080482B4: - bl sub_806DA98 + bl LoadHeldItemIconGraphics ldr r0, _080482D0 @ =gUnknown_03004824 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x42 adds r1, 0x34 movs r2, 0 - bl sub_806DB90 + bl CreateHeldItemIcons ldr r1, _080482D4 @ =gMain ldr r0, _080482D8 @ =0x0000043c adds r1, r0 @@ -712,7 +712,7 @@ _080482DC: adds r0, 0x42 adds r1, 0x34 movs r2, 0x1 - bl sub_806DB90 + bl CreateHeldItemIcons ldr r1, _080482F8 @ =gMain ldr r2, _080482FC @ =0x0000043c adds r1, r2 @@ -1176,7 +1176,7 @@ _080486DE: str r0, [sp, 0x4] adds r0, r5, 0 ldr r1, _080487D8 @ =sub_809D62C - bl sub_809D2FC + bl CreateMonIcon mov r2, r8 ldr r1, [r2] adds r1, 0x34 @@ -1233,7 +1233,7 @@ _08048752: str r0, [sp, 0x4] adds r0, r5, 0 ldr r1, _080487D8 @ =sub_809D62C - bl sub_809D2FC + bl CreateMonIcon mov r2, r8 ldr r1, [r2] adds r1, 0x3A @@ -1266,14 +1266,14 @@ _080487DC: .4byte gEnemyParty _080487E0: .4byte gMain _080487E4: .4byte 0x0000043c _080487E8: - bl sub_806DA98 + bl LoadHeldItemIconGraphics ldr r0, _08048804 @ =gUnknown_03004824 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x42 adds r1, 0x34 movs r2, 0 - bl sub_806DB90 + bl CreateHeldItemIcons ldr r1, _08048808 @ =gMain ldr r5, _0804880C @ =0x0000043c adds r1, r5 @@ -1289,7 +1289,7 @@ _08048810: adds r0, 0x42 adds r1, 0x34 movs r2, 0x1 - bl sub_806DB90 + bl CreateHeldItemIcons ldr r1, _0804882C @ =gMain ldr r0, _08048830 @ =0x0000043c adds r1, r0 @@ -3475,7 +3475,7 @@ sub_804997C: @ 804997C ldr r3, _080499C0 @ =sub_80484F4 movs r4, 0x4 str r4, [sp] - bl sub_809D8BC + bl ShowPokemonSummaryScreen b _080499E0 .align 2, 0 _080499B4: .4byte gPaletteFade @@ -3495,7 +3495,7 @@ _080499C4: ldr r3, _080499EC @ =sub_80484F4 movs r4, 0x4 str r4, [sp] - bl sub_809D8BC + bl ShowPokemonSummaryScreen _080499E0: add sp, 0x4 pop {r4} @@ -6137,7 +6137,7 @@ _0804AE5C: asrs r0, 16 lsls r1, 16 asrs r1, 16 - bl sub_8046200 + bl GetHPBarLevel ldr r1, [r7] adds r1, 0x69 adds r1, r6 @@ -6182,7 +6182,7 @@ _0804AEBC: asrs r0, 16 lsls r1, 16 asrs r1, 16 - bl sub_8046200 + bl GetHPBarLevel ldr r1, [r7] adds r1, 0x6F adds r1, r6 @@ -6539,7 +6539,7 @@ sub_804B128: @ 804B128 ldrh r0, [r0] str r0, [sp, 0xC] add r0, sp, 0x10 - bl sub_8040F34 + bl DoBgAffineSet ldr r1, _0804B1B8 @ =REG_BG2PA add r0, sp, 0x10 ldrh r0, [r0] @@ -6805,7 +6805,7 @@ _0804B330: str r5, [sp, 0x4] mov r4, r9 str r4, [sp, 0x8] - bl sub_800D334 + bl HandleLoadSpecialPokePic mov r0, r10 bl sub_8040990 bl LoadCompressedObjectPalette @@ -7591,7 +7591,7 @@ sub_804BA64: @ 804BA64 lsls r0, 8 cmp r1, r0 bne _0804BA8C - bl sub_80690F0 + bl EnableNationalPokedex _0804BA8C: pop {r0} bx r0 @@ -10676,11 +10676,11 @@ _0804D5A4: .4byte 0x0000043c _0804D5A8: movs r0, 0x4 strb r0, [r1] - ldr r1, _0804D5B4 @ =gUnknown_3001BB4 + ldr r1, _0804D5B4 @ =gSoftResetDisabled movs r0, 0x1 b _0804D612 .align 2, 0 -_0804D5B4: .4byte gUnknown_3001BB4 +_0804D5B4: .4byte gSoftResetDisabled _0804D5B8: ldr r0, _0804D5F4 @ =gUnknown_03005E94 ldr r1, _0804D5F8 @ =sub_804DC88 @@ -11765,9 +11765,9 @@ _0804DF48: .4byte 0x0000043c _0804DF4C: .4byte gUnknown_03004828 _0804DF50: .4byte gSystemText_Saving _0804DF54: - bl sub_8047A1C + bl SetSecretBase2Field_9_AndHideBG movs r0, 0x15 - bl sav12_xor_increment + bl IncrementGameStat bl sub_8125D80 ldr r1, _0804DF74 @ =gMain ldr r2, _0804DF78 @ =0x0000043c @@ -11803,7 +11803,7 @@ _0804DF9C: lsrs r1, r0, 24 cmp r1, 0 beq _0804DFC0 - bl sub_8047A34 + bl ClearSecretBase2Field_9_2 ldr r0, _0804DFB8 @ =gMain ldr r1, _0804DFBC @ =0x0000043c adds r0, r1 @@ -11886,7 +11886,7 @@ _0804E04C: cmp r0, 0 beq _0804E11A bl sub_8125E04 - ldr r1, _0804E06C @ =gUnknown_3001BB4 + ldr r1, _0804E06C @ =gSoftResetDisabled movs r0, 0 strb r0, [r1] ldr r0, _0804E070 @ =gMain @@ -11896,7 +11896,7 @@ _0804E04C: strb r1, [r0] b _0804E11A .align 2, 0 -_0804E06C: .4byte gUnknown_3001BB4 +_0804E06C: .4byte gSoftResetDisabled _0804E070: .4byte gMain _0804E074: .4byte 0x0000043c _0804E078: diff --git a/asm/trainer_card.s b/asm/trainer_card.s deleted file mode 100644 index e46113132..000000000 --- a/asm/trainer_card.s +++ /dev/null @@ -1,2755 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_8093110 -sub_8093110: @ 8093110 - push {lr} - bl sub_80932AC - ldr r0, _08093128 @ =sub_8093174 - bl SetMainCallback2 - ldr r0, _0809312C @ =0x02000000 - adds r0, 0x9C - movs r1, 0x2 - strb r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_08093128: .4byte sub_8093174 -_0809312C: .4byte 0x02000000 - thumb_func_end sub_8093110 - - thumb_func_start sub_8093130 -sub_8093130: @ 8093130 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_80932E4 - ldr r0, _08093164 @ =sub_8093174 - bl SetMainCallback2 - ldr r2, _08093168 @ =0x02000000 - ldr r3, _0809316C @ =gLinkPlayers - ldr r0, _08093170 @ =gLinkPlayerMapObjects - lsls r4, 2 - adds r4, r0 - ldrb r1, [r4, 0x1] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x1A] - adds r2, 0x9C - strb r0, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08093164: .4byte sub_8093174 -_08093168: .4byte 0x02000000 -_0809316C: .4byte gLinkPlayers -_08093170: .4byte gLinkPlayerMapObjects - thumb_func_end sub_8093130 - - thumb_func_start sub_8093174 -sub_8093174: @ 8093174 - push {lr} - ldr r0, _0809318C @ =gMain - ldr r1, _08093190 @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x8 - bhi _08093232 - lsls r0, 2 - ldr r1, _08093194 @ =_08093198 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809318C: .4byte gMain -_08093190: .4byte 0x0000043c -_08093194: .4byte _08093198 - .align 2, 0 -_08093198: - .4byte _080931BC - .4byte _080931C6 - .4byte _080931CC - .4byte _080931D2 - .4byte _080931DC - .4byte _080931EC - .4byte _08093200 - .4byte _08093206 - .4byte _08093220 -_080931BC: - bl sub_8093534 - bl sub_8093688 - b _0809320A -_080931C6: - bl sub_8093598 - b _0809320A -_080931CC: - bl sub_80935EC - b _0809320A -_080931D2: - bl sub_8093610 - bl sub_80937A4 - b _0809320A -_080931DC: - bl sub_80937BC - ldr r1, _080931F8 @ =gMain - ldr r0, _080931FC @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080931EC: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - beq _08093232 - b _0809320A - .align 2, 0 -_080931F8: .4byte gMain -_080931FC: .4byte 0x0000043c -_08093200: - bl sub_80937F0 - b _0809320A -_08093206: - bl sub_80937D8 -_0809320A: - ldr r1, _08093218 @ =gMain - ldr r0, _0809321C @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08093232 - .align 2, 0 -_08093218: .4byte gMain -_0809321C: .4byte 0x0000043c -_08093220: - bl nullsub_15 - bl sub_8093800 - bl sub_8093550 - ldr r0, _08093238 @ =sub_809323C - bl SetMainCallback2 -_08093232: - pop {r0} - bx r0 - .align 2, 0 -_08093238: .4byte sub_809323C - thumb_func_end sub_8093174 - - thumb_func_start sub_809323C -sub_809323C: @ 809323C - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_809323C - - thumb_func_start sub_8093254 -sub_8093254: @ 8093254 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - ldr r2, _0809329C @ =0x02000000 - ldrb r0, [r2, 0x6] - adds r0, 0x1 - strb r0, [r2, 0x6] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3B - bls _0809327E - movs r0, 0 - strb r0, [r2, 0x6] - ldrb r0, [r2, 0x5] - movs r1, 0x1 - eors r0, r1 - strb r0, [r2, 0x5] -_0809327E: - ldrb r0, [r2, 0x4] - cmp r0, 0 - beq _08093298 - ldr r1, _080932A0 @ =0x040000d4 - ldr r0, _080932A4 @ =gUnknown_03004DE0 - str r0, [r1] - movs r2, 0xF0 - lsls r2, 3 - adds r0, r2 - str r0, [r1, 0x4] - ldr r0, _080932A8 @ =0x800000a0 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] -_08093298: - pop {r0} - bx r0 - .align 2, 0 -_0809329C: .4byte 0x02000000 -_080932A0: .4byte 0x040000d4 -_080932A4: .4byte gUnknown_03004DE0 -_080932A8: .4byte 0x800000a0 - thumb_func_end sub_8093254 - - thumb_func_start sub_80932AC -sub_80932AC: @ 80932AC - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080932DC @ =nullsub_60 - movs r1, 0xFF - bl CreateTask - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _080932E0 @ =gTasks - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - adds r0, 0xC - adds r1, r4, 0 - bl StoreWordInTwoHalfwords - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080932DC: .4byte nullsub_60 -_080932E0: .4byte gTasks - thumb_func_end sub_80932AC - - thumb_func_start sub_80932E4 -sub_80932E4: @ 80932E4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0809331C @ =nullsub_60 - movs r1, 0xFF - bl CreateTask - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _08093320 @ =gTasks - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0x8] - strh r4, [r0, 0xA] - adds r0, 0xC - adds r1, r5, 0 - bl StoreWordInTwoHalfwords - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809331C: .4byte nullsub_60 -_08093320: .4byte gTasks - thumb_func_end sub_80932E4 - - thumb_func_start sub_8093324 -sub_8093324: @ 8093324 - push {r4,r5,lr} - ldr r0, _0809336C @ =nullsub_60 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08093370 @ =gTasks - adds r4, r1, r0 - ldr r5, _08093374 @ =0x02000000 - ldrh r0, [r4, 0x8] - strb r0, [r5, 0x1] - adds r0, r4, 0 - adds r0, 0xC - adds r1, r5, 0 - adds r1, 0x60 - bl LoadWordFromTwoHalfwords - ldrb r0, [r5, 0x1] - cmp r0, 0 - beq _0809337C - ldr r2, _08093378 @ =gUnknown_0202FFC0 - movs r1, 0xA - ldrsh r0, [r4, r1] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 3 - adds r1, r2 - adds r0, r5, 0 - adds r0, 0x64 - movs r2, 0x38 - bl memcpy - b _08093384 - .align 2, 0 -_0809336C: .4byte nullsub_60 -_08093370: .4byte gTasks -_08093374: .4byte 0x02000000 -_08093378: .4byte gUnknown_0202FFC0 -_0809337C: - adds r0, r5, 0 - adds r0, 0x64 - bl sub_8093390 -_08093384: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8093324 - - thumb_func_start nullsub_60 -nullsub_60: @ 809338C - bx lr - thumb_func_end nullsub_60 - - thumb_func_start sub_8093390 -sub_8093390: @ 8093390 - push {r4-r7,lr} - adds r5, r0, 0 - ldr r6, _080934A4 @ =gSaveBlock2 - ldrb r0, [r6, 0x8] - strb r0, [r5] - ldrh r0, [r6, 0xE] - strh r0, [r5, 0x10] - ldrb r0, [r6, 0x10] - strh r0, [r5, 0x12] - movs r0, 0x1 - bl sub_8053108 - adds r4, r0, 0 - movs r0, 0xA - bl sub_8053108 - cmp r0, 0 - bne _080933B6 - movs r4, 0 -_080933B6: - lsrs r0, r4, 16 - strh r0, [r5, 0x6] - lsrs r0, r4, 8 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x8] - ands r4, r1 - strh r4, [r5, 0xA] - ldr r0, _080934A8 @ =0x00000801 - bl FlagGet - strb r0, [r5, 0x2] - bl sub_8090FC0 - strb r0, [r5, 0x3] - bl GetPokedexSeenCount - strh r0, [r5, 0xC] - ldrb r1, [r6, 0xB] - lsls r1, 8 - ldrb r0, [r6, 0xA] - orrs r0, r1 - strh r0, [r5, 0xE] - ldr r7, _080934AC @ =0x0000270f - movs r0, 0x17 - adds r1, r7, 0 - bl sav12_xor_get_clamped_above - strh r0, [r5, 0x14] - movs r0, 0x18 - adds r1, r7, 0 - bl sav12_xor_get_clamped_above - strh r0, [r5, 0x16] - ldr r1, _080934B0 @ =0x000003e7 - movs r0, 0x23 - bl sav12_xor_get_clamped_above - strh r0, [r5, 0x1C] - ldr r4, _080934B4 @ =0x0000ffff - movs r0, 0x22 - adds r1, r4, 0 - bl sav12_xor_get_clamped_above - strh r0, [r5, 0x1E] - movs r0, 0x15 - adds r1, r4, 0 - bl sav12_xor_get_clamped_above - strh r0, [r5, 0x20] - movs r1, 0xAE - lsls r1, 3 - adds r0, r6, r1 - ldrh r0, [r0] - strh r0, [r5, 0x18] - ldr r2, _080934B8 @ =0x00000572 - adds r1, r6, r2 - ldrh r1, [r1] - strh r1, [r5, 0x1A] - lsls r0, 16 - lsrs r0, 16 - cmp r0, r7 - bls _08093436 - strh r7, [r5, 0x18] -_08093436: - ldrh r0, [r5, 0x1A] - cmp r0, r7 - bls _0809343E - strh r7, [r5, 0x1A] -_0809343E: - movs r4, 0 - bl sub_80C4D50 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _0809344E - movs r4, 0x1 -_0809344E: - strb r4, [r5, 0x4] - ldr r0, _080934BC @ =gSaveBlock1 - movs r2, 0x92 - lsls r2, 3 - adds r1, r0, r2 - ldr r1, [r1] - str r1, [r5, 0x24] - movs r2, 0 - adds r6, r5, 0 - adds r6, 0x30 - adds r3, r5, 0 - adds r3, 0x28 - ldr r1, _080934C0 @ =0x00002b1c - adds r4, r0, r1 -_0809346A: - lsls r0, r2, 1 - adds r1, r3, r0 - adds r0, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _0809346A - movs r2, 0 - adds r3, r6, 0 - ldr r4, _080934A4 @ =gSaveBlock2 -_08093484: - adds r1, r3, r2 - adds r0, r2, r4 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _08093484 - adds r0, r5, 0 - bl sub_80934F4 - strb r0, [r5, 0x1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080934A4: .4byte gSaveBlock2 -_080934A8: .4byte 0x00000801 -_080934AC: .4byte 0x0000270f -_080934B0: .4byte 0x000003e7 -_080934B4: .4byte 0x0000ffff -_080934B8: .4byte 0x00000572 -_080934BC: .4byte gSaveBlock1 -_080934C0: .4byte 0x00002b1c - thumb_func_end sub_8093390 - - thumb_func_start sub_80934C4 -sub_80934C4: @ 80934C4 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080934D8 @ =gUnknown_0202FFC0 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 3 - adds r1, r2 - ldrb r0, [r1, 0x1] - bx lr - .align 2, 0 -_080934D8: .4byte gUnknown_0202FFC0 - thumb_func_end sub_80934C4 - - thumb_func_start sav12_xor_get_clamped_above -sav12_xor_get_clamped_above: @ 80934DC - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - bl sub_8053108 - cmp r0, r4 - bls _080934EE - adds r0, r4, 0 -_080934EE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sav12_xor_get_clamped_above - - thumb_func_start sub_80934F4 -sub_80934F4: @ 80934F4 - push {lr} - adds r1, r0, 0 - movs r2, 0 - ldrh r0, [r1, 0x6] - cmp r0, 0 - bne _08093506 - ldr r0, [r1, 0x8] - cmp r0, 0 - beq _08093508 -_08093506: - movs r2, 0x1 -_08093508: - ldrb r0, [r1, 0x3] - cmp r0, 0 - beq _08093514 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 -_08093514: - ldrh r0, [r1, 0x1A] - cmp r0, 0x31 - bls _08093520 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 -_08093520: - ldrb r0, [r1, 0x4] - cmp r0, 0 - beq _0809352C - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 -_0809352C: - adds r0, r2, 0 - pop {r1} - bx r1 - thumb_func_end sub_80934F4 - - thumb_func_start sub_8093534 -sub_8093534: @ 8093534 - push {lr} - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - bl SetHBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - pop {r0} - bx r0 - thumb_func_end sub_8093534 - - thumb_func_start sub_8093550 -sub_8093550: @ 8093550 - push {r4,lr} - ldr r0, _08093588 @ =sub_8093254 - bl SetVBlankCallback - ldr r3, _0809358C @ =0x04000208 - ldrh r2, [r3] - movs r0, 0 - strh r0, [r3] - ldr r4, _08093590 @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x3 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _08093594 @ =REG_DISPSTAT - ldrh r0, [r2] - movs r1, 0x18 - orrs r0, r1 - strh r0, [r2] - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08093588: .4byte sub_8093254 -_0809358C: .4byte 0x04000208 -_08093590: .4byte 0x04000200 -_08093594: .4byte REG_DISPSTAT - thumb_func_end sub_8093550 - - thumb_func_start sub_8093598 -sub_8093598: @ 8093598 - push {r4-r7,lr} - sub sp, 0x4 - movs r2, 0xC0 - lsls r2, 19 - movs r3, 0x80 - lsls r3, 9 - mov r4, sp - movs r6, 0 - ldr r1, _080935E4 @ =0x040000d4 - movs r5, 0x80 - lsls r5, 5 - ldr r7, _080935E8 @ =0x81000800 - movs r0, 0x81 - lsls r0, 24 - mov r12, r0 -_080935B6: - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r5 - subs r3, r5 - cmp r3, r5 - bhi _080935B6 - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 1 - mov r2, r12 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080935E4: .4byte 0x040000d4 -_080935E8: .4byte 0x81000800 - thumb_func_end sub_8093598 - - thumb_func_start sub_80935EC -sub_80935EC: @ 80935EC - sub sp, 0x4 - movs r2, 0xE0 - lsls r2, 19 - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r0, _08093608 @ =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _0809360C @ =0x81000200 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - add sp, 0x4 - bx lr - .align 2, 0 -_08093608: .4byte 0x040000d4 -_0809360C: .4byte 0x81000200 - thumb_func_end sub_80935EC - - thumb_func_start sub_8093610 -sub_8093610: @ 8093610 - push {r4,r5,lr} - ldr r5, _08093664 @ =REG_BG0CNT - movs r1, 0 - strh r1, [r5] - ldr r2, _08093668 @ =REG_BG1CNT - strh r1, [r2] - ldr r3, _0809366C @ =REG_BG2CNT - strh r1, [r3] - ldr r4, _08093670 @ =REG_BG3CNT - strh r1, [r4] - ldr r0, _08093674 @ =REG_BG0HOFS - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r1, _08093678 @ =0x00001e08 - adds r0, r1, 0 - strh r0, [r5] - ldr r1, _0809367C @ =0x00000801 - adds r0, r1, 0 - strh r0, [r2] - ldr r1, _08093680 @ =0x00000902 - adds r0, r1, 0 - strh r0, [r3] - ldr r1, _08093684 @ =0x00000a03 - adds r0, r1, 0 - strh r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08093664: .4byte REG_BG0CNT -_08093668: .4byte REG_BG1CNT -_0809366C: .4byte REG_BG2CNT -_08093670: .4byte REG_BG3CNT -_08093674: .4byte REG_BG0HOFS -_08093678: .4byte 0x00001e08 -_0809367C: .4byte 0x00000801 -_08093680: .4byte 0x00000902 -_08093684: .4byte 0x00000a03 - thumb_func_end sub_8093610 - - thumb_func_start sub_8093688 -sub_8093688: @ 8093688 - push {r4-r6,lr} - bl sub_8093324 - ldr r2, _080936D0 @ =0x02000000 - movs r1, 0 - strb r1, [r2] - strb r1, [r2, 0x3] - strb r1, [r2, 0x4] - adds r0, r2, 0 - adds r0, 0x65 - ldrb r0, [r0] - strb r0, [r2, 0x2] - strb r1, [r2, 0x5] - strb r1, [r2, 0x6] - movs r4, 0 - adds r6, r2, 0 - adds r6, 0x20 - adds r5, r2, 0 - adds r5, 0x8C -_080936AE: - lsls r0, r4, 4 - adds r0, r6 - lsls r1, r4, 1 - adds r1, r5, r1 - ldrh r1, [r1] - bl sub_80EB3FC - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080936AE - bl sub_80936D4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080936D0: .4byte 0x02000000 - thumb_func_end sub_8093688 - - thumb_func_start sub_80936D4 -sub_80936D4: @ 80936D4 - push {r4-r6,lr} - ldr r4, _08093798 @ =0x02000000 - movs r0, 0 - strb r0, [r4, 0x7] - strb r0, [r4, 0x8] - strb r0, [r4, 0x9] - strb r0, [r4, 0xA] - strb r0, [r4, 0xB] - strb r0, [r4, 0xC] - strb r0, [r4, 0xD] - adds r0, r4, 0 - adds r0, 0xE - movs r1, 0 - movs r2, 0x8 - bl memset - adds r0, r4, 0 - adds r0, 0x66 - ldrb r0, [r0] - cmp r0, 0 - beq _08093704 - ldrb r0, [r4, 0x7] - adds r0, 0x1 - strb r0, [r4, 0x7] -_08093704: - adds r0, r4, 0 - adds r0, 0x6A - ldrh r0, [r0] - cmp r0, 0 - bne _08093714 - ldr r0, [r4, 0x6C] - cmp r0, 0 - beq _0809371A -_08093714: - ldrb r0, [r4, 0x8] - adds r0, 0x1 - strb r0, [r4, 0x8] -_0809371A: - ldr r1, _08093798 @ =0x02000000 - ldr r0, [r1, 0x78] - cmp r0, 0 - beq _08093728 - ldrb r0, [r1, 0x9] - adds r0, 0x1 - strb r0, [r1, 0x9] -_08093728: - ldr r0, [r1, 0x7C] - cmp r0, 0 - beq _08093734 - ldrb r0, [r1, 0xA] - adds r0, 0x1 - strb r0, [r1, 0xA] -_08093734: - adds r0, r1, 0 - adds r0, 0x80 - ldrh r0, [r0] - cmp r0, 0 - beq _08093744 - ldrb r0, [r1, 0xB] - adds r0, 0x1 - strb r0, [r1, 0xB] -_08093744: - adds r0, r1, 0 - adds r0, 0x82 - ldrh r0, [r0] - cmp r0, 0 - beq _08093754 - ldrb r0, [r1, 0xC] - adds r0, 0x1 - strb r0, [r1, 0xC] -_08093754: - adds r0, r1, 0 - adds r0, 0x84 - ldrh r0, [r0] - cmp r0, 0 - beq _08093764 - ldrb r0, [r1, 0xD] - adds r0, 0x1 - strb r0, [r1, 0xD] -_08093764: - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _08093792 - movs r5, 0 - ldr r4, _0809379C @ =0x00000807 - adds r6, r1, 0 - adds r6, 0xE -_08093772: - lsls r0, r4, 16 - lsrs r0, 16 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08093788 - adds r1, r5, r6 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08093788: - adds r4, 0x1 - adds r5, 0x1 - ldr r0, _080937A0 @ =0x0000080e - cmp r4, r0 - bls _08093772 -_08093792: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08093798: .4byte 0x02000000 -_0809379C: .4byte 0x00000807 -_080937A0: .4byte 0x0000080e - thumb_func_end sub_80936D4 - - thumb_func_start sub_80937A4 -sub_80937A4: @ 80937A4 - push {lr} - bl ResetPaletteFade - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetTasks - pop {r0} - bx r0 - thumb_func_end sub_80937A4 - - thumb_func_start sub_80937BC -sub_80937BC: @ 80937BC - push {r4,lr} - ldr r4, _080937D4 @ =gWindowConfig_81E6DC4 - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl MultistepInitMenuWindowBegin - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080937D4: .4byte gWindowConfig_81E6DC4 - thumb_func_end sub_80937BC - - thumb_func_start sub_80937D8 -sub_80937D8: @ 80937D8 - push {lr} - bl sub_8093E04 - bl sub_8093E28 - bl sub_8093F64 - bl sub_8093DAC - pop {r0} - bx r0 - thumb_func_end sub_80937D8 - - thumb_func_start sub_80937F0 -sub_80937F0: @ 80937F0 - push {lr} - bl sub_8093EF8 - pop {r0} - bx r0 - thumb_func_end sub_80937F0 - - thumb_func_start nullsub_15 -nullsub_15: @ 80937FC - bx lr - thumb_func_end nullsub_15 - - thumb_func_start sub_8093800 -sub_8093800: @ 8093800 - push {lr} - bl sub_809380C - pop {r0} - bx r0 - thumb_func_end sub_8093800 - - thumb_func_start sub_809380C -sub_809380C: @ 809380C - push {r4,lr} - ldr r4, _08093828 @ =sub_809382C - adds r0, r4, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08093828: .4byte sub_809382C - thumb_func_end sub_809380C - - thumb_func_start sub_809382C -sub_809382C: @ 809382C - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r7, _08093858 @ =gUnknown_083B5EBC - lsls r1, r0, 2 - adds r1, r0 - lsls r4, r1, 3 - ldr r6, _0809385C @ =0x02000000 - ldr r5, _08093860 @ =gTasks -_0809383E: - ldrb r0, [r6] - lsls r0, 2 - adds r0, r7 - ldr r1, [r0] - adds r0, r4, r5 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _0809383E - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08093858: .4byte gUnknown_083B5EBC -_0809385C: .4byte 0x02000000 -_08093860: .4byte gTasks - thumb_func_end sub_809382C - - thumb_func_start sub_8093864 -sub_8093864: @ 8093864 - push {r4,r5,lr} - sub sp, 0x4 - ldr r4, _080938A0 @ =0x02000000 - ldr r2, _080938A4 @ =gSaveBlock2 - ldrb r1, [r2, 0x11] - movs r0, 0x1 - ands r0, r1 - movs r5, 0 - strb r0, [r4, 0x5] - ldrb r0, [r2, 0x12] - strb r0, [r4, 0x6] - bl sub_80939A4 - movs r0, 0x1 - negs r0, r0 - str r5, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - movs r0, 0 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080938A0: .4byte 0x02000000 -_080938A4: .4byte gSaveBlock2 - thumb_func_end sub_8093864 - - thumb_func_start sub_80938A8 -sub_80938A8: @ 80938A8 - push {lr} - ldr r0, _080938C4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080938BE - ldr r1, _080938C8 @ =0x02000000 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080938BE: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080938C4: .4byte gPaletteFade -_080938C8: .4byte 0x02000000 - thumb_func_end sub_80938A8 - - thumb_func_start sub_80938CC -sub_80938CC: @ 80938CC - push {lr} - ldr r0, _080938E4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080938EC - ldr r1, _080938E8 @ =0x02000000 - movs r0, 0x5 - strb r0, [r1] - movs r0, 0x1 - b _08093914 - .align 2, 0 -_080938E4: .4byte gMain -_080938E8: .4byte 0x02000000 -_080938EC: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08093912 - ldr r2, _08093900 @ =0x02000000 - ldrb r1, [r2, 0x3] - cmp r1, 0 - beq _08093904 - movs r0, 0x5 - b _0809390C - .align 2, 0 -_08093900: .4byte 0x02000000 -_08093904: - movs r0, 0x1 - eors r0, r1 - strb r0, [r2, 0x3] - movs r0, 0x3 -_0809390C: - strb r0, [r2] - movs r0, 0x1 - b _08093914 -_08093912: - movs r0, 0 -_08093914: - pop {r1} - bx r1 - thumb_func_end sub_80938CC - - thumb_func_start sub_8093918 -sub_8093918: @ 8093918 - push {lr} - bl sub_8093A28 - movs r0, 0x36 - bl PlaySE - ldr r1, _08093934 @ =0x02000000 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08093934: .4byte 0x02000000 - thumb_func_end sub_8093918 - - thumb_func_start sub_8093938 -sub_8093938: @ 8093938 - push {lr} - bl sub_8093A48 - lsls r0, 24 - cmp r0, 0 - beq _0809394A - ldr r1, _08093950 @ =0x02000000 - movs r0, 0x2 - strb r0, [r1] -_0809394A: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08093950: .4byte 0x02000000 - thumb_func_end sub_8093938 - - thumb_func_start sub_8093954 -sub_8093954: @ 8093954 - push {lr} - sub sp, 0x4 - bl sub_80939C0 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0809397C @ =0x02000000 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0 - add sp, 0x4 - pop {r1} - bx r1 - .align 2, 0 -_0809397C: .4byte 0x02000000 - thumb_func_end sub_8093954 - - thumb_func_start sub_8093980 -sub_8093980: @ 8093980 - push {lr} - ldr r0, _0809399C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08093996 - ldr r0, _080939A0 @ =0x02000000 - ldr r0, [r0, 0x60] - bl SetMainCallback2 -_08093996: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0809399C: .4byte gPaletteFade -_080939A0: .4byte 0x02000000 - thumb_func_end sub_8093980 - - thumb_func_start sub_80939A4 -sub_80939A4: @ 80939A4 - push {lr} - ldr r0, _080939B8 @ =sub_80939DC - movs r1, 0 - bl CreateTask - ldr r0, _080939BC @ =gWindowConfig_81E6DC4 - bl BasicInitMenuWindow - pop {r0} - bx r0 - .align 2, 0 -_080939B8: .4byte sub_80939DC -_080939BC: .4byte gWindowConfig_81E6DC4 - thumb_func_end sub_80939A4 - - thumb_func_start sub_80939C0 -sub_80939C0: @ 80939C0 - push {lr} - ldr r0, _080939D8 @ =sub_80939DC - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080939D4 - bl DestroyTask -_080939D4: - pop {r0} - bx r0 - .align 2, 0 -_080939D8: .4byte sub_80939DC - thumb_func_end sub_80939C0 - - thumb_func_start sub_80939DC -sub_80939DC: @ 80939DC - push {lr} - sub sp, 0x20 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08093A20 @ =gTasks - adds r2, r1, r0 - ldr r0, _08093A24 @ =0x02000000 - ldrb r1, [r0, 0x5] - movs r3, 0xA - ldrsh r0, [r2, r3] - cmp r1, r0 - beq _08093A04 - strh r1, [r2, 0xA] - ldrh r0, [r2, 0x8] - movs r1, 0x1 - eors r0, r1 - strh r0, [r2, 0x8] -_08093A04: - movs r0, 0x8 - ldrsh r1, [r2, r0] - mov r0, sp - bl sub_8094250 - mov r0, sp - movs r1, 0xA - movs r2, 0xC - bl MenuPrint - add sp, 0x20 - pop {r0} - bx r0 - .align 2, 0 -_08093A20: .4byte gTasks -_08093A24: .4byte 0x02000000 - thumb_func_end sub_80939DC - - thumb_func_start sub_8093A28 -sub_8093A28: @ 8093A28 - push {r4,lr} - ldr r4, _08093A44 @ =sub_8093A68 - adds r0, r4, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08093A44: .4byte sub_8093A68 - thumb_func_end sub_8093A28 - - thumb_func_start sub_8093A48 -sub_8093A48: @ 8093A48 - push {lr} - ldr r0, _08093A5C @ =sub_8093A68 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _08093A60 - movs r0, 0 - b _08093A62 - .align 2, 0 -_08093A5C: .4byte sub_8093A68 -_08093A60: - movs r0, 0x1 -_08093A62: - pop {r1} - bx r1 - thumb_func_end sub_8093A48 - - thumb_func_start sub_8093A68 -sub_8093A68: @ 8093A68 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08093A98 @ =gUnknown_083B5ED8 - ldr r2, _08093A9C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_08093A7A: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _08093A7A - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08093A98: .4byte gUnknown_083B5ED8 -_08093A9C: .4byte gTasks - thumb_func_end sub_8093A68 - - thumb_func_start sub_8093AA0 -sub_8093AA0: @ 8093AA0 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _08093AE0 @ =0x02000000 - movs r1, 0 - strb r1, [r0, 0x4] - bl dp12_8087EA4 - movs r1, 0 - ldr r0, _08093AE4 @ =gUnknown_03004DE0 - ldr r2, _08093AE8 @ =0x0000fffc - movs r3, 0xF0 - lsls r3, 3 - adds r0, r3 -_08093ABA: - strh r2, [r0] - adds r0, 0x2 - adds r1, 0x1 - cmp r1, 0x9F - bls _08093ABA - ldr r0, _08093AEC @ =sub_8093D7C - bl SetHBlankCallback - ldr r1, _08093AE0 @ =0x02000000 - movs r0, 0x1 - strb r0, [r1, 0x4] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08093AE0: .4byte 0x02000000 -_08093AE4: .4byte gUnknown_03004DE0 -_08093AE8: .4byte 0x0000fffc -_08093AEC: .4byte sub_8093D7C - thumb_func_end sub_8093AA0 - - thumb_func_start sub_8093AF0 -sub_8093AF0: @ 8093AF0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r8, r0 - ldr r1, _08093BFC @ =0x02000000 - movs r0, 0 - strb r0, [r1, 0x4] - mov r2, r8 - ldrh r0, [r2, 0xA] - adds r0, 0x3 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4F - ble _08093B18 - movs r0, 0x4F - strh r0, [r2, 0xA] -_08093B18: - mov r4, r8 - movs r0, 0xA - ldrsh r7, [r4, r0] - movs r0, 0xA0 - subs r0, r7 - mov r9, r0 - subs r4, r0, r7 - negs r0, r7 - lsls r6, r0, 16 - movs r0, 0xA0 - lsls r0, 16 - adds r1, r4, 0 - bl __udivsi3 - adds r5, r0, 0 - ldr r1, _08093C00 @ =0xffff0000 - adds r5, r1 - adds r0, r5, 0 - muls r0, r4 - adds r0, r6 - mov r10, r0 - adds r0, r5, 0 - adds r1, r4, 0 - bl __udivsi3 - str r0, [sp] - lsls r5, 1 - movs r3, 0 - cmp r3, r7 - bcs _08093B74 - ldr r2, _08093C04 @ =gUnknown_03004DE0 - mov r12, r2 - ldr r0, _08093C08 @ =0x0000fffc - adds r4, r0, 0 -_08093B5C: - lsls r0, r3, 16 - asrs r0, 16 - lsls r1, r0, 1 - add r1, r12 - subs r2, r4, r0 - strh r2, [r1] - adds r0, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - asrs r0, 16 - cmp r0, r7 - bcc _08093B5C -_08093B74: - lsls r2, r3, 16 - mov r1, r9 - lsls r0, r1, 16 - asrs r1, r0, 16 - mov r4, r10 - lsrs r7, r4, 16 - cmp r2, r0 - bge _08093BAE - ldr r0, _08093C04 @ =gUnknown_03004DE0 - mov r9, r0 - ldr r4, _08093C08 @ =0x0000fffc - mov r12, r4 - adds r4, r1, 0 -_08093B8E: - lsrs r1, r6, 16 - adds r6, r5 - ldr r0, [sp] - subs r5, r0 - asrs r2, 16 - lsls r0, r2, 1 - add r0, r9 - add r1, r12 - strh r1, [r0] - adds r2, 0x1 - lsls r2, 16 - lsrs r3, r2, 16 - lsls r2, r3, 16 - asrs r0, r2, 16 - cmp r0, r4 - blt _08093B8E -_08093BAE: - adds r1, r7, 0 - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, 0x9F - bgt _08093BD4 - ldr r4, _08093C04 @ =gUnknown_03004DE0 - ldr r0, _08093C08 @ =0x0000fffc - adds r2, r1, r0 -_08093BBE: - lsls r1, r3, 16 - asrs r1, 16 - lsls r0, r1, 1 - adds r0, r4 - strh r2, [r0] - adds r1, 0x1 - lsls r1, 16 - lsrs r3, r1, 16 - asrs r1, 16 - cmp r1, 0x9F - ble _08093BBE -_08093BD4: - movs r0, 0x1 - ldr r1, _08093BFC @ =0x02000000 - strb r0, [r1, 0x4] - mov r2, r8 - movs r4, 0xA - ldrsh r0, [r2, r4] - cmp r0, 0x4A - ble _08093BEA - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] -_08093BEA: - movs r0, 0 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08093BFC: .4byte 0x02000000 -_08093C00: .4byte 0xffff0000 -_08093C04: .4byte gUnknown_03004DE0 -_08093C08: .4byte 0x0000fffc - thumb_func_end sub_8093AF0 - - thumb_func_start sub_8093C0C -sub_8093C0C: @ 8093C0C - push {r4,lr} - adds r4, r0, 0 - bl sub_80939C0 - bl sub_8093DAC - ldr r0, _08093C34 @ =0x02000000 - ldrb r0, [r0, 0x3] - cmp r0, 0 - bne _08093C24 - bl sub_80939A4 -_08093C24: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08093C34: .4byte 0x02000000 - thumb_func_end sub_8093C0C - - thumb_func_start sub_8093C38 -sub_8093C38: @ 8093C38 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r8, r0 - ldr r1, _08093D40 @ =0x02000000 - movs r2, 0 - strb r2, [r1, 0x4] - ldrh r0, [r0, 0xA] - subs r0, 0x3 - mov r3, r8 - strh r0, [r3, 0xA] - lsls r0, 16 - cmp r0, 0 - bgt _08093C5C - strh r2, [r3, 0xA] -_08093C5C: - mov r4, r8 - movs r0, 0xA - ldrsh r7, [r4, r0] - movs r0, 0xA0 - subs r0, r7 - mov r9, r0 - subs r4, r0, r7 - negs r0, r7 - lsls r6, r0, 16 - movs r0, 0xA0 - lsls r0, 16 - adds r1, r4, 0 - bl __udivsi3 - adds r5, r0, 0 - ldr r1, _08093D44 @ =0xffff0000 - adds r5, r1 - adds r0, r5, 0 - muls r0, r4 - adds r0, r6 - mov r10, r0 - adds r0, r5, 0 - adds r1, r4, 0 - bl __udivsi3 - str r0, [sp] - lsrs r5, 1 - movs r3, 0 - cmp r3, r7 - bcs _08093CB8 - ldr r2, _08093D48 @ =gUnknown_03004DE0 - mov r12, r2 - ldr r0, _08093D4C @ =0x0000fffc - adds r4, r0, 0 -_08093CA0: - lsls r0, r3, 16 - asrs r0, 16 - lsls r1, r0, 1 - add r1, r12 - subs r2, r4, r0 - strh r2, [r1] - adds r0, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - asrs r0, 16 - cmp r0, r7 - bcc _08093CA0 -_08093CB8: - lsls r2, r3, 16 - mov r1, r9 - lsls r0, r1, 16 - asrs r1, r0, 16 - mov r4, r10 - lsrs r7, r4, 16 - cmp r2, r0 - bge _08093CF2 - ldr r0, _08093D48 @ =gUnknown_03004DE0 - mov r9, r0 - ldr r3, _08093D4C @ =0x0000fffc - mov r12, r3 - adds r4, r1, 0 -_08093CD2: - lsrs r1, r6, 16 - adds r6, r5 - ldr r0, [sp] - adds r5, r0 - asrs r2, 16 - lsls r0, r2, 1 - add r0, r9 - add r1, r12 - strh r1, [r0] - adds r2, 0x1 - lsls r2, 16 - lsrs r3, r2, 16 - lsls r2, r3, 16 - asrs r0, r2, 16 - cmp r0, r4 - blt _08093CD2 -_08093CF2: - adds r1, r7, 0 - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, 0x9F - bgt _08093D18 - ldr r4, _08093D48 @ =gUnknown_03004DE0 - ldr r0, _08093D4C @ =0x0000fffc - adds r2, r1, r0 -_08093D02: - lsls r1, r3, 16 - asrs r1, 16 - lsls r0, r1, 1 - adds r0, r4 - strh r2, [r0] - adds r1, 0x1 - lsls r1, 16 - lsrs r3, r1, 16 - asrs r1, 16 - cmp r1, 0x9F - ble _08093D02 -_08093D18: - movs r0, 0x1 - ldr r1, _08093D40 @ =0x02000000 - strb r0, [r1, 0x4] - mov r2, r8 - movs r3, 0xA - ldrsh r0, [r2, r3] - cmp r0, 0 - bgt _08093D2E - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] -_08093D2E: - movs r0, 0 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08093D40: .4byte 0x02000000 -_08093D44: .4byte 0xffff0000 -_08093D48: .4byte gUnknown_03004DE0 -_08093D4C: .4byte 0x0000fffc - thumb_func_end sub_8093C38 - - thumb_func_start sub_8093D50 -sub_8093D50: @ 8093D50 - push {lr} - ldr r1, _08093D74 @ =0x02000000 - movs r0, 0 - strb r0, [r1, 0x4] - bl SetHBlankCallback - bl sub_8093E04 - ldr r0, _08093D78 @ =sub_8093A68 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08093D74: .4byte 0x02000000 -_08093D78: .4byte sub_8093A68 - thumb_func_end sub_8093D50 - - thumb_func_start sub_8093D7C -sub_8093D7C: @ 8093D7C - ldr r1, _08093DA0 @ =gUnknown_03004DE0 - ldr r0, _08093DA4 @ =REG_VCOUNT - ldrh r2, [r0] - movs r0, 0xFF - ands r0, r2 - lsls r0, 1 - movs r2, 0xF0 - lsls r2, 3 - adds r1, r2 - adds r0, r1 - ldrh r1, [r0] - ldr r0, _08093DA8 @ =REG_BG0VOFS - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - bx lr - .align 2, 0 -_08093DA0: .4byte gUnknown_03004DE0 -_08093DA4: .4byte REG_VCOUNT -_08093DA8: .4byte REG_BG0VOFS - thumb_func_end sub_8093D7C - - thumb_func_start sub_8093DAC -sub_8093DAC: @ 8093DAC - push {lr} - ldr r0, _08093DBC @ =0x02000000 - ldrb r0, [r0, 0x3] - cmp r0, 0 - beq _08093DC0 - bl sub_8093DEC - b _08093DC4 - .align 2, 0 -_08093DBC: .4byte 0x02000000 -_08093DC0: - bl sub_8093DC8 -_08093DC4: - pop {r0} - bx r0 - thumb_func_end sub_8093DAC - - thumb_func_start sub_8093DC8 -sub_8093DC8: @ 8093DC8 - push {lr} - bl MenuZeroFillScreen - bl sub_80940E4 - bl sub_8093F14 - bl sub_8093F80 - bl sub_8093FD0 - bl sub_8094038 - bl sub_8094140 - pop {r0} - bx r0 - thumb_func_end sub_8093DC8 - - thumb_func_start sub_8093DEC -sub_8093DEC: @ 8093DEC - push {lr} - bl MenuZeroFillScreen - bl sub_80940E4 - bl sub_8093F48 - bl sub_8094188 - pop {r0} - bx r0 - thumb_func_end sub_8093DEC - - thumb_func_start sub_8093E04 -sub_8093E04: @ 8093E04 - ldr r0, _08093E20 @ =REG_BG0VOFS - ldr r2, _08093E24 @ =0x0000fffc - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x2 - movs r2, 0 - strh r2, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r0, 0x2 - strh r1, [r0] - bx lr - .align 2, 0 -_08093E20: .4byte REG_BG0VOFS -_08093E24: .4byte 0x0000fffc - thumb_func_end sub_8093E04 - - thumb_func_start sub_8093E28 -sub_8093E28: @ 8093E28 - push {r4-r7,lr} - bl sub_8093EA0 - ldr r0, _08093E84 @ =gUnknown_083B5F6C - movs r1, 0xE0 - movs r2, 0x20 - bl LoadPalette - ldr r3, _08093E88 @ =gMenuTrainerCard_Gfx - movs r4, 0xC0 - lsls r4, 19 - movs r5, 0xA4 - lsls r5, 5 - ldr r1, _08093E8C @ =0x040000d4 - ldr r6, _08093E90 @ =0x80000800 - movs r2, 0x80 - lsls r2, 5 - movs r7, 0x80 - lsls r7, 24 -_08093E4E: - str r3, [r1] - str r4, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r2 - adds r4, r2 - subs r5, r2 - cmp r5, r2 - bhi _08093E4E - str r3, [r1] - str r4, [r1, 0x4] - lsrs r0, r5, 1 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, _08093E94 @ =gBadgesTiles - ldr r2, _08093E98 @ =0x06001480 - ldr r0, _08093E8C @ =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _08093E9C @ =0x80000200 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08093E84: .4byte gUnknown_083B5F6C -_08093E88: .4byte gMenuTrainerCard_Gfx -_08093E8C: .4byte 0x040000d4 -_08093E90: .4byte 0x80000800 -_08093E94: .4byte gBadgesTiles -_08093E98: .4byte 0x06001480 -_08093E9C: .4byte 0x80000200 - thumb_func_end sub_8093E28 - - thumb_func_start sub_8093EA0 -sub_8093EA0: @ 8093EA0 - push {r4,lr} - ldr r1, _08093EE4 @ =gUnknown_083B5EF8 - ldr r4, _08093EE8 @ =0x02000000 - ldrb r0, [r4, 0x2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - movs r2, 0x60 - bl LoadPalette - ldr r0, _08093EEC @ =gBadgesPalette - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08093EF0 @ =gUnknown_083B5F4C - movs r1, 0x40 - movs r2, 0x20 - bl LoadPalette - adds r4, 0x64 - ldrb r0, [r4] - cmp r0, 0 - beq _08093EDC - ldr r0, _08093EF4 @ =gUnknown_083B5F0C - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette -_08093EDC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08093EE4: .4byte gUnknown_083B5EF8 -_08093EE8: .4byte 0x02000000 -_08093EEC: .4byte gBadgesPalette -_08093EF0: .4byte gUnknown_083B5F4C -_08093EF4: .4byte gUnknown_083B5F0C - thumb_func_end sub_8093EA0 - - thumb_func_start sub_8093EF8 -sub_8093EF8: @ 8093EF8 - push {lr} - ldr r0, _08093F0C @ =0x02000000 - adds r0, 0x64 - ldrb r0, [r0] - ldr r2, _08093F10 @ =0x06001880 - movs r1, 0x50 - bl LoadTrainerGfx_TrainerCard - pop {r0} - bx r0 - .align 2, 0 -_08093F0C: .4byte 0x02000000 -_08093F10: .4byte 0x06001880 - thumb_func_end sub_8093EF8 - - thumb_func_start sub_8093F14 -sub_8093F14: @ 8093F14 - push {lr} - sub sp, 0x8 - ldr r0, _08093F3C @ =gUnknown_083B5EEC - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - ldr r0, _08093F40 @ =0x02000000 - ldrb r0, [r0, 0x1] - lsls r0, 2 - add r0, sp - ldr r0, [r0] - ldr r1, _08093F44 @ =0x06004800 - movs r2, 0xA0 - lsls r2, 1 - bl CpuFastSet - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_08093F3C: .4byte gUnknown_083B5EEC -_08093F40: .4byte 0x02000000 -_08093F44: .4byte 0x06004800 - thumb_func_end sub_8093F14 - - thumb_func_start sub_8093F48 -sub_8093F48: @ 8093F48 - push {lr} - ldr r0, _08093F5C @ =gUnknown_08E8CFC0 - ldr r1, _08093F60 @ =0x06004800 - movs r2, 0xA0 - lsls r2, 1 - bl CpuFastSet - pop {r0} - bx r0 - .align 2, 0 -_08093F5C: .4byte gUnknown_08E8CFC0 -_08093F60: .4byte 0x06004800 - thumb_func_end sub_8093F48 - - thumb_func_start sub_8093F64 -sub_8093F64: @ 8093F64 - push {lr} - ldr r0, _08093F78 @ =gUnknown_08E8D9C0 - ldr r1, _08093F7C @ =0x06005000 - movs r2, 0xA0 - lsls r2, 1 - bl CpuFastSet - pop {r0} - bx r0 - .align 2, 0 -_08093F78: .4byte gUnknown_08E8D9C0 -_08093F7C: .4byte 0x06005000 - thumb_func_end sub_8093F64 - - thumb_func_start sub_8093F80 -sub_8093F80: @ 8093F80 - push {r4-r7,lr} - movs r5, 0xC4 - ldr r7, _08093FCC @ =0x06004000 - movs r1, 0x5 - movs r0, 0xA0 - lsls r0, 7 - adds r6, r0, 0 -_08093F8E: - movs r0, 0x13 - lsls r3, r1, 16 - asrs r4, r3, 11 -_08093F94: - lsls r2, r0, 16 - asrs r2, 16 - adds r1, r4, r2 - lsls r1, 1 - adds r1, r7 - adds r0, r5, 0 - orrs r0, r6 - strh r0, [r1] - adds r2, 0x1 - lsls r2, 16 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - lsrs r0, r2, 16 - asrs r2, 16 - cmp r2, 0x1A - ble _08093F94 - movs r1, 0x80 - lsls r1, 9 - adds r0, r3, r1 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0xC - ble _08093F8E - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08093FCC: .4byte 0x06004000 - thumb_func_end sub_8093F80 - - thumb_func_start sub_8093FD0 -sub_8093FD0: @ 8093FD0 - push {r4-r6,lr} - ldr r4, _0809402C @ =0x06004000 - movs r2, 0xF - ldr r0, _08094030 @ =0x02000000 - ldrb r0, [r0, 0x2] - adds r0, 0xF - cmp r2, r0 - bge _08094002 - movs r6, 0xC0 - lsls r6, 1 - ldr r1, _08094034 @ =0x0000408f - adds r5, r1, 0 - adds r3, r0, 0 -_08093FEA: - lsls r1, r2, 16 - asrs r1, 16 - lsls r0, r1, 1 - adds r0, r4 - adds r0, r6 - strh r5, [r0] - adds r1, 0x1 - lsls r1, 16 - lsrs r2, r1, 16 - asrs r1, 16 - cmp r1, r3 - blt _08093FEA -_08094002: - lsls r1, r2, 16 - asrs r0, r1, 16 - cmp r0, 0x12 - bgt _08094024 - movs r3, 0xC0 - lsls r3, 1 - movs r2, 0 -_08094010: - asrs r0, r1, 16 - lsls r1, r0, 1 - adds r1, r4 - adds r1, r3 - strh r2, [r1] - adds r0, 0x1 - lsls r1, r0, 16 - asrs r0, r1, 16 - cmp r0, 0x12 - ble _08094010 -_08094024: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809402C: .4byte 0x06004000 -_08094030: .4byte 0x02000000 -_08094034: .4byte 0x0000408f - thumb_func_end sub_8093FD0 - - thumb_func_start sub_8094038 -sub_8094038: @ 8094038 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r1, _080940D0 @ =0x02000000 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _080940C2 - ldr r0, _080940D4 @ =0x06004000 - mov r9, r0 - movs r0, 0 - movs r2, 0x4 - adds r1, 0xE - mov r8, r1 - ldr r7, _080940D8 @ =gUnknown_083B5F8C - movs r1, 0xC0 - lsls r1, 6 - adds r6, r1, 0 - adds r1, r7, 0x6 - mov r12, r1 -_08094060: - lsls r0, 16 - asrs r4, r0, 16 - mov r1, r8 - adds r0, r4, r1 - ldrb r0, [r0] - lsls r5, r2, 16 - cmp r0, 0 - beq _080940AE - asrs r1, r5, 15 - add r1, r9 - movs r2, 0xF0 - lsls r2, 2 - adds r3, r1, r2 - lsls r2, r4, 3 - adds r0, r2, r7 - ldrh r0, [r0] - orrs r0, r6 - strh r0, [r3] - ldr r0, _080940DC @ =0x000003c2 - adds r3, r1, r0 - adds r0, r7, 0x2 - adds r0, r2, r0 - ldrh r0, [r0] - orrs r0, r6 - strh r0, [r3] - movs r0, 0x80 - lsls r0, 3 - adds r3, r1, r0 - adds r0, r7, 0x4 - adds r0, r2, r0 - ldrh r0, [r0] - orrs r0, r6 - strh r0, [r3] - ldr r0, _080940E0 @ =0x00000402 - adds r1, r0 - add r2, r12 - ldrh r0, [r2] - orrs r0, r6 - strh r0, [r1] -_080940AE: - adds r1, r4, 0x1 - lsls r1, 16 - movs r2, 0xC0 - lsls r2, 10 - adds r0, r5, r2 - lsrs r2, r0, 16 - lsrs r0, r1, 16 - asrs r1, 16 - cmp r1, 0x7 - ble _08094060 -_080940C2: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080940D0: .4byte 0x02000000 -_080940D4: .4byte 0x06004000 -_080940D8: .4byte gUnknown_083B5F8C -_080940DC: .4byte 0x000003c2 -_080940E0: .4byte 0x00000402 - thumb_func_end sub_8094038 - - thumb_func_start sub_80940E4 -sub_80940E4: @ 80940E4 - push {r4,lr} - movs r2, 0 - ldr r1, _08094108 @ =0x06004000 - movs r4, 0 - ldr r3, _0809410C @ =0x000003ff -_080940EE: - strh r4, [r1] - lsls r0, r2, 16 - movs r2, 0x80 - lsls r2, 9 - adds r0, r2 - adds r1, 0x2 - lsrs r2, r0, 16 - asrs r0, 16 - cmp r0, r3 - ble _080940EE - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08094108: .4byte 0x06004000 -_0809410C: .4byte 0x000003ff - thumb_func_end sub_80940E4 - - thumb_func_start sub_8094110 -sub_8094110: @ 8094110 - push {r4-r6,lr} - ldr r6, _0809413C @ =0x06004800 - movs r2, 0x3 - movs r5, 0xA0 - lsls r5, 2 - movs r3, 0x1 - movs r4, 0xB0 - lsls r4, 2 -_08094120: - lsls r0, r2, 1 - adds r0, r6 - adds r1, r0, r5 - strh r3, [r1] - adds r0, r4 - strh r3, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x10 - bls _08094120 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809413C: .4byte 0x06004800 - thumb_func_end sub_8094110 - - thumb_func_start sub_8094140 -sub_8094140: @ 8094140 - push {r4,r5,lr} - ldr r0, _0809417C @ =gWindowConfig_81E6DC4 - bl BasicInitMenuWindow - ldr r4, _08094180 @ =gStringVar1 - ldr r5, _08094184 @ =0x02000094 - adds r0, r4, 0 - adds r1, r5, 0 - bl StringCopy - ldrb r1, [r5, 0x8] - adds r0, r4, 0 - bl ConvertInternationalString - adds r0, r4, 0 - movs r1, 0x7 - movs r2, 0x5 - bl MenuPrint - bl sub_80941D8 - bl sub_8094200 - bl sub_8094218 - bl sub_809429C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809417C: .4byte gWindowConfig_81E6DC4 -_08094180: .4byte gStringVar1 -_08094184: .4byte 0x02000094 - thumb_func_end sub_8094140 - - thumb_func_start sub_8094188 -sub_8094188: @ 8094188 - push {lr} - ldr r0, _080941D0 @ =gWindowConfig_81E6DC4 - bl BasicInitMenuWindow - bl sub_80942F8 - bl sub_8094334 - bl sub_80943C4 - bl sub_8094428 - bl sub_8094498 - bl sub_80944E8 - bl sub_8094538 - ldr r0, _080941D4 @ =gWindowConfig_81E6DE0 - bl BasicInitMenuWindow - bl sub_8094354 - bl sub_80943E4 - bl sub_8094448 - bl sub_80944B8 - bl sub_8094508 - bl sub_8094558 - pop {r0} - bx r0 - .align 2, 0 -_080941D0: .4byte gWindowConfig_81E6DC4 -_080941D4: .4byte gWindowConfig_81E6DE0 - thumb_func_end sub_8094188 - - thumb_func_start sub_80941D8 -sub_80941D8: @ 80941D8 - push {lr} - sub sp, 0x8 - ldr r0, _080941FC @ =0x02000000 - adds r0, 0x72 - ldrh r1, [r0] - mov r0, sp - movs r2, 0x2 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - mov r0, sp - movs r1, 0x14 - movs r2, 0x2 - bl MenuPrint - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_080941FC: .4byte 0x02000000 - thumb_func_end sub_80941D8 - - thumb_func_start sub_8094200 -sub_8094200: @ 8094200 - push {lr} - ldr r0, _08094214 @ =0x02000000 - adds r0, 0x88 - ldr r0, [r0] - movs r1, 0x10 - movs r2, 0x8 - bl sub_80B7AEC - pop {r0} - bx r0 - .align 2, 0 -_08094214: .4byte 0x02000000 - thumb_func_end sub_8094200 - - thumb_func_start sub_8094218 -sub_8094218: @ 8094218 - push {lr} - sub sp, 0x10 - ldr r1, _0809422C @ =0x02000000 - ldrb r0, [r1, 0x7] - cmp r0, 0 - bne _08094230 - bl sub_8094110 - b _0809424A - .align 2, 0 -_0809422C: .4byte 0x02000000 -_08094230: - adds r0, r1, 0 - adds r0, 0x70 - ldrh r1, [r0] - mov r0, sp - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - mov r0, sp - movs r1, 0x10 - movs r2, 0xA - bl MenuPrint_RightAligned -_0809424A: - add sp, 0x10 - pop {r0} - bx r0 - thumb_func_end sub_8094218 - - thumb_func_start sub_8094250 -sub_8094250: @ 8094250 - push {r4,r5,lr} - sub sp, 0x10 - adds r5, r0, 0 - lsls r1, 16 - lsrs r3, r1, 16 - ldr r0, _08094294 @ =gSaveBlock2 - ldrh r4, [r0, 0xE] - ldrb r2, [r0, 0x10] - ldr r1, _08094298 @ =0x02000000 - ldrb r0, [r1, 0x1] - cmp r0, 0 - beq _08094272 - adds r0, r1, 0 - adds r0, 0x74 - ldrh r4, [r0] - adds r0, 0x2 - ldrh r2, [r0] -_08094272: - lsls r3, 16 - asrs r3, 16 - mov r0, sp - adds r1, r4, 0 - bl FormatPlayTime - adds r0, r5, 0 - mov r1, sp - movs r2, 0x30 - movs r3, 0x1 - bl sub_8072C74 - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08094294: .4byte gSaveBlock2 -_08094298: .4byte 0x02000000 - thumb_func_end sub_8094250 - - thumb_func_start sub_809429C -sub_809429C: @ 809429C - push {r4-r6,lr} - ldr r6, _080942F0 @ =0x02000000 - ldrb r0, [r6, 0x1] - cmp r0, 0 - beq _080942EA - ldr r0, _080942F4 @ =gStringVar1 - adds r1, r6, 0 - adds r1, 0x20 - bl StringCopy - movs r5, 0 - strb r5, [r0] - adds r0, 0x1 - adds r1, r6, 0 - adds r1, 0x30 - bl StringCopy - ldr r4, _080942F4 @ =gStringVar1 - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0xE - bl MenuPrint - adds r1, r6, 0 - adds r1, 0x40 - adds r0, r4, 0 - bl StringCopy - strb r5, [r0] - adds r0, 0x1 - adds r1, r6, 0 - adds r1, 0x50 - bl StringCopy - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0x10 - bl MenuPrint -_080942EA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080942F0: .4byte 0x02000000 -_080942F4: .4byte gStringVar1 - thumb_func_end sub_809429C - - thumb_func_start sub_80942F8 -sub_80942F8: @ 80942F8 - push {r4,r5,lr} - ldr r4, _08094328 @ =gStringVar1 - ldr r5, _0809432C @ =0x02000094 - adds r0, r4, 0 - adds r1, r5, 0 - bl StringCopy - ldrb r1, [r5, 0x8] - adds r0, r4, 0 - bl ConvertInternationalString - ldr r1, _08094330 @ =gOtherText_TrainersTrainerCard - adds r0, r4, 0 - bl StringAppend - adds r0, r4, 0 - movs r1, 0x1C - movs r2, 0x2 - bl MenuPrint_RightAligned - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08094328: .4byte gStringVar1 -_0809432C: .4byte 0x02000094 -_08094330: .4byte gOtherText_TrainersTrainerCard - thumb_func_end sub_80942F8 - - thumb_func_start sub_8094334 -sub_8094334: @ 8094334 - push {lr} - ldr r0, _0809434C @ =0x02000000 - ldrb r0, [r0, 0x8] - cmp r0, 0 - beq _08094348 - ldr r0, _08094350 @ =gOtherText_FirstHOF - movs r1, 0x3 - movs r2, 0x5 - bl MenuPrint -_08094348: - pop {r0} - bx r0 - .align 2, 0 -_0809434C: .4byte 0x02000000 -_08094350: .4byte gOtherText_FirstHOF - thumb_func_end sub_8094334 - - thumb_func_start sub_8094354 -sub_8094354: @ 8094354 - push {r4,r5,lr} - ldr r5, _080943B8 @ =0x02000000 - ldrb r0, [r5, 0x8] - cmp r0, 0 - beq _080943B0 - ldr r2, _080943BC @ =gStringVar1 - adds r0, r5, 0 - adds r0, 0x6A - ldrh r1, [r0] - adds r0, r2, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r2, r0, 0 - ldr r4, _080943C0 @ =gUnknown_083B5EF4 - adds r1, r4, 0 - bl StringCopy - adds r2, r0, 0 - adds r0, r5, 0 - adds r0, 0x6C - ldrh r1, [r0] - adds r0, r2, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - adds r2, r0, 0 - adds r1, r4, 0 - bl StringCopy - adds r2, r0, 0 - adds r0, r5, 0 - adds r0, 0x6E - ldrh r1, [r0] - adds r0, r2, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _080943BC @ =gStringVar1 - movs r1, 0x1C - movs r2, 0x5 - bl MenuPrint_RightAligned -_080943B0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080943B8: .4byte 0x02000000 -_080943BC: .4byte gStringVar1 -_080943C0: .4byte gUnknown_083B5EF4 - thumb_func_end sub_8094354 - - thumb_func_start sub_80943C4 -sub_80943C4: @ 80943C4 - push {lr} - ldr r0, _080943DC @ =0x02000000 - ldrb r0, [r0, 0x9] - cmp r0, 0 - beq _080943D8 - ldr r0, _080943E0 @ =gOtherText_LinkCableBattles - movs r1, 0x3 - movs r2, 0x7 - bl MenuPrint -_080943D8: - pop {r0} - bx r0 - .align 2, 0 -_080943DC: .4byte 0x02000000 -_080943E0: .4byte gOtherText_LinkCableBattles - thumb_func_end sub_80943C4 - - thumb_func_start sub_80943E4 -sub_80943E4: @ 80943E4 - push {r4,lr} - sub sp, 0x10 - ldr r4, _08094424 @ =0x02000000 - ldrb r0, [r4, 0x9] - cmp r0, 0 - beq _0809441C - adds r0, r4, 0 - adds r0, 0x78 - ldrh r1, [r0] - mov r0, sp - bl ConvertIntToDecimalString - mov r0, sp - movs r1, 0x16 - movs r2, 0x7 - bl MenuPrint_RightAligned - adds r0, r4, 0 - adds r0, 0x7A - ldrh r1, [r0] - mov r0, sp - bl ConvertIntToDecimalString - mov r0, sp - movs r1, 0x1C - movs r2, 0x7 - bl MenuPrint_RightAligned -_0809441C: - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08094424: .4byte 0x02000000 - thumb_func_end sub_80943E4 - - thumb_func_start sub_8094428 -sub_8094428: @ 8094428 - push {lr} - ldr r0, _08094440 @ =0x02000000 - ldrb r0, [r0, 0xA] - cmp r0, 0 - beq _0809443C - ldr r0, _08094444 @ =gOtherText_BattleTowerWinRecord - movs r1, 0x3 - movs r2, 0xF - bl MenuPrint -_0809443C: - pop {r0} - bx r0 - .align 2, 0 -_08094440: .4byte 0x02000000 -_08094444: .4byte gOtherText_BattleTowerWinRecord - thumb_func_end sub_8094428 - - thumb_func_start sub_8094448 -sub_8094448: @ 8094448 - push {r4,lr} - sub sp, 0x10 - ldr r4, _08094494 @ =0x02000000 - ldrb r0, [r4, 0xA] - cmp r0, 0 - beq _0809448C - adds r0, r4, 0 - adds r0, 0x7C - ldrh r1, [r0] - mov r0, sp - movs r2, 0x18 - movs r3, 0x1 - bl sub_8072C44 - mov r0, sp - movs r1, 0x70 - movs r2, 0x78 - movs r3, 0 - bl MenuPrint_PixelCoords - adds r0, r4, 0 - adds r0, 0x7E - ldrh r1, [r0] - mov r0, sp - movs r2, 0x18 - movs r3, 0x1 - bl sub_8072C44 - mov r0, sp - movs r1, 0x95 - movs r2, 0x78 - movs r3, 0 - bl MenuPrint_PixelCoords -_0809448C: - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08094494: .4byte 0x02000000 - thumb_func_end sub_8094448 - - thumb_func_start sub_8094498 -sub_8094498: @ 8094498 - push {lr} - ldr r0, _080944B0 @ =0x02000000 - ldrb r0, [r0, 0xB] - cmp r0, 0 - beq _080944AC - ldr r0, _080944B4 @ =gOtherText_ContestRecord - movs r1, 0x3 - movs r2, 0xD - bl MenuPrint -_080944AC: - pop {r0} - bx r0 - .align 2, 0 -_080944B0: .4byte 0x02000000 -_080944B4: .4byte gOtherText_ContestRecord - thumb_func_end sub_8094498 - - thumb_func_start sub_80944B8 -sub_80944B8: @ 80944B8 - push {lr} - sub sp, 0x8 - ldr r1, _080944E4 @ =0x02000000 - ldrb r0, [r1, 0xB] - cmp r0, 0 - beq _080944DE - adds r0, r1, 0 - adds r0, 0x80 - ldrh r1, [r0] - mov r0, sp - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - mov r0, sp - movs r1, 0x1C - movs r2, 0xD - bl MenuPrint_RightAligned -_080944DE: - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_080944E4: .4byte 0x02000000 - thumb_func_end sub_80944B8 - - thumb_func_start sub_80944E8 -sub_80944E8: @ 80944E8 - push {lr} - ldr r0, _08094500 @ =0x02000000 - ldrb r0, [r0, 0xC] - cmp r0, 0 - beq _080944FC - ldr r0, _08094504 @ =gOtherText_MixingRecord - movs r1, 0x3 - movs r2, 0xB - bl MenuPrint -_080944FC: - pop {r0} - bx r0 - .align 2, 0 -_08094500: .4byte 0x02000000 -_08094504: .4byte gOtherText_MixingRecord - thumb_func_end sub_80944E8 - - thumb_func_start sub_8094508 -sub_8094508: @ 8094508 - push {lr} - sub sp, 0x8 - ldr r1, _08094534 @ =0x02000000 - ldrb r0, [r1, 0xC] - cmp r0, 0 - beq _0809452E - adds r0, r1, 0 - adds r0, 0x82 - ldrh r1, [r0] - mov r0, sp - movs r2, 0x1 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - mov r0, sp - movs r1, 0x1C - movs r2, 0xB - bl MenuPrint_RightAligned -_0809452E: - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_08094534: .4byte 0x02000000 - thumb_func_end sub_8094508 - - thumb_func_start sub_8094538 -sub_8094538: @ 8094538 - push {lr} - ldr r0, _08094550 @ =0x02000000 - ldrb r0, [r0, 0xD] - cmp r0, 0 - beq _0809454C - ldr r0, _08094554 @ =gOtherText_TradeRecord - movs r1, 0x3 - movs r2, 0x9 - bl MenuPrint -_0809454C: - pop {r0} - bx r0 - .align 2, 0 -_08094550: .4byte 0x02000000 -_08094554: .4byte gOtherText_TradeRecord - thumb_func_end sub_8094538 - - thumb_func_start sub_8094558 -sub_8094558: @ 8094558 - push {lr} - sub sp, 0x8 - ldr r1, _08094584 @ =0x02000000 - ldrb r0, [r1, 0xD] - cmp r0, 0 - beq _0809457E - adds r0, r1, 0 - adds r0, 0x84 - ldrh r1, [r0] - mov r0, sp - movs r2, 0x1 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - mov r0, sp - movs r1, 0x1C - movs r2, 0x9 - bl MenuPrint_RightAligned -_0809457E: - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_08094584: .4byte 0x02000000 - thumb_func_end sub_8094558 - - thumb_func_start unref_sub_8094588 -unref_sub_8094588: @ 8094588 - push {r4,lr} - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 16 - lsrs r2, r1, 16 - ldr r4, _080945B4 @ =gOtherText_Boy - ldr r0, _080945B8 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - cmp r0, 0x1 - bne _0809459E - ldr r4, _080945BC @ =gOtherText_Girl -_0809459E: - lsls r1, r3, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - bl MenuPrint - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080945B4: .4byte gOtherText_Boy -_080945B8: .4byte gSaveBlock2 -_080945BC: .4byte gOtherText_Girl - thumb_func_end unref_sub_8094588 - - .align 2, 0 @ Don't pad with nop. @@ -1,4 +1,5 @@ .include "constants/gba_constants.inc" + .include "constants/misc_constants.inc" .include "constants/species_constants.inc" .include "asm/macros.inc" @@ -637,7 +638,7 @@ sub_80BDC14: @ 80BDC14 adds r4, r1 strb r0, [r4] movs r0, 0x6 - bl sav12_xor_increment + bl IncrementGameStat pop {r4-r6} pop {r0} bx r0 @@ -940,7 +941,7 @@ _080BDEA6: sub_80BDEAC: @ 80BDEAC push {lr} adds r1, r0, 0 - movs r2, 0x2 + movs r2, GAME_LANGUAGE ldrb r0, [r1] cmp r0, 0xFC bne _080BDEC0 @@ -1104,7 +1105,7 @@ _080BDFDE: strh r0, [r5, 0x10] adds r0, r5, 0 bl sub_80BE138 - movs r0, 0x2 + movs r0, GAME_LANGUAGE strb r0, [r5, 0x2] adds r0, r6, 0 bl sub_80BDEAC @@ -1135,7 +1136,7 @@ sub_80BE028: @ 80BE028 movs r1, 0x18 bl sub_80BF55C movs r0, 0x5 - bl sub_8053108 + bl GetGameStat strh r0, [r4, 0x6] movs r0, 0x19 strb r0, [r4] @@ -1237,7 +1238,7 @@ _080BE0A2: bl StringCopy adds r0, r4, 0 bl sub_80BE138 - movs r0, 0x2 + movs r0, GAME_LANGUAGE strb r0, [r4, 0x2] _080BE112: pop {r4-r7} @@ -1258,7 +1259,7 @@ _080BE134: .4byte gSaveBlock2 sub_80BE138: @ 80BE138 push {r4,lr} adds r4, r0, 0 - bl sub_80BFB94 + bl GetPlayerTrainerId strb r0, [r4, 0x1E] lsrs r2, r0, 8 strb r2, [r4, 0x1F] @@ -1281,7 +1282,7 @@ sub_80BE138: @ 80BE138 sub_80BE160: @ 80BE160 push {r4,lr} adds r4, r0, 0 - bl sub_80BFB94 + bl GetPlayerTrainerId adds r1, r4, 0 adds r1, 0x20 strb r0, [r1] @@ -1367,7 +1368,7 @@ sub_80BE188: @ 80BE188 strb r0, [r4, 0x13] adds r0, r4, 0 bl sub_80BE160 - movs r0, 0x2 + movs r0, GAME_LANGUAGE strb r0, [r4, 0x1E] adds r0, r5, 0 bl sub_80BDEAC @@ -1558,7 +1559,7 @@ _080BE39E: strb r0, [r6, 0x1B] adds r0, r6, 0 bl sub_80BE160 - movs r0, 0x2 + movs r0, GAME_LANGUAGE strb r0, [r6, 0x1D] pop {r4-r6} pop {r0} @@ -1639,7 +1640,7 @@ _080BE420: bl StringCopy adds r0, r5, 0 bl sub_80BE138 - movs r0, 0x2 + movs r0, GAME_LANGUAGE strb r0, [r5, 0x3] _080BE458: pop {r4-r7} @@ -1654,544 +1655,8 @@ _080BE470: .4byte gMapHeader _080BE474: .4byte gSaveBlock2 thumb_func_end sub_80BE3BC - thumb_func_start sub_80BE478 -sub_80BE478: @ 80BE478 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - bl sub_80BF478 - ldr r0, _080BE554 @ =gScriptResult - ldrh r0, [r0] - cmp r0, 0x1 - beq _080BE548 - ldr r0, _080BE558 @ =gSpecialVar_0x8004 - mov r8, r0 - ldrh r0, [r0] - movs r7, 0x64 - muls r0, r7 - ldr r6, _080BE55C @ =gPlayerParty - adds r0, r6 - ldr r4, _080BE560 @ =gStringVar1 - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - ldr r1, _080BE564 @ =gSaveBlock2 - mov r9, r1 - mov r0, r9 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _080BE548 - adds r0, r4, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _080BE548 - ldr r0, _080BE568 @ =gUnknown_03005D38 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _080BE56C @ =gSaveBlock1 + 0x2738 - adds r4, r0 - movs r0, 0x5 - strb r0, [r4] - movs r5, 0x1 - strb r5, [r4, 0x1] - mov r1, r8 - ldrh r0, [r1] - muls r0, r7 - adds r0, r6 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r4, 0x2] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - strb r0, [r4, 0x1A] - bl Random - lsls r0, 16 - lsrs r0, 16 - ands r0, r5 - strb r0, [r4, 0x1B] - ldrh r0, [r4, 0x2] - bl sub_80BF674 - strh r0, [r4, 0x1C] - adds r0, r4, 0 - adds r0, 0xF - mov r1, r9 - bl StringCopy - mov r1, r8 - ldrh r0, [r1] - muls r0, r7 - adds r0, r6 - adds r5, r4, 0x4 - movs r1, 0x2 - adds r2, r5, 0 - bl GetMonData - adds r0, r4, 0 - bl sub_80BE160 - movs r0, 0x2 - strb r0, [r4, 0x1E] - adds r0, r5, 0 - bl sub_80BDEAC - strb r0, [r4, 0x1F] - adds r0, r5, 0 - bl StripExtCtrlCodes -_080BE548: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BE554: .4byte gScriptResult -_080BE558: .4byte gSpecialVar_0x8004 -_080BE55C: .4byte gPlayerParty -_080BE560: .4byte gStringVar1 -_080BE564: .4byte gSaveBlock2 -_080BE568: .4byte gUnknown_03005D38 -_080BE56C: .4byte gSaveBlock1 + 0x2738 - thumb_func_end sub_80BE478 - - thumb_func_start StartMassOutbreak -StartMassOutbreak: @ 80BE570 - push {r4,lr} - ldr r0, _080BE5F0 @ =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r2, _080BE5F4 @ =gSaveBlock1 + 0x2738 - adds r0, r2 - ldrh r3, [r0, 0xC] - movs r4, 0xF1 - lsls r4, 2 - adds r1, r2, r4 - strh r3, [r1] - ldrb r3, [r0, 0x10] - adds r4, 0x2 - adds r1, r2, r4 - strb r3, [r1] - ldrb r3, [r0, 0x11] - adds r4, 0x1 - adds r1, r2, r4 - strb r3, [r1] - ldrb r3, [r0, 0x14] - adds r4, 0x1 - adds r1, r2, r4 - strb r3, [r1] - ldrb r3, [r0, 0x2] - adds r4, 0x1 - adds r1, r2, r4 - strb r3, [r1] - ldrh r3, [r0, 0xE] - adds r4, 0x1 - adds r1, r2, r4 - strh r3, [r1] - ldrh r3, [r0, 0x4] - adds r4, 0x2 - adds r1, r2, r4 - strh r3, [r1] - ldrh r3, [r0, 0x6] - adds r4, 0x2 - adds r1, r2, r4 - strh r3, [r1] - ldrh r3, [r0, 0x8] - adds r4, 0x2 - adds r1, r2, r4 - strh r3, [r1] - ldrh r3, [r0, 0xA] - adds r4, 0x2 - adds r1, r2, r4 - strh r3, [r1] - ldrb r3, [r0, 0x3] - adds r4, 0x2 - adds r1, r2, r4 - strb r3, [r1] - ldrb r1, [r0, 0x13] - ldr r3, _080BE5F8 @ =0x000003d5 - adds r0, r2, r3 - strb r1, [r0] - adds r4, 0x2 - adds r2, r4 - movs r0, 0x2 - strh r0, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BE5F0: .4byte gSpecialVar_0x8004 -_080BE5F4: .4byte gSaveBlock1 + 0x2738 -_080BE5F8: .4byte 0x000003d5 - thumb_func_end StartMassOutbreak - - thumb_func_start sub_80BE5FC -sub_80BE5FC: @ 80BE5FC - push {r4,lr} - ldr r0, _080BE64C @ =gUnknown_03005D38 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _080BE650 @ =gSaveBlock1 + 0x2738 - adds r4, r0 - movs r0, 0x1 - strb r0, [r4] - strb r0, [r4, 0x1] - adds r0, r4, 0 - adds r0, 0x10 - ldr r1, _080BE654 @ =gSaveBlock2 - bl StringCopy - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _080BE658 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r4, 0x2] - adds r0, r4, 0 - bl sub_80BE160 - movs r0, 0x2 - strb r0, [r4, 0x18] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BE64C: .4byte gUnknown_03005D38 -_080BE650: .4byte gSaveBlock1 + 0x2738 -_080BE654: .4byte gSaveBlock2 -_080BE658: .4byte gPlayerParty - thumb_func_end sub_80BE5FC - - thumb_func_start sub_80BE65C -sub_80BE65C: @ 80BE65C - push {r4-r6,lr} - ldr r0, _080BE694 @ =gUnknown_03005D38 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _080BE698 @ =gSaveBlock1 + 0x2738 - adds r4, r0 - movs r6, 0 - movs r5, 0x2 - strb r5, [r4] - movs r0, 0x1 - strb r0, [r4, 0x1] - adds r0, r4, 0 - adds r0, 0x10 - ldr r1, _080BE69C @ =gSaveBlock2 - bl StringCopy - strh r6, [r4, 0x2] - adds r0, r4, 0 - bl sub_80BE160 - strb r5, [r4, 0x18] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BE694: .4byte gUnknown_03005D38 -_080BE698: .4byte gSaveBlock1 + 0x2738 -_080BE69C: .4byte gSaveBlock2 - thumb_func_end sub_80BE65C - - thumb_func_start sub_80BE6A0 -sub_80BE6A0: @ 80BE6A0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r0, _080BE760 @ =gUnknown_03005D38 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _080BE764 @ =gSaveBlock1 + 0x2738 - adds r4, r0 - movs r0, 0x3 - strb r0, [r4] - movs r0, 0x1 - strb r0, [r4, 0x1] - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - ldr r6, _080BE768 @ =gPlayerParty - adds r0, r6 - movs r1, 0x20 - movs r2, 0 - bl GetMonData - lsrs r0, 4 - movs r1, 0xF - ands r0, r1 - ldrb r2, [r4, 0x4] - movs r1, 0x10 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x4] - ldr r0, _080BE76C @ =gSpecialVar_0x8007 - ldrb r0, [r0] - lsls r0, 4 - movs r2, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x4] - adds r0, r4, 0x5 - ldr r1, _080BE770 @ =gSaveBlock2 - bl StringCopy - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - adds r5, r4, 0 - adds r5, 0x10 - movs r1, 0x2 - adds r2, r5, 0 - bl GetMonData - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r4, 0x2] - adds r0, r4, 0 - bl sub_80BE160 - movs r0, 0x2 - strb r0, [r4, 0xD] - adds r0, r5, 0 - bl sub_80BDEAC - strb r0, [r4, 0xE] - adds r0, r5, 0 - bl StripExtCtrlCodes - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BE760: .4byte gUnknown_03005D38 -_080BE764: .4byte gSaveBlock1 + 0x2738 -_080BE768: .4byte gPlayerParty -_080BE76C: .4byte gSpecialVar_0x8007 -_080BE770: .4byte gSaveBlock2 - thumb_func_end sub_80BE6A0 - - thumb_func_start nullsub_21 -nullsub_21: @ 80BE774 - bx lr - thumb_func_end nullsub_21 - thumb_func_start sub_80BE778 -sub_80BE778: @ 80BE778 - push {r4-r6,lr} - ldr r0, _080BE83C @ =0x00000804 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080BE836 - movs r1, 0 - ldr r3, _080BE840 @ =gSaveBlock1 - ldr r2, _080BE844 @ =0x00002738 -_080BE78C: - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x29 - beq _080BE836 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x17 - bls _080BE78C - ldr r0, _080BE848 @ =0x00000147 - bl sub_80BF77C - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080BE836 - ldr r6, _080BE84C @ =gSaveBlock1 + 0x2738 - adds r0, r6, 0 - bl sub_80BF720 - ldr r4, _080BE850 @ =gUnknown_03005D38 - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080BE836 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x5 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r4, r1, 3 - adds r4, r1 - lsls r4, 2 - adds r4, r6 - movs r1, 0x29 - strb r1, [r4] - movs r3, 0x1 - strb r3, [r4, 0x1] - ldr r2, _080BE854 @ =gUnknown_083D13F8 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0xA] - strb r0, [r4, 0x14] - strb r5, [r4, 0x2] - strb r5, [r4, 0x3] - ldrh r0, [r1] - movs r2, 0 - strh r0, [r4, 0xC] - strh r5, [r4, 0xE] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x4] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x6] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x8] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0xA] - ldrb r0, [r1, 0xB] - strb r0, [r4, 0x10] - strb r2, [r4, 0x11] - strb r2, [r4, 0x12] - movs r0, 0x32 - strb r0, [r4, 0x13] - strb r2, [r4, 0x15] - strh r3, [r4, 0x16] - adds r0, r4, 0 - bl sub_80BE160 - movs r0, 0x2 - strb r0, [r4, 0x18] -_080BE836: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BE83C: .4byte 0x00000804 -_080BE840: .4byte gSaveBlock1 -_080BE844: .4byte 0x00002738 -_080BE848: .4byte 0x00000147 -_080BE84C: .4byte gSaveBlock1 + 0x2738 -_080BE850: .4byte gUnknown_03005D38 -_080BE854: .4byte gUnknown_083D13F8 - thumb_func_end sub_80BE778 - - thumb_func_start EndMassOutbreak -EndMassOutbreak: @ 80BE858 - push {r4,lr} - ldr r0, _080BE8B4 @ =gSaveBlock1 - ldr r2, _080BE8B8 @ =0x00002afc - adds r1, r0, r2 - movs r3, 0 - movs r2, 0 - strh r2, [r1] - ldr r4, _080BE8BC @ =0x00002afe - adds r1, r0, r4 - strb r3, [r1] - adds r4, 0x1 - adds r1, r0, r4 - strb r3, [r1] - adds r4, 0x1 - adds r1, r0, r4 - strb r3, [r1] - adds r4, 0x1 - adds r1, r0, r4 - strb r3, [r1] - adds r4, 0x1 - adds r1, r0, r4 - strh r2, [r1] - adds r4, 0x2 - adds r1, r0, r4 - strh r2, [r1] - adds r4, 0x2 - adds r1, r0, r4 - strh r2, [r1] - adds r4, 0x2 - adds r1, r0, r4 - strh r2, [r1] - adds r4, 0x2 - adds r1, r0, r4 - strh r2, [r1] - adds r4, 0x2 - adds r1, r0, r4 - strb r3, [r1] - adds r4, 0x1 - adds r1, r0, r4 - strb r3, [r1] - ldr r1, _080BE8C0 @ =0x00002b0e - adds r0, r1 - strh r2, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BE8B4: .4byte gSaveBlock1 -_080BE8B8: .4byte 0x00002afc -_080BE8BC: .4byte 0x00002afe -_080BE8C0: .4byte 0x00002b0e - thumb_func_end EndMassOutbreak - - thumb_func_start sub_80BE8C4 -sub_80BE8C4: @ 80BE8C4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - bl sub_80BE8EC - adds r0, r4, 0 - bl UpdateMassOutbreakTimeLeft - adds r0, r4, 0 - bl sub_80BEE84 - adds r0, r4, 0 - bl sub_80BEA5C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80BE8C4 + .section .text_80BE8EC thumb_func_start sub_80BE8EC sub_80BE8EC: @ 80BE8EC @@ -2368,7 +1833,7 @@ sub_80BE9D4: @ 80BE9D4 bl StringCopy adds r0, r4, 0 bl sub_80BE138 - movs r0, 0x2 + movs r0, GAME_LANGUAGE strb r0, [r4, 0x6] _080BEA36: pop {r4,r5} @@ -2456,7 +1921,7 @@ sub_80BEA88: @ 80BEA88 ldrh r0, [r5, 0x2] strh r0, [r4, 0x2] movs r0, 0x5 - bl sub_8053108 + bl GetGameStat ldrh r1, [r5, 0x6] subs r0, r1 strh r0, [r4, 0x6] @@ -2472,7 +1937,7 @@ sub_80BEA88: @ 80BEA88 bl StringCopy adds r0, r4, 0 bl sub_80BE138 - movs r0, 0x2 + movs r0, GAME_LANGUAGE strb r0, [r4, 0xB] _080BEB04: pop {r4-r7} @@ -2760,7 +2225,7 @@ _080BED00: asrs r0, 24 cmp r0, 0x13 bgt _080BED40 - ldr r1, _080BED3C @ =gUnknown_083D1444 + ldr r1, _080BED3C @ =gTVNewsTextGroup2 subs r2, 0x1 b _080BED44 .align 2, 0 @@ -2768,9 +2233,9 @@ _080BED2C: .4byte gSaveBlock1 _080BED30: .4byte 0x00002abe _080BED34: .4byte 0x00002abd _080BED38: .4byte gLocalTime -_080BED3C: .4byte gUnknown_083D1444 +_080BED3C: .4byte gTVNewsTextGroup2 _080BED40: - ldr r1, _080BED54 @ =gUnknown_083D1454 + ldr r1, _080BED54 @ =gTVNewsTextGroup3 ldr r2, _080BED58 @ =0x00002abc _080BED44: adds r0, r4, r2 @@ -2781,7 +2246,7 @@ _080BED44: bl ShowFieldMessage b _080BED82 .align 2, 0 -_080BED54: .4byte gUnknown_083D1454 +_080BED54: .4byte gTVNewsTextGroup3 _080BED58: .4byte 0x00002abc _080BED5C: ldrh r1, [r1] @@ -2793,7 +2258,7 @@ _080BED5C: adds r1, r4, r0 movs r0, 0 strb r0, [r1] - ldr r1, _080BED98 @ =gUnknown_083D1434 + ldr r1, _080BED98 @ =gTVNewsTextGroup1 ldr r2, _080BED9C @ =0x00002abc adds r0, r4, r2 ldrb r0, [r0] @@ -2812,7 +2277,7 @@ _080BED86: .align 2, 0 _080BED90: .4byte gStringVar1 _080BED94: .4byte 0x00002abd -_080BED98: .4byte gUnknown_083D1434 +_080BED98: .4byte gTVNewsTextGroup1 _080BED9C: .4byte 0x00002abc _080BEDA0: .4byte gScriptResult thumb_func_end sub_80BECE8 @@ -3367,7 +2832,7 @@ sub_80BF1B4: @ 80BF1B4 lsls r0, 24 lsrs r6, r0, 24 ldr r7, _080BF1F4 @ =gSaveBlock1 + 0x2738 - bl sub_80BFB94 + bl GetPlayerTrainerId adds r5, r0, 0 movs r4, 0x5 _080BF1C4: @@ -3780,46 +3245,7 @@ _080BF4EC: .4byte gUnknown_03005D38 _080BF4F0: .4byte gSaveBlock1 + 0x2738 thumb_func_end sub_80BF4BC - thumb_func_start sub_80BF4F4 -sub_80BF4F4: @ 80BF4F4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - adds r4, r0, 0 - muls r4, r1 - ldr r0, _080BF530 @ =gPlayerParty - adds r4, r0 - ldr r5, _080BF534 @ =gStringVar1 - adds r0, r4, 0 - movs r1, 0x2 - adds r2, r5, 0 - bl GetMonData - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - movs r1, 0xB - muls r0, r1 - ldr r1, _080BF538 @ =gSpeciesNames - adds r0, r1 - adds r1, r5, 0 - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - beq _080BF53C - movs r0, 0x1 - b _080BF53E - .align 2, 0 -_080BF530: .4byte gPlayerParty -_080BF534: .4byte gStringVar1 -_080BF538: .4byte gSpeciesNames -_080BF53C: - movs r0, 0 -_080BF53E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80BF4F4 +.section .text_80BF544 thumb_func_start sub_80BF544 sub_80BF544: @ 80BF544 @@ -4628,7 +4054,7 @@ _080BFB0C: .4byte gStringVar1 thumb_func_start sub_80BFB10 sub_80BFB10: @ 80BFB10 push {r4,lr} - bl sub_80BFB94 + bl GetPlayerTrainerId adds r4, r0, 0 ldr r0, _080BFB38 @ =gSpecialVar_0x8004 ldrh r1, [r0] @@ -4701,8 +4127,8 @@ _080BFB90: bx r1 thumb_func_end sub_80BFB54 - thumb_func_start sub_80BFB94 -sub_80BFB94: @ 80BFB94 + thumb_func_start GetPlayerTrainerId +GetPlayerTrainerId: @ 80BFB94 ldr r2, _080BFBAC @ =gSaveBlock2 ldrb r0, [r2, 0xD] lsls r0, 24 @@ -4717,7 +4143,7 @@ sub_80BFB94: @ 80BFB94 bx lr .align 2, 0 _080BFBAC: .4byte gSaveBlock2 - thumb_func_end sub_80BFB94 + thumb_func_end GetPlayerTrainerId thumb_func_start CheckForBigMovieOrEmergencyNewsOnTV CheckForBigMovieOrEmergencyNewsOnTV: @ 80BFBB0 @@ -6686,7 +6112,7 @@ _080C0B74: _080C0B78: strb r0, [r1] _080C0B7A: - ldr r0, _080C0B98 @ =gUnknown_083D1524 + ldr r0, _080C0B98 @ =gTVBravoTrainerTextGroup lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] @@ -6698,7 +6124,7 @@ _080C0B7A: _080C0B8C: .4byte gStringVar1 _080C0B90: .4byte gSpeciesNames _080C0B94: .4byte gUnknown_020387E8 -_080C0B98: .4byte gUnknown_083D1524 +_080C0B98: .4byte gTVBravoTrainerTextGroup thumb_func_end DoTVShowBravoTrainerPokemonProfile thumb_func_start DoTVShowBravoTrainerBattleTowerProfile @@ -6959,7 +6385,7 @@ _080C0DC0: bl StringCopy bl TVShowDone _080C0DDE: - ldr r0, _080C0DFC @ =gUnknown_083D1548 + ldr r0, _080C0DFC @ =gTVBravoTrainerBattleTowerTextGroup lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] @@ -6971,7 +6397,7 @@ _080C0DDE: _080C0DF0: .4byte gStringVar1 _080C0DF4: .4byte gStringVar2 _080C0DF8: .4byte gSpeciesNames -_080C0DFC: .4byte gUnknown_083D1548 +_080C0DFC: .4byte gTVBravoTrainerBattleTowerTextGroup thumb_func_end DoTVShowBravoTrainerBattleTowerProfile thumb_func_start DoTVShowTodaysSmartShopper @@ -7214,7 +6640,7 @@ _080C1004: bl TVShowConvertInternationalString bl TVShowDone _080C1014: - ldr r0, _080C102C @ =gUnknown_083D14F0 + ldr r0, _080C102C @ =gTVSmartShopperTextGroup lsls r1, r6, 2 adds r1, r0 ldr r0, [r1] @@ -7224,7 +6650,7 @@ _080C1014: bx r0 .align 2, 0 _080C1028: .4byte gStringVar1 -_080C102C: .4byte gUnknown_083D14F0 +_080C102C: .4byte gTVSmartShopperTextGroup thumb_func_end DoTVShowTodaysSmartShopper thumb_func_start DoTVShowTheNameRaterShow @@ -7598,7 +7024,7 @@ _080C1370: bl TVShowConvertInternationalString bl TVShowDone _080C138A: - ldr r0, _080C13A8 @ =gUnknown_083D1584 + ldr r0, _080C13A8 @ =gTVNameRaterTextGroup lsls r1, r7, 2 adds r1, r0 ldr r0, [r1] @@ -7610,7 +7036,7 @@ _080C138A: .align 2, 0 _080C13A0: .4byte gStringVar1 _080C13A4: .4byte gStringVar2 -_080C13A8: .4byte gUnknown_083D1584 +_080C13A8: .4byte gTVNameRaterTextGroup thumb_func_end DoTVShowTheNameRaterShow thumb_func_start DoTVShowPokemonTodaySuccessfulCapture @@ -7854,7 +7280,7 @@ _080C15D4: .4byte gUnknown_020387E8 _080C15D8: bl TVShowDone _080C15DC: - ldr r0, _080C15F0 @ =gUnknown_083D14C0 + ldr r0, _080C15F0 @ =gTVPokemonTodayTextGroup lsls r1, r6, 2 adds r1, r0 ldr r0, [r1] @@ -7863,7 +7289,7 @@ _080C15DC: pop {r0} bx r0 .align 2, 0 -_080C15F0: .4byte gUnknown_083D14C0 +_080C15F0: .4byte gTVPokemonTodayTextGroup thumb_func_end DoTVShowPokemonTodaySuccessfulCapture thumb_func_start DoTVShowPokemonTodayFailedCapture @@ -8011,7 +7437,7 @@ _080C1734: .4byte gUnknown_020387E8 _080C1738: bl TVShowDone _080C173C: - ldr r0, _080C1750 @ =gUnknown_083D15D0 + ldr r0, _080C1750 @ =gTVPokemonTodayFailedCaptureTextGroup lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] @@ -8020,7 +7446,7 @@ _080C173C: pop {r0} bx r0 .align 2, 0 -_080C1750: .4byte gUnknown_083D15D0 +_080C1750: .4byte gTVPokemonTodayFailedCaptureTextGroup thumb_func_end DoTVShowPokemonTodayFailedCapture thumb_func_start DoTVShowPokemonFanClubLetter @@ -8223,7 +7649,7 @@ _080C193C: _080C1958: .4byte gStringVar4 _080C195C: .4byte gUnknown_020387E8 _080C1960: - ldr r0, _080C1974 @ =gUnknown_083D1470 + ldr r0, _080C1974 @ =gTVFanClubTextGroup lsls r1, r7, 2 adds r1, r0 ldr r0, [r1] @@ -8233,7 +7659,7 @@ _080C196C: pop {r0} bx r0 .align 2, 0 -_080C1974: .4byte gUnknown_083D1470 +_080C1974: .4byte gTVFanClubTextGroup thumb_func_end DoTVShowPokemonFanClubLetter thumb_func_start DoTVShowRecentHappenings @@ -8370,7 +7796,7 @@ _080C1ACC: _080C1AE8: .4byte gStringVar4 _080C1AEC: .4byte gUnknown_020387E8 _080C1AF0: - ldr r0, _080C1B04 @ =gUnknown_083D1490 + ldr r0, _080C1B04 @ =gTVRecentHappeningsTextGroup lsls r1, r6, 2 adds r1, r0 ldr r0, [r1] @@ -8380,7 +7806,7 @@ _080C1AFC: pop {r0} bx r0 .align 2, 0 -_080C1B04: .4byte gUnknown_083D1490 +_080C1B04: .4byte gTVRecentHappeningsTextGroup thumb_func_end DoTVShowRecentHappenings thumb_func_start DoTVShowPokemonFanClubOpinions @@ -8474,7 +7900,7 @@ _080C1BC0: bl sub_80EB3FC bl TVShowDone _080C1BD6: - ldr r0, _080C1BF0 @ =gUnknown_083D14A8 + ldr r0, _080C1BF0 @ =gTVFanClubOpinionsTextGroup lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] @@ -8485,7 +7911,7 @@ _080C1BD6: .align 2, 0 _080C1BE8: .4byte gStringVar1 _080C1BEC: .4byte gStringVar3 -_080C1BF0: .4byte gUnknown_083D14A8 +_080C1BF0: .4byte gTVFanClubOpinionsTextGroup thumb_func_end DoTVShowPokemonFanClubOpinions thumb_func_start nullsub_22 @@ -8493,48 +7919,7 @@ nullsub_22: @ 80C1BF4 bx lr thumb_func_end nullsub_22 - thumb_func_start DoTVShowPokemonNewsMassOutbreak -DoTVShowPokemonNewsMassOutbreak: @ 80C1BF8 - push {r4,lr} - ldr r0, _080C1C40 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _080C1C44 @ =gSaveBlock1 + 0x2738 - adds r4, r0 - ldr r0, _080C1C48 @ =gStringVar1 - ldrb r1, [r4, 0x10] - movs r2, 0 - bl sub_80FBFB4 - ldr r0, _080C1C4C @ =gStringVar2 - ldrh r2, [r4, 0xC] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C1C50 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - bl TVShowDone - bl StartMassOutbreak - ldr r1, _080C1C54 @ =gUnknown_083D14BC - ldr r0, _080C1C58 @ =gUnknown_020387E8 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl ShowFieldMessage - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C1C40: .4byte gSpecialVar_0x8004 -_080C1C44: .4byte gSaveBlock1 + 0x2738 -_080C1C48: .4byte gStringVar1 -_080C1C4C: .4byte gStringVar2 -_080C1C50: .4byte gSpeciesNames -_080C1C54: .4byte gUnknown_083D14BC -_080C1C58: .4byte gUnknown_020387E8 - thumb_func_end DoTVShowPokemonNewsMassOutbreak +.section .text_80C1C5C thumb_func_start DoTVShowInSearchOfTrainers DoTVShowInSearchOfTrainers: @ 80C1C5C @@ -8723,7 +8108,7 @@ _080C1DB6: strb r0, [r1] bl TakeTVShowInSearchOfTrainersOffTheAir _080C1DF8: - ldr r0, _080C1E34 @ =gUnknown_083D1600 + ldr r0, _080C1E34 @ =gTVGabbyAndTyTextGroup lsls r1, r7, 2 adds r1, r0 ldr r0, [r1] @@ -8742,7 +8127,7 @@ _080C1E24: .4byte gStringVar3 _080C1E28: .4byte 0x00002b12 _080C1E2C: .4byte gScriptResult _080C1E30: .4byte gUnknown_020387E8 -_080C1E34: .4byte gUnknown_083D1600 +_080C1E34: .4byte gTVGabbyAndTyTextGroup thumb_func_end DoTVShowInSearchOfTrainers thumb_func_start DoTVShowPokemonAngler @@ -8824,7 +8209,7 @@ _080C1EBC: bl sub_80BF088 bl TVShowDone _080C1EE4: - ldr r0, _080C1F04 @ =gUnknown_083D15EC + ldr r0, _080C1F04 @ =gTVFishingGuruAdviceTextGroup lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] @@ -8836,7 +8221,7 @@ _080C1EE4: _080C1EF8: .4byte gStringVar1 _080C1EFC: .4byte gStringVar2 _080C1F00: .4byte gSpeciesNames -_080C1F04: .4byte gUnknown_083D15EC +_080C1F04: .4byte gTVFishingGuruAdviceTextGroup thumb_func_end DoTVShowPokemonAngler thumb_func_start DoTVShowTheWorldOfMasters @@ -8920,7 +8305,7 @@ _080C1F8C: bl StringCopy bl TVShowDone _080C1FB6: - ldr r0, _080C1FD8 @ =gUnknown_083D15F4 + ldr r0, _080C1FD8 @ =gTVWorldOfMastersTextGroup lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] @@ -8933,45 +8318,8 @@ _080C1FC8: .4byte gStringVar1 _080C1FCC: .4byte gStringVar2 _080C1FD0: .4byte gStringVar3 _080C1FD4: .4byte gSpeciesNames -_080C1FD8: .4byte gUnknown_083D15F4 +_080C1FD8: .4byte gTVWorldOfMastersTextGroup thumb_func_end DoTVShowTheWorldOfMasters - thumb_func_start TVShowDone -TVShowDone: @ 80C1FDC - ldr r1, _080C2000 @ =gScriptResult - movs r0, 0x1 - strh r0, [r1] - ldr r1, _080C2004 @ =gUnknown_020387E8 - movs r0, 0 - strb r0, [r1] - ldr r2, _080C2008 @ =gSaveBlock1 - ldr r0, _080C200C @ =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _080C2010 @ =0x00002739 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - bx lr - .align 2, 0 -_080C2000: .4byte gScriptResult -_080C2004: .4byte gUnknown_020387E8 -_080C2008: .4byte gSaveBlock1 -_080C200C: .4byte gSpecialVar_0x8004 -_080C2010: .4byte 0x00002739 - thumb_func_end TVShowDone - - thumb_func_start sub_80C2014 -sub_80C2014: @ 80C2014 - ldr r1, _080C201C @ =gUnknown_020387E8 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_080C201C: .4byte gUnknown_020387E8 - thumb_func_end sub_80C2014 .align 2, 0 @ Don't pad with nop. diff --git a/asm/unknown_debug_menu.s b/asm/unknown_debug_menu.s new file mode 100644 index 000000000..138fdb876 --- /dev/null +++ b/asm/unknown_debug_menu.s @@ -0,0 +1,133 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start unref_sub_814A414 +unref_sub_814A414: @ 814A414 + push {lr} + sub sp, 0x8 + bl MenuZeroFillScreen + movs r0, 0 + movs r1, 0 + movs r2, 0x10 + movs r3, 0x12 + bl MenuDrawTextWindow + ldr r3, _0814A458 @ =gUnknown_0842C29C + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0x8 + bl PrintMenuItems + movs r0, 0 + str r0, [sp] + movs r0, 0xF + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x8 + bl InitMenu + ldr r1, _0814A45C @ =gCallback_03004AE8 + ldr r0, _0814A460 @ =sub_814A464 + str r0, [r1] + movs r0, 0 + add sp, 0x8 + pop {r1} + bx r1 + .align 2, 0 +_0814A458: .4byte gUnknown_0842C29C +_0814A45C: .4byte gCallback_03004AE8 +_0814A460: .4byte sub_814A464 + thumb_func_end unref_sub_814A414 + + thumb_func_start sub_814A464 +sub_814A464: @ 814A464 + push {lr} + bl ProcessMenuInput + lsls r0, 24 + lsrs r0, 24 + adds r2, r0, 0 + lsls r0, r2, 24 + asrs r1, r0, 24 + movs r0, 0x2 + negs r0, r0 + cmp r1, r0 + bne _0814A480 + movs r0, 0 + b _0814A4B2 +_0814A480: + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0814A4AC + ldr r0, _0814A4A0 @ =gUnknown_02024D1E + strb r2, [r0] + ldr r2, _0814A4A4 @ =gCallback_03004AE8 + ldr r0, _0814A4A8 @ =gUnknown_0842C29C + lsls r1, 3 + adds r0, 0x4 + adds r1, r0 + ldr r0, [r1] + str r0, [r2] + movs r0, 0 + b _0814A4B2 + .align 2, 0 +_0814A4A0: .4byte gUnknown_02024D1E +_0814A4A4: .4byte gCallback_03004AE8 +_0814A4A8: .4byte gUnknown_0842C29C +_0814A4AC: + bl CloseMenu + movs r0, 0x1 +_0814A4B2: + pop {r1} + bx r1 + thumb_func_end sub_814A464 + + thumb_func_start sub_814A4B8 +sub_814A4B8: @ 814A4B8 + push {r4,lr} + ldr r2, _0814A4FC @ =gSaveBlock2 + ldr r1, _0814A500 @ =0x00000556 + adds r0, r2, r1 + movs r1, 0x3 + strb r1, [r0] + ldr r3, _0814A504 @ =0x00000557 + adds r0, r2, r3 + strb r1, [r0] + ldr r3, _0814A508 @ =gUnknown_02024D1E + ldrb r0, [r3] + adds r0, 0x1 + ldr r4, _0814A50C @ =0x0000055c + adds r1, r2, r4 + strh r0, [r1] + ldrb r0, [r3] + adds r0, 0x1 + ldr r3, _0814A510 @ =0x0000055e + adds r1, r2, r3 + strh r0, [r1] + subs r4, 0x4 + adds r0, r2, r4 + movs r1, 0x1 + strh r1, [r0] + ldr r0, _0814A514 @ =0x0000055a + adds r2, r0 + strh r1, [r2] + bl CloseMenu + movs r0, 0x1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0814A4FC: .4byte gSaveBlock2 +_0814A500: .4byte 0x00000556 +_0814A504: .4byte 0x00000557 +_0814A508: .4byte gUnknown_02024D1E +_0814A50C: .4byte 0x0000055c +_0814A510: .4byte 0x0000055e +_0814A514: .4byte 0x0000055a + thumb_func_end sub_814A4B8 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/unknown_task.s b/asm/unknown_task.s new file mode 100644 index 000000000..39f1497ef --- /dev/null +++ b/asm/unknown_task.s @@ -0,0 +1,645 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start remove_some_task +remove_some_task: @ 8089578 + push {r4,lr} + ldr r4, _080895A8 @ =gUnknown_03004DC0 + movs r0, 0 + strb r0, [r4, 0x15] + ldr r1, _080895AC @ =0x040000b0 + ldrh r2, [r1, 0xA] + ldr r0, _080895B0 @ =0x0000c5ff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r2, [r1, 0xA] + ldr r0, _080895B4 @ =0x00007fff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r0, [r1, 0xA] + ldrb r0, [r4, 0x18] + cmp r0, 0xFF + beq _080895A2 + bl DestroyTask + movs r0, 0xFF + strb r0, [r4, 0x18] +_080895A2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080895A8: .4byte gUnknown_03004DC0 +_080895AC: .4byte 0x040000b0 +_080895B0: .4byte 0x0000c5ff +_080895B4: .4byte 0x00007fff + thumb_func_end remove_some_task + + thumb_func_start dp12_8087EA4 +dp12_8087EA4: @ 80895B8 + push {r4,lr} + sub sp, 0x4 + mov r0, sp + movs r4, 0 + strh r4, [r0] + ldr r1, _080895EC @ =gUnknown_03004DE0 + ldr r2, _080895F0 @ =0x01000780 + bl CpuSet + ldr r0, _080895F4 @ =gUnknown_03004DC0 + movs r1, 0 + str r1, [r0] + str r1, [r0, 0x4] + str r1, [r0, 0x8] + str r1, [r0, 0xC] + strb r4, [r0, 0x14] + strb r4, [r0, 0x15] + strb r4, [r0, 0x16] + strb r4, [r0, 0x17] + movs r1, 0xFF + strb r1, [r0, 0x18] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080895EC: .4byte gUnknown_03004DE0 +_080895F0: .4byte 0x01000780 +_080895F4: .4byte gUnknown_03004DC0 + thumb_func_end dp12_8087EA4 + + thumb_func_start sub_80895F8 +sub_80895F8: @ 80895F8 + push {lr} + sub sp, 0xC + str r0, [sp] + str r1, [sp, 0x4] + str r2, [sp, 0x8] + ldr r0, _0808961C @ =0xa2600001 + cmp r1, r0 + bne _0808962C + ldr r0, _08089620 @ =gUnknown_03004DC0 + ldr r1, _08089624 @ =gUnknown_03004DE2 + str r1, [r0] + movs r2, 0xF0 + lsls r2, 3 + adds r1, r2 + str r1, [r0, 0x4] + ldr r1, _08089628 @ =sub_80896F4 + b _0808963C + .align 2, 0 +_0808961C: .4byte 0xa2600001 +_08089620: .4byte gUnknown_03004DC0 +_08089624: .4byte gUnknown_03004DE2 +_08089628: .4byte sub_80896F4 +_0808962C: + ldr r0, _0808965C @ =gUnknown_03004DC0 + ldr r1, _08089660 @ =gUnknown_03004DE4 + str r1, [r0] + movs r2, 0xF0 + lsls r2, 3 + adds r1, r2 + str r1, [r0, 0x4] + ldr r1, _08089664 @ =sub_8089714 +_0808963C: + str r1, [r0, 0x10] + adds r1, r0, 0 + ldr r0, [sp, 0x4] + str r0, [r1, 0xC] + ldr r0, [sp] + str r0, [r1, 0x8] + mov r0, sp + ldrb r0, [r0, 0x8] + strb r0, [r1, 0x15] + mov r0, sp + ldrb r0, [r0, 0x9] + strb r0, [r1, 0x16] + strb r0, [r1, 0x17] + add sp, 0xC + pop {r0} + bx r0 + .align 2, 0 +_0808965C: .4byte gUnknown_03004DC0 +_08089660: .4byte gUnknown_03004DE4 +_08089664: .4byte sub_8089714 + thumb_func_end sub_80895F8 + + thumb_func_start sub_8089668 +sub_8089668: @ 8089668 + push {r4,lr} + ldr r4, _08089698 @ =gUnknown_03004DC0 + ldrb r0, [r4, 0x15] + cmp r0, 0 + beq _080896E2 + cmp r0, 0x3 + bne _080896AC + movs r0, 0 + strb r0, [r4, 0x15] + ldr r1, _0808969C @ =0x040000b0 + ldrh r2, [r1, 0xA] + ldr r0, _080896A0 @ =0x0000c5ff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r2, [r1, 0xA] + ldr r0, _080896A4 @ =0x00007fff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r0, [r1, 0xA] + ldr r1, _080896A8 @ =gUnknown_0202FFA4 + movs r0, 0x1 + strb r0, [r1] + b _080896E2 + .align 2, 0 +_08089698: .4byte gUnknown_03004DC0 +_0808969C: .4byte 0x040000b0 +_080896A0: .4byte 0x0000c5ff +_080896A4: .4byte 0x00007fff +_080896A8: .4byte gUnknown_0202FFA4 +_080896AC: + ldr r1, _080896E8 @ =0x040000b0 + ldrh r2, [r1, 0xA] + ldr r0, _080896EC @ =0x0000c5ff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r2, [r1, 0xA] + ldr r0, _080896F0 @ =0x00007fff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r0, [r1, 0xA] + ldrb r0, [r4, 0x14] + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + str r0, [r1] + ldr r0, [r4, 0x8] + str r0, [r1, 0x4] + ldr r0, [r4, 0xC] + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r0, [r4, 0x10] + bl _call_via_r0 + ldrb r0, [r4, 0x14] + movs r1, 0x1 + eors r0, r1 + strb r0, [r4, 0x14] +_080896E2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080896E8: .4byte 0x040000b0 +_080896EC: .4byte 0x0000c5ff +_080896F0: .4byte 0x00007fff + thumb_func_end sub_8089668 + + thumb_func_start sub_80896F4 +sub_80896F4: @ 80896F4 + ldr r0, _0808970C @ =gUnknown_03004DC0 + ldr r2, [r0, 0x8] + ldrb r1, [r0, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + ldr r1, _08089710 @ =gUnknown_03004DE0 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] + bx lr + .align 2, 0 +_0808970C: .4byte gUnknown_03004DC0 +_08089710: .4byte gUnknown_03004DE0 + thumb_func_end sub_80896F4 + + thumb_func_start sub_8089714 +sub_8089714: @ 8089714 + ldr r0, _0808972C @ =gUnknown_03004DC0 + ldr r2, [r0, 0x8] + ldrb r1, [r0, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + ldr r1, _08089730 @ =gUnknown_03004DE0 + adds r0, r1 + ldr r0, [r0] + str r0, [r2] + bx lr + .align 2, 0 +_0808972C: .4byte gUnknown_03004DC0 +_08089730: .4byte gUnknown_03004DE0 + thumb_func_end sub_8089714 + + thumb_func_start task00_for_dp12 +task00_for_dp12: @ 8089734 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + movs r6, 0 + ldr r0, _0808975C @ =gUnknown_0202FFA4 + ldrb r0, [r0] + cmp r0, 0 + beq _08089764 + mov r0, r12 + bl DestroyTask + ldr r1, _08089760 @ =gUnknown_03004DC0 + movs r0, 0xFF + strb r0, [r1, 0x18] + b _080898E4 + .align 2, 0 +_0808975C: .4byte gUnknown_0202FFA4 +_08089760: .4byte gUnknown_03004DC0 +_08089764: + ldr r1, _08089790 @ =gTasks + mov r0, r12 + lsls r2, r0, 2 + adds r0, r2, r0 + lsls r0, 3 + adds r3, r0, r1 + movs r4, 0x16 + ldrsh r0, [r3, r4] + mov r10, r1 + mov r9, r2 + cmp r0, 0 + beq _08089810 + movs r1, 0x14 + ldrsh r0, [r3, r1] + cmp r0, 0xE + bhi _08089810 + lsls r0, 2 + ldr r1, _08089794 @ =_08089798 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08089790: .4byte gTasks +_08089794: .4byte _08089798 + .align 2, 0 +_08089798: + .4byte _080897D4 + .4byte _08089810 + .4byte _080897DC + .4byte _08089810 + .4byte _080897E4 + .4byte _08089810 + .4byte _080897EC + .4byte _08089810 + .4byte _080897F4 + .4byte _08089810 + .4byte _080897FC + .4byte _08089810 + .4byte _08089804 + .4byte _08089810 + .4byte _0808980C +_080897D4: + ldr r0, _080897D8 @ =gUnknown_030042A4 + b _0808980E + .align 2, 0 +_080897D8: .4byte gUnknown_030042A4 +_080897DC: + ldr r0, _080897E0 @ =gUnknown_030042A0 + b _0808980E + .align 2, 0 +_080897E0: .4byte gUnknown_030042A0 +_080897E4: + ldr r0, _080897E8 @ =gUnknown_030042C0 + b _0808980E + .align 2, 0 +_080897E8: .4byte gUnknown_030042C0 +_080897EC: + ldr r0, _080897F0 @ =gUnknown_030041B4 + b _0808980E + .align 2, 0 +_080897F0: .4byte gUnknown_030041B4 +_080897F4: + ldr r0, _080897F8 @ =gUnknown_03004288 + b _0808980E + .align 2, 0 +_080897F8: .4byte gUnknown_03004288 +_080897FC: + ldr r0, _08089800 @ =gUnknown_03004280 + b _0808980E + .align 2, 0 +_08089800: .4byte gUnknown_03004280 +_08089804: + ldr r0, _08089808 @ =gUnknown_030041B0 + b _0808980E + .align 2, 0 +_08089808: .4byte gUnknown_030041B0 +_0808980C: + ldr r0, _08089870 @ =gUnknown_030041B8 +_0808980E: + ldrh r6, [r0] +_08089810: + mov r0, r9 + add r0, r12 + lsls r0, 3 + mov r2, r10 + adds r1, r0, r2 + ldrh r2, [r1, 0x10] + movs r3, 0x10 + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _0808987C + subs r0, r2, 0x1 + strh r0, [r1, 0x10] + movs r4, 0xE + ldrsh r0, [r1, r4] + movs r3, 0xA0 + lsls r3, 1 + adds r2, r0, r3 + movs r4, 0x8 + ldrsh r3, [r1, r4] + movs r4, 0xA + ldrsh r0, [r1, r4] + cmp r3, r0 + bge _080898E4 + ldr r5, _08089874 @ =gUnknown_03004DE0 + ldr r0, _08089878 @ =gUnknown_03004DC0 + mov r8, r0 + adds r7, r1, 0 + lsls r0, r2, 1 + adds r4, r0, r5 +_0808984A: + lsls r2, r3, 1 + mov r0, r8 + ldrb r1, [r0, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r5 + ldrh r0, [r4] + adds r0, r6 + strh r0, [r2] + adds r4, 0x2 + adds r3, 0x1 + movs r1, 0xA + ldrsh r0, [r7, r1] + cmp r3, r0 + blt _0808984A + b _080898E4 + .align 2, 0 +_08089870: .4byte gUnknown_030041B8 +_08089874: .4byte gUnknown_03004DE0 +_08089878: .4byte gUnknown_03004DC0 +_0808987C: + ldrh r0, [r1, 0x12] + strh r0, [r1, 0x10] + movs r2, 0xE + ldrsh r0, [r1, r2] + movs r3, 0xA0 + lsls r3, 1 + adds r2, r0, r3 + movs r4, 0x8 + ldrsh r3, [r1, r4] + movs r4, 0xA + ldrsh r0, [r1, r4] + cmp r3, r0 + bge _080898C4 + ldr r5, _080898F4 @ =gUnknown_03004DE0 + adds r7, r1, 0 + lsls r0, r2, 1 + adds r4, r0, r5 + ldr r0, _080898F8 @ =gUnknown_03004DC0 + mov r8, r0 +_080898A2: + lsls r2, r3, 1 + mov r0, r8 + ldrb r1, [r0, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r5 + ldrh r0, [r4] + adds r0, r6 + strh r0, [r2] + adds r4, 0x2 + adds r3, 0x1 + movs r1, 0xA + ldrsh r0, [r7, r1] + cmp r3, r0 + blt _080898A2 +_080898C4: + mov r0, r9 + add r0, r12 + lsls r0, 3 + mov r3, r10 + adds r2, r0, r3 + ldrh r0, [r2, 0xE] + adds r0, 0x1 + strh r0, [r2, 0xE] + lsls r0, 16 + asrs r0, 16 + movs r4, 0xC + ldrsh r1, [r2, r4] + cmp r0, r1 + bne _080898E4 + movs r0, 0 + strh r0, [r2, 0xE] +_080898E4: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080898F4: .4byte gUnknown_03004DE0 +_080898F8: .4byte gUnknown_03004DC0 + thumb_func_end task00_for_dp12 + + thumb_func_start sub_80898FC +sub_80898FC: @ 80898FC + push {r4-r7,lr} + adds r6, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + lsls r2, 24 + lsrs r4, r2, 24 + movs r1, 0 + movs r2, 0 + ldr r0, _08089940 @ =gSineTable + mov r12, r0 +_08089910: + lsls r0, r1, 1 + adds r3, r0, r6 + lsls r0, r2, 1 + add r0, r12 + movs r7, 0 + ldrsh r0, [r0, r7] + muls r0, r4 + cmp r0, 0 + bge _08089924 + adds r0, 0xFF +_08089924: + asrs r0, 8 + strh r0, [r3] + adds r0, r2, r5 + lsls r0, 24 + lsrs r2, r0, 24 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0xFF + bls _08089910 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08089940: .4byte gSineTable + thumb_func_end sub_80898FC + + thumb_func_start sub_8089944 +sub_8089944: @ 8089944 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + adds r5, r0, 0 + str r1, [sp, 0x10] + ldr r0, [sp, 0x40] + mov r8, r0 + ldr r1, [sp, 0x44] + mov r9, r1 + ldr r0, [sp, 0x48] + mov r10, r0 + lsls r5, 24 + lsrs r5, 24 + ldr r1, [sp, 0x10] + lsls r1, 24 + str r1, [sp, 0x14] + lsrs r0, r1, 24 + str r0, [sp, 0xC] + lsls r1, r2, 24 + lsrs r1, 24 + str r1, [sp, 0x18] + lsls r2, r3, 24 + lsrs r2, 24 + str r2, [sp, 0x1C] + mov r1, r8 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + mov r3, r9 + lsls r3, 24 + lsrs r3, 24 + mov r9, r3 + mov r0, r10 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + bl dp12_8087EA4 + ldr r0, _08089A50 @ =REG_BG0HOFS + add r0, r9 + str r0, [sp] + ldr r0, _08089A54 @ =0xa2600001 + str r0, [sp, 0x4] + mov r1, sp + movs r0, 0x1 + strb r0, [r1, 0x8] + mov r0, sp + movs r1, 0 + strb r1, [r0, 0x9] + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl sub_80895F8 + ldr r0, _08089A58 @ =task00_for_dp12 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _08089A5C @ =gTasks + lsls r4, r7, 2 + adds r4, r7 + lsls r4, 3 + adds r4, r0 + strh r5, [r4, 0x8] + mov r3, sp + ldrh r3, [r3, 0xC] + strh r3, [r4, 0xA] + movs r0, 0x80 + lsls r0, 1 + ldr r1, [sp, 0x18] + bl __divsi3 + strh r0, [r4, 0xC] + movs r0, 0 + strh r0, [r4, 0xE] + mov r1, r8 + strh r1, [r4, 0x10] + strh r1, [r4, 0x12] + mov r3, r9 + strh r3, [r4, 0x14] + mov r0, r10 + strh r0, [r4, 0x16] + ldr r0, _08089A60 @ =gUnknown_03004DC0 + strb r7, [r0, 0x18] + ldr r0, _08089A64 @ =gUnknown_0202FFA4 + movs r1, 0 + strb r1, [r0] + ldr r4, _08089A68 @ =gUnknown_03005060 + ldr r3, [sp, 0xC] + subs r6, r3, r5 + lsls r3, r6, 24 + lsrs r3, 24 + adds r0, r4, 0 + ldr r1, [sp, 0x18] + ldr r2, [sp, 0x1C] + bl sub_80898FC + ldr r0, [sp, 0xC] + cmp r5, r0 + bge _08089A3E + ldr r1, _08089A6C @ =0xfffffd80 + adds r2, r4, r1 + lsls r1, r5, 1 + movs r3, 0xF0 + lsls r3, 3 + adds r0, r1, r3 + adds r3, r0, r2 + adds r1, r2 + adds r2, r4, 0 + adds r5, r6, 0 +_08089A2A: + ldrh r0, [r2] + strh r0, [r1] + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + adds r1, 0x2 + subs r5, 0x1 + cmp r5, 0 + bne _08089A2A +_08089A3E: + adds r0, r7, 0 + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08089A50: .4byte REG_BG0HOFS +_08089A54: .4byte 0xa2600001 +_08089A58: .4byte task00_for_dp12 +_08089A5C: .4byte gTasks +_08089A60: .4byte gUnknown_03004DC0 +_08089A64: .4byte gUnknown_0202FFA4 +_08089A68: .4byte gUnknown_03005060 +_08089A6C: .4byte 0xfffffd80 + thumb_func_end sub_8089944 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_8040EB4.s b/asm/util.s index cf7780f78..f204eac43 100644 --- a/asm/rom_8040EB4.s +++ b/asm/util.s @@ -5,8 +5,8 @@ .text - thumb_func_start object_new_hidden_with_callback -object_new_hidden_with_callback: @ 8040EB4 + thumb_func_start CreateInvisibleSpriteWithCallback +CreateInvisibleSpriteWithCallback: @ 8040EB4 push {r4-r6,lr} adds r6, r0, 0 ldr r0, _08040EE8 @ =gSpriteTemplate_82087AC @@ -35,7 +35,7 @@ object_new_hidden_with_callback: @ 8040EB4 .align 2, 0 _08040EE8: .4byte gSpriteTemplate_82087AC _08040EEC: .4byte gSprites - thumb_func_end object_new_hidden_with_callback + thumb_func_end CreateInvisibleSpriteWithCallback thumb_func_start StoreWordInTwoHalfwords StoreWordInTwoHalfwords: @ 8040EF0 @@ -56,8 +56,8 @@ LoadWordFromTwoHalfwords: @ 8040EF8 bx lr thumb_func_end LoadWordFromTwoHalfwords - thumb_func_start sub_8040F08 -sub_8040F08: @ 8040F08 + thumb_func_start SetBgAffineStruct +SetBgAffineStruct: @ 8040F08 push {r4-r7,lr} mov r7, r8 push {r7} @@ -79,10 +79,10 @@ sub_8040F08: @ 8040F08 pop {r4-r7} pop {r0} bx r0 - thumb_func_end sub_8040F08 + thumb_func_end SetBgAffineStruct - thumb_func_start sub_8040F34 -sub_8040F34: @ 8040F34 + thumb_func_start DoBgAffineSet +DoBgAffineSet: @ 8040F34 push {r4-r6,lr} mov r6, r8 push {r6} @@ -107,7 +107,7 @@ sub_8040F34: @ 8040F34 str r5, [sp, 0x8] str r6, [sp, 0xC] add r0, sp, 0x10 - bl sub_8040F08 + bl SetBgAffineStruct add r0, sp, 0x10 mov r1, r8 movs r2, 0x1 @@ -118,10 +118,10 @@ sub_8040F34: @ 8040F34 pop {r4-r6} pop {r0} bx r0 - thumb_func_end sub_8040F34 + thumb_func_end DoBgAffineSet - thumb_func_start sub_8040F80 -sub_8040F80: @ 8040F80 + thumb_func_start CopySpriteTiles +CopySpriteTiles: @ 8040F80 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -357,10 +357,10 @@ _08041136: bx r0 .align 2, 0 _08041148: .4byte 0x84000008 - thumb_func_end sub_8040F80 + thumb_func_end CopySpriteTiles - thumb_func_start sub_804114C -sub_804114C: @ 804114C + thumb_func_start CountTrailingZeroBits +CountTrailingZeroBits: @ 804114C push {lr} adds r2, r0, 0 movs r1, 0 @@ -383,10 +383,10 @@ _08041160: _0804116E: pop {r1} bx r1 - thumb_func_end sub_804114C + thumb_func_end CountTrailingZeroBits - thumb_func_start sub_8041174 -sub_8041174: @ 8041174 + thumb_func_start CalcCRC16 +CalcCRC16: @ 8041174 push {r4-r7,lr} adds r7, r0, 0 adds r4, r1, 0 @@ -435,10 +435,10 @@ _080411C0: pop {r4-r7} pop {r1} bx r1 - thumb_func_end sub_8041174 + thumb_func_end CalcCRC16 - thumb_func_start unref_sub_80411CC -unref_sub_80411CC: @ 80411CC + thumb_func_start CalcCRC16WithTable +CalcCRC16WithTable: @ 80411CC push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 @@ -473,6 +473,6 @@ _080411FA: .align 2, 0 _08041208: .4byte 0x00001121 _0804120C: .4byte gCrc16Table - thumb_func_end unref_sub_80411CC + thumb_func_end CalcCRC16WithTable .align 2, 0 @ Don't pad with nop. diff --git a/asm/weather.s b/asm/weather.s index fbcc61b6f..01190c75e 100644 --- a/asm/weather.s +++ b/asm/weather.s @@ -1,858 +1,10 @@ .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" .include "asm/macros.inc" .syntax unified .text - thumb_func_start sub_807C828 -sub_807C828: @ 807C828 - push {r4-r6,lr} - ldr r0, _0807C8EC @ =sub_807CA34 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _0807C8E4 - movs r0, 0x90 - lsls r0, 5 - bl AllocSpritePalette - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _0807C8F0 @ =gUnknown_083970E8 - lsls r1, r5, 5 - ldr r2, _0807C8F4 @ =gPlttBufferUnfaded + 0x200 - adds r1, r2 - ldr r2, _0807C8F8 @ =REG_BG0CNT - bl CpuSet - bl sub_807CB10 - ldr r4, _0807C8FC @ =gUnknown_0202F7E8 - ldr r1, _0807C900 @ =0x000006d5 - adds r0, r4, r1 - strb r5, [r0] - ldr r0, _0807C904 @ =0x00001201 - bl AllocSpritePalette - ldr r2, _0807C908 @ =0x000006d4 - adds r1, r4, r2 - strb r0, [r1] - ldr r1, _0807C90C @ =0x000006da - adds r0, r4, r1 - strb r6, [r0] - adds r2, 0x4 - adds r0, r4, r2 - strb r6, [r0] - adds r1, 0x4 - adds r0, r4, r1 - strb r6, [r0] - adds r2, 0xC - adds r0, r4, r2 - strb r6, [r0] - adds r1, 0x22 - adds r0, r4, r1 - strb r6, [r0] - adds r2, 0x17 - adds r0, r4, r2 - strb r6, [r0] - adds r1, 0x24 - adds r0, r4, r1 - strb r6, [r0] - adds r2, 0x1B - adds r0, r4, r2 - strb r6, [r0] - subs r1, 0xD - adds r0, r4, r1 - strb r6, [r0] - adds r2, 0x18 - adds r0, r4, r2 - strb r6, [r0] - subs r1, 0x1D - adds r0, r4, r1 - strb r6, [r0] - movs r0, 0x10 - movs r1, 0 - bl sub_807DB64 - movs r2, 0xDA - lsls r2, 3 - adds r0, r4, r2 - strb r6, [r0] - ldr r0, _0807C910 @ =0x000006c6 - adds r1, r4, r0 - movs r0, 0x3 - strb r0, [r1] - movs r1, 0xD9 - lsls r1, 3 - adds r0, r4, r1 - strb r6, [r0] - adds r2, 0x3 - adds r1, r4, r2 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _0807C914 @ =sub_807C9E4 - movs r1, 0x50 - bl CreateTask - ldr r1, _0807C918 @ =0x000006c9 - adds r4, r1 - strb r0, [r4] -_0807C8E4: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0807C8EC: .4byte sub_807CA34 -_0807C8F0: .4byte gUnknown_083970E8 -_0807C8F4: .4byte gPlttBufferUnfaded + 0x200 -_0807C8F8: .4byte REG_BG0CNT -_0807C8FC: .4byte gUnknown_0202F7E8 -_0807C900: .4byte 0x000006d5 -_0807C904: .4byte 0x00001201 -_0807C908: .4byte 0x000006d4 -_0807C90C: .4byte 0x000006da -_0807C910: .4byte 0x000006c6 -_0807C914: .4byte sub_807C9E4 -_0807C918: .4byte 0x000006c9 - thumb_func_end sub_807C828 - - thumb_func_start DoWeatherEffect -DoWeatherEffect: @ 807C91C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - beq _0807C932 - cmp r4, 0x5 - beq _0807C932 - cmp r4, 0xD - beq _0807C932 - bl PlayRainSoundEffect -_0807C932: - ldr r1, _0807C974 @ =gUnknown_0202F7E8 - ldr r2, _0807C978 @ =0x000006d1 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, r4 - beq _0807C956 - movs r3, 0xDA - lsls r3, 3 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r4 - bne _0807C956 - ldr r0, _0807C97C @ =gUnknown_08396FC8 - lsls r1, r4, 4 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 -_0807C956: - ldr r1, _0807C974 @ =gUnknown_0202F7E8 - ldr r2, _0807C980 @ =0x000006d3 - adds r0, r1, r2 - movs r2, 0 - strb r2, [r0] - ldr r3, _0807C978 @ =0x000006d1 - adds r0, r1, r3 - strb r4, [r0] - ldr r0, _0807C984 @ =0x000006ce - adds r1, r0 - strh r2, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807C974: .4byte gUnknown_0202F7E8 -_0807C978: .4byte 0x000006d1 -_0807C97C: .4byte gUnknown_08396FC8 -_0807C980: .4byte 0x000006d3 -_0807C984: .4byte 0x000006ce - thumb_func_end DoWeatherEffect - - thumb_func_start sub_807C988 -sub_807C988: @ 807C988 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl PlayRainSoundEffect - ldr r0, _0807C9AC @ =gUnknown_0202F7E8 - movs r2, 0xDA - lsls r2, 3 - adds r1, r0, r2 - strb r4, [r1] - ldr r1, _0807C9B0 @ =0x000006d1 - adds r0, r1 - strb r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807C9AC: .4byte gUnknown_0202F7E8 -_0807C9B0: .4byte 0x000006d1 - thumb_func_end sub_807C988 - - thumb_func_start sub_807C9B4 -sub_807C9B4: @ 807C9B4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl PlayRainSoundEffect - ldr r1, _0807C9E0 @ =gUnknown_0202F7E8 - movs r2, 0xDA - lsls r2, 3 - adds r0, r1, r2 - strb r4, [r0] - adds r2, 0x1 - adds r0, r1, r2 - strb r4, [r0] - movs r0, 0xD9 - lsls r0, 3 - adds r1, r0 - movs r0, 0x1 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807C9E0: .4byte gUnknown_0202F7E8 - thumb_func_end sub_807C9B4 - - thumb_func_start sub_807C9E4 -sub_807C9E4: @ 807C9E4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r2, _0807CA24 @ =gUnknown_0202F7E8 - movs r1, 0xD9 - lsls r1, 3 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0807CA1C - ldr r1, _0807CA28 @ =gUnknown_08396FC8 - movs r3, 0xDA - lsls r3, 3 - adds r0, r2, r3 - ldrb r0, [r0] - lsls r0, 4 - adds r1, 0x8 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldr r1, _0807CA2C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0807CA30 @ =sub_807CA34 - str r1, [r0] -_0807CA1C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807CA24: .4byte gUnknown_0202F7E8 -_0807CA28: .4byte gUnknown_08396FC8 -_0807CA2C: .4byte gTasks -_0807CA30: .4byte sub_807CA34 - thumb_func_end sub_807C9E4 - - thumb_func_start sub_807CA34 -sub_807CA34: @ 807CA34 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r5, _0807CA90 @ =gUnknown_0202F7E8 - movs r0, 0xDA - lsls r0, 3 - adds r6, r5, r0 - ldr r1, _0807CA94 @ =0x000006d1 - adds r7, r5, r1 - ldrb r0, [r6] - ldrb r2, [r7] - cmp r0, r2 - beq _0807CAA8 - ldr r0, _0807CA98 @ =gUnknown_08396FC8 - mov r8, r0 - ldrb r0, [r6] - lsls r0, 4 - mov r1, r8 - adds r1, 0xC - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _0807CAB8 - ldrb r0, [r7] - lsls r0, 4 - add r0, r8 - ldr r0, [r0] - bl _call_via_r0 - ldr r1, _0807CA9C @ =0x000006c3 - adds r0, r5, r1 - strb r4, [r0] - ldr r2, _0807CAA0 @ =0x000006c6 - adds r0, r5, r2 - strb r4, [r0] - ldrb r0, [r7] - strb r0, [r6] - ldr r0, _0807CAA4 @ =0x000006d3 - adds r1, r5, r0 - movs r0, 0x1 - strb r0, [r1] - b _0807CAB8 - .align 2, 0 -_0807CA90: .4byte gUnknown_0202F7E8 -_0807CA94: .4byte 0x000006d1 -_0807CA98: .4byte gUnknown_08396FC8 -_0807CA9C: .4byte 0x000006c3 -_0807CAA0: .4byte 0x000006c6 -_0807CAA4: .4byte 0x000006d3 -_0807CAA8: - ldr r0, _0807CAD8 @ =gUnknown_08396FC8 - ldrb r1, [r6] - lsls r1, 4 - adds r0, 0x4 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 -_0807CAB8: - ldr r1, _0807CADC @ =gUnknown_083970B8 - ldr r0, _0807CAE0 @ =gUnknown_0202F7E8 - ldr r2, _0807CAE4 @ =0x000006c6 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0807CAD8: .4byte gUnknown_08396FC8 -_0807CADC: .4byte gUnknown_083970B8 -_0807CAE0: .4byte gUnknown_0202F7E8 -_0807CAE4: .4byte 0x000006c6 - thumb_func_end sub_807CA34 - - thumb_func_start sub_807CAE8 -sub_807CAE8: @ 807CAE8 - ldr r0, _0807CAFC @ =gUnknown_0202F7E8 - ldr r2, _0807CB00 @ =0x000006c1 - adds r1, r0, r2 - movs r2, 0 - strb r2, [r1] - ldr r1, _0807CB04 @ =0x000006c2 - adds r0, r1 - strb r2, [r0] - bx lr - .align 2, 0 -_0807CAFC: .4byte gUnknown_0202F7E8 -_0807CB00: .4byte 0x000006c1 -_0807CB04: .4byte 0x000006c2 - thumb_func_end sub_807CAE8 - - thumb_func_start nullsub_38 -nullsub_38: @ 807CB08 - bx lr - thumb_func_end nullsub_38 - - thumb_func_start sub_807CB0C -sub_807CB0C: @ 807CB0C - movs r0, 0 - bx lr - thumb_func_end sub_807CB0C - - thumb_func_start sub_807CB10 -sub_807CB10: @ 807CB10 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r1, _0807CB50 @ =gUnknown_030006DC - ldr r0, _0807CB54 @ =gUnknown_083970C8 - str r0, [r1] - movs r0, 0 - mov r12, r0 - ldr r1, _0807CB58 @ =gUnknown_0202FC48 - mov r10, r1 -_0807CB28: - mov r7, r10 - mov r0, r12 - cmp r0, 0 - bne _0807CB34 - ldr r1, _0807CB5C @ =0xfffffda0 - adds r7, r1 -_0807CB34: - movs r5, 0 - movs r0, 0x1 - add r0, r12 - mov r9, r0 -_0807CB3C: - lsls r1, r5, 8 - lsls r0, r5, 24 - lsrs r2, r0, 16 - mov r0, r12 - cmp r0, 0 - bne _0807CB60 - adds r0, r1, 0 - lsls r0, 12 - lsrs r4, r0, 16 - b _0807CB62 - .align 2, 0 -_0807CB50: .4byte gUnknown_030006DC -_0807CB54: .4byte gUnknown_083970C8 -_0807CB58: .4byte gUnknown_0202FC48 -_0807CB5C: .4byte 0xfffffda0 -_0807CB60: - movs r4, 0 -_0807CB62: - movs r3, 0 - adds r1, r5, 0x1 - mov r8, r1 -_0807CB68: - subs r1, r2, r4 - lsls r1, 16 - lsrs r2, r1, 16 - lsls r0, r3, 5 - adds r0, r7 - adds r0, r5 - lsrs r1, 24 - strb r1, [r0] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x2 - bls _0807CB68 - adds r6, r2, 0 - movs r0, 0xF8 - lsls r0, 5 - subs r0, r2 - cmp r0, 0 - bge _0807CB90 - adds r0, 0xF -_0807CB90: - lsls r0, 12 - lsrs r4, r0, 16 - cmp r5, 0xB - bhi _0807CBDA - cmp r3, 0x12 - bhi _0807CC00 -_0807CB9C: - adds r0, r2, r4 - lsls r0, 16 - lsrs r2, r0, 16 - subs r0, r2, r6 - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - ble _0807CBB8 - lsrs r0, 31 - adds r0, r1, r0 - asrs r0, 1 - subs r0, r2, r0 - lsls r0, 16 - lsrs r2, r0, 16 -_0807CBB8: - lsls r0, r3, 5 - adds r0, r7 - adds r1, r0, r5 - lsrs r0, r2, 8 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1F - bls _0807CBCE - movs r0, 0x1F - strb r0, [r1] -_0807CBCE: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x12 - bls _0807CB9C - b _0807CC00 -_0807CBDA: - cmp r3, 0x12 - bhi _0807CC00 - movs r6, 0x1F -_0807CBE0: - adds r1, r2, r4 - lsls r1, 16 - lsrs r2, r1, 16 - lsls r0, r3, 5 - adds r0, r7 - adds r0, r5 - lsrs r1, 24 - strb r1, [r0] - cmp r1, 0x1F - bls _0807CBF6 - strb r6, [r0] -_0807CBF6: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x12 - bls _0807CBE0 -_0807CC00: - mov r1, r8 - lsls r0, r1, 16 - lsrs r5, r0, 16 - cmp r5, 0x1F - bls _0807CB3C - mov r1, r9 - lsls r0, r1, 16 - lsrs r0, 16 - mov r12, r0 - cmp r0, 0x1 - bls _0807CB28 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_807CB10 - - thumb_func_start sub_807CC24 -sub_807CC24: @ 807CC24 - push {r4-r7,lr} - ldr r0, _0807CC50 @ =gUnknown_0202F7E8 - movs r1, 0xD8 - lsls r1, 3 - adds r4, r0, r1 - ldr r2, _0807CC54 @ =0x000006c1 - adds r1, r0, r2 - ldrb r7, [r4] - mov r12, r7 - movs r6, 0 - ldrsb r6, [r4, r6] - movs r5, 0 - ldrsb r5, [r1, r5] - adds r3, r0, 0 - cmp r6, r5 - bne _0807CC5C - ldr r0, _0807CC58 @ =0x000006c6 - adds r1, r3, r0 - movs r0, 0x3 - strb r0, [r1] - b _0807CCA4 - .align 2, 0 -_0807CC50: .4byte gUnknown_0202F7E8 -_0807CC54: .4byte 0x000006c1 -_0807CC58: .4byte 0x000006c6 -_0807CC5C: - ldr r1, _0807CC84 @ =0x000006c3 - adds r2, r3, r1 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - ldr r7, _0807CC88 @ =0x000006c2 - adds r1, r3, r7 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _0807CCA4 - movs r0, 0 - strb r0, [r2] - mov r0, r12 - cmp r6, r5 - bge _0807CC8C - adds r0, 0x1 - b _0807CC90 - .align 2, 0 -_0807CC84: .4byte 0x000006c3 -_0807CC88: .4byte 0x000006c2 -_0807CC8C: - mov r0, r12 - subs r0, 0x1 -_0807CC90: - strb r0, [r4] - movs r1, 0xD8 - lsls r1, 3 - adds r0, r3, r1 - movs r2, 0 - ldrsb r2, [r0, r2] - movs r0, 0 - movs r1, 0x20 - bl sub_807CEBC -_0807CCA4: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_807CC24 - - thumb_func_start sub_807CCAC -sub_807CCAC: @ 807CCAC - push {lr} - ldr r2, _0807CCE4 @ =gUnknown_0202F7E8 - ldr r0, _0807CCE8 @ =0x000006cb - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0807CCCA - ldr r3, _0807CCEC @ =0x000006ca - adds r1, r2, r3 - movs r0, 0 - strb r0, [r1] -_0807CCCA: - movs r1, 0xDA - lsls r1, 3 - adds r0, r2, r1 - ldrb r0, [r0] - subs r0, 0x3 - cmp r0, 0xA - bhi _0807CD94 - lsls r0, 2 - ldr r1, _0807CCF0 @ =_0807CCF4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807CCE4: .4byte gUnknown_0202F7E8 -_0807CCE8: .4byte 0x000006cb -_0807CCEC: .4byte 0x000006ca -_0807CCF0: .4byte _0807CCF4 - .align 2, 0 -_0807CCF4: - .4byte _0807CD20 - .4byte _0807CD20 - .4byte _0807CD20 - .4byte _0807CD6C - .4byte _0807CD94 - .4byte _0807CD94 - .4byte _0807CD94 - .4byte _0807CD94 - .4byte _0807CD20 - .4byte _0807CD48 - .4byte _0807CD20 -_0807CD20: - bl sub_807CDC4 - lsls r0, 24 - cmp r0, 0 - bne _0807CDB4 - ldr r0, _0807CD40 @ =gUnknown_0202F7E8 - movs r2, 0xD8 - lsls r2, 3 - adds r1, r0, r2 - movs r2, 0x3 - strb r2, [r1] - ldr r3, _0807CD44 @ =0x000006c6 - adds r0, r3 - strb r2, [r0] - b _0807CDB4 - .align 2, 0 -_0807CD40: .4byte gUnknown_0202F7E8 -_0807CD44: .4byte 0x000006c6 -_0807CD48: - bl sub_807CE24 - lsls r0, 24 - cmp r0, 0 - bne _0807CDB4 - ldr r1, _0807CD64 @ =gUnknown_0202F7E8 - movs r0, 0xD8 - lsls r0, 3 - adds r2, r1, r0 - movs r0, 0xFA - strb r0, [r2] - ldr r2, _0807CD68 @ =0x000006c6 - adds r1, r2 - b _0807CDB0 - .align 2, 0 -_0807CD64: .4byte gUnknown_0202F7E8 -_0807CD68: .4byte 0x000006c6 -_0807CD6C: - bl sub_807CE7C - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _0807CDB4 - ldr r0, _0807CD8C @ =gUnknown_0202F7E8 - movs r3, 0xD8 - lsls r3, 3 - adds r1, r0, r3 - strb r2, [r1] - ldr r1, _0807CD90 @ =0x000006c6 - adds r0, r1 - movs r1, 0x3 - strb r1, [r0] - b _0807CDB4 - .align 2, 0 -_0807CD8C: .4byte gUnknown_0202F7E8 -_0807CD90: .4byte 0x000006c6 -_0807CD94: - ldr r0, _0807CDB8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0807CDB4 - ldr r3, _0807CDBC @ =0x000006c1 - adds r0, r2, r3 - ldrb r1, [r0] - subs r3, 0x1 - adds r0, r2, r3 - strb r1, [r0] - ldr r0, _0807CDC0 @ =0x000006c6 - adds r1, r2, r0 -_0807CDB0: - movs r0, 0x3 - strb r0, [r1] -_0807CDB4: - pop {r0} - bx r0 - .align 2, 0 -_0807CDB8: .4byte gPaletteFade -_0807CDBC: .4byte 0x000006c1 -_0807CDC0: .4byte 0x000006c6 - thumb_func_end sub_807CCAC - - thumb_func_start sub_807CDC4 -sub_807CDC4: @ 807CDC4 - push {r4,lr} - sub sp, 0x4 - ldr r2, _0807CE00 @ =gUnknown_0202F7E8 - ldr r0, _0807CE04 @ =0x000006c7 - adds r4, r2, r0 - ldrb r0, [r4] - cmp r0, 0x10 - beq _0807CE1A - adds r1, r0, 0x1 - strb r1, [r4] - lsls r0, r1, 24 - lsrs r0, 24 - cmp r0, 0xF - bhi _0807CE0C - movs r3, 0x10 - subs r3, r1 - lsls r3, 24 - lsrs r3, 24 - ldr r1, _0807CE08 @ =0x000006c4 - adds r0, r2, r1 - ldrh r0, [r0] - str r0, [sp] - movs r0, 0 - movs r1, 0x20 - movs r2, 0x3 - bl sub_807D1BC - movs r0, 0x1 - b _0807CE1C - .align 2, 0 -_0807CE00: .4byte gUnknown_0202F7E8 -_0807CE04: .4byte 0x000006c7 -_0807CE08: .4byte 0x000006c4 -_0807CE0C: - movs r0, 0 - movs r1, 0x20 - movs r2, 0x3 - bl sub_807CEBC - movs r0, 0x10 - strb r0, [r4] -_0807CE1A: - movs r0, 0 -_0807CE1C: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_807CDC4 - - thumb_func_start sub_807CE24 -sub_807CE24: @ 807CE24 - push {r4,lr} - ldr r2, _0807CE58 @ =gUnknown_0202F7E8 - ldr r0, _0807CE5C @ =0x000006c7 - adds r4, r2, r0 - ldrb r0, [r4] - cmp r0, 0x10 - beq _0807CE74 - adds r3, r0, 0x1 - strb r3, [r4] - lsls r0, r3, 24 - lsrs r0, 24 - cmp r0, 0xF - bhi _0807CE64 - movs r0, 0x6 - negs r0, r0 - movs r1, 0x10 - subs r1, r3 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _0807CE60 @ =0x000006c4 - adds r2, r3 - ldrh r2, [r2] - bl sub_807D304 - movs r0, 0x1 - b _0807CE76 - .align 2, 0 -_0807CE58: .4byte gUnknown_0202F7E8 -_0807CE5C: .4byte 0x000006c7 -_0807CE60: .4byte 0x000006c4 -_0807CE64: - movs r2, 0x6 - negs r2, r2 - movs r0, 0 - movs r1, 0x20 - bl sub_807CEBC - movs r0, 0x10 - strb r0, [r4] -_0807CE74: - movs r0, 0 -_0807CE76: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_807CE24 - - thumb_func_start sub_807CE7C -sub_807CE7C: @ 807CE7C - push {lr} - ldr r2, _0807CEA4 @ =gUnknown_0202F7E8 - ldr r1, _0807CEA8 @ =0x000006c7 - adds r0, r2, r1 - ldrb r1, [r0] - cmp r1, 0x10 - beq _0807CEB0 - adds r1, 0x1 - strb r1, [r0] - movs r0, 0x10 - subs r0, r1 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _0807CEAC @ =0x000006c4 - adds r1, r2, r3 - ldrh r1, [r1] - bl sub_807D424 - movs r0, 0x1 - b _0807CEB2 - .align 2, 0 -_0807CEA4: .4byte gUnknown_0202F7E8 -_0807CEA8: .4byte 0x000006c7 -_0807CEAC: .4byte 0x000006c4 -_0807CEB0: - movs r0, 0 -_0807CEB2: - pop {r1} - bx r1 - thumb_func_end sub_807CE7C - - thumb_func_start nullsub_39 -nullsub_39: @ 807CEB8 - bx lr - thumb_func_end nullsub_39 - thumb_func_start sub_807CEBC sub_807CEBC: @ 807CEBC push {r4-r7,lr} @@ -2728,43 +1880,43 @@ _0807DCD0: .4byte _0807DD40 _0807DCF8: movs r0, 0x1 - bl sub_808070C + bl SetWeather b _0807DD46 _0807DD00: movs r0, 0x2 - bl sub_808070C + bl SetWeather b _0807DD46 _0807DD08: movs r0, 0x3 - bl sub_808070C + bl SetWeather b _0807DD46 _0807DD10: movs r0, 0x4 - bl sub_808070C + bl SetWeather b _0807DD46 _0807DD18: movs r0, 0x5 - bl sub_808070C + bl SetWeather b _0807DD46 _0807DD20: movs r0, 0x6 - bl sub_808070C + bl SetWeather b _0807DD46 _0807DD28: movs r0, 0x9 - bl sub_808070C + bl SetWeather b _0807DD46 _0807DD30: movs r0, 0x7 - bl sub_808070C + bl SetWeather b _0807DD46 _0807DD38: movs r0, 0x8 - bl sub_808070C + bl SetWeather b _0807DD46 _0807DD40: movs r0, 0xB - bl sub_808070C + bl SetWeather _0807DD46: pop {r0} bx r0 @@ -8235,8 +7387,8 @@ _08080704: .4byte gSaveBlock1 _08080708: .4byte gMapHeader thumb_func_end sub_80806E4 - thumb_func_start sub_808070C -sub_808070C: @ 808070C + thumb_func_start SetWeather +SetWeather: @ 808070C push {lr} bl SetSav1Weather bl GetSav1Weather @@ -8245,10 +7397,10 @@ sub_808070C: @ 808070C bl DoWeatherEffect pop {r0} bx r0 - thumb_func_end sub_808070C + thumb_func_end SetWeather - thumb_func_start sub_8080724 -sub_8080724: @ 8080724 + thumb_func_start SetWeather_Unused +SetWeather_Unused: @ 8080724 push {lr} bl SetSav1Weather bl GetSav1Weather @@ -8257,10 +7409,10 @@ sub_8080724: @ 8080724 bl sub_807C988 pop {r0} bx r0 - thumb_func_end sub_8080724 + thumb_func_end SetWeather_Unused - thumb_func_start sub_808073C -sub_808073C: @ 808073C + thumb_func_start DoCurrentWeather +DoCurrentWeather: @ 808073C push {lr} bl GetSav1Weather lsls r0, 24 @@ -8268,7 +7420,7 @@ sub_808073C: @ 808073C bl DoWeatherEffect pop {r0} bx r0 - thumb_func_end sub_808073C + thumb_func_end DoCurrentWeather thumb_func_start sub_8080750 sub_8080750: @ 8080750 @@ -8418,7 +7570,7 @@ UpdateRainCounter: @ 8080854 bne _0808086E _08080868: movs r0, 0x28 - bl sav12_xor_increment + bl IncrementGameStat _0808086E: pop {r0} bx r0 |