.include "constants/gba_constants.inc" .include "constants/species_constants.inc" .include "asm/macros.inc" .syntax unified .text thumb_func_start npc_before_player_of_type npc_before_player_of_type: @ 810B2D4 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r4, _0810B314 @ =gUnknown_0203923C adds r1, r4, 0x2 adds r0, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer bl PlayerGetZCoord strb r0, [r4, 0x4] ldrh r0, [r4] ldrh r1, [r4, 0x2] ldrb r2, [r4, 0x4] bl GetFieldObjectIdByXYZ lsls r0, 24 lsrs r0, 24 ldr r2, _0810B318 @ =gMapObjects lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r2, r1, r2 ldrb r0, [r2, 0x5] cmp r0, r5 bne _0810B320 ldr r1, _0810B31C @ =gScriptLastTalked ldrb r0, [r2, 0x8] strh r0, [r1] movs r0, 0x1 b _0810B322 .align 2, 0 _0810B314: .4byte gUnknown_0203923C _0810B318: .4byte gMapObjects _0810B31C: .4byte gScriptLastTalked _0810B320: movs r0, 0 _0810B322: pop {r4,r5} pop {r1} bx r1 thumb_func_end npc_before_player_of_type thumb_func_start oei_task_add oei_task_add: @ 810B328 push {lr} ldr r0, _0810B344 @ =gUnknown_0203923C adds r1, r0, 0x2 bl GetXYCoordsOneStepInFrontOfPlayer ldr r0, _0810B348 @ =task08_080C9820 movs r1, 0x8 bl CreateTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0810B344: .4byte gUnknown_0203923C _0810B348: .4byte task08_080C9820 thumb_func_end oei_task_add thumb_func_start task08_080C9820 task08_080C9820: @ 810B34C push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 bl ScriptContext2_Enable ldr r1, _0810B3A0 @ =gPlayerAvatar movs r0, 0x1 strb r0, [r1, 0x6] ldrb r1, [r1, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0810B3A4 @ =gMapObjects adds r4, r0, r1 adds r0, r4, 0 bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive lsls r0, 24 cmp r0, 0 beq _0810B382 adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _0810B3CE _0810B382: ldr r0, _0810B3A8 @ =gMapHeader ldrb r0, [r0, 0x17] cmp r0, 0x5 bne _0810B3B4 movs r0, 0x3B bl FieldEffectStart ldr r0, _0810B3AC @ =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _0810B3B0 @ =sub_810B428 b _0810B3CC .align 2, 0 _0810B3A0: .4byte gPlayerAvatar _0810B3A4: .4byte gMapObjects _0810B3A8: .4byte gMapHeader _0810B3AC: .4byte gTasks _0810B3B0: .4byte sub_810B428 _0810B3B4: bl sub_8059BF4 adds r0, r4, 0 movs r1, 0x39 bl FieldObjectSetSpecialAnim ldr r0, _0810B3D4 @ =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, _0810B3D8 @ =sub_810B3DC _0810B3CC: str r0, [r1] _0810B3CE: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810B3D4: .4byte gTasks _0810B3D8: .4byte sub_810B3DC thumb_func_end task08_080C9820 thumb_func_start sub_810B3DC sub_810B3DC: @ 810B3DC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0810B418 @ =gPlayerAvatar ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0810B41C @ =gMapObjects adds r0, r1 bl FieldObjectCheckIfSpecialAnimFinishedOrInactive lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0810B410 movs r0, 0x3B bl FieldEffectStart ldr r0, _0810B420 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0810B424 @ =sub_810B428 str r0, [r1] _0810B410: pop {r4} pop {r0} bx r0 .align 2, 0 _0810B418: .4byte gPlayerAvatar _0810B41C: .4byte gMapObjects _0810B420: .4byte gTasks _0810B424: .4byte sub_810B428 thumb_func_end sub_810B3DC thumb_func_start sub_810B428 sub_810B428: @ 810B428 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 movs r0, 0x6 bl FieldEffectActiveListContains lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0810B4AC bl player_get_direction_lower_nybble ldr r6, _0810B4B4 @ =gUnknown_0202FF84 lsls r0, 24 lsrs r0, 24 str r0, [r6, 0x4] cmp r0, 0x1 bne _0810B44E str r4, [r6, 0x8] _0810B44E: ldr r1, [r6, 0x4] cmp r1, 0x2 bne _0810B458 movs r0, 0x1 str r0, [r6, 0x8] _0810B458: cmp r1, 0x3 bne _0810B460 movs r0, 0x2 str r0, [r6, 0x8] _0810B460: cmp r1, 0x4 bne _0810B468 movs r0, 0x3 str r0, [r6, 0x8] _0810B468: ldr r5, _0810B4B8 @ =gPlayerAvatar ldrb r0, [r5, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _0810B4BC @ =gMapObjects adds r4, r0 bl GetPlayerAvatarGraphicsIdByCurrentState 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, _0810B4C0 @ =gSprites adds r0, r1 ldrb r1, [r6, 0x8] bl StartSpriteAnim movs r0, 0x6 bl FieldEffectActiveListRemove ldr r1, _0810B4C4 @ =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, _0810B4C8 @ =sub_810B4CC str r1, [r0] _0810B4AC: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810B4B4: .4byte gUnknown_0202FF84 _0810B4B8: .4byte gPlayerAvatar _0810B4BC: .4byte gMapObjects _0810B4C0: .4byte gSprites _0810B4C4: .4byte gTasks _0810B4C8: .4byte sub_810B4CC thumb_func_end sub_810B428 thumb_func_start sub_810B4CC sub_810B4CC: @ 810B4CC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _0810B4FC @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x18] lsls r1, 16 ldrh r0, [r0, 0x1A] orrs r1, r0 bl _call_via_r1 ldr r1, _0810B500 @ =gPlayerAvatar movs r0, 0 strb r0, [r1, 0x6] adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 .align 2, 0 _0810B4FC: .4byte gTasks _0810B500: .4byte gPlayerAvatar thumb_func_end sub_810B4CC thumb_func_start SetUpFieldMove_RockSmash SetUpFieldMove_RockSmash: @ 810B504 push {lr} movs r0, 0x56 bl npc_before_player_of_type lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0810B518 movs r0, 0 b _0810B526 _0810B518: ldr r1, _0810B52C @ =gUnknown_0300485C ldr r0, _0810B530 @ =sub_808AB90 str r0, [r1] ldr r1, _0810B534 @ =gUnknown_03005CE4 ldr r0, _0810B538 @ =sub_810B53C str r0, [r1] movs r0, 0x1 _0810B526: pop {r1} bx r1 .align 2, 0 _0810B52C: .4byte gUnknown_0300485C _0810B530: .4byte sub_808AB90 _0810B534: .4byte gUnknown_03005CE4 _0810B538: .4byte sub_810B53C thumb_func_end SetUpFieldMove_RockSmash thumb_func_start sub_810B53C sub_810B53C: @ 810B53C push {lr} ldr r1, _0810B550 @ =gUnknown_0202FF84 ldr r0, _0810B554 @ =gUnknown_03005CE0 ldrb r0, [r0] str r0, [r1] ldr r0, _0810B558 @ =UseRockSmashScript bl ScriptContext1_SetupScript pop {r0} bx r0 .align 2, 0 _0810B550: .4byte gUnknown_0202FF84 _0810B554: .4byte gUnknown_03005CE0 _0810B558: .4byte UseRockSmashScript thumb_func_end sub_810B53C thumb_func_start FldEff_RockSmash FldEff_RockSmash: @ 810B55C push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _0810B584 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _0810B588 @ =sub_810B58C lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] movs r0, 0x13 bl sav12_xor_increment movs r0, 0 pop {r1} bx r1 .align 2, 0 _0810B584: .4byte gTasks _0810B588: .4byte sub_810B58C thumb_func_end FldEff_RockSmash thumb_func_start sub_810B58C sub_810B58C: @ 810B58C push {lr} movs r0, 0x83 bl PlaySE movs r0, 0x25 bl FieldEffectActiveListRemove bl EnableBothScriptContexts pop {r0} bx r0 thumb_func_end sub_810B58C thumb_func_start SetUpFieldMove_Dig SetUpFieldMove_Dig: @ 810B5A4 push {lr} bl sub_80CA1C8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0810B5B6 movs r0, 0 b _0810B5C4 _0810B5B6: ldr r1, _0810B5C8 @ =gUnknown_0300485C ldr r0, _0810B5CC @ =sub_808AB90 str r0, [r1] ldr r1, _0810B5D0 @ =gUnknown_03005CE4 ldr r0, _0810B5D4 @ =sub_810B5D8 str r0, [r1] movs r0, 0x1 _0810B5C4: pop {r1} bx r1 .align 2, 0 _0810B5C8: .4byte gUnknown_0300485C _0810B5CC: .4byte sub_808AB90 _0810B5D0: .4byte gUnknown_03005CE4 _0810B5D4: .4byte sub_810B5D8 thumb_func_end SetUpFieldMove_Dig thumb_func_start sub_810B5D8 sub_810B5D8: @ 810B5D8 push {lr} bl sub_8053014 movs r0, 0x26 bl FieldEffectStart ldr r0, _0810B5F0 @ =gUnknown_0202FF84 ldr r1, _0810B5F4 @ =gUnknown_03005CE0 ldrb r1, [r1] str r1, [r0] pop {r0} bx r0 .align 2, 0 _0810B5F0: .4byte gUnknown_0202FF84 _0810B5F4: .4byte gUnknown_03005CE0 thumb_func_end sub_810B5D8 thumb_func_start FldEff_UseDig FldEff_UseDig: @ 810B5F8 push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _0810B62C @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _0810B630 @ =sub_810B634 lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] bl sub_81473B8 lsls r0, 24 cmp r0, 0 bne _0810B624 movs r0, 0x1 bl SetPlayerAvatarTransitionFlags _0810B624: movs r0, 0 pop {r1} bx r1 .align 2, 0 _0810B62C: .4byte gTasks _0810B630: .4byte sub_810B634 thumb_func_end FldEff_UseDig thumb_func_start sub_810B634 sub_810B634: @ 810B634 push {r4,lr} movs r0, 0x26 bl FieldEffectActiveListRemove bl sub_81473B8 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _0810B64E bl sub_8147408 b _0810B666 _0810B64E: ldr r0, _0810B66C @ =task08_080A1C44 movs r1, 0x8 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0810B670 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] _0810B666: pop {r4} pop {r0} bx r0 .align 2, 0 _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.