.include "constants/gba_constants.s" .include "constants/species_constants.s" .include "asm/macros.s" .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 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 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 ldrb r0, [r2, 0x8] strh r0, [r1] movs r0, 0x1 b _0810B322 .align 2, 0 _0810B314: .4byte gUnknown_0203923C _0810B318: .4byte gMapObjects _0810B31C: .4byte gUnknown_0202E8DE _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 adds r1, r0, 0x2 bl GetXYCoordsOneStepInFrontOfPlayer ldr r0, _0810B348 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 movs r0, 0x1 strb r0, [r1, 0x6] ldrb r1, [r1, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0810B3A4 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 ldrb r0, [r0, 0x17] cmp r0, 0x5 bne _0810B3B4 movs r0, 0x3B bl FieldEffectStart ldr r0, _0810B3AC lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _0810B3B0 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 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, _0810B3D8 _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 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0810B41C adds r0, r1 bl FieldObjectCheckIfSpecialAnimFinishedOrInactive lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0810B410 movs r0, 0x3B bl FieldEffectStart ldr r0, _0810B420 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0810B424 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 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 ldrb r0, [r5, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _0810B4BC 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 adds r0, r1 ldrb r1, [r6, 0x8] bl StartSpriteAnim movs r0, 0x6 bl FieldEffectActiveListRemove ldr r1, _0810B4C4 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, _0810B4C8 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 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 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 hm_prepare_rocksmash hm_prepare_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 ldr r0, _0810B530 str r0, [r1] ldr r1, _0810B534 ldr r0, _0810B538 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 hm_prepare_rocksmash thumb_func_start sub_810B53C sub_810B53C: @ 810B53C push {lr} ldr r1, _0810B550 ldr r0, _0810B554 ldrb r0, [r0] str r0, [r1] ldr r0, _0810B558 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 oei_rocksmash oei_rocksmash: @ 810B55C push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _0810B584 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _0810B588 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 oei_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 sub_810B5A4 sub_810B5A4: @ 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 ldr r0, _0810B5CC str r0, [r1] ldr r1, _0810B5D0 ldr r0, _0810B5D4 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 sub_810B5A4 thumb_func_start sub_810B5D8 sub_810B5D8: @ 810B5D8 push {lr} bl sub_8053014 movs r0, 0x26 bl FieldEffectStart ldr r0, _0810B5F0 ldr r1, _0810B5F4 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 sub_810B5F8 sub_810B5F8: @ 810B5F8 push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _0810B62C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _0810B630 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 sub_810B5F8 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 movs r1, 0x8 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0810B670 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 ldr r2, _0810B6B4 ldr r0, _0810B6B8 str r1, [r0] str r2, [r0, 0x4] ldr r1, _0810B6BC str r1, [r0, 0x8] ldr r0, [r0, 0x8] pop {r0} bx r0 .align 2, 0 _0810B6B0: .4byte gBG2TilemapBuffer _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 ldr r1, _0810B6E0 adds r0, r1 ldrb r0, [r0] cmp r0, 0x12 bls _0810B6D2 b _0810B960 _0810B6D2: lsls r0, 2 ldr r1, _0810B6E4 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 ldr r2, _0810B758 adds r0, r2, 0 strh r0, [r1] adds r1, 0x44 movs r0, 0 strh r0, [r1] ldr r1, _0810B75C ldr r0, _0810B760 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 ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r1, _0810B784 ldr r0, _0810B788 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 ldrb r0, [r0] cmp r0, 0x2 beq _0810B79E bl ResetTasks _0810B79E: ldr r1, _0810B7AC ldr r0, _0810B7B0 adds r1, r0 b _0810B922 .align 2, 0 _0810B7A8: .4byte gUnknown_02039244 _0810B7AC: .4byte gMain _0810B7B0: .4byte 0x0000043c _0810B7B4: ldr r0, _0810B7BC bl SetUpWindowConfig b _0810B91C .align 2, 0 _0810B7BC: .4byte gWindowConfig_81E6E34 _0810B7C0: ldr r0, _0810B7D0 bl SetUpWindowConfig ldr r1, _0810B7D4 ldr r0, _0810B7D8 adds r1, r0 b _0810B922 .align 2, 0 _0810B7D0: .4byte gWindowConfig_81E6E50 _0810B7D4: .4byte gMain _0810B7D8: .4byte 0x0000043c _0810B7DC: ldr r0, _0810B7E4 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 ldr r0, _0810B800 adds r1, r0 b _0810B922 .align 2, 0 _0810B7FC: .4byte gMain _0810B800: .4byte 0x0000043c _0810B804: ldr r0, _0810B80C 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 ldr r1, _0810B82C 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 ldr r0, _0810B848 adds r1, r0 b _0810B922 .align 2, 0 _0810B844: .4byte gMain _0810B848: .4byte 0x0000043c _0810B84C: bl sub_80F944C bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed movs r0, 0 movs r1, 0xB0 movs r2, 0x8 bl sub_80F953C movs r0, 0x1 movs r1, 0xB0 movs r2, 0x98 bl sub_80F953C b _0810B91C _0810B86A: movs r0, 0x38 movs r1, 0x40 movs r2, 0 bl sub_810BA50 ldr r1, _0810B884 ldr r2, _0810B888 adds r1, r2 strb r0, [r1] ldr r1, _0810B88C ldr r0, _0810B890 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 ldrb r0, [r0, 0x1] bl sub_810BC84 ldr r1, _0810B8BC ldr r0, _0810B8C0 adds r1, r0 b _0810B922 .align 2, 0 _0810B8B8: .4byte gUnknown_02039248 _0810B8BC: .4byte gMain _0810B8C0: .4byte 0x0000043c _0810B8C4: ldr r3, _0810B8FC ldrh r2, [r3] movs r0, 0 strh r0, [r3] ldr r4, _0810B900 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _0810B904 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _0810B908 bl SetVBlankCallback movs r1, 0x80 lsls r1, 19 movs r2, 0xBA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r1, _0810B90C ldr r0, _0810B910 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 ldr r2, _0810B930 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 ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] ldr r0, _0810B95C 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 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 ldr r1, _0810B9B4 adds r0, r1 ldrb r0, [r0] cmp r0, 0x4 bhi _0810BA48 lsls r0, 2 ldr r1, _0810B9B8 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 ldr r1, _0810B9E0 bl LZDecompressVram b _0810BA0E .align 2, 0 _0810B9DC: .4byte gMenuPokeblock_Gfx _0810B9E0: .4byte 0x06008000 _0810B9E4: ldr r0, _0810B9F0 ldr r1, _0810B9F4 bl sub_800D238 b _0810BA0E .align 2, 0 _0810B9F0: .4byte gMenuPokeblock_Tilemap _0810B9F4: .4byte gBG2TilemapBuffer _0810B9F8: ldr r0, _0810BA04 movs r1, 0 movs r2, 0xC0 bl LoadCompressedPalette b _0810BA0E .align 2, 0 _0810BA04: .4byte gMenuPokeblock_Pal _0810BA08: ldr r0, _0810BA1C bl LoadCompressedObjectPic _0810BA0E: ldr r1, _0810BA20 ldr r0, _0810BA24 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 bl LoadCompressedObjectPalette ldr r0, _0810BA40 ldr r1, _0810BA44 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 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 strb r0, [r1] ldrb r2, [r1] cmp r2, 0x2 beq _0810BAA8 cmp r2, 0x3 beq _0810BAC0 ldr r1, _0810BA9C ldr r0, _0810BAA0 str r0, [r1] ldr r1, _0810BAA4 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 ldr r1, _0810BAB8 str r1, [r0] ldr r0, _0810BABC strb r2, [r0] b _0810BACC .align 2, 0 _0810BAB4: .4byte gUnknown_03000758 _0810BAB8: .4byte gUnknown_083F7F1F _0810BABC: .4byte gUnknown_0203924C _0810BAC0: ldr r1, _0810BAD0 ldr r0, _0810BAD4 str r0, [r1] ldr r1, _0810BAD8 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 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 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 bl BasicInitMenuWindow ldr r0, _0810BB2C bl itemid_get_item 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 bl BasicInitMenuWindow ldr r0, _0810BB74 movs r1, 0x2 movs r2, 0xD bl MenuPrint ldr r0, _0810BB78 movs r1, 0x2 movs r2, 0xF bl MenuPrint ldr r0, _0810BB7C movs r1, 0x2 movs r2, 0x11 bl MenuPrint ldr r0, _0810BB80 movs r1, 0x8 movs r2, 0xD bl MenuPrint ldr r0, _0810BB84 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 bl BasicInitMenuWindow mov r6, r8 adds r0, r6, 0 adds r0, 0x8 cmp r6, r0 bgt _0810BC6C ldr r0, _0810BBF8 mov r9, r0 ldr r1, _0810BBFC mov r10, r1 _0810BBB0: mov r1, r8 subs r0, r6, r1 lsls r0, 25 lsrs r7, r0, 24 ldr r0, _0810BC00 ldrb r0, [r0, 0x2] cmp r6, r0 bne _0810BC08 mov r0, r9 ldr r1, _0810BC04 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 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 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 gUnknown_083F7EB8 _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 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 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 movs r0, 0 strb r0, [r1, 0x2] movs r2, 0 ldr r5, _0810BD60 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 ldr r4, _0810BDA8 _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 gBG2TilemapBuffer 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 ldr r1, _0810BDC8 bl sub_810BD64 b _0810BDD4 .align 2, 0 _0810BDC4: .4byte 0x00001005 _0810BDC8: .4byte 0x00001014 _0810BDCC: ldr r0, _0810BDE8 ldr r1, _0810BDEC bl sub_810BD64 _0810BDD4: ldr r0, _0810BDF0 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 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 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 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 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 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 gBG2TilemapBuffer _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 bl BasicInitMenuWindow ldr r0, _0810BF14 ldrb r2, [r0] ldrb r1, [r0, 0x1] adds r2, r1 ldrb r0, [r0, 0x2] cmp r2, r0 beq _0810BF20 ldr r4, _0810BF18 lsls r0, r2, 3 ldr r1, _0810BF1C 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 ldr r0, _0810BF70 ldr r1, _0810BF74 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 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 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 ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0810BFCE ldr r4, _0810BFC0 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 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 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 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 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 ldrb r1, [r0, 0x1] ldrb r2, [r0] adds r1, r2 ldrb r0, [r0, 0x2] cmp r1, r0 bne _0810C094 ldr r1, _0810C08C ldr r2, _0810C090 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 ldr r2, _0810C0C4 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 ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0810C110 ldr r4, _0810C0F8 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 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 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _0810C1C4 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 cmp r1, 0 bne _0810C1D8 movs r6, 0x5 _0810C1D8: ldr r1, _0810C230 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 ldr r2, _0810C234 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 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 gBG2TilemapBuffer 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 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 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 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 SetBgTilemapBuffer movs r0, 0x1 bl SetBgTilemapBuffer 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 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0810C300 ldr r4, _0810C30C ldrb r0, [r4] cmp r0, 0x3 bne _0810C2E8 ldr r1, _0810C310 ldr r0, _0810C314 str r0, [r1] _0810C2E8: bl sub_810C2B0 ldr r0, _0810C318 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 ldrb r0, [r0] cmp r0, 0x1 bls _0810C342 ldr r0, _0810C35C strh r5, [r0] _0810C342: ldr r0, _0810C360 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0810C364 str r0, [r1] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810C358: .4byte gUnknown_02039244 _0810C35C: .4byte word_203855E _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 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 bl BasicInitMenuWindow adds r1, r4, 0x4 movs r0, 0x7 movs r2, 0xD movs r3, 0xB bl MenuDrawTextWindow adds r4, 0x5 ldr r5, _0810C3F0 ldrb r2, [r5] ldr r3, _0810C3F4 ldr r0, _0810C3F8 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 ldr r1, _0810C400 ldrb r0, [r1] ldrb r1, [r1, 0x1] adds r0, r1 strh r0, [r2] ldr r1, _0810C404 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _0810C408 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 word_203855E _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 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 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 bl GetMenuCursorPos lsls r0, 24 lsrs r0, 24 ldr r1, _0810C4A4 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 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0810C4F0 bl sub_810C2B0 ldr r0, _0810C4FC ldrh r0, [r0] lsls r0, 3 ldr r1, _0810C500 adds r0, r1 ldr r1, _0810C504 bl sub_8136130 adds r0, r4, 0 bl DestroyTask _0810C4F0: pop {r4} pop {r0} bx r0 .align 2, 0 _0810C4F8: .4byte gPaletteFade _0810C4FC: .4byte word_203855E _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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0810C53C 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 bl BasicInitMenuWindow bl sub_8072DEC movs r0, 0x7 movs r1, 0x4 movs r2, 0xD movs r3, 0xB bl MenuZeroFillWindowRect ldr r0, _0810C5A4 ldr r4, _0810C5A8 ldr r3, _0810C5AC ldr r2, _0810C5B0 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 ldr r1, _0810C5B8 adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, _0810C5BC 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 gUnknown_083F7EB8 _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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0810C5E8 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 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 ldrb r0, [r1, 0x1] ldrb r1, [r1] adds r0, r1 lsls r0, 24 lsrs r0, 24 bl sub_810CA6C ldr r5, _0810C65C ldr r1, _0810C660 adds r0, r5, 0 bl StringExpandPlaceholders ldr r2, _0810C664 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 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 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0810C6D8 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 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 bl BasicInitMenuWindow ldr r0, _0810C73C ldrb r0, [r0, 0x1] bl sub_810BC84 movs r0, 0x1 movs r1, 0x1 bl sub_80F979C ldr r1, _0810C740 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0810C744 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0810C784 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 bl GetNature lsls r0, 24 lsrs r0, 24 ldr r7, _0810C838 ldrh r1, [r7] lsls r1, 3 ldr r5, _0810C83C adds r1, r5 bl sub_810CAE4 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _0810C840 ldr r2, _0810C844 ldr r1, _0810C848 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 mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r1 ldr r1, _0810C850 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 word_203855E _0810C83C: .4byte gSaveBlock1 + 0x7F8 _0810C840: .4byte gUnknown_030041C0 _0810C844: .4byte gUnknown_083F7EB8 _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 ldrb r0, [r4] bl sub_80C8478 ldr r0, _0810C8BC ldr r3, _0810C8C0 ldr r2, _0810C8C4 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 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 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0810C8D0 str r1, [r0] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810C8B8: .4byte word_203855E _0810C8BC: .4byte gStringVar1 _0810C8C0: .4byte gUnknown_083F7EB8 _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 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 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 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 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 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 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 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 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 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 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 gUnknown_083F7EB8 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 _0810CB74: lsls r1, r4, 3 ldr r0, _0810CB9C 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 gUnknown_083F7EB8 _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 sub_810CBB4 sub_810CBB4: @ 810CBB4 push {lr} ldr r0, _0810CBDC ldrb r0, [r0, 0x15] cmp r0, 0x1 bne _0810CBF4 ldr r0, _0810CBE0 bl FlagGet lsls r0, 24 cmp r0, 0 bne _0810CBF4 ldr r1, _0810CBE4 ldr r0, _0810CBE8 str r0, [r1] ldr r1, _0810CBEC ldr r0, _0810CBF0 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 sub_810CBB4 thumb_func_start sub_810CBFC sub_810CBFC: @ 810CBFC push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _0810CC24 ldr r1, _0810CC28 ldrb r1, [r1] str r1, [r2] ldr r2, _0810CC2C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _0810CC30 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 bl FlagSet ldr r0, _0810CC50 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 str r0, [r1] movs r0, 0xC0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _0810CD38 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 str r0, [r1, 0x8] ldr r0, [r1, 0x8] mov r0, sp strh r4, [r0] str r0, [r1] ldr r0, _0810CD40 str r0, [r1, 0x4] ldr r0, _0810CD44 str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl ResetPaletteFade bl ResetTasks bl ResetSpriteData ldr r3, _0810CD48 ldrh r2, [r3] strh r4, [r3] ldr r4, _0810CD4C ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r0, _0810CD50 bl SetVBlankCallback ldr r0, _0810CD54 bl SetMainCallback2 bl sub_810CD5C lsls r0, 24 cmp r0, 0 bne _0810CD2A ldr r0, _0810CD58 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 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 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 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 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 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _0810CE74 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 ldr r1, _0810CEEC bl LZ77UnCompVram ldr r0, _0810CEF0 ldr r1, _0810CEF4 bl LZ77UnCompVram ldr r0, _0810CEF8 movs r1, 0xE0 movs r2, 0x20 bl LoadPalette ldr r0, _0810CEFC movs r1, 0xE0 movs r2, 0x10 bl LoadPalette ldr r1, _0810CF00 ldr r2, _0810CF04 adds r0, r2, 0 strh r0, [r1] ldr r0, _0810CF08 strh r5, [r0] adds r0, 0x2 strh r5, [r0] subs r1, 0x48 ldr r2, _0810CF0C adds r0, r2, 0 strh r0, [r1] movs r1, 0x8A lsls r1, 5 adds r0, r1, 0 strh r0, [r6] ldr r1, _0810CF10 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0810CF14 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 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 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 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 ldr r3, _0810CF98 adds r1, r3, 0 strh r1, [r2] ldr r2, _0810CF9C 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 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 movs r1, 0 movs r2, 0x20 bl LoadPalette ldr r0, _0810CFC0 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 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 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 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 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _0810D024 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 ldr r1, _0810D09C bl LZ77UnCompVram ldr r0, _0810D0A0 ldr r1, _0810D0A4 bl LZ77UnCompVram ldr r0, _0810D0A8 strh r4, [r0] adds r0, 0x2 strh r4, [r0] adds r0, 0x2 strh r4, [r0] ldr r1, _0810D0AC ldr r2, _0810D0B0 adds r0, r2, 0 strh r0, [r1] movs r1, 0x8A lsls r1, 5 adds r0, r1, 0 strh r0, [r6] ldr r0, _0810D0B4 movs r1, 0xE0 movs r2, 0x20 bl LoadPalette ldr r0, _0810D0B8 movs r1, 0 movs r2, 0x20 bl LoadPalette ldr r1, _0810D0BC lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0810D0C0 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 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 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 ldr r2, _0810D11C adds r0, r2, 0 strh r0, [r1] subs r1, 0x2 ldr r2, _0810D120 adds r0, r2, 0 strh r0, [r1] ldr r0, _0810D124 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 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 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 movs r1, 0 movs r2, 0x20 bl LoadPalette ldr r0, _0810D17C 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 sp000_heal_pokemon ldr r4, _0810D1A0 adds r0, r4, 0 bl FlagGet lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1 bne _0810D1A8 ldr r0, _0810D1A4 strb r1, [r0] b _0810D1B4 .align 2, 0 _0810D1A0: .4byte 0x00000804 _0810D1A4: .4byte gUnknown_02039324 _0810D1A8: ldr r1, _0810D1E8 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 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 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 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 bl FlagSet _0810D250: ldr r0, _0810D268 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 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 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _0810D2A8 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 lsrs r1, r4, 16 bl VarSet ldr r0, _0810D2D0 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 ldr r2, _0810D328 _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 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 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 ldr r0, _0810D3B0 ldrb r0, [r0, 0x2] lsls r0, 24 asrs r0, 24 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0810D3B8 ldr r0, _0810D3B4 bl FlagSet b _0810D3BE .align 2, 0 _0810D3AC: .4byte gUnknown_083F8340 _0810D3B0: .4byte gLocalTime _0810D3B4: .4byte 0x0000083a _0810D3B8: ldr r0, _0810D3C4 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 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 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 sub_810D410 sub_810D410: @ 810D410 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _0810D438 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 sub_810D410 thumb_func_start sub_810D43C sub_810D43C: @ 810D43C push {lr} ldr r0, _0810D458 ldrh r0, [r0] cmp r0, 0 bne _0810D460 movs r0, 0 bl sub_8090F68 ldr r1, _0810D45C strh r0, [r1] movs r0, 0x1 bl sub_8090F68 b _0810D470 .align 2, 0 _0810D458: .4byte gUnknown_0202E8CC _0810D45C: .4byte gUnknown_0202E8CE _0810D460: movs r0, 0 bl pokedex_count ldr r1, _0810D480 strh r0, [r1] movs r0, 0x1 bl pokedex_count _0810D470: ldr r1, _0810D484 strh r0, [r1] bl sub_806912C lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 .align 2, 0 _0810D480: .4byte gUnknown_0202E8CE _0810D484: .4byte gUnknown_0202E8D0 thumb_func_end sub_810D43C thumb_func_start sub_810D488 sub_810D488: @ 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 b _0810D5F6 .align 2, 0 _0810D49C: .4byte gUnknown_081C456A _0810D4A0: cmp r0, 0x1D bhi _0810D4AC ldr r0, _0810D4A8 b _0810D5F6 .align 2, 0 _0810D4A8: .4byte gUnknown_081C45B0 _0810D4AC: cmp r0, 0x27 bhi _0810D4B8 ldr r0, _0810D4B4 b _0810D5F6 .align 2, 0 _0810D4B4: .4byte gUnknown_081C45F9 _0810D4B8: cmp r0, 0x31 bhi _0810D4C4 ldr r0, _0810D4C0 b _0810D5F6 .align 2, 0 _0810D4C0: .4byte gUnknown_081C4648 _0810D4C4: cmp r0, 0x3B bhi _0810D4D0 ldr r0, _0810D4CC b _0810D5F6 .align 2, 0 _0810D4CC: .4byte gUnknown_081C467E _0810D4D0: cmp r0, 0x45 bhi _0810D4DC ldr r0, _0810D4D8 b _0810D5F6 .align 2, 0 _0810D4D8: .4byte gUnknown_081C46B9 _0810D4DC: cmp r0, 0x4F bhi _0810D4E8 ldr r0, _0810D4E4 b _0810D5F6 .align 2, 0 _0810D4E4: .4byte gUnknown_081C46FE _0810D4E8: cmp r0, 0x59 bhi _0810D4F4 ldr r0, _0810D4F0 b _0810D5F6 .align 2, 0 _0810D4F0: .4byte gUnknown_081C4747 _0810D4F4: cmp r0, 0x63 bhi _0810D500 ldr r0, _0810D4FC b _0810D5F6 .align 2, 0 _0810D4FC: .4byte gUnknown_081C4780 _0810D500: cmp r0, 0x6D bhi _0810D50C ldr r0, _0810D508 b _0810D5F6 .align 2, 0 _0810D508: .4byte gUnknown_081C47DF _0810D50C: cmp r0, 0x77 bhi _0810D518 ldr r0, _0810D514 b _0810D5F6 .align 2, 0 _0810D514: .4byte gUnknown_081C4828 _0810D518: cmp r0, 0x81 bhi _0810D524 ldr r0, _0810D520 b _0810D5F6 .align 2, 0 _0810D520: .4byte gUnknown_081C4863 _0810D524: cmp r0, 0x8B bhi _0810D530 ldr r0, _0810D52C b _0810D5F6 .align 2, 0 _0810D52C: .4byte gUnknown_081C489C _0810D530: cmp r0, 0x95 bhi _0810D53C ldr r0, _0810D538 b _0810D5F6 .align 2, 0 _0810D538: .4byte gUnknown_081C48EB _0810D53C: cmp r0, 0x9F bhi _0810D548 ldr r0, _0810D544 b _0810D5F6 .align 2, 0 _0810D544: .4byte gUnknown_081C4936 _0810D548: cmp r0, 0xA9 bhi _0810D554 ldr r0, _0810D550 b _0810D5F6 .align 2, 0 _0810D550: .4byte gUnknown_081C49A2 _0810D554: cmp r0, 0xB3 bhi _0810D560 ldr r0, _0810D55C b _0810D5F6 .align 2, 0 _0810D55C: .4byte gUnknown_081C4A06 _0810D560: cmp r0, 0xBD bhi _0810D56C ldr r0, _0810D568 b _0810D5F6 .align 2, 0 _0810D568: .4byte gUnknown_081C4A4F _0810D56C: cmp r0, 0xC7 bls _0810D5DA cmp r0, 0xC8 bne _0810D5A8 ldr r0, _0810D5A4 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 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 b _0810D5F6 .align 2, 0 _0810D5E0: .4byte 0x00000199 _0810D5E4: .4byte gUnknown_081C4A91 _0810D5E8: cmp r0, 0xCA beq _0810D5F4 _0810D5EC: ldr r0, _0810D5F0 b _0810D5F6 .align 2, 0 _0810D5F0: .4byte gUnknown_081C4520 _0810D5F4: ldr r0, _0810D5FC _0810D5F6: pop {r1} bx r1 .align 2, 0 _0810D5FC: .4byte gUnknown_081C4ADA thumb_func_end sub_810D488 thumb_func_start sub_810D600 sub_810D600: @ 810D600 push {lr} ldr r0, _0810D614 ldrh r0, [r0] bl sub_810D488 bl ShowFieldMessage pop {r0} bx r0 .align 2, 0 _0810D614: .4byte gUnknown_0202E8CC thumb_func_end sub_810D600 thumb_func_start sub_810D618 sub_810D618: @ 810D618 push {lr} ldr r0, _0810D628 bl SetMainCallback2 bl ScriptContext2_Enable pop {r0} bx r0 .align 2, 0 _0810D628: .4byte sub_81428CC thumb_func_end sub_810D618 thumb_func_start sub_810D62C sub_810D62C: @ 810D62C push {lr} ldr r0, _0810D640 bl SetMainCallback2 ldr r1, _0810D644 ldr r0, _0810D648 str r0, [r1] pop {r0} bx r0 .align 2, 0 _0810D640: .4byte c2_exit_to_overworld_2_switch _0810D644: .4byte gUnknown_0300485C _0810D648: .4byte mapldr_080CA5C0 thumb_func_end sub_810D62C thumb_func_start mapldr_080CA5C0 mapldr_080CA5C0: @ 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 movs r1, 0xA bl CreateTask add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0810D680: .4byte sub_810D684 thumb_func_end mapldr_080CA5C0 thumb_func_start sub_810D684 sub_810D684: @ 810D684 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0810D6A0 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 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 ldr r1, _0810D6D4 str r1, [r0, 0x8] ldr r0, _0810D6D8 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 wild_pokemon_reroll wild_pokemon_reroll: @ 810D6DC ldr r0, _0810D6F0 movs r1, 0 strb r1, [r0] ldr r0, _0810D6F4 strb r1, [r0] ldr r1, _0810D6F8 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 wild_pokemon_reroll thumb_func_start sub_810D6FC sub_810D6FC: @ 810D6FC ldr r1, _0810D714 movs r0, 0x1 strb r0, [r1] ldr r1, _0810D718 movs r0, 0 strb r0, [r1] ldr r1, _0810D71C ldr r0, _0810D720 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 sub_810D6FC thumb_func_start sp0E3_walkrun_bitfield_interpretation sp0E3_walkrun_bitfield_interpretation: @ 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 sp0E3_walkrun_bitfield_interpretation thumb_func_start sub_810D74C sub_810D74C: @ 810D74C push {r4-r7,lr} adds r7, r0, 0 lsls r1, 24 lsrs r6, r1, 24 cmp r6, 0x63 bhi _0810D778 ldr r4, _0810D770 adds r0, r4, 0 adds r1, r6, 0 movs r2, 0 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r1, _0810D774 adds r0, r4, 0 bl StringAppend b _0810D780 .align 2, 0 _0810D770: .4byte gStringVar1 _0810D774: .4byte gOtherText_Times _0810D778: ldr r0, _0810D7CC ldr r1, _0810D7D0 bl StringCopy _0810D780: ldr r0, _0810D7D4 cmp r7, r0 bhi _0810D7E0 ldr r4, _0810D7D8 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 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 ldr r1, _0810D7F8 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 strh r4, [r0] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810D858: .4byte gScriptResult thumb_func_end sub_810D74C thumb_func_start sub_810D85C sub_810D85C: @ 810D85C push {r4,r5,lr} ldr r0, _0810D880 ldr r1, _0810D884 ldr r4, [r0, 0x20] ldr r0, [r1] subs r4, r0 ldr r5, _0810D888 ldrb r1, [r5] adds r0, r4, 0 bl sub_810D74C ldrb r1, [r5] adds r0, r4, 0 bl sub_810D88C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810D880: .4byte gMain _0810D884: .4byte gUnknown_02039254 _0810D888: .4byte gUnknown_02039251 thumb_func_end sub_810D85C thumb_func_start sub_810D88C sub_810D88C: @ 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 adds r0, r6, 0 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r7, _0810D8E4 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 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 sub_810D88C thumb_func_start sub_810D8EC sub_810D8EC: @ 810D8EC push {r4,lr} ldr r0, _0810D920 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _0810D924 bl VarGet lsls r0, 16 adds r4, r0 cmp r4, 0 beq _0810D92C ldr r0, _0810D928 bl VarGet adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_810D74C 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 sub_810D8EC thumb_func_start sub_810D934 sub_810D934: @ 810D934 push {r4,lr} ldr r0, _0810D974 ldrh r1, [r0] ldr r0, _0810D978 cmp r1, r0 beq _0810D96C ldr r4, _0810D97C 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 sub_810D934 thumb_func_start sub_810D980 sub_810D980: @ 810D980 push {lr} ldr r0, _0810D998 bl FlagSet ldr r0, _0810D99C bl GetVarPointer movs r1, 0 strh r1, [r0] pop {r0} bx r0 .align 2, 0 _0810D998: .4byte 0x0000082d _0810D99C: .4byte 0x0000404a thumb_func_end sub_810D980 thumb_func_start sub_810D9A0 sub_810D9A0: @ 810D9A0 push {lr} ldr r0, _0810D9AC bl FlagReset pop {r0} bx r0 .align 2, 0 _0810D9AC: .4byte 0x0000082d thumb_func_end sub_810D9A0 thumb_func_start sub_810D9B0 sub_810D9B0: @ 810D9B0 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 ldr r0, _0810D9DC bl FlagGet lsls r0, 24 cmp r0, 0 beq _0810D9D6 ldr r0, _0810D9E0 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 bl GetVarPointer adds r4, r0, 0 ldr r0, _0810DA20 bl GetVarPointer ldrh r0, [r0] subs r0, 0x1 cmp r0, 0x9 bhi _0810DAB2 lsls r0, 2 ldr r1, _0810DA24 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 sub_810DAC8 sub_810DAC8: @ 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 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 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 sub_810DAC8 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 add r0, sp, 0x8 movs r2, 0x4 bl memcpy add r4, sp, 0xC ldr r1, _0810DB78 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 ldrh r0, [r1] subs r0, 0x1 b _0810DBAE .align 2, 0 _0810DB90: .4byte gSaveBlock1 _0810DB94: movs r7, 0x1 ldr r0, _0810DBA4 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 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 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 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 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 gUnknown_0202E8CC thumb_func_end sub_810DB28 thumb_func_start sub_810DC7C sub_810DC7C: @ 810DC7C push {r4,r5,lr} movs r4, 0 ldr r5, _0810DC9C _0810DC82: ldr r0, _0810DCA0 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 bl MapGridSetMetatileIdAt b _0810DCB6 .align 2, 0 _0810DC9C: .4byte gUnknown_083F8364 _0810DCA0: .4byte gUnknown_0202E8CC _0810DCA4: .4byte 0x00000206 _0810DCA8: lsls r1, r4, 2 adds r1, r5 ldrb r0, [r1] ldrb r1, [r1, 0x1] ldr r2, _0810DCC8 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 adds r0, r1 cmp r0, 0x37 bls _0810DCE6 b _0810DEC0 _0810DCE6: lsls r0, 2 ldr r1, _0810DCF4 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 b _0810DEAC .align 2, 0 _0810DDE4: .4byte 0x00000231 _0810DDE8: movs r2, 0x8E lsls r2, 2 b _0810DEAC _0810DDEE: ldr r2, _0810DDF4 b _0810DEAC .align 2, 0 _0810DDF4: .4byte 0x00000239 _0810DDF8: movs r2, 0x88 lsls r2, 2 b _0810DEAC _0810DDFE: ldr r2, _0810DE04 b _0810DEAC .align 2, 0 _0810DE04: .4byte 0x00000221 _0810DE08: ldr r2, _0810DE0C b _0810DEAC .align 2, 0 _0810DE0C: .4byte 0x00000e28 _0810DE10: ldr r2, _0810DE14 b _0810DEAC .align 2, 0 _0810DE14: .4byte 0x00000e29 _0810DE18: ldr r2, _0810DE1C b _0810DEAC .align 2, 0 _0810DE1C: .4byte 0x00000232 _0810DE20: ldr r2, _0810DE24 b _0810DEAC .align 2, 0 _0810DE24: .4byte 0x00000233 _0810DE28: ldr r2, _0810DE2C b _0810DEAC .align 2, 0 _0810DE2C: .4byte 0x0000023a _0810DE30: ldr r2, _0810DE34 b _0810DEAC .align 2, 0 _0810DE34: .4byte 0x0000023b _0810DE38: ldr r2, _0810DE3C b _0810DEAC .align 2, 0 _0810DE3C: .4byte 0x00000222 _0810DE40: ldr r2, _0810DE44 b _0810DEAC .align 2, 0 _0810DE44: .4byte 0x00000223 _0810DE48: ldr r2, _0810DE4C b _0810DEAC .align 2, 0 _0810DE4C: .4byte 0x00000e2a _0810DE50: ldr r2, _0810DE54 b _0810DEAC .align 2, 0 _0810DE54: .4byte 0x00000e2b _0810DE58: ldr r2, _0810DE5C b _0810DEAC .align 2, 0 _0810DE5C: .4byte 0x00000e42 _0810DE60: ldr r2, _0810DE64 b _0810DEAC .align 2, 0 _0810DE64: .4byte 0x0000021a _0810DE68: ldr r2, _0810DE6C b _0810DEAC .align 2, 0 _0810DE6C: .4byte 0x00000e43 _0810DE70: ldr r2, _0810DE74 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 b _0810DEAC .align 2, 0 _0810DE94: .4byte 0x00000e48 _0810DE98: ldr r2, _0810DE9C b _0810DEAC .align 2, 0 _0810DE9C: .4byte 0x00000e49 _0810DEA0: ldr r2, _0810DEA4 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 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 movs r5, 0x2 _0810DEE2: ldrb r0, [r4] ldrb r1, [r4, 0x1] ldr r2, _0810DF1C 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 adds r0, r1 cmp r0, 0x30 bls _0810DF0C b _0810E056 _0810DF0C: lsls r0, 2 ldr r1, _0810DF24 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 b _0810E03E .align 2, 0 _0810DFF8: .4byte 0x00000231 _0810DFFC: movs r2, 0x8E lsls r2, 2 b _0810E03E _0810E002: ldr r2, _0810E008 b _0810E03E .align 2, 0 _0810E008: .4byte 0x00000239 _0810E00C: ldr r2, _0810E010 b _0810E03E .align 2, 0 _0810E010: .4byte 0x00000232 _0810E014: ldr r2, _0810E018 b _0810E03E .align 2, 0 _0810E018: .4byte 0x00000233 _0810E01C: ldr r2, _0810E020 b _0810E03E .align 2, 0 _0810E020: .4byte 0x0000023a _0810E024: ldr r2, _0810E028 b _0810E03E .align 2, 0 _0810E028: .4byte 0x0000023b _0810E02C: ldr r2, _0810E030 b _0810E03E .align 2, 0 _0810E030: .4byte 0x00000e42 _0810E034: ldr r2, _0810E038 b _0810E03E .align 2, 0 _0810E038: .4byte 0x00000e43 _0810E03C: ldr r2, _0810E048 _0810E03E: adds r0, r4, 0 adds r1, r5, 0 bl MapGridSetMetatileIdAt b _0810E056 .align 2, 0 _0810E048: .4byte 0x0000021a _0810E04C: ldr r2, _0810E06C 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 movs r1, 0 strb r1, [r0] ldr r0, _0810E094 strb r1, [r0] movs r0, 0x2C bl PlaySE ldr r0, _0810E098 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 ldr r5, _0810E0E8 ldrb r1, [r5] adds r0, r1, r0 ldr r4, _0810E0EC ldrb r2, [r4] ldrb r0, [r0] cmp r0, r2 bne _0810E0F8 ldr r0, _0810E0F0 ldrb r0, [r0] ldr r2, _0810E0F4 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 gUnknown_0202E8CC _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 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 ldrb r0, [r0] ldr r1, _0810E248 ldrh r1, [r1, 0x8] bl sub_810E104 pop {r0} bx r0 .align 2, 0 _0810E244: .4byte gUnknown_0202E8CC _0810E248: .4byte gUnknown_083F8376 thumb_func_end sub_810E230 thumb_func_start sub_810E24C sub_810E24C: @ 810E24C push {lr} ldr r0, _0810E258 bl ShowFieldMessage pop {r0} bx r0 .align 2, 0 _0810E258: .4byte gStringVar4 thumb_func_end sub_810E24C thumb_func_start sub_810E25C sub_810E25C: @ 810E25C ldr r1, _0810E26C ldr r2, _0810E270 ldrh r0, [r2] strh r0, [r1] ldr r1, _0810E274 ldrh r0, [r2, 0x2] strh r0, [r1] bx lr .align 2, 0 _0810E26C: .4byte gUnknown_0202E8CC _0810E270: .4byte gSaveBlock1 _0810E274: .4byte gUnknown_0202E8CE thumb_func_end sub_810E25C thumb_func_start sub_810E278 sub_810E278: @ 810E278 push {lr} ldr r0, _0810E294 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 sub_810E278 thumb_func_start sub_810E298 sub_810E298: @ 810E298 push {lr} ldr r0, _0810E2AC ldrb r0, [r0, 0x8] cmp r0, 0 bne _0810E2B8 ldr r0, _0810E2B0 ldr r1, _0810E2B4 bl StringCopy b _0810E2C0 .align 2, 0 _0810E2AC: .4byte gSaveBlock2 _0810E2B0: .4byte gStringVar1 _0810E2B4: .4byte gOtherText_BigGuy _0810E2B8: ldr r0, _0810E2C4 ldr r1, _0810E2C8 bl StringCopy _0810E2C0: pop {r0} bx r0 .align 2, 0 _0810E2C4: .4byte gStringVar1 _0810E2C8: .4byte gOtherText_BigGirl thumb_func_end sub_810E298 thumb_func_start sub_810E2CC sub_810E2CC: @ 810E2CC push {lr} ldr r0, _0810E2E0 ldrb r0, [r0, 0x8] cmp r0, 0 bne _0810E2EC ldr r0, _0810E2E4 ldr r1, _0810E2E8 bl StringCopy b _0810E2F4 .align 2, 0 _0810E2E0: .4byte gSaveBlock2 _0810E2E4: .4byte gStringVar1 _0810E2E8: .4byte gOtherText_Daughter _0810E2EC: ldr r0, _0810E2F8 ldr r1, _0810E2FC bl StringCopy _0810E2F4: pop {r0} bx r0 .align 2, 0 _0810E2F8: .4byte gStringVar1 _0810E2FC: .4byte gOtherText_Son thumb_func_end sub_810E2CC thumb_func_start sub_810E300 sub_810E300: @ 810E300 ldr r0, _0810E308 ldrb r0, [r0] bx lr .align 2, 0 _0810E308: .4byte gUnknown_02024D26 thumb_func_end sub_810E300 thumb_func_start sub_810E30C sub_810E30C: @ 810E30C push {lr} sub sp, 0x4 ldr r0, _0810E32C 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 gUnknown_0202E8CC _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 sub_810E30C thumb_func_start sub_810E348 sub_810E348: @ 810E348 push {lr} ldr r0, _0810E358 ldrh r0, [r0] bl FlagSet pop {r0} bx r0 .align 2, 0 _0810E358: .4byte gUnknown_0202E8CC thumb_func_end sub_810E348 thumb_func_start sub_810E35C sub_810E35C: @ 810E35C push {lr} ldr r0, _0810E37C movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0x7 bl __divsi3 lsls r0, 16 lsrs r0, 16 ldr r1, _0810E380 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 sub_810E35C thumb_func_start sub_810E384 sub_810E384: @ 810E384 push {r4,lr} bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r1, r0 ldr r0, _0810E3A8 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 sub_810E384 thumb_func_start sub_810E404 sub_810E404: @ 810E404 push {lr} ldr r0, _0810E410 bl sub_813EEB4 pop {r0} bx r0 .align 2, 0 _0810E410: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_end sub_810E404 thumb_func_start sub_810E414 sub_810E414: @ 810E414 push {lr} ldr r0, _0810E420 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0810E420: .4byte sub_810E404 thumb_func_end sub_810E414 thumb_func_start sub_810E424 sub_810E424: @ 810E424 push {r4,lr} ldr r4, _0810E460 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 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 sub_810E468 _0810E464: .4byte gTasks thumb_func_end sub_810E424 thumb_func_start sub_810E468 sub_810E468: @ 810E468 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _0810E48C adds r1, r0 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 bne _0810E486 adds r0, r1, 0 bl sub_810E490 _0810E486: pop {r0} bx r0 .align 2, 0 _0810E48C: .4byte gTasks thumb_func_end sub_810E468 thumb_func_start sub_810E490 sub_810E490: @ 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 sub_810E508 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 sub_810E490 thumb_func_start sub_810E508 sub_810E508: @ 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 ldrh r0, [r0] cmp r0, 0 bne _0810E52C movs r3, 0x4 b _0810E566 .align 2, 0 _0810E528: .4byte gUnknown_0202E8CC _0810E52C: cmp r0, 0x1 bne _0810E538 ldr r3, _0810E534 b _0810E566 .align 2, 0 _0810E534: .4byte 0x0000025a _0810E538: cmp r0, 0x2 bne _0810E566 ldr r3, _0810E540 b _0810E566 .align 2, 0 _0810E540: .4byte 0x00000259 _0810E544: ldr r0, _0810E550 ldrh r0, [r0] cmp r0, 0 bne _0810E554 movs r3, 0x5 b _0810E566 .align 2, 0 _0810E550: .4byte gUnknown_0202E8CC _0810E554: cmp r0, 0x1 bne _0810E560 ldr r3, _0810E55C b _0810E566 .align 2, 0 _0810E55C: .4byte 0x0000027f _0810E560: cmp r0, 0x2 bne _0810E566 ldr r3, _0810E594 _0810E566: ldr r2, _0810E598 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 sub_810E508 thumb_func_start sub_810E59C sub_810E59C: @ 810E59C push {lr} bl sub_810E5A8 pop {r0} bx r0 thumb_func_end sub_810E59C thumb_func_start sub_810E5A8 sub_810E5A8: @ 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 ldrh r0, [r0] cmp r0, 0 bne _0810E5EC movs r4, 0x4 b _0810E5FE .align 2, 0 _0810E5E8: .4byte gUnknown_0202E8CC _0810E5EC: cmp r0, 0x1 bne _0810E5F8 ldr r4, _0810E5F4 b _0810E5FE .align 2, 0 _0810E5F4: .4byte 0x0000025a _0810E5F8: cmp r0, 0x2 bne _0810E5FE ldr r4, _0810E630 _0810E5FE: ldr r2, _0810E634 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 sub_810E5A8 thumb_func_start sub_810E638 sub_810E638: @ 810E638 push {r4,lr} ldr r4, _0810E674 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 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 sub_810E67C _0810E678: .4byte gTasks thumb_func_end sub_810E638 thumb_func_start sub_810E67C sub_810E67C: @ 810E67C push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _0810E6A0 adds r1, r0 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 bne _0810E69A adds r0, r1, 0 bl sub_810E6A4 _0810E69A: pop {r0} bx r0 .align 2, 0 _0810E6A0: .4byte gTasks thumb_func_end sub_810E67C thumb_func_start sub_810E6A4 sub_810E6A4: @ 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 movs r0, 0x12 movs r1, 0x8 bl MapGridSetMetatileIdAt ldr r2, _0810E6D8 movs r0, 0x12 movs r1, 0x9 bl MapGridSetMetatileIdAt b _0810E6F2 .align 2, 0 _0810E6D4: .4byte 0x00000e9d _0810E6D8: .4byte 0x00000ea5 _0810E6DC: ldr r2, _0810E720 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 sub_810E6A4 thumb_func_start sub_810E724 sub_810E724: @ 810E724 push {lr} ldr r2, _0810E744 movs r0, 0x12 movs r1, 0x8 bl MapGridSetMetatileIdAt ldr r2, _0810E748 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 sub_810E724 thumb_func_start sub_810E74C sub_810E74C: @ 810E74C push {lr} ldr r0, _0810E768 ldrb r0, [r0, 0x15] subs r0, 0x11 lsls r0, 24 asrs r0, 24 cmp r0, 0x5 bhi _0810E79C lsls r0, 2 ldr r1, _0810E76C 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 bl VarSet pop {r0} bx r0 .align 2, 0 _0810E7A8: .4byte 0x00004043 thumb_func_end sub_810E74C thumb_func_start sub_810E7AC sub_810E7AC: @ 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 ldrh r1, [r0] adds r2, r0, 0 ldr r3, _0810E820 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 gUnknown_0202E8CC _0810E820: .4byte gUnknown_03000760 thumb_func_end sub_810E7AC thumb_func_start sub_810E824 sub_810E824: @ 810E824 push {r4,r5,lr} movs r4, 0 ldr r5, _0810E868 strb r4, [r5] ldr r0, _0810E86C strb r4, [r0] movs r0, 0x10 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_810E7AC ldr r2, _0810E870 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 sub_810E824 thumb_func_start sub_810E874 sub_810E874: @ 810E874 push {r4-r6,lr} sub sp, 0x8 bl ScriptContext2_Enable ldr r4, _0810E8B8 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 strb r4, [r0] bl sub_80F944C bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed 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 ldrb r0, [r1] cmp r0, 0x10 beq _0810E924 ldr r6, _0810E93C 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 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 movs r1, 0x15 movs r2, 0x1 movs r3, 0x40 bl sub_8072BD8 ldr r1, _0810E97C ldr r0, _0810E980 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 gUnknown_0202E8CE 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 ldrh r0, [r0, 0x2E] cmp r0, 0x40 bne _0810E9B8 ldr r1, _0810EA48 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 ldrh r0, [r0, 0x2E] cmp r0, 0x80 bne _0810E9E8 ldr r2, _0810EA48 ldrb r1, [r2] ldr r0, _0810EA4C 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 ldrh r2, [r0, 0x2E] movs r5, 0x1 adds r1, r5, 0 ands r1, r2 cmp r1, 0 beq _0810EA94 ldr r1, _0810EA50 ldr r4, _0810EA48 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 ldrh r0, [r1] ldrb r2, [r4] cmp r0, r2 bne _0810EA5C ldr r1, _0810EA58 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 gUnknown_0202E8CE _0810EA58: .4byte gScriptResult _0810EA5C: ldr r0, _0810EA88 strh r5, [r0] ldrb r0, [r4] strh r0, [r1] bl sub_810EBEC ldr r0, _0810EA8C ldrb r0, [r0] ldr r2, _0810EA90 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 gUnknown_0202E8DE _0810EA90: .4byte gSaveBlock1 _0810EA94: movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _0810EABC ldr r0, _0810EAC4 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 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 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 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 lsls r1, r4, 2 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x10 beq _0810EB76 ldr r0, _0810EB8C 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 ldrb r1, [r0] movs r2, 0x2 eors r1, r2 strb r1, [r0] movs r0, 0 bl SetBgTilemapBuffer b _0810EBB8 .align 2, 0 _0810EBB0: .4byte gUnknown_0203925C _0810EBB4: bl sub_810ECB0 _0810EBB8: adds r1, r4, r5 ldr r0, _0810EBC8 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 ldrb r1, [r0] movs r2, 0x1 eors r1, r2 strb r1, [r0] movs r0, 0x1 bl SetBgTilemapBuffer _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 movs r1, 0x9 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0810EC30 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 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 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 sub_80F953C _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 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 sub_80F953C _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 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 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 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 movs r0, 0x7 movs r1, 0x7 bl MapGridSetMetatileIdAt ldr r4, _0810EE00 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 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 movs r0, 0xA movs r1, 0x8 bl MapGridSetMetatileIdAt ldr r2, _0810EE0C 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 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 movs r0, 0x7 movs r1, 0x7 bl MapGridSetMetatileIdAt ldr r4, _0810EEC4 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 movs r0, 0xA movs r1, 0x7 bl MapGridSetMetatileIdAt ldr r2, _0810EECC 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 movs r0, 0xA movs r1, 0x8 bl MapGridSetMetatileIdAt ldr r2, _0810EED4 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 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 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0810EEF0 movs r0, 0x1 bl SetBgTilemapBuffer _0810EEF0: ldrb r0, [r4] lsrs r0, 1 cmp r0, 0x1 bne _0810EEFE movs r0, 0 bl SetBgTilemapBuffer _0810EEFE: bl BuyMenuFreeMemory pop {r4} pop {r0} bx r0 .align 2, 0 _0810EF08: .4byte gUnknown_0203925C thumb_func_end sub_810EEDC thumb_func_start sub_810EF0C sub_810EF0C: @ 810EF0C push {lr} ldr r1, _0810EF1C ldr r0, _0810EF20 strh r0, [r1] bl FlagSet pop {r0} bx r0 .align 2, 0 _0810EF1C: .4byte gUnknown_0202E8CC _0810EF20: .4byte 0x00000259 thumb_func_end sub_810EF0C thumb_func_start sub_810EF24 sub_810EF24: @ 810EF24 push {lr} ldr r1, _0810EF34 ldr r0, _0810EF38 strh r0, [r1] bl FlagReset pop {r0} bx r0 .align 2, 0 _0810EF34: .4byte gUnknown_0202E8CC _0810EF38: .4byte 0x00000259 thumb_func_end sub_810EF24 thumb_func_start sub_810EF3C sub_810EF3C: @ 810EF3C push {lr} bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810EF5C 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 sub_810EF3C thumb_func_start sub_810EF68 sub_810EF68: @ 810EF68 push {lr} bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810EF88 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 sub_810EF68 thumb_func_start sub_810EF94 sub_810EF94: @ 810EF94 push {lr} bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810EFB4 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 sub_810EF94 thumb_func_start sub_810EFC0 sub_810EFC0: @ 810EFC0 push {lr} bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810EFE0 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 sub_810EFC0 thumb_func_start sub_810EFEC sub_810EFEC: @ 810EFEC push {lr} bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810F00C 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 sub_810EFEC thumb_func_start sub_810F018 sub_810F018: @ 810F018 push {r4-r6,lr} movs r5, 0 ldr r6, _0810F068 _0810F01E: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _0810F06C 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 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 movs r0, 0 _0810F082: strh r0, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810F08C: .4byte gScriptResult thumb_func_end sub_810F018 thumb_func_start sub_810F090 sub_810F090: @ 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 strb r4, [r0] bl sub_80F944C bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed bl sub_810F2B4 ldr r5, _0810F108 _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 movs r0, 0 strb r0, [r1] ldr r1, _0810F110 movs r0, 0x8 strb r0, [r1] ldr r0, _0810F114 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 sub_810F090 thumb_func_start sub_810F118 sub_810F118: @ 810F118 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0810F1E4 ldrh r0, [r0, 0x2E] cmp r0, 0x40 bne _0810F14A ldr r1, _0810F1E8 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 ldrh r0, [r0, 0x2E] cmp r0, 0x80 bne _0810F17A ldr r2, _0810F1E8 ldrb r1, [r2] ldr r0, _0810F1EC 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 ldrh r1, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0810F1AE bl sub_8072DEC ldr r0, _0810F1F0 ldr r1, _0810F1E8 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 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 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 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 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 sub_810F2DC movs r0, 0x2 movs r1, 0x1 movs r2, 0x9 movs r3, 0xA bl MenuFillWindowRectWithBlankTile movs r5, 0 ldr r7, _0810F28C _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 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 sub_80F953C _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 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 sub_80F953C _0810F2D2: pop {r0} bx r0 .align 2, 0 _0810F2D8: .4byte gUnknown_0203925C thumb_func_end sub_810F2B4 thumb_func_start sub_810F2DC sub_810F2DC: @ 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 ldrb r1, [r0] movs r2, 0x2 eors r1, r2 strb r1, [r0] movs r0, 0 bl SetBgTilemapBuffer b _0810F304 .align 2, 0 _0810F2FC: .4byte gUnknown_0203925C _0810F300: bl sub_810F290 _0810F304: adds r1, r4, r5 ldr r0, _0810F314 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 ldrb r1, [r0] movs r2, 0x1 eors r1, r2 strb r1, [r0] movs r0, 0x1 bl SetBgTilemapBuffer _0810F32C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810F334: .4byte gUnknown_0203925C thumb_func_end sub_810F2DC thumb_func_start SpawnScriptFieldObject SpawnScriptFieldObject: @ 810F338 push {lr} sub sp, 0x8 ldr r0, _0810F380 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 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 SpawnScriptFieldObject thumb_func_start sub_810F388 sub_810F388: @ 810F388 push {lr} bl GetPlayerAvatarObjectId lsls r0, 24 lsrs r0, 24 bl CameraObjectSetFollowedObjectId ldr r0, _0810F3A8 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 sub_810F388 thumb_func_start sub_810F3AC sub_810F3AC: @ 810F3AC push {lr} bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810F3D4 adds r0, r1 bl GetNature lsls r0, 24 lsrs r0, 24 ldr r1, _0810F3D8 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 sub_810F3AC thumb_func_start sub_810F3DC sub_810F3DC: @ 810F3DC push {r4,lr} ldr r4, _0810F3FC ldr r0, _0810F400 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 sub_810F3DC 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 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 ldr r1, _0810F45C adds r0, r2, r1 ldrb r1, [r0] lsls r1, 25 ldr r0, _0810F460 adds r2, r0 lsrs r1, 25 ldrh r2, [r2] adds r1, r2 ldr r2, _0810F464 ldr r0, _0810F468 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 b _0810F472 .align 2, 0 _0810F458: .4byte gSaveBlock1 _0810F45C: .4byte 0x00002dd4 _0810F460: .4byte 0x00002dd6 _0810F464: .4byte gUnknown_083F83E0 _0810F468: .4byte gUnknown_0202E8CC _0810F46C: .4byte gUnknown_083F83EC _0810F470: ldr r4, _0810F484 _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 ldr r0, _0810F4A4 strh r0, [r1] bl FlagGet lsls r0, 24 cmp r0, 0 beq _0810F4A8 movs r0, 0x1 b _0810F4AA .align 2, 0 _0810F4A0: .4byte gUnknown_0202E8CC _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 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 gUnknown_0202E8CC _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 ldr r0, _0810F4F0 strh r0, [r1] bl FlagGet lsls r0, 24 cmp r0, 0 beq _0810F4F4 movs r0, 0x1 b _0810F4F6 .align 2, 0 _0810F4EC: .4byte gUnknown_0202E8CC _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 ldr r0, _0810F518 strh r0, [r1] bl FlagGet lsls r0, 24 cmp r0, 0 beq _0810F51C movs r0, 0x1 b _0810F51E .align 2, 0 _0810F514: .4byte gUnknown_0202E8CC _0810F518: .4byte 0x0000027a _0810F51C: movs r0, 0 _0810F51E: pop {r1} bx r1 thumb_func_end sub_810F4FC thumb_func_start sub_810F524 sub_810F524: @ 810F524 push {lr} bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810F548 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 sub_810F524 thumb_func_start sub_810F54C sub_810F54C: @ 810F54C push {lr} sub sp, 0x4 movs r0, 0x2A bl sav12_xor_increment ldr r0, _0810F580 bl FlagSet movs r1, 0x1 mov r0, sp strb r1, [r0] bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810F584 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 sub_810F54C thumb_func_start sub_810F588 sub_810F588: @ 810F588 push {lr} bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810F5AC adds r0, r1 bl sub_8040020 lsls r0, 16 ldr r1, _0810F5B0 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 sub_810F588 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 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 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 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 bl FlagSet pop {r0} bx r0 .align 2, 0 _0810F624: .4byte 0x0000085f thumb_func_end sub_810F618 thumb_func_start sub_810F628 sub_810F628: @ 810F628 push {r4,r5,lr} sub sp, 0x14 ldr r5, _0810F690 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 sub_810F628 thumb_func_start sub_810F694 sub_810F694: @ 810F694 push {r4-r6,lr} ldr r0, _0810F6D0 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 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 sub_810F694 thumb_func_start sub_810F6EC sub_810F6EC: @ 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 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 sub_810F6EC thumb_func_start sub_810F738 sub_810F738: @ 810F738 push {lr} ldr r0, _0810F74C movs r1, 0x3F bl sub_8040110 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 sub_810F738 thumb_func_start sub_810F758 sub_810F758: @ 810F758 push {lr} ldr r0, _0810F798 movs r1, 0x9 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0810F79C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _0810F7A0 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 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 gUnknown_0202E8CE _0810F7A4: .4byte gUnknown_0202E8CC 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 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 sub_810F83C sub_810F83C: @ 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 sub_80806B4 _0810F858: pop {r0} bx r0 thumb_func_end sub_810F83C thumb_func_start sub_810F85C sub_810F85C: @ 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 sub_80806B4 _0810F878: pop {r0} bx r0 thumb_func_end sub_810F85C thumb_func_start sub_810F87C sub_810F87C: @ 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 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 sub_810F87C thumb_func_start sub_810F8D4 sub_810F8D4: @ 810F8D4 push {lr} ldr r0, _0810F8F4 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0810F8F8 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 gUnknown_0202E8CC _0810F8F8: .4byte gPlayerParty thumb_func_end sub_810F8D4 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 bl VarGet lsls r0, 16 lsrs r0, 16 adds r3, r0, 0 ldr r2, _0810F92C 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 ldr r4, _0810F968 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 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0810F998 adds r0, r1 ldr r4, _0810F99C movs r1, 0x7 adds r2, r4, 0 bl GetMonData ldr r0, _0810F9A0 adds r1, r4, 0 bl StringCompareWithoutExtCtrlCodes cmp r0, 0 beq _0810F9A4 movs r0, 0x1 b _0810F9A6 .align 2, 0 _0810F994: .4byte gUnknown_0202E8CC _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 ldrh r1, [r2] ldr r0, _0810F9C4 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 cmp r1, r0 bls _0810F9E0 ldr r4, _0810F9DC 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 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 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 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 ldr r2, _0810FA6C adds r1, r0, r2 movs r2, 0 strh r2, [r1] ldr r1, _0810FA70 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 ldr r1, _0810FA98 ldrh r1, [r1, 0xE] ldr r2, _0810FA9C 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 ldr r1, _0810FAF4 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 ldrh r1, [r0, 0xE] ldr r2, _0810FAFC adds r0, r4, r2 strh r1, [r0] ldr r0, _0810FB00 bl FlagReset ldr r0, _0810FB04 bl FlagReset ldr r0, _0810FB08 bl FlagReset movs r0, 0xC6 lsls r0, 2 bl FlagReset ldr r0, _0810FB0C 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 bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bne _0810FB80 ldr r0, _0810FB58 ldr r1, _0810FB5C adds r4, r0, r1 ldrh r2, [r4] movs r1, 0x7F ands r1, r2 ldr r0, _0810FB60 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 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 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 ldr r1, _0810FB98 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 movs r6, 0x1 _0810FBA8: ldrh r1, [r7] ldr r0, _0810FBDC 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 ldr r0, _0810FC10 adds r2, r0 ldr r1, _0810FC14 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 movs r4, 0x1 _0810FC44: ldrh r1, [r2] ldr r7, _0810FCA4 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 ldr r1, _0810FCAC 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 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 ldrh r1, [r2, 0xE] ldr r0, _0810FD0C cmp r1, r0 bhi _0810FD54 ldr r7, _0810FD10 adds r6, r2, 0 ldr r0, _0810FD14 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 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 ldr r1, _0810FD78 adds r0, r1 ldrh r0, [r0] ldr r1, _0810FD7C 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 gUnknown_0202E8CC thumb_func_end sub_810FD60 thumb_func_start sub_810FD80 sub_810FD80: @ 810FD80 ldr r2, _0810FDA4 ldr r0, _0810FDA8 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 ldrh r0, [r0] subs r0, 0x8 cmp r0, 0x7 bhi _0810FE0C lsls r0, 2 ldr r1, _0810FDCC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0810FDC8: .4byte gUnknown_0202E8CC _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 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 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 ldr r1, _0810FE68 bl StringCopy b _0810FEF2 .align 2, 0 _0810FE64: .4byte gStringVar1 _0810FE68: .4byte gOtherText_Steven _0810FE6C: ldr r0, _0810FE78 ldr r1, _0810FE7C bl StringCopy b _0810FEF2 .align 2, 0 _0810FE78: .4byte gStringVar1 _0810FE7C: .4byte gOtherText_Brawly _0810FE80: ldr r0, _0810FE8C ldr r1, _0810FE90 bl StringCopy b _0810FEF2 .align 2, 0 _0810FE8C: .4byte gStringVar1 _0810FE90: .4byte gOtherText_Winona _0810FE94: ldr r0, _0810FEA0 ldr r1, _0810FEA4 bl StringCopy b _0810FEF2 .align 2, 0 _0810FEA0: .4byte gStringVar1 _0810FEA4: .4byte gOtherText_Phoebe _0810FEA8: ldr r0, _0810FEB4 ldr r1, _0810FEB8 bl StringCopy b _0810FEF2 .align 2, 0 _0810FEB4: .4byte gStringVar1 _0810FEB8: .4byte gOtherText_Glacia _0810FEBC: ldr r0, _0810FEC8 ldr r1, _0810FECC bl StringCopy b _0810FEF2 .align 2, 0 _0810FEC8: .4byte gStringVar1 _0810FECC: .4byte gOtherText_Wallace _0810FED0: ldr r4, _0810FEF8 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 bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bne _0810FF2C bl sub_810FA74 ldr r0, _0810FF24 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 ldr r1, _0810FF44 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 ldr r1, _0810FF5C 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 ldrb r0, [r0] bl sub_810FB10 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0810FF74: .4byte gUnknown_0202E8CC thumb_func_end sub_810FF60 thumb_func_start sub_810FF78 sub_810FF78: @ 810FF78 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 mov r1, sp movs r0, 0 strh r0, [r1] ldr r2, _0810FFA4 mov r0, sp adds r1, r4, 0 bl CpuSet movs r0, 0xFF strb r0, [r4] movs r0, 0 strh r0, [r4, 0x8] strh r0, [r4, 0xA] strh r0, [r4, 0xC] strh r0, [r4, 0xE] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0810FFA4: .4byte 0x01000008 thumb_func_end sub_810FF78 thumb_func_start sub_810FFA8 sub_810FFA8: @ 810FFA8 push {r4,r5,lr} adds r4, r0, 0 movs r5, 0x4 _0810FFAE: adds r0, r4, 0 bl sub_810FF78 adds r4, 0x10 subs r5, 0x1 cmp r5, 0 bge _0810FFAE movs r0, 0x17 movs r1, 0 bl sav12_xor_set movs r0, 0x18 movs r1, 0 bl sav12_xor_set movs r0, 0x19 movs r1, 0 bl sav12_xor_set pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_810FFA8 thumb_func_start sub_810FFDC sub_810FFDC: @ 810FFDC adds r1, r0, 0 ldrh r0, [r1, 0xA] ldrh r2, [r1, 0xC] adds r0, r2 ldrh r1, [r1, 0xE] adds r0, r1 bx lr thumb_func_end sub_810FFDC thumb_func_start sub_810FFEC sub_810FFEC: @ 810FFEC push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r1 lsls r2, 16 lsrs r7, r2, 16 movs r5, 0 ldr r6, _08110024 adds r4, r0, 0 _0810FFFE: adds r0, r6, 0 adds r1, r4, 0 movs r2, 0x7 bl memcpy movs r0, 0xFF strb r0, [r6, 0x7] adds r0, r6, 0 mov r1, r8 bl StringCompareWithoutExtCtrlCodes cmp r0, 0 bne _08110028 ldrh r0, [r4, 0x8] cmp r0, r7 bne _08110028 adds r0, r5, 0 b _08110032 .align 2, 0 _08110024: .4byte gStringVar1 _08110028: adds r4, 0x10 adds r5, 0x1 cmp r5, 0x4 ble _0810FFFE movs r0, 0x5 _08110032: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_810FFEC thumb_func_start sub_811003C sub_811003C: @ 811003C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 mov r8, r0 movs r0, 0x4 _0811004A: subs r2, r0, 0x1 mov r9, r2 cmp r2, 0 blt _081100A4 lsls r0, 4 mov r1, r8 adds r6, r1, r0 lsls r0, r2, 4 adds r5, r0, r1 _0811005C: adds r0, r6, 0 str r2, [sp, 0x10] bl sub_810FFDC adds r4, r0, 0 adds r0, r5, 0 bl sub_810FFDC ldr r2, [sp, 0x10] cmp r4, r0 ble _08110096 mov r1, sp adds r0, r6, 0 ldm r0!, {r3,r4,r7} stm r1!, {r3,r4,r7} ldr r0, [r0] str r0, [r1] adds r1, r6, 0 adds r0, r5, 0 ldm r0!, {r3,r4,r7} stm r1!, {r3,r4,r7} ldr r0, [r0] str r0, [r1] adds r1, r5, 0 mov r0, sp ldm r0!, {r3,r4,r7} stm r1!, {r3,r4,r7} ldr r0, [r0] str r0, [r1] _08110096: subs r5, 0x10 movs r0, 0x1 negs r0, r0 add r9, r0 mov r1, r9 cmp r1, 0 bge _0811005C _081100A4: adds r0, r2, 0 cmp r0, 0 bgt _0811004A add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_811003C thumb_func_start sub_81100B8 sub_81100B8: @ 81100B8 push {lr} adds r2, r0, 0 cmp r1, 0x2 beq _081100E8 cmp r1, 0x2 bgt _081100CA cmp r1, 0x1 beq _081100D0 b _08110112 _081100CA: cmp r1, 0x3 beq _08110100 b _08110112 _081100D0: ldrh r0, [r2, 0xA] adds r0, 0x1 strh r0, [r2, 0xA] lsls r0, 16 lsrs r0, 16 ldr r1, _081100E4 cmp r0, r1 bls _08110112 strh r1, [r2, 0xA] b _08110112 .align 2, 0 _081100E4: .4byte 0x0000270f _081100E8: ldrh r0, [r2, 0xC] adds r0, 0x1 strh r0, [r2, 0xC] lsls r0, 16 lsrs r0, 16 ldr r1, _081100FC cmp r0, r1 bls _08110112 strh r1, [r2, 0xC] b _08110112 .align 2, 0 _081100FC: .4byte 0x0000270f _08110100: ldrh r0, [r2, 0xE] adds r0, 0x1 strh r0, [r2, 0xE] lsls r0, 16 lsrs r0, 16 ldr r1, _08110118 cmp r0, r1 bls _08110112 strh r1, [r2, 0xE] _08110112: pop {r0} bx r0 .align 2, 0 _08110118: .4byte 0x0000270f thumb_func_end sub_81100B8 thumb_func_start sub_811011C sub_811011C: @ 811011C push {r4,lr} cmp r0, 0x2 beq _08110136 cmp r0, 0x2 bgt _0811012C cmp r0, 0x1 beq _08110132 b _0811014E _0811012C: cmp r0, 0x3 beq _0811013A b _0811014E _08110132: movs r4, 0x17 b _0811013C _08110136: movs r4, 0x18 b _0811013C _0811013A: movs r4, 0x19 _0811013C: adds r0, r4, 0 bl sub_8053108 ldr r1, _08110154 cmp r0, r1 bhi _0811014E adds r0, r4, 0 bl sav12_xor_increment _0811014E: pop {r4} pop {r0} bx r0 .align 2, 0 _08110154: .4byte 0x0000270e thumb_func_end sub_811011C thumb_func_start sub_8110158 sub_8110158: @ 8110158 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r5, r0, 0 adds r7, r1, 0 mov r10, r3 ldr r0, [sp, 0x20] lsls r2, 16 lsrs r2, 16 mov r9, r2 lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r0, r10 bl sub_811011C adds r0, r5, 0 bl sub_811003C adds r0, r5, 0 adds r1, r7, 0 mov r2, r9 bl sub_810FFEC adds r6, r0, 0 cmp r6, 0x5 bne _081101CC movs r6, 0x4 adds r4, r5, 0 adds r4, 0x40 adds r0, r4, 0 bl sub_810FF78 mov r0, r8 cmp r0, 0x1 bne _081101BA movs r0, 0xFC strb r0, [r4] movs r0, 0x15 strb r0, [r4, 0x1] adds r0, r5, 0 adds r0, 0x42 adds r1, r7, 0 movs r2, 0x5 bl StringCopyN b _081101C4 _081101BA: adds r0, r4, 0 adds r1, r7, 0 movs r2, 0x7 bl StringCopyN _081101C4: lsls r0, r6, 4 adds r0, r5, r0 mov r1, r9 strh r1, [r0, 0x8] _081101CC: lsls r0, r6, 4 adds r0, r5, r0 mov r1, r10 bl sub_81100B8 adds r0, r5, 0 bl sub_811003C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8110158 thumb_func_start GameFreakRTC_Reset GameFreakRTC_Reset: @ 81101EC push {lr} ldr r0, _081101F8 bl sub_810FFA8 pop {r0} bx r0 .align 2, 0 _081101F8: .4byte gSaveBlock1 + 0x30B8 thumb_func_end GameFreakRTC_Reset thumb_func_start sub_81101FC sub_81101FC: @ 81101FC push {lr} lsls r1, r0, 3 subs r1, r0 lsls r1, 3 ldr r0, _08110220 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 ldr r2, _08110224 cmp r0, r2 bls _0811021A strh r2, [r1] _0811021A: pop {r0} bx r0 .align 2, 0 _08110220: .4byte gUnknown_0202FFD4 _08110224: .4byte 0x0000270f thumb_func_end sub_81101FC thumb_func_start sub_8110228 sub_8110228: @ 8110228 push {lr} lsls r1, r0, 3 subs r1, r0 lsls r1, 3 ldr r0, _0811024C adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 ldr r2, _08110250 cmp r0, r2 bls _08110246 strh r2, [r1] _08110246: pop {r0} bx r0 .align 2, 0 _0811024C: .4byte gUnknown_0202FFD6 _08110250: .4byte 0x0000270f thumb_func_end sub_8110228 thumb_func_start sub_8110254 sub_8110254: @ 8110254 push {r4,lr} adds r4, r0, 0 ldr r0, _08110268 ldrb r0, [r0] cmp r0, 0x1 beq _0811026C cmp r0, 0x2 beq _0811027A b _08110288 .align 2, 0 _08110268: .4byte gUnknown_02024D26 _0811026C: eors r0, r4 bl sub_81101FC adds r0, r4, 0 bl sub_8110228 b _08110288 _0811027A: movs r0, 0x1 eors r0, r4 bl sub_8110228 adds r0, r4, 0 bl sub_81101FC _08110288: pop {r4} pop {r0} bx r0 thumb_func_end sub_8110254 thumb_func_start sub_8110290 sub_8110290: @ 8110290 push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 bl sub_8110254 ldr r0, _081102D4 lsls r2, r4, 3 subs r2, r4 lsls r2, 3 ldr r3, _081102D8 adds r1, r2, r3 subs r3, 0x30 adds r2, r3 ldrh r2, [r2, 0xE] ldr r3, _081102DC ldrb r3, [r3] ldr r6, _081102E0 ldr r5, _081102E4 lsls r4, 2 adds r4, r5 ldrb r5, [r4, 0x1] lsls r4, r5, 3 subs r4, r5 lsls r4, 2 adds r4, r6 ldrb r4, [r4, 0x1A] str r4, [sp] bl sub_8110158 add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081102D4: .4byte gSaveBlock1 + 0x30B8 _081102D8: .4byte gUnknown_0202FFF0 _081102DC: .4byte gUnknown_02024D26 _081102E0: .4byte gLinkPlayers _081102E4: .4byte gUnknown_02029818 thumb_func_end sub_8110290 thumb_func_start sub_81102E8 sub_81102E8: @ 81102E8 push {r4,lr} ldr r4, _08110338 movs r0, 0x17 bl sub_8053108 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN_DigitWidth6 ldr r4, _0811033C movs r0, 0x18 bl sub_8053108 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN_DigitWidth6 ldr r4, _08110340 movs r0, 0x19 bl sub_8053108 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN_DigitWidth6 ldr r0, _08110344 movs r1, 0x3 movs r2, 0x3 bl MenuPrint pop {r4} pop {r0} bx r0 .align 2, 0 _08110338: .4byte gStringVar1 _0811033C: .4byte gStringVar2 _08110340: .4byte gStringVar3 _08110344: .4byte gOtherText_WinRecord thumb_func_end sub_81102E8 thumb_func_start sub_8110348 sub_8110348: @ 8110348 push {r4-r7,lr} sub sp, 0x10 adds r7, r0, 0 lsls r1, 24 lsrs r6, r1, 24 ldrh r0, [r7, 0xA] cmp r0, 0 bne _081103C0 ldr r0, [r7, 0xC] cmp r0, 0 bne _081103C0 mov r0, sp movs r2, 0xFC strb r2, [r0] mov r1, sp movs r0, 0x14 strb r0, [r1, 0x1] movs r0, 0x6 strb r0, [r1, 0x2] mov r0, sp strb r2, [r0, 0x3] movs r0, 0x11 strb r0, [r1, 0x4] movs r0, 0x1 strb r0, [r1, 0x5] mov r4, sp adds r4, 0x6 ldr r1, _081103B8 adds r0, r4, 0 bl StringCopy mov r0, sp movs r1, 0x3 adds r2, r6, 0 bl MenuPrint ldr r1, _081103BC adds r0, r4, 0 bl StringCopy mov r0, sp movs r1, 0xB adds r2, r6, 0 bl MenuPrint mov r0, sp movs r1, 0x11 adds r2, r6, 0 bl MenuPrint mov r0, sp movs r1, 0x17 adds r2, r6, 0 bl MenuPrint b _0811042E .align 2, 0 _081103B8: .4byte gOtherText_SevenDashes _081103BC: .4byte gOtherText_FourDashes _081103C0: ldr r4, _08110438 adds r0, r4, 0 movs r1, 0x8 bl StringFillWithTerminator adds r0, r4, 0 adds r1, r7, 0 movs r2, 0x7 bl StringCopyN adds r0, r4, 0 movs r1, 0x3 adds r2, r6, 0 bl MenuPrint movs r0, 0xFC strb r0, [r4] movs r0, 0x14 strb r0, [r4, 0x1] movs r0, 0x6 strb r0, [r4, 0x2] adds r5, r4, 0x3 ldrh r1, [r7, 0xA] adds r0, r5, 0 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN adds r0, r4, 0 movs r1, 0xB adds r2, r6, 0 bl MenuPrint ldrh r1, [r7, 0xC] adds r0, r5, 0 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN adds r0, r4, 0 movs r1, 0x11 adds r2, r6, 0 bl MenuPrint ldrh r1, [r7, 0xE] adds r0, r5, 0 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN adds r0, r4, 0 movs r1, 0x17 adds r2, r6, 0 bl MenuPrint _0811042E: add sp, 0x10 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08110438: .4byte gStringVar1 thumb_func_end sub_8110348 thumb_func_start sub_811043C sub_811043C: @ 811043C push {r4,lr} movs r0, 0x1 movs r1, 0 movs r2, 0x1C movs r3, 0x12 bl MenuDrawTextWindow ldr r0, _08110488 movs r1, 0 movs r2, 0x1 movs r3, 0xF0 bl sub_8072BD8 ldr r0, _0811048C bl sub_81102E8 ldr r0, _08110490 movs r1, 0xC movs r2, 0x6 bl MenuPrint movs r4, 0 _08110468: lsls r0, r4, 4 ldr r1, _0811048C adds r0, r1 adds r4, 0x1 lsls r1, r4, 25 movs r2, 0xC0 lsls r2, 19 adds r1, r2 lsrs r1, 24 bl sub_8110348 cmp r4, 0x4 ble _08110468 pop {r4} pop {r0} bx r0 .align 2, 0 _08110488: .4byte gOtherText_BattleResults _0811048C: .4byte gSaveBlock1 + 0x30B8 _08110490: .4byte gOtherText_WinLoseDraw thumb_func_end sub_811043C thumb_func_start sub_8110494 sub_8110494: @ 8110494 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _081104B4 ldr r2, _081104B8 adds r1, r2 adds r0, r1 ldrb r0, [r0] cmp r0, 0x6 bhi _081104E0 lsls r0, 2 ldr r1, _081104BC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081104B4: .4byte gSaveBlock2 + 0xA8 _081104B8: .4byte 0x000004ae _081104BC: .4byte _081104C0 .align 2, 0 _081104C0: .4byte _081104E0 .4byte _081104E0 .4byte _081104DC .4byte _081104DC .4byte _081104E0 .4byte _081104E0 .4byte _081104DC _081104DC: movs r0, 0x1 b _081104E2 _081104E0: movs r0, 0 _081104E2: pop {r1} bx r1 thumb_func_end sub_8110494 thumb_func_start sub_81104E8 sub_81104E8: @ 81104E8 push {r4-r6,lr} lsls r1, 16 lsrs r4, r1, 16 lsls r2, 24 lsrs r2, 24 adds r5, r2, 0 lsls r3, 24 lsrs r3, 24 adds r6, r3, 0 adds r1, r5, 0 adds r2, r6, 0 bl MenuPrint ldr r0, _0811052C cmp r4, r0 bls _0811050A adds r4, r0, 0 _0811050A: ldr r0, _08110530 adds r1, r4, 0 movs r2, 0x18 movs r3, 0x1 bl sub_8072C14 ldr r0, _08110534 adds r1, r5, 0x7 lsls r1, 24 lsrs r1, 24 adds r2, r6, 0 bl MenuPrint pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811052C: .4byte 0x0000270f _08110530: .4byte gStringVar1 _08110534: .4byte gOtherText_WinStreak thumb_func_end sub_81104E8 thumb_func_start sub_8110538 sub_8110538: @ 8110538 push {r4,lr} adds r4, r1, 0 adds r3, r2, 0 lsls r0, 24 lsls r4, 24 lsrs r4, 24 lsls r3, 24 lsrs r3, 24 ldr r1, _08110564 lsrs r0, 23 movs r2, 0x97 lsls r2, 3 adds r1, r2 adds r0, r1 ldrh r1, [r0] ldr r0, _08110568 adds r2, r4, 0 bl sub_81104E8 pop {r4} pop {r0} bx r0 .align 2, 0 _08110564: .4byte gSaveBlock2 + 0xA8 _08110568: .4byte gOtherText_Record thumb_func_end sub_8110538 thumb_func_start sub_811056C sub_811056C: @ 811056C push {lr} lsls r0, 24 ldr r1, _08110588 lsrs r0, 23 ldr r2, _0811058C adds r1, r2 adds r0, r1 ldrh r0, [r0] ldr r1, _08110590 cmp r0, r1 bls _08110584 adds r0, r1, 0 _08110584: pop {r1} bx r1 .align 2, 0 _08110588: .4byte gSaveBlock2 _0811058C: .4byte 0x00000574 _08110590: .4byte 0x0000270f thumb_func_end sub_811056C thumb_func_start sub_8110594 sub_8110594: @ 8110594 push {r4-r7,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r7, r2, 24 adds r0, r4, 0 bl sub_811056C lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 bl sub_8110494 cmp r0, 0x1 bne _081105CC ldr r0, _081105C8 adds r1, r5, 0 adds r2, r6, 0 adds r3, r7, 0 bl sub_81104E8 b _081105D8 .align 2, 0 _081105C8: .4byte gOtherText_Current _081105CC: ldr r0, _081105E0 adds r1, r5, 0 adds r2, r6, 0 adds r3, r7, 0 bl sub_81104E8 _081105D8: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081105E0: .4byte gOtherText_Prev thumb_func_end sub_8110594 thumb_func_start sub_81105E4 sub_81105E4: @ 81105E4 push {r4,lr} movs r0, 0x3 movs r1, 0x1 movs r2, 0x1B movs r3, 0x11 bl MenuDrawTextWindow ldr r0, _08110658 movs r1, 0x3 movs r2, 0x2 movs r3, 0xC8 bl sub_8072BD8 ldr r0, _0811065C movs r1, 0x5 movs r2, 0x6 bl MenuPrint ldr r0, _08110660 movs r1, 0x5 movs r2, 0xC bl MenuPrint movs r4, 0x5 _08110614: lsls r1, r4, 24 lsrs r1, 24 movs r0, 0xAE movs r2, 0xA bl sub_8071F60 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x19 bls _08110614 movs r0, 0 movs r1, 0xA movs r2, 0x6 bl sub_8110594 movs r0, 0 movs r1, 0xA movs r2, 0x8 bl sub_8110538 movs r0, 0x1 movs r1, 0xA movs r2, 0xC bl sub_8110594 movs r0, 0x1 movs r1, 0xA movs r2, 0xE bl sub_8110538 pop {r4} pop {r0} bx r0 .align 2, 0 _08110658: .4byte gOtherText_BattleTowerResults _0811065C: .4byte gOtherText_Lv50 _08110660: .4byte gOtherText_Lv100 thumb_func_end sub_81105E4 thumb_func_start unref_sub_8110664 unref_sub_8110664: @ 8110664 push {lr} ldr r3, _08110678 str r1, [r3, 0x4] str r2, [r3, 0x8] strh r0, [r3, 0xE] ldr r0, _0811067C bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _08110678: .4byte 0x02000000 _0811067C: .4byte sub_8110680 thumb_func_end unref_sub_8110664 thumb_func_start sub_8110680 sub_8110680: @ 8110680 push {r4,lr} sub sp, 0x4 ldr r0, _0811069C ldr r1, _081106A0 adds r0, r1 ldrb r0, [r0] cmp r0, 0x7 bls _08110692 b _081107C0 _08110692: lsls r0, 2 ldr r1, _081106A4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0811069C: .4byte gMain _081106A0: .4byte 0x0000043c _081106A4: .4byte _081106A8 .align 2, 0 _081106A8: .4byte _081106C8 .4byte _08110720 .4byte _08110740 .4byte _08110746 .4byte _08110752 .4byte _08110770 .4byte _08110782 .4byte _081107A8 _081106C8: movs r0, 0 bl SetVBlankCallback movs r1, 0x80 lsls r1, 19 movs r2, 0xC4 lsls r2, 7 adds r0, r2, 0 strh r0, [r1] bl ResetPaletteFade bl ResetSpriteData bl ResetTasks bl FreeSpriteTileRanges bl FreeAllSpritePalettes ldr r0, _08110710 movs r1, 0 strh r1, [r0] ldr r2, _08110714 ldr r3, _08110718 adds r0, r3, 0 strh r0, [r2] ldr r0, _0811071C strh r1, [r0] subs r0, 0x2 strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x2 strh r1, [r0] b _081107C0 .align 2, 0 _08110710: .4byte REG_BG0HOFS _08110714: .4byte REG_BG0VOFS _08110718: .4byte 0x0000fff8 _0811071C: .4byte REG_BG2VOFS _08110720: ldr r4, _0811073C adds r0, r4, 0 movs r1, 0 bl sub_80FA8EC movs r0, 0x88 lsls r0, 4 adds r4, r0 adds r0, r4, 0 movs r1, 0 movs r2, 0x10 bl StringFill b _081107C0 .align 2, 0 _0811073C: .4byte 0x020006e8 _08110740: bl sub_8110824 b _081107C0 _08110746: bl sub_8110838 lsls r0, 24 cmp r0, 0 bne _081107CC b _081107C0 _08110752: movs r0, 0x1 movs r1, 0x1 bl sub_80FBCF0 movs r1, 0x8 negs r1, r1 movs r0, 0 bl sub_80FB2A4 ldr r0, _0811076C bl SetVBlankCallback b _081107C0 .align 2, 0 _0811076C: .4byte sub_81107DC _08110770: movs r0, 0x15 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade b _081107C0 _08110782: ldr r1, _0811079C ldr r2, _081107A0 adds r0, r2, 0 strh r0, [r1] bl sub_8111084 movs r1, 0x80 lsls r1, 19 ldr r3, _081107A4 adds r0, r3, 0 strh r0, [r1] b _081107C0 .align 2, 0 _0811079C: .4byte REG_BLDCNT _081107A0: .4byte 0x00003f41 _081107A4: .4byte 0x00007741 _081107A8: ldr r0, _081107B8 bl sub_8110814 ldr r0, _081107BC bl SetMainCallback2 b _081107CC .align 2, 0 _081107B8: .4byte sub_8111288 _081107BC: .4byte sub_81107F0 _081107C0: ldr r1, _081107D4 ldr r0, _081107D8 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _081107CC: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _081107D4: .4byte gMain _081107D8: .4byte 0x0000043c thumb_func_end sub_8110680 thumb_func_start sub_81107DC sub_81107DC: @ 81107DC push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_81107DC thumb_func_start sub_81107F0 sub_81107F0: @ 81107F0 push {lr} ldr r0, _08110810 ldr r0, [r0] bl _call_via_r0 bl sub_8111110 bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 .align 2, 0 _08110810: .4byte 0x02000000 thumb_func_end sub_81107F0 thumb_func_start sub_8110814 sub_8110814: @ 8110814 ldr r1, _08110820 str r0, [r1] movs r0, 0 strh r0, [r1, 0xC] bx lr .align 2, 0 _08110820: .4byte 0x02000000 thumb_func_end sub_8110814 thumb_func_start sub_8110824 sub_8110824: @ 8110824 ldr r0, _08110834 movs r1, 0x8A lsls r1, 1 adds r0, r1 movs r1, 0 strh r1, [r0] bx lr .align 2, 0 _08110834: .4byte 0x02000000 thumb_func_end sub_8110824 thumb_func_start sub_8110838 sub_8110838: @ 8110838 push {lr} ldr r1, _08110854 movs r2, 0x8A lsls r2, 1 adds r0, r1, r2 ldrh r0, [r0] adds r2, r1, 0 cmp r0, 0x5 bhi _081108E4 lsls r0, 2 ldr r1, _08110858 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08110854: .4byte 0x02000000 _08110858: .4byte _0811085C .align 2, 0 _0811085C: .4byte _08110874 .4byte _08110884 .4byte _0811088A .4byte _0811089C .4byte _081108C0 .4byte _081108D0 _08110874: ldr r0, _08110880 ldrh r0, [r0, 0xE] bl sub_8110908 b _081108F0 .align 2, 0 _08110880: .4byte 0x02000000 _08110884: bl sub_8110C34 b _081108F0 _0811088A: ldr r0, _08110894 ldr r1, _08110898 bl LZ77UnCompVram b _081108F0 .align 2, 0 _08110894: .4byte gUnknown_083F8438 _08110898: .4byte 0x0600c000 _0811089C: ldr r1, _081108B0 ldr r0, _081108B4 str r0, [r1] ldr r0, _081108B8 str r0, [r1, 0x4] ldr r0, _081108BC str r0, [r1, 0x8] ldr r0, [r1, 0x8] b _081108F0 .align 2, 0 _081108B0: .4byte 0x040000d4 _081108B4: .4byte 0x02000116 _081108B8: .4byte 0x0600f000 _081108BC: .4byte 0x80000280 _081108C0: ldr r0, _081108CC movs r1, 0 movs r2, 0x20 bl LoadPalette b _081108F0 .align 2, 0 _081108CC: .4byte gUnknown_083F8418 _081108D0: ldr r1, _081108E8 ldr r3, _081108EC adds r0, r3, 0 strh r0, [r1] movs r0, 0x8A lsls r0, 1 adds r1, r2, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _081108E4: movs r0, 0 b _08110900 .align 2, 0 _081108E8: .4byte REG_BG0CNT _081108EC: .4byte 0x00001e0d _081108F0: ldr r1, _08110904 movs r2, 0x8A lsls r2, 1 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] movs r0, 0x1 _08110900: pop {r1} bx r1 .align 2, 0 _08110904: .4byte 0x02000000 thumb_func_end sub_8110838 thumb_func_start sub_8110908 sub_8110908: @ 8110908 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 16 lsrs r7, r0, 16 .ifdef SAPPHIRE ldr r0, _sub_8110908_Latias .else @ Latios movs r0, 0xCC lsls r0, 1 .endif cmp r7, r0 bne _0811091E b _08110A44 _0811091E: ldr r2, _08110988 movs r1, 0x88 lsls r1, 1 adds r0, r2, r1 movs r1, 0 strh r1, [r0] movs r3, 0x89 lsls r3, 1 adds r0, r2, r3 strh r1, [r0] movs r6, 0 ldr r1, _0811098C _08110936: lsls r0, r6, 1 adds r0, r1 ldrh r0, [r0] cmp r0, r7 bne _08110942 b _08110A8C _08110942: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0 beq _08110936 movs r6, 0 ldr r4, _08110990 ldrh r0, [r4] movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _081109D0 mov r8, r4 adds r5, r4, 0x4 mov r9, r1 _08110960: lsls r0, r6, 1 adds r1, r0, r6 lsls r2, r1, 1 mov r3, r8 adds r1, r2, r3 adds r3, r0, 0 ldrh r1, [r1] cmp r7, r1 bne _081109BA adds r0, r4, 0x2 adds r0, r2, r0 ldrh r0, [r0] cmp r0, 0x18 beq _081109A6 cmp r0, 0x18 bgt _08110994 cmp r0, 0 beq _0811099A b _081109BA .align 2, 0 .ifdef SAPPHIRE _sub_8110908_Latias: .4byte 407 .endif _08110988: .4byte 0x02000000 _0811098C: .4byte gUnknown_083F856C _08110990: .4byte gUnknown_083F856E _08110994: cmp r0, 0x1A beq _081109A6 b _081109BA _0811099A: adds r0, r2, r5 ldrh r1, [r0] movs r0, 0 bl sub_8110A98 b _081109BA _081109A6: adds r1, r3, r6 lsls r1, 1 mov r0, r8 adds r0, 0x2 adds r0, r1, r0 ldrh r0, [r0] adds r1, r5 ldrh r1, [r1] bl sub_8110AE4 _081109BA: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 ldr r4, _08110A00 lsls r0, r6, 1 adds r0, r6 lsls r0, 1 adds r0, r4 ldrh r0, [r0] cmp r0, r9 bne _08110960 _081109D0: movs r6, 0 ldr r1, _08110A04 ldrb r0, [r1] cmp r0, 0xFF beq _08110A8C _081109DA: lsls r4, r6, 2 adds r0, r4, r6 lsls r0, 2 adds r5, r0, r1 adds r0, r5, 0 adds r1, r7, 0 bl sub_8110BA4 lsls r0, 24 cmp r0, 0 beq _08110A28 ldrb r0, [r5] cmp r0, 0x18 beq _08110A18 cmp r0, 0x18 bgt _08110A08 cmp r0, 0 beq _08110A0E b _08110A28 .align 2, 0 _08110A00: .4byte gUnknown_083F856E _08110A04: .4byte gWildMonHeaders _08110A08: cmp r0, 0x1A beq _08110A18 b _08110A28 _08110A0E: ldrb r1, [r5, 0x1] movs r0, 0 bl sub_8110A98 b _08110A28 _08110A18: ldr r0, _08110A40 adds r1, r4, r6 lsls r1, 2 adds r1, r0 ldrb r0, [r1] ldrb r1, [r1, 0x1] bl sub_8110AE4 _08110A28: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 ldr r1, _08110A40 lsls r0, r6, 2 adds r0, r6 lsls r0, 2 adds r0, r1 ldrb r0, [r0] cmp r0, 0xFF bne _081109DA b _08110A8C .align 2, 0 _08110A40: .4byte gWildMonHeaders _08110A44: ldr r4, _08110A7C movs r0, 0x89 lsls r0, 1 adds r1, r4, r0 movs r0, 0 strh r0, [r1] ldr r0, _08110A80 ldrb r2, [r0, 0x13] cmp r2, 0 beq _08110A84 adds r0, r4, 0 adds r0, 0x10 adds r1, r4, 0 adds r1, 0x11 bl sub_8134538 ldrb r0, [r4, 0x10] ldrb r1, [r4, 0x11] bl get_mapheader_by_bank_and_number ldrb r0, [r0, 0x14] strh r0, [r4, 0x12] movs r3, 0x88 lsls r3, 1 adds r1, r4, r3 movs r0, 0x1 strh r0, [r1] b _08110A8C .align 2, 0 _08110A7C: .4byte 0x02000000 _08110A80: .4byte gSaveBlock1 + 0x3144 _08110A84: movs r1, 0x88 lsls r1, 1 adds r0, r4, r1 strh r2, [r0] _08110A8C: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8110908 thumb_func_start sub_8110A98 sub_8110A98: @ 8110A98 push {r4,r5,lr} lsls r0, 16 lsrs r2, r0, 16 lsls r1, 16 lsrs r1, 16 ldr r5, _08110AE0 movs r0, 0x88 lsls r0, 1 adds r4, r5, r0 ldrh r0, [r4] cmp r0, 0x3F bhi _08110AD8 lsls r0, 2 adds r0, r5 strb r2, [r0, 0x10] ldrh r0, [r4] lsls r0, 2 adds r0, r5 strb r1, [r0, 0x11] adds r0, r2, 0 bl get_mapheader_by_bank_and_number ldrb r0, [r0, 0x14] bl sub_80FBA04 ldrh r1, [r4] lsls r1, 2 adds r1, r5 strh r0, [r1, 0x12] ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _08110AD8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08110AE0: .4byte 0x02000000 thumb_func_end sub_8110A98 thumb_func_start sub_8110AE4 sub_8110AE4: @ 8110AE4 push {r4-r6,lr} lsls r0, 16 lsrs r2, r0, 16 lsls r1, 16 lsrs r1, 16 ldr r0, _08110B9C movs r3, 0x89 lsls r3, 1 adds r0, r3 ldrh r0, [r0] cmp r0, 0x1F bhi _08110B96 adds r0, r2, 0 bl get_mapheader_by_bank_and_number adds r6, r0, 0 ldrb r0, [r6, 0x14] cmp r0, 0x57 bhi _08110B96 movs r4, 0 ldr r1, _08110BA0 ldrh r0, [r1] cmp r0, 0x58 beq _08110B42 adds r5, r1, 0 _08110B16: lsls r2, r4, 2 adds r1, r2, r5 ldrb r0, [r6, 0x14] ldrh r1, [r1] cmp r0, r1 bne _08110B32 adds r0, r5, 0x2 adds r0, r2, r0 ldrh r0, [r0] bl FlagGet lsls r0, 24 cmp r0, 0 beq _08110B96 _08110B32: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 lsls r0, r4, 2 adds r0, r5 ldrh r0, [r0] cmp r0, 0x58 bne _08110B16 _08110B42: movs r4, 0 ldr r0, _08110B9C movs r1, 0x89 lsls r1, 1 adds r2, r0, r1 ldrh r3, [r2] adds r1, r0, 0 cmp r4, r3 bcs _08110B76 movs r0, 0xC4 lsls r0, 3 adds r5, r1, r0 ldrh r0, [r5] ldrb r2, [r6, 0x14] cmp r0, r2 beq _08110B76 _08110B62: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r3 bcs _08110B76 lsls r0, r4, 1 adds r0, r5 ldrh r0, [r0] cmp r0, r2 bne _08110B62 _08110B76: movs r3, 0x89 lsls r3, 1 adds r2, r1, r3 ldrh r0, [r2] cmp r4, r0 bne _08110B96 lsls r0, r4, 1 movs r3, 0xC4 lsls r3, 3 adds r1, r3 adds r0, r1 ldrb r1, [r6, 0x14] strh r1, [r0] ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] _08110B96: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08110B9C: .4byte 0x02000000 _08110BA0: .4byte gUnknown_083F857A thumb_func_end sub_8110AE4 thumb_func_start sub_8110BA4 sub_8110BA4: @ 8110BA4 push {r4-r6,lr} adds r5, r0, 0 lsls r1, 16 lsrs r4, r1, 16 adds r6, r4, 0 ldr r0, [r5, 0x4] adds r1, r4, 0 movs r2, 0xC bl sub_8110BFC lsls r0, 24 cmp r0, 0 bne _08110BF2 ldr r0, [r5, 0x8] adds r1, r4, 0 movs r2, 0x5 bl sub_8110BFC lsls r0, 24 cmp r0, 0 bne _08110BF2 ldr r0, [r5, 0x10] adds r1, r4, 0 movs r2, 0xC bl sub_8110BFC lsls r0, 24 cmp r0, 0 bne _08110BF2 ldr r0, [r5, 0xC] adds r1, r6, 0 movs r2, 0x5 bl sub_8110BFC lsls r0, 24 cmp r0, 0 bne _08110BF2 movs r0, 0 b _08110BF4 _08110BF2: movs r0, 0x1 _08110BF4: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8110BA4 thumb_func_start sub_8110BFC sub_8110BFC: @ 8110BFC push {r4,lr} lsls r1, 16 lsrs r4, r1, 16 lsls r2, 16 lsrs r2, 16 cmp r0, 0 beq _08110C2A movs r3, 0 cmp r3, r2 bcs _08110C2A ldr r1, [r0, 0x4] _08110C12: lsls r0, r3, 2 adds r0, r1 ldrh r0, [r0, 0x2] cmp r0, r4 bne _08110C20 movs r0, 0x1 b _08110C2C _08110C20: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r2 bcc _08110C12 _08110C2A: movs r0, 0 _08110C2C: pop {r4} pop {r1} bx r1 thumb_func_end sub_8110BFC thumb_func_start sub_8110C34 sub_8110C34: @ 8110C34 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC ldr r1, _08110E5C movs r0, 0 strh r0, [r1] mov r9, r1 ldr r0, _08110E60 mov r8, r0 ldr r1, _08110E64 mov r12, r1 mov r1, r9 movs r4, 0x8B lsls r4, 1 add r4, r8 ldr r3, _08110E68 movs r2, 0 _08110C5C: ldrh r0, [r1] lsls r0, 1 adds r0, r4 strh r2, [r0] ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 cmp r0, r3 bls _08110C5C movs r0, 0 mov r3, r9 strh r0, [r3] movs r1, 0x88 lsls r1, 1 add r1, r8 ldrh r0, [r1] cmp r0, 0 beq _08110D04 ldr r4, _08110E6C movs r2, 0 ldr r5, _08110E64 mov r0, r8 str r0, [sp, 0x8] movs r1, 0x8B lsls r1, 1 add r1, r8 mov r10, r1 ldr r6, _08110E70 mov r7, r9 _08110C9A: strh r2, [r4] ldr r3, _08110E70 strh r2, [r3] _08110CA0: mov r0, r12 strh r2, [r0] _08110CA4: ldrh r0, [r5] ldrh r1, [r6] str r2, [sp] bl sub_80FB9A8 ldrh r1, [r7] lsls r1, 2 ldr r3, [sp, 0x8] adds r1, r3 lsls r0, 16 lsrs r0, 16 ldr r2, [sp] ldrh r1, [r1, 0x12] cmp r0, r1 bne _08110CCC ldrh r0, [r4] lsls r0, 1 add r0, r10 ldr r1, _08110E74 strh r1, [r0] _08110CCC: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] lsls r0, 16 lsrs r0, 16 cmp r0, 0x1F bls _08110CA4 ldrh r0, [r6] adds r0, 0x1 strh r0, [r6] lsls r0, 16 lsrs r0, 16 ldr r1, _08110E64 mov r12, r1 cmp r0, 0x13 bls _08110CA0 ldrh r0, [r7] adds r0, 0x1 strh r0, [r7] lsls r0, 16 lsrs r0, 16 ldr r3, _08110E78 ldrh r3, [r3] cmp r0, r3 bcc _08110C9A _08110D04: movs r0, 0 ldr r1, _08110E6C strh r0, [r1] ldr r3, _08110E70 strh r0, [r3] ldr r6, _08110E64 mov r10, r0 adds r3, r1, 0 ldr r5, _08110E7C ldr r4, _08110E74 ldr r7, _08110E70 _08110D1A: mov r0, r10 strh r0, [r6] _08110D1E: ldrh r1, [r3] lsls r0, r1, 1 adds r0, r5 ldrh r0, [r0] cmp r0, r4 bne _08110E10 ldrh r0, [r6] cmp r0, 0 beq _08110D42 subs r0, r1, 0x1 lsls r0, 1 adds r2, r0, r5 ldrh r1, [r2] cmp r1, r4 beq _08110D42 movs r0, 0x2 orrs r0, r1 strh r0, [r2] _08110D42: ldrh r0, [r6] cmp r0, 0x1F beq _08110D5C ldrh r0, [r3] adds r0, 0x1 lsls r0, 1 adds r2, r0, r5 ldrh r1, [r2] cmp r1, r4 beq _08110D5C movs r0, 0x1 orrs r0, r1 strh r0, [r2] _08110D5C: ldrh r0, [r7] cmp r0, 0 beq _08110D76 ldrh r0, [r3] subs r0, 0x20 lsls r0, 1 adds r2, r0, r5 ldrh r1, [r2] cmp r1, r4 beq _08110D76 movs r0, 0x8 orrs r0, r1 strh r0, [r2] _08110D76: ldrh r0, [r7] cmp r0, 0x13 beq _08110D90 ldrh r0, [r3] adds r0, 0x20 lsls r0, 1 adds r2, r0, r5 ldrh r1, [r2] cmp r1, r4 beq _08110D90 movs r0, 0x4 orrs r0, r1 strh r0, [r2] _08110D90: ldrh r0, [r6] cmp r0, 0 beq _08110DB0 ldrh r0, [r7] cmp r0, 0 beq _08110DB0 ldrh r0, [r3] subs r0, 0x21 lsls r0, 1 adds r2, r0, r5 ldrh r1, [r2] cmp r1, r4 beq _08110DB0 movs r0, 0x10 orrs r0, r1 strh r0, [r2] _08110DB0: ldrh r0, [r6] cmp r0, 0x1F beq _08110DD0 ldrh r0, [r7] cmp r0, 0 beq _08110DD0 ldrh r0, [r3] subs r0, 0x1F lsls r0, 1 adds r2, r0, r5 ldrh r1, [r2] cmp r1, r4 beq _08110DD0 movs r0, 0x40 orrs r0, r1 strh r0, [r2] _08110DD0: ldrh r0, [r6] cmp r0, 0 beq _08110DF0 ldrh r0, [r7] cmp r0, 0x13 beq _08110DF0 ldrh r0, [r3] adds r0, 0x1F lsls r0, 1 adds r2, r0, r5 ldrh r1, [r2] cmp r1, r4 beq _08110DF0 movs r0, 0x20 orrs r0, r1 strh r0, [r2] _08110DF0: ldrh r0, [r6] cmp r0, 0x1F beq _08110E10 ldrh r0, [r7] cmp r0, 0x13 beq _08110E10 ldrh r0, [r3] adds r0, 0x21 lsls r0, 1 adds r2, r0, r5 ldrh r1, [r2] cmp r1, r4 beq _08110E10 movs r0, 0x80 orrs r0, r1 strh r0, [r2] _08110E10: ldrh r0, [r3] adds r0, 0x1 strh r0, [r3] ldrh r0, [r6] adds r0, 0x1 strh r0, [r6] lsls r0, 16 lsrs r0, 16 cmp r0, 0x1F bhi _08110E26 b _08110D1E _08110E26: ldrh r0, [r7] adds r0, 0x1 strh r0, [r7] lsls r0, 16 lsrs r0, 16 cmp r0, 0x13 bhi _08110E36 b _08110D1A _08110E36: movs r0, 0 mov r1, r9 strh r0, [r1] _08110E3C: mov r3, r9 ldrh r0, [r3] lsls r0, 1 movs r4, 0x8B lsls r4, 1 add r4, r8 adds r3, r0, r4 ldrh r2, [r3] adds r1, r2, 0 ldr r0, _08110E74 cmp r1, r0 bne _08110E80 movs r0, 0x10 strh r0, [r3] b _0811105E .align 2, 0 _08110E5C: .4byte gUnknown_02039260 _08110E60: .4byte 0x02000000 _08110E64: .4byte gUnknown_02039262 _08110E68: .4byte 0x0000027f _08110E6C: .4byte gUnknown_02039266 _08110E70: .4byte gUnknown_02039264 _08110E74: .4byte 0x0000ffff _08110E78: .4byte 0x02000110 _08110E7C: .4byte 0x02000116 _08110E80: cmp r1, 0 bne _08110E86 b _0811105E _08110E86: movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _08110E94 ldr r0, _08110F28 ands r0, r2 strh r0, [r3] _08110E94: mov r1, r9 ldrh r0, [r1] lsls r0, 1 adds r2, r0, r4 ldrh r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08110EAC ldr r0, _08110F2C ands r0, r1 strh r0, [r2] _08110EAC: mov r3, r9 ldrh r0, [r3] lsls r0, 1 adds r2, r0, r4 ldrh r1, [r2] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08110EC4 ldr r0, _08110F30 ands r0, r1 strh r0, [r2] _08110EC4: mov r1, r9 ldrh r0, [r1] lsls r0, 1 adds r2, r0, r4 ldrh r1, [r2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08110EDC ldr r0, _08110F34 ands r0, r1 strh r0, [r2] _08110EDC: ldr r6, _08110F38 mov r3, r9 ldrh r0, [r3] lsls r0, 1 adds r0, r4 ldrh r1, [r0] movs r5, 0xF adds r0, r5, 0 ands r0, r1 strh r0, [r6] ldr r2, _08110F3C ldrh r0, [r3] lsls r0, 1 adds r0, r4 ldrh r1, [r0] movs r0, 0xF0 ands r0, r1 strh r0, [r2] ldrh r1, [r3] adds r3, r2, 0 cmp r0, 0 bne _08110F0A b _0811105E _08110F0A: lsls r0, r1, 1 adds r0, r4 ldrh r2, [r0] adds r1, r5, 0 ands r1, r2 strh r1, [r0] ldrh r0, [r6] cmp r0, 0xA bls _08110F1E b _0811105E _08110F1E: lsls r0, 2 ldr r1, _08110F40 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08110F28: .4byte 0x0000ffcf _08110F2C: .4byte 0x0000ff3f _08110F30: .4byte 0x0000ffaf _08110F34: .4byte 0x0000ff5f _08110F38: .4byte gUnknown_02039268 _08110F3C: .4byte gUnknown_0203926A _08110F40: .4byte _08110F44 .align 2, 0 _08110F44: .4byte _08110F70 .4byte _08110FAC .4byte _08110F8E .4byte _0811105E .4byte _08111002 .4byte _08111036 .4byte _08111036 .4byte _0811105E .4byte _08110FCE .4byte _0811104A .4byte _0811104A _08110F70: ldrh r0, [r3] lsls r1, r0, 16 cmp r1, 0 beq _0811105E mov r0, r9 ldrh r2, [r0] lsls r2, 1 movs r0, 0x8B lsls r0, 1 add r0, r8 adds r2, r0 ldrh r0, [r2] adds r0, 0x10 lsrs r1, 20 b _08110FC8 _08110F8E: ldrh r0, [r3] lsls r1, r0, 16 cmp r1, 0 beq _0811105E mov r3, r9 ldrh r2, [r3] lsls r2, 1 movs r0, 0x8B lsls r0, 1 add r0, r8 adds r2, r0 ldrh r0, [r2] adds r0, 0x1E lsrs r1, 20 b _08110FC8 _08110FAC: ldrh r0, [r3] lsls r1, r0, 16 cmp r1, 0 beq _0811105E mov r0, r9 ldrh r2, [r0] lsls r2, 1 movs r0, 0x8B lsls r0, 1 add r0, r8 adds r2, r0 ldrh r0, [r2] adds r0, 0x20 lsrs r1, 22 _08110FC8: adds r0, r1 strh r0, [r2] b _0811105E _08110FCE: ldrh r2, [r3] cmp r2, 0 beq _0811105E movs r0, 0x80 ands r0, r2 lsls r0, 16 lsrs r0, 16 negs r0, r0 lsrs r3, r0, 31 movs r0, 0x20 ands r0, r2 cmp r0, 0 beq _08110FEC movs r0, 0x2 orrs r3, r0 _08110FEC: mov r0, r9 ldrh r1, [r0] lsls r1, 1 movs r0, 0x8B lsls r0, 1 add r0, r8 adds r1, r0 ldrh r0, [r1] adds r0, 0x20 adds r0, r3 b _0811105C _08111002: ldrh r2, [r3] cmp r2, 0 beq _0811105E movs r0, 0x40 ands r0, r2 lsls r0, 16 lsrs r0, 16 negs r0, r0 lsrs r3, r0, 31 movs r0, 0x10 ands r0, r2 cmp r0, 0 beq _08111020 movs r0, 0x2 orrs r3, r0 _08111020: mov r0, r9 ldrh r1, [r0] lsls r1, 1 movs r0, 0x8B lsls r0, 1 add r0, r8 adds r1, r0 ldrh r0, [r1] adds r0, 0x21 adds r0, r3 b _0811105C _08111036: mov r3, r9 ldrh r1, [r3] lsls r1, 1 movs r0, 0x8B lsls r0, 1 add r0, r8 adds r1, r0 ldrh r0, [r1] adds r0, 0x27 b _0811105C _0811104A: mov r0, r9 ldrh r1, [r0] lsls r1, 1 movs r0, 0x8B lsls r0, 1 add r0, r8 adds r1, r0 ldrh r0, [r1] adds r0, 0x25 _0811105C: strh r0, [r1] _0811105E: mov r3, r9 ldrh r0, [r3] adds r0, 0x1 strh r0, [r3] lsls r0, 16 ldr r1, _08111080 cmp r0, r1 bhi _08111070 b _08110E3C _08111070: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08111080: .4byte 0x027f0000 thumb_func_end sub_8110C34 thumb_func_start sub_8111084 sub_8111084: @ 8111084 push {lr} ldr r0, _081110AC movs r2, 0x89 lsls r2, 1 adds r1, r0, r2 ldrh r1, [r1] adds r2, r0, 0 cmp r1, 0 beq _081110B4 movs r3, 0x88 lsls r3, 1 adds r0, r2, r3 ldrh r0, [r0] cmp r0, 0 bne _081110B4 ldr r0, _081110B0 adds r1, r2, r0 movs r0, 0x1 b _081110BA .align 2, 0 _081110AC: .4byte 0x02000000 _081110B0: .4byte 0x0000061e _081110B4: ldr r3, _081110FC adds r1, r2, r3 movs r0, 0 _081110BA: strb r0, [r1] ldr r1, _08111100 adds r0, r2, r1 movs r1, 0 strh r1, [r0] movs r3, 0xC3 lsls r3, 3 adds r0, r2, r3 strh r1, [r0] adds r3, 0x2 adds r0, r2, r3 strh r1, [r0] ldr r0, _08111104 adds r1, r2, r0 movs r0, 0x40 strh r0, [r1] adds r3, 0x5 adds r1, r2, r3 movs r0, 0x1 strb r0, [r1] ldr r1, _08111108 ldr r2, _0811110C adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r3, 0x80 lsls r3, 5 adds r0, r3, 0 strh r0, [r1] bl sub_8111110 pop {r0} bx r0 .align 2, 0 _081110FC: .4byte 0x0000061e _08111100: .4byte 0x00000616 _08111104: .4byte 0x0000061c _08111108: .4byte REG_BLDCNT _0811110C: .4byte 0x00003f41 thumb_func_end sub_8111084 thumb_func_start sub_8111110 sub_8111110: @ 8111110 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, _0811114C ldr r2, _08111150 adds r1, r0, r2 ldrb r1, [r1] adds r5, r0, 0 cmp r1, 0 bne _081111DE ldr r3, _08111154 adds r1, r5, r3 ldrh r0, [r1] cmp r0, 0 bne _081111D8 movs r1, 0xC3 lsls r1, 3 adds r0, r5, r1 ldrh r1, [r0] adds r1, 0x1 strh r1, [r0] movs r0, 0x1 ands r1, r0 cmp r1, 0 beq _08111158 subs r2, 0x4 adds r0, r5, r2 b _0811115C .align 2, 0 _0811114C: .4byte 0x02000000 _08111150: .4byte 0x0000061e _08111154: .4byte 0x00000616 _08111158: ldr r3, _081111C0 adds r0, r5, r3 _0811115C: ldrh r1, [r0] adds r1, 0x4 movs r2, 0x7F ands r1, r2 strh r1, [r0] ldr r2, _081111C4 ldr r1, _081111C8 adds r0, r5, r1 ldrh r0, [r0] lsls r0, 1 adds r0, r2 ldrh r1, [r0] lsls r1, 16 asrs r1, 20 lsls r1, 16 lsrs r1, 16 ldr r3, _081111C0 adds r0, r5, r3 ldrh r0, [r0] lsls r0, 1 adds r0, r2 ldrh r0, [r0] lsls r0, 16 asrs r0, 20 lsls r0, 16 ldr r2, _081111CC lsrs r0, 8 orrs r1, r0 strh r1, [r2] ldr r1, _081111D0 adds r0, r5, r1 movs r2, 0 strh r2, [r0] subs r3, 0x4 adds r1, r5, r3 ldrh r0, [r1] cmp r0, 0x40 bne _0811126E strh r2, [r1] movs r1, 0x89 lsls r1, 1 adds r0, r5, r1 ldrh r0, [r0] cmp r0, 0 beq _0811126E ldr r2, _081111D4 adds r1, r5, r2 movs r0, 0x1 b _0811126C .align 2, 0 _081111C0: .4byte 0x0000061c _081111C4: .4byte gSineTable _081111C8: .4byte 0x0000061a _081111CC: .4byte REG_BLDALPHA _081111D0: .4byte 0x00000616 _081111D4: .4byte 0x0000061e _081111D8: subs r0, 0x1 strh r0, [r1] b _0811126E _081111DE: ldr r3, _0811127C adds r1, r5, r3 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 cmp r0, 0xC bls _0811126E movs r0, 0 strh r0, [r1] ldr r0, _08111280 adds r1, r5, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r4, 0 movs r2, 0x89 lsls r2, 1 adds r0, r5, r2 ldrh r3, [r0] cmp r4, r3 bcs _0811124C movs r2, 0xCC lsls r2, 3 adds r2, r5 mov r9, r2 mov r8, r1 movs r3, 0x1 mov r12, r3 adds r6, r0, 0 movs r7, 0x5 negs r7, r7 _08111220: lsls r0, r4, 2 add r0, r9 ldr r3, [r0] mov r1, r8 ldrb r0, [r1] movs r1, 0x1 adds r3, 0x3E ands r1, r0 mov r2, r12 ands r1, r2 lsls r1, 2 ldrb r2, [r3] adds r0, r7, 0 ands r0, r2 orrs r0, r1 strb r0, [r3] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldrh r3, [r6] cmp r4, r3 bcc _08111220 _0811124C: ldr r0, _08111280 adds r1, r5, r0 ldrb r0, [r1] cmp r0, 0x4 bls _0811126E movs r0, 0x1 strb r0, [r1] movs r1, 0x88 lsls r1, 1 adds r0, r5, r1 ldrh r0, [r0] cmp r0, 0 beq _0811126E ldr r2, _08111284 adds r1, r5, r2 movs r0, 0 _0811126C: strb r0, [r1] _0811126E: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811127C: .4byte 0x00000616 _08111280: .4byte 0x0000061f _08111284: .4byte 0x0000061e thumb_func_end sub_8111110 thumb_func_start sub_8111288 sub_8111288: @ 8111288 push {lr} ldr r1, _08111298 ldrh r0, [r1, 0xC] cmp r0, 0 beq _0811129C cmp r0, 0x1 beq _081112A2 b _081112B2 .align 2, 0 _08111298: .4byte 0x02000000 _0811129C: movs r0, 0x1 strh r0, [r1, 0xC] b _081112B2 _081112A2: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _081112B2 ldr r0, _081112B8 bl sub_8110814 _081112B2: pop {r0} bx r0 .align 2, 0 _081112B8: .4byte sub_81112BC thumb_func_end sub_8111288 thumb_func_start sub_81112BC sub_81112BC: @ 81112BC push {lr} ldr r0, _081112DC ldrh r0, [r0, 0xC] cmp r0, 0 bne _08111308 ldr r0, _081112E0 ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081112E8 ldr r0, _081112E4 bl sub_8110814 b _08111308 .align 2, 0 _081112DC: .4byte 0x02000000 _081112E0: .4byte gMain _081112E4: .4byte sub_8111314 _081112E8: movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08111302 movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _08111308 ldr r0, _0811130C ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _08111308 _08111302: ldr r0, _08111310 bl sub_8110814 _08111308: pop {r0} bx r0 .align 2, 0 _0811130C: .4byte gSaveBlock2 _08111310: .4byte sub_8111360 thumb_func_end sub_81112BC thumb_func_start sub_8111314 sub_8111314: @ 8111314 push {r4,lr} sub sp, 0x4 ldr r4, _08111328 ldrh r1, [r4, 0xC] cmp r1, 0 beq _0811132C cmp r1, 0x1 beq _08111344 b _08111358 .align 2, 0 _08111328: .4byte 0x02000000 _0811132C: movs r0, 0x15 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] b _08111358 _08111344: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _08111358 bl sub_80FAB10 ldr r0, [r4, 0x4] bl SetMainCallback2 _08111358: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8111314 thumb_func_start sub_8111360 sub_8111360: @ 8111360 push {r4,lr} sub sp, 0x4 ldr r4, _08111374 ldrh r1, [r4, 0xC] cmp r1, 0 beq _08111378 cmp r1, 0x1 beq _08111390 b _081113A4 .align 2, 0 _08111374: .4byte 0x02000000 _08111378: movs r0, 0x15 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] b _081113A4 _08111390: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _081113A4 bl sub_80FAB10 ldr r0, [r4, 0x8] bl SetMainCallback2 _081113A4: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8111360 thumb_func_start sub_81113AC sub_81113AC: @ 81113AC push {r4,lr} ldr r2, _081113DC movs r3, 0 movs r4, 0 strh r0, [r2, 0xE] ldr r0, _081113E0 adds r2, r0 str r1, [r2] strb r3, [r1] ldr r0, _081113E4 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _081113E8 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _081113DC: .4byte 0x02000000 _081113E0: .4byte 0x000006e4 _081113E4: .4byte sub_81113EC _081113E8: .4byte gTasks thumb_func_end sub_81113AC thumb_func_start sub_81113EC sub_81113EC: @ 81113EC push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _08111414 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r2, r1, 0 cmp r0, 0xB bls _0811140A b _08111540 _0811140A: lsls r0, 2 ldr r1, _08111418 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08111414: .4byte gTasks _08111418: .4byte _0811141C .align 2, 0 _0811141C: .4byte _0811144C .4byte _08111488 .4byte _08111496 .4byte _081114B8 .4byte _081114BE .4byte _081114CA .4byte _081114DE .4byte _081114E4 .4byte _081114EA .4byte _081114F0 .4byte _08111502 .4byte _08111528 _0811144C: movs r1, 0x80 lsls r1, 19 movs r3, 0xC4 lsls r3, 7 adds r0, r3, 0 strh r0, [r1] ldr r0, _08111478 movs r1, 0 strh r1, [r0] ldr r2, _0811147C ldr r3, _08111480 adds r0, r3, 0 strh r0, [r2] ldr r0, _08111484 strh r1, [r0] subs r0, 0x2 strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x2 strh r1, [r0] b _08111540 .align 2, 0 _08111478: .4byte REG_BG0HOFS _0811147C: .4byte REG_BG0VOFS _08111480: .4byte 0x0000fff8 _08111484: .4byte REG_BG2VOFS _08111488: bl ResetPaletteFade bl ResetSpriteData bl FreeAllSpritePalettes b _08111540 _08111496: ldr r4, _081114B4 adds r0, r4, 0 movs r1, 0 bl sub_80FA8EC movs r0, 0x88 lsls r0, 4 adds r4, r0 adds r0, r4, 0 movs r1, 0 movs r2, 0x10 bl StringFill b _08111540 .align 2, 0 _081114B4: .4byte 0x020006e8 _081114B8: bl sub_8110824 b _08111540 _081114BE: bl sub_8110838 lsls r0, 24 cmp r0, 0 bne _08111550 b _08111540 _081114CA: movs r0, 0x1 movs r1, 0x1 bl sub_80FBCF0 movs r1, 0x8 negs r1, r1 movs r0, 0 bl sub_80FB2A4 b _08111540 _081114DE: bl sub_8111658 b _08111540 _081114E4: bl sub_81117AC b _08111540 _081114EA: bl sub_81117E4 b _08111540 _081114F0: movs r0, 0x15 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade b _08111540 _08111502: ldr r1, _0811151C ldr r2, _08111520 adds r0, r2, 0 strh r0, [r1] bl sub_8111084 movs r1, 0x80 lsls r1, 19 ldr r3, _08111524 adds r0, r3, 0 strh r0, [r1] b _08111540 .align 2, 0 _0811151C: .4byte REG_BLDCNT _08111520: .4byte 0x00003f41 _08111524: .4byte 0x00007741 _08111528: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r2 ldr r1, _0811153C str r1, [r0] movs r1, 0 strh r1, [r0, 0x8] b _08111550 .align 2, 0 _0811153C: .4byte sub_811155C _08111540: ldr r0, _08111558 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _08111550: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08111558: .4byte gTasks thumb_func_end sub_81113EC thumb_func_start sub_811155C sub_811155C: @ 811155C push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 bl sub_8111110 ldr r1, _08111584 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r5, r0, r1 movs r0, 0x8 ldrsh r1, [r5, r0] cmp r1, 0x1 beq _081115B4 cmp r1, 0x1 bgt _08111588 cmp r1, 0 beq _0811159E b _08111590 .align 2, 0 _08111584: .4byte gTasks _08111588: cmp r1, 0x2 beq _081115F8 cmp r1, 0x3 beq _0811160A _08111590: ldr r0, _081115AC lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0 strh r0, [r1, 0x8] _0811159E: ldr r0, _081115B0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0811164C b _0811163C .align 2, 0 _081115AC: .4byte gTasks _081115B0: .4byte gPaletteFade _081115B4: ldr r0, _081115CC ldrh r2, [r0, 0x2E] movs r3, 0x2 adds r0, r3, 0 ands r0, r2 cmp r0, 0 beq _081115D0 strh r1, [r5, 0xA] movs r0, 0x3 bl PlaySE b _0811163C .align 2, 0 _081115CC: .4byte gMain _081115D0: movs r0, 0x10 ands r0, r2 cmp r0, 0 bne _081115EA movs r0, 0x80 lsls r0, 1 ands r0, r2 cmp r0, 0 beq _0811164C ldr r0, _081115F4 ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _0811164C _081115EA: strh r3, [r5, 0xA] movs r0, 0x6D bl PlaySE b _0811163C .align 2, 0 _081115F4: .4byte gSaveBlock2 _081115F8: movs r0, 0x15 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _0811163C _0811160A: ldr r0, _08111630 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0811164C bl sub_8111738 ldr r0, _08111634 ldr r1, _08111638 adds r0, r1 ldr r1, [r0] ldrh r0, [r5, 0xA] strb r0, [r1] adds r0, r4, 0 bl DestroyTask b _0811164C .align 2, 0 _08111630: .4byte gPaletteFade _08111634: .4byte 0x02000000 _08111638: .4byte 0x000006e4 _0811163C: ldr r0, _08111654 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _0811164C: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08111654: .4byte gTasks thumb_func_end sub_811155C thumb_func_start sub_8111658 sub_8111658: @ 8111658 push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _08111720 bl LoadSpriteSheet ldr r0, _08111724 bl LoadSpritePalette movs r5, 0 movs r1, 0 ldr r0, _08111728 movs r3, 0x89 lsls r3, 1 adds r2, r0, r3 ldrh r7, [r2] cmp r5, r7 bge _0811170C adds r6, r0, 0 mov r8, r2 _08111680: lsls r0, r1, 16 asrs r4, r0, 16 lsls r1, r4, 1 movs r2, 0xC4 lsls r2, 3 adds r0, r6, r2 adds r1, r0 ldr r2, _0811172C movs r3, 0 ldrsh r0, [r1, r3] lsls r0, 3 adds r0, r2 ldrb r1, [r0] adds r1, 0x1 lsls r1, 3 adds r1, 0x4 ldrb r2, [r0, 0x1] lsls r2, 19 ldrb r3, [r0, 0x2] subs r3, 0x1 lsls r3, 2 ldrb r0, [r0, 0x3] subs r0, 0x1 lsls r0, 2 movs r7, 0xE0 lsls r7, 13 adds r2, r7 asrs r2, 16 adds r1, r3 adds r2, r0 ldr r0, _08111730 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _081116FC ldr r0, _08111734 lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 strb r0, [r3] adds r1, r5, 0 lsls r0, r1, 16 movs r3, 0x80 lsls r3, 9 adds r0, r3 lsrs r5, r0, 16 lsls r1, 16 asrs r1, 14 movs r7, 0xCC lsls r7, 3 adds r0, r6, r7 adds r1, r0 str r2, [r1] _081116FC: adds r0, r4, 0x1 lsls r0, 16 lsrs r1, r0, 16 asrs r0, 16 mov r2, r8 ldrh r2, [r2] cmp r0, r2 blt _08111680 _0811170C: ldr r0, _08111728 movs r3, 0xDC lsls r3, 3 adds r0, r3 strh r5, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08111720: .4byte gUnknown_083F858C _08111724: .4byte gUnknown_083F8594 _08111728: .4byte 0x02000000 _0811172C: .4byte gRegionMapLocations _08111730: .4byte gSpriteTemplate_83F85A4 _08111734: .4byte gSprites thumb_func_end sub_8111658 thumb_func_start sub_8111738 sub_8111738: @ 8111738 push {r4-r6,lr} movs r0, 0x2 bl FreeSpriteTilesByTag movs r0, 0x2 bl FreeSpritePaletteByTag movs r4, 0 ldr r1, _081117A4 movs r2, 0xDC lsls r2, 3 adds r0, r1, r2 ldrh r2, [r0] cmp r4, r2 bcs _08111776 adds r6, r1, 0 adds r5, r0, 0 _0811175A: lsls r0, r4, 2 movs r2, 0xCC lsls r2, 3 adds r1, r6, r2 adds r0, r1 ldr r0, [r0] bl DestroySprite adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldrh r0, [r5] cmp r4, r0 bcc _0811175A _08111776: movs r0, 0x3 bl FreeSpriteTilesByTag movs r0, 0x3 bl FreeSpritePaletteByTag movs r4, 0 ldr r5, _081117A8 _08111786: lsls r0, r4, 2 adds r0, r5 ldr r0, [r0] cmp r0, 0 beq _08111794 bl DestroySprite _08111794: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x2 bls _08111786 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081117A4: .4byte 0x02000000 _081117A8: .4byte 0x02000fa8 thumb_func_end sub_8111738 thumb_func_start sub_81117AC sub_81117AC: @ 81117AC push {lr} sub sp, 0x8 ldr r0, _081117D4 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] ldr r0, _081117D8 ldr r1, _081117DC bl LZ77UnCompWram mov r0, sp bl LoadSpriteSheet ldr r0, _081117E0 bl LoadSpritePalette add sp, 0x8 pop {r0} bx r0 .align 2, 0 _081117D4: .4byte gUnknown_083F8664 _081117D8: .4byte gAreaUnknownTiles _081117DC: .4byte 0x02000fb4 _081117E0: .4byte gUnknown_083F865C thumb_func_end sub_81117AC thumb_func_start sub_81117E4 sub_81117E4: @ 81117E4 push {r4-r7,lr} ldr r1, _08111810 movs r2, 0x88 lsls r2, 1 adds r0, r1, r2 ldr r0, [r0] cmp r0, 0 beq _08111818 movs r4, 0 ldr r7, _08111814 adds r2, r1, r7 movs r1, 0 _081117FC: lsls r0, r4, 2 adds r0, r2 str r1, [r0] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x2 bls _081117FC b _0811188E .align 2, 0 _08111810: .4byte 0x02000000 _08111814: .4byte 0x00000fa8 _08111818: movs r4, 0 ldr r6, _08111868 ldr r0, _0811186C adds r5, r1, r0 _08111820: lsls r1, r4, 21 movs r2, 0xA0 lsls r2, 16 adds r1, r2 asrs r1, 16 ldr r0, _08111870 movs r2, 0x8C movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0811187C lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r6 ldrh r3, [r2, 0x4] lsls r0, r3, 22 lsrs r0, 22 lsls r1, r4, 4 adds r0, r1 ldr r7, _08111874 adds r1, r7, 0 ands r0, r1 ldr r7, _08111878 adds r1, r7, 0 ands r3, r1 orrs r3, r0 strh r3, [r2, 0x4] lsls r0, r4, 2 adds r0, r5 str r2, [r0] b _08111884 .align 2, 0 _08111868: .4byte gSprites _0811186C: .4byte 0x00000fa8 _08111870: .4byte gSpriteTemplate_83F8674 _08111874: .4byte 0x000003ff _08111878: .4byte 0xfffffc00 _0811187C: lsls r0, r4, 2 adds r0, r5 movs r1, 0 str r1, [r0] _08111884: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x2 bls _08111820 _0811188E: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81117E4 thumb_func_start sub_8111894 sub_8111894: @ 8111894 push {lr} bl UpdatePaletteFade bl RunTasks pop {r0} bx r0 thumb_func_end sub_8111894 thumb_func_start sub_81118A4 sub_81118A4: @ 81118A4 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r2, r0, 24 movs r7, 0 ldr r1, _081118C8 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _081118CC cmp r0, 0x1 beq _081118E4 b _08111918 .align 2, 0 _081118C8: .4byte gTasks _081118CC: movs r0, 0x1 negs r0, r0 str r7, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _08111918 _081118E4: ldr r0, _08111920 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08111918 movs r0, 0xA ldrsh r7, [r4, r0] movs r1, 0xC ldrsh r0, [r4, r1] lsls r0, 16 orrs r7, r0 ldrh r5, [r4, 0x10] ldrb r6, [r4, 0x12] ldrh r4, [r4, 0x20] lsls r4, 24 lsrs r4, 24 adds r0, r2, 0 bl DestroyTask adds r0, r7, 0 adds r1, r5, 0 adds r2, r6, 0 adds r3, r4, 0 bl evolution_cutscene _08111918: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08111920: .4byte gPaletteFade thumb_func_end sub_81118A4 thumb_func_start sub_8111924 sub_8111924: @ 8111924 push {r4-r6,lr} mov r6, r8 push {r6} mov r8, r0 adds r4, r1, 0 adds r5, r2, 0 adds r6, r3, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 ldr r0, _08111978 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0811197C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r0, [r1, 0x8] mov r0, r8 strh r0, [r1, 0xA] mov r0, r8 lsrs r0, 16 strh r0, [r1, 0xC] strh r4, [r1, 0x10] strh r5, [r1, 0x12] strh r6, [r1, 0x20] ldr r0, _08111980 bl SetMainCallback2 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08111978: .4byte sub_81118A4 _0811197C: .4byte gTasks _08111980: .4byte sub_8111894 thumb_func_end sub_8111924 thumb_func_start evolution_cutscene evolution_cutscene: @ 8111984 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x38 str r0, [sp, 0x20] mov r10, r1 mov r0, r10 lsls r0, 16 lsrs r0, 16 mov r10, r0 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x24] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0x28] movs r0, 0 bl SetHBlankCallback movs r0, 0 bl SetVBlankCallback movs r5, 0 str r5, [sp, 0x1C] add r0, sp, 0x1C movs r1, 0xC0 lsls r1, 19 ldr r2, _08111C10 bl CpuSet ldr r0, _08111C14 strh r5, [r0] subs r0, 0xC strh r5, [r0] adds r0, 0x4 strh r5, [r0] subs r0, 0x2 strh r5, [r0] adds r0, 0x4 strh r5, [r0] adds r0, 0x2 strh r5, [r0] adds r0, 0x2 strh r5, [r0] ldr r4, _08111C18 adds r0, r4, 0 bl SetUpWindowConfig bl ResetPaletteFade ldr r0, _08111C1C strh r5, [r0] ldr r0, _08111C20 strh r5, [r0] ldr r0, _08111C24 strh r5, [r0] ldr r0, _08111C28 strh r5, [r0] ldr r0, _08111C2C strh r5, [r0] ldr r0, _08111C30 strh r5, [r0] ldr r1, _08111C34 movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] ldr r0, _08111C38 strh r5, [r0] ldr r0, _08111C3C adds r1, r4, 0 bl InitWindowFromConfig ldr r1, _08111C40 movs r0, 0x9 strb r0, [r1] bl sub_800D6D4 bl sub_800DAB8 bl ResetSpriteData bl remove_some_task bl ResetTasks bl FreeAllSpritePalettes ldr r0, _08111C44 movs r3, 0x4 strb r3, [r0] ldr r0, [sp, 0x20] movs r1, 0x2 add r2, sp, 0x8 bl GetMonData ldr r0, _08111C48 add r1, sp, 0x8 bl StringCopy10 ldr r0, _08111C4C movs r1, 0xB mov r4, r10 muls r4, r1 adds r1, r4, 0 ldr r2, _08111C50 adds r1, r2 bl StringCopy ldr r0, [sp, 0x20] movs r1, 0xB bl GetMonData adds r6, r0, 0 lsls r6, 16 lsrs r6, 16 ldr r0, [sp, 0x20] movs r1, 0x1 bl GetMonData str r0, [sp, 0x2C] ldr r0, [sp, 0x20] movs r1, 0 bl GetMonData str r0, [sp, 0x30] lsls r0, r6, 3 ldr r1, _08111C54 adds r0, r1 lsls r2, r6, 2 ldr r3, _08111C58 adds r2, r3 ldrb r1, [r2] ldrb r2, [r2, 0x1] ldr r4, _08111C5C ldr r3, [r4, 0x4] str r3, [sp] str r6, [sp, 0x4] movs r3, 0x80 lsls r3, 18 bl DecompressPicFromTable_2 adds r0, r6, 0 ldr r1, [sp, 0x2C] ldr r2, [sp, 0x30] bl sub_80409C8 ldr r0, [r0] movs r1, 0x88 lsls r1, 1 movs r2, 0x20 bl LoadCompressedPalette adds r0, r6, 0 movs r1, 0x1 bl GetMonSpriteTemplate_803C56C ldr r0, _08111C60 mov r9, r0 ldr r1, _08111C64 str r1, [r0, 0x10] movs r1, 0x78 movs r2, 0x40 movs r3, 0x1E bl CreateSprite lsls r1, r0, 24 lsrs r2, r1, 24 ldr r3, _08111C68 strb r0, [r3] ldr r7, _08111C6C lsls r1, r2, 4 adds r1, r2 lsls r1, 2 movs r4, 0x1C adds r4, r7 mov r8, r4 adds r0, r1, r4 ldr r2, _08111C70 str r2, [r0] adds r1, r7 ldrb r2, [r1, 0x5] movs r4, 0xF adds r0, r4, 0 ands r0, r2 movs r2, 0x10 orrs r0, r2 strb r0, [r1, 0x5] adds r1, 0x3E ldrb r0, [r1] movs r3, 0x4 orrs r0, r3 strb r0, [r1] mov r1, r10 lsls r0, r1, 3 ldr r2, _08111C54 adds r0, r2 lsls r2, r1, 2 ldr r3, _08111C58 adds r2, r3 ldrb r1, [r2] ldrb r2, [r2, 0x1] str r2, [sp, 0x34] ldr r2, _08111C5C ldr r2, [r2, 0xC] str r2, [sp] mov r3, r10 str r3, [sp, 0x4] ldr r2, [sp, 0x34] movs r3, 0x80 lsls r3, 18 bl DecompressPicFromTable_2 mov r0, r10 ldr r1, [sp, 0x2C] ldr r2, [sp, 0x30] bl sub_80409C8 ldr r0, [r0] movs r1, 0x90 lsls r1, 1 movs r2, 0x20 bl LoadCompressedPalette mov r0, r10 movs r1, 0x3 bl GetMonSpriteTemplate_803C56C ldr r0, _08111C64 mov r1, r9 str r0, [r1, 0x10] mov r0, r9 movs r1, 0x78 movs r2, 0x40 movs r3, 0x1E bl CreateSprite lsls r1, r0, 24 lsrs r2, r1, 24 ldr r3, _08111C68 strb r0, [r3, 0x1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 add r8, r1 ldr r0, _08111C70 mov r2, r8 str r0, [r2] adds r1, r7 ldrb r0, [r1, 0x5] ands r4, r0 movs r0, 0x20 orrs r4, r0 strb r4, [r1, 0x5] adds r1, 0x3E ldrb r0, [r1] movs r3, 0x4 orrs r0, r3 strb r0, [r1] bl sub_8149954 ldr r0, _08111C74 movs r1, 0 bl CreateTask lsls r1, r0, 24 lsrs r2, r1, 24 ldr r4, _08111C68 strb r0, [r4, 0x2] ldr r1, _08111C78 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 strh r5, [r0, 0x8] strh r6, [r0, 0xE] mov r1, r10 strh r1, [r0, 0x10] mov r2, sp ldrh r2, [r2, 0x20] strh r2, [r0, 0xA] ldr r3, [sp, 0x20] lsrs r1, r3, 16 strh r1, [r0, 0xC] mov r4, sp ldrh r4, [r4, 0x24] strh r4, [r0, 0x12] movs r1, 0x1 strh r1, [r0, 0x14] strh r5, [r0, 0x1E] mov r1, sp ldrh r1, [r1, 0x28] strh r1, [r0, 0x20] ldr r0, _08111C7C ldr r1, _08111C80 movs r2, 0x60 bl memcpy movs r1, 0x80 lsls r1, 19 movs r2, 0xFA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r0, _08111C84 bl SetHBlankCallback ldr r0, _08111C88 bl SetVBlankCallback bl m4aMPlayAllStop ldr r0, _08111C8C bl SetMainCallback2 add sp, 0x38 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08111C10: .4byte 0x05006000 _08111C14: .4byte REG_MOSAIC _08111C18: .4byte gWindowConfig_81E6C58 _08111C1C: .4byte gUnknown_030042A4 _08111C20: .4byte gUnknown_030042A0 _08111C24: .4byte gUnknown_030042C0 _08111C28: .4byte gUnknown_030041B4 _08111C2C: .4byte gUnknown_03004288 _08111C30: .4byte gUnknown_03004280 _08111C34: .4byte gUnknown_030041B0 _08111C38: .4byte gUnknown_030041B8 _08111C3C: .4byte gUnknown_03004210 _08111C40: .4byte gUnknown_0300428C _08111C44: .4byte gReservedSpritePaletteCount _08111C48: .4byte gStringVar1 _08111C4C: .4byte gStringVar2 _08111C50: .4byte gSpeciesNames _08111C54: .4byte gMonFrontPicTable _08111C58: .4byte gMonFrontPicCoords _08111C5C: .4byte gUnknown_081FAF4C _08111C60: .4byte gUnknown_02024E8C _08111C64: .4byte gDummySpriteAffineAnimTable _08111C68: .4byte 0x02014800 _08111C6C: .4byte gSprites _08111C70: .4byte nullsub_37 _08111C74: .4byte sub_811240C _08111C78: .4byte gTasks _08111C7C: .4byte 0x02009000 _08111C80: .4byte gPlttBufferUnfaded + 0x40 _08111C84: .4byte nullsub_73 _08111C88: .4byte sub_8114FD4 _08111C8C: .4byte sub_8112270 thumb_func_end evolution_cutscene thumb_func_start sub_8111C90 sub_8111C90: @ 8111C90 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0xC ldr r2, _08111E14 ldr r0, _08111E18 mov r9, r0 ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r1, 0x20 ldrsh r2, [r0, r1] movs r1, 0x64 adds r4, r2, 0 muls r4, r1 ldr r1, _08111E1C adds r4, r1 ldrh r6, [r0, 0x10] adds r0, r4, 0 movs r1, 0x1 bl GetMonData mov r10, r0 adds r0, r4, 0 movs r1, 0 bl GetMonData mov r8, r0 movs r0, 0 bl SetHBlankCallback movs r0, 0 bl SetVBlankCallback movs r5, 0 str r5, [sp, 0x8] movs r1, 0xC0 lsls r1, 19 ldr r2, _08111E20 add r0, sp, 0x8 bl CpuSet ldr r0, _08111E24 strh r5, [r0] subs r0, 0xC strh r5, [r0] adds r0, 0x4 strh r5, [r0] subs r0, 0x2 strh r5, [r0] adds r0, 0x4 strh r5, [r0] adds r0, 0x2 strh r5, [r0] adds r0, 0x2 strh r5, [r0] ldr r4, _08111E28 adds r0, r4, 0 bl SetUpWindowConfig bl ResetPaletteFade ldr r0, _08111E2C strh r5, [r0] ldr r0, _08111E30 strh r5, [r0] ldr r0, _08111E34 strh r5, [r0] ldr r0, _08111E38 strh r5, [r0] ldr r0, _08111E3C strh r5, [r0] ldr r0, _08111E40 strh r5, [r0] ldr r1, _08111E44 movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] ldr r0, _08111E48 strh r5, [r0] ldr r0, _08111E4C adds r1, r4, 0 bl InitWindowFromConfig ldr r1, _08111E50 movs r0, 0x9 strb r0, [r1] bl sub_800D6D4 bl sub_800DAB8 bl ResetSpriteData bl FreeAllSpritePalettes ldr r1, _08111E54 movs r0, 0x4 strb r0, [r1] lsls r0, r6, 3 ldr r1, _08111E58 adds r0, r1 ldr r1, _08111E5C lsls r2, r6, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08111E60 ldr r4, [r4, 0xC] str r4, [sp] str r6, [sp, 0x4] bl DecompressPicFromTable_2 adds r0, r6, 0 mov r1, r10 mov r2, r8 bl sub_80409C8 ldr r0, [r0] movs r1, 0x90 lsls r1, 1 movs r2, 0x20 bl LoadCompressedPalette adds r0, r6, 0 movs r1, 0x3 bl GetMonSpriteTemplate_803C56C ldr r0, _08111E64 ldr r1, _08111E68 str r1, [r0, 0x10] movs r1, 0x78 movs r2, 0x40 movs r3, 0x1E bl CreateSprite lsls r2, r0, 24 lsrs r2, 24 mov r1, r9 strb r0, [r1, 0x1] ldr r3, _08111E6C lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r0, r3, 0 adds r0, 0x1C adds r0, r1, r0 ldr r2, _08111E70 str r2, [r0] adds r1, r3 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 movs r2, 0x20 orrs r0, r2 strb r0, [r1, 0x5] movs r1, 0x80 lsls r1, 19 movs r2, 0xFA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r0, _08111E74 bl SetHBlankCallback ldr r0, _08111E78 bl SetVBlankCallback ldr r0, _08111E7C bl SetMainCallback2 movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08111E14: .4byte gTasks _08111E18: .4byte 0x02014800 _08111E1C: .4byte gPlayerParty _08111E20: .4byte 0x05006000 _08111E24: .4byte REG_MOSAIC _08111E28: .4byte gWindowConfig_81E6C58 _08111E2C: .4byte gUnknown_030042A4 _08111E30: .4byte gUnknown_030042A0 _08111E34: .4byte gUnknown_030042C0 _08111E38: .4byte gUnknown_030041B4 _08111E3C: .4byte gUnknown_03004288 _08111E40: .4byte gUnknown_03004280 _08111E44: .4byte gUnknown_030041B0 _08111E48: .4byte gUnknown_030041B8 _08111E4C: .4byte gUnknown_03004210 _08111E50: .4byte gUnknown_0300428C _08111E54: .4byte gReservedSpritePaletteCount _08111E58: .4byte gMonFrontPicTable _08111E5C: .4byte gMonFrontPicCoords _08111E60: .4byte gUnknown_081FAF4C _08111E64: .4byte gUnknown_02024E8C _08111E68: .4byte gDummySpriteAffineAnimTable _08111E6C: .4byte gSprites _08111E70: .4byte nullsub_37 _08111E74: .4byte nullsub_73 _08111E78: .4byte sub_8114FD4 _08111E7C: .4byte sub_8112270 thumb_func_end sub_8111C90 thumb_func_start sub_8111E80 sub_8111E80: @ 8111E80 push {r4-r7,lr} sub sp, 0x8 ldr r2, _08111EB8 ldr r0, _08111EBC ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r1, 0x20 ldrsh r2, [r0, r1] movs r1, 0x64 muls r2, r1 ldr r1, _08111EC0 adds r4, r2, r1 ldrh r7, [r0, 0x10] ldr r0, _08111EC4 ldr r2, _08111EC8 adds r0, r2 ldrb r0, [r0] cmp r0, 0x6 bls _08111EAE b _081120D6 _08111EAE: lsls r0, 2 ldr r1, _08111ECC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08111EB8: .4byte gTasks _08111EBC: .4byte 0x02014800 _08111EC0: .4byte gPlayerParty _08111EC4: .4byte gMain _08111EC8: .4byte 0x0000043c _08111ECC: .4byte _08111ED0 .align 2, 0 _08111ED0: .4byte _08111EEC .4byte _08111F68 .4byte _08111F88 .4byte _08111FDC .4byte _08111FE2 .4byte _08112048 .4byte _081120B4 _08111EEC: movs r0, 0x80 lsls r0, 19 movs r4, 0 strh r4, [r0] movs r0, 0 bl SetHBlankCallback movs r0, 0 bl SetVBlankCallback bl ResetSpriteData bl FreeAllSpritePalettes ldr r1, _08111F3C movs r0, 0x4 strb r0, [r1] ldr r0, _08111F40 strh r4, [r0] ldr r0, _08111F44 strh r4, [r0] ldr r0, _08111F48 strh r4, [r0] ldr r0, _08111F4C strh r4, [r0] ldr r0, _08111F50 strh r4, [r0] ldr r0, _08111F54 strh r4, [r0] ldr r1, _08111F58 movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] ldr r0, _08111F5C strh r4, [r0] ldr r1, _08111F60 ldr r0, _08111F64 adds r1, r0 b _0811208E .align 2, 0 _08111F3C: .4byte gReservedSpritePaletteCount _08111F40: .4byte gUnknown_030042A4 _08111F44: .4byte gUnknown_030042A0 _08111F48: .4byte gUnknown_030042C0 _08111F4C: .4byte gUnknown_030041B4 _08111F50: .4byte gUnknown_03004288 _08111F54: .4byte gUnknown_03004280 _08111F58: .4byte gUnknown_030041B0 _08111F5C: .4byte gUnknown_030041B8 _08111F60: .4byte gMain _08111F64: .4byte 0x0000043c _08111F68: ldr r4, _08111F80 adds r0, r4, 0 bl SetUpWindowConfig ldr r0, _08111F84 ldr r0, [r0] adds r0, 0x4 adds r1, r4, 0 bl InitWindowFromConfig b _08112088 .align 2, 0 _08111F80: .4byte gWindowConfig_81E6F84 _08111F84: .4byte gUnknown_03004828 _08111F88: ldr r4, _08111FC8 ldr r0, [r4] adds r0, 0x4 bl LoadTextWindowGraphics movs r0, 0x2 bl SetTextWindowBaseTileNum ldr r1, [r4] adds r1, 0x34 strb r0, [r1] ldr r0, [r4] adds r0, 0x4 bl LoadTextWindowGraphics bl MenuZeroFillScreen bl ResetPaletteFade ldr r1, _08111FCC ldr r0, _08111FD0 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, _08111FD4 bl SetHBlankCallback ldr r0, _08111FD8 bl SetVBlankCallback b _081120D6 .align 2, 0 _08111FC8: .4byte gUnknown_03004828 _08111FCC: .4byte gMain _08111FD0: .4byte 0x0000043c _08111FD4: .4byte nullsub_73 _08111FD8: .4byte sub_811505C _08111FDC: bl sub_804E22C b _08112088 _08111FE2: adds r0, r4, 0 movs r1, 0x1 bl GetMonData adds r6, r0, 0 adds r0, r4, 0 movs r1, 0 bl GetMonData adds r5, r0, 0 lsls r0, r7, 3 ldr r1, _08112034 adds r0, r1 ldr r1, _08112038 lsls r2, r7, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _0811203C ldr r4, [r4, 0xC] str r4, [sp] str r7, [sp, 0x4] bl DecompressPicFromTable_2 adds r0, r7, 0 adds r1, r6, 0 adds r2, r5, 0 bl sub_80409C8 ldr r0, [r0] movs r1, 0x90 lsls r1, 1 movs r2, 0x20 bl LoadCompressedPalette ldr r1, _08112040 ldr r0, _08112044 adds r1, r0 b _0811208E .align 2, 0 _08112034: .4byte gMonFrontPicTable _08112038: .4byte gMonFrontPicCoords _0811203C: .4byte gUnknown_081FAF4C _08112040: .4byte gMain _08112044: .4byte 0x0000043c _08112048: adds r0, r7, 0 movs r1, 0x3 bl GetMonSpriteTemplate_803C56C ldr r0, _08112098 ldr r1, _0811209C str r1, [r0, 0x10] movs r1, 0x78 movs r2, 0x40 movs r3, 0x1E bl CreateSprite ldr r1, _081120A0 lsls r2, r0, 24 lsrs r2, 24 strb r0, [r1, 0x1] ldr r3, _081120A4 lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r0, r3, 0 adds r0, 0x1C adds r0, r1, r0 ldr r2, _081120A8 str r2, [r0] adds r1, r3 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 movs r2, 0x20 orrs r0, r2 strb r0, [r1, 0x5] _08112088: ldr r1, _081120AC ldr r2, _081120B0 adds r1, r2 _0811208E: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _081120D6 .align 2, 0 _08112098: .4byte gUnknown_02024E8C _0811209C: .4byte gDummySpriteAffineAnimTable _081120A0: .4byte 0x02014800 _081120A4: .4byte gSprites _081120A8: .4byte nullsub_37 _081120AC: .4byte gMain _081120B0: .4byte 0x0000043c _081120B4: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _081120E0 bl SetMainCallback2 movs r1, 0x80 lsls r1, 19 movs r2, 0x9A lsls r2, 5 adds r0, r2, 0 strh r0, [r1] _081120D6: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081120E0: .4byte sub_8112290 thumb_func_end sub_8111E80 thumb_func_start sub_81120E4 sub_81120E4: @ 81120E4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 str r0, [sp, 0x1C] adds r5, r1, 0 adds r4, r2, 0 mov r10, r3 lsls r5, 16 lsrs r5, 16 lsls r4, 24 lsrs r4, 24 mov r0, r10 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r0, [sp, 0x1C] movs r1, 0x2 add r2, sp, 0x8 bl GetMonData ldr r0, _08112234 add r1, sp, 0x8 bl StringCopy10 ldr r0, _08112238 movs r1, 0xB muls r1, r5 ldr r2, _0811223C adds r1, r2 bl StringCopy ldr r1, _08112240 movs r0, 0x1 strb r0, [r1] ldr r0, [sp, 0x1C] movs r1, 0xB bl GetMonData mov r8, r0 mov r1, r8 lsls r1, 16 lsrs r1, 16 mov r8, r1 ldr r0, [sp, 0x1C] movs r1, 0 bl GetMonData adds r6, r0, 0 ldr r0, [sp, 0x1C] movs r1, 0x1 bl GetMonData adds r7, r0, 0 ldr r2, _08112244 mov r9, r2 strb r4, [r2] lsls r0, r5, 3 ldr r1, _08112248 adds r0, r1 ldr r1, _0811224C lsls r2, r5, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08112250 ldr r4, [r4, 0x4] str r4, [sp] str r5, [sp, 0x4] bl DecompressPicFromTable_2 adds r0, r5, 0 adds r1, r7, 0 adds r2, r6, 0 bl sub_80409C8 ldr r0, [r0] movs r1, 0x90 lsls r1, 1 movs r2, 0x20 bl LoadCompressedPalette adds r0, r5, 0 movs r1, 0x1 bl GetMonSpriteTemplate_803C56C ldr r0, _08112254 ldr r1, _08112258 str r1, [r0, 0x10] movs r1, 0x78 movs r2, 0x40 movs r3, 0x1E bl CreateSprite lsls r1, r0, 24 lsrs r2, r1, 24 mov r1, r9 strb r0, [r1, 0x1] ldr r3, _0811225C lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r0, r3, 0 adds r0, 0x1C adds r0, r1, r0 ldr r2, _08112260 str r2, [r0] adds r1, r3 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 movs r2, 0x20 orrs r0, r2 strb r0, [r1, 0x5] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] bl sub_8149954 ldr r0, _08112264 movs r1, 0 bl CreateTask lsls r1, r0, 24 lsrs r2, r1, 24 mov r1, r9 strb r0, [r1, 0x2] ldr r1, _08112268 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 movs r2, 0 strh r2, [r0, 0x8] mov r1, r8 strh r1, [r0, 0xE] strh r5, [r0, 0x10] mov r2, sp ldrh r2, [r2, 0x1C] strh r2, [r0, 0xA] ldr r1, [sp, 0x1C] lsrs r1, 16 str r1, [sp, 0x20] strh r1, [r0, 0xC] movs r1, 0x1 strh r1, [r0, 0x14] movs r1, 0 strh r1, [r0, 0x1E] mov r2, r10 strh r2, [r0, 0x20] ldr r0, _0811226C bl SetMainCallback2 add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08112234: .4byte gStringVar1 _08112238: .4byte gStringVar2 _0811223C: .4byte gSpeciesNames _08112240: .4byte gAffineAnimsDisabled _08112244: .4byte 0x02014800 _08112248: .4byte gMonFrontPicTable _0811224C: .4byte gMonFrontPicCoords _08112250: .4byte gUnknown_081FAF4C _08112254: .4byte gUnknown_02024E8C _08112258: .4byte gDummySpriteAffineAnimTable _0811225C: .4byte gSprites _08112260: .4byte nullsub_37 _08112264: .4byte sub_8112FE8 _08112268: .4byte gTasks _0811226C: .4byte sub_8112290 thumb_func_end sub_81120E4 thumb_func_start sub_8112270 sub_8112270: @ 8112270 push {lr} bl AnimateSprites bl BuildOamBuffer ldr r0, _0811228C bl sub_800374C bl UpdatePaletteFade bl RunTasks pop {r0} bx r0 .align 2, 0 _0811228C: .4byte gUnknown_03004210 thumb_func_end sub_8112270 thumb_func_start sub_8112290 sub_8112290: @ 8112290 push {lr} bl AnimateSprites bl BuildOamBuffer ldr r0, _081122B0 ldr r0, [r0] adds r0, 0x4 bl sub_80035AC bl UpdatePaletteFade bl RunTasks pop {r0} bx r0 .align 2, 0 _081122B0: .4byte gUnknown_03004828 thumb_func_end sub_8112290 thumb_func_start sub_81122B4 sub_81122B4: @ 81122B4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r10, r1 lsls r0, 16 lsrs r7, r0, 16 movs r0, 0 str r0, [sp] ldr r0, _081123F4 mov r8, r0 lsls r1, r7, 2 mov r9, r1 adds r0, r1, r7 lsls r4, r0, 3 mov r0, r8 adds r6, r4, r0 ldrh r0, [r6] cmp r0, 0xD beq _081122E2 b _081123E2 _081122E2: ldr r1, _081123F8 ldrb r0, [r1] cmp r0, 0x5 bhi _081123E2 adds r1, r0, 0 movs r0, 0x64 muls r1, r0 ldr r0, _081123FC adds r5, r1, r0 adds r0, r5, 0 mov r1, r10 movs r2, 0x64 bl CopyMon mov r1, r8 adds r2, r1, r4 adds r2, 0xC adds r0, r5, 0 movs r1, 0xB bl SetMonData ldrh r1, [r6, 0xC] movs r0, 0xB adds r2, r1, 0 muls r2, r0 ldr r0, _08112400 adds r2, r0 adds r0, r5, 0 movs r1, 0x2 bl SetMonData adds r0, r5, 0 movs r1, 0xC mov r2, sp bl SetMonData adds r0, r5, 0 movs r1, 0x8 mov r2, sp bl SetMonData adds r0, r5, 0 movs r1, 0xA mov r2, sp bl SetMonData movs r4, 0x32 mov r6, r9 _08112342: adds r0, r5, 0 adds r1, r4, 0 mov r2, sp bl SetMonData adds r4, 0x1 cmp r4, 0x36 ble _08112342 movs r4, 0x43 _08112354: adds r0, r5, 0 adds r1, r4, 0 mov r2, sp bl SetMonData adds r4, 0x1 cmp r4, 0x4F ble _08112354 adds r0, r5, 0 movs r1, 0x37 mov r2, sp bl SetMonData movs r0, 0xFF str r0, [sp] adds r0, r5, 0 movs r1, 0x40 mov r2, sp bl SetMonData adds r0, r5, 0 bl CalculateMonStats bl CalculatePlayerPartyCount ldr r0, _081123F4 adds r4, r6, r7 lsls r4, 3 adds r4, r0 ldrh r0, [r4, 0xC] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x2 bl sub_8090D90 ldrh r0, [r4, 0xC] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl sub_8090D90 adds r0, r5, 0 movs r1, 0xB bl GetMonData ldr r1, _08112404 cmp r0, r1 bne _081123E2 adds r0, r5, 0 movs r1, 0x3 bl GetMonData cmp r0, 0x1 bne _081123E2 mov r0, r10 movs r1, 0xB bl GetMonData movs r1, 0x97 lsls r1, 1 cmp r0, r1 bne _081123E2 ldr r2, _08112408 adds r0, r5, 0 movs r1, 0x2 bl SetMonData _081123E2: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081123F4: .4byte gEvolutionTable _081123F8: .4byte gPlayerPartyCount _081123FC: .4byte gPlayerParty _08112400: .4byte gSpeciesNames _08112404: .4byte 0x0000012f _08112408: .4byte gUnknown_083F868C thumb_func_end sub_81122B4 thumb_func_start sub_811240C sub_811240C: @ 811240C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x18 lsls r0, 24 lsrs r7, r0, 24 ldr r2, _08112490 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r3, r0, r2 movs r1, 0xA ldrsh r0, [r3, r1] mov r9, r0 movs r1, 0xC ldrsh r0, [r3, r1] lsls r0, 16 mov r1, r9 orrs r1, r0 mov r9, r1 ldr r0, _08112494 ldrh r1, [r0, 0x2C] adds r6, r2, 0 adds r4, r0, 0 cmp r1, 0x2 bne _0811246E movs r2, 0x8 ldrsh r0, [r3, r2] cmp r0, 0x8 bne _0811246E ldrh r1, [r3, 0x12] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0811246E movs r0, 0x10 strh r0, [r3, 0x8] ldr r0, _08112498 ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r1, r0, r6 ldrb r0, [r1, 0x4] cmp r0, 0 beq _0811246E strh r2, [r1, 0x18] _0811246E: lsls r1, r7, 2 adds r0, r1, r7 lsls r0, 3 adds r0, r6 movs r3, 0x8 ldrsh r0, [r0, r3] mov r8, r1 cmp r0, 0x15 bls _08112484 bl _08112FD0 _08112484: lsls r0, 2 ldr r1, _0811249C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08112490: .4byte gTasks _08112494: .4byte gMain _08112498: .4byte gUnknown_02024D1E _0811249C: .4byte _081124A0 .align 2, 0 _081124A0: .4byte _081124F8 .4byte _0811253C .4byte _08112588 .4byte _08112594 .4byte _081125BC .4byte _081125FC .4byte _08112630 .4byte _0811266C .4byte _081126A0 .4byte _081126E0 .4byte _081126FC .4byte _08112728 .4byte _08112754 .4byte _081127A0 .4byte _0811284C .4byte _081128E4 .4byte _08112934 .4byte _08112974 .4byte _081129A0 .4byte _081129E8 .4byte _08112A4C .4byte _08112A88 _081124F8: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r2, _08112530 ldr r0, _08112534 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldr r0, _08112538 mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 b _08112A2E .align 2, 0 _08112530: .4byte gSprites _08112534: .4byte 0x02014800 _08112538: .4byte gTasks _0811253C: ldr r0, _08112574 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0811254C bl _08112FD0 _0811254C: ldr r4, _08112578 ldr r1, _0811257C adds r0, r4, 0 bl StringExpandPlaceholders ldr r0, _08112580 movs r1, 0xF str r1, [sp] adds r1, r4, 0 movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r0, _08112584 mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r1, r0 b _08112A2E .align 2, 0 _08112574: .4byte gPaletteFade _08112578: .4byte gStringVar4 _0811257C: .4byte gUnknown_08400C4A _08112580: .4byte gUnknown_03004210 _08112584: .4byte gTasks _08112588: ldr r0, _08112590 ldrh r0, [r0, 0x16] b _0811297C .align 2, 0 _08112590: .4byte gUnknown_03004210 _08112594: bl IsCryFinished lsls r0, 24 cmp r0, 0 bne _081125A2 bl _08112FD0 _081125A2: movs r0, 0xBC lsls r0, 1 bl PlaySE ldr r0, _081125B8 mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 b _08112A2E .align 2, 0 _081125B8: .4byte gTasks _081125BC: bl IsSEPlaying lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _081125CC bl _08112FD0 _081125CC: ldr r0, _081125F4 bl PlayNewMapMusic ldr r0, _081125F8 mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] str r4, [sp] movs r0, 0x1C movs r1, 0x4 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade bl _08112FD0 .align 2, 0 _081125F4: .4byte 0x00000179 _081125F8: .4byte gTasks _081125FC: ldr r0, _08112624 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0811260C bl _08112FD0 _0811260C: movs r0, 0x11 bl sub_8149970 ldr r1, _08112628 strb r0, [r1, 0x2] ldr r0, _0811262C mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 b _08112A2E .align 2, 0 _08112624: .4byte gPaletteFade _08112628: .4byte gUnknown_02024D1E _0811262C: .4byte gTasks _08112630: ldr r4, _08112664 ldrb r0, [r4, 0x2] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r6 ldrb r0, [r1, 0x4] cmp r0, 0 beq _08112646 bl _08112FD0 _08112646: mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r1, r6 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] ldr r1, _08112668 movs r0, 0x1 strb r0, [r1, 0x3] bl sub_8149A90 strb r0, [r4, 0x2] bl _08112FD0 .align 2, 0 _08112664: .4byte gUnknown_02024D1E _08112668: .4byte 0x02014800 _0811266C: ldr r4, _08112698 ldrb r0, [r4, 0x2] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r6 ldrb r0, [r1, 0x4] cmp r0, 0 beq _08112682 bl _08112FD0 _08112682: ldr r1, _0811269C ldrb r0, [r1] ldrb r1, [r1, 0x1] bl sub_8149E7C strb r0, [r4, 0x2] mov r0, r8 adds r1, r0, r7 lsls r1, 3 adds r1, r6 b _08112A2E .align 2, 0 _08112698: .4byte gUnknown_02024D1E _0811269C: .4byte 0x02014800 _081126A0: ldr r1, _081126D8 ldrb r0, [r1, 0x3] subs r0, 0x1 strb r0, [r1, 0x3] lsls r0, 24 cmp r0, 0 beq _081126B2 bl _08112FD0 _081126B2: movs r0, 0x3 strb r0, [r1, 0x3] ldr r0, _081126DC ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 ldrb r0, [r0, 0x4] cmp r0, 0 beq _081126CC bl _08112FD0 _081126CC: mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r6 b _08112A2E .align 2, 0 _081126D8: .4byte 0x02014800 _081126DC: .4byte gUnknown_02024D1E _081126E0: bl sub_8149B44 ldr r1, _081126F4 strb r0, [r1, 0x2] ldr r0, _081126F8 mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r1, r0 b _08112A2E .align 2, 0 _081126F4: .4byte gUnknown_02024D1E _081126F8: .4byte gTasks _081126FC: ldr r5, _08112724 ldrb r0, [r5, 0x2] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r6 ldrb r0, [r1, 0x4] cmp r0, 0 beq _08112712 bl _08112FD0 _08112712: mov r0, r8 adds r4, r0, r7 lsls r4, 3 adds r4, r6 ldrh r0, [r4, 0x10] bl sub_8149C20 strb r0, [r5, 0x2] b _08112992 .align 2, 0 _08112724: .4byte gUnknown_02024D1E _08112728: ldr r0, _08112750 ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 ldrb r0, [r0, 0x4] cmp r0, 0 beq _0811273E bl _08112FD0 _0811273E: movs r0, 0x21 bl PlaySE mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r6 b _08112A2E .align 2, 0 _08112750: .4byte gUnknown_02024D1E _08112754: bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _08112762 bl _08112FD0 _08112762: bl m4aMPlayAllStop ldr r0, _08112794 mov r3, r8 adds r4, r3, r7 lsls r4, 3 adds r4, r0 ldrh r0, [r4, 0x10] movs r1, 0 bl PlayCry1 ldr r0, _08112798 ldr r1, _0811279C movs r2, 0x60 bl memcpy movs r0, 0 str r0, [sp] movs r0, 0x1C movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade b _08112992 .align 2, 0 _08112794: .4byte gTasks _08112798: .4byte gPlttBufferUnfaded + 0x40 _0811279C: .4byte 0x02009000 _081127A0: bl IsCryFinished lsls r0, 24 cmp r0, 0 bne _081127AE bl _08112FD0 _081127AE: ldr r0, _08112834 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081127BE bl _08112FD0 _081127BE: ldr r4, _08112838 ldr r1, _0811283C adds r0, r4, 0 bl StringExpandPlaceholders ldr r0, _08112840 movs r1, 0xF str r1, [sp] adds r1, r4, 0 movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r0, _08112844 bl PlayBGM ldr r2, _08112848 mov r0, r8 adds r1, r0, r7 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] adds r2, r1 adds r2, 0x10 mov r0, r9 movs r1, 0xB bl SetMonData mov r0, r9 bl CalculateMonStats ldrh r1, [r4, 0xE] ldrh r2, [r4, 0x10] mov r0, r9 bl sub_803FB68 ldrh r0, [r4, 0x10] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x2 bl sub_8090D90 ldrh r0, [r4, 0x10] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl sub_8090D90 movs r0, 0xE bl sav12_xor_increment b _08112FD0 .align 2, 0 _08112834: .4byte gPaletteFade _08112838: .4byte gStringVar4 _0811283C: .4byte gUnknown_08400C60 _08112840: .4byte gUnknown_03004210 _08112844: .4byte 0x00000173 _08112848: .4byte gTasks _0811284C: ldr r0, _081128A4 ldrh r0, [r0, 0x16] cmp r0, 0 beq _08112856 b _08112FD0 _08112856: mov r1, r8 adds r0, r1, r7 lsls r0, 3 adds r5, r0, r6 ldrb r1, [r5, 0x14] mov r0, r9 bl sub_803B7C8 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0 beq _081128C4 movs r2, 0x1E ldrsh r4, [r5, r2] cmp r4, 0 bne _081128C4 bl sub_8053E90 ldrh r1, [r5, 0x12] movs r0, 0x80 orrs r0, r1 strh r0, [r5, 0x12] strh r4, [r5, 0x14] strh r4, [r5, 0x18] mov r0, r9 movs r1, 0x2 add r2, sp, 0x4 bl GetMonData ldr r0, _081128A8 add r1, sp, 0x4 bl StringCopy10 ldr r0, _081128AC cmp r6, r0 bne _081128B0 movs r0, 0x15 strh r0, [r5, 0x8] b _08112FD0 .align 2, 0 _081128A4: .4byte gUnknown_03004210 _081128A8: .4byte gUnknown_030041C0 _081128AC: .4byte 0x0000ffff _081128B0: ldr r0, _081128C0 cmp r6, r0 bne _081128B8 b _08112FD0 _081128B8: movs r0, 0x13 strh r0, [r5, 0x8] b _08112FD0 .align 2, 0 _081128C0: .4byte 0x0000fffe _081128C4: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _081128E0 mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r1, r0 b _08112A2E .align 2, 0 _081128E0: .4byte gTasks _081128E4: ldr r0, _0811292C ldrb r1, [r0, 0x7] movs r2, 0x80 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _081128F4 b _08112FD0 _081128F4: mov r1, r8 adds r0, r1, r7 lsls r0, 3 adds r4, r0, r6 ldrh r1, [r4, 0x12] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0811290A bl sub_8053E90 _0811290A: movs r2, 0x1E ldrsh r0, [r4, r2] cmp r0, 0 bne _0811291A ldrh r0, [r4, 0xE] mov r1, r9 bl sub_81122B4 _0811291A: adds r0, r7, 0 bl DestroyTask ldr r0, _08112930 ldr r0, [r0] bl SetMainCallback2 b _08112FD0 .align 2, 0 _0811292C: .4byte gPaletteFade _08112930: .4byte gUnknown_03005E94 _08112934: ldr r0, _08112968 ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 ldrb r0, [r0, 0x4] cmp r0, 0 beq _08112948 b _08112FD0 _08112948: bl m4aMPlayAllStop ldr r0, _0811296C ldr r1, _08112970 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r1, r6 b _08112A2E .align 2, 0 _08112968: .4byte gUnknown_02024D1E _0811296C: .4byte 0x0006001c _08112970: .4byte 0x00007fff _08112974: ldr r0, _0811299C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 _0811297C: cmp r0, 0 beq _08112982 b _08112FD0 _08112982: mov r0, r8 adds r4, r0, r7 lsls r4, 3 adds r4, r6 ldrh r0, [r4, 0xE] movs r1, 0 bl PlayCry1 _08112992: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _08112FD0 .align 2, 0 _0811299C: .4byte gPaletteFade _081129A0: bl IsCryFinished lsls r0, 24 cmp r0, 0 bne _081129AC b _08112FD0 _081129AC: ldr r4, _081129D8 ldr r1, _081129DC adds r0, r4, 0 bl StringExpandPlaceholders ldr r0, _081129E0 movs r1, 0xF str r1, [sp] adds r1, r4, 0 movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r1, _081129E4 mov r2, r8 adds r0, r2, r7 lsls r0, 3 adds r0, r1 movs r1, 0x1 strh r1, [r0, 0x1E] b _08112F9A .align 2, 0 _081129D8: .4byte gStringVar4 _081129DC: .4byte gUnknown_08400C8D _081129E0: .4byte gUnknown_03004210 _081129E4: .4byte gTasks _081129E8: ldr r4, _08112A38 ldrh r0, [r4, 0x16] cmp r0, 0 beq _081129F2 b _08112FD0 _081129F2: bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _081129FE b _08112FD0 _081129FE: bl sub_8024CEC ldr r0, _08112A3C bl PlayFanfare ldr r0, _08112A40 ldr r0, [r0, 0xC] bl get_battle_strings_ ldr r1, _08112A44 movs r0, 0xF str r0, [sp] adds r0, r4, 0 movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r0, _08112A48 mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r1, r0 movs r0, 0x40 strh r0, [r1, 0x14] _08112A2E: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _08112FD0 .align 2, 0 _08112A38: .4byte gUnknown_03004210 _08112A3C: .4byte 0x0000016f _08112A40: .4byte gUnknown_08400F8C _08112A44: .4byte gUnknown_020238CC _08112A48: .4byte gTasks _08112A4C: ldr r0, _08112A80 ldrh r0, [r0, 0x16] cmp r0, 0 beq _08112A56 b _08112FD0 _08112A56: bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _08112A62 b _08112FD0 _08112A62: ldr r0, _08112A84 mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x14] subs r0, 0x1 strh r0, [r1, 0x14] lsls r0, 16 cmp r0, 0 beq _08112A7A b _08112FD0 _08112A7A: movs r0, 0xE strh r0, [r1, 0x8] b _08112FD0 .align 2, 0 _08112A80: .4byte gUnknown_03004210 _08112A84: .4byte gTasks _08112A88: mov r3, r8 adds r0, r3, r7 lsls r0, 3 adds r0, r6 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0xB bls _08112A9A b _08112FD0 _08112A9A: lsls r0, 2 ldr r1, _08112AA4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08112AA4: .4byte _08112AA8 .align 2, 0 _08112AA8: .4byte _08112AD8 .4byte _08112B2C .4byte _08112B7C .4byte _08112BC0 .4byte _08112C0C .4byte _08112D3C .4byte _08112D8C .4byte _08112E98 .4byte _08112EE8 .4byte _08112F38 .4byte _08112F78 .4byte _08112FB0 _08112AD8: ldr r4, _08112B1C ldrh r0, [r4, 0x16] cmp r0, 0 beq _08112AE2 b _08112FD0 _08112AE2: bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _08112AEE b _08112FD0 _08112AEE: bl sub_8024CEC ldr r0, _08112B20 ldr r0, [r0, 0x10] bl get_battle_strings_ ldr r1, _08112B24 movs r0, 0xF str r0, [sp] adds r0, r4, 0 movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r0, _08112B28 mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x18] adds r0, 0x1 b _08112FCE .align 2, 0 _08112B1C: .4byte gUnknown_03004210 _08112B20: .4byte gUnknown_08400F8C _08112B24: .4byte gUnknown_020238CC _08112B28: .4byte gTasks _08112B2C: ldr r4, _08112B6C ldrh r0, [r4, 0x16] cmp r0, 0 beq _08112B36 b _08112FD0 _08112B36: bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _08112B42 b _08112FD0 _08112B42: ldr r0, _08112B70 ldr r0, [r0, 0x14] bl get_battle_strings_ ldr r1, _08112B74 movs r0, 0xF str r0, [sp] adds r0, r4, 0 movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r0, _08112B78 mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x18] adds r0, 0x1 b _08112FCE .align 2, 0 _08112B6C: .4byte gUnknown_03004210 _08112B70: .4byte gUnknown_08400F8C _08112B74: .4byte gUnknown_020238CC _08112B78: .4byte gTasks _08112B7C: ldr r4, _08112BF8 ldrh r0, [r4, 0x16] cmp r0, 0 beq _08112B86 b _08112FD0 _08112B86: bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _08112BC0 ldr r0, _08112BFC ldr r0, [r0, 0x18] bl get_battle_strings_ ldr r1, _08112C00 movs r0, 0xF str r0, [sp] adds r0, r4, 0 movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r0, _08112C04 mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 movs r0, 0x5 strh r0, [r1, 0x1A] movs r0, 0x9 strh r0, [r1, 0x1C] ldrh r0, [r1, 0x18] adds r0, 0x1 strh r0, [r1, 0x18] _08112BC0: ldr r0, _08112BF8 ldrh r0, [r0, 0x16] cmp r0, 0 beq _08112BCA b _08112FD0 _08112BCA: bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _08112BD6 b _08112FD0 _08112BD6: bl sub_8023A80 ldr r0, _08112C04 mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x18] adds r0, 0x1 movs r2, 0 strh r0, [r1, 0x18] ldr r0, _08112C08 strb r2, [r0, 0x1] bl sub_802BC6C b _08112FD0 .align 2, 0 _08112BF8: .4byte gUnknown_03004210 _08112BFC: .4byte gUnknown_08400F8C _08112C00: .4byte gUnknown_020238CC _08112C04: .4byte gTasks _08112C08: .4byte gUnknown_02024D1E _08112C0C: ldr r0, _08112CA4 ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08112C32 ldr r4, _08112CA8 ldrb r0, [r4, 0x1] cmp r0, 0 beq _08112C32 movs r0, 0x5 bl PlaySE bl nullsub_6 movs r0, 0 strb r0, [r4, 0x1] bl sub_802BC6C _08112C32: ldr r0, _08112CA4 ldrh r1, [r0, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08112C58 ldr r4, _08112CA8 ldrb r0, [r4, 0x1] cmp r0, 0 bne _08112C58 movs r0, 0x5 bl PlaySE bl nullsub_6 movs r0, 0x1 strb r0, [r4, 0x1] bl sub_802BC6C _08112C58: ldr r0, _08112CA4 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08112CE2 bl sub_8023AD8 ldr r0, _08112CAC movs r1, 0x92 lsls r1, 3 adds r0, r1 ldr r0, [r0] bl get_battle_strings_ ldr r0, _08112CB0 ldr r1, _08112CB4 movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 movs r0, 0x5 bl PlaySE ldr r0, _08112CA8 ldrb r2, [r0, 0x1] cmp r2, 0 beq _08112CBC ldr r0, _08112CB8 mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x1C] strh r0, [r1, 0x18] b _08112CE2 .align 2, 0 _08112CA4: .4byte gMain _08112CA8: .4byte gUnknown_02024D1E _08112CAC: .4byte gUnknown_08400F8C _08112CB0: .4byte gUnknown_03004210 _08112CB4: .4byte gUnknown_020238CC _08112CB8: .4byte gTasks _08112CBC: ldr r0, _08112D28 mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x1A] strh r0, [r1, 0x18] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 bne _08112CE2 movs r0, 0x1 negs r0, r0 str r2, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade _08112CE2: ldr r0, _08112D2C ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08112CF0 b _08112FD0 _08112CF0: bl sub_8023AD8 ldr r0, _08112D30 movs r1, 0x92 lsls r1, 3 adds r0, r1 ldr r0, [r0] bl get_battle_strings_ ldr r0, _08112D34 ldr r1, _08112D38 movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 movs r0, 0x5 bl PlaySE ldr r1, _08112D28 mov r2, r8 adds r0, r2, r7 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x1C] strh r1, [r0, 0x18] b _08112FD0 .align 2, 0 _08112D28: .4byte gTasks _08112D2C: .4byte gMain _08112D30: .4byte gUnknown_08400F8C _08112D34: .4byte gUnknown_03004210 _08112D38: .4byte gUnknown_020238CC _08112D3C: ldr r0, _08112D78 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08112D4A b _08112FD0 _08112D4A: ldr r0, _08112D7C mov r3, r8 adds r5, r3, r7 lsls r5, 3 adds r5, r6 ldrh r1, [r5, 0x20] lsls r1, 24 lsrs r1, 24 ldr r2, _08112D80 ldrb r2, [r2] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r3, _08112D84 ldr r4, _08112D88 ldrh r4, [r4] str r4, [sp] bl sub_809D9F0 ldrh r0, [r5, 0x18] adds r0, 0x1 strh r0, [r5, 0x18] b _08112FD0 .align 2, 0 _08112D78: .4byte gPaletteFade _08112D7C: .4byte gPlayerParty _08112D80: .4byte gPlayerPartyCount _08112D84: .4byte sub_8111C90 _08112D88: .4byte word_2024E82 _08112D8C: ldr r0, _08112DC0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08112D9A b _08112FD0 _08112D9A: ldr r1, [r4, 0x4] ldr r0, _08112DC4 cmp r1, r0 beq _08112DA4 b _08112FD0 _08112DA4: bl sub_809FA30 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x4 bne _08112DCC ldr r0, _08112DC8 mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 movs r0, 0x9 b _08112FCE .align 2, 0 _08112DC0: .4byte gPaletteFade _08112DC4: .4byte sub_8112270 _08112DC8: .4byte gTasks _08112DCC: adds r1, r6, 0 adds r1, 0xD mov r0, r9 bl GetMonData lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl sub_8040A00 cmp r0, 0 beq _08112E24 ldr r0, _08112E10 ldr r3, _08112E14 adds r0, r3 ldr r0, [r0] bl get_battle_strings_ ldr r0, _08112E18 ldr r1, _08112E1C movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r1, _08112E20 mov r2, r8 adds r0, r2, r7 lsls r0, 3 adds r0, r1 movs r1, 0xB strh r1, [r0, 0x18] b _08112FD0 .align 2, 0 _08112E10: .4byte gUnknown_08400F8C _08112E14: .4byte 0x000004cc _08112E18: .4byte gUnknown_03004210 _08112E1C: .4byte gUnknown_020238CC _08112E20: .4byte gTasks _08112E24: ldr r1, _08112E80 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 strb r0, [r1, 0x1] strb r4, [r1, 0x2] lsrs r0, r4, 8 strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] lsls r4, r6, 24 lsrs r4, 24 mov r0, r9 adds r1, r4, 0 bl RemoveMonPPBonus ldr r0, _08112E84 ldrh r1, [r0] mov r0, r9 adds r2, r4, 0 bl SetMonMoveSlot ldr r0, _08112E88 movs r3, 0xCF lsls r3, 2 adds r0, r3 ldr r0, [r0] bl get_battle_strings_ ldr r0, _08112E8C ldr r1, _08112E90 movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r0, _08112E94 mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x18] adds r0, 0x1 b _08112FCE .align 2, 0 _08112E80: .4byte gUnknown_03004290 _08112E84: .4byte word_2024E82 _08112E88: .4byte gUnknown_08400F8C _08112E8C: .4byte gUnknown_03004210 _08112E90: .4byte gUnknown_020238CC _08112E94: .4byte gTasks _08112E98: ldr r4, _08112ED8 ldrh r0, [r4, 0x16] cmp r0, 0 beq _08112EA2 b _08112FD0 _08112EA2: bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _08112EAE b _08112FD0 _08112EAE: ldr r0, _08112EDC ldr r0, [r0, 0x1C] bl get_battle_strings_ ldr r1, _08112EE0 movs r0, 0xF str r0, [sp] adds r0, r4, 0 movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r0, _08112EE4 mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x18] adds r0, 0x1 b _08112FCE .align 2, 0 _08112ED8: .4byte gUnknown_03004210 _08112EDC: .4byte gUnknown_08400F8C _08112EE0: .4byte gUnknown_020238CC _08112EE4: .4byte gTasks _08112EE8: ldr r4, _08112F28 ldrh r0, [r4, 0x16] cmp r0, 0 bne _08112FD0 bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _08112FD0 ldr r0, _08112F2C movs r1, 0xD0 lsls r1, 2 adds r0, r1 ldr r0, [r0] bl get_battle_strings_ ldr r1, _08112F30 movs r0, 0xF str r0, [sp] adds r0, r4, 0 movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r1, _08112F34 mov r2, r8 adds r0, r2, r7 lsls r0, 3 adds r0, r1 movs r1, 0x13 strh r1, [r0, 0x8] b _08112FD0 .align 2, 0 _08112F28: .4byte gUnknown_03004210 _08112F2C: .4byte gUnknown_08400F8C _08112F30: .4byte gUnknown_020238CC _08112F34: .4byte gTasks _08112F38: ldr r0, _08112F68 ldr r0, [r0, 0x20] bl get_battle_strings_ ldr r0, _08112F6C ldr r1, _08112F70 movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r1, _08112F74 mov r3, r8 adds r0, r3, r7 lsls r0, 3 adds r0, r1 movs r2, 0 movs r1, 0xA strh r1, [r0, 0x1A] strh r2, [r0, 0x1C] movs r1, 0x3 strh r1, [r0, 0x18] b _08112FD0 .align 2, 0 _08112F68: .4byte gUnknown_08400F8C _08112F6C: .4byte gUnknown_03004210 _08112F70: .4byte gUnknown_020238CC _08112F74: .4byte gTasks _08112F78: ldr r0, _08112FA0 ldr r0, [r0, 0x24] bl get_battle_strings_ ldr r0, _08112FA4 ldr r1, _08112FA8 movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r1, _08112FAC mov r2, r8 adds r0, r2, r7 lsls r0, 3 adds r0, r1 _08112F9A: movs r1, 0xE strh r1, [r0, 0x8] b _08112FD0 .align 2, 0 _08112FA0: .4byte gUnknown_08400F8C _08112FA4: .4byte gUnknown_03004210 _08112FA8: .4byte gUnknown_020238CC _08112FAC: .4byte gTasks _08112FB0: ldr r0, _08112FE0 ldrh r0, [r0, 0x16] cmp r0, 0 bne _08112FD0 bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _08112FD0 ldr r0, _08112FE4 mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r1, r0 movs r0, 0x5 _08112FCE: strh r0, [r1, 0x18] _08112FD0: add sp, 0x18 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08112FE0: .4byte gUnknown_03004210 _08112FE4: .4byte gTasks thumb_func_end sub_811240C thumb_func_start sub_8112FE8 sub_8112FE8: @ 8112FE8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x18 lsls r0, 24 lsrs r7, r0, 24 ldr r2, _0811302C lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r2 movs r3, 0xA ldrsh r0, [r1, r3] mov r8, r0 movs r3, 0xC ldrsh r0, [r1, r3] lsls r0, 16 mov r3, r8 orrs r3, r0 mov r8, r3 movs r3, 0x8 ldrsh r0, [r1, r3] adds r6, r2, 0 cmp r0, 0x11 bls _08113020 bl _08113B3A _08113020: lsls r0, 2 ldr r1, _08113030 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0811302C: .4byte gTasks _08113030: .4byte _08113034 .align 2, 0 _08113034: .4byte _0811307C .4byte _081130B8 .4byte _081130DC .4byte _0811310C .4byte _0811314C .4byte _0811318C .4byte _081131C8 .4byte _081131F4 .4byte _0811322C .4byte _08113248 .4byte _08113274 .4byte _081132A8 .4byte _081132F8 .4byte _081133A8 .4byte _0811346C .4byte _08113490 .4byte _081134F8 .4byte _08113538 _0811307C: ldr r4, _081130A8 ldr r1, _081130AC adds r0, r4, 0 bl StringExpandPlaceholders ldr r0, _081130B0 ldr r1, [r0] adds r0, r1, 0x4 adds r1, 0x34 ldrb r2, [r1] movs r1, 0xF str r1, [sp] adds r1, r4, 0 movs r3, 0x2 bl sub_8002EB0 ldr r1, _081130B4 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 b _08113298 .align 2, 0 _081130A8: .4byte gStringVar4 _081130AC: .4byte gUnknown_08400C4A _081130B0: .4byte gUnknown_03004828 _081130B4: .4byte gTasks _081130B8: ldr r0, _081130D8 ldr r0, [r0] ldrh r0, [r0, 0x1A] cmp r0, 0 beq _081130C6 bl _08113B3A _081130C6: lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r6 ldrh r0, [r4, 0xE] movs r1, 0 bl PlayCry1 b _081132E2 .align 2, 0 _081130D8: .4byte gUnknown_03004828 _081130DC: bl IsCryFinished lsls r0, 24 cmp r0, 0 bne _081130EA bl _08113B3A _081130EA: ldr r0, _08113104 bl m4aSongNumStop movs r0, 0xBC lsls r0, 1 bl PlaySE ldr r1, _08113108 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 b _08113298 .align 2, 0 _08113104: .4byte 0x00000179 _08113108: .4byte gTasks _0811310C: bl IsSEPlaying lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 beq _0811311C bl _08113B3A _0811311C: ldr r0, _08113144 bl PlayBGM ldr r1, _08113148 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] str r5, [sp] movs r0, 0x1C movs r1, 0x4 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade bl _08113B3A .align 2, 0 _08113144: .4byte 0x00000179 _08113148: .4byte gTasks _0811314C: ldr r0, _08113180 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0811315C bl _08113B3A _0811315C: movs r1, 0x80 lsls r1, 19 movs r2, 0x9A lsls r2, 5 adds r0, r2, 0 strh r0, [r1] movs r0, 0x11 bl sub_8149970 ldr r1, _08113184 strb r0, [r1, 0x2] ldr r1, _08113188 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 b _08113298 .align 2, 0 _08113180: .4byte gPaletteFade _08113184: .4byte gUnknown_02024D1E _08113188: .4byte gTasks _0811318C: ldr r4, _081131C0 ldrb r0, [r4, 0x2] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r6 ldrb r0, [r1, 0x4] cmp r0, 0 beq _081131A2 bl _08113B3A _081131A2: lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r6 ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] ldr r1, _081131C4 movs r0, 0x1 strb r0, [r1, 0x3] bl sub_8149A90 strb r0, [r4, 0x2] bl _08113B3A .align 2, 0 _081131C0: .4byte gUnknown_02024D1E _081131C4: .4byte 0x02014800 _081131C8: ldr r4, _081131EC ldrb r0, [r4, 0x2] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r6 ldrb r0, [r1, 0x4] cmp r0, 0 beq _081131DE bl _08113B3A _081131DE: ldr r1, _081131F0 ldrb r0, [r1] ldrb r1, [r1, 0x1] bl sub_8149E7C strb r0, [r4, 0x2] b _08113290 .align 2, 0 _081131EC: .4byte gUnknown_02024D1E _081131F0: .4byte 0x02014800 _081131F4: ldr r1, _08113224 ldrb r0, [r1, 0x3] subs r0, 0x1 strb r0, [r1, 0x3] lsls r0, 24 cmp r0, 0 beq _08113206 bl _08113B3A _08113206: movs r0, 0x3 strb r0, [r1, 0x3] ldr r0, _08113228 ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 ldrb r0, [r0, 0x4] cmp r0, 0 beq _08113220 bl _08113B3A _08113220: b _08113290 .align 2, 0 _08113224: .4byte 0x02014800 _08113228: .4byte gUnknown_02024D1E _0811322C: bl sub_8149B44 ldr r1, _08113240 strb r0, [r1, 0x2] ldr r1, _08113244 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 b _08113298 .align 2, 0 _08113240: .4byte gUnknown_02024D1E _08113244: .4byte gTasks _08113248: ldr r5, _08113270 ldrb r0, [r5, 0x2] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r6 ldrb r0, [r1, 0x4] cmp r0, 0 beq _0811325E bl _08113B3A _0811325E: lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r6 ldrh r0, [r4, 0x10] bl sub_8149D5C strb r0, [r5, 0x2] b _081132E2 .align 2, 0 _08113270: .4byte gUnknown_02024D1E _08113274: ldr r0, _081132A4 ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 ldrb r0, [r0, 0x4] cmp r0, 0 beq _0811328A bl _08113B3A _0811328A: movs r0, 0x21 bl PlaySE _08113290: lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r6 _08113298: ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] bl _08113B3A .align 2, 0 _081132A4: .4byte gUnknown_02024D1E _081132A8: bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _081132B6 bl _08113B3A _081132B6: ldr r0, _081132EC lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r0 ldrh r0, [r4, 0x10] movs r1, 0 bl PlayCry1 ldr r0, _081132F0 ldr r1, _081132F4 movs r2, 0x60 bl memcpy movs r0, 0 str r0, [sp] movs r0, 0x1 movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade _081132E2: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] bl _08113B3A .align 2, 0 _081132EC: .4byte gTasks _081132F0: .4byte gPlttBufferUnfaded + 0x40 _081132F4: .4byte 0x02009000 _081132F8: bl IsCryFinished lsls r0, 24 cmp r0, 0 bne _08113306 bl _08113B3A _08113306: ldr r0, _08113390 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08113316 bl _08113B3A _08113316: ldr r4, _08113394 ldr r1, _08113398 adds r0, r4, 0 bl StringExpandPlaceholders ldr r0, _0811339C ldr r1, [r0] adds r0, r1, 0x4 adds r1, 0x34 ldrb r2, [r1] movs r1, 0xF str r1, [sp] adds r1, r4, 0 movs r3, 0x2 bl sub_8002EB0 ldr r0, _081133A0 bl PlayFanfare ldr r2, _081133A4 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] adds r2, r1 adds r2, 0x10 mov r0, r8 movs r1, 0xB bl SetMonData mov r0, r8 bl CalculateMonStats ldrh r1, [r4, 0xE] ldrh r2, [r4, 0x10] mov r0, r8 bl sub_803FB68 ldrh r0, [r4, 0x10] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x2 bl sub_8090D90 ldrh r0, [r4, 0x10] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl sub_8090D90 movs r0, 0xE bl sav12_xor_increment b _08113B3A .align 2, 0 _08113390: .4byte gPaletteFade _08113394: .4byte gStringVar4 _08113398: .4byte gUnknown_08400C60 _0811339C: .4byte gUnknown_03004828 _081133A0: .4byte 0x00000173 _081133A4: .4byte gTasks _081133A8: ldr r0, _08113410 ldr r0, [r0] ldrh r0, [r0, 0x1A] cmp r0, 0 beq _081133B4 b _08113B3A _081133B4: bl IsFanfareTaskInactive lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081133C2 b _08113B3A _081133C2: ldr r1, _08113414 lsls r4, r7, 2 adds r0, r4, r7 lsls r0, 3 adds r5, r0, r1 ldrb r1, [r5, 0x14] mov r0, r8 bl sub_803B7C8 lsls r0, 16 lsrs r6, r0, 16 mov r9, r4 cmp r6, 0 beq _08113434 movs r3, 0x1E ldrsh r2, [r5, r3] cmp r2, 0 bne _08113434 ldrh r1, [r5, 0x12] movs r0, 0x80 orrs r0, r1 strh r0, [r5, 0x12] strh r2, [r5, 0x14] strh r2, [r5, 0x18] mov r0, r8 movs r1, 0x2 add r2, sp, 0x4 bl GetMonData ldr r0, _08113418 add r1, sp, 0x4 bl StringCopy10 ldr r0, _0811341C cmp r6, r0 bne _08113420 movs r0, 0x11 strh r0, [r5, 0x8] b _08113B3A .align 2, 0 _08113410: .4byte gUnknown_03004828 _08113414: .4byte gTasks _08113418: .4byte gUnknown_030041C0 _0811341C: .4byte 0x0000ffff _08113420: ldr r0, _08113430 cmp r6, r0 bne _08113428 b _08113B3A _08113428: movs r0, 0xF strh r0, [r5, 0x8] b _08113B3A .align 2, 0 _08113430: .4byte 0x0000fffe _08113434: ldr r0, _0811345C bl PlayBGM ldr r0, _08113460 ldr r2, [r0] adds r0, r2, 0x4 ldr r1, _08113464 adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 ldr r0, _08113468 mov r2, r9 adds r1, r2, r7 lsls r1, 3 adds r1, r0 b _081134DC .align 2, 0 _0811345C: .4byte 0x00000179 _08113460: .4byte gUnknown_03004828 _08113464: .4byte gOtherText_LinkStandby2 _08113468: .4byte gTasks _0811346C: ldr r0, _08113488 ldr r0, [r0] ldrh r0, [r0, 0x1A] cmp r0, 0 beq _08113478 b _08113B3A _08113478: adds r0, r7, 0 bl DestroyTask ldr r0, _0811348C ldr r0, [r0] bl SetMainCallback2 b _08113B3A .align 2, 0 _08113488: .4byte gUnknown_03004828 _0811348C: .4byte gUnknown_03005E94 _08113490: ldr r4, _081134E4 ldr r0, [r4] ldrh r0, [r0, 0x1A] cmp r0, 0 beq _0811349C b _08113B3A _0811349C: bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _081134A8 b _08113B3A _081134A8: bl sub_8024CEC ldr r0, _081134E8 bl PlayFanfare ldr r0, _081134EC ldr r0, [r0, 0xC] bl get_battle_strings_ ldr r2, [r4] adds r0, r2, 0x4 ldr r1, _081134F0 adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 ldr r0, _081134F4 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r0 movs r0, 0x40 strh r0, [r1, 0x14] _081134DC: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _08113B3A .align 2, 0 _081134E4: .4byte gUnknown_03004828 _081134E8: .4byte 0x0000016f _081134EC: .4byte gUnknown_08400F8C _081134F0: .4byte gUnknown_020238CC _081134F4: .4byte gTasks _081134F8: ldr r0, _08113530 ldr r0, [r0] ldrh r0, [r0, 0x1A] cmp r0, 0 beq _08113504 b _08113B3A _08113504: bl IsFanfareTaskInactive lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08113512 b _08113B3A _08113512: ldr r0, _08113534 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x14] subs r0, 0x1 strh r0, [r1, 0x14] lsls r0, 16 cmp r0, 0 beq _0811352A b _08113B3A _0811352A: movs r0, 0xD strh r0, [r1, 0x8] b _08113B3A .align 2, 0 _08113530: .4byte gUnknown_03004828 _08113534: .4byte gTasks _08113538: lsls r1, r7, 2 adds r0, r1, r7 lsls r0, 3 adds r0, r6 movs r3, 0x18 ldrsh r0, [r0, r3] mov r9, r1 cmp r0, 0xB bls _0811354C b _08113B3A _0811354C: lsls r0, 2 ldr r1, _08113558 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08113558: .4byte _0811355C .align 2, 0 _0811355C: .4byte _0811358C .4byte _081135E4 .4byte _08113638 .4byte _08113682 .4byte _0811371C .4byte _0811387C .4byte _081138CC .4byte _081139E8 .4byte _08113A3C .4byte _08113A90 .4byte _08113AD8 .4byte _08113B18 _0811358C: ldr r4, _081135D4 ldr r0, [r4] ldrh r0, [r0, 0x1A] cmp r0, 0 beq _08113598 b _08113B3A _08113598: bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _081135A4 b _08113B3A _081135A4: bl sub_8024CEC ldr r0, _081135D8 ldr r0, [r0, 0x10] bl get_battle_strings_ ldr r2, [r4] adds r0, r2, 0x4 ldr r1, _081135DC adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 ldr r0, _081135E0 mov r2, r9 adds r1, r2, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x18] adds r0, 0x1 b _08113B38 .align 2, 0 _081135D4: .4byte gUnknown_03004828 _081135D8: .4byte gUnknown_08400F8C _081135DC: .4byte gUnknown_020238CC _081135E0: .4byte gTasks _081135E4: ldr r4, _08113628 ldr r0, [r4] ldrh r0, [r0, 0x1A] cmp r0, 0 beq _081135F0 b _08113B3A _081135F0: bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _081135FC b _08113B3A _081135FC: ldr r0, _0811362C ldr r0, [r0, 0x14] bl get_battle_strings_ ldr r2, [r4] adds r0, r2, 0x4 ldr r1, _08113630 adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 ldr r0, _08113634 mov r3, r9 adds r1, r3, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x18] adds r0, 0x1 b _08113B38 .align 2, 0 _08113628: .4byte gUnknown_03004828 _0811362C: .4byte gUnknown_08400F8C _08113630: .4byte gUnknown_020238CC _08113634: .4byte gTasks _08113638: ldr r4, _081136FC ldr r0, [r4] ldrh r0, [r0, 0x1A] cmp r0, 0 beq _08113644 b _08113B3A _08113644: bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _08113682 ldr r0, _08113700 ldr r0, [r0, 0x18] bl get_battle_strings_ ldr r2, [r4] adds r0, r2, 0x4 ldr r1, _08113704 adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 ldr r0, _08113708 mov r2, r9 adds r1, r2, r7 lsls r1, 3 adds r1, r0 movs r0, 0x5 strh r0, [r1, 0x1A] movs r0, 0x9 strh r0, [r1, 0x1C] ldrh r0, [r1, 0x18] adds r0, 0x1 strh r0, [r1, 0x18] _08113682: ldr r5, _081136FC ldr r0, [r5] ldrh r0, [r0, 0x1A] cmp r0, 0 beq _0811368E b _08113B3A _0811368E: bl IsSEPlaying lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 beq _0811369C b _08113B3A _0811369C: ldr r0, [r5] adds r0, 0x4 movs r1, 0xD str r1, [sp] movs r1, 0x18 movs r2, 0x8 movs r3, 0x1D bl DrawTextWindow ldr r4, _0811370C strb r6, [r4, 0x1] ldr r2, [r5] adds r0, r2, 0x4 ldr r1, _08113710 adds r2, 0x34 ldrb r2, [r2] adds r2, 0x80 movs r3, 0x9 str r3, [sp] movs r3, 0x19 bl InitWindow ldr r0, [r5] adds r0, 0x4 bl sub_8002F44 ldr r1, _08113714 ldr r3, _08113718 movs r0, 0x20 str r0, [sp] movs r0, 0 movs r2, 0xC bl sub_814A5C0 bl sub_81150D8 ldr r0, _08113708 mov r3, r9 adds r1, r3, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x18] adds r0, 0x1 movs r2, 0 strh r0, [r1, 0x18] strb r2, [r4, 0x1] b _08113B3A .align 2, 0 _081136FC: .4byte gUnknown_03004828 _08113700: .4byte gUnknown_08400F8C _08113704: .4byte gUnknown_020238CC _08113708: .4byte gTasks _0811370C: .4byte gUnknown_02024D1E _08113710: .4byte gOtherText_YesNoAndPlayer _08113714: .4byte 0x0000ffff _08113718: .4byte 0x00002d9f _0811371C: ldr r0, _081137CC ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08113742 ldr r4, _081137D0 ldrb r0, [r4, 0x1] cmp r0, 0 beq _08113742 movs r0, 0x5 bl PlaySE bl nullsub_24 movs r0, 0 strb r0, [r4, 0x1] bl sub_81150D8 _08113742: ldr r0, _081137CC ldrh r1, [r0, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08113768 ldr r4, _081137D0 ldrb r0, [r4, 0x1] cmp r0, 0 bne _08113768 movs r0, 0x5 bl PlaySE bl nullsub_24 movs r0, 0x1 strb r0, [r4, 0x1] bl sub_81150D8 _08113768: ldr r0, _081137CC ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0811380A ldr r4, _081137D4 ldr r0, [r4] adds r0, 0x4 movs r1, 0xD str r1, [sp] movs r1, 0x18 movs r2, 0x8 movs r3, 0x1D bl ZeroFillWindowRect bl sub_814A7FC ldr r0, _081137D8 movs r1, 0x92 lsls r1, 3 adds r0, r1 ldr r0, [r0] bl get_battle_strings_ ldr r2, [r4] adds r0, r2, 0x4 ldr r1, _081137DC adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 movs r0, 0x5 bl PlaySE ldr r0, _081137D0 ldrb r2, [r0, 0x1] cmp r2, 0 beq _081137E4 ldr r0, _081137E0 mov r2, r9 adds r1, r2, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x1C] strh r0, [r1, 0x18] b _0811380A .align 2, 0 _081137CC: .4byte gMain _081137D0: .4byte gUnknown_02024D1E _081137D4: .4byte gUnknown_03004828 _081137D8: .4byte gUnknown_08400F8C _081137DC: .4byte gUnknown_020238CC _081137E0: .4byte gTasks _081137E4: ldr r0, _08113868 mov r3, r9 adds r1, r3, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x1A] strh r0, [r1, 0x18] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 bne _0811380A movs r0, 0x1 negs r0, r0 str r2, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade _0811380A: ldr r0, _0811386C ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08113818 b _08113B3A _08113818: ldr r4, _08113870 ldr r0, [r4] adds r0, 0x4 movs r1, 0xD str r1, [sp] movs r1, 0x18 movs r2, 0x8 movs r3, 0x1D bl ZeroFillWindowRect bl sub_814A7FC ldr r0, _08113874 movs r1, 0x92 lsls r1, 3 adds r0, r1 ldr r0, [r0] bl get_battle_strings_ ldr r2, [r4] adds r0, r2, 0x4 ldr r1, _08113878 adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 movs r0, 0x5 bl PlaySE ldr r1, _08113868 mov r2, r9 adds r0, r2, r7 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x1C] strh r1, [r0, 0x18] b _08113B3A .align 2, 0 _08113868: .4byte gTasks _0811386C: .4byte gMain _08113870: .4byte gUnknown_03004828 _08113874: .4byte gUnknown_08400F8C _08113878: .4byte gUnknown_020238CC _0811387C: ldr r0, _081138B8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0811388A b _08113B3A _0811388A: ldr r0, _081138BC mov r3, r9 adds r5, r3, r7 lsls r5, 3 adds r5, r6 ldrh r1, [r5, 0x20] lsls r1, 24 lsrs r1, 24 ldr r2, _081138C0 ldrb r2, [r2] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r3, _081138C4 ldr r4, _081138C8 ldrh r4, [r4] str r4, [sp] bl sub_809D9F0 ldrh r0, [r5, 0x18] adds r0, 0x1 strh r0, [r5, 0x18] b _08113B3A .align 2, 0 _081138B8: .4byte gPaletteFade _081138BC: .4byte gPlayerParty _081138C0: .4byte gPlayerPartyCount _081138C4: .4byte sub_8111E80 _081138C8: .4byte word_2024E82 _081138CC: ldr r0, _08113900 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081138DA b _08113B3A _081138DA: ldr r0, _08113904 ldr r1, [r0, 0x4] ldr r0, _08113908 cmp r1, r0 beq _081138E6 b _08113B3A _081138E6: bl sub_809FA30 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x4 bne _08113910 ldr r0, _0811390C mov r2, r9 adds r1, r2, r7 lsls r1, 3 adds r1, r0 movs r0, 0x9 b _08113B38 .align 2, 0 _08113900: .4byte gPaletteFade _08113904: .4byte gMain _08113908: .4byte sub_8112290 _0811390C: .4byte gTasks _08113910: adds r1, r6, 0 adds r1, 0xD mov r0, r8 bl GetMonData lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl sub_8040A00 cmp r0, 0 beq _08113970 ldr r0, _0811395C ldr r3, _08113960 adds r0, r3 ldr r0, [r0] bl get_battle_strings_ ldr r0, _08113964 ldr r2, [r0] adds r0, r2, 0x4 ldr r1, _08113968 adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 ldr r1, _0811396C mov r2, r9 adds r0, r2, r7 lsls r0, 3 adds r0, r1 movs r1, 0xB strh r1, [r0, 0x18] b _08113B3A .align 2, 0 _0811395C: .4byte gUnknown_08400F8C _08113960: .4byte 0x000004cc _08113964: .4byte gUnknown_03004828 _08113968: .4byte gUnknown_020238CC _0811396C: .4byte gTasks _08113970: ldr r1, _081139D0 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 strb r0, [r1, 0x1] strb r4, [r1, 0x2] lsrs r0, r4, 8 strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] lsls r4, r6, 24 lsrs r4, 24 mov r0, r8 adds r1, r4, 0 bl RemoveMonPPBonus ldr r0, _081139D4 ldrh r1, [r0] mov r0, r8 adds r2, r4, 0 bl SetMonMoveSlot ldr r0, _081139D8 movs r3, 0xCF lsls r3, 2 adds r0, r3 ldr r0, [r0] bl get_battle_strings_ ldr r0, _081139DC ldr r2, [r0] adds r0, r2, 0x4 ldr r1, _081139E0 adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 ldr r0, _081139E4 mov r2, r9 adds r1, r2, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x18] adds r0, 0x1 b _08113B38 .align 2, 0 _081139D0: .4byte gUnknown_03004290 _081139D4: .4byte word_2024E82 _081139D8: .4byte gUnknown_08400F8C _081139DC: .4byte gUnknown_03004828 _081139E0: .4byte gUnknown_020238CC _081139E4: .4byte gTasks _081139E8: ldr r4, _08113A2C ldr r0, [r4] ldrh r0, [r0, 0x1A] cmp r0, 0 beq _081139F4 b _08113B3A _081139F4: bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _08113A00 b _08113B3A _08113A00: ldr r0, _08113A30 ldr r0, [r0, 0x1C] bl get_battle_strings_ ldr r2, [r4] adds r0, r2, 0x4 ldr r1, _08113A34 adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 ldr r0, _08113A38 mov r3, r9 adds r1, r3, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x18] adds r0, 0x1 b _08113B38 .align 2, 0 _08113A2C: .4byte gUnknown_03004828 _08113A30: .4byte gUnknown_08400F8C _08113A34: .4byte gUnknown_020238CC _08113A38: .4byte gTasks _08113A3C: ldr r4, _08113A80 ldr r0, [r4] ldrh r0, [r0, 0x1A] cmp r0, 0 bne _08113B3A bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _08113B3A ldr r0, _08113A84 movs r1, 0xD0 lsls r1, 2 adds r0, r1 ldr r0, [r0] bl get_battle_strings_ ldr r2, [r4] adds r0, r2, 0x4 ldr r1, _08113A88 adds r2, 0x34 ldrb r2, [r2] movs r4, 0xF str r4, [sp] movs r3, 0x2 bl sub_8002EB0 ldr r1, _08113A8C mov r2, r9 adds r0, r2, r7 lsls r0, 3 adds r0, r1 strh r4, [r0, 0x8] b _08113B3A .align 2, 0 _08113A80: .4byte gUnknown_03004828 _08113A84: .4byte gUnknown_08400F8C _08113A88: .4byte gUnknown_020238CC _08113A8C: .4byte gTasks _08113A90: ldr r0, _08113AC8 ldr r0, [r0, 0x20] bl get_battle_strings_ ldr r0, _08113ACC ldr r2, [r0] adds r0, r2, 0x4 ldr r1, _08113AD0 adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 ldr r1, _08113AD4 mov r3, r9 adds r0, r3, r7 lsls r0, 3 adds r0, r1 movs r2, 0 movs r1, 0xA strh r1, [r0, 0x1A] strh r2, [r0, 0x1C] movs r1, 0x3 strh r1, [r0, 0x18] b _08113B3A .align 2, 0 _08113AC8: .4byte gUnknown_08400F8C _08113ACC: .4byte gUnknown_03004828 _08113AD0: .4byte gUnknown_020238CC _08113AD4: .4byte gTasks _08113AD8: ldr r0, _08113B08 ldr r0, [r0, 0x24] bl get_battle_strings_ ldr r0, _08113B0C ldr r2, [r0] adds r0, r2, 0x4 ldr r1, _08113B10 adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 ldr r1, _08113B14 mov r2, r9 adds r0, r2, r7 lsls r0, 3 adds r0, r1 movs r1, 0xD strh r1, [r0, 0x8] b _08113B3A .align 2, 0 _08113B08: .4byte gUnknown_08400F8C _08113B0C: .4byte gUnknown_03004828 _08113B10: .4byte gUnknown_020238CC _08113B14: .4byte gTasks _08113B18: ldr r0, _08113B48 ldr r0, [r0] ldrh r0, [r0, 0x1A] cmp r0, 0 bne _08113B3A bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _08113B3A ldr r0, _08113B4C mov r3, r9 adds r1, r3, r7 lsls r1, 3 adds r1, r0 movs r0, 0x5 _08113B38: strh r0, [r1, 0x18] _08113B3A: add sp, 0x18 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08113B48: .4byte gUnknown_03004828 _08113B4C: .4byte gTasks thumb_func_end sub_8112FE8 thumb_func_start unref_sub_8113B50 unref_sub_8113B50: @ 8113B50 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x3C str r0, [sp] str r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] movs r1, 0 str r1, [sp, 0x10] movs r2, 0 str r2, [sp, 0x8] ldr r3, _08113C60 mov r12, r3 ldr r4, _08113C64 add r4, r12 mov r10, r4 ldr r5, _08113C68 add r5, r12 mov r8, r5 _08113B7C: adds r0, r3, 0 adds r0, 0x84 ldr r1, [sp, 0x8] adds r0, r1, r0 strb r2, [r0] adds r0, r3, 0x4 adds r0, r1, r0 strb r2, [r0] ldr r4, _08113C6C adds r0, r1, r4 strb r2, [r0] movs r6, 0 lsls r1, 5 mov r9, r1 ldr r5, [sp, 0x8] lsls r4, r5, 6 _08113B9C: mov r0, r9 adds r1, r6, r0 ldr r5, _08113C70 adds r0, r1, r5 strb r2, [r0] mov r5, r10 adds r0, r1, r5 strb r2, [r0] mov r5, r8 adds r0, r1, r5 strb r2, [r0] ldr r5, _08113C74 adds r0, r1, r5 strb r2, [r0] adds r7, r3, 0 adds r7, 0xC4 adds r0, r1, r7 strb r2, [r0] ldr r5, _08113C78 adds r0, r3, r5 adds r0, r1, r0 strb r2, [r0] ldr r5, _08113C7C adds r0, r3, r5 adds r0, r1, r0 strb r2, [r0] ldr r5, _08113C80 adds r0, r3, r5 adds r1, r0 strb r2, [r1] lsls r1, r6, 1 adds r1, r4 ldr r5, _08113C84 adds r0, r3, r5 adds r0, r1, r0 strh r2, [r0] ldr r5, _08113C88 adds r0, r3, r5 adds r0, r1, r0 strh r2, [r0] ldr r5, _08113C8C adds r0, r3, r5 adds r0, r1, r0 strh r2, [r0] ldr r5, _08113C90 adds r0, r3, r5 adds r1, r0 strh r2, [r1] adds r6, 0x1 cmp r6, 0x1F ble _08113B9C ldr r0, [sp, 0x8] adds r0, 0x1 str r0, [sp, 0x8] cmp r0, 0x3F ble _08113B7C ldr r1, _08113C94 add r1, r12 movs r0, 0x40 strb r0, [r1] movs r1, 0 mov r8, r1 movs r2, 0 str r2, [sp, 0x8] movs r3, 0x80 lsls r3, 5 adds r3, r7 mov r12, r3 movs r4, 0xC0 lsls r4, 5 adds r4, r7 mov r9, r4 movs r5, 0 adds r4, r7, 0 subs r4, 0xC0 _08113C32: movs r3, 0 ldr r2, [sp] add r2, r8 movs r6, 0 ldr r0, [sp, 0x8] adds r0, 0x1 str r0, [sp, 0x30] ldr r1, [sp, 0x8] lsls r1, 7 mov r10, r1 movs r7, 0x1 negs r7, r7 _08113C4A: asrs r0, r6, 1 lsls r0, 2 add r0, r10 ldr r1, _08113C98 adds r0, r1 str r2, [r0] cmp r3, 0 beq _08113C9C cmp r3, 0x1 beq _08113CC6 b _08113CF4 .align 2, 0 _08113C60: .4byte 0x02014800 _08113C64: .4byte 0x000018c4 _08113C68: .4byte 0x000020c4 _08113C6C: .4byte 0x02014844 _08113C70: .4byte 0x020158c4 _08113C74: .4byte 0x020170c4 _08113C78: .4byte 0x000008c4 _08113C7C: .4byte 0x000030c4 _08113C80: .4byte 0x000038c4 _08113C84: .4byte 0x000060c4 _08113C88: .4byte 0x000070c4 _08113C8C: .4byte 0x000080c4 _08113C90: .4byte 0x000090c4 _08113C94: .4byte 0x0000a0c4 _08113C98: .4byte 0x020188c4 _08113C9C: movs r0, 0x1 ands r0, r6 cmp r0, 0 beq _08113CAA cmp r0, 0x1 beq _08113CB0 b _08113CF4 _08113CAA: ldrb r1, [r2] movs r0, 0xF b _08113CB4 _08113CB0: ldrb r1, [r2] movs r0, 0xF0 _08113CB4: ands r0, r1 cmp r0, 0 beq _08113CF4 ldrb r0, [r4] adds r0, r5 add r0, r12 strb r6, [r0] movs r3, 0x1 b _08113CF4 _08113CC6: adds r0, r6, 0 ands r0, r3 cmp r0, 0 beq _08113CD4 cmp r0, 0x1 beq _08113CDA b _08113CF4 _08113CD4: ldrb r1, [r2] movs r0, 0xF b _08113CDE _08113CDA: ldrb r1, [r2] movs r0, 0xF0 _08113CDE: ands r0, r1 cmp r0, 0 bne _08113CF4 ldrb r0, [r4] adds r0, r5 add r0, r9 strb r7, [r0] ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] movs r3, 0 _08113CF4: adds r0, r6, 0x1 movs r1, 0x7 ands r0, r1 cmp r0, 0 bne _08113D02 adds r2, 0x1D b _08113D0C _08113D02: movs r0, 0x1 ands r0, r6 cmp r0, 0 beq _08113D0C adds r2, 0x1 _08113D0C: adds r7, 0x1 adds r6, 0x1 cmp r6, 0x3F ble _08113C4A cmp r3, 0 beq _08113D26 ldrb r0, [r4] adds r0, r5 add r0, r9 strb r6, [r0] ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _08113D26: movs r0, 0x7 ldr r2, [sp, 0x30] ands r2, r0 cmp r2, 0 bne _08113D36 movs r3, 0xE4 add r8, r3 b _08113D3A _08113D36: movs r0, 0x4 add r8, r0 _08113D3A: adds r5, 0x20 adds r4, 0x1 ldr r1, [sp, 0x8] adds r1, 0x1 str r1, [sp, 0x8] cmp r1, 0x3F bgt _08113D4A b _08113C32 _08113D4A: movs r2, 0 mov r8, r2 movs r3, 0 str r3, [sp, 0x8] ldr r0, _08113D84 movs r4, 0x82 lsls r4, 6 adds r4, r0 mov r10, r4 movs r5, 0xA2 lsls r5, 6 adds r7, r0, r5 movs r5, 0 adds r4, r0, 0 movs r0, 0x1 mov r9, r0 _08113D6A: movs r3, 0 ldr r2, [sp, 0x4] add r2, r8 movs r6, 0 ldr r1, [sp, 0x8] adds r1, 0x1 str r1, [sp, 0x30] _08113D78: cmp r3, 0 beq _08113D88 cmp r3, 0x1 beq _08113DB4 b _08113DE4 .align 2, 0 _08113D84: .4byte 0x02014844 _08113D88: adds r0, r6, 0 mov r1, r9 ands r0, r1 cmp r0, 0 beq _08113D98 cmp r0, 0x1 beq _08113D9E b _08113DE4 _08113D98: ldrb r1, [r2] movs r0, 0xF b _08113DA2 _08113D9E: ldrb r1, [r2] movs r0, 0xF0 _08113DA2: ands r0, r1 cmp r0, 0 beq _08113DE4 ldrb r0, [r4] adds r0, r5 add r0, r10 strb r6, [r0] movs r3, 0x1 b _08113DE4 _08113DB4: adds r0, r6, 0 ands r0, r3 cmp r0, 0 beq _08113DC2 cmp r0, 0x1 beq _08113DC8 b _08113DE4 _08113DC2: ldrb r1, [r2] movs r0, 0xF b _08113DCC _08113DC8: ldrb r1, [r2] movs r0, 0xF0 _08113DCC: ands r0, r1 cmp r0, 0 bne _08113DE4 ldrb r0, [r4] adds r0, r5 adds r0, r7 subs r1, r6, 0x1 strb r1, [r0] ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] movs r3, 0 _08113DE4: adds r1, r6, 0x1 movs r0, 0x7 ands r0, r1 cmp r0, 0 bne _08113DF2 adds r2, 0x1D b _08113DFC _08113DF2: mov r0, r9 ands r6, r0 cmp r6, 0 beq _08113DFC adds r2, 0x1 _08113DFC: adds r6, r1, 0 cmp r6, 0x3F ble _08113D78 cmp r3, 0 beq _08113E14 ldrb r0, [r4] adds r0, r5 adds r0, r7 strb r6, [r0] ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _08113E14: movs r0, 0x7 ldr r1, [sp, 0x30] ands r1, r0 cmp r1, 0 bne _08113E24 movs r2, 0xE4 add r8, r2 b _08113E28 _08113E24: movs r3, 0x4 add r8, r3 _08113E28: adds r5, 0x20 adds r4, 0x1 ldr r0, [sp, 0x8] adds r0, 0x1 str r0, [sp, 0x8] cmp r0, 0x3F ble _08113D6A movs r1, 0 str r1, [sp, 0x8] _08113E3A: ldr r3, [sp, 0x8] ldr r4, _08113EBC adds r2, r3, r4 ldr r5, _08113EC0 adds r1, r3, r5 ldrb r0, [r2] adds r3, 0x1 str r3, [sp, 0x30] ldrb r1, [r1] cmp r0, r1 bcc _08113E52 b _08113F9E _08113E52: movs r0, 0 str r0, [sp, 0xC] ldrb r2, [r2] cmp r0, r2 bge _08113F54 ldr r0, _08113EC4 adds r0, 0x4 ldr r1, [sp, 0x8] adds r0, r1, r0 str r0, [sp, 0x18] _08113E66: movs r2, 0x80 lsls r2, 1 str r2, [sp, 0x14] movs r6, 0 ldr r3, [sp, 0x8] ldr r4, _08113EC0 adds r0, r3, r4 ldr r5, [sp, 0xC] adds r5, 0x1 str r5, [sp, 0x34] ldrb r0, [r0] cmp r6, r0 bge _08113F3E ldr r0, _08113EC4 mov r10, r0 lsls r0, r3, 5 ldr r2, [sp, 0xC] adds r1, r2, r0 mov r9, r0 ldr r0, _08113EC4 adds r0, 0xC4 mov r3, r9 adds r7, r3, r0 mov r5, r9 ldr r4, _08113EC4 ldr r2, _08113EC8 adds r0, r4, r2 adds r1, r0 mov r8, r1 ldrb r3, [r1] str r3, [sp, 0x1C] _08113EA4: ldr r0, _08113ECC add r0, r10 adds r0, r5, r0 ldr r4, [sp, 0x1C] ldrb r1, [r0] cmp r4, r1 bls _08113ED0 mov r2, r8 ldrb r1, [r2] ldrb r0, [r0] b _08113ED6 .align 2, 0 _08113EBC: .4byte 0x02014804 _08113EC0: .4byte 0x02014844 _08113EC4: .4byte 0x02014800 _08113EC8: .4byte 0x000010c4 _08113ECC: .4byte 0x000020c4 _08113ED0: ldrb r1, [r0] mov r3, r8 ldrb r0, [r3] _08113ED6: subs r3, r1, r0 ldr r1, [sp, 0xC] add r1, r9 ldr r0, _08113EFC add r0, r10 adds r4, r1, r0 ldr r0, _08113F00 add r0, r10 adds r2, r5, r0 ldrb r0, [r4] ldr r1, _08113F04 mov r12, r1 ldrb r1, [r2] cmp r0, r1 bls _08113F08 adds r1, r0, 0 ldrb r0, [r2] b _08113F0C .align 2, 0 _08113EFC: .4byte 0x000018c4 _08113F00: .4byte 0x000028c4 _08113F04: .4byte 0x02014800 _08113F08: ldrb r1, [r2] ldrb r0, [r4] _08113F0C: subs r1, r0 adds r3, r1 ldr r2, [sp, 0x14] cmp r2, r3 ble _08113F2C ldrb r0, [r7] cmp r0, 0 bne _08113F2C ldr r0, _08114050 add r0, r12 adds r0, r5, r0 ldrb r0, [r0] cmp r0, 0 bne _08113F2C str r6, [sp, 0x10] str r3, [sp, 0x14] _08113F2C: adds r7, 0x1 adds r5, 0x1 adds r6, 0x1 ldr r3, [sp, 0x8] ldr r4, _08114054 adds r0, r3, r4 ldrb r0, [r0] cmp r6, r0 blt _08113EA4 _08113F3E: ldr r0, [sp, 0xC] ldr r1, [sp, 0x10] ldr r2, [sp, 0x8] bl sub_81141F0 ldr r5, [sp, 0x34] str r5, [sp, 0xC] ldr r0, [sp, 0x18] ldrb r0, [r0] cmp r5, r0 blt _08113E66 _08113F54: movs r6, 0 ldr r2, _08114058 ldr r1, [sp, 0x8] ldr r3, _08114054 adds r0, r1, r3 adds r4, r2, 0 mov r12, r4 ldrb r0, [r0] cmp r6, r0 bge _08113F9E mov r0, r12 adds r0, 0x44 adds r4, r1, r0 _08113F6E: ldr r5, [sp, 0x8] lsls r0, r5, 5 adds r1, r6, r0 adds r0, r2, 0 adds r0, 0xC4 adds r0, r1, r0 ldrb r0, [r0] cmp r0, 0 bne _08113F94 ldr r3, _08114050 adds r0, r2, r3 adds r0, r1, r0 ldrb r0, [r0] cmp r0, 0 bne _08113F94 adds r0, r6, 0 adds r1, r5, 0 bl sub_811430C _08113F94: adds r6, 0x1 ldr r2, _08114058 ldrb r5, [r4] cmp r6, r5 blt _08113F6E _08113F9E: ldr r0, [sp, 0x8] ldr r1, _0811405C adds r2, r0, r1 ldr r3, _08114054 adds r1, r0, r3 ldrb r0, [r2] ldrb r1, [r1] cmp r0, r1 bne _08113FCC movs r6, 0 ldrb r4, [r2] cmp r6, r4 bge _08113FCC adds r4, r2, 0 _08113FBA: adds r0, r6, 0 adds r1, r6, 0 ldr r2, [sp, 0x8] bl sub_81141F0 adds r6, 0x1 ldrb r5, [r4] cmp r6, r5 blt _08113FBA _08113FCC: ldr r0, [sp, 0x8] ldr r1, _0811405C adds r2, r0, r1 ldr r3, _08114054 adds r1, r0, r3 ldrb r0, [r2] ldr r4, _08114058 ldrb r5, [r1] cmp r0, r5 bhi _08113FE2 b _081141C4 _08113FE2: movs r0, 0 str r0, [sp, 0x10] ldrb r1, [r1] cmp r0, r1 blt _08113FEE b _08114104 _08113FEE: str r2, [sp, 0x2C] ldr r1, [sp, 0x8] lsls r1, 5 mov r9, r1 adds r0, r4, 0 adds r0, 0x44 ldr r2, [sp, 0x8] adds r0, r2, r0 str r0, [sp, 0x20] mov r3, r9 str r3, [sp, 0x24] _08114004: movs r4, 0x80 lsls r4, 1 str r4, [sp, 0x14] movs r6, 0 ldr r5, [sp, 0x10] adds r5, 0x1 str r5, [sp, 0x38] ldr r0, [sp, 0x2C] ldrb r0, [r0] cmp r6, r0 bge _081140C4 ldr r1, [sp, 0x10] ldr r2, [sp, 0x24] adds r1, r2 mov r10, r1 ldr r0, _08114058 adds r0, 0xC4 adds r2, r0 mov r8, r2 ldr r7, [sp, 0x24] ldr r3, _08114058 ldr r4, _08114060 adds r0, r3, r4 adds r5, r7, r0 ldr r0, _08114064 add r0, r10 mov r12, r0 ldrb r1, [r0] str r1, [sp, 0x28] _0811403E: ldrb r0, [r5] ldr r2, [sp, 0x28] cmp r0, r2 bls _08114068 adds r1, r0, 0 mov r3, r12 ldrb r0, [r3] b _0811406E .align 2, 0 _08114050: .4byte 0x000008c4 _08114054: .4byte 0x02014844 _08114058: .4byte 0x02014800 _0811405C: .4byte 0x02014804 _08114060: .4byte 0x000010c4 _08114064: .4byte 0x020168c4 _08114068: mov r4, r12 ldrb r1, [r4] ldrb r0, [r5] _0811406E: subs r3, r1, r0 ldr r1, _0811408C ldr r2, _08114090 adds r0, r1, r2 adds r4, r7, r0 ldr r2, _08114094 add r2, r10 ldrb r0, [r4] ldrb r1, [r2] cmp r0, r1 bls _08114098 adds r1, r0, 0 ldrb r0, [r2] b _0811409C .align 2, 0 _0811408C: .4byte 0x02014800 _08114090: .4byte 0x000018c4 _08114094: .4byte 0x020170c4 _08114098: ldrb r1, [r2] ldrb r0, [r4] _0811409C: subs r1, r0 adds r3, r1 ldr r2, [sp, 0x14] cmp r2, r3 ble _081140B2 mov r4, r8 ldrb r0, [r4] cmp r0, 0 bne _081140B2 str r6, [sp, 0xC] str r3, [sp, 0x14] _081140B2: movs r0, 0x1 add r8, r0 adds r7, 0x1 adds r5, 0x1 adds r6, 0x1 ldr r1, [sp, 0x2C] ldrb r1, [r1] cmp r6, r1 blt _0811403E _081140C4: ldr r3, [sp, 0xC] add r3, r9 ldr r2, _08114164 ldr r4, _08114168 adds r1, r2, r4 adds r1, r3, r1 ldr r2, [sp, 0x10] add r2, r9 ldr r5, _0811416C adds r0, r2, r5 ldrb r0, [r0] strb r0, [r1] ldr r0, _08114164 ldr r4, _08114170 adds r1, r0, r4 adds r1, r3, r1 ldr r5, _08114174 adds r2, r5 ldrb r0, [r2] strb r0, [r1] ldr r0, _08114164 adds r0, 0xC4 adds r3, r0 movs r0, 0x1 strb r0, [r3] ldr r0, [sp, 0x38] str r0, [sp, 0x10] ldr r1, [sp, 0x20] ldrb r1, [r1] cmp r0, r1 bge _08114104 b _08114004 _08114104: movs r6, 0 ldr r4, _08114164 ldr r2, [sp, 0x8] ldr r3, _08114178 adds r0, r2, r3 ldrb r0, [r0] cmp r6, r0 bge _081141C4 adds r7, r4, 0 mov r9, r6 movs r5, 0xC4 adds r5, r7 mov r8, r5 _0811411E: ldr r1, [sp, 0x8] lsls r0, r1, 5 adds r2, r6, r0 ldr r3, _0811417C adds r0, r7, r3 adds r0, r2 mov r10, r0 ldr r5, _08114168 adds r0, r7, r5 adds r0, r2, r0 ldrb r0, [r0] mov r1, r10 strb r0, [r1] ldr r3, _08114180 adds r0, r7, r3 adds r3, r2, r0 ldr r5, _08114170 adds r0, r7, r5 adds r0, r2, r0 ldrb r0, [r0] strb r0, [r3] mov r0, r8 adds r1, r2, r0 ldrb r0, [r1] cmp r0, 0 beq _08114184 mov r2, r9 strb r2, [r1] adds r0, r6, 0 adds r1, r6, 0 ldr r2, [sp, 0x8] bl sub_81141F0 b _081141B4 .align 2, 0 _08114164: .4byte 0x02014800 _08114168: .4byte 0x000030c4 _0811416C: .4byte 0x020168c4 _08114170: .4byte 0x000038c4 _08114174: .4byte 0x020170c4 _08114178: .4byte 0x02014804 _0811417C: .4byte 0x000020c4 _08114180: .4byte 0x000028c4 _08114184: ldr r5, _081141E0 adds r1, r4, r5 adds r1, r2, r1 ldr r5, _081141E4 adds r0, r4, r5 adds r0, r2, r0 ldrb r0, [r0] ldrb r2, [r1] subs r0, r2 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r2, r0 strb r2, [r3] mov r0, r10 strb r2, [r0] ldrb r0, [r3] subs r0, 0x1 strb r0, [r3] adds r0, r6, 0 adds r1, r6, 0 ldr r2, [sp, 0x8] bl sub_81141F0 _081141B4: adds r6, 0x1 ldr r4, _081141E8 ldr r1, [sp, 0x8] ldr r2, _081141EC adds r0, r1, r2 ldrb r0, [r0] cmp r6, r0 blt _0811411E _081141C4: ldr r3, [sp, 0x30] str r3, [sp, 0x8] cmp r3, 0x3F bgt _081141CE b _08113E3A _081141CE: add sp, 0x3C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081141E0: .4byte 0x000010c4 _081141E4: .4byte 0x000018c4 _081141E8: .4byte 0x02014800 _081141EC: .4byte 0x02014804 thumb_func_end unref_sub_8113B50 thumb_func_start sub_81141F0 sub_81141F0: @ 81141F0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r6, r0, 0 mov r8, r1 mov r9, r2 ldr r3, _0811424C lsls r1, r2, 5 mov r0, r8 adds r4, r0, r1 ldr r5, _08114250 adds r2, r3, r5 adds r2, r4, r2 adds r1, r6, r1 ldr r7, _08114254 adds r0, r3, r7 adds r5, r1, r0 ldrb r0, [r5] strb r0, [r2] ldr r0, _08114258 adds r2, r3, r0 adds r2, r4, r2 ldr r7, _0811425C adds r0, r3, r7 adds r1, r0 ldrb r0, [r1] strb r0, [r2] movs r7, 0 ldr r1, _08114260 adds r0, r3, r1 adds r2, r4, r0 ldrb r1, [r5] ldrb r0, [r2] mov r12, r3 cmp r1, r0 bcs _08114264 mov r0, r12 adds r0, 0xC4 adds r0, r4, r0 movs r1, 0x4 strb r1, [r0] ldrb r1, [r2] ldrb r0, [r5] b _08114276 .align 2, 0 _0811424C: .4byte 0x02014800 _08114250: .4byte 0x000030c4 _08114254: .4byte 0x000010c4 _08114258: .4byte 0x000038c4 _0811425C: .4byte 0x000018c4 _08114260: .4byte 0x000020c4 _08114264: cmp r1, r0 bls _08114278 mov r0, r12 adds r0, 0xC4 adds r0, r4, r0 movs r1, 0x1 strb r1, [r0] ldrb r1, [r5] ldrb r0, [r2] _08114276: subs r7, r1, r0 _08114278: mov r5, r8 lsls r3, r5, 1 mov r0, r9 lsls r4, r0, 6 adds r0, r3, r4 ldr r1, _081142BC add r1, r12 adds r0, r1 lsls r1, r7, 4 strh r1, [r0] movs r7, 0 mov r1, r9 lsls r2, r1, 5 adds r1, r6, r2 ldr r0, _081142C0 add r0, r12 adds r6, r1, r0 adds r1, r5, r2 ldr r0, _081142C4 add r0, r12 adds r5, r1, r0 ldrb r2, [r6] ldrb r0, [r5] cmp r2, r0 bcs _081142CC ldr r0, _081142C8 add r0, r12 adds r0, r1, r0 movs r1, 0x3 strb r1, [r0] ldrb r1, [r5] ldrb r0, [r6] b _081142DE .align 2, 0 _081142BC: .4byte 0x000080c4 _081142C0: .4byte 0x000018c4 _081142C4: .4byte 0x000028c4 _081142C8: .4byte 0x000008c4 _081142CC: cmp r2, r0 bls _081142E0 ldr r0, _08114304 add r0, r12 adds r0, r1, r0 movs r1, 0x2 strb r1, [r0] ldrb r1, [r6] ldrb r0, [r5] _081142DE: subs r7, r1, r0 _081142E0: adds r0, r3, r4 ldr r1, _08114308 add r1, r12 adds r0, r1 lsls r1, r7, 4 strh r1, [r0] mov r1, r12 adds r1, 0x84 add r1, r9 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08114304: .4byte 0x000008c4 _08114308: .4byte 0x000090c4 thumb_func_end sub_81141F0 thumb_func_start sub_811430C sub_811430C: @ 811430C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r5, _081143AC lsls r4, r1, 5 adds r4, r0, r4 ldr r2, _081143B0 adds r2, r5 mov r10, r2 add r10, r4 mov r3, r10 ldrb r2, [r3] ldr r6, _081143B4 adds r6, r5 mov r8, r6 add r8, r4 mov r6, r8 ldrb r3, [r6] subs r7, r2, r3 ldr r2, _081143B8 adds r6, r5, r2 adds r6, r4, r6 ldr r2, _081143BC adds r2, r5 mov r9, r2 add r9, r4 lsrs r2, r7, 31 adds r2, r7, r2 asrs r2, 1 adds r3, r2 mov r2, r9 strb r3, [r2] strb r3, [r6] adds r2, r5, 0 adds r2, 0xC4 adds r2, r4, r2 movs r3, 0x5 strb r3, [r2] ldr r3, _081143C0 adds r2, r5, r3 adds r4, r2 movs r2, 0x7 strb r2, [r4] adds r3, r5, 0 adds r3, 0x84 adds r3, r1, r3 ldrb r2, [r3] adds r2, 0x1 strb r2, [r3] ldrb r3, [r6] mov r4, r8 ldrb r2, [r4] subs r7, r3, r2 lsls r0, 1 lsls r1, 6 adds r0, r1 ldr r6, _081143C4 adds r1, r5, r6 adds r1, r0, r1 lsls r2, r7, 4 strh r2, [r1] mov r1, r10 ldrb r2, [r1] mov r3, r9 ldrb r1, [r3] subs r7, r2, r1 ldr r4, _081143C8 adds r5, r4 adds r0, r5 lsls r1, r7, 4 strh r1, [r0] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081143AC: .4byte 0x02014800 _081143B0: .4byte 0x000028c4 _081143B4: .4byte 0x000020c4 _081143B8: .4byte 0x000030c4 _081143BC: .4byte 0x000038c4 _081143C0: .4byte 0x000008c4 _081143C4: .4byte 0x000080c4 _081143C8: .4byte 0x000090c4 thumb_func_end sub_811430C thumb_func_start unref_sub_81143CC unref_sub_81143CC: @ 81143CC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 movs r0, 0x1 str r0, [sp, 0x4] ldr r0, _08114408 ldr r2, _0811440C adds r1, r0, r2 ldrb r3, [r1] adds r4, r0, 0 cmp r3, 0 beq _081143EE subs r0, r3, 0x1 strb r0, [r1] _081143EE: movs r5, 0 str r5, [sp] _081143F2: movs r3, 0 adds r2, r4, 0 adds r0, r4, 0 adds r0, 0x84 ldr r1, [sp] adds r0, r1, r0 adds r1, 0x1 str r1, [sp, 0x8] bl _08114D84 .align 2, 0 _08114408: .4byte 0x02014800 _0811440C: .4byte 0x0000a0c4 _08114410: ldr r5, [sp] lsls r0, r5, 5 adds r1, r3, r0 adds r2, 0xC4 adds r1, r2 ldrb r2, [r1] mov r8, r0 adds r0, r3, 0x1 mov r10, r0 cmp r2, 0xC bls _08114428 b _081148D2 _08114428: lsls r0, r2, 2 ldr r1, _08114434 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08114434: .4byte _08114438 .align 2, 0 _08114438: .4byte _081148D2 .4byte _0811446C .4byte _081144F0 .4byte _0811457C .4byte _08114600 .4byte _0811468C .4byte _081146C8 .4byte _08114704 .4byte _08114740 .4byte _0811477C .4byte _081147D0 .4byte _08114810 .4byte _08114858 _0811446C: movs r1, 0 str r1, [sp, 0x4] lsls r0, r3, 1 ldr r2, [sp] lsls r1, r2, 6 adds r0, r1 ldr r5, _081144E0 adds r2, r4, r5 adds r2, r0, r2 ldr r5, _081144E4 adds r1, r4, r5 adds r0, r1 ldrh r1, [r0] ldrh r0, [r2] adds r1, r0 movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r5, r0, 8 movs r0, 0xFF ands r1, r0 strh r1, [r2] movs r6, 0 adds r1, r3, 0x1 mov r10, r1 ldr r2, [sp, 0x4] cmp r2, r5 blt _081144A6 b _081148D2 _081144A6: mov r9, r4 mov r4, r8 adds r7, r3, r4 ldr r0, _081144E8 add r0, r9 adds r4, r7, r0 ldr r0, _081144EC add r0, r9 adds r2, r7, r0 _081144B8: ldrb r0, [r4] subs r0, 0x1 strb r0, [r4] ldrb r1, [r4] ldr r0, [sp] str r2, [sp, 0xC] str r3, [sp, 0x10] bl sub_8114DB4 ldrb r0, [r4] ldr r2, [sp, 0xC] ldr r3, [sp, 0x10] ldrb r1, [r2] cmp r0, r1 bne _081144D8 b _081148A0 _081144D8: adds r6, 0x1 cmp r6, r5 blt _081144B8 b _081148D2 .align 2, 0 _081144E0: .4byte 0x000060c4 _081144E4: .4byte 0x000080c4 _081144E8: .4byte 0x000030c4 _081144EC: .4byte 0x000020c4 _081144F0: movs r2, 0 str r2, [sp, 0x4] ldr r4, _08114568 lsls r0, r3, 1 ldr r5, [sp] lsls r1, r5, 6 adds r0, r1 ldr r1, _0811456C adds r2, r4, r1 adds r2, r0, r2 ldr r5, _08114570 adds r1, r4, r5 adds r0, r1 ldrh r1, [r0] ldrh r0, [r2] adds r1, r0 movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r5, r0, 8 movs r0, 0xFF ands r1, r0 strh r1, [r2] movs r6, 0 adds r1, r3, 0x1 mov r10, r1 ldr r2, [sp, 0x4] cmp r2, r5 blt _0811452C b _081148D2 _0811452C: mov r9, r4 mov r4, r8 adds r7, r3, r4 ldr r0, _08114574 add r0, r9 adds r4, r7, r0 ldr r0, _08114578 add r0, r9 adds r2, r7, r0 _0811453E: ldrb r0, [r4] ldrb r1, [r2] cmp r0, r1 bne _08114548 b _081148B8 _08114548: adds r1, r0, 0 ldr r0, [sp] str r2, [sp, 0xC] str r3, [sp, 0x10] bl sub_8114DF0 ldrb r0, [r4] subs r0, 0x1 strb r0, [r4] adds r6, 0x1 ldr r2, [sp, 0xC] ldr r3, [sp, 0x10] cmp r6, r5 blt _0811453E b _081148D2 .align 2, 0 _08114568: .4byte 0x02014800 _0811456C: .4byte 0x000060c4 _08114570: .4byte 0x000080c4 _08114574: .4byte 0x000030c4 _08114578: .4byte 0x000020c4 _0811457C: movs r2, 0 str r2, [sp, 0x4] lsls r0, r3, 1 ldr r5, [sp] lsls r1, r5, 6 adds r0, r1 ldr r1, _081145F0 adds r2, r4, r1 adds r2, r0, r2 ldr r5, _081145F4 adds r1, r4, r5 adds r0, r1 ldrh r1, [r0] ldrh r0, [r2] adds r1, r0 movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r5, r0, 8 movs r0, 0xFF ands r1, r0 strh r1, [r2] movs r6, 0 adds r1, r3, 0x1 mov r10, r1 ldr r2, [sp, 0x4] cmp r2, r5 blt _081145B6 b _081148D2 _081145B6: mov r9, r4 mov r4, r8 adds r7, r3, r4 ldr r0, _081145F8 add r0, r9 adds r4, r7, r0 ldr r0, _081145FC add r0, r9 adds r2, r7, r0 _081145C8: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldrb r1, [r4] ldr r0, [sp] str r2, [sp, 0xC] str r3, [sp, 0x10] bl sub_8114DB4 ldrb r0, [r4] ldr r2, [sp, 0xC] ldr r3, [sp, 0x10] ldrb r1, [r2] cmp r0, r1 bne _081145E8 b _081148AC _081145E8: adds r6, 0x1 cmp r6, r5 blt _081145C8 b _081148D2 .align 2, 0 _081145F0: .4byte 0x000060c4 _081145F4: .4byte 0x000080c4 _081145F8: .4byte 0x000030c4 _081145FC: .4byte 0x000020c4 _08114600: movs r2, 0 str r2, [sp, 0x4] ldr r4, _08114678 lsls r0, r3, 1 ldr r5, [sp] lsls r1, r5, 6 adds r0, r1 ldr r1, _0811467C adds r2, r4, r1 adds r2, r0, r2 ldr r5, _08114680 adds r1, r4, r5 adds r0, r1 ldrh r1, [r0] ldrh r0, [r2] adds r1, r0 movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r5, r0, 8 movs r0, 0xFF ands r1, r0 strh r1, [r2] movs r6, 0 adds r1, r3, 0x1 mov r10, r1 ldr r2, [sp, 0x4] cmp r2, r5 blt _0811463C b _081148D2 _0811463C: mov r9, r4 mov r4, r8 adds r7, r3, r4 ldr r0, _08114684 add r0, r9 adds r4, r7, r0 ldr r0, _08114688 add r0, r9 adds r2, r7, r0 _0811464E: ldrb r0, [r4] ldrb r1, [r2] cmp r0, r1 bne _08114658 b _081148B8 _08114658: adds r1, r0, 0 ldr r0, [sp] str r2, [sp, 0xC] str r3, [sp, 0x10] bl sub_8114DF0 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] adds r6, 0x1 ldr r2, [sp, 0xC] ldr r3, [sp, 0x10] cmp r6, r5 blt _0811464E b _081148D2 .align 2, 0 _08114678: .4byte 0x02014800 _0811467C: .4byte 0x000060c4 _08114680: .4byte 0x000080c4 _08114684: .4byte 0x000030c4 _08114688: .4byte 0x000020c4 _0811468C: movs r2, 0 str r2, [sp, 0x4] ldr r5, _081146C0 mov r0, r8 adds r4, r3, r0 ldr r1, _081146C4 adds r0, r5, r1 adds r0, r4, r0 ldrb r1, [r0] ldr r0, [sp] str r3, [sp, 0x10] bl sub_8114E48 lsls r0, 24 ldr r3, [sp, 0x10] adds r2, r3, 0x1 mov r10, r2 cmp r0, 0 bne _081146B4 b _081148D2 _081146B4: adds r0, r5, 0 adds r0, 0xC4 adds r0, r4, r0 movs r1, 0x9 strb r1, [r0] b _081148D2 .align 2, 0 _081146C0: .4byte 0x02014800 _081146C4: .4byte 0x000030c4 _081146C8: movs r4, 0 str r4, [sp, 0x4] ldr r5, _081146FC mov r0, r8 adds r4, r3, r0 ldr r1, _08114700 adds r0, r5, r1 adds r0, r4, r0 ldrb r1, [r0] ldr r0, [sp] str r3, [sp, 0x10] bl sub_8114E48 lsls r0, 24 ldr r3, [sp, 0x10] adds r2, r3, 0x1 mov r10, r2 cmp r0, 0 bne _081146F0 b _081148D2 _081146F0: adds r0, r5, 0 adds r0, 0xC4 adds r0, r4, r0 movs r1, 0xA strb r1, [r0] b _081148D2 .align 2, 0 _081146FC: .4byte 0x02014800 _08114700: .4byte 0x000030c4 _08114704: movs r4, 0 str r4, [sp, 0x4] ldr r5, _08114738 mov r0, r8 adds r4, r3, r0 ldr r1, _0811473C adds r0, r5, r1 adds r0, r4, r0 ldrb r1, [r0] ldr r0, [sp] str r3, [sp, 0x10] bl sub_8114E48 lsls r0, 24 ldr r3, [sp, 0x10] adds r2, r3, 0x1 mov r10, r2 cmp r0, 0 bne _0811472C b _081148D2 _0811472C: adds r0, r5, 0 adds r0, 0xC4 adds r0, r4, r0 movs r1, 0xB strb r1, [r0] b _081148D2 .align 2, 0 _08114738: .4byte 0x02014800 _0811473C: .4byte 0x000030c4 _08114740: movs r4, 0 str r4, [sp, 0x4] ldr r5, _08114774 mov r0, r8 adds r4, r3, r0 ldr r1, _08114778 adds r0, r5, r1 adds r0, r4, r0 ldrb r1, [r0] ldr r0, [sp] str r3, [sp, 0x10] bl sub_8114E48 lsls r0, 24 ldr r3, [sp, 0x10] adds r2, r3, 0x1 mov r10, r2 cmp r0, 0 bne _08114768 b _081148D2 _08114768: adds r0, r5, 0 adds r0, 0xC4 adds r0, r4, r0 movs r1, 0xC strb r1, [r0] b _081148D2 .align 2, 0 _08114774: .4byte 0x02014800 _08114778: .4byte 0x000030c4 _0811477C: movs r4, 0 str r4, [sp, 0x4] ldr r6, _081147B4 mov r0, r8 adds r5, r3, r0 ldr r1, _081147B8 adds r4, r6, r1 adds r4, r5, r4 ldrb r1, [r4] ldr r0, [sp] str r3, [sp, 0x10] bl sub_8114DB4 ldr r2, _081147BC adds r0, r6, r2 adds r0, r5, r0 ldrb r1, [r4] ldr r3, [sp, 0x10] ldrb r0, [r0] cmp r1, r0 bne _081147C0 adds r0, r6, 0 adds r0, 0xC4 adds r0, r5, r0 mov r4, sp ldrb r4, [r4, 0x4] strb r4, [r0] b _08114844 .align 2, 0 _081147B4: .4byte 0x02014800 _081147B8: .4byte 0x000030c4 _081147BC: .4byte 0x000020c4 _081147C0: adds r0, r6, 0 adds r0, 0xC4 adds r0, r5, r0 movs r1, 0x1 strb r1, [r0] adds r0, r3, 0x1 mov r10, r0 b _081148D2 _081147D0: movs r1, 0 str r1, [sp, 0x4] ldr r6, _08114804 mov r2, r8 adds r5, r3, r2 ldr r0, _08114808 adds r4, r6, r0 adds r4, r5, r4 ldrb r1, [r4] ldr r0, [sp] str r3, [sp, 0x10] bl sub_8114DF0 ldr r1, _0811480C adds r0, r6, r1 adds r0, r5, r0 ldrb r1, [r4] ldr r3, [sp, 0x10] ldrb r0, [r0] cmp r1, r0 beq _08114882 adds r0, r6, 0 adds r0, 0xC4 adds r0, r5, r0 movs r1, 0x2 b _08114842 .align 2, 0 _08114804: .4byte 0x02014800 _08114808: .4byte 0x000030c4 _0811480C: .4byte 0x000020c4 _08114810: movs r0, 0 str r0, [sp, 0x4] ldr r6, _0811484C mov r1, r8 adds r5, r3, r1 ldr r2, _08114850 adds r4, r6, r2 adds r4, r5, r4 ldrb r1, [r4] ldr r0, [sp] str r3, [sp, 0x10] bl sub_8114DB4 ldr r1, _08114854 adds r0, r6, r1 adds r0, r5, r0 ldrb r1, [r4] ldr r3, [sp, 0x10] ldrb r0, [r0] cmp r1, r0 beq _08114882 adds r0, r6, 0 adds r0, 0xC4 adds r0, r5, r0 movs r1, 0x3 _08114842: strb r1, [r0] _08114844: adds r5, r3, 0x1 mov r10, r5 b _081148D2 .align 2, 0 _0811484C: .4byte 0x02014800 _08114850: .4byte 0x000030c4 _08114854: .4byte 0x000020c4 _08114858: movs r0, 0 str r0, [sp, 0x4] ldr r6, _08114894 mov r1, r8 adds r5, r3, r1 ldr r2, _08114898 adds r4, r6, r2 adds r4, r5, r4 ldrb r1, [r4] ldr r0, [sp] str r3, [sp, 0x10] bl sub_8114DF0 ldr r1, _0811489C adds r0, r6, r1 adds r0, r5, r0 ldrb r1, [r4] ldr r3, [sp, 0x10] ldrb r0, [r0] cmp r1, r0 bne _081148C4 _08114882: adds r0, r6, 0 adds r0, 0xC4 adds r0, r5, r0 mov r2, sp ldrb r2, [r2, 0x4] strb r2, [r0] adds r4, r3, 0x1 mov r10, r4 b _081148D2 .align 2, 0 _08114894: .4byte 0x02014800 _08114898: .4byte 0x000030c4 _0811489C: .4byte 0x000020c4 _081148A0: mov r0, r9 adds r0, 0xC4 adds r0, r7, r0 movs r5, 0 strb r5, [r0] b _081148D2 _081148AC: mov r0, r9 adds r0, 0xC4 adds r0, r7, r0 movs r1, 0 strb r1, [r0] b _081148D2 _081148B8: mov r0, r9 adds r0, 0xC4 adds r0, r7, r0 movs r1, 0 strb r1, [r0] b _081148D2 _081148C4: adds r0, r6, 0 adds r0, 0xC4 adds r0, r5, r0 movs r1, 0x4 strb r1, [r0] adds r2, r3, 0x1 mov r10, r2 _081148D2: ldr r0, _081148F4 mov r4, r8 adds r1, r3, r4 ldr r5, _081148F8 adds r2, r0, r5 adds r1, r2 ldrb r1, [r1] adds r4, r0, 0 cmp r1, 0xC bls _081148E8 b _08114D76 _081148E8: lsls r0, r1, 2 ldr r1, _081148FC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081148F4: .4byte 0x02014800 _081148F8: .4byte 0x000008c4 _081148FC: .4byte _08114900 .align 2, 0 _08114900: .4byte _08114D76 .4byte _08114934 .4byte _081149B8 .4byte _08114A3C .4byte _08114AC0 .4byte _08114B44 .4byte _08114B7C .4byte _08114BB4 .4byte _08114BEC .4byte _08114C24 .4byte _08114C78 .4byte _08114CB8 .4byte _08114CF8 _08114934: movs r0, 0 str r0, [sp, 0x4] lsls r0, r3, 1 ldr r2, [sp] lsls r1, r2, 6 adds r0, r1 ldr r5, _081149A8 adds r2, r4, r5 adds r2, r0, r2 ldr r5, _081149AC adds r1, r4, r5 adds r0, r1 ldrh r1, [r0] ldrh r0, [r2] adds r1, r0 movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r5, r0, 8 movs r0, 0xFF ands r1, r0 strh r1, [r2] movs r6, 0 ldr r1, [sp, 0x4] cmp r1, r5 blt _0811496A b _08114D76 _0811496A: mov r9, r4 mov r2, r8 adds r7, r3, r2 ldr r0, _081149B0 add r0, r9 adds r4, r7, r0 movs r3, 0 ldr r0, _081149B4 add r0, r9 adds r2, r7, r0 _0811497E: ldrb r0, [r4] subs r0, 0x1 strb r0, [r4] ldrb r1, [r4] ldr r0, [sp] str r2, [sp, 0xC] str r3, [sp, 0x10] bl sub_8114DB4 ldrb r0, [r4] ldr r2, [sp, 0xC] ldr r3, [sp, 0x10] ldrb r1, [r2] cmp r0, r1 bne _0811499E b _08114D4C _0811499E: adds r6, 0x1 cmp r6, r5 blt _0811497E b _08114D76 .align 2, 0 _081149A8: .4byte 0x000070c4 _081149AC: .4byte 0x000090c4 _081149B0: .4byte 0x000038c4 _081149B4: .4byte 0x000028c4 _081149B8: movs r2, 0 str r2, [sp, 0x4] ldr r4, _08114A28 lsls r0, r3, 1 ldr r5, [sp] lsls r1, r5, 6 adds r0, r1 ldr r1, _08114A2C adds r2, r4, r1 adds r2, r0, r2 ldr r5, _08114A30 adds r1, r4, r5 adds r0, r1 ldrh r1, [r0] ldrh r0, [r2] adds r1, r0 movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r5, r0, 8 movs r0, 0xFF ands r1, r0 strh r1, [r2] movs r6, 0 ldr r1, [sp, 0x4] cmp r1, r5 blt _081149F0 b _08114D76 _081149F0: mov r9, r4 mov r2, r8 adds r7, r3, r2 ldr r0, _08114A34 add r0, r9 adds r4, r7, r0 ldr r0, _08114A38 add r0, r9 adds r2, r7, r0 _08114A02: ldrb r0, [r4] ldrb r1, [r2] cmp r0, r1 bne _08114A0C b _08114D3C _08114A0C: adds r1, r0, 0 ldr r0, [sp] str r2, [sp, 0xC] bl sub_8114DF0 ldrb r0, [r4] subs r0, 0x1 strb r0, [r4] adds r6, 0x1 ldr r2, [sp, 0xC] cmp r6, r5 blt _08114A02 b _08114D76 .align 2, 0 _08114A28: .4byte 0x02014800 _08114A2C: .4byte 0x000070c4 _08114A30: .4byte 0x000090c4 _08114A34: .4byte 0x000038c4 _08114A38: .4byte 0x000028c4 _08114A3C: movs r2, 0 str r2, [sp, 0x4] lsls r0, r3, 1 ldr r5, [sp] lsls r1, r5, 6 adds r0, r1 ldr r1, _08114AB0 adds r2, r4, r1 adds r2, r0, r2 ldr r5, _08114AB4 adds r1, r4, r5 adds r0, r1 ldrh r1, [r0] ldrh r0, [r2] adds r1, r0 movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r5, r0, 8 movs r0, 0xFF ands r1, r0 strh r1, [r2] movs r6, 0 ldr r1, [sp, 0x4] cmp r1, r5 blt _08114A72 b _08114D76 _08114A72: mov r9, r4 mov r2, r8 adds r7, r3, r2 ldr r0, _08114AB8 add r0, r9 adds r4, r7, r0 movs r3, 0 ldr r0, _08114ABC add r0, r9 adds r2, r7, r0 _08114A86: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldrb r1, [r4] ldr r0, [sp] str r2, [sp, 0xC] str r3, [sp, 0x10] bl sub_8114DB4 ldrb r0, [r4] ldr r2, [sp, 0xC] ldr r3, [sp, 0x10] ldrb r1, [r2] cmp r0, r1 bne _08114AA6 b _08114D4C _08114AA6: adds r6, 0x1 cmp r6, r5 blt _08114A86 b _08114D76 .align 2, 0 _08114AB0: .4byte 0x000070c4 _08114AB4: .4byte 0x000090c4 _08114AB8: .4byte 0x000038c4 _08114ABC: .4byte 0x000028c4 _08114AC0: movs r2, 0 str r2, [sp, 0x4] ldr r4, _08114B30 lsls r0, r3, 1 ldr r5, [sp] lsls r1, r5, 6 adds r0, r1 ldr r1, _08114B34 adds r2, r4, r1 adds r2, r0, r2 ldr r5, _08114B38 adds r1, r4, r5 adds r0, r1 ldrh r1, [r0] ldrh r0, [r2] adds r1, r0 movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r5, r0, 8 movs r0, 0xFF ands r1, r0 strh r1, [r2] movs r6, 0 ldr r1, [sp, 0x4] cmp r1, r5 blt _08114AF8 b _08114D76 _08114AF8: mov r9, r4 mov r2, r8 adds r7, r3, r2 ldr r0, _08114B3C add r0, r9 adds r4, r7, r0 ldr r0, _08114B40 add r0, r9 adds r2, r7, r0 _08114B0A: ldrb r0, [r4] ldrb r1, [r2] cmp r0, r1 bne _08114B14 b _08114D5C _08114B14: adds r1, r0, 0 ldr r0, [sp] str r2, [sp, 0xC] bl sub_8114DF0 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] adds r6, 0x1 ldr r2, [sp, 0xC] cmp r6, r5 blt _08114B0A b _08114D76 .align 2, 0 _08114B30: .4byte 0x02014800 _08114B34: .4byte 0x000070c4 _08114B38: .4byte 0x000090c4 _08114B3C: .4byte 0x000038c4 _08114B40: .4byte 0x000028c4 _08114B44: movs r2, 0 str r2, [sp, 0x4] ldr r5, _08114B70 mov r0, r8 adds r4, r3, r0 ldr r1, _08114B74 adds r0, r5, r1 adds r0, r4, r0 ldrb r1, [r0] ldr r0, [sp] bl sub_8114E48 lsls r0, 24 cmp r0, 0 bne _08114B64 b _08114D76 _08114B64: ldr r2, _08114B78 adds r0, r5, r2 adds r0, r4, r0 movs r1, 0x9 b _08114D74 .align 2, 0 _08114B70: .4byte 0x02014800 _08114B74: .4byte 0x000038c4 _08114B78: .4byte 0x000008c4 _08114B7C: movs r4, 0 str r4, [sp, 0x4] ldr r5, _08114BA8 mov r0, r8 adds r4, r3, r0 ldr r1, _08114BAC adds r0, r5, r1 adds r0, r4, r0 ldrb r1, [r0] ldr r0, [sp] bl sub_8114E48 lsls r0, 24 cmp r0, 0 bne _08114B9C b _08114D76 _08114B9C: ldr r2, _08114BB0 adds r0, r5, r2 adds r0, r4, r0 movs r1, 0xA b _08114D74 .align 2, 0 _08114BA8: .4byte 0x02014800 _08114BAC: .4byte 0x000038c4 _08114BB0: .4byte 0x000008c4 _08114BB4: movs r4, 0 str r4, [sp, 0x4] ldr r5, _08114BE0 mov r0, r8 adds r4, r3, r0 ldr r1, _08114BE4 adds r0, r5, r1 adds r0, r4, r0 ldrb r1, [r0] ldr r0, [sp] bl sub_8114E48 lsls r0, 24 cmp r0, 0 bne _08114BD4 b _08114D76 _08114BD4: ldr r2, _08114BE8 adds r0, r5, r2 adds r0, r4, r0 movs r1, 0xB b _08114D74 .align 2, 0 _08114BE0: .4byte 0x02014800 _08114BE4: .4byte 0x000038c4 _08114BE8: .4byte 0x000008c4 _08114BEC: movs r4, 0 str r4, [sp, 0x4] ldr r5, _08114C18 mov r0, r8 adds r4, r3, r0 ldr r1, _08114C1C adds r0, r5, r1 adds r0, r4, r0 ldrb r1, [r0] ldr r0, [sp] bl sub_8114E48 lsls r0, 24 cmp r0, 0 bne _08114C0C b _08114D76 _08114C0C: ldr r2, _08114C20 adds r0, r5, r2 adds r0, r4, r0 movs r1, 0xC b _08114D74 .align 2, 0 _08114C18: .4byte 0x02014800 _08114C1C: .4byte 0x000038c4 _08114C20: .4byte 0x000008c4 _08114C24: movs r4, 0 str r4, [sp, 0x4] ldr r6, _08114C58 mov r0, r8 adds r5, r3, r0 ldr r1, _08114C5C adds r4, r6, r1 adds r4, r5, r4 ldrb r1, [r4] ldr r0, [sp] bl sub_8114DB4 ldr r2, _08114C60 adds r0, r6, r2 adds r0, r5, r0 ldrb r1, [r4] ldrb r0, [r0] cmp r1, r0 bne _08114C68 ldr r4, _08114C64 adds r0, r6, r4 adds r0, r5, r0 mov r5, sp ldrb r5, [r5, 0x4] strb r5, [r0] b _08114D76 .align 2, 0 _08114C58: .4byte 0x02014800 _08114C5C: .4byte 0x000038c4 _08114C60: .4byte 0x000028c4 _08114C64: .4byte 0x000008c4 _08114C68: ldr r1, _08114C74 adds r0, r6, r1 adds r0, r5, r0 movs r1, 0x1 b _08114D74 .align 2, 0 _08114C74: .4byte 0x000008c4 _08114C78: movs r2, 0 str r2, [sp, 0x4] ldr r6, _08114CA8 mov r4, r8 adds r5, r3, r4 ldr r0, _08114CAC adds r4, r6, r0 adds r4, r5, r4 ldrb r1, [r4] ldr r0, [sp] bl sub_8114DF0 ldr r1, _08114CB0 adds r0, r6, r1 adds r0, r5, r0 ldrb r1, [r4] ldrb r0, [r0] cmp r1, r0 beq _08114D1E ldr r1, _08114CB4 adds r0, r6, r1 adds r0, r5, r0 movs r1, 0x2 b _08114D74 .align 2, 0 _08114CA8: .4byte 0x02014800 _08114CAC: .4byte 0x000038c4 _08114CB0: .4byte 0x000028c4 _08114CB4: .4byte 0x000008c4 _08114CB8: movs r2, 0 str r2, [sp, 0x4] ldr r6, _08114CE8 mov r4, r8 adds r5, r3, r4 ldr r0, _08114CEC adds r4, r6, r0 adds r4, r5, r4 ldrb r1, [r4] ldr r0, [sp] bl sub_8114DB4 ldr r1, _08114CF0 adds r0, r6, r1 adds r0, r5, r0 ldrb r1, [r4] ldrb r0, [r0] cmp r1, r0 beq _08114D1E ldr r1, _08114CF4 adds r0, r6, r1 adds r0, r5, r0 movs r1, 0x3 b _08114D74 .align 2, 0 _08114CE8: .4byte 0x02014800 _08114CEC: .4byte 0x000038c4 _08114CF0: .4byte 0x000028c4 _08114CF4: .4byte 0x000008c4 _08114CF8: movs r2, 0 str r2, [sp, 0x4] ldr r6, _08114D2C mov r4, r8 adds r5, r3, r4 ldr r0, _08114D30 adds r4, r6, r0 adds r4, r5, r4 ldrb r1, [r4] ldr r0, [sp] bl sub_8114DF0 ldr r1, _08114D34 adds r0, r6, r1 adds r0, r5, r0 ldrb r1, [r4] ldrb r0, [r0] cmp r1, r0 bne _08114D6C _08114D1E: ldr r2, _08114D38 adds r0, r6, r2 adds r0, r5, r0 mov r4, sp ldrb r4, [r4, 0x4] strb r4, [r0] b _08114D76 .align 2, 0 _08114D2C: .4byte 0x02014800 _08114D30: .4byte 0x000038c4 _08114D34: .4byte 0x000028c4 _08114D38: .4byte 0x000008c4 _08114D3C: ldr r0, _08114D48 add r0, r9 adds r0, r7, r0 movs r1, 0 b _08114D74 .align 2, 0 _08114D48: .4byte 0x000008c4 _08114D4C: ldr r0, _08114D58 add r0, r9 adds r0, r7, r0 strb r3, [r0] b _08114D76 .align 2, 0 _08114D58: .4byte 0x000008c4 _08114D5C: ldr r0, _08114D68 add r0, r9 adds r0, r7, r0 movs r1, 0 b _08114D74 .align 2, 0 _08114D68: .4byte 0x000008c4 _08114D6C: ldr r1, _08114DAC adds r0, r6, r1 adds r0, r5, r0 movs r1, 0x4 _08114D74: strb r1, [r0] _08114D76: mov r3, r10 ldr r2, _08114DB0 adds r0, r2, 0 adds r0, 0x84 ldr r4, [sp] adds r0, r4, r0 adds r4, r2, 0 _08114D84: ldrb r0, [r0] cmp r3, r0 bge _08114D8E bl _08114410 _08114D8E: ldr r5, [sp, 0x8] str r5, [sp] cmp r5, 0x3F bgt _08114D9A bl _081143F2 _08114D9A: ldr r0, [sp, 0x4] add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08114DAC: .4byte 0x000008c4 _08114DB0: .4byte 0x02014800 thumb_func_end unref_sub_81143CC thumb_func_start sub_8114DB4 sub_8114DB4: @ 8114DB4 push {lr} lsls r1, 24 lsrs r3, r1, 24 ldr r2, _08114DDC lsrs r1, 25 lsls r1, 2 lsls r0, 7 adds r1, r0 ldr r0, _08114DE0 adds r2, r0 adds r1, r2 ldr r2, [r1] movs r0, 0x1 ands r3, r0 cmp r3, 0 beq _08114DE4 ldrb r0, [r2] movs r1, 0xF0 b _08114DE8 .align 2, 0 _08114DDC: .4byte 0x02014800 _08114DE0: .4byte 0x000040c4 _08114DE4: ldrb r0, [r2] movs r1, 0xF _08114DE8: orrs r0, r1 strb r0, [r2] pop {r0} bx r0 thumb_func_end sub_8114DB4 thumb_func_start sub_8114DF0 sub_8114DF0: @ 8114DF0 push {lr} lsls r1, 24 lsrs r3, r1, 24 ldr r2, _08114E28 lsrs r1, 25 lsls r1, 2 lsls r0, 7 adds r1, r0 ldr r0, _08114E2C adds r2, r0 adds r1, r2 ldr r2, [r1] movs r0, 0xC0 lsls r0, 7 adds r1, r2, r0 movs r0, 0x1 ands r3, r0 cmp r3, 0 beq _08114E30 ldrb r1, [r1] movs r0, 0xF0 ands r0, r1 cmp r0, 0 bne _08114E42 ldrb r1, [r2] movs r0, 0xF b _08114E3E .align 2, 0 _08114E28: .4byte 0x02014800 _08114E2C: .4byte 0x000040c4 _08114E30: ldrb r1, [r1] movs r0, 0xF ands r0, r1 cmp r0, 0 bne _08114E42 ldrb r1, [r2] movs r0, 0xF0 _08114E3E: ands r0, r1 strb r0, [r2] _08114E42: pop {r0} bx r0 thumb_func_end sub_8114DF0 thumb_func_start sub_8114E48 sub_8114E48: @ 8114E48 push {r4-r7,lr} adds r4, r0, 0 lsls r1, 24 lsrs r6, r1, 24 ldr r1, _08114E6C ldr r2, _08114E70 adds r0, r1, r2 ldrb r0, [r0] adds r5, r1, 0 cmp r0, 0 bne _08114E60 b _08114F5E _08114E60: movs r1, 0 movs r3, 0 cmp r4, 0 bne _08114E74 movs r1, 0x1 b _08114EA6 .align 2, 0 _08114E6C: .4byte 0x02014800 _08114E70: .4byte 0x0000a0c4 _08114E74: subs r0, r4, 0x1 lsls r0, 5 adds r2, r3, r0 adds r0, r5, 0 adds r0, 0xC4 adds r0, r2, r0 ldrb r0, [r0] cmp r0, 0 bne _08114EA6 ldr r7, _08114EC4 adds r0, r5, r7 adds r0, r2, r0 ldrb r0, [r0] cmp r0, 0 bne _08114EA6 adds r3, 0x1 cmp r3, 0x1F bgt _08114EA6 cmp r4, 0 bne _08114E74 lsls r0, r1, 24 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r1, r0, 24 _08114EA6: cmp r3, 0x20 bne _08114EB4 lsls r0, r1, 24 movs r2, 0x80 lsls r2, 17 adds r0, r2 lsrs r1, r0, 24 _08114EB4: movs r3, 0 cmp r4, 0x3F bne _08114EC8 lsls r0, r1, 24 movs r7, 0x80 lsls r7, 17 adds r0, r7 b _08114EF8 .align 2, 0 _08114EC4: .4byte 0x000008c4 _08114EC8: adds r0, r4, 0x1 lsls r0, 5 adds r2, r3, r0 adds r0, r5, 0 adds r0, 0xC4 adds r0, r2, r0 ldrb r0, [r0] cmp r0, 0 bne _08114EFA ldr r7, _08114F64 adds r0, r5, r7 adds r0, r2, r0 ldrb r0, [r0] cmp r0, 0 bne _08114EFA adds r3, 0x1 cmp r3, 0x1F bgt _08114EFA cmp r4, 0x3F bne _08114EC8 lsls r0, r1, 24 movs r1, 0x80 lsls r1, 17 adds r0, r1 _08114EF8: lsrs r1, r0, 24 _08114EFA: cmp r3, 0x20 bne _08114F08 lsls r0, r1, 24 movs r2, 0x80 lsls r2, 17 adds r0, r2 lsrs r1, r0, 24 _08114F08: cmp r1, 0x2 beq _08114F5E subs r0, r6, 0x2 lsls r0, 24 lsrs r1, r0, 24 cmp r0, 0 bge _08114F18 movs r1, 0 _08114F18: adds r0, r6, 0x2 lsls r0, 24 lsrs r2, r0, 24 asrs r0, 24 cmp r0, 0x3F ble _08114F26 movs r2, 0x3F _08114F26: lsls r1, 24 asrs r3, r1, 24 lsls r0, r2, 24 asrs r2, r0, 24 adds r6, r1, 0 adds r7, r0, 0 cmp r3, r2 bge _08114F7C cmp r4, 0 beq _08114F7C subs r0, r4, 0x1 lsls r5, r0, 7 ldr r0, _08114F68 mov r12, r0 _08114F42: asrs r0, r3, 1 lsls r0, 2 adds r0, r5 add r0, r12 ldr r1, [r0] movs r0, 0x1 ands r0, r3 cmp r0, 0 beq _08114F6C ldrb r1, [r1] movs r0, 0xF0 _08114F58: ands r0, r1 cmp r0, 0 beq _08114F72 _08114F5E: movs r0, 0x1 b _08114FCA .align 2, 0 _08114F64: .4byte 0x000008c4 _08114F68: .4byte 0x020188c4 _08114F6C: ldrb r1, [r1] movs r0, 0xF b _08114F58 _08114F72: adds r3, 0x1 cmp r3, r2 bge _08114F7C cmp r4, 0 bne _08114F42 _08114F7C: asrs r3, r6, 24 asrs r1, r7, 24 cmp r3, r1 bge _08114FC8 cmp r4, 0x3F beq _08114FC8 adds r0, r4, 0x1 lsls r5, r0, 7 ldr r6, _08114FB0 adds r2, r1, 0 _08114F90: asrs r0, r3, 1 lsls r0, 2 adds r0, r5 adds r0, r6 ldr r1, [r0] movs r0, 0x1 ands r0, r3 cmp r0, 0 beq _08114FB4 ldrb r1, [r1] movs r0, 0xF0 ands r0, r1 cmp r0, 0 beq _08114FBE b _08114F5E .align 2, 0 _08114FB0: .4byte 0x020188c4 _08114FB4: ldrb r1, [r1] movs r0, 0xF ands r0, r1 cmp r0, 0 bne _08114F5E _08114FBE: adds r3, 0x1 cmp r3, r2 bge _08114FC8 cmp r4, 0x3F bne _08114F90 _08114FC8: movs r0, 0 _08114FCA: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8114E48 thumb_func_start nullsub_73 nullsub_73: @ 8114FD0 bx lr thumb_func_end nullsub_73 thumb_func_start sub_8114FD4 sub_8114FD4: @ 8114FD4 push {lr} ldr r1, _08115034 ldr r2, _08115038 adds r0, r2, 0 strh r0, [r1] adds r1, 0x8 ldr r0, _0811503C ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _08115040 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _08115044 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _08115048 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _0811504C ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _08115050 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _08115054 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _08115058 ldrh r0, [r0] strh r0, [r1] bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_8089668 pop {r0} bx r0 .align 2, 0 _08115034: .4byte REG_BG0CNT _08115038: .4byte 0x00009803 _0811503C: .4byte gUnknown_030042A4 _08115040: .4byte gUnknown_030042A0 _08115044: .4byte gUnknown_030042C0 _08115048: .4byte gUnknown_030041B4 _0811504C: .4byte gUnknown_03004288 _08115050: .4byte gUnknown_03004280 _08115054: .4byte gUnknown_030041B0 _08115058: .4byte gUnknown_030041B8 thumb_func_end sub_8114FD4 thumb_func_start sub_811505C sub_811505C: @ 811505C push {lr} ldr r1, _081150B4 ldr r0, _081150B8 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _081150BC ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _081150C0 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _081150C4 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _081150C8 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _081150CC ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _081150D0 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _081150D4 ldrh r0, [r0] strh r0, [r1] bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_8089668 pop {r0} bx r0 .align 2, 0 _081150B4: .4byte REG_BG0HOFS _081150B8: .4byte gUnknown_030042A4 _081150BC: .4byte gUnknown_030042A0 _081150C0: .4byte gUnknown_030042C0 _081150C4: .4byte gUnknown_030041B4 _081150C8: .4byte gUnknown_03004288 _081150CC: .4byte gUnknown_03004280 _081150D0: .4byte gUnknown_030041B0 _081150D4: .4byte gUnknown_030041B8 thumb_func_end sub_811505C thumb_func_start sub_81150D8 sub_81150D8: @ 81150D8 push {lr} ldr r0, _081150F4 ldrb r1, [r0, 0x1] lsls r1, 28 movs r0, 0x90 lsls r0, 23 adds r1, r0 lsrs r1, 24 movs r0, 0xC8 bl sub_814A880 pop {r0} bx r0 .align 2, 0 _081150F4: .4byte gUnknown_02024D1E thumb_func_end sub_81150D8 thumb_func_start nullsub_24 nullsub_24: @ 81150F8 bx lr thumb_func_end nullsub_24 thumb_func_start sub_81150FC sub_81150FC: @ 81150FC push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer ldr r0, _08115120 adds r1, r0, 0 adds r1, 0xB8 ldrb r0, [r1] cmp r0, 0 beq _0811511C adds r0, r1, 0 bl task_tutorial_controls_fadein _0811511C: pop {r0} bx r0 .align 2, 0 _08115120: .4byte 0x02019000 thumb_func_end sub_81150FC thumb_func_start sub_8115124 sub_8115124: @ 8115124 push {r4,lr} sub sp, 0x4 bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_8117434 ldr r2, _08115188 ldr r3, _0811518C ldrh r1, [r3, 0x26] movs r4, 0x80 lsls r4, 2 adds r0, r4, 0 subs r0, r1 strh r0, [r2] ldrb r0, [r3, 0x1] cmp r0, 0 beq _08115154 ldr r1, _08115190 ldrh r0, [r3, 0x34] strh r0, [r1] _08115154: movs r1, 0x2A ldrsh r0, [r3, r1] cmp r0, 0 beq _08115170 ldr r1, _08115194 ldr r0, _08115198 str r0, [r1] ldr r0, _0811519C str r0, [r1, 0x4] ldr r0, _081151A0 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0 strh r0, [r3, 0x2A] _08115170: movs r2, 0x28 ldrsh r0, [r3, r2] cmp r0, 0x1 beq _081151A4 cmp r0, 0x1 ble _0811521A cmp r0, 0x2 beq _081151D4 cmp r0, 0xFF beq _081151F8 b _0811521A .align 2, 0 _08115188: .4byte REG_BG1HOFS _0811518C: .4byte 0x02019000 _08115190: .4byte REG_BLDALPHA _08115194: .4byte 0x040000d4 _08115198: .4byte gBG1TilemapBuffer + 0x1C0 _0811519C: .4byte 0x060021c0 _081151A0: .4byte 0x800001a0 _081151A4: ldr r1, _081151C4 movs r4, 0xF8 lsls r4, 5 adds r0, r4, 0 strh r0, [r1] adds r1, 0xCC ldr r0, _081151C8 str r0, [r1] ldr r0, _081151CC str r0, [r1, 0x4] ldr r0, _081151D0 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0x2 b _08115218 .align 2, 0 _081151C4: .4byte REG_BG0CNT _081151C8: .4byte gBG2TilemapBuffer + 0x1C0 _081151CC: .4byte 0x0600f9c0 _081151D0: .4byte 0x800001a0 _081151D4: ldr r1, _081151E8 ldr r0, _081151EC str r0, [r1] ldr r0, _081151F0 str r0, [r1, 0x4] ldr r0, _081151F4 str r0, [r1, 0x8] ldr r0, [r1, 0x8] b _0811521A .align 2, 0 _081151E8: .4byte 0x040000d4 _081151EC: .4byte gBG2TilemapBuffer + 0x1C0 _081151F0: .4byte 0x0600f9c0 _081151F4: .4byte 0x800001a0 _081151F8: ldr r1, _08115224 ldr r2, _08115228 adds r0, r2, 0 strh r0, [r1] mov r1, sp movs r0, 0 strh r0, [r1] ldr r1, _0811522C mov r4, sp str r4, [r1] ldr r0, _08115230 str r0, [r1, 0x4] ldr r0, _08115234 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0 _08115218: strh r0, [r3, 0x28] _0811521A: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08115224: .4byte REG_BG0CNT _08115228: .4byte 0x00001f08 _0811522C: .4byte 0x040000d4 _08115230: .4byte 0x0600f9c0 _08115234: .4byte 0x810001a0 thumb_func_end sub_8115124 thumb_func_start sub_8115238 sub_8115238: @ 8115238 push {r4-r6,lr} sub sp, 0x8 ldr r1, _081152C0 mov r0, sp movs r2, 0x6 bl memcpy ldr r5, _081152C4 movs r2, 0xBE lsls r2, 1 adds r0, r5, 0 movs r1, 0 bl memset ldr r0, _081152C8 ldrh r2, [r0] movs r0, 0x1 ands r0, r2 ldrb r1, [r5, 0x4] movs r3, 0x4 negs r3, r3 ands r3, r1 orrs r3, r0 strb r3, [r5, 0x4] movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _08115276 movs r0, 0x80 orrs r3, r0 strb r3, [r5, 0x4] _08115276: ldr r3, _081152CC ldrb r2, [r5, 0x4] lsls r1, r2, 30 lsrs r0, r1, 25 adds r0, r3 ldrb r0, [r0, 0x3] adds r4, r5, 0 adds r4, 0x22 strb r0, [r4] lsrs r0, r1, 25 adds r0, r3 ldrb r0, [r0, 0x4] adds r3, r5, 0 adds r3, 0x23 strb r0, [r3] ldr r0, _081152D0 lsrs r1, 30 lsls r2, 24 lsrs r2, 31 lsls r2, 1 adds r1, r2 adds r1, r0 ldrb r2, [r1] strb r2, [r5, 0x19] ldrb r1, [r5, 0x1A] movs r0, 0xF ands r0, r1 movs r1, 0x10 orrs r0, r1 strb r0, [r5, 0x1A] cmp r2, 0x1 bne _081152DC ldr r4, _081152D4 ldr r3, _081152D8 mov r0, sp ldrh r2, [r0] b _081152E4 .align 2, 0 _081152C0: .4byte gUnknown_083F8EC4 _081152C4: .4byte 0x02019000 _081152C8: .4byte gUnknown_0202E8CC _081152CC: .4byte gUnknown_083F8DF4 _081152D0: .4byte gUnknown_083F8DF0 _081152D4: .4byte gPlttBufferUnfaded _081152D8: .4byte gPlttBufferFaded _081152DC: ldr r4, _08115348 ldr r3, _0811534C mov r0, sp ldrh r2, [r0, 0x2] _081152E4: adds r0, r3, 0 adds r0, 0xA2 strh r2, [r0] ldr r1, _08115350 adds r0, r1, 0 ands r0, r2 strh r0, [r3] ands r0, r1 adds r2, r4, 0 adds r2, 0xA2 strh r0, [r2] ands r0, r1 strh r0, [r4] ldr r0, _08115354 bl sub_8124918 movs r4, 0 ldr r5, _08115358 _08115308: lsls r2, r4, 3 adds r2, r5 ldr r0, _08115354 adds r1, r4, 0 bl sub_812492C adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xC bls _08115308 movs r4, 0 ldr r5, _0811535C _08115322: movs r0, 0x64 muls r0, r4 ldr r1, _08115360 adds r0, r1 movs r1, 0x41 bl GetMonData adds r1, r0, 0 movs r0, 0x98 lsls r0, 1 cmp r1, r0 beq _08115364 adds r0, 0x2 cmp r1, r0 bne _0811536C ldrb r0, [r5, 0x2] movs r1, 0x1 b _08115368 .align 2, 0 _08115348: .4byte gPlttBufferUnfaded _0811534C: .4byte gPlttBufferFaded _08115350: .4byte 0x0000ffff _08115354: .4byte 0x020190b8 _08115358: .4byte gUnknown_083F8E34 _0811535C: .4byte 0x02019000 _08115360: .4byte gPlayerParty _08115364: ldrb r0, [r5, 0x2] movs r1, 0x2 _08115368: orrs r0, r1 strb r0, [r5, 0x2] _0811536C: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _08115322 bl RtcCalcLocalTime add sp, 0x8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8115238 thumb_func_start sub_8115384 sub_8115384: @ 8115384 push {r4,lr} sub sp, 0x4 ldr r1, _081153A4 ldr r2, _081153A8 adds r0, r1, r2 ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0x7 bls _08115398 b _081155FE _08115398: lsls r0, 2 ldr r1, _081153AC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081153A4: .4byte gMain _081153A8: .4byte 0x0000043c _081153AC: .4byte _081153B0 .align 2, 0 _081153B0: .4byte _081153D0 .4byte _08115444 .4byte _08115460 .4byte _08115494 .4byte _081154CC .4byte _081154FC .4byte _0811556C .4byte _0811558C _081153D0: movs r0, 0 bl SetVBlankCallback bl remove_some_task bl sub_80F9438 bl sub_80F9368 ldr r1, _08115420 ldr r3, _08115424 adds r0, r3, 0 strh r0, [r1] subs r1, 0x2 ldr r2, _08115428 adds r0, r2, 0 strh r0, [r1] adds r1, 0x46 movs r3, 0x90 lsls r3, 6 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _0811542C adds r0, r2, 0 strh r0, [r1] ldr r0, _08115430 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _08115434 ldr r1, _08115438 bl LZ77UnCompVram ldr r1, _0811543C ldr r3, _08115440 adds r1, r3 b _0811557A .align 2, 0 _08115420: .4byte REG_BG2CNT _08115424: .4byte 0x00004686 _08115428: .4byte 0x00004401 _0811542C: .4byte 0x0000060a _08115430: .4byte gUnknown_08E8096C _08115434: .4byte gUnknown_08E81098 _08115438: .4byte 0x06004000 _0811543C: .4byte gMain _08115440: .4byte 0x0000043c _08115444: bl ResetPaletteFade bl ResetSpriteData bl ResetTasks ldr r1, _08115458 ldr r0, _0811545C adds r1, r0 b _0811557A .align 2, 0 _08115458: .4byte gMain _0811545C: .4byte 0x0000043c _08115460: ldr r0, _08115480 bl SetUpWindowConfig ldr r0, _08115484 bl InitMenuWindow ldr r0, _08115488 movs r2, 0xE0 lsls r2, 1 movs r1, 0 bl LoadPalette ldr r1, _0811548C ldr r2, _08115490 adds r1, r2 b _0811557A .align 2, 0 _08115480: .4byte gWindowConfig_81E6C3C _08115484: .4byte gWindowConfig_81E6CE4 _08115488: .4byte gUnknown_083F86BC _0811548C: .4byte gMain _08115490: .4byte 0x0000043c _08115494: bl sub_8115238 bl sub_80F9020 ldr r0, _081154B4 ldr r1, _081154B8 bl LZ77UnCompWram ldr r0, _081154BC ldr r1, _081154C0 bl LZ77UnCompVram ldr r1, _081154C4 ldr r3, _081154C8 adds r1, r3 b _0811557A .align 2, 0 _081154B4: .4byte gUnknown_083F88BC _081154B8: .4byte 0x02018800 _081154BC: .4byte gUnknown_083F8A60 _081154C0: .4byte 0x06003000 _081154C4: .4byte gMain _081154C8: .4byte 0x0000043c _081154CC: movs r0, 0 bl sub_8117838 bl sub_811857C bl sub_81184D8 bl sub_8117F2C bl sub_8117900 bl sub_8117BBC bl sub_8117DF4 ldr r1, _081154F4 ldr r0, _081154F8 adds r1, r0 b _0811557A .align 2, 0 _081154F4: .4byte gMain _081154F8: .4byte 0x0000043c _081154FC: bl AnimateSprites bl BuildOamBuffer ldr r0, _08115550 ldr r1, _08115554 adds r0, r1 ldrh r0, [r0] bl sub_81180F4 movs r0, 0x6 bl sub_81182F8 movs r0, 0 bl sub_811829C movs r0, 0 bl sub_8117158 movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow ldr r0, _08115558 movs r1, 0x1 movs r2, 0xF bl MenuPrint ldr r1, _0811555C movs r2, 0x3C negs r2, r2 adds r0, r2, 0 strh r0, [r1] ldr r1, _08115560 movs r0, 0 strh r0, [r1] ldr r1, _08115564 ldr r3, _08115568 adds r1, r3 b _0811557A .align 2, 0 _08115550: .4byte gSaveBlock1 _08115554: .4byte 0x00000494 _08115558: .4byte gUnknown_081C4157 _0811555C: .4byte gSpriteCoordOffsetX _08115560: .4byte gSpriteCoordOffsetY _08115564: .4byte gMain _08115568: .4byte 0x0000043c _0811556C: movs r1, 0x80 lsls r1, 19 ldr r3, _08115584 adds r0, r3, 0 strh r0, [r1] ldr r0, _08115588 adds r1, r2, r0 _0811557A: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _081155FE .align 2, 0 _08115584: .4byte 0x00001741 _08115588: .4byte 0x0000043c _0811558C: ldr r3, _08115608 ldrh r2, [r3] movs r0, 0 strh r0, [r3] ldr r4, _0811560C ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _08115610 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _08115614 bl SetVBlankCallback movs r0, 0x1 str r0, [sp] movs r0, 0xFF movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginHardwarePaletteFade ldr r0, _08115618 movs r1, 0 bl CreateTask ldr r4, _0811561C adds r1, r4, 0 adds r1, 0xA4 strb r0, [r1] lsls r0, 24 lsrs r0, 24 ldr r2, _08115620 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0x6 strh r0, [r1, 0x14] ldr r0, _08115624 ldr r2, _08115628 adds r0, r2 ldrh r0, [r0] strh r0, [r1, 0x22] ldr r0, _0811562C movs r1, 0x1 bl CreateTask adds r4, 0xA5 strb r0, [r4] ldr r0, _08115630 bl SetMainCallback2 _081155FE: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08115608: .4byte 0x04000208 _0811560C: .4byte 0x04000200 _08115610: .4byte REG_DISPSTAT _08115614: .4byte sub_8115124 _08115618: .4byte sub_81156BC _0811561C: .4byte 0x02019000 _08115620: .4byte gTasks _08115624: .4byte gSaveBlock1 _08115628: .4byte 0x00000494 _0811562C: .4byte sub_8115634 _08115630: .4byte sub_81150FC thumb_func_end sub_8115384 thumb_func_start sub_8115634 sub_8115634: @ 8115634 push {r4-r6,lr} ldr r0, _081156B8 adds r3, r0, 0 adds r3, 0x21 ldrb r1, [r3] adds r2, r1, 0x1 strb r2, [r3] adds r2, r0, 0 adds r2, 0x23 lsls r1, 24 lsrs r1, 24 adds r6, r0, 0 ldrb r2, [r2] cmp r1, r2 bne _08115674 movs r0, 0 strb r0, [r3] adds r2, r6, 0 adds r2, 0x22 ldrb r1, [r2] ldrh r0, [r6, 0x24] subs r0, r1 strh r0, [r6, 0x24] lsls r0, 16 cmp r0, 0 bge _08115674 ldrb r1, [r2] movs r2, 0xB4 lsls r2, 1 adds r0, r2, 0 subs r0, r1 strh r0, [r6, 0x24] _08115674: adds r4, r6, 0 ldrh r0, [r4, 0x24] bl Sin2 lsls r0, 16 lsrs r5, r0, 16 ldrh r0, [r4, 0x24] bl Cos2 lsls r0, 16 lsrs r1, r0, 16 lsls r0, r5, 16 asrs r0, 16 cmp r0, 0 bge _08115694 adds r0, 0xF _08115694: lsls r0, 12 lsrs r5, r0, 16 lsls r0, r1, 16 asrs r0, 16 cmp r0, 0 bge _081156A2 adds r0, 0xF _081156A2: asrs r0, 4 strh r0, [r6, 0x32] strh r0, [r6, 0x2C] strh r5, [r6, 0x2E] lsls r0, r5, 16 asrs r0, 16 negs r0, r0 strh r0, [r6, 0x30] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081156B8: .4byte 0x02019000 thumb_func_end sub_8115634 thumb_func_start sub_81156BC sub_81156BC: @ 81156BC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 bl UpdatePaletteFade lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 bne _08115716 ldr r2, _0811571C ldrh r0, [r2] movs r5, 0x90 lsls r5, 6 adds r1, r5, 0 orrs r0, r1 strh r0, [r2] ldr r1, _08115720 ldr r2, _08115724 adds r0, r2, 0 strh r0, [r1] ldr r1, _08115728 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 strh r3, [r0, 0x14] adds r0, r4, 0 bl sub_8116CAC bl sub_8116CF8 bl sub_81185E8 movs r0, 0 bl sub_8117158 movs r0, 0x6 bl sub_81182F8 ldr r1, _0811572C ldr r2, _08115730 adds r0, r4, 0 movs r3, 0x3 bl sub_8116C34 _08115716: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811571C: .4byte REG_BLDCNT _08115720: .4byte REG_BLDALPHA _08115724: .4byte 0x00000808 _08115728: .4byte gTasks _0811572C: .4byte sub_81159BC _08115730: .4byte 0x0000ffff thumb_func_end sub_81156BC thumb_func_start sub_8115734 sub_8115734: @ 8115734 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1 bl DisplayYesNoMenu ldr r0, _08115770 bl sub_814AAF8 movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow ldr r0, _08115774 movs r1, 0x1 movs r2, 0xF bl MenuPrint ldr r1, _08115778 adds r0, r4, 0 bl sub_80F914C pop {r4} pop {r0} bx r0 .align 2, 0 _08115770: .4byte 0x00002d9e _08115774: .4byte gUnknown_081C41E3 _08115778: .4byte gUnknown_083F8EBC thumb_func_end sub_8115734 thumb_func_start sub_811577C sub_811577C: @ 811577C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1A movs r3, 0xD bl MenuZeroFillWindowRect ldr r1, _081157A4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _081157A8 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _081157A4: .4byte gTasks _081157A8: .4byte sub_81159BC thumb_func_end sub_811577C thumb_func_start sub_81157AC sub_81157AC: @ 81157AC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _081157CC adds r0, 0xA5 ldrb r0, [r0] bl DestroyTask adds r0, r4, 0 bl sub_8116AB0 pop {r4} pop {r0} bx r0 .align 2, 0 _081157CC: .4byte 0x02019000 thumb_func_end sub_81157AC thumb_func_start sub_81157D0 sub_81157D0: @ 81157D0 push {r4-r7,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF bhi _081158C8 lsls r0, r4, 2 ldr r1, _081157E8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081157E8: .4byte _081157EC .align 2, 0 _081157EC: .4byte _0811582C .4byte _08115848 .4byte _08115848 .4byte _08115848 .4byte _08115848 .4byte _08115884 .4byte _081158C8 .4byte _081158C8 .4byte _081158C8 .4byte _081158C8 .4byte _08115884 .4byte _081158C8 .4byte _081158C8 .4byte _081158C8 .4byte _081158C8 .4byte _08115884 _0811582C: ldr r0, _08115844 movs r1, 0x10 str r1, [sp] movs r1, 0xD str r1, [sp, 0x4] movs r1, 0 movs r2, 0xE movs r3, 0x7 bl sub_8124DDC b _08115918 .align 2, 0 _08115844: .4byte gBG2TilemapBuffer _08115848: lsls r0, r4, 1 adds r0, r4 adds r0, 0xE lsls r0, 24 lsrs r7, r0, 24 ldr r5, _0811587C movs r0, 0x10 str r0, [sp] movs r4, 0xD str r4, [sp, 0x4] adds r0, r5, 0 movs r1, 0 movs r2, 0xE movs r3, 0x7 bl sub_8124DDC ldr r1, _08115880 movs r0, 0x3 str r0, [sp] str r4, [sp, 0x4] adds r0, r5, 0 adds r2, r7, 0 movs r3, 0x7 bl sub_8124E2C b _08115918 .align 2, 0 _0811587C: .4byte gBG2TilemapBuffer _08115880: .4byte 0x02018a32 _08115884: subs r0, r4, 0x1 movs r1, 0x5 bl __divsi3 lsls r1, r0, 1 adds r1, r0 adds r1, 0xA lsls r1, 24 lsrs r6, r1, 24 ldr r5, _081158C0 movs r4, 0x10 str r4, [sp] movs r0, 0xD str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0 movs r2, 0xE movs r3, 0x7 bl sub_8124DDC ldr r1, _081158C4 str r4, [sp] movs r0, 0x3 str r0, [sp, 0x4] adds r0, r5, 0 movs r2, 0xE adds r3, r6, 0 bl sub_8124E2C b _08115918 .align 2, 0 _081158C0: .4byte gBG2TilemapBuffer _081158C4: .4byte 0x02018a80 _081158C8: adds r0, r4, 0 movs r1, 0x5 bl __umodsi3 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 adds r1, 0xE lsls r1, 24 lsrs r7, r1, 24 subs r0, r4, 0x1 movs r1, 0x5 bl __divsi3 lsls r1, r0, 1 adds r1, r0 adds r1, 0x7 lsls r1, 24 lsrs r6, r1, 24 ldr r4, _08115920 movs r0, 0x10 str r0, [sp] movs r0, 0xD str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0 movs r2, 0xE movs r3, 0x7 bl sub_8124DDC ldr r1, _08115924 movs r0, 0x3 str r0, [sp] str r0, [sp, 0x4] adds r0, r4, 0 adds r2, r7, 0 adds r3, r6, 0 bl sub_8124E2C _08115918: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08115920: .4byte gBG2TilemapBuffer _08115924: .4byte 0x02018a20 thumb_func_end sub_81157D0 thumb_func_start sub_8115928 sub_8115928: @ 8115928 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 cmp r1, 0 bne _0811594C ldr r1, _08115948 lsls r4, r5, 2 adds r0, r4, r5 lsls r0, 3 adds r0, r1 ldrb r0, [r0, 0x10] bl sub_811829C b _08115960 .align 2, 0 _08115948: .4byte gTasks _0811594C: ldr r0, _08115974 ldrb r1, [r0, 0x1A] lsls r1, 28 lsrs r1, 28 adds r0, 0x1B adds r1, r0 ldrb r0, [r1] bl sub_811829C lsls r4, r5, 2 _08115960: ldr r0, _08115978 adds r1, r4, r5 lsls r1, 3 adds r1, r0 ldrb r0, [r1, 0x10] bl sub_81157D0 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08115974: .4byte 0x02019000 _08115978: .4byte gTasks thumb_func_end sub_8115928 thumb_func_start sub_811597C sub_811597C: @ 811597C push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _081159B0 movs r6, 0 movs r1, 0x1 strh r1, [r5, 0x28] ldr r1, _081159B4 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldrb r0, [r4, 0x10] bl sub_81157D0 adds r1, r5, 0 adds r1, 0x23 movs r0, 0x2 strb r0, [r1] adds r5, 0x21 strb r6, [r5] ldr r0, _081159B8 str r0, [r4] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081159B0: .4byte 0x02019000 _081159B4: .4byte gTasks _081159B8: .4byte sub_8115E14 thumb_func_end sub_811597C thumb_func_start sub_81159BC sub_81159BC: @ 81159BC push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r3, _08115A10 ldr r1, [r3, 0x8] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08115A1C movs r2, 0xB ldr r5, _08115A14 adds r0, r5, 0 adds r0, 0xE4 ldr r0, [r0] ands r1, r0 ldr r0, _08115A18 mov r12, r0 lsls r7, r6, 2 cmp r1, 0 beq _08115A5A adds r4, r3, 0 adds r3, r5, 0 adds r3, 0x8 _081159EA: lsls r0, r2, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 lsrs r2, r0, 16 asrs r1, r0, 16 cmp r1, 0xD bgt _08115A5A lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r3 ldr r1, [r4, 0x8] ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _081159EA b _08115A5A .align 2, 0 _08115A10: .4byte 0x02019000 _08115A14: .4byte gUnknown_083F8C00 _08115A18: .4byte gTasks _08115A1C: movs r2, 0x6 ldr r5, _08115A88 adds r0, r5, 0 adds r0, 0x80 ldr r0, [r0] ands r1, r0 ldr r0, _08115A8C mov r12, r0 lsls r7, r6, 2 cmp r1, 0 beq _08115A5A adds r4, r3, 0 adds r3, r5, 0 adds r3, 0x8 _08115A38: lsls r0, r2, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 lsrs r2, r0, 16 asrs r1, r0, 16 cmp r1, 0x9 bgt _08115A5A lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r3 ldr r1, [r4, 0x8] ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _08115A38 _08115A5A: adds r4, r7, r6 lsls r4, 3 add r4, r12 movs r5, 0 strh r2, [r4, 0x10] adds r0, r6, 0 bl sub_8116CAC ldrb r0, [r4, 0x10] bl sub_8117158 ldrb r0, [r4, 0x10] bl sub_811829C ldrb r0, [r4, 0x10] bl sub_8116EF8 strh r5, [r4, 0xA] ldr r0, _08115A90 str r0, [r4] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08115A88: .4byte gUnknown_083F8C00 _08115A8C: .4byte gTasks _08115A90: .4byte sub_811597C thumb_func_end sub_81159BC thumb_func_start sub_8115A94 sub_8115A94: @ 8115A94 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 movs r6, 0 movs r7, 0 ldr r1, _08115ADC mov r0, sp movs r2, 0x4 bl memcpy ldrb r0, [r4] mov r8, r0 cmp r5, 0 blt _08115B08 cmp r5, 0x1 bgt _08115AE0 movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0x5 bl __modsi3 lsls r0, 24 lsrs r6, r0, 24 movs r2, 0xF0 lsls r2, 20 adds r1, r0, r2 lsrs r7, r1, 24 cmp r0, 0 bne _08115B08 movs r6, 0x5 b _08115B08 .align 2, 0 _08115ADC: .4byte gUnknown_083F8ECA _08115AE0: cmp r5, 0x3 bgt _08115B08 movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0x5 bl __divsi3 lsls r0, 16 asrs r0, 16 lsls r1, r0, 2 adds r1, r0 lsls r1, 24 lsrs r6, r1, 24 movs r2, 0x80 lsls r2, 19 adds r0, r1, r2 lsrs r7, r0, 24 cmp r1, 0 bne _08115B08 movs r6, 0x1 _08115B08: mov r1, sp adds r0, r1, r5 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrh r2, [r4] adds r0, r2 strh r0, [r4] lsls r1, r6, 24 asrs r3, r1, 24 lsls r0, 16 asrs r0, 16 lsls r2, r7, 24 cmp r0, r3 bge _08115B2A asrs r0, r2, 24 strh r0, [r4] _08115B2A: movs r0, 0 ldrsh r1, [r4, r0] asrs r0, r2, 24 cmp r1, r0 ble _08115B36 strh r3, [r4] _08115B36: mov r1, r8 lsls r0, r1, 24 movs r2, 0 ldrsh r1, [r4, r2] asrs r0, 24 cmp r1, r0 bne _08115B48 movs r0, 0 b _08115B4A _08115B48: movs r0, 0x1 _08115B4A: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8115A94 thumb_func_start sub_8115B58 sub_8115B58: @ 8115B58 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r7, r0, 24 movs r0, 0 mov r8, r0 movs r5, 0 ldr r4, _08115D30 ldrh r1, [r4, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08115B94 movs r5, 0x1 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, _08115D34 adds r0, r1 adds r0, 0x8 movs r1, 0 bl sub_8115A94 lsls r0, 24 cmp r0, 0 bne _08115B94 b _08115D20 _08115B94: ldrh r1, [r4, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08115BBA movs r5, 0x1 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, _08115D34 adds r0, r1 adds r0, 0x8 movs r1, 0x1 bl sub_8115A94 lsls r0, 24 cmp r0, 0 bne _08115BBA b _08115D20 _08115BBA: ldrh r1, [r4, 0x2E] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08115BE0 movs r5, 0x1 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, _08115D34 adds r0, r1 adds r0, 0x8 movs r1, 0x2 bl sub_8115A94 lsls r0, 24 cmp r0, 0 bne _08115BE0 b _08115D20 _08115BE0: ldrh r1, [r4, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08115C06 movs r5, 0x1 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, _08115D34 adds r0, r1 adds r0, 0x8 movs r1, 0x3 bl sub_8115A94 lsls r0, 24 cmp r0, 0 bne _08115C06 b _08115D20 _08115C06: cmp r5, 0 bne _08115C0C b _08115D20 _08115C0C: ldr r0, _08115D38 lsls r6, r7, 2 adds r4, r6, r7 lsls r4, 3 adds r4, r0 ldrb r0, [r4, 0x10] bl sub_8117158 adds r0, r7, 0 movs r1, 0 bl sub_8115928 mov r1, r8 strh r1, [r4, 0xA] movs r0, 0x5 bl PlaySE ldr r5, _08115D3C ldr r1, _08115D40 adds r0, r5, 0 bl sub_8124D3C adds r3, r5, 0 adds r3, 0xB8 ldrb r2, [r3] movs r1, 0x7F adds r0, r1, 0 ands r0, r2 strb r0, [r3] subs r3, 0xC ldrb r2, [r3] adds r0, r1, 0 ands r0, r2 strb r0, [r3] adds r2, r5, 0 adds r2, 0xA0 ldrb r0, [r2] ands r1, r0 strb r1, [r2] ldrb r0, [r4, 0x10] bl sub_8116EF8 movs r4, 0 mov r12, r6 ldr r6, _08115D44 movs r2, 0x7C negs r2, r2 adds r2, r5 mov r10, r2 movs r0, 0x8 adds r0, r6 mov r8, r0 ldr r1, _08115D48 mov r9, r1 ldr r2, _08115D4C adds r5, r2, 0 _08115C7C: adds r0, r4, 0 adds r0, 0x29 add r0, r10 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, r0, r6 adds r2, r3, 0 adds r2, 0x40 add r0, r8 ldr r0, [r0] ldr r0, [r0] ldrh r1, [r0] ldrh r2, [r2] adds r1, r2 ands r1, r5 ldrh r2, [r3, 0x4] mov r0, r9 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _08115C7C ldr r0, _08115D38 mov r2, r12 adds r1, r2, r7 lsls r1, 3 adds r1, r0 ldrh r3, [r1, 0x10] subs r0, r3, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x3 bhi _08115D20 ldr r2, _08115D50 movs r0, 0x10 ldrsh r1, [r1, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, 0x8 adds r0, r2 ldr r2, _08115D54 ldr r1, [r2, 0x8] ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _08115D20 subs r0, r3, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 adds r0, r2, 0 add r0, r8 adds r0, 0x65 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08115D44 adds r3, r0, r1 adds r2, r3, 0 adds r2, 0x40 adds r1, 0x8 adds r0, r1 ldr r0, [r0] ldr r0, [r0] ldrh r1, [r0, 0x4] ldrh r2, [r2] adds r1, r2 ldr r2, _08115D4C adds r0, r2, 0 ands r1, r0 ldrh r2, [r3, 0x4] ldr r0, _08115D48 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] _08115D20: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08115D30: .4byte gMain _08115D34: .4byte gUnknown_03004B28 _08115D38: .4byte gTasks _08115D3C: .4byte 0x020190b8 _08115D40: .4byte 0x0000ffff _08115D44: .4byte gSprites _08115D48: .4byte 0xfffffc00 _08115D4C: .4byte 0x000003ff _08115D50: .4byte gUnknown_083F8C00 _08115D54: .4byte 0x02019000 thumb_func_end sub_8115B58 thumb_func_start sub_8115D58 sub_8115D58: @ 8115D58 push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r1, _08115D70 movs r0, 0xFF strh r0, [r1, 0x28] ldrb r0, [r1, 0x19] cmp r0, 0x1 bne _08115D74 adds r2, r1, 0 adds r2, 0x23 b _08115D7A .align 2, 0 _08115D70: .4byte 0x02019000 _08115D74: adds r2, r1, 0 adds r2, 0x23 movs r0, 0 _08115D7A: strb r0, [r2] adds r1, 0x21 movs r0, 0 strb r0, [r1] ldr r1, _08115D98 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r1, 0x20 strh r1, [r0, 0xA] ldr r1, _08115D9C str r1, [r0] pop {r0} bx r0 .align 2, 0 _08115D98: .4byte gTasks _08115D9C: .4byte sub_8115ECC thumb_func_end sub_8115D58 thumb_func_start sub_8115DA0 sub_8115DA0: @ 8115DA0 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r4, _08115E08 ldrb r2, [r4, 0x1A] lsls r2, 28 lsrs r2, 28 adds r5, r4, 0 adds r5, 0x1B adds r2, r5 ldr r3, _08115E0C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r6, r1, r3 ldrh r0, [r6, 0x10] strb r0, [r2] ldrb r0, [r4, 0x1A] lsls r0, 28 lsrs r0, 28 adds r0, r5 ldrb r0, [r0] bl sub_8117380 lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0xC] ldrb r0, [r4, 0x1A] lsls r0, 28 lsrs r0, 28 adds r0, r5 ldrb r0, [r0] bl sub_811829C ldrb r1, [r4, 0x19] ldrh r0, [r6, 0x22] subs r0, r1 strh r0, [r6, 0x22] lsls r0, 16 cmp r0, 0 bge _08115DF6 movs r0, 0 strh r0, [r6, 0x22] _08115DF6: ldrh r0, [r6, 0x22] bl sub_81180F4 ldr r0, _08115E10 str r0, [r6] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08115E08: .4byte 0x02019000 _08115E0C: .4byte gTasks _08115E10: .4byte sub_8115D58 thumb_func_end sub_8115DA0 thumb_func_start sub_8115E14 sub_8115E14: @ 8115E14 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl sub_8115B58 ldr r1, _08115E3C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x1E beq _08115E4A cmp r0, 0x1E bgt _08115E40 cmp r0, 0 beq _08115E46 b _08115E5E .align 2, 0 _08115E3C: .4byte gTasks _08115E40: cmp r0, 0x3B beq _08115E58 b _08115E5E _08115E46: ldrb r0, [r4, 0x10] b _08115E4C _08115E4A: movs r0, 0 _08115E4C: bl sub_81157D0 ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] b _08115E6E _08115E58: movs r0, 0 strh r0, [r4, 0xA] b _08115E6E _08115E5E: ldr r0, _08115EA8 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] _08115E6E: ldr r0, _08115EAC ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08115EC2 ldr r3, _08115EB0 ldr r2, _08115EB4 ldr r1, _08115EA8 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r0, 0x10 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, 0x8 adds r0, r2 ldr r1, [r3, 0x8] ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08115EB8 movs r0, 0x16 bl PlaySE b _08115EC2 .align 2, 0 _08115EA8: .4byte gTasks _08115EAC: .4byte gMain _08115EB0: .4byte 0x02019000 _08115EB4: .4byte gUnknown_083F8C00 _08115EB8: movs r0, 0x5F bl m4aSongNumStart ldr r0, _08115EC8 str r0, [r4] _08115EC2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08115EC8: .4byte sub_8115DA0 thumb_func_end sub_8115E14 thumb_func_start sub_8115ECC sub_8115ECC: @ 8115ECC push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _08115F20 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0xA] subs r1, r0, 0x1 strh r1, [r4, 0xA] lsls r0, 16 cmp r0, 0 ble _08115F34 lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x2 ble _08115EF8 ldr r1, _08115F24 ldrh r0, [r1] adds r0, 0x2 strh r0, [r1] _08115EF8: ldr r1, _08115F28 ldrh r0, [r1, 0x26] adds r0, 0x4 strh r0, [r1, 0x26] lsls r0, 16 asrs r0, 16 cmp r0, 0x68 bne _08115F4C ldr r2, _08115F2C adds r0, r1, 0 adds r0, 0x55 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _08115F30 str r1, [r0] b _08115F4C .align 2, 0 _08115F20: .4byte gTasks _08115F24: .4byte gSpriteCoordOffsetX _08115F28: .4byte 0x02019000 _08115F2C: .4byte gSprites _08115F30: .4byte SpriteCallbackDummy _08115F34: movs r0, 0x1 movs r1, 0xFF bl sub_8117AA8 movs r0, 0x1 movs r1, 0xFF bl sub_8117C60 ldr r0, _08115F54 str r0, [r4] movs r0, 0 strh r0, [r4, 0xA] _08115F4C: pop {r4} pop {r0} bx r0 .align 2, 0 _08115F54: .4byte sub_8116100 thumb_func_end sub_8115ECC thumb_func_start sub_8115F58 sub_8115F58: @ 8115F58 push {r4,lr} lsls r0, 16 lsrs r3, r0, 16 lsls r1, 16 lsrs r1, 16 ldr r0, _08115F74 ldrb r2, [r0, 0x2] adds r4, r0, 0 cmp r2, 0x2 bgt _08115F78 cmp r2, 0x1 bge _08115F7E b _08116048 .align 2, 0 _08115F74: .4byte 0x02019000 _08115F78: cmp r2, 0x3 beq _08115FE0 b _08116048 _08115F7E: ldr r0, _08115FA8 ldrb r0, [r0, 0x2] subs r0, 0x4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bhi _08115FB0 cmp r3, 0xB bls _08115F98 movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0811605E _08115F98: ldr r0, _08115FAC ldrb r1, [r4, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x2] lsrs r0, 1 b _081160F4 .align 2, 0 _08115FA8: .4byte gLocalTime _08115FAC: .4byte gUnknown_083F8DF4 _08115FB0: movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _08115FCC ldr r0, _08115FC8 ldrb r1, [r4, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x2] lsrs r0, 1 b _081160F4 .align 2, 0 _08115FC8: .4byte gUnknown_083F8DF4 _08115FCC: ldr r0, _08115FDC ldrb r1, [r4, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x2] b _081160F4 .align 2, 0 _08115FDC: .4byte gUnknown_083F8DF4 _08115FE0: ldr r0, _0811600C ldrb r0, [r0, 0x2] subs r0, 0x4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 bhi _08116014 cmp r3, 0x5 bls _08115FFA movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0811605E _08115FFA: ldr r0, _08116010 ldrb r1, [r4, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x2] lsrs r0, 1 b _081160F4 .align 2, 0 _0811600C: .4byte gLocalTime _08116010: .4byte gUnknown_083F8DF4 _08116014: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08116034 cmp r3, 0x6 bls _08116034 ldr r0, _08116030 ldrb r1, [r4, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x2] lsrs r0, 2 b _081160F4 .align 2, 0 _08116030: .4byte gUnknown_083F8DF4 _08116034: ldr r0, _08116044 ldrb r1, [r4, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x2] lsrs r0, 1 b _081160F4 .align 2, 0 _08116044: .4byte gUnknown_083F8DF4 _08116048: ldr r0, _08116064 ldrb r0, [r0, 0x2] subs r0, 0x4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bhi _0811607C movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _08116068 _0811605E: movs r0, 0x1 b _081160F4 .align 2, 0 _08116064: .4byte gLocalTime _08116068: ldr r0, _08116078 ldrb r1, [r4, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x2] lsrs r0, 1 b _081160F4 .align 2, 0 _08116078: .4byte gUnknown_083F8DF4 _0811607C: movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _081160B0 cmp r3, 0xC bls _0811609C ldr r0, _08116098 ldrb r1, [r4, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x2] lsrs r0, 1 b _081160F4 .align 2, 0 _08116098: .4byte gUnknown_083F8DF4 _0811609C: ldr r0, _081160AC ldrb r1, [r4, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x2] b _081160F4 .align 2, 0 _081160AC: .4byte gUnknown_083F8DF4 _081160B0: movs r0, 0x80 lsls r0, 8 ands r0, r1 cmp r0, 0 beq _081160E4 cmp r3, 0xC bls _081160D0 ldr r0, _081160CC ldrb r1, [r4, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x2] b _081160F4 .align 2, 0 _081160CC: .4byte gUnknown_083F8DF4 _081160D0: ldr r0, _081160E0 ldrb r1, [r4, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x1] b _081160F4 .align 2, 0 _081160E0: .4byte gUnknown_083F8DF4 _081160E4: ldr r0, _081160FC ldrb r1, [r4, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x1] lsls r0, 25 lsrs r0, 24 _081160F4: pop {r4} pop {r1} bx r1 .align 2, 0 _081160FC: .4byte gUnknown_083F8DF4 thumb_func_end sub_8115F58 thumb_func_start sub_8116100 sub_8116100: @ 8116100 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r4, 0 ldr r1, _08116188 mov r0, sp movs r2, 0x8 bl memcpy bl Random lsls r0, 16 lsrs r7, r0, 16 adds r0, r7, 0 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r6, r0, 16 ldr r3, _0811618C ldr r1, _08116190 mov r2, r9 lsls r0, r2, 2 add r0, r9 lsls r0, 3 adds r0, r1 ldrh r2, [r0, 0x14] adds r1, r3, 0 adds r1, 0x7C strb r2, [r1] adds r1, 0x3 strb r4, [r1] subs r1, 0x1 strb r4, [r1] subs r1, 0x1 strb r4, [r1] ldrh r0, [r0, 0x18] adds r1, r7, 0 bl sub_8115F58 adds r4, r0, 0 lsls r4, 24 lsrs r1, r4, 24 adds r0, r7, 0 bl __modsi3 lsrs r4, 25 subs r0, r4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08116194 ldrb r0, [r0, 0x2] lsls r0, 24 asrs r0, 24 movs r5, 0x1 cmp r0, 0xC bgt _08116180 movs r5, 0 _08116180: cmp r6, 0x4F bhi _08116198 lsls r0, r5, 25 b _081161A2 .align 2, 0 _08116188: .4byte gUnknown_083F8ECE _0811618C: .4byte 0x02019000 _08116190: .4byte gTasks _08116194: .4byte gLocalTime _08116198: lsls r1, r5, 24 asrs r1, 24 movs r0, 0x1 subs r0, r1 lsls r0, 25 _081161A2: lsrs r5, r0, 24 ldr r6, _081162D8 ldrb r0, [r6, 0x4] lsls r0, 30 mov r10, r0 lsrs r0, 25 ldr r1, _081162DC adds r0, r1 lsls r4, 24 asrs r4, 24 ldrh r0, [r0, 0x1A] adds r4, r0 adds r0, r6, 0 adds r0, 0x80 strh r4, [r0] lsls r4, 16 asrs r4, 16 adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _081161D4 ldr r1, _081162E0 bl __addsf3 _081161D4: ldr r1, _081162E4 bl __divsf3 bl __fixunssfsi lsls r0, 16 lsrs r4, r0, 16 lsls r0, r4, 1 adds r0, r4 mov r8, r0 adds r0, r6, 0 adds r0, 0x82 mov r2, r8 strh r2, [r0] adds r0, 0x2 strh r4, [r0] adds r0, 0x2 strh r4, [r0] movs r0, 0x1 ands r0, r7 lsls r1, r5, 24 asrs r1, 24 adds r0, r1 lsls r0, 1 add r0, sp movs r1, 0 ldrsh r4, [r0, r1] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _0811621A ldr r1, _081162E0 bl __addsf3 _0811621A: ldr r2, _081162E8 str r0, [r2] adds r7, r6, 0 adds r7, 0x8C mov r1, r10 lsrs r0, r1, 25 ldr r2, _081162DC adds r0, r2 movs r1, 0x18 ldrsh r4, [r0, r1] adds r0, r4, 0 bl __floatsisf adds r5, r0, 0 cmp r4, 0 bge _08116242 ldr r1, _081162E0 bl __addsf3 adds r5, r0, 0 _08116242: str r5, [r7] adds r7, r6, 0 adds r7, 0x90 ldr r1, _081162EC adds r0, r5, 0 bl __mulsf3 adds r1, r5, 0 bl __subsf3 adds r5, r0, 0 mov r2, r8 lsls r0, r2, 16 asrs r4, r0, 16 adds r0, r4, 0 bl __floatsisf adds r2, r0, 0 cmp r4, 0 bge _08116272 ldr r1, _081162E0 bl __addsf3 adds r2, r0, 0 _08116272: adds r0, r5, 0 adds r1, r2, 0 bl __divsf3 str r0, [r7] adds r1, r6, 0 adds r1, 0x94 ldr r0, _081162F0 str r0, [r1] adds r1, 0x8 ldr r0, _081162F4 str r0, [r1] adds r5, r6, 0 adds r5, 0x98 adds r0, r4, 0 bl __floatsisf adds r2, r0, 0 cmp r4, 0 bge _081162A2 ldr r1, _081162E0 bl __addsf3 adds r2, r0, 0 _081162A2: ldr r0, _081162F8 adds r1, r2, 0 bl __divsf3 bl __negsf2 str r0, [r5] adds r1, r6, 0 adds r1, 0xA0 ldr r0, _081162FC str r0, [r1] ldr r1, _08116300 mov r2, r9 lsls r0, r2, 2 add r0, r9 lsls r0, 3 adds r0, r1 ldr r1, _08116304 str r1, [r0] add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081162D8: .4byte 0x02019000 _081162DC: .4byte gUnknown_083F8DF4 _081162E0: .4byte 0x47800000 _081162E4: .4byte 0x40a00000 _081162E8: .4byte 0x02019088 _081162EC: .4byte 0x3f000000 _081162F0: .4byte 0x42880000 _081162F4: .4byte 0x00000000 _081162F8: .4byte 0x41000000 _081162FC: .4byte 0x42100000 _08116300: .4byte gTasks _08116304: .4byte sub_8116308 thumb_func_end sub_8116100 thumb_func_start sub_8116308 sub_8116308: @ 8116308 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r3, _08116368 ldrb r1, [r3, 0x3] movs r2, 0x80 orrs r1, r2 strb r1, [r3, 0x3] adds r2, r3, 0 adds r2, 0x7C adds r1, r3, 0 adds r1, 0x3C ldrb r2, [r2] adds r1, r2 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 ldr r2, _0811636C adds r1, r2 str r1, [r3, 0x38] ldr r2, _08116370 str r2, [r1, 0x1C] ldr r1, _08116374 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldrh r1, [r4, 0x14] adds r1, 0x1 strh r1, [r4, 0x14] ldrh r0, [r4, 0x18] adds r0, 0x1 strh r0, [r4, 0x18] movs r0, 0x6 subs r0, r1 lsls r0, 24 lsrs r0, 24 bl sub_81182F8 movs r0, 0x5C bl m4aSongNumStart ldr r0, _08116378 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _08116368: .4byte 0x02019000 _0811636C: .4byte gSprites _08116370: .4byte sub_81191F4 _08116374: .4byte gTasks _08116378: .4byte sub_811637C thumb_func_end sub_8116308 thumb_func_start sub_811637C sub_811637C: @ 811637C push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, _081163B0 adds r0, r4, 0 adds r0, 0x7D ldrb r0, [r0] cmp r0, 0 beq _08116464 ldrb r1, [r4, 0x3] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _081163B4 movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08116464 movs r0, 0x41 negs r0, r0 ands r0, r1 movs r1, 0x21 negs r1, r1 ands r0, r1 strb r0, [r4, 0x3] b _08116464 .align 2, 0 _081163B0: .4byte 0x02019000 _081163B4: ldr r2, _08116428 lsls r1, r5, 2 adds r0, r1, r5 lsls r0, 3 adds r6, r0, r2 movs r2, 0xA ldrsh r0, [r6, r2] adds r7, r1, 0 cmp r0, 0 bne _08116400 adds r0, r4, 0 adds r0, 0x7E ldrb r1, [r0] adds r0, r5, 0 bl sub_8116D54 lsls r0, 24 lsrs r0, 24 ldrb r1, [r4, 0x1A] lsls r1, 28 lsrs r1, 28 adds r2, r4, 0 adds r2, 0x1B adds r1, r2 ldrb r1, [r1] bl sub_8116E5C lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x12] cmp r0, 0x1 bne _08116400 adds r0, r4, 0 adds r0, 0xB8 movs r1, 0x80 lsls r1, 5 bl sub_8124CE8 _08116400: ldr r0, _08116428 adds r1, r7, r5 lsls r1, 3 adds r4, r1, r0 movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x3C bgt _08116430 ldr r0, _0811642C ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08116420 movs r0, 0x3C strh r0, [r4, 0xA] _08116420: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] b _08116464 .align 2, 0 _08116428: .4byte gTasks _0811642C: .4byte gMain _08116430: ldr r1, _0811646C ldrb r0, [r1, 0x1A] lsls r0, 28 lsrs r0, 28 adds r1, 0x1B adds r0, r1 ldrb r0, [r0] bl sub_8117158 ldrh r1, [r4, 0x20] lsls r1, 24 lsrs r1, 24 movs r0, 0 bl sub_8117AA8 ldrb r1, [r4, 0x14] subs r1, 0x1 lsls r1, 24 lsrs r1, 24 movs r0, 0 bl sub_8117C60 movs r0, 0x20 strh r0, [r4, 0xA] ldr r0, _08116470 str r0, [r4] _08116464: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811646C: .4byte 0x02019000 _08116470: .4byte sub_8116474 thumb_func_end sub_811637C thumb_func_start sub_8116474 sub_8116474: @ 8116474 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _081164C8 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0xA] subs r1, r0, 0x1 strh r1, [r4, 0xA] lsls r0, 16 cmp r0, 0 ble _081164DC lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x2 ble _081164A0 ldr r1, _081164CC ldrh r0, [r1] subs r0, 0x2 strh r0, [r1] _081164A0: ldr r1, _081164D0 ldrh r0, [r1, 0x26] subs r0, 0x4 strh r0, [r1, 0x26] lsls r0, 16 asrs r0, 16 cmp r0, 0x68 bne _08116504 ldr r2, _081164D4 adds r0, r1, 0 adds r0, 0x55 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _081164D8 str r1, [r0] b _08116504 .align 2, 0 _081164C8: .4byte gTasks _081164CC: .4byte gSpriteCoordOffsetX _081164D0: .4byte 0x02019000 _081164D4: .4byte gSprites _081164D8: .4byte sub_81184CC _081164DC: ldrh r0, [r4, 0x20] lsls r0, 24 lsrs r0, 24 bl sub_8117D68 movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _081164F2 movs r0, 0x79 b _081164F4 _081164F2: movs r0, 0x3D _081164F4: strh r0, [r4, 0xA] ldr r0, _0811650C lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _08116510 str r0, [r1] _08116504: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811650C: .4byte gTasks _08116510: .4byte sub_8116514 thumb_func_end sub_8116474 thumb_func_start sub_8116514 sub_8116514: @ 8116514 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _08116564 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0xA] subs r1, r0, 0x1 strh r1, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _08116584 movs r0, 0xA ldrsh r1, [r4, r0] adds r0, r1, 0 cmp r1, 0 bge _0811653E adds r0, 0xF _0811653E: asrs r0, 4 lsls r0, 4 subs r0, r1, r0 lsls r0, 16 asrs r0, 16 cmp r0, 0 beq _08116568 cmp r0, 0x8 bne _08116590 movs r0, 0 movs r1, 0xFF bl sub_8117AA8 movs r0, 0 movs r1, 0xFF bl sub_8117C60 b _08116590 .align 2, 0 _08116564: .4byte gTasks _08116568: ldrh r1, [r4, 0x20] lsls r1, 24 lsrs r1, 24 movs r0, 0 bl sub_8117AA8 ldrb r1, [r4, 0x14] subs r1, 0x1 lsls r1, 24 lsrs r1, 24 movs r0, 0 bl sub_8117C60 b _08116590 _08116584: ldr r1, _08116598 adds r0, r2, 0 movs r2, 0x1E movs r3, 0 bl sub_8116C34 _08116590: pop {r4} pop {r0} bx r0 .align 2, 0 _08116598: .4byte sub_8116638 thumb_func_end sub_8116514 thumb_func_start sub_811659C sub_811659C: @ 811659C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _081165F4 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 beq _08116600 cmp r0, 0 blt _08116600 cmp r0, 0x2 bgt _08116600 bl IsFanfareTaskInactive lsls r0, 24 cmp r0, 0 beq _08116624 movs r0, 0x1D bl sub_8053108 ldrh r1, [r4, 0x1E] adds r1, 0x1 strh r1, [r4, 0x1E] lsls r1, 16 asrs r1, 16 cmp r0, r1 bcs _081165E4 movs r0, 0x1E ldrsh r1, [r4, r0] movs r0, 0x1D bl sav12_xor_set _081165E4: ldr r1, _081165F8 ldr r2, _081165FC adds r0, r5, 0 movs r3, 0x3 bl sub_8116C34 b _08116624 .align 2, 0 _081165F4: .4byte gTasks _081165F8: .4byte sub_811677C _081165FC: .4byte 0x0000ffff _08116600: bl IsSEPlaying lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _08116624 ldr r1, _0811662C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 strh r2, [r0, 0x1E] ldr r1, _08116630 ldr r2, _08116634 adds r0, r5, 0 movs r3, 0x3 bl sub_8116C34 _08116624: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811662C: .4byte gTasks _08116630: .4byte sub_81167F4 _08116634: .4byte 0x0000ffff thumb_func_end sub_811659C thumb_func_start sub_8116638 sub_8116638: @ 8116638 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08116678 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0x12 ldrsh r1, [r0, r2] cmp r1, 0 beq _081166A8 cmp r1, 0 blt _081166A8 cmp r1, 0x2 bgt _081166A8 movs r1, 0xC ldrsh r0, [r0, r1] cmp r0, 0xC bne _08116684 ldr r0, _0811667C bl PlayFanfare movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow ldr r0, _08116680 b _0811669A .align 2, 0 _08116678: .4byte gTasks _0811667C: .4byte 0x00000185 _08116680: .4byte gUnknown_081C41A5 _08116684: movs r0, 0xC3 lsls r0, 1 bl PlayFanfare movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow ldr r0, _081166A4 _0811669A: movs r1, 0x1 movs r2, 0xF bl MenuPrint b _081166C4 .align 2, 0 _081166A4: .4byte gUnknown_081C4199 _081166A8: movs r0, 0x20 bl m4aSongNumStart movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow ldr r0, _081166DC movs r1, 0x1 movs r2, 0xF bl MenuPrint _081166C4: ldr r1, _081166E0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xA] ldr r1, _081166E4 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _081166DC: .4byte gUnknown_081C41AE _081166E0: .4byte gTasks _081166E4: .4byte sub_811659C thumb_func_end sub_8116638 thumb_func_start sub_81166E8 sub_81166E8: @ 81166E8 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _0811670C lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r1 movs r0, 0x16 ldrsh r5, [r4, r0] cmp r5, 0 beq _08116710 cmp r5, 0x3 beq _08116740 ldrh r0, [r4, 0x16] adds r0, 0x1 b _08116748 .align 2, 0 _0811670C: .4byte gTasks _08116710: ldrh r0, [r4, 0x22] adds r0, 0x1 strh r0, [r4, 0x22] movs r0, 0x15 bl m4aSongNumStart ldrh r0, [r4, 0x22] bl sub_81180F4 movs r2, 0x22 ldrsh r1, [r4, r2] ldr r0, _08116730 cmp r1, r0 ble _08116734 strh r5, [r4, 0xA] b _0811674A .align 2, 0 _08116730: .4byte 0x0000270e _08116734: ldrh r0, [r4, 0xA] subs r0, 0x1 strh r0, [r4, 0xA] ldrh r0, [r4, 0x16] adds r0, 0x1 b _08116748 _08116740: movs r0, 0x15 bl m4aSongNumStop movs r0, 0 _08116748: strh r0, [r4, 0x16] _0811674A: ldr r0, _08116770 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 movs r2, 0xA ldrsh r0, [r1, r2] cmp r0, 0 bne _08116768 ldr r1, _08116774 ldr r2, _08116778 adds r0, r6, 0 movs r3, 0x3 bl sub_8116C34 _08116768: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08116770: .4byte gTasks _08116774: .4byte sub_81167F4 _08116778: .4byte 0x0000ffff thumb_func_end sub_81166E8 thumb_func_start sub_811677C sub_811677C: @ 811677C push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r3, _081167DC ldr r6, _081167E0 ldrb r2, [r6, 0x19] ldr r1, _081167E4 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 movs r1, 0xC ldrsh r0, [r4, r1] adds r1, r2, 0 muls r1, r0 adds r0, r3, 0 movs r2, 0 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r5, _081167E8 ldr r1, _081167EC adds r0, r5, 0 bl StringExpandPlaceholders movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow adds r0, r5, 0 movs r1, 0x1 movs r2, 0xF bl MenuPrint ldrb r1, [r6, 0x19] movs r2, 0xC ldrsh r0, [r4, r2] muls r0, r1 movs r1, 0 strh r0, [r4, 0xA] strh r1, [r4, 0x16] ldr r0, _081167F0 str r0, [r4] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081167DC: .4byte gStringVar1 _081167E0: .4byte 0x02019000 _081167E4: .4byte gTasks _081167E8: .4byte gStringVar4 _081167EC: .4byte gUnknown_081C41BD _081167F0: .4byte sub_81166E8 thumb_func_end sub_811677C thumb_func_start sub_81167F4 sub_81167F4: @ 81167F4 push {r4-r6,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r4, _08116868 ldr r1, _0811686C adds r0, r4, 0 bl sub_8124D3C adds r3, r4, 0 adds r3, 0xB8 ldrb r2, [r3] movs r1, 0x7F adds r0, r1, 0 ands r0, r2 strb r0, [r3] subs r3, 0xC ldrb r2, [r3] adds r0, r1, 0 ands r0, r2 strb r0, [r3] adds r2, r4, 0 adds r2, 0xA0 ldrb r0, [r2] ands r1, r0 strb r1, [r2] ldr r6, _08116870 ldr r2, _08116874 ldr r0, _08116878 lsls r3, r5, 2 adds r3, r5 lsls r3, 3 adds r3, r0 movs r0, 0x20 ldrsh r1, [r3, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] adds r4, r0 subs r4, 0x75 ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldr r0, _0811687C str r0, [r3] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08116868: .4byte 0x020190b8 _0811686C: .4byte 0x0000ffff _08116870: .4byte gSprites _08116874: .4byte gUnknown_083F8C00 _08116878: .4byte gTasks _0811687C: .4byte sub_8116880 thumb_func_end sub_81167F4 thumb_func_start sub_8116880 sub_8116880: @ 8116880 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 ldr r1, _08116954 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 movs r2, 0 strh r5, [r0, 0x10] ldr r4, _08116958 ldrb r0, [r4, 0x1A] lsls r0, 28 lsrs r0, 28 adds r1, r4, 0 adds r1, 0x1B adds r0, r1 strb r2, [r0] movs r0, 0 bl sub_8117158 ldr r3, _0811695C adds r0, r4, 0 adds r0, 0x6C ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] adds r7, r3, 0 movs r0, 0x3C adds r0, r4 mov r10, r0 movs r1, 0x8 adds r1, r7 mov r8, r1 ldr r0, _08116960 mov r9, r0 ldr r1, _08116964 mov r12, r1 _081168E4: adds r0, r5, 0 adds r0, 0x29 add r0, r10 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, r0, r7 adds r2, r3, 0 adds r2, 0x40 add r0, r8 ldr r0, [r0] ldr r0, [r0] ldrh r1, [r0] ldrh r2, [r2] adds r1, r2 mov r0, r12 ands r1, r0 ldrh r2, [r3, 0x4] mov r0, r9 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _081168E4 ldr r0, _08116954 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r2, r1, r0 movs r1, 0x22 ldrsh r0, [r2, r1] ldrb r4, [r4, 0x19] cmp r0, r4 blt _081169BC movs r1, 0x14 ldrsh r0, [r2, r1] cmp r0, 0x6 bne _08116970 movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow ldr r0, _08116968 movs r1, 0x1 movs r2, 0xF bl MenuPrint ldr r1, _0811696C b _08116992 .align 2, 0 _08116954: .4byte gTasks _08116958: .4byte 0x02019000 _0811695C: .4byte gSprites _08116960: .4byte 0xfffffc00 _08116964: .4byte 0x000003ff _08116968: .4byte gUnknown_081C41F1 _0811696C: .4byte dp01t_12_3_battle_menu _08116970: movs r0, 0x22 ldrsh r1, [r2, r0] ldr r0, _081169A0 cmp r1, r0 bne _081169B0 movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow ldr r0, _081169A4 movs r1, 0x1 movs r2, 0xF bl MenuPrint ldr r1, _081169A8 _08116992: ldr r2, _081169AC adds r0, r6, 0 movs r3, 0x3 bl sub_8116C34 b _081169DE .align 2, 0 _081169A0: .4byte 0x0000270f _081169A4: .4byte gUnknown_081C4231 _081169A8: .4byte sub_8115734 _081169AC: .4byte 0x0000ffff _081169B0: ldr r0, _081169B8 str r0, [r2] b _081169DE .align 2, 0 _081169B8: .4byte sub_8115734 _081169BC: movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow ldr r0, _081169EC movs r1, 0x1 movs r2, 0xF bl MenuPrint ldr r1, _081169F0 adds r0, r6, 0 movs r2, 0x3C movs r3, 0x3 bl sub_8116C34 _081169DE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081169EC: .4byte gUnknown_081C41D2 _081169F0: .4byte sub_81157AC thumb_func_end sub_8116880 thumb_func_start dp01t_12_3_battle_menu dp01t_12_3_battle_menu: @ 81169F4 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r1, _08116A84 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 strh r4, [r0, 0x14] adds r0, r5, 0 bl sub_8116CAC bl sub_8116CF8 bl sub_81185E8 movs r0, 0 bl sub_8117158 movs r0, 0x6 bl sub_81182F8 ldr r7, _08116A88 ldr r3, _08116A8C movs r6, 0x5 negs r6, r6 _08116A2A: adds r0, r4, 0x7 adds r0, r3 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 adds r1, 0x3E ldrb r2, [r1] adds r0, r6, 0 ands r0, r2 strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xB bls _08116A2A ldr r1, _08116A84 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r2, r0, r1 movs r0, 0x22 ldrsh r1, [r2, r0] ldr r0, _08116A90 cmp r1, r0 bne _08116AA0 movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow ldr r0, _08116A94 movs r1, 0x1 movs r2, 0xF bl MenuPrint ldr r1, _08116A98 ldr r2, _08116A9C adds r0, r5, 0 movs r3, 0x3 bl sub_8116C34 b _08116AA4 .align 2, 0 _08116A84: .4byte gTasks _08116A88: .4byte gSprites _08116A8C: .4byte 0x0201903c _08116A90: .4byte 0x0000270f _08116A94: .4byte gUnknown_081C4231 _08116A98: .4byte sub_8115734 _08116A9C: .4byte 0x0000ffff _08116AA0: ldr r0, _08116AAC str r0, [r2] _08116AA4: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08116AAC: .4byte sub_8115734 thumb_func_end dp01t_12_3_battle_menu thumb_func_start sub_8116AB0 sub_8116AB0: @ 8116AB0 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r4, _08116AF0 ldr r1, _08116AF4 adds r0, r4, 0 bl sub_8124D3C adds r0, r4, 0 bl sub_8124918 ldr r1, _08116AF8 ldr r2, _08116AFC lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r2 ldrh r0, [r0, 0x22] ldr r2, _08116B00 adds r1, r2 strh r0, [r1] subs r4, 0xB8 lsls r0, 16 lsrs r0, 16 ldrb r4, [r4, 0x19] cmp r0, r4 bcs _08116B08 ldr r1, _08116B04 movs r0, 0x1 b _08116B0C .align 2, 0 _08116AF0: .4byte 0x020190b8 _08116AF4: .4byte 0x0000ffff _08116AF8: .4byte gSaveBlock1 _08116AFC: .4byte gTasks _08116B00: .4byte 0x00000494 _08116B04: .4byte gUnknown_0202E8CC _08116B08: ldr r1, _08116B34 movs r0, 0 _08116B0C: strh r0, [r1] movs r0, 0 str r0, [sp] movs r0, 0xFF movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginHardwarePaletteFade ldr r1, _08116B38 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _08116B3C str r1, [r0] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08116B34: .4byte gUnknown_0202E8CC _08116B38: .4byte gTasks _08116B3C: .4byte sub_8116B40 thumb_func_end sub_8116AB0 thumb_func_start sub_8116B40 sub_8116B40: @ 8116B40 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 bl UpdatePaletteFade lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08116B9E movs r0, 0 bl SetVBlankCallback ldr r0, _08116BA4 movs r2, 0xBE lsls r2, 1 movs r1, 0 bl memset ldr r1, _08116BA8 ldr r0, _08116BAC strh r4, [r0] strh r4, [r1] bl sub_80F9368 bl FreeAllSpritePalettes bl ResetPaletteFade bl ResetSpriteData bl sub_80F9020 ldr r0, _08116BB0 strh r4, [r0] adds r0, 0x2 strh r4, [r0] adds r0, 0x2 strh r4, [r0] ldr r1, _08116BB4 ldr r0, _08116BB8 str r0, [r1] ldr r0, _08116BBC bl SetMainCallback2 adds r0, r5, 0 bl DestroyTask _08116B9E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08116BA4: .4byte 0x02019000 _08116BA8: .4byte gSpriteCoordOffsetX _08116BAC: .4byte gSpriteCoordOffsetY _08116BB0: .4byte REG_BLDCNT _08116BB4: .4byte gUnknown_0300485C _08116BB8: .4byte sub_8080990 _08116BBC: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_8116B40 thumb_func_start sub_8116BC0 sub_8116BC0: @ 8116BC0 push {r4-r7,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r0, _08116C24 adds r7, r0, 0 adds r7, 0xA8 ldrh r1, [r7] adds r6, r0, 0 cmp r1, 0 beq _08116BE4 ldr r0, _08116C28 adds r2, r6, 0 adds r2, 0xAA ldrh r1, [r0, 0x2E] ldrh r0, [r2] ands r0, r1 cmp r0, 0 beq _08116C0E _08116BE4: ldr r1, _08116C2C lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 adds r5, r6, 0 adds r5, 0xAC ldr r1, [r5] str r1, [r0] adds r4, r6, 0 adds r4, 0xAA ldrh r0, [r4] cmp r0, 0 beq _08116C06 movs r0, 0x5 bl PlaySE _08116C06: movs r0, 0 str r0, [r5] strh r0, [r4] strh r0, [r7] _08116C0E: adds r2, r6, 0 adds r2, 0xA8 ldrh r1, [r2] ldr r0, _08116C30 cmp r1, r0 beq _08116C1E subs r0, r1, 0x1 strh r0, [r2] _08116C1E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08116C24: .4byte 0x02019000 _08116C28: .4byte gMain _08116C2C: .4byte gTasks _08116C30: .4byte 0x0000ffff thumb_func_end sub_8116BC0 thumb_func_start sub_8116C34 sub_8116C34: @ 8116C34 push {r4-r7,lr} adds r5, r1, 0 lsls r0, 24 lsrs r6, r0, 24 lsls r2, 16 lsrs r4, r2, 16 lsls r3, 16 lsrs r3, 16 ldr r0, _08116C84 mov r12, r0 mov r2, r12 adds r2, 0xB4 ldr r1, _08116C88 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r0, [r0] str r0, [r2] mov r2, r12 adds r7, r1, 0 cmp r5, 0 bne _08116C64 adds r5, r0, 0 _08116C64: adds r0, r2, 0 adds r0, 0xAC str r5, [r0] subs r0, 0x4 strh r4, [r0] ldr r0, _08116C8C cmp r4, r0 bne _08116C90 cmp r3, 0 bne _08116C90 adds r1, r2, 0 adds r1, 0xAA ldrh r0, [r1] orrs r4, r0 strh r4, [r1] b _08116C96 .align 2, 0 _08116C84: .4byte 0x02019000 _08116C88: .4byte gTasks _08116C8C: .4byte 0x0000ffff _08116C90: adds r0, r2, 0 adds r0, 0xAA strh r3, [r0] _08116C96: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r7 ldr r1, _08116CA8 str r1, [r0] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08116CA8: .4byte sub_8116BC0 thumb_func_end sub_8116C34 thumb_func_start sub_8116CAC sub_8116CAC: @ 8116CAC push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r2, 0 ldr r0, _08116CF0 strb r2, [r0] movs r1, 0 strb r1, [r0, 0x3] adds r3, r0, 0 ldr r6, _08116CF4 adds r4, r3, 0 adds r4, 0x1B _08116CC4: adds r0, r2, r4 strb r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x5 bls _08116CC4 ldrb r1, [r3, 0x1A] movs r0, 0x10 negs r0, r0 ands r0, r1 strb r0, [r3, 0x1A] lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r6 movs r1, 0 strh r1, [r0, 0xA] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08116CF0: .4byte 0x02019000 _08116CF4: .4byte gTasks thumb_func_end sub_8116CAC thumb_func_start sub_8116CF8 sub_8116CF8: @ 8116CF8 push {lr} ldr r1, _08116D48 movs r0, 0 str r0, [r1, 0x8] movs r2, 0 adds r1, 0xC movs r3, 0 _08116D06: adds r0, r2, r1 strb r3, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x5 bls _08116D06 movs r2, 0 ldr r3, _08116D4C movs r1, 0 _08116D1A: adds r0, r2, r3 strb r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _08116D1A movs r2, 0 ldr r3, _08116D50 movs r1, 0 _08116D2E: adds r0, r2, r3 strb r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bls _08116D2E movs r0, 0x1 movs r1, 0xFF bl sub_8117C60 pop {r0} bx r0 .align 2, 0 _08116D48: .4byte 0x02019000 _08116D4C: .4byte 0x02019012 _08116D50: .4byte 0x02019016 thumb_func_end sub_8116CF8 thumb_func_start sub_8116D54 sub_8116D54: @ 8116D54 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x1C lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r5, r1, 24 mov r1, sp ldr r0, _08116D88 ldm r0!, {r2,r4,r6} stm r1!, {r2,r4,r6} ldr r0, [r0] str r0, [r1] add r2, sp, 0x10 adds r1, r2, 0 ldr r0, _08116D8C ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} mov r9, r2 cmp r5, 0xB bls _08116D90 movs r0, 0 b _08116E38 .align 2, 0 _08116D88: .4byte gUnknown_083F8ED8 _08116D8C: .4byte gUnknown_083F8EE8 _08116D90: ldr r6, _08116E48 ldr r1, _08116E4C lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r7, 0x14 ldrsh r2, [r0, r7] adds r2, r6, r2 ldr r4, _08116E50 lsls r5, 3 adds r3, r5, r4 ldrb r1, [r3, 0x2] strb r1, [r2, 0xB] ldrb r1, [r3, 0x2] strh r1, [r0, 0x20] adds r0, r4, 0x4 adds r0, r5, r0 ldr r1, [r6, 0x8] ldr r0, [r0] orrs r1, r0 str r1, [r6, 0x8] movs r3, 0 mov r8, r4 mov r12, r5 adds r5, r0, 0 adds r4, r6, 0 adds r4, 0x12 _08116DC8: lsls r0, r3, 2 mov r1, sp adds r2, r1, r0 ldr r0, [r2] ands r0, r5 cmp r0, 0 beq _08116DDE adds r1, r3, r4 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _08116DDE: adds r0, r3, r4 ldrb r0, [r0] cmp r0, 0x2 bls _08116DEE ldr r0, [r6, 0x8] ldr r1, [r2] orrs r0, r1 str r0, [r6, 0x8] _08116DEE: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _08116DC8 movs r2, 0 ldr r0, _08116E54 add r0, r12 ldr r7, [r0] ldr r4, _08116E58 mov r5, r9 _08116E04: lsls r0, r2, 2 adds r3, r5, r0 ldr r0, [r3] ands r0, r7 cmp r0, 0 beq _08116E18 adds r1, r2, r4 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _08116E18: adds r0, r2, r4 ldrb r0, [r0] cmp r0, 0x3 bls _08116E28 ldr r0, [r6, 0x8] ldr r1, [r3] orrs r0, r1 str r0, [r6, 0x8] _08116E28: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bls _08116E04 mov r0, r12 add r0, r8 ldrb r0, [r0, 0x2] _08116E38: add sp, 0x1C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08116E48: .4byte 0x02019000 _08116E4C: .4byte gTasks _08116E50: .4byte gUnknown_083F8D90 _08116E54: .4byte gUnknown_083F8D94 _08116E58: .4byte 0x02019016 thumb_func_end sub_8116D54 thumb_func_start sub_8116E5C sub_8116E5C: @ 8116E5C push {lr} lsls r0, 24 lsls r1, 24 lsrs r2, r1, 24 lsrs r3, r0, 24 movs r1, 0xFF lsls r1, 24 adds r0, r1 lsrs r0, 24 cmp r0, 0x12 bhi _08116EF0 cmp r2, 0xF bhi _08116EEC lsls r0, r2, 2 ldr r1, _08116E80 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08116E80: .4byte _08116E84 .align 2, 0 _08116E84: .4byte _08116EC4 .4byte _08116EC8 .4byte _08116EC8 .4byte _08116EC8 .4byte _08116EC8 .4byte _08116EDC .4byte _08116EEC .4byte _08116EEC .4byte _08116EEC .4byte _08116EEC .4byte _08116EDC .4byte _08116EEC .4byte _08116EEC .4byte _08116EEC .4byte _08116EEC .4byte _08116EDC _08116EC4: movs r0, 0x3 b _08116EF2 _08116EC8: adds r0, r2, 0x5 cmp r3, r0 beq _08116EE8 adds r0, 0x5 cmp r3, r0 beq _08116EE8 adds r0, 0x5 cmp r3, r0 bne _08116EF0 b _08116EE8 _08116EDC: adds r0, r2, 0x1 cmp r3, r0 blt _08116EF0 adds r0, r2, 0x4 cmp r3, r0 bgt _08116EF0 _08116EE8: movs r0, 0x1 b _08116EF2 _08116EEC: cmp r3, r2 beq _08116EE8 _08116EF0: movs r0, 0 _08116EF2: pop {r1} bx r1 thumb_func_end sub_8116E5C thumb_func_start sub_8116EF8 sub_8116EF8: @ 8116EF8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 lsls r0, 24 lsrs r6, r0, 24 movs r0, 0 str r0, [sp, 0x18] cmp r6, 0xA beq _08116F1E cmp r6, 0xA bgt _08116F1A cmp r6, 0x5 beq _08116F1E b _08116F7C _08116F1A: cmp r6, 0xF bne _08116F7C _08116F1E: adds r0, r6, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r0, r6, 0x5 ldr r7, _08116F70 cmp r4, r0 bge _08116F5E adds r1, r7, 0 subs r1, 0xB8 ldr r3, _08116F74 ldr r5, [r1, 0x8] adds r6, r3, 0 adds r6, 0x8 adds r2, r0, 0 _08116F3A: lsls r0, r4, 2 adds r0, r4 lsls r1, r0, 2 adds r0, r1, r6 ldr r0, [r0] ands r0, r5 cmp r0, 0 bne _08116F54 adds r0, r1, r3 ldrh r0, [r0, 0x10] ldr r1, [sp, 0x18] orrs r1, r0 str r1, [sp, 0x18] _08116F54: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r2 blt _08116F3A _08116F5E: ldr r0, _08116F78 ldr r2, [sp, 0x18] ands r2, r0 str r2, [sp, 0x18] adds r0, r7, 0 adds r1, r2, 0 bl sub_8124CE8 b _0811713C .align 2, 0 _08116F70: .4byte 0x020190b8 _08116F74: .4byte gUnknown_083F8C00 _08116F78: .4byte 0x0000dfff _08116F7C: mov r0, sp ldr r1, _08116FC8 ldm r1!, {r2-r4} stm r0!, {r2-r4} ldm r1!, {r2-r4} stm r0!, {r2-r4} subs r0, r6, 0x1 lsls r0, 24 lsrs r0, 24 movs r3, 0x1 mov r10, r3 cmp r0, 0x3 bhi _08116F9A movs r4, 0x3 mov r10, r4 _08116F9A: adds r0, r6, 0 movs r1, 0x5 bl __udivsi3 lsls r0, 24 lsrs r0, 8 ldr r1, _08116FCC adds r0, r1 lsrs r7, r0, 16 adds r0, r6, 0 movs r1, 0x5 bl __umodsi3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _08116FF8 cmp r0, 0x2 bgt _08116FD4 cmp r0, 0x1 beq _08116FE4 ldr r4, _08116FD0 b _0811703A .align 2, 0 _08116FC8: .4byte gUnknown_083F8E9C _08116FCC: .4byte 0xffff0000 _08116FD0: .4byte 0x02019000 _08116FD4: cmp r0, 0x3 beq _0811700C cmp r0, 0x4 beq _08117020 ldr r4, _08116FE0 b _0811703A .align 2, 0 _08116FE0: .4byte 0x02019000 _08116FE4: ldr r3, _08116FF0 ldr r2, _08116FF4 adds r0, r2, 0 adds r0, 0x43 b _08117028 .align 2, 0 _08116FF0: .4byte gSprites _08116FF4: .4byte 0x02019000 _08116FF8: ldr r3, _08117004 ldr r2, _08117008 adds r0, r2, 0 adds r0, 0x44 b _08117028 .align 2, 0 _08117004: .4byte gSprites _08117008: .4byte 0x02019000 _0811700C: ldr r3, _08117018 ldr r2, _0811701C adds r0, r2, 0 adds r0, 0x45 b _08117028 .align 2, 0 _08117018: .4byte gSprites _0811701C: .4byte 0x02019000 _08117020: ldr r3, _08117088 ldr r2, _0811708C adds r0, r2, 0 adds r0, 0x46 _08117028: ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x5] lsrs r0, 4 lsls r7, r0, 4 adds r4, r2, 0 _0811703A: mov r2, r10 cmp r2, 0x1 bne _08117094 ldr r1, _08117090 lsls r2, r6, 2 adds r0, r2, r6 lsls r0, 2 adds r1, 0x8 adds r0, r1 ldr r1, [r4, 0x8] ldr r0, [r0] ands r1, r0 str r2, [sp, 0x1C] cmp r1, 0 bne _0811713C adds r0, r6, 0 movs r1, 0x5 bl __udivsi3 lsls r0, 24 lsrs r0, 24 subs r1, r0, 0x1 lsls r1, 3 mov r3, sp adds r2, r3, r1 ldrh r1, [r2, 0x2] adds r1, r7, r1 strh r1, [r2, 0x2] adds r1, r4, 0 adds r1, 0xB8 lsls r0, 3 subs r0, 0x8 adds r2, r3, r0 adds r0, r1, 0 movs r1, 0xD bl sub_812492C b _08117122 .align 2, 0 _08117088: .4byte gSprites _0811708C: .4byte 0x02019000 _08117090: .4byte gUnknown_083F8C00 _08117094: movs r4, 0 lsls r0, r6, 2 str r0, [sp, 0x1C] ldr r1, _0811714C mov r8, r1 ldr r2, _08117150 mov r9, r2 _081170A2: lsls r0, r4, 2 adds r0, r4 adds r0, r6, r0 adds r0, 0x5 lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r5, r0, 2 mov r0, r9 adds r0, 0x8 adds r0, r5, r0 mov r3, r8 ldr r1, [r3, 0x8] ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0811710E adds r0, r2, 0 movs r1, 0x5 bl __udivsi3 lsls r0, 24 lsrs r0, 24 subs r1, r0, 0x1 lsls r1, 3 mov r3, sp adds r2, r3, r1 ldrh r1, [r2, 0x2] adds r1, r7, r1 strh r1, [r2, 0x2] adds r1, r4, 0 adds r1, 0xD lsls r1, 24 lsrs r1, 24 lsls r0, 3 subs r0, 0x8 adds r2, r3, r0 mov r0, r8 adds r0, 0xB8 bl sub_812492C mov r0, r10 cmp r0, 0x3 bne _08117104 mov r1, r9 adds r0, r5, r1 ldrh r0, [r0, 0x10] str r0, [sp, 0x18] _08117104: mov r0, r10 subs r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r10, r0 _0811710E: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _081170A2 mov r2, r10 cmp r2, 0x2 beq _08117122 movs r3, 0 str r3, [sp, 0x18] _08117122: ldr r0, _08117154 ldr r2, _08117150 ldr r4, [sp, 0x1C] adds r1, r4, r6 lsls r1, 2 adds r1, r2 ldrh r1, [r1, 0x10] ldr r2, [sp, 0x18] orrs r2, r1 str r2, [sp, 0x18] adds r1, r2, 0 bl sub_8124CE8 _0811713C: add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811714C: .4byte 0x02019000 _08117150: .4byte gUnknown_083F8C00 _08117154: .4byte 0x020190b8 thumb_func_end sub_8116EF8 thumb_func_start sub_8117158 sub_8117158: @ 8117158 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 lsls r0, 24 lsrs r5, r0, 24 ldr r4, _0811719C movs r0, 0x1 strh r0, [r4, 0x2A] movs r0, 0 movs r1, 0 bl sub_8117AA8 ldr r0, _081171A0 ldr r1, _081171A4 adds r4, r1 movs r1, 0x10 str r1, [sp] movs r1, 0xD str r1, [sp, 0x4] adds r1, r4, 0 movs r2, 0xE movs r3, 0x7 bl sub_8124E2C cmp r5, 0xF bhi _08117250 lsls r0, r5, 2 ldr r1, _081171A8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0811719C: .4byte 0x02019000 _081171A0: .4byte gBG1TilemapBuffer _081171A4: .4byte 0xfffff800 _081171A8: .4byte _081171AC .align 2, 0 _081171AC: .4byte _08117360 .4byte _081171EC .4byte _081171EC .4byte _081171EC .4byte _081171EC .4byte _08117220 .4byte _08117250 .4byte _08117250 .4byte _08117250 .4byte _08117250 .4byte _08117220 .4byte _08117250 .4byte _08117250 .4byte _08117250 .4byte _08117250 .4byte _08117220 _081171EC: movs r0, 0x4 str r0, [sp, 0x18] add r1, sp, 0x8 movs r0, 0 strb r0, [r1] adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0x3 bhi _08117258 add r4, sp, 0x10 adds r3, r1, 0 _08117202: ldrb r2, [r3] adds r2, r4 ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 adds r0, r5, r0 strb r0, [r2] ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] ldrb r0, [r3] ldr r1, [sp, 0x18] cmp r0, r1 bcc _08117202 b _08117258 _08117220: movs r0, 0x5 str r0, [sp, 0x18] add r1, sp, 0x8 movs r0, 0 strb r0, [r1] adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0x4 bhi _08117258 add r3, sp, 0x10 adds r2, r1, 0 _08117236: ldrb r1, [r2] adds r1, r3 ldrb r0, [r2] adds r0, r5, r0 strb r0, [r1] ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] ldrb r0, [r2] ldr r1, [sp, 0x18] cmp r0, r1 bcc _08117236 b _08117258 _08117250: movs r0, 0x1 str r0, [sp, 0x18] add r0, sp, 0x10 strb r5, [r0] _08117258: add r1, sp, 0x8 movs r0, 0 strb r0, [r1] adds r0, r1, 0 ldrb r0, [r0] ldr r1, [sp, 0x18] cmp r0, r1 bcs _08117360 mov r0, sp adds r0, 0xE str r0, [sp, 0x1C] add r1, sp, 0x10 mov r9, r1 add r0, sp, 0x8 mov r12, r0 mov r1, sp adds r1, 0xA str r1, [sp, 0x20] _0811727C: mov r1, r12 ldrb r0, [r1] add r0, r9 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 ldr r1, _08117370 adds r0, r1 ldrb r0, [r0, 0x6] ldr r1, [sp, 0x1C] strb r0, [r1] mov r1, r12 ldrb r0, [r1] add r0, r9 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 ldr r1, _08117370 adds r0, r1 ldrb r0, [r0, 0x3] ldr r1, [sp, 0x20] strh r0, [r1] mov r4, sp adds r4, 0x9 movs r0, 0 strb r0, [r4] ldrb r0, [r4] cmp r0, 0x2 bhi _08117350 add r5, sp, 0xC ldr r7, [sp, 0x20] ldr r0, _08117374 mov r8, r0 ldr r6, [sp, 0x1C] ldr r1, _08117378 mov r10, r1 _081172C8: mov r1, r12 ldrb r0, [r1] add r0, r9 ldrb r0, [r0] lsls r1, r0, 2 adds r1, r0 lsls r1, 2 ldr r0, _08117370 adds r1, r0 adds r3, r4, 0 ldrb r0, [r4] ldrb r1, [r1, 0x4] adds r0, r1 lsls r0, 5 strh r0, [r5] ldrh r0, [r7] ldrh r2, [r5] adds r2, r0 lsls r2, 1 add r2, r8 ldrb r0, [r6] ldrb r1, [r4] adds r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 1 add r0, r10 ldrh r0, [r0] strh r0, [r2] ldrh r0, [r7] ldrh r2, [r5] adds r2, r0 adds r2, 0x1 lsls r2, 1 add r2, r8 ldrb r0, [r6] ldrb r1, [r4] adds r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 1 mov r1, r10 adds r1, 0x2 adds r0, r1 ldrh r0, [r0] strh r0, [r2] ldrh r0, [r7] ldrh r2, [r5] adds r2, r0 adds r2, 0x2 lsls r2, 1 add r2, r8 ldrb r0, [r6] ldrb r1, [r4] adds r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 1 ldr r1, _0811737C adds r0, r1 ldrh r0, [r0] strh r0, [r2] ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldrb r0, [r3] cmp r0, 0x2 bls _081172C8 _08117350: mov r1, r12 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldrb r0, [r1] ldr r1, [sp, 0x18] cmp r0, r1 bcc _0811727C _08117360: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08117370: .4byte gUnknown_083F8C00 _08117374: .4byte gBG1TilemapBuffer _08117378: .4byte 0x020189a0 _0811737C: .4byte 0x020189a4 thumb_func_end sub_8117158 thumb_func_start sub_8117380 sub_8117380: @ 8117380 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _081173B8 mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x13 bls _08117398 movs r4, 0 _08117398: ldr r3, _081173BC lsls r0, r4, 2 adds r0, r4 lsls r2, r0, 2 adds r0, r2, r3 ldrb r0, [r0, 0x1] lsls r0, 28 lsrs r0, 28 cmp r0, 0x4 beq _081173EC cmp r0, 0x4 bgt _081173C0 cmp r0, 0x3 beq _081173C6 b _08117428 .align 2, 0 _081173B8: .4byte gUnknown_083F8EF4 _081173BC: .4byte gUnknown_083F8C00 _081173C0: cmp r0, 0xC beq _0811740C b _08117428 _081173C6: adds r0, r4, 0 movs r1, 0x5 bl __udivsi3 subs r0, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _081173E8 adds r0, 0x16 adds r1, r4, r0 ldrb r0, [r1] cmp r0, 0x3 bhi _08117428 ldrb r0, [r1] adds r0, 0x1 b _08117402 .align 2, 0 _081173E8: .4byte 0x02019000 _081173EC: subs r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08117408 adds r0, 0x12 adds r1, r4, r0 ldrb r0, [r1] cmp r0, 0x2 bhi _08117428 ldrb r0, [r1] adds r0, 0x2 _08117402: add r0, sp ldrb r0, [r0] b _0811742A .align 2, 0 _08117408: .4byte 0x02019000 _0811740C: ldr r1, _08117424 adds r0, r3, 0 adds r0, 0x8 adds r0, r2, r0 ldr r1, [r1, 0x8] ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _08117428 mov r0, sp ldrb r0, [r0, 0x4] b _0811742A .align 2, 0 _08117424: .4byte 0x02019000 _08117428: movs r0, 0 _0811742A: add sp, 0x8 pop {r4} pop {r1} bx r1 thumb_func_end sub_8117380 thumb_func_start sub_8117434 sub_8117434: @ 8117434 push {r4-r6,lr} ldr r1, _081174AC ldr r4, _081174B0 ldrh r0, [r4, 0x2C] strh r0, [r1] adds r1, 0x2 ldrh r0, [r4, 0x2E] strh r0, [r1] adds r1, 0x2 ldrh r0, [r4, 0x30] strh r0, [r1] adds r1, 0x2 ldrh r0, [r4, 0x32] strh r0, [r1] movs r0, 0x2E ldrsh r2, [r4, r0] ldr r0, _081174B4 movs r3, 0 ldrsh r1, [r0, r3] adds r1, 0x50 adds r0, r2, 0 muls r0, r1 movs r2, 0xE8 lsls r2, 7 subs r2, r0 movs r6, 0x2C ldrsh r5, [r4, r6] ldr r0, _081174B8 movs r6, 0 ldrsh r3, [r0, r6] adds r3, 0x74 adds r0, r5, 0 muls r0, r3 subs r2, r0 movs r5, 0x32 ldrsh r0, [r4, r5] muls r0, r1 movs r1, 0xA8 lsls r1, 7 subs r1, r0 movs r6, 0x30 ldrsh r0, [r4, r6] muls r0, r3 subs r1, r0 ldr r0, _081174BC strh r2, [r0] adds r0, 0x2 ldr r3, _081174C0 ands r2, r3 asrs r2, 16 strh r2, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 ands r1, r3 asrs r1, 16 strh r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081174AC: .4byte REG_BG2PA _081174B0: .4byte 0x02019000 _081174B4: .4byte gSpriteCoordOffsetY _081174B8: .4byte gSpriteCoordOffsetX _081174BC: .4byte REG_BG2X_L _081174C0: .4byte 0x0fff0000 thumb_func_end sub_8117434 thumb_func_start sub_81174C4 sub_81174C4: @ 81174C4 push {lr} lsls r0, 16 asrs r0, 16 lsls r1, 16 asrs r1, 16 muls r0, r1 adds r1, r0, 0 cmp r0, 0 bge _081174D8 adds r1, 0xFF _081174D8: lsls r0, r1, 8 asrs r0, 16 pop {r1} bx r1 thumb_func_end sub_81174C4 thumb_func_start sub_81174E0 sub_81174E0: @ 81174E0 push {lr} adds r1, r0, 0 movs r0, 0x80 lsls r0, 9 lsls r1, 16 asrs r1, 16 bl __divsi3 lsls r0, 16 asrs r0, 16 pop {r1} bx r1 thumb_func_end sub_81174E0 thumb_func_start sub_81174F8 sub_81174F8: @ 81174F8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1 bl DisplayYesNoMenu ldr r0, _08117520 bl sub_814AAF8 ldr r1, _08117524 adds r0, r4, 0 bl sub_80F914C pop {r4} pop {r0} bx r0 .align 2, 0 _08117520: .4byte 0x00002d9e _08117524: .4byte gUnknown_083F8EB4 thumb_func_end sub_81174F8 thumb_func_start sub_8117528 sub_8117528: @ 8117528 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08117554 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0811754C movs r0, 0 bl SetVBlankCallback ldr r0, _08117558 bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _0811754C: pop {r4} pop {r0} bx r0 .align 2, 0 _08117554: .4byte gPaletteFade _08117558: .4byte sub_8115384 thumb_func_end sub_8117528 thumb_func_start sub_811755C sub_811755C: @ 811755C push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1A movs r3, 0xD bl MenuZeroFillWindowRect bl MenuZeroFillScreen movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r2, _081175B4 ldrb r1, [r2, 0x8] lsls r1, 26 lsrs r1, 26 ldrb r3, [r2, 0x4] movs r0, 0x40 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x4] bl UpdatePaletteFade ldr r1, _081175B8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _081175BC str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _081175B4: .4byte gPaletteFade _081175B8: .4byte gTasks _081175BC: .4byte sub_8117528 thumb_func_end sub_811755C thumb_func_start sub_81175C0 sub_81175C0: @ 81175C0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl MenuZeroFillScreen bl ScriptContext2_Disable adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 thumb_func_end sub_81175C0 thumb_func_start sub_81175DC sub_81175DC: @ 81175DC push {r4,lr} lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 ldr r1, _08117624 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x8] adds r2, r1, 0x1 strh r2, [r0, 0x8] ldr r0, _08117628 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _08117608 lsls r0, r2, 16 asrs r0, 16 cmp r0, 0x3C ble _0811761C _08117608: ldr r1, _0811762C movs r0, 0x1 strh r0, [r1] bl MenuZeroFillScreen bl ScriptContext2_Disable adds r0, r4, 0 bl DestroyTask _0811761C: pop {r4} pop {r0} bx r0 .align 2, 0 _08117624: .4byte gTasks _08117628: .4byte gMain _0811762C: .4byte gUnknown_0202E8CC thumb_func_end sub_81175DC thumb_func_start sub_8117630 sub_8117630: @ 8117630 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r2, _0811768C ldr r0, _08117690 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 lsrs r1, 7 lsls r1, 1 adds r0, r1 adds r0, r2 ldrb r1, [r0] ldr r0, _08117694 movs r2, 0x2 movs r3, 0x1 bl ConvertIntToDecimalStringN ldr r5, _08117698 ldr r1, _0811769C adds r0, r5, 0 bl StringExpandPlaceholders movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow adds r0, r5, 0 movs r1, 0x1 movs r2, 0xF bl MenuPrint ldr r1, _081176A0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _081176A4 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811768C: .4byte gUnknown_083F8DF0 _08117690: .4byte gUnknown_0202E8CC _08117694: .4byte gStringVar1 _08117698: .4byte gStringVar4 _0811769C: .4byte gUnknown_081C40DF _081176A0: .4byte gTasks _081176A4: .4byte sub_81174F8 thumb_func_end sub_8117630 thumb_func_start sub_81176A8 sub_81176A8: @ 81176A8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r7, r0, 24 ldr r0, _08117758 mov r10, r0 ldr r1, _0811775C lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r6, r0, r1 movs r0, 0x22 ldrsh r1, [r6, r0] mov r0, r10 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r5, _08117760 ldr r1, _08117764 adds r0, r5, 0 bl StringExpandPlaceholders movs r0, 0 movs r1, 0 movs r2, 0x9 movs r3, 0x3 bl MenuDrawTextWindow adds r0, r5, 0 movs r1, 0x9 movs r2, 0x1 bl sub_8072B4C ldr r2, _08117768 ldr r1, _0811776C mov r8, r1 ldrh r1, [r1] movs r0, 0x1 mov r9, r0 ands r0, r1 lsrs r1, 7 lsls r1, 1 adds r0, r1 adds r0, r2 ldrb r4, [r0] mov r0, r10 adds r1, r4, 0 movs r2, 0x2 movs r3, 0x1 bl ConvertIntToDecimalStringN movs r1, 0x22 ldrsh r0, [r6, r1] cmp r0, r4 blt _081177BC mov r0, r8 ldrh r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0811777C mov r0, r9 ands r0, r1 cmp r0, 0 beq _0811777C movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow ldr r0, _08117770 movs r1, 0x1 movs r2, 0xF bl MenuPrint ldr r1, _08117774 ldr r2, _08117778 adds r0, r7, 0 movs r3, 0x3 bl sub_8116C34 b _081177E4 .align 2, 0 _08117758: .4byte gStringVar1 _0811775C: .4byte gTasks _08117760: .4byte gStringVar4 _08117764: .4byte gOtherText_Coins _08117768: .4byte gUnknown_083F8DF0 _0811776C: .4byte gUnknown_0202E8CC _08117770: .4byte gUnknown_081C4139 _08117774: .4byte sub_8117630 _08117778: .4byte 0x0000ffff _0811777C: ldr r4, _081177AC ldr r1, _081177B0 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow adds r0, r4, 0 movs r1, 0x1 movs r2, 0xF bl MenuPrint ldr r1, _081177B4 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, _081177B8 str r1, [r0] b _081177E4 .align 2, 0 _081177AC: .4byte gStringVar4 _081177B0: .4byte gUnknown_081C40DF _081177B4: .4byte gTasks _081177B8: .4byte sub_81174F8 _081177BC: ldr r1, _081177F4 adds r0, r5, 0 bl StringExpandPlaceholders movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow adds r0, r5, 0 movs r1, 0x1 movs r2, 0xF bl MenuPrint ldr r0, _081177F8 str r0, [r6] movs r0, 0 strh r0, [r6, 0x22] strh r0, [r6, 0x8] _081177E4: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081177F4: .4byte gUnknown_081C411C _081177F8: .4byte sub_81175DC thumb_func_end sub_81176A8 thumb_func_start sub_81177FC sub_81177FC: @ 81177FC push {lr} bl ScriptContext2_Enable ldr r0, _08117828 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0811782C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _08117830 ldr r2, _08117834 adds r0, r2 ldrh r0, [r0] strh r0, [r1, 0x22] pop {r0} bx r0 .align 2, 0 _08117828: .4byte sub_81176A8 _0811782C: .4byte gTasks _08117830: .4byte gSaveBlock1 _08117834: .4byte 0x00000494 thumb_func_end sub_81177FC thumb_func_start sub_8117838 sub_8117838: @ 8117838 push {r4,lr} lsls r0, 24 cmp r0, 0 bne _08117884 bl FreeAllSpritePalettes ldr r0, _08117870 bl LoadSpritePalettes ldr r0, _08117874 ldr r4, _08117878 adds r1, r4, 0 bl LZ77UnCompWram ldr r0, _0811787C movs r2, 0xE0 lsls r2, 4 adds r1, r4, r2 bl LZ77UnCompWram ldr r0, _08117880 movs r1, 0x80 lsls r1, 5 adds r4, r1 adds r1, r4, 0 bl LZ77UnCompWram b _08117888 .align 2, 0 _08117870: .4byte gUnknown_083F9E30 _08117874: .4byte gUnknown_083F92A8 _08117878: .4byte 0x02017000 _0811787C: .4byte gUnknown_083F90FC _08117880: .4byte gUnknown_083F9D3C _08117884: bl FreeAllSpritePalettes _08117888: pop {r4} pop {r0} bx r0 thumb_func_end sub_8117838 thumb_func_start sub_8117890 sub_8117890: @ 8117890 push {r4-r6,lr} adds r4, r1, 0 adds r6, r2, 0 lsls r4, 24 lsrs r4, 24 ldr r1, [r0, 0x4] ldrb r3, [r1] movs r1, 0x74 movs r2, 0x50 bl CreateSprite lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r0, _081178F4 lsls r1, r5, 4 adds r1, r5 lsls r1, 2 adds r1, r0 ldrh r0, [r6] strh r0, [r1, 0x2E] strh r4, [r1, 0x30] adds r3, r1, 0 adds r3, 0x3E ldrb r0, [r3] movs r2, 0x2 orrs r0, r2 strb r0, [r3] adds r1, 0x2C ldrb r0, [r1] movs r2, 0x40 orrs r0, r2 movs r2, 0x80 orrs r0, r2 strb r0, [r1] ldrh r2, [r6] adds r0, r2, 0 adds r0, 0x1E strh r0, [r6] lsls r0, 16 ldr r1, _081178F8 cmp r0, r1 bls _081178EC ldr r1, _081178FC adds r0, r2, r1 strh r0, [r6] _081178EC: adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _081178F4: .4byte gSprites _081178F8: .4byte 0x01670000 _081178FC: .4byte 0xfffffeb6 thumb_func_end sub_8117890 thumb_func_start sub_8117900 sub_8117900: @ 8117900 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 ldr r4, _08117A50 ldr r0, [r4] ldr r5, _08117A54 adds r1, r5, 0 bl LZ77UnCompWram str r5, [sp] mov r6, sp ldrh r1, [r4, 0x6] lsls r1, 16 ldrh r0, [r4, 0x4] orrs r0, r1 str r0, [sp, 0x4] mov r0, sp bl LoadSpriteSheet ldr r4, _08117A58 ldr r0, [r4] adds r1, r5, 0 bl LZ77UnCompWram str r5, [sp] ldrh r0, [r4, 0x4] strh r0, [r6, 0x4] ldrh r0, [r4, 0x6] strh r0, [r6, 0x6] mov r0, sp bl LoadSpriteSheet movs r7, 0 ldr r0, _08117A5C adds r0, r5 mov r9, r0 ldr r0, _08117A60 mov r8, r0 _08117950: lsls r0, r7, 1 adds r0, r7 lsls r0, 27 lsrs r4, r0, 24 movs r6, 0 lsls r5, r7, 2 _0811795C: lsls r1, r6, 1 adds r1, r6 lsls r1, 3 ldr r0, _08117A64 adds r0, r1, r0 adds r1, 0x94 adds r2, r4, 0 adds r2, 0x5C movs r3, 0x1E bl CreateSprite adds r1, r6, 0 adds r1, 0x1D adds r1, r5, r1 add r1, r9 strb r0, [r1] lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] adds r0, r4, 0 adds r0, 0x18 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x47 bls _081179A0 movs r4, 0 _081179A0: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x3 bls _0811795C adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x2 bls _08117950 movs r7, 0 ldr r5, _08117A68 ldr r4, _08117A60 _081179BA: lsls r1, r7, 1 adds r1, r7 lsls r1, 3 ldr r0, _08117A6C adds r0, r1, r0 adds r1, 0x94 lsls r1, 16 asrs r1, 16 movs r2, 0x46 movs r3, 0x1E bl CreateSprite adds r1, r7, 0 adds r1, 0x29 adds r1, r5 strb r0, [r1] lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x3 bls _081179BA movs r7, 0 ldr r5, _08117A68 ldr r4, _08117A60 _08117A00: lsls r2, r7, 1 adds r2, r7 lsls r2, 3 ldr r0, _08117A70 adds r0, r2, r0 adds r2, 0x5C lsls r2, 16 asrs r2, 16 movs r1, 0x7E movs r3, 0x1E bl CreateSprite adds r1, r7, 0 adds r1, 0x2D adds r1, r5 strb r0, [r1] lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x2 bls _08117A00 add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08117A50: .4byte gUnknown_083F9F54 _08117A54: .4byte 0x02000000 _08117A58: .4byte gUnknown_083F9F5C _08117A5C: .4byte 0x0001903c _08117A60: .4byte gSprites _08117A64: .4byte gSpriteTemplate_83FA07C _08117A68: .4byte 0x0201903c _08117A6C: .4byte gSpriteTemplate_83F9FD4 _08117A70: .4byte gSpriteTemplate_83FA034 thumb_func_end sub_8117900 thumb_func_start unref_sub_8117A74 unref_sub_8117A74: @ 8117A74 push {r4,r5,lr} movs r4, 0 ldr r5, _08117AA0 _08117A7A: adds r0, r4, 0 adds r0, 0x1D adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08117AA4 adds r0, r1 bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xB bls _08117A7A pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08117AA0: .4byte 0x0201903c _08117AA4: .4byte gSprites thumb_func_end unref_sub_8117A74 thumb_func_start sub_8117AA8 sub_8117AA8: @ 8117AA8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 mov r8, r1 cmp r0, 0 beq _08117AF8 cmp r0, 0x1 bne _08117BA8 movs r3, 0 ldr r5, _08117AF0 ldr r4, _08117AF4 movs r2, 0x4 _08117ACA: adds r0, r3, 0 adds r0, 0x1D adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x12 bls _08117ACA b _08117BA8 .align 2, 0 _08117AF0: .4byte gSprites _08117AF4: .4byte 0x0201903c _08117AF8: movs r3, 0 ldr r0, _08117B48 mov r12, r0 ldr r7, _08117B4C movs r1, 0x4 add r1, r12 mov r9, r1 ldr r5, _08117B50 adds r4, r7, 0 adds r4, 0x3C movs r6, 0x5 negs r6, r6 _08117B10: lsls r2, r3, 3 mov r1, r9 adds r0, r2, r1 ldr r1, [r7, 0x8] ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08117B54 mov r1, r12 adds r0, r2, r1 ldrb r0, [r0, 0x2] cmp r0, r8 beq _08117B54 adds r0, r3, 0 adds r0, 0x1D adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _08117B6E .align 2, 0 _08117B48: .4byte gUnknown_083F8D90 _08117B4C: .4byte 0x02019000 _08117B50: .4byte gSprites _08117B54: adds r0, r3, 0 adds r0, 0x1D adds r0, r4 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r2, [r1] adds r0, r6, 0 ands r0, r2 strb r0, [r1] _08117B6E: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xB bls _08117B10 cmp r3, 0x12 bhi _08117BA8 ldr r6, _08117BB4 ldr r4, _08117BB8 movs r5, 0x5 negs r5, r5 _08117B84: adds r0, r3, 0 adds r0, 0x1D adds r0, r4 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 adds r1, 0x3E ldrb r2, [r1] adds r0, r5, 0 ands r0, r2 strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x12 bls _08117B84 _08117BA8: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08117BB4: .4byte gSprites _08117BB8: .4byte 0x0201903c thumb_func_end sub_8117AA8 thumb_func_start sub_8117BBC sub_8117BBC: @ 8117BBC push {r4-r7,lr} mov r7, r8 push {r7} movs r5, 0 ldr r0, _08117C50 mov r8, r0 ldr r4, _08117C54 movs r6, 0x4 _08117BCC: ldr r0, _08117C58 movs r1, 0x74 movs r2, 0x14 movs r3, 0xA bl CreateSprite adds r3, r5, 0 adds r3, 0x31 add r3, r8 strb r0, [r3] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] orrs r1, r6 strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x1 strh r1, [r0, 0x2E] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r4, 0 adds r1, 0x1C adds r0, r1 ldr r1, _08117C5C str r1, [r0] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0, 0x5] movs r7, 0xD negs r7, r7 adds r2, r7, 0 ands r1, r2 orrs r1, r6 strb r1, [r0, 0x5] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x8 bl StartSpriteAnim adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _08117BCC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08117C50: .4byte 0x0201903c _08117C54: .4byte gSprites _08117C58: .4byte gSpriteTemplate_83FA40C _08117C5C: .4byte sub_81184CC thumb_func_end sub_8117BBC thumb_func_start sub_8117C60 sub_8117C60: @ 8117C60 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsls r1, 24 lsrs r1, 24 mov r9, r1 movs r5, 0 cmp r0, 0 beq _08117CAC ldr r4, _08117CA4 ldr r3, _08117CA8 movs r2, 0x4 _08117C7E: adds r0, r5, 0 adds r0, 0x31 adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _08117C7E b _08117D58 .align 2, 0 _08117CA4: .4byte gSprites _08117CA8: .4byte 0x0201903c _08117CAC: ldr r0, _08117CEC mov r12, r0 ldr r6, _08117CF0 movs r0, 0x3C add r0, r12 mov r8, r0 ldr r7, _08117CF4 movs r0, 0x5 negs r0, r0 mov r10, r0 _08117CC0: mov r0, r12 adds r0, 0xC adds r4, r5, r0 ldrb r0, [r4] cmp r0, 0 beq _08117CD0 cmp r5, r9 bne _08117CF8 _08117CD0: adds r0, r5, 0 adds r0, 0x31 add r0, r8 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _08117D4E .align 2, 0 _08117CEC: .4byte 0x02019000 _08117CF0: .4byte gSprites _08117CF4: .4byte gUnknown_083F8C00 _08117CF8: adds r3, r5, 0 adds r3, 0x31 add r3, r8 ldrb r0, [r3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 adds r1, 0x3E ldrb r2, [r1] mov r0, r10 ands r0, r2 strb r0, [r1] ldrb r0, [r3] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r6 ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r7 ldrb r0, [r0, 0x3] adds r0, 0x1 lsls r0, 3 adds r0, 0x4 strh r0, [r2, 0x20] ldrb r0, [r3] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r6 ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r7 ldrb r0, [r0, 0x4] adds r0, 0x1 lsls r0, 3 adds r0, 0x3 strh r0, [r2, 0x22] _08117D4E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _08117CC0 _08117D58: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8117C60 thumb_func_start sub_8117D68 sub_8117D68: @ 8117D68 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _08117D98 ldr r2, _08117D90 ldr r0, _08117D94 adds r0, 0x6C ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _08117DE2 .align 2, 0 _08117D90: .4byte gSprites _08117D94: .4byte 0x02019000 _08117D98: ldr r4, _08117DE8 ldr r3, _08117DEC adds r3, 0x6C ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldrb r0, [r3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldr r0, _08117DF0 lsls r2, r5, 2 adds r2, r5 lsls r2, 2 adds r2, r0 ldrb r0, [r2, 0x3] adds r0, 0x2 lsls r0, 3 strh r0, [r1, 0x20] ldrb r0, [r3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r0, [r2, 0x4] adds r0, 0x2 lsls r0, 3 strh r0, [r1, 0x22] _08117DE2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08117DE8: .4byte gSprites _08117DEC: .4byte 0x02019000 _08117DF0: .4byte gUnknown_083F8C00 thumb_func_end sub_8117D68 thumb_func_start sub_8117DF4 sub_8117DF4: @ 8117DF4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC ldr r4, _08117E84 ldr r0, [r4] ldr r5, _08117E88 adds r1, r5, 0 bl LZ77UnCompWram str r5, [sp, 0x4] add r0, sp, 0x4 ldrh r2, [r4, 0x6] lsls r2, 16 ldrh r1, [r4, 0x4] orrs r1, r2 str r1, [r0, 0x4] bl LoadSpriteSheet movs r1, 0xF mov r0, sp strh r1, [r0] movs r0, 0 ldr r1, _08117E8C adds r1, r5 mov r8, r1 ldr r7, _08117E90 _08117E2A: movs r4, 0 adds r6, r0, 0x1 lsls r5, r0, 2 _08117E30: adds r1, r5, r4 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 ldr r1, _08117E94 adds r0, r1 movs r1, 0x28 mov r2, sp bl sub_8117890 adds r1, r4, 0x7 adds r1, r5, r1 add r1, r8 strb r0, [r1] lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 adds r1, 0x2C ldrb r0, [r1] movs r2, 0x40 orrs r0, r2 movs r2, 0x80 orrs r0, r2 strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _08117E30 lsls r0, r6, 24 lsrs r0, 24 cmp r0, 0x2 bls _08117E2A add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08117E84: .4byte gUnknown_083F9EE8 _08117E88: .4byte 0x02000000 _08117E8C: .4byte 0x0001903c _08117E90: .4byte gSprites _08117E94: .4byte gSpriteTemplate_83FA0DC thumb_func_end sub_8117DF4 thumb_func_start sub_8117E98 sub_8117E98: @ 8117E98 push {r4-r6,lr} adds r6, r0, 0 ldr r0, _08117F1C ldrh r1, [r6, 0x2E] ldrh r0, [r0, 0x24] adds r1, r0 lsls r1, 16 lsrs r4, r1, 16 asrs r1, 16 ldr r0, _08117F20 cmp r1, r0 ble _08117EB8 ldr r2, _08117F24 adds r0, r1, r2 lsls r0, 16 lsrs r4, r0, 16 _08117EB8: adds r0, r4, 0 bl Sin2 lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 bl Cos2 lsls r2, r5, 16 asrs r2, 16 movs r3, 0x30 ldrsh r1, [r6, r3] muls r1, r2 asrs r1, 12 strh r1, [r6, 0x24] lsls r0, 16 asrs r4, r0, 16 negs r1, r4 movs r3, 0x30 ldrsh r0, [r6, r3] muls r0, r1 asrs r0, 12 strh r0, [r6, 0x26] ldrb r0, [r6, 0x3] lsls r0, 26 lsrs r3, r0, 27 cmp r2, 0 bge _08117EF2 adds r2, 0xF _08117EF2: lsls r0, r2, 12 lsrs r5, r0, 16 ldr r1, _08117F28 lsls r0, r3, 3 adds r1, r0, r1 adds r0, r4, 0 cmp r0, 0 bge _08117F04 adds r0, 0xF _08117F04: asrs r0, 4 strh r0, [r1, 0x6] strh r0, [r1] strh r5, [r1, 0x2] lsls r0, r5, 16 asrs r0, 16 negs r0, r0 strh r0, [r1, 0x4] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08117F1C: .4byte 0x02019000 _08117F20: .4byte 0x00000167 _08117F24: .4byte 0xfffffe98 _08117F28: .4byte gOamMatrices thumb_func_end sub_8117E98 thumb_func_start sub_8117F2C sub_8117F2C: @ 8117F2C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r5, 0 ldr r7, _081180C8 mov r6, sp _08117F3A: ldr r0, _081180CC lsls r4, r5, 3 adds r4, r0 ldr r0, [r4] adds r1, r7, 0 bl LZ77UnCompWram str r7, [sp] ldrh r2, [r4, 0x4] ldr r0, _081180D0 ldr r1, [r6, 0x4] ands r1, r0 orrs r1, r2 str r1, [r6, 0x4] ldrh r2, [r4, 0x6] lsls r2, 16 ldr r0, _081180D4 ands r0, r1 orrs r0, r2 str r0, [r6, 0x4] mov r0, sp bl LoadSpriteSheet adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x4 bls _08117F3A ldr r0, _081180D8 movs r1, 0xD0 movs r2, 0x10 movs r3, 0x4 bl CreateSprite ldr r4, _081180DC adds r1, r4, 0 adds r1, 0x50 strb r0, [r1] ldr r3, _081180E0 ldrb r1, [r1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] movs r5, 0 adds r4, 0x3C adds r7, r3, 0 _08117FA2: lsls r1, r5, 19 movs r0, 0xC4 lsls r0, 16 adds r1, r0 asrs r1, 16 ldr r0, _081180E4 movs r2, 0x18 movs r3, 0 bl CreateSprite adds r3, r5, 0 adds r3, 0x15 adds r3, r4 strb r0, [r3] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 adds r0, 0x2C ldrb r1, [r0] movs r6, 0x40 orrs r1, r6 strb r1, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _08117FA2 ldr r0, _081180E8 movs r1, 0x78 movs r2, 0x44 movs r3, 0x4 bl CreateSprite ldr r3, _081180DC adds r1, r3, 0 adds r1, 0x55 strb r0, [r1] ldr r2, _081180E0 ldrb r1, [r1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x2C ldrb r1, [r0] orrs r1, r6 strb r1, [r0] movs r5, 0 adds r3, 0x3C mov r8, r3 adds r4, r2, 0 _08118020: lsls r1, r5, 20 movs r0, 0xC0 lsls r0, 16 adds r1, r0 asrs r1, 16 ldr r0, _081180EC movs r2, 0x24 movs r3, 0x4 bl CreateSprite adds r2, r5, 0 adds r2, 0x1A add r2, r8 strb r0, [r2] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] movs r7, 0x4 orrs r1, r7 strb r1, [r0] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x2C ldrb r1, [r0] movs r6, 0x40 orrs r1, r6 strb r1, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _08118020 ldr r0, _081180F0 movs r1, 0x98 movs r2, 0x60 movs r3, 0x9 bl CreateSprite ldr r3, _081180DC adds r3, 0x6C strb r0, [r3] ldr r4, _081180E0 ldrb r0, [r3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r7 strb r0, [r1, 0x5] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x2C ldrb r1, [r0] orrs r1, r6 strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] orrs r1, r7 strb r1, [r0] add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081180C8: .4byte 0x02000000 _081180CC: .4byte gUnknown_083FA21C _081180D0: .4byte 0xffff0000 _081180D4: .4byte 0x0000ffff _081180D8: .4byte gSpriteTemplate_83FA2B0 _081180DC: .4byte 0x02019000 _081180E0: .4byte gSprites _081180E4: .4byte gSpriteTemplate_83FA2C8 _081180E8: .4byte gSpriteTemplate_83FA2E0 _081180EC: .4byte gSpriteTemplate_83FA2F8 _081180F0: .4byte gSpriteTemplate_83FA310 thumb_func_end sub_8117F2C thumb_func_start sub_81180F4 sub_81180F4: @ 81180F4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 16 lsrs r7, r0, 16 movs r0, 0xFA lsls r0, 2 mov r8, r0 movs r4, 0 movs r6, 0 ldr r1, _081181D4 mov r9, r1 ldr r0, _081181D8 mov r10, r0 _08118114: adds r0, r7, 0 mov r1, r8 bl __udivsi3 lsls r0, 24 lsrs r5, r0, 24 adds r3, r6, 0 adds r3, 0x15 mov r0, r9 adds r0, 0x3C adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081181D8 adds r0, r1 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] adds r0, r3, 0 cmp r5, 0 bne _0811814E cmp r4, 0 bne _0811814E cmp r6, 0x3 bne _081181A2 _0811814E: mov r3, r9 adds r3, 0x3C adds r3, r0, r3 ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r10 adds r0, 0x3E ldrb r1, [r0] movs r4, 0x5 negs r4, r4 adds r2, r4, 0 ands r1, r2 strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 mov r1, r10 adds r3, r0, r1 adds r4, r3, 0 adds r4, 0x40 ldr r1, _081181DC adds r0, r1 ldr r0, [r0] ldr r1, [r0] lsls r0, r5, 2 adds r0, r1 ldrh r2, [r0] ldrh r4, [r4] adds r2, r4 ldr r4, _081181E0 adds r0, r4, 0 ands r2, r0 ldrh r0, [r3, 0x4] ldr r4, _081181E4 adds r1, r4, 0 ands r0, r1 orrs r0, r2 strh r0, [r3, 0x4] movs r4, 0x1 _081181A2: adds r0, r7, 0 mov r1, r8 bl __umodsi3 lsls r0, 16 lsrs r7, r0, 16 mov r0, r8 movs r1, 0xA bl __udivsi3 lsls r0, 16 lsrs r0, 16 mov r8, r0 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x3 bls _08118114 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081181D4: .4byte 0x02019000 _081181D8: .4byte gSprites _081181DC: .4byte gSprites + 0x8 _081181E0: .4byte 0x000003ff _081181E4: .4byte 0xfffffc00 thumb_func_end sub_81180F4 thumb_func_start sub_81181E8 sub_81181E8: @ 81181E8 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08118220 mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x13 bls _08118200 movs r4, 0 _08118200: ldr r3, _08118224 lsls r0, r4, 2 adds r0, r4 lsls r2, r0, 2 adds r0, r2, r3 ldrb r0, [r0, 0x1] lsls r0, 28 lsrs r0, 28 cmp r0, 0x4 beq _08118254 cmp r0, 0x4 bgt _08118228 cmp r0, 0x3 beq _0811822E b _08118290 .align 2, 0 _08118220: .4byte gUnknown_083FA608 _08118224: .4byte gUnknown_083F8C00 _08118228: cmp r0, 0xC beq _08118274 b _08118290 _0811822E: adds r0, r4, 0 movs r1, 0x5 bl __udivsi3 subs r0, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08118250 adds r0, 0x16 adds r1, r4, r0 ldrb r0, [r1] cmp r0, 0x3 bhi _08118290 ldrb r0, [r1] adds r0, 0x1 b _0811826A .align 2, 0 _08118250: .4byte 0x02019000 _08118254: subs r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08118270 adds r0, 0x12 adds r1, r4, r0 ldrb r0, [r1] cmp r0, 0x2 bhi _08118290 ldrb r0, [r1] adds r0, 0x2 _0811826A: add r0, sp ldrb r0, [r0] b _08118292 .align 2, 0 _08118270: .4byte 0x02019000 _08118274: ldr r1, _0811828C adds r0, r3, 0 adds r0, 0x8 adds r0, r2, r0 ldr r1, [r1, 0x8] ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _08118290 mov r0, sp ldrb r0, [r0, 0x4] b _08118292 .align 2, 0 _0811828C: .4byte 0x02019000 _08118290: movs r0, 0 _08118292: add sp, 0x8 pop {r4} pop {r1} bx r1 thumb_func_end sub_81181E8 thumb_func_start sub_811829C sub_811829C: @ 811829C push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _081182E8 adds r1, 0x55 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 ldr r2, _081182EC adds r4, r1, r2 bl sub_81181E8 adds r3, r4, 0 adds r3, 0x2B strb r0, [r3] adds r2, r4, 0 adds r2, 0x40 ldr r1, [r4, 0x8] ldrb r0, [r3] ldr r1, [r1] lsls r0, 2 adds r0, r1 ldrh r1, [r0] ldrh r2, [r2] adds r1, r2 ldr r2, _081182F0 adds r0, r2, 0 ands r1, r0 ldrh r2, [r4, 0x4] ldr r0, _081182F4 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] pop {r4} pop {r0} bx r0 .align 2, 0 _081182E8: .4byte 0x02019000 _081182EC: .4byte gSprites _081182F0: .4byte 0x000003ff _081182F4: .4byte 0xfffffc00 thumb_func_end sub_811829C thumb_func_start sub_81182F8 sub_81182F8: @ 81182F8 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r2, r0, 24 movs r5, 0 ldr r0, _08118320 ldrb r1, [r0, 0x19] adds r3, r0, 0 cmp r1, 0x1 bne _08118310 movs r5, 0x2 _08118310: cmp r2, 0x6 bls _08118316 b _08118464 _08118316: lsls r0, r2, 2 ldr r1, _08118324 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08118320: .4byte 0x02019000 _08118324: .4byte _08118328 .align 2, 0 _08118328: .4byte _08118464 .4byte _08118420 .4byte _081183F8 .4byte _081183EC .4byte _081183C4 .4byte _081183B8 .4byte _08118344 _08118344: movs r4, 0 ldr r5, _081183A8 ldr r0, _081183AC mov r8, r0 movs r2, 0x5 negs r2, r2 mov r12, r2 adds r6, r5, 0 adds r6, 0x8 ldr r7, _081183B0 _08118358: adds r3, r4, 0 adds r3, 0x1A add r3, r8 ldrb r0, [r3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r2, [r1] mov r0, r12 ands r0, r2 strb r0, [r1] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, r0, r5 adds r2, r3, 0 adds r2, 0x40 adds r0, r6 ldr r0, [r0] ldr r0, [r0] ldrh r1, [r0] ldrh r2, [r2] adds r1, r2 ldr r2, _081183B4 adds r0, r2, 0 ands r1, r0 ldrh r2, [r3, 0x4] adds r0, r7, 0 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _08118358 b _081184B2 .align 2, 0 _081183A8: .4byte gSprites _081183AC: .4byte 0x0201903c _081183B0: .4byte 0xfffffc00 _081183B4: .4byte 0x000003ff _081183B8: ldr r2, _081183C0 adds r0, r3, 0 adds r0, 0x58 b _08118426 .align 2, 0 _081183C0: .4byte gSprites _081183C4: ldr r2, _081183E8 adds r0, r3, 0 adds r0, 0x58 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, r0, r2 adds r4, r3, 0 adds r4, 0x40 adds r2, 0x8 adds r0, r2 ldr r0, [r0] ldr r1, [r0] lsls r0, r5, 2 adds r0, r1 ldrh r1, [r0, 0x8] b _08118442 .align 2, 0 _081183E8: .4byte gSprites _081183EC: ldr r2, _081183F4 adds r0, r3, 0 adds r0, 0x57 b _08118426 .align 2, 0 _081183F4: .4byte gSprites _081183F8: ldr r2, _0811841C adds r0, r3, 0 adds r0, 0x57 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, r0, r2 adds r4, r3, 0 adds r4, 0x40 adds r2, 0x8 adds r0, r2 ldr r0, [r0] ldr r1, [r0] lsls r0, r5, 2 adds r0, r1 ldrh r1, [r0, 0x8] b _08118442 .align 2, 0 _0811841C: .4byte gSprites _08118420: ldr r2, _08118458 adds r0, r3, 0 adds r0, 0x56 _08118426: ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, r0, r2 adds r4, r3, 0 adds r4, 0x40 adds r2, 0x8 adds r0, r2 ldr r0, [r0] ldr r1, [r0] lsls r0, r5, 2 adds r0, r1 ldrh r1, [r0, 0x4] _08118442: ldrh r4, [r4] adds r1, r4 ldr r2, _0811845C adds r0, r2, 0 ands r1, r0 ldrh r2, [r3, 0x4] ldr r0, _08118460 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] b _081184B2 .align 2, 0 _08118458: .4byte gSprites _0811845C: .4byte 0x000003ff _08118460: .4byte 0xfffffc00 _08118464: movs r4, 0 lsls r6, r5, 2 ldr r5, _081184BC ldr r0, _081184C0 mov r8, r0 adds r7, r5, 0 adds r7, 0x8 ldr r2, _081184C4 mov r12, r2 _08118476: adds r0, r4, 0 adds r0, 0x1A add r0, r8 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, r0, r5 adds r2, r3, 0 adds r2, 0x40 adds r0, r7 ldr r0, [r0] ldr r0, [r0] adds r0, r6, r0 ldrh r1, [r0, 0x8] ldrh r2, [r2] adds r1, r2 ldr r2, _081184C8 adds r0, r2, 0 ands r1, r0 ldrh r2, [r3, 0x4] mov r0, r12 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _08118476 _081184B2: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081184BC: .4byte gSprites _081184C0: .4byte 0x0201903c _081184C4: .4byte 0xfffffc00 _081184C8: .4byte 0x000003ff thumb_func_end sub_81182F8 thumb_func_start sub_81184CC sub_81184CC: @ 81184CC ldr r1, _081184D4 ldrh r1, [r1, 0x26] strh r1, [r0, 0x24] bx lr .align 2, 0 _081184D4: .4byte 0x02019000 thumb_func_end sub_81184CC thumb_func_start sub_81184D8 sub_81184D8: @ 81184D8 push {r4,r5,lr} sub sp, 0x8 ldr r4, _08118544 ldr r0, [r4] ldr r5, _08118548 adds r1, r5, 0 bl LZ77UnCompWram str r5, [sp] ldrh r1, [r4, 0x6] lsls r1, 16 ldrh r0, [r4, 0x4] orrs r0, r1 str r0, [sp, 0x4] mov r0, sp bl LoadSpriteSheet ldr r0, _0811854C movs r1, 0x74 movs r2, 0x50 movs r3, 0x51 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, _08118550 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r0, 0xC8 lsls r0, 9 adds r5, r0 ldrh r0, [r5, 0x24] movs r2, 0 strh r0, [r1, 0x2E] strh r2, [r1, 0x30] adds r3, r1, 0 adds r3, 0x2C ldrb r0, [r3] movs r2, 0x40 orrs r0, r2 movs r2, 0x80 orrs r0, r2 strb r0, [r3] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x2 orrs r0, r2 strb r0, [r1] add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08118544: .4byte gUnknown_083FA42C _08118548: .4byte 0x02000000 _0811854C: .4byte gSpriteTemplate_83FA434 _08118550: .4byte gSprites thumb_func_end sub_81184D8 thumb_func_start sub_8118554 sub_8118554: @ 8118554 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 ldr r1, _08118574 lsls r0, 3 adds r0, r1 ldr r2, _08118578 ldrh r1, [r2, 0x2C] strh r1, [r0, 0x6] ldrh r1, [r2, 0x2C] strh r1, [r0] ldrh r1, [r2, 0x2E] strh r1, [r0, 0x2] ldrh r1, [r2, 0x30] strh r1, [r0, 0x4] bx lr .align 2, 0 _08118574: .4byte gOamMatrices _08118578: .4byte 0x02019000 thumb_func_end sub_8118554 thumb_func_start sub_811857C sub_811857C: @ 811857C push {r4-r6,lr} movs r4, 0 ldr r6, _081185DC ldr r5, _081185E0 _08118584: movs r3, 0x39 subs r3, r4 lsls r3, 24 lsrs r3, 24 ldr r0, _081185E4 movs r1, 0x74 movs r2, 0x50 bl CreateSprite adds r3, r4, r6 strb r0, [r3] lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _081185CA ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x2 orrs r1, r2 strb r1, [r0] _081185CA: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _08118584 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081185DC: .4byte 0x0201903c _081185E0: .4byte gSprites _081185E4: .4byte gSpriteTemplate_83FA40C thumb_func_end sub_811857C thumb_func_start sub_81185E8 sub_81185E8: @ 81185E8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _08118660 adds r0, 0x3C ldrb r5, [r0] movs r6, 0 ldr r7, _08118664 movs r0, 0x1C adds r0, r7 mov r10, r0 movs r1, 0x2E adds r1, r7 mov r9, r1 mov r8, r6 _0811860A: lsls r4, r5, 4 adds r4, r5 lsls r4, 2 adds r0, r4, r7 adds r3, r0, 0 adds r3, 0x3E ldrb r1, [r3] movs r2, 0x4 orrs r1, r2 strb r1, [r3] mov r1, r10 adds r2, r4, r1 ldr r1, _08118668 str r1, [r2] movs r1, 0 bl StartSpriteAnim movs r1, 0 adds r2, r5, 0x1 adds r3, r6, 0x1 _08118632: lsls r0, r1, 1 adds r0, r4 add r0, r9 mov r5, r8 strh r5, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x7 bls _08118632 lsls r0, r2, 24 lsrs r5, r0, 24 lsls r0, r3, 24 lsrs r6, r0, 24 cmp r6, 0x5 bls _0811860A pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08118660: .4byte 0x02019000 _08118664: .4byte gSprites _08118668: .4byte SpriteCallbackDummy thumb_func_end sub_81185E8 thumb_func_start sub_811866C sub_811866C: @ 811866C push {r4,r5,lr} adds r3, r0, 0 ldr r0, _0811869C ldrh r4, [r0, 0x24] movs r2, 0x24 ldrsh r1, [r0, r2] ldrh r2, [r3, 0x34] movs r5, 0x34 ldrsh r0, [r3, r5] cmp r1, r0 ble _081186A8 movs r1, 0xB4 lsls r1, 1 adds r0, r2, r1 subs r2, r0, r4 strh r2, [r3, 0x3A] lsls r1, r2, 16 ldr r0, _081186A0 cmp r1, r0 ble _081186AC ldr r5, _081186A4 adds r0, r2, r5 b _081186AA .align 2, 0 _0811869C: .4byte 0x02019000 _081186A0: .4byte 0x01670000 _081186A4: .4byte 0xfffffe98 _081186A8: subs r0, r2, r4 _081186AA: strh r0, [r3, 0x3A] _081186AC: movs r1, 0x3A ldrsh r0, [r3, r1] pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_811866C thumb_func_start sub_81186B8 sub_81186B8: @ 81186B8 push {r4,lr} bl sub_811866C ldr r4, _081186E0 lsls r0, 16 asrs r0, 16 bl __floatsisf ldr r1, _081186E4 bl __divsf3 bl __fixunssfsi adds r4, 0x7E strb r0, [r4] ldrb r0, [r4] pop {r4} pop {r1} bx r1 .align 2, 0 _081186E0: .4byte 0x02019000 _081186E4: .4byte 0x41f00000 thumb_func_end sub_81186B8 thumb_func_start sub_81186E8 sub_81186E8: @ 81186E8 push {r4,lr} adds r4, r0, 0 bl sub_811866C lsls r0, 16 asrs r0, 16 movs r1, 0x1E bl __modsi3 lsls r0, 16 asrs r1, r0, 16 cmp r1, 0xE bne _08118708 movs r0, 0 strh r0, [r4, 0x32] b _0811871E _08118708: cmp r1, 0xD bgt _08118710 movs r0, 0xE b _08118712 _08118710: movs r0, 0x2B _08118712: subs r0, r1 lsls r0, 16 lsrs r0, 16 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 _0811871E: pop {r4} pop {r1} bx r1 thumb_func_end sub_81186E8 thumb_func_start sub_8118724 sub_8118724: @ 8118724 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 ldr r5, _08118770 adds r4, r5, 0 adds r4, 0x8C adds r1, r5, 0 adds r1, 0x90 ldr r0, [r4] ldr r1, [r1] bl __addsf3 adds r1, r0, 0 str r1, [r4] movs r0, 0x88 adds r0, r5 mov r8, r0 ldr r0, [r0] bl __addsf3 adds r4, r0, 0 mov r1, r8 str r4, [r1] ldr r7, _08118774 adds r1, r7, 0 bl __gesf2 cmp r0, 0 blt _08118778 adds r0, r4, 0 adds r1, r7, 0 bl __subsf3 mov r2, r8 str r0, [r2] b _08118790 .align 2, 0 _08118770: .4byte 0x02019000 _08118774: .4byte 0x43b40000 _08118778: ldr r1, _08118824 adds r0, r4, 0 bl __ltsf2 cmp r0, 0 bge _08118790 adds r0, r4, 0 adds r1, r7, 0 bl __addsf3 mov r1, r8 str r0, [r1] _08118790: adds r0, r5, 0 adds r0, 0x88 ldr r0, [r0] bl __fixsfsi strh r0, [r6, 0x34] adds r4, r5, 0 adds r4, 0x98 adds r1, r5, 0 adds r1, 0x9C ldr r0, [r4] ldr r1, [r1] bl __addsf3 adds r1, r0, 0 str r1, [r4] subs r4, 0x4 ldr r0, [r4] bl __addsf3 str r0, [r4] bl __fixsfsi strh r0, [r6, 0x36] ldrh r0, [r6, 0x34] bl Sin2 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrh r0, [r6, 0x34] bl Cos2 lsls r4, 16 asrs r4, 16 movs r2, 0x36 ldrsh r1, [r6, r2] muls r1, r4 asrs r1, 12 strh r1, [r6, 0x24] lsls r0, 16 asrs r0, 16 negs r0, r0 movs r2, 0x36 ldrsh r1, [r6, r2] muls r0, r1 asrs r0, 12 strh r0, [r6, 0x26] bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _08118818 ldr r0, _08118828 ldr r4, _0811882C ldrh r2, [r6, 0x24] lsls r2, 24 asrs r2, 24 adds r1, r4, 0 bl m4aMPlayPanpotControl ldr r0, _08118830 ldrh r2, [r6, 0x24] lsls r2, 24 asrs r2, 24 adds r1, r4, 0 bl m4aMPlayPanpotControl _08118818: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08118824: .4byte 0x00000000 _08118828: .4byte gMPlay_SE1 _0811882C: .4byte 0x0000ffff _08118830: .4byte gMPlay_SE2 thumb_func_end sub_8118724 thumb_func_start sub_8118834 sub_8118834: @ 8118834 push {r4,r5,lr} adds r5, r0, 0 ldr r1, _0811888C ldrh r0, [r5, 0x3A] ldrh r1, [r1, 0x24] adds r2, r0, r1 strh r2, [r5, 0x34] lsls r1, r2, 16 ldr r0, _08118890 cmp r1, r0 ble _08118850 ldr r1, _08118894 adds r0, r2, r1 strh r0, [r5, 0x34] _08118850: ldrh r0, [r5, 0x34] bl Sin2 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrh r0, [r5, 0x34] bl Cos2 lsls r4, 16 asrs r4, 16 movs r2, 0x36 ldrsh r1, [r5, r2] muls r1, r4 asrs r1, 12 strh r1, [r5, 0x24] lsls r0, 16 asrs r0, 16 negs r0, r0 movs r2, 0x36 ldrsh r1, [r5, r2] muls r0, r1 ldr r1, _08118898 asrs r0, 12 ldrh r1, [r1] adds r0, r1 strh r0, [r5, 0x26] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811888C: .4byte 0x02019000 _08118890: .4byte 0x01670000 _08118894: .4byte 0xfffffe98 _08118898: .4byte gSpriteCoordOffsetY thumb_func_end sub_8118834 thumb_func_start sub_811889C sub_811889C: @ 811889C push {r4-r6,lr} adds r5, r0, 0 bl sub_8118724 ldrh r0, [r5, 0x32] adds r0, 0x1 strh r0, [r5, 0x32] ldrh r0, [r5, 0x36] adds r0, 0x84 lsls r0, 16 lsrs r0, 16 cmp r0, 0xD4 bls _081188C2 adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 b _081188CE _081188C2: adds r2, r5, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 _081188CE: strb r0, [r2] movs r1, 0x32 ldrsh r0, [r5, r1] cmp r0, 0x1D ble _0811898E movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 bne _08118908 ldr r6, _08118900 adds r4, r6, 0 adds r4, 0x94 adds r0, r6, 0 adds r0, 0xA0 ldr r0, [r0] ldr r1, _08118904 bl __subsf3 adds r1, r0, 0 ldr r0, [r4] bl __lesf2 cmp r0, 0 bgt _0811898E b _08118926 .align 2, 0 _08118900: .4byte 0x02019000 _08118904: .4byte 0x40000000 _08118908: ldr r6, _08118994 adds r4, r6, 0 adds r4, 0x94 adds r0, r6, 0 adds r0, 0xA0 ldr r0, [r0] ldr r1, _08118998 bl __subsf3 adds r1, r0, 0 ldr r0, [r4] bl __gesf2 cmp r0, 0 blt _0811898E _08118926: adds r1, r6, 0 adds r1, 0x7D movs r0, 0xFF strb r0, [r1] ldrb r1, [r6, 0x3] movs r0, 0x7F ands r0, r1 strb r0, [r6, 0x3] adds r0, r5, 0 adds r0, 0x2B ldrb r1, [r0] adds r1, 0x3 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl StartSpriteAnim adds r0, r5, 0 bl sub_81186B8 movs r0, 0x1E strh r0, [r5, 0x36] adds r0, r5, 0 bl sub_811866C movs r1, 0x3A ldrsh r0, [r5, r1] movs r1, 0x1E bl __divsi3 lsls r0, 16 asrs r0, 16 lsls r1, r0, 4 subs r1, r0 lsls r1, 1 adds r1, 0xF strh r1, [r5, 0x3A] ldr r0, _0811899C str r0, [r5, 0x1C] movs r0, 0x47 bl m4aSongNumStartOrChange adds r2, r6, 0 adds r2, 0x9C adds r1, r6, 0 adds r1, 0x98 ldr r0, _081189A0 str r0, [r1] str r0, [r2] subs r1, 0xC ldr r0, _081189A4 str r0, [r1] _0811898E: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08118994: .4byte 0x02019000 _08118998: .4byte 0x40000000 _0811899C: .4byte sub_8118834 _081189A0: .4byte 0x00000000 _081189A4: .4byte 0xbf800000 thumb_func_end sub_811889C thumb_func_start sub_81189A8 sub_81189A8: @ 81189A8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r7, r0, 0 bl sub_8118724 movs r1, 0x34 ldrsh r0, [r7, r1] cmp r0, 0 beq _081189C6 cmp r0, 0xB4 beq _08118A2C b _08118B0C _081189C6: movs r1, 0x2E ldrsh r0, [r7, r1] cmp r0, 0x1 bne _081189D0 b _08118B0C _081189D0: movs r1, 0x3C ldrsh r0, [r7, r1] bl __floatsisf mov r8, r0 ldr r0, _08118A24 mov r9, r0 ldr r1, _08118A28 mov r10, r1 ldrb r4, [r1, 0x4] lsls r4, 30 lsrs r0, r4, 25 add r0, r9 ldrb r0, [r0, 0x1] bl __floatsisf adds r1, r0, 0 mov r0, r8 bl __mulsf3 adds r6, r0, 0 lsrs r0, r4, 25 add r0, r9 ldrb r0, [r0, 0x2] subs r0, 0x1 bl __floatsisf adds r1, r0, 0 adds r0, r6, 0 bl __addsf3 adds r5, r0, 0 lsrs r4, 25 add r4, r9 ldrh r0, [r4, 0xC] bl __floatsisf adds r1, r0, 0 mov r0, r8 bl __divsf3 b _08118A8A .align 2, 0 _08118A24: .4byte gUnknown_083F8DF4 _08118A28: .4byte 0x02019000 _08118A2C: movs r1, 0x2E ldrsh r0, [r7, r1] cmp r0, 0 beq _08118B0C movs r1, 0x3C ldrsh r0, [r7, r1] bl __floatsisf mov r8, r0 ldr r0, _08118B1C mov r9, r0 ldr r1, _08118B20 mov r10, r1 ldrb r4, [r1, 0x4] lsls r4, 30 lsrs r0, r4, 25 add r0, r9 ldrb r0, [r0, 0x1] bl __floatsisf adds r1, r0, 0 mov r0, r8 bl __mulsf3 adds r6, r0, 0 lsrs r0, r4, 25 add r0, r9 ldrb r0, [r0, 0x2] subs r0, 0x1 bl __floatsisf adds r1, r0, 0 adds r0, r6, 0 bl __addsf3 adds r5, r0, 0 lsrs r4, 25 add r4, r9 ldrh r0, [r4, 0xC] bl __floatsisf adds r1, r0, 0 mov r0, r8 bl __divsf3 bl __negsf2 _08118A8A: adds r2, r0, 0 mov r6, r10 adds r1, r6, 0 adds r1, 0xA0 adds r0, r6, 0 adds r0, 0x94 ldr r0, [r0] str r0, [r1] adds r0, r6, 0 adds r0, 0x98 str r2, [r0] movs r0, 0x9C adds r0, r6 mov r8, r0 adds r0, r2, 0 adds r1, r2, 0 bl __addsf3 adds r1, r5, 0 bl __divsf3 adds r4, r0, 0 adds r0, r5, 0 adds r1, r5, 0 bl __mulsf3 adds r1, r0, 0 ldr r0, _08118B24 bl __divsf3 adds r1, r0, 0 adds r0, r4, 0 bl __addsf3 bl __negsf2 mov r1, r8 str r0, [r1] adds r1, r6, 0 adds r1, 0x8C ldr r0, _08118B28 str r0, [r1] adds r2, r7, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2] adds r0, r7, 0 adds r0, 0x2A movs r2, 0 strb r2, [r0] adds r3, r7, 0 adds r3, 0x3F ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 strb r0, [r3] ldr r0, _08118B2C str r0, [r7, 0x1C] strh r2, [r7, 0x32] _08118B0C: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08118B1C: .4byte gUnknown_083F8DF4 _08118B20: .4byte 0x02019000 _08118B24: .4byte 0x40000000 _08118B28: .4byte 0x00000000 _08118B2C: .4byte sub_811889C thumb_func_end sub_81189A8 thumb_func_start sub_8118B30 sub_8118B30: @ 8118B30 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x32 ldrsh r0, [r5, r1] bl __floatsisf adds r4, r0, 0 ldr r1, _08118BCC bl __mulsf3 adds r1, r4, 0 bl __mulsf3 bl __fixsfsi adds r1, r0, 0 subs r1, 0x2D strh r1, [r5, 0x26] ldrh r0, [r5, 0x32] adds r0, 0x1 strh r0, [r5, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x1D ble _08118BC6 lsls r0, r1, 16 cmp r0, 0 blt _08118BC6 ldr r4, _08118BD0 adds r1, r4, 0 adds r1, 0x7D movs r0, 0xFF strb r0, [r1] ldrb r1, [r4, 0x3] movs r0, 0x7F ands r0, r1 strb r0, [r4, 0x3] adds r0, r5, 0 adds r0, 0x2B ldrb r1, [r0] adds r1, 0x3 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl StartSpriteAnim adds r0, r5, 0 bl sub_81186B8 movs r0, 0x1E strh r0, [r5, 0x36] adds r0, r5, 0 bl sub_811866C movs r1, 0x3A ldrsh r0, [r5, r1] movs r1, 0x1E bl __divsi3 lsls r0, 16 asrs r0, 16 lsls r1, r0, 4 subs r1, r0 lsls r1, 1 adds r1, 0xF strh r1, [r5, 0x3A] ldr r0, _08118BD4 str r0, [r5, 0x1C] movs r0, 0x47 bl m4aSongNumStartOrChange ldrb r0, [r4, 0x3] movs r1, 0x40 orrs r0, r1 strb r0, [r4, 0x3] _08118BC6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08118BCC: .4byte 0x3d4ccccd _08118BD0: .4byte 0x02019000 _08118BD4: .4byte sub_8118834 thumb_func_end sub_8118B30 thumb_func_start sub_8118BD8 sub_8118BD8: @ 8118BD8 push {r4,lr} adds r3, r0, 0 ldrh r0, [r3, 0x32] adds r1, r0, 0x1 strh r1, [r3, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x2C bgt _08118C1C ldrh r4, [r3, 0x26] subs r0, r4, 0x1 strh r0, [r3, 0x26] lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x2D bne _08118CA2 ldr r2, _08118C14 ldr r0, _08118C18 adds r0, 0x73 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0x1 bne _08118CA2 strh r4, [r3, 0x26] b _08118CA2 .align 2, 0 _08118C14: .4byte gSprites _08118C18: .4byte 0x02019000 _08118C1C: lsls r0, r1, 16 asrs r0, 16 movs r2, 0x3C ldrsh r1, [r3, r2] cmp r0, r1 bge _08118C68 ldr r2, _08118C58 ldr r0, _08118C5C adds r0, 0x73 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 adds r0, r1, 0 adds r0, 0x2C ldrb r0, [r0] lsls r0, 26 cmp r0, 0 bne _08118CA2 adds r0, r1, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0x1 bne _08118C60 ldrh r0, [r3, 0x26] adds r0, 0x1 strh r0, [r3, 0x26] b _08118CA2 .align 2, 0 _08118C58: .4byte gSprites _08118C5C: .4byte 0x02019000 _08118C60: ldrh r0, [r3, 0x26] subs r0, 0x1 strh r0, [r3, 0x26] b _08118CA2 _08118C68: adds r2, r3, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2] adds r1, r3, 0 adds r1, 0x2A movs r2, 0 movs r0, 0x1 strb r0, [r1] movs r0, 0x3F adds r0, r3 mov r12, r0 ldrb r0, [r0] movs r1, 0x4 orrs r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 mov r1, r12 strb r0, [r1] strh r2, [r3, 0x32] ldr r0, _08118CA8 str r0, [r3, 0x1C] movs r0, 0x3D bl m4aSongNumStart _08118CA2: pop {r4} pop {r0} bx r0 .align 2, 0 _08118CA8: .4byte sub_8118B30 thumb_func_end sub_8118BD8 thumb_func_start sub_8118CAC sub_8118CAC: @ 8118CAC push {r4,lr} adds r4, r0, 0 bl sub_8118724 movs r0, 0x34 ldrsh r1, [r4, r0] cmp r1, 0x5A beq _08118CC6 movs r0, 0x87 lsls r0, 1 cmp r1, r0 beq _08118CD0 b _08118CE0 _08118CC6: movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1 beq _08118CE0 b _08118CD8 _08118CD0: movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _08118CE0 _08118CD8: ldr r0, _08118CE8 str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x32] _08118CE0: pop {r4} pop {r0} bx r0 .align 2, 0 _08118CE8: .4byte sub_8118BD8 thumb_func_end sub_8118CAC thumb_func_start sub_8118CEC sub_8118CEC: @ 8118CEC push {r4,lr} adds r4, r0, 0 bl sub_8118724 ldr r0, _08118D10 ldrb r0, [r0, 0x3] lsls r0, 27 lsrs r0, 27 cmp r0, 0 beq _08118D04 cmp r0, 0x1 beq _08118D18 _08118D04: adds r0, r4, 0 bl sub_8119224 ldr r0, _08118D14 b _08118D20 .align 2, 0 _08118D10: .4byte 0x02019000 _08118D14: .4byte sub_81189A8 _08118D18: adds r0, r4, 0 bl sub_81193D4 ldr r0, _08118D28 _08118D20: str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _08118D28: .4byte sub_8118CAC thumb_func_end sub_8118CEC thumb_func_start prev_quest_read_x24_hm_usage prev_quest_read_x24_hm_usage: @ 8118D2C push {r4,r5,lr} adds r5, r0, 0 bl sub_8118724 ldrh r0, [r5, 0x32] subs r0, 0x1 strh r0, [r5, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0xF bne _08118D50 ldr r4, _08118DB8 adds r4, 0x98 ldr r0, [r4] ldr r1, _08118DBC bl __mulsf3 str r0, [r4] _08118D50: movs r1, 0x32 ldrsh r0, [r5, r1] cmp r0, 0 bne _08118DDC movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 bne _08118DC4 ldr r1, _08118DB8 adds r2, r1, 0 adds r2, 0x7D movs r0, 0xFF strb r0, [r2] ldrb r2, [r1, 0x3] movs r0, 0x7F ands r0, r2 strb r0, [r1, 0x3] adds r0, r5, 0 adds r0, 0x2B ldrb r1, [r0] adds r1, 0x3 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl StartSpriteAnim adds r0, r5, 0 bl sub_81186B8 movs r0, 0x1E strh r0, [r5, 0x36] adds r0, r5, 0 bl sub_811866C movs r1, 0x3A ldrsh r0, [r5, r1] movs r1, 0x1E bl __divsi3 lsls r0, 16 asrs r0, 16 lsls r1, r0, 4 subs r1, r0 lsls r1, 1 adds r1, 0xF strh r1, [r5, 0x3A] ldr r0, _08118DC0 str r0, [r5, 0x1C] movs r0, 0x47 bl m4aSongNumStartOrChange b _08118DDC .align 2, 0 _08118DB8: .4byte 0x02019000 _08118DBC: .4byte 0xbf800000 _08118DC0: .4byte sub_8118834 _08118DC4: adds r0, r5, 0 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] movs r0, 0x38 bl m4aSongNumStart adds r0, r5, 0 bl sub_811952C _08118DDC: pop {r4,r5} pop {r0} bx r0 thumb_func_end prev_quest_read_x24_hm_usage thumb_func_start sub_8118DE4 sub_8118DE4: @ 8118DE4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r0, 0 bl sub_8118724 movs r0, 0 strh r0, [r7, 0x32] adds r0, r7, 0 bl sub_81186B8 ldr r1, _08118E70 ldr r6, _08118E74 movs r0, 0x7E adds r0, r6 mov r8, r0 ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r0, [r0] ldr r1, [r6, 0x8] ands r0, r1 cmp r0, 0 bne _08118E7C adds r1, r6, 0 adds r1, 0x7D movs r0, 0xFF strb r0, [r1] ldrb r1, [r6, 0x3] movs r0, 0x7F ands r0, r1 strb r0, [r6, 0x3] adds r0, r7, 0 adds r0, 0x2B ldrb r1, [r0] adds r1, 0x3 lsls r1, 24 lsrs r1, 24 adds r0, r7, 0 bl StartSpriteAnim adds r0, r7, 0 bl sub_81186B8 movs r0, 0x1E strh r0, [r7, 0x36] adds r0, r7, 0 bl sub_811866C movs r1, 0x3A ldrsh r0, [r7, r1] movs r1, 0x1E bl __divsi3 lsls r0, 16 asrs r0, 16 lsls r1, r0, 4 subs r1, r0 lsls r1, 1 adds r1, 0xF strh r1, [r7, 0x3A] ldr r0, _08118E78 str r0, [r7, 0x1C] movs r0, 0x47 bl m4aSongNumStartOrChange b _08118F74 .align 2, 0 _08118E70: .4byte gUnknown_083F8D90 _08118E74: .4byte 0x02019000 _08118E78: .4byte sub_8118834 _08118E7C: movs r0, 0x38 bl m4aSongNumStart bl Random movs r2, 0x1 mov r9, r2 mov r1, r9 ands r1, r0 mov r9, r1 cmp r1, 0 beq _08118EC0 adds r1, r6, 0 adds r1, 0x8C ldr r0, _08118EB8 str r0, [r1] mov r2, r8 ldrb r0, [r2] adds r0, 0x1 movs r1, 0xC bl __modsi3 lsls r1, r0, 24 lsrs r2, r1, 24 adds r1, r6, 0 adds r1, 0x7F strb r0, [r1] ldr r5, _08118EBC b _08118EF4 .align 2, 0 _08118EB8: .4byte 0x00000000 _08118EBC: .4byte gUnknown_083F8DF4 _08118EC0: adds r4, r6, 0 adds r4, 0x8C ldr r5, _08118F1C ldrb r0, [r6, 0x4] lsls r0, 30 lsrs r0, 25 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, [r0] adds r0, r1, 0 bl __addsf3 str r0, [r4] mov r0, r8 ldrb r4, [r0] adds r0, r4, 0 adds r0, 0xB movs r1, 0xC bl __modsi3 lsls r0, 24 lsrs r2, r0, 24 adds r0, r6, 0 adds r0, 0x7F strb r4, [r0] _08118EF4: ldr r0, _08118F20 lsls r1, r2, 3 adds r0, 0x4 adds r1, r0 ldr r2, _08118F24 ldr r1, [r1] ldr r0, [r2, 0x8] ands r1, r0 cmp r1, 0 beq _08118F28 movs r0, 0x1 strh r0, [r7, 0x2E] ldrb r0, [r2, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r5 ldrb r0, [r0, 0x2] strh r0, [r7, 0x32] b _08118F64 .align 2, 0 _08118F1C: .4byte gUnknown_083F8DF4 _08118F20: .4byte gUnknown_083F8D90 _08118F24: .4byte 0x02019000 _08118F28: strh r1, [r7, 0x2E] ldrb r1, [r2, 0x4] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08118F40 lsls r0, r1, 30 lsrs r0, 25 adds r0, r5 ldrb r0, [r0, 0x1] strh r0, [r7, 0x32] b _08118F64 _08118F40: lsls r0, r1, 30 lsrs r0, 25 adds r0, r5 ldrb r0, [r0, 0x2] strh r0, [r7, 0x32] mov r1, r9 cmp r1, 0 beq _08118F5C adds r1, r2, 0 adds r1, 0x8C ldr r0, _08118F58 b _08118F62 .align 2, 0 _08118F58: .4byte 0x3f000000 _08118F5C: adds r1, r2, 0 adds r1, 0x8C ldr r0, _08118F80 _08118F62: str r0, [r1] _08118F64: adds r1, r2, 0 adds r1, 0x98 ldr r0, _08118F84 str r0, [r1] ldr r0, _08118F88 str r0, [r7, 0x1C] movs r0, 0x5 strh r0, [r7, 0x30] _08118F74: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08118F80: .4byte 0xbfc00000 _08118F84: .4byte 0x3dae147b _08118F88: .4byte prev_quest_read_x24_hm_usage thumb_func_end sub_8118DE4 thumb_func_start sub_8118F8C sub_8118F8C: @ 8118F8C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r6, r0, 0 bl sub_8118724 ldr r5, _08119018 movs r0, 0x8C adds r0, r5 mov r8, r0 ldr r0, [r0] ldr r1, _0811901C bl __gtsf2 cmp r0, 0 bgt _0811906E adds r0, r6, 0 bl sub_81186B8 adds r0, r6, 0 bl sub_81186E8 lsls r0, 16 cmp r0, 0 bne _08119030 adds r1, r5, 0 adds r1, 0x90 ldr r0, _08119020 str r0, [r1] ldr r1, _08119024 mov r9, r1 ldrb r0, [r5, 0x4] lsls r7, r0, 30 lsrs r0, r7, 25 add r0, r9 movs r4, 0x3 ldrsb r4, [r0, r4] adds r0, r4, 0 bl __floatsisf adds r5, r0, 0 cmp r4, 0 bge _08118FEC ldr r1, _08119028 bl __addsf3 adds r5, r0, 0 _08118FEC: lsrs r0, r7, 25 add r0, r9 ldrb r0, [r0, 0x4] adds r0, 0x1 bl __floatsisf adds r1, r0, 0 adds r0, r5, 0 bl __divsf3 adds r1, r0, 0 mov r2, r8 ldr r0, [r2] bl __subsf3 mov r1, r8 str r0, [r1] movs r0, 0x4 strh r0, [r6, 0x30] ldr r0, _0811902C str r0, [r6, 0x1C] b _0811906E .align 2, 0 _08119018: .4byte 0x02019000 _0811901C: .4byte 0x3f000000 _08119020: .4byte 0x00000000 _08119024: .4byte gUnknown_083F8DF4 _08119028: .4byte 0x43800000 _0811902C: .4byte sub_8118DE4 _08119030: adds r6, r5, 0 adds r6, 0x90 ldr r0, [r6] ldr r4, _0811907C adds r1, r4, 0 bl __nesf2 cmp r0, 0 beq _0811906E mov r2, r8 ldr r0, [r2] adds r1, r4, 0 bl __ltsf2 cmp r0, 0 bge _0811906E str r4, [r6] mov r0, r8 str r4, [r0] adds r4, r5, 0 adds r4, 0x98 ldr r0, [r4] bl __extendsfdf2 ldr r2, _08119080 ldr r3, _08119084 bl __divdf3 bl __truncdfsf2 str r0, [r4] _0811906E: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811907C: .4byte 0x00000000 _08119080: .4byte 0x3ff33333 _08119084: .4byte 0x33333333 thumb_func_end sub_8118F8C thumb_func_start sub_8119088 sub_8119088: @ 8119088 push {r4-r7,lr} adds r6, r0, 0 bl sub_8118724 ldr r5, _08119120 adds r0, r5, 0 adds r0, 0x94 ldr r0, [r0] ldr r1, _08119124 bl __gtsf2 cmp r0, 0 bgt _0811911A adds r7, r5, 0 adds r7, 0x98 adds r0, r5, 0 adds r0, 0x86 movs r1, 0 ldrsh r4, [r0, r1] adds r0, r4, 0 bl __floatsisf adds r2, r0, 0 cmp r4, 0 bge _081190C2 ldr r1, _08119128 bl __addsf3 adds r2, r0, 0 _081190C2: ldr r0, _0811912C adds r1, r2, 0 bl __divsf3 bl __negsf2 str r0, [r7] adds r7, r5, 0 adds r7, 0x90 adds r5, 0x8C adds r0, r4, 0 bl __floatsisf adds r2, r0, 0 cmp r4, 0 bge _081190EA ldr r1, _08119128 bl __addsf3 adds r2, r0, 0 _081190EA: ldr r0, [r5] adds r1, r2, 0 bl __divsf3 bl __negsf2 str r0, [r7] adds r1, r6, 0 adds r1, 0x2A movs r0, 0x2 strb r0, [r1] adds r2, r6, 0 adds r2, 0x3F ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 strb r0, [r2] movs r0, 0x3 strh r0, [r6, 0x30] ldr r0, _08119130 str r0, [r6, 0x1C] _0811911A: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08119120: .4byte 0x02019000 _08119124: .4byte 0x42200000 _08119128: .4byte 0x47800000 _0811912C: .4byte 0x40800000 _08119130: .4byte sub_8118F8C thumb_func_end sub_8119088 thumb_func_start sub_8119134 sub_8119134: @ 8119134 push {r4-r7,lr} adds r6, r0, 0 bl sub_8118724 ldr r4, _081191DC adds r0, r4, 0 adds r0, 0x94 ldr r0, [r0] ldr r1, _081191E0 bl __gtsf2 cmp r0, 0 bgt _081191D4 movs r0, 0x5D bl m4aSongNumStartOrChange adds r7, r4, 0 adds r7, 0x98 adds r0, r4, 0 adds r0, 0x84 movs r1, 0 ldrsh r5, [r0, r1] adds r0, r5, 0 bl __floatsisf adds r2, r0, 0 cmp r5, 0 bge _08119174 ldr r1, _081191E4 bl __addsf3 adds r2, r0, 0 _08119174: ldr r0, _081191E8 adds r1, r2, 0 bl __divsf3 bl __negsf2 str r0, [r7] adds r7, r4, 0 adds r7, 0x90 adds r0, r4, 0 adds r0, 0x8C ldr r1, [r0] ldr r0, _081191EC bl __subsf3 adds r4, r0, 0 adds r0, r5, 0 bl __floatsisf adds r2, r0, 0 cmp r5, 0 bge _081191A8 ldr r1, _081191E4 bl __addsf3 adds r2, r0, 0 _081191A8: adds r0, r4, 0 adds r1, r2, 0 bl __divsf3 str r0, [r7] adds r1, r6, 0 adds r1, 0x2A movs r0, 0x1 strb r0, [r1] adds r2, r6, 0 adds r2, 0x3F ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 strb r0, [r2] movs r0, 0x2 strh r0, [r6, 0x30] ldr r0, _081191F0 str r0, [r6, 0x1C] _081191D4: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081191DC: .4byte 0x02019000 _081191E0: .4byte 0x42700000 _081191E4: .4byte 0x47800000 _081191E8: .4byte 0x41a00000 _081191EC: .4byte 0x3f800000 _081191F0: .4byte sub_8119088 thumb_func_end sub_8119134 thumb_func_start sub_81191F4 sub_81191F4: @ 81191F4 push {r4,lr} adds r4, r0, 0 movs r1, 0 movs r0, 0x1 strh r0, [r4, 0x30] strh r1, [r4, 0x32] adds r0, r4, 0 bl sub_8118724 adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] ldr r0, _08119220 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _08119220: .4byte sub_8119134 thumb_func_end sub_81191F4 thumb_func_start sub_8119224 sub_8119224: @ 8119224 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r7, r0, 0 ldr r1, _081193B8 mov r0, sp movs r2, 0x8 bl memcpy ldrh r0, [r7, 0x3C] subs r0, 0x2 lsls r0, 16 lsrs r0, 16 mov r9, r0 ldr r5, _081193BC ldr r0, _081193C0 movs r2, 0xC negs r2, r2 movs r1, 0x24 movs r3, 0x32 bl CreateSprite adds r1, r5, 0 adds r1, 0x73 strb r0, [r1] ldr r4, _081193C4 movs r0, 0x2E ldrsh r2, [r7, r0] lsls r2, 2 mov r1, sp adds r0, r1, r2 movs r3, 0 ldrsh r1, [r0, r3] mov r0, sp adds r0, 0x2 adds r0, r2 movs r3, 0 ldrsh r2, [r0, r3] adds r0, r4, 0 movs r3, 0x3B bl CreateSprite adds r1, r5, 0 adds r1, 0x74 strb r0, [r1] adds r4, 0x18 adds r0, r4, 0 movs r1, 0x24 movs r2, 0x8C movs r3, 0x33 bl CreateSprite adds r1, r5, 0 adds r1, 0x75 strb r0, [r1] ldr r3, _081193C8 ldrb r1, [r1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r2, [r0, 0x1] movs r1, 0xD negs r1, r1 ands r1, r2 movs r2, 0x4 orrs r1, r2 strb r1, [r0, 0x1] movs r6, 0 adds r4, r3, 0 mov r12, r5 ldr r0, _081193CC mov r8, r0 mov r10, r12 _081192BE: mov r1, r12 adds r3, r1, r6 adds r3, 0x73 ldrb r0, [r3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 adds r1, 0x3E ldrb r2, [r1] movs r0, 0x3 negs r0, r0 ands r0, r2 strb r0, [r1] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x80 orrs r1, r2 strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 mov r1, r12 adds r1, 0x73 ldrb r1, [r1] strh r1, [r0, 0x36] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 mov r5, r12 adds r5, 0x74 ldrb r1, [r5] strh r1, [r0, 0x38] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 mov r1, r12 adds r1, 0x75 ldrb r1, [r1] strh r1, [r0, 0x3A] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 mov r1, r9 strh r1, [r0, 0x32] ldrb r0, [r3] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r4 movs r0, 0x3C ldrsh r3, [r7, r0] mov r0, r12 ldrb r1, [r0, 0x4] lsls r1, 30 lsrs r0, r1, 25 add r0, r8 ldrb r0, [r0, 0x1] muls r3, r0 lsrs r1, 25 add r1, r8 ldrb r0, [r1, 0x2] ldr r1, _081193D0 adds r0, r1 adds r3, r0 strh r3, [r2, 0x34] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 ldr r2, _081193C8 cmp r6, 0x2 bls _081192BE ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x2 orrs r1, r2 strb r1, [r0] mov r3, r10 str r7, [r3, 0x38] add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081193B8: .4byte gUnknown_083FA60E _081193BC: .4byte 0x02019000 _081193C0: .4byte gSpriteTemplate_83FA50C _081193C4: .4byte gSpriteTemplate_83FA5C0 _081193C8: .4byte gSprites _081193CC: .4byte gUnknown_083F8DF4 _081193D0: .4byte 0x0000ffff thumb_func_end sub_8119224 thumb_func_start sub_81193D4 sub_81193D4: @ 81193D4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 adds r7, r0, 0 movs r0, 0 mov r8, r0 ldr r1, _08119514 mov r0, sp movs r2, 0x8 bl memcpy ldrh r0, [r7, 0x3C] subs r0, 0x2 lsls r0, 16 lsrs r0, 16 mov r9, r0 ldr r0, _08119518 movs r1, 0x2E ldrsh r2, [r7, r1] lsls r2, 2 mov r3, sp adds r1, r3, r2 movs r3, 0 ldrsh r1, [r1, r3] mov r4, sp adds r4, 0x2 adds r2, r4, r2 movs r3, 0 ldrsh r2, [r2, r3] movs r3, 0x32 bl CreateSprite ldr r6, _0811951C adds r1, r6, 0 adds r1, 0x73 strb r0, [r1] ldrb r1, [r1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _08119520 adds r0, r5 ldrh r1, [r7, 0x2E] lsls r1, 24 lsrs r1, 24 bl StartSpriteAnim ldr r0, _08119524 movs r1, 0x2E ldrsh r2, [r7, r1] lsls r2, 2 mov r3, sp adds r1, r3, r2 movs r3, 0 ldrsh r1, [r1, r3] adds r4, r2 movs r3, 0 ldrsh r2, [r4, r3] movs r3, 0x33 bl CreateSprite adds r4, r6, 0 adds r4, 0x74 strb r0, [r4] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x80 orrs r1, r2 strb r1, [r0] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] mov r0, r9 lsls r2, r0, 16 asrs r2, 16 ldr r3, _08119528 ldrb r1, [r6, 0x4] lsls r1, 30 lsrs r0, r1, 25 adds r0, r3 ldrb r0, [r0, 0x1] muls r2, r0 lsrs r1, 25 adds r1, r3 ldrh r0, [r1, 0x10] adds r0, 0x2D adds r2, r0 strh r2, [r7, 0x3C] adds r3, r6, 0 _081194A2: mov r1, r8 adds r2, r6, r1 adds r2, 0x73 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r1, r6, 0 adds r1, 0x73 ldrb r1, [r1] strh r1, [r0, 0x36] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r4] strh r1, [r0, 0x38] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r4] strh r1, [r0, 0x3A] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r9 strh r1, [r0, 0x32] ldrb r0, [r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 ldrh r0, [r7, 0x3C] subs r0, 0x2D strh r0, [r1, 0x34] mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 cmp r0, 0x1 bls _081194A2 str r7, [r3, 0x38] add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08119514: .4byte gUnknown_083FA616 _08119518: .4byte gSpriteTemplate_83FA524 _0811951C: .4byte 0x02019000 _08119520: .4byte gSprites _08119524: .4byte gSpriteTemplate_83FA5F0 _08119528: .4byte gUnknown_083F8DF4 thumb_func_end sub_81193D4 thumb_func_start sub_811952C sub_811952C: @ 811952C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 mov r8, r0 movs r0, 0 mov r10, r0 movs r1, 0x5 mov r9, r1 movs r2, 0 str r2, [sp, 0xC] mov r0, sp movs r1, 0 movs r2, 0xA bl memset bl Random lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x10] ldr r7, _08119610 adds r0, r7, 0 adds r0, 0x7D movs r6, 0x1 strb r6, [r0] ldrb r4, [r7, 0x3] movs r0, 0x20 orrs r4, r0 movs r0, 0x41 negs r0, r0 ands r4, r0 strb r4, [r7, 0x3] adds r1, r7, 0 adds r1, 0x7E movs r0, 0xFF strb r0, [r1] adds r5, r7, 0 adds r5, 0x88 mov r3, r8 movs r1, 0x34 ldrsh r0, [r3, r1] bl __floatsisf str r0, [r5] adds r1, r7, 0 adds r1, 0x98 ldr r0, _08119614 str r0, [r1] adds r3, r7, 0 adds r3, 0x8C ldr r2, _08119618 ldrb r0, [r7, 0x4] lsls r0, 30 lsrs r1, r0, 25 adds r2, 0x1C adds r1, r2 ldr r1, [r1] str r1, [r3] lsrs r0, 30 lsls r1, r0, 4 subs r1, r0 lsls r1, 1 adds r1, 0x21 lsls r4, 27 lsrs r4, 27 subs r6, r4 lsls r0, r6, 4 subs r0, r6 adds r1, r0 lsls r1, 16 lsrs r1, 16 mov r5, r10 mov r3, r8 movs r0, 0x34 ldrsh r2, [r3, r0] _081195C8: cmp r1, r2 bge _081195D4 adds r0, r1, 0 adds r0, 0x5A cmp r2, r0 ble _08119638 _081195D4: cmp r5, 0x3 beq _0811961C adds r0, r1, 0 adds r0, 0x5A lsls r0, 16 lsrs r1, r0, 16 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _081195C8 _081195EA: ldr r0, _08119610 ldrb r1, [r0, 0x3] movs r0, 0x1F ands r0, r1 cmp r0, 0 beq _08119664 mov r1, r8 movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0 beq _08119658 movs r0, 0x98 lsls r0, 1 movs r1, 0x3F negs r1, r1 bl PlayCry1 b _08119670 .align 2, 0 _08119610: .4byte 0x02019000 _08119614: .4byte 0x00000000 _08119618: .4byte gUnknown_083F8DF4 _0811961C: movs r0, 0x1 mov r3, r8 strh r0, [r3, 0x2E] ldr r2, _08119634 ldrb r1, [r2, 0x3] subs r0, 0x21 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x3] b _081195EA .align 2, 0 _08119634: .4byte 0x02019000 _08119638: lsrs r0, r5, 1 mov r1, r8 strh r0, [r1, 0x2E] ldr r3, _08119654 movs r1, 0x1 ands r1, r5 ldrb r2, [r3, 0x3] movs r0, 0x20 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x3] b _081195EA .align 2, 0 _08119654: .4byte 0x02019000 _08119658: movs r0, 0x98 lsls r0, 1 movs r1, 0x3F bl PlayCry1 b _08119670 _08119664: movs r0, 0x99 lsls r0, 1 movs r1, 0x3F negs r1, r1 bl PlayCry1 _08119670: movs r5, 0x2 ldr r4, _081196A0 adds r0, r4, 0 adds r0, 0x7F ldrb r0, [r0] adds r0, 0x2 movs r1, 0xC bl __modsi3 lsls r0, 24 lsrs r3, r0, 24 ldrb r1, [r4, 0x3] movs r0, 0x1F ands r0, r1 cmp r0, 0x1 bne _081196A4 ldrb r1, [r4, 0x4] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _081196A4 mov r0, r9 adds r0, 0x6 b _081196A8 .align 2, 0 _081196A0: .4byte 0x02019000 _081196A4: mov r2, r9 adds r0, r2, r5 _081196A8: lsls r0, 24 lsrs r0, 24 mov r9, r0 cmp r5, r9 bcs _0811970E ldr r6, _08119734 ldr r7, _08119738 _081196B6: lsls r0, r3, 3 ldr r1, _0811973C adds r0, r1 ldr r1, [r6, 0x8] ldr r2, [r0] ands r1, r2 cmp r1, 0 bne _081196F8 mov r0, r10 adds r1, r0, 0x1 lsls r1, 24 lsrs r1, 24 mov r10, r1 add r0, sp strb r5, [r0] ldr r0, [sp, 0xC] cmp r0, 0 bne _081196F8 ldrb r0, [r6, 0x1A] lsls r0, 28 lsrs r0, 28 ldr r1, _08119740 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r7 ldr r0, [r0] ands r2, r0 cmp r2, 0 beq _081196F8 str r5, [sp, 0xC] _081196F8: adds r0, r3, 0x1 movs r1, 0xC bl __modsi3 lsls r0, 24 lsrs r3, r0, 24 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r9 bcc _081196B6 _0811970E: ldrb r0, [r4, 0x3] lsls r0, 27 lsrs r0, 27 adds r0, 0x1 ldrb r1, [r4, 0x2] ands r0, r1 cmp r0, 0 beq _08119756 ldr r2, [sp, 0xC] cmp r2, 0 beq _08119744 movs r0, 0xFF ldr r3, [sp, 0x10] ands r0, r3 cmp r0, 0xBF bhi _08119744 mov r0, r8 strh r2, [r0, 0x3C] b _08119766 .align 2, 0 _08119734: .4byte 0x02019000 _08119738: .4byte gUnknown_083F8C0C _0811973C: .4byte gUnknown_083F8D94 _08119740: .4byte 0x0201901b _08119744: ldr r0, [sp, 0x10] mov r1, r10 bl __modsi3 add r0, sp ldrb r0, [r0] mov r1, r8 strh r0, [r1, 0x3C] b _08119766 _08119756: ldr r0, [sp, 0x10] mov r1, r10 bl __modsi3 add r0, sp ldrb r0, [r0] mov r2, r8 strh r0, [r2, 0x3C] _08119766: ldr r3, _0811977C mov r0, r8 str r3, [r0, 0x1C] 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 _0811977C: .4byte sub_8118CEC thumb_func_end sub_811952C thumb_func_start sub_8119780 sub_8119780: @ 8119780 push {r4,lr} adds r2, r0, 0 ldrh r0, [r2, 0x30] adds r1, r0, 0x1 strh r1, [r2, 0x30] lsls r0, 16 asrs r0, 16 movs r3, 0x34 ldrsh r1, [r2, r3] cmp r0, r1 blt _081197CA ldrh r0, [r2, 0x20] subs r0, 0x2 strh r0, [r2, 0x20] lsls r0, 16 asrs r0, 16 movs r1, 0x10 negs r1, r1 cmp r0, r1 bge _081197CA ldr r4, _081197D0 ldrb r1, [r4, 0x3] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _081197BA movs r0, 0x40 orrs r0, r1 strb r0, [r4, 0x3] _081197BA: adds r0, r2, 0 bl DestroySprite movs r0, 0 strb r0, [r4, 0x1] ldr r0, _081197D4 ldrh r0, [r0] strh r0, [r4, 0x34] _081197CA: pop {r4} pop {r0} bx r0 .align 2, 0 _081197D0: .4byte 0x02019000 _081197D4: .4byte gUnknown_083FA61E thumb_func_end sub_8119780 thumb_func_start sub_81197D8 sub_81197D8: @ 81197D8 push {r4,lr} sub sp, 0x18 adds r4, r0, 0 ldr r1, _08119854 mov r0, sp movs r2, 0x18 bl memcpy ldrh r0, [r4, 0x30] adds r2, r0, 0x1 strh r2, [r4, 0x30] lsls r0, 16 asrs r0, 16 movs r3, 0x34 ldrsh r1, [r4, r3] cmp r0, r1 bge _0811985C movs r0, 0x1 ands r2, r0 cmp r2, 0 beq _08119836 ldr r3, _08119858 movs r0, 0x3C ldrsh r2, [r4, r0] lsls r2, 1 movs r1, 0x32 ldrsh r0, [r4, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 lsls r0, 3 adds r2, r0 mov r1, sp adds r0, r1, r2 ldrh r0, [r0] strh r0, [r3] movs r3, 0x3C ldrsh r2, [r4, r3] adds r1, r2, 0x1 adds r0, r1, 0 cmp r1, 0 bge _0811982E adds r0, r2, 0x4 _0811982E: asrs r0, 2 lsls r0, 2 subs r0, r1, r0 strh r0, [r4, 0x3C] _08119836: adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] b _08119884 .align 2, 0 _08119854: .4byte gUnknown_083FA632 _08119858: .4byte gSpriteCoordOffsetY _0811985C: ldr r1, _0811988C movs r0, 0 strh r0, [r1] ldr r2, _08119890 ldr r0, _08119894 adds r0, 0x73 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x2C ldrb r2, [r0] movs r1, 0x41 negs r1, r1 ands r1, r2 strb r1, [r0] adds r0, r4, 0 bl DestroySprite _08119884: add sp, 0x18 pop {r4} pop {r0} bx r0 .align 2, 0 _0811988C: .4byte gSpriteCoordOffsetY _08119890: .4byte gSprites _08119894: .4byte 0x02019000 thumb_func_end sub_81197D8 thumb_func_start sub_8119898 sub_8119898: @ 8119898 push {r4,r5,lr} adds r5, r0, 0 ldrh r0, [r5, 0x30] adds r0, 0x1 strh r0, [r5, 0x30] movs r1, 0x30 ldrsh r0, [r5, r1] bl __floatsisf adds r4, r0, 0 ldr r1, _08119948 bl __mulsf3 adds r1, r4, 0 bl __mulsf3 bl __fixsfsi strh r0, [r5, 0x26] ldr r3, _0811994C ldr r2, _08119950 ldrb r0, [r3, 0x1] subs r0, 0x1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 lsls r0, 1 adds r0, r2 ldrh r0, [r0] strh r0, [r3, 0x34] ldrb r0, [r3, 0x1] cmp r0, 0x12 bhi _081198DE adds r0, 0x1 strb r0, [r3, 0x1] _081198DE: movs r1, 0x30 ldrsh r0, [r5, r1] cmp r0, 0x3C ble _08119940 movs r0, 0 strh r0, [r5, 0x30] ldr r3, _08119954 str r3, [r5, 0x1C] ldr r2, _08119958 movs r0, 0x3A ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, r2, 0 adds r4, 0x1C adds r0, r4 str r3, [r0] movs r0, 0x3A ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _0811995C strh r1, [r0, 0x30] movs r0, 0x38 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] movs r0, 0x38 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _08119960 str r1, [r0] movs r0, 0xD6 bl m4aSongNumStart _08119940: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08119948: .4byte 0x3d1fbe77 _0811994C: .4byte 0x02019000 _08119950: .4byte gUnknown_083FA61E _08119954: .4byte sub_8119780 _08119958: .4byte gSprites _0811995C: .4byte 0x0000fffe _08119960: .4byte sub_81197D8 thumb_func_end sub_8119898 thumb_func_start sub_8119964 sub_8119964: @ 8119964 push {r4,lr} adds r4, r0, 0 movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0 bne _081199E4 ldr r3, _08119990 ldr r1, [r3, 0x38] movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0 bne _08119998 movs r0, 0x34 ldrsh r2, [r1, r0] ldr r1, _08119994 ldrb r0, [r3, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r1 ldrh r0, [r0, 0x8] b _081199AA .align 2, 0 _08119990: .4byte 0x02019000 _08119994: .4byte gUnknown_083F8DF4 _08119998: movs r0, 0x34 ldrsh r2, [r1, r0] ldr r1, _081199D8 ldrb r0, [r3, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r1 ldrh r0, [r0, 0x8] adds r0, 0xB4 _081199AA: cmp r2, r0 bne _08119A78 adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] movs r0, 0x2B bl m4aSongNumStart ldr r1, _081199DC movs r0, 0x1 strb r0, [r1, 0x1] ldr r0, _081199E0 ldrh r0, [r0] strh r0, [r1, 0x34] b _08119A78 .align 2, 0 _081199D8: .4byte gUnknown_083F8DF4 _081199DC: .4byte 0x02019000 _081199E0: .4byte gUnknown_083FA61E _081199E4: ldr r3, _08119A20 ldr r2, _08119A24 ldrb r0, [r3, 0x1] subs r0, 0x1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 lsls r0, 1 adds r0, r2 ldrh r0, [r0] strh r0, [r3, 0x34] ldrb r0, [r3, 0x1] cmp r0, 0x12 bhi _08119A04 adds r0, 0x1 strb r0, [r3, 0x1] _08119A04: ldr r1, [r3, 0x38] movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0 bne _08119A2C movs r0, 0x34 ldrsh r2, [r1, r0] ldr r1, _08119A28 ldrb r0, [r3, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r1 ldrh r0, [r0, 0xA] b _08119A3E .align 2, 0 _08119A20: .4byte 0x02019000 _08119A24: .4byte gUnknown_083FA61E _08119A28: .4byte gUnknown_083F8DF4 _08119A2C: movs r0, 0x34 ldrsh r2, [r1, r0] ldr r1, _08119A80 ldrb r0, [r3, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r1 ldrh r0, [r0, 0xA] adds r0, 0xB4 _08119A3E: cmp r2, r0 bne _08119A78 ldr r2, _08119A84 movs r0, 0x36 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r2, 0 adds r1, 0x1C adds r0, r1 ldr r1, _08119A88 str r1, [r0] movs r0, 0x36 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldr r0, _08119A8C str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x3C] _08119A78: pop {r4} pop {r0} bx r0 .align 2, 0 _08119A80: .4byte gUnknown_083F8DF4 _08119A84: .4byte gSprites _08119A88: .4byte sub_8119898 _08119A8C: .4byte SpriteCallbackDummy thumb_func_end sub_8119964 thumb_func_start sub_8119A90 sub_8119A90: @ 8119A90 adds r0, 0x3E ldrb r3, [r0] lsls r1, r3, 29 lsrs r1, 31 movs r2, 0x1 eors r2, r1 lsls r2, 2 movs r1, 0x5 negs r1, r1 ands r1, r3 orrs r1, r2 strb r1, [r0] bx lr thumb_func_end sub_8119A90 thumb_func_start sub_8119AAC sub_8119AAC: @ 8119AAC push {r4,r5,lr} adds r4, r0, 0 ldrh r2, [r4, 0x22] movs r0, 0x22 ldrsh r1, [r4, r0] movs r0, 0x10 negs r0, r0 cmp r1, r0 ble _08119AC4 subs r0, r2, 0x1 strh r0, [r4, 0x22] b _08119B12 _08119AC4: ldr r0, _08119B18 str r0, [r4, 0x1C] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] subs r2, 0x12 ldrb r0, [r2] movs r1, 0x40 orrs r0, r1 strb r0, [r2] movs r0, 0x5E bl m4aSongNumStop adds r0, r4, 0 bl DestroySprite ldr r5, _08119B1C ldr r4, _08119B20 adds r4, 0x74 ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl DestroySprite _08119B12: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08119B18: .4byte SpriteCallbackDummy _08119B1C: .4byte gSprites _08119B20: .4byte 0x02019000 thumb_func_end sub_8119AAC thumb_func_start sub_8119B24 sub_8119B24: @ 8119B24 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x30] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r0, 0 blt _08119B4E subs r1, 0x1 strh r1, [r4, 0x30] ldrh r0, [r4, 0x22] subs r0, 0x1 strh r0, [r4, 0x22] lsls r1, 16 cmp r1, 0 bne _08119BB8 adds r0, r4, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0x1 bne _08119BB8 b _08119B74 _08119B4E: ldrh r1, [r4, 0x34] movs r2, 0x34 ldrsh r0, [r4, r2] cmp r0, 0 blt _08119B84 subs r0, r1, 0x1 strh r0, [r4, 0x34] adds r0, r4, 0 adds r0, 0x2C ldrb r1, [r0] movs r0, 0x3F ands r0, r1 cmp r0, 0 bne _08119BB8 adds r0, r4, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0x1 bne _08119B7C _08119B74: ldrh r0, [r4, 0x26] adds r0, 0x1 strh r0, [r4, 0x26] b _08119BB8 _08119B7C: ldrh r0, [r4, 0x26] subs r0, 0x1 strh r0, [r4, 0x26] b _08119BB8 _08119B84: movs r0, 0x2B bl m4aSongNumStart ldr r0, _08119BC0 ldr r0, [r0, 0x38] ldrh r1, [r0, 0x2E] adds r1, 0x4 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim ldr r0, _08119BC4 str r0, [r4, 0x1C] ldr r2, _08119BC8 movs r0, 0x3A ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x2C ldrb r2, [r0] movs r1, 0x7F ands r1, r2 strb r1, [r0] _08119BB8: pop {r4} pop {r0} bx r0 .align 2, 0 _08119BC0: .4byte 0x02019000 _08119BC4: .4byte sub_8119AAC _08119BC8: .4byte gSprites thumb_func_end sub_8119B24 thumb_func_start sub_8119BCC sub_8119BCC: @ 8119BCC push {r4,r5,lr} sub sp, 0x14 adds r4, r0, 0 ldr r1, _08119C44 mov r0, sp movs r2, 0x2 bl memcpy add r5, sp, 0x4 ldr r1, _08119C48 adds r0, r5, 0 movs r2, 0x10 bl memcpy ldrh r0, [r4, 0x30] subs r1, r0, 0x1 strh r1, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _08119C5C ldr r0, _08119C4C ldr r0, [r0, 0x38] movs r1, 0x2E ldrsh r0, [r0, r1] add r0, sp ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 1 ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _08119CF6 movs r1, 0x20 ldrsh r0, [r4, r1] movs r4, 0x74 subs r4, r0 lsrs r0, r4, 31 adds r4, r0 asrs r4, 1 negs r4, r4 ldr r0, _08119C50 ldr r5, _08119C54 lsls r4, 24 asrs r4, 24 adds r1, r5, 0 adds r2, r4, 0 bl m4aMPlayPanpotControl ldr r0, _08119C58 adds r1, r5, 0 adds r2, r4, 0 bl m4aMPlayPanpotControl b _08119CF6 .align 2, 0 _08119C44: .4byte gUnknown_083FA64A _08119C48: .4byte gUnknown_083FA64C _08119C4C: .4byte 0x02019000 _08119C50: .4byte gMPlay_SE1 _08119C54: .4byte 0x0000ffff _08119C58: .4byte gMPlay_SE2 _08119C5C: lsls r0, r1, 16 cmp r0, 0 blt _08119CAC ldr r0, _08119CA8 ldr r0, [r0, 0x38] movs r2, 0x2E ldrsh r0, [r0, r2] add r0, sp movs r2, 0 ldrsb r2, [r0, r2] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x7 subs r0, r1, r0 lsls r0, 1 adds r0, r5, r0 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 muls r0, r2 ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] movs r2, 0x30 ldrsh r0, [r4, r2] subs r1, r0 lsls r1, 1 mov r0, sp adds r0, 0x5 adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] b _08119CF6 .align 2, 0 _08119CA8: .4byte 0x02019000 _08119CAC: movs r0, 0x5E bl m4aSongNumStartOrChange ldr r0, _08119CCC ldr r0, [r0, 0x38] movs r2, 0x2E ldrsh r0, [r0, r2] cmp r0, 0 bne _08119CD0 movs r0, 0x98 lsls r0, 1 movs r1, 0x3F bl PlayCry1 b _08119CDC .align 2, 0 _08119CCC: .4byte 0x02019000 _08119CD0: movs r0, 0x98 lsls r0, 1 movs r1, 0x3F negs r1, r1 bl PlayCry1 _08119CDC: ldr r0, _08119D00 ldr r0, [r0, 0x38] ldrh r1, [r0, 0x2E] adds r1, 0x2 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim movs r0, 0x2D strh r0, [r4, 0x30] ldr r0, _08119D04 str r0, [r4, 0x1C] _08119CF6: add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08119D00: .4byte 0x02019000 _08119D04: .4byte sub_8119B24 thumb_func_end sub_8119BCC thumb_func_start sub_8119D08 sub_8119D08: @ 8119D08 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 ldr r1, _08119D64 mov r0, sp movs r2, 0x2 bl memcpy ldrh r0, [r4, 0x30] subs r1, r0, 0x1 strh r1, [r4, 0x30] lsls r0, 16 cmp r0, 0 blt _08119D70 ldr r0, _08119D68 ldr r0, [r0, 0x38] movs r1, 0x2E ldrsh r0, [r0, r1] add r0, sp ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 1 ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] ldr r1, _08119D6C movs r2, 0x3A ldrsh r0, [r4, r2] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 adds r2, 0x3E ldrb r3, [r2] lsls r0, r3, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] b _08119D74 .align 2, 0 _08119D64: .4byte gUnknown_083FA64A _08119D68: .4byte 0x02019000 _08119D6C: .4byte gSprites _08119D70: ldr r0, _08119D7C str r0, [r4, 0x1C] _08119D74: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08119D7C: .4byte sub_8119A90 thumb_func_end sub_8119D08 thumb_func_start sub_8119D80 sub_8119D80: @ 8119D80 push {r4,lr} adds r4, r0, 0 ldr r3, _08119DB8 ldr r1, [r3, 0x38] movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0 bne _08119DC4 movs r0, 0x34 ldrsh r2, [r1, r0] ldr r1, _08119DBC ldrb r0, [r3, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r1 ldrh r0, [r0, 0x12] adds r0, 0x5A cmp r2, r0 bne _08119E26 ldr r2, _08119DC0 movs r0, 0x3A ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r3, 0x34 b _08119DEE .align 2, 0 _08119DB8: .4byte 0x02019000 _08119DBC: .4byte gUnknown_083F8DF4 _08119DC0: .4byte gSprites _08119DC4: movs r0, 0x34 ldrsh r2, [r1, r0] ldr r1, _08119E2C ldrb r0, [r3, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r1 ldrh r0, [r0, 0x14] movs r1, 0x87 lsls r1, 1 adds r0, r1 cmp r2, r0 bne _08119E26 ldr r2, _08119E30 movs r0, 0x3A ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r3, 0x2E _08119DEE: strh r3, [r0, 0x30] movs r0, 0x36 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r3, [r0, 0x30] movs r0, 0x3A ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _08119E34 str r1, [r0] movs r0, 0x36 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _08119E38 str r1, [r0] movs r0, 0x2B bl m4aSongNumStart _08119E26: pop {r4} pop {r0} bx r0 .align 2, 0 _08119E2C: .4byte gUnknown_083F8DF4 _08119E30: .4byte gSprites _08119E34: .4byte sub_8119D08 _08119E38: .4byte sub_8119BCC thumb_func_end sub_8119D80 thumb_func_start sub_8119E3C sub_8119E3C: @ 8119E3C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r5, r0, 0 lsls r1, 24 lsrs r2, r1, 24 movs r0, 0 mov r9, r0 ldr r6, _08119E60 ldrb r0, [r6] cmp r0, 0x1 beq _08119EE0 cmp r0, 0x1 bgt _08119E64 cmp r0, 0 beq _08119E6A b _08119F74 .align 2, 0 _08119E60: .4byte gUnknown_03005E98 _08119E64: cmp r0, 0x2 beq _08119F60 b _08119F74 _08119E6A: ldr r4, _08119ECC ldrh r0, [r5] movs r1, 0 strh r0, [r4, 0x14] ldrb r0, [r5, 0x5] strb r0, [r4, 0x16] strb r1, [r4, 0x1A] strb r1, [r4, 0x1B] strb r1, [r4, 0x10] movs r0, 0x1C strb r0, [r4, 0x12] strb r1, [r4, 0x11] ldrb r1, [r5, 0x4] lsls r1, 19 negs r1, r1 asrs r1, 16 adds r0, r2, 0 movs r2, 0x1 bl sub_811A350 movs r0, 0 mov r12, r6 ldr r1, _08119ED0 ldr r7, _08119ED4 ldr r2, _08119ED8 adds r6, r4, r2 ldr r5, _08119EDC _08119EA0: movs r3, 0 adds r4, r0, 0x1 lsls r2, r0, 5 _08119EA6: str r7, [r1] adds r0, r2, r3 lsls r0, 5 adds r0, r6 str r0, [r1, 0x4] str r5, [r1, 0x8] ldr r0, [r1, 0x8] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x1F bls _08119EA6 lsls r0, r4, 24 lsrs r0, 24 cmp r0, 0x6 bls _08119EA0 mov r1, r12 b _08119F50 .align 2, 0 _08119ECC: .4byte 0x0201c000 _08119ED0: .4byte 0x040000d4 _08119ED4: .4byte gUnknown_083FB718 _08119ED8: .4byte 0xfffe4000 _08119EDC: .4byte 0x80000010 _08119EE0: ldrb r0, [r5, 0x2] lsls r0, 27 lsrs r7, r0, 16 ldrb r1, [r5, 0x3] lsls r1, 12 ldrh r0, [r5] lsls r0, 18 lsrs r0, 23 adds r1, r0 lsls r1, 16 lsrs r6, r1, 16 movs r0, 0 ldr r2, _08119F58 mov r8, r2 movs r1, 0xC0 lsls r1, 19 mov r12, r1 _08119F02: movs r3, 0 adds r4, r0, 0x1 lsls r5, r0, 6 _08119F08: lsls r1, r3, 1 adds r1, r5 adds r1, r7 add r1, r12 adds r2, r6, 0 adds r0, r2, 0x1 lsls r0, 16 lsrs r6, r0, 16 strh r2, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x1F bls _08119F08 lsls r0, r4, 24 lsrs r0, 24 cmp r0, 0x6 bls _08119F02 mov r2, r8 ldrb r0, [r2, 0x16] movs r4, 0 cmp r0, 0 beq _08119F4E mov r5, r8 _08119F38: adds r0, r4, 0 movs r1, 0 bl sub_811A1C8 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldrb r0, [r5, 0x16] lsls r0, 3 cmp r4, r0 blt _08119F38 _08119F4E: ldr r1, _08119F5C _08119F50: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08119F74 .align 2, 0 _08119F58: .4byte 0x0201c000 _08119F5C: .4byte gUnknown_03005E98 _08119F60: bl sub_811A324 ldr r0, _08119F84 ldrb r1, [r5, 0x3] lsls r1, 4 movs r2, 0x20 bl LoadPalette movs r0, 0x1 mov r9, r0 _08119F74: mov r0, r9 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08119F84: .4byte gUnknown_083FB6F8 thumb_func_end sub_8119E3C thumb_func_start sub_8119F88 sub_8119F88: @ 8119F88 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_811A324 adds r0, r4, 0 bl sub_811A15C ldr r1, _08119FC4 ldrb r0, [r1, 0x1B] cmp r0, 0 beq _08119FA6 subs r0, 0x1 strb r0, [r1, 0x1B] _08119FA6: ldrb r0, [r1, 0x1A] cmp r0, 0 beq _08119FC8 subs r0, 0x1 strb r0, [r1, 0x1A] lsls r0, 24 cmp r0, 0 bne _08119FC8 ldrh r0, [r1, 0x18] bl sub_811A0A0 bl sub_811A124 b _0811A044 .align 2, 0 _08119FC4: .4byte 0x0201c000 _08119FC8: ldr r5, _08119FD8 ldrb r0, [r5, 0x10] cmp r0, 0 bne _08119FDC bl sub_811A124 b _0811A044 .align 2, 0 _08119FD8: .4byte 0x0201c000 _08119FDC: cmp r0, 0x1 bne _08119FE6 bl sub_811A0C0 b _0811A006 _08119FE6: cmp r0, 0x8 bls _0811A006 bl IsCryPlaying lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08119FFE bl sub_811A124 strb r4, [r5, 0x10] b _0811A044 _08119FFE: bl sub_811A0C0 movs r0, 0x1 strb r0, [r5, 0x10] _0811A006: ldr r5, _0811A04C ldrb r4, [r5, 0x10] subs r4, 0x1 lsls r4, 25 lsrs r4, 24 ldrb r0, [r5, 0x16] lsls r0, 3 ldrb r1, [r5, 0x11] adds r0, r1 subs r0, 0x2 lsls r0, 24 lsrs r0, 24 adds r1, r4, r5 ldrb r1, [r1] bl sub_811A1C8 ldrb r0, [r5, 0x16] lsls r0, 3 ldrb r1, [r5, 0x11] adds r0, r1 subs r0, 0x1 lsls r0, 24 lsrs r0, 24 adds r4, 0x1 adds r4, r5 ldrb r1, [r4] bl sub_811A1C8 ldrb r0, [r5, 0x10] adds r0, 0x1 strb r0, [r5, 0x10] _0811A044: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811A04C: .4byte 0x0201c000 thumb_func_end sub_8119F88 thumb_func_start sub_811A050 sub_811A050: @ 811A050 push {r4-r6,lr} lsls r0, 16 lsrs r5, r0, 16 adds r6, r5, 0 ldr r0, _0811A08C ldr r0, [r0, 0x4] cmp r0, 0 bge _0811A09A ldr r4, _0811A090 ldrb r0, [r4, 0x1A] cmp r0, 0 bne _0811A09A ldrb r0, [r4, 0x1B] cmp r0, 0 bne _0811A09A movs r0, 0x4 strb r0, [r4, 0x1B] bl IsCryPlaying lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0811A094 bl StopCry strh r5, [r4, 0x18] movs r0, 0x2 strb r0, [r4, 0x1A] b _0811A09A .align 2, 0 _0811A08C: .4byte gMPlay_BGM _0811A090: .4byte 0x0201c000 _0811A094: adds r0, r6, 0 bl sub_811A0A0 _0811A09A: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_811A050 thumb_func_start sub_811A0A0 sub_811A0A0: @ 811A0A0 push {lr} lsls r0, 16 lsrs r0, 16 movs r1, 0 movs r2, 0x7D movs r3, 0xA bl PlayCry2 ldr r1, _0811A0BC movs r0, 0x1 strb r0, [r1, 0x10] pop {r0} bx r0 .align 2, 0 _0811A0BC: .4byte 0x0201c000 thumb_func_end sub_811A0A0 thumb_func_start sub_811A0C0 sub_811A0C0: @ 811A0C0 push {r4,lr} ldr r3, _0811A0D0 movs r0, 0 ldrsb r0, [r3, r0] cmp r0, 0x1 bgt _0811A0D8 ldr r0, _0811A0D4 b _0811A0F0 .align 2, 0 _0811A0D0: .4byte gPcmDmaCounter _0811A0D4: .4byte gSoundInfo + 0x350 _0811A0D8: ldr r2, _0811A11C ldrb r1, [r2, 0xB] movs r0, 0 ldrsb r0, [r3, r0] subs r0, 0x1 subs r1, r0 ldr r0, [r2, 0x10] muls r0, r1 movs r1, 0xD4 lsls r1, 2 adds r2, r1 adds r0, r2 _0811A0F0: movs r1, 0xC6 lsls r1, 3 adds r3, r0, r1 movs r2, 0 ldr r4, _0811A120 _0811A0FA: adds r1, r2, r4 lsls r0, r2, 1 adds r0, r3 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 1 strb r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xF bls _0811A0FA pop {r4} pop {r0} bx r0 .align 2, 0 _0811A11C: .4byte gSoundInfo _0811A120: .4byte 0x0201c000 thumb_func_end sub_811A0C0 thumb_func_start sub_811A124 sub_811A124: @ 811A124 push {r4,lr} ldr r4, _0811A158 ldrb r0, [r4, 0x16] lsls r0, 3 ldrb r1, [r4, 0x11] adds r0, r1 subs r0, 0x2 lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_811A1C8 ldrb r0, [r4, 0x16] lsls r0, 3 ldrb r4, [r4, 0x11] adds r0, r4 subs r0, 0x1 lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_811A1C8 pop {r4} pop {r0} bx r0 .align 2, 0 _0811A158: .4byte 0x0201c000 thumb_func_end sub_811A124 thumb_func_start sub_811A15C sub_811A15C: @ 811A15C push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r4, _0811A1B4 ldrb r1, [r4, 0x11] movs r2, 0 bl sub_811A350 ldrb r0, [r4, 0x11] adds r0, 0x2 strb r0, [r4, 0x11] ldrb r0, [r4, 0x11] lsrs r0, 3 ldrb r2, [r4, 0x16] adds r1, r0, r2 adds r2, r1, 0x1 adds r0, r2, 0 asrs r0, 5 lsls r0, 5 subs r0, r2, r0 lsls r0, 16 lsrs r3, r0, 16 movs r1, 0 ldr r2, _0811A1B8 ldr r6, _0811A1BC ldr r0, _0811A1C0 adds r5, r4, r0 ldr r4, _0811A1C4 _0811A194: str r6, [r2] lsls r0, r1, 5 adds r0, r3 lsls r0, 5 adds r0, r5 str r0, [r2, 0x4] str r4, [r2, 0x8] ldr r0, [r2, 0x8] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x6 bls _0811A194 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811A1B4: .4byte 0x0201c000 _0811A1B8: .4byte 0x040000d4 _0811A1BC: .4byte gUnknown_083FB718 _0811A1C0: .4byte 0xfffe4000 _0811A1C4: .4byte 0x80000010 thumb_func_end sub_811A15C thumb_func_start sub_811A1C8 sub_811A1C8: @ 811A1C8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r5, r0, 24 lsrs r4, r5, 24 lsls r1, 24 movs r0, 0xFE lsls r0, 23 adds r1, r0 lsrs r1, 16 adds r0, r1, 0 bl __floatsidf ldr r3, _0811A280 ldr r2, _0811A27C bl __divdf3 bl __fixunsdfsi lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x37 bls _0811A1FE movs r6, 0x37 _0811A1FE: str r6, [sp] movs r7, 0x1 ands r7, r4 ldr r0, _0811A284 mov r10, r0 lsrs r5, 27 mov r8, r5 ldr r0, _0811A288 mov r1, r10 ldrb r1, [r1, 0x12] cmp r6, r1 bls _0811A298 adds r0, r7, r0 ldrb r0, [r0] mov r9, r0 movs r2, 0x7 ands r2, r4 _0811A220: lsls r1, r6, 1 lsls r0, r2, 3 adds r0, r2 lsls r0, 4 adds r1, r0 ldr r3, _0811A28C adds r1, r3 mov r3, r8 lsls r0, r3, 5 ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r1, _0811A290 adds r5, r0, r1 ldrb r4, [r5] mov r3, r9 ands r4, r3 strb r4, [r5] adds r0, r6, 0 movs r1, 0x3 str r2, [sp, 0x8] bl __udivsi3 lsls r0, 24 lsrs r0, 24 subs r0, 0x1 movs r1, 0xF ands r0, r1 lsls r1, r7, 4 adds r0, r1 ldr r1, _0811A294 adds r0, r1 ldrb r0, [r0] orrs r4, r0 strb r4, [r5] subs r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 ldr r2, [sp, 0x8] ldr r3, _0811A284 ldrb r3, [r3, 0x12] cmp r6, r3 bhi _0811A220 b _0811A2FA .align 2, 0 _0811A27C: .4byte 0x40920000 _0811A280: .4byte 0x00000000 _0811A284: .4byte 0x0201c000 _0811A288: .4byte gUnknown_083FB738 _0811A28C: .4byte gUnknown_083FB274 _0811A290: .4byte 0x02000000 _0811A294: .4byte gUnknown_083FB73A _0811A298: lsls r1, r7, 4 str r1, [sp, 0x4] adds r0, r7, r0 ldrb r0, [r0] mov r9, r0 movs r7, 0x7 ands r7, r4 _0811A2A6: lsls r1, r6, 1 lsls r0, r7, 3 adds r0, r7 lsls r0, 4 adds r1, r0 ldr r2, _0811A314 adds r1, r2 mov r3, r8 lsls r0, r3, 5 ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r1, _0811A318 adds r5, r0, r1 ldrb r4, [r5] mov r2, r9 ands r4, r2 strb r4, [r5] adds r0, r6, 0 movs r1, 0x3 bl __udivsi3 lsls r0, 24 lsrs r0, 24 subs r0, 0x1 movs r1, 0xF ands r0, r1 ldr r3, [sp, 0x4] adds r0, r3 ldr r1, _0811A31C adds r0, r1 ldrb r0, [r0] orrs r4, r0 strb r4, [r5] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 ldr r2, _0811A320 ldrb r2, [r2, 0x12] cmp r6, r2 bcc _0811A2A6 _0811A2FA: mov r3, sp ldrb r0, [r3] mov r3, r10 strb r0, [r3, 0x12] add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811A314: .4byte gUnknown_083FB274 _0811A318: .4byte 0x02000000 _0811A31C: .4byte gUnknown_083FB73A _0811A320: .4byte 0x0201c000 thumb_func_end sub_811A1C8 thumb_func_start sub_811A324 sub_811A324: @ 811A324 ldr r2, _0811A344 ldr r0, _0811A348 str r0, [r2] movs r1, 0xE0 lsls r1, 9 adds r0, r1 ldrh r0, [r0, 0x14] movs r1, 0xC0 lsls r1, 19 adds r0, r1 str r0, [r2, 0x4] ldr r0, _0811A34C str r0, [r2, 0x8] ldr r0, [r2, 0x8] bx lr .align 2, 0 _0811A344: .4byte 0x040000d4 _0811A348: .4byte 0x02000000 _0811A34C: .4byte 0x80000e00 thumb_func_end sub_811A324 thumb_func_start sub_811A350 sub_811A350: @ 811A350 push {lr} lsls r0, 24 lsrs r0, 24 adds r3, r0, 0 lsls r1, 16 lsrs r1, 16 lsls r2, 24 lsrs r2, 24 cmp r0, 0x1 beq _0811A38C cmp r0, 0x1 bgt _0811A36E cmp r0, 0 beq _0811A378 b _0811A3C4 _0811A36E: cmp r3, 0x2 beq _0811A3A0 cmp r3, 0x3 beq _0811A3B4 b _0811A3C4 _0811A378: cmp r2, 0 beq _0811A384 ldr r0, _0811A380 b _0811A3C2 .align 2, 0 _0811A380: .4byte REG_BG0VOFS _0811A384: ldr r0, _0811A388 b _0811A3C2 .align 2, 0 _0811A388: .4byte REG_BG0HOFS _0811A38C: cmp r2, 0 beq _0811A398 ldr r0, _0811A394 b _0811A3C2 .align 2, 0 _0811A394: .4byte REG_BG1VOFS _0811A398: ldr r0, _0811A39C b _0811A3C2 .align 2, 0 _0811A39C: .4byte REG_BG1HOFS _0811A3A0: cmp r2, 0 beq _0811A3AC ldr r0, _0811A3A8 b _0811A3C2 .align 2, 0 _0811A3A8: .4byte REG_BG2VOFS _0811A3AC: ldr r0, _0811A3B0 b _0811A3C2 .align 2, 0 _0811A3B0: .4byte REG_BG2HOFS _0811A3B4: cmp r2, 0 beq _0811A3C0 ldr r0, _0811A3BC b _0811A3C2 .align 2, 0 _0811A3BC: .4byte REG_BG3VOFS _0811A3C0: ldr r0, _0811A3C8 _0811A3C2: strh r1, [r0] _0811A3C4: pop {r0} bx r0 .align 2, 0 _0811A3C8: .4byte REG_BG3HOFS thumb_func_end sub_811A350 thumb_func_start sub_811A3CC sub_811A3CC: @ 811A3CC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r4, r0, 0 movs r0, 0 str r0, [sp] ldr r0, _0811A3F4 ldrb r1, [r0] mov r10, r0 cmp r1, 0x1 beq _0811A42C cmp r1, 0x1 bgt _0811A3F8 cmp r1, 0 beq _0811A3FE b _0811A4D6 .align 2, 0 _0811A3F4: .4byte gUnknown_03005E98 _0811A3F8: cmp r1, 0x2 beq _0811A494 b _0811A4D6 _0811A3FE: ldr r0, _0811A424 ldrh r1, [r4] movs r2, 0xC0 lsls r2, 19 adds r1, r2 bl LZ77UnCompVram ldr r0, _0811A428 ldrb r1, [r4, 0x3] lsls r1, 4 movs r2, 0x20 bl LoadPalette mov r1, r10 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0811A4D6 .align 2, 0 _0811A424: .4byte gUnknown_083FAF3C _0811A428: .4byte gUnknown_083FAF1C _0811A42C: ldrb r0, [r4, 0x2] lsls r0, 11 movs r1, 0xC0 lsls r1, 19 adds r0, r1 mov r8, r0 ldrh r0, [r4] lsls r0, 18 lsrs r0, 23 mov r12, r0 movs r5, 0 ldr r2, _0811A490 mov r9, r2 _0811A446: movs r3, 0 lsls r0, r5, 2 adds r7, r5, 0x1 adds r0, r5 lsls r6, r0, 1 _0811A450: ldrb r0, [r4, 0x5] adds r0, r5, r0 ldrb r2, [r4, 0x4] adds r2, r3, r2 lsls r2, 1 lsls r0, 6 adds r2, r0 add r2, r8 adds r1, r6, r3 lsls r1, 1 add r1, r9 ldrb r0, [r4, 0x3] lsls r0, 12 ldrh r1, [r1] orrs r0, r1 add r0, r12 strh r0, [r2] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x9 bls _0811A450 lsls r0, r7, 24 lsrs r5, r0, 24 cmp r5, 0x7 bls _0811A446 mov r3, r10 ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] b _0811A4D6 .align 2, 0 _0811A490: .4byte gUnknown_083FAE7C _0811A494: ldr r0, _0811A4E8 bl LoadSpriteSheets ldr r0, _0811A4EC bl LoadSpritePalettes ldr r0, _0811A4F0 ldrb r1, [r4, 0x4] lsls r1, 19 movs r2, 0xA0 lsls r2, 14 adds r1, r2 asrs r1, 16 ldrb r2, [r4, 0x5] lsls r2, 19 movs r3, 0xE0 lsls r3, 14 adds r2, r3 asrs r2, 16 movs r3, 0x1 bl CreateSprite ldr r1, _0811A4F4 lsls r0, 24 lsrs r0, 24 movs r2, 0 strh r0, [r1, 0x4] movs r0, 0x20 strb r0, [r1] strb r0, [r1, 0x1] strb r2, [r1, 0x2] movs r0, 0x1 str r0, [sp] _0811A4D6: ldr r0, [sp] add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811A4E8: .4byte gCryMeterNeedleSpriteSheets _0811A4EC: .4byte gCryMeterNeedleSpritePalettes _0811A4F0: .4byte gSpriteTemplate_83FB774 _0811A4F4: .4byte 0x0201c800 thumb_func_end sub_811A3CC thumb_func_start sub_811A4F8 sub_811A4F8: @ 811A4F8 push {r4,r5,lr} ldr r5, _0811A52C ldr r4, _0811A530 ldrh r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r0, [r0, 0x5] lsrs r0, 4 bl GetSpritePaletteTagByPaletteNum lsls r0, 16 lsrs r0, 16 bl FreeSpritePaletteByTag ldrh r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl DestroySprite pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811A52C: .4byte gSprites _0811A530: .4byte 0x0201c800 thumb_func_end sub_811A4F8 thumb_func_start sub_811A534 sub_811A534: @ 811A534 push {r4-r7,lr} sub sp, 0x14 adds r7, r0, 0 ldr r3, _0811A578 ldr r5, _0811A57C ldrh r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r2, [r0, 0x1] movs r1, 0x4 negs r1, r1 ands r1, r2 movs r2, 0x1 orrs r1, r2 strb r1, [r0, 0x1] ldrh r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0 strh r1, [r0, 0x6] ldr r0, _0811A580 adds r1, r5, r0 ldrb r0, [r1, 0x10] cmp r0, 0x2 beq _0811A5AA cmp r0, 0x2 bgt _0811A584 cmp r0, 0 beq _0811A58A b _0811A5F4 .align 2, 0 _0811A578: .4byte gSprites _0811A57C: .4byte 0x0201c800 _0811A580: .4byte 0xfffff800 _0811A584: cmp r0, 0x6 beq _0811A5E2 b _0811A5F4 _0811A58A: movs r0, 0x20 strb r0, [r5, 0x1] movs r0, 0 ldrsb r0, [r5, r0] cmp r0, 0 ble _0811A5A4 ldrb r0, [r5, 0x2] add r4, sp, 0xC cmp r0, 0x1 beq _0811A5F6 subs r0, 0x1 strb r0, [r5, 0x2] b _0811A5F6 _0811A5A4: movs r0, 0x5 strb r0, [r5, 0x2] b _0811A5F4 _0811A5AA: movs r3, 0 movs r2, 0 add r4, sp, 0xC adds r5, r1, 0 _0811A5B2: lsls r1, r3, 24 asrs r1, 24 adds r0, r2, r5 ldrb r0, [r0] cmp r1, r0 bge _0811A5C0 adds r3, r0, 0 _0811A5C0: adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0xF bls _0811A5B2 lsls r0, r3, 24 asrs r0, 24 movs r1, 0xD0 muls r0, r1 cmp r0, 0 bge _0811A5D8 adds r0, 0xFF _0811A5D8: lsls r0, 16 asrs r0, 24 bl sub_811A6D8 b _0811A5F6 _0811A5E2: ldr r1, _0811A620 adds r0, r5, r1 ldrb r1, [r0] movs r0, 0xD0 muls r0, r1 lsls r0, 16 asrs r0, 24 bl sub_811A6D8 _0811A5F4: add r4, sp, 0xC _0811A5F6: ldr r0, _0811A624 ldrb r3, [r0] movs r2, 0 ldrsb r2, [r0, r2] ldrb r6, [r0, 0x1] movs r1, 0x1 ldrsb r1, [r0, r1] adds r5, r0, 0 cmp r2, r1 beq _0811A63C cmp r2, r1 bge _0811A628 ldrb r0, [r5, 0x2] adds r0, r3, r0 strb r0, [r5] lsls r0, 24 asrs r0, 24 cmp r0, r1 ble _0811A63C b _0811A636 .align 2, 0 _0811A620: .4byte 0xfffff80a _0811A624: .4byte 0x0201c800 _0811A628: ldrb r0, [r5, 0x2] subs r0, r3, r0 strb r0, [r5] lsls r0, 24 asrs r0, 24 cmp r0, r1 bge _0811A63C _0811A636: strb r6, [r5] movs r0, 0 strb r0, [r5, 0x1] _0811A63C: ldr r2, _0811A6CC ldr r0, [sp, 0x4] ands r0, r2 movs r1, 0x80 lsls r1, 1 orrs r0, r1 ldr r1, _0811A6D0 ands r0, r1 movs r1, 0x80 lsls r1, 17 orrs r0, r1 str r0, [sp, 0x4] movs r1, 0 ldrsb r1, [r5, r1] lsls r1, 24 lsrs r1, 16 ldr r0, [sp, 0x8] ands r0, r2 orrs r0, r1 str r0, [sp, 0x8] add r0, sp, 0x4 adds r1, r4, 0 movs r2, 0x1 movs r3, 0x2 bl ObjAffineSet add r0, sp, 0xC ldrh r1, [r0] ldrh r2, [r4, 0x2] ldrh r3, [r4, 0x4] ldrh r0, [r4, 0x6] str r0, [sp] movs r0, 0 bl SetOamMatrix ldr r2, _0811A6D4 movs r0, 0 ldrsb r0, [r5, r0] adds r0, 0x7F movs r1, 0xFF ands r0, r1 lsls r1, r0, 1 adds r1, r2 adds r0, 0x40 lsls r0, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0 ldrsh r1, [r1, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 cmp r0, 0 bge _0811A6AA adds r0, 0xFF _0811A6AA: asrs r0, 8 strh r0, [r7, 0x24] lsls r1, r2, 16 asrs r1, 16 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 cmp r0, 0 bge _0811A6BE adds r0, 0xFF _0811A6BE: asrs r0, 8 strh r0, [r7, 0x26] add sp, 0x14 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811A6CC: .4byte 0xffff0000 _0811A6D0: .4byte 0x0000ffff _0811A6D4: .4byte gSineTable thumb_func_end sub_811A534 thumb_func_start sub_811A6D8 sub_811A6D8: @ 811A6D8 push {lr} lsls r0, 24 asrs r0, 24 movs r1, 0x20 subs r2, r1, r0 movs r0, 0xFF ands r2, r0 adds r0, r2, 0 subs r0, 0x21 lsls r0, 16 lsrs r0, 16 cmp r0, 0xBE bhi _0811A6F4 movs r2, 0xE0 _0811A6F4: ldr r1, _0811A700 strb r2, [r1, 0x1] movs r0, 0x5 strb r0, [r1, 0x2] pop {r0} bx r0 .align 2, 0 _0811A700: .4byte 0x0201c800 thumb_func_end sub_811A6D8 thumb_func_start sub_811A704 sub_811A704: @ 811A704 push {r4,lr} adds r4, r1, 0 adds r3, r2, 0 lsls r4, 24 lsls r3, 24 movs r1, 0x80 lsls r1, 18 adds r4, r1 lsrs r4, 24 movs r1, 0x80 lsls r1, 17 adds r3, r1 lsrs r3, 24 movs r1, 0x4 adds r2, r4, 0 bl sub_811A798 pop {r4} pop {r0} bx r0 thumb_func_end sub_811A704 thumb_func_start sub_811A72C sub_811A72C: @ 811A72C push {r4-r6,lr} mov r6, r8 push {r6} mov r8, r0 adds r4, r1, 0 adds r3, r2, 0 lsls r4, 24 lsls r3, 24 lsrs r6, r4, 24 movs r0, 0x90 lsls r0, 20 adds r4, r0 lsrs r4, 24 lsrs r5, r3, 24 movs r0, 0xC0 lsls r0, 18 adds r3, r0 lsrs r3, 24 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl MenuDrawTextWindow mov r0, r8 adds r1, r6, 0 adds r2, r5, 0 bl sub_811A704 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_811A72C thumb_func_start sub_811A770 sub_811A770: @ 811A770 push {r4,lr} adds r2, r0, 0 adds r3, r1, 0 lsls r2, 24 lsls r3, 24 lsrs r0, r2, 24 movs r1, 0x90 lsls r1, 20 adds r2, r1 lsrs r2, 24 lsrs r1, r3, 24 movs r4, 0xC0 lsls r4, 18 adds r3, r4 lsrs r3, 24 bl MenuZeroFillWindowRect pop {r4} pop {r0} bx r0 thumb_func_end sub_811A770 thumb_func_start sub_811A798 sub_811A798: @ 811A798 push {r4-r7,lr} sub sp, 0x10 adds r4, r0, 0 lsls r1, 24 lsrs r1, 24 adds r5, r1, 0 lsls r2, 24 lsrs r6, r2, 24 lsls r3, 24 lsrs r7, r3, 24 mov r0, sp adds r1, r4, 0 bl ConvertIntToDecimalString lsls r1, r5, 1 adds r1, r5 lsls r1, 1 adds r1, 0x21 adds r0, r5, 0x2 lsls r0, 3 subs r1, r0 lsls r1, 24 lsrs r0, r1, 27 subs r0, r6, r0 lsls r0, 24 lsrs r6, r0, 24 movs r0, 0xE0 lsls r0, 19 ands r0, r1 lsrs r1, r0, 24 ldr r4, _0811A824 cmp r1, 0 beq _0811A7EA movs r0, 0xFC strb r0, [r4] movs r0, 0x11 strb r0, [r4, 0x1] movs r0, 0x8 subs r0, r1 strb r0, [r4, 0x2] adds r4, 0x3 _0811A7EA: movs r0, 0xFC strb r0, [r4] movs r0, 0x11 strb r0, [r4, 0x1] mov r0, sp bl StringLength lsls r0, 16 lsrs r0, 16 subs r0, r5, r0 lsls r1, r0, 1 adds r1, r0 lsls r1, 1 strb r1, [r4, 0x2] adds r4, 0x3 adds r0, r4, 0 mov r1, sp bl StringCopy ldr r0, _0811A828 adds r1, r6, 0 adds r2, r7, 0 bl MenuPrint add sp, 0x10 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811A824: .4byte gStringVar1 _0811A828: .4byte gOtherText_Coins2 thumb_func_end sub_811A798 thumb_func_start GetCoins GetCoins: @ 811A82C ldr r0, _0811A838 ldr r1, _0811A83C adds r0, r1 ldrh r0, [r0] bx lr .align 2, 0 _0811A838: .4byte gSaveBlock1 _0811A83C: .4byte 0x00000494 thumb_func_end GetCoins thumb_func_start sub_811A840 sub_811A840: @ 811A840 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 bl GetCoins lsls r0, 16 ldr r1, _0811A858 cmp r0, r1 bls _0811A85C movs r0, 0 b _0811A88C .align 2, 0 _0811A858: .4byte 0x270e0000 _0811A85C: ldr r0, _0811A874 ldr r1, _0811A878 adds r3, r0, r1 ldrh r1, [r3] adds r2, r4, r1 lsls r0, r2, 16 lsrs r0, 16 cmp r1, r0 bls _0811A880 ldr r0, _0811A87C strh r0, [r3] b _0811A88A .align 2, 0 _0811A874: .4byte gSaveBlock1 _0811A878: .4byte 0x00000494 _0811A87C: .4byte 0x0000270f _0811A880: strh r2, [r3] ldr r1, _0811A894 cmp r0, r1 bls _0811A88A strh r1, [r3] _0811A88A: movs r0, 0x1 _0811A88C: pop {r4} pop {r1} bx r1 .align 2, 0 _0811A894: .4byte 0x0000270f thumb_func_end sub_811A840 thumb_func_start sub_811A898 sub_811A898: @ 811A898 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 bl GetCoins lsls r0, 16 lsrs r0, 16 cmp r0, r4 bcs _0811A8AE movs r0, 0 b _0811A8BC _0811A8AE: ldr r1, _0811A8C4 ldr r0, _0811A8C8 adds r1, r0 ldrh r0, [r1] subs r0, r4 strh r0, [r1] movs r0, 0x1 _0811A8BC: pop {r4} pop {r1} bx r1 .align 2, 0 _0811A8C4: .4byte gSaveBlock1 _0811A8C8: .4byte 0x00000494 thumb_func_end sub_811A898 thumb_func_start sub_811A8CC sub_811A8CC: @ 811A8CC push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r5, r2, 24 bl sub_811A920 adds r4, r0, 0 cmp r4, 0 bne _0811A8E8 _0811A8E4: movs r0, 0 b _0811A91A _0811A8E8: ldr r6, _0811A8EC b _0811A8FE .align 2, 0 _0811A8EC: .4byte 0x0000ffff _0811A8F0: subs r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _0811A8F6: adds r4, 0x4 ldr r0, [r4] cmp r0, 0 beq _0811A8E4 _0811A8FE: ldr r1, [r4] ldrh r0, [r1, 0x4] cmp r0, r6 beq _0811A912 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0811A8F6 _0811A912: cmp r5, 0 bne _0811A8F0 ldr r0, [r4] ldr r0, [r0] _0811A91A: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_811A8CC thumb_func_start sub_811A920 sub_811A920: @ 811A920 push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r6, r1, 24 movs r2, 0 ldr r0, _0811A964 ldrb r1, [r0] adds r4, r0, 0 cmp r1, 0x58 beq _0811A990 adds r1, r4, 0 _0811A938: lsls r0, r2, 3 adds r0, r1 ldrb r0, [r0] cmp r0, r3 bhi _0811A990 cmp r0, r3 beq _0811A956 adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 lsls r0, r2, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x58 bne _0811A938 _0811A956: lsls r0, r2, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x58 bne _0811A970 b _0811A990 .align 2, 0 _0811A964: .4byte gLandmarkLists _0811A968: adds r0, r4, 0x4 adds r0, r1, r0 ldr r0, [r0] b _0811A992 _0811A970: cmp r0, r3 bne _0811A990 ldr r5, _0811A998 _0811A976: lsls r1, r2, 3 adds r0, r1, r5 ldrb r0, [r0, 0x1] cmp r0, r6 beq _0811A968 adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 lsls r0, r2, 3 adds r0, r4 ldrb r0, [r0] cmp r0, r3 beq _0811A976 _0811A990: movs r0, 0 _0811A992: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0811A998: .4byte gLandmarkLists thumb_func_end sub_811A920 thumb_func_start sub_811A99C sub_811A99C: @ 811A99C push {lr} bl sub_81474C8 lsls r0, 24 cmp r0, 0 beq _0811A9D4 ldr r1, _0811A9BC ldr r0, _0811A9C0 ldrb r0, [r0] strh r0, [r1] ldr r1, _0811A9C4 ldr r0, _0811A9C8 str r0, [r1] ldr r1, _0811A9CC ldr r0, _0811A9D0 b _0811A9F8 .align 2, 0 _0811A9BC: .4byte gScriptResult _0811A9C0: .4byte gUnknown_03005CE0 _0811A9C4: .4byte gUnknown_0300485C _0811A9C8: .4byte sub_808AB90 _0811A9CC: .4byte gUnknown_03005CE4 _0811A9D0: .4byte sub_811AA38 _0811A9D4: movs r0, 0x57 bl npc_before_player_of_type lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0811A9E6 movs r0, 0 b _0811A9FC _0811A9E6: ldr r1, _0811AA00 ldr r0, _0811AA04 ldrb r0, [r0] strh r0, [r1] ldr r1, _0811AA08 ldr r0, _0811AA0C str r0, [r1] ldr r1, _0811AA10 ldr r0, _0811AA14 _0811A9F8: str r0, [r1] movs r0, 0x1 _0811A9FC: pop {r1} bx r1 .align 2, 0 _0811AA00: .4byte gScriptResult _0811AA04: .4byte gUnknown_03005CE0 _0811AA08: .4byte gUnknown_0300485C _0811AA0C: .4byte sub_808AB90 _0811AA10: .4byte gUnknown_03005CE4 _0811AA14: .4byte sub_811AA18 thumb_func_end sub_811A99C thumb_func_start sub_811AA18 sub_811AA18: @ 811AA18 push {lr} ldr r1, _0811AA2C ldr r0, _0811AA30 ldrb r0, [r0] str r0, [r1] ldr r0, _0811AA34 bl ScriptContext1_SetupScript pop {r0} bx r0 .align 2, 0 _0811AA2C: .4byte gUnknown_0202FF84 _0811AA30: .4byte gUnknown_03005CE0 _0811AA34: .4byte UseStrengthScript thumb_func_end sub_811AA18 thumb_func_start sub_811AA38 sub_811AA38: @ 811AA38 push {lr} ldr r0, _0811AA4C ldr r1, _0811AA50 ldrb r1, [r1] str r1, [r0] movs r0, 0x28 bl FieldEffectStart pop {r0} bx r0 .align 2, 0 _0811AA4C: .4byte gUnknown_0202FF84 _0811AA50: .4byte gUnknown_03005CE0 thumb_func_end sub_811AA38 thumb_func_start sub_811AA54 sub_811AA54: @ 811AA54 push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _0811AA88 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _0811AA8C lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] ldr r0, _0811AA90 ldr r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0811AA94 adds r0, r1 ldr r1, _0811AA98 bl GetMonNickname movs r0, 0 pop {r1} bx r1 .align 2, 0 _0811AA88: .4byte gTasks _0811AA8C: .4byte sub_811AA9C _0811AA90: .4byte gUnknown_0202FF84 _0811AA94: .4byte gPlayerParty _0811AA98: .4byte gStringVar1 thumb_func_end sub_811AA54 thumb_func_start sub_811AA9C sub_811AA9C: @ 811AA9C push {lr} bl sub_81474C8 lsls r0, 24 cmp r0, 0 beq _0811AAAE bl sub_8147514 b _0811AAB8 _0811AAAE: movs r0, 0x28 bl FieldEffectActiveListRemove bl EnableBothScriptContexts _0811AAB8: pop {r0} bx r0 thumb_func_end sub_811AA9C thumb_func_start sub_811AABC sub_811AABC: @ 811AABC push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0811AAD0 ldr r1, _0811AAD4 str r1, [r2, 0x4] bl sub_811AB20 pop {r0} bx r0 .align 2, 0 _0811AAD0: .4byte gMain _0811AAD4: .4byte sub_8054398 thumb_func_end sub_811AABC thumb_func_start sub_811AAD8 sub_811AAD8: @ 811AAD8 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_811AB20 pop {r0} bx r0 thumb_func_end sub_811AAD8 thumb_func_start sub_811AAE8 sub_811AAE8: @ 811AAE8 push {lr} ldr r0, _0811AB0C bl FindTaskIdByFunc lsls r0, 24 lsrs r2, r0, 24 ldr r1, _0811AB10 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 movs r1, 0x26 ldrsh r0, [r0, r1] cmp r0, 0 bne _0811AB14 movs r0, 0 b _0811AB1C .align 2, 0 _0811AB0C: .4byte sub_811AB50 _0811AB10: .4byte gTasks _0811AB14: adds r0, r2, 0 bl DestroyTask movs r0, 0x1 _0811AB1C: pop {r1} bx r1 thumb_func_end sub_811AAE8 thumb_func_start sub_811AB20 sub_811AB20: @ 811AB20 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0811AB48 movs r1, 0x2 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0811AB4C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0xA] pop {r4} pop {r0} bx r0 .align 2, 0 _0811AB48: .4byte sub_811AB50 _0811AB4C: .4byte gTasks thumb_func_end sub_811AB20 thumb_func_start sub_811AB50 sub_811AB50: @ 811AB50 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811AB80 ldr r2, _0811AB84 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811AB62: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811AB62 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811AB80: .4byte gUnknown_083FD794 _0811AB84: .4byte gTasks thumb_func_end sub_811AB50 thumb_func_start sub_811AB88 sub_811AB88: @ 811AB88 push {r4,lr} adds r4, r0, 0 bl sub_807DE10 ldr r0, _0811ABB4 ldr r1, _0811ABB8 ldr r2, _0811ABBC bl CpuSet ldr r1, _0811ABC0 movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r1 ldr r0, [r0] cmp r0, 0 bne _0811ABC4 movs r0, 0x2 strh r0, [r4, 0x8] movs r0, 0x1 b _0811ABD2 .align 2, 0 _0811ABB4: .4byte gPlttBufferFaded _0811ABB8: .4byte gPlttBufferUnfaded _0811ABBC: .4byte 0x04000100 _0811ABC0: .4byte gUnknown_083FD70C _0811ABC4: movs r1, 0x4 bl CreateTask ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 _0811ABD2: pop {r4} pop {r1} bx r1 thumb_func_end sub_811AB88 thumb_func_start sub_811ABD8 sub_811ABD8: @ 811ABD8 push {r4,lr} adds r4, r0, 0 ldr r1, _0811ABF8 movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _0811ABFC movs r0, 0 b _0811AC04 .align 2, 0 _0811ABF8: .4byte gUnknown_083FD70C _0811ABFC: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x1 _0811AC04: pop {r4} pop {r1} bx r1 thumb_func_end sub_811ABD8 thumb_func_start sub_811AC0C sub_811AC0C: @ 811AC0C push {r4,lr} adds r4, r0, 0 ldr r1, _0811AC30 movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0 bl CreateTask ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0811AC30: .4byte gBattleTransitionFuncs thumb_func_end sub_811AC0C thumb_func_start sub_811AC34 sub_811AC34: @ 811AC34 push {r4,lr} adds r4, r0, 0 movs r0, 0 strh r0, [r4, 0x26] ldr r1, _0811AC60 movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _0811AC58 movs r0, 0x1 strh r0, [r4, 0x26] _0811AC58: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0811AC60: .4byte gBattleTransitionFuncs thumb_func_end sub_811AC34 thumb_func_start sub_811AC64 sub_811AC64: @ 811AC64 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 ldr r1, _0811AC98 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 ldrh r2, [r1, 0x8] movs r3, 0x8 ldrsh r0, [r1, r3] cmp r0, 0 bne _0811AC9C adds r0, r2, 0x1 strh r0, [r1, 0x8] movs r0, 0x2 str r0, [sp] movs r0, 0 movs r1, 0 movs r2, 0x3 movs r3, 0x2 bl sub_811D4C8 b _0811ACAC .align 2, 0 _0811AC98: .4byte gTasks _0811AC9C: bl sub_811D52C lsls r0, 24 cmp r0, 0 beq _0811ACAC adds r0, r4, 0 bl DestroyTask _0811ACAC: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_811AC64 thumb_func_start sub_811ACB4 sub_811ACB4: @ 811ACB4 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811ACE4 ldr r2, _0811ACE8 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811ACC6: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811ACC6 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811ACE4: .4byte gUnknown_083FD7A4 _0811ACE8: .4byte gTasks thumb_func_end sub_811ACB4 thumb_func_start sub_811ACEC sub_811ACEC: @ 811ACEC ldr r2, _0811AD18 movs r1, 0 strh r1, [r2] subs r2, 0x42 ldrh r1, [r2] movs r3, 0x40 orrs r1, r3 strh r1, [r2] adds r2, 0x2 ldrh r1, [r2] orrs r1, r3 strh r1, [r2] adds r2, 0x2 ldrh r1, [r2] orrs r1, r3 strh r1, [r2] ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] movs r0, 0x1 bx lr .align 2, 0 _0811AD18: .4byte REG_MOSAIC thumb_func_end sub_811ACEC thumb_func_start sub_811AD1C sub_811AD1C: @ 811AD1C push {r4,lr} sub sp, 0x4 adds r4, r0, 0 ldrh r0, [r4, 0xA] movs r1, 0xA ldrsh r2, [r4, r1] cmp r2, 0 beq _0811AD32 subs r0, 0x1 strh r0, [r4, 0xA] b _0811AD70 _0811AD32: movs r0, 0x4 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _0811AD54 movs r1, 0x1 negs r1, r1 str r2, [sp] adds r0, r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade _0811AD54: ldr r2, _0811AD7C ldrh r0, [r4, 0xC] movs r1, 0xF ands r1, r0 lsls r0, r1, 4 adds r0, r1 strh r0, [r2] movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0xE ble _0811AD70 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0811AD70: movs r0, 0 add sp, 0x4 pop {r4} pop {r1} bx r1 .align 2, 0 _0811AD7C: .4byte REG_MOSAIC thumb_func_end sub_811AD1C thumb_func_start sub_811AD80 sub_811AD80: @ 811AD80 push {lr} ldr r0, _0811ADA4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0811AD9C ldr r0, _0811ADA8 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0811AD9C: movs r0, 0 pop {r1} bx r1 .align 2, 0 _0811ADA4: .4byte gPaletteFade _0811ADA8: .4byte sub_811ACB4 thumb_func_end sub_811AD80 thumb_func_start sub_811ADAC sub_811ADAC: @ 811ADAC push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811ADDC ldr r2, _0811ADE0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811ADBE: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811ADBE pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811ADDC: .4byte gUnknown_083FD7B0 _0811ADE0: .4byte gTasks thumb_func_end sub_811ADAC thumb_func_start sub_811ADE4 sub_811ADE4: @ 811ADE4 push {r4,r5,lr} sub sp, 0x8 adds r5, r0, 0 bl sub_811D658 bl dp12_8087EA4 movs r0, 0x1 negs r0, r0 movs r4, 0 str r4, [sp] movs r1, 0x4 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0811AE54 ldr r1, _0811AE58 movs r2, 0x14 ldrsh r1, [r1, r2] str r4, [sp] movs r2, 0xA0 str r2, [sp, 0x4] movs r2, 0 movs r3, 0x2 bl sub_811D6E8 ldr r0, _0811AE5C bl SetVBlankCallback ldr r0, _0811AE60 bl SetHBlankCallback ldr r3, _0811AE64 ldrh r2, [r3] strh r4, [r3] ldr r4, _0811AE68 ldrh r0, [r4] movs r1, 0x3 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _0811AE6C ldrh r0, [r2] movs r1, 0x18 orrs r0, r1 strh r0, [r2] ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0 add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0811AE54: .4byte gUnknown_03005560 _0811AE58: .4byte 0x0200c000 _0811AE5C: .4byte sub_811AEE0 _0811AE60: .4byte sub_811AF18 _0811AE64: .4byte 0x04000208 _0811AE68: .4byte 0x04000200 _0811AE6C: .4byte REG_DISPSTAT thumb_func_end sub_811ADE4 thumb_func_start sub_811AE70 sub_811AE70: @ 811AE70 push {r4,r5,lr} sub sp, 0x8 ldr r4, _0811AED0 ldrb r1, [r4] movs r1, 0 strb r1, [r4] ldrh r1, [r0, 0xA] adds r1, 0x4 strh r1, [r0, 0xA] ldrh r1, [r0, 0xC] adds r1, 0x8 strh r1, [r0, 0xC] ldr r3, _0811AED4 movs r2, 0x14 ldrsh r1, [r4, r2] movs r5, 0xA ldrsh r2, [r0, r5] movs r5, 0xC ldrsh r0, [r0, r5] str r0, [sp] movs r0, 0xA0 str r0, [sp, 0x4] adds r0, r3, 0 movs r3, 0x2 bl sub_811D6E8 ldr r0, _0811AED8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0811AEBE ldr r0, _0811AEDC bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0811AEBE: ldrb r0, [r4] adds r0, 0x1 ldrb r1, [r4] strb r0, [r4] movs r0, 0 add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0811AED0: .4byte 0x0200c000 _0811AED4: .4byte gUnknown_03004DE0 _0811AED8: .4byte gPaletteFade _0811AEDC: .4byte sub_811ADAC thumb_func_end sub_811AE70 thumb_func_start sub_811AEE0 sub_811AEE0: @ 811AEE0 push {lr} bl sub_811D67C ldr r0, _0811AF08 ldrb r0, [r0] cmp r0, 0 beq _0811AF02 ldr r1, _0811AF0C ldr r0, _0811AF10 str r0, [r1] movs r2, 0xF0 lsls r2, 3 adds r0, r2 str r0, [r1, 0x4] ldr r0, _0811AF14 str r0, [r1, 0x8] ldr r0, [r1, 0x8] _0811AF02: pop {r0} bx r0 .align 2, 0 _0811AF08: .4byte 0x0200c000 _0811AF0C: .4byte 0x040000d4 _0811AF10: .4byte gUnknown_03004DE0 _0811AF14: .4byte 0x800000a0 thumb_func_end sub_811AEE0 thumb_func_start sub_811AF18 sub_811AF18: @ 811AF18 ldr r1, _0811AF38 ldr r0, _0811AF3C ldrh r0, [r0] lsls r0, 1 movs r2, 0xF0 lsls r2, 3 adds r1, r2 adds r0, r1 ldrh r1, [r0] ldr r0, _0811AF40 strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x4 strh r1, [r0] bx lr .align 2, 0 _0811AF38: .4byte gUnknown_03004DE0 _0811AF3C: .4byte REG_VCOUNT _0811AF40: .4byte REG_BG1HOFS thumb_func_end sub_811AF18 thumb_func_start sub_811AF44 sub_811AF44: @ 811AF44 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811AF74 ldr r2, _0811AF78 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811AF56: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811AF56 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811AF74: .4byte gUnknown_083FD7B8 _0811AF78: .4byte gTasks thumb_func_end sub_811AF44 thumb_func_start sub_811AF7C sub_811AF7C: @ 811AF7C push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 bl sub_811D658 bl dp12_8087EA4 movs r0, 0x1 negs r0, r0 movs r4, 0 str r4, [sp] movs r1, 0x4 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0811AFE4 ldr r0, _0811AFE8 movs r2, 0x16 ldrsh r1, [r1, r2] movs r2, 0xA0 lsls r2, 1 bl memset ldr r0, _0811AFEC bl SetVBlankCallback ldr r0, _0811AFF0 bl SetHBlankCallback ldr r3, _0811AFF4 ldrh r2, [r3] strh r4, [r3] ldr r4, _0811AFF8 ldrh r0, [r4] movs r1, 0x3 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _0811AFFC ldrh r0, [r2] movs r1, 0x18 orrs r0, r1 strh r0, [r2] ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0811AFE4: .4byte 0x0200c000 _0811AFE8: .4byte gUnknown_03005560 _0811AFEC: .4byte sub_811B08C _0811AFF0: .4byte sub_811B0C4 _0811AFF4: .4byte 0x04000208 _0811AFF8: .4byte 0x04000200 _0811AFFC: .4byte REG_DISPSTAT thumb_func_end sub_811AF7C thumb_func_start sub_811B000 sub_811B000: @ 811B000 push {r4-r7,lr} ldr r2, _0811B07C ldrb r1, [r2] movs r1, 0 strb r1, [r2] ldrh r4, [r0, 0xA] ldrh r2, [r0, 0xC] lsls r3, r2, 16 asrs r3, 24 movs r5, 0x84 lsls r5, 5 adds r1, r4, r5 strh r1, [r0, 0xA] movs r1, 0xC0 lsls r1, 1 adds r2, r1 strh r2, [r0, 0xC] movs r5, 0 lsls r7, r3, 16 _0811B026: lsrs r0, r4, 8 asrs r1, r7, 16 bl Sin ldr r2, _0811B080 lsls r1, r5, 1 adds r1, r2 ldr r6, _0811B07C ldrh r2, [r6, 0x16] adds r0, r2 strh r0, [r1] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 movs r1, 0x84 lsls r1, 5 adds r0, r4, r1 lsls r0, 16 lsrs r4, r0, 16 cmp r5, 0x9F bls _0811B026 ldr r0, _0811B084 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0811B06A ldr r0, _0811B088 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0811B06A: ldrb r0, [r6] adds r0, 0x1 ldrb r1, [r6] strb r0, [r6] movs r0, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811B07C: .4byte 0x0200c000 _0811B080: .4byte gUnknown_03004DE0 _0811B084: .4byte gPaletteFade _0811B088: .4byte sub_811AF44 thumb_func_end sub_811B000 thumb_func_start sub_811B08C sub_811B08C: @ 811B08C push {lr} bl sub_811D67C ldr r0, _0811B0B4 ldrb r0, [r0] cmp r0, 0 beq _0811B0AE ldr r1, _0811B0B8 ldr r0, _0811B0BC str r0, [r1] movs r2, 0xF0 lsls r2, 3 adds r0, r2 str r0, [r1, 0x4] ldr r0, _0811B0C0 str r0, [r1, 0x8] ldr r0, [r1, 0x8] _0811B0AE: pop {r0} bx r0 .align 2, 0 _0811B0B4: .4byte 0x0200c000 _0811B0B8: .4byte 0x040000d4 _0811B0BC: .4byte gUnknown_03004DE0 _0811B0C0: .4byte 0x800000a0 thumb_func_end sub_811B08C thumb_func_start sub_811B0C4 sub_811B0C4: @ 811B0C4 ldr r1, _0811B0E4 ldr r0, _0811B0E8 ldrh r0, [r0] lsls r0, 1 movs r2, 0xF0 lsls r2, 3 adds r1, r2 adds r0, r1 ldrh r1, [r0] ldr r0, _0811B0EC strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x4 strh r1, [r0] bx lr .align 2, 0 _0811B0E4: .4byte gUnknown_03004DE0 _0811B0E8: .4byte REG_VCOUNT _0811B0EC: .4byte REG_BG1VOFS thumb_func_end sub_811B0C4 thumb_func_start sub_811B0F0 sub_811B0F0: @ 811B0F0 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811B120 ldr r2, _0811B124 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811B102: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811B102 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811B120: .4byte gUnknown_083FD7C0 _0811B124: .4byte gTasks thumb_func_end sub_811B0F0 thumb_func_start sub_811B128 sub_811B128: @ 811B128 push {r4-r6,lr} sub sp, 0xC adds r4, r0, 0 bl sub_811D658 bl dp12_8087EA4 movs r2, 0 movs r3, 0x10 strh r3, [r4, 0xA] strh r2, [r4, 0xC] strh r2, [r4, 0x10] movs r0, 0x80 lsls r0, 7 strh r0, [r4, 0x12] ldr r1, _0811B1BC movs r0, 0x3F strh r0, [r1, 0x2] strh r2, [r1, 0x4] movs r0, 0xF0 strh r0, [r1, 0x6] movs r0, 0xA0 strh r0, [r1, 0x8] ldr r0, _0811B1C0 strh r0, [r1, 0xE] lsls r3, 8 strh r3, [r1, 0x10] movs r1, 0 add r5, sp, 0x4 add r6, sp, 0x8 ldr r3, _0811B1C4 movs r2, 0xF0 _0811B168: lsls r0, r1, 1 adds r0, r3 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x9F bls _0811B168 ldr r0, _0811B1C8 bl SetVBlankCallback adds r0, r5, 0 adds r1, r6, 0 bl sub_811D6A8 mov r1, sp movs r0, 0 strh r0, [r1] ldr r1, [sp, 0x4] ldr r2, _0811B1CC mov r0, sp bl CpuSet ldr r0, _0811B1D0 ldr r1, [sp, 0x8] movs r2, 0xB0 lsls r2, 2 bl CpuSet ldr r0, _0811B1D4 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 add sp, 0xC pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0811B1BC: .4byte 0x0200c000 _0811B1C0: .4byte 0x00003f41 _0811B1C4: .4byte gUnknown_03005560 _0811B1C8: .4byte sub_811B520 _0811B1CC: .4byte 0x01000400 _0811B1D0: .4byte gUnknown_083FBB88 _0811B1D4: .4byte gFieldEffectObjectPalette10 thumb_func_end sub_811B128 thumb_func_start sub_811B1D8 sub_811B1D8: @ 811B1D8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 adds r7, r0, 0 ldr r5, _0811B260 add r1, sp, 0xC add r0, sp, 0x8 bl sub_811D6A8 movs r1, 0 ldr r0, [sp, 0x8] mov r9, r0 ldr r6, _0811B264 mov r8, r6 movs r0, 0xF0 lsls r0, 8 mov r12, r0 _0811B1FE: movs r0, 0 lsls r3, r1, 16 asrs r4, r3, 11 _0811B204: lsls r2, r0, 16 asrs r2, 16 adds r1, r4, r2 lsls r1, 1 add r1, r9 ldrh r0, [r5] mov r6, r12 orrs r0, r6 strh r0, [r1] adds r2, 0x1 lsls r2, 16 adds r5, 0x2 lsrs r0, r2, 16 asrs r2, 16 cmp r2, 0x1D ble _0811B204 movs r1, 0x80 lsls r1, 9 adds r0, r3, r1 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0x13 ble _0811B1FE movs r6, 0x10 ldrsh r2, [r7, r6] movs r1, 0x12 ldrsh r0, [r7, r1] str r0, [sp] movs r0, 0xA0 str r0, [sp, 0x4] mov r0, r8 movs r1, 0 movs r3, 0x84 bl sub_811D6E8 ldrh r0, [r7, 0x8] adds r0, 0x1 strh r0, [r7, 0x8] movs r0, 0x1 add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811B260: .4byte gUnknown_083FDB44 _0811B264: .4byte gUnknown_03004DE0 thumb_func_end sub_811B1D8 thumb_func_start sub_811B268 sub_811B268: @ 811B268 push {r4,lr} sub sp, 0x8 adds r2, r0, 0 ldr r1, _0811B2E8 ldrb r0, [r1] movs r0, 0 strb r0, [r1] ldrh r3, [r2, 0xE] movs r4, 0xE ldrsh r0, [r2, r4] adds r4, r1, 0 cmp r0, 0 beq _0811B28C subs r0, r3, 0x1 strh r0, [r2, 0xE] lsls r0, 16 cmp r0, 0 bne _0811B296 _0811B28C: ldrh r0, [r2, 0xC] adds r0, 0x1 strh r0, [r2, 0xC] movs r0, 0x2 strh r0, [r2, 0xE] _0811B296: ldrh r0, [r2, 0xA] lsls r0, 8 ldrh r1, [r2, 0xC] orrs r0, r1 strh r0, [r4, 0x10] lsls r1, 16 asrs r1, 16 cmp r1, 0xF ble _0811B2AE ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] _0811B2AE: ldrh r0, [r2, 0x10] adds r0, 0x8 strh r0, [r2, 0x10] ldr r0, _0811B2EC adds r1, r0, 0 ldrh r3, [r2, 0x12] adds r1, r3 strh r1, [r2, 0x12] ldr r0, _0811B2F0 movs r3, 0x10 ldrsh r2, [r2, r3] lsls r1, 16 asrs r1, 24 str r1, [sp] movs r1, 0xA0 str r1, [sp, 0x4] movs r1, 0 movs r3, 0x84 bl sub_811D6E8 ldrb r0, [r4] adds r0, 0x1 ldrb r1, [r4] strb r0, [r4] movs r0, 0 add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _0811B2E8: .4byte 0x0200c000 _0811B2EC: .4byte 0xffffff00 _0811B2F0: .4byte gUnknown_03004DE0 thumb_func_end sub_811B268 thumb_func_start sub_811B2F4 sub_811B2F4: @ 811B2F4 push {r4,r5,lr} sub sp, 0x8 adds r3, r0, 0 ldr r1, _0811B374 ldrb r0, [r1] movs r0, 0 strb r0, [r1] ldrh r2, [r3, 0xE] movs r4, 0xE ldrsh r0, [r3, r4] adds r4, r1, 0 cmp r0, 0 beq _0811B318 subs r0, r2, 0x1 strh r0, [r3, 0xE] lsls r0, 16 cmp r0, 0 bne _0811B322 _0811B318: ldrh r0, [r3, 0xA] subs r0, 0x1 strh r0, [r3, 0xA] movs r0, 0x2 strh r0, [r3, 0xE] _0811B322: ldrh r0, [r3, 0xA] lsls r1, r0, 8 ldrh r2, [r3, 0xC] orrs r1, r2 strh r1, [r4, 0x10] lsls r0, 16 cmp r0, 0 bne _0811B338 ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] _0811B338: ldrh r0, [r3, 0x10] adds r0, 0x8 strh r0, [r3, 0x10] ldr r5, _0811B378 adds r1, r5, 0 ldrh r0, [r3, 0x12] adds r1, r0 strh r1, [r3, 0x12] ldr r0, _0811B37C movs r5, 0x10 ldrsh r2, [r3, r5] lsls r1, 16 asrs r1, 24 str r1, [sp] movs r1, 0xA0 str r1, [sp, 0x4] movs r1, 0 movs r3, 0x84 bl sub_811D6E8 ldrb r0, [r4] adds r0, 0x1 ldrb r1, [r4] strb r0, [r4] movs r0, 0 add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0811B374: .4byte 0x0200c000 _0811B378: .4byte 0xffffff00 _0811B37C: .4byte gUnknown_03004DE0 thumb_func_end sub_811B2F4 thumb_func_start sub_811B380 sub_811B380: @ 811B380 push {r4-r7,lr} sub sp, 0x8 adds r4, r0, 0 ldr r5, _0811B3E0 ldrb r0, [r5] movs r7, 0 strb r7, [r5] ldrh r0, [r4, 0x10] adds r0, 0x8 strh r0, [r4, 0x10] ldr r0, _0811B3E4 adds r1, r0, 0 ldrh r3, [r4, 0x12] adds r1, r3 strh r1, [r4, 0x12] ldr r0, _0811B3E8 movs r3, 0x10 ldrsh r2, [r4, r3] lsls r1, 16 asrs r1, 24 str r1, [sp] movs r6, 0xA0 str r6, [sp, 0x4] movs r1, 0 movs r3, 0x84 bl sub_811D6E8 movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 bgt _0811B3CE ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] strh r6, [r4, 0xA] movs r0, 0x80 lsls r0, 1 strh r0, [r4, 0xC] strh r7, [r4, 0xE] _0811B3CE: ldrb r0, [r5] adds r0, 0x1 ldrb r1, [r5] strb r0, [r5] movs r0, 0 add sp, 0x8 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811B3E0: .4byte 0x0200c000 _0811B3E4: .4byte 0xffffff00 _0811B3E8: .4byte gUnknown_03004DE0 thumb_func_end sub_811B380 thumb_func_start sub_811B3EC sub_811B3EC: @ 811B3EC push {r4,lr} adds r4, r0, 0 ldr r0, _0811B488 ldrb r1, [r0] movs r3, 0 strb r3, [r0] ldrh r2, [r4, 0xC] movs r0, 0xC ldrsh r1, [r4, r0] ldr r0, _0811B48C cmp r1, r0 bgt _0811B40A adds r0, r2, 0 adds r0, 0x80 strh r0, [r4, 0xC] _0811B40A: ldrh r1, [r4, 0xA] movs r2, 0xA ldrsh r0, [r4, r2] cmp r0, 0 beq _0811B426 ldrh r0, [r4, 0xC] lsls r0, 16 asrs r0, 24 subs r0, r1, r0 strh r0, [r4, 0xA] lsls r0, 16 cmp r0, 0 bge _0811B426 strh r3, [r4, 0xA] _0811B426: ldr r0, _0811B490 movs r1, 0xA ldrsh r3, [r4, r1] movs r1, 0x78 movs r2, 0x50 bl sub_811D764 movs r2, 0xA ldrsh r0, [r4, r2] cmp r0, 0 bne _0811B462 ldr r1, _0811B494 ldrh r2, [r1, 0xA] ldr r0, _0811B498 ands r0, r2 strh r0, [r1, 0xA] ldrh r2, [r1, 0xA] ldr r0, _0811B49C ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] bl sub_811D6D4 ldr r0, _0811B4A0 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0811B462: ldrh r1, [r4, 0xE] movs r2, 0xE ldrsh r0, [r4, r2] cmp r0, 0 bne _0811B476 adds r0, r1, 0x1 strh r0, [r4, 0xE] ldr r0, _0811B4A4 bl SetVBlankCallback _0811B476: ldr r0, _0811B488 ldrb r1, [r0] adds r1, 0x1 ldrb r2, [r0] strb r1, [r0] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0811B488: .4byte 0x0200c000 _0811B48C: .4byte 0x000003ff _0811B490: .4byte gUnknown_03004DE0 _0811B494: .4byte 0x040000b0 _0811B498: .4byte 0x0000c5ff _0811B49C: .4byte 0x00007fff _0811B4A0: .4byte sub_811B0F0 _0811B4A4: .4byte sub_811B54C thumb_func_end sub_811B3EC thumb_func_start sub_811B4A8 sub_811B4A8: @ 811B4A8 push {lr} ldr r1, _0811B500 ldrh r2, [r1, 0xA] ldr r0, _0811B504 ands r0, r2 strh r0, [r1, 0xA] ldrh r2, [r1, 0xA] ldr r0, _0811B508 ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] bl sub_811D67C ldr r2, _0811B50C ldrb r0, [r2] cmp r0, 0 beq _0811B4DE ldr r1, _0811B510 ldr r0, _0811B514 str r0, [r1] movs r3, 0xF0 lsls r3, 3 adds r0, r3 str r0, [r1, 0x4] ldr r0, _0811B518 str r0, [r1, 0x8] ldr r0, [r1, 0x8] _0811B4DE: ldr r1, _0811B51C ldrh r0, [r2, 0x2] strh r0, [r1] adds r1, 0x2 ldrh r0, [r2, 0x4] strh r0, [r1] subs r1, 0x6 ldrh r0, [r2, 0x8] strh r0, [r1] adds r1, 0xC ldrh r0, [r2, 0xE] strh r0, [r1] adds r1, 0x2 ldrh r0, [r2, 0x10] strh r0, [r1] pop {r0} bx r0 .align 2, 0 _0811B500: .4byte 0x040000b0 _0811B504: .4byte 0x0000c5ff _0811B508: .4byte 0x00007fff _0811B50C: .4byte 0x0200c000 _0811B510: .4byte 0x040000d4 _0811B514: .4byte gUnknown_03004DE0 _0811B518: .4byte 0x800000a0 _0811B51C: .4byte REG_WININ thumb_func_end sub_811B4A8 thumb_func_start sub_811B520 sub_811B520: @ 811B520 push {lr} bl sub_811B4A8 ldr r1, _0811B53C ldr r0, _0811B540 str r0, [r1] ldr r0, _0811B544 str r0, [r1, 0x4] ldr r0, _0811B548 str r0, [r1, 0x8] ldr r0, [r1, 0x8] pop {r0} bx r0 .align 2, 0 _0811B53C: .4byte 0x040000b0 _0811B540: .4byte gUnknown_03005560 _0811B544: .4byte REG_BG0HOFS _0811B548: .4byte 0xa2400001 thumb_func_end sub_811B520 thumb_func_start sub_811B54C sub_811B54C: @ 811B54C push {lr} bl sub_811B4A8 ldr r1, _0811B568 ldr r0, _0811B56C str r0, [r1] ldr r0, _0811B570 str r0, [r1, 0x4] ldr r0, _0811B574 str r0, [r1, 0x8] ldr r0, [r1, 0x8] pop {r0} bx r0 .align 2, 0 _0811B568: .4byte 0x040000b0 _0811B56C: .4byte gUnknown_03005560 _0811B570: .4byte REG_WIN0H _0811B574: .4byte 0xa2400001 thumb_func_end sub_811B54C thumb_func_start sub_811B578 sub_811B578: @ 811B578 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811B5A8 ldr r2, _0811B5AC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811B58A: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811B58A pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811B5A8: .4byte gUnknown_083FD7D8 _0811B5AC: .4byte gTasks thumb_func_end sub_811B578 thumb_func_start sub_811B5B0 sub_811B5B0: @ 811B5B0 push {r4,lr} sub sp, 0xC adds r4, r0, 0 add r0, sp, 0x4 add r1, sp, 0x8 bl sub_811D6A8 ldr r0, _0811B5F0 ldr r1, [sp, 0x8] movs r2, 0x20 bl CpuSet movs r0, 0 str r0, [sp] ldr r1, [sp, 0x4] ldr r2, _0811B5F4 mov r0, sp bl CpuSet ldr r0, _0811B5F8 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 add sp, 0xC pop {r4} pop {r1} bx r1 .align 2, 0 _0811B5F0: .4byte gUnknown_083FC108 _0811B5F4: .4byte 0x05000200 _0811B5F8: .4byte gFieldEffectObjectPalette10 thumb_func_end sub_811B5B0 thumb_func_start sub_811B5FC sub_811B5FC: @ 811B5FC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 adds r7, r0, 0 ldr r1, _0811B67C mov r0, sp movs r2, 0x4 bl memcpy add r4, sp, 0x4 ldr r1, _0811B680 adds r0, r4, 0 movs r2, 0xA bl memcpy bl Random movs r5, 0x1 ands r5, r0 movs r1, 0 mov r8, r4 ldr r6, _0811B684 _0811B62A: lsls r5, 16 asrs r5, 16 lsls r0, r5, 1 add r0, sp movs r2, 0 ldrsh r0, [r0, r2] str r0, [r6] lsls r4, r1, 16 asrs r4, 16 lsls r0, r4, 5 adds r0, 0x10 str r0, [r6, 0x4] str r5, [r6, 0x8] lsls r0, r4, 1 add r0, r8 movs r1, 0 ldrsh r0, [r0, r1] str r0, [r6, 0xC] movs r0, 0x2D bl FieldEffectStart adds r4, 0x1 lsls r4, 16 movs r0, 0x1 eors r5, r0 lsls r5, 16 lsrs r5, 16 lsrs r1, r4, 16 asrs r4, 16 cmp r4, 0x4 ble _0811B62A ldrh r0, [r7, 0x8] adds r0, 0x1 strh r0, [r7, 0x8] movs r0, 0 add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811B67C: .4byte gUnknown_083FD7E4 _0811B680: .4byte gUnknown_083FD7E8 _0811B684: .4byte gUnknown_0202FF84 thumb_func_end sub_811B5FC thumb_func_start sub_811B688 sub_811B688: @ 811B688 push {lr} movs r0, 0x2D bl FieldEffectActiveListContains lsls r0, 24 cmp r0, 0 bne _0811B6A8 bl sub_811D6D4 ldr r0, _0811B6B0 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0811B6A8: movs r0, 0 pop {r1} bx r1 .align 2, 0 _0811B6B0: .4byte sub_811B578 thumb_func_end sub_811B688 thumb_func_start sub_811B6B4 sub_811B6B4: @ 811B6B4 push {r4,r5,lr} ldr r0, _0811B710 ldr r5, _0811B714 movs r2, 0 ldrsh r1, [r5, r2] movs r3, 0x4 ldrsh r2, [r5, r3] movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 ldr r1, _0811B718 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 adds r4, r1 ldrb r1, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r4, 0x5] 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, [r5, 0x8] strh r0, [r4, 0x2E] ldr r0, [r5, 0xC] strh r0, [r4, 0x30] ldr r0, _0811B71C strh r0, [r4, 0x32] adds r0, r4, 0 bl InitSpriteAffineAnim ldrb r1, [r5, 0x8] adds r0, r4, 0 bl StartSpriteAffineAnim movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0811B710: .4byte gSpriteTemplate_83FD98C _0811B714: .4byte gUnknown_0202FF84 _0811B718: .4byte gSprites _0811B71C: .4byte 0x0000ffff thumb_func_end sub_811B6B4 thumb_func_start sub_811B720 sub_811B720: @ 811B720 push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 ldr r1, _0811B740 mov r0, sp movs r2, 0x4 bl memcpy ldrh r1, [r4, 0x30] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r0, 0 beq _0811B744 subs r0, r1, 0x1 strh r0, [r4, 0x30] b _0811B7D6 .align 2, 0 _0811B740: .4byte gUnknown_083FD7F2 _0811B744: ldrh r0, [r4, 0x20] lsls r1, r0, 16 lsrs r0, r1, 16 cmp r0, 0xF0 bhi _0811B7B2 asrs r0, r1, 19 lsls r0, 16 ldrh r1, [r4, 0x22] lsls r1, 16 asrs r1, 19 lsls r1, 16 lsrs r1, 16 lsrs r2, r0, 16 asrs r5, r0, 16 movs r3, 0x32 ldrsh r0, [r4, r3] cmp r5, r0 beq _0811B7B2 strh r2, [r4, 0x32] ldr r0, _0811B7E0 ldrh r2, [r0] lsrs r2, 8 movs r0, 0x1F ands r2, r0 lsls r2, 11 movs r0, 0xC0 lsls r0, 19 adds r2, r0 lsls r1, 16 asrs r1, 16 subs r0, r1, 0x2 lsls r0, 5 adds r0, r5 lsls r0, 1 adds r0, r2 ldr r6, _0811B7E4 adds r3, r6, 0 strh r3, [r0] subs r0, r1, 0x1 lsls r0, 5 adds r0, r5 lsls r0, 1 adds r0, r2 strh r3, [r0] lsls r0, r1, 5 adds r0, r5 lsls r0, 1 adds r0, r2 strh r3, [r0] adds r1, 0x1 lsls r1, 5 adds r1, r5 lsls r1, 1 adds r1, r2 strh r3, [r1] _0811B7B2: movs r1, 0x2E ldrsh r0, [r4, r1] lsls r0, 1 add r0, sp ldrh r0, [r0] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] adds r0, 0xF lsls r0, 16 movs r1, 0x87 lsls r1, 17 cmp r0, r1 bls _0811B7D6 adds r0, r4, 0 movs r1, 0x2D bl FieldEffectStop _0811B7D6: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811B7E0: .4byte REG_BG0CNT _0811B7E4: .4byte 0x0000f001 thumb_func_end sub_811B720 thumb_func_start sub_811B7E8 sub_811B7E8: @ 811B7E8 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811B818 ldr r2, _0811B81C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811B7FA: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811B7FA pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811B818: .4byte gUnknown_083FD7F8 _0811B81C: .4byte gTasks thumb_func_end sub_811B7E8 thumb_func_start sub_811B820 sub_811B820: @ 811B820 push {r4,lr} adds r4, r0, 0 bl sub_811D658 bl dp12_8087EA4 ldr r1, _0811B870 movs r0, 0 strh r0, [r1, 0x2] movs r0, 0x3F strh r0, [r1, 0x4] ldr r0, _0811B874 strh r0, [r1, 0x6] movs r0, 0xA0 strh r0, [r1, 0x8] movs r1, 0 ldr r3, _0811B878 ldr r2, _0811B87C _0811B844: lsls r0, r1, 1 adds r0, r3 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x9F bls _0811B844 ldr r0, _0811B880 bl SetVBlankCallback ldr r1, _0811B870 movs r0, 0x78 strh r0, [r1, 0x2C] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0811B870: .4byte 0x0200c000 _0811B874: .4byte 0x0000f0f1 _0811B878: .4byte gUnknown_03005560 _0811B87C: .4byte 0x0000f3f4 _0811B880: .4byte sub_811BC2C thumb_func_end sub_811B820 thumb_func_start sub_811B884 sub_811B884: @ 811B884 push {r4-r6,lr} sub sp, 0xC adds r6, r0, 0 ldr r4, _0811B904 ldrb r0, [r4] movs r0, 0 strb r0, [r4] adds r0, r4, 0 adds r0, 0x24 movs r1, 0x2C ldrsh r3, [r4, r1] movs r1, 0x1 negs r1, r1 str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] str r1, [sp, 0x8] movs r1, 0x78 movs r2, 0x50 bl sub_811D8FC ldr r5, _0811B908 _0811B8B0: movs r3, 0x2A ldrsh r2, [r4, r3] lsls r2, 1 adds r2, r5 ldrh r0, [r4, 0x28] adds r0, 0x1 movs r3, 0xF0 lsls r3, 7 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] adds r0, r4, 0 adds r0, 0x24 movs r1, 0x1 movs r2, 0x1 bl sub_811D978 lsls r0, 24 cmp r0, 0 beq _0811B8B0 ldr r2, _0811B904 ldrh r0, [r2, 0x2C] adds r0, 0x10 strh r0, [r2, 0x2C] lsls r0, 16 asrs r0, 16 cmp r0, 0xEF ble _0811B8F2 movs r0, 0 strh r0, [r2, 0x2E] ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] _0811B8F2: ldrb r0, [r2] adds r0, 0x1 ldrb r1, [r2] strb r0, [r2] movs r0, 0 add sp, 0xC pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0811B904: .4byte 0x0200c000 _0811B908: .4byte gUnknown_03004DE0 thumb_func_end sub_811B884 thumb_func_start sub_811B90C sub_811B90C: @ 811B90C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 adds r7, r0, 0 add r1, sp, 0xC movs r0, 0 strb r0, [r1] ldr r4, _0811B988 ldrb r0, [r4] movs r0, 0 strb r0, [r4] adds r0, r4, 0 adds r0, 0x24 movs r2, 0x2E ldrsh r1, [r4, r2] str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] str r1, [sp, 0x8] movs r1, 0x78 movs r2, 0x50 movs r3, 0xF0 bl sub_811D8FC adds r6, r4, 0 ldr r5, _0811B98C mov r8, r5 add r5, sp, 0xC _0811B946: movs r1, 0x78 ldrh r0, [r4, 0x28] adds r0, 0x1 lsls r0, 16 lsrs r3, r0, 16 movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0x4F ble _0811B95C ldrh r1, [r4, 0x28] movs r3, 0xF0 _0811B95C: movs r0, 0x2A ldrsh r2, [r4, r0] lsls r2, 1 add r2, r8 lsls r1, 16 asrs r1, 8 lsls r0, r3, 16 asrs r3, r0, 16 orrs r3, r1 strh r3, [r2] ldrb r0, [r5] cmp r0, 0 bne _0811B990 adds r0, r4, 0 adds r0, 0x24 movs r1, 0x1 movs r2, 0x1 bl sub_811D978 strb r0, [r5] b _0811B946 .align 2, 0 _0811B988: .4byte 0x0200c000 _0811B98C: .4byte gUnknown_03004DE0 _0811B990: ldrh r0, [r4, 0x2E] adds r0, 0x8 strh r0, [r4, 0x2E] lsls r0, 16 asrs r1, r0, 16 cmp r1, 0x9F ble _0811B9AA movs r0, 0xF0 strh r0, [r4, 0x2C] ldrh r0, [r7, 0x8] adds r0, 0x1 strh r0, [r7, 0x8] b _0811B9D0 _0811B9AA: movs r2, 0x2A ldrsh r0, [r4, r2] cmp r0, r1 bge _0811B9D0 ldr r4, _0811B9E8 ldr r2, _0811B9EC _0811B9B6: ldrh r0, [r2, 0x2A] adds r0, 0x1 strh r0, [r2, 0x2A] lsls r0, 16 asrs r0, 15 adds r0, r4 strh r3, [r0] movs r5, 0x2A ldrsh r1, [r2, r5] movs r5, 0x2E ldrsh r0, [r2, r5] cmp r1, r0 blt _0811B9B6 _0811B9D0: ldrb r0, [r6] adds r0, 0x1 ldrb r1, [r6] strb r0, [r6] movs r0, 0 add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811B9E8: .4byte gUnknown_03004DE0 _0811B9EC: .4byte 0x0200c000 thumb_func_end sub_811B90C thumb_func_start sub_811B9F0 sub_811B9F0: @ 811B9F0 push {r4-r6,lr} sub sp, 0xC adds r6, r0, 0 ldr r4, _0811BA68 ldrb r0, [r4] movs r0, 0 strb r0, [r4] adds r0, r4, 0 adds r0, 0x24 movs r1, 0x2C ldrsh r3, [r4, r1] movs r1, 0xA0 str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] str r1, [sp, 0x8] movs r1, 0x78 movs r2, 0x50 bl sub_811D8FC ldr r5, _0811BA6C _0811BA1A: movs r0, 0x2A ldrsh r2, [r4, r0] lsls r2, 1 adds r2, r5 ldrh r0, [r4, 0x28] lsls r0, 8 movs r1, 0xF0 orrs r0, r1 strh r0, [r2] adds r0, r4, 0 adds r0, 0x24 movs r1, 0x1 movs r2, 0x1 bl sub_811D978 lsls r0, 24 cmp r0, 0 beq _0811BA1A ldr r2, _0811BA68 ldrh r0, [r2, 0x2C] subs r0, 0x10 strh r0, [r2, 0x2C] lsls r0, 16 cmp r0, 0 bgt _0811BA56 movs r0, 0xA0 strh r0, [r2, 0x2E] ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] _0811BA56: ldrb r0, [r2] adds r0, 0x1 ldrb r1, [r2] strb r0, [r2] movs r0, 0 add sp, 0xC pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0811BA68: .4byte 0x0200c000 _0811BA6C: .4byte gUnknown_03004DE0 thumb_func_end sub_811B9F0 thumb_func_start sub_811BA70 sub_811BA70: @ 811BA70 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 mov r8, r0 add r1, sp, 0xC movs r0, 0 strb r0, [r1] ldr r4, _0811BAF0 ldrb r0, [r4] movs r0, 0 strb r0, [r4] adds r0, r4, 0 adds r0, 0x24 movs r2, 0x2E ldrsh r1, [r4, r2] str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] str r1, [sp, 0x8] movs r1, 0x78 movs r2, 0x50 movs r3, 0 bl sub_811D8FC ldr r3, _0811BAF4 mov r9, r3 mov r10, r4 add r6, sp, 0xC _0811BAAE: movs r5, 0x2A ldrsh r0, [r4, r5] lsls r0, 1 mov r7, r9 adds r5, r0, r7 ldrb r1, [r5] ldrh r2, [r4, 0x28] adds r3, r2, 0 movs r7, 0x2E ldrsh r0, [r4, r7] cmp r0, 0x50 bgt _0811BACA movs r2, 0x78 adds r1, r3, 0 _0811BACA: lsls r0, r2, 16 asrs r0, 8 lsls r1, 16 asrs r1, 16 orrs r1, r0 movs r3, 0 strh r1, [r5] ldrb r0, [r6] cmp r0, 0 bne _0811BAF8 adds r0, r4, 0 adds r0, 0x24 movs r1, 0x1 movs r2, 0x1 bl sub_811D978 strb r0, [r6] b _0811BAAE .align 2, 0 _0811BAF0: .4byte 0x0200c000 _0811BAF4: .4byte gUnknown_03004DE0 _0811BAF8: ldrh r0, [r4, 0x2E] subs r0, 0x8 strh r0, [r4, 0x2E] lsls r0, 16 asrs r2, r0, 16 cmp r2, 0 bgt _0811BB12 strh r3, [r4, 0x2C] mov r1, r8 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0811BB3A _0811BB12: movs r3, 0x2A ldrsh r0, [r4, r3] cmp r0, r2 ble _0811BB3A ldr r4, _0811BB58 ldr r2, _0811BB5C adds r3, r1, 0 _0811BB20: ldrh r0, [r2, 0x2A] subs r0, 0x1 strh r0, [r2, 0x2A] lsls r0, 16 asrs r0, 15 adds r0, r4 strh r3, [r0] movs r5, 0x2A ldrsh r1, [r2, r5] movs r7, 0x2E ldrsh r0, [r2, r7] cmp r1, r0 bgt _0811BB20 _0811BB3A: mov r1, r10 ldrb r0, [r1] adds r0, 0x1 ldrb r1, [r1] mov r2, r10 strb r0, [r2] movs r0, 0 add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811BB58: .4byte gUnknown_03004DE0 _0811BB5C: .4byte 0x0200c000 thumb_func_end sub_811BA70 thumb_func_start sub_811BB60 sub_811BB60: @ 811BB60 push {r4-r6,lr} sub sp, 0xC adds r6, r0, 0 ldr r4, _0811BBE4 ldrb r0, [r4] movs r1, 0 strb r1, [r4] adds r0, r4, 0 adds r0, 0x24 movs r2, 0x2C ldrsh r3, [r4, r2] str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] str r1, [sp, 0x8] movs r1, 0x78 movs r2, 0x50 bl sub_811D8FC ldr r5, _0811BBE8 _0811BB88: movs r2, 0x78 ldrh r3, [r4, 0x28] movs r1, 0x28 ldrsh r0, [r4, r1] cmp r0, 0x77 ble _0811BB98 movs r2, 0 movs r3, 0xF0 _0811BB98: movs r0, 0x2A ldrsh r1, [r4, r0] lsls r1, 1 adds r1, r5 lsls r2, 8 lsls r0, r3, 16 asrs r0, 16 orrs r0, r2 strh r0, [r1] adds r0, r4, 0 adds r0, 0x24 movs r1, 0x1 movs r2, 0x1 bl sub_811D978 lsls r0, 24 cmp r0, 0 beq _0811BB88 ldr r2, _0811BBE4 ldrh r0, [r2, 0x2C] adds r0, 0x10 strh r0, [r2, 0x2C] movs r1, 0x28 ldrsh r0, [r2, r1] cmp r0, 0x78 ble _0811BBD2 ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] _0811BBD2: ldrb r0, [r2] adds r0, 0x1 ldrb r1, [r2] strb r0, [r2] movs r0, 0 add sp, 0xC pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0811BBE4: .4byte 0x0200c000 _0811BBE8: .4byte gUnknown_03004DE0 thumb_func_end sub_811BB60 thumb_func_start sub_811BBEC sub_811BBEC: @ 811BBEC push {lr} ldr r1, _0811BC1C ldrh r2, [r1, 0xA] ldr r0, _0811BC20 ands r0, r2 strh r0, [r1, 0xA] ldrh r2, [r1, 0xA] ldr r0, _0811BC24 ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] bl sub_811D6D4 ldr r0, _0811BC28 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 pop {r1} bx r1 .align 2, 0 _0811BC1C: .4byte 0x040000b0 _0811BC20: .4byte 0x0000c5ff _0811BC24: .4byte 0x00007fff _0811BC28: .4byte sub_811B7E8 thumb_func_end sub_811BBEC thumb_func_start sub_811BC2C sub_811BC2C: @ 811BC2C push {r4,lr} ldr r4, _0811BC94 ldrh r1, [r4, 0xA] ldr r0, _0811BC98 ands r0, r1 strh r0, [r4, 0xA] ldrh r1, [r4, 0xA] ldr r0, _0811BC9C ands r0, r1 strh r0, [r4, 0xA] ldrh r0, [r4, 0xA] bl sub_811D67C ldr r2, _0811BCA0 ldrb r0, [r2] cmp r0, 0 beq _0811BC62 ldr r1, _0811BCA4 ldr r0, _0811BCA8 str r0, [r1] movs r3, 0xF0 lsls r3, 3 adds r0, r3 str r0, [r1, 0x4] ldr r0, _0811BCAC str r0, [r1, 0x8] ldr r0, [r1, 0x8] _0811BC62: ldr r1, _0811BCB0 ldrh r0, [r2, 0x2] strh r0, [r1] adds r1, 0x2 ldrh r0, [r2, 0x4] strh r0, [r1] subs r1, 0x6 ldrh r0, [r2, 0x8] strh r0, [r1] ldr r2, _0811BCB4 ldr r0, _0811BCA8 movs r1, 0xF0 lsls r1, 3 adds r0, r1 ldrh r1, [r0] strh r1, [r2] str r0, [r4] str r2, [r4, 0x4] ldr r0, _0811BCB8 str r0, [r4, 0x8] ldr r0, [r4, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _0811BC94: .4byte 0x040000b0 _0811BC98: .4byte 0x0000c5ff _0811BC9C: .4byte 0x00007fff _0811BCA0: .4byte 0x0200c000 _0811BCA4: .4byte 0x040000d4 _0811BCA8: .4byte gUnknown_03004DE0 _0811BCAC: .4byte 0x800000a0 _0811BCB0: .4byte REG_WININ _0811BCB4: .4byte REG_WIN0H _0811BCB8: .4byte 0xa2400001 thumb_func_end sub_811BC2C thumb_func_start sub_811BCBC sub_811BCBC: @ 811BCBC push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811BCEC ldr r2, _0811BCF0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811BCCE: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811BCCE pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811BCEC: .4byte gUnknown_083FD814 _0811BCF0: .4byte gTasks thumb_func_end sub_811BCBC thumb_func_start sub_811BCF4 sub_811BCF4: @ 811BCF4 push {r4,r5,lr} adds r5, r0, 0 bl sub_811D658 bl dp12_8087EA4 movs r2, 0 ldr r4, _0811BD48 ldr r3, _0811BD4C _0811BD06: lsls r0, r2, 1 adds r0, r4 ldrh r1, [r3, 0x16] strh r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x9F bls _0811BD06 ldr r0, _0811BD50 bl SetVBlankCallback ldr r0, _0811BD54 bl SetHBlankCallback ldr r2, _0811BD58 ldrh r0, [r2] movs r1, 0x2 orrs r0, r1 strh r0, [r2] ldr r2, _0811BD5C ldrh r0, [r2] movs r1, 0x10 orrs r0, r1 strh r0, [r2] ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0811BD48: .4byte gUnknown_03005560 _0811BD4C: .4byte 0x0200c000 _0811BD50: .4byte sub_811BE3C _0811BD54: .4byte sub_811BE74 _0811BD58: .4byte 0x04000200 _0811BD5C: .4byte REG_DISPSTAT thumb_func_end sub_811BCF4 thumb_func_start sub_811BD60 sub_811BD60: @ 811BD60 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r6, r0, 0 ldr r1, _0811BE28 ldrb r0, [r1] movs r0, 0 strb r0, [r1] ldrh r2, [r6, 0xC] lsls r1, r2, 16 asrs r0, r1, 24 lsls r0, 16 lsrs r3, r0, 16 ldrh r4, [r6, 0xA] movs r0, 0xC0 lsls r0, 1 mov r8, r0 movs r5, 0x80 lsls r5, 3 adds r0, r4, r5 strh r0, [r6, 0xA] ldr r0, _0811BE2C cmp r1, r0 bgt _0811BD9A movs r1, 0xC0 lsls r1, 1 adds r0, r2, r1 strh r0, [r6, 0xC] _0811BD9A: movs r5, 0 lsls r7, r3, 16 _0811BD9E: lsrs r0, r4, 8 asrs r1, r7, 16 bl Sin ldr r1, _0811BE30 lsls r2, r5, 1 adds r2, r1 ldr r1, _0811BE28 ldrh r1, [r1, 0x16] adds r0, r1 strh r0, [r2] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 mov r1, r8 adds r0, r4, r1 lsls r0, 16 lsrs r4, r0, 16 cmp r5, 0x9F bls _0811BD9E ldrh r0, [r6, 0xE] adds r0, 0x1 strh r0, [r6, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x51 bne _0811BDEC ldrh r0, [r6, 0x10] adds r0, 0x1 strh r0, [r6, 0x10] movs r0, 0x1 negs r0, r0 movs r1, 0x2 negs r1, r1 movs r2, 0 str r2, [sp] movs r3, 0x10 bl BeginNormalPaletteFade _0811BDEC: movs r5, 0x10 ldrsh r0, [r6, r5] cmp r0, 0 beq _0811BE0E ldr r0, _0811BE34 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0811BE0E ldr r0, _0811BE38 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0811BE0E: ldr r0, _0811BE28 ldrb r1, [r0] adds r1, 0x1 ldrb r2, [r0] strb r1, [r0] movs r0, 0 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811BE28: .4byte 0x0200c000 _0811BE2C: .4byte 0x1fff0000 _0811BE30: .4byte gUnknown_03004DE0 _0811BE34: .4byte gPaletteFade _0811BE38: .4byte sub_811BCBC thumb_func_end sub_811BD60 thumb_func_start sub_811BE3C sub_811BE3C: @ 811BE3C push {lr} bl sub_811D67C ldr r0, _0811BE64 ldrb r0, [r0] cmp r0, 0 beq _0811BE5E ldr r1, _0811BE68 ldr r0, _0811BE6C str r0, [r1] movs r2, 0xF0 lsls r2, 3 adds r0, r2 str r0, [r1, 0x4] ldr r0, _0811BE70 str r0, [r1, 0x8] ldr r0, [r1, 0x8] _0811BE5E: pop {r0} bx r0 .align 2, 0 _0811BE64: .4byte 0x0200c000 _0811BE68: .4byte 0x040000d4 _0811BE6C: .4byte gUnknown_03004DE0 _0811BE70: .4byte 0x800000a0 thumb_func_end sub_811BE3C thumb_func_start sub_811BE74 sub_811BE74: @ 811BE74 ldr r1, _0811BE94 ldr r0, _0811BE98 ldrh r0, [r0] lsls r0, 1 movs r2, 0xF0 lsls r2, 3 adds r1, r2 adds r0, r1 ldrh r1, [r0] ldr r0, _0811BE9C strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x4 strh r1, [r0] bx lr .align 2, 0 _0811BE94: .4byte gUnknown_03004DE0 _0811BE98: .4byte REG_VCOUNT _0811BE9C: .4byte REG_BG1VOFS thumb_func_end sub_811BE74 thumb_func_start sub_811BEA0 sub_811BEA0: @ 811BEA0 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811BED0 ldr r2, _0811BED4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811BEB2: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811BEB2 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811BED0: .4byte gUnknown_083FD81C _0811BED4: .4byte gTasks thumb_func_end sub_811BEA0 thumb_func_start sub_811BED8 sub_811BED8: @ 811BED8 push {r4,lr} adds r4, r0, 0 bl sub_811D658 bl dp12_8087EA4 ldr r1, _0811BF20 movs r2, 0 movs r0, 0x3F strh r0, [r1, 0x2] strh r2, [r1, 0x4] movs r0, 0xF0 strh r0, [r1, 0x6] movs r0, 0xA0 strh r0, [r1, 0x8] movs r1, 0 ldr r3, _0811BF24 movs r2, 0xF2 _0811BEFC: lsls r0, r1, 1 adds r0, r3 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x9F bls _0811BEFC ldr r0, _0811BF28 bl SetVBlankCallback ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0811BF20: .4byte 0x0200c000 _0811BF24: .4byte gUnknown_03005560 _0811BF28: .4byte sub_811C004 thumb_func_end sub_811BED8 thumb_func_start sub_811BF2C sub_811BF2C: @ 811BF2C push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 ldr r1, _0811BFBC ldrb r0, [r1] movs r0, 0 strb r0, [r1] ldr r7, _0811BFC0 ldrh r0, [r4, 0xC] ldrb r5, [r4, 0xC] adds r0, 0x10 strh r0, [r4, 0xC] ldrh r0, [r4, 0xA] adds r0, 0x8 strh r0, [r4, 0xA] movs r6, 0 movs r0, 0x1 mov r8, r0 _0811BF52: adds r0, r5, 0 movs r1, 0x28 bl Sin ldrh r1, [r4, 0xA] adds r0, r1 lsls r0, 16 lsrs r1, r0, 16 cmp r0, 0 bge _0811BF68 movs r1, 0 _0811BF68: lsls r0, r1, 16 asrs r0, 16 cmp r0, 0xF0 ble _0811BF72 movs r1, 0xF0 _0811BF72: lsls r0, r1, 16 asrs r0, 16 lsls r1, r0, 8 movs r2, 0xF1 orrs r1, r2 strh r1, [r7] cmp r0, 0xEF bgt _0811BF86 movs r0, 0 mov r8, r0 _0811BF86: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r0, r5, 0x4 lsls r0, 24 lsrs r5, r0, 24 adds r7, 0x2 cmp r6, 0x9F bls _0811BF52 mov r1, r8 cmp r1, 0 beq _0811BFA4 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0811BFA4: ldr r0, _0811BFBC ldrb r1, [r0] adds r1, 0x1 ldrb r2, [r0] strb r1, [r0] movs r0, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811BFBC: .4byte 0x0200c000 _0811BFC0: .4byte gUnknown_03004DE0 thumb_func_end sub_811BF2C thumb_func_start sub_811BFC4 sub_811BFC4: @ 811BFC4 push {lr} ldr r1, _0811BFF4 ldrh r2, [r1, 0xA] ldr r0, _0811BFF8 ands r0, r2 strh r0, [r1, 0xA] ldrh r2, [r1, 0xA] ldr r0, _0811BFFC ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] bl sub_811D6D4 ldr r0, _0811C000 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 pop {r1} bx r1 .align 2, 0 _0811BFF4: .4byte 0x040000b0 _0811BFF8: .4byte 0x0000c5ff _0811BFFC: .4byte 0x00007fff _0811C000: .4byte sub_811BEA0 thumb_func_end sub_811BFC4 thumb_func_start sub_811C004 sub_811C004: @ 811C004 push {r4,lr} ldr r4, _0811C060 ldrh r1, [r4, 0xA] ldr r0, _0811C064 ands r0, r1 strh r0, [r4, 0xA] ldrh r1, [r4, 0xA] ldr r0, _0811C068 ands r0, r1 strh r0, [r4, 0xA] ldrh r0, [r4, 0xA] bl sub_811D67C ldr r2, _0811C06C ldrb r0, [r2] cmp r0, 0 beq _0811C03A ldr r1, _0811C070 ldr r0, _0811C074 str r0, [r1] movs r3, 0xF0 lsls r3, 3 adds r0, r3 str r0, [r1, 0x4] ldr r0, _0811C078 str r0, [r1, 0x8] ldr r0, [r1, 0x8] _0811C03A: ldr r1, _0811C07C ldrh r0, [r2, 0x2] strh r0, [r1] adds r1, 0x2 ldrh r0, [r2, 0x4] strh r0, [r1] subs r1, 0x6 ldrh r0, [r2, 0x8] strh r0, [r1] ldr r0, _0811C080 str r0, [r4] ldr r0, _0811C084 str r0, [r4, 0x4] ldr r0, _0811C088 str r0, [r4, 0x8] ldr r0, [r4, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _0811C060: .4byte 0x040000b0 _0811C064: .4byte 0x0000c5ff _0811C068: .4byte 0x00007fff _0811C06C: .4byte 0x0200c000 _0811C070: .4byte 0x040000d4 _0811C074: .4byte gUnknown_03004DE0 _0811C078: .4byte 0x800000a0 _0811C07C: .4byte REG_WININ _0811C080: .4byte gUnknown_03005560 _0811C084: .4byte REG_WIN0H _0811C088: .4byte 0xa2400001 thumb_func_end sub_811C004 thumb_func_start sub_811C08C sub_811C08C: @ 811C08C push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0811C0A8 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0 strh r2, [r1, 0x26] bl sub_811C12C pop {r0} bx r0 .align 2, 0 _0811C0A8: .4byte gTasks thumb_func_end sub_811C08C thumb_func_start sub_811C0AC sub_811C0AC: @ 811C0AC push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0811C0C8 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0x1 strh r2, [r1, 0x26] bl sub_811C12C pop {r0} bx r0 .align 2, 0 _0811C0C8: .4byte gTasks thumb_func_end sub_811C0AC thumb_func_start sub_811C0CC sub_811C0CC: @ 811C0CC push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0811C0E8 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0x2 strh r2, [r1, 0x26] bl sub_811C12C pop {r0} bx r0 .align 2, 0 _0811C0E8: .4byte gTasks thumb_func_end sub_811C0CC thumb_func_start sub_811C0EC sub_811C0EC: @ 811C0EC push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0811C108 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0x3 strh r2, [r1, 0x26] bl sub_811C12C pop {r0} bx r0 .align 2, 0 _0811C108: .4byte gTasks thumb_func_end sub_811C0EC thumb_func_start sub_811C10C sub_811C10C: @ 811C10C push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0811C128 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0x4 strh r2, [r1, 0x26] bl sub_811C12C pop {r0} bx r0 .align 2, 0 _0811C128: .4byte gTasks thumb_func_end sub_811C10C thumb_func_start sub_811C12C sub_811C12C: @ 811C12C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811C15C ldr r2, _0811C160 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811C13E: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811C13E pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811C15C: .4byte gUnknown_083FD828 _0811C160: .4byte gTasks thumb_func_end sub_811C12C thumb_func_start sub_811C164 sub_811C164: @ 811C164 push {r4,lr} adds r4, r0, 0 bl sub_811D658 bl dp12_8087EA4 adds r0, r4, 0 bl sub_811C7B0 movs r0, 0 strh r0, [r4, 0xA] movs r0, 0x1 strh r0, [r4, 0xC] movs r0, 0xEF strh r0, [r4, 0xE] ldr r1, _0811C1BC movs r0, 0x3F strh r0, [r1, 0x2] movs r0, 0x3E strh r0, [r1, 0x4] movs r0, 0xA0 strh r0, [r1, 0x8] movs r1, 0 ldr r3, _0811C1C0 ldr r2, _0811C1C4 _0811C196: lsls r0, r1, 1 adds r0, r3 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x9F bls _0811C196 ldr r0, _0811C1C8 bl SetVBlankCallback ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0811C1BC: .4byte 0x0200c000 _0811C1C0: .4byte gUnknown_03005560 _0811C1C4: .4byte 0x0000f0f1 _0811C1C8: .4byte sub_811C670 thumb_func_end sub_811C164 thumb_func_start sub_811C1CC sub_811C1CC: @ 811C1CC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 mov r8, r0 ldr r6, _0811C284 add r1, sp, 0x4 mov r0, sp bl sub_811D6A8 ldr r0, _0811C288 ldr r1, [sp, 0x4] movs r2, 0xF0 bl CpuSet ldr r1, _0811C28C mov r2, r8 movs r3, 0x26 ldrsh r0, [r2, r3] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldr r1, _0811C290 ldr r0, _0811C294 ldrb r0, [r0, 0x8] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0xFA movs r2, 0xC bl LoadPalette movs r1, 0 ldr r5, [sp] ldr r0, _0811C298 mov r12, r0 movs r2, 0xF0 lsls r2, 8 adds r7, r2, 0 _0811C222: movs r0, 0 lsls r3, r1, 16 asrs r4, r3, 11 _0811C228: lsls r2, r0, 16 asrs r2, 16 adds r1, r4, r2 lsls r1, 1 adds r1, r5 ldrh r0, [r6] orrs r0, r7 strh r0, [r1] adds r2, 0x1 lsls r2, 16 adds r6, 0x2 lsrs r0, r2, 16 asrs r2, 16 cmp r2, 0x1F ble _0811C228 movs r1, 0x80 lsls r1, 9 adds r0, r3, r1 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0x13 ble _0811C222 ldr r2, _0811C29C ldrh r0, [r2] movs r1, 0x2 orrs r0, r1 strh r0, [r2] ldr r2, _0811C2A0 ldrh r0, [r2] movs r1, 0x10 orrs r0, r1 strh r0, [r2] mov r0, r12 bl SetHBlankCallback mov r2, r8 ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] movs r0, 0 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811C284: .4byte gUnknown_083FDFF4 _0811C288: .4byte gUnknown_083FC348 _0811C28C: .4byte gUnknown_083FDB00 _0811C290: .4byte gUnknown_083FDB14 _0811C294: .4byte gSaveBlock2 _0811C298: .4byte sub_811C77C _0811C29C: .4byte 0x04000200 _0811C2A0: .4byte REG_DISPSTAT thumb_func_end sub_811C1CC thumb_func_start sub_811C2A4 sub_811C2A4: @ 811C2A4 push {r4-r7,lr} adds r4, r0, 0 ldr r1, _0811C384 ldrb r0, [r1] movs r0, 0 strb r0, [r1] ldr r7, _0811C388 ldrh r0, [r4, 0xA] ldrb r5, [r4, 0xA] adds r0, 0x10 strh r0, [r4, 0xA] movs r6, 0 _0811C2BC: adds r0, r5, 0 movs r1, 0x10 bl Sin ldrh r1, [r4, 0xC] adds r0, r1 lsls r0, 16 lsrs r2, r0, 16 cmp r0, 0 bge _0811C2D2 movs r2, 0x1 _0811C2D2: lsls r0, r2, 16 asrs r0, 16 cmp r0, 0xF0 ble _0811C2DC movs r2, 0xF0 _0811C2DC: strh r2, [r7] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r7, 0x2 adds r0, r5, 0 adds r0, 0x10 lsls r0, 24 lsrs r5, r0, 24 cmp r6, 0x4F bls _0811C2BC cmp r6, 0x9F bhi _0811C334 _0811C2F6: adds r0, r5, 0 movs r1, 0x10 bl Sin ldrh r1, [r4, 0xE] subs r1, r0 lsls r1, 16 lsrs r2, r1, 16 cmp r1, 0 bge _0811C30C movs r2, 0 _0811C30C: lsls r0, r2, 16 asrs r0, 16 cmp r0, 0xEF ble _0811C316 movs r2, 0xEF _0811C316: lsls r0, r2, 16 asrs r0, 8 movs r1, 0xF0 orrs r0, r1 strh r0, [r7] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r7, 0x2 adds r0, r5, 0 adds r0, 0x10 lsls r0, 24 lsrs r5, r0, 24 cmp r6, 0x9F bls _0811C2F6 _0811C334: ldrh r1, [r4, 0xC] adds r1, 0x8 strh r1, [r4, 0xC] ldrh r0, [r4, 0xE] subs r0, 0x8 strh r0, [r4, 0xE] lsls r1, 16 asrs r1, 16 cmp r1, 0xF0 ble _0811C34C movs r0, 0xF0 strh r0, [r4, 0xC] _0811C34C: movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0 bge _0811C358 movs r0, 0 strh r0, [r4, 0xE] _0811C358: ldr r0, [r4, 0xC] cmp r0, 0xF0 bne _0811C364 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0811C364: ldr r1, _0811C384 ldrh r0, [r1, 0x18] subs r0, 0x8 strh r0, [r1, 0x18] ldrh r0, [r1, 0x1A] adds r0, 0x8 strh r0, [r1, 0x1A] ldrb r0, [r1] adds r0, 0x1 ldrb r2, [r1] strb r0, [r1] movs r0, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811C384: .4byte 0x0200c000 _0811C388: .4byte gUnknown_03004DE0 thumb_func_end sub_811C2A4 thumb_func_start sub_811C38C sub_811C38C: @ 811C38C push {r4,r5,lr} adds r4, r0, 0 ldr r0, _0811C3F8 ldrb r1, [r0] movs r1, 0 strb r1, [r0] ldr r2, _0811C3FC adds r5, r0, 0 movs r3, 0xF0 _0811C39E: strh r3, [r2] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 adds r2, 0x2 cmp r1, 0x9F bls _0811C39E ldrh r0, [r4, 0x8] adds r0, 0x1 movs r1, 0 strh r0, [r4, 0x8] strh r1, [r4, 0xA] strh r1, [r4, 0xC] strh r1, [r4, 0xE] ldrh r0, [r5, 0x18] subs r0, 0x8 strh r0, [r5, 0x18] ldrh r0, [r5, 0x1A] adds r0, 0x8 strh r0, [r5, 0x1A] movs r1, 0x22 ldrsh r0, [r4, r1] movs r1, 0 bl sub_811CA10 movs r1, 0x24 ldrsh r0, [r4, r1] movs r1, 0x1 bl sub_811CA10 movs r1, 0x22 ldrsh r0, [r4, r1] bl sub_811CA28 movs r0, 0x68 bl PlaySE ldrb r0, [r5] adds r0, 0x1 ldrb r1, [r5] strb r0, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0811C3F8: .4byte 0x0200c000 _0811C3FC: .4byte gUnknown_03004DE0 thumb_func_end sub_811C38C thumb_func_start sub_811C400 sub_811C400: @ 811C400 push {r4,lr} adds r4, r0, 0 ldr r1, _0811C438 ldrh r0, [r1, 0x18] subs r0, 0x8 strh r0, [r1, 0x18] ldrh r0, [r1, 0x1A] adds r0, 0x8 strh r0, [r1, 0x1A] movs r1, 0x22 ldrsh r0, [r4, r1] bl sub_811CA44 lsls r0, 16 cmp r0, 0 beq _0811C42E ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r1, 0x24 ldrsh r0, [r4, r1] bl sub_811CA28 _0811C42E: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0811C438: .4byte 0x0200c000 thumb_func_end sub_811C400 thumb_func_start sub_811C43C sub_811C43C: @ 811C43C push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 ldr r7, _0811C4D0 ldrh r0, [r7, 0x18] subs r0, 0x8 movs r1, 0 mov r8, r1 strh r0, [r7, 0x18] ldrh r0, [r7, 0x1A] adds r0, 0x8 strh r0, [r7, 0x1A] movs r1, 0x24 ldrsh r0, [r6, r1] bl sub_811CA44 lsls r0, 16 cmp r0, 0 beq _0811C4C4 ldrb r0, [r7] movs r0, 0 strb r0, [r7] movs r0, 0 bl SetVBlankCallback ldr r1, _0811C4D4 ldrh r2, [r1, 0xA] ldr r0, _0811C4D8 ands r0, r2 strh r0, [r1, 0xA] ldrh r2, [r1, 0xA] ldr r0, _0811C4DC ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] ldr r4, _0811C4E0 movs r5, 0xA0 lsls r5, 1 adds r0, r4, 0 movs r1, 0 adds r2, r5, 0 bl memset movs r0, 0xF0 lsls r0, 3 adds r4, r0 adds r0, r4, 0 movs r1, 0 adds r2, r5, 0 bl memset ldr r1, _0811C4E4 movs r0, 0xF0 strh r0, [r1] ldr r0, _0811C4E8 mov r1, r8 strh r1, [r0] ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] strh r1, [r6, 0xE] strh r1, [r6, 0x10] movs r0, 0xBF strh r0, [r7, 0xE] ldr r0, _0811C4EC bl SetVBlankCallback _0811C4C4: movs r0, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811C4D0: .4byte 0x0200c000 _0811C4D4: .4byte 0x040000b0 _0811C4D8: .4byte 0x0000c5ff _0811C4DC: .4byte 0x00007fff _0811C4E0: .4byte gUnknown_03004DE0 _0811C4E4: .4byte REG_WIN0H _0811C4E8: .4byte REG_BLDY _0811C4EC: .4byte sub_811C700 thumb_func_end sub_811C43C thumb_func_start sub_811C4F0 sub_811C4F0: @ 811C4F0 push {r4-r7,lr} adds r4, r0, 0 ldr r1, _0811C5AC ldrb r0, [r1] movs r0, 0 strb r0, [r1] movs r6, 0x1 ldrh r0, [r1, 0x18] subs r0, 0x8 strh r0, [r1, 0x18] ldrh r0, [r1, 0x1A] adds r0, 0x8 strh r0, [r1, 0x1A] ldrh r2, [r4, 0x10] movs r3, 0x10 ldrsh r0, [r4, r3] adds r7, r1, 0 cmp r0, 0x4F bgt _0811C51A adds r0, r2, 0x2 strh r0, [r4, 0x10] _0811C51A: movs r1, 0x10 ldrsh r0, [r4, r1] cmp r0, 0x50 ble _0811C526 movs r0, 0x50 strh r0, [r4, 0x10] _0811C526: ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] movs r1, 0x1 ands r0, r1 ldrh r2, [r4, 0x10] cmp r0, 0 beq _0811C58C movs r3, 0 lsls r0, r2, 16 movs r6, 0 cmp r0, 0 blt _0811C58C movs r2, 0x50 mov r12, r2 ldr r5, _0811C5B0 _0811C546: lsls r0, r3, 16 asrs r2, r0, 16 mov r3, r12 subs r1, r3, r2 adds r0, r2, 0 adds r0, 0x50 lsls r0, 16 lsrs r3, r0, 16 lsls r1, 16 asrs r1, 15 adds r1, r5 ldrh r0, [r1] cmp r0, 0xF bhi _0811C568 movs r6, 0x1 adds r0, 0x1 strh r0, [r1] _0811C568: lsls r0, r3, 16 asrs r0, 15 adds r1, r0, r5 ldrh r0, [r1] cmp r0, 0xF bhi _0811C57A movs r6, 0x1 adds r0, 0x1 strh r0, [r1] _0811C57A: adds r0, r2, 0x1 lsls r0, 16 lsrs r3, r0, 16 asrs r0, 16 movs r2, 0x10 ldrsh r1, [r4, r2] ldrh r2, [r4, 0x10] cmp r0, r1 ble _0811C546 _0811C58C: cmp r2, 0x50 bne _0811C59A cmp r6, 0 bne _0811C59A ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0811C59A: ldrb r0, [r7] adds r0, 0x1 ldrb r1, [r7] strb r0, [r7] movs r0, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811C5AC: .4byte 0x0200c000 _0811C5B0: .4byte gUnknown_03004DE0 thumb_func_end sub_811C4F0 thumb_func_start sub_811C5B4 sub_811C5B4: @ 811C5B4 push {r4-r6,lr} adds r5, r0, 0 ldr r4, _0811C5E0 ldrb r0, [r4] movs r6, 0 strb r6, [r4] movs r0, 0x1 negs r0, r0 ldr r2, _0811C5E4 movs r1, 0x10 bl BlendPalettes movs r0, 0xFF strh r0, [r4, 0xE] strh r6, [r5, 0xE] ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0811C5E0: .4byte 0x0200c000 _0811C5E4: .4byte 0x00007fff thumb_func_end sub_811C5B4 thumb_func_start sub_811C5E8 sub_811C5E8: @ 811C5E8 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _0811C628 ldrb r0, [r5] movs r0, 0 strb r0, [r5] ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] ldr r0, _0811C62C movs r2, 0xE ldrsh r1, [r4, r2] movs r2, 0xA0 lsls r2, 1 bl memset movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0xF ble _0811C616 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0811C616: ldrb r0, [r5] adds r0, 0x1 ldrb r1, [r5] strb r0, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0811C628: .4byte 0x0200c000 _0811C62C: .4byte gUnknown_03004DE0 thumb_func_end sub_811C5E8 thumb_func_start sub_811C630 sub_811C630: @ 811C630 push {r4,lr} adds r4, r0, 0 ldr r1, _0811C664 ldrh r2, [r1, 0xA] ldr r0, _0811C668 ands r0, r2 strh r0, [r1, 0xA] ldrh r2, [r1, 0xA] ldr r0, _0811C66C ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] bl sub_811D6D4 ldr r0, [r4] bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0811C664: .4byte 0x040000b0 _0811C668: .4byte 0x0000c5ff _0811C66C: .4byte 0x00007fff thumb_func_end sub_811C630 thumb_func_start sub_811C670 sub_811C670: @ 811C670 push {r4,lr} ldr r4, _0811C6D4 ldrh r1, [r4, 0xA] ldr r0, _0811C6D8 ands r0, r1 strh r0, [r4, 0xA] ldrh r1, [r4, 0xA] ldr r0, _0811C6DC ands r0, r1 strh r0, [r4, 0xA] ldrh r0, [r4, 0xA] bl sub_811D67C ldr r2, _0811C6E0 ldrb r0, [r2] cmp r0, 0 beq _0811C6A6 ldr r1, _0811C6E4 ldr r0, _0811C6E8 str r0, [r1] movs r3, 0xF0 lsls r3, 3 adds r0, r3 str r0, [r1, 0x4] ldr r0, _0811C6EC str r0, [r1, 0x8] ldr r0, [r1, 0x8] _0811C6A6: ldr r1, _0811C6F0 ldrh r0, [r2, 0x1C] strh r0, [r1] adds r1, 0x36 ldrh r0, [r2, 0x2] strh r0, [r1] adds r1, 0x2 ldrh r0, [r2, 0x4] strh r0, [r1] subs r1, 0x6 ldrh r0, [r2, 0x8] strh r0, [r1] ldr r0, _0811C6F4 str r0, [r4] ldr r0, _0811C6F8 str r0, [r4, 0x4] ldr r0, _0811C6FC str r0, [r4, 0x8] ldr r0, [r4, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _0811C6D4: .4byte 0x040000b0 _0811C6D8: .4byte 0x0000c5ff _0811C6DC: .4byte 0x00007fff _0811C6E0: .4byte 0x0200c000 _0811C6E4: .4byte 0x040000d4 _0811C6E8: .4byte gUnknown_03004DE0 _0811C6EC: .4byte 0x800000a0 _0811C6F0: .4byte REG_BG0VOFS _0811C6F4: .4byte gUnknown_03005560 _0811C6F8: .4byte REG_WIN0H _0811C6FC: .4byte 0xa2400001 thumb_func_end sub_811C670 thumb_func_start sub_811C700 sub_811C700: @ 811C700 push {r4,lr} ldr r4, _0811C750 ldrh r1, [r4, 0xA] ldr r0, _0811C754 ands r0, r1 strh r0, [r4, 0xA] ldrh r1, [r4, 0xA] ldr r0, _0811C758 ands r0, r1 strh r0, [r4, 0xA] ldrh r0, [r4, 0xA] bl sub_811D67C ldr r2, _0811C75C ldrb r0, [r2] cmp r0, 0 beq _0811C736 ldr r1, _0811C760 ldr r0, _0811C764 str r0, [r1] movs r3, 0xF0 lsls r3, 3 adds r0, r3 str r0, [r1, 0x4] ldr r0, _0811C768 str r0, [r1, 0x8] ldr r0, [r1, 0x8] _0811C736: ldr r1, _0811C76C ldrh r0, [r2, 0xE] strh r0, [r1] ldr r0, _0811C770 str r0, [r4] ldr r0, _0811C774 str r0, [r4, 0x4] ldr r0, _0811C778 str r0, [r4, 0x8] ldr r0, [r4, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _0811C750: .4byte 0x040000b0 _0811C754: .4byte 0x0000c5ff _0811C758: .4byte 0x00007fff _0811C75C: .4byte 0x0200c000 _0811C760: .4byte 0x040000d4 _0811C764: .4byte gUnknown_03004DE0 _0811C768: .4byte 0x800000a0 _0811C76C: .4byte REG_BLDCNT _0811C770: .4byte gUnknown_03005560 _0811C774: .4byte REG_BLDY _0811C778: .4byte 0xa2400001 thumb_func_end sub_811C700 thumb_func_start sub_811C77C sub_811C77C: @ 811C77C push {lr} ldr r0, _0811C790 ldrh r0, [r0] cmp r0, 0x4F bhi _0811C79C ldr r0, _0811C794 ldr r1, _0811C798 ldrh r1, [r1, 0x18] b _0811C7A2 .align 2, 0 _0811C790: .4byte REG_VCOUNT _0811C794: .4byte REG_BG0HOFS _0811C798: .4byte 0x0200c000 _0811C79C: ldr r0, _0811C7A8 ldr r1, _0811C7AC ldrh r1, [r1, 0x1A] _0811C7A2: strh r1, [r0] pop {r0} bx r0 .align 2, 0 _0811C7A8: .4byte REG_BG0HOFS _0811C7AC: .4byte 0x0200c000 thumb_func_end sub_811C77C thumb_func_start sub_811C7B0 sub_811C7B0: @ 811C7B0 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r4, r0, 0 ldr r0, _0811C8EC movs r2, 0x26 ldrsh r1, [r4, r2] mov r8, r1 add r0, r8 ldrb r0, [r0] ldr r2, _0811C8F0 lsls r1, 2 mov r8, r1 adds r1, r2 ldrh r1, [r1] subs r1, 0x20 lsls r1, 16 asrs r1, 16 adds r2, 0x2 add r2, r8 ldrh r2, [r2] adds r2, 0x2A lsls r2, 16 asrs r2, 16 ldr r5, _0811C8F4 str r5, [sp] movs r3, 0 bl sub_80859BC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] ldr r0, _0811C8F8 ldrb r0, [r0, 0x8] movs r1, 0x88 lsls r1, 1 str r5, [sp] movs r2, 0x6A movs r3, 0 bl sub_80859BC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x24] movs r3, 0x22 ldrsh r0, [r4, r3] lsls r5, r0, 4 adds r5, r0 lsls r5, 2 ldr r1, _0811C8FC adds r5, r1 movs r2, 0x24 ldrsh r0, [r4, r2] lsls r6, r0, 4 adds r6, r0 lsls r6, 2 adds r6, r1 ldr r0, _0811C900 str r0, [r5, 0x1C] str r0, [r6, 0x1C] ldrb r0, [r5, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r5, 0x1] ldrb r0, [r6, 0x1] orrs r0, r1 strb r0, [r6, 0x1] bl AllocOamMatrix lsls r0, 24 lsrs r0, 24 movs r3, 0x1F mov r9, r3 mov r4, r9 ands r0, r4 lsls r0, 1 ldrb r2, [r5, 0x3] movs r4, 0x3F negs r4, r4 adds r1, r4, 0 ands r1, r2 orrs r1, r0 strb r1, [r5, 0x3] bl AllocOamMatrix lsls r0, 24 lsrs r0, 24 mov r1, r9 ands r0, r1 lsls r0, 1 ldrb r1, [r6, 0x3] ands r4, r1 orrs r4, r0 strb r4, [r6, 0x3] ldrb r2, [r5, 0x1] movs r1, 0x3F adds r0, r1, 0 ands r0, r2 movs r2, 0x40 orrs r0, r2 strb r0, [r5, 0x1] ldrb r0, [r6, 0x1] ands r1, r0 orrs r1, r2 strb r1, [r6, 0x1] ldrb r0, [r5, 0x3] movs r1, 0xC0 orrs r0, r1 strb r0, [r5, 0x3] ldrb r0, [r6, 0x3] orrs r0, r1 strb r0, [r6, 0x3] adds r0, r5, 0 movs r1, 0x1 movs r2, 0x3 movs r3, 0x3 bl CalcCenterToCornerVec adds r0, r6, 0 movs r1, 0x1 movs r2, 0x3 movs r3, 0x3 bl CalcCenterToCornerVec ldrb r0, [r5, 0x3] lsls r0, 26 lsrs r0, 27 ldr r2, _0811C904 mov r3, r8 adds r1, r3, r2 movs r4, 0 ldrsh r1, [r1, r4] adds r2, 0x2 add r8, r2 mov r3, r8 movs r4, 0 ldrsh r2, [r3, r4] movs r3, 0 bl SetOamMatrixRotationScaling ldrb r0, [r6, 0x3] lsls r0, 26 lsrs r0, 27 ldr r1, _0811C908 movs r2, 0x80 lsls r2, 2 movs r3, 0 bl SetOamMatrixRotationScaling add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811C8EC: .4byte gUnknown_083FD850 _0811C8F0: .4byte gUnknown_083FD86A _0811C8F4: .4byte 0x0200c03c _0811C8F8: .4byte gSaveBlock2 _0811C8FC: .4byte gSprites _0811C900: .4byte sub_811C90C _0811C904: .4byte gUnknown_083FD856 _0811C908: .4byte 0xfffffe00 thumb_func_end sub_811C7B0 thumb_func_start sub_811C90C sub_811C90C: @ 811C90C push {r4,r5,lr} adds r4, r0, 0 ldr r5, _0811C930 _0811C912: movs r1, 0x2E ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811C912 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811C930: .4byte gUnknown_083FD880 thumb_func_end sub_811C90C thumb_func_start sub_811C934 sub_811C934: @ 811C934 movs r0, 0 bx lr thumb_func_end sub_811C934 thumb_func_start sub_811C938 sub_811C938: @ 811C938 push {r4,r5,lr} sub sp, 0x8 adds r5, r0, 0 ldr r1, _0811C97C mov r0, sp movs r2, 0x4 bl memcpy add r4, sp, 0x4 ldr r1, _0811C980 adds r0, r4, 0 movs r2, 0x4 bl memcpy ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] movs r1, 0x3C ldrsh r0, [r5, r1] lsls r0, 1 add r0, sp ldrh r0, [r0] strh r0, [r5, 0x30] movs r1, 0x3C ldrsh r0, [r5, r1] lsls r0, 1 adds r4, r0 ldrh r0, [r4] strh r0, [r5, 0x32] movs r0, 0x1 add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0811C97C: .4byte gUnknown_083FD89C _0811C980: .4byte gUnknown_083FD8A0 thumb_func_end sub_811C938 thumb_func_start sub_811C984 sub_811C984: @ 811C984 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x30] ldrh r3, [r1, 0x20] adds r2, r0, r3 strh r2, [r1, 0x20] movs r3, 0x3C ldrsh r0, [r1, r3] cmp r0, 0 beq _0811C9A2 lsls r0, r2, 16 asrs r0, 16 cmp r0, 0x84 bgt _0811C9B0 b _0811C9AA _0811C9A2: lsls r0, r2, 16 asrs r0, 16 cmp r0, 0x67 ble _0811C9B0 _0811C9AA: ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] _0811C9B0: movs r0, 0 pop {r1} bx r1 thumb_func_end sub_811C984 thumb_func_start sub_811C9B8 sub_811C9B8: @ 811C9B8 push {lr} adds r2, r0, 0 ldrh r3, [r2, 0x32] ldrh r0, [r2, 0x30] adds r1, r3, r0 strh r1, [r2, 0x30] ldrh r0, [r2, 0x20] adds r0, r1 strh r0, [r2, 0x20] lsls r1, 16 cmp r1, 0 bne _0811C9DE ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] negs r0, r3 strh r0, [r2, 0x32] movs r0, 0x1 strh r0, [r2, 0x3A] _0811C9DE: movs r0, 0 pop {r1} bx r1 thumb_func_end sub_811C9B8 thumb_func_start sub_811C9E4 sub_811C9E4: @ 811C9E4 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x32] ldrh r1, [r2, 0x30] adds r0, r1 strh r0, [r2, 0x30] ldrh r1, [r2, 0x20] adds r1, r0 strh r1, [r2, 0x20] adds r1, 0x1F lsls r1, 16 movs r0, 0x97 lsls r0, 17 cmp r1, r0 bls _0811CA08 ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] _0811CA08: movs r0, 0 pop {r1} bx r1 thumb_func_end sub_811C9E4 thumb_func_start sub_811CA10 sub_811CA10: @ 811CA10 ldr r3, _0811CA24 lsls r0, 16 asrs r0, 16 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r3 strh r1, [r2, 0x3C] bx lr .align 2, 0 _0811CA24: .4byte gSprites thumb_func_end sub_811CA10 thumb_func_start sub_811CA28 sub_811CA28: @ 811CA28 ldr r2, _0811CA40 lsls r0, 16 asrs r0, 16 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] bx lr .align 2, 0 _0811CA40: .4byte gSprites thumb_func_end sub_811CA28 thumb_func_start sub_811CA44 sub_811CA44: @ 811CA44 ldr r2, _0811CA58 lsls r0, 16 asrs r0, 16 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r2, 0x3A ldrsh r0, [r1, r2] bx lr .align 2, 0 _0811CA58: .4byte gSprites thumb_func_end sub_811CA44 thumb_func_start sub_811CA5C sub_811CA5C: @ 811CA5C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811CA8C ldr r2, _0811CA90 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811CA6E: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811CA6E pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811CA8C: .4byte gUnknown_083FD8A4 _0811CA90: .4byte gTasks thumb_func_end sub_811CA5C thumb_func_start sub_811CA94 sub_811CA94: @ 811CA94 push {r4-r6,lr} adds r4, r0, 0 bl sub_811D658 bl dp12_8087EA4 movs r2, 0 movs r0, 0x80 lsls r0, 1 strh r0, [r4, 0xC] movs r0, 0x1 strh r0, [r4, 0xE] ldr r1, _0811CB08 movs r0, 0x3F strh r0, [r1, 0x2] strh r2, [r1, 0x4] movs r0, 0xA0 strh r0, [r1, 0x8] ldr r3, _0811CB0C adds r6, r1, 0 movs r5, 0xF0 _0811CABE: lsls r0, r2, 1 adds r0, r3 ldrh r1, [r6, 0x14] strh r1, [r0] adds r0, r2, 0 adds r0, 0xA0 lsls r0, 1 adds r0, r3 strh r5, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x9F bls _0811CABE ldr r2, _0811CB10 ldrh r0, [r2] movs r1, 0x2 orrs r0, r1 strh r0, [r2] ldr r2, _0811CB14 ldrh r0, [r2] movs r1, 0x10 orrs r0, r1 strh r0, [r2] ldr r0, _0811CB18 bl SetVBlankCallback ldr r0, _0811CB1C bl SetHBlankCallback ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0811CB08: .4byte 0x0200c000 _0811CB0C: .4byte gUnknown_03005560 _0811CB10: .4byte 0x04000200 _0811CB14: .4byte REG_DISPSTAT _0811CB18: .4byte sub_811CC28 _0811CB1C: .4byte sub_811CCB0 thumb_func_end sub_811CA94 thumb_func_start sub_811CB20 sub_811CB20: @ 811CB20 push {r4-r7,lr} mov r7, r8 push {r7} adds r2, r0, 0 ldr r1, _0811CB98 ldrb r0, [r1] movs r0, 0 strb r0, [r1] ldrh r0, [r2, 0xC] lsls r0, 16 asrs r0, 24 ldrh r3, [r2, 0xA] adds r0, r3 strh r0, [r2, 0xA] lsls r0, 16 asrs r0, 16 mov r12, r1 cmp r0, 0xF0 ble _0811CB4A movs r0, 0xF0 strh r0, [r2, 0xA] _0811CB4A: ldrh r4, [r2, 0xC] movs r0, 0xC ldrsh r1, [r2, r0] ldr r0, _0811CB9C ldrh r3, [r2, 0xE] cmp r1, r0 bgt _0811CB5C adds r0, r4, r3 strh r0, [r2, 0xC] _0811CB5C: lsls r0, r3, 16 asrs r0, 16 cmp r0, 0x7F bgt _0811CB68 lsls r0, r3, 1 strh r0, [r2, 0xE] _0811CB68: movs r5, 0 ldr r7, _0811CBA0 movs r1, 0xA0 lsls r1, 1 adds r1, r7 mov r8, r1 mov r6, r12 _0811CB76: lsls r0, r5, 1 adds r3, r0, r7 mov r1, r8 adds r4, r0, r1 movs r0, 0x1 ands r0, r5 cmp r0, 0 beq _0811CBA4 ldrh r0, [r2, 0xA] ldrh r1, [r6, 0x14] adds r0, r1 strh r0, [r3] ldrh r1, [r2, 0xA] movs r0, 0xF0 subs r0, r1 b _0811CBB4 .align 2, 0 _0811CB98: .4byte 0x0200c000 _0811CB9C: .4byte 0x00000fff _0811CBA0: .4byte gUnknown_03004DE0 _0811CBA4: ldrh r0, [r6, 0x14] ldrh r1, [r2, 0xA] subs r0, r1 strh r0, [r3] ldrh r0, [r2, 0xA] lsls r0, 8 movs r1, 0xF1 orrs r0, r1 _0811CBB4: strh r0, [r4] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x9F bls _0811CB76 movs r3, 0xA ldrsh r0, [r2, r3] cmp r0, 0xEF ble _0811CBCE ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] _0811CBCE: mov r1, r12 ldrb r0, [r1] adds r0, 0x1 ldrb r1, [r1] mov r2, r12 strb r0, [r2] movs r0, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_811CB20 thumb_func_start sub_811CBE8 sub_811CBE8: @ 811CBE8 push {lr} ldr r1, _0811CC18 ldrh r2, [r1, 0xA] ldr r0, _0811CC1C ands r0, r2 strh r0, [r1, 0xA] ldrh r2, [r1, 0xA] ldr r0, _0811CC20 ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] bl sub_811D6D4 ldr r0, _0811CC24 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 pop {r1} bx r1 .align 2, 0 _0811CC18: .4byte 0x040000b0 _0811CC1C: .4byte 0x0000c5ff _0811CC20: .4byte 0x00007fff _0811CC24: .4byte sub_811CA5C thumb_func_end sub_811CBE8 thumb_func_start sub_811CC28 sub_811CC28: @ 811CC28 push {r4,lr} ldr r4, _0811CC84 ldrh r1, [r4, 0xA] ldr r0, _0811CC88 ands r0, r1 strh r0, [r4, 0xA] ldrh r1, [r4, 0xA] ldr r0, _0811CC8C ands r0, r1 strh r0, [r4, 0xA] ldrh r0, [r4, 0xA] bl sub_811D67C ldr r2, _0811CC90 ldr r1, _0811CC94 ldrh r0, [r1, 0x2] strh r0, [r2] adds r2, 0x2 ldrh r0, [r1, 0x4] strh r0, [r2] subs r2, 0x6 ldrh r0, [r1, 0x8] strh r0, [r2] ldrb r0, [r1] cmp r0, 0 beq _0811CC70 ldr r1, _0811CC98 ldr r0, _0811CC9C str r0, [r1] movs r2, 0xF0 lsls r2, 3 adds r0, r2 str r0, [r1, 0x4] ldr r0, _0811CCA0 str r0, [r1, 0x8] ldr r0, [r1, 0x8] _0811CC70: ldr r0, _0811CCA4 str r0, [r4] ldr r0, _0811CCA8 str r0, [r4, 0x4] ldr r0, _0811CCAC str r0, [r4, 0x8] ldr r0, [r4, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _0811CC84: .4byte 0x040000b0 _0811CC88: .4byte 0x0000c5ff _0811CC8C: .4byte 0x00007fff _0811CC90: .4byte REG_WININ _0811CC94: .4byte 0x0200c000 _0811CC98: .4byte 0x040000d4 _0811CC9C: .4byte gUnknown_03004DE0 _0811CCA0: .4byte 0x80000140 _0811CCA4: .4byte gUnknown_030056A0 _0811CCA8: .4byte REG_WIN0H _0811CCAC: .4byte 0xa2400001 thumb_func_end sub_811CC28 thumb_func_start sub_811CCB0 sub_811CCB0: @ 811CCB0 ldr r1, _0811CCD0 ldr r0, _0811CCD4 ldrh r0, [r0] lsls r0, 1 movs r2, 0xF0 lsls r2, 3 adds r1, r2 adds r0, r1 ldrh r1, [r0] ldr r0, _0811CCD8 strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x4 strh r1, [r0] bx lr .align 2, 0 _0811CCD0: .4byte gUnknown_03004DE0 _0811CCD4: .4byte REG_VCOUNT _0811CCD8: .4byte REG_BG1HOFS thumb_func_end sub_811CCB0 thumb_func_start sub_811CCDC sub_811CCDC: @ 811CCDC push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811CD0C ldr r2, _0811CD10 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811CCEE: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811CCEE pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811CD0C: .4byte gUnknown_083FD8B0 _0811CD10: .4byte gTasks thumb_func_end sub_811CCDC thumb_func_start sub_811CD14 sub_811CD14: @ 811CD14 push {r4,r5,lr} adds r5, r0, 0 bl sub_811D658 bl dp12_8087EA4 ldr r1, _0811CD88 movs r2, 0 movs r0, 0xBF strh r0, [r1, 0xE] strh r2, [r1, 0x12] movs r0, 0x1E strh r0, [r1, 0x2] movs r0, 0x3F strh r0, [r1, 0x4] movs r0, 0xA0 strh r0, [r1, 0x8] movs r1, 0 ldr r2, _0811CD8C movs r4, 0 movs r3, 0xF0 _0811CD3E: lsls r0, r1, 1 adds r0, r2 strh r4, [r0] adds r0, r1, 0 adds r0, 0xA0 lsls r0, 1 adds r0, r2 strh r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x9F bls _0811CD3E ldr r2, _0811CD90 ldrh r0, [r2] movs r1, 0x2 orrs r0, r1 strh r0, [r2] ldr r2, _0811CD94 ldrh r0, [r2] movs r1, 0x10 orrs r0, r1 strh r0, [r2] ldr r0, _0811CD98 bl SetHBlankCallback ldr r0, _0811CD9C bl SetVBlankCallback ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0811CD88: .4byte 0x0200c000 _0811CD8C: .4byte gUnknown_03005560 _0811CD90: .4byte 0x04000200 _0811CD94: .4byte REG_DISPSTAT _0811CD98: .4byte sub_811CFAC _0811CD9C: .4byte sub_811CEE4 thumb_func_end sub_811CD14 thumb_func_start sub_811CDA0 sub_811CDA0: @ 811CDA0 push {r4-r6,lr} sub sp, 0x10 adds r6, r0, 0 ldr r1, _0811CE08 mov r0, sp movs r2, 0x10 bl memcpy movs r5, 0 movs r4, 0 _0811CDB4: ldr r0, _0811CE0C bl CreateInvisibleSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _0811CE10 adds r2, r1, r0 movs r0, 0xF0 strh r0, [r2, 0x20] strh r4, [r2, 0x22] lsls r1, r5, 16 asrs r1, 16 lsls r0, r1, 1 add r0, sp ldrh r0, [r0] strh r0, [r2, 0x38] adds r1, 0x1 lsls r1, 16 lsls r0, r4, 16 movs r3, 0xA0 lsls r3, 13 adds r0, r3 lsrs r4, r0, 16 lsrs r5, r1, 16 asrs r1, 16 cmp r1, 0x7 ble _0811CDB4 ldrh r0, [r2, 0x3A] adds r0, 0x1 strh r0, [r2, 0x3A] ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] movs r0, 0 add sp, 0x10 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0811CE08: .4byte gUnknown_083FD8C4 _0811CE0C: .4byte sub_811CFD0 _0811CE10: .4byte gSprites thumb_func_end sub_811CDA0 thumb_func_start sub_811CE14 sub_811CE14: @ 811CE14 push {r4,lr} adds r4, r0, 0 ldr r0, _0811CE44 ldrb r1, [r0] movs r1, 0 strb r1, [r0] movs r1, 0x20 ldrsh r0, [r0, r1] cmp r0, 0x7 ble _0811CE3A movs r0, 0x1 negs r0, r0 ldr r2, _0811CE48 movs r1, 0x10 bl BlendPalettes ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0811CE3A: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0811CE44: .4byte 0x0200c000 _0811CE48: .4byte 0x00007fff thumb_func_end sub_811CE14 thumb_func_start sub_811CE4C sub_811CE4C: @ 811CE4C push {r4-r6,lr} adds r6, r0, 0 ldr r4, _0811CE9C ldrb r0, [r4] movs r5, 0 strb r5, [r4] ldr r1, _0811CEA0 ldrh r2, [r1, 0xA] ldr r0, _0811CEA4 ands r0, r2 strh r0, [r1, 0xA] ldrh r2, [r1, 0xA] ldr r0, _0811CEA8 ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] movs r0, 0 bl SetVBlankCallback movs r0, 0 bl SetHBlankCallback movs r0, 0xF0 strh r0, [r4, 0x6] strh r5, [r4, 0x12] movs r0, 0xFF strh r0, [r4, 0xE] movs r0, 0x3F strh r0, [r4, 0x2] ldr r0, _0811CEAC bl SetVBlankCallback ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] movs r0, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0811CE9C: .4byte 0x0200c000 _0811CEA0: .4byte 0x040000b0 _0811CEA4: .4byte 0x0000c5ff _0811CEA8: .4byte 0x00007fff _0811CEAC: .4byte sub_811CF74 thumb_func_end sub_811CE4C thumb_func_start sub_811CEB0 sub_811CEB0: @ 811CEB0 push {lr} ldr r1, _0811CEDC ldrh r0, [r1, 0x12] adds r0, 0x1 strh r0, [r1, 0x12] lsls r0, 16 lsrs r0, 16 cmp r0, 0x10 bls _0811CED4 bl sub_811D6D4 ldr r0, _0811CEE0 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0811CED4: movs r0, 0 pop {r1} bx r1 .align 2, 0 _0811CEDC: .4byte 0x0200c000 _0811CEE0: .4byte sub_811CCDC thumb_func_end sub_811CEB0 thumb_func_start sub_811CEE4 sub_811CEE4: @ 811CEE4 push {r4,lr} ldr r4, _0811CF48 ldrh r1, [r4, 0xA] ldr r0, _0811CF4C ands r0, r1 strh r0, [r4, 0xA] ldrh r1, [r4, 0xA] ldr r0, _0811CF50 ands r0, r1 strh r0, [r4, 0xA] ldrh r0, [r4, 0xA] bl sub_811D67C ldr r2, _0811CF54 ldr r1, _0811CF58 ldrh r0, [r1, 0xE] strh r0, [r2] subs r2, 0x8 ldrh r0, [r1, 0x2] strh r0, [r2] adds r2, 0x2 ldrh r0, [r1, 0x4] strh r0, [r2] subs r2, 0x6 ldrh r0, [r1, 0x6] strh r0, [r2] ldrb r0, [r1] cmp r0, 0 beq _0811CF32 ldr r1, _0811CF5C ldr r0, _0811CF60 str r0, [r1] movs r2, 0xF0 lsls r2, 3 adds r0, r2 str r0, [r1, 0x4] ldr r0, _0811CF64 str r0, [r1, 0x8] ldr r0, [r1, 0x8] _0811CF32: ldr r0, _0811CF68 str r0, [r4] ldr r0, _0811CF6C str r0, [r4, 0x4] ldr r0, _0811CF70 str r0, [r4, 0x8] ldr r0, [r4, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _0811CF48: .4byte 0x040000b0 _0811CF4C: .4byte 0x0000c5ff _0811CF50: .4byte 0x00007fff _0811CF54: .4byte REG_BLDCNT _0811CF58: .4byte 0x0200c000 _0811CF5C: .4byte 0x040000d4 _0811CF60: .4byte gUnknown_03004DE0 _0811CF64: .4byte 0x80000140 _0811CF68: .4byte gUnknown_030056A0 _0811CF6C: .4byte REG_WIN0H _0811CF70: .4byte 0xa2400001 thumb_func_end sub_811CEE4 thumb_func_start sub_811CF74 sub_811CF74: @ 811CF74 push {lr} bl sub_811D67C ldr r1, _0811CFA4 ldr r2, _0811CFA8 ldrh r0, [r2, 0x12] strh r0, [r1] subs r1, 0x4 ldrh r0, [r2, 0xE] strh r0, [r1] subs r1, 0x8 ldrh r0, [r2, 0x2] strh r0, [r1] adds r1, 0x2 ldrh r0, [r2, 0x4] strh r0, [r1] subs r1, 0xA ldrh r0, [r2, 0x6] strh r0, [r1] adds r1, 0x4 ldrh r0, [r2, 0x8] strh r0, [r1] pop {r0} bx r0 .align 2, 0 _0811CFA4: .4byte REG_BLDY _0811CFA8: .4byte 0x0200c000 thumb_func_end sub_811CF74 thumb_func_start sub_811CFAC sub_811CFAC: @ 811CFAC ldr r2, _0811CFC4 ldr r1, _0811CFC8 ldr r0, _0811CFCC ldrh r0, [r0] lsls r0, 1 movs r3, 0xF0 lsls r3, 3 adds r1, r3 adds r0, r1 ldrh r0, [r0] strh r0, [r2] bx lr .align 2, 0 _0811CFC4: .4byte REG_BLDY _0811CFC8: .4byte gUnknown_03004DE0 _0811CFCC: .4byte REG_VCOUNT thumb_func_end sub_811CFAC thumb_func_start sub_811CFD0 sub_811CFD0: @ 811CFD0 push {r4-r6,lr} adds r3, r0, 0 ldrh r1, [r3, 0x38] movs r2, 0x38 ldrsh r0, [r3, r2] cmp r0, 0 beq _0811CFF8 subs r0, r1, 0x1 strh r0, [r3, 0x38] movs r1, 0x3A ldrsh r0, [r3, r1] cmp r0, 0 beq _0811D0AA ldr r0, _0811CFF4 ldrb r1, [r0] movs r1, 0x1 strb r1, [r0] b _0811D0AA .align 2, 0 _0811CFF4: .4byte 0x0200c000 _0811CFF8: movs r2, 0x22 ldrsh r1, [r3, r2] lsls r1, 1 ldr r0, _0811D0B0 adds r6, r1, r0 movs r2, 0xA0 lsls r2, 1 adds r0, r2 adds r5, r1, r0 movs r4, 0 _0811D00C: lsls r1, r4, 1 adds r2, r1, r6 ldrh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 24 strh r0, [r2] adds r1, r5 ldrh r0, [r3, 0x20] lsls r0, 24 lsrs r0, 24 strh r0, [r1] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x13 bls _0811D00C movs r1, 0x20 ldrsh r0, [r3, r1] ldrh r2, [r3, 0x20] cmp r0, 0 bne _0811D046 movs r0, 0x2E ldrsh r1, [r3, r0] movs r0, 0x80 lsls r0, 5 cmp r1, r0 bne _0811D046 movs r0, 0x1 strh r0, [r3, 0x30] _0811D046: adds r1, r2, 0 subs r1, 0x10 strh r1, [r3, 0x20] ldrh r0, [r3, 0x2E] adds r0, 0x80 strh r0, [r3, 0x2E] lsls r1, 16 cmp r1, 0 bge _0811D05C movs r0, 0 strh r0, [r3, 0x20] _0811D05C: movs r1, 0x2E ldrsh r0, [r3, r1] movs r1, 0x80 lsls r1, 5 cmp r0, r1 ble _0811D06A strh r1, [r3, 0x2E] _0811D06A: movs r0, 0x3A ldrsh r2, [r3, r0] cmp r2, 0 beq _0811D07A ldr r0, _0811D0B4 ldrb r1, [r0] movs r1, 0x1 strb r1, [r0] _0811D07A: movs r1, 0x30 ldrsh r0, [r3, r1] cmp r0, 0 beq _0811D0AA ldr r4, _0811D0B4 cmp r2, 0 beq _0811D09E movs r2, 0x20 ldrsh r0, [r4, r2] cmp r0, 0x6 ble _0811D0AA ldrh r0, [r3, 0x32] adds r1, r0, 0x1 strh r1, [r3, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _0811D0AA _0811D09E: ldrh r0, [r4, 0x20] adds r0, 0x1 strh r0, [r4, 0x20] adds r0, r3, 0 bl DestroySprite _0811D0AA: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811D0B0: .4byte gUnknown_03004DE0 _0811D0B4: .4byte 0x0200c000 thumb_func_end sub_811CFD0 thumb_func_start sub_811D0B8 sub_811D0B8: @ 811D0B8 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811D0E8 ldr r2, _0811D0EC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811D0CA: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811D0CA pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811D0E8: .4byte gUnknown_083FD8D4 _0811D0EC: .4byte gTasks thumb_func_end sub_811D0B8 thumb_func_start sub_811D0F0 sub_811D0F0: @ 811D0F0 push {r4,lr} sub sp, 0xC adds r4, r0, 0 add r0, sp, 0x4 add r1, sp, 0x8 bl sub_811D6A8 ldr r0, _0811D138 ldr r1, [sp, 0x8] movs r2, 0x10 bl CpuSet mov r1, sp movs r2, 0xF0 lsls r2, 8 adds r0, r2, 0 strh r0, [r1] ldr r1, [sp, 0x4] ldr r2, _0811D13C mov r0, sp bl CpuSet ldr r0, _0811D140 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 add sp, 0xC pop {r4} pop {r1} bx r1 .align 2, 0 _0811D138: .4byte gUnknown_083FD528 _0811D13C: .4byte 0x01000400 _0811D140: .4byte gFieldEffectObjectPalette10 thumb_func_end sub_811D0F0 thumb_func_start sub_811D144 sub_811D144: @ 811D144 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0 bne _0811D186 mov r0, sp bl sub_811D690 movs r0, 0x3 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] movs r1, 0xC ldrsh r0, [r4, r1] lsls r0, 5 ldr r1, _0811D198 adds r0, r1 ldr r1, [sp] movs r2, 0x10 bl CpuSet movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0xD ble _0811D186 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x10 strh r0, [r4, 0xA] _0811D186: ldrh r0, [r4, 0xA] subs r0, 0x1 strh r0, [r4, 0xA] movs r0, 0 add sp, 0x4 pop {r4} pop {r1} bx r1 .align 2, 0 _0811D198: .4byte gUnknown_083FD528 thumb_func_end sub_811D144 thumb_func_start sub_811D19C sub_811D19C: @ 811D19C push {lr} ldrh r1, [r0, 0xA] subs r1, 0x1 strh r1, [r0, 0xA] lsls r1, 16 cmp r1, 0 bne _0811D1BC bl sub_811D6D4 ldr r0, _0811D1C4 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0811D1BC: movs r0, 0 pop {r1} bx r1 .align 2, 0 _0811D1C4: .4byte sub_811D0B8 thumb_func_end sub_811D19C thumb_func_start sub_811D1C8 sub_811D1C8: @ 811D1C8 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811D1F8 ldr r2, _0811D1FC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811D1DA: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811D1DA pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811D1F8: .4byte gUnknown_083FD8E0 _0811D1FC: .4byte gTasks thumb_func_end sub_811D1C8 thumb_func_start sub_811D200 sub_811D200: @ 811D200 push {r4,r5,lr} adds r5, r0, 0 bl sub_811D658 bl dp12_8087EA4 ldr r1, _0811D254 movs r2, 0 movs r0, 0x3F strh r0, [r1, 0x2] strh r2, [r1, 0x4] movs r0, 0xA0 strh r0, [r1, 0x8] movs r1, 0 ldr r2, _0811D258 movs r3, 0xF0 adds r4, r2, 0 _0811D222: lsls r0, r1, 1 adds r0, r2 strh r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x9F bls _0811D222 movs r0, 0xF0 lsls r0, 3 adds r1, r4, r0 adds r0, r4, 0 movs r2, 0xA0 bl CpuSet ldr r0, _0811D25C bl SetVBlankCallback ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0811D254: .4byte 0x0200c000 _0811D258: .4byte gUnknown_03004DE0 _0811D25C: .4byte sub_811D438 thumb_func_end sub_811D200 thumb_func_start sub_811D260 sub_811D260: @ 811D260 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0xC mov r8, r0 ldr r0, _0811D2D0 ldr r6, _0811D2D4 mov r2, r8 movs r3, 0xA ldrsh r1, [r2, r3] lsls r4, r1, 2 adds r4, r1 lsls r4, 1 adds r1, r4, r6 movs r5, 0 ldrsh r1, [r1, r5] adds r2, r6, 0x2 adds r2, r4, r2 movs r3, 0 ldrsh r2, [r2, r3] adds r3, r6, 0x4 adds r3, r4, r3 movs r5, 0 ldrsh r3, [r3, r5] adds r5, r6, 0x6 adds r4, r5 movs r5, 0 ldrsh r4, [r4, r5] str r4, [sp] movs r4, 0x1 str r4, [sp, 0x4] str r4, [sp, 0x8] bl sub_811D8FC mov r0, r8 movs r2, 0xA ldrsh r1, [r0, r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 1 adds r6, 0x8 adds r0, r6 ldrh r0, [r0] mov r3, r8 strh r0, [r3, 0xC] ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] movs r0, 0x1 add sp, 0xC pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0811D2D0: .4byte 0x0200c024 _0811D2D4: .4byte gUnknown_083FD8F4 thumb_func_end sub_811D260 thumb_func_start sub_811D2D8 sub_811D2D8: @ 811D2D8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r0, 0 ldr r0, _0811D324 ldrb r1, [r0] movs r1, 0 strb r1, [r0] mov r8, r1 mov r12, r1 adds r6, r0, 0 ldr r0, _0811D328 mov r9, r0 _0811D2F4: ldr r1, _0811D328 movs r2, 0x2A ldrsh r0, [r6, r2] lsls r0, 1 adds r0, r1 ldrh r0, [r0] lsrs r3, r0, 8 movs r4, 0xFF ands r4, r0 movs r1, 0xC ldrsh r0, [r7, r1] cmp r0, 0 bne _0811D32C movs r2, 0x28 ldrsh r0, [r6, r2] cmp r3, r0 bge _0811D318 ldrh r3, [r6, 0x28] _0811D318: lsls r0, r3, 16 lsls r1, r4, 16 cmp r0, r1 ble _0811D344 lsrs r3, r1, 16 b _0811D344 .align 2, 0 _0811D324: .4byte 0x0200c000 _0811D328: .4byte gUnknown_03004DE0 _0811D32C: lsls r0, r4, 16 asrs r0, 16 movs r2, 0x28 ldrsh r1, [r6, r2] cmp r0, r1 ble _0811D33A ldrh r4, [r6, 0x28] _0811D33A: lsls r0, r4, 16 lsls r1, r3, 16 cmp r0, r1 bgt _0811D344 lsrs r4, r1, 16 _0811D344: ldr r5, _0811D368 movs r0, 0x2A ldrsh r2, [r5, r0] lsls r2, 1 add r2, r9 lsls r1, r3, 16 asrs r1, 8 lsls r0, r4, 16 asrs r0, 16 orrs r0, r1 strh r0, [r2] mov r1, r12 cmp r1, 0 beq _0811D36C ldrh r0, [r7, 0x8] adds r0, 0x1 strh r0, [r7, 0x8] b _0811D392 .align 2, 0 _0811D368: .4byte 0x0200c000 _0811D36C: adds r0, r5, 0 adds r0, 0x24 movs r1, 0x1 movs r2, 0x1 bl sub_811D978 lsls r0, 24 lsrs r0, 24 mov r12, r0 mov r2, r8 lsls r0, r2, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 lsrs r2, r0, 16 mov r8, r2 asrs r0, 16 cmp r0, 0xF ble _0811D2F4 _0811D392: ldr r0, _0811D3AC ldrb r1, [r0] adds r1, 0x1 ldrb r2, [r0] strb r1, [r0] movs r0, 0 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811D3AC: .4byte 0x0200c000 thumb_func_end sub_811D2D8 thumb_func_start sub_811D3B0 sub_811D3B0: @ 811D3B0 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0xA] adds r0, 0x1 strh r0, [r2, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 ble _0811D3FC ldr r1, _0811D3EC ldrh r2, [r1, 0xA] ldr r0, _0811D3F0 ands r0, r2 strh r0, [r1, 0xA] ldrh r2, [r1, 0xA] ldr r0, _0811D3F4 ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] bl sub_811D6D4 ldr r0, _0811D3F8 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 b _0811D414 .align 2, 0 _0811D3EC: .4byte 0x040000b0 _0811D3F0: .4byte 0x0000c5ff _0811D3F4: .4byte 0x00007fff _0811D3F8: .4byte sub_811D1C8 _0811D3FC: ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] ldr r1, _0811D418 movs r3, 0xA ldrsh r0, [r2, r3] subs r0, 0x1 lsls r0, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r2, 0xE] movs r0, 0x1 _0811D414: pop {r1} bx r1 .align 2, 0 _0811D418: .4byte gUnknown_083FD93A thumb_func_end sub_811D3B0 thumb_func_start sub_811D41C sub_811D41C: @ 811D41C push {lr} adds r1, r0, 0 ldrh r0, [r1, 0xE] subs r0, 0x1 strh r0, [r1, 0xE] lsls r0, 16 cmp r0, 0 beq _0811D430 movs r0, 0 b _0811D434 _0811D430: movs r0, 0x1 strh r0, [r1, 0x8] _0811D434: pop {r1} bx r1 thumb_func_end sub_811D41C thumb_func_start sub_811D438 sub_811D438: @ 811D438 push {r4,lr} ldr r4, _0811D4A0 ldrh r1, [r4, 0xA] ldr r0, _0811D4A4 ands r0, r1 strh r0, [r4, 0xA] ldrh r1, [r4, 0xA] ldr r0, _0811D4A8 ands r0, r1 strh r0, [r4, 0xA] ldrh r0, [r4, 0xA] bl sub_811D67C ldr r2, _0811D4AC ldrb r0, [r2] cmp r0, 0 beq _0811D46E ldr r1, _0811D4B0 ldr r0, _0811D4B4 str r0, [r1] movs r3, 0xF0 lsls r3, 3 adds r0, r3 str r0, [r1, 0x4] ldr r0, _0811D4B8 str r0, [r1, 0x8] ldr r0, [r1, 0x8] _0811D46E: ldr r1, _0811D4BC ldrh r0, [r2, 0x2] strh r0, [r1] adds r1, 0x2 ldrh r0, [r2, 0x4] strh r0, [r1] subs r1, 0x6 ldrh r0, [r2, 0x8] strh r0, [r1] ldr r2, _0811D4C0 ldr r0, _0811D4B4 movs r1, 0xF0 lsls r1, 3 adds r0, r1 ldrh r1, [r0] strh r1, [r2] str r0, [r4] str r2, [r4, 0x4] ldr r0, _0811D4C4 str r0, [r4, 0x8] ldr r0, [r4, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _0811D4A0: .4byte 0x040000b0 _0811D4A4: .4byte 0x0000c5ff _0811D4A8: .4byte 0x00007fff _0811D4AC: .4byte 0x0200c000 _0811D4B0: .4byte 0x040000d4 _0811D4B4: .4byte gUnknown_03004DE0 _0811D4B8: .4byte 0x800000a0 _0811D4BC: .4byte REG_WININ _0811D4C0: .4byte REG_WIN0H _0811D4C4: .4byte 0xa2400001 thumb_func_end sub_811D438 thumb_func_start sub_811D4C8 sub_811D4C8: @ 811D4C8 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 mov r8, r0 adds r4, r1, 0 adds r5, r2, 0 adds r6, r3, 0 ldr r3, [sp, 0x18] lsls r0, 16 lsrs r0, 16 mov r8, r0 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 lsls r6, 16 lsrs r6, 16 lsls r3, 16 lsrs r3, 16 ldr r0, _0811D524 movs r1, 0x3 str r3, [sp] bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0811D528 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 mov r0, r8 strh r0, [r1, 0xA] strh r4, [r1, 0xC] strh r5, [r1, 0xE] strh r6, [r1, 0x10] ldr r3, [sp] strh r3, [r1, 0x12] strh r0, [r1, 0x14] add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811D524: .4byte sub_811D54C _0811D528: .4byte gTasks thumb_func_end sub_811D4C8 thumb_func_start sub_811D52C sub_811D52C: @ 811D52C push {lr} ldr r0, _0811D540 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _0811D544 movs r0, 0 b _0811D546 .align 2, 0 _0811D540: .4byte sub_811D54C _0811D544: movs r0, 0x1 _0811D546: pop {r1} bx r1 thumb_func_end sub_811D52C thumb_func_start sub_811D54C sub_811D54C: @ 811D54C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811D57C ldr r2, _0811D580 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811D55E: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811D55E pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811D57C: .4byte gUnknown_083FD948 _0811D580: .4byte gTasks thumb_func_end sub_811D54C thumb_func_start sub_811D584 sub_811D584: @ 811D584 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x14] movs r2, 0x14 ldrsh r0, [r4, r2] cmp r0, 0 beq _0811D59C subs r0, r1, 0x1 strh r0, [r4, 0x14] lsls r0, 16 cmp r0, 0 bne _0811D5C0 _0811D59C: ldrh r0, [r4, 0xA] strh r0, [r4, 0x14] ldrh r0, [r4, 0x10] ldrh r1, [r4, 0x16] adds r0, r1 strh r0, [r4, 0x16] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 ble _0811D5B4 movs r0, 0x10 strh r0, [r4, 0x16] _0811D5B4: movs r0, 0x1 negs r0, r0 ldrb r1, [r4, 0x16] ldr r2, _0811D5DC bl BlendPalettes _0811D5C0: movs r2, 0x16 ldrsh r0, [r4, r2] cmp r0, 0xF ble _0811D5D2 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] ldrh r0, [r4, 0xC] strh r0, [r4, 0x14] _0811D5D2: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0811D5DC: .4byte 0x00002d6b thumb_func_end sub_811D584 thumb_func_start sub_811D5E0 sub_811D5E0: @ 811D5E0 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x14] movs r2, 0x14 ldrsh r0, [r4, r2] cmp r0, 0 beq _0811D5F8 subs r0, r1, 0x1 strh r0, [r4, 0x14] lsls r0, 16 cmp r0, 0 bne _0811D61A _0811D5F8: ldrh r0, [r4, 0xC] strh r0, [r4, 0x14] ldrh r0, [r4, 0x16] ldrh r1, [r4, 0x12] subs r0, r1 strh r0, [r4, 0x16] lsls r0, 16 cmp r0, 0 bge _0811D60E movs r0, 0 strh r0, [r4, 0x16] _0811D60E: movs r0, 0x1 negs r0, r0 ldrb r1, [r4, 0x16] ldr r2, _0811D640 bl BlendPalettes _0811D61A: movs r0, 0x16 ldrsh r1, [r4, r0] cmp r1, 0 bne _0811D64E ldrh r0, [r4, 0xE] subs r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 cmp r0, 0 bne _0811D648 ldr r0, _0811D644 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask b _0811D64E .align 2, 0 _0811D640: .4byte 0x00002d6b _0811D644: .4byte sub_811D54C _0811D648: ldrh r0, [r4, 0xA] strh r0, [r4, 0x14] strh r1, [r4, 0x8] _0811D64E: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_811D5E0 thumb_func_start sub_811D658 sub_811D658: @ 811D658 push {lr} ldr r0, _0811D674 ldr r0, [r0] movs r1, 0 movs r2, 0x3C bl memset ldr r0, _0811D678 adds r1, r0, 0x2 bl sub_8057B14 pop {r0} bx r0 .align 2, 0 _0811D674: .4byte gUnknown_083FD708 _0811D678: .4byte 0x0200c014 thumb_func_end sub_811D658 thumb_func_start sub_811D67C sub_811D67C: @ 811D67C push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_811D67C thumb_func_start sub_811D690 sub_811D690: @ 811D690 ldr r1, _0811D6A4 ldrh r1, [r1] lsrs r1, 2 lsls r1, 30 lsrs r1, 16 movs r2, 0xC0 lsls r2, 19 adds r1, r2 str r1, [r0] bx lr .align 2, 0 _0811D6A4: .4byte REG_BG0CNT thumb_func_end sub_811D690 thumb_func_start sub_811D6A8 sub_811D6A8: @ 811D6A8 push {r4,lr} ldr r3, _0811D6D0 ldrh r2, [r3] lsrs r2, 8 ldrh r3, [r3] lsrs r3, 2 lsls r2, 27 lsrs r2, 16 lsls r3, 30 lsrs r3, 16 movs r4, 0xC0 lsls r4, 19 adds r2, r4 str r2, [r0] adds r3, r4 str r3, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0811D6D0: .4byte REG_BG0CNT thumb_func_end sub_811D6A8 thumb_func_start sub_811D6D4 sub_811D6D4: @ 811D6D4 push {lr} movs r0, 0x1 negs r0, r0 movs r1, 0x10 movs r2, 0 bl BlendPalettes pop {r0} bx r0 thumb_func_end sub_811D6D4 thumb_func_start sub_811D6E8 sub_811D6E8: @ 811D6E8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r10, r0 ldr r0, [sp, 0x20] ldr r4, [sp, 0x24] lsls r1, 16 lsrs r7, r1, 16 lsls r2, 16 lsrs r2, 16 lsls r3, 16 lsrs r3, 16 lsls r0, 16 lsrs r1, r0, 16 lsls r4, 16 movs r6, 0 lsrs r5, r4, 16 cmp r4, 0 ble _0811D750 lsls r0, r7, 16 asrs r0, 16 mov r9, r0 lsls r1, 16 mov r8, r1 lsls r0, r3, 16 asrs r7, r0, 16 _0811D720: lsls r4, r2, 16 asrs r4, 16 movs r0, 0xFF ands r0, r4 mov r2, r8 asrs r1, r2, 16 bl Sin lsls r1, r6, 1 add r1, r10 add r0, r9 strh r0, [r1] lsls r1, r5, 16 ldr r0, _0811D760 adds r1, r0 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r4, r7 lsls r4, 16 lsrs r2, r4, 16 lsrs r5, r1, 16 cmp r1, 0 bgt _0811D720 _0811D750: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811D760: .4byte 0xffff0000 thumb_func_end sub_811D6E8 thumb_func_start sub_811D764 sub_811D764: @ 811D764 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 mov r9, r0 adds r5, r2, 0 adds r4, r3, 0 lsls r1, 16 lsrs r1, 16 str r1, [sp] lsls r5, 16 lsrs r5, 16 lsls r4, 16 lsrs r4, 16 movs r2, 0xA0 lsls r2, 1 movs r1, 0xA bl memset movs r1, 0 lsls r4, 16 asrs r4, 16 str r4, [sp, 0x4] lsls r5, 16 asrs r5, 16 str r5, [sp, 0x8] _0811D79C: lsls r5, r1, 16 asrs r0, r5, 16 mov r10, r0 ldr r1, [sp, 0x4] bl Sin adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 mov r0, r10 ldr r1, [sp, 0x4] bl Cos ldr r2, [sp] lsls r1, r2, 16 asrs r1, 16 lsls r4, 16 asrs r4, 16 subs r2, r1, r4 lsls r2, 16 adds r1, r4 lsls r1, 16 lsrs r6, r1, 16 lsls r0, 16 asrs r0, 16 ldr r3, [sp, 0x8] subs r1, r3, r0 lsls r1, 16 lsrs r7, r1, 16 adds r0, r3, r0 lsls r0, 16 lsrs r0, 16 mov r8, r0 lsrs r1, r2, 16 str r5, [sp, 0x10] cmp r2, 0 bge _0811D7E8 movs r1, 0 _0811D7E8: lsls r0, r6, 16 asrs r0, 16 cmp r0, 0xF0 ble _0811D7F2 movs r6, 0xF0 _0811D7F2: lsls r0, r7, 16 cmp r0, 0 bge _0811D7FA movs r7, 0 _0811D7FA: mov r2, r8 lsls r0, r2, 16 asrs r0, 16 cmp r0, 0x9F ble _0811D808 movs r3, 0x9F mov r8, r3 _0811D808: lsls r0, r1, 24 lsrs r0, 16 orrs r6, r0 lsls r0, r7, 16 asrs r0, 16 str r0, [sp, 0xC] lsls r0, 1 add r0, r9 strh r6, [r0] mov r0, r8 lsls r4, r0, 16 asrs r0, r4, 15 add r0, r9 strh r6, [r0] mov r0, r10 adds r0, 0x1 lsls r0, 16 asrs r0, 16 ldr r1, [sp, 0x4] bl Cos lsls r0, 16 asrs r0, 16 ldr r2, [sp, 0x8] subs r1, r2, r0 lsls r1, 16 adds r0, r2, r0 lsls r0, 16 lsrs r2, r0, 16 lsrs r3, r1, 16 cmp r1, 0 bge _0811D84A movs r3, 0 _0811D84A: lsls r0, r2, 16 asrs r0, 16 cmp r0, 0x9F ble _0811D854 movs r2, 0x9F _0811D854: lsls r0, r3, 16 asrs r1, r0, 16 adds r3, r0, 0 lsls r5, r2, 16 ldr r0, [sp, 0xC] cmp r0, r1 ble _0811D878 adds r2, r1, 0 _0811D864: lsls r1, r7, 16 ldr r0, _0811D8F8 adds r1, r0 asrs r0, r1, 15 add r0, r9 strh r6, [r0] lsrs r7, r1, 16 asrs r1, 16 cmp r1, r2 bgt _0811D864 _0811D878: lsls r1, r7, 16 asrs r0, r3, 16 cmp r1, r3 bge _0811D896 adds r2, r0, 0 _0811D882: movs r3, 0x80 lsls r3, 9 adds r0, r1, r3 asrs r1, r0, 15 add r1, r9 strh r6, [r1] adds r1, r0, 0 asrs r0, r1, 16 cmp r0, r2 blt _0811D882 _0811D896: asrs r0, r5, 16 cmp r4, r5 ble _0811D8B4 adds r1, r0, 0 _0811D89E: ldr r2, _0811D8F8 adds r0, r4, r2 lsrs r3, r0, 16 mov r8, r3 asrs r0, 15 add r0, r9 strh r6, [r0] lsls r4, r3, 16 asrs r0, r4, 16 cmp r0, r1 bgt _0811D89E _0811D8B4: mov r0, r8 lsls r4, r0, 16 asrs r0, r5, 16 cmp r4, r5 bge _0811D8D4 adds r2, r0, 0 _0811D8C0: movs r1, 0x80 lsls r1, 9 adds r0, r4, r1 asrs r1, r0, 15 add r1, r9 strh r6, [r1] adds r4, r0, 0 asrs r0, r4, 16 cmp r0, r2 blt _0811D8C0 _0811D8D4: ldr r2, [sp, 0x10] movs r3, 0x80 lsls r3, 9 adds r0, r2, r3 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0x3F bgt _0811D8E6 b _0811D79C _0811D8E6: 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 _0811D8F8: .4byte 0xffff0000 thumb_func_end sub_811D764 thumb_func_start sub_811D8FC sub_811D8FC: @ 811D8FC push {r4-r7,lr} adds r6, r0, 0 ldr r0, [sp, 0x14] ldr r5, [sp, 0x18] ldr r4, [sp, 0x1C] lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r2, 16 lsls r3, 16 lsrs r3, 16 lsls r0, 16 lsrs r0, 16 adds r7, r0, 0 lsls r5, 16 lsrs r5, 16 lsls r4, 16 lsrs r4, 16 strh r1, [r6] strh r2, [r6, 0x2] strh r1, [r6, 0x4] strh r2, [r6, 0x6] strh r3, [r6, 0x8] strh r7, [r6, 0xA] strh r5, [r6, 0xC] strh r4, [r6, 0xE] lsls r3, 16 asrs r3, 16 lsls r1, 16 asrs r1, 16 subs r3, r1 strh r3, [r6, 0x10] lsls r0, r3, 16 cmp r0, 0 bge _0811D94E negs r0, r3 strh r0, [r6, 0x10] lsls r0, r5, 16 asrs r0, 16 negs r0, r0 strh r0, [r6, 0xC] _0811D94E: lsls r0, r7, 16 asrs r0, 16 lsls r1, r2, 16 asrs r1, 16 subs r1, r0, r1 strh r1, [r6, 0x12] lsls r0, r1, 16 cmp r0, 0 bge _0811D96C negs r0, r1 strh r0, [r6, 0x12] lsls r0, r4, 16 asrs r0, 16 negs r0, r0 strh r0, [r6, 0xE] _0811D96C: movs r0, 0 strh r0, [r6, 0x14] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_811D8FC thumb_func_start sub_811D978 sub_811D978: @ 811D978 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r3, r0, 0 lsls r1, 24 lsrs r1, 24 mov r9, r1 lsls r2, 24 lsrs r2, 24 mov r10, r2 ldrh r0, [r3, 0x10] mov r8, r0 movs r1, 0x10 ldrsh r6, [r3, r1] ldrh r2, [r3, 0x12] mov r12, r2 movs r4, 0x12 ldrsh r5, [r3, r4] cmp r6, r5 ble _0811D9C8 ldrh r0, [r3, 0xC] ldrh r2, [r3, 0x4] adds r1, r0, r2 strh r1, [r3, 0x4] ldrh r2, [r3, 0x14] add r2, r12 strh r2, [r3, 0x14] lsls r1, r2, 16 asrs r1, 16 adds r4, r0, 0 ldrh r7, [r3, 0xE] cmp r1, r6 ble _0811D9EE ldrh r1, [r3, 0x6] adds r0, r7, r1 strh r0, [r3, 0x6] mov r1, r8 b _0811D9EA _0811D9C8: ldrh r0, [r3, 0xE] ldrh r2, [r3, 0x6] adds r1, r0, r2 strh r1, [r3, 0x6] ldrh r2, [r3, 0x14] add r2, r8 strh r2, [r3, 0x14] lsls r1, r2, 16 asrs r1, 16 ldrh r4, [r3, 0xC] adds r7, r0, 0 cmp r1, r5 ble _0811D9EE ldrh r1, [r3, 0x4] adds r0, r4, r1 strh r0, [r3, 0x4] mov r1, r12 _0811D9EA: subs r0, r2, r1 strh r0, [r3, 0x14] _0811D9EE: movs r5, 0 lsls r0, r4, 16 asrs r2, r0, 16 cmp r2, 0 ble _0811DA06 movs r4, 0x4 ldrsh r1, [r3, r4] movs r4, 0x8 ldrsh r0, [r3, r4] ldrh r4, [r3, 0x8] cmp r1, r0 bge _0811DA18 _0811DA06: cmp r2, 0 bge _0811DA26 movs r0, 0x4 ldrsh r1, [r3, r0] movs r2, 0x8 ldrsh r0, [r3, r2] ldrh r4, [r3, 0x8] cmp r1, r0 bgt _0811DA26 _0811DA18: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 mov r0, r9 cmp r0, 0 beq _0811DA26 strh r4, [r3, 0x4] _0811DA26: lsls r0, r7, 16 asrs r2, r0, 16 cmp r2, 0 ble _0811DA3C movs r4, 0x6 ldrsh r1, [r3, r4] movs r4, 0xA ldrsh r0, [r3, r4] ldrh r4, [r3, 0xA] cmp r1, r0 bge _0811DA4E _0811DA3C: cmp r2, 0 bge _0811DA5C movs r0, 0x6 ldrsh r1, [r3, r0] movs r2, 0xA ldrsh r0, [r3, r2] ldrh r4, [r3, 0xA] cmp r1, r0 bgt _0811DA5C _0811DA4E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 mov r0, r10 cmp r0, 0 beq _0811DA5C strh r4, [r3, 0x6] _0811DA5C: cmp r5, 0x2 beq _0811DA64 movs r0, 0 b _0811DA66 _0811DA64: movs r0, 0x1 _0811DA66: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_811D978 thumb_func_start nullsub_74 nullsub_74: @ 811DA74 bx lr thumb_func_end nullsub_74 thumb_func_start sub_811DA78 sub_811DA78: @ 811DA78 ldr r1, _0811DA88 ldr r0, _0811DA8C ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _0811DA90 str r1, [r0] bx lr .align 2, 0 _0811DA88: .4byte gUnknown_03004330 _0811DA8C: .4byte gUnknown_02024A60 _0811DA90: .4byte sub_811DA94 thumb_func_end sub_811DA78 thumb_func_start sub_811DA94 sub_811DA94: @ 811DA94 push {lr} ldr r2, _0811DAC8 ldr r1, _0811DACC ldr r0, _0811DAD0 ldrb r3, [r0] lsls r0, r3, 2 adds r0, r1 ldr r1, [r2] ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _0811DAE0 ldr r0, _0811DAD4 lsls r1, r3, 9 adds r1, r0 ldrb r0, [r1] cmp r0, 0x38 bhi _0811DADC ldr r0, _0811DAD8 ldrb r1, [r1] lsls r1, 2 adds r1, r0 ldr r0, [r1] bl _call_via_r0 b _0811DAE0 .align 2, 0 _0811DAC8: .4byte gUnknown_02024A64 _0811DACC: .4byte gBitTable _0811DAD0: .4byte gUnknown_02024A60 _0811DAD4: .4byte gUnknown_02023A60 _0811DAD8: .4byte gUnknown_083FE4F4 _0811DADC: bl dp01_tbl3_exec_completed _0811DAE0: pop {r0} bx r0 thumb_func_end sub_811DA94 thumb_func_start sub_811DAE4 sub_811DAE4: @ 811DAE4 push {lr} ldr r2, _0811DB0C ldr r1, _0811DB10 ldr r0, _0811DB14 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _0811DB18 cmp r1, r0 bne _0811DB08 bl dp01_tbl3_exec_completed _0811DB08: pop {r0} bx r0 .align 2, 0 _0811DB0C: .4byte gSprites _0811DB10: .4byte gUnknown_02024BE0 _0811DB14: .4byte gUnknown_02024A60 _0811DB18: .4byte SpriteCallbackDummy thumb_func_end sub_811DAE4 thumb_func_start sub_811DB1C sub_811DB1C: @ 811DB1C push {r4-r6,lr} ldr r6, _0811DB74 ldr r5, _0811DB78 ldr r4, _0811DB7C ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r6, 0 adds r1, 0x1C adds r0, r1 ldr r1, [r0] ldr r0, _0811DB80 cmp r1, r0 bne _0811DB6C movs r0, 0 bl nullsub_10 ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 bl FreeSpriteOamMatrix ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 bl DestroySprite bl dp01_tbl3_exec_completed _0811DB6C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811DB74: .4byte gSprites _0811DB78: .4byte gUnknown_02024BE0 _0811DB7C: .4byte gUnknown_02024A60 _0811DB80: .4byte SpriteCallbackDummy thumb_func_end sub_811DB1C thumb_func_start sub_811DB84 sub_811DB84: @ 811DB84 push {lr} ldr r3, _0811DBB8 ldrb r0, [r3] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r2, _0811DBBC adds r1, r2 ldrb r0, [r1, 0x9] subs r0, 0x1 strb r0, [r1, 0x9] lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _0811DBB4 ldrb r0, [r3] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 movs r0, 0 strb r0, [r1, 0x9] bl dp01_tbl3_exec_completed _0811DBB4: pop {r0} bx r0 .align 2, 0 _0811DBB8: .4byte gUnknown_02024A60 _0811DBBC: .4byte 0x02017810 thumb_func_end sub_811DB84 thumb_func_start sub_811DBC0 sub_811DBC0: @ 811DBC0 push {r4-r6,lr} movs r6, 0 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _0811DBE4 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _0811DC18 ldr r0, _0811DC04 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0811DC18 _0811DBE4: ldr r2, _0811DC08 ldr r1, _0811DC0C ldr r0, _0811DC10 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _0811DC14 cmp r1, r0 bne _0811DC50 b _0811DC4E .align 2, 0 _0811DC04: .4byte gUnknown_020239F8 _0811DC08: .4byte gSprites _0811DC0C: .4byte gUnknown_03004340 _0811DC10: .4byte gUnknown_02024A60 _0811DC14: .4byte SpriteCallbackDummy _0811DC18: ldr r2, _0811DC84 ldr r5, _0811DC88 ldr r0, _0811DC8C ldrb r3, [r0] adds r0, r3, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, r2, 0 adds r4, 0x1C adds r0, r4 ldr r2, [r0] ldr r0, _0811DC90 cmp r2, r0 bne _0811DC50 movs r0, 0x2 eors r3, r0 adds r0, r3, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r0, [r0] cmp r0, r2 bne _0811DC50 _0811DC4E: movs r6, 0x1 _0811DC50: bl IsCryPlayingOrClearCrySongs lsls r0, 24 cmp r0, 0 beq _0811DC5C movs r6, 0 _0811DC5C: cmp r6, 0 beq _0811DC7E ldr r2, _0811DC8C ldrb r1, [r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0811DC94 adds r0, r1 movs r1, 0x3 strb r1, [r0, 0x9] ldr r1, _0811DC98 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _0811DC9C str r1, [r0] _0811DC7E: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811DC84: .4byte gSprites _0811DC88: .4byte gUnknown_03004340 _0811DC8C: .4byte gUnknown_02024A60 _0811DC90: .4byte SpriteCallbackDummy _0811DC94: .4byte 0x02017810 _0811DC98: .4byte gUnknown_03004330 _0811DC9C: .4byte sub_811DB84 thumb_func_end sub_811DBC0 thumb_func_start sub_811DCA0 sub_811DCA0: @ 811DCA0 push {r4-r7,lr} ldr r6, _0811DDBC ldrb r2, [r6] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r4, _0811DDC0 adds r3, r0, r4 ldrb r1, [r3] movs r5, 0x8 adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _0811DDB4 movs r7, 0x2 adds r1, r7, 0 eors r1, r2 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0] adds r0, r5, 0 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _0811DDB4 ldrb r0, [r3, 0x9] adds r0, 0x1 strb r0, [r3, 0x9] lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0811DDB4 ldrb r0, [r6] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r4 strb r2, [r1, 0x9] bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _0811DD56 ldr r0, _0811DDC4 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _0811DD56 ldr r1, _0811DDC8 ldrb r0, [r6] eors r0, r7 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0811DDCC adds r0, r1 bl DestroySprite ldr r4, _0811DDD0 ldrb r0, [r6] adds r1, r7, 0 eors r1, r0 adds r0, r1, r4 ldrb r0, [r0] ldr r2, _0811DDD4 lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _0811DDD8 adds r1, r2 movs r2, 0 bl sub_8045A5C ldrb r0, [r6] eors r0, r7 bl sub_804777C ldrb r0, [r6] eors r0, r7 adds r0, r4 ldrb r0, [r0] bl sub_8043DFC _0811DD56: ldr r1, _0811DDC8 ldr r4, _0811DDBC ldrb r0, [r4] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0811DDCC adds r0, r1 bl DestroySprite ldr r5, _0811DDD0 ldrb r1, [r4] adds r0, r1, r5 ldrb r0, [r0] ldr r2, _0811DDD4 lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _0811DDD8 adds r1, r2 movs r2, 0 bl sub_8045A5C ldrb r0, [r4] bl sub_804777C ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl sub_8043DFC ldr r2, _0811DDDC ldrb r1, [r2, 0x9] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r2, 0x9] ldr r1, _0811DDE0 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _0811DDE4 str r1, [r0] _0811DDB4: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811DDBC: .4byte gUnknown_02024A60 _0811DDC0: .4byte 0x02017810 _0811DDC4: .4byte gUnknown_020239F8 _0811DDC8: .4byte gUnknown_0300434C _0811DDCC: .4byte gSprites _0811DDD0: .4byte gUnknown_03004340 _0811DDD4: .4byte gUnknown_02024A6A _0811DDD8: .4byte gPlayerParty _0811DDDC: .4byte 0x02017840 _0811DDE0: .4byte gUnknown_03004330 _0811DDE4: .4byte sub_811DBC0 thumb_func_end sub_811DCA0 thumb_func_start sub_811DDE8 sub_811DDE8: @ 811DDE8 push {lr} ldr r2, _0811DE1C ldr r1, _0811DE20 ldr r0, _0811DE24 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 adds r0, r1, 0 adds r0, 0x3F ldrb r0, [r0] lsls r0, 27 cmp r0, 0 bge _0811DE16 movs r2, 0x24 ldrsh r0, [r1, r2] cmp r0, 0 bne _0811DE16 bl dp01_tbl3_exec_completed _0811DE16: pop {r0} bx r0 .align 2, 0 _0811DE1C: .4byte gSprites _0811DE20: .4byte gUnknown_02024BE0 _0811DE24: .4byte gUnknown_02024A60 thumb_func_end sub_811DDE8 thumb_func_start bx_t3_healthbar_update bx_t3_healthbar_update: @ 811DE28 push {r4-r6,lr} ldr r5, _0811DE68 ldrb r0, [r5] ldr r6, _0811DE6C adds r1, r0, r6 ldrb r1, [r1] movs r2, 0 movs r3, 0 bl sub_8045C78 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrb r0, [r5] adds r0, r6 ldrb r0, [r0] bl sub_8043DFC lsls r4, 16 asrs r1, r4, 16 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0811DE70 ldrb r0, [r5] adds r0, r6 ldrb r0, [r0] movs r2, 0 bl sub_80440EC b _0811DE8A .align 2, 0 _0811DE68: .4byte gUnknown_02024A60 _0811DE6C: .4byte gUnknown_03004340 _0811DE70: ldr r2, _0811DE90 ldrb r1, [r5] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, _0811DE94 adds r0, r2 bl sub_80324F8 bl dp01_tbl3_exec_completed _0811DE8A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811DE90: .4byte gUnknown_02024A6A _0811DE94: .4byte gPlayerParty thumb_func_end bx_t3_healthbar_update thumb_func_start sub_811DE98 sub_811DE98: @ 811DE98 push {r4-r6,lr} ldr r6, _0811DF1C ldr r5, _0811DF20 ldr r4, _0811DF24 ldrb r2, [r4] adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r3, 0x22 ldrsh r1, [r0, r3] movs r3, 0x26 ldrsh r0, [r0, r3] adds r1, r0 cmp r1, 0xA0 ble _0811DF14 ldr r1, _0811DF28 lsls r0, r2, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0811DF2C adds r0, r1 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 bl nullsub_9 ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 bl DestroySprite ldr r1, _0811DF30 ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 bl dp01_tbl3_exec_completed _0811DF14: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811DF1C: .4byte gSprites _0811DF20: .4byte gUnknown_02024BE0 _0811DF24: .4byte gUnknown_02024A60 _0811DF28: .4byte gUnknown_02024A6A _0811DF2C: .4byte gPlayerParty _0811DF30: .4byte gUnknown_03004340 thumb_func_end sub_811DE98 thumb_func_start sub_811DF34 sub_811DF34: @ 811DF34 push {r4-r6,lr} ldr r6, _0811DF8C ldrb r2, [r6] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r1, _0811DF90 adds r0, r1 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _0811DF84 ldr r5, _0811DF94 adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _0811DF98 adds r0, r4 bl FreeSpriteOamMatrix ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldr r1, _0811DF9C ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 bl dp01_tbl3_exec_completed _0811DF84: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811DF8C: .4byte gUnknown_02024A60 _0811DF90: .4byte 0x02017810 _0811DF94: .4byte gUnknown_02024BE0 _0811DF98: .4byte gSprites _0811DF9C: .4byte gUnknown_03004340 thumb_func_end sub_811DF34 thumb_func_start sub_811DFA0 sub_811DFA0: @ 811DFA0 push {lr} ldr r0, _0811DFB4 ldrh r0, [r0, 0x16] cmp r0, 0 bne _0811DFAE bl dp01_tbl3_exec_completed _0811DFAE: pop {r0} bx r0 .align 2, 0 _0811DFB4: .4byte gUnknown_03004210 thumb_func_end sub_811DFA0 thumb_func_start bx_blink_t3 bx_blink_t3: @ 811DFB8 push {r4,lr} ldr r1, _0811DFF4 ldr r0, _0811DFF8 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] ldr r2, _0811DFFC lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, r0, r2 movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0x20 bne _0811E004 movs r3, 0 movs r0, 0 strh r0, [r4, 0x30] adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] subs r0, 0x5 ands r0, r1 strb r0, [r2] ldr r0, _0811E000 strb r3, [r0] bl dp01_tbl3_exec_completed b _0811E02E .align 2, 0 _0811DFF4: .4byte gUnknown_02024BE0 _0811DFF8: .4byte gUnknown_02024A60 _0811DFFC: .4byte gSprites _0811E000: .4byte gUnknown_02024E6D _0811E004: ldrh r0, [r4, 0x30] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _0811E028 adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _0811E028: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] _0811E02E: pop {r4} pop {r0} bx r0 thumb_func_end bx_blink_t3 thumb_func_start sub_811E034 sub_811E034: @ 811E034 push {r4,lr} ldr r2, _0811E084 ldr r0, _0811E088 ldr r4, _0811E08C ldrb r3, [r4] adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _0811E090 cmp r1, r0 bne _0811E07C lsls r0, r3, 2 ldr r1, _0811E094 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0811E070 adds r0, r3, 0 adds r1, r3, 0 adds r2, r3, 0 movs r3, 0x6 bl move_anim_start_t4 _0811E070: ldr r0, _0811E098 ldrb r1, [r4] lsls r1, 2 adds r1, r0 ldr r0, _0811E09C str r0, [r1] _0811E07C: pop {r4} pop {r0} bx r0 .align 2, 0 _0811E084: .4byte gSprites _0811E088: .4byte gUnknown_03004340 _0811E08C: .4byte gUnknown_02024A60 _0811E090: .4byte SpriteCallbackDummy _0811E094: .4byte 0x02017800 _0811E098: .4byte gUnknown_03004330 _0811E09C: .4byte sub_811E0A0 thumb_func_end sub_811E034 thumb_func_start sub_811E0A0 sub_811E0A0: @ 811E0A0 push {lr} ldr r0, _0811E0C4 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0811E0C8 adds r0, r1 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _0811E0BE bl dp01_tbl3_exec_completed _0811E0BE: pop {r0} bx r0 .align 2, 0 _0811E0C4: .4byte gUnknown_02024A60 _0811E0C8: .4byte 0x02017810 thumb_func_end sub_811E0A0 thumb_func_start sub_811E0CC sub_811E0CC: @ 811E0CC push {r4-r7,lr} mov r7, r8 push {r7} ldr r7, _0811E190 ldrb r1, [r7] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r3, _0811E194 adds r2, r0, r3 ldrb r1, [r2, 0x1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0811E186 ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] ldrb r0, [r7] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r2, [r1, 0x1] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldr r4, _0811E198 adds r0, r4, 0 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag ldr r0, _0811E19C movs r1, 0xA bl CreateTask ldr r0, _0811E1A0 mov r8, r0 ldrb r1, [r7] lsls r0, r1, 1 add r0, r8 ldrh r0, [r0] movs r6, 0x64 muls r0, r6 ldr r5, _0811E1A4 adds r0, r5 bl sub_80324F8 ldr r1, _0811E1A8 ldrb r0, [r7] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0811E1AC adds r0, r1 movs r1, 0 bl StartSpriteAnim ldr r4, _0811E1B0 ldrb r1, [r7] adds r0, r1, r4 ldrb r0, [r0] lsls r1, 1 add r1, r8 ldrh r1, [r1] muls r1, r6 adds r1, r5 movs r2, 0 bl sub_8045A5C ldrb r0, [r7] bl sub_804777C ldrb r0, [r7] adds r0, r4 ldrb r0, [r0] bl sub_8043DFC ldrb r0, [r7] bl sub_8031F88 ldr r1, _0811E1B4 ldrb r0, [r7] lsls r0, 2 adds r0, r1 ldr r1, _0811E1B8 str r1, [r0] _0811E186: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811E190: .4byte gUnknown_02024A60 _0811E194: .4byte 0x02017810 _0811E198: .4byte 0x000027f9 _0811E19C: .4byte c3_0802FDF4 _0811E1A0: .4byte gUnknown_02024A6A _0811E1A4: .4byte gPlayerParty _0811E1A8: .4byte gUnknown_02024BE0 _0811E1AC: .4byte gSprites _0811E1B0: .4byte gUnknown_03004340 _0811E1B4: .4byte gUnknown_03004330 _0811E1B8: .4byte sub_811E034 thumb_func_end sub_811E0CC thumb_func_start sub_811E1BC sub_811E1BC: @ 811E1BC push {r4-r6,lr} ldr r4, _0811E234 ldrb r2, [r4] lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 ldr r6, _0811E238 adds r0, r6 ldrb r1, [r0] movs r0, 0x88 ands r0, r1 cmp r0, 0 bne _0811E1EA ldr r0, _0811E23C adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _0811E240 adds r1, r0 adds r0, r2, 0 bl sub_8141828 _0811E1EA: ldr r5, _0811E244 ldr r0, _0811E248 ldrb r2, [r4] adds r0, r2, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r3, r0, 2 adds r0, r5, 0 adds r0, 0x1C adds r0, r3, r0 ldr r1, [r0] ldr r0, _0811E24C cmp r1, r0 bne _0811E22C lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r6 ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _0811E22C adds r0, r3, r5 bl DestroySprite ldr r1, _0811E250 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _0811E254 str r1, [r0] _0811E22C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811E234: .4byte gUnknown_02024A60 _0811E238: .4byte 0x02017810 _0811E23C: .4byte gUnknown_02024A6A _0811E240: .4byte gPlayerParty _0811E244: .4byte gSprites _0811E248: .4byte gUnknown_0300434C _0811E24C: .4byte SpriteCallbackDummy _0811E250: .4byte gUnknown_03004330 _0811E254: .4byte sub_811E0CC thumb_func_end sub_811E1BC thumb_func_start sub_811E258 sub_811E258: @ 811E258 push {lr} ldr r0, _0811E288 ldrb r0, [r0] cmp r0, 0 bne _0811E284 movs r0, 0x5A bl m4aSongNumStop ldr r3, _0811E28C ldr r0, _0811E290 adds r2, r3, r0 ldrb r1, [r2] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r2] ldr r0, _0811E294 ldr r0, [r0] str r0, [r3] ldr r0, _0811E298 bl SetMainCallback2 _0811E284: pop {r0} bx r0 .align 2, 0 _0811E288: .4byte gReceivedRemoteLinkPlayers _0811E28C: .4byte gMain _0811E290: .4byte 0x0000043d _0811E294: .4byte gUnknown_030042D0 _0811E298: .4byte c2_8011A1C thumb_func_end sub_811E258 thumb_func_start sub_811E29C sub_811E29C: @ 811E29C push {lr} ldr r0, _0811E2CC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0811E302 ldr r0, _0811E2D0 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0811E2E0 bl sub_800832C ldr r1, _0811E2D4 ldr r0, _0811E2D8 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _0811E2DC str r1, [r0] b _0811E302 .align 2, 0 _0811E2CC: .4byte gPaletteFade _0811E2D0: .4byte gUnknown_020239F8 _0811E2D4: .4byte gUnknown_03004330 _0811E2D8: .4byte gUnknown_02024A60 _0811E2DC: .4byte sub_811E258 _0811E2E0: movs r0, 0x5A bl m4aSongNumStop ldr r2, _0811E308 ldr r0, _0811E30C adds r3, r2, r0 ldrb r1, [r3] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r3] ldr r0, _0811E310 ldr r0, [r0] str r0, [r2] ldr r0, [r2, 0x8] bl SetMainCallback2 _0811E302: pop {r0} bx r0 .align 2, 0 _0811E308: .4byte gMain _0811E30C: .4byte 0x0000043d _0811E310: .4byte gUnknown_030042D0 thumb_func_end sub_811E29C thumb_func_start dp01_tbl3_exec_completed dp01_tbl3_exec_completed: @ 811E314 push {r4,lr} sub sp, 0x4 ldr r1, _0811E354 ldr r4, _0811E358 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _0811E35C str r1, [r0] ldr r0, _0811E360 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0811E368 bl GetMultiplayerId mov r1, sp strb r0, [r1] movs r0, 0x2 movs r1, 0x4 mov r2, sp bl dp01_prepare_buffer_wireless_probably ldr r1, _0811E364 ldrb r0, [r4] lsls r0, 9 adds r0, r1 movs r1, 0x38 strb r1, [r0] b _0811E37A .align 2, 0 _0811E354: .4byte gUnknown_03004330 _0811E358: .4byte gUnknown_02024A60 _0811E35C: .4byte sub_811DA94 _0811E360: .4byte gUnknown_020239F8 _0811E364: .4byte gUnknown_02023A60 _0811E368: ldr r2, _0811E384 ldr r1, _0811E388 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r0, [r2] bics r0, r1 str r0, [r2] _0811E37A: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0811E384: .4byte gUnknown_02024A64 _0811E388: .4byte gBitTable thumb_func_end dp01_tbl3_exec_completed thumb_func_start sub_811E38C sub_811E38C: @ 811E38C push {lr} ldr r0, _0811E3B0 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0811E3B4 adds r0, r1 ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0811E3AA bl dp01_tbl3_exec_completed _0811E3AA: pop {r0} bx r0 .align 2, 0 _0811E3B0: .4byte gUnknown_02024A60 _0811E3B4: .4byte 0x02017810 thumb_func_end sub_811E38C thumb_func_start sub_811E3B8 sub_811E3B8: @ 811E3B8 push {lr} ldr r0, _0811E3DC ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0811E3E0 adds r0, r1 ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0811E3D6 bl dp01_tbl3_exec_completed _0811E3D6: pop {r0} bx r0 .align 2, 0 _0811E3DC: .4byte gUnknown_02024A60 _0811E3E0: .4byte 0x02017810 thumb_func_end sub_811E3B8 thumb_func_start dp01t_00_3_getattr dp01t_00_3_getattr: @ 811E3E4 push {r4-r6,lr} sub sp, 0x100 movs r6, 0 ldr r1, _0811E410 ldr r0, _0811E414 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 bne _0811E41C ldr r0, _0811E418 lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] mov r1, sp bl dp01_getattr_by_ch1_for_player_pokemon adds r6, r0, 0 b _0811E43E .align 2, 0 _0811E410: .4byte gUnknown_02023A60 _0811E414: .4byte gUnknown_02024A60 _0811E418: .4byte gUnknown_02024A6A _0811E41C: ldrb r4, [r1] movs r5, 0 _0811E420: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _0811E436 lsls r0, r5, 24 lsrs r0, 24 mov r2, sp adds r1, r2, r6 bl dp01_getattr_by_ch1_for_player_pokemon adds r6, r0 _0811E436: lsrs r4, 1 adds r5, 0x1 cmp r5, 0x5 ble _0811E420 _0811E43E: lsls r1, r6, 16 lsrs r1, 16 movs r0, 0x1 mov r2, sp bl dp01_build_cmdbuf_x1D_1D_numargs_varargs bl dp01_tbl3_exec_completed add sp, 0x100 pop {r4-r6} pop {r0} bx r0 thumb_func_end dp01t_00_3_getattr thumb_func_start dp01_getattr_by_ch1_for_player_pokemon dp01_getattr_by_ch1_for_player_pokemon: @ 811E458 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x90 adds r7, r1, 0 lsls r0, 24 lsrs r5, r0, 24 movs r6, 0 ldr r2, _0811E48C ldr r3, _0811E490 ldrb r0, [r3] lsls r0, 9 adds r1, r2, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0x3B bls _0811E482 bl _0811EBEE _0811E482: lsls r0, 2 ldr r1, _0811E494 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0811E48C: .4byte gUnknown_02023A60 _0811E490: .4byte gUnknown_02024A60 _0811E494: .4byte _0811E498 .align 2, 0 _0811E498: .4byte _0811E588 .4byte _0811E7AC .4byte _0811E7BC .4byte _0811E7CC .4byte _0811E834 .4byte _0811E834 .4byte _0811E834 .4byte _0811E834 .4byte _0811E850 .4byte _0811E88C .4byte _0811E88C .4byte _0811E88C .4byte _0811E88C .4byte _0811EBEE .4byte _0811EBEE .4byte _0811EBEE .4byte _0811EBEE .4byte _0811E8A8 .4byte _0811E8B8 .4byte _0811E8E8 .4byte _0811E8F8 .4byte _0811E908 .4byte _0811E918 .4byte _0811E928 .4byte _0811E938 .4byte _0811E948 .4byte _0811E958 .4byte _0811E968 .4byte _0811E978 .4byte _0811E988 .4byte _0811E998 .4byte _0811E9A8 .4byte _0811E9F8 .4byte _0811EA08 .4byte _0811EA18 .4byte _0811EA28 .4byte _0811EA38 .4byte _0811EA48 .4byte _0811EA58 .4byte _0811EA68 .4byte _0811EA78 .4byte _0811EAAC .4byte _0811EABC .4byte _0811EACC .4byte _0811EADC .4byte _0811EAEC .4byte _0811EAFC .4byte _0811EB0C .4byte _0811EB1C .4byte _0811EB3C .4byte _0811EB4C .4byte _0811EB5C .4byte _0811EB6C .4byte _0811EB7C .4byte _0811EB8C .4byte _0811EB9C .4byte _0811EBAC .4byte _0811EBBC .4byte _0811EBCC .4byte _0811EBDC _0811E588: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0811E79C adds r4, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData mov r1, sp strh r0, [r1] adds r0, r4, 0 movs r1, 0xC bl GetMonData mov r1, sp strh r0, [r1, 0x2E] movs r6, 0 add r0, sp, 0x24 mov r9, r0 movs r1, 0x3B add r1, sp mov r10, r1 mov r2, sp adds r2, 0x2B str r2, [sp, 0x80] mov r0, sp adds r0, 0x2A str r0, [sp, 0x7C] mov r1, sp adds r1, 0x68 str r1, [sp, 0x8C] adds r2, 0x5 str r2, [sp, 0x84] adds r0, 0x12 str r0, [sp, 0x88] mov r8, r4 add r4, sp, 0xC _0811E5D4: adds r1, r6, 0 adds r1, 0xD mov r0, r8 bl GetMonData strh r0, [r4] adds r1, r6, 0 adds r1, 0x11 mov r0, r8 bl GetMonData mov r2, r9 adds r1, r2, r6 strb r0, [r1] adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _0811E5D4 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0811E79C adds r4, r0 adds r0, r4, 0 movs r1, 0x15 bl GetMonData mov r1, r10 strb r0, [r1] adds r0, r4, 0 movs r1, 0x20 bl GetMonData ldr r2, [sp, 0x80] strb r0, [r2] adds r0, r4, 0 movs r1, 0x19 bl GetMonData str r0, [sp, 0x44] adds r0, r4, 0 movs r1, 0x27 bl GetMonData mov r3, sp movs r5, 0x1F ands r0, r5 ldrb r2, [r3, 0x14] movs r1, 0x20 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x14] adds r0, r4, 0 movs r1, 0x28 bl GetMonData mov r3, sp movs r6, 0x1F ands r0, r6 lsls r0, 5 ldrh r2, [r3, 0x14] ldr r1, _0811E7A0 ands r1, r2 orrs r1, r0 strh r1, [r3, 0x14] adds r0, r4, 0 movs r1, 0x29 bl GetMonData mov r3, sp ands r0, r5 lsls r0, 2 ldrb r2, [r3, 0x15] movs r1, 0x7D negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x15] adds r0, r4, 0 movs r1, 0x2A bl GetMonData movs r1, 0x1F ands r1, r0 lsls r1, 15 ldr r0, [sp, 0x14] ldr r2, _0811E7A4 ands r0, r2 orrs r0, r1 str r0, [sp, 0x14] adds r0, r4, 0 movs r1, 0x2B bl GetMonData mov r3, sp ands r0, r6 lsls r0, 4 ldrh r2, [r3, 0x16] ldr r1, _0811E7A8 ands r1, r2 orrs r1, r0 strh r1, [r3, 0x16] adds r0, r4, 0 movs r1, 0x2C bl GetMonData mov r3, sp ands r0, r5 lsls r0, 1 ldrb r2, [r3, 0x17] movs r1, 0x3F negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x17] adds r0, r4, 0 movs r1, 0 bl GetMonData str r0, [sp, 0x48] adds r0, r4, 0 movs r1, 0x37 bl GetMonData str r0, [sp, 0x4C] adds r0, r4, 0 movs r1, 0x38 bl GetMonData ldr r1, [sp, 0x7C] strb r0, [r1] adds r0, r4, 0 movs r1, 0x39 bl GetMonData mov r1, sp strh r0, [r1, 0x28] adds r0, r4, 0 movs r1, 0x3A bl GetMonData mov r1, sp strh r0, [r1, 0x2C] adds r0, r4, 0 movs r1, 0x3B bl GetMonData mov r1, sp strh r0, [r1, 0x2] adds r0, r4, 0 movs r1, 0x3C bl GetMonData mov r1, sp strh r0, [r1, 0x4] adds r0, r4, 0 movs r1, 0x3D bl GetMonData mov r1, sp strh r0, [r1, 0x6] adds r0, r4, 0 movs r1, 0x3E bl GetMonData mov r1, sp strh r0, [r1, 0x8] adds r0, r4, 0 movs r1, 0x3F bl GetMonData mov r1, sp strh r0, [r1, 0xA] adds r0, r4, 0 movs r1, 0x2D bl GetMonData mov r3, sp movs r1, 0x1 ands r0, r1 lsls r0, 6 ldrb r2, [r3, 0x17] movs r1, 0x41 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x17] adds r0, r4, 0 movs r1, 0x2E bl GetMonData mov r3, sp lsls r0, 7 ldrb r2, [r3, 0x17] movs r1, 0x7F ands r1, r2 orrs r1, r0 strb r1, [r3, 0x17] adds r0, r4, 0 movs r1, 0x1 bl GetMonData str r0, [sp, 0x54] adds r0, r4, 0 movs r1, 0x2 ldr r2, [sp, 0x8C] bl GetMonData ldr r0, [sp, 0x84] ldr r1, [sp, 0x8C] bl StringCopy10 adds r0, r4, 0 movs r1, 0x7 ldr r2, [sp, 0x88] bl GetMonData mov r2, sp movs r6, 0 _0811E78C: adds r0, r7, r6 adds r1, r2, r6 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 cmp r6, 0x57 bls _0811E78C b _0811EBEE .align 2, 0 _0811E79C: .4byte gPlayerParty _0811E7A0: .4byte 0xfffffc1f _0811E7A4: .4byte 0xfff07fff _0811E7A8: .4byte 0xfffffe0f _0811E7AC: movs r0, 0x64 muls r0, r5 ldr r1, _0811E7B8 adds r0, r1 movs r1, 0xB b _0811EB26 .align 2, 0 _0811E7B8: .4byte gPlayerParty _0811E7BC: movs r0, 0x64 muls r0, r5 ldr r1, _0811E7C8 adds r0, r1 movs r1, 0xC b _0811EB26 .align 2, 0 _0811E7C8: .4byte gPlayerParty _0811E7CC: movs r6, 0 add r2, sp, 0x58 mov r9, r2 add r0, sp, 0x60 mov r10, r0 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _0811E830 adds r4, r1, r0 mov r8, r9 _0811E7E2: adds r1, r6, 0 adds r1, 0xD adds r0, r4, 0 bl GetMonData mov r1, r8 strh r0, [r1] adds r1, r6, 0 adds r1, 0x11 adds r0, r4, 0 bl GetMonData mov r2, r10 adds r1, r2, r6 strb r0, [r1] movs r0, 0x2 add r8, r0 adds r6, 0x1 cmp r6, 0x3 ble _0811E7E2 movs r0, 0x64 muls r0, r5 ldr r1, _0811E830 adds r0, r1 movs r1, 0x15 bl GetMonData mov r1, r9 strb r0, [r1, 0xC] mov r2, r9 movs r6, 0 _0811E820: adds r0, r7, r6 adds r1, r2, r6 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 cmp r6, 0xF bls _0811E820 b _0811EBEE .align 2, 0 _0811E830: .4byte gPlayerParty _0811E834: movs r0, 0x64 muls r0, r5 ldr r1, _0811E84C adds r0, r1 ldrb r1, [r3] lsls r1, 9 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] adds r1, 0x9 b _0811EB26 .align 2, 0 _0811E84C: .4byte gPlayerParty _0811E850: movs r6, 0 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r2, _0811E888 mov r8, r2 _0811E85C: adds r1, r6, 0 adds r1, 0x11 mov r2, r8 adds r0, r4, r2 bl GetMonData adds r1, r7, r6 strb r0, [r1] adds r6, 0x1 cmp r6, 0x3 ble _0811E85C movs r0, 0x64 muls r0, r5 ldr r1, _0811E888 adds r0, r1 movs r1, 0x15 bl GetMonData adds r1, r7, r6 strb r0, [r1] adds r6, 0x1 b _0811EBEE .align 2, 0 _0811E888: .4byte gPlayerParty _0811E88C: movs r0, 0x64 muls r0, r5 ldr r1, _0811E8A4 adds r0, r1 ldrb r1, [r3] lsls r1, 9 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] adds r1, 0x8 b _0811EBE6 .align 2, 0 _0811E8A4: .4byte gPlayerParty _0811E8A8: movs r0, 0x64 muls r0, r5 ldr r1, _0811E8B4 adds r0, r1 movs r1, 0x1 b _0811E8C2 .align 2, 0 _0811E8B4: .4byte gPlayerParty _0811E8B8: movs r0, 0x64 muls r0, r5 ldr r1, _0811E8E4 adds r0, r1 movs r1, 0x19 _0811E8C2: bl GetMonData adds r1, r0, 0 strb r1, [r7] movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r0, 8 strb r0, [r7, 0x1] movs r0, 0xFF lsls r0, 16 ands r0, r1 lsrs r0, 16 strb r0, [r7, 0x2] movs r6, 0x3 b _0811EBEE .align 2, 0 _0811E8E4: .4byte gPlayerParty _0811E8E8: movs r0, 0x64 muls r0, r5 ldr r1, _0811E8F4 adds r0, r1 movs r1, 0x1A b _0811EBE6 .align 2, 0 _0811E8F4: .4byte gPlayerParty _0811E8F8: movs r0, 0x64 muls r0, r5 ldr r1, _0811E904 adds r0, r1 movs r1, 0x1B b _0811EBE6 .align 2, 0 _0811E904: .4byte gPlayerParty _0811E908: movs r0, 0x64 muls r0, r5 ldr r1, _0811E914 adds r0, r1 movs r1, 0x1C b _0811EBE6 .align 2, 0 _0811E914: .4byte gPlayerParty _0811E918: movs r0, 0x64 muls r0, r5 ldr r1, _0811E924 adds r0, r1 movs r1, 0x1D b _0811EBE6 .align 2, 0 _0811E924: .4byte gPlayerParty _0811E928: movs r0, 0x64 muls r0, r5 ldr r1, _0811E934 adds r0, r1 movs r1, 0x1E b _0811EBE6 .align 2, 0 _0811E934: .4byte gPlayerParty _0811E938: movs r0, 0x64 muls r0, r5 ldr r1, _0811E944 adds r0, r1 movs r1, 0x1F b _0811EBE6 .align 2, 0 _0811E944: .4byte gPlayerParty _0811E948: movs r0, 0x64 muls r0, r5 ldr r1, _0811E954 adds r0, r1 movs r1, 0x20 b _0811EBE6 .align 2, 0 _0811E954: .4byte gPlayerParty _0811E958: movs r0, 0x64 muls r0, r5 ldr r1, _0811E964 adds r0, r1 movs r1, 0x22 b _0811EBE6 .align 2, 0 _0811E964: .4byte gPlayerParty _0811E968: movs r0, 0x64 muls r0, r5 ldr r1, _0811E974 adds r0, r1 movs r1, 0x23 b _0811EBE6 .align 2, 0 _0811E974: .4byte gPlayerParty _0811E978: movs r0, 0x64 muls r0, r5 ldr r1, _0811E984 adds r0, r1 movs r1, 0x24 b _0811EBE6 .align 2, 0 _0811E984: .4byte gPlayerParty _0811E988: movs r0, 0x64 muls r0, r5 ldr r1, _0811E994 adds r0, r1 movs r1, 0x25 b _0811EBE6 .align 2, 0 _0811E994: .4byte gPlayerParty _0811E998: movs r0, 0x64 muls r0, r5 ldr r1, _0811E9A4 adds r0, r1 movs r1, 0x26 b _0811EBE6 .align 2, 0 _0811E9A4: .4byte gPlayerParty _0811E9A8: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0811E9F4 adds r4, r0 adds r0, r4, 0 movs r1, 0x27 bl GetMonData strb r0, [r7] adds r0, r4, 0 movs r1, 0x28 bl GetMonData strb r0, [r7, 0x1] adds r0, r4, 0 movs r1, 0x29 bl GetMonData strb r0, [r7, 0x2] adds r0, r4, 0 movs r1, 0x2A bl GetMonData strb r0, [r7, 0x3] adds r0, r4, 0 movs r1, 0x2B bl GetMonData strb r0, [r7, 0x4] adds r0, r4, 0 movs r1, 0x2C bl GetMonData strb r0, [r7, 0x5] movs r6, 0x6 b _0811EBEE .align 2, 0 _0811E9F4: .4byte gPlayerParty _0811E9F8: movs r0, 0x64 muls r0, r5 ldr r1, _0811EA04 adds r0, r1 movs r1, 0x27 b _0811EBE6 .align 2, 0 _0811EA04: .4byte gPlayerParty _0811EA08: movs r0, 0x64 muls r0, r5 ldr r1, _0811EA14 adds r0, r1 movs r1, 0x28 b _0811EBE6 .align 2, 0 _0811EA14: .4byte gPlayerParty _0811EA18: movs r0, 0x64 muls r0, r5 ldr r1, _0811EA24 adds r0, r1 movs r1, 0x29 b _0811EBE6 .align 2, 0 _0811EA24: .4byte gPlayerParty _0811EA28: movs r0, 0x64 muls r0, r5 ldr r1, _0811EA34 adds r0, r1 movs r1, 0x2A b _0811EBE6 .align 2, 0 _0811EA34: .4byte gPlayerParty _0811EA38: movs r0, 0x64 muls r0, r5 ldr r1, _0811EA44 adds r0, r1 movs r1, 0x2B b _0811EBE6 .align 2, 0 _0811EA44: .4byte gPlayerParty _0811EA48: movs r0, 0x64 muls r0, r5 ldr r1, _0811EA54 adds r0, r1 movs r1, 0x2C b _0811EBE6 .align 2, 0 _0811EA54: .4byte gPlayerParty _0811EA58: movs r0, 0x64 muls r0, r5 ldr r1, _0811EA64 adds r0, r1 movs r1, 0 b _0811EA82 .align 2, 0 _0811EA64: .4byte gPlayerParty _0811EA68: movs r0, 0x64 muls r0, r5 ldr r1, _0811EA74 adds r0, r1 movs r1, 0x9 b _0811EB26 .align 2, 0 _0811EA74: .4byte gPlayerParty _0811EA78: movs r0, 0x64 muls r0, r5 ldr r1, _0811EAA8 adds r0, r1 movs r1, 0x37 _0811EA82: bl GetMonData adds r1, r0, 0 strb r1, [r7] movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r0, 8 strb r0, [r7, 0x1] movs r0, 0xFF lsls r0, 16 ands r0, r1 lsrs r0, 16 strb r0, [r7, 0x2] lsrs r0, r1, 24 strb r0, [r7, 0x3] movs r6, 0x4 b _0811EBEE .align 2, 0 _0811EAA8: .4byte gPlayerParty _0811EAAC: movs r0, 0x64 muls r0, r5 ldr r1, _0811EAB8 adds r0, r1 movs r1, 0x38 b _0811EBE6 .align 2, 0 _0811EAB8: .4byte gPlayerParty _0811EABC: movs r0, 0x64 muls r0, r5 ldr r1, _0811EAC8 adds r0, r1 movs r1, 0x39 b _0811EB26 .align 2, 0 _0811EAC8: .4byte gPlayerParty _0811EACC: movs r0, 0x64 muls r0, r5 ldr r1, _0811EAD8 adds r0, r1 movs r1, 0x3A b _0811EB26 .align 2, 0 _0811EAD8: .4byte gPlayerParty _0811EADC: movs r0, 0x64 muls r0, r5 ldr r1, _0811EAE8 adds r0, r1 movs r1, 0x3B b _0811EB26 .align 2, 0 _0811EAE8: .4byte gPlayerParty _0811EAEC: movs r0, 0x64 muls r0, r5 ldr r1, _0811EAF8 adds r0, r1 movs r1, 0x3C b _0811EB26 .align 2, 0 _0811EAF8: .4byte gPlayerParty _0811EAFC: movs r0, 0x64 muls r0, r5 ldr r1, _0811EB08 adds r0, r1 movs r1, 0x3D b _0811EB26 .align 2, 0 _0811EB08: .4byte gPlayerParty _0811EB0C: movs r0, 0x64 muls r0, r5 ldr r1, _0811EB18 adds r0, r1 movs r1, 0x3E b _0811EB26 .align 2, 0 _0811EB18: .4byte gPlayerParty _0811EB1C: movs r0, 0x64 muls r0, r5 ldr r1, _0811EB38 adds r0, r1 movs r1, 0x3F _0811EB26: bl GetMonData lsls r0, 16 lsrs r0, 16 strb r0, [r7] lsrs r0, 8 strb r0, [r7, 0x1] movs r6, 0x2 b _0811EBEE .align 2, 0 _0811EB38: .4byte gPlayerParty _0811EB3C: movs r0, 0x64 muls r0, r5 ldr r1, _0811EB48 adds r0, r1 movs r1, 0x16 b _0811EBE6 .align 2, 0 _0811EB48: .4byte gPlayerParty _0811EB4C: movs r0, 0x64 muls r0, r5 ldr r1, _0811EB58 adds r0, r1 movs r1, 0x17 b _0811EBE6 .align 2, 0 _0811EB58: .4byte gPlayerParty _0811EB5C: movs r0, 0x64 muls r0, r5 ldr r1, _0811EB68 adds r0, r1 movs r1, 0x18 b _0811EBE6 .align 2, 0 _0811EB68: .4byte gPlayerParty _0811EB6C: movs r0, 0x64 muls r0, r5 ldr r1, _0811EB78 adds r0, r1 movs r1, 0x21 b _0811EBE6 .align 2, 0 _0811EB78: .4byte gPlayerParty _0811EB7C: movs r0, 0x64 muls r0, r5 ldr r1, _0811EB88 adds r0, r1 movs r1, 0x2F b _0811EBE6 .align 2, 0 _0811EB88: .4byte gPlayerParty _0811EB8C: movs r0, 0x64 muls r0, r5 ldr r1, _0811EB98 adds r0, r1 movs r1, 0x30 b _0811EBE6 .align 2, 0 _0811EB98: .4byte gPlayerParty _0811EB9C: movs r0, 0x64 muls r0, r5 ldr r1, _0811EBA8 adds r0, r1 movs r1, 0x32 b _0811EBE6 .align 2, 0 _0811EBA8: .4byte gPlayerParty _0811EBAC: movs r0, 0x64 muls r0, r5 ldr r1, _0811EBB8 adds r0, r1 movs r1, 0x33 b _0811EBE6 .align 2, 0 _0811EBB8: .4byte gPlayerParty _0811EBBC: movs r0, 0x64 muls r0, r5 ldr r1, _0811EBC8 adds r0, r1 movs r1, 0x34 b _0811EBE6 .align 2, 0 _0811EBC8: .4byte gPlayerParty _0811EBCC: movs r0, 0x64 muls r0, r5 ldr r1, _0811EBD8 adds r0, r1 movs r1, 0x35 b _0811EBE6 .align 2, 0 _0811EBD8: .4byte gPlayerParty _0811EBDC: movs r0, 0x64 muls r0, r5 ldr r1, _0811EC00 adds r0, r1 movs r1, 0x36 _0811EBE6: bl GetMonData strb r0, [r7] movs r6, 0x1 _0811EBEE: adds r0, r6, 0 add sp, 0x90 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811EC00: .4byte gPlayerParty thumb_func_end dp01_getattr_by_ch1_for_player_pokemon thumb_func_start sub_811EC04 sub_811EC04: @ 811EC04 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_811EC04 thumb_func_start sub_811EC10 sub_811EC10: @ 811EC10 push {r4,r5,lr} ldr r1, _0811EC34 ldr r0, _0811EC38 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 bne _0811EC40 ldr r0, _0811EC3C lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] bl sub_811EC68 b _0811EC5E .align 2, 0 _0811EC34: .4byte gUnknown_02023A60 _0811EC38: .4byte gUnknown_02024A60 _0811EC3C: .4byte gUnknown_02024A6A _0811EC40: ldrb r4, [r1] movs r5, 0 _0811EC44: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _0811EC52 adds r0, r5, 0 bl sub_811EC68 _0811EC52: lsrs r4, 1 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _0811EC44 _0811EC5E: bl dp01_tbl3_exec_completed pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_811EC10 thumb_func_start sub_811EC68 sub_811EC68: @ 811EC68 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x34 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0811ECA0 ldrb r0, [r0] lsls r0, 9 ldr r2, _0811ECA4 adds r3, r0, r2 adds r6, r3, 0 subs r1, r2, 0x2 adds r0, r1 ldrb r0, [r0] adds r7, r2, 0 cmp r0, 0x3B bls _0811EC94 bl _0811F62E _0811EC94: lsls r0, 2 ldr r1, _0811ECA8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0811ECA0: .4byte gUnknown_02024A60 _0811ECA4: .4byte gUnknown_02023A63 _0811ECA8: .4byte _0811ECAC .align 2, 0 _0811ECAC: .4byte _0811ED9C .4byte _0811EF34 .4byte _0811EF54 .4byte _0811EF74 .4byte _0811EFCC .4byte _0811EFCC .4byte _0811EFCC .4byte _0811EFCC .4byte _0811EFF4 .4byte _0811F058 .4byte _0811F058 .4byte _0811F058 .4byte _0811F058 .4byte _0811F62E .4byte _0811F62E .4byte _0811F62E .4byte _0811F62E .4byte _0811F088 .4byte _0811F0A8 .4byte _0811F0C8 .4byte _0811F0E8 .4byte _0811F108 .4byte _0811F128 .4byte _0811F148 .4byte _0811F168 .4byte _0811F188 .4byte _0811F1A8 .4byte _0811F1C8 .4byte _0811F1E8 .4byte _0811F208 .4byte _0811F228 .4byte _0811F248 .4byte _0811F2B8 .4byte _0811F2D8 .4byte _0811F2F8 .4byte _0811F318 .4byte _0811F338 .4byte _0811F358 .4byte _0811F378 .4byte _0811F398 .4byte _0811F3B8 .4byte _0811F3D8 .4byte _0811F3F8 .4byte _0811F418 .4byte _0811F438 .4byte _0811F458 .4byte _0811F478 .4byte _0811F498 .4byte _0811F4B8 .4byte _0811F4D8 .4byte _0811F4F8 .4byte _0811F518 .4byte _0811F538 .4byte _0811F558 .4byte _0811F578 .4byte _0811F598 .4byte _0811F5B8 .4byte _0811F5D8 .4byte _0811F5F8 .4byte _0811F618 _0811ED9C: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0811EF30 adds r4, r0 adds r0, r4, 0 movs r1, 0xB adds r2, r6, 0 bl SetMonData adds r2, r6, 0 adds r2, 0x2E adds r0, r4, 0 movs r1, 0xC bl SetMonData movs r0, 0 mov r8, r0 movs r0, 0x3B adds r0, r6 mov r10, r0 adds r0, r6, 0 adds r0, 0x2B str r0, [sp, 0x20] adds r0, 0x19 str r0, [sp, 0x28] adds r0, 0x4 str r0, [sp, 0x2C] adds r0, 0x4 str r0, [sp, 0x30] subs r0, 0x22 str r0, [sp, 0x1C] subs r0, 0x2 str r0, [sp, 0x18] adds r0, 0x4 str r0, [sp, 0x24] adds r0, r6, 0x2 str r0, [sp, 0x4] adds r0, r6, 0x4 str r0, [sp, 0x8] adds r0, r6, 0x6 str r0, [sp, 0xC] adds r0, 0x2 str r0, [sp, 0x10] adds r0, 0x2 str r0, [sp, 0x14] mov r9, r4 adds r7, r6, 0 adds r7, 0x24 adds r4, r6, 0 adds r4, 0xC _0811EE02: mov r1, r8 adds r1, 0xD mov r0, r9 adds r2, r4, 0 bl SetMonData mov r1, r8 adds r1, 0x11 mov r0, r9 adds r2, r7, 0 bl SetMonData adds r7, 0x1 adds r4, 0x2 movs r0, 0x1 add r8, r0 mov r0, r8 cmp r0, 0x3 ble _0811EE02 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0811EF30 adds r4, r0 adds r0, r4, 0 movs r1, 0x15 mov r2, r10 bl SetMonData adds r0, r4, 0 movs r1, 0x20 ldr r2, [sp, 0x20] bl SetMonData adds r0, r4, 0 movs r1, 0x19 ldr r2, [sp, 0x28] bl SetMonData ldrb r0, [r6, 0x14] lsls r0, 27 lsrs r0, 27 mov r1, sp strb r0, [r1] adds r0, r4, 0 movs r1, 0x27 mov r2, sp bl SetMonData mov r1, sp ldrh r0, [r6, 0x14] lsls r0, 22 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x28 mov r2, sp bl SetMonData mov r1, sp ldrb r0, [r6, 0x15] lsls r0, 25 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x29 mov r2, sp bl SetMonData mov r1, sp ldr r0, [r6, 0x14] lsls r0, 12 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2A mov r2, sp bl SetMonData mov r1, sp ldrh r0, [r6, 0x16] lsls r0, 23 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2B mov r2, sp bl SetMonData mov r1, sp ldrb r0, [r6, 0x17] lsls r0, 26 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2C mov r2, sp bl SetMonData adds r0, r4, 0 movs r1, 0 ldr r2, [sp, 0x2C] bl SetMonData adds r0, r4, 0 movs r1, 0x37 ldr r2, [sp, 0x30] bl SetMonData adds r0, r4, 0 movs r1, 0x38 ldr r2, [sp, 0x1C] bl SetMonData adds r0, r4, 0 movs r1, 0x39 ldr r2, [sp, 0x18] bl SetMonData adds r0, r4, 0 movs r1, 0x3A ldr r2, [sp, 0x24] bl SetMonData adds r0, r4, 0 movs r1, 0x3B ldr r2, [sp, 0x4] bl SetMonData adds r0, r4, 0 movs r1, 0x3C ldr r2, [sp, 0x8] bl SetMonData adds r0, r4, 0 movs r1, 0x3D ldr r2, [sp, 0xC] bl SetMonData adds r0, r4, 0 movs r1, 0x3E ldr r2, [sp, 0x10] bl SetMonData adds r0, r4, 0 movs r1, 0x3F ldr r2, [sp, 0x14] bl SetMonData b _0811F62E .align 2, 0 _0811EF30: .4byte gPlayerParty _0811EF34: movs r0, 0x64 muls r0, r5 ldr r1, _0811EF4C adds r0, r1 ldr r1, _0811EF50 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0xB bl SetMonData b _0811F62E .align 2, 0 _0811EF4C: .4byte gPlayerParty _0811EF50: .4byte gUnknown_02024A60 _0811EF54: movs r0, 0x64 muls r0, r5 ldr r1, _0811EF6C adds r0, r1 ldr r1, _0811EF70 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0xC bl SetMonData b _0811F62E .align 2, 0 _0811EF6C: .4byte gPlayerParty _0811EF70: .4byte gUnknown_02024A60 _0811EF74: movs r0, 0 mov r8, r0 movs r0, 0xC adds r0, r3 mov r9, r0 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _0811EFC8 adds r7, r1, r0 adds r6, r3, 0 adds r6, 0x8 adds r4, r3, 0 _0811EF8E: mov r1, r8 adds r1, 0xD adds r0, r7, 0 adds r2, r4, 0 bl SetMonData mov r1, r8 adds r1, 0x11 adds r0, r7, 0 adds r2, r6, 0 bl SetMonData adds r6, 0x1 adds r4, 0x2 movs r0, 0x1 add r8, r0 mov r0, r8 cmp r0, 0x3 ble _0811EF8E movs r0, 0x64 muls r0, r5 ldr r1, _0811EFC8 adds r0, r1 movs r1, 0x15 mov r2, r9 bl SetMonData b _0811F62E .align 2, 0 _0811EFC8: .4byte gPlayerParty _0811EFCC: movs r0, 0x64 muls r0, r5 ldr r1, _0811EFE8 adds r0, r1 ldr r3, _0811EFEC ldr r1, _0811EFF0 ldrb r2, [r1] lsls r2, 9 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] adds r1, 0x9 b _0811F070 .align 2, 0 _0811EFE8: .4byte gPlayerParty _0811EFEC: .4byte gUnknown_02023A60 _0811EFF0: .4byte gUnknown_02024A60 _0811EFF4: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0811F050 adds r4, r0 ldr r5, _0811F054 ldrb r2, [r5] lsls r2, 9 adds r2, r7 adds r0, r4, 0 movs r1, 0x11 bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x1 adds r2, r0 adds r0, r4, 0 movs r1, 0x12 bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x2 adds r2, r0 adds r0, r4, 0 movs r1, 0x13 bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x3 adds r2, r0 adds r0, r4, 0 movs r1, 0x14 bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x4 adds r2, r0 adds r0, r4, 0 movs r1, 0x15 bl SetMonData b _0811F62E .align 2, 0 _0811F050: .4byte gPlayerParty _0811F054: .4byte gUnknown_02024A60 _0811F058: movs r0, 0x64 muls r0, r5 ldr r1, _0811F07C adds r0, r1 ldr r3, _0811F080 ldr r1, _0811F084 ldrb r2, [r1] lsls r2, 9 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] adds r1, 0x8 _0811F070: adds r3, 0x3 adds r2, r3 bl SetMonData b _0811F62E .align 2, 0 _0811F07C: .4byte gPlayerParty _0811F080: .4byte gUnknown_02023A60 _0811F084: .4byte gUnknown_02024A60 _0811F088: movs r0, 0x64 muls r0, r5 ldr r1, _0811F0A0 adds r0, r1 ldr r1, _0811F0A4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1 bl SetMonData b _0811F62E .align 2, 0 _0811F0A0: .4byte gPlayerParty _0811F0A4: .4byte gUnknown_02024A60 _0811F0A8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F0C0 adds r0, r1 ldr r1, _0811F0C4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x19 bl SetMonData b _0811F62E .align 2, 0 _0811F0C0: .4byte gPlayerParty _0811F0C4: .4byte gUnknown_02024A60 _0811F0C8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F0E0 adds r0, r1 ldr r1, _0811F0E4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1A bl SetMonData b _0811F62E .align 2, 0 _0811F0E0: .4byte gPlayerParty _0811F0E4: .4byte gUnknown_02024A60 _0811F0E8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F100 adds r0, r1 ldr r1, _0811F104 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1B bl SetMonData b _0811F62E .align 2, 0 _0811F100: .4byte gPlayerParty _0811F104: .4byte gUnknown_02024A60 _0811F108: movs r0, 0x64 muls r0, r5 ldr r1, _0811F120 adds r0, r1 ldr r1, _0811F124 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1C bl SetMonData b _0811F62E .align 2, 0 _0811F120: .4byte gPlayerParty _0811F124: .4byte gUnknown_02024A60 _0811F128: movs r0, 0x64 muls r0, r5 ldr r1, _0811F140 adds r0, r1 ldr r1, _0811F144 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1D bl SetMonData b _0811F62E .align 2, 0 _0811F140: .4byte gPlayerParty _0811F144: .4byte gUnknown_02024A60 _0811F148: movs r0, 0x64 muls r0, r5 ldr r1, _0811F160 adds r0, r1 ldr r1, _0811F164 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1E bl SetMonData b _0811F62E .align 2, 0 _0811F160: .4byte gPlayerParty _0811F164: .4byte gUnknown_02024A60 _0811F168: movs r0, 0x64 muls r0, r5 ldr r1, _0811F180 adds r0, r1 ldr r1, _0811F184 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1F bl SetMonData b _0811F62E .align 2, 0 _0811F180: .4byte gPlayerParty _0811F184: .4byte gUnknown_02024A60 _0811F188: movs r0, 0x64 muls r0, r5 ldr r1, _0811F1A0 adds r0, r1 ldr r1, _0811F1A4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x20 bl SetMonData b _0811F62E .align 2, 0 _0811F1A0: .4byte gPlayerParty _0811F1A4: .4byte gUnknown_02024A60 _0811F1A8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F1C0 adds r0, r1 ldr r1, _0811F1C4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x22 bl SetMonData b _0811F62E .align 2, 0 _0811F1C0: .4byte gPlayerParty _0811F1C4: .4byte gUnknown_02024A60 _0811F1C8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F1E0 adds r0, r1 ldr r1, _0811F1E4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x23 bl SetMonData b _0811F62E .align 2, 0 _0811F1E0: .4byte gPlayerParty _0811F1E4: .4byte gUnknown_02024A60 _0811F1E8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F200 adds r0, r1 ldr r1, _0811F204 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x24 bl SetMonData b _0811F62E .align 2, 0 _0811F200: .4byte gPlayerParty _0811F204: .4byte gUnknown_02024A60 _0811F208: movs r0, 0x64 muls r0, r5 ldr r1, _0811F220 adds r0, r1 ldr r1, _0811F224 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x25 bl SetMonData b _0811F62E .align 2, 0 _0811F220: .4byte gPlayerParty _0811F224: .4byte gUnknown_02024A60 _0811F228: movs r0, 0x64 muls r0, r5 ldr r1, _0811F240 adds r0, r1 ldr r1, _0811F244 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x26 bl SetMonData b _0811F62E .align 2, 0 _0811F240: .4byte gPlayerParty _0811F244: .4byte gUnknown_02024A60 _0811F248: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0811F2B0 adds r4, r0 ldr r5, _0811F2B4 ldrb r2, [r5] lsls r2, 9 adds r2, r7 adds r0, r4, 0 movs r1, 0x27 bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x1 adds r2, r0 adds r0, r4, 0 movs r1, 0x28 bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x2 adds r2, r0 adds r0, r4, 0 movs r1, 0x29 bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x3 adds r2, r0 adds r0, r4, 0 movs r1, 0x2A bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x4 adds r2, r0 adds r0, r4, 0 movs r1, 0x2B bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x5 adds r2, r0 adds r0, r4, 0 b _0811F368 .align 2, 0 _0811F2B0: .4byte gPlayerParty _0811F2B4: .4byte gUnknown_02024A60 _0811F2B8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F2D0 adds r0, r1 ldr r1, _0811F2D4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x27 bl SetMonData b _0811F62E .align 2, 0 _0811F2D0: .4byte gPlayerParty _0811F2D4: .4byte gUnknown_02024A60 _0811F2D8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F2F0 adds r0, r1 ldr r1, _0811F2F4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x28 bl SetMonData b _0811F62E .align 2, 0 _0811F2F0: .4byte gPlayerParty _0811F2F4: .4byte gUnknown_02024A60 _0811F2F8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F310 adds r0, r1 ldr r1, _0811F314 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x29 bl SetMonData b _0811F62E .align 2, 0 _0811F310: .4byte gPlayerParty _0811F314: .4byte gUnknown_02024A60 _0811F318: movs r0, 0x64 muls r0, r5 ldr r1, _0811F330 adds r0, r1 ldr r1, _0811F334 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x2A bl SetMonData b _0811F62E .align 2, 0 _0811F330: .4byte gPlayerParty _0811F334: .4byte gUnknown_02024A60 _0811F338: movs r0, 0x64 muls r0, r5 ldr r1, _0811F350 adds r0, r1 ldr r1, _0811F354 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x2B bl SetMonData b _0811F62E .align 2, 0 _0811F350: .4byte gPlayerParty _0811F354: .4byte gUnknown_02024A60 _0811F358: movs r0, 0x64 muls r0, r5 ldr r1, _0811F370 adds r0, r1 ldr r1, _0811F374 ldrb r2, [r1] lsls r2, 9 adds r2, r7 _0811F368: movs r1, 0x2C bl SetMonData b _0811F62E .align 2, 0 _0811F370: .4byte gPlayerParty _0811F374: .4byte gUnknown_02024A60 _0811F378: movs r0, 0x64 muls r0, r5 ldr r1, _0811F390 adds r0, r1 ldr r1, _0811F394 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0 bl SetMonData b _0811F62E .align 2, 0 _0811F390: .4byte gPlayerParty _0811F394: .4byte gUnknown_02024A60 _0811F398: movs r0, 0x64 muls r0, r5 ldr r1, _0811F3B0 adds r0, r1 ldr r1, _0811F3B4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x9 bl SetMonData b _0811F62E .align 2, 0 _0811F3B0: .4byte gPlayerParty _0811F3B4: .4byte gUnknown_02024A60 _0811F3B8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F3D0 adds r0, r1 ldr r1, _0811F3D4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x37 bl SetMonData b _0811F62E .align 2, 0 _0811F3D0: .4byte gPlayerParty _0811F3D4: .4byte gUnknown_02024A60 _0811F3D8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F3F0 adds r0, r1 ldr r1, _0811F3F4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x38 bl SetMonData b _0811F62E .align 2, 0 _0811F3F0: .4byte gPlayerParty _0811F3F4: .4byte gUnknown_02024A60 _0811F3F8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F410 adds r0, r1 ldr r1, _0811F414 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x39 bl SetMonData b _0811F62E .align 2, 0 _0811F410: .4byte gPlayerParty _0811F414: .4byte gUnknown_02024A60 _0811F418: movs r0, 0x64 muls r0, r5 ldr r1, _0811F430 adds r0, r1 ldr r1, _0811F434 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3A bl SetMonData b _0811F62E .align 2, 0 _0811F430: .4byte gPlayerParty _0811F434: .4byte gUnknown_02024A60 _0811F438: movs r0, 0x64 muls r0, r5 ldr r1, _0811F450 adds r0, r1 ldr r1, _0811F454 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3B bl SetMonData b _0811F62E .align 2, 0 _0811F450: .4byte gPlayerParty _0811F454: .4byte gUnknown_02024A60 _0811F458: movs r0, 0x64 muls r0, r5 ldr r1, _0811F470 adds r0, r1 ldr r1, _0811F474 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3C bl SetMonData b _0811F62E .align 2, 0 _0811F470: .4byte gPlayerParty _0811F474: .4byte gUnknown_02024A60 _0811F478: movs r0, 0x64 muls r0, r5 ldr r1, _0811F490 adds r0, r1 ldr r1, _0811F494 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3D bl SetMonData b _0811F62E .align 2, 0 _0811F490: .4byte gPlayerParty _0811F494: .4byte gUnknown_02024A60 _0811F498: movs r0, 0x64 muls r0, r5 ldr r1, _0811F4B0 adds r0, r1 ldr r1, _0811F4B4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3E bl SetMonData b _0811F62E .align 2, 0 _0811F4B0: .4byte gPlayerParty _0811F4B4: .4byte gUnknown_02024A60 _0811F4B8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F4D0 adds r0, r1 ldr r1, _0811F4D4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3F bl SetMonData b _0811F62E .align 2, 0 _0811F4D0: .4byte gPlayerParty _0811F4D4: .4byte gUnknown_02024A60 _0811F4D8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F4F0 adds r0, r1 ldr r1, _0811F4F4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x16 bl SetMonData b _0811F62E .align 2, 0 _0811F4F0: .4byte gPlayerParty _0811F4F4: .4byte gUnknown_02024A60 _0811F4F8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F510 adds r0, r1 ldr r1, _0811F514 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x17 bl SetMonData b _0811F62E .align 2, 0 _0811F510: .4byte gPlayerParty _0811F514: .4byte gUnknown_02024A60 _0811F518: movs r0, 0x64 muls r0, r5 ldr r1, _0811F530 adds r0, r1 ldr r1, _0811F534 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x18 bl SetMonData b _0811F62E .align 2, 0 _0811F530: .4byte gPlayerParty _0811F534: .4byte gUnknown_02024A60 _0811F538: movs r0, 0x64 muls r0, r5 ldr r1, _0811F550 adds r0, r1 ldr r1, _0811F554 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x21 bl SetMonData b _0811F62E .align 2, 0 _0811F550: .4byte gPlayerParty _0811F554: .4byte gUnknown_02024A60 _0811F558: movs r0, 0x64 muls r0, r5 ldr r1, _0811F570 adds r0, r1 ldr r1, _0811F574 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x2F bl SetMonData b _0811F62E .align 2, 0 _0811F570: .4byte gPlayerParty _0811F574: .4byte gUnknown_02024A60 _0811F578: movs r0, 0x64 muls r0, r5 ldr r1, _0811F590 adds r0, r1 ldr r1, _0811F594 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x30 bl SetMonData b _0811F62E .align 2, 0 _0811F590: .4byte gPlayerParty _0811F594: .4byte gUnknown_02024A60 _0811F598: movs r0, 0x64 muls r0, r5 ldr r1, _0811F5B0 adds r0, r1 ldr r1, _0811F5B4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x32 bl SetMonData b _0811F62E .align 2, 0 _0811F5B0: .4byte gPlayerParty _0811F5B4: .4byte gUnknown_02024A60 _0811F5B8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F5D0 adds r0, r1 ldr r1, _0811F5D4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x33 bl SetMonData b _0811F62E .align 2, 0 _0811F5D0: .4byte gPlayerParty _0811F5D4: .4byte gUnknown_02024A60 _0811F5D8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F5F0 adds r0, r1 ldr r1, _0811F5F4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x34 bl SetMonData b _0811F62E .align 2, 0 _0811F5F0: .4byte gPlayerParty _0811F5F4: .4byte gUnknown_02024A60 _0811F5F8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F610 adds r0, r1 ldr r1, _0811F614 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x35 bl SetMonData b _0811F62E .align 2, 0 _0811F610: .4byte gPlayerParty _0811F614: .4byte gUnknown_02024A60 _0811F618: movs r0, 0x64 muls r0, r5 ldr r1, _0811F658 adds r0, r1 ldr r1, _0811F65C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x36 bl SetMonData _0811F62E: ldr r2, _0811F660 ldr r0, _0811F65C ldrb r1, [r0] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, _0811F658 adds r0, r2 bl sub_80324F8 add sp, 0x34 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811F658: .4byte gPlayerParty _0811F65C: .4byte gUnknown_02024A60 _0811F660: .4byte gUnknown_02024A6A thumb_func_end sub_811EC68 thumb_func_start sub_811F664 sub_811F664: @ 811F664 push {r4-r7,lr} ldr r1, _0811F6C8 ldr r7, _0811F6CC ldrb r2, [r7] lsls r0, r2, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 adds r3, r1, 0 muls r3, r0 ldr r4, _0811F6D0 lsls r2, 9 adds r0, r4, 0x1 adds r0, r2, r0 ldrb r0, [r0] ldr r1, _0811F6D4 adds r0, r1 adds r5, r3, r0 movs r3, 0 adds r0, r4, 0x2 adds r2, r0 ldrb r2, [r2] cmp r3, r2 bcs _0811F6BC adds r6, r4, 0 adds r2, r7, 0 adds r4, r0, 0 _0811F69A: adds r1, r5, r3 ldrb r0, [r2] lsls r0, 9 adds r0, 0x3 adds r0, r3, r0 adds r0, r6 ldrb r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 ldrb r0, [r2] lsls r0, 9 adds r0, r4 ldrb r0, [r0] cmp r3, r0 bcc _0811F69A _0811F6BC: bl dp01_tbl3_exec_completed pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811F6C8: .4byte gUnknown_02024A6A _0811F6CC: .4byte gUnknown_02024A60 _0811F6D0: .4byte gUnknown_02023A60 _0811F6D4: .4byte gPlayerParty thumb_func_end sub_811F664 thumb_func_start sub_811F6D8 sub_811F6D8: @ 811F6D8 push {r4-r6,lr} mov r6, r8 push {r6} ldr r0, _0811F7CC mov r8, r0 ldr r6, _0811F7D0 ldrb r1, [r6] lsls r0, r1, 1 add r0, r8 ldrh r0, [r0] movs r5, 0x64 muls r0, r5 ldr r4, _0811F7D4 adds r0, r4 bl sub_80318FC ldrb r0, [r6] lsls r0, 1 add r0, r8 ldrh r0, [r0] muls r0, r5 adds r0, r4 movs r1, 0xB bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrb r0, [r6] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl GetMonSpriteTemplate_803C56C ldr r0, _0811F7D8 mov r8, r0 ldrb r0, [r6] movs r1, 0x2 bl sub_8077ABC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldrb r0, [r6] bl sub_8077F68 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r6] bl sub_8079E90 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 mov r0, r8 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite ldr r4, _0811F7DC ldrb r1, [r6] adds r1, r4 strb r0, [r1] ldr r5, _0811F7E0 ldrb r0, [r6] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _0811F7E4 strh r1, [r0, 0x24] ldrb r2, [r6] adds r0, r2, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x2E] ldrb r3, [r6] adds r0, r3, r4 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 lsls r3, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r2, [r6] adds r4, r2, r4 ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _0811F7E8 adds r2, r1 ldrb r1, [r2] bl StartSpriteAnim ldr r1, _0811F7EC ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _0811F7F0 str r1, [r0] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811F7CC: .4byte gUnknown_02024A6A _0811F7D0: .4byte gUnknown_02024A60 _0811F7D4: .4byte gPlayerParty _0811F7D8: .4byte gUnknown_02024E8C _0811F7DC: .4byte gUnknown_02024BE0 _0811F7E0: .4byte gSprites _0811F7E4: .4byte 0x0000ff10 _0811F7E8: .4byte gUnknown_02024E84 _0811F7EC: .4byte gUnknown_03004330 _0811F7F0: .4byte sub_811DDE8 thumb_func_end sub_811F6D8 thumb_func_start sub_811F7F4 sub_811F7F4: @ 811F7F4 push {r4-r6,lr} ldr r5, _0811F84C ldrb r0, [r5] ldr r4, _0811F850 lsls r1, r0, 9 adds r6, r4, 0x2 adds r1, r6 ldrb r1, [r1] bl sub_8032AA8 ldr r2, _0811F854 ldrb r0, [r5] lsls r1, r0, 1 adds r1, r2 lsls r0, 9 adds r4, 0x1 adds r0, r4 ldrb r0, [r0] strh r0, [r1] ldrb r1, [r5] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, _0811F858 adds r0, r2 bl sub_80318FC ldrb r0, [r5] lsls r1, r0, 9 adds r1, r6 ldrb r1, [r1] bl sub_811F864 ldr r1, _0811F85C ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _0811F860 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811F84C: .4byte gUnknown_02024A60 _0811F850: .4byte gUnknown_02023A60 _0811F854: .4byte gUnknown_02024A6A _0811F858: .4byte gPlayerParty _0811F85C: .4byte gUnknown_03004330 _0811F860: .4byte sub_811E1BC thumb_func_end sub_811F7F4 thumb_func_start sub_811F864 sub_811F864: @ 811F864 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl sub_8032AA8 ldr r0, _0811F9A8 lsls r2, r6, 1 adds r2, r0 ldr r0, _0811F9AC lsls r1, r6, 9 adds r0, 0x1 adds r1, r0 ldrb r0, [r1] strh r0, [r2] ldrh r1, [r2] movs r0, 0x64 muls r0, r1 ldr r1, _0811F9B0 adds r0, r1 movs r1, 0xB bl GetMonData mov r8, r0 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r0, _0811F9B4 bl object_new_hidden_with_callback ldr r1, _0811F9B8 mov r9, r1 add r9, r6 mov r1, r9 strb r0, [r1] adds r0, r6, 0 bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r8 bl GetMonSpriteTemplate_803C56C ldr r0, _0811F9BC mov r10, r0 adds r0, r6, 0 movs r1, 0x2 bl sub_8077ABC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r6, 0 bl sub_8077F68 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 bl sub_8079E90 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 mov r0, r10 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite ldr r4, _0811F9C0 adds r4, r6, r4 strb r0, [r4] ldr r5, _0811F9C4 mov r0, r9 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r4] strh r1, [r0, 0x30] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r6, [r0, 0x2E] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r8 strh r1, [r0, 0x32] ldrb r0, [r4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 lsls r3, r6, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _0811F9C8 adds r6, r1 ldrb r1, [r6] bl StartSpriteAnim ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, _0811F9CC str r1, [r0] movs r0, 0 movs r1, 0xFF bl sub_8046400 mov r1, r9 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r5 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x2E] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811F9A8: .4byte gUnknown_02024A6A _0811F9AC: .4byte gUnknown_02023A60 _0811F9B0: .4byte gPlayerParty _0811F9B4: .4byte sub_80312F0 _0811F9B8: .4byte gUnknown_0300434C _0811F9BC: .4byte gUnknown_02024E8C _0811F9C0: .4byte gUnknown_02024BE0 _0811F9C4: .4byte gSprites _0811F9C8: .4byte gUnknown_02024E84 _0811F9CC: .4byte SpriteCallbackDummy thumb_func_end sub_811F864 thumb_func_start sub_811F9D0 sub_811F9D0: @ 811F9D0 push {r4-r6,lr} ldr r1, _0811FA00 ldr r6, _0811FA04 ldrb r2, [r6] lsls r0, r2, 9 adds r1, 0x1 adds r0, r1 ldrb r3, [r0] cmp r3, 0 bne _0811FA14 lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r1, _0811FA08 adds r0, r1 strb r3, [r0, 0x4] ldr r1, _0811FA0C ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _0811FA10 str r1, [r0] b _0811FA4A .align 2, 0 _0811FA00: .4byte gUnknown_02023A60 _0811FA04: .4byte gUnknown_02024A60 _0811FA08: .4byte 0x02017810 _0811FA0C: .4byte gUnknown_03004330 _0811FA10: .4byte sub_811FA5C _0811FA14: ldr r5, _0811FA50 adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _0811FA54 adds r0, r4 bl FreeSpriteOamMatrix ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldr r1, _0811FA58 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 bl dp01_tbl3_exec_completed _0811FA4A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811FA50: .4byte gUnknown_02024BE0 _0811FA54: .4byte gSprites _0811FA58: .4byte gUnknown_03004340 thumb_func_end sub_811F9D0 thumb_func_start sub_811FA5C sub_811FA5C: @ 811FA5C push {r4,r5,lr} ldr r5, _0811FA78 ldrb r2, [r5] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r4, _0811FA7C adds r3, r0, r4 ldrb r0, [r3, 0x4] cmp r0, 0 beq _0811FA80 cmp r0, 0x1 beq _0811FAAC b _0811FAD4 .align 2, 0 _0811FA78: .4byte gUnknown_02024A60 _0811FA7C: .4byte 0x02017810 _0811FA80: lsls r0, r2, 2 adds r1, r4, 0 subs r1, 0x10 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0811FA9C adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _0811FA9C: ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r4 movs r0, 0x1 strb r0, [r1, 0x4] b _0811FAD4 _0811FAAC: ldrb r1, [r3] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0811FAD4 strb r0, [r3, 0x4] ldrb r2, [r5] adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x1 bl move_anim_start_t4 ldr r1, _0811FADC ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _0811FAE0 str r1, [r0] _0811FAD4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811FADC: .4byte gUnknown_03004330 _0811FAE0: .4byte sub_811DF34 thumb_func_end sub_811FA5C thumb_func_start sub_811FAE4 sub_811FAE4: @ 811FAE4 push {r4-r6,lr} mov r6, r8 push {r6} ldr r0, _0811FB14 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0811FB24 ldr r6, _0811FB18 ldrb r0, [r6] bl battle_get_per_side_status movs r1, 0x2 ands r1, r0 ldr r5, _0811FB1C cmp r1, 0 beq _0811FB0A movs r5, 0x10 _0811FB0A: ldr r4, _0811FB20 ldrb r0, [r6] bl sub_803FC34 b _0811FB34 .align 2, 0 _0811FB14: .4byte gUnknown_020239F8 _0811FB18: .4byte gUnknown_02024A60 _0811FB1C: .4byte 0x0000fff0 _0811FB20: .4byte gLinkPlayers _0811FB24: movs r5, 0 ldr r4, _0811FC08 bl GetMultiplayerId movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 _0811FB34: lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r4 ldrb r4, [r1, 0x13] ldr r6, _0811FC0C ldrb r1, [r6] adds r0, r4, 0 bl sub_8031AF4 ldrb r0, [r6] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl GetMonSpriteTemplate_803C5A0 ldr r0, _0811FC10 mov r8, r0 lsls r5, 16 movs r0, 0xA0 lsls r0, 15 adds r5, r0 asrs r5, 16 ldr r0, _0811FC14 lsls r4, 2 adds r4, r0 ldrb r0, [r4] movs r4, 0x8 subs r4, r0 lsls r4, 18 movs r0, 0xA0 lsls r0, 15 adds r4, r0 asrs r4, 16 ldrb r0, [r6] bl sub_8079E90 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 mov r0, r8 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite ldr r5, _0811FC18 ldrb r1, [r6] adds r1, r5 strb r0, [r1] ldr r4, _0811FC1C ldrb r3, [r6] adds r0, r3, r5 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 lsls r3, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0xF0 strh r1, [r0, 0x24] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _0811FC20 strh r1, [r0, 0x2E] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, 0x1C adds r0, r4 ldr r1, _0811FC24 str r1, [r0] ldr r1, _0811FC28 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _0811FC2C str r1, [r0] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811FC08: .4byte gLinkPlayers _0811FC0C: .4byte gUnknown_02024A60 _0811FC10: .4byte gUnknown_02024E8C _0811FC14: .4byte gTrainerBackPicCoords _0811FC18: .4byte gUnknown_02024BE0 _0811FC1C: .4byte gSprites _0811FC20: .4byte 0x0000fffe _0811FC24: .4byte sub_80313A0 _0811FC28: .4byte gUnknown_03004330 _0811FC2C: .4byte sub_811DAE4 thumb_func_end sub_811FAE4 thumb_func_start sub_811FC30 sub_811FC30: @ 811FC30 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_811FC30 thumb_func_start sub_811FC3C sub_811FC3C: @ 811FC3C push {r4-r6,lr} ldr r6, _0811FCC8 ldr r4, _0811FCCC ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _0811FCD0 adds r0, r5 bl oamt_add_pos2_onto_pos1 ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x23 strh r1, [r0, 0x2E] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _0811FCD4 strh r1, [r0, 0x32] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r1, [r0, 0x22] strh r1, [r0, 0x36] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, _0811FCD8 str r1, [r0] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _0811FCDC bl oamt_set_x3A_32 ldr r1, _0811FCE0 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _0811FCE4 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811FCC8: .4byte gUnknown_02024BE0 _0811FCCC: .4byte gUnknown_02024A60 _0811FCD0: .4byte gSprites _0811FCD4: .4byte 0x0000ffd8 _0811FCD8: .4byte sub_8078B34 _0811FCDC: .4byte SpriteCallbackDummy _0811FCE0: .4byte gUnknown_03004330 _0811FCE4: .4byte sub_811DB1C thumb_func_end sub_811FC3C thumb_func_start sub_811FCE8 sub_811FCE8: @ 811FCE8 push {r4,r5,lr} ldr r5, _0811FD2C ldrb r2, [r5] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r4, _0811FD30 adds r3, r0, r4 ldrb r0, [r3, 0x4] cmp r0, 0 bne _0811FD34 lsls r0, r2, 2 adds r1, r4, 0 subs r1, 0x10 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0811FD1A adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _0811FD1A: ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r0, [r1, 0x4] adds r0, 0x1 strb r0, [r1, 0x4] b _0811FDAA .align 2, 0 _0811FD2C: .4byte gUnknown_02024A60 _0811FD30: .4byte 0x02017810 _0811FD34: ldrb r1, [r3] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0811FDAA strb r4, [r3, 0x4] ldr r2, _0811FDB0 ldrb r1, [r5] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, _0811FDB4 adds r0, r2 bl sub_80324F8 movs r1, 0x40 negs r1, r1 movs r0, 0x10 bl PlaySE12WithPanning ldr r2, _0811FDB8 ldr r3, _0811FDBC ldrb r0, [r5] adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r4, [r0, 0x30] ldrb r0, [r5] adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x5 strh r1, [r0, 0x32] ldrb r0, [r5] adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _0811FDC0 str r1, [r0] ldr r1, _0811FDC4 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _0811FDC8 str r1, [r0] _0811FDAA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811FDB0: .4byte gUnknown_02024A6A _0811FDB4: .4byte gPlayerParty _0811FDB8: .4byte gSprites _0811FDBC: .4byte gUnknown_02024BE0 _0811FDC0: .4byte sub_80105EC _0811FDC4: .4byte gUnknown_03004330 _0811FDC8: .4byte sub_811DE98 thumb_func_end sub_811FCE8 thumb_func_start sub_811FDCC sub_811FDCC: @ 811FDCC push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_811FDCC thumb_func_start sub_811FDD8 sub_811FDD8: @ 811FDD8 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_811FDD8 thumb_func_start sub_811FDE4 sub_811FDE4: @ 811FDE4 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_811FDE4 thumb_func_start sub_811FDF0 sub_811FDF0: @ 811FDF0 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_811FDF0 thumb_func_start sub_811FDFC sub_811FDFC: @ 811FDFC push {r4-r6,lr} ldr r6, _0811FEE0 ldrb r0, [r6] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 beq _0811FE0E b _0811FF1E _0811FE0E: ldr r0, _0811FEE4 mov r12, r0 ldrb r2, [r6] lsls r2, 9 adds r0, 0x1 adds r0, r2, r0 ldrb r0, [r0] mov r1, r12 adds r1, 0x2 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 ldr r5, _0811FEE8 mov r1, r12 adds r1, 0x3 adds r2, r1 ldrb r1, [r2] strb r1, [r5] ldr r4, _0811FEEC ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x4 adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0x5 adds r2, r1 ldrb r1, [r2] lsls r1, 8 orrs r3, r1 strh r3, [r4] ldr r4, _0811FEF0 ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x6 adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0x7 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 8 orrs r3, r1 mov r1, r12 adds r1, 0x8 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 16 orrs r3, r1 mov r1, r12 adds r1, 0x9 adds r2, r1 ldrb r1, [r2] lsls r1, 24 orrs r3, r1 str r3, [r4] ldr r3, _0811FEF4 ldrb r1, [r6] lsls r1, 9 mov r2, r12 adds r2, 0xA adds r1, r2 ldrb r1, [r1] strb r1, [r3] ldr r4, _0811FEF8 ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0xC adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0xD adds r2, r1 ldrb r1, [r2] lsls r1, 8 orrs r3, r1 strh r3, [r4] ldr r3, _0811FEFC ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x10 adds r2, r1 str r2, [r3] ldr r3, _0811FF00 ldrb r1, [r6] lsls r1, 2 adds r1, r3 ldr r2, [r2] str r2, [r1] ldrb r1, [r5] bl sub_8031720 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _0811FF04 bl dp01_tbl3_exec_completed b _0811FF1E .align 2, 0 _0811FEE0: .4byte gUnknown_02024A60 _0811FEE4: .4byte gUnknown_02023A60 _0811FEE8: .4byte gUnknown_0202F7C4 _0811FEEC: .4byte gUnknown_0202F7BC _0811FEF0: .4byte gUnknown_0202F7B8 _0811FEF4: .4byte gUnknown_0202F7BE _0811FEF8: .4byte gUnknown_0202F7C0 _0811FEFC: .4byte gUnknown_0202F7B4 _0811FF00: .4byte gUnknown_02024E70 _0811FF04: ldrb r1, [r6] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0811FF24 adds r0, r1 strb r2, [r0, 0x4] ldr r1, _0811FF28 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _0811FF2C str r1, [r0] _0811FF1E: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811FF24: .4byte 0x02017810 _0811FF28: .4byte gUnknown_03004330 _0811FF2C: .4byte sub_811FF30 thumb_func_end sub_811FDFC thumb_func_start sub_811FF30 sub_811FF30: @ 811FF30 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r2, _0811FF74 ldr r5, _0811FF78 ldrb r3, [r5] lsls r1, r3, 9 adds r0, r2, 0x1 mov r9, r0 adds r0, r1, r0 ldrb r4, [r0] adds r6, r2, 0x2 mov r8, r6 adds r0, r1, r6 ldrb r0, [r0] lsls r0, 8 orrs r4, r0 adds r2, 0xB adds r1, r2 ldrb r7, [r1] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 ldr r6, _0811FF7C adds r0, r6 ldrb r2, [r0, 0x4] cmp r2, 0x1 beq _0811FFBE cmp r2, 0x1 bgt _0811FF80 cmp r2, 0 beq _0811FF8A b _08120088 .align 2, 0 _0811FF74: .4byte gUnknown_02023A60 _0811FF78: .4byte gUnknown_02024A60 _0811FF7C: .4byte 0x02017810 _0811FF80: cmp r2, 0x2 beq _0811FFE4 cmp r2, 0x3 beq _08120050 b _08120088 _0811FF8A: lsls r1, r3, 2 adds r0, r6, 0 subs r0, 0x10 adds r1, r0 ldrb r2, [r1] movs r0, 0xC ands r0, r2 cmp r0, 0x4 bne _0811FFAE movs r0, 0x8 orrs r0, r2 strb r0, [r1] ldrb r2, [r5] adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _0811FFAE: ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 movs r0, 0x1 strb r0, [r1, 0x4] b _08120088 _0811FFBE: ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08120088 movs r0, 0 bl sub_80326EC adds r0, r4, 0 bl move_anim_start_t1 ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 movs r0, 0x2 strb r0, [r1, 0x4] b _08120088 _0811FFE4: ldr r0, _08120040 ldr r0, [r0] bl _call_via_r0 ldr r0, _08120044 ldrb r0, [r0] cmp r0, 0 bne _08120088 movs r0, 0x1 bl sub_80326EC ldrb r2, [r5] lsls r0, r2, 2 adds r4, r6, 0 subs r4, 0x10 adds r0, r4 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0812002C cmp r7, 0x1 bhi _0812002C adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x6 bl move_anim_start_t4 ldrb r0, [r5] lsls r0, 2 adds r0, r4 ldrb r2, [r0] movs r1, 0x9 negs r1, r1 ands r1, r2 strb r1, [r0] _0812002C: ldr r0, _08120048 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0812004C adds r0, r1 movs r1, 0x3 strb r1, [r0, 0x4] b _08120088 .align 2, 0 _08120040: .4byte gUnknown_0202F7AC _08120044: .4byte gUnknown_0202F7B1 _08120048: .4byte gUnknown_02024A60 _0812004C: .4byte 0x02017810 _08120050: ldrb r1, [r0] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08120088 bl sub_8031F24 ldrb r0, [r5] lsls r2, r0, 9 mov r3, r9 adds r1, r2, r3 ldrb r1, [r1] add r2, r8 ldrb r2, [r2] lsls r2, 8 orrs r1, r2 bl sub_80324BC ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 strb r4, [r0, 0x4] bl dp01_tbl3_exec_completed _08120088: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_811FF30 thumb_func_start sub_8120094 sub_8120094: @ 8120094 push {r4,lr} sub sp, 0x4 ldr r0, _081200D8 movs r1, 0 strh r1, [r0] ldr r0, _081200DC strh r1, [r0] ldr r4, _081200E0 ldrb r0, [r4] lsls r0, 9 ldr r1, _081200E4 adds r0, r1 ldrh r0, [r0] bl sub_8120AA8 ldr r0, _081200E8 ldr r1, _081200EC movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r1, _081200F0 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _081200F4 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _081200D8: .4byte gUnknown_030042A4 _081200DC: .4byte gUnknown_030042A0 _081200E0: .4byte gUnknown_02024A60 _081200E4: .4byte gUnknown_02023A62 _081200E8: .4byte gUnknown_03004210 _081200EC: .4byte gUnknown_020238CC _081200F0: .4byte gUnknown_03004330 _081200F4: .4byte sub_811DFA0 thumb_func_end sub_8120094 thumb_func_start sub_81200F8 sub_81200F8: @ 81200F8 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_81200F8 thumb_func_start sub_8120104 sub_8120104: @ 8120104 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120104 thumb_func_start sub_8120110 sub_8120110: @ 8120110 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120110 thumb_func_start sub_812011C sub_812011C: @ 812011C push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_812011C thumb_func_start sub_8120128 sub_8120128: @ 8120128 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120128 thumb_func_start sub_8120134 sub_8120134: @ 8120134 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120134 thumb_func_start sub_8120140 sub_8120140: @ 8120140 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120140 thumb_func_start sub_812014C sub_812014C: @ 812014C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 movs r0, 0 bl load_gfxc_health_bar ldr r3, _081201C4 ldr r0, _081201C8 mov r9, r0 ldrb r4, [r0] lsls r2, r4, 9 adds r0, r3, 0x2 adds r0, r2, r0 ldrb r1, [r0] adds r3, 0x3 adds r2, r3 ldrb r0, [r2] lsls r0, 8 orrs r1, r0 lsls r1, 16 asrs r7, r1, 16 ldr r0, _081201CC cmp r7, r0 beq _081201DC ldr r6, _081201D0 lsls r0, r4, 1 adds r0, r6 ldrh r0, [r0] movs r5, 0x64 muls r0, r5 ldr r4, _081201D4 adds r0, r4 movs r1, 0x3A bl GetMonData mov r8, r0 mov r1, r9 ldrb r0, [r1] lsls r0, 1 adds r0, r6 ldrh r0, [r0] muls r0, r5 adds r0, r4 movs r1, 0x39 bl GetMonData adds r3, r0, 0 mov r1, r9 ldrb r0, [r1] ldr r1, _081201D8 adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] mov r2, r8 bl sub_8043D84 b _08120206 .align 2, 0 _081201C4: .4byte gUnknown_02023A60 _081201C8: .4byte gUnknown_02024A60 _081201CC: .4byte 0x00007fff _081201D0: .4byte gUnknown_02024A6A _081201D4: .4byte gPlayerParty _081201D8: .4byte gUnknown_03004340 _081201DC: ldr r1, _08120224 lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08120228 adds r0, r1 movs r1, 0x3A bl GetMonData adds r2, r0, 0 mov r1, r9 ldrb r0, [r1] ldr r1, _0812022C adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] movs r3, 0 bl sub_8043D84 _08120206: ldr r1, _08120230 ldr r0, _08120234 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _08120238 str r1, [r0] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08120224: .4byte gUnknown_02024A6A _08120228: .4byte gPlayerParty _0812022C: .4byte gUnknown_03004340 _08120230: .4byte gUnknown_03004330 _08120234: .4byte gUnknown_02024A60 _08120238: .4byte bx_t3_healthbar_update thumb_func_end sub_812014C thumb_func_start sub_812023C sub_812023C: @ 812023C push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_812023C thumb_func_start sub_8120248 sub_8120248: @ 8120248 push {r4,lr} ldr r4, _081202A0 ldrb r0, [r4] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _08120298 ldr r0, _081202A4 ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] ldr r2, _081202A8 lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _081202AC adds r1, r2 movs r2, 0x9 bl sub_8045A5C ldrb r0, [r4] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r0, _081202B0 adds r1, r0 ldrb r2, [r1] movs r0, 0x11 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r1, _081202B4 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _081202B8 str r1, [r0] _08120298: pop {r4} pop {r0} bx r0 .align 2, 0 _081202A0: .4byte gUnknown_02024A60 _081202A4: .4byte gUnknown_03004340 _081202A8: .4byte gUnknown_02024A6A _081202AC: .4byte gPlayerParty _081202B0: .4byte 0x02017810 _081202B4: .4byte gUnknown_03004330 _081202B8: .4byte sub_811E38C thumb_func_end sub_8120248 thumb_func_start sub_81202BC sub_81202BC: @ 81202BC push {r4,r5,lr} ldr r5, _08120314 ldrb r0, [r5] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _0812030C ldr r4, _08120318 ldrb r3, [r5] lsls r3, 9 adds r0, r4, 0x1 adds r0, r3, r0 ldrb r0, [r0] adds r1, r4, 0x2 adds r1, r3, r1 ldrb r1, [r1] adds r2, r4, 0x3 adds r2, r3, r2 ldrb r2, [r2] lsls r2, 8 orrs r1, r2 adds r2, r4, 0x4 adds r2, r3, r2 ldrb r2, [r2] lsls r2, 16 orrs r1, r2 adds r4, 0x5 adds r3, r4 ldrb r2, [r3] lsls r2, 24 orrs r1, r2 bl move_anim_start_t2_for_situation ldr r1, _0812031C ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _08120320 str r1, [r0] _0812030C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08120314: .4byte gUnknown_02024A60 _08120318: .4byte gUnknown_02023A60 _0812031C: .4byte gUnknown_03004330 _08120320: .4byte sub_811E38C thumb_func_end sub_81202BC thumb_func_start sub_8120324 sub_8120324: @ 8120324 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120324 thumb_func_start sub_8120330 sub_8120330: @ 8120330 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120330 thumb_func_start sub_812033C sub_812033C: @ 812033C push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_812033C thumb_func_start sub_8120348 sub_8120348: @ 8120348 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120348 thumb_func_start sub_8120354 sub_8120354: @ 8120354 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120354 thumb_func_start sub_8120360 sub_8120360: @ 8120360 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120360 thumb_func_start sub_812036C sub_812036C: @ 812036C push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_812036C thumb_func_start sub_8120378 sub_8120378: @ 8120378 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120378 thumb_func_start sub_8120384 sub_8120384: @ 8120384 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120384 thumb_func_start sub_8120390 sub_8120390: @ 8120390 push {lr} ldr r2, _081203A8 ldrb r1, [r2] movs r0, 0x80 negs r0, r0 ands r0, r1 strb r0, [r2] bl dp01_tbl3_exec_completed pop {r0} bx r0 .align 2, 0 _081203A8: .4byte gUnknown_020238C8 thumb_func_end sub_8120390 thumb_func_start sub_81203AC sub_81203AC: @ 81203AC push {lr} ldr r3, _081203D8 ldr r1, _081203DC ldr r0, _081203E0 ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] movs r1, 0x7F ands r1, r0 ldrb r2, [r3] movs r0, 0x80 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] bl dp01_tbl3_exec_completed pop {r0} bx r0 .align 2, 0 _081203D8: .4byte gUnknown_020238C8 _081203DC: .4byte gUnknown_02023A60 _081203E0: .4byte gUnknown_02024A60 thumb_func_end sub_81203AC thumb_func_start sub_81203E4 sub_81203E4: @ 81203E4 push {lr} ldr r2, _081203F8 ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] bl dp01_tbl3_exec_completed pop {r0} bx r0 .align 2, 0 _081203F8: .4byte gUnknown_020238C8 thumb_func_end sub_81203E4 thumb_func_start sub_81203FC sub_81203FC: @ 81203FC push {lr} ldr r3, _08120420 ldr r1, [r3] lsls r1, 24 lsrs r1, 31 movs r0, 0x1 eors r1, r0 lsls r1, 7 ldrb r2, [r3] movs r0, 0x7F ands r0, r2 orrs r0, r1 strb r0, [r3] bl dp01_tbl3_exec_completed pop {r0} bx r0 .align 2, 0 _08120420: .4byte gUnknown_020238C8 thumb_func_end sub_81203FC thumb_func_start dp01t_29_3_blink dp01t_29_3_blink: @ 8120424 push {r4,lr} ldr r3, _0812044C ldr r2, _08120450 ldr r4, _08120454 ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r0, [r0] lsls r0, 29 cmp r0, 0 bge _08120458 bl dp01_tbl3_exec_completed b _08120482 .align 2, 0 _0812044C: .4byte gSprites _08120450: .4byte gUnknown_02024BE0 _08120454: .4byte gUnknown_02024A60 _08120458: ldr r1, _08120488 movs r0, 0x1 strb r0, [r1] ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0 strh r1, [r0, 0x30] ldrb r0, [r4] bl sub_8047858 ldr r1, _0812048C ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08120490 str r1, [r0] _08120482: pop {r4} pop {r0} bx r0 .align 2, 0 _08120488: .4byte gUnknown_02024E6D _0812048C: .4byte gUnknown_03004330 _08120490: .4byte bx_blink_t3 thumb_func_end dp01t_29_3_blink thumb_func_start sub_8120494 sub_8120494: @ 8120494 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120494 thumb_func_start sub_81204A0 sub_81204A0: @ 81204A0 push {r4,lr} ldr r4, _081204DC ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 movs r3, 0x3F cmp r0, 0 bne _081204B4 movs r3, 0xC0 _081204B4: ldr r2, _081204E0 ldrb r1, [r4] lsls r1, 9 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r0, [r0] adds r2, 0x2 adds r1, r2 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 lsls r1, r3, 24 asrs r1, 24 bl PlaySE12WithPanning bl dp01_tbl3_exec_completed pop {r4} pop {r0} bx r0 .align 2, 0 _081204DC: .4byte gUnknown_02024A60 _081204E0: .4byte gUnknown_02023A60 thumb_func_end sub_81204A0 thumb_func_start sub_81204E4 sub_81204E4: @ 81204E4 push {lr} ldr r2, _0812050C ldr r0, _08120510 ldrb r1, [r0] lsls r1, 9 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r0, [r0] adds r2, 0x2 adds r1, r2 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 bl PlayFanfare bl dp01_tbl3_exec_completed pop {r0} bx r0 .align 2, 0 _0812050C: .4byte gUnknown_02023A60 _08120510: .4byte gUnknown_02024A60 thumb_func_end sub_81204E4 thumb_func_start sub_8120514 sub_8120514: @ 8120514 push {lr} ldr r1, _08120548 ldr r0, _0812054C ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08120550 adds r0, r1 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 movs r1, 0x19 negs r1, r1 movs r2, 0x5 bl PlayCry3 bl dp01_tbl3_exec_completed pop {r0} bx r0 .align 2, 0 _08120548: .4byte gUnknown_02024A6A _0812054C: .4byte gUnknown_02024A60 _08120550: .4byte gPlayerParty thumb_func_end sub_8120514 thumb_func_start dp01t_2E_3_battle_intro dp01t_2E_3_battle_intro: @ 8120554 push {lr} ldr r1, _0812057C ldr r0, _08120580 ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] bl sub_80E43C0 ldr r2, _08120584 ldrh r0, [r2] movs r1, 0x1 orrs r0, r1 strh r0, [r2] bl dp01_tbl3_exec_completed pop {r0} bx r0 .align 2, 0 _0812057C: .4byte gUnknown_02023A60 _08120580: .4byte gUnknown_02024A60 _08120584: .4byte gUnknown_02024DE8 thumb_func_end dp01t_2E_3_battle_intro thumb_func_start sub_8120588 sub_8120588: @ 8120588 push {r4-r7,lr} mov r7, r8 push {r7} ldr r6, _081206DC ldr r7, _081206E0 ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _081206E4 adds r0, r5 bl oamt_add_pos2_onto_pos1 ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x32 strh r1, [r0, 0x2E] ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _081206E8 strh r1, [r0, 0x32] ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r1, [r0, 0x22] strh r1, [r0, 0x36] ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, _081206EC str r1, [r0] ldrb r2, [r7] adds r0, r2, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x38] ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _081206F0 bl oamt_set_x3A_32 ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x1 bl StartSpriteAnim ldr r0, _081206F4 bl AllocSpritePalette adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _081206F8 mov r8, r0 ldrb r0, [r7] bl sub_803FC34 ldr r2, _081206FC lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x13] lsls r0, 3 add r0, r8 ldr r0, [r0] lsls r4, 4 movs r2, 0x80 lsls r2, 1 adds r1, r4, r2 movs r2, 0x20 bl LoadCompressedPalette ldrb r0, [r7] adds r0, r6 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r4 strb r0, [r1, 0x5] ldr r0, _08120700 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r4, _08120704 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r4 ldrb r0, [r7] strh r0, [r1, 0x8] ldrb r3, [r7] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 ldr r2, _08120708 adds r0, r2 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _081206BA ldr r0, _0812070C adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 ldr r1, _08120710 str r1, [r0] _081206BA: adds r2, 0x30 ldrb r0, [r2, 0x9] movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x9] ldr r1, _08120714 ldrb r0, [r7] lsls r0, 2 adds r0, r1 ldr r1, _08120718 str r1, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081206DC: .4byte gUnknown_02024BE0 _081206E0: .4byte gUnknown_02024A60 _081206E4: .4byte gSprites _081206E8: .4byte 0x0000ffd8 _081206EC: .4byte sub_8078B34 _081206F0: .4byte sub_8030E38 _081206F4: .4byte 0x0000d6f9 _081206F8: .4byte gTrainerBackPicPaletteTable _081206FC: .4byte gLinkPlayers _08120700: .4byte sub_812071C _08120704: .4byte gTasks _08120708: .4byte 0x02017810 _0812070C: .4byte gUnknown_02024E68 _08120710: .4byte sub_8044CA0 _08120714: .4byte gUnknown_03004330 _08120718: .4byte nullsub_74 thumb_func_end sub_8120588 thumb_func_start sub_812071C sub_812071C: @ 812071C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r1, _08120744 lsls r0, 2 add r0, r8 lsls r0, 3 adds r1, r0, r1 ldrh r2, [r1, 0xA] movs r3, 0xA ldrsh r0, [r1, r3] cmp r0, 0x17 bgt _08120748 adds r0, r2, 0x1 strh r0, [r1, 0xA] b _08120804 .align 2, 0 _08120744: .4byte gTasks _08120748: ldr r7, _08120788 ldrb r0, [r7] mov r9, r0 ldrh r0, [r1, 0x8] strb r0, [r7] bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _08120768 ldr r0, _0812078C ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08120798 _08120768: ldr r0, _08120790 ldrb r1, [r7] lsls r2, r1, 9 adds r0, 0x1 adds r2, r0 ldr r0, _08120794 lsls r1, 1 adds r1, r0 ldrh r0, [r1] strb r0, [r2] ldrb r0, [r7] movs r1, 0 bl sub_811F864 b _081207EC .align 2, 0 _08120788: .4byte gUnknown_02024A60 _0812078C: .4byte gUnknown_020239F8 _08120790: .4byte gUnknown_02023A60 _08120794: .4byte gUnknown_02024A6A _08120798: ldr r4, _08120810 ldrb r0, [r7] lsls r1, r0, 9 adds r4, 0x1 adds r1, r4 ldr r5, _08120814 lsls r0, 1 adds r0, r5 ldrh r0, [r0] strb r0, [r1] ldrb r0, [r7] movs r1, 0 bl sub_811F864 ldrb r0, [r7] movs r6, 0x2 eors r0, r6 strb r0, [r7] ldrb r0, [r7] lsls r1, r0, 9 adds r1, r4 lsls r0, 1 adds r0, r5 ldrh r0, [r0] strb r0, [r1] ldrb r1, [r7] lsls r0, r1, 1 adds r0, r5 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, _08120818 adds r0, r2 bl sub_80318FC ldrb r0, [r7] movs r1, 0 bl sub_811F864 ldrb r0, [r7] eors r0, r6 strb r0, [r7] _081207EC: ldr r1, _0812081C ldr r2, _08120820 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _08120824 str r1, [r0] mov r3, r9 strb r3, [r2] mov r0, r8 bl DestroyTask _08120804: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08120810: .4byte gUnknown_02023A60 _08120814: .4byte gUnknown_02024A6A _08120818: .4byte gPlayerParty _0812081C: .4byte gUnknown_03004330 _08120820: .4byte gUnknown_02024A60 _08120824: .4byte sub_811DCA0 thumb_func_end sub_812071C thumb_func_start dp01t_30_3_80EB11C dp01t_30_3_80EB11C: @ 8120828 push {r4-r6,lr} ldr r1, _08120850 ldr r0, _08120854 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08120858 adds r0, r2, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08120858 bl dp01_tbl3_exec_completed b _081208C0 .align 2, 0 _08120850: .4byte gUnknown_02023A60 _08120854: .4byte gUnknown_02024A60 _08120858: ldr r5, _081208C8 ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r6, _081208CC adds r0, r6 ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] ldrb r0, [r5] lsls r3, r0, 9 ldr r4, _081208D0 adds r1, r3, r4 subs r2, r4, 0x3 adds r2, r3, r2 ldrb r2, [r2] subs r4, 0x2 adds r3, r4 ldrb r3, [r3] bl sub_8044804 ldr r2, _081208D4 ldrb r1, [r5] adds r1, r2 movs r2, 0 strb r0, [r1] ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 strb r2, [r0, 0x5] ldrb r1, [r5] lsls r0, r1, 9 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _081208B4 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x5D strb r1, [r0, 0x5] _081208B4: ldr r0, _081208D8 ldrb r1, [r5] lsls r1, 2 adds r1, r0 ldr r0, _081208DC str r0, [r1] _081208C0: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081208C8: .4byte gUnknown_02024A60 _081208CC: .4byte 0x02017810 _081208D0: .4byte gUnknown_02023A64 _081208D4: .4byte gUnknown_02024E68 _081208D8: .4byte gUnknown_03004330 _081208DC: .4byte sub_81208E0 thumb_func_end dp01t_30_3_80EB11C thumb_func_start sub_81208E0 sub_81208E0: @ 81208E0 push {r4,lr} ldr r4, _08120918 ldrb r1, [r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r3, _0812091C adds r0, r3 ldrb r1, [r0, 0x5] adds r2, r1, 0x1 strb r2, [r0, 0x5] lsls r1, 24 lsrs r1, 24 cmp r1, 0x5C bls _08120910 ldrb r0, [r4] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r3 movs r0, 0 strb r0, [r1, 0x5] bl dp01_tbl3_exec_completed _08120910: pop {r4} pop {r0} bx r0 .align 2, 0 _08120918: .4byte gUnknown_02024A60 _0812091C: .4byte 0x02017810 thumb_func_end sub_81208E0 thumb_func_start sub_8120920 sub_8120920: @ 8120920 push {lr} ldr r0, _08120958 ldrb r3, [r0] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 ldr r1, _0812095C adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0812094E ldr r2, _08120960 ldr r0, _08120964 adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, _08120968 str r1, [r0] _0812094E: bl dp01_tbl3_exec_completed pop {r0} bx r0 .align 2, 0 _08120958: .4byte gUnknown_02024A60 _0812095C: .4byte 0x02017810 _08120960: .4byte gTasks _08120964: .4byte gUnknown_02024E68 _08120968: .4byte sub_8044CA0 thumb_func_end sub_8120920 thumb_func_start sub_812096C sub_812096C: @ 812096C push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_812096C thumb_func_start sub_8120978 sub_8120978: @ 8120978 push {r4,lr} ldr r4, _081209C8 ldrb r0, [r4] bl sub_8078874 lsls r0, 24 cmp r0, 0 beq _081209BE ldr r3, _081209CC ldr r0, _081209D0 ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r3 ldr r0, _081209D4 lsls r1, 9 adds r0, 0x1 adds r1, r0 adds r2, 0x3E movs r0, 0x1 ldrb r1, [r1] ands r1, r0 lsls r1, 2 ldrb r3, [r2] movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] ldrb r0, [r4] bl sub_8031F88 _081209BE: bl dp01_tbl3_exec_completed pop {r4} pop {r0} bx r0 .align 2, 0 _081209C8: .4byte gUnknown_02024A60 _081209CC: .4byte gSprites _081209D0: .4byte gUnknown_02024BE0 _081209D4: .4byte gUnknown_02023A60 thumb_func_end sub_8120978 thumb_func_start sub_81209D8 sub_81209D8: @ 81209D8 push {r4-r6,lr} sub sp, 0x4 ldr r6, _08120A1C ldrb r0, [r6] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _08120A30 ldr r5, _08120A20 ldrb r2, [r6] lsls r1, r2, 9 adds r0, r5, 0x1 adds r0, r1, r0 ldrb r3, [r0] adds r0, r5, 0x2 adds r0, r1, r0 ldrb r4, [r0] adds r5, 0x3 adds r1, r5 ldrb r0, [r1] lsls r0, 8 orrs r4, r0 str r4, [sp] adds r0, r2, 0 adds r1, r2, 0 bl move_anim_start_t3 lsls r0, 24 cmp r0, 0 beq _08120A24 bl dp01_tbl3_exec_completed b _08120A30 .align 2, 0 _08120A1C: .4byte gUnknown_02024A60 _08120A20: .4byte gUnknown_02023A60 _08120A24: ldr r0, _08120A38 ldrb r1, [r6] lsls r1, 2 adds r1, r0 ldr r0, _08120A3C str r0, [r1] _08120A30: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08120A38: .4byte gUnknown_03004330 _08120A3C: .4byte sub_811E3B8 thumb_func_end sub_81209D8 thumb_func_start sub_8120A40 sub_8120A40: @ 8120A40 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120A40 thumb_func_start sub_8120A4C sub_8120A4C: @ 8120A4C push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120A4C thumb_func_start sub_8120A58 sub_8120A58: @ 8120A58 push {r4,lr} ldr r2, _08120A90 ldr r1, _08120A94 ldr r4, _08120A98 ldrb r0, [r4] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] strb r0, [r2] movs r0, 0x5 bl FadeOutMapMusic movs r0, 0x3 bl BeginFastPaletteFade bl dp01_tbl3_exec_completed ldr r1, _08120A9C ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08120AA0 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08120A90: .4byte gUnknown_02024D26 _08120A94: .4byte gUnknown_02023A60 _08120A98: .4byte gUnknown_02024A60 _08120A9C: .4byte gUnknown_03004330 _08120AA0: .4byte sub_811E29C thumb_func_end sub_8120A58 thumb_func_start nullsub_75 nullsub_75: @ 8120AA4 bx lr thumb_func_end nullsub_75 thumb_func_start sub_8120AA8 sub_8120AA8: @ 8120AA8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 16 lsrs r7, r0, 16 movs r6, 0 ldr r5, _08120B70 ldr r4, _08120B74 ldrb r1, [r4] lsls r1, 9 ldr r0, _08120B78 adds r1, r0 str r1, [r5] ldr r2, _08120B7C ldrh r0, [r1, 0x4] strh r0, [r2] ldr r2, _08120B80 ldrb r0, [r1, 0x6] strb r0, [r2] ldr r3, _08120B84 ldrb r0, [r1, 0x7] mov r8, r0 ldr r2, _08120B88 adds r0, r3, r2 mov r2, r8 strb r2, [r0] ldrb r0, [r1, 0x8] mov r8, r0 ldr r2, _08120B8C adds r0, r3, r2 mov r2, r8 strb r2, [r0] ldrb r0, [r1, 0x9] mov r8, r0 ldr r2, _08120B90 adds r0, r3, r2 mov r2, r8 strb r2, [r0] ldr r2, _08120B94 ldrb r0, [r1, 0xA] strb r0, [r2] ldrb r1, [r1, 0xB] ldr r2, _08120B98 adds r0, r3, r2 strb r1, [r0] movs r2, 0 mov r9, r3 ldr r3, _08120B9C mov r10, r3 ldr r3, _08120BA0 _08120B10: adds r0, r2, r3 ldr r1, [r5] adds r1, 0xC adds r1, r2 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x3 ble _08120B10 movs r2, 0 ldr r0, _08120B9C mov r8, r0 ldr r3, _08120B70 ldr r1, _08120BA4 mov r12, r1 ldr r5, _08120BA8 _08120B30: mov r0, r8 adds r1, r2, r0 ldr r0, [r3] adds r0, 0x10 adds r0, r2 ldrb r0, [r0] strb r0, [r1] mov r0, r12 adds r1, r2, r0 ldr r0, [r3] adds r0, 0x20 adds r0, r2 ldrb r0, [r0] strb r0, [r1] adds r1, r2, r5 ldr r0, [r3] adds r0, 0x30 adds r0, r2 ldrb r0, [r0] strb r0, [r1] adds r2, 0x1 cmp r2, 0xF ble _08120B30 cmp r7, 0x5 bls _08120B64 b _08120F50 _08120B64: lsls r0, r7, 2 ldr r1, _08120BAC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08120B70: .4byte gUnknown_02039270 _08120B74: .4byte gUnknown_02024A60 _08120B78: .4byte gUnknown_02023A64 _08120B7C: .4byte gUnknown_02024C04 _08120B80: .4byte byte_2024C06 _08120B84: .4byte 0x02000000 _08120B88: .4byte 0x00016003 _08120B8C: .4byte 0x0001605e _08120B90: .4byte 0x000160c1 _08120B94: .4byte gUnknown_02024C0B _08120B98: .4byte 0x000160a0 _08120B9C: .4byte gUnknown_030041C0 _08120BA0: .4byte gUnknown_0203926C _08120BA4: .4byte gUnknown_03004290 _08120BA8: .4byte gUnknown_030042B0 _08120BAC: .4byte _08120BB0 .align 2, 0 _08120BB0: .4byte _08120BC8 .4byte _08120C40 .4byte _08120CCC .4byte _08120D5C .4byte _08120DE8 .4byte _08120E50 _08120BC8: ldr r0, _08120BEC ldrh r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08120C00 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08120BF8 movs r0, 0x40 ands r0, r1 ldr r6, _08120BF0 cmp r0, 0 bne _08120BE8 b _08120F70 _08120BE8: ldr r6, _08120BF4 b _08120F70 .align 2, 0 _08120BEC: .4byte gUnknown_020239F8 _08120BF0: .4byte gUnknown_084005C7 _08120BF4: .4byte gUnknown_084005DB _08120BF8: ldr r6, _08120BFC b _08120F70 .align 2, 0 _08120BFC: .4byte gUnknown_084005AA _08120C00: movs r0, 0x80 lsls r0, 6 ands r0, r1 cmp r0, 0 beq _08120C14 ldr r6, _08120C10 b _08120F70 .align 2, 0 _08120C10: .4byte gUnknown_08400568 _08120C14: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08120C24 ldr r6, _08120C20 b _08120F70 .align 2, 0 _08120C20: .4byte gUnknown_08400590 _08120C24: movs r0, 0x80 lsls r0, 2 ands r0, r1 ldr r6, _08120C38 cmp r0, 0 bne _08120C32 b _08120F70 _08120C32: ldr r6, _08120C3C b _08120F70 .align 2, 0 _08120C38: .4byte gUnknown_08400555 _08120C3C: .4byte gUnknown_0840057B _08120C40: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08120C7C ldr r0, _08120C68 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08120C74 movs r0, 0x40 ands r0, r1 ldr r6, _08120C6C cmp r0, 0 bne _08120C64 b _08120F70 _08120C64: ldr r6, _08120C70 b _08120F70 .align 2, 0 _08120C68: .4byte gUnknown_020239F8 _08120C6C: .4byte gUnknown_084006A4 _08120C70: .4byte gUnknown_084006F1 _08120C74: ldr r6, _08120C78 b _08120F70 .align 2, 0 _08120C78: .4byte gUnknown_0840069C _08120C7C: ldr r0, _08120C94 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08120CB4 movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08120C9C ldr r6, _08120C98 b _08120F70 .align 2, 0 _08120C94: .4byte gUnknown_020239F8 _08120C98: .4byte gUnknown_0840065C _08120C9C: movs r0, 0x2 ands r0, r1 ldr r6, _08120CAC cmp r0, 0 bne _08120CA8 b _08120F70 _08120CA8: ldr r6, _08120CB0 b _08120F70 .align 2, 0 _08120CAC: .4byte gUnknown_08400608 _08120CB0: .4byte gUnknown_08400645 _08120CB4: movs r0, 0x2 ands r0, r1 ldr r6, _08120CC4 cmp r0, 0 bne _08120CC0 b _08120F70 _08120CC0: ldr r6, _08120CC8 b _08120F70 .align 2, 0 _08120CC4: .4byte gUnknown_084005F5 _08120CC8: .4byte gUnknown_08400635 _08120CCC: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08120D24 ldr r0, _08120CE8 ldr r1, _08120CEC adds r0, r1 ldrb r2, [r0] cmp r2, 0 bne _08120CF4 ldr r6, _08120CF0 b _08120F70 .align 2, 0 _08120CE8: .4byte 0x02000000 _08120CEC: .4byte 0x000160c1 _08120CF0: .4byte gUnknown_08400709 _08120CF4: cmp r2, 0x1 beq _08120D04 ldr r0, _08120D08 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08120D10 _08120D04: ldr r6, _08120D0C b _08120F70 .align 2, 0 _08120D08: .4byte gUnknown_020239F8 _08120D0C: .4byte gUnknown_08400727 _08120D10: ldr r6, _08120D1C cmp r2, 0x2 beq _08120D18 b _08120F70 _08120D18: ldr r6, _08120D20 b _08120F70 .align 2, 0 _08120D1C: .4byte gUnknown_08400749 _08120D20: .4byte gUnknown_08400736 _08120D24: ldr r0, _08120D44 ldrh r1, [r0] movs r0, 0x80 lsls r0, 4 cmp r1, r0 bne _08120D54 ldr r0, _08120D48 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 ldr r6, _08120D4C cmp r0, 0 bne _08120D40 b _08120F70 _08120D40: ldr r6, _08120D50 b _08120F70 .align 2, 0 _08120D44: .4byte word_202FF5E _08120D48: .4byte gUnknown_020239F8 _08120D4C: .4byte gUnknown_08400771 _08120D50: .4byte gUnknown_08400781 _08120D54: ldr r6, _08120D58 b _08120F70 .align 2, 0 _08120D58: .4byte gUnknown_0840075E _08120D5C: ldr r0, _08120D88 add r0, r9 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08120DB8 ldr r0, _08120D8C add r0, r9 ldrb r3, [r0] cmp r3, 0 beq _08120D82 ldr r0, _08120D90 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08120D98 _08120D82: ldr r6, _08120D94 b _08120F70 .align 2, 0 _08120D88: .4byte 0x00016003 _08120D8C: .4byte 0x000160c1 _08120D90: .4byte gUnknown_020239F8 _08120D94: .4byte gUnknown_084006B3 _08120D98: cmp r3, 0x1 bne _08120DA4 ldr r6, _08120DA0 b _08120F70 .align 2, 0 _08120DA0: .4byte gUnknown_084006BB _08120DA4: ldr r6, _08120DB0 cmp r3, 0x2 beq _08120DAC b _08120F70 _08120DAC: ldr r6, _08120DB4 b _08120F70 .align 2, 0 _08120DB0: .4byte gUnknown_084006D5 _08120DB4: .4byte gUnknown_084006C6 _08120DB8: ldr r0, _08120DD4 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08120DE0 movs r0, 0x40 ands r0, r1 ldr r6, _08120DD8 cmp r0, 0 bne _08120DD0 b _08120F70 _08120DD0: ldr r6, _08120DDC b _08120F70 .align 2, 0 _08120DD4: .4byte gUnknown_020239F8 _08120DD8: .4byte gUnknown_0840067C _08120DDC: .4byte gUnknown_0840068C _08120DE0: ldr r6, _08120DE4 b _08120F70 .align 2, 0 _08120DE4: .4byte gUnknown_08400622 _08120DE8: mov r0, r10 bl sub_8121D1C ldr r0, _08120E14 ldr r2, [r0] ldrh r1, [r2] movs r0, 0xB1 lsls r0, 1 cmp r1, r0 bls _08120E28 ldr r0, _08120E18 ldr r2, _08120E1C ldr r1, _08120E20 ldr r3, _08120E24 adds r1, r3 ldrb r1, [r1] lsls r1, 2 adds r1, r2 ldr r1, [r1] bl StringCopy b _08120E38 .align 2, 0 _08120E14: .4byte gUnknown_02039270 _08120E18: .4byte gUnknown_03004290 _08120E1C: .4byte gUnknown_08401674 _08120E20: .4byte 0x02000000 _08120E24: .4byte 0x000160a0 _08120E28: ldr r0, _08120E44 ldrh r2, [r2] movs r1, 0xD muls r1, r2 ldr r2, _08120E48 adds r1, r2 bl StringCopy _08120E38: ldr r0, _08120E44 bl sub_8121D74 ldr r6, _08120E4C b _08120F70 .align 2, 0 _08120E44: .4byte gUnknown_03004290 _08120E48: .4byte gMoveNames _08120E4C: .4byte gUnknown_084007BD _08120E50: ldr r5, _08120E90 ldrb r1, [r5] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08120EB8 movs r0, 0x7F ands r0, r1 strb r0, [r5] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08120E7C ldrb r1, [r5] cmp r1, 0x3 beq _08120E7C movs r0, 0x3 eors r0, r1 strb r0, [r5] _08120E7C: ldr r0, _08120E90 ldrb r0, [r0] subs r0, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08120E98 ldr r6, _08120E94 b _08120F70 .align 2, 0 _08120E90: .4byte gUnknown_030041C0 _08120E94: .4byte gUnknown_083FFEFC _08120E98: ldr r0, _08120EAC ldrh r1, [r0] movs r0, 0x40 ands r0, r1 ldr r6, _08120EB0 cmp r0, 0 beq _08120F70 ldr r6, _08120EB4 b _08120F70 .align 2, 0 _08120EAC: .4byte gUnknown_020239F8 _08120EB0: .4byte gUnknown_083FFFEA _08120EB4: .4byte gUnknown_083FFFF7 _08120EB8: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08120ED2 ldrb r1, [r5] cmp r1, 0x3 beq _08120ED2 movs r0, 0x3 eors r0, r1 strb r0, [r5] _08120ED2: ldr r0, _08120EF0 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08120F18 ldr r0, _08120EF4 ldrb r0, [r0] cmp r0, 0x2 beq _08120F08 cmp r0, 0x2 bgt _08120EF8 cmp r0, 0x1 beq _08120EFE b _08120F70 .align 2, 0 _08120EF0: .4byte gUnknown_020239F8 _08120EF4: .4byte gUnknown_030041C0 _08120EF8: cmp r0, 0x3 beq _08120F10 b _08120F70 _08120EFE: ldr r6, _08120F04 b _08120F70 .align 2, 0 _08120F04: .4byte gUnknown_083FFF6A _08120F08: ldr r6, _08120F0C b _08120F70 .align 2, 0 _08120F0C: .4byte gUnknown_083FFF99 _08120F10: ldr r6, _08120F14 b _08120F70 .align 2, 0 _08120F14: .4byte gUnknown_083FFFCB _08120F18: ldr r0, _08120F2C ldrb r0, [r0] cmp r0, 0x2 beq _08120F40 cmp r0, 0x2 bgt _08120F30 cmp r0, 0x1 beq _08120F36 b _08120F70 .align 2, 0 _08120F2C: .4byte gUnknown_030041C0 _08120F30: cmp r0, 0x3 beq _08120F48 b _08120F70 _08120F36: ldr r6, _08120F3C b _08120F70 .align 2, 0 _08120F3C: .4byte gUnknown_083FFF56 _08120F40: ldr r6, _08120F44 b _08120F70 .align 2, 0 _08120F44: .4byte gUnknown_083FFF81 _08120F48: ldr r6, _08120F4C b _08120F70 .align 2, 0 _08120F4C: .4byte gUnknown_083FFFB3 _08120F50: movs r0, 0xB5 lsls r0, 1 cmp r7, r0 bls _08120F64 ldr r1, _08120F60 movs r0, 0xFF strb r0, [r1] b _08120F76 .align 2, 0 _08120F60: .4byte gUnknown_020238CC _08120F64: ldr r1, _08120F84 adds r0, r7, 0 subs r0, 0xC lsls r0, 2 adds r0, r1 ldr r6, [r0] _08120F70: adds r0, r6, 0 bl get_battle_strings_ _08120F76: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08120F84: .4byte gUnknown_08400F8C thumb_func_end sub_8120AA8 thumb_func_start get_battle_strings_ get_battle_strings_: @ 8120F88 push {lr} ldr r1, _08120F94 bl sub_8120FFC pop {r1} bx r1 .align 2, 0 _08120F94: .4byte gUnknown_020238CC thumb_func_end get_battle_strings_ thumb_func_start sub_8120F98 sub_8120F98: @ 8120F98 push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 ldr r1, _08120FB0 mov r0, sp movs r2, 0x8 bl memcpy mov r2, sp movs r3, 0 b _08120FC0 .align 2, 0 _08120FB0: .4byte gUnknown_084017A8 _08120FB4: strb r1, [r2] adds r4, 0x1 adds r2, 0x1 adds r3, 0x1 cmp r3, 0x7 bhi _08120FC8 _08120FC0: ldrb r1, [r4] adds r0, r1, 0 cmp r0, 0xFF bne _08120FB4 _08120FC8: ldr r5, [sp] ldr r4, [sp, 0x4] movs r3, 0 ldr r2, _08120FE4 _08120FD0: ldr r1, [r2] ldr r0, [r1] cmp r5, r0 bne _08120FE8 ldr r0, [r1, 0x4] cmp r4, r0 bne _08120FE8 ldr r0, [r2, 0x4] b _08120FF2 .align 2, 0 _08120FE4: .4byte gUnknown_081FA6D4 _08120FE8: adds r2, 0x8 adds r3, 0x1 cmp r3, 0x6 bls _08120FD0 movs r0, 0 _08120FF2: add sp, 0x8 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8120F98 thumb_func_start sub_8120FFC sub_8120FFC: @ 8120FFC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC mov r9, r0 mov r8, r1 movs r6, 0 movs r4, 0 bl GetMultiplayerId lsls r0, 24 lsrs r7, r0, 24 mov r0, r9 ldrb r1, [r0] bl _08121A40 _0812101E: cmp r1, 0xFD beq _08121026 bl _08121A30 _08121026: movs r1, 0x1 add r9, r1 mov r2, r9 ldrb r0, [r2] cmp r0, 0x2A bls _08121036 bl _081219E6 _08121036: lsls r0, 2 ldr r1, _08121040 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08121040: .4byte _08121044 .align 2, 0 _08121044: .4byte _081210F0 .4byte _0812111E .4byte _0812115A .4byte _08121180 .4byte _081211A4 .4byte _081211C8 .4byte _081211EC .4byte _08121218 .4byte _08121248 .4byte _08121278 .4byte _081212A8 .4byte _0812133C .4byte _081213A8 .4byte _0812141C .4byte _08121490 .4byte _08121504 .4byte _08121578 .4byte _081215F8 .4byte _08121620 .4byte _08121660 .4byte _081216EC .4byte _081216F4 .4byte _08121704 .4byte _08121714 .4byte _0812172C .4byte _0812174C .4byte _081217C0 .4byte _08121830 .4byte _08121840 .4byte _08121854 .4byte _08121868 .4byte _0812188C .4byte _081218B0 .4byte _081218B8 .4byte _081218C0 .4byte _0812195C .4byte _081219A4 .4byte _081219AC .4byte _0812197C .4byte _08121984 .4byte _081219CC .4byte _081219D4 .4byte _08121134 _081210F0: ldr r5, _08121100 ldrb r0, [r5] cmp r0, 0xFD bne _08121108 ldr r4, _08121104 adds r0, r5, 0 b _08121140 .align 2, 0 _08121100: .4byte gUnknown_030041C0 _08121104: .4byte gStringVar1 _08121108: adds r0, r5, 0 bl sub_8120F98 adds r4, r0, 0 cmp r4, 0 beq _08121118 bl _081219E6 _08121118: adds r4, r5, 0 bl _081219E6 _0812111E: ldr r1, _0812112C ldrb r0, [r1] cmp r0, 0xFD bne _08121154 ldr r4, _08121130 b _0812113E .align 2, 0 _0812112C: .4byte gUnknown_03004290 _08121130: .4byte gStringVar2 _08121134: ldr r1, _0812114C ldrb r0, [r1] cmp r0, 0xFD bne _08121154 ldr r4, _08121150 _0812113E: adds r0, r1, 0 _08121140: adds r1, r4, 0 bl sub_8121A68 bl _081219E6 .align 2, 0 _0812114C: .4byte gUnknown_030042B0 _08121150: .4byte gStringVar3 _08121154: adds r4, r1, 0 bl _081219E6 _0812115A: movs r0, 0 bl battle_get_side_with_given_state ldr r1, _08121178 lsls r0, 24 lsrs r0, 23 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0812117C adds r0, r1 bl _0812190E .align 2, 0 _08121178: .4byte gUnknown_02024A6A _0812117C: .4byte gPlayerParty _08121180: movs r0, 0x1 bl battle_get_side_with_given_state ldr r1, _0812119C lsls r0, 24 lsrs r0, 23 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _081211A0 adds r0, r1 b _0812190E .align 2, 0 _0812119C: .4byte gUnknown_02024A6A _081211A0: .4byte gEnemyParty _081211A4: movs r0, 0x2 bl battle_get_side_with_given_state ldr r1, _081211C0 lsls r0, 24 lsrs r0, 23 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _081211C4 adds r0, r1 b _0812190E .align 2, 0 _081211C0: .4byte gUnknown_02024A6A _081211C4: .4byte gPlayerParty _081211C8: movs r0, 0x3 bl battle_get_side_with_given_state ldr r1, _081211E4 lsls r0, 24 lsrs r0, 23 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _081211E8 adds r0, r1 b _0812190E .align 2, 0 _081211E4: .4byte gUnknown_02024A6A _081211E8: .4byte gEnemyParty _081211EC: ldr r2, _0812120C ldr r1, _08121210 lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r0, r1 ldrh r0, [r0, 0x18] lsls r0, 1 adds r0, r2 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08121214 adds r0, r1 b _0812190E .align 2, 0 _0812120C: .4byte gUnknown_02024A6A _08121210: .4byte gLinkPlayers _08121214: .4byte gPlayerParty _08121218: ldr r2, _0812123C ldr r1, _08121240 lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r0, r1 ldrh r1, [r0, 0x18] movs r0, 0x1 eors r0, r1 lsls r0, 1 adds r0, r2 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08121244 adds r0, r1 b _0812190E .align 2, 0 _0812123C: .4byte gUnknown_02024A6A _08121240: .4byte gLinkPlayers _08121244: .4byte gEnemyParty _08121248: ldr r2, _0812126C ldr r1, _08121270 lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r0, r1 ldrh r1, [r0, 0x18] movs r0, 0x2 eors r0, r1 lsls r0, 1 adds r0, r2 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08121274 adds r0, r1 b _0812190E .align 2, 0 _0812126C: .4byte gUnknown_02024A6A _08121270: .4byte gLinkPlayers _08121274: .4byte gPlayerParty _08121278: ldr r2, _0812129C ldr r1, _081212A0 lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r0, r1 ldrh r1, [r0, 0x18] movs r0, 0x3 eors r0, r1 lsls r0, 1 adds r0, r2 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _081212A4 adds r0, r1 b _0812190E .align 2, 0 _0812129C: .4byte gUnknown_02024A6A _081212A0: .4byte gLinkPlayers _081212A4: .4byte gEnemyParty _081212A8: ldr r4, _081212CC ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 adds r2, r4, 0 cmp r0, 0 beq _0812131C ldr r0, _081212D0 ldrh r1, [r0] movs r0, 0x8 ands r0, r1 ldr r4, _081212D4 cmp r0, 0 beq _081212E6 ldr r4, _081212D8 b _081212E6 .align 2, 0 _081212CC: .4byte gUnknown_02024C07 _081212D0: .4byte gUnknown_020239F8 _081212D4: .4byte gUnknown_08400791 _081212D8: .4byte gUnknown_08400797 _081212DC: mov r3, r8 adds r0, r3, r6 strb r1, [r0] adds r6, 0x1 adds r4, 0x1 _081212E6: ldrb r1, [r4] adds r0, r1, 0 cmp r0, 0xFF bne _081212DC ldrb r0, [r2] bl battle_get_per_side_status adds r1, r0, 0 movs r0, 0x1 ands r0, r1 bl battle_get_side_with_given_state ldr r1, _08121314 lsls r0, 24 lsrs r0, 23 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08121318 adds r0, r1 b _0812190E .align 2, 0 _08121314: .4byte gUnknown_02024A6A _08121318: .4byte gEnemyParty _0812131C: ldrb r0, [r2] bl battle_get_per_side_status adds r1, r0, 0 movs r0, 0x1 ands r0, r1 bl battle_get_side_with_given_state ldr r1, _08121338 lsls r0, 24 lsrs r0, 23 adds r0, r1 ldrh r1, [r0] b _0812193A .align 2, 0 _08121338: .4byte gUnknown_02024A6A _0812133C: ldr r4, _08121370 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0812137C ldrb r0, [r4] bl battle_get_per_side_status adds r1, r0, 0 movs r0, 0x1 ands r0, r1 bl battle_get_side_with_given_state ldr r1, _08121374 lsls r0, 24 lsrs r0, 23 adds r0, 0x4 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08121378 adds r0, r1 b _0812190E .align 2, 0 _08121370: .4byte gUnknown_02024C07 _08121374: .4byte gUnknown_02024A6A _08121378: .4byte gPlayerParty _0812137C: ldrb r0, [r4] bl battle_get_per_side_status adds r1, r0, 0 movs r0, 0x1 ands r0, r1 bl battle_get_side_with_given_state ldr r1, _081213A0 lsls r0, 24 lsrs r0, 23 adds r0, 0x4 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _081213A4 b _08121940 .align 2, 0 _081213A0: .4byte gUnknown_02024A6A _081213A4: .4byte gEnemyParty _081213A8: ldr r5, _081213F4 ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0812140C ldr r0, _081213F8 ldrh r1, [r0] movs r0, 0x8 ands r0, r1 ldr r4, _081213FC cmp r0, 0 beq _081213C6 ldr r4, _08121400 _081213C6: ldrb r1, [r4] adds r0, r1, 0 ldr r3, _08121404 ldr r2, _08121408 mov r12, r2 adds r2, r5, 0 cmp r0, 0xFF beq _081213E8 _081213D6: mov r5, r8 adds r0, r5, r6 strb r1, [r0] adds r6, 0x1 adds r4, 0x1 ldrb r1, [r4] adds r0, r1, 0 cmp r0, 0xFF bne _081213D6 _081213E8: ldrb r0, [r2] lsls r0, 1 adds r0, r3 ldrh r1, [r0] b _08121908 .align 2, 0 _081213F4: .4byte gUnknown_02024C07 _081213F8: .4byte gUnknown_020239F8 _081213FC: .4byte gUnknown_08400791 _08121400: .4byte gUnknown_08400797 _08121404: .4byte gUnknown_02024A6A _08121408: .4byte gEnemyParty _0812140C: ldr r1, _08121418 ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrh r1, [r0] b _0812193A .align 2, 0 _08121418: .4byte gUnknown_02024A6A _0812141C: ldr r5, _08121468 ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _08121480 ldr r0, _0812146C ldrh r1, [r0] movs r0, 0x8 ands r0, r1 ldr r4, _08121470 cmp r0, 0 beq _0812143A ldr r4, _08121474 _0812143A: ldrb r1, [r4] adds r0, r1, 0 ldr r3, _08121478 ldr r2, _0812147C mov r12, r2 adds r2, r5, 0 cmp r0, 0xFF beq _0812145C _0812144A: mov r5, r8 adds r0, r5, r6 strb r1, [r0] adds r6, 0x1 adds r4, 0x1 ldrb r1, [r4] adds r0, r1, 0 cmp r0, 0xFF bne _0812144A _0812145C: ldrb r0, [r2] lsls r0, 1 adds r0, r3 ldrh r1, [r0] b _08121908 .align 2, 0 _08121468: .4byte gUnknown_02024C08 _0812146C: .4byte gUnknown_020239F8 _08121470: .4byte gUnknown_08400791 _08121474: .4byte gUnknown_08400797 _08121478: .4byte gUnknown_02024A6A _0812147C: .4byte gEnemyParty _08121480: ldr r1, _0812148C ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrh r1, [r0] b _0812193A .align 2, 0 _0812148C: .4byte gUnknown_02024A6A _08121490: ldr r5, _081214DC ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _081214F4 ldr r0, _081214E0 ldrh r1, [r0] movs r0, 0x8 ands r0, r1 ldr r4, _081214E4 cmp r0, 0 beq _081214AE ldr r4, _081214E8 _081214AE: ldrb r1, [r4] adds r0, r1, 0 ldr r3, _081214EC ldr r2, _081214F0 mov r12, r2 adds r2, r5, 0 cmp r0, 0xFF beq _081214D0 _081214BE: mov r5, r8 adds r0, r5, r6 strb r1, [r0] adds r6, 0x1 adds r4, 0x1 ldrb r1, [r4] adds r0, r1, 0 cmp r0, 0xFF bne _081214BE _081214D0: ldrb r0, [r2] lsls r0, 1 adds r0, r3 ldrh r1, [r0] b _08121908 .align 2, 0 _081214DC: .4byte gUnknown_02024C0A _081214E0: .4byte gUnknown_020239F8 _081214E4: .4byte gUnknown_08400791 _081214E8: .4byte gUnknown_08400797 _081214EC: .4byte gUnknown_02024A6A _081214F0: .4byte gEnemyParty _081214F4: ldr r1, _08121500 ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrh r1, [r0] b _0812193A .align 2, 0 _08121500: .4byte gUnknown_02024A6A _08121504: ldr r5, _08121550 ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _08121568 ldr r0, _08121554 ldrh r1, [r0] movs r0, 0x8 ands r0, r1 ldr r4, _08121558 cmp r0, 0 beq _08121522 ldr r4, _0812155C _08121522: ldrb r1, [r4] adds r0, r1, 0 ldr r3, _08121560 ldr r2, _08121564 mov r12, r2 adds r2, r5, 0 cmp r0, 0xFF beq _08121544 _08121532: mov r5, r8 adds r0, r5, r6 strb r1, [r0] adds r6, 0x1 adds r4, 0x1 ldrb r1, [r4] adds r0, r1, 0 cmp r0, 0xFF bne _08121532 _08121544: ldrb r0, [r2] lsls r0, 1 adds r0, r3 ldrh r1, [r0] b _08121908 .align 2, 0 _08121550: .4byte gUnknown_02024A60 _08121554: .4byte gUnknown_020239F8 _08121558: .4byte gUnknown_08400791 _0812155C: .4byte gUnknown_08400797 _08121560: .4byte gUnknown_02024A6A _08121564: .4byte gEnemyParty _08121568: ldr r1, _08121574 ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrh r1, [r0] b _0812193A .align 2, 0 _08121574: .4byte gUnknown_02024A6A _08121578: ldr r4, _081215CC ldr r0, _081215D0 adds r5, r4, r0 ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 adds r2, r4, 0 cmp r0, 0 beq _081215E8 ldr r0, _081215D4 ldrh r1, [r0] movs r0, 0x8 ands r0, r1 ldr r4, _081215D8 cmp r0, 0 beq _0812159C ldr r4, _081215DC _0812159C: ldrb r1, [r4] adds r0, r1, 0 ldr r3, _081215E0 ldr r5, _081215E4 mov r12, r5 cmp r0, 0xFF beq _081215BC _081215AA: mov r5, r8 adds r0, r5, r6 strb r1, [r0] adds r6, 0x1 adds r4, 0x1 ldrb r1, [r4] adds r0, r1, 0 cmp r0, 0xFF bne _081215AA _081215BC: ldr r1, _081215D0 adds r0, r2, r1 ldrb r0, [r0] lsls r0, 1 adds r0, r3 ldrh r1, [r0] b _08121908 .align 2, 0 _081215CC: .4byte 0x02000000 _081215D0: .4byte 0x00016003 _081215D4: .4byte gUnknown_020239F8 _081215D8: .4byte gUnknown_08400791 _081215DC: .4byte gUnknown_08400797 _081215E0: .4byte gUnknown_02024A6A _081215E4: .4byte gEnemyParty _081215E8: ldr r1, _081215F4 ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrh r1, [r0] b _0812193A .align 2, 0 _081215F4: .4byte gUnknown_02024A6A _081215F8: ldr r0, _08121610 ldr r2, [r0] ldrh r1, [r2] movs r0, 0xB1 lsls r0, 1 cmp r1, r0 bls _0812161C ldr r0, _08121614 ldr r2, _08121618 adds r0, r2 b _08121634 .align 2, 0 _08121610: .4byte gUnknown_02039270 _08121614: .4byte 0x02000000 _08121618: .4byte 0x000160a0 _0812161C: ldrh r1, [r2] b _08121652 _08121620: ldr r0, _08121640 ldr r2, [r0] ldrh r1, [r2, 0x2] movs r0, 0xB1 lsls r0, 1 cmp r1, r0 bls _08121650 ldr r0, _08121644 ldr r3, _08121648 adds r0, r3 _08121634: ldrb r0, [r0] lsls r0, 2 ldr r1, _0812164C adds r4, r0, r1 b _081219E6 .align 2, 0 _08121640: .4byte gUnknown_02039270 _08121644: .4byte 0x02000000 _08121648: .4byte 0x000160a0 _0812164C: .4byte gUnknown_08401674 _08121650: ldrh r1, [r2, 0x2] _08121652: movs r0, 0xD muls r1, r0 ldr r0, _0812165C adds r4, r1, r0 b _081219E6 .align 2, 0 _0812165C: .4byte gMoveNames _08121660: ldr r0, _081216AC ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081216D8 ldr r1, _081216B0 ldrh r0, [r1] cmp r0, 0xAF bne _081216D4 ldr r2, _081216B4 ldr r0, _081216B8 ldr r5, _081216BC adds r0, r5 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _081216C0 ldrb r2, [r1] ldrh r0, [r0, 0x18] cmp r0, r2 bne _081216CC lsls r1, r2, 3 subs r1, r2 lsls r1, 2 ldr r0, _081216C4 adds r1, r0 mov r0, sp bl StringCopy ldr r1, _081216C8 mov r0, sp bl StringAppend mov r4, sp b _081219E6 .align 2, 0 _081216AC: .4byte gUnknown_020239F8 _081216B0: .4byte gUnknown_02024C04 _081216B4: .4byte gLinkPlayers _081216B8: .4byte 0x02000000 _081216BC: .4byte 0x000160cb _081216C0: .4byte gUnknown_02024C0B _081216C4: .4byte gEnigmaBerries _081216C8: .4byte gUnknown_08400A85 _081216CC: ldr r4, _081216D0 b _081219E6 .align 2, 0 _081216D0: .4byte gUnknown_08400A78 _081216D4: ldrh r0, [r1] b _081216DC _081216D8: ldr r0, _081216E8 ldrh r0, [r0] _081216DC: mov r1, sp bl itemid_copy_name mov r4, sp b _081219E6 .align 2, 0 _081216E8: .4byte gUnknown_02024C04 _081216EC: ldr r0, _081216F0 b _08121734 .align 2, 0 _081216F0: .4byte byte_2024C06 _081216F4: ldr r1, _081216FC ldr r0, _08121700 b _08121730 .align 2, 0 _081216FC: .4byte gUnknown_0203926C _08121700: .4byte gUnknown_02024C07 _08121704: ldr r1, _0812170C ldr r0, _08121710 b _08121730 .align 2, 0 _0812170C: .4byte gUnknown_0203926C _08121710: .4byte gUnknown_02024C08 _08121714: ldr r1, _08121720 ldr r0, _08121724 ldr r2, _08121728 adds r0, r2 b _08121730 .align 2, 0 _08121720: .4byte gUnknown_0203926C _08121724: .4byte 0x02000000 _08121728: .4byte 0x00016003 _0812172C: ldr r1, _08121740 ldr r0, _08121744 _08121730: ldrb r0, [r0] adds r0, r1 _08121734: ldrb r1, [r0] movs r0, 0xD muls r1, r0 ldr r0, _08121748 adds r4, r1, r0 b _081219E6 .align 2, 0 _08121740: .4byte gUnknown_0203926C _08121744: .4byte gUnknown_02024C0A _08121748: .4byte gAbilityNames _0812174C: ldr r3, _08121764 ldrh r1, [r3] movs r0, 0x80 lsls r0, 3 cmp r1, r0 bne _08121768 bl GetSecretBaseTrainerNameIndex lsls r0, 24 lsrs r0, 24 movs r1, 0xD b _081217AE .align 2, 0 _08121764: .4byte word_202FF5E _08121768: ldr r0, _08121784 ldrh r1, [r0] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _08121788 bl get_trainer_class_name_index lsls r0, 24 lsrs r0, 24 movs r1, 0xD b _081217AE .align 2, 0 _08121784: .4byte gUnknown_020239F8 _08121788: movs r0, 0x80 lsls r0, 4 ands r0, r1 cmp r0, 0 beq _0812179E bl sub_8135FD8 lsls r0, 24 lsrs r0, 24 movs r1, 0xD b _081217AE _0812179E: ldr r2, _081217B8 ldrh r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r1, [r0, 0x1] movs r0, 0xD _081217AE: muls r1, r0 ldr r0, _081217BC adds r4, r1, r0 b _081219E6 .align 2, 0 _081217B8: .4byte gTrainers _081217BC: .4byte gTrainerClassNames _081217C0: ldr r2, _081217E4 ldrh r1, [r2] movs r0, 0x80 lsls r0, 3 cmp r1, r0 bne _081217EC mov r0, sp movs r1, 0xFF movs r2, 0x8 bl memset ldr r1, _081217E8 mov r0, sp movs r2, 0x7 bl memcpy mov r4, sp b _081219E6 .align 2, 0 _081217E4: .4byte word_202FF5E _081217E8: .4byte 0x02017002 _081217EC: ldr r0, _08121804 ldrh r1, [r0] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _08121808 mov r0, sp bl get_trainer_name mov r4, sp b _081219E6 .align 2, 0 _08121804: .4byte gUnknown_020239F8 _08121808: movs r0, 0x80 lsls r0, 4 ands r0, r1 cmp r0, 0 beq _0812181C mov r0, sp bl sub_8135FF4 mov r4, sp b _081219E6 _0812181C: ldrh r0, [r2] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _0812182C adds r4, r1, r0 b _081219E6 .align 2, 0 _0812182C: .4byte gTrainers + 0x4 _08121830: lsls r0, r7, 3 subs r0, r7 lsls r0, 2 ldr r1, _0812183C adds r4, r0, r1 b _081219E6 .align 2, 0 _0812183C: .4byte gLinkPlayers + 0x8 _08121840: ldr r4, _08121850 lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x18] movs r0, 0x2 b _08121876 .align 2, 0 _08121850: .4byte gLinkPlayers _08121854: ldr r4, _08121864 lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x18] movs r0, 0x1 b _08121876 .align 2, 0 _08121864: .4byte gLinkPlayers _08121868: ldr r4, _08121888 lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x18] movs r0, 0x3 _08121876: eors r0, r1 bl sub_803FC34 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r4, 0x8 adds r4, r1, r4 b _081219E6 .align 2, 0 _08121888: .4byte gLinkPlayers _0812188C: ldr r0, _081218A4 ldr r3, _081218A8 adds r0, r3 ldrb r0, [r0] bl sub_803FC34 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 ldr r0, _081218AC adds r4, r1, r0 b _081219E6 .align 2, 0 _081218A4: .4byte 0x02000000 _081218A8: .4byte 0x00016003 _081218AC: .4byte gLinkPlayers + 0x8 _081218B0: ldr r4, _081218B4 b _081219E6 .align 2, 0 _081218B4: .4byte gSaveBlock2 _081218B8: bl sub_8082830 adds r4, r0, 0 b _081219E6 _081218C0: ldr r5, _08121918 ldr r1, _0812191C adds r0, r5, r1 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _08121934 ldr r0, _08121920 ldrh r1, [r0] movs r0, 0x8 ands r0, r1 ldr r4, _08121924 cmp r0, 0 beq _081218E2 ldr r4, _08121928 _081218E2: ldrb r1, [r4] adds r0, r1, 0 ldr r2, _0812192C mov r12, r2 adds r2, r5, 0 cmp r0, 0xFF beq _08121902 _081218F0: mov r3, r8 adds r0, r3, r6 strb r1, [r0] adds r6, 0x1 adds r4, 0x1 ldrb r1, [r4] adds r0, r1, 0 cmp r0, 0xFF bne _081218F0 _08121902: ldr r5, _08121930 adds r0, r2, r5 ldrb r1, [r0] _08121908: movs r0, 0x64 muls r0, r1 add r0, r12 _0812190E: movs r1, 0x2 mov r2, sp bl GetMonData b _0812194A .align 2, 0 _08121918: .4byte 0x02000000 _0812191C: .4byte 0x00016003 _08121920: .4byte gUnknown_020239F8 _08121924: .4byte gUnknown_08400791 _08121928: .4byte gUnknown_08400797 _0812192C: .4byte gEnemyParty _08121930: .4byte 0x0001605e _08121934: ldr r1, _08121954 adds r0, r5, r1 ldrb r1, [r0] _0812193A: movs r0, 0x64 muls r0, r1 ldr r1, _08121958 _08121940: adds r0, r1 movs r1, 0x2 mov r2, sp bl GetMonData _0812194A: mov r0, sp bl StringGetEnd10 mov r4, sp b _081219E6 .align 2, 0 _08121954: .4byte 0x0001605e _08121958: .4byte gPlayerParty _0812195C: ldr r0, _08121970 bl FlagGet lsls r0, 24 ldr r4, _08121974 cmp r0, 0 beq _081219E6 ldr r4, _08121978 b _081219E6 .align 2, 0 _08121970: .4byte 0x0000084b _08121974: .4byte gUnknown_084009ED _08121978: .4byte gUnknown_084009F7 _0812197C: ldr r0, _08121980 b _08121986 .align 2, 0 _08121980: .4byte gUnknown_02024C07 _08121984: ldr r0, _08121998 _08121986: ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 ldr r4, _0812199C cmp r0, 0 bne _081219E6 ldr r4, _081219A0 b _081219E6 .align 2, 0 _08121998: .4byte gUnknown_02024C08 _0812199C: .4byte gUnknown_084007A7 _081219A0: .4byte gUnknown_084007AC _081219A4: ldr r0, _081219A8 b _081219AE .align 2, 0 _081219A8: .4byte gUnknown_02024C07 _081219AC: ldr r0, _081219C0 _081219AE: ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 ldr r4, _081219C4 cmp r0, 0 bne _081219E6 ldr r4, _081219C8 b _081219E6 .align 2, 0 _081219C0: .4byte gUnknown_02024C08 _081219C4: .4byte gUnknown_0840079C _081219C8: .4byte gUnknown_084007A1 _081219CC: ldr r0, _081219D0 b _081219D6 .align 2, 0 _081219D0: .4byte gUnknown_02024C07 _081219D4: ldr r0, _08121A24 _081219D6: ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 ldr r4, _08121A28 cmp r0, 0 bne _081219E6 ldr r4, _08121A2C _081219E6: ldrb r1, [r4] adds r0, r1, 0 mov r3, r9 ldrb r2, [r3] adds r3, 0x1 cmp r0, 0xFF beq _08121A06 _081219F4: mov r5, r8 adds r0, r5, r6 strb r1, [r0] adds r6, 0x1 adds r4, 0x1 ldrb r1, [r4] adds r0, r1, 0 cmp r0, 0xFF bne _081219F4 _08121A06: lsls r0, r2, 24 lsrs r0, 24 cmp r0, 0x21 bne _08121A3C mov r0, r8 adds r1, r0, r6 movs r0, 0xFC strb r0, [r1] adds r6, 0x1 mov r2, r8 adds r1, r2, r6 movs r0, 0x9 strb r0, [r1] adds r6, 0x1 b _08121A3C .align 2, 0 _08121A24: .4byte gUnknown_02024C08 _08121A28: .4byte gUnknown_084007B2 _08121A2C: .4byte gUnknown_084007B7 _08121A30: mov r3, r8 adds r0, r3, r6 strb r1, [r0] adds r6, 0x1 mov r3, r9 adds r3, 0x1 _08121A3C: mov r9, r3 ldrb r1, [r3] _08121A40: adds r0, r1, 0 cmp r0, 0xFF beq _08121A4A bl _0812101E _08121A4A: mov r5, r8 adds r1, r5, r6 mov r2, r9 ldrb r0, [r2] strb r0, [r1] adds r6, 0x1 adds r0, r6, 0 add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8120FFC thumb_func_start sub_8121A68 sub_8121A68: @ 8121A68 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC adds r7, r0, 0 adds r6, r1, 0 movs r5, 0x1 movs r0, 0 mov r8, r0 movs r0, 0xFF strb r0, [r6] ldrb r0, [r7, 0x1] cmp r0, 0xFF bne _08121A86 b _08121D0E _08121A86: adds r0, r7, r5 ldrb r1, [r0] adds r4, r0, 0 cmp r1, 0xA bls _08121A92 b _08121D04 _08121A92: lsls r0, r1, 2 ldr r1, _08121A9C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08121A9C: .4byte _08121AA0 .align 2, 0 _08121AA0: .4byte _08121ACC .4byte _08121AE8 .4byte _08121B3C .4byte _08121B54 .4byte _08121B64 .4byte _08121BDC .4byte _08121BF0 .4byte _08121C02 .4byte _08121C48 .4byte _08121C5C .4byte _08121C78 _08121ACC: adds r0, r5, r7 ldrb r1, [r0, 0x1] ldrb r0, [r0, 0x2] lsls r0, 8 orrs r1, r0 ldr r0, _08121AE4 subs r1, 0xC lsls r1, 2 adds r1, r0 ldr r1, [r1] b _08121CE2 .align 2, 0 _08121AE4: .4byte gUnknown_08400F8C _08121AE8: ldrb r0, [r4, 0x1] cmp r0, 0x2 beq _08121B04 cmp r0, 0x2 bgt _08121AF8 cmp r0, 0x1 beq _08121AFE b _08121B26 _08121AF8: cmp r0, 0x4 beq _08121B0C b _08121B26 _08121AFE: ldrb r4, [r4, 0x3] mov r8, r4 b _08121B26 _08121B04: ldrb r1, [r4, 0x3] ldrb r0, [r4, 0x4] lsls r0, 8 b _08121B22 _08121B0C: ldrb r0, [r4, 0x3] mov r8, r0 ldrb r0, [r4, 0x4] lsls r0, 8 mov r1, r8 orrs r1, r0 ldrb r0, [r4, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r4, 0x6] lsls r0, 24 _08121B22: orrs r1, r0 mov r8, r1 _08121B26: adds r4, r5, r7 ldrb r3, [r4, 0x2] adds r0, r6, 0 mov r1, r8 movs r2, 0 bl ConvertIntToDecimalStringN adds r0, r5, 0x3 ldrb r4, [r4, 0x1] adds r5, r0, r4 b _08121D04 _08121B3C: adds r0, r5, r7 ldrb r1, [r0, 0x1] ldrb r0, [r0, 0x2] lsls r0, 8 orrs r1, r0 movs r0, 0xD muls r1, r0 ldr r0, _08121B50 adds r1, r0 b _08121CE2 .align 2, 0 _08121B50: .4byte gMoveNames _08121B54: adds r0, r5, r7 ldrb r0, [r0, 0x1] lsls r1, r0, 3 subs r1, r0 ldr r0, _08121B60 b _08121C66 .align 2, 0 _08121B60: .4byte gTypeNames _08121B64: ldrb r0, [r4, 0x1] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08121B88 ldrb r1, [r4, 0x2] movs r0, 0x64 muls r0, r1 ldr r1, _08121B84 adds r0, r1 movs r1, 0x2 mov r2, sp bl GetMonData b _08121BC4 .align 2, 0 _08121B84: .4byte gPlayerParty _08121B88: ldr r0, _08121BA0 ldrh r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08121BA8 ldr r1, _08121BA4 adds r0, r6, 0 bl StringAppend b _08121BB0 .align 2, 0 _08121BA0: .4byte gUnknown_020239F8 _08121BA4: .4byte gUnknown_08400797 _08121BA8: ldr r1, _08121BD4 adds r0, r6, 0 bl StringAppend _08121BB0: adds r0, r5, r7 ldrb r1, [r0, 0x2] movs r0, 0x64 muls r0, r1 ldr r1, _08121BD8 adds r0, r1 movs r1, 0x2 mov r2, sp bl GetMonData _08121BC4: mov r0, sp bl StringGetEnd10 adds r0, r6, 0 mov r1, sp bl StringAppend b _08121D02 .align 2, 0 _08121BD4: .4byte gUnknown_08400791 _08121BD8: .4byte gEnemyParty _08121BDC: ldr r1, _08121BEC adds r0, r5, r7 ldrb r0, [r0, 0x1] lsls r0, 2 adds r0, r1 ldr r1, [r0] b _08121C68 .align 2, 0 _08121BEC: .4byte gUnknown_08400F58 _08121BF0: adds r0, r5, r7 ldrb r1, [r0, 0x1] ldrb r0, [r0, 0x2] lsls r0, 8 orrs r1, r0 adds r0, r6, 0 bl GetSpeciesName b _08121D02 _08121C02: adds r4, r5, r7 ldrb r0, [r4, 0x1] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08121C28 ldrb r1, [r4, 0x2] movs r0, 0x64 muls r0, r1 ldr r1, _08121C24 adds r0, r1 movs r1, 0x2 adds r2, r6, 0 bl GetMonData b _08121C3A .align 2, 0 _08121C24: .4byte gPlayerParty _08121C28: ldrb r1, [r4, 0x2] movs r0, 0x64 muls r0, r1 ldr r1, _08121C44 adds r0, r1 movs r1, 0x2 adds r2, r6, 0 bl GetMonData _08121C3A: adds r0, r6, 0 bl StringGetEnd10 b _08121D02 .align 2, 0 _08121C44: .4byte gEnemyParty _08121C48: ldr r1, _08121C58 adds r0, r5, r7 ldrb r0, [r0, 0x1] lsls r0, 2 adds r0, r1 ldr r1, [r0] b _08121C68 .align 2, 0 _08121C58: .4byte gUnknown_08400F78 _08121C5C: adds r0, r5, r7 ldrb r1, [r0, 0x1] movs r0, 0xD muls r1, r0 ldr r0, _08121C74 _08121C66: adds r1, r0 _08121C68: adds r0, r6, 0 bl StringAppend adds r5, 0x2 b _08121D04 .align 2, 0 _08121C74: .4byte gAbilityNames _08121C78: adds r0, r5, r7 ldrb r2, [r0, 0x1] ldrb r0, [r0, 0x2] lsls r0, 8 orrs r2, r0 ldr r0, _08121CC4 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08121CFA cmp r2, 0xAF bne _08121CF0 ldr r2, _08121CC8 ldr r0, _08121CCC ldr r1, _08121CD0 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _08121CD4 ldrb r2, [r1] ldrh r0, [r0, 0x18] cmp r0, r2 bne _08121CE0 lsls r1, r2, 3 subs r1, r2 lsls r1, 2 ldr r0, _08121CD8 adds r1, r0 adds r0, r6, 0 bl StringCopy ldr r1, _08121CDC b _08121CE2 .align 2, 0 _08121CC4: .4byte gUnknown_020239F8 _08121CC8: .4byte gLinkPlayers _08121CCC: .4byte 0x02000000 _08121CD0: .4byte 0x000160cb _08121CD4: .4byte gUnknown_02024C0B _08121CD8: .4byte gEnigmaBerries _08121CDC: .4byte gUnknown_08400A85 _08121CE0: ldr r1, _08121CEC _08121CE2: adds r0, r6, 0 bl StringAppend b _08121D02 .align 2, 0 _08121CEC: .4byte gUnknown_08400A78 _08121CF0: adds r0, r2, 0 adds r1, r6, 0 bl itemid_copy_name b _08121D02 _08121CFA: adds r0, r2, 0 adds r1, r6, 0 bl itemid_copy_name _08121D02: adds r5, 0x3 _08121D04: adds r0, r7, r5 ldrb r0, [r0] cmp r0, 0xFF beq _08121D0E b _08121A86 _08121D0E: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8121A68 thumb_func_start sub_8121D1C sub_8121D1C: @ 8121D1C push {r4,r5,lr} adds r4, r0, 0 movs r2, 0 ldr r5, _08121D50 ldr r3, _08121D54 _08121D26: cmp r2, 0x4 beq _08121D3C ldrh r1, [r3] cmp r1, 0 bne _08121D32 adds r2, 0x1 _08121D32: ldr r0, [r5] adds r3, 0x2 ldrh r0, [r0] cmp r1, r0 bne _08121D26 _08121D3C: cmp r2, 0 blt _08121D68 cmp r2, 0x2 bgt _08121D5C ldr r1, _08121D58 adds r0, r4, 0 bl StringCopy b _08121D68 .align 2, 0 _08121D50: .4byte gUnknown_02039270 _08121D54: .4byte gUnknown_084016BC _08121D58: .4byte gUnknown_08400E5E _08121D5C: cmp r2, 0x4 bgt _08121D68 ldr r1, _08121D70 adds r0, r4, 0 bl StringCopy _08121D68: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08121D70: .4byte gUnknown_08400E62 thumb_func_end sub_8121D1C thumb_func_start sub_8121D74 sub_8121D74: @ 8121D74 push {r4,r5,lr} adds r3, r0, 0 movs r4, 0 b _08121D7E _08121D7C: adds r3, 0x1 _08121D7E: ldrb r0, [r3] cmp r0, 0xFF bne _08121D7C ldr r1, _08121DB4 ldr r5, _08121DB8 movs r0, 0 lsls r0, 1 adds r2, r0, r1 _08121D8E: cmp r4, 0x4 beq _08121DA8 ldrh r1, [r2] cmp r1, 0 bne _08121D9A adds r4, 0x1 _08121D9A: ldr r0, [r5] adds r2, 0x2 ldrh r0, [r0] cmp r1, r0 bne _08121D8E cmp r4, 0x4 bhi _08121E04 _08121DA8: lsls r0, r4, 2 ldr r1, _08121DBC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08121DB4: .4byte gUnknown_084016BC _08121DB8: .4byte gUnknown_02039270 _08121DBC: .4byte _08121DC0 .align 2, 0 _08121DC0: .4byte _08121DD4 .4byte _08121DDC .4byte _08121DE4 .4byte _08121DEC .4byte _08121DFC _08121DD4: ldr r1, _08121DD8 b _08121DEE .align 2, 0 _08121DD8: .4byte gUnknown_084007C8 _08121DDC: ldr r1, _08121DE0 b _08121DEE .align 2, 0 _08121DE0: .4byte gUnknown_084007CA _08121DE4: ldr r1, _08121DE8 b _08121DEE .align 2, 0 _08121DE8: .4byte gUnknown_084007CC _08121DEC: ldr r1, _08121DF8 _08121DEE: adds r0, r3, 0 bl StringCopy b _08121E04 .align 2, 0 _08121DF8: .4byte gUnknown_084007CE _08121DFC: ldr r1, _08121E0C adds r0, r3, 0 bl StringCopy _08121E04: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08121E0C: .4byte gUnknown_084007D0 thumb_func_end sub_8121D74 thumb_func_start sub_8121E10 sub_8121E10: @ 8121E10 push {lr} bl sub_8121E58 ldr r0, _08121E2C ldr r1, _08121E30 adds r0, r1 movs r1, 0 strb r1, [r0] movs r0, 0x4 bl sub_806AFAC pop {r0} bx r0 .align 2, 0 _08121E2C: .4byte 0x0201b000 _08121E30: .4byte 0x00000263 thumb_func_end sub_8121E10 thumb_func_start sub_8121E34 sub_8121E34: @ 8121E34 push {lr} bl sub_8121E58 ldr r0, _08121E50 ldr r1, _08121E54 adds r0, r1 movs r1, 0x1 strb r1, [r0] movs r0, 0x4 movs r1, 0 bl sub_806AFAC pop {r0} bx r0 .align 2, 0 _08121E50: .4byte 0x0201b000 _08121E54: .4byte 0x00000263 thumb_func_end sub_8121E34 thumb_func_start sub_8121E58 sub_8121E58: @ 8121E58 push {lr} movs r1, 0 ldr r3, _08121E74 movs r2, 0 _08121E60: adds r0, r1, r3 strb r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x2 bls _08121E60 pop {r0} bx r0 .align 2, 0 _08121E74: .4byte gUnknown_02039270 thumb_func_end sub_8121E58 thumb_func_start sub_8121E78 sub_8121E78: @ 8121E78 push {r4-r6,lr} ldr r1, _08121E98 movs r2, 0x99 lsls r2, 2 adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r4, r1, 0 cmp r0, 0x7 bls _08121E8E b _08122026 _08121E8E: lsls r0, 2 ldr r1, _08121E9C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08121E98: .4byte 0x0201b000 _08121E9C: .4byte _08121EA0 .align 2, 0 _08121EA0: .4byte _08121EC0 .4byte _08121F00 .4byte _08121F14 .4byte _08121F28 .4byte _08121F54 .4byte _08121F68 .4byte _08121F6E .4byte _08121FF8 _08121EC0: ldr r0, _08121EE8 adds r5, r4, r0 movs r1, 0 ldrsh r3, [r5, r1] ldr r0, _08121EEC ldrb r0, [r0] cmp r3, r0 bge _08121EF4 movs r2, 0x98 lsls r2, 2 adds r0, r4, r2 ldrb r0, [r0] ldrb r1, [r5] movs r2, 0x64 muls r2, r3 ldr r3, _08121EF0 adds r2, r3 bl sub_806D90C b _08122020 .align 2, 0 _08121EE8: .4byte 0x00000266 _08121EEC: .4byte gPlayerPartyCount _08121EF0: .4byte gPlayerParty _08121EF4: movs r0, 0 strh r0, [r5] movs r0, 0x99 lsls r0, 2 adds r1, r4, r0 b _08121FE8 _08121F00: bl sub_806DA98 ldr r1, _08121F10 movs r2, 0x99 lsls r2, 2 adds r1, r2 b _08121FE8 .align 2, 0 _08121F10: .4byte 0x0201b000 _08121F14: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] bl sub_806DC34 movs r2, 0x99 lsls r2, 2 adds r1, r4, r2 b _08121FE8 _08121F28: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] ldr r2, _08121F50 adds r5, r4, r2 ldrb r1, [r5] bl sub_806BD58 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08122020 movs r0, 0 strh r0, [r5] movs r0, 0x99 lsls r0, 2 adds r1, r4, r0 b _08121FE8 .align 2, 0 _08121F50: .4byte 0x00000266 _08121F54: bl sub_806E334 ldr r1, _08121F64 movs r2, 0x99 lsls r2, 2 adds r1, r2 b _08121FE8 .align 2, 0 _08121F64: .4byte 0x0201b000 _08121F68: bl sub_806E0C4 b _08121FE0 _08121F6E: movs r5, 0 b _08121FD8 _08121F72: movs r4, 0 adds r6, r5, 0x1 b _08121F7E _08121F78: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _08121F7E: cmp r4, 0x2 bhi _08121FA0 ldr r0, _08121FC4 adds r0, r4, r0 ldrb r0, [r0] cmp r0, r6 bne _08121F78 lsls r1, r4, 3 subs r1, r4 lsls r1, 25 movs r2, 0xE0 lsls r2, 21 adds r1, r2 lsrs r1, 24 adds r0, r5, 0 bl sub_806BC3C _08121FA0: cmp r4, 0x3 bne _08121FD4 movs r0, 0x64 muls r0, r5 ldr r1, _08121FC8 adds r0, r1 bl sub_8122030 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08121FCC adds r0, r5, 0 movs r1, 0x70 bl sub_806BC3C b _08121FD4 .align 2, 0 _08121FC4: .4byte gUnknown_02039270 _08121FC8: .4byte gPlayerParty _08121FCC: adds r0, r5, 0 movs r1, 0x7E bl sub_806BC3C _08121FD4: lsls r0, r6, 24 lsrs r5, r0, 24 _08121FD8: ldr r0, _08121FF0 ldrb r0, [r0] cmp r5, r0 bcc _08121F72 _08121FE0: ldr r1, _08121FF4 movs r0, 0x99 lsls r0, 2 adds r1, r0 _08121FE8: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _08122026 .align 2, 0 _08121FF0: .4byte gPlayerPartyCount _08121FF4: .4byte 0x0201b000 _08121FF8: ldr r1, _0812201C adds r5, r4, r1 ldrb r0, [r5] bl sub_806B58C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08122020 movs r1, 0 strh r1, [r5] movs r2, 0x99 lsls r2, 2 adds r0, r4, r2 strh r1, [r0] movs r0, 0x1 b _08122028 .align 2, 0 _0812201C: .4byte 0x00000266 _08122020: ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] _08122026: movs r0, 0 _08122028: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8121E78 thumb_func_start sub_8122030 sub_8122030: @ 8122030 push {r4,lr} adds r4, r0, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _0812207C ldr r0, _08122058 ldr r1, _0812205C adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _08122060 adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _0812207C b _081220B6 .align 2, 0 _08122058: .4byte 0x0201b000 _0812205C: .4byte 0x00000263 _08122060: ldr r0, _08122080 ldr r1, _08122084 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08122088 adds r0, r4, 0 movs r1, 0x38 bl GetMonData cmp r0, 0x32 bls _08122088 _0812207C: movs r0, 0 b _081220B8 .align 2, 0 _08122080: .4byte gSaveBlock2 _08122084: .4byte 0x00000554 _08122088: adds r0, r4, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r3, r0, 16 ldr r1, _081220C0 movs r0, 0 lsls r0, 1 adds r2, r0, r1 ldrh r0, [r2] ldr r1, _081220C4 cmp r0, r1 beq _081220B6 adds r4, r1, 0 adds r1, r2, 0 _081220A8: ldrh r0, [r1] cmp r0, r3 beq _0812207C adds r1, 0x2 ldrh r0, [r1] cmp r0, r4 bne _081220A8 _081220B6: movs r0, 0x1 _081220B8: pop {r4} pop {r1} bx r1 .align 2, 0 _081220C0: .4byte gBattleTowerBanlist _081220C4: .4byte 0x0000ffff thumb_func_end sub_8122030 thumb_func_start sub_81220C8 sub_81220C8: @ 81220C8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r1, _081220EC ldr r2, _081220F0 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _081221A2 ldr r0, _081220F4 ldrb r0, [r0, 0x2] cmp r0, 0 bne _08122100 movs r0, 0x11 b _081221A4 .align 2, 0 _081220EC: .4byte 0x0201b000 _081220F0: .4byte 0x00000263 _081220F4: .4byte gUnknown_02039270 _081220F8: movs r0, 0x12 b _081221A4 _081220FC: movs r0, 0x13 b _081221A4 _08122100: movs r5, 0 _08122102: ldr r4, _081221B4 adds r4, r5, r4 ldrb r0, [r4] movs r1, 0x64 muls r0, r1 ldr r2, _081221B8 adds r0, r2 movs r1, 0xB bl GetMonData ldr r1, _081221BC ldr r2, _081221C0 adds r6, r1, r2 strh r0, [r6] ldrb r0, [r4] movs r1, 0x64 muls r0, r1 ldr r2, _081221B8 adds r0, r2 movs r1, 0xC bl GetMonData ldr r1, _081221C4 strh r0, [r1] adds r1, r5, 0x1 lsls r0, r1, 24 lsrs r5, r0, 24 mov r10, r1 cmp r5, 0x2 bhi _08122198 ldr r2, _081221C8 adds r2, r6 mov r9, r2 movs r0, 0x64 mov r8, r0 ldr r7, _081221B8 _0812214A: ldr r0, _081221C0 add r0, r9 movs r1, 0 ldrsh r4, [r0, r1] ldr r0, _081221B4 adds r6, r5, r0 ldrb r0, [r6] mov r2, r8 muls r2, r0 adds r0, r2, 0 adds r0, r7 movs r1, 0xB bl GetMonData cmp r4, r0 beq _081220F8 movs r1, 0xA0 lsls r1, 2 add r1, r9 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _0812218E adds r4, r0, 0 ldrb r0, [r6] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r7 movs r1, 0xC bl GetMonData cmp r4, r0 beq _081220FC _0812218E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _0812214A _08122198: mov r2, r10 lsls r0, r2, 24 lsrs r5, r0, 24 cmp r5, 0x1 bls _08122102 _081221A2: movs r0, 0xFF _081221A4: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081221B4: .4byte gUnknown_02039270 _081221B8: .4byte gUnknown_030042FC _081221BC: .4byte 0x0201b000 _081221C0: .4byte 0x00000282 _081221C4: .4byte 0x0201b280 _081221C8: .4byte 0xfffffd7e thumb_func_end sub_81220C8 thumb_func_start sub_81221CC sub_81221CC: @ 81221CC push {lr} lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 ldr r3, _081221E4 _081221D6: adds r0, r1, r3 ldrb r0, [r0] cmp r0, r2 bne _081221E8 movs r0, 0x1 b _081221F4 .align 2, 0 _081221E4: .4byte gUnknown_02039270 _081221E8: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x2 bls _081221D6 movs r0, 0 _081221F4: pop {r1} bx r1 thumb_func_end sub_81221CC thumb_func_start sub_81221F8 sub_81221F8: @ 81221F8 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x5 movs r1, 0x1 bl sub_806D538 ldr r5, _08122248 ldrb r1, [r5] movs r0, 0x64 muls r0, r1 ldr r1, _0812224C adds r0, r1 bl sub_8122030 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08122284 ldrb r0, [r5] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 bl sub_81221CC lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x1 bne _0812225C ldr r1, _08122250 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 strh r2, [r0, 0x10] ldr r1, _08122254 ldr r2, _08122258 movs r0, 0x1 b _08122270 .align 2, 0 _08122248: .4byte gUnknown_03005CE0 _0812224C: .4byte gPlayerParty _08122250: .4byte gTasks _08122254: .4byte gUnknown_084017D8 _08122258: .4byte gUnknown_084017B0 _0812225C: ldr r1, _08122278 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x10] ldr r1, _0812227C ldr r2, _08122280 movs r0, 0 _08122270: movs r3, 0 bl sub_806E750 b _0812229E .align 2, 0 _08122278: .4byte gTasks _0812227C: .4byte gUnknown_084017D8 _08122280: .4byte gUnknown_084017B0 _08122284: ldr r1, _081222A4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0x2 strh r1, [r0, 0x10] ldr r1, _081222A8 ldr r2, _081222AC movs r0, 0x2 movs r3, 0 bl sub_806E750 _0812229E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081222A4: .4byte gTasks _081222A8: .4byte gUnknown_084017D8 _081222AC: .4byte gUnknown_084017B0 thumb_func_end sub_81221F8 thumb_func_start sub_81222B0 sub_81222B0: @ 81222B0 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _081222DC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _0812237C adds r0, r4, 0 bl sub_806BE38 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 beq _081222E0 cmp r0, 0x2 beq _08122354 b _0812237C .align 2, 0 _081222DC: .4byte gPaletteFade _081222E0: movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_806CA38 ldr r1, _08122320 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 beq _08122334 ldrb r1, [r1] movs r0, 0x64 muls r0, r1 ldr r1, _08122324 adds r0, r1 ldr r1, _08122328 bl GetMonNickname adds r0, r4, 0 bl sub_81221F8 ldr r1, _0812232C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08122330 str r1, [r0] b _08122342 .align 2, 0 _08122320: .4byte gUnknown_03005CE0 _08122324: .4byte gPlayerParty _08122328: .4byte gStringVar1 _0812232C: .4byte gTasks _08122330: .4byte sub_812238C _08122334: ldr r0, _0812234C lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08122350 str r0, [r1] _08122342: adds r0, r4, 0 bl sub_808B5B4 b _0812237C .align 2, 0 _0812234C: .4byte gTasks _08122350: .4byte sub_81224A8 _08122354: movs r0, 0x5 bl PlaySE bl sub_8121E58 movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _08122384 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08122388 str r1, [r0] _0812237C: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08122384: .4byte gTasks _08122388: .4byte sub_8122450 thumb_func_end sub_81222B0 thumb_func_start sub_812238C sub_812238C: @ 812238C push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 adds r4, r7, 0 ldr r0, _081223C8 ldrb r1, [r0, 0x7] movs r3, 0x80 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0812244A ldr r2, _081223CC ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _081223D0 bl GetMenuCursorPos lsls r0, 24 cmp r0, 0 beq _0812244A movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 bl MoveMenuCursor b _0812244A .align 2, 0 _081223C8: .4byte gPaletteFade _081223CC: .4byte gMain _081223D0: adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _081223F2 bl GetMenuCursorPos lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _0812244A movs r0, 0x5 bl PlaySE movs r0, 0x1 bl MoveMenuCursor b _0812244A _081223F2: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0812243C movs r0, 0x5 bl PlaySE ldr r1, _08122430 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrb r4, [r0, 0x10] ldr r5, _08122434 ldr r6, _08122438 bl GetMenuCursorPos adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_806E81C adds r1, r0, 0 adds r0, r7, 0 bl _call_via_r1 b _0812244A .align 2, 0 _08122430: .4byte gTasks _08122434: .4byte gUnknown_084017D8 _08122438: .4byte gUnknown_084017B0 _0812243C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0812244A adds r0, r4, 0 bl sub_8122838 _0812244A: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_812238C thumb_func_start sub_8122450 sub_8122450: @ 8122450 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08122478 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08122470 ldr r0, _0812247C ldr r0, [r0, 0x8] bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _08122470: pop {r4} pop {r0} bx r0 .align 2, 0 _08122478: .4byte gPaletteFade _0812247C: .4byte gMain thumb_func_end sub_8122450 thumb_func_start sub_8122480 sub_8122480: @ 8122480 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _081224A4 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0812249A movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081224A0 _0812249A: adds r0, r2, 0 bl sub_8122838 _081224A0: pop {r0} bx r0 .align 2, 0 _081224A4: .4byte gMain thumb_func_end sub_8122480 thumb_func_start sub_81224A8 sub_81224A8: @ 81224A8 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 bl sub_81220C8 lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _081224D0 movs r1, 0 bl sub_806D538 ldr r0, _081224CC lsls r1, r4, 2 adds r1, r4 b _08122518 .align 2, 0 _081224CC: .4byte gTasks _081224D0: ldr r0, _081224F8 ldrb r0, [r0] cmp r0, 0 beq _08122504 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _081224FC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08122500 str r1, [r0] b _08122520 .align 2, 0 _081224F8: .4byte gUnknown_02039270 _081224FC: .4byte gTasks _08122500: .4byte sub_8122450 _08122504: movs r0, 0x20 bl PlaySE movs r0, 0xE movs r1, 0 bl sub_806D538 ldr r0, _08122528 lsls r1, r5, 2 adds r1, r5 _08122518: lsls r1, 3 adds r1, r0 ldr r0, _0812252C str r0, [r1] _08122520: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08122528: .4byte gTasks _0812252C: .4byte sub_8122480 thumb_func_end sub_81224A8 thumb_func_start sub_8122530 sub_8122530: @ 8122530 push {r4,r5,lr} ldr r5, _08122578 ldr r4, _0812257C _08122536: bl sub_806B124 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08122590 ldrb r0, [r5] ldrb r1, [r4] bl sub_806C994 ldrb r0, [r5] movs r1, 0 bl sub_806C658 ldrb r1, [r4] movs r0, 0x64 muls r0, r1 ldr r1, _08122580 adds r0, r1 ldr r1, _08122584 bl GetMonNickname ldr r1, _08122588 ldrb r0, [r4] strb r0, [r1] ldrb r0, [r5] bl sub_81221F8 ldr r0, _0812258C bl SetMainCallback2 b _0812259C .align 2, 0 _08122578: .4byte 0x0201b260 _0812257C: .4byte gUnknown_020384F0 _08122580: .4byte gPlayerParty _08122584: .4byte gStringVar1 _08122588: .4byte gUnknown_03005CE0 _0812258C: .4byte sub_806AEDC _08122590: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08122536 _0812259C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8122530 thumb_func_start sub_81225A4 sub_81225A4: @ 81225A4 push {lr} ldr r2, _081225C8 ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r2, _081225CC movs r0, 0x4 movs r1, 0xFF movs r3, 0x5 bl sub_806AF4C ldr r0, _081225D0 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _081225C8: .4byte gPaletteFade _081225CC: .4byte sub_812238C _081225D0: .4byte sub_8122530 thumb_func_end sub_81225A4 thumb_func_start sub_81225D4 sub_81225D4: @ 81225D4 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r3, r0, 24 ldr r0, _0812263C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _08122632 ldr r2, _08122640 ldr r1, _08122644 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0xE] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r4, [r0, 0x2E] lsls r4, 24 lsrs r4, 24 adds r0, r3, 0 bl DestroyTask ldr r0, _08122648 ldr r1, _0812264C adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, _08122650 ldr r1, _08122654 ldrb r2, [r1] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r3, _08122658 str r5, [sp] adds r1, r4, 0 bl sub_809D8BC _08122632: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812263C: .4byte gPaletteFade _08122640: .4byte gSprites _08122644: .4byte gTasks _08122648: .4byte 0x0201b000 _0812264C: .4byte 0x00000262 _08122650: .4byte gPlayerParty _08122654: .4byte gPlayerPartyCount _08122658: .4byte sub_81225A4 thumb_func_end sub_81225D4 thumb_func_start sub_812265C sub_812265C: @ 812265C 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, _0812268C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08122690 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0812268C: .4byte gTasks _08122690: .4byte sub_81225D4 thumb_func_end sub_812265C thumb_func_start sub_8122694 sub_8122694: @ 8122694 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r3, _081226D4 ldr r2, _081226D8 _081226A0: adds r1, r4, r3 ldrb r0, [r1] cmp r0, 0 bne _081226DC ldrb r0, [r2] adds r0, 0x1 strb r0, [r1] ldrb r0, [r2] lsls r1, r4, 3 subs r1, r4 lsls r1, 25 movs r2, 0xE0 lsls r2, 21 adds r1, r2 lsrs r1, 24 bl sub_806BC3C cmp r4, 0x2 bne _081226CC adds r0, r5, 0 bl sub_806C890 _081226CC: adds r0, r5, 0 bl sub_8122838 b _08122716 .align 2, 0 _081226D4: .4byte gUnknown_02039270 _081226D8: .4byte gUnknown_03005CE0 _081226DC: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _081226A0 movs r0, 0x20 bl PlaySE movs r0, 0x14 movs r1, 0xA movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect bl sub_8072DEC bl sub_806D5A4 ldr r0, _0812271C movs r1, 0x1 bl sub_806E834 ldr r1, _08122720 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _08122724 str r1, [r0] _08122716: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812271C: .4byte gOtherText_NoMoreThreePoke _08122720: .4byte gTasks _08122724: .4byte sub_8122728 thumb_func_end sub_8122694 thumb_func_start sub_8122728 sub_8122728: @ 8122728 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08122768 ldrb r0, [r0] cmp r0, 0x1 beq _08122760 ldr r0, _0812276C ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0812274A movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08122760 _0812274A: movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect bl sub_8072DEC adds r0, r4, 0 bl sub_8122838 _08122760: pop {r4} pop {r0} bx r0 .align 2, 0 _08122768: .4byte gUnknown_0202E8F6 _0812276C: .4byte gMain thumb_func_end sub_8122728 thumb_func_start sub_8122770 sub_8122770: @ 8122770 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 ldr r5, _08122798 ldr r3, _0812279C _0812277C: adds r2, r4, r3 ldrb r1, [r2] ldrb r0, [r5] adds r0, 0x1 cmp r1, r0 bne _081227B4 movs r1, 0 strb r1, [r2] cmp r4, 0 beq _081227A0 cmp r4, 0x1 beq _081227AC b _081227BE .align 2, 0 _08122798: .4byte gUnknown_03005CE0 _0812279C: .4byte gUnknown_02039270 _081227A0: ldrb r0, [r3, 0x1] strb r0, [r3] ldrb r0, [r3, 0x2] strb r0, [r3, 0x1] strb r4, [r3, 0x2] b _081227BE _081227AC: ldrb r0, [r3, 0x2] strb r0, [r3, 0x1] strb r1, [r3, 0x2] b _081227BE _081227B4: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _0812277C _081227BE: ldrb r0, [r5] movs r1, 0x70 bl sub_806BC3C ldr r4, _081227F8 ldrb r0, [r4] cmp r0, 0 beq _081227DA subs r0, 0x1 lsls r0, 24 lsrs r0, 24 movs r1, 0x1C bl sub_806BC3C _081227DA: ldrb r0, [r4, 0x1] cmp r0, 0 beq _081227EC subs r0, 0x1 lsls r0, 24 lsrs r0, 24 movs r1, 0x2A bl sub_806BC3C _081227EC: adds r0, r6, 0 bl sub_8122838 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081227F8: .4byte gUnknown_02039270 thumb_func_end sub_8122770 thumb_func_start sub_81227FC sub_81227FC: @ 81227FC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0xA movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect bl sub_8072DEC movs r0, 0 movs r1, 0 bl sub_806D538 ldr r1, _08122830 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08122834 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08122830: .4byte gTasks _08122834: .4byte sub_81222B0 thumb_func_end sub_81227FC thumb_func_start sub_8122838 sub_8122838: @ 8122838 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_81227FC pop {r4} pop {r0} bx r0 thumb_func_end sub_8122838 thumb_func_start sub_8122854 sub_8122854: @ 8122854 push {r4,lr} ldr r1, _08122874 movs r2, 0x99 lsls r2, 2 adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r4, r1, 0 cmp r0, 0x4 bhi _081228E0 lsls r0, 2 ldr r1, _08122878 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08122874: .4byte 0x0201b000 _08122878: .4byte _0812287C .align 2, 0 _0812287C: .4byte _08122890 .4byte _081228A4 .4byte _081228AA .4byte _081228BE .4byte _081228D8 _08122890: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] bl sub_81228E8 movs r2, 0x99 lsls r2, 2 adds r1, r4, r2 b _081228CA _081228A4: bl sub_806DA98 b _081228C2 _081228AA: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] bl sub_8122950 movs r2, 0x99 lsls r2, 2 adds r1, r4, r2 b _081228CA _081228BE: bl sub_81229B8 _081228C2: ldr r1, _081228D4 movs r0, 0x99 lsls r0, 2 adds r1, r0 _081228CA: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _081228E0 .align 2, 0 _081228D4: .4byte 0x0201b000 _081228D8: bl sub_806B908 movs r0, 0x1 b _081228E2 _081228E0: movs r0, 0 _081228E2: pop {r4} pop {r1} bx r1 thumb_func_end sub_8122854 thumb_func_start sub_81228E8 sub_81228E8: @ 81228E8 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 _081228F0: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _08122948 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _08122912 adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x3 adds r3, r4, 0 bl sub_806D880 _08122912: ldr r0, _0812294C lsls r1, r5, 5 adds r3, r1, r0 ldrh r0, [r3] cmp r0, 0 beq _08122936 adds r4, r5, 0x3 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0x3 bl sub_806D99C adds r0, r6, 0 adds r1, r4, 0 bl sub_806D50C _08122936: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _081228F0 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08122948: .4byte gPlayerParty _0812294C: .4byte gUnknown_02023A00 thumb_func_end sub_81228E8 thumb_func_start sub_8122950 sub_8122950: @ 8122950 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 _08122958: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _081229B0 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _08122984 adds r0, r4, 0 movs r1, 0xC bl GetMonData adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 adds r0, r6, 0 adds r1, r5, 0 bl sub_806DCD4 _08122984: ldr r0, _081229B4 lsls r1, r5, 5 adds r2, r1, r0 ldrh r0, [r2] cmp r0, 0 beq _0812299E adds r1, r5, 0x3 lsls r1, 24 lsrs r1, 24 ldrh r2, [r2, 0x2] adds r0, r6, 0 bl sub_806DCD4 _0812299E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _08122958 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081229B0: .4byte gPlayerParty _081229B4: .4byte gUnknown_02023A00 thumb_func_end sub_8122950 thumb_func_start sub_81229B8 sub_81229B8: @ 81229B8 push {r4-r7,lr} movs r5, 0 movs r7, 0x64 ldr r6, _08122A00 _081229C0: adds r0, r5, 0 muls r0, r7 adds r4, r0, r6 adds r0, r4, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _08122A36 adds r0, r5, 0 movs r1, 0x3 adds r2, r4, 0 bl sub_806E4A4 adds r0, r4, 0 bl sub_80A1CD8 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08122A04 cmp r0, 0x6 beq _08122A04 subs r2, r0, 0x1 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 movs r1, 0x3 bl sub_806E104 b _08122A12 .align 2, 0 _08122A00: .4byte gPlayerParty _08122A04: adds r2, r5, 0 muls r2, r7 adds r2, r6 adds r0, r5, 0 movs r1, 0x3 bl sub_806E294 _08122A12: adds r4, r5, 0 muls r4, r7 adds r4, r6 adds r0, r5, 0 movs r1, 0x3 adds r2, r4, 0 bl sub_806E3C0 adds r0, r5, 0 movs r1, 0x3 adds r2, r4, 0 bl sub_806E050 adds r0, r5, 0 movs r1, 0x3 adds r2, r4, 0 bl sub_806E630 _08122A36: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _081229C0 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81229B8 thumb_func_start sub_8122A48 sub_8122A48: @ 8122A48 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, _08122AA0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08122A98 ldr r0, _08122AA4 lsls r4, r6, 2 adds r4, r6 lsls r4, 3 adds r4, r0 movs r0, 0x1E strh r0, [r4, 0x8] ldr r5, _08122AA8 ldrh r1, [r5] adds r0, r6, 0 movs r2, 0 bl sub_806D4AC ldrh r1, [r5, 0x20] adds r0, r6, 0 movs r2, 0x1 bl sub_806D4AC adds r5, 0x40 ldrh r1, [r5] adds r0, r6, 0 movs r2, 0x2 bl sub_806D4AC ldr r0, _08122AAC str r0, [r4] ldr r0, _08122AB0 ldr r1, _08122AB4 adds r0, r1 movs r1, 0x1 strb r1, [r0] _08122A98: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08122AA0: .4byte gPaletteFade _08122AA4: .4byte gTasks _08122AA8: .4byte gUnknown_02023A00 _08122AAC: .4byte sub_8122AB8 _08122AB0: .4byte 0x0201b000 _08122AB4: .4byte 0x00000261 thumb_func_end sub_8122A48 thumb_func_start sub_8122AB8 sub_8122AB8: @ 8122AB8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _08122AFC ldrh r1, [r0, 0x20] adds r0, 0x40 ldrh r2, [r0] adds r0, r4, 0 bl sub_806D3B4 ldr r1, _08122B00 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 bne _08122AF4 ldr r0, _08122B04 str r0, [r1] ldr r0, _08122B08 ldr r1, _08122B0C adds r0, r1 movs r1, 0x2 strb r1, [r0] movs r0, 0x78 bl PlaySE _08122AF4: pop {r4} pop {r0} bx r0 .align 2, 0 _08122AFC: .4byte gUnknown_02023A00 _08122B00: .4byte gTasks _08122B04: .4byte sub_8122B10 _08122B08: .4byte 0x0201b000 _08122B0C: .4byte 0x00000261 thumb_func_end sub_8122AB8 thumb_func_start sub_8122B10 sub_8122B10: @ 8122B10 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r0, 0 mov r8, r0 ldr r1, _08122B5C mov r10, r1 ldr r2, _08122B60 mov r9, r2 _08122B2E: mov r1, r8 lsls r0, r1, 5 mov r2, r10 adds r6, r0, r2 ldrh r1, [r6] adds r7, r0, 0 cmp r1, 0 beq _08122BDA mov r4, r8 adds r4, 0x3 lsls r0, r4, 24 lsrs r5, r0, 24 ldrh r2, [r6, 0x10] ldrh r3, [r6, 0x12] adds r0, r5, 0 movs r1, 0x3 bl sub_806E420 ldrh r0, [r6, 0x10] cmp r0, 0 bne _08122B64 movs r2, 0x7 b _08122B76 .align 2, 0 _08122B5C: .4byte gUnknown_02023A00 _08122B60: .4byte gStringVar1 _08122B64: ldr r1, _08122B88 adds r0, r7, r1 ldr r0, [r0] bl pokemon_ailments_get_primary lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _08122B8C _08122B76: lsls r0, r4, 24 lsrs r0, 24 subs r2, 0x1 lsls r2, 24 lsrs r2, 24 movs r1, 0x3 bl sub_806E104 b _08122B96 .align 2, 0 _08122B88: .4byte gUnknown_02023A14 _08122B8C: ldrb r2, [r6, 0xF] adds r0, r5, 0 movs r1, 0x3 bl sub_806E1F4 _08122B96: mov r2, r10 adds r6, r7, r2 ldrh r0, [r6] ldrb r1, [r6, 0x1C] lsls r4, 24 lsrs r4, 24 ldr r2, _08122C0C adds r5, r7, r2 str r5, [sp] movs r2, 0x3 adds r3, r4, 0 bl sub_806E35C mov r0, r9 adds r1, r5, 0 bl StringCopy mov r0, r9 bl StringGetEnd10 mov r0, r9 bl sub_814A568 adds r0, r4, 0 movs r1, 0x3 mov r2, r9 bl box_print ldrh r2, [r6, 0x10] ldrh r3, [r6, 0x12] adds r0, r4, 0 movs r1, 0x3 bl sub_806E574 _08122BDA: mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 cmp r0, 0x2 bls _08122B2E ldr r1, _08122C10 ldr r2, [sp, 0x4] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 ldr r1, _08122C14 str r1, [r0] movs r1, 0 strh r1, [r0, 0x8] add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08122C0C: .4byte gUnknown_02023A04 _08122C10: .4byte gTasks _08122C14: .4byte sub_8122C18 thumb_func_end sub_8122B10 thumb_func_start sub_8122C18 sub_8122C18: @ 8122C18 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r2, _08122C58 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] lsls r0, 16 movs r1, 0x80 lsls r1, 17 cmp r0, r1 bne _08122C4E movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _08122C5C str r0, [r4] _08122C4E: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08122C58: .4byte gTasks _08122C5C: .4byte sub_8122450 thumb_func_end sub_8122C18 thumb_func_start unref_sub_8122C60 unref_sub_8122C60: @ 8122C60 push {r4,r5,lr} ldr r1, _08122C80 movs r2, 0x99 lsls r2, 2 adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r4, r1, 0 cmp r0, 0x7 bls _08122C76 b _08122D8A _08122C76: lsls r0, 2 ldr r1, _08122C84 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08122C80: .4byte 0x0201b000 _08122C84: .4byte _08122C88 .align 2, 0 _08122C88: .4byte _08122CA8 .4byte _08122CE8 .4byte _08122CEE .4byte _08122D02 .4byte _08122D2C .4byte _08122D32 .4byte _08122D44 .4byte _08122D5C _08122CA8: ldr r0, _08122CD0 adds r5, r4, r0 movs r1, 0 ldrsh r3, [r5, r1] ldr r0, _08122CD4 ldrb r0, [r0] cmp r3, r0 bge _08122CDC movs r2, 0x98 lsls r2, 2 adds r0, r4, r2 ldrb r0, [r0] ldrb r1, [r5] movs r2, 0x64 muls r2, r3 ldr r3, _08122CD8 adds r2, r3 bl sub_806D90C b _08122D84 .align 2, 0 _08122CD0: .4byte 0x00000266 _08122CD4: .4byte gPlayerPartyCount _08122CD8: .4byte gPlayerParty _08122CDC: movs r0, 0 strh r0, [r5] movs r0, 0x99 lsls r0, 2 adds r1, r4, r0 b _08122D50 _08122CE8: bl sub_806DA98 b _08122D48 _08122CEE: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] bl sub_806DC34 movs r2, 0x99 lsls r2, 2 adds r1, r4, r2 b _08122D50 _08122D02: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] ldr r2, _08122D28 adds r5, r4, r2 ldrb r1, [r5] bl sub_806BD58 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08122D84 movs r0, 0 strh r0, [r5] movs r0, 0x99 lsls r0, 2 adds r1, r4, r0 b _08122D50 .align 2, 0 _08122D28: .4byte 0x00000266 _08122D2C: bl sub_806E334 b _08122D48 _08122D32: bl sub_806E0C4 ldr r1, _08122D40 movs r0, 0x99 lsls r0, 2 adds r1, r0 b _08122D50 .align 2, 0 _08122D40: .4byte 0x0201b000 _08122D44: bl sub_806BCE8 _08122D48: ldr r1, _08122D58 movs r2, 0x99 lsls r2, 2 adds r1, r2 _08122D50: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _08122D8A .align 2, 0 _08122D58: .4byte 0x0201b000 _08122D5C: ldr r0, _08122D80 adds r5, r4, r0 ldrb r0, [r5] bl sub_806B58C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08122D84 movs r1, 0 strh r1, [r5] movs r2, 0x99 lsls r2, 2 adds r0, r4, r2 strh r1, [r0] movs r0, 0x1 b _08122D8C .align 2, 0 _08122D80: .4byte 0x00000266 _08122D84: ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] _08122D8A: movs r0, 0 _08122D8C: pop {r4,r5} pop {r1} bx r1 thumb_func_end unref_sub_8122C60 thumb_func_start sub_8122D94 sub_8122D94: @ 8122D94 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08122DCC ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08122DD0 adds r0, r1 movs r1, 0x2D bl GetMonData adds r2, r0, 0 cmp r2, 0 bne _08122DE0 ldr r1, _08122DD4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 strh r2, [r0, 0x10] ldr r1, _08122DD8 ldr r2, _08122DDC movs r0, 0 movs r3, 0 bl sub_806E750 b _08122DFA .align 2, 0 _08122DCC: .4byte gUnknown_03005CE0 _08122DD0: .4byte gPlayerParty _08122DD4: .4byte gTasks _08122DD8: .4byte gUnknown_08401810 _08122DDC: .4byte gUnknown_084017F0 _08122DE0: ldr r1, _08122E00 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0x1 strh r1, [r0, 0x10] ldr r1, _08122E04 ldr r2, _08122E08 movs r0, 0x1 movs r3, 0 bl sub_806E750 _08122DFA: pop {r4} pop {r0} bx r0 .align 2, 0 _08122E00: .4byte gTasks _08122E04: .4byte gUnknown_08401810 _08122E08: .4byte gUnknown_084017F0 thumb_func_end sub_8122D94 thumb_func_start sub_8122E0C sub_8122E0C: @ 8122E0C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08122E34 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08122E9C adds r0, r4, 0 bl sub_806BD80 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 beq _08122E38 cmp r0, 0x2 beq _08122E84 b _08122E9C .align 2, 0 _08122E34: .4byte gPaletteFade _08122E38: movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_806CA38 ldr r1, _08122E70 strb r0, [r1] ldrb r1, [r1] movs r0, 0x64 muls r0, r1 ldr r1, _08122E74 adds r0, r1 ldr r1, _08122E78 bl GetMonNickname adds r0, r4, 0 bl sub_8122D94 ldr r1, _08122E7C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08122E80 str r1, [r0] b _08122E9C .align 2, 0 _08122E70: .4byte gUnknown_03005CE0 _08122E74: .4byte gPlayerParty _08122E78: .4byte gStringVar1 _08122E7C: .4byte gTasks _08122E80: .4byte sub_8122EAC _08122E84: movs r0, 0x5 bl PlaySE ldr r1, _08122EA4 movs r0, 0xFF strb r0, [r1] ldr r1, _08122EA8 movs r0, 0xFF strh r0, [r1] adds r0, r4, 0 bl sub_8123138 _08122E9C: pop {r4} pop {r0} bx r0 .align 2, 0 _08122EA4: .4byte gUnknown_03005CE0 _08122EA8: .4byte gUnknown_0202E8CC thumb_func_end sub_8122E0C thumb_func_start sub_8122EAC sub_8122EAC: @ 8122EAC push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 adds r4, r7, 0 ldr r0, _08122EE8 ldrb r1, [r0, 0x7] movs r3, 0x80 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _08122F6A ldr r2, _08122EEC ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08122EF0 bl GetMenuCursorPos lsls r0, 24 cmp r0, 0 beq _08122F6A movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 bl MoveMenuCursor b _08122F6A .align 2, 0 _08122EE8: .4byte gPaletteFade _08122EEC: .4byte gMain _08122EF0: adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08122F12 bl GetMenuCursorPos lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _08122F6A movs r0, 0x5 bl PlaySE movs r0, 0x1 bl MoveMenuCursor b _08122F6A _08122F12: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08122F5C movs r0, 0x5 bl PlaySE ldr r1, _08122F50 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrb r4, [r0, 0x10] ldr r5, _08122F54 ldr r6, _08122F58 bl GetMenuCursorPos adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_806E81C adds r1, r0, 0 adds r0, r7, 0 bl _call_via_r1 b _08122F6A .align 2, 0 _08122F50: .4byte gTasks _08122F54: .4byte gUnknown_08401810 _08122F58: .4byte gUnknown_084017F0 _08122F5C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08122F6A adds r0, r4, 0 bl sub_81230F4 _08122F6A: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8122EAC thumb_func_start sub_8122F70 sub_8122F70: @ 8122F70 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _08122F88 ldr r1, _08122F8C ldrb r1, [r1] strh r1, [r2] bl sub_8123138 pop {r0} bx r0 .align 2, 0 _08122F88: .4byte gUnknown_0202E8CC _08122F8C: .4byte gUnknown_03005CE0 thumb_func_end sub_8122F70 thumb_func_start sub_8122F90 sub_8122F90: @ 8122F90 push {r4,r5,lr} ldr r5, _08122FD8 ldr r4, _08122FDC _08122F96: bl sub_806B124 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08122FF0 ldrb r0, [r5] ldrb r1, [r4] bl sub_806C994 ldrb r0, [r5] movs r1, 0 bl sub_806BF74 ldrb r1, [r4] movs r0, 0x64 muls r0, r1 ldr r1, _08122FE0 adds r0, r1 ldr r1, _08122FE4 bl GetMonNickname ldr r1, _08122FE8 ldrb r0, [r4] strb r0, [r1] ldrb r0, [r5] bl sub_8122D94 ldr r0, _08122FEC bl SetMainCallback2 b _08122FFC .align 2, 0 _08122FD8: .4byte 0x0201b260 _08122FDC: .4byte gUnknown_020384F0 _08122FE0: .4byte gPlayerParty _08122FE4: .4byte gStringVar1 _08122FE8: .4byte gUnknown_03005CE0 _08122FEC: .4byte sub_806AEDC _08122FF0: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08122F96 _08122FFC: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8122F90 thumb_func_start sub_8123004 sub_8123004: @ 8123004 push {lr} ldr r2, _08123028 ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r2, _0812302C movs r0, 0x6 movs r1, 0xFF movs r3, 0x5 bl sub_806AF4C ldr r0, _08123030 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _08123028: .4byte gPaletteFade _0812302C: .4byte sub_8122EAC _08123030: .4byte sub_8122F90 thumb_func_end sub_8123004 thumb_func_start sub_8123034 sub_8123034: @ 8123034 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r3, r0, 24 ldr r0, _0812309C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _08123092 ldr r2, _081230A0 ldr r1, _081230A4 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0xE] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r4, [r0, 0x2E] lsls r4, 24 lsrs r4, 24 adds r0, r3, 0 bl DestroyTask ldr r0, _081230A8 ldr r1, _081230AC adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, _081230B0 ldr r1, _081230B4 ldrb r2, [r1] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r3, _081230B8 str r5, [sp] adds r1, r4, 0 bl sub_809D8BC _08123092: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812309C: .4byte gPaletteFade _081230A0: .4byte gSprites _081230A4: .4byte gTasks _081230A8: .4byte 0x0201b000 _081230AC: .4byte 0x00000262 _081230B0: .4byte gPlayerParty _081230B4: .4byte gPlayerPartyCount _081230B8: .4byte sub_8123004 thumb_func_end sub_8123034 thumb_func_start sub_81230BC sub_81230BC: @ 81230BC 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, _081230EC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _081230F0 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _081230EC: .4byte gTasks _081230F0: .4byte sub_8123034 thumb_func_end sub_81230BC thumb_func_start sub_81230F4 sub_81230F4: @ 81230F4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl PlaySE movs r0, 0x14 movs r1, 0xA movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect bl sub_8072DEC movs r0, 0xF movs r1, 0 bl sub_806D538 ldr r1, _08123130 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08123134 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08123130: .4byte gTasks _08123134: .4byte sub_8122E0C thumb_func_end sub_81230F4 thumb_func_start sub_8123138 sub_8123138: @ 8123138 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, _08123168 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0812316C str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08123168: .4byte gTasks _0812316C: .4byte sub_8123170 thumb_func_end sub_8123138 thumb_func_start sub_8123170 sub_8123170: @ 8123170 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0812319C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08123194 ldr r0, _081231A0 ldr r1, _081231A4 str r1, [r0] ldr r0, _081231A8 bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _08123194: pop {r4} pop {r0} bx r0 .align 2, 0 _0812319C: .4byte gPaletteFade _081231A0: .4byte gUnknown_0300485C _081231A4: .4byte sub_81231AC _081231A8: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_8123170 thumb_func_start sub_81231AC sub_81231AC: @ 81231AC push {lr} bl pal_fill_black ldr r0, _081231C0 movs r1, 0xA bl CreateTask pop {r0} bx r0 .align 2, 0 _081231C0: .4byte sub_81231C4 thumb_func_end sub_81231AC thumb_func_start sub_81231C4 sub_81231C4: @ 81231C4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_807D770 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081231E4 adds r0, r4, 0 bl DestroyTask bl ScriptContext2_Disable bl EnableBothScriptContexts _081231E4: pop {r4} pop {r0} bx r0 thumb_func_end sub_81231C4 thumb_func_start sub_81231EC sub_81231EC: @ 81231EC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08123210 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0812320A ldr r0, _08123214 bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _0812320A: pop {r4} pop {r0} bx r0 .align 2, 0 _08123210: .4byte gPaletteFade _08123214: .4byte sub_8123244 thumb_func_end sub_81231EC thumb_func_start sub_8123218 sub_8123218: @ 8123218 push {lr} sub sp, 0x4 bl ScriptContext2_Enable ldr r0, _08123240 movs r1, 0x1 bl CreateTask movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08123240: .4byte sub_81231EC thumb_func_end sub_8123218 thumb_func_start sub_8123244 sub_8123244: @ 8123244 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 ldr r1, _08123268 ldr r2, _0812326C adds r0, r1, r2 ldrb r0, [r0] mov r9, r1 cmp r0, 0x8 bhi _08123298 lsls r0, 2 ldr r1, _08123270 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08123268: .4byte gMain _0812326C: .4byte 0x0000043c _08123270: .4byte _08123274 .align 2, 0 _08123274: .4byte _08123298 .4byte _08123384 .4byte _081233E8 .4byte _08123484 .4byte _081234A0 .4byte _08123504 .4byte _08123598 .4byte _08123678 .4byte _081236B0 _08123298: movs r0, 0 bl SetVBlankCallback bl remove_some_task movs r3, 0xC0 lsls r3, 19 movs r4, 0xC0 lsls r4, 9 add r0, sp, 0xC mov r9, r0 add r2, sp, 0x8 movs r6, 0 ldr r1, _08123368 movs r5, 0x80 lsls r5, 5 ldr r7, _0812336C movs r0, 0x81 lsls r0, 24 mov r8, r0 _081232C0: strh r6, [r2] add r0, sp, 0x8 str r0, [r1] str r3, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r5 subs r4, r5 cmp r4, r5 bhi _081232C0 strh r6, [r2] add r2, sp, 0x8 str r2, [r1] str r3, [r1, 0x4] lsrs r0, r4, 1 mov r2, r8 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0xE0 lsls r0, 19 movs r3, 0x80 lsls r3, 3 movs r4, 0 str r4, [sp, 0xC] ldr r2, _08123368 mov r1, r9 str r1, [r2] str r0, [r2, 0x4] lsrs r0, r3, 2 movs r1, 0x85 lsls r1, 24 orrs r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r1, 0xA0 lsls r1, 19 add r0, sp, 0x8 strh r4, [r0] str r0, [r2] str r1, [r2, 0x4] lsrs r3, 1 movs r4, 0x81 lsls r4, 24 orrs r3, r4 str r3, [r2, 0x8] ldr r0, [r2, 0x8] ldr r1, _08123370 ldr r0, _08123374 str r0, [r1] adds r3, r0, 0 ldr r5, _08123378 ldr r0, _0812337C mov r9, r0 add r1, sp, 0x8 movs r7, 0 movs r6, 0x80 lsls r6, 5 ldr r0, _0812336C mov r8, r0 _08123338: strh r7, [r1] add r0, sp, 0x8 str r0, [r2] str r3, [r2, 0x4] mov r0, r8 str r0, [r2, 0x8] ldr r0, [r2, 0x8] adds r3, r6 subs r5, r6 cmp r5, r6 bhi _08123338 strh r7, [r1] add r1, sp, 0x8 str r1, [r2] str r3, [r2, 0x4] lsrs r0, r5, 1 orrs r0, r4 str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r1, _08123380 add r1, r9 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _08123368: .4byte 0x040000d4 _0812336C: .4byte 0x81000800 _08123370: .4byte gUnknown_02039274 _08123374: .4byte 0x02017000 _08123378: .4byte 0x000010fc _0812337C: .4byte gMain _08123380: .4byte 0x0000043c _08123384: bl ResetSpriteData bl ResetTasks bl FreeAllSpritePalettes bl ResetPaletteFade bl sub_807C828 movs r4, 0 ldr r0, _081233D4 ldr r0, [r0] adds r1, r0, 0 adds r1, 0xF0 movs r2, 0 _081233A4: lsls r0, r4, 2 adds r0, r1, r0 str r2, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x13 bls _081233A4 bl InitMapMusic bl ResetMapMusic ldr r2, _081233D8 ldr r1, _081233DC movs r0, 0 strh r0, [r1] strh r0, [r2] ldr r1, _081233E0 ldr r2, _081233E4 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _081233D4: .4byte gUnknown_08396FC4 _081233D8: .4byte gSpriteCoordOffsetX _081233DC: .4byte gSpriteCoordOffsetY _081233E0: .4byte gMain _081233E4: .4byte 0x0000043c _081233E8: movs r4, 0 ldr r5, _08123454 _081233EC: lsls r0, r4, 3 adds r0, r5 bl LoadCompressedObjectPic adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _081233EC ldr r0, _08123458 bl LoadSpritePalettes ldr r0, _0812345C ldr r4, _08123460 adds r1, r4, 0 bl sub_800D238 ldr r0, _08123464 movs r2, 0xB4 lsls r2, 1 adds r1, r4, r2 bl sub_800D238 ldr r0, _08123468 movs r2, 0xA5 lsls r2, 3 adds r1, r4, r2 bl sub_800D238 ldr r0, _0812346C ldr r1, _08123470 adds r4, r1 adds r1, r4, 0 bl sub_800D238 ldr r0, _08123474 movs r1, 0 movs r2, 0x80 bl LoadPalette ldr r0, _08123478 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r1, _0812347C ldr r2, _08123480 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _08123454: .4byte gUnknown_08401CF8 _08123458: .4byte gUnknown_08401D18 _0812345C: .4byte gCableCarMtChimneyTilemap _08123460: .4byte 0x02019000 _08123464: .4byte gCableCarTreeTilemap _08123468: .4byte gCableCarMountainTilemap _0812346C: .4byte gCableCarPylonStemTilemap _08123470: .4byte 0x000009d8 _08123474: .4byte gCableCarBG_Pal _08123478: .4byte gCableCarBG_Gfx _0812347C: .4byte gMain _08123480: .4byte 0x0000043c _08123484: bl sub_8124118 bl RunTasks ldr r1, _08123498 ldr r0, _0812349C adds r1, r0 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _08123498: .4byte gMain _0812349C: .4byte 0x0000043c _081234A0: ldr r0, _081234B4 ldr r0, [r0] ldrb r0, [r0, 0x2] cmp r0, 0x7 bne _081234BC ldr r1, _081234B8 add r1, r9 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _081234B4: .4byte gUnknown_02039274 _081234B8: .4byte 0x0000043c _081234BC: ldr r0, _081234FC ldr r0, [r0] adds r1, r0, 0 adds r1, 0xF0 ldr r0, [r1] cmp r0, 0 bne _081234CC b _0812370E _081234CC: movs r4, 0 adds r3, r1, 0 movs r5, 0xD negs r5, r5 _081234D4: lsls r0, r4, 2 adds r0, r3, r0 ldr r2, [r0] cmp r2, 0 beq _081234E6 ldrb r1, [r2, 0x5] adds r0, r5, 0 ands r0, r1 strb r0, [r2, 0x5] _081234E6: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x13 bls _081234D4 ldr r1, _08123500 add r1, r9 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _081234FC: .4byte gUnknown_08396FC4 _08123500: .4byte 0x0000043c _08123504: ldr r0, _08123578 ldr r5, _0812357C movs r1, 0x20 str r1, [sp] movs r1, 0xF str r1, [sp, 0x4] adds r1, r5, 0 movs r2, 0 movs r3, 0x11 bl sub_8124F08 ldr r0, _08123580 movs r2, 0xF0 lsls r2, 2 adds r1, r5, r2 movs r2, 0x1E str r2, [sp] movs r2, 0x14 mov r9, r2 str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8124F08 ldr r0, _08123584 mov r8, r0 ldr r0, [r0] ldr r6, _08123588 adds r0, r6 ldr r1, _0812358C movs r2, 0x5 str r2, [sp] movs r4, 0x2 str r4, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8124F08 mov r1, r8 ldr r0, [r1] adds r0, r6 movs r2, 0x87 lsls r2, 4 adds r5, r2 str r4, [sp] mov r1, r9 str r1, [sp, 0x4] adds r1, r5, 0 movs r2, 0 movs r3, 0x2 bl sub_8124F08 ldr r1, _08123590 ldr r2, _08123594 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _08123578: .4byte 0x0600e800 _0812357C: .4byte 0x02019168 _08123580: .4byte 0x0600f000 _08123584: .4byte gUnknown_02039274 _08123588: .4byte 0x000008fc _0812358C: .4byte gCableCarPylonHookTilemapEntries _08123590: .4byte gMain _08123594: .4byte 0x0000043c _08123598: ldr r0, _08123664 ldrb r0, [r0] bl sub_81248AC ldr r0, _08123668 mov r8, r0 ldr r0, [r0] adds r0, 0xFC ldr r4, _0812366C movs r6, 0xC str r6, [sp] movs r5, 0x3 str r5, [sp, 0x4] adds r1, r4, 0 movs r2, 0 movs r3, 0xE bl sub_8124F08 mov r1, r8 ldr r0, [r1] adds r0, 0xFC adds r1, r4, 0 adds r1, 0x48 str r6, [sp] str r5, [sp, 0x4] movs r2, 0xC movs r3, 0x11 bl sub_8124F08 mov r2, r8 ldr r0, [r2] adds r0, 0xFC adds r1, r4, 0 adds r1, 0x90 str r6, [sp] str r5, [sp, 0x4] movs r2, 0x18 movs r3, 0x14 bl sub_8124F08 mov r1, r8 ldr r0, [r1] adds r0, 0xFC movs r2, 0x90 negs r2, r2 adds r2, r4 mov r9, r2 str r6, [sp] str r5, [sp, 0x4] mov r1, r9 movs r2, 0 movs r3, 0x11 bl sub_8124F08 mov r1, r8 ldr r0, [r1] adds r0, 0xFC subs r4, 0x48 str r6, [sp] str r5, [sp, 0x4] adds r1, r4, 0 movs r2, 0 movs r3, 0x14 bl sub_8124F08 mov r2, r8 ldr r0, [r2] adds r0, 0xFC str r6, [sp] str r5, [sp, 0x4] mov r1, r9 movs r2, 0xC movs r3, 0x14 bl sub_8124F08 mov r1, r8 ldr r0, [r1] adds r0, 0xFC str r6, [sp] str r5, [sp, 0x4] adds r1, r4, 0 movs r2, 0xC movs r3, 0x17 bl sub_8124F08 mov r2, r8 ldr r0, [r2] adds r0, 0xFC str r6, [sp] str r5, [sp, 0x4] mov r1, r9 movs r2, 0x18 movs r3, 0x17 bl sub_8124F08 ldr r1, _08123670 ldr r0, _08123674 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _08123664: .4byte gUnknown_0202E8CC _08123668: .4byte gUnknown_02039274 _0812366C: .4byte 0x02019090 _08123670: .4byte gMain _08123674: .4byte 0x0000043c _08123678: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r1, 0x3 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _081236A4 movs r1, 0x1 bl FadeInNewBGM movs r0, 0x1 bl sub_8123FBC ldr r1, _081236A8 ldr r2, _081236AC adds r1, r2 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _081236A4: .4byte 0x000001a9 _081236A8: .4byte gMain _081236AC: .4byte 0x0000043c _081236B0: ldr r3, _081236E4 ldrh r2, [r3] movs r0, 0 strh r0, [r3] ldr r4, _081236E8 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r0, _081236EC bl SetVBlankCallback ldr r0, _081236F0 bl SetMainCallback2 ldr r0, _081236F4 movs r1, 0 bl CreateTask ldr r0, _081236F8 ldrh r0, [r0] cmp r0, 0 bne _08123700 ldr r0, _081236FC b _08123702 .align 2, 0 _081236E4: .4byte 0x04000208 _081236E8: .4byte 0x04000200 _081236EC: .4byte sub_8123C40 _081236F0: .4byte mainloop _081236F4: .4byte sub_8123878 _081236F8: .4byte gUnknown_0202E8CC _081236FC: .4byte sub_81239E4 _08123700: ldr r0, _0812371C _08123702: movs r1, 0x1 bl CreateTask ldr r1, _08123720 ldr r1, [r1] _0812370C: strb r0, [r1] _0812370E: add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812371C: .4byte sub_8123AF8 _08123720: .4byte gUnknown_02039274 thumb_func_end sub_8123244 thumb_func_start mainloop mainloop: @ 8123724 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade bl MapMusicMain pop {r0} bx r0 thumb_func_end mainloop thumb_func_start sub_8123740 sub_8123740: @ 8123740 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r4, 0 movs r0, 0 bl sub_8123FBC ldr r0, _08123854 strh r4, [r0] movs r0, 0 bl sub_807C9B4 add r7, sp, 0x4 ldr r0, _08123858 ldr r0, [r0] adds r1, r0, 0 adds r1, 0xF0 movs r2, 0 _08123766: lsls r0, r4, 2 adds r0, r1, r0 str r2, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x13 bls _08123766 bl ResetTasks bl ResetSpriteData bl ResetPaletteFade ldr r2, _0812385C movs r3, 0x80 lsls r3, 10 movs r5, 0 ldr r1, _08123860 movs r4, 0x80 lsls r4, 5 ldr r6, _08123864 movs r0, 0x85 lsls r0, 24 mov r12, r0 _08123798: str r5, [sp] mov r0, sp str r0, [r1] str r2, [r1, 0x4] str r6, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _08123798 str r5, [sp] mov r0, sp str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, _08123868 movs r0, 0 str r0, [r1] movs r3, 0xC0 lsls r3, 19 movs r4, 0xC0 lsls r4, 9 adds r2, r7, 0 movs r6, 0 ldr r1, _08123860 movs r5, 0x80 lsls r5, 5 ldr r0, _0812386C mov r12, r0 movs r0, 0x81 lsls r0, 24 mov r8, r0 _081237E0: strh r6, [r2] str r2, [r1] str r3, [r1, 0x4] mov r0, r12 str r0, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r5 subs r4, r5 cmp r4, r5 bhi _081237E0 strh r6, [r7] str r7, [r1] str r3, [r1, 0x4] lsrs r0, r4, 1 mov r2, r8 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0xE0 lsls r0, 19 movs r3, 0x80 lsls r3, 3 movs r4, 0 str r4, [sp] ldr r2, _08123860 mov r1, sp str r1, [r2] str r0, [r2, 0x4] lsrs r0, r3, 2 movs r1, 0x85 lsls r1, 24 orrs r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r0, 0xA0 lsls r0, 19 strh r4, [r7] str r7, [r2] str r0, [r2, 0x4] lsrs r3, 1 movs r0, 0x81 lsls r0, 24 orrs r3, r0 str r3, [r2, 0x8] ldr r0, [r2, 0x8] bl warp_in ldr r0, _08123870 str r4, [r0] ldr r0, _08123874 bl SetMainCallback2 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08123854: .4byte gSpriteCoordOffsetX _08123858: .4byte gUnknown_08396FC4 _0812385C: .4byte 0x02000000 _08123860: .4byte 0x040000d4 _08123864: .4byte 0x85000400 _08123868: .4byte gUnknown_02039274 _0812386C: .4byte 0x81000800 _08123870: .4byte gUnknown_0300485C _08123874: .4byte CB2_LoadMap thumb_func_end sub_8123740 thumb_func_start sub_8123878 sub_8123878: @ 8123878 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 ldr r5, _081238A4 ldr r3, [r5] ldrh r0, [r3, 0x6] adds r0, 0x1 strh r0, [r3, 0x6] ldrb r2, [r3, 0x1] adds r7, r5, 0 cmp r2, 0x2 beq _0812397E cmp r2, 0x2 bgt _081238A8 cmp r2, 0 beq _081238B6 cmp r2, 0x1 beq _081238D0 b _081239D6 .align 2, 0 _081238A4: .4byte gUnknown_02039274 _081238A8: cmp r2, 0x3 bne _081238AE b _081239A4 _081238AE: cmp r2, 0xFF bne _081238B4 b _081239BC _081238B4: b _081239D6 _081238B6: lsls r0, 16 lsrs r0, 16 ldrh r1, [r3, 0x4] cmp r0, r1 beq _081238C2 b _081239D6 _081238C2: ldrb r0, [r3, 0x2] bl sub_807C91C ldr r1, [r5] movs r0, 0x1 strb r0, [r1, 0x1] b _081239D6 _081238D0: ldrb r0, [r3, 0x2] cmp r0, 0x2 beq _08123924 cmp r0, 0x7 beq _081238DC b _081239D6 _081238DC: ldr r0, _08123920 ldr r0, [r0] adds r2, r0, 0 adds r2, 0xF0 ldr r0, [r2] cmp r0, 0 beq _081239D6 ldrb r1, [r0, 0x5] movs r0, 0xC ands r0, r1 cmp r0, 0 beq _081239D6 adds r3, r2, 0 movs r5, 0xD negs r5, r5 _081238FA: lsls r0, r4, 2 adds r0, r3, r0 ldr r2, [r0] cmp r2, 0 beq _0812390C ldrb r1, [r2, 0x5] adds r0, r5, 0 ands r0, r1 strb r0, [r2, 0x5] _0812390C: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x13 bls _081238FA ldr r1, [r7] movs r0, 0x2 strb r0, [r1, 0x1] b _081239D6 .align 2, 0 _08123920: .4byte gUnknown_08396FC4 _08123924: ldr r0, _08123938 ldr r2, [r0] movs r1, 0xDA lsls r1, 3 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0x2 bne _0812393C strb r0, [r3, 0x1] b _081239D6 .align 2, 0 _08123938: .4byte gUnknown_08396FC4 _0812393C: ldrh r1, [r3, 0x6] ldrh r0, [r3, 0x4] adds r0, 0x8 cmp r1, r0 blt _081239D6 adds r6, r2, 0 adds r6, 0xF0 movs r5, 0x1 movs r7, 0x5 negs r7, r7 _08123950: lsls r0, r4, 2 adds r0, r6, r0 ldr r0, [r0] cmp r0, 0 beq _08123972 adds r3, r0, 0 adds r3, 0x3E ldrb r2, [r3] lsls r1, r2, 29 lsrs r1, 31 eors r1, r5 ands r1, r5 lsls r1, 2 adds r0, r7, 0 ands r0, r2 orrs r0, r1 strb r0, [r3] _08123972: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x13 bls _08123950 b _081239D6 _0812397E: lsls r1, r0, 16 ldr r0, _081239A0 cmp r1, r0 bne _081239D6 movs r0, 0x3 strb r0, [r3, 0x1] subs r0, 0x4 str r4, [sp] movs r1, 0x3 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r0, 0x4 bl FadeOutBGM b _081239D6 .align 2, 0 _081239A0: .4byte 0x023a0000 _081239A4: ldr r0, _081239B8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081239D6 movs r0, 0xFF strb r0, [r3, 0x1] b _081239D6 .align 2, 0 _081239B8: .4byte gPaletteFade _081239BC: movs r0, 0 bl SetVBlankCallback adds r0, r6, 0 bl DestroyTask ldr r0, [r5] ldrb r0, [r0] bl DestroyTask ldr r0, _081239E0 bl SetMainCallback2 _081239D6: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081239E0: .4byte sub_8123740 thumb_func_end sub_8123878 thumb_func_start sub_81239E4 sub_81239E4: @ 81239E4 push {r4-r6,lr} sub sp, 0x8 ldr r6, _08123A38 ldr r1, [r6] ldrb r0, [r1, 0x1] cmp r0, 0xFF beq _08123AC0 ldrb r0, [r1, 0x14] subs r0, 0x1 strb r0, [r1, 0x14] ldr r1, [r6] ldrh r0, [r1, 0x6] movs r3, 0x1 ands r0, r3 cmp r0, 0 bne _08123A0A ldrb r0, [r1, 0x15] subs r0, 0x1 strb r0, [r1, 0x15] _08123A0A: ldr r2, [r6] ldrh r0, [r2, 0x6] movs r1, 0x7 ands r0, r1 cmp r0, 0 bne _08123A24 ldrb r0, [r2, 0xC] subs r0, 0x1 strb r0, [r2, 0xC] ldr r1, [r6] ldrb r0, [r1, 0xD] subs r0, 0x1 strb r0, [r1, 0xD] _08123A24: ldr r0, [r6] ldrb r1, [r0, 0x14] cmp r1, 0x20 beq _08123A74 cmp r1, 0x20 bgt _08123A3C cmp r1, 0x10 beq _08123A90 b _08123AC0 .align 2, 0 _08123A38: .4byte gUnknown_02039274 _08123A3C: cmp r1, 0x28 beq _08123A60 cmp r1, 0xAF bne _08123AC0 ldr r1, _08123A5C adds r0, r1 movs r1, 0x2 str r1, [sp] movs r1, 0xA str r1, [sp, 0x4] movs r1, 0 movs r2, 0 movs r3, 0x16 bl sub_8124E7C b _08123AC0 .align 2, 0 _08123A5C: .4byte 0x000008fc _08123A60: ldr r1, _08123A70 adds r0, r1 movs r1, 0x2 str r1, [sp] str r1, [sp, 0x4] movs r1, 0 movs r2, 0x3 b _08123A82 .align 2, 0 _08123A70: .4byte 0x000008fc _08123A74: ldr r1, _08123A8C adds r0, r1 str r3, [sp] movs r1, 0x2 str r1, [sp, 0x4] movs r1, 0 movs r2, 0x2 _08123A82: movs r3, 0 bl sub_8124E7C b _08123AC0 .align 2, 0 _08123A8C: .4byte 0x000008fc _08123A90: ldr r5, _08123AE8 adds r0, r5 ldr r1, _08123AEC movs r2, 0x5 str r2, [sp] movs r4, 0x2 str r4, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8124F08 ldr r0, [r6] adds r0, r5 ldr r1, _08123AF0 str r4, [sp] movs r2, 0x1E str r2, [sp, 0x4] movs r2, 0 movs r3, 0x2 bl sub_8124F08 ldr r1, [r6] movs r0, 0x40 strb r0, [r1, 0x15] _08123AC0: bl sub_812453C ldr r3, _08123AF4 movs r0, 0 ldrsh r2, [r3, r0] adds r1, r2, 0x1 adds r0, r1, 0 cmp r1, 0 bge _08123AD6 adds r0, r2, 0 adds r0, 0x80 _08123AD6: asrs r0, 7 lsls r0, 7 subs r0, r1, r0 strh r0, [r3] add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08123AE8: .4byte 0x000008fc _08123AEC: .4byte gCableCarPylonHookTilemapEntries _08123AF0: .4byte 0x020199d8 _08123AF4: .4byte gSpriteCoordOffsetX thumb_func_end sub_81239E4 thumb_func_start sub_8123AF8 sub_8123AF8: @ 8123AF8 push {r4-r6,lr} sub sp, 0x8 ldr r6, _08123B4C ldr r1, [r6] ldrb r0, [r1, 0x1] cmp r0, 0xFF beq _08123BEE ldrb r0, [r1, 0x14] adds r0, 0x1 strb r0, [r1, 0x14] ldr r2, [r6] ldrh r0, [r2, 0x6] movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _08123B1E ldrb r0, [r2, 0x15] adds r0, 0x1 strb r0, [r2, 0x15] _08123B1E: ldr r2, [r6] ldrh r0, [r2, 0x6] movs r1, 0x7 ands r0, r1 cmp r0, 0 bne _08123B38 ldrb r0, [r2, 0xC] adds r0, 0x1 strb r0, [r2, 0xC] ldr r1, [r6] ldrb r0, [r1, 0xD] adds r0, 0x1 strb r0, [r1, 0xD] _08123B38: ldr r3, [r6] ldrb r0, [r3, 0x14] cmp r0, 0x20 beq _08123BB0 cmp r0, 0x20 bgt _08123B50 cmp r0, 0x10 beq _08123B78 b _08123BEE .align 2, 0 _08123B4C: .4byte gUnknown_02039274 _08123B50: cmp r0, 0x28 beq _08123BDC cmp r0, 0xB0 bne _08123BEE ldr r1, _08123B70 adds r0, r3, r1 ldr r1, _08123B74 movs r2, 0x2 str r2, [sp] movs r2, 0x1E str r2, [sp, 0x4] movs r2, 0 movs r3, 0x2 bl sub_8124F08 b _08123BEE .align 2, 0 _08123B70: .4byte 0x000008fc _08123B74: .4byte 0x020199d8 _08123B78: ldr r5, _08123BAC adds r0, r3, r5 movs r1, 0x3 str r1, [sp] movs r4, 0x2 str r4, [sp, 0x4] movs r1, 0 movs r2, 0x2 movs r3, 0 bl sub_8124E7C ldr r0, [r6] adds r0, r5 str r4, [sp] movs r1, 0xA str r1, [sp, 0x4] movs r1, 0 movs r2, 0 movs r3, 0x16 bl sub_8124E7C ldr r1, [r6] movs r0, 0xC0 strb r0, [r1, 0x15] b _08123BEE .align 2, 0 _08123BAC: .4byte 0x000008fc _08123BB0: ldr r1, _08123BD4 ldrh r2, [r1] movs r4, 0x90 lsls r4, 4 adds r0, r3, r4 strh r2, [r0] ldrh r2, [r1, 0x2] adds r4, 0x2 adds r0, r3, r4 strh r2, [r0] ldrh r2, [r1, 0xA] adds r4, 0x3E adds r0, r3, r4 strh r2, [r0] ldrh r1, [r1, 0xC] ldr r2, _08123BD8 b _08123BEA .align 2, 0 _08123BD4: .4byte gCableCarPylonHookTilemapEntries + 0x4 _08123BD8: .4byte 0x00000942 _08123BDC: ldr r2, _08123C08 ldrh r1, [r2] ldr r4, _08123C0C adds r0, r3, r4 strh r1, [r0] ldrh r1, [r2, 0xA] ldr r2, _08123C10 _08123BEA: adds r0, r3, r2 strh r1, [r0] _08123BEE: bl sub_8124598 ldr r0, _08123C14 ldr r1, [r0] ldrh r0, [r1, 0x6] ldrh r1, [r1, 0x4] cmp r0, r1 bcs _08123C1C ldr r4, _08123C18 movs r1, 0 ldrsh r0, [r4, r1] b _08123C26 .align 2, 0 _08123C08: .4byte gCableCarPylonHookTilemapEntries + 0x8 _08123C0C: .4byte 0x00000904 _08123C10: .4byte 0x00000944 _08123C14: .4byte gUnknown_02039274 _08123C18: .4byte gSpriteCoordOffsetX _08123C1C: ldr r0, _08123C38 ldr r4, [r0] ldr r2, _08123C3C adds r4, r2 ldrh r0, [r4] _08123C26: adds r0, 0xF7 movs r1, 0xF8 bl __modsi3 strh r0, [r4] add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08123C38: .4byte gUnknown_08396FC4 _08123C3C: .4byte 0x000006fc thumb_func_end sub_8123AF8 thumb_func_start sub_8123C40 sub_8123C40: @ 8123C40 push {r4,lr} ldr r1, _08123C9C ldr r0, _08123CA0 ldr r2, [r0] adds r0, r2, 0 adds r0, 0xFC str r0, [r1] ldr r0, _08123CA4 str r0, [r1, 0x4] ldr r3, _08123CA8 str r3, [r1, 0x8] ldr r0, [r1, 0x8] ldr r4, _08123CAC adds r0, r2, r4 str r0, [r1] ldr r0, _08123CB0 str r0, [r1, 0x4] str r3, [r1, 0x8] ldr r0, [r1, 0x8] subs r1, 0xB8 ldrb r0, [r2, 0x14] strh r0, [r1] adds r1, 0x2 ldrb r0, [r2, 0x15] strh r0, [r1] subs r1, 0xA ldrb r0, [r2, 0xC] strh r0, [r1] adds r1, 0x2 ldrb r0, [r2, 0xD] strh r0, [r1] subs r1, 0x6 ldrb r0, [r2, 0x8] strh r0, [r1] adds r1, 0x2 ldrb r0, [r2, 0x9] strh r0, [r1] bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r4} pop {r0} bx r0 .align 2, 0 _08123C9C: .4byte 0x040000d4 _08123CA0: .4byte gUnknown_02039274 _08123CA4: .4byte 0x0600e000 _08123CA8: .4byte 0x80000400 _08123CAC: .4byte 0x000008fc _08123CB0: .4byte 0x0600f800 thumb_func_end sub_8123C40 thumb_func_start nullsub_76 nullsub_76: @ 8123CB4 bx lr thumb_func_end nullsub_76 thumb_func_start sub_8123CB8 sub_8123CB8: @ 8123CB8 push {r4-r6,lr} adds r5, r0, 0 ldr r0, _08123D20 ldr r6, [r0] ldrb r0, [r6, 0x1] cmp r0, 0xFF beq _08123D84 ldr r0, _08123D24 ldrh r0, [r0] cmp r0, 0 bne _08123D34 movs r0, 0x6 ldrsh r4, [r6, r0] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08123CE2 ldr r1, _08123D28 bl __addsf3 _08123CE2: ldr r1, _08123D2C bl __mulsf3 bl __fixunssfsi lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x2E] subs r1, r0 strh r1, [r5, 0x20] movs r1, 0x6 ldrsh r4, [r6, r1] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08123D0A ldr r1, _08123D28 bl __addsf3 _08123D0A: ldr r1, _08123D30 bl __mulsf3 bl __fixunssfsi lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x30] subs r1, r0 strh r1, [r5, 0x22] b _08123D84 .align 2, 0 _08123D20: .4byte gUnknown_02039274 _08123D24: .4byte gUnknown_0202E8CC _08123D28: .4byte 0x47800000 _08123D2C: .4byte 0x3e0f5c29 _08123D30: .4byte 0x3d89374c _08123D34: movs r0, 0x6 ldrsh r4, [r6, r0] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08123D48 ldr r1, _08123D8C bl __addsf3 _08123D48: ldr r1, _08123D90 bl __mulsf3 bl __fixunssfsi lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x2E] adds r0, r1 strh r0, [r5, 0x20] movs r0, 0x6 ldrsh r4, [r6, r0] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08123D70 ldr r1, _08123D8C bl __addsf3 _08123D70: ldr r1, _08123D94 bl __mulsf3 bl __fixunssfsi lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x30] adds r0, r1 strh r0, [r5, 0x22] _08123D84: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08123D8C: .4byte 0x47800000 _08123D90: .4byte 0x3e0f5c29 _08123D94: .4byte 0x3d89374c thumb_func_end sub_8123CB8 thumb_func_start sub_8123D98 sub_8123D98: @ 8123D98 push {r4-r6,lr} adds r5, r0, 0 ldr r0, _08123E04 ldr r6, [r0] ldrb r0, [r6, 0x1] cmp r0, 0xFF bne _08123DA8 b _08123EB0 _08123DA8: ldr r0, _08123E08 ldrh r0, [r0] cmp r0, 0 bne _08123E18 movs r0, 0x6 ldrsh r4, [r6, r0] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08123DC4 ldr r1, _08123E0C bl __addsf3 _08123DC4: ldr r1, _08123E10 bl __mulsf3 bl __fixunssfsi lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x2E] subs r1, r0 strh r1, [r5, 0x20] movs r1, 0x6 ldrsh r4, [r6, r1] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08123DEC ldr r1, _08123E0C bl __addsf3 _08123DEC: ldr r1, _08123E14 bl __mulsf3 bl __fixunssfsi lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x30] subs r1, r0 strh r1, [r5, 0x22] b _08123E68 .align 2, 0 _08123E04: .4byte gUnknown_02039274 _08123E08: .4byte gUnknown_0202E8CC _08123E0C: .4byte 0x47800000 _08123E10: .4byte 0x3e0f5c29 _08123E14: .4byte 0x3d89374c _08123E18: movs r0, 0x6 ldrsh r4, [r6, r0] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08123E2C ldr r1, _08123E8C bl __addsf3 _08123E2C: ldr r1, _08123E90 bl __mulsf3 bl __fixunssfsi lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x2E] adds r0, r1 strh r0, [r5, 0x20] movs r0, 0x6 ldrsh r4, [r6, r0] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08123E54 ldr r1, _08123E8C bl __addsf3 _08123E54: ldr r1, _08123E94 bl __mulsf3 bl __fixunssfsi lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x30] adds r0, r1 strh r0, [r5, 0x22] _08123E68: movs r0, 0x32 ldrsh r2, [r5, r0] cmp r2, 0 bne _08123E98 movs r0, 0x11 strh r0, [r5, 0x26] ldrh r0, [r5, 0x34] adds r1, r0, 0x1 strh r1, [r5, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 ble _08123EB0 strh r2, [r5, 0x34] ldrh r0, [r5, 0x32] adds r0, 0x1 strh r0, [r5, 0x32] b _08123EB0 .align 2, 0 _08123E8C: .4byte 0x47800000 _08123E90: .4byte 0x3e0f5c29 _08123E94: .4byte 0x3d89374c _08123E98: movs r2, 0 movs r0, 0x10 strh r0, [r5, 0x26] ldrh r0, [r5, 0x34] adds r1, r0, 0x1 strh r1, [r5, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 ble _08123EB0 strh r2, [r5, 0x34] strh r2, [r5, 0x32] _08123EB0: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8123D98 thumb_func_start sub_8123EB8 sub_8123EB8: @ 8123EB8 push {lr} adds r2, r0, 0 movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0 bne _08123EE8 adds r0, r2, 0 adds r0, 0x28 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 1 ldrh r3, [r2, 0x20] adds r0, r3 strh r0, [r2, 0x20] ldrh r1, [r2, 0x22] adds r1, 0x10 adds r0, r2, 0 adds r0, 0x29 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r0, r1 strh r0, [r2, 0x22] _08123EE8: ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 movs r3, 0x32 ldrsh r1, [r2, r3] cmp r0, r1 blt _08123F3E movs r0, 0x30 ldrsh r1, [r2, r0] cmp r1, 0 beq _08123F08 cmp r1, 0x1 beq _08123F12 b _08123F30 _08123F08: ldrh r0, [r2, 0x20] adds r0, 0x1 strh r0, [r2, 0x20] ldrh r0, [r2, 0x2E] b _08123F22 _08123F12: ldrh r0, [r2, 0x2E] ands r0, r1 cmp r0, 0 beq _08123F30 ldrh r0, [r2, 0x20] adds r0, 0x1 strh r0, [r2, 0x20] ldrh r0, [r2, 0x20] _08123F22: movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _08123F30 ldrh r0, [r2, 0x22] adds r0, 0x1 strh r0, [r2, 0x22] _08123F30: movs r1, 0x22 ldrsh r0, [r2, r1] cmp r0, 0xA0 ble _08123F3E adds r0, r2, 0 bl DestroySprite _08123F3E: pop {r0} bx r0 thumb_func_end sub_8123EB8 thumb_func_start sub_8123F44 sub_8123F44: @ 8123F44 push {lr} adds r2, r0, 0 movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0 bne _08123F62 ldrh r1, [r2, 0x22] adds r1, 0x10 adds r0, r2, 0 adds r0, 0x29 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r0, r1 strh r0, [r2, 0x22] _08123F62: ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 movs r3, 0x32 ldrsh r1, [r2, r3] cmp r0, r1 blt _08123FB8 movs r0, 0x30 ldrsh r1, [r2, r0] cmp r1, 0 beq _08123F82 cmp r1, 0x1 beq _08123F8C b _08123FAA _08123F82: ldrh r0, [r2, 0x20] subs r0, 0x1 strh r0, [r2, 0x20] ldrh r0, [r2, 0x2E] b _08123F9C _08123F8C: ldrh r0, [r2, 0x2E] ands r0, r1 cmp r0, 0 beq _08123FAA ldrh r0, [r2, 0x20] subs r0, 0x1 strh r0, [r2, 0x20] ldrh r0, [r2, 0x20] _08123F9C: movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _08123FAA ldrh r0, [r2, 0x22] subs r0, 0x1 strh r0, [r2, 0x22] _08123FAA: movs r1, 0x22 ldrsh r0, [r2, r1] cmp r0, 0x4F bgt _08123FB8 adds r0, r2, 0 bl DestroySprite _08123FB8: pop {r0} bx r0 thumb_func_end sub_8123F44 thumb_func_start sub_8123FBC sub_8123FBC: @ 8123FBC push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08123FCA cmp r0, 0x1 beq _08124024 _08123FCA: ldr r1, _08124020 movs r0, 0 strh r0, [r1] adds r1, 0x2 strh r0, [r1] subs r1, 0xA strh r0, [r1] adds r1, 0x2 strh r0, [r1] adds r1, 0x2 strh r0, [r1] adds r1, 0x2 strh r0, [r1] subs r1, 0x46 strh r0, [r1] adds r1, 0xE strh r0, [r1] subs r1, 0x2 strh r0, [r1] subs r1, 0x2 strh r0, [r1] subs r1, 0x2 strh r0, [r1] adds r1, 0x14 strh r0, [r1] adds r1, 0x2 strh r0, [r1] subs r1, 0x6 strh r0, [r1] adds r1, 0x2 strh r0, [r1] subs r1, 0x6 strh r0, [r1] adds r1, 0x2 strh r0, [r1] subs r1, 0x6 strh r0, [r1] adds r1, 0x2 strh r0, [r1] adds r1, 0x3E strh r0, [r1] b _081240EE .align 2, 0 _08124020: .4byte REG_WININ _08124024: ldr r0, _08124060 movs r3, 0 strh r3, [r0] adds r0, 0x2 strh r3, [r0] subs r0, 0xA strh r3, [r0] adds r0, 0x2 strh r3, [r0] adds r0, 0x2 strh r3, [r0] adds r0, 0x2 strh r3, [r0] ldr r0, _08124064 ldrh r0, [r0] cmp r0, 0 bne _0812406C ldr r1, _08124068 ldr r2, [r1] movs r0, 0xB0 strb r0, [r2, 0x14] ldr r2, [r1] movs r0, 0x10 strb r0, [r2, 0x15] ldr r0, [r1] strb r3, [r0, 0xC] ldr r2, [r1] movs r0, 0x50 b _08124082 .align 2, 0 _08124060: .4byte REG_WININ _08124064: .4byte gUnknown_0202E8CC _08124068: .4byte gUnknown_02039274 _0812406C: ldr r1, _081240F4 ldr r2, [r1] movs r0, 0x60 strb r0, [r2, 0x14] ldr r2, [r1] movs r0, 0xE8 strb r0, [r2, 0x15] ldr r0, [r1] strb r3, [r0, 0xC] ldr r2, [r1] movs r0, 0x4 _08124082: strb r0, [r2, 0xD] ldr r0, [r1] strb r3, [r0, 0x9] ldr r0, [r1] strb r3, [r0, 0x9] adds r2, r1, 0 ldr r1, _081240F8 ldr r2, [r2] ldrb r0, [r2, 0x14] strh r0, [r1] adds r1, 0x2 ldrb r0, [r2, 0x15] strh r0, [r1] ldr r0, _081240FC movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r1, _08124100 ldrb r0, [r2, 0xC] strh r0, [r1] adds r1, 0x2 ldrb r0, [r2, 0xD] strh r0, [r1] subs r1, 0x6 ldrb r0, [r2, 0x8] strh r0, [r1] adds r1, 0x2 ldrb r0, [r2, 0x9] strh r0, [r1] subs r1, 0xA ldr r2, _08124104 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _08124108 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _0812410C adds r0, r2, 0 strh r0, [r1] ldr r0, _08124110 movs r3, 0xFC lsls r3, 6 adds r2, r3, 0 strh r2, [r0] subs r1, 0xC movs r3, 0xFA lsls r3, 5 adds r0, r3, 0 strh r0, [r1] ldr r0, _08124114 strh r2, [r0] _081240EE: pop {r0} bx r0 .align 2, 0 _081240F4: .4byte gUnknown_02039274 _081240F8: .4byte REG_BG3HOFS _081240FC: .4byte REG_BG2HOFS _08124100: .4byte REG_BG1HOFS _08124104: .4byte 0x00003c01 _08124108: .4byte 0x00003d02 _0812410C: .4byte 0x00003e03 _08124110: .4byte REG_BG3CNT _08124114: .4byte REG_BLDCNT thumb_func_end sub_8123FBC thumb_func_start sub_8124118 sub_8124118: @ 8124118 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 ldr r1, _0812422C add r0, sp, 0x8 movs r2, 0x2 bl memcpy bl Random lsls r0, 16 lsrs r0, 16 mov r9, r0 add r6, sp, 0xC ldr r1, _08124230 adds r0, r6, 0 movs r2, 0x4 bl memcpy add r5, sp, 0x10 ldr r1, _08124234 adds r0, r5, 0 movs r2, 0x8 bl memcpy add r4, sp, 0x18 ldr r1, _08124238 adds r0, r4, 0 movs r2, 0x4 bl memcpy ldr r0, _0812423C ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x1C] str r1, [sp, 0x20] ldr r0, _08124240 ldrh r0, [r0] mov r8, r6 mov r10, r5 cmp r0, 0 beq _08124176 cmp r0, 0x1 beq _08124258 _08124176: ldr r0, _08124244 ldrb r0, [r0, 0x8] add r0, sp adds r0, 0x8 ldrb r0, [r0] ldr r1, _08124248 movs r2, 0x66 str r2, [sp] movs r2, 0xC8 movs r3, 0x49 bl AddPseudoFieldObject lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x40 beq _081241BE ldr r0, _0812424C lsls r1, r6, 4 adds r1, r6 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 movs r2, 0x8 orrs r0, r2 strb r0, [r1, 0x5] movs r0, 0x8 strh r0, [r1, 0x24] movs r0, 0x10 strh r0, [r1, 0x26] movs r0, 0xC8 strh r0, [r1, 0x2E] movs r0, 0x49 strh r0, [r1, 0x30] _081241BE: ldr r4, _08124250 adds r0, r4, 0 movs r1, 0xB0 movs r2, 0x2B movs r3, 0x67 bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 ldr r5, _0812424C lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r0, r5 movs r1, 0x20 strh r1, [r0, 0x26] strh r1, [r0, 0x24] movs r1, 0xB0 strh r1, [r0, 0x2E] movs r1, 0x2B strh r1, [r0, 0x30] adds r4, 0x18 adds r0, r4, 0 movs r1, 0xC8 movs r2, 0x63 movs r3, 0x65 bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r0, r5 movs r1, 0x8 strh r1, [r0, 0x24] movs r1, 0x4 strh r1, [r0, 0x26] movs r1, 0xC8 strh r1, [r0, 0x2E] movs r1, 0x63 strh r1, [r0, 0x30] ldr r2, _08124254 ldr r1, [r2] movs r0, 0x7 strb r0, [r1, 0x2] ldr r1, [r2] movs r0, 0xAF lsls r0, 1 strh r0, [r1, 0x4] movs r0, 0x2 bl sub_807C9B4 b _0812431E .align 2, 0 _0812422C: .4byte gCableCarPlayerGraphicsIDs _08124230: .4byte gMtChimneyHikerGraphicsIDs _08124234: .4byte gMtChimneyHikerCoords _08124238: .4byte gMtChimneyHikerMovementDelayTable _0812423C: .4byte gUnknown_08401D9C _08124240: .4byte gUnknown_0202E8CC _08124244: .4byte gSaveBlock2 _08124248: .4byte sub_8123D98 _0812424C: .4byte gSprites _08124250: .4byte gSpriteTemplate_8401D40 _08124254: .4byte gUnknown_02039274 _08124258: ldr r7, _081243EC ldr r0, [r7] adds r0, 0xFC ldr r1, _081243F0 movs r2, 0xC str r2, [sp] movs r2, 0x3 str r2, [sp, 0x4] movs r2, 0x18 movs r3, 0x1A bl sub_8124F08 ldr r0, _081243F4 ldrb r0, [r0, 0x8] add r0, sp adds r0, 0x8 ldrb r0, [r0] ldr r1, _081243F8 movs r2, 0x66 str r2, [sp] movs r2, 0x80 movs r3, 0x27 bl AddPseudoFieldObject lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x40 beq _081242B8 ldr r0, _081243FC lsls r1, r6, 4 adds r1, r6 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 movs r2, 0x8 orrs r0, r2 strb r0, [r1, 0x5] movs r0, 0x8 strh r0, [r1, 0x24] movs r0, 0x10 strh r0, [r1, 0x26] movs r0, 0x80 strh r0, [r1, 0x2E] movs r0, 0x27 strh r0, [r1, 0x30] _081242B8: ldr r4, _08124400 adds r0, r4, 0 movs r1, 0x68 movs r2, 0x9 movs r3, 0x67 bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 ldr r5, _081243FC lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r0, r5 movs r1, 0x20 strh r1, [r0, 0x26] strh r1, [r0, 0x24] movs r1, 0x68 strh r1, [r0, 0x2E] movs r1, 0x9 strh r1, [r0, 0x30] adds r4, 0x18 adds r0, r4, 0 movs r1, 0x80 movs r2, 0x41 movs r3, 0x65 bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r0, r5 movs r1, 0x8 strh r1, [r0, 0x24] movs r1, 0x4 strh r1, [r0, 0x26] movs r1, 0x80 strh r1, [r0, 0x2E] movs r1, 0x41 strh r1, [r0, 0x30] ldr r1, [r7] movs r0, 0x2 strb r0, [r1, 0x2] ldr r1, [r7] ldr r0, _08124404 strh r0, [r1, 0x4] movs r0, 0x7 bl sub_807C9B4 _0812431E: movs r4, 0 ldr r5, _081243FC _08124322: lsls r1, r4, 20 movs r0, 0xC0 lsls r0, 15 adds r1, r0 asrs r1, 16 lsls r2, r4, 19 ldr r3, _08124408 adds r2, r3 asrs r2, 16 ldr r0, _0812440C movs r3, 0x68 bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r0, r5 movs r1, 0x8 strh r1, [r0, 0x24] strh r1, [r0, 0x26] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x8 bls _08124322 movs r0, 0x3F mov r4, r9 ands r0, r4 cmp r0, 0 bne _08124458 mov r0, r9 movs r1, 0x3 bl __umodsi3 lsls r0, 16 lsrs r0, 16 add r0, r8 ldrb r0, [r0] ldr r5, _08124410 ldrh r4, [r5] lsls r4, 2 add r1, sp, 0x1C adds r1, r4, r1 ldr r1, [r1] mov r3, r10 adds r2, r3, r4 movs r3, 0 ldrsh r2, [r2, r3] mov r3, sp adds r3, 0x12 adds r3, r4 movs r4, 0 ldrsh r3, [r3, r4] movs r4, 0x6A str r4, [sp] bl AddPseudoFieldObject lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x40 beq _08124458 ldr r1, _081243FC lsls r2, r6, 4 adds r0, r2, r6 lsls r0, 2 adds r4, r0, r1 ldrb r1, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r4, 0x5] adds r0, r4, 0 adds r0, 0x28 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 negs r0, r0 strh r0, [r4, 0x24] adds r0, r4, 0 adds r0, 0x29 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 negs r0, r0 strh r0, [r4, 0x26] ldrh r0, [r5] mov r8, r2 cmp r0, 0 bne _0812441A movs r7, 0x1 mov r5, r9 ands r5, r7 cmp r5, 0 beq _08124414 adds r0, r4, 0 movs r1, 0x6 b _08124428 .align 2, 0 _081243EC: .4byte gUnknown_02039274 _081243F0: .4byte 0x02019048 _081243F4: .4byte gSaveBlock2 _081243F8: .4byte sub_8123D98 _081243FC: .4byte gSprites _08124400: .4byte gSpriteTemplate_8401D40 _08124404: .4byte 0x00000109 _08124408: .4byte 0xfff80000 _0812440C: .4byte gSpriteTemplate_8401D70 _08124410: .4byte gUnknown_0202E8CC _08124414: adds r0, r4, 0 movs r1, 0x7 b _0812443A _0812441A: movs r7, 0x1 mov r5, r9 ands r5, r7 cmp r5, 0 beq _08124436 adds r0, r4, 0 movs r1, 0x7 _08124428: bl StartSpriteAnim strh r7, [r4, 0x30] ldrh r0, [r4, 0x22] adds r0, 0x2 strh r0, [r4, 0x22] b _08124440 _08124436: adds r0, r4, 0 movs r1, 0x6 _0812443A: bl StartSpriteAnim strh r5, [r4, 0x30] _08124440: ldr r0, _08124468 mov r2, r8 adds r1, r2, r6 lsls r1, 2 adds r1, r0 movs r0, 0x3 mov r3, r9 ands r0, r3 add r0, sp adds r0, 0x18 ldrb r0, [r0] strh r0, [r1, 0x32] _08124458: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08124468: .4byte gSprites thumb_func_end sub_8124118 thumb_func_start sub_812446C sub_812446C: @ 812446C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r3, 0 mov r9, r3 ldr r2, _08124530 ldr r0, [r2] ldrb r1, [r0, 0x1B] adds r1, 0x2 lsls r0, r1, 3 adds r0, r1 lsls r0, 26 lsrs r0, 24 mov r12, r0 _0812448E: movs r6, 0 lsls r0, r3, 1 adds r1, r3, 0x3 adds r2, r3, 0x6 adds r4, r3, 0x1 str r4, [sp] adds r0, r3 lsls r0, 3 mov r10, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 mov r8, r0 lsls r0, r2, 1 adds r0, r2 lsls r0, 3 str r0, [sp, 0x4] _081244B0: ldr r7, _08124530 ldr r5, [r7] lsls r3, r6, 1 mov r0, r10 adds r2, r3, r0 adds r4, r5, 0 adds r4, 0x22 adds r2, r4, r2 mov r1, r12 adds r0, r1, 0x1 lsls r0, 24 lsrs r0, 24 mov r12, r0 lsls r1, 1 ldr r7, _08124534 adds r1, r7 ldrh r0, [r1] strh r0, [r2] mov r0, r8 adds r1, r3, r0 adds r1, r4, r1 mov r7, r9 lsls r2, r7, 1 ldr r7, _08124534 adds r0, r2, r7 ldrh r0, [r0] strh r0, [r1] ldr r0, [sp, 0x4] adds r3, r0 adds r4, r3 ldr r1, _08124538 adds r2, r1 ldrh r0, [r2] strh r0, [r4] mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0xB bls _081244B0 ldr r4, [sp] lsls r0, r4, 24 lsrs r3, r0, 24 cmp r3, 0x2 bls _0812448E ldrb r0, [r5, 0x1B] adds r0, 0x1 movs r1, 0x3 bl __modsi3 strb r0, [r5, 0x1B] add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08124530: .4byte gUnknown_02039274 _08124534: .4byte 0x02019000 _08124538: .4byte 0x02019048 thumb_func_end sub_812446C thumb_func_start sub_812453C sub_812453C: @ 812453C push {r4,r5,lr} ldr r5, _08124594 ldr r4, [r5] ldrb r0, [r4, 0x1C] adds r0, 0x1 movs r1, 0x60 bl __modsi3 strb r0, [r4, 0x1C] ldr r1, [r5] ldrb r0, [r1, 0x1F] ldrb r2, [r1, 0x1D] subs r0, r2 strb r0, [r1, 0x8] ldr r2, [r5] adds r0, r2, 0 adds r0, 0x20 ldrb r0, [r0] ldrb r1, [r2, 0x1E] subs r0, r1 strb r0, [r2, 0x9] ldr r1, [r5] ldrb r0, [r1, 0x1D] adds r0, 0x1 strb r0, [r1, 0x1D] ldr r2, [r5] ldrb r0, [r2, 0x1D] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _08124580 ldrb r0, [r2, 0x1E] adds r0, 0x1 strb r0, [r2, 0x1E] _08124580: ldr r0, [r5] ldrb r0, [r0, 0x1D] cmp r0, 0x10 bls _0812458C bl sub_81245F4 _0812458C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08124594: .4byte gUnknown_02039274 thumb_func_end sub_812453C thumb_func_start sub_8124598 sub_8124598: @ 8124598 push {r4,r5,lr} ldr r5, _081245F0 ldr r4, [r5] ldrb r0, [r4, 0x1C] adds r0, 0x1 movs r1, 0x60 bl __modsi3 strb r0, [r4, 0x1C] ldr r1, [r5] ldrb r0, [r1, 0x1D] ldrb r2, [r1, 0x1F] adds r0, r2 strb r0, [r1, 0x8] ldr r1, [r5] adds r2, r1, 0 adds r2, 0x20 ldrb r0, [r1, 0x1E] ldrb r2, [r2] adds r0, r2 strb r0, [r1, 0x9] ldr r1, [r5] ldrb r0, [r1, 0x1D] adds r0, 0x1 strb r0, [r1, 0x1D] ldr r2, [r5] ldrb r0, [r2, 0x1D] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _081245DC ldrb r0, [r2, 0x1E] adds r0, 0x1 strb r0, [r2, 0x1E] _081245DC: ldr r0, [r5] ldrb r0, [r0, 0x1D] cmp r0, 0x10 bls _081245E8 bl sub_812476C _081245E8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081245F0: .4byte gUnknown_02039274 thumb_func_end sub_8124598 thumb_func_start sub_81245F4 sub_81245F4: @ 81245F4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r0, 0 mov r12, r0 ldr r2, _0812475C ldr r0, [r2] mov r1, r12 strb r1, [r0, 0x1E] strb r1, [r0, 0x1D] ldr r1, [r2] ldrb r0, [r1, 0x8] strb r0, [r1, 0x1F] ldr r0, [r2] ldrb r1, [r0, 0x9] adds r0, 0x20 strb r1, [r0] ldr r4, [r2] ldrb r1, [r4, 0x19] adds r3, r1, 0 adds r3, 0x1E adds r0, r3, 0 mov r9, r2 asrs r0, 5 lsls r0, 5 subs r0, r3, r0 strb r0, [r4, 0x19] mov r2, r9 ldr r1, [r2] ldrb r0, [r1, 0x18] subs r0, 0x2 strb r0, [r1, 0x18] ldr r0, [r2] ldrb r1, [r0, 0x1A] adds r2, r1, 0 adds r2, 0x17 adds r0, r2, 0 ldr r3, _08124760 mov r10, r3 asrs r0, 5 lsls r0, 5 subs r0, r2, r0 mov r4, r10 strb r0, [r4] ldr r7, _08124764 ldr r0, _08124768 mov r8, r0 _08124658: mov r1, r9 ldr r3, [r1] ldrb r0, [r3, 0x19] strb r0, [r7] mov r2, r10 ldrb r0, [r2] mov r4, r12 adds r1, r0, r4 adds r0, r1, 0 asrs r0, 5 lsls r0, 5 subs r0, r1, r0 mov r1, r8 strb r0, [r1] ldrb r2, [r7] lsls r2, 1 ldrb r0, [r1] lsls r0, 6 adds r2, r0 adds r6, r3, 0 adds r6, 0xFC adds r2, r6, r2 ldrb r1, [r3, 0x18] lsls r1, 1 mov r4, r12 lsls r0, r4, 1 add r0, r12 lsls r5, r0, 3 adds r1, r5 adds r4, r3, 0 adds r4, 0x22 adds r1, r4, r1 ldrh r0, [r1] strh r0, [r2] ldrb r1, [r7] adds r2, r1, 0x1 adds r0, r2, 0 asrs r0, 5 lsls r0, 5 subs r0, r2, r0 strb r0, [r7] ldrb r1, [r7] lsls r1, 1 mov r2, r8 ldrb r0, [r2] lsls r0, 6 adds r1, r0 adds r1, r6, r1 ldrb r0, [r3, 0x18] adds r0, 0x1 lsls r0, 1 adds r0, r5 adds r0, r4, r0 ldrh r0, [r0] strh r0, [r1] mov r0, r12 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r12, r0 cmp r0, 0x8 bls _08124658 ldr r4, _08124764 mov r5, r9 ldr r3, [r5] ldrb r1, [r3, 0x19] adds r2, r1, 0 adds r2, 0x1E adds r0, r2, 0 asrs r0, 5 lsls r0, 5 subs r0, r2, r0 strb r0, [r4] adds r0, r3, 0 adds r0, 0xFC ldrb r2, [r4] movs r1, 0x2 str r1, [sp] movs r6, 0x20 str r6, [sp, 0x4] movs r1, 0 movs r3, 0 bl sub_8124E7C ldr r1, [r5] ldrb r0, [r1, 0x18] cmp r0, 0 bne _0812474C ldrb r2, [r1, 0x1A] adds r3, r2, 0 adds r3, 0x1D adds r0, r3, 0 asrs r0, 5 lsls r0, 5 subs r0, r3, r0 strb r0, [r1, 0x1A] mov r3, r9 ldr r1, [r3] movs r0, 0xC strb r0, [r1, 0x18] bl sub_812446C mov r4, r9 ldr r1, [r4] ldrb r3, [r1, 0x1A] adds r4, r3, 0x1 adds r0, r4, 0 asrs r0, 5 lsls r0, 5 subs r0, r4, r0 ldr r2, _08124764 strb r0, [r2] adds r0, r1, 0 adds r0, 0xFC ldrb r3, [r2] str r6, [sp] movs r1, 0x9 str r1, [sp, 0x4] movs r1, 0 movs r2, 0 bl sub_8124E7C _0812474C: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812475C: .4byte gUnknown_02039274 _08124760: .4byte gUnknown_0203927A _08124764: .4byte gUnknown_02039278 _08124768: .4byte gUnknown_02039279 thumb_func_end sub_81245F4 thumb_func_start sub_812476C sub_812476C: @ 812476C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r0, 0 mov r12, r0 ldr r2, _0812489C ldr r0, [r2] mov r1, r12 strb r1, [r0, 0x1E] strb r1, [r0, 0x1D] ldr r1, [r2] ldrb r0, [r1, 0x8] strb r0, [r1, 0x1F] ldr r0, [r2] ldrb r1, [r0, 0x9] adds r0, 0x20 strb r1, [r0] ldr r4, [r2] ldrb r1, [r4, 0x19] adds r3, r1, 0x2 adds r0, r3, 0 mov r9, r2 asrs r0, 5 lsls r0, 5 subs r0, r3, r0 strb r0, [r4, 0x19] mov r2, r9 ldr r1, [r2] ldrb r0, [r1, 0x18] adds r0, 0x2 strb r0, [r1, 0x18] ldr r1, _081248A0 ldr r0, [r2] ldrb r0, [r0, 0x1A] strb r0, [r1] ldr r4, _081248A4 mov r10, r4 ldr r7, _081248A8 mov r8, r10 _081247C0: mov r0, r9 ldr r3, [r0] ldrb r0, [r3, 0x19] strb r0, [r7] ldr r1, _081248A0 ldrb r0, [r1] mov r2, r12 adds r1, r0, r2 adds r0, r1, 0 asrs r0, 5 lsls r0, 5 subs r0, r1, r0 mov r4, r8 strb r0, [r4] ldrb r2, [r7] lsls r2, 1 ldrb r0, [r4] lsls r0, 6 adds r2, r0 adds r6, r3, 0 adds r6, 0xFC adds r2, r6, r2 ldrb r1, [r3, 0x18] lsls r1, 1 mov r4, r12 lsls r0, r4, 1 add r0, r12 lsls r5, r0, 3 adds r1, r5 adds r4, r3, 0 adds r4, 0x22 adds r1, r4, r1 ldrh r0, [r1] strh r0, [r2] ldrb r1, [r7] adds r2, r1, 0x1 adds r0, r2, 0 asrs r0, 5 lsls r0, 5 subs r0, r2, r0 strb r0, [r7] ldrb r1, [r7] lsls r1, 1 mov r2, r8 ldrb r0, [r2] lsls r0, 6 adds r1, r0 adds r1, r6, r1 ldrb r0, [r3, 0x18] adds r0, 0x1 lsls r0, 1 adds r0, r5 adds r0, r4, r0 ldrh r0, [r0] strh r0, [r1] mov r0, r12 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r12, r0 cmp r0, 0x8 bls _081247C0 mov r4, r9 ldr r1, [r4] ldrb r2, [r1, 0x1A] adds r3, r2, 0 adds r3, 0x17 adds r0, r3, 0 asrs r0, 5 lsls r0, 5 subs r0, r3, r0 mov r2, r10 strb r0, [r2] adds r0, r1, 0 adds r0, 0xFC ldrb r2, [r1, 0x19] mov r1, r10 ldrb r3, [r1] movs r1, 0x2 str r1, [sp] movs r1, 0x9 str r1, [sp, 0x4] movs r1, 0 bl sub_8124E7C ldr r1, [r4] ldrb r0, [r1, 0x18] cmp r0, 0xA bne _0812488C ldrb r2, [r1, 0x1A] adds r3, r2, 0x3 adds r0, r3, 0 asrs r0, 5 lsls r0, 5 subs r0, r3, r0 strb r0, [r1, 0x1A] mov r2, r9 ldr r1, [r2] movs r0, 0xFE strb r0, [r1, 0x18] bl sub_812446C _0812488C: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812489C: .4byte gUnknown_02039274 _081248A0: .4byte gUnknown_0203927D _081248A4: .4byte gUnknown_0203927C _081248A8: .4byte gUnknown_0203927B thumb_func_end sub_812476C thumb_func_start sub_81248AC sub_81248AC: @ 81248AC push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _081248BA cmp r0, 0x1 beq _081248E4 _081248BA: ldr r1, _081248E0 ldr r2, [r1] movs r3, 0 movs r0, 0x2 strb r0, [r2, 0x1B] ldr r0, [r1] strb r3, [r0, 0x19] ldr r2, [r1] movs r0, 0x14 strb r0, [r2, 0x1A] ldr r1, [r1] movs r0, 0xC strb r0, [r1, 0x18] bl sub_812446C bl sub_81245F4 b _08124906 .align 2, 0 _081248E0: .4byte gUnknown_02039274 _081248E4: ldr r1, _08124914 ldr r2, [r1] movs r0, 0x2 strb r0, [r2, 0x1B] ldr r2, [r1] movs r0, 0x1C strb r0, [r2, 0x19] ldr r2, [r1] movs r0, 0x14 strb r0, [r2, 0x1A] ldr r1, [r1] movs r0, 0x4 strb r0, [r1, 0x18] bl sub_812446C bl sub_812476C _08124906: ldr r0, _08124914 ldr r1, [r0] movs r0, 0 strb r0, [r1, 0x1C] pop {r0} bx r0 .align 2, 0 _08124914: .4byte gUnknown_02039274 thumb_func_end sub_81248AC thumb_func_start sub_8124918 sub_8124918: @ 8124918 push {lr} movs r1, 0 strb r1, [r0] strh r1, [r0, 0x2] adds r0, 0x4 movs r2, 0xC0 bl memset pop {r0} bx r0 thumb_func_end sub_8124918 thumb_func_start sub_812492C sub_812492C: @ 812492C push {r4-r7,lr} adds r3, r0, 0 lsls r1, 24 lsrs r6, r1, 24 cmp r6, 0xF bhi _08124948 lsls r0, r6, 1 adds r0, r6 lsls r0, 2 adds r5, r3, r0 ldrb r7, [r5, 0x4] lsrs r0, r7, 7 cmp r0, 0 beq _0812494C _08124948: movs r0, 0xFF b _081249AA _0812494C: ldrh r0, [r2] movs r4, 0 strh r0, [r5, 0x8] ldrh r0, [r2, 0x2] strh r0, [r5, 0xA] ldrb r0, [r2, 0x4] strb r0, [r5, 0xC] ldrb r0, [r2, 0x5] strb r0, [r5, 0xD] ldrb r0, [r2, 0x6] strb r0, [r5, 0xE] ldrb r3, [r2, 0x7] lsls r0, r3, 27 lsrs r0, 27 ldrb r2, [r5, 0xF] movs r1, 0x20 negs r1, r1 ands r1, r2 orrs r1, r0 movs r0, 0x60 ands r0, r3 movs r2, 0x61 negs r2, r2 ands r1, r2 orrs r1, r0 lsls r3, 24 asrs r3, 31 lsls r3, 7 movs r0, 0x7F ands r1, r0 orrs r1, r3 strb r1, [r5, 0xF] subs r0, 0xFF ands r0, r7 movs r2, 0x80 orrs r0, r2 strb r0, [r5, 0x4] strb r4, [r5, 0x6] strb r4, [r5, 0x5] lsls r1, 24 cmp r1, 0 bge _081249A4 movs r0, 0xFF b _081249A6 _081249A4: movs r0, 0x1 _081249A6: strb r0, [r5, 0x7] adds r0, r6, 0 _081249AA: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_812492C thumb_func_start unref_sub_81249B0 unref_sub_81249B0: @ 81249B0 push {r4,lr} adds r2, r0, 0 lsls r1, 24 lsrs r1, 24 adds r4, r1, 0 cmp r4, 0xF bhi _081249DC lsls r0, r4, 1 adds r0, r4 lsls r0, 2 adds r1, r2, r0 ldrb r0, [r1, 0x4] lsrs r0, 7 cmp r0, 0 beq _081249DC adds r0, r1, 0x4 movs r1, 0 movs r2, 0xC bl memset adds r0, r4, 0 b _081249DE _081249DC: movs r0, 0xFF _081249DE: pop {r4} pop {r1} bx r1 thumb_func_end unref_sub_81249B0 thumb_func_start sub_81249E4 sub_81249E4: @ 81249E4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r5, r0, 0 movs r0, 0 mov r12, r0 ldrb r1, [r5, 0x8] cmp r12, r1 bcc _081249FC b _08124B94 _081249FC: movs r7, 0x1F ldr r0, _08124A2C mov r10, r0 movs r1, 0x7D negs r1, r1 mov r9, r1 movs r0, 0x1F mov r8, r0 _08124A0C: ldrh r0, [r5, 0x6] add r0, r12 lsls r0, 1 ldr r1, _08124A30 adds r3, r0, r1 ldr r1, _08124A34 adds r6, r0, r1 ldrb r0, [r5] lsls r0, 25 lsrs r0, 25 cmp r0, 0x1 beq _08124A38 cmp r0, 0x2 beq _08124A96 b _08124B82 .align 2, 0 _08124A2C: .4byte 0xfffffc1f _08124A30: .4byte gPlttBufferFaded _08124A34: .4byte gPlttBufferUnfaded _08124A38: ldr r0, [r3] lsls r2, r0, 27 lsrs r0, r2, 27 movs r1, 0x3 ldrsb r1, [r5, r1] adds r0, r1 cmp r0, 0x1F bhi _08124A5A lsrs r0, r2, 27 adds r0, r1 ands r0, r7 ldrb r2, [r3] movs r1, 0x20 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3] _08124A5A: ldr r0, [r3] lsls r2, r0, 22 lsrs r0, r2, 27 movs r1, 0x3 ldrsb r1, [r5, r1] adds r0, r1 cmp r0, 0x1F bhi _08124A7E lsrs r0, r2, 27 adds r0, r1 mov r1, r8 ands r0, r1 lsls r0, 5 ldrh r2, [r3] mov r1, r10 ands r1, r2 orrs r1, r0 strh r1, [r3] _08124A7E: ldr r0, [r3] lsls r2, r0, 17 lsrs r0, r2, 27 movs r1, 0x3 ldrsb r1, [r5, r1] adds r0, r1 cmp r0, 0x1F bls _08124A90 b _08124B82 _08124A90: lsrs r0, r2, 27 adds r0, r1 b _08124B74 _08124A96: movs r0, 0x3 ldrsb r0, [r5, r0] cmp r0, 0 bge _08124B08 ldr r0, [r3] lsls r4, r0, 27 lsrs r1, r4, 27 movs r2, 0x3 ldrsb r2, [r5, r2] adds r1, r2 ldr r0, [r6] lsls r0, 27 lsrs r0, 27 cmp r1, r0 blt _08124AC6 lsrs r0, r4, 27 adds r0, r2 ands r0, r7 ldrb r2, [r3] movs r1, 0x20 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3] _08124AC6: ldr r0, [r3] lsls r4, r0, 22 lsrs r1, r4, 27 movs r2, 0x3 ldrsb r2, [r5, r2] adds r1, r2 ldr r0, [r6] lsls r0, 22 lsrs r0, 27 cmp r1, r0 blt _08124AF0 lsrs r0, r4, 27 adds r0, r2 mov r1, r8 ands r0, r1 lsls r0, 5 ldrh r2, [r3] mov r1, r10 ands r1, r2 orrs r1, r0 strh r1, [r3] _08124AF0: ldr r0, [r3] lsls r4, r0, 17 lsrs r1, r4, 27 movs r2, 0x3 ldrsb r2, [r5, r2] adds r1, r2 ldr r0, [r6] lsls r0, 17 lsrs r0, 27 cmp r1, r0 blt _08124B82 b _08124B70 _08124B08: ldr r0, [r3] lsls r4, r0, 27 lsrs r1, r4, 27 movs r2, 0x3 ldrsb r2, [r5, r2] adds r1, r2 ldr r0, [r6] lsls r0, 27 lsrs r0, 27 cmp r1, r0 bgt _08124B30 lsrs r0, r4, 27 adds r0, r2 ands r0, r7 ldrb r2, [r3] movs r1, 0x20 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3] _08124B30: ldr r0, [r3] lsls r4, r0, 22 lsrs r1, r4, 27 movs r2, 0x3 ldrsb r2, [r5, r2] adds r1, r2 ldr r0, [r6] lsls r0, 22 lsrs r0, 27 cmp r1, r0 bgt _08124B5A lsrs r0, r4, 27 adds r0, r2 mov r1, r8 ands r0, r1 lsls r0, 5 ldrh r2, [r3] mov r1, r10 ands r1, r2 orrs r1, r0 strh r1, [r3] _08124B5A: ldr r0, [r3] lsls r4, r0, 17 lsrs r1, r4, 27 movs r2, 0x3 ldrsb r2, [r5, r2] adds r1, r2 ldr r0, [r6] lsls r0, 17 lsrs r0, 27 cmp r1, r0 bgt _08124B82 _08124B70: lsrs r0, r4, 27 adds r0, r2 _08124B74: ands r0, r7 lsls r0, 2 ldrb r2, [r3, 0x1] mov r1, r9 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x1] _08124B82: mov r0, r12 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r12, r0 ldrb r0, [r5, 0x8] cmp r12, r0 bcs _08124B94 b _08124A0C _08124B94: ldrb r1, [r5, 0x2] adds r0, r1, 0x1 strb r0, [r5, 0x2] ldrb r0, [r5, 0xB] lsls r0, 27 lsls r1, 24 asrs r0, 3 cmp r1, r0 beq _08124BAA movs r0, 0 b _08124BDE _08124BAA: movs r0, 0 strb r0, [r5, 0x2] movs r0, 0x3 ldrsb r0, [r5, r0] negs r0, r0 strb r0, [r5, 0x3] ldrb r2, [r5] movs r1, 0x7F movs r0, 0x7F ands r0, r2 cmp r0, 0x1 bne _08124BCA lsls r0, r2, 25 lsrs r0, 25 adds r0, 0x1 b _08124BD0 _08124BCA: lsls r0, r2, 25 lsrs r0, 25 subs r0, 0x1 _08124BD0: ands r0, r1 movs r1, 0x80 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r5] movs r0, 0x1 _08124BDE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81249E4 thumb_func_start sub_8124BEC sub_8124BEC: @ 8124BEC push {r4,r5,lr} adds r3, r0, 0 movs r2, 0 ldrb r0, [r3] lsls r0, 25 lsrs r0, 25 cmp r0, 0x1 beq _08124C02 cmp r0, 0x2 beq _08124C30 b _08124C6A _08124C02: ldrb r0, [r3, 0x8] cmp r2, r0 bcs _08124C22 ldr r4, _08124C2C _08124C0A: ldrh r0, [r3, 0x6] adds r0, r2 lsls r0, 1 adds r0, r4 ldrh r1, [r3, 0x4] strh r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 ldrb r0, [r3, 0x8] cmp r2, r0 bcc _08124C0A _08124C22: ldrb r2, [r3] lsls r1, r2, 25 lsrs r1, 25 adds r1, 0x1 b _08124C5C .align 2, 0 _08124C2C: .4byte gPlttBufferFaded _08124C30: ldrb r0, [r3, 0x8] cmp r2, r0 bcs _08124C54 ldr r5, _08124C74 ldr r4, _08124C78 _08124C3A: ldrh r0, [r3, 0x6] adds r0, r2 lsls r0, 1 adds r1, r0, r5 adds r0, r4 ldrh r0, [r0] strh r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 ldrb r0, [r3, 0x8] cmp r2, r0 bcc _08124C3A _08124C54: ldrb r2, [r3] lsls r1, r2, 25 lsrs r1, 25 subs r1, 0x1 _08124C5C: movs r0, 0x7F ands r1, r0 movs r0, 0x80 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _08124C6A: movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08124C74: .4byte gPlttBufferFaded _08124C78: .4byte gPlttBufferUnfaded thumb_func_end sub_8124BEC thumb_func_start task_tutorial_controls_fadein task_tutorial_controls_fadein: @ 8124C7C push {r4-r6,lr} adds r4, r0, 0 movs r5, 0 ldrb r0, [r4] cmp r0, 0 beq _08124CE0 _08124C88: ldrh r0, [r4, 0x2] asrs r0, r5 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _08124CD6 lsls r1, r5, 1 adds r0, r1, r5 lsls r3, r0, 2 adds r2, r4, r3 ldrb r0, [r2, 0x5] subs r0, 0x1 strb r0, [r2, 0x5] lsls r0, 24 lsrs r0, 24 adds r6, r1, 0 cmp r0, 0xFF bne _08124CD6 ldrh r0, [r2, 0x8] movs r2, 0x80 lsls r2, 8 adds r1, r2, 0 ands r0, r1 cmp r0, 0 beq _08124CC4 adds r0, r3, 0x4 adds r0, r4, r0 bl sub_81249E4 b _08124CCC _08124CC4: adds r0, r3, 0x4 adds r0, r4, r0 bl sub_8124BEC _08124CCC: adds r0, r6, r5 lsls r0, 2 adds r0, r4, r0 ldrb r1, [r0, 0xD] strb r1, [r0, 0x5] _08124CD6: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xF bls _08124C88 _08124CE0: pop {r4-r6} pop {r0} bx r0 thumb_func_end task_tutorial_controls_fadein thumb_func_start sub_8124CE8 sub_8124CE8: @ 8124CE8 push {r4-r7,lr} adds r3, r0, 0 lsls r1, 16 lsrs r6, r1, 16 movs r4, 0 ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] movs r5, 0x1 movs r7, 0x80 negs r7, r7 _08124CFE: adds r0, r6, 0 asrs r0, r4 ands r0, r5 cmp r0, 0 beq _08124D2C lsls r0, r4, 1 adds r0, r4 lsls r0, 2 adds r2, r3, r0 ldrb r0, [r2, 0x4] lsrs r0, 7 cmp r0, 0 beq _08124D2C adds r0, r5, 0 lsls r0, r4 ldrh r1, [r3, 0x2] orrs r0, r1 strh r0, [r3, 0x2] ldrb r1, [r2, 0x4] adds r0, r7, 0 ands r0, r1 orrs r0, r5 strb r0, [r2, 0x4] _08124D2C: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF bls _08124CFE pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8124CE8 thumb_func_start sub_8124D3C sub_8124D3C: @ 8124D3C push {r4-r7,lr} sub sp, 0x4 adds r6, r0, 0 lsls r1, 16 lsrs r7, r1, 16 movs r5, 0 movs r3, 0x1 _08124D4A: ldrh r0, [r6, 0x2] asrs r0, r5 ands r0, r3 cmp r0, 0 beq _08124DB2 lsls r0, r5, 1 adds r0, r5 lsls r0, 2 adds r4, r6, r0 ldrb r0, [r4, 0x4] lsrs r0, 7 cmp r0, 0 beq _08124DB2 adds r0, r7, 0 asrs r0, r5 ands r0, r3 cmp r0, 0 beq _08124DB2 ldrh r1, [r4, 0xA] lsls r1, 1 ldr r0, _08124DA8 adds r0, r1, r0 ldr r2, _08124DAC adds r1, r2 ldrb r2, [r4, 0xC] lsls r2, 1 str r3, [sp] bl memcpy ldrb r0, [r4, 0x4] movs r2, 0x80 negs r2, r2 adds r1, r2, 0 ands r0, r1 strb r0, [r4, 0x4] movs r0, 0 strb r0, [r4, 0x6] strb r0, [r4, 0x5] ldrb r0, [r4, 0xF] lsls r0, 24 ldr r3, [sp] cmp r0, 0 bge _08124DB0 movs r0, 0xFF strb r0, [r4, 0x7] b _08124DB2 .align 2, 0 _08124DA8: .4byte gPlttBufferFaded _08124DAC: .4byte gPlttBufferUnfaded _08124DB0: strb r3, [r4, 0x7] _08124DB2: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xF bls _08124D4A ldr r0, _08124DC8 cmp r7, r0 bne _08124DCC movs r0, 0 strb r0, [r6] b _08124DD0 .align 2, 0 _08124DC8: .4byte 0x0000ffff _08124DCC: ldrh r0, [r6, 0x2] bics r0, r7 _08124DD0: strh r0, [r6, 0x2] add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8124D3C thumb_func_start sub_8124DDC sub_8124DDC: @ 8124DDC push {r4-r7,lr} adds r6, r0, 0 ldr r0, [sp, 0x14] ldr r4, [sp, 0x18] lsls r1, 16 lsrs r7, r1, 16 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsls r0, 24 lsrs r5, r0, 24 lsls r4, 24 lsrs r4, 24 movs r1, 0 lsrs r3, 19 adds r3, r2 lsls r3, 1 adds r6, r3 cmp r1, r4 bcs _08124E26 _08124E04: lsls r0, r1, 6 adds r2, r6, r0 movs r0, 0 adds r3, r1, 0x1 cmp r0, r5 bcs _08124E1E _08124E10: strh r7, [r2] adds r2, 0x2 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, r5 bcc _08124E10 _08124E1E: lsls r0, r3, 24 lsrs r1, r0, 24 cmp r1, r4 bcc _08124E04 _08124E26: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8124DDC thumb_func_start sub_8124E2C sub_8124E2C: @ 8124E2C push {r4-r7,lr} adds r7, r0, 0 ldr r0, [sp, 0x14] ldr r4, [sp, 0x18] lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsls r0, 24 lsrs r5, r0, 24 lsls r4, 24 lsrs r6, r4, 24 movs r4, 0 lsrs r3, 19 adds r3, r2 lsls r3, 1 adds r7, r3 cmp r4, r6 bcs _08124E76 _08124E50: lsls r0, r4, 6 adds r2, r7, r0 movs r3, 0 adds r4, 0x1 cmp r3, r5 bcs _08124E6E _08124E5C: ldrh r0, [r1] strh r0, [r2] adds r1, 0x2 adds r2, 0x2 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, r5 bcc _08124E5C _08124E6E: lsls r0, r4, 24 lsrs r4, r0, 24 cmp r4, r6 bcc _08124E50 _08124E76: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8124E2C thumb_func_start sub_8124E7C sub_8124E7C: @ 8124E7C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r10, r0 ldr r0, [sp, 0x24] ldr r4, [sp, 0x28] lsls r1, 16 lsrs r1, 16 mov r9, r1 lsls r2, 24 lsrs r2, 24 str r2, [sp] lsls r3, 24 lsls r0, 24 lsrs r7, r0, 24 lsls r4, 24 lsrs r4, 24 mov r8, r4 movs r0, 0 lsrs r4, r3, 24 cmp r0, r8 bcs _08124EF6 _08124EAE: ldr r2, [sp] movs r3, 0 adds r6, r4, 0x1 adds r0, 0x1 mov r12, r0 cmp r3, r7 bcs _08124EE0 lsls r5, r4, 6 _08124EBE: lsls r0, r2, 1 adds r0, r5 add r0, r10 mov r1, r9 strh r1, [r0] adds r1, r2, 0x1 adds r0, r1, 0 asrs r0, 5 lsls r0, 5 subs r0, r1, r0 lsls r0, 24 lsrs r2, r0, 24 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, r7 bcc _08124EBE _08124EE0: adds r0, r6, 0 asrs r0, 5 lsls r0, 5 subs r0, r6, r0 lsls r0, 24 lsrs r4, r0, 24 mov r1, r12 lsls r0, r1, 24 lsrs r0, 24 cmp r0, r8 bcc _08124EAE _08124EF6: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8124E7C thumb_func_start sub_8124F08 sub_8124F08: @ 8124F08 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r10, r0 ldr r0, [sp, 0x24] ldr r4, [sp, 0x28] lsls r2, 24 lsrs r2, 24 str r2, [sp] lsls r3, 24 lsls r0, 24 lsrs r0, 24 mov r12, r0 lsls r4, 24 lsrs r4, 24 mov r9, r4 movs r0, 0 adds r5, r1, 0 lsrs r4, r3, 24 cmp r0, r9 bcs _08124F82 _08124F38: ldr r2, [sp] movs r3, 0 adds r7, r4, 0x1 adds r0, 0x1 mov r8, r0 cmp r3, r12 bcs _08124F6C lsls r6, r4, 6 _08124F48: lsls r0, r2, 1 adds r0, r6 add r0, r10 ldrh r1, [r5] strh r1, [r0] adds r5, 0x2 adds r1, r2, 0x1 adds r0, r1, 0 asrs r0, 5 lsls r0, 5 subs r0, r1, r0 lsls r0, 24 lsrs r2, r0, 24 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, r12 bcc _08124F48 _08124F6C: adds r0, r7, 0 asrs r0, 5 lsls r0, 5 subs r0, r7, r0 lsls r0, 24 lsrs r4, r0, 24 mov r1, r8 lsls r0, r1, 24 lsrs r0, 24 cmp r0, r9 bcc _08124F38 _08124F82: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8124F08 thumb_func_start unref_sub_8124F94 unref_sub_8124F94: @ 8124F94 sub sp, 0x4 movs r3, 0 strb r3, [r0, 0x1] strb r3, [r0] strh r3, [r0, 0x2] movs r1, 0xC0 lsls r1, 19 str r1, [r0, 0x4] mov r1, sp strh r3, [r1] ldr r2, _08124FCC str r1, [r2] adds r1, r0, 0 adds r1, 0x8 str r1, [r2, 0x4] ldr r1, _08124FD0 str r1, [r2, 0x8] ldr r1, [r2, 0x8] mov r1, sp strh r3, [r1] str r1, [r2] adds r0, 0x88 str r0, [r2, 0x4] ldr r0, _08124FD4 str r0, [r2, 0x8] ldr r0, [r2, 0x8] add sp, 0x4 bx lr .align 2, 0 _08124FCC: .4byte 0x040000d4 _08124FD0: .4byte 0x81000040 _08124FD4: .4byte 0x810000c0 thumb_func_end unref_sub_8124F94 thumb_func_start unref_sub_8124FD8 unref_sub_8124FD8: @ 8124FD8 push {r4-r7,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r7, _08124FE4 b _0812508A .align 2, 0 _08124FE4: .4byte 0x040000d4 _08124FE8: ldrb r0, [r4, 0x1] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r0, r4, 0 adds r0, 0x88 adds r0, r1 str r3, [r0] ldrb r1, [r4, 0x1] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r4, r0 ldrb r1, [r5, 0x6] adds r0, 0x8E strb r1, [r0] ldrb r1, [r4, 0x1] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r4, r0 ldrb r1, [r5, 0x4] adds r0, 0x8C strb r1, [r0] ldrb r1, [r4, 0x1] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r4, r0 ldrb r1, [r5, 0x5] adds r0, 0x8D strb r1, [r0] ldrb r1, [r5, 0x4] ldrb r0, [r5, 0x5] adds r6, r1, 0 muls r6, r0 ldrh r2, [r4, 0x2] adds r1, r2, r6 movs r0, 0x80 lsls r0, 3 cmp r1, r0 ble _08125040 movs r0, 0x2 b _0812509C _08125040: ldrh r0, [r5, 0x8] cmp r0, 0 bne _08125060 str r3, [r7] ldrh r1, [r4, 0x2] lsls r1, 6 ldr r0, [r4, 0x4] adds r0, r1 str r0, [r7, 0x4] lsls r0, r6, 4 movs r1, 0x80 lsls r1, 24 orrs r0, r1 str r0, [r7, 0x8] ldr r0, [r7, 0x8] b _0812506C _08125060: lsls r0, r2, 6 ldr r1, [r4, 0x4] adds r1, r0 adds r0, r3, 0 bl sub_800D238 _0812506C: ldrb r1, [r4, 0x1] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r4, r0 ldrh r1, [r4, 0x2] adds r0, 0x90 strh r1, [r0] ldrh r0, [r4, 0x2] adds r0, r6, r0 strh r0, [r4, 0x2] ldrb r0, [r4, 0x1] adds r0, 0x1 strb r0, [r4, 0x1] adds r5, 0xC _0812508A: ldrb r0, [r4, 0x1] cmp r0, 0x1F bhi _0812509A ldr r3, [r5] cmp r3, 0 bne _08124FE8 movs r0, 0 b _0812509C _0812509A: movs r0, 0x1 _0812509C: pop {r4-r7} pop {r1} bx r1 thumb_func_end unref_sub_8124FD8 thumb_func_start unref_sub_81250A4 unref_sub_81250A4: @ 81250A4 push {r4,r5,lr} sub sp, 0x20 adds r4, r0, 0 adds r5, r1, 0 b _081250FC _081250AE: ldrb r1, [r4] lsls r1, 3 adds r0, r4, 0 adds r0, 0x8 adds r0, r1 str r2, [r0] ldrb r0, [r4] lsls r0, 3 adds r0, r4, r0 ldrb r1, [r5, 0x4] strb r1, [r0, 0xC] ldrb r0, [r5, 0x5] cmp r0, 0 bne _081250D8 ldrb r1, [r4] lsls r1, 4 adds r0, r2, 0 movs r2, 0x20 bl LoadPalette b _081250EC _081250D8: adds r0, r2, 0 mov r1, sp bl sub_800D238 ldrb r1, [r4] lsls r1, 4 mov r0, sp movs r2, 0x20 bl LoadPalette _081250EC: ldrb r0, [r4] lsls r1, r0, 3 adds r1, r4, r1 strb r0, [r1, 0xD] ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] adds r5, 0x8 _081250FC: ldrb r0, [r4] cmp r0, 0xF bhi _0812510C ldr r2, [r5] cmp r2, 0 bne _081250AE movs r0, 0 b _0812510E _0812510C: movs r0, 0x1 _0812510E: add sp, 0x20 pop {r4,r5} pop {r1} bx r1 thumb_func_end unref_sub_81250A4 thumb_func_start unref_sub_8125118 unref_sub_8125118: @ 8125118 push {r4-r7,lr} ldr r4, _0812514C add sp, r4 adds r5, r0, 0 adds r6, r1, 0 movs r2, 0x80 lsls r2, 2 mov r0, sp movs r1, 0 bl memset ldrb r7, [r6, 0x5] ldr r0, [r6] mov r1, sp bl sub_800D238 ldrb r4, [r5] cmp r4, r7 bcs _08125186 _0812513E: ldrb r0, [r5] adds r0, r4 cmp r0, 0xF ble _08125150 movs r0, 0x1 b _08125188 .align 2, 0 _0812514C: .4byte 0xfffffe00 _08125150: lsls r2, r4, 3 adds r0, r5, 0 adds r0, 0x8 adds r0, r2 ldr r1, [r6] str r1, [r0] adds r2, r5, r2 ldrb r0, [r6, 0x4] adds r0, r4, r0 strb r0, [r2, 0xC] ldrb r0, [r5] strb r0, [r2, 0xD] lsls r0, r4, 5 add r0, sp ldrb r1, [r5] lsls r1, 4 movs r2, 0x20 bl LoadPalette ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r7 bcc _0812513E _08125186: movs r0, 0 _08125188: movs r3, 0x80 lsls r3, 2 add sp, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end unref_sub_8125118 thumb_func_start calls_flash_erase_block calls_flash_erase_block: @ 8125194 push {r4,r5,lr} movs r4, 0 ldr r5, _081251B4 _0812519A: ldr r1, [r5] adds r0, r4, 0 bl _call_via_r1 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1F bls _0812519A pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081251B4: .4byte EraseFlashSector thumb_func_end calls_flash_erase_block thumb_func_start sub_81251B8 sub_81251B8: @ 81251B8 ldr r0, _081251C8 movs r1, 0 str r1, [r0] ldr r0, _081251CC strh r1, [r0] ldr r0, _081251D0 str r1, [r0] bx lr .align 2, 0 _081251C8: .4byte gUnknown_03005EAC _081251CC: .4byte gUnknown_03005E9C _081251D0: .4byte gUnknown_03005EA8 thumb_func_end sub_81251B8 thumb_func_start sub_81251D4 sub_81251D4: @ 81251D4 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r3, r1, 24 movs r4, 0 cmp r0, 0x1 beq _08125208 cmp r0, 0x1 bgt _081251EE cmp r0, 0 beq _081251F4 b _0812522C _081251EE: cmp r0, 0x2 beq _0812521C b _0812522C _081251F4: ldr r2, _08125204 movs r1, 0x1 lsls r1, r3 ldr r0, [r2] orrs r0, r1 str r0, [r2] b _0812522C .align 2, 0 _08125204: .4byte gUnknown_03005EA8 _08125208: ldr r2, _08125218 adds r1, r0, 0 lsls r1, r3 ldr r0, [r2] bics r0, r1 str r0, [r2] b _0812522C .align 2, 0 _08125218: .4byte gUnknown_03005EA8 _0812521C: ldr r0, _08125234 movs r1, 0x1 lsls r1, r3 ldr r0, [r0] ands r0, r1 cmp r0, 0 beq _0812522C movs r4, 0x1 _0812522C: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08125234: .4byte gUnknown_03005EA8 thumb_func_end sub_81251D4 thumb_func_start save_write_to_flash save_write_to_flash: @ 8125238 push {r4-r7,lr} adds r7, r1, 0 lsls r0, 16 lsrs r2, r0, 16 ldr r1, _0812525C ldr r0, _08125260 str r0, [r1] ldr r0, _08125264 cmp r2, r0 beq _08125268 adds r0, r2, 0 adds r1, r7, 0 bl sub_81252D8 lsls r0, 24 lsrs r5, r0, 24 b _081252BA .align 2, 0 _0812525C: .4byte gUnknown_03005EB0 _08125260: .4byte 0x02000000 _08125264: .4byte 0x0000ffff _08125268: ldr r1, _081252C4 ldr r5, _081252C8 ldrh r0, [r5] strh r0, [r1] ldr r1, _081252CC ldr r6, _081252D0 ldr r4, [r6] str r4, [r1] adds r0, 0x1 strh r0, [r5] ldrh r0, [r5] movs r1, 0xE bl __umodsi3 strh r0, [r5] adds r4, 0x1 str r4, [r6] movs r5, 0x1 movs r4, 0 _0812528E: adds r0, r4, 0 adds r1, r7, 0 bl sub_81252D8 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0xD bls _0812528E ldr r0, _081252D4 ldr r0, [r0] cmp r0, 0 beq _081252BA movs r5, 0xFF ldr r1, _081252C8 ldr r0, _081252C4 ldrh r0, [r0] strh r0, [r1] ldr r1, _081252D0 ldr r0, _081252CC ldr r0, [r0] str r0, [r1] _081252BA: adds r0, r5, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081252C4: .4byte gUnknown_03005EA4 _081252C8: .4byte gUnknown_03005E9C _081252CC: .4byte gUnknown_03005EA0 _081252D0: .4byte gUnknown_03005EAC _081252D4: .4byte gUnknown_03005EA8 thumb_func_end save_write_to_flash thumb_func_start sub_81252D8 sub_81252D8: @ 81252D8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r4, r1, 0 lsls r0, 16 lsrs r6, r0, 16 ldr r0, _081253A4 ldrh r0, [r0] adds r0, r6, r0 lsls r0, 16 lsrs r5, r0, 16 adds r0, r5, 0 movs r1, 0xE bl __umodsi3 lsls r0, 16 lsrs r5, r0, 16 ldr r2, _081253A8 ldr r1, [r2] movs r0, 0x1 ands r1, r0 lsls r0, r1, 3 subs r0, r1 lsls r0, 1 adds r0, r5, r0 lsls r0, 16 lsrs r5, r0, 16 lsls r0, r6, 3 adds r0, r4 ldr r1, [r0] mov r10, r1 ldrh r4, [r0, 0x4] movs r3, 0 mov r9, r2 ldr r2, _081253AC mov r12, r2 mov r8, r12 movs r2, 0 ldr r1, _081253B0 _0812532A: mov r7, r8 ldr r0, [r7] adds r0, r3 strb r2, [r0] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r1 bls _0812532A mov r0, r12 ldr r1, [r0] ldr r2, _081253B4 adds r0, r1, r2 strh r6, [r0] ldr r3, _081253B8 adds r2, r1, r3 ldr r0, _081253BC str r0, [r2] ldr r6, _081253C0 adds r1, r6 mov r7, r9 ldr r0, [r7] str r0, [r1] movs r3, 0 lsls r5, 24 cmp r3, r4 bcs _08125378 mov r2, r12 _08125362: ldr r1, [r2] adds r1, r3 mov r6, r10 adds r0, r6, r3 ldrb r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r4 bcc _08125362 _08125378: mov r0, r10 adds r1, r4, 0 bl sub_8125C10 ldr r1, _081253AC ldr r1, [r1] ldr r7, _081253C4 adds r2, r1, r7 strh r0, [r2] lsrs r0, r5, 24 bl sub_8125440 lsls r0, 24 lsrs r0, 24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081253A4: .4byte gUnknown_03005E9C _081253A8: .4byte gUnknown_03005EAC _081253AC: .4byte gUnknown_03005EB0 _081253B0: .4byte 0x00000fff _081253B4: .4byte 0x00000ff4 _081253B8: .4byte 0x00000ff8 _081253BC: .4byte 0x08012025 @ TODO: figure out what this represents _081253C0: .4byte 0x00000ffc _081253C4: .4byte 0x00000ff6 thumb_func_end sub_81252D8 thumb_func_start sub_81253C8 sub_81253C8: @ 81253C8 push {r4-r7,lr} adds r5, r1, 0 lsls r0, 24 lsrs r7, r0, 24 lsls r2, 16 lsrs r2, 16 ldr r4, _0812542C movs r3, 0 movs r6, 0 ldr r1, _08125430 _081253DC: adds r0, r4, r3 strb r6, [r0] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r1 bls _081253DC ldr r0, _08125434 adds r1, r4, r0 ldr r0, _08125438 str r0, [r1] movs r3, 0 cmp r3, r2 bcs _0812540A _081253F8: adds r1, r4, r3 adds r0, r5, r3 ldrb r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r2 bcc _081253F8 _0812540A: adds r0, r5, 0 adds r1, r2, 0 bl sub_8125C10 ldr r2, _0812543C adds r1, r4, r2 strh r0, [r1] adds r0, r7, 0 adds r1, r4, 0 bl sub_8125440 lsls r0, 24 lsrs r0, 24 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0812542C: .4byte 0x02000000 _08125430: .4byte 0x00000fff _08125434: .4byte 0x00000ff8 _08125438: .4byte 0x08012025 @ TODO: figure out what this represents _0812543C: .4byte 0x00000ff4 thumb_func_end sub_81253C8 thumb_func_start sub_8125440 sub_8125440: @ 8125440 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl ProgramFlashSectorAndVerify cmp r0, 0 bne _0812545C movs r0, 0x1 adds r1, r4, 0 bl sub_81251D4 movs r0, 0x1 b _08125466 _0812545C: movs r0, 0 adds r1, r4, 0 bl sub_81251D4 movs r0, 0xFF _08125466: pop {r4} pop {r1} bx r1 thumb_func_end sub_8125440 thumb_func_start sub_812546C sub_812546C: @ 812546C push {r4-r6,lr} ldr r1, _081254A8 ldr r0, _081254AC str r0, [r1] ldr r1, _081254B0 ldr r5, _081254B4 ldrh r0, [r5] strh r0, [r1] ldr r1, _081254B8 ldr r6, _081254BC ldr r4, [r6] str r4, [r1] adds r0, 0x1 strh r0, [r5] ldrh r0, [r5] movs r1, 0xE bl __umodsi3 strh r0, [r5] adds r4, 0x1 str r4, [r6] ldr r1, _081254C0 movs r0, 0 strh r0, [r1] ldr r1, _081254C4 movs r0, 0 str r0, [r1] pop {r4-r6} pop {r1} bx r1 .align 2, 0 _081254A8: .4byte gUnknown_03005EB0 _081254AC: .4byte 0x02000000 _081254B0: .4byte gUnknown_03005EA4 _081254B4: .4byte gUnknown_03005E9C _081254B8: .4byte gUnknown_03005EA0 _081254BC: .4byte gUnknown_03005EAC _081254C0: .4byte gUnknown_03005EB4 _081254C4: .4byte gUnknown_03005EA8 thumb_func_end sub_812546C thumb_func_start sub_81254C8 sub_81254C8: @ 81254C8 ldr r1, _081254EC ldr r0, _081254F0 str r0, [r1] ldr r1, _081254F4 ldr r0, _081254F8 ldrh r0, [r0] strh r0, [r1] ldr r1, _081254FC ldr r0, _08125500 ldr r0, [r0] str r0, [r1] ldr r1, _08125504 movs r0, 0 strh r0, [r1] ldr r1, _08125508 movs r0, 0 str r0, [r1] bx lr .align 2, 0 _081254EC: .4byte gUnknown_03005EB0 _081254F0: .4byte 0x02000000 _081254F4: .4byte gUnknown_03005EA4 _081254F8: .4byte gUnknown_03005E9C _081254FC: .4byte gUnknown_03005EA0 _08125500: .4byte gUnknown_03005EAC _08125504: .4byte gUnknown_03005EB4 _08125508: .4byte gUnknown_03005EA8 thumb_func_end sub_81254C8 thumb_func_start sub_812550C sub_812550C: @ 812550C push {r4,r5,lr} lsls r0, 16 lsrs r0, 16 ldr r4, _08125548 ldrh r2, [r4] subs r0, 0x1 cmp r2, r0 bge _08125560 movs r5, 0x1 adds r0, r2, 0 bl sub_81252D8 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] ldr r0, _0812554C ldr r0, [r0] cmp r0, 0 beq _08125562 movs r5, 0xFF ldr r1, _08125550 ldr r0, _08125554 ldrh r0, [r0] strh r0, [r1] ldr r1, _08125558 ldr r0, _0812555C ldr r0, [r0] str r0, [r1] b _08125562 .align 2, 0 _08125548: .4byte gUnknown_03005EB4 _0812554C: .4byte gUnknown_03005EA8 _08125550: .4byte gUnknown_03005E9C _08125554: .4byte gUnknown_03005EA4 _08125558: .4byte gUnknown_03005EAC _0812555C: .4byte gUnknown_03005EA0 _08125560: movs r5, 0xFF _08125562: adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_812550C thumb_func_start sub_812556C sub_812556C: @ 812556C push {r4,lr} lsls r0, 16 movs r4, 0x1 ldr r2, _081255A0 adds r0, r2 lsrs r0, 16 bl sub_81255B8 ldr r0, _081255A4 ldr r0, [r0] cmp r0, 0 beq _08125596 movs r4, 0xFF ldr r1, _081255A8 ldr r0, _081255AC ldrh r0, [r0] strh r0, [r1] ldr r1, _081255B0 ldr r0, _081255B4 ldr r0, [r0] str r0, [r1] _08125596: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _081255A0: .4byte 0xffff0000 _081255A4: .4byte gUnknown_03005EA8 _081255A8: .4byte gUnknown_03005E9C _081255AC: .4byte gUnknown_03005EA4 _081255B0: .4byte gUnknown_03005EAC _081255B4: .4byte gUnknown_03005EA0 thumb_func_end sub_812556C thumb_func_start sub_81255B8 sub_81255B8: @ 81255B8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r4, r1, 0 lsls r0, 16 lsrs r6, r0, 16 ldr r0, _08125684 ldrh r0, [r0] adds r0, r6, r0 lsls r0, 16 lsrs r5, r0, 16 adds r0, r5, 0 movs r1, 0xE bl __umodsi3 lsls r0, 16 lsrs r5, r0, 16 ldr r2, _08125688 ldr r1, [r2] movs r0, 0x1 ands r1, r0 lsls r0, r1, 3 subs r0, r1 lsls r0, 1 adds r0, r5, r0 lsls r0, 16 lsrs r5, r0, 16 lsls r0, r6, 3 adds r0, r4 ldr r1, [r0] mov r10, r1 ldrh r3, [r0, 0x4] movs r4, 0 mov r9, r2 ldr r2, _0812568C mov r12, r2 mov r8, r12 movs r2, 0 ldr r1, _08125690 _0812560A: mov r7, r8 ldr r0, [r7] adds r0, r4 strb r2, [r0] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r1 bls _0812560A mov r0, r12 ldr r1, [r0] ldr r2, _08125694 adds r0, r1, r2 strh r6, [r0] ldr r6, _08125698 adds r2, r1, r6 ldr r0, _0812569C str r0, [r2] ldr r7, _081256A0 adds r1, r7 mov r2, r9 ldr r0, [r2] str r0, [r1] movs r4, 0 lsls r6, r5, 24 mov r8, r6 cmp r4, r3 bcs _0812565A mov r2, r12 _08125644: ldr r1, [r2] adds r1, r4 mov r7, r10 adds r0, r7, r4 ldrb r0, [r0] strb r0, [r1] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r3 bcc _08125644 _0812565A: mov r0, r10 adds r1, r3, 0 bl sub_8125C10 ldr r1, _0812568C ldr r1, [r1] ldr r2, _081256A4 adds r1, r2 strh r0, [r1] ldr r0, _081256A8 ldr r1, [r0] adds r0, r5, 0 bl _call_via_r1 movs r6, 0x1 movs r4, 0 ldr r7, _081256AC mov r9, r7 ldr r7, _081256B0 b _081256BA .align 2, 0 _08125684: .4byte gUnknown_03005E9C _08125688: .4byte gUnknown_03005EAC _0812568C: .4byte gUnknown_03005EB0 _08125690: .4byte 0x00000fff _08125694: .4byte 0x00000ff4 _08125698: .4byte 0x00000ff8 _0812569C: .4byte 0x08012025 @ TODO: figure out what this represents _081256A0: .4byte 0x00000ffc _081256A4: .4byte 0x00000ff6 _081256A8: .4byte EraseFlashSector _081256AC: .4byte 0x00000ff7 _081256B0: .4byte ProgramFlashByte _081256B4: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 _081256BA: cmp r4, r9 bhi _081256D8 ldr r0, _081256E4 ldr r0, [r0] adds r0, r4 ldrb r2, [r0] ldr r3, [r7] adds r0, r5, 0 adds r1, r4, 0 bl _call_via_r3 lsls r0, 16 cmp r0, 0 beq _081256B4 movs r6, 0xFF _081256D8: cmp r6, 0xFF bne _081256E8 mov r0, r8 lsrs r1, r0, 24 b _08125740 .align 2, 0 _081256E4: .4byte gUnknown_03005EB0 _081256E8: movs r6, 0x1 movs r4, 0 ldr r1, _081256F4 mov r9, r1 ldr r7, _081256F8 b _08125702 .align 2, 0 _081256F4: .4byte ProgramFlashByte _081256F8: .4byte 0x00000ff9 _081256FC: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 _08125702: cmp r4, 0x6 bhi _08125724 adds r1, r4, r7 ldr r0, _08125738 ldr r0, [r0] adds r0, r4, r0 adds r0, r7 ldrb r2, [r0] mov r0, r9 ldr r3, [r0] adds r0, r5, 0 bl _call_via_r3 lsls r0, 16 cmp r0, 0 beq _081256FC movs r6, 0xFF _08125724: cmp r6, 0xFF beq _0812573C mov r2, r8 lsrs r1, r2, 24 movs r0, 0x1 bl sub_81251D4 movs r0, 0x1 b _08125748 .align 2, 0 _08125738: .4byte gUnknown_03005EB0 _0812573C: mov r6, r8 lsrs r1, r6, 24 _08125740: movs r0, 0 bl sub_81251D4 movs r0, 0xFF _08125748: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81255B8 thumb_func_start sub_8125758 sub_8125758: @ 8125758 push {r4-r6,lr} lsls r0, 16 ldr r6, _081257B4 lsrs r0, 16 ldrh r1, [r6] adds r0, r1 subs r0, 0x1 lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 movs r1, 0xE bl __umodsi3 lsls r0, 16 lsrs r4, r0, 16 ldr r5, _081257B8 ldr r1, [r5] movs r0, 0x1 ands r1, r0 lsls r0, r1, 3 subs r0, r1 lsls r0, 1 adds r0, r4, r0 lsls r0, 16 lsrs r4, r0, 16 ldr r3, _081257BC ldr r1, _081257C0 ldr r0, _081257C4 ldr r0, [r0] adds r0, r1 ldrb r2, [r0] ldr r3, [r3] adds r0, r4, 0 bl _call_via_r3 lsls r0, 16 cmp r0, 0 bne _081257C8 lsls r1, r4, 24 lsrs r1, 24 movs r0, 0x1 bl sub_81251D4 movs r0, 0x1 b _081257E0 .align 2, 0 _081257B4: .4byte gUnknown_03005E9C _081257B8: .4byte gUnknown_03005EAC _081257BC: .4byte ProgramFlashByte _081257C0: .4byte 0x00000ff8 _081257C4: .4byte gUnknown_03005EB0 _081257C8: lsls r1, r4, 24 lsrs r1, 24 movs r0, 0 bl sub_81251D4 ldr r0, _081257E8 ldrh r0, [r0] strh r0, [r6] ldr r0, _081257EC ldr r0, [r0] str r0, [r5] movs r0, 0xFF _081257E0: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _081257E8: .4byte gUnknown_03005EA4 _081257EC: .4byte gUnknown_03005EA0 thumb_func_end sub_8125758 thumb_func_start sub_81257F0 sub_81257F0: @ 81257F0 push {r4-r6,lr} lsls r0, 16 ldr r6, _08125844 lsrs r0, 16 ldrh r1, [r6] adds r0, r1 subs r0, 0x1 lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 movs r1, 0xE bl __umodsi3 lsls r0, 16 lsrs r4, r0, 16 ldr r5, _08125848 ldr r1, [r5] movs r0, 0x1 ands r1, r0 lsls r0, r1, 3 subs r0, r1 lsls r0, 1 adds r0, r4, r0 lsls r0, 16 lsrs r4, r0, 16 ldr r0, _0812584C ldr r1, _08125850 ldr r3, [r0] adds r0, r4, 0 movs r2, 0x25 bl _call_via_r3 lsls r0, 16 cmp r0, 0 bne _08125854 lsls r1, r4, 24 lsrs r1, 24 movs r0, 0x1 bl sub_81251D4 movs r0, 0x1 b _0812586C .align 2, 0 _08125844: .4byte gUnknown_03005E9C _08125848: .4byte gUnknown_03005EAC _0812584C: .4byte ProgramFlashByte _08125850: .4byte 0x00000ff8 _08125854: lsls r1, r4, 24 lsrs r1, 24 movs r0, 0 bl sub_81251D4 ldr r0, _08125874 ldrh r0, [r0] strh r0, [r6] ldr r0, _08125878 ldr r0, [r0] str r0, [r5] movs r0, 0xFF _0812586C: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08125874: .4byte gUnknown_03005EA4 _08125878: .4byte gUnknown_03005EA0 thumb_func_end sub_81257F0 thumb_func_start sub_812587C sub_812587C: @ 812587C push {r4-r6,lr} adds r6, r1, 0 lsls r0, 16 lsrs r4, r0, 16 ldr r1, _08125894 ldr r0, _08125898 str r0, [r1] ldr r0, _0812589C cmp r4, r0 beq _081258A0 movs r5, 0xFF b _081258B2 .align 2, 0 _08125894: .4byte gUnknown_03005EB0 _08125898: .4byte 0x02000000 _0812589C: .4byte 0x0000ffff _081258A0: adds r0, r6, 0 bl sub_8125974 lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 adds r1, r6, 0 bl sub_81258BC _081258B2: adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_812587C thumb_func_start sub_81258BC sub_81258BC: @ 81258BC push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r1 ldr r0, _08125958 ldr r1, [r0] movs r0, 0x1 ands r1, r0 lsls r0, r1, 3 subs r0, r1 lsls r0, 17 lsrs r7, r0, 16 movs r5, 0 ldr r6, _0812595C _081258D8: adds r0, r5, r7 lsls r0, 24 lsrs r0, 24 ldr r1, [r6] bl sub_8125BF8 ldr r0, [r6] ldr r1, _08125960 adds r0, r1 ldrh r1, [r0] cmp r1, 0 bne _081258F4 ldr r0, _08125964 strh r5, [r0] _081258F4: ldr r0, [r6] lsls r1, 3 mov r2, r8 adds r4, r1, r2 ldrh r1, [r4, 0x4] bl sub_8125C10 lsls r0, 16 lsrs r3, r0, 16 ldr r2, [r6] ldr r1, _08125968 adds r0, r2, r1 ldr r1, [r0] ldr r0, _0812596C adds r5, 0x1 cmp r1, r0 bne _08125944 ldr r1, _08125970 adds r0, r2, r1 ldrh r0, [r0] cmp r0, r3 bne _08125944 movs r2, 0 ldrh r0, [r4, 0x4] cmp r2, r0 bcs _08125944 adds r3, r4, 0 ldr r4, _0812595C _0812592C: ldr r1, [r3] adds r1, r2 ldr r0, [r4] adds r0, r2 ldrb r0, [r0] strb r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldrh r1, [r3, 0x4] cmp r2, r1 bcc _0812592C _08125944: lsls r0, r5, 16 lsrs r5, r0, 16 cmp r5, 0xD bls _081258D8 movs r0, 0x1 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08125958: .4byte gUnknown_03005EAC _0812595C: .4byte gUnknown_03005EB0 _08125960: .4byte 0x00000ff4 _08125964: .4byte gUnknown_03005E9C _08125968: .4byte 0x00000ff8 _0812596C: .4byte 0x08012025 @ TODO: figure out what this represents _08125970: .4byte 0x00000ff6 thumb_func_end sub_81258BC thumb_func_start sub_8125974 sub_8125974: @ 8125974 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r10, r0 movs r0, 0 mov r8, r0 mov r9, r0 movs r6, 0 movs r5, 0 movs r4, 0 ldr r7, _08125A00 _08125990: lsls r0, r4, 24 lsrs r0, 24 ldr r1, [r7] bl sub_8125BF8 ldr r2, [r7] ldr r1, _08125A04 adds r0, r2, r1 ldr r1, [r0] ldr r0, _08125A08 cmp r1, r0 bne _081259E0 movs r5, 0x1 ldr r3, _08125A0C adds r0, r2, r3 ldrh r0, [r0] lsls r0, 3 add r0, r10 ldrh r1, [r0, 0x4] adds r0, r2, 0 bl sub_8125C10 lsls r0, 16 lsrs r2, r0, 16 ldr r1, [r7] ldr r3, _08125A10 adds r0, r1, r3 ldrh r0, [r0] cmp r0, r2 bne _081259E0 ldr r2, _08125A14 adds r0, r1, r2 ldr r0, [r0] mov r8, r0 subs r3, 0x2 adds r1, r3 adds r0, r5, 0 ldrh r1, [r1] lsls r0, r1 orrs r6, r0 _081259E0: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0xD bls _08125990 cmp r5, 0 beq _08125A1C ldr r0, _08125A18 movs r1, 0xFF str r1, [sp] cmp r6, r0 bne _08125A20 movs r2, 0x1 str r2, [sp] b _08125A20 .align 2, 0 _08125A00: .4byte gUnknown_03005EB0 _08125A04: .4byte 0x00000ff8 _08125A08: .4byte 0x08012025 @ TODO: figure out what this represents _08125A0C: .4byte 0x00000ff4 _08125A10: .4byte 0x00000ff6 _08125A14: .4byte 0x00000ffc _08125A18: .4byte 0x00003fff _08125A1C: movs r3, 0 str r3, [sp] _08125A20: movs r6, 0 movs r5, 0 movs r4, 0 ldr r7, _08125A98 _08125A28: adds r0, r4, 0 adds r0, 0xE lsls r0, 24 lsrs r0, 24 ldr r1, [r7] bl sub_8125BF8 ldr r2, [r7] ldr r1, _08125A9C adds r0, r2, r1 ldr r1, [r0] ldr r0, _08125AA0 cmp r1, r0 bne _08125A7C movs r5, 0x1 ldr r3, _08125AA4 adds r0, r2, r3 ldrh r0, [r0] lsls r0, 3 add r0, r10 ldrh r1, [r0, 0x4] adds r0, r2, 0 bl sub_8125C10 lsls r0, 16 lsrs r2, r0, 16 ldr r1, [r7] ldr r3, _08125AA8 adds r0, r1, r3 ldrh r0, [r0] cmp r0, r2 bne _08125A7C ldr r2, _08125AAC adds r0, r1, r2 ldr r0, [r0] mov r9, r0 subs r3, 0x2 adds r1, r3 adds r0, r5, 0 ldrh r1, [r1] lsls r0, r1 orrs r6, r0 _08125A7C: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0xD bls _08125A28 cmp r5, 0 beq _08125AB4 ldr r0, _08125AB0 movs r1, 0xFF cmp r6, r0 bne _08125AB6 movs r1, 0x1 b _08125AB6 .align 2, 0 _08125A98: .4byte gUnknown_03005EB0 _08125A9C: .4byte 0x00000ff8 _08125AA0: .4byte 0x08012025 @ TODO: figure out what this represents _08125AA4: .4byte 0x00000ff4 _08125AA8: .4byte 0x00000ff6 _08125AAC: .4byte 0x00000ffc _08125AB0: .4byte 0x00003fff _08125AB4: movs r1, 0 _08125AB6: ldr r0, [sp] cmp r0, 0x1 bne _08125B28 cmp r1, 0x1 bne _08125B18 movs r0, 0x1 negs r0, r0 cmp r8, r0 bne _08125ACE mov r1, r9 cmp r1, 0 beq _08125AD8 _08125ACE: mov r2, r8 cmp r2, 0 bne _08125AFC cmp r9, r0 bne _08125AFC _08125AD8: mov r1, r8 adds r1, 0x1 mov r0, r9 adds r0, 0x1 cmp r1, r0 bcs _08125AF0 ldr r0, _08125AEC mov r3, r9 b _08125B10 .align 2, 0 _08125AEC: .4byte gUnknown_03005EAC _08125AF0: ldr r0, _08125AF8 mov r1, r8 str r1, [r0] b _08125B40 .align 2, 0 _08125AF8: .4byte gUnknown_03005EAC _08125AFC: cmp r8, r9 bcs _08125B0C ldr r0, _08125B08 mov r2, r9 str r2, [r0] b _08125B40 .align 2, 0 _08125B08: .4byte gUnknown_03005EAC _08125B0C: ldr r0, _08125B14 mov r3, r8 _08125B10: str r3, [r0] b _08125B40 .align 2, 0 _08125B14: .4byte gUnknown_03005EAC _08125B18: ldr r0, _08125B24 mov r2, r8 str r2, [r0] cmp r1, 0xFF beq _08125B38 b _08125B40 .align 2, 0 _08125B24: .4byte gUnknown_03005EAC _08125B28: cmp r1, 0x1 bne _08125B44 ldr r0, _08125B3C mov r3, r9 str r3, [r0] ldr r0, [sp] cmp r0, 0xFF bne _08125B40 _08125B38: movs r0, 0xFF b _08125B70 .align 2, 0 _08125B3C: .4byte gUnknown_03005EAC _08125B40: movs r0, 0x1 b _08125B70 _08125B44: ldr r2, [sp] cmp r2, 0 bne _08125B64 cmp r1, 0 bne _08125B64 ldr r0, _08125B5C str r1, [r0] ldr r0, _08125B60 strh r1, [r0] movs r0, 0 b _08125B70 .align 2, 0 _08125B5C: .4byte gUnknown_03005EAC _08125B60: .4byte gUnknown_03005E9C _08125B64: ldr r0, _08125B80 movs r1, 0 str r1, [r0] ldr r0, _08125B84 strh r1, [r0] movs r0, 0x2 _08125B70: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08125B80: .4byte gUnknown_03005EAC _08125B84: .4byte gUnknown_03005E9C thumb_func_end sub_8125974 thumb_func_start sub_8125B88 sub_8125B88: @ 8125B88 push {r4-r6,lr} adds r6, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r2, 16 lsrs r4, r2, 16 ldr r5, _08125BDC adds r1, r5, 0 bl sub_8125BF8 ldr r1, _08125BE0 adds r0, r5, r1 ldr r1, [r0] ldr r0, _08125BE4 cmp r1, r0 bne _08125BF0 adds r0, r5, 0 adds r1, r4, 0 bl sub_8125C10 lsls r0, 16 lsrs r0, 16 ldr r2, _08125BE8 adds r1, r5, r2 ldrh r1, [r1] cmp r1, r0 bne _08125BEC movs r2, 0 cmp r2, r4 bcs _08125BD6 _08125BC4: adds r1, r6, r2 adds r0, r5, r2 ldrb r0, [r0] strb r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r4 bcc _08125BC4 _08125BD6: movs r0, 0x1 b _08125BF2 .align 2, 0 _08125BDC: .4byte 0x02000000 _08125BE0: .4byte 0x00000ff8 _08125BE4: .4byte 0x08012025 @ TODO: figure out what this represents _08125BE8: .4byte 0x00000ff4 _08125BEC: movs r0, 0x2 b _08125BF2 _08125BF0: movs r0, 0 _08125BF2: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8125B88 thumb_func_start sub_8125BF8 sub_8125BF8: @ 8125BF8 push {lr} adds r2, r1, 0 lsls r0, 24 lsrs r0, 24 movs r3, 0x80 lsls r3, 5 movs r1, 0 bl ReadFlash movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8125BF8 thumb_func_start sub_8125C10 sub_8125C10: @ 8125C10 push {r4,lr} adds r4, r0, 0 lsls r1, 16 movs r2, 0 movs r3, 0 lsrs r1, 18 cmp r2, r1 bcs _08125C2E _08125C20: ldm r4!, {r0} adds r2, r0 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r1 bcc _08125C20 _08125C2E: lsrs r0, r2, 16 adds r0, r2 lsls r0, 16 lsrs r0, 16 pop {r4} pop {r1} bx r1 thumb_func_end sub_8125C10 thumb_func_start sub_8125C3C sub_8125C3C: @ 8125C3C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bhi _08125CB6 lsls r0, 2 ldr r1, _08125C50 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08125C50: .4byte _08125C54 .align 2, 0 _08125C54: .4byte _08125CB6 .4byte _08125CD8 .4byte _08125CF8 .4byte _08125C82 .4byte _08125D0C .4byte _08125C6C _08125C6C: movs r4, 0x1C ldr r5, _08125CC4 _08125C70: ldr r1, [r5] adds r0, r4, 0 bl _call_via_r1 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1F bls _08125C70 _08125C82: movs r0, 0xA bl sub_8053108 ldr r1, _08125CC8 cmp r0, r1 bhi _08125C94 movs r0, 0xA bl sav12_xor_increment _08125C94: movs r4, 0 ldr r5, _08125CCC _08125C98: adds r0, r4, 0 adds r0, 0x1C lsls r0, 24 lsrs r0, 24 lsls r2, r4, 3 adds r2, r5 ldr r1, [r2] ldrh r2, [r2, 0x4] bl sub_81253C8 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bls _08125C98 _08125CB6: bl save_serialize_game ldr r0, _08125CD0 ldr r1, _08125CD4 bl save_write_to_flash b _08125D2E .align 2, 0 _08125CC4: .4byte EraseFlashSector _08125CC8: .4byte 0x000003e6 _08125CCC: .4byte gUnknown_08401E14 _08125CD0: .4byte 0x0000ffff _08125CD4: .4byte gUnknown_08401DA4 _08125CD8: bl save_serialize_game movs r4, 0 _08125CDE: adds r0, r4, 0 ldr r1, _08125CF4 bl save_write_to_flash adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _08125CDE b _08125D2E .align 2, 0 _08125CF4: .4byte gUnknown_08401DA4 _08125CF8: bl save_serialize_game ldr r1, _08125D08 movs r0, 0 bl save_write_to_flash b _08125D2E .align 2, 0 _08125D08: .4byte gUnknown_08401DA4 _08125D0C: movs r4, 0x1C ldr r5, _08125D38 _08125D10: ldr r1, [r5] adds r0, r4, 0 bl _call_via_r1 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1F bls _08125D10 bl save_serialize_game ldr r0, _08125D3C ldr r1, _08125D40 bl save_write_to_flash _08125D2E: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08125D38: .4byte EraseFlashSector _08125D3C: .4byte 0x0000ffff _08125D40: .4byte gUnknown_08401DA4 thumb_func_end sub_8125C3C thumb_func_start sub_8125D44 sub_8125D44: @ 8125D44 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08125D58 ldr r0, [r0] cmp r0, 0x1 beq _08125D5C movs r0, 0xFF b _08125D7A .align 2, 0 _08125D58: .4byte gUnknown_3004820 _08125D5C: adds r0, r4, 0 bl sub_8125C3C ldr r0, _08125D74 ldr r0, [r0] cmp r0, 0 beq _08125D78 adds r0, r4, 0 bl fullscreen_save_activate movs r0, 0xFF b _08125D7A .align 2, 0 _08125D74: .4byte gUnknown_03005EA8 _08125D78: movs r0, 0x1 _08125D7A: pop {r4} pop {r1} bx r1 thumb_func_end sub_8125D44 thumb_func_start sub_8125D80 sub_8125D80: @ 8125D80 push {lr} ldr r0, _08125D98 ldr r0, [r0] cmp r0, 0x1 bne _08125DA0 bl save_serialize_game ldr r0, _08125D9C bl sub_812546C movs r0, 0 b _08125DA2 .align 2, 0 _08125D98: .4byte gUnknown_3004820 _08125D9C: .4byte gUnknown_08401DA4 _08125DA0: movs r0, 0x1 _08125DA2: pop {r1} bx r1 thumb_func_end sub_8125D80 thumb_func_start sub_8125DA8 sub_8125DA8: @ 8125DA8 push {r4,lr} ldr r1, _08125DCC movs r0, 0xE bl sub_812550C lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08125DD0 ldr r0, [r0] cmp r0, 0 beq _08125DC4 movs r0, 0 bl fullscreen_save_activate _08125DC4: cmp r4, 0xFF beq _08125DD4 movs r0, 0 b _08125DD6 .align 2, 0 _08125DCC: .4byte gUnknown_08401DA4 _08125DD0: .4byte gUnknown_03005EA8 _08125DD4: movs r0, 0x1 _08125DD6: pop {r4} pop {r1} bx r1 thumb_func_end sub_8125DA8 thumb_func_start sub_8125DDC sub_8125DDC: @ 8125DDC push {lr} ldr r1, _08125DFC movs r0, 0xE bl sub_812556C ldr r0, _08125E00 ldr r0, [r0] cmp r0, 0 beq _08125DF4 movs r0, 0 bl fullscreen_save_activate _08125DF4: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08125DFC: .4byte gUnknown_08401DA4 _08125E00: .4byte gUnknown_03005EA8 thumb_func_end sub_8125DDC thumb_func_start sub_8125E04 sub_8125E04: @ 8125E04 push {lr} ldr r1, _08125E24 movs r0, 0xE bl sub_8125758 ldr r0, _08125E28 ldr r0, [r0] cmp r0, 0 beq _08125E1C movs r0, 0 bl fullscreen_save_activate _08125E1C: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08125E24: .4byte gUnknown_08401DA4 _08125E28: .4byte gUnknown_03005EA8 thumb_func_end sub_8125E04 thumb_func_start sub_8125E2C sub_8125E2C: @ 8125E2C push {r4,lr} ldr r0, _08125E58 ldr r0, [r0] cmp r0, 0x1 bne _08125E64 bl save_serialize_game ldr r4, _08125E5C adds r0, r4, 0 bl sub_81254C8 ldr r0, _08125E60 ldrh r0, [r0] adds r0, 0x1 lsls r0, 16 lsrs r0, 16 adds r1, r4, 0 bl sub_812556C movs r0, 0 b _08125E66 .align 2, 0 _08125E58: .4byte gUnknown_3004820 _08125E5C: .4byte gUnknown_08401DA4 _08125E60: .4byte gUnknown_03005EB4 _08125E64: movs r0, 0x1 _08125E66: pop {r4} pop {r1} bx r1 thumb_func_end sub_8125E2C thumb_func_start sub_8125E6C sub_8125E6C: @ 8125E6C push {r4-r6,lr} movs r6, 0 ldr r0, _08125E98 ldrh r1, [r0] adds r1, 0x1 strh r1, [r0] lsls r0, r1, 16 lsrs r5, r0, 16 cmp r5, 0x4 bhi _08125EA0 adds r0, r1, 0x1 lsls r0, 16 lsrs r0, 16 ldr r4, _08125E9C adds r1, r4, 0 bl sub_812556C adds r0, r5, 0 adds r1, r4, 0 bl sub_81257F0 b _08125EAA .align 2, 0 _08125E98: .4byte gUnknown_03005EB4 _08125E9C: .4byte gUnknown_08401DA4 _08125EA0: ldr r1, _08125EC0 adds r0, r5, 0 bl sub_81257F0 movs r6, 0x1 _08125EAA: ldr r0, _08125EC4 ldr r0, [r0] cmp r0, 0 beq _08125EB8 movs r0, 0x1 bl fullscreen_save_activate _08125EB8: adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08125EC0: .4byte gUnknown_08401DA4 _08125EC4: .4byte gUnknown_03005EA8 thumb_func_end sub_8125E6C thumb_func_start sub_8125EC8 sub_8125EC8: @ 8125EC8 push {r4,r5,lr} lsls r0, 24 lsrs r1, r0, 24 ldr r0, _08125EE0 ldr r0, [r0] cmp r0, 0x1 beq _08125EE8 ldr r1, _08125EE4 movs r0, 0x4 strh r0, [r1] movs r0, 0xFF b _08125F40 .align 2, 0 _08125EE0: .4byte gUnknown_3004820 _08125EE4: .4byte gSaveFileStatus _08125EE8: cmp r1, 0 beq _08125EF0 cmp r1, 0x3 beq _08125F1C _08125EF0: ldr r0, _08125F0C ldr r1, _08125F10 bl sub_812587C lsls r0, 24 lsrs r4, r0, 24 bl save_deserialize_game ldr r0, _08125F14 strh r4, [r0] ldr r1, _08125F18 movs r0, 0 str r0, [r1] b _08125F3E .align 2, 0 _08125F0C: .4byte 0x0000ffff _08125F10: .4byte gUnknown_08401DA4 _08125F14: .4byte gSaveFileStatus _08125F18: .4byte gUnknown_03005EBC _08125F1C: ldr r5, _08125F48 ldr r1, [r5] ldrh r2, [r5, 0x4] movs r0, 0x1C bl sub_8125B88 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bne _08125F3E ldr r1, [r5, 0x8] ldrh r2, [r5, 0xC] movs r0, 0x1D bl sub_8125B88 lsls r0, 24 lsrs r4, r0, 24 _08125F3E: adds r0, r4, 0 _08125F40: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08125F48: .4byte gUnknown_08401E14 thumb_func_end sub_8125EC8 thumb_func_start unref_sub_8125F4C unref_sub_8125F4C: @ 8125F4C push {r4-r6,lr} adds r4, r0, 0 adds r2, r4, 0 movs r1, 0 ldr r6, _08125F88 movs r5, 0 ldr r3, _08125F8C _08125F5A: adds r0, r2, r1 strb r5, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r3 bls _08125F5A ldrb r0, [r6] movs r3, 0x80 lsls r3, 5 movs r1, 0 adds r2, r4, 0 bl ReadFlash ldr r1, _08125F90 adds r0, r4, r1 ldr r1, [r0] ldr r0, _08125F94 cmp r1, r0 bne _08125F98 movs r0, 0x1 b _08125F9A .align 2, 0 _08125F88: .4byte gUnknown_08401E24 _08125F8C: .4byte 0x00000fff _08125F90: .4byte 0x00000ff4 _08125F94: .4byte 0x08012025 @ TODO: figure out what this represents _08125F98: movs r0, 0 _08125F9A: pop {r4-r6} pop {r1} bx r1 thumb_func_end unref_sub_8125F4C thumb_func_start unref_sub_8125FA0 unref_sub_8125FA0: @ 8125FA0 push {r4-r7,lr} movs r0, 0 bl sub_8125D44 lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r7, _08125FD0 ldr r6, _08125FD4 _08125FB2: adds r0, r4, r6 ldrb r0, [r0] ldr r1, [r7] bl _call_via_r1 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _08125FB2 cmp r5, 0xFF bne _08125FD8 movs r0, 0x3 b _08125FE8 .align 2, 0 _08125FD0: .4byte EraseFlashSector _08125FD4: .4byte gUnknown_08401E24 _08125FD8: cmp r5, 0x3 beq _08125FE6 movs r0, 0 bl sub_8125EC8 movs r0, 0x1 b _08125FE8 _08125FE6: movs r0, 0x2 _08125FE8: pop {r4-r7} pop {r1} bx r1 thumb_func_end unref_sub_8125FA0 thumb_func_start unref_sub_8125FF0 unref_sub_8125FF0: @ 8125FF0 push {r4-r7,lr} adds r6, r0, 0 lsls r1, 16 lsrs r3, r1, 16 ldr r4, _08126048 movs r2, 0 ldr r7, _0812604C movs r5, 0 ldr r1, _08126050 _08126002: adds r0, r4, r2 strb r5, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r1 bls _08126002 ldr r0, _08126054 adds r1, r4, r0 ldr r0, _08126058 str r0, [r1] movs r2, 0 cmp r2, r3 bcs _08126030 _0812601E: adds r1, r4, r2 adds r0, r6, r2 ldrb r0, [r0] strb r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r3 bcc _0812601E _08126030: ldrb r0, [r7] movs r2, 0x80 lsls r2, 5 adds r1, r4, 0 bl ProgramFlashSectorAndVerifyNBytes ldr r1, _0812605C str r0, [r1] cmp r0, 0 bne _08126060 movs r0, 0x1 b _08126062 .align 2, 0 _08126048: .4byte 0x02000000 _0812604C: .4byte gUnknown_08401E24 _08126050: .4byte 0x00000fff _08126054: .4byte 0x00000ff4 _08126058: .4byte 0x08012025 @ TODO: figure out what this represents _0812605C: .4byte gUnknown_02039284 _08126060: movs r0, 0xFF _08126062: pop {r4-r7} pop {r1} bx r1 thumb_func_end unref_sub_8125FF0 thumb_func_start unref_sub_8126068 unref_sub_8126068: @ 8126068 push {lr} lsls r0, 24 lsrs r0, 24 bl ProgramFlashSectorAndVerify cmp r0, 0 bne _0812607A movs r0, 0x1 b _0812607C _0812607A: movs r0, 0xFF _0812607C: pop {r1} bx r1 thumb_func_end unref_sub_8126068 thumb_func_start unref_sub_8126080 unref_sub_8126080: @ 8126080 push {lr} adds r2, r1, 0 lsls r0, 24 lsrs r0, 24 movs r3, 0x80 lsls r3, 5 movs r1, 0 bl ReadFlash movs r0, 0x1 pop {r1} bx r1 thumb_func_end unref_sub_8126080 thumb_func_start sub_8126098 sub_8126098: @ 8126098 push {r4,lr} adds r4, r3, 0 lsls r0, 16 lsrs r0, 16 lsls r2, 16 lsrs r2, 16 movs r3, 0x2 ands r0, r3 cmp r0, 0 beq _081260C6 ands r1, r3 cmp r1, 0 beq _081260C6 movs r0, 0x4 ands r2, r0 cmp r2, 0 beq _081260C6 movs r0, 0x80 .ifdef SAPPHIRE lsls r0, 1 @ unknown difference .endif ands r0, r4 cmp r0, 0 beq _081260C6 movs r0, 0x1 b _081260C8 _081260C6: movs r0, 0 _081260C8: pop {r4} pop {r1} bx r1 thumb_func_end sub_8126098 thumb_func_start sub_81260D0 sub_81260D0: @ 81260D0 push {lr} ldr r0, _081260E4 ldr r1, _081260E8 bl StringExpandPlaceholders movs r0, 0x3 bl sub_8126160 pop {r0} bx r0 .align 2, 0 _081260E4: .4byte gStringVar4 _081260E8: .4byte gOtherText_DataCannotUseVersion thumb_func_end sub_81260D0 thumb_func_start sub_81260EC sub_81260EC: @ 81260EC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r1, _08126114 ldr r2, _08126118 bl InitScriptContext adds r0, r4, 0 adds r1, r5, 0 bl SetupBytecodeScript str r5, [r4, 0x64] movs r0, 0 str r0, [r4, 0x68] str r0, [r4, 0x6C] str r0, [r4, 0x70] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08126114: .4byte gScriptFuncs _08126118: .4byte gScriptFuncs_End thumb_func_end sub_81260EC thumb_func_start sub_812611C sub_812611C: @ 812611C push {r4,lr} adds r4, r0, 0 bl RunScript lsls r0, 24 cmp r0, 0 beq _08126134 ldr r0, [r4, 0x70] cmp r0, 0 beq _08126134 movs r0, 0x1 b _08126136 _08126134: movs r0, 0 _08126136: pop {r4} pop {r1} bx r1 thumb_func_end sub_812611C thumb_func_start sub_812613C sub_812613C: @ 812613C push {r4,lr} adds r1, r0, 0 ldr r4, _0812615C adds r0, r4, 0 bl sub_81260EC _08126148: adds r0, r4, 0 bl sub_812611C cmp r0, 0 bne _08126148 ldr r0, [r4, 0x6C] pop {r4} pop {r1} bx r1 .align 2, 0 _0812615C: .4byte gUnknown_02039288 thumb_func_end sub_812613C thumb_func_start sub_8126160 sub_8126160: @ 8126160 ldr r1, _08126168 str r0, [r1, 0x6C] bx lr .align 2, 0 _08126168: .4byte gUnknown_02039288 thumb_func_end sub_8126160 thumb_func_start sub_812616C sub_812616C: @ 812616C push {r4,lr} adds r4, r0, 0 movs r3, 0 movs r2, 0 cmp r3, r1 bcs _08126184 _08126178: adds r0, r4, r2 ldrb r0, [r0] adds r3, r0 adds r2, 0x1 cmp r2, r1 bcc _08126178 _08126184: adds r0, r3, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_812616C thumb_func_start sub_812618C sub_812618C: @ 812618C adds r2, r0, 0 ldrb r0, [r2] ldrb r1, [r2, 0x1] lsls r1, 8 orrs r0, r1 ldrb r1, [r2, 0x2] lsls r1, 16 orrs r0, r1 ldrb r1, [r2, 0x3] lsls r1, 24 orrs r0, r1 bx lr thumb_func_end sub_812618C thumb_func_start sub_81261A4 sub_81261A4: @ 81261A4 strb r1, [r0] lsrs r2, r1, 8 strb r2, [r0, 0x1] lsrs r2, r1, 16 strb r2, [r0, 0x2] lsrs r1, 24 strb r1, [r0, 0x3] bx lr thumb_func_end sub_81261A4 thumb_func_start unref_sub_81261B4 unref_sub_81261B4: @ 81261B4 push {r4-r7,lr} adds r5, r0, 0 adds r7, r1, 0 ldrb r0, [r5] cmp r0, 0x1 bne _08126204 ldrb r0, [r5, 0x11] cmp r0, 0xF bne _08126204 adds r6, r5, 0 adds r6, 0x12 adds r0, r6, 0 bl sub_812618C cmp r0, 0 bne _08126204 adds r0, r5, 0 adds r0, 0x16 bl sub_812618C adds r4, r0, 0 subs r4, r7 adds r4, r5 adds r0, r5, 0 adds r0, 0x1A bl sub_812618C adds r1, r0, 0 subs r1, r7 adds r1, r5 subs r1, r4 adds r0, r4, 0 bl sub_812616C adds r1, r0, 0 adds r0, r6, 0 bl sub_81261A4 movs r0, 0x1 b _08126206 _08126204: movs r0, 0 _08126206: pop {r4-r7} pop {r1} bx r1 thumb_func_end unref_sub_81261B4 thumb_func_start unref_sub_812620C unref_sub_812620C: @ 812620C push {r4-r7,lr} adds r5, r0, 0 adds r7, r1, 0 ldrb r0, [r5] cmp r0, 0x1 bne _08126260 ldrb r0, [r5, 0x11] cmp r0, 0x10 bne _08126260 adds r6, r5, 0 adds r6, 0x12 adds r0, r6, 0 bl sub_812618C cmp r0, 0 bne _08126260 adds r0, r5, 0 adds r0, 0x16 bl sub_812618C adds r4, r0, 0 subs r4, r7 adds r4, r5 adds r0, r5, 0 adds r0, 0x1A bl sub_812618C adds r1, r0, 0 subs r1, r7 adds r1, r5 subs r1, r4 adds r0, r4, 0 bl sub_8041174 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r6, 0 bl sub_81261A4 movs r0, 0x1 b _08126262 _08126260: movs r0, 0 _08126262: pop {r4-r7} pop {r1} bx r1 thumb_func_end unref_sub_812620C thumb_func_start sub_8126268 sub_8126268: @ 8126268 push {lr} movs r2, 0 ldr r3, _08126284 movs r1, 0 _08126270: adds r0, r3, r1 ldrb r0, [r0] adds r2, r0 adds r1, 0x1 cmp r1, 0xB bls _08126270 adds r0, r2, 0 pop {r1} bx r1 .align 2, 0 _08126284: .4byte gSaveBlock1 + 0x3A80 thumb_func_end sub_8126268 thumb_func_start sub_8126288 sub_8126288: @ 8126288 push {r4,lr} ldr r4, _081262B4 bl sub_8126268 adds r1, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _081262B0 ldrb r0, [r4, 0x1] cmp r0, 0 beq _081262B0 ldrh r0, [r4, 0x2] cmp r0, 0 beq _081262B0 cmp r1, 0 beq _081262B0 subs r0, r4, 0x4 ldr r0, [r0] cmp r1, r0 beq _081262B8 _081262B0: movs r0, 0 b _081262BA .align 2, 0 _081262B4: .4byte gSaveBlock1 + 0x3A80 _081262B8: movs r0, 0x1 _081262BA: pop {r4} pop {r1} bx r1 thumb_func_end sub_8126288 thumb_func_start sub_81262C0 sub_81262C0: @ 81262C0 push {lr} sub sp, 0x4 mov r1, sp movs r0, 0 strh r0, [r1] ldr r1, _081262DC ldr r2, _081262E0 mov r0, sp bl CpuSet add sp, 0x4 pop {r0} bx r0 .align 2, 0 _081262DC: .4byte gSaveBlock1 + 0x3A7C _081262E0: .4byte 0x01000008 thumb_func_end sub_81262C0 thumb_func_start sub_81262E4 sub_81262E4: @ 81262E4 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r3, r0, 0 lsls r1, 24 lsrs r1, 24 adds r5, r1, 0 lsls r2, 16 lsrs r2, 16 adds r6, r2, 0 cmp r3, 0 beq _08126304 cmp r1, 0 beq _08126304 cmp r2, 0 bne _0812630A _08126304: bl sub_81262C0 b _0812632A _0812630A: ldr r4, _08126330 movs r1, 0xEA lsls r1, 6 adds r0, r4, r1 strb r3, [r0] adds r1, 0x1 adds r0, r4, r1 strb r5, [r0] adds r1, 0x1 adds r0, r4, r1 strh r6, [r0] bl sub_8126268 ldr r1, _08126334 adds r4, r1 str r0, [r4] _0812632A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08126330: .4byte gSaveBlock1 _08126334: .4byte 0x00003a7c thumb_func_end sub_81262E4 thumb_func_start sub_8126338 sub_8126338: @ 8126338 push {r4,r5,lr} ldr r4, _0812634C bl sub_8126288 cmp r0, 0 bne _08126350 bl sub_81262C0 movs r0, 0 b _0812636E .align 2, 0 _0812634C: .4byte gSaveBlock1 + 0x3A80 _08126350: ldrh r5, [r4, 0x2] ldrb r0, [r4, 0x1] subs r0, 0x1 strb r0, [r4, 0x1] lsls r0, 24 cmp r0, 0 bne _08126364 bl sub_81262C0 b _0812636C _08126364: bl sub_8126268 subs r1, r4, 0x4 str r0, [r1] _0812636C: adds r0, r5, 0 _0812636E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8126338 thumb_func_start script_status_stop_and_ret_1 script_status_stop_and_ret_1: @ 8126374 push {lr} bl StopScript movs r0, 0x1 pop {r1} bx r1 thumb_func_end script_status_stop_and_ret_1 thumb_func_start sub_8126380 sub_8126380: @ 8126380 push {r4-r7,lr} adds r7, r0, 0 bl ScriptReadWord str r0, [r7, 0x68] adds r0, r7, 0 bl ScriptReadHalfword adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r7, 0 bl ScriptReadWord adds r6, r0, 0 adds r0, r7, 0 bl ScriptReadHalfword adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r7, 0 bl ScriptReadWord adds r3, r0, 0 adds r0, r5, 0 adds r1, r6, 0 adds r2, r4, 0 bl sub_8126098 cmp r0, 0x1 bne _081263C4 str r0, [r7, 0x70] b _081263C8 _081263C4: bl sub_81260D0 _081263C8: movs r0, 0x1 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8126380 thumb_func_start sub_81263D0 sub_81263D0: @ 81263D0 movs r0, 0 bx lr thumb_func_end sub_81263D0 thumb_func_start sub_81263D4 sub_81263D4: @ 81263D4 ldr r1, [r0, 0x8] ldrb r2, [r1] adds r1, 0x1 str r1, [r0, 0x8] str r2, [r0, 0x6C] movs r0, 0 bx lr thumb_func_end sub_81263D4 thumb_func_start sub_81263E4 sub_81263E4: @ 81263E4 push {r4,r5,lr} adds r4, r0, 0 ldr r0, [r4, 0x8] ldrb r5, [r0] adds r0, 0x1 str r0, [r4, 0x8] adds r0, r4, 0 bl ScriptReadWord ldr r1, [r4, 0x68] subs r0, r1 ldr r1, [r4, 0x64] adds r1, r0, r1 cmp r5, 0xFF beq _08126408 ldr r0, [r4, 0x6C] cmp r5, r0 bne _0812640E _08126408: ldr r0, _08126418 bl StringExpandPlaceholders _0812640E: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08126418: .4byte gStringVar4 thumb_func_end sub_81263E4 thumb_func_start sub_812641C sub_812641C: @ 812641C push {r4,lr} adds r4, r0, 0 bl ScriptReadWord ldr r1, [r4, 0x68] subs r0, r1 ldr r1, [r4, 0x64] adds r0, r1 bl ScriptContext2_RunNewScript movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_812641C thumb_func_start sub_8126438 sub_8126438: @ 8126438 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 bl sub_80B4940 mov r8, r0 adds r0, r7, 0 bl ScriptReadWord adds r4, r0, 0 ldr r0, [r7, 0x68] subs r4, r0 ldr r0, [r7, 0x64] adds r4, r0 ldr r6, _08126484 ldr r5, _08126488 adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x7 bl StringCopyN adds r0, r4, 0 bl sub_80B48A8 ldr r4, _0812648C adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x7 bl StringCopyN mov r0, r8 cmp r0, 0 bne _08126498 ldr r0, _08126490 ldr r1, _08126494 b _081264B8 .align 2, 0 _08126484: .4byte gStringVar1 _08126488: .4byte gSaveBlock1 + 0x3160 _0812648C: .4byte gStringVar2 _08126490: .4byte gStringVar4 _08126494: .4byte gOtherText_BerryObtainedDadHasIt _08126498: adds r0, r6, 0 adds r1, r4, 0 bl StringCompare cmp r0, 0 beq _081264B4 ldr r0, _081264AC ldr r1, _081264B0 b _081264B8 .align 2, 0 _081264AC: .4byte gStringVar4 _081264B0: .4byte gOtherText_BerryTransformed _081264B4: ldr r0, _081264D4 ldr r1, _081264D8 _081264B8: bl StringExpandPlaceholders movs r0, 0x2 str r0, [r7, 0x6C] bl sub_80B4940 cmp r0, 0x1 bne _081264E0 ldr r0, _081264DC movs r1, 0x1 bl VarSet b _081264E4 .align 2, 0 _081264D4: .4byte gStringVar4 _081264D8: .4byte gOtherText_BerryAlreadyObtained _081264DC: .4byte 0x0000402d _081264E0: movs r0, 0x1 str r0, [r7, 0x6C] _081264E4: movs r0, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8126438 thumb_func_start sub_81264F0 sub_81264F0: @ 81264F0 push {r4,lr} adds r4, r0, 0 ldr r2, [r4, 0x8] ldrb r0, [r2] adds r2, 0x1 str r2, [r4, 0x8] ldrb r1, [r2] adds r2, 0x1 str r2, [r4, 0x8] bl sub_80C5C38 ldr r0, _0812651C ldr r1, _08126520 bl StringExpandPlaceholders movs r0, 0x2 str r0, [r4, 0x6C] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0812651C: .4byte gStringVar4 _08126520: .4byte gOtherText_SpecialRibbonReceived thumb_func_end sub_81264F0 thumb_func_start sub_8126524 sub_8126524: @ 8126524 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r4, r0, 0 ldr r0, [r4, 0x8] ldrb r1, [r0] mov r9, r1 adds r0, 0x1 str r0, [r4, 0x8] ldrb r1, [r0] mov r8, r1 adds r1, r0, 0x1 str r1, [r4, 0x8] ldrb r6, [r0, 0x1] adds r1, 0x1 str r1, [r4, 0x8] adds r0, r4, 0 bl ScriptReadWord adds r5, r0, 0 ldr r0, [r4, 0x68] subs r5, r0 ldr r0, [r4, 0x64] adds r5, r0 adds r0, r4, 0 bl ScriptReadWord adds r1, r0, 0 ldr r0, [r4, 0x68] subs r1, r0 ldr r0, [r4, 0x64] adds r1, r0 subs r1, r5 lsls r1, 16 lsrs r1, 16 str r6, [sp] adds r0, r5, 0 mov r2, r9 mov r3, r8 bl InitRamScript movs r0, 0 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8126524 thumb_func_start sub_812658C sub_812658C: @ 812658C push {r4,lr} adds r4, r0, 0 bl sub_80690F0 ldr r0, _081265A8 ldr r1, _081265AC bl StringExpandPlaceholders movs r0, 0x2 str r0, [r4, 0x6C] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _081265A8: .4byte gStringVar4 _081265AC: .4byte gOtherText_DexUpgraded thumb_func_end sub_812658C thumb_func_start sub_81265B0 sub_81265B0: @ 81265B0 push {r4,lr} adds r4, r0, 0 ldr r1, [r4, 0x8] ldrb r0, [r1] adds r1, 0x1 str r1, [r4, 0x8] bl sub_80EB890 ldr r0, _081265D4 ldr r1, _081265D8 bl StringExpandPlaceholders movs r0, 0x2 str r0, [r4, 0x6C] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _081265D4: .4byte gStringVar4 _081265D8: .4byte gOtherText_RareWordAdded thumb_func_end sub_81265B0 thumb_func_start sub_81265DC sub_81265DC: @ 81265DC push {r4,r5,lr} ldr r1, [r0, 0x8] ldrb r5, [r1] adds r1, 0x1 str r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl ScriptReadHalfword adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 adds r0, r5, 0 adds r1, r4, 0 bl sub_81262E4 movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81265DC thumb_func_start sub_8126608 sub_8126608: @ 8126608 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x88 adds r6, r0, 0 bl ScriptReadWord ldr r1, [r6, 0x68] subs r0, r1 ldr r1, [r6, 0x64] adds r5, r0, r1 movs r0, 0x64 adds r0, r5 mov r8, r0 add r4, sp, 0x24 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x64 bl memcpy adds r0, r4, 0 movs r1, 0x41 bl GetMonData lsls r0, 16 lsrs r4, r0, 16 movs r0, 0xCE lsls r0, 1 cmp r4, r0 bne _08126658 ldr r0, _08126650 ldr r1, _08126654 movs r2, 0xB bl StringCopyN b _08126662 .align 2, 0 _08126650: .4byte gStringVar1 _08126654: .4byte gSystemText_Egg _08126658: ldr r0, _08126678 ldr r1, _0812667C movs r2, 0xB bl StringCopyN _08126662: ldr r0, _08126680 ldrb r0, [r0] cmp r0, 0x6 bne _0812668C ldr r0, _08126684 ldr r1, _08126688 bl StringExpandPlaceholders movs r0, 0x3 b _081266F6 .align 2, 0 _08126678: .4byte gStringVar1 _0812667C: .4byte gSystemText_Pokemon2 _08126680: .4byte gPlayerPartyCount _08126684: .4byte gStringVar4 _08126688: .4byte gOtherText_PartyIsFull _0812668C: ldr r7, _08126708 adds r0, r7, 0 adds r1, r5, 0 movs r2, 0x64 bl memcpy mov r0, sp mov r1, r8 movs r2, 0x24 bl memcpy movs r0, 0xCE lsls r0, 1 cmp r4, r0 beq _081266C6 adds r0, r4, 0 bl SpeciesToNationalPokedexNum adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r4, 0 movs r1, 0x2 bl sub_8090D90 adds r0, r4, 0 movs r1, 0x3 bl sub_8090D90 _081266C6: adds r0, r7, 0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r0, 16 bl itemid_is_mail lsls r0, 24 cmp r0, 0 beq _081266E4 adds r0, r7, 0 mov r1, sp bl sub_80A2D88 _081266E4: bl party_compaction bl CalculatePlayerPartyCount ldr r0, _0812670C ldr r1, _08126710 bl StringExpandPlaceholders movs r0, 0x2 _081266F6: str r0, [r6, 0x6C] movs r0, 0 add sp, 0x88 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08126708: .4byte gUnknown_03004554 _0812670C: .4byte gStringVar4 _08126710: .4byte gOtherText_PokeWasSentOver thumb_func_end sub_8126608 thumb_func_start sub_8126714 sub_8126714: @ 8126714 push {r4,lr} adds r4, r0, 0 bl ScriptReadWord adds r1, r0, 0 ldr r0, [r4, 0x68] subs r1, r0 ldr r0, [r4, 0x64] adds r1, r0 ldr r0, _08126748 movs r2, 0xBC bl memcpy bl sub_813601C ldr r0, _0812674C ldr r1, _08126750 bl StringExpandPlaceholders movs r0, 0x2 str r0, [r4, 0x6C] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08126748: .4byte gSaveBlock2 + 0x498 _0812674C: .4byte gStringVar4 _08126750: .4byte gOtherText_NewTrainerInHoenn thumb_func_end sub_8126714 thumb_func_start sub_8126754 sub_8126754: @ 8126754 push {r4,lr} adds r4, r0, 0 bl sub_80691BC ldr r0, _08126770 ldr r1, _08126774 bl StringExpandPlaceholders movs r0, 0x2 str r0, [r4, 0x6C] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08126770: .4byte gStringVar4 _08126774: .4byte gSystemText_ClockAdjustmentUsable thumb_func_end sub_8126754 thumb_func_start sub_8126778 sub_8126778: @ 8126778 push {r4-r6,lr} adds r6, r0, 0 bl ScriptReadWord adds r5, r0, 0 adds r0, r6, 0 bl ScriptReadWord adds r4, r0, 0 ldr r0, [r6, 0x68] subs r4, r0 ldr r0, [r6, 0x64] adds r4, r0 adds r0, r6, 0 bl ScriptReadWord adds r1, r0, 0 ldr r0, [r6, 0x68] subs r1, r0 ldr r0, [r6, 0x64] adds r1, r0 subs r1, r4 adds r0, r4, 0 bl sub_812616C cmp r5, r0 beq _081267B6 movs r0, 0 str r0, [r6, 0x70] movs r0, 0x1 str r0, [r6, 0x6C] _081267B6: movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8126778 thumb_func_start sub_81267C0 sub_81267C0: @ 81267C0 push {r4-r6,lr} adds r6, r0, 0 bl ScriptReadWord adds r5, r0, 0 adds r0, r6, 0 bl ScriptReadWord adds r4, r0, 0 ldr r0, [r6, 0x68] subs r4, r0 ldr r0, [r6, 0x64] adds r4, r0 adds r0, r6, 0 bl ScriptReadWord adds r1, r0, 0 ldr r0, [r6, 0x68] subs r1, r0 ldr r0, [r6, 0x64] adds r1, r0 subs r1, r4 adds r0, r4, 0 bl sub_8041174 lsls r0, 16 lsrs r0, 16 cmp r5, r0 beq _08126802 movs r0, 0 str r0, [r6, 0x70] movs r0, 0x1 str r0, [r6, 0x6C] _08126802: movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_81267C0 thumb_func_start SetUpReflection SetUpReflection: @ 812680C push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r4, r1, 0 lsls r5, r2, 24 lsrs r5, 24 movs r0, 0x20 ldrsh r1, [r4, r0] movs r0, 0x22 ldrsh r2, [r4, r0] adds r0, r4, 0 movs r3, 0x98 bl obj_unfreeze lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _081268BC adds r7, r1, r0 ldr r0, _081268C0 str r0, [r7, 0x1C] ldrb r1, [r7, 0x5] movs r0, 0xC orrs r1, r0 strb r1, [r7, 0x5] ldr r2, _081268C4 lsrs r0, r1, 4 adds r0, r2 ldrb r0, [r0] lsls r0, 4 movs r2, 0xF ands r1, r2 orrs r1, r0 strb r1, [r7, 0x5] movs r1, 0x3F adds r1, r7 mov r8, r1 ldrb r0, [r1] movs r1, 0x40 orrs r0, r1 mov r1, r8 strb r0, [r1] ldr r0, _081268C8 str r0, [r7, 0x8] adds r0, r7, 0 movs r1, 0 bl StartSpriteAnim ldr r0, _081268CC str r0, [r7, 0x10] mov r1, r8 ldrb r0, [r1] movs r1, 0x8 orrs r0, r1 mov r1, r8 strb r0, [r1] adds r2, r7, 0 adds r2, 0x42 ldrb r1, [r2] movs r0, 0x3F ands r0, r1 strb r0, [r2] ldrh r0, [r4, 0x2E] strh r0, [r7, 0x2E] ldrb r0, [r6, 0x8] strh r0, [r7, 0x30] strh r5, [r7, 0x3C] adds r0, r6, 0 adds r1, r7, 0 bl npc_pal_op cmp r5, 0 bne _081268B2 ldrb r0, [r7, 0x1] movs r1, 0x4 negs r1, r1 ands r1, r0 movs r0, 0x1 orrs r1, r0 strb r1, [r7, 0x1] _081268B2: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081268BC: .4byte gSprites _081268C0: .4byte sub_81269E0 _081268C4: .4byte gUnknown_0830FD14 _081268C8: .4byte gDummySpriteAnimTable _081268CC: .4byte gDummySpriteAffineAnimTable thumb_func_end SetUpReflection thumb_func_start sub_81268D0 sub_81268D0: @ 81268D0 push {lr} ldrb r0, [r0, 0x5] bl GetFieldObjectGraphicsInfo ldrh r0, [r0, 0xA] subs r0, 0x2 lsls r0, 16 asrs r0, 16 pop {r1} bx r1 thumb_func_end sub_81268D0 thumb_func_start npc_pal_op npc_pal_op: @ 81268E4 push {r4,r5,lr} sub sp, 0x8 adds r5, r0, 0 adds r4, r1, 0 ldr r1, _0812693C mov r0, sp movs r2, 0x6 bl memcpy movs r0, 0 strh r0, [r4, 0x32] ldrb r0, [r5, 0x5] bl GetFieldObjectGraphicsInfo ldrb r1, [r0, 0xC] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08126940 ldrb r0, [r5, 0x1F] bl sub_8057450 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _08126926 ldrb r0, [r5, 0x1E] bl sub_8057450 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08126940 _08126926: subs r0, 0x1 lsls r0, 1 add r0, sp ldrh r0, [r0] strh r0, [r4, 0x32] ldrb r1, [r4, 0x5] lsrs r1, 4 adds r0, r5, 0 bl npc_pal_op_A b _0812694A .align 2, 0 _0812693C: .4byte gUnknown_08401E2C _08126940: ldrb r1, [r4, 0x5] lsrs r1, 4 adds r0, r5, 0 bl npc_pal_op_B _0812694A: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 thumb_func_end npc_pal_op thumb_func_start npc_pal_op_B npc_pal_op_B: @ 8126954 push {r4,lr} lsls r1, 24 lsrs r4, r1, 24 ldrb r0, [r0, 0x5] bl GetFieldObjectGraphicsInfo adds r2, r0, 0 ldrh r1, [r2, 0x4] ldr r0, _08126980 cmp r1, r0 beq _081269A8 ldrb r0, [r2, 0xC] movs r1, 0xF ands r1, r0 cmp r1, 0 bne _08126984 ldrh r0, [r2, 0x2] adds r1, r4, 0 bl npc_load_two_palettes__no_record b _081269A2 .align 2, 0 _08126980: .4byte 0x000011ff _08126984: cmp r1, 0xA bne _08126992 ldrh r0, [r2, 0x2] adds r1, r4, 0 bl npc_load_two_palettes__and_record b _081269A2 _08126992: adds r0, r4, 0 bl npc_paltag_by_palslot lsls r0, 16 lsrs r0, 16 adds r1, r4, 0 bl pal_patch_for_npc _081269A2: adds r0, r4, 0 bl sub_807D78C _081269A8: pop {r4} pop {r0} bx r0 thumb_func_end npc_pal_op_B thumb_func_start npc_pal_op_A npc_pal_op_A: @ 81269B0 push {r4,lr} lsls r1, 24 lsrs r4, r1, 24 ldrb r0, [r0, 0x5] bl GetFieldObjectGraphicsInfo adds r2, r0, 0 ldrh r1, [r2, 0x4] ldr r0, _081269DC cmp r1, r0 beq _081269D4 adds r0, r1, 0 adds r1, r4, 0 bl pal_patch_for_npc adds r0, r4, 0 bl sub_807D78C _081269D4: pop {r4} pop {r0} bx r0 .align 2, 0 _081269DC: .4byte 0x000011ff thumb_func_end npc_pal_op_A thumb_func_start sub_81269E0 sub_81269E0: @ 81269E0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r4, r0, 0 movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08126A28 adds r7, r0, r1 ldrb r1, [r7, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08126A2C adds r5, r0, r1 ldr r0, [r7] ldr r1, _08126A30 ands r0, r1 cmp r0, r1 bne _08126A18 ldrb r1, [r7, 0x8] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r1, r0 beq _08126A34 _08126A18: adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r2] b _08126B3E .align 2, 0 _08126A28: .4byte gMapObjects _08126A2C: .4byte gSprites _08126A30: .4byte 0x00020001 _08126A34: ldr r1, _08126B4C ldrb r0, [r5, 0x5] lsrs r0, 4 adds r0, r1 ldrb r1, [r0] lsls r1, 4 ldrb r2, [r4, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] ldrb r1, [r5, 0x1] lsrs r1, 6 lsls r1, 6 ldrb r2, [r4, 0x1] movs r3, 0x3F adds r0, r3, 0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x1] ldrb r0, [r5, 0x3] lsrs r0, 6 lsls r0, 6 ldrb r2, [r4, 0x3] adds r1, r3, 0 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x3] ldrb r0, [r5, 0x3] lsls r0, 26 lsrs r0, 27 movs r2, 0x10 orrs r0, r2 lsls r0, 1 subs r2, 0x4F mov r9, r2 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x3] ldrh r1, [r5, 0x4] lsls r1, 22 lsrs r1, 22 ldrh r2, [r4, 0x4] ldr r0, _08126B50 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] ldr r0, [r5, 0x18] str r0, [r4, 0x18] adds r0, r5, 0 adds r0, 0x42 ldrb r0, [r0] lsls r0, 26 lsrs r0, 26 adds r2, r4, 0 adds r2, 0x42 ands r3, r0 ldrb r1, [r2] movs r0, 0x40 negs r0, r0 ands r0, r1 orrs r0, r3 strb r0, [r2] movs r0, 0x3E adds r0, r5 mov r8, r0 ldrb r0, [r0] adds r6, r4, 0 adds r6, 0x3E movs r1, 0x4 ands r1, r0 ldrb r2, [r6] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r6] ldrh r0, [r5, 0x20] strh r0, [r4, 0x20] adds r0, r7, 0 bl sub_81268D0 ldrh r1, [r5, 0x22] adds r0, r1 ldrh r1, [r4, 0x32] adds r1, r0 strh r1, [r4, 0x22] adds r0, r5, 0 adds r0, 0x28 ldrb r1, [r0] adds r0, r4, 0 adds r0, 0x28 strb r1, [r0] adds r0, r5, 0 adds r0, 0x29 ldrb r0, [r0] adds r1, r4, 0 adds r1, 0x29 strb r0, [r1] ldrh r0, [r5, 0x24] strh r0, [r4, 0x24] ldrh r0, [r5, 0x26] negs r0, r0 strh r0, [r4, 0x26] mov r2, r8 ldrb r0, [r2] movs r1, 0x2 ands r1, r0 ldrb r2, [r6] movs r0, 0x3 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r6] movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0 bne _08126B3E ldrb r0, [r4, 0x3] mov r2, r9 ands r2, r0 strb r2, [r4, 0x3] ldrb r0, [r5, 0x3] lsls r0, 26 lsrs r0, 27 movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _08126B3E movs r1, 0x2 adds r0, r2, 0 orrs r0, r1 strb r0, [r4, 0x3] _08126B3E: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08126B4C: .4byte gUnknown_0830FD14 _08126B50: .4byte 0xfffffc00 thumb_func_end sub_81269E0 thumb_func_start sub_8126B54 sub_8126B54: @ 8126B54 push {r4,lr} ldr r0, _08126B9C ldr r0, [r0, 0x20] movs r1, 0 movs r2, 0 movs r3, 0x52 bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 cmp r0, 0x40 beq _08126B92 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _08126BA0 adds r1, r0 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 movs r3, 0x4 orrs r0, r3 strb r0, [r1, 0x5] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x2 orrs r0, r2 orrs r0, r3 strb r0, [r1] _08126B92: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08126B9C: .4byte gFieldEffectObjectTemplatePointers _08126BA0: .4byte gSprites thumb_func_end sub_8126B54 thumb_func_start objid_set_invisible objid_set_invisible: @ 8126BA4 lsls r0, 24 lsrs r0, 24 ldr r2, _08126BC0 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] bx lr .align 2, 0 _08126BC0: .4byte gSprites thumb_func_end objid_set_invisible thumb_func_start sub_8126BC4 sub_8126BC4: @ 8126BC4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r2, 16 lsrs r7, r2, 16 lsls r3, 16 lsrs r6, r3, 16 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 ldr r1, _08126C68 adds r2, r0, r1 adds r0, r2, 0 adds r0, 0x3E ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _08126C0E movs r0, 0x2E ldrsh r1, [r2, r0] lsls r0, r7, 16 asrs r0, 16 cmp r1, r0 bne _08126C0E movs r0, 0x30 ldrsh r1, [r2, r0] lsls r0, r6, 16 asrs r0, 16 cmp r1, r0 beq _08126C5A _08126C0E: lsls r0, r7, 16 asrs r0, 16 lsls r1, r6, 16 asrs r1, 16 mov r4, sp adds r4, 0x2 mov r2, sp adds r3, r4, 0 bl sub_80603CC lsls r0, r5, 4 adds r0, r5 lsls r0, 2 ldr r1, _08126C68 adds r2, r0, r1 mov r0, sp ldrh r0, [r0] adds r0, 0x8 strh r0, [r2, 0x20] ldrh r0, [r4] adds r0, 0x8 strh r0, [r2, 0x22] adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] strh r7, [r2, 0x2E] strh r6, [r2, 0x30] mov r1, r8 subs r1, 0x1 lsls r1, 24 lsrs r1, 24 adds r0, r2, 0 bl StartSpriteAnim _08126C5A: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08126C68: .4byte gSprites thumb_func_end sub_8126BC4 thumb_func_start oei_shadow oei_shadow: @ 8126C6C push {r4,r5,lr} ldr r5, _08126CF8 ldrb r0, [r5] ldrb r1, [r5, 0x4] ldrb r2, [r5, 0x8] bl GetFieldObjectIdByLocalIdAndMap lsls r0, 24 lsrs r0, 24 ldr r2, _08126CFC lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x5] bl GetFieldObjectGraphicsInfo adds r4, r0, 0 ldr r2, _08126D00 ldr r1, _08126D04 ldrb r0, [r4, 0xC] lsls r0, 26 lsrs r0, 30 adds r0, r1 ldrb r0, [r0] lsls r0, 2 adds r0, r2 ldr r0, [r0] movs r1, 0 movs r2, 0 movs r3, 0x94 bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _08126CF0 ldr r0, _08126D08 lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] ldr r0, [r5] strh r0, [r2, 0x2E] ldr r0, [r5, 0x4] strh r0, [r2, 0x30] ldr r0, [r5, 0x8] strh r0, [r2, 0x32] ldrh r1, [r4, 0xA] lsls r1, 16 asrs r1, 17 ldr r3, _08126D0C ldrb r0, [r4, 0xC] lsls r0, 26 lsrs r0, 30 lsls r0, 1 adds r0, r3 ldrh r0, [r0] subs r1, r0 strh r1, [r2, 0x34] _08126CF0: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08126CF8: .4byte gUnknown_0202FF84 _08126CFC: .4byte gMapObjects _08126D00: .4byte gFieldEffectObjectTemplatePointers _08126D04: .4byte gUnknown_08401E32 _08126D08: .4byte gSprites _08126D0C: .4byte gUnknown_08401E36 thumb_func_end oei_shadow thumb_func_start oamc_shadow oamc_shadow: @ 8126D10 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 ldrh r0, [r5, 0x2E] lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x30] lsls r1, 24 lsrs r1, 24 ldrh r2, [r5, 0x32] lsls r2, 24 lsrs r2, 24 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 beq _08126D3E adds r0, r5, 0 movs r1, 0x3 bl FieldEffectStop b _08126DC4 _08126D3E: mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08126DCC adds r4, r0, r1 ldrb r0, [r4, 0x4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _08126DD0 adds r1, r0 ldrb r0, [r1, 0x5] movs r2, 0xC ands r2, r0 ldrb r3, [r5, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r2 strb r0, [r5, 0x5] ldrh r0, [r1, 0x20] strh r0, [r5, 0x20] ldrh r0, [r5, 0x34] ldrh r1, [r1, 0x22] adds r0, r1 strh r0, [r5, 0x22] ldr r0, [r4] ldr r1, _08126DD4 ands r0, r1 cmp r0, r1 bne _08126DBC ldrb r0, [r4, 0x1E] bl sub_8056E14 lsls r0, 24 cmp r0, 0 bne _08126DBC ldrb r0, [r4, 0x1E] bl MetatileBehavior_IsSurfableWaterOrUnderwater lsls r0, 24 cmp r0, 0 bne _08126DBC ldrb r0, [r4, 0x1F] bl MetatileBehavior_IsSurfableWaterOrUnderwater lsls r0, 24 cmp r0, 0 bne _08126DBC ldrb r0, [r4, 0x1E] bl MetatileBehavior_IsReflective lsls r0, 24 cmp r0, 0 bne _08126DBC ldrb r0, [r4, 0x1F] bl MetatileBehavior_IsReflective lsls r0, 24 cmp r0, 0 beq _08126DC4 _08126DBC: adds r0, r5, 0 movs r1, 0x3 bl FieldEffectStop _08126DC4: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08126DCC: .4byte gMapObjects _08126DD0: .4byte gSprites _08126DD4: .4byte 0x00400001 thumb_func_end oamc_shadow thumb_func_start oei_grass_normal oei_grass_normal: @ 8126DD8 push {r4,r5,lr} sub sp, 0x4 ldr r5, _08126E70 ldrh r1, [r5] mov r0, sp strh r1, [r0] ldrh r0, [r5, 0x4] mov r4, sp adds r4, 0x2 strh r0, [r4] mov r0, sp adds r1, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08126E74 ldr r0, [r0, 0x10] mov r1, sp movs r2, 0 ldrsh r1, [r1, r2] movs r3, 0 ldrsh r2, [r4, r3] movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _08126E64 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08126E78 adds r3, r0, r1 adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] movs r0, 0x3 ldrb r1, [r5, 0xC] ands r1, r0 lsls r1, 2 ldrb r2, [r3, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x5] ldr r0, [r5, 0x8] strh r0, [r3, 0x2E] ldr r0, [r5] strh r0, [r3, 0x30] ldr r0, [r5, 0x4] strh r0, [r3, 0x32] ldr r0, [r5, 0x10] strh r0, [r3, 0x34] ldr r0, [r5, 0x14] strh r0, [r3, 0x36] ldr r0, [r5, 0x18] strh r0, [r3, 0x38] ldr r0, [r5, 0x1C] cmp r0, 0 beq _08126E64 adds r0, r3, 0 movs r1, 0x4 bl SeekSpriteAnim _08126E64: movs r0, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08126E70: .4byte gUnknown_0202FF84 _08126E74: .4byte gFieldEffectObjectTemplatePointers _08126E78: .4byte gSprites thumb_func_end oei_grass_normal thumb_func_start unc_grass_normal unc_grass_normal: @ 8126E7C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r5, r0, 0 ldrh r0, [r5, 0x38] lsrs r4, r0, 8 lsls r0, 24 lsrs r7, r0, 24 ldr r3, _08126F24 ldrb r1, [r3] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08126EC6 ldr r2, _08126F28 movs r0, 0x5 ldrsb r0, [r2, r0] cmp r0, r4 bne _08126EAC movs r0, 0x4 ldrsb r0, [r2, r0] cmp r0, r7 beq _08126EC6 _08126EAC: ldr r1, [r3, 0x4] ldrh r0, [r5, 0x30] subs r0, r1 strh r0, [r5, 0x30] ldr r1, [r3, 0x8] ldrh r0, [r5, 0x32] subs r0, r1 strh r0, [r5, 0x32] ldrb r1, [r2, 0x5] lsls r1, 8 ldrb r0, [r2, 0x4] orrs r0, r1 strh r0, [r5, 0x38] _08126EC6: ldrh r0, [r5, 0x34] lsrs r1, r0, 8 mov r8, r1 lsls r0, 24 lsrs r4, r0, 24 ldrh r0, [r5, 0x36] lsls r0, 24 lsrs r7, r0, 24 movs r2, 0x30 ldrsh r0, [r5, r2] movs r2, 0x32 ldrsh r1, [r5, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r6, r0, 24 mov r0, r8 adds r1, r4, 0 adds r2, r7, 0 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _08126F1A adds r0, r6, 0 bl MetatileBehavior_IsTallGrass lsls r0, 24 cmp r0, 0 beq _08126F1A movs r1, 0x3C ldrsh r0, [r5, r1] cmp r0, 0 beq _08126F2C adds r0, r5, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08126F2C _08126F1A: adds r0, r5, 0 movs r1, 0x4 bl FieldEffectStop b _08126F70 .align 2, 0 _08126F24: .4byte gUnknown_0202E844 _08126F28: .4byte gSaveBlock1 _08126F2C: mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08126F7C adds r2, r0, r1 ldr r0, [r2, 0x10] ldr r1, [r5, 0x30] cmp r0, r1 beq _08126F4C ldr r0, [r2, 0x14] cmp r0, r1 beq _08126F4C movs r0, 0x1 strh r0, [r5, 0x3C] _08126F4C: movs r6, 0 adds r0, r5, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0 bne _08126F5A movs r6, 0x4 _08126F5A: adds r0, r5, 0 movs r1, 0 bl sub_806487C ldrh r1, [r5, 0x2E] lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 adds r2, r6, 0 bl sub_812882C _08126F70: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08126F7C: .4byte gMapObjects thumb_func_end unc_grass_normal thumb_func_start sub_8126F80 sub_8126F80: @ 8126F80 push {r4,lr} ldr r4, _08126FE4 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0xC bl sub_8060470 ldr r0, _08126FE8 ldr r0, [r0, 0x28] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _08126FDC lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _08126FEC adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] movs r0, 0x3 ldrb r1, [r4, 0xC] ands r1, r0 lsls r1, 2 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] ldr r0, [r4, 0x8] strh r0, [r2, 0x2E] movs r0, 0xC strh r0, [r2, 0x30] _08126FDC: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08126FE4: .4byte gUnknown_0202FF84 _08126FE8: .4byte gFieldEffectObjectTemplatePointers _08126FEC: .4byte gSprites thumb_func_end sub_8126F80 thumb_func_start sub_8126FF0 sub_8126FF0: @ 8126FF0 push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, [sp, 0x18] lsls r0, 24 lsrs r0, 24 mov r12, r0 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r6, r2, 24 movs r5, 0 ldr r0, _08127060 mov r8, r0 lsls r3, 16 asrs r3, 16 lsls r4, 16 asrs r4, 16 _08127014: lsls r0, r5, 4 adds r0, r5 lsls r0, 2 mov r1, r8 adds r2, r0, r1 adds r0, r2, 0 adds r0, 0x3E ldrb r0, [r0] lsls r0, 31 cmp r0, 0 beq _08127068 ldr r1, [r2, 0x1C] ldr r0, _08127064 cmp r1, r0 bne _08127068 movs r1, 0x30 ldrsh r0, [r2, r1] cmp r3, r0 bne _08127068 movs r1, 0x32 ldrsh r0, [r2, r1] cmp r4, r0 bne _08127068 ldrh r1, [r2, 0x34] lsrs r0, r1, 8 cmp r12, r0 bne _08127068 movs r0, 0xFF ands r0, r1 cmp r7, r0 bne _08127068 movs r1, 0x36 ldrsh r0, [r2, r1] cmp r6, r0 bne _08127068 adds r0, r5, 0 b _08127074 .align 2, 0 _08127060: .4byte gSprites _08127064: .4byte unc_grass_normal _08127068: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3F bls _08127014 movs r0, 0x40 _08127074: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8126FF0 thumb_func_start sub_8127080 sub_8127080: @ 8127080 push {r4,r5,lr} sub sp, 0x4 ldr r5, _0812711C ldrh r1, [r5] mov r0, sp strh r1, [r0] ldrh r0, [r5, 0x4] mov r4, sp adds r4, 0x2 strh r0, [r4] mov r0, sp adds r1, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08127120 ldr r0, [r0, 0x3C] mov r1, sp movs r2, 0 ldrsh r1, [r1, r2] movs r3, 0 ldrsh r2, [r4, r3] movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _08127110 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08127124 adds r4, r0, r1 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] ldrb r0, [r5, 0x8] bl ZCoordToPriority movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] ldr r0, [r5, 0x8] strh r0, [r4, 0x2E] ldr r0, [r5] strh r0, [r4, 0x30] ldr r0, [r5, 0x4] strh r0, [r4, 0x32] ldr r0, [r5, 0x10] strh r0, [r4, 0x34] ldr r0, [r5, 0x14] strh r0, [r4, 0x36] ldr r0, [r5, 0x18] strh r0, [r4, 0x38] ldr r0, [r5, 0x1C] cmp r0, 0 beq _08127110 adds r0, r4, 0 movs r1, 0x6 bl SeekSpriteAnim _08127110: movs r0, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0812711C: .4byte gUnknown_0202FF84 _08127120: .4byte gFieldEffectObjectTemplatePointers _08127124: .4byte gSprites thumb_func_end sub_8127080 thumb_func_start unc_grass_tall unc_grass_tall: @ 8127128 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r5, r0, 0 ldrh r0, [r5, 0x38] lsrs r7, r0, 8 lsls r0, 24 lsrs r6, r0, 24 ldr r3, _081271D0 ldrb r1, [r3] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08127172 ldr r2, _081271D4 movs r0, 0x5 ldrsb r0, [r2, r0] cmp r0, r7 bne _08127158 movs r0, 0x4 ldrsb r0, [r2, r0] cmp r0, r6 beq _08127172 _08127158: ldr r1, [r3, 0x4] ldrh r0, [r5, 0x30] subs r0, r1 strh r0, [r5, 0x30] ldr r1, [r3, 0x8] ldrh r0, [r5, 0x32] subs r0, r1 strh r0, [r5, 0x32] ldrb r1, [r2, 0x5] lsls r1, 8 ldrb r0, [r2, 0x4] orrs r0, r1 strh r0, [r5, 0x38] _08127172: ldrh r0, [r5, 0x34] lsrs r1, r0, 8 mov r8, r1 lsls r0, 24 lsrs r7, r0, 24 ldrh r0, [r5, 0x36] lsls r0, 24 lsrs r6, r0, 24 movs r2, 0x30 ldrsh r0, [r5, r2] movs r2, 0x32 ldrsh r1, [r5, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 mov r0, r8 adds r1, r7, 0 adds r2, r6, 0 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _081271C6 adds r0, r4, 0 bl MetatileBehavior_IsLongGrass lsls r0, 24 cmp r0, 0 beq _081271C6 movs r1, 0x3C ldrsh r0, [r5, r1] cmp r0, 0 beq _081271D8 adds r0, r5, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _081271D8 _081271C6: adds r0, r5, 0 movs r1, 0x11 bl FieldEffectStop b _0812720E .align 2, 0 _081271D0: .4byte gUnknown_0202E844 _081271D4: .4byte gSaveBlock1 _081271D8: mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0812721C adds r2, r0, r1 ldr r0, [r2, 0x10] ldr r1, [r5, 0x30] cmp r0, r1 beq _081271F8 ldr r0, [r2, 0x14] cmp r0, r1 beq _081271F8 movs r0, 0x1 strh r0, [r5, 0x3C] _081271F8: adds r0, r5, 0 movs r1, 0 bl sub_806487C ldrh r1, [r5, 0x2E] lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 movs r2, 0 bl sub_812882C _0812720E: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812721C: .4byte gMapObjects thumb_func_end unc_grass_tall thumb_func_start sub_8127220 sub_8127220: @ 8127220 push {r4,lr} ldr r4, _08127284 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08127288 ldr r0, [r0, 0x40] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0812727C lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _0812728C adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] movs r0, 0x3 ldrb r1, [r4, 0xC] ands r1, r0 lsls r1, 2 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] ldr r0, [r4, 0x8] strh r0, [r2, 0x2E] movs r0, 0x12 strh r0, [r2, 0x30] _0812727C: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08127284: .4byte gUnknown_0202FF84 _08127288: .4byte gFieldEffectObjectTemplatePointers _0812728C: .4byte gSprites thumb_func_end sub_8127220 thumb_func_start sub_8127290 sub_8127290: @ 8127290 push {r4-r6,lr} ldr r6, _08127324 ldrb r0, [r6] ldrb r1, [r6, 0x4] ldrb r2, [r6, 0x8] bl GetFieldObjectIdByLocalIdAndMap lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _08127328 adds r5, r1, r0 ldr r0, _0812732C ldr r0, [r0, 0x78] movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0812731C lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r4, _08127330 adds r2, r4 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x5] movs r1, 0xC ands r1, r0 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] ldr r0, [r6] strh r0, [r2, 0x2E] ldr r0, [r6, 0x4] strh r0, [r2, 0x30] ldr r0, [r6, 0x8] strh r0, [r2, 0x32] ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x20] strh r0, [r2, 0x34] ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x22] strh r0, [r2, 0x36] _0812731C: movs r0, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08127324: .4byte gUnknown_0202FF84 _08127328: .4byte gMapObjects _0812732C: .4byte gFieldEffectObjectTemplatePointers _08127330: .4byte gSprites thumb_func_end sub_8127290 thumb_func_start sub_8127334 sub_8127334: @ 8127334 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r0, 0 ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x30] lsls r1, 24 lsrs r1, 24 ldrh r2, [r4, 0x32] lsls r2, 24 lsrs r2, 24 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _08127372 ldr r5, _0812737C mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r1, r0, r5 ldrb r0, [r1, 0x2] lsls r0, 29 cmp r0, 0 blt _08127380 _08127372: adds r0, r4, 0 movs r1, 0x29 bl FieldEffectStop b _08127416 .align 2, 0 _0812737C: .4byte gMapObjects _08127380: ldrb r0, [r1, 0x5] bl GetFieldObjectGraphicsInfo mov r8, r0 mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08127424 adds r6, r0, r1 ldrh r5, [r6, 0x22] ldrh r7, [r6, 0x20] movs r0, 0x20 ldrsh r1, [r6, r0] movs r2, 0x34 ldrsh r0, [r4, r2] cmp r1, r0 bne _081273BC lsls r0, r5, 16 asrs r0, 16 movs r2, 0x36 ldrsh r1, [r4, r2] cmp r0, r1 beq _081273D6 _081273BC: strh r7, [r4, 0x34] strh r5, [r4, 0x36] adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _081273D6 adds r0, r4, 0 movs r1, 0 bl StartSpriteAnim _081273D6: strh r7, [r4, 0x20] strh r5, [r4, 0x22] mov r1, r8 ldrh r0, [r1, 0xA] lsls r0, 16 asrs r0, 17 subs r0, 0x8 strh r0, [r4, 0x26] adds r0, r6, 0 adds r0, 0x43 ldrb r0, [r0] subs r0, 0x1 adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] ldrb r0, [r6, 0x5] movs r1, 0xC ands r1, r0 ldrb r2, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] adds r0, r6, 0 adds r0, 0x3E ldrb r1, [r0] lsls r1, 29 lsrs r1, 31 adds r0, r4, 0 bl sub_806487C _08127416: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08127424: .4byte gSprites thumb_func_end sub_8127334 thumb_func_start sub_8127428 sub_8127428: @ 8127428 push {r4,lr} ldr r4, _08127490 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08127494 ldr r0, [r0, 0x2C] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _08127486 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08127498 adds r0, r1 adds r3, r0, 0 adds r3, 0x3E ldrb r1, [r3] movs r2, 0x2 orrs r1, r2 strb r1, [r3] movs r1, 0x3 ldrb r2, [r4, 0xC] ands r2, r1 lsls r2, 2 ldrb r3, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r3 orrs r1, r2 strb r1, [r0, 0x5] movs r1, 0xD strh r1, [r0, 0x3C] ldrb r1, [r4, 0x10] bl StartSpriteAnim _08127486: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08127490: .4byte gUnknown_0202FF84 _08127494: .4byte gFieldEffectObjectTemplatePointers _08127498: .4byte gSprites thumb_func_end sub_8127428 thumb_func_start sub_812749C sub_812749C: @ 812749C push {r4,r5,lr} ldr r4, _08127504 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08127508 ldr r0, [r0, 0x5C] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 adds r5, r1, 0 cmp r1, 0x40 beq _081274FC lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0812750C adds r0, r1 adds r3, r0, 0 adds r3, 0x3E ldrb r1, [r3] movs r2, 0x2 orrs r1, r2 strb r1, [r3] movs r1, 0x3 ldrb r2, [r4, 0xC] ands r2, r1 lsls r2, 2 ldrb r3, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r3 orrs r1, r2 strb r1, [r0, 0x5] movs r1, 0x18 strh r1, [r0, 0x3C] ldrb r1, [r4, 0x10] bl StartSpriteAnim _081274FC: adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08127504: .4byte gUnknown_0202FF84 _08127508: .4byte gFieldEffectObjectTemplatePointers _0812750C: .4byte gSprites thumb_func_end sub_812749C thumb_func_start sub_8127510 sub_8127510: @ 8127510 push {r4,r5,lr} ldr r4, _08127578 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _0812757C ldr r0, [r0, 0x6C] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 adds r5, r1, 0 cmp r1, 0x40 beq _08127570 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08127580 adds r0, r1 adds r3, r0, 0 adds r3, 0x3E ldrb r1, [r3] movs r2, 0x2 orrs r1, r2 strb r1, [r3] movs r1, 0x3 ldrb r2, [r4, 0xC] ands r2, r1 lsls r2, 2 ldrb r3, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r3 orrs r1, r2 strb r1, [r0, 0x5] movs r1, 0x23 strh r1, [r0, 0x3C] ldrb r1, [r4, 0x10] bl StartSpriteAnim _08127570: adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08127578: .4byte gUnknown_0202FF84 _0812757C: .4byte gFieldEffectObjectTemplatePointers _08127580: .4byte gSprites thumb_func_end sub_8127510 thumb_func_start sub_8127584 sub_8127584: @ 8127584 push {lr} ldr r2, _0812759C movs r3, 0x2E ldrsh r1, [r0, r3] lsls r1, 2 adds r1, r2 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _0812759C: .4byte gUnknown_08401E40 thumb_func_end sub_8127584 thumb_func_start sub_81275A0 sub_81275A0: @ 81275A0 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x30] adds r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x28 ble _081275B6 movs r0, 0x1 strh r0, [r1, 0x2E] _081275B6: adds r0, r1, 0 movs r1, 0 bl sub_806487C pop {r0} bx r0 thumb_func_end sub_81275A0 thumb_func_start sub_81275C4 sub_81275C4: @ 81275C4 push {r4,lr} adds r4, r0, 0 adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] ldrb r1, [r3] lsls r1, 29 lsrs r1, 31 adds r0, r4, 0 bl sub_806487C movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0x38 ble _08127608 ldrh r1, [r4, 0x3C] lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldEffectStop _08127608: pop {r4} pop {r0} bx r0 thumb_func_end sub_81275C4 thumb_func_start sub_8127610 sub_8127610: @ 8127610 push {r4-r6,lr} ldr r6, _081276A4 ldrb r0, [r6] ldrb r1, [r6, 0x4] ldrb r2, [r6, 0x8] bl GetFieldObjectIdByLocalIdAndMap lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _081276A8 adds r5, r1, r0 ldr r0, _081276AC ldr r0, [r0, 0x34] movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x40 beq _0812769A ldrb r0, [r5, 0x5] bl GetFieldObjectGraphicsInfo lsls r3, r4, 4 adds r3, r4 lsls r3, 2 ldr r4, _081276B0 adds r3, r4 movs r1, 0x3E adds r1, r3 mov r12, r1 ldrb r1, [r1] movs r2, 0x2 orrs r1, r2 mov r2, r12 strb r1, [r2] ldrb r2, [r5, 0x4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldrb r1, [r1, 0x5] movs r2, 0xC ands r2, r1 ldrb r4, [r3, 0x5] movs r1, 0xD negs r1, r1 ands r1, r4 orrs r1, r2 strb r1, [r3, 0x5] ldr r1, [r6] strh r1, [r3, 0x2E] ldr r1, [r6, 0x4] strh r1, [r3, 0x30] ldr r1, [r6, 0x8] strh r1, [r3, 0x32] ldrh r0, [r0, 0xA] lsls r0, 16 asrs r0, 17 subs r0, 0x4 strh r0, [r3, 0x26] movs r0, 0x46 bl PlaySE _0812769A: movs r0, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _081276A4: .4byte gUnknown_0202FF84 _081276A8: .4byte gMapObjects _081276AC: .4byte gFieldEffectObjectTemplatePointers _081276B0: .4byte gSprites thumb_func_end sub_8127610 thumb_func_start sub_81276B4 sub_81276B4: @ 81276B4 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _081276E4 ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x30] lsls r1, 24 lsrs r1, 24 ldrh r2, [r4, 0x32] lsls r2, 24 lsrs r2, 24 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 beq _081276EE _081276E4: adds r0, r4, 0 movs r1, 0xF bl FieldEffectStop b _0812772E _081276EE: ldr r3, _08127738 ldr r2, _0812773C mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x20] strh r0, [r4, 0x20] mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x22] strh r0, [r4, 0x22] adds r0, r4, 0 movs r1, 0 bl sub_806487C _0812772E: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08127738: .4byte gSprites _0812773C: .4byte gMapObjects thumb_func_end sub_81276B4 thumb_func_start sub_8127740 sub_8127740: @ 8127740 push {r4,lr} ldr r4, _081277A4 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0xC bl sub_8060470 ldr r0, _081277A8 ldr r0, [r0, 0x38] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0812779C lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _081277AC adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] movs r0, 0x3 ldrb r1, [r4, 0xC] ands r1, r0 lsls r1, 2 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] ldr r0, [r4, 0x8] strh r0, [r2, 0x2E] movs r0, 0x10 strh r0, [r2, 0x30] _0812779C: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _081277A4: .4byte gUnknown_0202FF84 _081277A8: .4byte gFieldEffectObjectTemplatePointers _081277AC: .4byte gSprites thumb_func_end sub_8127740 thumb_func_start oei_water_drop_tall oei_water_drop_tall: @ 81277B0 push {r4,lr} ldr r4, _08127814 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08127818 ldr r0, [r0, 0x30] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0812780C lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _0812781C adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] movs r0, 0x3 ldrb r1, [r4, 0xC] ands r1, r0 lsls r1, 2 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] ldr r0, [r4, 0x8] strh r0, [r2, 0x2E] movs r0, 0xE strh r0, [r2, 0x30] _0812780C: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08127814: .4byte gUnknown_0202FF84 _08127818: .4byte gFieldEffectObjectTemplatePointers _0812781C: .4byte gSprites thumb_func_end oei_water_drop_tall thumb_func_start sub_8127820 sub_8127820: @ 8127820 push {r4-r7,lr} ldr r7, _081278C0 ldrb r0, [r7] ldrb r1, [r7, 0x4] ldrb r2, [r7, 0x8] bl GetFieldObjectIdByLocalIdAndMap lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _081278C4 adds r6, r1, r0 ldr r0, _081278C8 ldr r0, [r0, 0x34] movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x40 beq _081278B6 ldrb r0, [r6, 0x5] bl GetFieldObjectGraphicsInfo adds r4, r0, 0 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 ldr r3, _081278CC adds r0, r3 ldr r1, _081278D0 str r1, [r0, 0x1C] adds r5, r0, 0 adds r5, 0x3E ldrb r1, [r5] movs r2, 0x2 orrs r1, r2 strb r1, [r5] ldrb r2, [r6, 0x4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r3 ldrb r1, [r1, 0x5] movs r2, 0xC ands r2, r1 ldrb r3, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r3 orrs r1, r2 strb r1, [r0, 0x5] ldr r1, [r7] strh r1, [r0, 0x2E] ldr r1, [r7, 0x4] strh r1, [r0, 0x30] ldr r1, [r7, 0x8] strh r1, [r0, 0x32] ldr r1, _081278D4 strh r1, [r0, 0x34] movs r1, 0x1 negs r1, r1 strh r1, [r0, 0x36] ldrh r1, [r4, 0xA] lsls r1, 16 asrs r1, 17 subs r1, 0x4 strh r1, [r0, 0x26] movs r1, 0x1 bl StartSpriteAnim _081278B6: movs r0, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081278C0: .4byte gUnknown_0202FF84 _081278C4: .4byte gMapObjects _081278C8: .4byte gFieldEffectObjectTemplatePointers _081278CC: .4byte gSprites _081278D0: .4byte sub_81278D8 _081278D4: .4byte 0x0000ffff thumb_func_end sub_8127820 thumb_func_start sub_81278D8 sub_81278D8: @ 81278D8 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x30] lsls r1, 24 lsrs r1, 24 ldrh r2, [r4, 0x32] lsls r2, 24 lsrs r2, 24 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _08127912 ldr r2, _0812791C mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r5, r0, r2 ldrb r0, [r5, 0x2] lsls r0, 28 cmp r0, 0 blt _08127920 _08127912: adds r0, r4, 0 movs r1, 0x22 bl FieldEffectStop b _0812796A .align 2, 0 _0812791C: .4byte gMapObjects _08127920: ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08127974 adds r0, r1 ldrh r1, [r0, 0x20] strh r1, [r4, 0x20] ldrh r1, [r0, 0x22] strh r1, [r4, 0x22] adds r0, 0x43 ldrb r0, [r0] adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] adds r0, r4, 0 movs r1, 0 bl sub_806487C ldr r1, [r5, 0x10] ldr r0, [r4, 0x34] cmp r1, r0 beq _0812796A ldrh r0, [r5, 0x10] strh r0, [r4, 0x34] ldrh r0, [r5, 0x12] strh r0, [r4, 0x36] adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _0812796A movs r0, 0x46 bl PlaySE _0812796A: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08127974: .4byte gSprites thumb_func_end sub_81278D8 thumb_func_start oei_ripples oei_ripples: @ 8127978 push {r4,lr} ldr r0, _081279CC ldr r0, [r0, 0x14] ldr r4, _081279D0 movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _081279C4 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _081279D4 adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] movs r0, 0x3 ldrb r1, [r4, 0xC] ands r1, r0 lsls r1, 2 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] movs r0, 0x5 strh r0, [r2, 0x2E] _081279C4: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _081279CC: .4byte gFieldEffectObjectTemplatePointers _081279D0: .4byte gUnknown_0202FF84 _081279D4: .4byte gSprites thumb_func_end oei_ripples thumb_func_start sub_81279D8 sub_81279D8: @ 81279D8 push {r4-r6,lr} ldr r6, _08127A6C ldrb r0, [r6] ldrb r1, [r6, 0x4] ldrb r2, [r6, 0x8] bl GetFieldObjectIdByLocalIdAndMap lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _08127A70 adds r5, r1, r0 ldr r0, _08127A74 ldr r0, [r0, 0x7C] movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _08127A64 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r4, _08127A78 adds r2, r4 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x5] movs r1, 0xC ands r1, r0 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] ldr r0, [r6] strh r0, [r2, 0x2E] ldr r0, [r6, 0x4] strh r0, [r2, 0x30] ldr r0, [r6, 0x8] strh r0, [r2, 0x32] ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x20] strh r0, [r2, 0x34] ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x22] strh r0, [r2, 0x36] _08127A64: movs r0, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08127A6C: .4byte gUnknown_0202FF84 _08127A70: .4byte gMapObjects _08127A74: .4byte gFieldEffectObjectTemplatePointers _08127A78: .4byte gSprites thumb_func_end sub_81279D8 thumb_func_start sub_8127A7C sub_8127A7C: @ 8127A7C push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x30] lsls r1, 24 lsrs r1, 24 ldrh r2, [r4, 0x32] lsls r2, 24 lsrs r2, 24 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _08127AB6 ldr r5, _08127AC0 mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r1, r0, r5 ldrb r0, [r1, 0x2] lsls r0, 26 cmp r0, 0 blt _08127AC4 _08127AB6: adds r0, r4, 0 movs r1, 0x2A bl FieldEffectStop b _08127B08 .align 2, 0 _08127AC0: .4byte gMapObjects _08127AC4: ldrb r0, [r1, 0x5] bl GetFieldObjectGraphicsInfo mov r1, sp ldrb r2, [r1] lsls r1, r2, 3 adds r1, r2 lsls r1, 2 adds r1, r5 ldrb r2, [r1, 0x4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 ldr r2, _08127B10 adds r1, r2 ldrh r2, [r1, 0x20] strh r2, [r4, 0x20] ldrh r0, [r0, 0xA] lsls r0, 16 asrs r0, 17 ldrh r2, [r1, 0x22] adds r0, r2 subs r0, 0x8 strh r0, [r4, 0x22] adds r1, 0x43 ldrb r0, [r1] subs r0, 0x1 adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] adds r0, r4, 0 movs r1, 0 bl sub_806487C _08127B08: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08127B10: .4byte gSprites thumb_func_end sub_8127A7C thumb_func_start sub_8127B14 sub_8127B14: @ 8127B14 push {r4,lr} ldr r4, _08127B74 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08127B78 ldr r0, [r0, 0x44] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _08127B6C lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _08127B7C adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] movs r0, 0x3 ldrb r1, [r4, 0xC] ands r1, r0 lsls r1, 2 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] movs r0, 0x13 strh r0, [r2, 0x2E] _08127B6C: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08127B74: .4byte gUnknown_0202FF84 _08127B78: .4byte gFieldEffectObjectTemplatePointers _08127B7C: .4byte gSprites thumb_func_end sub_8127B14 thumb_func_start sub_8127B80 sub_8127B80: @ 8127B80 push {r4,lr} ldr r4, _08127BE0 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08127BE4 ldr r0, [r0, 0x48] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _08127BD8 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _08127BE8 adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] movs r0, 0x3 ldrb r1, [r4, 0xC] ands r1, r0 lsls r1, 2 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] movs r0, 0x14 strh r0, [r2, 0x2E] _08127BD8: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08127BE0: .4byte gUnknown_0202FF84 _08127BE4: .4byte gFieldEffectObjectTemplatePointers _08127BE8: .4byte gSprites thumb_func_end sub_8127B80 thumb_func_start sub_8127BEC sub_8127BEC: @ 8127BEC push {r4,lr} ldr r4, _08127C4C adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08127C50 ldr r0, [r0, 0x4C] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _08127C44 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _08127C54 adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] movs r0, 0x3 ldrb r1, [r4, 0xC] ands r1, r0 lsls r1, 2 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] movs r0, 0x15 strh r0, [r2, 0x2E] _08127C44: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08127C4C: .4byte gUnknown_0202FF84 _08127C50: .4byte gFieldEffectObjectTemplatePointers _08127C54: .4byte gSprites thumb_func_end sub_8127BEC thumb_func_start sub_8127C58 sub_8127C58: @ 8127C58 push {r4,lr} ldr r4, _08127CB8 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08127CBC ldr r0, [r0, 0x50] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _08127CB0 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _08127CC0 adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] movs r0, 0x3 ldrb r1, [r4, 0xC] ands r1, r0 lsls r1, 2 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] movs r0, 0x16 strh r0, [r2, 0x2E] _08127CB0: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08127CB8: .4byte gUnknown_0202FF84 _08127CBC: .4byte gFieldEffectObjectTemplatePointers _08127CC0: .4byte gSprites thumb_func_end sub_8127C58 thumb_func_start ash ash: @ 8127CC4 push {r4,lr} lsls r2, 16 lsrs r2, 16 ldr r4, _08127CF4 lsls r0, 16 asrs r0, 16 str r0, [r4] lsls r1, 16 asrs r1, 16 str r1, [r4, 0x4] movs r0, 0x52 str r0, [r4, 0x8] movs r0, 0x1 str r0, [r4, 0xC] str r2, [r4, 0x10] lsls r3, 16 asrs r3, 16 str r3, [r4, 0x14] movs r0, 0x7 bl FieldEffectStart pop {r4} pop {r0} bx r0 .align 2, 0 _08127CF4: .4byte gUnknown_0202FF84 thumb_func_end ash thumb_func_start oei_ash oei_ash: @ 8127CF8 push {r4,r5,lr} sub sp, 0x4 ldr r5, _08127D78 ldrh r1, [r5] mov r0, sp strh r1, [r0] ldrh r0, [r5, 0x4] mov r4, sp adds r4, 0x2 strh r0, [r4] mov r0, sp adds r1, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08127D7C ldr r0, [r0, 0x18] mov r1, sp movs r2, 0 ldrsh r1, [r1, r2] movs r3, 0 ldrsh r2, [r4, r3] ldrb r3, [r5, 0x8] bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _08127D6E lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _08127D80 adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] movs r0, 0x3 ldrb r1, [r5, 0xC] ands r1, r0 lsls r1, 2 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] ldr r0, [r5] strh r0, [r2, 0x30] ldr r0, [r5, 0x4] strh r0, [r2, 0x32] ldr r0, [r5, 0x10] strh r0, [r2, 0x34] ldr r0, [r5, 0x14] strh r0, [r2, 0x36] _08127D6E: movs r0, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08127D78: .4byte gUnknown_0202FF84 _08127D7C: .4byte gFieldEffectObjectTemplatePointers _08127D80: .4byte gSprites thumb_func_end oei_ash thumb_func_start sub_8127D84 sub_8127D84: @ 8127D84 push {lr} ldr r2, _08127D9C movs r3, 0x2E ldrsh r1, [r0, r3] lsls r1, 2 adds r1, r2 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _08127D9C: .4byte gUnknown_08401E48 thumb_func_end sub_8127D84 thumb_func_start sub_8127DA0 sub_8127DA0: @ 8127DA0 push {lr} adds r3, r0, 0 adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] subs r2, 0x12 ldrb r0, [r2] movs r1, 0x40 orrs r0, r1 strb r0, [r2] ldrh r0, [r3, 0x36] subs r0, 0x1 strh r0, [r3, 0x36] lsls r0, 16 cmp r0, 0 bne _08127DCA movs r0, 0x1 strh r0, [r3, 0x2E] _08127DCA: pop {r0} bx r0 thumb_func_end sub_8127DA0 thumb_func_start sub_8127DD0 sub_8127DD0: @ 8127DD0 push {r4,lr} adds r4, r0, 0 adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] subs r2, 0x12 ldrb r1, [r2] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2] movs r1, 0x30 ldrsh r0, [r4, r1] movs r2, 0x32 ldrsh r1, [r4, r2] ldrh r2, [r4, 0x34] bl MapGridSetMetatileIdAt movs r1, 0x30 ldrsh r0, [r4, r1] movs r2, 0x32 ldrsh r1, [r4, r2] bl CurrentMapDrawMetatileAt ldr r2, _08127E28 ldr r0, _08127E2C ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] movs r0, 0x2 strh r0, [r4, 0x2E] pop {r4} pop {r0} bx r0 .align 2, 0 _08127E28: .4byte gMapObjects _08127E2C: .4byte gPlayerAvatar thumb_func_end sub_8127DD0 thumb_func_start sub_8127E30 sub_8127E30: @ 8127E30 push {r4,lr} adds r4, r0, 0 movs r1, 0 bl sub_806487C adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08127E50 adds r0, r4, 0 movs r1, 0x7 bl FieldEffectStop _08127E50: pop {r4} pop {r0} bx r0 thumb_func_end sub_8127E30 thumb_func_start sub_8127E58 sub_8127E58: @ 8127E58 push {r4,r5,lr} ldr r4, _08127EC0 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08127EC4 ldr r0, [r0, 0x1C] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] movs r3, 0x96 bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 cmp r0, 0x40 beq _08127EB2 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _08127EC8 adds r1, r0 adds r3, r1, 0 adds r3, 0x3E ldrb r0, [r3] movs r2, 0x2 orrs r0, r2 strb r0, [r3] ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 strb r0, [r1, 0x5] ldr r0, [r4, 0x8] strh r0, [r1, 0x32] ldr r0, _08127ECC strh r0, [r1, 0x34] movs r0, 0x1 negs r0, r0 strh r0, [r1, 0x3A] strh r0, [r1, 0x3C] _08127EB2: movs r0, 0x8 bl FieldEffectActiveListRemove adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08127EC0: .4byte gUnknown_0202FF84 _08127EC4: .4byte gFieldEffectObjectTemplatePointers _08127EC8: .4byte gSprites _08127ECC: .4byte 0x0000ffff thumb_func_end sub_8127E58 thumb_func_start sub_8127ED0 sub_8127ED0: @ 8127ED0 lsls r0, 24 lsrs r0, 24 lsls r1, 24 ldr r3, _08127EF8 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r3 ldrh r0, [r2, 0x2E] movs r3, 0x10 negs r3, r3 ands r3, r0 movs r0, 0xF0 lsls r0, 20 ands r0, r1 lsrs r0, 24 orrs r0, r3 strh r0, [r2, 0x2E] bx lr .align 2, 0 _08127EF8: .4byte gSprites thumb_func_end sub_8127ED0 thumb_func_start sub_8127EFC sub_8127EFC: @ 8127EFC lsls r0, 24 lsrs r0, 24 lsls r1, 24 ldr r3, _08127F24 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r3 ldrh r0, [r2, 0x2E] movs r3, 0xF1 negs r3, r3 ands r3, r0 movs r0, 0xF0 lsls r0, 20 ands r0, r1 lsrs r0, 20 orrs r3, r0 strh r3, [r2, 0x2E] bx lr .align 2, 0 _08127F24: .4byte gSprites thumb_func_end sub_8127EFC thumb_func_start sub_8127F28 sub_8127F28: @ 8127F28 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 ldr r4, _08127F54 lsls r3, r0, 4 adds r3, r0 lsls r3, 2 adds r3, r4 ldrh r0, [r3, 0x2E] ldr r4, _08127F58 ands r4, r0 movs r0, 0xF0 lsls r0, 20 ands r0, r1 lsrs r0, 16 orrs r4, r0 strh r4, [r3, 0x2E] strh r2, [r3, 0x30] pop {r4} pop {r0} bx r0 .align 2, 0 _08127F54: .4byte gSprites _08127F58: .4byte 0xfffff0ff thumb_func_end sub_8127F28 thumb_func_start sub_8127F5C sub_8127F5C: @ 8127F5C ldrh r1, [r0, 0x2E] movs r0, 0xF ands r0, r1 bx lr thumb_func_end sub_8127F5C thumb_func_start sub_8127F64 sub_8127F64: @ 8127F64 ldrh r1, [r0, 0x2E] movs r0, 0xF0 ands r0, r1 lsrs r0, 4 bx lr thumb_func_end sub_8127F64 thumb_func_start sub_8127F70 sub_8127F70: @ 8127F70 ldrh r1, [r0, 0x2E] movs r0, 0xF0 lsls r0, 4 ands r0, r1 lsrs r0, 8 bx lr thumb_func_end sub_8127F70 thumb_func_start sub_8127F7C sub_8127F7C: @ 8127F7C push {r4-r6,lr} adds r6, r0, 0 movs r1, 0x32 ldrsh r0, [r6, r1] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _08127FCC adds r4, r0 ldrb r0, [r4, 0x4] lsls r5, r0, 4 adds r5, r0 lsls r5, 2 ldr r0, _08127FD0 adds r5, r0 adds r0, r4, 0 adds r1, r6, 0 bl sub_8127FD4 adds r0, r4, 0 adds r1, r6, 0 bl sub_812800C adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_81280A0 ldrb r0, [r5, 0x5] movs r1, 0xC ands r1, r0 ldrb r2, [r6, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r6, 0x5] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08127FCC: .4byte gMapObjects _08127FD0: .4byte gSprites thumb_func_end sub_8127F7C thumb_func_start sub_8127FD4 sub_8127FD4: @ 8127FD4 push {r4,r5,lr} sub sp, 0x8 adds r5, r0, 0 adds r4, r1, 0 ldr r1, _08128008 mov r0, sp movs r2, 0x5 bl memcpy adds r0, r4, 0 bl sub_8127F64 lsls r0, 24 cmp r0, 0 bne _08128000 ldrb r0, [r5, 0x18] lsrs r0, 4 add r0, sp ldrb r1, [r0] adds r0, r4, 0 bl StartSpriteAnimIfDifferent _08128000: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08128008: .4byte gUnknown_08401E54 thumb_func_end sub_8127FD4 thumb_func_start sub_812800C sub_812800C: @ 812800C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r1, 0 ldrh r2, [r0, 0x10] mov r1, sp strh r2, [r1] ldrh r1, [r0, 0x12] mov r0, sp adds r0, 0x2 strh r1, [r0] movs r2, 0x26 ldrsh r3, [r4, r2] mov r8, r0 cmp r3, 0 bne _08128094 mov r0, sp movs r5, 0 ldrsh r2, [r0, r5] movs r5, 0x3A ldrsh r0, [r4, r5] cmp r2, r0 bne _08128048 lsls r0, r1, 16 asrs r0, 16 movs r5, 0x3C ldrsh r1, [r4, r5] cmp r0, r1 beq _08128094 _08128048: strh r3, [r4, 0x38] strh r2, [r4, 0x3A] mov r1, r8 movs r2, 0 ldrsh r0, [r1, r2] strh r0, [r4, 0x3C] movs r5, 0x1 mov r7, r8 mov r6, sp _0812805A: adds r0, r5, 0 mov r1, sp adds r2, r7, 0 bl MoveCoords movs r1, 0 ldrsh r0, [r6, r1] movs r2, 0 ldrsh r1, [r7, r2] bl MapGridGetZCoordAt lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _08128080 ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] b _08128094 _08128080: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r4, 0x3A] strh r0, [r6] ldrh r0, [r4, 0x3C] mov r1, r8 strh r0, [r1] cmp r5, 0x4 bls _0812805A _08128094: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_812800C thumb_func_start sub_81280A0 sub_81280A0: @ 81280A0 push {r4,r5,lr} sub sp, 0x4 adds r5, r1, 0 adds r4, r2, 0 ldr r1, _08128104 mov r0, sp movs r2, 0x4 bl memcpy adds r0, r4, 0 bl sub_8127F5C lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 cmp r2, 0 beq _0812811A ldrh r1, [r4, 0x36] adds r1, 0x1 strh r1, [r4, 0x36] movs r3, 0x38 ldrsh r0, [r4, r3] lsls r0, 1 add r0, sp ldrh r0, [r0] ands r1, r0 cmp r1, 0 bne _081280E0 ldrh r0, [r4, 0x34] ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] _081280E0: ldrh r1, [r4, 0x36] movs r0, 0xF ands r0, r1 cmp r0, 0 bne _081280F0 ldrh r0, [r4, 0x34] negs r0, r0 strh r0, [r4, 0x34] _081280F0: cmp r2, 0x2 beq _0812811A adds r0, r4, 0 bl sub_8127F70 lsls r0, 24 cmp r0, 0 bne _08128108 ldrh r0, [r4, 0x26] b _0812810E .align 2, 0 _08128104: .4byte gUnknown_08401E5A _08128108: ldrh r0, [r4, 0x26] ldrh r3, [r4, 0x30] adds r0, r3 _0812810E: strh r0, [r5, 0x26] ldrh r0, [r5, 0x20] strh r0, [r4, 0x20] ldrh r0, [r5, 0x22] adds r0, 0x8 strh r0, [r4, 0x22] _0812811A: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81280A0 thumb_func_start sub_8128124 sub_8128124: @ 8128124 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _08128168 movs r1, 0 movs r2, 0 movs r3, 0xFF bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r1, _0812816C adds r2, r1 ldr r1, _08128170 str r1, [r2, 0x1C] movs r1, 0x3E adds r1, r2 mov r12, r1 ldrb r1, [r1] movs r3, 0x4 orrs r1, r3 mov r3, r12 strb r1, [r3] strh r4, [r2, 0x2E] movs r1, 0x1 strh r1, [r2, 0x30] pop {r4} pop {r1} bx r1 .align 2, 0 _08128168: .4byte gDummySpriteTemplate _0812816C: .4byte gSprites _08128170: .4byte sub_8128174 thumb_func_end sub_8128124 thumb_func_start sub_8128174 sub_8128174: @ 8128174 push {lr} adds r2, r0, 0 movs r0, 0x2E ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081281B0 adds r3, r0, r1 ldrh r1, [r2, 0x32] adds r0, r1, 0x1 strh r0, [r2, 0x32] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _0812819C ldrh r0, [r2, 0x30] ldrh r1, [r3, 0x26] adds r0, r1 strh r0, [r3, 0x26] _0812819C: ldrh r1, [r2, 0x32] movs r0, 0xF ands r0, r1 cmp r0, 0 bne _081281AC ldrh r0, [r2, 0x30] negs r0, r0 strh r0, [r2, 0x30] _081281AC: pop {r0} bx r0 .align 2, 0 _081281B0: .4byte gSprites thumb_func_end sub_8128174 thumb_func_start sub_81281B4 sub_81281B4: @ 81281B4 push {r4,lr} ldr r4, _08128218 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0xC bl sub_8060470 ldr r0, _0812821C ldr r0, [r0, 0x24] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _08128210 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _08128220 adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] movs r0, 0x3 ldrb r1, [r4, 0xC] ands r1, r0 lsls r1, 2 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] ldr r0, [r4, 0x8] strh r0, [r2, 0x2E] movs r0, 0xA strh r0, [r2, 0x30] _08128210: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08128218: .4byte gUnknown_0202FF84 _0812821C: .4byte gFieldEffectObjectTemplatePointers _08128220: .4byte gSprites thumb_func_end sub_81281B4 thumb_func_start sub_8128224 sub_8128224: @ 8128224 push {r4-r7,lr} ldr r7, _081282D0 ldrb r0, [r7] ldrb r1, [r7, 0x4] ldrb r2, [r7, 0x8] bl GetFieldObjectIdByLocalIdAndMap lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _081282D4 adds r6, r1, r0 ldr r0, _081282D8 ldr r0, [r0, 0x74] movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x40 beq _081282C8 ldrb r0, [r6, 0x5] bl GetFieldObjectGraphicsInfo adds r5, r0, 0 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r4, _081282DC adds r0, r4 adds r3, r0, 0 adds r3, 0x3E ldrb r1, [r3] movs r2, 0x2 orrs r1, r2 strb r1, [r3] ldrb r2, [r6, 0x4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldrb r1, [r1, 0x5] movs r2, 0xC ands r2, r1 ldrb r3, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r3 orrs r1, r2 strb r1, [r0, 0x5] ldr r1, [r7] strh r1, [r0, 0x2E] ldr r1, [r7, 0x4] strh r1, [r0, 0x30] ldr r1, [r7, 0x8] strh r1, [r0, 0x32] ldrb r2, [r6, 0x4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldrh r1, [r1, 0x20] strh r1, [r0, 0x34] ldrb r2, [r6, 0x4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldrh r1, [r1, 0x22] strh r1, [r0, 0x36] ldrh r1, [r5, 0xA] lsls r1, 16 asrs r1, 17 subs r1, 0x2 strh r1, [r0, 0x26] movs r1, 0x2 bl SeekSpriteAnim _081282C8: movs r0, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081282D0: .4byte gUnknown_0202FF84 _081282D4: .4byte gMapObjects _081282D8: .4byte gFieldEffectObjectTemplatePointers _081282DC: .4byte gSprites thumb_func_end sub_8128224 thumb_func_start sub_81282E0 sub_81282E0: @ 81282E0 push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x30] lsls r1, 24 lsrs r1, 24 ldrh r2, [r4, 0x32] lsls r2, 24 lsrs r2, 24 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _0812831A ldr r2, _08128324 mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r1, r0, r2 ldrb r0, [r1, 0x2] lsls r0, 27 cmp r0, 0 blt _08128328 _0812831A: adds r0, r4, 0 movs r1, 0x27 bl FieldEffectStop b _0812839A .align 2, 0 _08128324: .4byte gMapObjects _08128328: ldr r2, _081283A4 ldrb r1, [r1, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r5, [r0, 0x22] ldrh r6, [r0, 0x20] movs r2, 0x20 ldrsh r1, [r0, r2] movs r2, 0x34 ldrsh r0, [r4, r2] cmp r1, r0 bne _08128350 lsls r0, r5, 16 asrs r0, 16 movs r2, 0x36 ldrsh r1, [r4, r2] cmp r0, r1 beq _0812836A _08128350: strh r6, [r4, 0x34] strh r5, [r4, 0x36] adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0812836A adds r0, r4, 0 movs r1, 0 bl StartSpriteAnim _0812836A: strh r6, [r4, 0x20] strh r5, [r4, 0x22] ldr r3, _081283A4 ldr r2, _081283A8 mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x43 ldrb r0, [r0] adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] adds r0, r4, 0 movs r1, 0 bl sub_806487C _0812839A: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081283A4: .4byte gSprites _081283A8: .4byte gMapObjects thumb_func_end sub_81282E0 thumb_func_start sub_81283AC sub_81283AC: @ 81283AC push {r4,lr} ldr r4, _08128404 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0 bl sub_8060470 ldr r0, _08128408 adds r0, 0x88 ldr r0, [r0] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] movs r3, 0x52 bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _081283FC lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _0812840C adds r1, r0 adds r3, r1, 0 adds r3, 0x3E ldrb r0, [r3] movs r2, 0x2 orrs r0, r2 strb r0, [r3] ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 movs r2, 0x4 orrs r0, r2 strb r0, [r1, 0x5] _081283FC: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08128404: .4byte gUnknown_0202FF84 _08128408: .4byte gFieldEffectObjectTemplatePointers _0812840C: .4byte gSprites thumb_func_end sub_81283AC thumb_func_start sub_8128410 sub_8128410: @ 8128410 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x80 movs r1, 0x80 lsls r1, 1 ands r0, r1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 24 ldrh r1, [r4, 0x22] subs r1, r0 strh r1, [r4, 0x22] adds r0, r4, 0 movs r1, 0 bl sub_806487C ldrh r1, [r4, 0x3E] ldr r0, _0812844C ands r0, r1 cmp r0, 0 beq _08128444 adds r0, r4, 0 movs r1, 0x35 bl FieldEffectStop _08128444: pop {r4} pop {r0} bx r0 .align 2, 0 _0812844C: .4byte 0x00001004 thumb_func_end sub_8128410 thumb_func_start sub_8128450 sub_8128450: @ 8128450 push {r4,lr} ldr r4, _081284B8 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x4 bl sub_8060470 ldr r0, _081284BC ldr r0, [r0, 0x58] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _081284B0 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _081284C0 adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] movs r0, 0x3 ldrb r1, [r4, 0xC] ands r1, r0 lsls r1, 2 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 movs r1, 0xF ands r0, r1 movs r1, 0x50 orrs r0, r1 strb r0, [r2, 0x5] movs r0, 0x17 strh r0, [r2, 0x2E] _081284B0: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _081284B8: .4byte gUnknown_0202FF84 _081284BC: .4byte gFieldEffectObjectTemplatePointers _081284C0: .4byte gSprites thumb_func_end sub_8128450 thumb_func_start ShowTreeDisguiseFieldEffect ShowTreeDisguiseFieldEffect: @ 81284C4 push {lr} movs r0, 0x1C movs r1, 0x18 movs r2, 0x4 bl ShowDisguiseFieldEffect pop {r1} bx r1 thumb_func_end ShowTreeDisguiseFieldEffect thumb_func_start ShowMountainDisguiseFieldEffect ShowMountainDisguiseFieldEffect: @ 81284D4 push {lr} movs r0, 0x1D movs r1, 0x19 movs r2, 0x3 bl ShowDisguiseFieldEffect pop {r1} bx r1 thumb_func_end ShowMountainDisguiseFieldEffect thumb_func_start ShowSandDisguiseFieldEffect ShowSandDisguiseFieldEffect: @ 81284E4 push {lr} movs r0, 0x24 movs r1, 0x1C movs r2, 0x2 bl ShowDisguiseFieldEffect pop {r1} bx r1 thumb_func_end ShowSandDisguiseFieldEffect thumb_func_start ShowDisguiseFieldEffect ShowDisguiseFieldEffect: @ 81284F4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 mov r8, r4 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r7, r2, 24 ldr r5, _08128528 ldrb r0, [r5] ldrb r1, [r5, 0x4] ldrb r2, [r5, 0x8] mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 beq _0812852C adds r0, r4, 0 bl FieldEffectActiveListRemove movs r0, 0x40 b _08128598 .align 2, 0 _08128528: .4byte gUnknown_0202FF84 _0812852C: ldr r1, _081285A4 lsls r0, r6, 2 adds r0, r1 ldr r0, [r0] movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSpriteAtEnd mov r1, sp strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _08128594 mov r0, sp ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _081285A8 adds r2, r0 movs r0, 0x3E adds r0, r2 mov r12, r0 ldrb r3, [r0] lsls r1, r3, 30 lsrs r1, 31 adds r1, 0x1 movs r0, 0x1 ands r1, r0 lsls r1, 1 movs r0, 0x3 negs r0, r0 ands r0, r3 orrs r0, r1 mov r1, r12 strb r0, [r1] lsls r3, r7, 4 ldrb r1, [r2, 0x5] movs r0, 0xF ands r0, r1 orrs r0, r3 strb r0, [r2, 0x5] mov r0, r8 strh r0, [r2, 0x30] ldr r0, [r5] strh r0, [r2, 0x32] ldr r0, [r5, 0x4] strh r0, [r2, 0x34] ldr r0, [r5, 0x8] strh r0, [r2, 0x36] _08128594: mov r0, sp ldrb r0, [r0] _08128598: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081285A4: .4byte gFieldEffectObjectTemplatePointers _081285A8: .4byte gSprites thumb_func_end ShowDisguiseFieldEffect thumb_func_start sub_81285AC sub_81285AC: @ 81285AC push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 ldrh r0, [r5, 0x32] lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x34] lsls r1, 24 lsrs r1, 24 ldrh r2, [r5, 0x36] lsls r2, 24 lsrs r2, 24 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 beq _081285DC ldrh r1, [r5, 0x30] lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl FieldEffectStop _081285DC: ldr r4, _08128694 mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x5] bl GetFieldObjectGraphicsInfo mov r1, sp ldrb r2, [r1] lsls r1, r2, 3 adds r1, r2 lsls r1, 2 adds r1, r4 ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 ldr r1, _08128698 adds r2, r1 adds r1, r2, 0 adds r1, 0x3E ldrb r1, [r1] movs r3, 0x3E adds r3, r5 mov r12, r3 movs r3, 0x4 ands r3, r1 mov r1, r12 ldrb r4, [r1] movs r1, 0x5 negs r1, r1 ands r1, r4 orrs r1, r3 mov r3, r12 strb r1, [r3] ldrh r1, [r2, 0x20] strh r1, [r5, 0x20] ldrh r0, [r0, 0xA] lsls r0, 16 asrs r0, 17 ldrh r1, [r2, 0x22] adds r0, r1 subs r0, 0x10 strh r0, [r5, 0x22] adds r2, 0x43 ldrb r0, [r2] subs r0, 0x1 adds r1, r5, 0 adds r1, 0x43 strb r0, [r1] ldrh r1, [r5, 0x2E] movs r2, 0x2E ldrsh r0, [r5, r2] cmp r0, 0x1 bne _0812865C adds r0, r1, 0x1 strh r0, [r5, 0x2E] adds r0, r5, 0 movs r1, 0x1 bl StartSpriteAnim _0812865C: movs r3, 0x2E ldrsh r0, [r5, r3] ldrh r2, [r5, 0x2E] cmp r0, 0x2 bne _08128678 adds r0, r5, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08128678 movs r0, 0x1 strh r0, [r5, 0x3C] _08128678: lsls r0, r2, 16 asrs r0, 16 cmp r0, 0x3 bne _0812868C ldrh r1, [r5, 0x30] lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl FieldEffectStop _0812868C: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08128694: .4byte gMapObjects _08128698: .4byte gSprites thumb_func_end sub_81285AC thumb_func_start sub_812869C sub_812869C: @ 812869C push {lr} adds r1, r0, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0x1 bne _081286BA ldr r2, _081286C0 ldrb r1, [r1, 0x1A] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x2E] adds r1, 0x1 strh r1, [r0, 0x2E] _081286BA: pop {r0} bx r0 .align 2, 0 _081286C0: .4byte gSprites thumb_func_end sub_812869C thumb_func_start sub_81286C4 sub_81286C4: @ 81286C4 push {lr} adds r2, r0, 0 adds r2, 0x21 ldrb r1, [r2] cmp r1, 0x2 beq _081286FA cmp r1, 0 beq _081286FA ldrb r1, [r0, 0x1A] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081286EC adds r1, r0, r1 movs r3, 0x3C ldrsh r0, [r1, r3] cmp r0, 0 bne _081286F0 movs r0, 0 b _081286FC .align 2, 0 _081286EC: .4byte gSprites _081286F0: movs r0, 0x2 strb r0, [r2] ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] _081286FA: movs r0, 0x1 _081286FC: pop {r1} bx r1 thumb_func_end sub_81286C4 thumb_func_start sub_8128700 sub_8128700: @ 8128700 push {r4,lr} ldr r4, _08128768 ldr r0, [r4] adds r0, 0x7 str r0, [r4] ldr r0, [r4, 0x4] adds r0, 0x7 str r0, [r4, 0x4] adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _0812876C adds r0, 0x8C ldr r0, [r0] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] movs r3, 0x52 bl CreateSpriteAtEnd lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _08128760 ldr r0, _08128770 lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r0 movs r0, 0x3 ldrb r2, [r4, 0x8] ands r2, r0 lsls r2, 2 ldrb r3, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r2 strb r0, [r1, 0x5] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x2 orrs r0, r2 strb r0, [r1] _08128760: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08128768: .4byte gUnknown_0202FF84 _0812876C: .4byte gFieldEffectObjectTemplatePointers _08128770: .4byte gSprites thumb_func_end sub_8128700 thumb_func_start sub_8128774 sub_8128774: @ 8128774 push {lr} adds r2, r0, 0 movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0 bne _081287A8 adds r0, r2, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _081287A0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 strb r0, [r3] ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] _081287A0: movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0 beq _081287BE _081287A8: ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x22 ble _081287BE adds r0, r2, 0 movs r1, 0x36 bl FieldEffectStop _081287BE: pop {r0} bx r0 thumb_func_end sub_8128774 thumb_func_start sub_81287C4 sub_81287C4: @ 81287C4 push {r4,lr} adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _081287E2 ldrh r1, [r4, 0x30] lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldEffectStop b _081287F8 _081287E2: adds r0, r4, 0 movs r1, 0 bl sub_806487C ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 movs r2, 0 bl SetObjectSubpriorityByZCoord _081287F8: pop {r4} pop {r0} bx r0 thumb_func_end sub_81287C4 thumb_func_start sub_8128800 sub_8128800: @ 8128800 push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0812881E ldrh r1, [r2, 0x2E] lsls r1, 24 lsrs r1, 24 adds r0, r2, 0 bl FieldEffectStop b _08128826 _0812881E: adds r0, r2, 0 movs r1, 0 bl sub_806487C _08128826: pop {r0} bx r0 thumb_func_end sub_8128800 thumb_func_start sub_812882C sub_812882C: @ 812882C push {r4-r7,lr} adds r6, r0, 0 adds r0, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r2, 24 lsrs r2, 24 adds r1, r6, 0 bl SetObjectSubpriorityByZCoord movs r7, 0 _08128842: lsls r0, r7, 3 adds r0, r7 lsls r0, 2 ldr r1, _081288DC adds r4, r0, r1 ldrb r0, [r4] lsls r0, 31 cmp r0, 0 beq _081288E4 ldrb r0, [r4, 0x5] bl GetFieldObjectGraphicsInfo ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081288E0 adds r5, r0, r1 adds r0, r6, 0 adds r0, 0x28 movs r2, 0 ldrsb r2, [r0, r2] ldrh r0, [r6, 0x20] adds r1, r0, r2 subs r0, r2 lsls r0, 16 lsrs r4, r0, 16 lsls r1, 16 asrs r1, 16 movs r0, 0x20 ldrsh r2, [r5, r0] cmp r1, r2 bge _081288E4 lsls r0, r4, 16 asrs r0, 16 cmp r0, r2 ble _081288E4 adds r0, r5, 0 adds r0, 0x29 movs r3, 0 ldrsb r3, [r0, r3] ldrh r2, [r5, 0x22] adds r2, r3 ldrh r4, [r5, 0x22] adds r0, r6, 0 adds r0, 0x29 movs r1, 0 ldrsb r1, [r0, r1] ldrh r0, [r6, 0x22] subs r0, r1 lsls r0, 16 asrs r0, 16 adds r3, r0, r3 lsls r2, 16 asrs r2, 16 lsls r3, 16 asrs r3, 16 cmp r2, r3 blt _081288BC cmp r2, r0 bge _081288E4 _081288BC: lsls r0, r4, 16 asrs r0, 16 cmp r0, r3 ble _081288E4 adds r2, r6, 0 adds r2, 0x43 adds r0, r5, 0 adds r0, 0x43 ldrb r1, [r0] ldrb r0, [r2] cmp r0, r1 bhi _081288E4 adds r0, r1, 0x2 strb r0, [r2] b _081288EE .align 2, 0 _081288DC: .4byte gMapObjects _081288E0: .4byte gSprites _081288E4: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0xF bls _08128842 _081288EE: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_812882C thumb_func_start sub_81288F4 sub_81288F4: @ 81288F4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, _0812893C adds r0, r4, 0 movs r1, 0 movs r2, 0x44 bl memset movs r3, 0x64 adds r2, r4, 0 movs r1, 0x3 adds r0, r2, 0 adds r0, 0x8 _08128910: strb r3, [r0] subs r0, 0x1 subs r1, 0x1 cmp r1, 0 bge _08128910 adds r3, r2, 0 adds r3, 0x41 movs r1, 0 strb r5, [r3] adds r0, r2, 0 adds r0, 0x40 strb r1, [r0] ldr r1, _08128940 ldrb r0, [r3] lsls r0, 6 adds r1, 0x18 adds r0, r1 ldr r0, [r0] str r0, [r2, 0x14] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812893C: .4byte 0x020192e4 _08128940: .4byte gUnknown_02038570 thumb_func_end sub_81288F4 thumb_func_start sub_8128944 sub_8128944: @ 8128944 push {r4-r6,lr} ldr r1, _081289A8 ldr r0, [r1, 0x14] cmp r0, 0 beq _08128974 adds r4, r1, 0 movs r5, 0 _08128952: ldr r0, [r4, 0x14] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _08128962 strb r5, [r4] bl sub_81289AC _08128962: ldr r1, [r4, 0x14] lsrs r1, 1 str r1, [r4, 0x14] ldrb r0, [r4, 0x10] adds r0, 0x1 strb r0, [r4, 0x10] strb r5, [r4, 0x4] cmp r1, 0 bne _08128952 _08128974: movs r6, 0x3 ldr r5, _081289A8 _08128978: bl Random adds r4, r0, 0 ands r4, r6 adds r3, r5, 0x5 adds r0, r4, r3 ldrb r2, [r0] movs r1, 0 ldrb r0, [r5, 0x5] cmp r2, r0 bcc _0812899C _0812898E: adds r1, 0x1 cmp r1, 0x3 bgt _0812899C adds r0, r1, r3 ldrb r0, [r0] cmp r2, r0 bcs _0812898E _0812899C: cmp r1, 0x4 bne _08128978 adds r0, r4, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _081289A8: .4byte 0x020192e4 thumb_func_end sub_8128944 thumb_func_start sub_81289AC sub_81289AC: @ 81289AC push {r4-r6,lr} ldr r1, _081289F4 ldrb r0, [r1] adds r2, r1, 0 cmp r0, 0x2 beq _08128A76 adds r4, r1, 0 ldr r5, _081289F8 ldr r6, _081289FC _081289BE: ldrb r0, [r4] cmp r0, 0x1 beq _08128A0E cmp r0, 0x1 bgt _08128A6E cmp r0, 0 bne _08128A6E ldr r1, _08128A00 ldrb r0, [r4, 0x10] lsls r0, 2 adds r0, r1 ldr r0, [r0] str r0, [r5] ldrb r1, [r4, 0x4] lsls r1, 1 adds r0, r4, 0 adds r0, 0x41 ldrb r0, [r0] lsls r0, 6 adds r1, r0 adds r1, r6 ldrh r1, [r1] adds r0, r1, 0 cmp r0, 0 bne _08128A04 strh r0, [r4, 0x2] b _08128A06 .align 2, 0 _081289F4: .4byte 0x020192e4 _081289F8: .4byte gUnknown_02039238 _081289FC: .4byte gUnknown_0203858E _08128A00: .4byte gContestAIs _08128A04: strh r1, [r4, 0x2] _08128A06: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _08128A6E _08128A0E: ldrh r1, [r1, 0x2] cmp r1, 0 beq _08128A2C ldr r1, _08128A28 ldr r0, [r5] ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 b _08128A3C .align 2, 0 _08128A28: .4byte gUnknown_08401E60 _08128A2C: adds r0, r4, 0x5 ldrb r2, [r4, 0x4] adds r0, r2 strb r1, [r0] ldrb r1, [r4, 0x9] movs r0, 0x1 orrs r0, r1 strb r0, [r4, 0x9] _08128A3C: ldr r2, _08128A5C ldrb r1, [r2, 0x9] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08128A6E ldrb r0, [r2, 0x4] adds r0, 0x1 movs r1, 0 strb r0, [r2, 0x4] lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bhi _08128A60 strb r1, [r2] b _08128A66 .align 2, 0 _08128A5C: .4byte 0x020192e4 _08128A60: ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] _08128A66: ldrb r1, [r4, 0x9] movs r0, 0xFE ands r0, r1 strb r0, [r4, 0x9] _08128A6E: adds r1, r2, 0 ldrb r0, [r1] cmp r0, 0x2 bne _081289BE _08128A76: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81289AC thumb_func_start sub_8128A7C sub_8128A7C: @ 8128A7C push {lr} lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 ldr r3, _08128AA4 ldrb r0, [r3] cmp r0, r2 beq _08128A9A _08128A8C: adds r1, 0x1 cmp r1, 0x3 bgt _08128A9A adds r0, r1, r3 ldrb r0, [r0] cmp r0, r2 bne _08128A8C _08128A9A: lsls r0, r1, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08128AA4: .4byte 0x020192d0 thumb_func_end sub_8128A7C thumb_func_start sub_8128AA8 sub_8128AA8: @ 8128AA8 push {lr} ldr r2, _08128AD0 adds r1, r2, 0x5 ldrb r0, [r2, 0x4] adds r1, r0 ldr r3, _08128AD4 ldr r0, [r3] ldrb r0, [r0, 0x1] lsls r0, 24 asrs r0, 24 ldrb r1, [r1] adds r0, r1 lsls r0, 16 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0xFF ble _08128AD8 movs r1, 0xFF b _08128ADE .align 2, 0 _08128AD0: .4byte 0x020192e4 _08128AD4: .4byte gUnknown_02039238 _08128AD8: cmp r0, 0 bge _08128ADE movs r1, 0 _08128ADE: adds r0, r2, 0x5 ldrb r2, [r2, 0x4] adds r0, r2 strb r1, [r0] ldr r0, [r3] adds r0, 0x2 str r0, [r3] pop {r0} bx r0 thumb_func_end sub_8128AA8 thumb_func_start contest_ai_get_turn contest_ai_get_turn: @ 8128AF0 ldr r1, _08128B04 adds r0, r1, 0 subs r0, 0xE0 ldrb r0, [r0, 0x1] strh r0, [r1, 0x18] ldr r1, _08128B08 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08128B04: .4byte 0x020192e4 _08128B08: .4byte gUnknown_02039238 thumb_func_end contest_ai_get_turn thumb_func_start sub_8128B0C sub_8128B0C: @ 8128B0C push {lr} bl contest_ai_get_turn ldr r0, _08128B3C movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128B40 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bge _08128B44 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128B48 .align 2, 0 _08128B3C: .4byte 0x020192e4 _08128B40: .4byte gUnknown_02039238 _08128B44: adds r0, r2, 0x5 str r0, [r3] _08128B48: pop {r0} bx r0 thumb_func_end sub_8128B0C thumb_func_start sub_8128B4C sub_8128B4C: @ 8128B4C push {lr} bl contest_ai_get_turn ldr r0, _08128B7C movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128B80 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 ble _08128B84 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128B88 .align 2, 0 _08128B7C: .4byte 0x020192e4 _08128B80: .4byte gUnknown_02039238 _08128B84: adds r0, r2, 0x5 str r0, [r3] _08128B88: pop {r0} bx r0 thumb_func_end sub_8128B4C thumb_func_start sub_8128B8C sub_8128B8C: @ 8128B8C push {lr} bl contest_ai_get_turn ldr r0, _08128BBC movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128BC0 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _08128BC4 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128BC8 .align 2, 0 _08128BBC: .4byte 0x020192e4 _08128BC0: .4byte gUnknown_02039238 _08128BC4: adds r0, r2, 0x5 str r0, [r3] _08128BC8: pop {r0} bx r0 thumb_func_end sub_8128B8C thumb_func_start sub_8128BCC sub_8128BCC: @ 8128BCC push {lr} bl contest_ai_get_turn ldr r0, _08128BFC movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128C00 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _08128C04 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128C08 .align 2, 0 _08128BFC: .4byte 0x020192e4 _08128C00: .4byte gUnknown_02039238 _08128C04: adds r0, r2, 0x5 str r0, [r3] _08128C08: pop {r0} bx r0 thumb_func_end sub_8128BCC thumb_func_start contest_ai_get_excitement contest_ai_get_excitement: @ 8128C0C ldr r1, _08128C24 adds r0, r1, 0 subs r0, 0xE0 ldrb r0, [r0, 0x13] lsls r0, 24 asrs r0, 24 strh r0, [r1, 0x18] ldr r1, _08128C28 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08128C24: .4byte 0x020192e4 _08128C28: .4byte gUnknown_02039238 thumb_func_end contest_ai_get_excitement thumb_func_start sub_8128C2C sub_8128C2C: @ 8128C2C push {lr} bl contest_ai_get_excitement ldr r0, _08128C5C movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128C60 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bge _08128C64 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128C68 .align 2, 0 _08128C5C: .4byte 0x020192e4 _08128C60: .4byte gUnknown_02039238 _08128C64: adds r0, r2, 0x5 str r0, [r3] _08128C68: pop {r0} bx r0 thumb_func_end sub_8128C2C thumb_func_start sub_8128C6C sub_8128C6C: @ 8128C6C push {lr} bl contest_ai_get_excitement ldr r0, _08128C9C movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128CA0 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 ble _08128CA4 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128CA8 .align 2, 0 _08128C9C: .4byte 0x020192e4 _08128CA0: .4byte gUnknown_02039238 _08128CA4: adds r0, r2, 0x5 str r0, [r3] _08128CA8: pop {r0} bx r0 thumb_func_end sub_8128C6C thumb_func_start sub_8128CAC sub_8128CAC: @ 8128CAC push {lr} bl contest_ai_get_excitement ldr r0, _08128CDC movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128CE0 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _08128CE4 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128CE8 .align 2, 0 _08128CDC: .4byte 0x020192e4 _08128CE0: .4byte gUnknown_02039238 _08128CE4: adds r0, r2, 0x5 str r0, [r3] _08128CE8: pop {r0} bx r0 thumb_func_end sub_8128CAC thumb_func_start sub_8128CEC sub_8128CEC: @ 8128CEC push {lr} bl contest_ai_get_excitement ldr r0, _08128D1C movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128D20 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _08128D24 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128D28 .align 2, 0 _08128D1C: .4byte 0x020192e4 _08128D20: .4byte gUnknown_02039238 _08128D24: adds r0, r2, 0x5 str r0, [r3] _08128D28: pop {r0} bx r0 thumb_func_end sub_8128CEC thumb_func_start contest_ai_get_user_order contest_ai_get_user_order: @ 8128D2C ldr r1, _08128D48 adds r2, r1, 0 adds r2, 0x41 adds r0, r1, 0 subs r0, 0x14 ldrb r2, [r2] adds r0, r2 ldrb r0, [r0] strh r0, [r1, 0x18] ldr r1, _08128D4C ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08128D48: .4byte 0x020192e4 _08128D4C: .4byte gUnknown_02039238 thumb_func_end contest_ai_get_user_order thumb_func_start sub_8128D50 sub_8128D50: @ 8128D50 push {lr} bl contest_ai_get_user_order ldr r0, _08128D80 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128D84 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bge _08128D88 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128D8C .align 2, 0 _08128D80: .4byte 0x020192e4 _08128D84: .4byte gUnknown_02039238 _08128D88: adds r0, r2, 0x5 str r0, [r3] _08128D8C: pop {r0} bx r0 thumb_func_end sub_8128D50 thumb_func_start sub_8128D90 sub_8128D90: @ 8128D90 push {lr} bl contest_ai_get_user_order ldr r0, _08128DC0 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128DC4 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 ble _08128DC8 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128DCC .align 2, 0 _08128DC0: .4byte 0x020192e4 _08128DC4: .4byte gUnknown_02039238 _08128DC8: adds r0, r2, 0x5 str r0, [r3] _08128DCC: pop {r0} bx r0 thumb_func_end sub_8128D90 thumb_func_start sub_8128DD0 sub_8128DD0: @ 8128DD0 push {lr} bl contest_ai_get_user_order ldr r0, _08128E00 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128E04 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _08128E08 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128E0C .align 2, 0 _08128E00: .4byte 0x020192e4 _08128E04: .4byte gUnknown_02039238 _08128E08: adds r0, r2, 0x5 str r0, [r3] _08128E0C: pop {r0} bx r0 thumb_func_end sub_8128DD0 thumb_func_start sub_8128E10 sub_8128E10: @ 8128E10 push {lr} bl contest_ai_get_user_order ldr r0, _08128E40 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128E44 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _08128E48 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128E4C .align 2, 0 _08128E40: .4byte 0x020192e4 _08128E44: .4byte gUnknown_02039238 _08128E48: adds r0, r2, 0x5 str r0, [r3] _08128E4C: pop {r0} bx r0 thumb_func_end sub_8128E10 thumb_func_start contest_ai_get_user_condition_maybe contest_ai_get_user_condition_maybe: @ 8128E50 push {r4,lr} ldr r4, _08128E88 adds r0, r4, 0 adds r0, 0x41 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r4, 0 subs r1, 0x84 adds r0, r1 ldrb r0, [r0, 0xD] lsls r0, 24 asrs r0, 24 movs r1, 0xA bl __divsi3 lsls r0, 24 asrs r0, 24 strh r0, [r4, 0x18] ldr r1, _08128E8C ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08128E88: .4byte 0x020192e4 _08128E8C: .4byte gUnknown_02039238 thumb_func_end contest_ai_get_user_condition_maybe thumb_func_start sub_8128E90 sub_8128E90: @ 8128E90 push {lr} bl contest_ai_get_user_condition_maybe ldr r0, _08128EC0 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128EC4 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bge _08128EC8 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128ECC .align 2, 0 _08128EC0: .4byte 0x020192e4 _08128EC4: .4byte gUnknown_02039238 _08128EC8: adds r0, r2, 0x5 str r0, [r3] _08128ECC: pop {r0} bx r0 thumb_func_end sub_8128E90 thumb_func_start sub_8128ED0 sub_8128ED0: @ 8128ED0 push {lr} bl contest_ai_get_user_condition_maybe ldr r0, _08128F00 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128F04 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 ble _08128F08 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128F0C .align 2, 0 _08128F00: .4byte 0x020192e4 _08128F04: .4byte gUnknown_02039238 _08128F08: adds r0, r2, 0x5 str r0, [r3] _08128F0C: pop {r0} bx r0 thumb_func_end sub_8128ED0 thumb_func_start sub_8128F10 sub_8128F10: @ 8128F10 push {lr} bl contest_ai_get_user_condition_maybe ldr r0, _08128F40 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128F44 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _08128F48 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128F4C .align 2, 0 _08128F40: .4byte 0x020192e4 _08128F44: .4byte gUnknown_02039238 _08128F48: adds r0, r2, 0x5 str r0, [r3] _08128F4C: pop {r0} bx r0 thumb_func_end sub_8128F10 thumb_func_start sub_8128F50 sub_8128F50: @ 8128F50 push {lr} bl contest_ai_get_user_condition_maybe ldr r0, _08128F80 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128F84 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _08128F88 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128F8C .align 2, 0 _08128F80: .4byte 0x020192e4 _08128F84: .4byte gUnknown_02039238 _08128F88: adds r0, r2, 0x5 str r0, [r3] _08128F8C: pop {r0} bx r0 thumb_func_end sub_8128F50 thumb_func_start sub_8128F90 sub_8128F90: @ 8128F90 ldr r2, _08128FB4 adds r0, r2, 0 adds r0, 0x41 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r2, 0 subs r1, 0x84 adds r0, r1 ldrh r0, [r0, 0x4] strh r0, [r2, 0x18] ldr r1, _08128FB8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08128FB4: .4byte 0x020192e4 _08128FB8: .4byte gUnknown_02039238 thumb_func_end sub_8128F90 thumb_func_start sub_8128FBC sub_8128FBC: @ 8128FBC push {r4,r5,lr} bl sub_8128F90 ldr r2, _08128FF4 ldr r4, _08128FF8 ldr r3, [r4] ldrb r1, [r3] ldrb r0, [r3, 0x1] lsls r0, 8 orrs r1, r0 movs r5, 0x18 ldrsh r0, [r2, r5] lsls r1, 16 asrs r1, 16 cmp r0, r1 bge _08128FFC ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08129000 .align 2, 0 _08128FF4: .4byte 0x020192e4 _08128FF8: .4byte gUnknown_02039238 _08128FFC: adds r0, r3, 0x6 str r0, [r4] _08129000: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8128FBC thumb_func_start sub_8129008 sub_8129008: @ 8129008 push {r4,r5,lr} bl sub_8128F90 ldr r2, _08129040 ldr r4, _08129044 ldr r3, [r4] ldrb r1, [r3] ldrb r0, [r3, 0x1] lsls r0, 8 orrs r1, r0 movs r5, 0x18 ldrsh r0, [r2, r5] lsls r1, 16 asrs r1, 16 cmp r0, r1 ble _08129048 ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0812904C .align 2, 0 _08129040: .4byte 0x020192e4 _08129044: .4byte gUnknown_02039238 _08129048: adds r0, r3, 0x6 str r0, [r4] _0812904C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8129008 thumb_func_start sub_8129054 sub_8129054: @ 8129054 push {r4,r5,lr} bl sub_8128F90 ldr r2, _0812908C ldr r4, _08129090 ldr r3, [r4] ldrb r1, [r3] ldrb r0, [r3, 0x1] lsls r0, 8 orrs r1, r0 movs r5, 0x18 ldrsh r0, [r2, r5] lsls r1, 16 asrs r1, 16 cmp r0, r1 bne _08129094 ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08129098 .align 2, 0 _0812908C: .4byte 0x020192e4 _08129090: .4byte gUnknown_02039238 _08129094: adds r0, r3, 0x6 str r0, [r4] _08129098: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8129054 thumb_func_start sub_81290A0 sub_81290A0: @ 81290A0 push {r4,r5,lr} bl sub_8128F90 ldr r2, _081290D8 ldr r4, _081290DC ldr r3, [r4] ldrb r1, [r3] ldrb r0, [r3, 0x1] lsls r0, 8 orrs r1, r0 movs r5, 0x18 ldrsh r0, [r2, r5] lsls r1, 16 asrs r1, 16 cmp r0, r1 beq _081290E0 ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _081290E4 .align 2, 0 _081290D8: .4byte 0x020192e4 _081290DC: .4byte gUnknown_02039238 _081290E0: adds r0, r3, 0x6 str r0, [r4] _081290E4: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81290A0 thumb_func_start sub_81290EC sub_81290EC: @ 81290EC ldr r2, _08129108 ldr r1, _0812910C adds r0, r2, 0 adds r0, 0x41 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r2, 0x18] ldr r1, _08129110 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08129108: .4byte 0x020192e4 _0812910C: .4byte gUnknown_02038670 _08129110: .4byte gUnknown_02039238 thumb_func_end sub_81290EC thumb_func_start sub_8129114 sub_8129114: @ 8129114 push {r4,r5,lr} bl sub_81290EC ldr r2, _0812914C ldr r4, _08129150 ldr r3, [r4] ldrb r1, [r3] ldrb r0, [r3, 0x1] lsls r0, 8 orrs r1, r0 movs r5, 0x18 ldrsh r0, [r2, r5] lsls r1, 16 asrs r1, 16 cmp r0, r1 bge _08129154 ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08129158 .align 2, 0 _0812914C: .4byte 0x020192e4 _08129150: .4byte gUnknown_02039238 _08129154: adds r0, r3, 0x6 str r0, [r4] _08129158: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8129114 thumb_func_start sub_8129160 sub_8129160: @ 8129160 push {r4,r5,lr} bl sub_81290EC ldr r2, _08129198 ldr r4, _0812919C ldr r3, [r4] ldrb r1, [r3] ldrb r0, [r3, 0x1] lsls r0, 8 orrs r1, r0 movs r5, 0x18 ldrsh r0, [r2, r5] lsls r1, 16 asrs r1, 16 cmp r0, r1 ble _081291A0 ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _081291A4 .align 2, 0 _08129198: .4byte 0x020192e4 _0812919C: .4byte gUnknown_02039238 _081291A0: adds r0, r3, 0x6 str r0, [r4] _081291A4: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8129160 thumb_func_start sub_81291AC sub_81291AC: @ 81291AC push {r4,r5,lr} bl sub_81290EC ldr r2, _081291E4 ldr r4, _081291E8 ldr r3, [r4] ldrb r1, [r3] ldrb r0, [r3, 0x1] lsls r0, 8 orrs r1, r0 movs r5, 0x18 ldrsh r0, [r2, r5] lsls r1, 16 asrs r1, 16 cmp r0, r1 bne _081291EC ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _081291F0 .align 2, 0 _081291E4: .4byte 0x020192e4 _081291E8: .4byte gUnknown_02039238 _081291EC: adds r0, r3, 0x6 str r0, [r4] _081291F0: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81291AC thumb_func_start sub_81291F8 sub_81291F8: @ 81291F8 push {r4,r5,lr} bl sub_81290EC ldr r2, _08129230 ldr r4, _08129234 ldr r3, [r4] ldrb r1, [r3] ldrb r0, [r3, 0x1] lsls r0, 8 orrs r1, r0 movs r5, 0x18 ldrsh r0, [r2, r5] lsls r1, 16 asrs r1, 16 cmp r0, r1 beq _08129238 ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0812923C .align 2, 0 _08129230: .4byte 0x020192e4 _08129234: .4byte gUnknown_02039238 _08129238: adds r0, r3, 0x6 str r0, [r4] _0812923C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81291F8 thumb_func_start contest_ai_get_contest_type contest_ai_get_contest_type: @ 8129244 ldr r1, _08129258 ldr r0, _0812925C ldrh r0, [r0] strh r0, [r1, 0x18] ldr r1, _08129260 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08129258: .4byte 0x020192e4 _0812925C: .4byte gUnknown_0203869C _08129260: .4byte gUnknown_02039238 thumb_func_end contest_ai_get_contest_type thumb_func_start sub_8129264 sub_8129264: @ 8129264 push {lr} bl contest_ai_get_contest_type ldr r0, _08129294 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08129298 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _0812929C ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081292A0 .align 2, 0 _08129294: .4byte 0x020192e4 _08129298: .4byte gUnknown_02039238 _0812929C: adds r0, r2, 0x5 str r0, [r3] _081292A0: pop {r0} bx r0 thumb_func_end sub_8129264 thumb_func_start sub_81292A4 sub_81292A4: @ 81292A4 push {lr} bl contest_ai_get_contest_type ldr r0, _081292D4 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _081292D8 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _081292DC ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081292E0 .align 2, 0 _081292D4: .4byte 0x020192e4 _081292D8: .4byte gUnknown_02039238 _081292DC: adds r0, r2, 0x5 str r0, [r3] _081292E0: pop {r0} bx r0 thumb_func_end sub_81292A4 thumb_func_start contest_ai_get_move_excitement contest_ai_get_move_excitement: @ 81292E4 push {r4,lr} ldr r2, _08129318 ldr r4, _0812931C ldrb r1, [r4, 0x4] lsls r1, 1 adds r0, r4, 0 adds r0, 0x41 ldrb r0, [r0] lsls r0, 6 adds r1, r0 adds r2, 0x1E adds r1, r2 ldrh r0, [r1] bl contest_get_move_excitement lsls r0, 24 asrs r0, 24 strh r0, [r4, 0x18] ldr r1, _08129320 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08129318: .4byte gUnknown_02038570 _0812931C: .4byte 0x020192e4 _08129320: .4byte gUnknown_02039238 thumb_func_end contest_ai_get_move_excitement thumb_func_start sub_8129324 sub_8129324: @ 8129324 push {r4,lr} bl contest_ai_get_move_excitement ldr r0, _08129354 ldr r3, _08129358 ldr r2, [r3] movs r4, 0x18 ldrsh r1, [r0, r4] movs r0, 0 ldrsb r0, [r2, r0] cmp r1, r0 bge _0812935C ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129360 .align 2, 0 _08129354: .4byte 0x020192e4 _08129358: .4byte gUnknown_02039238 _0812935C: adds r0, r2, 0x5 str r0, [r3] _08129360: pop {r4} pop {r0} bx r0 thumb_func_end sub_8129324 thumb_func_start sub_8129368 sub_8129368: @ 8129368 push {r4,lr} bl contest_ai_get_move_excitement ldr r0, _08129398 ldr r3, _0812939C ldr r2, [r3] movs r4, 0x18 ldrsh r1, [r0, r4] movs r0, 0 ldrsb r0, [r2, r0] cmp r1, r0 ble _081293A0 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081293A4 .align 2, 0 _08129398: .4byte 0x020192e4 _0812939C: .4byte gUnknown_02039238 _081293A0: adds r0, r2, 0x5 str r0, [r3] _081293A4: pop {r4} pop {r0} bx r0 thumb_func_end sub_8129368 thumb_func_start sub_81293AC sub_81293AC: @ 81293AC push {r4,lr} bl contest_ai_get_move_excitement ldr r0, _081293DC ldr r3, _081293E0 ldr r2, [r3] movs r4, 0x18 ldrsh r1, [r0, r4] movs r0, 0 ldrsb r0, [r2, r0] cmp r1, r0 bne _081293E4 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081293E8 .align 2, 0 _081293DC: .4byte 0x020192e4 _081293E0: .4byte gUnknown_02039238 _081293E4: adds r0, r2, 0x5 str r0, [r3] _081293E8: pop {r4} pop {r0} bx r0 thumb_func_end sub_81293AC thumb_func_start sub_81293F0 sub_81293F0: @ 81293F0 push {r4,lr} bl contest_ai_get_move_excitement ldr r0, _08129420 ldr r3, _08129424 ldr r2, [r3] movs r4, 0x18 ldrsh r1, [r0, r4] movs r0, 0 ldrsb r0, [r2, r0] cmp r1, r0 beq _08129428 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812942C .align 2, 0 _08129420: .4byte 0x020192e4 _08129424: .4byte gUnknown_02039238 _08129428: adds r0, r2, 0x5 str r0, [r3] _0812942C: pop {r4} pop {r0} bx r0 thumb_func_end sub_81293F0 thumb_func_start contest_ai_get_move_effect contest_ai_get_move_effect: @ 8129434 ldr r2, _08129460 ldr r3, _08129464 ldrb r1, [r3, 0x4] lsls r1, 1 adds r0, r3, 0 adds r0, 0x41 ldrb r0, [r0] lsls r0, 6 adds r1, r0 adds r2, 0x1E adds r1, r2 ldrh r0, [r1] ldr r1, _08129468 lsls r0, 3 adds r0, r1 ldrb r0, [r0] strh r0, [r3, 0x18] ldr r1, _0812946C ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08129460: .4byte gUnknown_02038570 _08129464: .4byte 0x020192e4 _08129468: .4byte gContestMoves _0812946C: .4byte gUnknown_02039238 thumb_func_end contest_ai_get_move_effect thumb_func_start sub_8129470 sub_8129470: @ 8129470 push {lr} bl contest_ai_get_move_effect ldr r0, _081294A0 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _081294A4 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _081294A8 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081294AC .align 2, 0 _081294A0: .4byte 0x020192e4 _081294A4: .4byte gUnknown_02039238 _081294A8: adds r0, r2, 0x5 str r0, [r3] _081294AC: pop {r0} bx r0 thumb_func_end sub_8129470 thumb_func_start sub_81294B0 sub_81294B0: @ 81294B0 push {lr} bl contest_ai_get_move_effect ldr r0, _081294E0 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _081294E4 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _081294E8 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081294EC .align 2, 0 _081294E0: .4byte 0x020192e4 _081294E4: .4byte gUnknown_02039238 _081294E8: adds r0, r2, 0x5 str r0, [r3] _081294EC: pop {r0} bx r0 thumb_func_end sub_81294B0 thumb_func_start contest_ai_get_move_effect_type contest_ai_get_move_effect_type: @ 81294F0 ldr r2, _08129524 ldr r3, _08129528 ldrb r1, [r3, 0x4] lsls r1, 1 adds r0, r3, 0 adds r0, 0x41 ldrb r0, [r0] lsls r0, 6 adds r1, r0 adds r2, 0x1E adds r1, r2 ldrh r0, [r1] ldr r2, _0812952C ldr r1, _08129530 lsls r0, 3 adds r0, r1 ldrb r0, [r0] lsls r0, 2 adds r0, r2 ldrb r0, [r0] strh r0, [r3, 0x18] ldr r1, _08129534 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08129524: .4byte gUnknown_02038570 _08129528: .4byte 0x020192e4 _0812952C: .4byte gContestEffects _08129530: .4byte gContestMoves _08129534: .4byte gUnknown_02039238 thumb_func_end contest_ai_get_move_effect_type thumb_func_start sub_8129538 sub_8129538: @ 8129538 push {lr} bl contest_ai_get_move_effect_type ldr r0, _08129568 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812956C ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _08129570 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129574 .align 2, 0 _08129568: .4byte 0x020192e4 _0812956C: .4byte gUnknown_02039238 _08129570: adds r0, r2, 0x5 str r0, [r3] _08129574: pop {r0} bx r0 thumb_func_end sub_8129538 thumb_func_start sub_8129578 sub_8129578: @ 8129578 push {lr} bl contest_ai_get_move_effect_type ldr r0, _081295A8 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _081295AC ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _081295B0 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081295B4 .align 2, 0 _081295A8: .4byte 0x020192e4 _081295AC: .4byte gUnknown_02039238 _081295B0: adds r0, r2, 0x5 str r0, [r3] _081295B4: pop {r0} bx r0 thumb_func_end sub_8129578 thumb_func_start contest_ai_check_move_has_highest_appeal contest_ai_check_move_has_highest_appeal: @ 81295B8 push {r4-r7,lr} ldr r2, _08129610 ldr r3, _08129614 ldrb r0, [r3, 0x4] lsls r0, 1 adds r1, r3, 0 adds r1, 0x41 ldrb r1, [r1] lsls r1, 6 adds r0, r1 adds r2, 0x1E adds r0, r2 ldrh r0, [r0] ldr r4, _08129618 ldr r5, _0812961C lsls r0, 3 adds r0, r5 ldrb r0, [r0] lsls r0, 2 adds r0, r4 ldrb r7, [r0, 0x1] movs r6, 0 ldr r0, _08129620 mov r12, r0 adds r1, r2 _081295EA: ldrh r0, [r1] cmp r0, 0 beq _08129600 lsls r0, 3 adds r0, r5 ldrb r0, [r0] lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x1] cmp r7, r0 bcc _08129608 _08129600: adds r1, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _081295EA _08129608: cmp r6, 0x4 bne _08129624 movs r0, 0x1 b _08129626 .align 2, 0 _08129610: .4byte gUnknown_02038570 _08129614: .4byte 0x020192e4 _08129618: .4byte gContestEffects _0812961C: .4byte gContestMoves _08129620: .4byte gUnknown_02039238 _08129624: movs r0, 0 _08129626: strh r0, [r3, 0x18] mov r1, r12 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r7} pop {r0} bx r0 thumb_func_end contest_ai_check_move_has_highest_appeal thumb_func_start sub_8129638 sub_8129638: @ 8129638 push {lr} bl contest_ai_check_move_has_highest_appeal ldr r0, _08129664 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 beq _0812966C ldr r3, _08129668 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129674 .align 2, 0 _08129664: .4byte 0x020192e4 _08129668: .4byte gUnknown_02039238 _0812966C: ldr r1, _08129678 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _08129674: pop {r0} bx r0 .align 2, 0 _08129678: .4byte gUnknown_02039238 thumb_func_end sub_8129638 thumb_func_start sub_812967C sub_812967C: @ 812967C push {r4-r7,lr} ldr r2, _081296D4 ldr r3, _081296D8 ldrb r0, [r3, 0x4] lsls r0, 1 adds r1, r3, 0 adds r1, 0x41 ldrb r1, [r1] lsls r1, 6 adds r0, r1 adds r2, 0x1E adds r0, r2 ldrh r0, [r0] ldr r4, _081296DC ldr r5, _081296E0 lsls r0, 3 adds r0, r5 ldrb r0, [r0] lsls r0, 2 adds r0, r4 ldrb r7, [r0, 0x2] movs r6, 0 ldr r0, _081296E4 mov r12, r0 adds r1, r2 _081296AE: ldrh r0, [r1] cmp r0, 0 beq _081296C4 lsls r0, 3 adds r0, r5 ldrb r0, [r0] lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x2] cmp r7, r0 bcc _081296CC _081296C4: adds r1, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _081296AE _081296CC: cmp r6, 0x4 bne _081296E8 movs r0, 0x1 b _081296EA .align 2, 0 _081296D4: .4byte gUnknown_02038570 _081296D8: .4byte 0x020192e4 _081296DC: .4byte gContestEffects _081296E0: .4byte gContestMoves _081296E4: .4byte gUnknown_02039238 _081296E8: movs r0, 0 _081296EA: strh r0, [r3, 0x18] mov r1, r12 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_812967C thumb_func_start sub_81296FC sub_81296FC: @ 81296FC push {lr} bl sub_812967C ldr r0, _08129728 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 beq _08129730 ldr r3, _0812972C ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129738 .align 2, 0 _08129728: .4byte 0x020192e4 _0812972C: .4byte gUnknown_02039238 _08129730: ldr r1, _0812973C ldr r0, [r1] adds r0, 0x5 str r0, [r1] _08129738: pop {r0} bx r0 .align 2, 0 _0812973C: .4byte gUnknown_02039238 thumb_func_end sub_81296FC thumb_func_start sub_8129740 sub_8129740: @ 8129740 push {r4,lr} ldr r2, _08129784 ldr r4, _08129788 ldrb r1, [r4, 0x4] lsls r1, 1 adds r0, r4, 0 adds r0, 0x41 ldrb r0, [r0] lsls r0, 6 adds r1, r0 adds r2, 0x1E adds r1, r2 ldrh r0, [r1] ldr r2, _0812978C ldr r1, _08129790 lsls r0, 3 adds r0, r1 ldrb r0, [r0] lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] movs r1, 0xA bl __udivsi3 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x18] ldr r1, _08129794 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08129784: .4byte gUnknown_02038570 _08129788: .4byte 0x020192e4 _0812978C: .4byte gContestEffects _08129790: .4byte gContestMoves _08129794: .4byte gUnknown_02039238 thumb_func_end sub_8129740 thumb_func_start sub_8129798 sub_8129798: @ 8129798 push {lr} bl sub_8129740 ldr r0, _081297C8 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _081297CC ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bge _081297D0 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081297D4 .align 2, 0 _081297C8: .4byte 0x020192e4 _081297CC: .4byte gUnknown_02039238 _081297D0: adds r0, r2, 0x5 str r0, [r3] _081297D4: pop {r0} bx r0 thumb_func_end sub_8129798 thumb_func_start sub_81297D8 sub_81297D8: @ 81297D8 push {lr} bl sub_8129740 ldr r0, _08129808 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812980C ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 ble _08129810 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129814 .align 2, 0 _08129808: .4byte 0x020192e4 _0812980C: .4byte gUnknown_02039238 _08129810: adds r0, r2, 0x5 str r0, [r3] _08129814: pop {r0} bx r0 thumb_func_end sub_81297D8 thumb_func_start sub_8129818 sub_8129818: @ 8129818 push {lr} bl sub_8129740 ldr r0, _08129848 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812984C ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _08129850 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129854 .align 2, 0 _08129848: .4byte 0x020192e4 _0812984C: .4byte gUnknown_02039238 _08129850: adds r0, r2, 0x5 str r0, [r3] _08129854: pop {r0} bx r0 thumb_func_end sub_8129818 thumb_func_start sub_8129858 sub_8129858: @ 8129858 push {lr} bl sub_8129740 ldr r0, _08129888 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812988C ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _08129890 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129894 .align 2, 0 _08129888: .4byte 0x020192e4 _0812988C: .4byte gUnknown_02039238 _08129890: adds r0, r2, 0x5 str r0, [r3] _08129894: pop {r0} bx r0 thumb_func_end sub_8129858 thumb_func_start sub_8129898 sub_8129898: @ 8129898 push {r4,lr} ldr r2, _081298DC ldr r4, _081298E0 ldrb r1, [r4, 0x4] lsls r1, 1 adds r0, r4, 0 adds r0, 0x41 ldrb r0, [r0] lsls r0, 6 adds r1, r0 adds r2, 0x1E adds r1, r2 ldrh r0, [r1] ldr r2, _081298E4 ldr r1, _081298E8 lsls r0, 3 adds r0, r1 ldrb r0, [r0] lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x2] movs r1, 0xA bl __udivsi3 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x18] ldr r1, _081298EC ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _081298DC: .4byte gUnknown_02038570 _081298E0: .4byte 0x020192e4 _081298E4: .4byte gContestEffects _081298E8: .4byte gContestMoves _081298EC: .4byte gUnknown_02039238 thumb_func_end sub_8129898 thumb_func_start sub_81298F0 sub_81298F0: @ 81298F0 push {lr} bl sub_8129898 ldr r0, _08129920 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08129924 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bge _08129928 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812992C .align 2, 0 _08129920: .4byte 0x020192e4 _08129924: .4byte gUnknown_02039238 _08129928: adds r0, r2, 0x5 str r0, [r3] _0812992C: pop {r0} bx r0 thumb_func_end sub_81298F0 thumb_func_start sub_8129930 sub_8129930: @ 8129930 push {lr} bl sub_8129898 ldr r0, _08129960 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08129964 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 ble _08129968 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812996C .align 2, 0 _08129960: .4byte 0x020192e4 _08129964: .4byte gUnknown_02039238 _08129968: adds r0, r2, 0x5 str r0, [r3] _0812996C: pop {r0} bx r0 thumb_func_end sub_8129930 thumb_func_start sub_8129970 sub_8129970: @ 8129970 push {lr} bl sub_8129898 ldr r0, _081299A0 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _081299A4 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _081299A8 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081299AC .align 2, 0 _081299A0: .4byte 0x020192e4 _081299A4: .4byte gUnknown_02039238 _081299A8: adds r0, r2, 0x5 str r0, [r3] _081299AC: pop {r0} bx r0 thumb_func_end sub_8129970 thumb_func_start sub_81299B0 sub_81299B0: @ 81299B0 push {lr} bl sub_8129898 ldr r0, _081299E0 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _081299E4 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _081299E8 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081299EC .align 2, 0 _081299E0: .4byte 0x020192e4 _081299E4: .4byte gUnknown_02039238 _081299E8: adds r0, r2, 0x5 str r0, [r3] _081299EC: pop {r0} bx r0 thumb_func_end sub_81299B0 thumb_func_start contest_ai_get_move_used_count contest_ai_get_move_used_count: @ 81299F0 push {r4,lr} ldr r3, _08129A20 ldr r4, _08129A24 ldrb r0, [r4, 0x4] lsls r0, 1 adds r1, r4, 0 adds r1, 0x41 ldrb r2, [r1] lsls r1, r2, 6 adds r0, r1 adds r3, 0x1E adds r0, r3 ldrh r3, [r0] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r1, r4, 0 subs r1, 0x84 adds r0, r1 ldrh r1, [r0, 0x8] cmp r3, r1 beq _08129A28 movs r0, 0 b _08129A30 .align 2, 0 _08129A20: .4byte gUnknown_02038570 _08129A24: .4byte 0x020192e4 _08129A28: ldrb r0, [r0, 0xB] lsls r0, 25 lsrs r0, 29 adds r0, 0x1 _08129A30: strh r0, [r4, 0x18] ldr r1, _08129A40 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08129A40: .4byte gUnknown_02039238 thumb_func_end contest_ai_get_move_used_count thumb_func_start sub_8129A44 sub_8129A44: @ 8129A44 push {lr} bl contest_ai_get_move_used_count ldr r0, _08129A74 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08129A78 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bge _08129A7C ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129A80 .align 2, 0 _08129A74: .4byte 0x020192e4 _08129A78: .4byte gUnknown_02039238 _08129A7C: adds r0, r2, 0x5 str r0, [r3] _08129A80: pop {r0} bx r0 thumb_func_end sub_8129A44 thumb_func_start sub_8129A84 sub_8129A84: @ 8129A84 push {lr} bl contest_ai_get_move_used_count ldr r0, _08129AB4 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08129AB8 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 ble _08129ABC ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129AC0 .align 2, 0 _08129AB4: .4byte 0x020192e4 _08129AB8: .4byte gUnknown_02039238 _08129ABC: adds r0, r2, 0x5 str r0, [r3] _08129AC0: pop {r0} bx r0 thumb_func_end sub_8129A84 thumb_func_start sub_8129AC4 sub_8129AC4: @ 8129AC4 push {lr} bl contest_ai_get_move_used_count ldr r0, _08129AF4 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08129AF8 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _08129AFC ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129B00 .align 2, 0 _08129AF4: .4byte 0x020192e4 _08129AF8: .4byte gUnknown_02039238 _08129AFC: adds r0, r2, 0x5 str r0, [r3] _08129B00: pop {r0} bx r0 thumb_func_end sub_8129AC4 thumb_func_start sub_8129B04 sub_8129B04: @ 8129B04 push {lr} bl contest_ai_get_move_used_count ldr r0, _08129B34 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08129B38 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _08129B3C ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129B40 .align 2, 0 _08129B34: .4byte 0x020192e4 _08129B38: .4byte gUnknown_02039238 _08129B3C: adds r0, r2, 0x5 str r0, [r3] _08129B40: pop {r0} bx r0 thumb_func_end sub_8129B04 thumb_func_start contest_ai_check_combo_starter contest_ai_check_combo_starter: @ 8129B44 push {r4-r7,lr} mov r7, r8 push {r7} movs r5, 0 ldr r3, _08129BAC ldr r2, _08129BB0 ldrb r1, [r2, 0x4] lsls r1, 1 adds r2, 0x41 ldrb r0, [r2] lsls r0, 6 adds r1, r0 adds r3, 0x1E adds r1, r3 ldrh r6, [r1] movs r4, 0 mov r8, r2 adds r7, r3, 0 _08129B68: lsls r0, r4, 1 mov r2, r8 ldrb r1, [r2] lsls r1, 6 adds r0, r1 adds r1, r0, r7 ldrh r0, [r1] cmp r0, 0 beq _08129B8A adds r1, r0, 0 adds r0, r6, 0 bl AreMovesContestCombo lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _08129B94 _08129B8A: adds r4, 0x1 cmp r4, 0x3 ble _08129B68 cmp r5, 0 beq _08129B96 _08129B94: movs r5, 0x1 _08129B96: ldr r0, _08129BB0 strh r5, [r0, 0x18] ldr r1, _08129BB4 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08129BAC: .4byte gUnknown_02038570 _08129BB0: .4byte 0x020192e4 _08129BB4: .4byte gUnknown_02039238 thumb_func_end contest_ai_check_combo_starter thumb_func_start sub_8129BB8 sub_8129BB8: @ 8129BB8 push {lr} bl contest_ai_check_combo_starter ldr r0, _08129BE4 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 beq _08129BEC ldr r3, _08129BE8 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129BF4 .align 2, 0 _08129BE4: .4byte 0x020192e4 _08129BE8: .4byte gUnknown_02039238 _08129BEC: ldr r1, _08129BF8 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _08129BF4: pop {r0} bx r0 .align 2, 0 _08129BF8: .4byte gUnknown_02039238 thumb_func_end sub_8129BB8 thumb_func_start sub_8129BFC sub_8129BFC: @ 8129BFC push {lr} bl contest_ai_check_combo_starter ldr r0, _08129C28 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 bne _08129C30 ldr r3, _08129C2C ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129C38 .align 2, 0 _08129C28: .4byte 0x020192e4 _08129C2C: .4byte gUnknown_02039238 _08129C30: ldr r1, _08129C3C ldr r0, [r1] adds r0, 0x4 str r0, [r1] _08129C38: pop {r0} bx r0 .align 2, 0 _08129C3C: .4byte gUnknown_02039238 thumb_func_end sub_8129BFC thumb_func_start contest_ai_check_combo_finisher contest_ai_check_combo_finisher: @ 8129C40 push {r4-r7,lr} mov r7, r8 push {r7} movs r5, 0 ldr r3, _08129CA8 ldr r2, _08129CAC ldrb r1, [r2, 0x4] lsls r1, 1 adds r2, 0x41 ldrb r0, [r2] lsls r0, 6 adds r1, r0 adds r3, 0x1E adds r1, r3 ldrh r6, [r1] movs r4, 0 mov r8, r2 adds r7, r3, 0 _08129C64: lsls r0, r4, 1 mov r2, r8 ldrb r1, [r2] lsls r1, 6 adds r0, r1 adds r1, r0, r7 ldrh r0, [r1] cmp r0, 0 beq _08129C84 adds r1, r6, 0 bl AreMovesContestCombo lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _08129C8E _08129C84: adds r4, 0x1 cmp r4, 0x3 ble _08129C64 cmp r5, 0 beq _08129C90 _08129C8E: movs r5, 0x1 _08129C90: ldr r0, _08129CAC strh r5, [r0, 0x18] ldr r1, _08129CB0 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08129CA8: .4byte gUnknown_02038570 _08129CAC: .4byte 0x020192e4 _08129CB0: .4byte gUnknown_02039238 thumb_func_end contest_ai_check_combo_finisher thumb_func_start sub_8129CB4 sub_8129CB4: @ 8129CB4 push {lr} bl contest_ai_check_combo_finisher ldr r0, _08129CE0 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 beq _08129CE8 ldr r3, _08129CE4 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129CF0 .align 2, 0 _08129CE0: .4byte 0x020192e4 _08129CE4: .4byte gUnknown_02039238 _08129CE8: ldr r1, _08129CF4 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _08129CF0: pop {r0} bx r0 .align 2, 0 _08129CF4: .4byte gUnknown_02039238 thumb_func_end sub_8129CB4 thumb_func_start sub_8129CF8 sub_8129CF8: @ 8129CF8 push {lr} bl contest_ai_check_combo_finisher ldr r0, _08129D24 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 bne _08129D2C ldr r3, _08129D28 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129D34 .align 2, 0 _08129D24: .4byte 0x020192e4 _08129D28: .4byte gUnknown_02039238 _08129D2C: ldr r1, _08129D38 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _08129D34: pop {r0} bx r0 .align 2, 0 _08129D38: .4byte gUnknown_02039238 thumb_func_end sub_8129CF8 thumb_func_start contest_ai_check_would_finish_combo contest_ai_check_would_finish_combo: @ 8129D3C push {r4,r5,lr} movs r5, 0 ldr r3, _08129D8C ldr r4, _08129D90 ldrb r0, [r4, 0x4] lsls r0, 1 adds r1, r4, 0 adds r1, 0x41 ldrb r2, [r1] lsls r1, r2, 6 adds r0, r1 adds r3, 0x1E adds r0, r3 ldrh r3, [r0] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r1, r4, 0 subs r1, 0x84 adds r1, r0, r1 ldrh r0, [r1, 0x8] cmp r0, 0 beq _08129D74 adds r1, r3, 0 bl AreMovesContestCombo lsls r0, 24 lsrs r5, r0, 24 _08129D74: cmp r5, 0 beq _08129D7A movs r5, 0x1 _08129D7A: strh r5, [r4, 0x18] ldr r1, _08129D94 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08129D8C: .4byte gUnknown_02038570 _08129D90: .4byte 0x020192e4 _08129D94: .4byte gUnknown_02039238 thumb_func_end contest_ai_check_would_finish_combo thumb_func_start sub_8129D98 sub_8129D98: @ 8129D98 push {lr} bl contest_ai_check_would_finish_combo ldr r0, _08129DC4 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 beq _08129DCC ldr r3, _08129DC8 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129DD4 .align 2, 0 _08129DC4: .4byte 0x020192e4 _08129DC8: .4byte gUnknown_02039238 _08129DCC: ldr r1, _08129DD8 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _08129DD4: pop {r0} bx r0 .align 2, 0 _08129DD8: .4byte gUnknown_02039238 thumb_func_end sub_8129D98 thumb_func_start sub_8129DDC sub_8129DDC: @ 8129DDC push {lr} bl contest_ai_check_would_finish_combo ldr r0, _08129E08 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 bne _08129E10 ldr r3, _08129E0C ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129E18 .align 2, 0 _08129E08: .4byte 0x020192e4 _08129E0C: .4byte gUnknown_02039238 _08129E10: ldr r1, _08129E1C ldr r0, [r1] adds r0, 0x4 str r0, [r1] _08129E18: pop {r0} bx r0 .align 2, 0 _08129E1C: .4byte gUnknown_02039238 thumb_func_end sub_8129DDC thumb_func_start contest_ai_get_condition contest_ai_get_condition: @ 8129E20 push {r4,r5,lr} ldr r4, _08129E5C ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8128A7C lsls r0, 24 lsrs r0, 24 ldr r5, _08129E60 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r0, r5, 0 subs r0, 0x84 adds r1, r0 movs r0, 0xD ldrsb r0, [r1, r0] movs r1, 0xA bl __divsi3 lsls r0, 24 asrs r0, 24 strh r0, [r5, 0x18] ldr r0, [r4] adds r0, 0x2 str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08129E5C: .4byte gUnknown_02039238 _08129E60: .4byte 0x020192e4 thumb_func_end contest_ai_get_condition thumb_func_start sub_8129E64 sub_8129E64: @ 8129E64 push {lr} bl contest_ai_get_condition ldr r0, _08129E94 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08129E98 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bge _08129E9C ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129EA0 .align 2, 0 _08129E94: .4byte 0x020192e4 _08129E98: .4byte gUnknown_02039238 _08129E9C: adds r0, r2, 0x5 str r0, [r3] _08129EA0: pop {r0} bx r0 thumb_func_end sub_8129E64 thumb_func_start sub_8129EA4 sub_8129EA4: @ 8129EA4 push {lr} bl contest_ai_get_condition ldr r0, _08129ED4 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08129ED8 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 ble _08129EDC ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129EE0 .align 2, 0 _08129ED4: .4byte 0x020192e4 _08129ED8: .4byte gUnknown_02039238 _08129EDC: adds r0, r2, 0x5 str r0, [r3] _08129EE0: pop {r0} bx r0 thumb_func_end sub_8129EA4 thumb_func_start sub_8129EE4 sub_8129EE4: @ 8129EE4 push {lr} bl contest_ai_get_condition ldr r0, _08129F14 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08129F18 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _08129F1C ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129F20 .align 2, 0 _08129F14: .4byte 0x020192e4 _08129F18: .4byte gUnknown_02039238 _08129F1C: adds r0, r2, 0x5 str r0, [r3] _08129F20: pop {r0} bx r0 thumb_func_end sub_8129EE4 thumb_func_start sub_8129F24 sub_8129F24: @ 8129F24 push {lr} bl contest_ai_get_condition ldr r0, _08129F54 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08129F58 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _08129F5C ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129F60 .align 2, 0 _08129F54: .4byte 0x020192e4 _08129F58: .4byte gUnknown_02039238 _08129F5C: adds r0, r2, 0x5 str r0, [r3] _08129F60: pop {r0} bx r0 thumb_func_end sub_8129F24 thumb_func_start contest_ai_get_used_combo_starter contest_ai_get_used_combo_starter: @ 8129F64 push {r4-r6,lr} movs r6, 0 ldr r5, _08129FAC ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8128A7C lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_80B214C lsls r0, 24 cmp r0, 0 beq _08129F9C ldr r2, _08129FB0 lsls r0, r4, 3 subs r0, r4 lsls r0, 2 ldr r1, _08129FB4 adds r0, r1 ldrh r0, [r0, 0x8] lsls r0, 3 adds r0, r2 ldrb r1, [r0, 0x2] negs r0, r1 orrs r0, r1 lsrs r6, r0, 31 _08129F9C: ldr r0, _08129FB8 strh r6, [r0, 0x18] ldr r0, [r5] adds r0, 0x2 str r0, [r5] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08129FAC: .4byte gUnknown_02039238 _08129FB0: .4byte gContestMoves _08129FB4: .4byte 0x02019260 _08129FB8: .4byte 0x020192e4 thumb_func_end contest_ai_get_used_combo_starter thumb_func_start sub_8129FBC sub_8129FBC: @ 8129FBC push {lr} bl contest_ai_get_used_combo_starter ldr r0, _08129FEC movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08129FF0 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bge _08129FF4 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129FF8 .align 2, 0 _08129FEC: .4byte 0x020192e4 _08129FF0: .4byte gUnknown_02039238 _08129FF4: adds r0, r2, 0x5 str r0, [r3] _08129FF8: pop {r0} bx r0 thumb_func_end sub_8129FBC thumb_func_start sub_8129FFC sub_8129FFC: @ 8129FFC push {lr} bl contest_ai_get_used_combo_starter ldr r0, _0812A02C movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A030 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 ble _0812A034 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A038 .align 2, 0 _0812A02C: .4byte 0x020192e4 _0812A030: .4byte gUnknown_02039238 _0812A034: adds r0, r2, 0x5 str r0, [r3] _0812A038: pop {r0} bx r0 thumb_func_end sub_8129FFC thumb_func_start sub_812A03C sub_812A03C: @ 812A03C push {lr} bl contest_ai_get_used_combo_starter ldr r0, _0812A06C movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A070 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _0812A074 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A078 .align 2, 0 _0812A06C: .4byte 0x020192e4 _0812A070: .4byte gUnknown_02039238 _0812A074: adds r0, r2, 0x5 str r0, [r3] _0812A078: pop {r0} bx r0 thumb_func_end sub_812A03C thumb_func_start sub_812A07C sub_812A07C: @ 812A07C push {lr} bl contest_ai_get_used_combo_starter ldr r0, _0812A0AC movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A0B0 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _0812A0B4 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A0B8 .align 2, 0 _0812A0AC: .4byte 0x020192e4 _0812A0B0: .4byte gUnknown_02039238 _0812A0B4: adds r0, r2, 0x5 str r0, [r3] _0812A0B8: pop {r0} bx r0 thumb_func_end sub_812A07C thumb_func_start contest_ai_check_can_participate contest_ai_check_can_participate: @ 812A0BC push {lr} ldr r0, _0812A0DC ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8128A7C lsls r0, 24 lsrs r0, 24 bl sub_80AF59C lsls r0, 24 cmp r0, 0 beq _0812A0E4 ldr r1, _0812A0E0 movs r0, 0 b _0812A0E8 .align 2, 0 _0812A0DC: .4byte gUnknown_02039238 _0812A0E0: .4byte 0x020192e4 _0812A0E4: ldr r1, _0812A0F8 movs r0, 0x1 _0812A0E8: strh r0, [r1, 0x18] ldr r1, _0812A0FC ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r0} bx r0 .align 2, 0 _0812A0F8: .4byte 0x020192e4 _0812A0FC: .4byte gUnknown_02039238 thumb_func_end contest_ai_check_can_participate thumb_func_start sub_812A100 sub_812A100: @ 812A100 push {lr} bl contest_ai_check_can_participate ldr r0, _0812A12C movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 beq _0812A134 ldr r3, _0812A130 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A13C .align 2, 0 _0812A12C: .4byte 0x020192e4 _0812A130: .4byte gUnknown_02039238 _0812A134: ldr r1, _0812A140 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812A13C: pop {r0} bx r0 .align 2, 0 _0812A140: .4byte gUnknown_02039238 thumb_func_end sub_812A100 thumb_func_start sub_812A144 sub_812A144: @ 812A144 push {lr} bl contest_ai_check_can_participate ldr r0, _0812A170 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 bne _0812A178 ldr r3, _0812A174 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A180 .align 2, 0 _0812A170: .4byte 0x020192e4 _0812A174: .4byte gUnknown_02039238 _0812A178: ldr r1, _0812A184 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812A180: pop {r0} bx r0 .align 2, 0 _0812A184: .4byte gUnknown_02039238 thumb_func_end sub_812A144 thumb_func_start contest_ai_get_val_812A188 contest_ai_get_val_812A188: @ 812A188 push {r4,lr} ldr r4, _0812A1BC ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8128A7C lsls r0, 24 lsrs r0, 24 ldr r2, _0812A1C0 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r0, r2, 0 subs r0, 0x84 adds r1, r0 ldrb r0, [r1, 0x15] lsls r0, 28 lsrs r0, 31 strh r0, [r2, 0x18] ldr r0, [r4] adds r0, 0x2 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0812A1BC: .4byte gUnknown_02039238 _0812A1C0: .4byte 0x020192e4 thumb_func_end contest_ai_get_val_812A188 thumb_func_start sub_812A1C4 sub_812A1C4: @ 812A1C4 push {lr} bl contest_ai_get_val_812A188 ldr r0, _0812A1F0 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 beq _0812A1F8 ldr r3, _0812A1F4 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A200 .align 2, 0 _0812A1F0: .4byte 0x020192e4 _0812A1F4: .4byte gUnknown_02039238 _0812A1F8: ldr r1, _0812A204 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812A200: pop {r0} bx r0 .align 2, 0 _0812A204: .4byte gUnknown_02039238 thumb_func_end sub_812A1C4 thumb_func_start sub_812A208 sub_812A208: @ 812A208 push {lr} bl contest_ai_get_val_812A188 ldr r0, _0812A234 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 bne _0812A23C ldr r3, _0812A238 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A244 .align 2, 0 _0812A234: .4byte 0x020192e4 _0812A238: .4byte gUnknown_02039238 _0812A23C: ldr r1, _0812A248 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812A244: pop {r0} bx r0 .align 2, 0 _0812A248: .4byte gUnknown_02039238 thumb_func_end sub_812A208 thumb_func_start sub_812A24C sub_812A24C: @ 812A24C push {r4,r5,lr} ldr r5, _0812A28C ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8128A7C lsls r0, 24 lsrs r0, 24 ldr r3, _0812A290 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r4, r3, 0 subs r4, 0x84 adds r1, r4 adds r0, r3, 0 adds r0, 0x41 ldrb r2, [r0] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r4 ldrh r1, [r1, 0x4] ldrh r0, [r0, 0x4] subs r1, r0 strh r1, [r3, 0x18] ldr r0, [r5] adds r0, 0x2 str r0, [r5] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812A28C: .4byte gUnknown_02039238 _0812A290: .4byte 0x020192e4 thumb_func_end sub_812A24C thumb_func_start sub_812A294 sub_812A294: @ 812A294 push {lr} bl sub_812A24C ldr r0, _0812A2C0 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 bge _0812A2C8 ldr r3, _0812A2C4 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A2D0 .align 2, 0 _0812A2C0: .4byte 0x020192e4 _0812A2C4: .4byte gUnknown_02039238 _0812A2C8: ldr r1, _0812A2D4 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812A2D0: pop {r0} bx r0 .align 2, 0 _0812A2D4: .4byte gUnknown_02039238 thumb_func_end sub_812A294 thumb_func_start sub_812A2D8 sub_812A2D8: @ 812A2D8 push {lr} bl sub_812A24C ldr r0, _0812A304 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 ble _0812A30C ldr r3, _0812A308 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A314 .align 2, 0 _0812A304: .4byte 0x020192e4 _0812A308: .4byte gUnknown_02039238 _0812A30C: ldr r1, _0812A318 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812A314: pop {r0} bx r0 .align 2, 0 _0812A318: .4byte gUnknown_02039238 thumb_func_end sub_812A2D8 thumb_func_start sub_812A31C sub_812A31C: @ 812A31C push {lr} bl sub_812A24C ldr r0, _0812A348 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 bne _0812A350 ldr r3, _0812A34C ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A358 .align 2, 0 _0812A348: .4byte 0x020192e4 _0812A34C: .4byte gUnknown_02039238 _0812A350: ldr r1, _0812A35C ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812A358: pop {r0} bx r0 .align 2, 0 _0812A35C: .4byte gUnknown_02039238 thumb_func_end sub_812A31C thumb_func_start sub_812A360 sub_812A360: @ 812A360 push {lr} bl sub_812A24C ldr r0, _0812A38C movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 beq _0812A394 ldr r3, _0812A390 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A39C .align 2, 0 _0812A38C: .4byte 0x020192e4 _0812A390: .4byte gUnknown_02039238 _0812A394: ldr r1, _0812A3A0 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812A39C: pop {r0} bx r0 .align 2, 0 _0812A3A0: .4byte gUnknown_02039238 thumb_func_end sub_812A360 thumb_func_start sub_812A3A4 sub_812A3A4: @ 812A3A4 push {r4,lr} ldr r4, _0812A3D8 ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8128A7C lsls r0, 24 ldr r3, _0812A3DC ldr r2, _0812A3E0 lsrs r0, 23 adds r0, r2 adds r1, r3, 0 adds r1, 0x41 ldrb r1, [r1] lsls r1, 1 adds r1, r2 ldrh r0, [r0] ldrh r1, [r1] subs r0, r1 strh r0, [r3, 0x18] ldr r0, [r4] adds r0, 0x2 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0812A3D8: .4byte gUnknown_02039238 _0812A3DC: .4byte 0x020192e4 _0812A3E0: .4byte gUnknown_02038670 thumb_func_end sub_812A3A4 thumb_func_start sub_812A3E4 sub_812A3E4: @ 812A3E4 push {lr} bl sub_812A3A4 ldr r0, _0812A410 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 bge _0812A418 ldr r3, _0812A414 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A420 .align 2, 0 _0812A410: .4byte 0x020192e4 _0812A414: .4byte gUnknown_02039238 _0812A418: ldr r1, _0812A424 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812A420: pop {r0} bx r0 .align 2, 0 _0812A424: .4byte gUnknown_02039238 thumb_func_end sub_812A3E4 thumb_func_start sub_812A428 sub_812A428: @ 812A428 push {lr} bl sub_812A3A4 ldr r0, _0812A454 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 ble _0812A45C ldr r3, _0812A458 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A464 .align 2, 0 _0812A454: .4byte 0x020192e4 _0812A458: .4byte gUnknown_02039238 _0812A45C: ldr r1, _0812A468 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812A464: pop {r0} bx r0 .align 2, 0 _0812A468: .4byte gUnknown_02039238 thumb_func_end sub_812A428 thumb_func_start sub_812A46C sub_812A46C: @ 812A46C push {lr} bl sub_812A3A4 ldr r0, _0812A498 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 bne _0812A4A0 ldr r3, _0812A49C ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A4A8 .align 2, 0 _0812A498: .4byte 0x020192e4 _0812A49C: .4byte gUnknown_02039238 _0812A4A0: ldr r1, _0812A4AC ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812A4A8: pop {r0} bx r0 .align 2, 0 _0812A4AC: .4byte gUnknown_02039238 thumb_func_end sub_812A46C thumb_func_start sub_812A4B0 sub_812A4B0: @ 812A4B0 push {lr} bl sub_812A3A4 ldr r0, _0812A4DC movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 beq _0812A4E4 ldr r3, _0812A4E0 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A4EC .align 2, 0 _0812A4DC: .4byte 0x020192e4 _0812A4E0: .4byte gUnknown_02039238 _0812A4E4: ldr r1, _0812A4F0 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812A4EC: pop {r0} bx r0 .align 2, 0 _0812A4F0: .4byte gUnknown_02039238 thumb_func_end sub_812A4B0 thumb_func_start sub_812A4F4 sub_812A4F4: @ 812A4F4 push {r4,lr} ldr r4, _0812A52C ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8128A7C lsls r0, 24 ldr r3, [r4] ldrb r1, [r3, 0x2] ldr r2, _0812A530 lsrs r0, 23 lsls r1, 3 adds r0, r1 adds r1, r2, 0 adds r1, 0x1C adds r0, r1 ldrh r0, [r0] adds r2, 0xE0 ldr r1, _0812A534 lsls r0, 3 adds r0, r1 ldrb r0, [r0] strh r0, [r2, 0x18] adds r3, 0x3 str r3, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0812A52C: .4byte gUnknown_02039238 _0812A530: .4byte 0x02019204 _0812A534: .4byte gContestMoves thumb_func_end sub_812A4F4 thumb_func_start sub_812A538 sub_812A538: @ 812A538 push {lr} bl sub_812A4F4 ldr r0, _0812A568 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A56C ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bge _0812A570 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A574 .align 2, 0 _0812A568: .4byte 0x020192e4 _0812A56C: .4byte gUnknown_02039238 _0812A570: adds r0, r2, 0x5 str r0, [r3] _0812A574: pop {r0} bx r0 thumb_func_end sub_812A538 thumb_func_start sub_812A578 sub_812A578: @ 812A578 push {lr} bl sub_812A4F4 ldr r0, _0812A5A8 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A5AC ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 ble _0812A5B0 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A5B4 .align 2, 0 _0812A5A8: .4byte 0x020192e4 _0812A5AC: .4byte gUnknown_02039238 _0812A5B0: adds r0, r2, 0x5 str r0, [r3] _0812A5B4: pop {r0} bx r0 thumb_func_end sub_812A578 thumb_func_start sub_812A5B8 sub_812A5B8: @ 812A5B8 push {lr} bl sub_812A4F4 ldr r0, _0812A5E8 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A5EC ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _0812A5F0 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A5F4 .align 2, 0 _0812A5E8: .4byte 0x020192e4 _0812A5EC: .4byte gUnknown_02039238 _0812A5F0: adds r0, r2, 0x5 str r0, [r3] _0812A5F4: pop {r0} bx r0 thumb_func_end sub_812A5B8 thumb_func_start sub_812A5F8 sub_812A5F8: @ 812A5F8 push {lr} bl sub_812A4F4 ldr r0, _0812A628 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A62C ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _0812A630 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A634 .align 2, 0 _0812A628: .4byte 0x020192e4 _0812A62C: .4byte gUnknown_02039238 _0812A630: adds r0, r2, 0x5 str r0, [r3] _0812A634: pop {r0} bx r0 thumb_func_end sub_812A5F8 thumb_func_start sub_812A638 sub_812A638: @ 812A638 push {r4,lr} ldr r4, _0812A66C ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8128A7C lsls r0, 24 lsrs r0, 24 ldr r3, [r4] ldrb r1, [r3, 0x2] ldr r2, _0812A670 lsls r1, 2 adds r0, r1 adds r1, r2, 0 adds r1, 0x44 adds r0, r1 adds r2, 0xE0 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 strh r0, [r2, 0x18] adds r3, 0x3 str r3, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0812A66C: .4byte gUnknown_02039238 _0812A670: .4byte 0x02019204 thumb_func_end sub_812A638 thumb_func_start sub_812A674 sub_812A674: @ 812A674 push {lr} bl sub_812A638 ldr r0, _0812A6A4 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A6A8 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bge _0812A6AC ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A6B0 .align 2, 0 _0812A6A4: .4byte 0x020192e4 _0812A6A8: .4byte gUnknown_02039238 _0812A6AC: adds r0, r2, 0x5 str r0, [r3] _0812A6B0: pop {r0} bx r0 thumb_func_end sub_812A674 thumb_func_start sub_812A6B4 sub_812A6B4: @ 812A6B4 push {lr} bl sub_812A638 ldr r0, _0812A6E4 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A6E8 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 ble _0812A6EC ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A6F0 .align 2, 0 _0812A6E4: .4byte 0x020192e4 _0812A6E8: .4byte gUnknown_02039238 _0812A6EC: adds r0, r2, 0x5 str r0, [r3] _0812A6F0: pop {r0} bx r0 thumb_func_end sub_812A6B4 thumb_func_start sub_812A6F4 sub_812A6F4: @ 812A6F4 push {lr} bl sub_812A638 ldr r0, _0812A724 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A728 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _0812A72C ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A730 .align 2, 0 _0812A724: .4byte 0x020192e4 _0812A728: .4byte gUnknown_02039238 _0812A72C: adds r0, r2, 0x5 str r0, [r3] _0812A730: pop {r0} bx r0 thumb_func_end sub_812A6F4 thumb_func_start sub_812A734 sub_812A734: @ 812A734 push {lr} bl sub_812A638 ldr r0, _0812A764 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A768 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _0812A76C ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A770 .align 2, 0 _0812A764: .4byte 0x020192e4 _0812A768: .4byte gUnknown_02039238 _0812A76C: adds r0, r2, 0x5 str r0, [r3] _0812A770: pop {r0} bx r0 thumb_func_end sub_812A734 thumb_func_start sub_812A774 sub_812A774: @ 812A774 push {r4,r5,lr} ldr r5, _0812A7B4 ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8128A7C lsls r0, 24 ldr r3, [r5] ldrb r1, [r3, 0x2] ldr r2, _0812A7B8 lsrs r0, 23 lsls r1, 3 adds r0, r1 adds r1, r2, 0 adds r1, 0x1C adds r0, r1 ldrh r0, [r0] adds r2, 0xE0 ldr r4, _0812A7BC ldr r1, _0812A7C0 lsls r0, 3 adds r0, r1 ldrb r0, [r0] lsls r0, 2 adds r0, r4 ldrb r0, [r0] strh r0, [r2, 0x18] adds r3, 0x3 str r3, [r5] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812A7B4: .4byte gUnknown_02039238 _0812A7B8: .4byte 0x02019204 _0812A7BC: .4byte gContestEffects _0812A7C0: .4byte gContestMoves thumb_func_end sub_812A774 thumb_func_start sub_812A7C4 sub_812A7C4: @ 812A7C4 push {lr} bl sub_812A774 ldr r0, _0812A7F4 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A7F8 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _0812A7FC ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A800 .align 2, 0 _0812A7F4: .4byte 0x020192e4 _0812A7F8: .4byte gUnknown_02039238 _0812A7FC: adds r0, r2, 0x5 str r0, [r3] _0812A800: pop {r0} bx r0 thumb_func_end sub_812A7C4 thumb_func_start sub_812A804 sub_812A804: @ 812A804 push {lr} bl sub_812A774 ldr r0, _0812A834 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A838 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _0812A83C ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A840 .align 2, 0 _0812A834: .4byte 0x020192e4 _0812A838: .4byte gUnknown_02039238 _0812A83C: adds r0, r2, 0x5 str r0, [r3] _0812A840: pop {r0} bx r0 thumb_func_end sub_812A804 thumb_func_start sub_812A844 sub_812A844: @ 812A844 push {r4,lr} ldr r3, _0812A864 ldr r4, _0812A868 ldr r2, [r4] ldrb r0, [r2, 0x1] lsls r0, 1 adds r1, r3, 0 adds r1, 0x1A adds r0, r1 ldrh r1, [r3, 0x18] strh r1, [r0] adds r2, 0x2 str r2, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0812A864: .4byte 0x020192e4 _0812A868: .4byte gUnknown_02039238 thumb_func_end sub_812A844 thumb_func_start sub_812A86C sub_812A86C: @ 812A86C push {r4,lr} ldr r0, _0812A890 ldr r4, _0812A894 ldr r3, [r4] ldrb r2, [r3, 0x1] lsls r2, 1 adds r0, 0x1A adds r2, r0 ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 strh r1, [r2] adds r3, 0x4 str r3, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0812A890: .4byte 0x020192e4 _0812A894: .4byte gUnknown_02039238 thumb_func_end sub_812A86C thumb_func_start sub_812A898 sub_812A898: @ 812A898 push {r4,lr} ldr r0, _0812A8C4 ldr r4, _0812A8C8 ldr r3, [r4] ldrb r2, [r3, 0x1] lsls r2, 1 adds r0, 0x1A adds r2, r0 movs r1, 0x2 ldrsb r1, [r3, r1] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrh r0, [r2] adds r1, r0 strh r1, [r2] adds r3, 0x4 str r3, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0812A8C4: .4byte 0x020192e4 _0812A8C8: .4byte gUnknown_02039238 thumb_func_end sub_812A898 thumb_func_start sub_812A8CC sub_812A8CC: @ 812A8CC push {r4,lr} ldr r2, _0812A8F4 ldr r4, _0812A8F8 ldr r3, [r4] ldrb r1, [r3, 0x1] lsls r1, 1 adds r2, 0x1A adds r1, r2 ldrb r0, [r3, 0x2] lsls r0, 1 adds r0, r2 ldrh r0, [r0] ldrh r2, [r1] adds r0, r2 strh r0, [r1] adds r3, 0x3 str r3, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0812A8F4: .4byte 0x020192e4 _0812A8F8: .4byte gUnknown_02039238 thumb_func_end sub_812A8CC thumb_func_start sub_812A8FC sub_812A8FC: @ 812A8FC push {r4,lr} ldr r2, _0812A924 ldr r4, _0812A928 ldr r3, [r4] ldrb r1, [r3, 0x1] lsls r1, 1 adds r2, 0x1A adds r1, r2 ldrb r0, [r3, 0x2] lsls r0, 1 adds r0, r2 ldrh r0, [r0] ldrh r2, [r1] adds r0, r2 strh r0, [r1] adds r3, 0x3 str r3, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0812A924: .4byte 0x020192e4 _0812A928: .4byte gUnknown_02039238 thumb_func_end sub_812A8FC thumb_func_start sub_812A92C sub_812A92C: @ 812A92C push {r4,lr} ldr r1, _0812A964 ldr r4, _0812A968 ldr r3, [r4] ldrb r0, [r3, 0x1] lsls r0, 1 adds r1, 0x1A adds r0, r1 movs r1, 0 ldrsh r2, [r0, r1] ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 cmp r2, r1 bge _0812A96C ldrb r1, [r3, 0x4] ldrb r0, [r3, 0x5] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x6] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x7] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0812A972 .align 2, 0 _0812A964: .4byte 0x020192e4 _0812A968: .4byte gUnknown_02039238 _0812A96C: adds r0, r3, 0 adds r0, 0x8 str r0, [r4] _0812A972: pop {r4} pop {r0} bx r0 thumb_func_end sub_812A92C thumb_func_start sub_812A978 sub_812A978: @ 812A978 push {r4,lr} ldr r1, _0812A9B0 ldr r4, _0812A9B4 ldr r3, [r4] ldrb r0, [r3, 0x1] lsls r0, 1 adds r1, 0x1A adds r0, r1 movs r1, 0 ldrsh r2, [r0, r1] ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 cmp r2, r1 ble _0812A9B8 ldrb r1, [r3, 0x4] ldrb r0, [r3, 0x5] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x6] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x7] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0812A9BE .align 2, 0 _0812A9B0: .4byte 0x020192e4 _0812A9B4: .4byte gUnknown_02039238 _0812A9B8: adds r0, r3, 0 adds r0, 0x8 str r0, [r4] _0812A9BE: pop {r4} pop {r0} bx r0 thumb_func_end sub_812A978 thumb_func_start sub_812A9C4 sub_812A9C4: @ 812A9C4 push {r4,lr} ldr r1, _0812A9FC ldr r4, _0812AA00 ldr r3, [r4] ldrb r0, [r3, 0x1] lsls r0, 1 adds r1, 0x1A adds r0, r1 movs r1, 0 ldrsh r2, [r0, r1] ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 cmp r2, r1 bne _0812AA04 ldrb r1, [r3, 0x4] ldrb r0, [r3, 0x5] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x6] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x7] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0812AA0A .align 2, 0 _0812A9FC: .4byte 0x020192e4 _0812AA00: .4byte gUnknown_02039238 _0812AA04: adds r0, r3, 0 adds r0, 0x8 str r0, [r4] _0812AA0A: pop {r4} pop {r0} bx r0 thumb_func_end sub_812A9C4 thumb_func_start sub_812AA10 sub_812AA10: @ 812AA10 push {r4,lr} ldr r1, _0812AA48 ldr r4, _0812AA4C ldr r3, [r4] ldrb r0, [r3, 0x1] lsls r0, 1 adds r1, 0x1A adds r0, r1 movs r1, 0 ldrsh r2, [r0, r1] ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 cmp r2, r1 beq _0812AA50 ldrb r1, [r3, 0x4] ldrb r0, [r3, 0x5] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x6] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x7] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0812AA56 .align 2, 0 _0812AA48: .4byte 0x020192e4 _0812AA4C: .4byte gUnknown_02039238 _0812AA50: adds r0, r3, 0 adds r0, 0x8 str r0, [r4] _0812AA56: pop {r4} pop {r0} bx r0 thumb_func_end sub_812AA10 thumb_func_start sub_812AA5C sub_812AA5C: @ 812AA5C push {r4,lr} ldr r2, _0812AA98 ldr r4, _0812AA9C ldr r3, [r4] ldrb r1, [r3, 0x1] lsls r1, 1 adds r2, 0x1A adds r1, r2 ldrb r0, [r3, 0x2] lsls r0, 1 adds r0, r2 movs r2, 0 ldrsh r1, [r1, r2] movs r2, 0 ldrsh r0, [r0, r2] cmp r1, r0 bge _0812AAA0 ldrb r1, [r3, 0x3] ldrb r0, [r3, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0812AAA4 .align 2, 0 _0812AA98: .4byte 0x020192e4 _0812AA9C: .4byte gUnknown_02039238 _0812AAA0: adds r0, r3, 0x7 str r0, [r4] _0812AAA4: pop {r4} pop {r0} bx r0 thumb_func_end sub_812AA5C thumb_func_start sub_812AAAC sub_812AAAC: @ 812AAAC push {r4,lr} ldr r2, _0812AAE8 ldr r4, _0812AAEC ldr r3, [r4] ldrb r1, [r3, 0x1] lsls r1, 1 adds r2, 0x1A adds r1, r2 ldrb r0, [r3, 0x2] lsls r0, 1 adds r0, r2 movs r2, 0 ldrsh r1, [r1, r2] movs r2, 0 ldrsh r0, [r0, r2] cmp r1, r0 ble _0812AAF0 ldrb r1, [r3, 0x3] ldrb r0, [r3, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0812AAF4 .align 2, 0 _0812AAE8: .4byte 0x020192e4 _0812AAEC: .4byte gUnknown_02039238 _0812AAF0: adds r0, r3, 0x7 str r0, [r4] _0812AAF4: pop {r4} pop {r0} bx r0 thumb_func_end sub_812AAAC thumb_func_start sub_812AAFC sub_812AAFC: @ 812AAFC push {r4,lr} ldr r2, _0812AB38 ldr r4, _0812AB3C ldr r3, [r4] ldrb r1, [r3, 0x1] lsls r1, 1 adds r2, 0x1A adds r1, r2 ldrb r0, [r3, 0x2] lsls r0, 1 adds r0, r2 movs r2, 0 ldrsh r1, [r1, r2] movs r2, 0 ldrsh r0, [r0, r2] cmp r1, r0 bne _0812AB40 ldrb r1, [r3, 0x3] ldrb r0, [r3, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0812AB44 .align 2, 0 _0812AB38: .4byte 0x020192e4 _0812AB3C: .4byte gUnknown_02039238 _0812AB40: adds r0, r3, 0x7 str r0, [r4] _0812AB44: pop {r4} pop {r0} bx r0 thumb_func_end sub_812AAFC thumb_func_start sub_812AB4C sub_812AB4C: @ 812AB4C push {r4,lr} ldr r2, _0812AB88 ldr r4, _0812AB8C ldr r3, [r4] ldrb r1, [r3, 0x1] lsls r1, 1 adds r2, 0x1A adds r1, r2 ldrb r0, [r3, 0x2] lsls r0, 1 adds r0, r2 movs r2, 0 ldrsh r1, [r1, r2] movs r2, 0 ldrsh r0, [r0, r2] cmp r1, r0 beq _0812AB90 ldrb r1, [r3, 0x3] ldrb r0, [r3, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0812AB94 .align 2, 0 _0812AB88: .4byte 0x020192e4 _0812AB8C: .4byte gUnknown_02039238 _0812AB90: adds r0, r3, 0x7 str r0, [r4] _0812AB94: pop {r4} pop {r0} bx r0 thumb_func_end sub_812AB4C thumb_func_start sub_812AB9C sub_812AB9C: @ 812AB9C push {r4,lr} bl Random movs r2, 0xFF ands r2, r0 ldr r1, _0812ABD4 ldr r4, _0812ABD8 ldr r3, [r4] ldrb r0, [r3, 0x1] lsls r0, 1 adds r1, 0x1A adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r2, r0 bge _0812ABDC ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0812ABE0 .align 2, 0 _0812ABD4: .4byte 0x020192e4 _0812ABD8: .4byte gUnknown_02039238 _0812ABDC: adds r0, r3, 0x6 str r0, [r4] _0812ABE0: pop {r4} pop {r0} bx r0 thumb_func_end sub_812AB9C thumb_func_start sub_812ABE8 sub_812ABE8: @ 812ABE8 push {r4,lr} bl Random movs r2, 0xFF ands r2, r0 ldr r1, _0812AC20 ldr r4, _0812AC24 ldr r3, [r4] ldrb r0, [r3, 0x1] lsls r0, 1 adds r1, 0x1A adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r2, r0 ble _0812AC28 ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0812AC2C .align 2, 0 _0812AC20: .4byte 0x020192e4 _0812AC24: .4byte gUnknown_02039238 _0812AC28: adds r0, r3, 0x6 str r0, [r4] _0812AC2C: pop {r4} pop {r0} bx r0 thumb_func_end sub_812ABE8 thumb_func_start sub_812AC34 sub_812AC34: @ 812AC34 ldr r3, _0812AC50 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] bx lr .align 2, 0 _0812AC50: .4byte gUnknown_02039238 thumb_func_end sub_812AC34 thumb_func_start sub_812AC54 sub_812AC54: @ 812AC54 push {r4,lr} ldr r4, _0812AC80 ldr r0, [r4] adds r0, 0x5 bl sub_812ACA4 ldr r2, [r4] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0812AC80: .4byte gUnknown_02039238 thumb_func_end sub_812AC54 thumb_func_start sub_812AC84 sub_812AC84: @ 812AC84 push {lr} bl sub_812ACC8 lsls r0, 24 cmp r0, 0 bne _0812AC9A ldr r2, _0812ACA0 ldrb r1, [r2, 0x9] movs r0, 0x1 orrs r0, r1 strb r0, [r2, 0x9] _0812AC9A: pop {r0} bx r0 .align 2, 0 _0812ACA0: .4byte 0x020192e4 thumb_func_end sub_812AC84 thumb_func_start sub_812ACA4 sub_812ACA4: @ 812ACA4 push {r4,lr} ldr r3, _0812ACC4 adds r4, r3, 0 adds r4, 0x40 ldrb r1, [r4] adds r2, r1, 0x1 strb r2, [r4] lsls r1, 24 lsrs r1, 22 adds r3, 0x20 adds r1, r3 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0812ACC4: .4byte 0x020192e4 thumb_func_end sub_812ACA4 thumb_func_start sub_812ACC8 sub_812ACC8: @ 812ACC8 push {lr} ldr r1, _0812ACDC adds r3, r1, 0 adds r3, 0x40 ldrb r0, [r3] cmp r0, 0 bne _0812ACE0 movs r0, 0 b _0812ACF4 .align 2, 0 _0812ACDC: .4byte 0x020192e4 _0812ACE0: subs r0, 0x1 strb r0, [r3] ldr r2, _0812ACF8 ldrb r0, [r3] lsls r0, 2 adds r1, 0x20 adds r0, r1 ldr r0, [r0] str r0, [r2] movs r0, 0x1 _0812ACF4: pop {r1} bx r1 .align 2, 0 _0812ACF8: .4byte gUnknown_02039238 thumb_func_end sub_812ACC8 thumb_func_start contest_ai_check_for_exciting_move contest_ai_check_for_exciting_move: @ 812ACFC push {r4-r7,lr} movs r5, 0 movs r4, 0 ldr r7, _0812AD28 ldr r6, _0812AD2C _0812AD06: lsls r0, r4, 1 ldrb r1, [r7] lsls r1, 6 adds r0, r1 adds r1, r0, r6 ldrh r0, [r1] cmp r0, 0 beq _0812AD30 bl contest_get_move_excitement lsls r0, 24 asrs r0, 24 cmp r0, 0x1 bne _0812AD30 movs r5, 0x1 b _0812AD36 .align 2, 0 _0812AD28: .4byte 0x02019325 _0812AD2C: .4byte gUnknown_0203858E _0812AD30: adds r4, 0x1 cmp r4, 0x3 ble _0812AD06 _0812AD36: ldr r0, _0812AD48 strh r5, [r0, 0x18] ldr r1, _0812AD4C ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812AD48: .4byte 0x020192e4 _0812AD4C: .4byte gUnknown_02039238 thumb_func_end contest_ai_check_for_exciting_move thumb_func_start sub_812AD50 sub_812AD50: @ 812AD50 push {lr} bl contest_ai_check_for_exciting_move ldr r0, _0812AD7C movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 beq _0812AD84 ldr r3, _0812AD80 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812AD8C .align 2, 0 _0812AD7C: .4byte 0x020192e4 _0812AD80: .4byte gUnknown_02039238 _0812AD84: ldr r1, _0812AD90 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812AD8C: pop {r0} bx r0 .align 2, 0 _0812AD90: .4byte gUnknown_02039238 thumb_func_end sub_812AD50 thumb_func_start sub_812AD94 sub_812AD94: @ 812AD94 push {lr} bl contest_ai_check_for_exciting_move ldr r0, _0812ADC0 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 bne _0812ADC8 ldr r3, _0812ADC4 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812ADD0 .align 2, 0 _0812ADC0: .4byte 0x020192e4 _0812ADC4: .4byte gUnknown_02039238 _0812ADC8: ldr r1, _0812ADD4 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812ADD0: pop {r0} bx r0 .align 2, 0 _0812ADD4: .4byte gUnknown_02039238 thumb_func_end sub_812AD94 thumb_func_start sub_812ADD8 sub_812ADD8: @ 812ADD8 push {r4-r7,lr} movs r6, 0 ldr r2, _0812AE08 ldr r0, [r2] ldrb r4, [r0, 0x1] ldrb r0, [r0, 0x2] lsls r0, 8 orrs r4, r0 movs r3, 0 ldr r0, _0812AE0C mov r12, r0 ldr r5, _0812AE10 adds r0, r5, 0 adds r0, 0x41 ldrb r0, [r0] lsls r0, 6 mov r1, r12 adds r1, 0x1E adds r0, r1 ldrh r0, [r0] adds r7, r2, 0 mov r2, r12 mov r12, r5 b _0812AE2E .align 2, 0 _0812AE08: .4byte gUnknown_02039238 _0812AE0C: .4byte gUnknown_02038570 _0812AE10: .4byte 0x020192e4 _0812AE14: adds r3, 0x1 cmp r3, 0x3 bgt _0812AE34 lsls r1, r3, 1 mov r0, r12 adds r0, 0x41 ldrb r0, [r0] lsls r0, 6 adds r1, r0 adds r0, r2, 0 adds r0, 0x1E adds r1, r0 ldrh r0, [r1] _0812AE2E: cmp r0, r4 bne _0812AE14 movs r6, 0x1 _0812AE34: mov r0, r12 strh r6, [r0, 0x18] ldr r0, [r7] adds r0, 0x3 str r0, [r7] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_812ADD8 thumb_func_start sub_812AE44 sub_812AE44: @ 812AE44 push {lr} bl sub_812ADD8 ldr r0, _0812AE70 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 beq _0812AE78 ldr r3, _0812AE74 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812AE80 .align 2, 0 _0812AE70: .4byte 0x020192e4 _0812AE74: .4byte gUnknown_02039238 _0812AE78: ldr r1, _0812AE84 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812AE80: pop {r0} bx r0 .align 2, 0 _0812AE84: .4byte gUnknown_02039238 thumb_func_end sub_812AE44 thumb_func_start sub_812AE88 sub_812AE88: @ 812AE88 push {lr} bl sub_812ADD8 ldr r0, _0812AEB4 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 bne _0812AEBC ldr r3, _0812AEB8 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812AEC4 .align 2, 0 _0812AEB4: .4byte 0x020192e4 _0812AEB8: .4byte gUnknown_02039238 _0812AEBC: ldr r1, _0812AEC8 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812AEC4: pop {r0} bx r0 .align 2, 0 _0812AEC8: .4byte gUnknown_02039238 thumb_func_end sub_812AE88 thumb_func_start unref_sub_812AECC unref_sub_812AECC: @ 812AECC push {lr} bl sub_812613C lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x1 beq _0812AEEA cmp r0, 0x1 ble _0812AF08 cmp r1, 0x2 beq _0812AEF4 cmp r1, 0x3 beq _0812AEFA b _0812AF08 _0812AEEA: movs r0, 0x16 bl PlaySE movs r0, 0x1 b _0812AF0A _0812AEF4: bl sub_812AF10 b _0812AF08 _0812AEFA: movs r0, 0x16 bl PlaySE bl sub_812AF10 movs r0, 0x1 b _0812AF0A _0812AF08: movs r0, 0 _0812AF0A: pop {r1} bx r1 thumb_func_end unref_sub_812AECC thumb_func_start sub_812AF10 sub_812AF10: @ 812AF10 push {lr} movs r0, 0x2 movs r1, 0xE movs r2, 0x1B movs r3, 0x13 bl MenuDrawTextWindow ldr r0, _0812AF2C movs r1, 0x3 movs r2, 0xF bl MenuPrint pop {r0} bx r0 .align 2, 0 _0812AF2C: .4byte gStringVar4 thumb_func_end sub_812AF10 thumb_func_start sub_812AF30 sub_812AF30: @ 812AF30 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0812AF8C lsls r6, r0, 2 adds r6, r0 lsls r6, 3 adds r6, r1 ldr r1, _0812AF90 ldrh r0, [r1] strh r0, [r6, 0x8] ldrh r0, [r1, 0x2] strh r0, [r6, 0xA] movs r0, 0x40 negs r0, r0 bl sub_8076F98 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x3F bl sub_8076F98 adds r5, r0, 0 lsls r4, 24 asrs r4, 24 lsls r5, 24 asrs r5, 24 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x2 bl sub_807712C strh r4, [r6, 0xC] strh r5, [r6, 0xE] lsls r0, 24 asrs r0, 24 strh r0, [r6, 0x10] movs r0, 0xA strh r0, [r6, 0x1C] ldr r0, _0812AF94 str r0, [r6] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812AF8C: .4byte gTasks _0812AF90: .4byte gUnknown_03004B00 _0812AF94: .4byte sub_812AF98 thumb_func_end sub_812AF30 thumb_func_start sub_812AF98 sub_812AF98: @ 812AF98 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0812AFC8 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r5, [r4, 0xC] ldrb r6, [r4, 0x10] ldrh r0, [r4, 0x1E] adds r0, 0x1 movs r1, 0 strh r0, [r4, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x6F bne _0812AFD0 movs r0, 0x5 strh r0, [r4, 0x1C] strh r1, [r4, 0x1E] ldr r0, _0812AFCC str r0, [r4] b _0812AFFE .align 2, 0 _0812AFC8: .4byte gTasks _0812AFCC: .4byte sub_812B004 _0812AFD0: ldrh r0, [r4, 0x1C] adds r0, 0x1 strh r0, [r4, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0xB bne _0812AFEA strh r1, [r4, 0x1C] ldrh r0, [r4, 0x8] lsls r1, r5, 24 asrs r1, 24 bl PlaySE12WithPanning _0812AFEA: lsls r1, r6, 24 asrs r1, 24 lsls r0, r5, 16 asrs r0, 16 adds r0, r1 lsls r0, 16 asrs r0, 16 bl sub_8077104 strh r0, [r4, 0xC] _0812AFFE: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_812AF98 thumb_func_start sub_812B004 sub_812B004: @ 812B004 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0812B054 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x1C] adds r0, 0x1 strh r0, [r4, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 bne _0812B04C movs r0, 0 strh r0, [r4, 0x1C] movs r0, 0x3F bl sub_8076F98 adds r1, r0, 0 ldrh r0, [r4, 0xA] lsls r1, 24 asrs r1, 24 bl PlaySE12WithPanning ldrh r0, [r4, 0x1E] adds r0, 0x1 strh r0, [r4, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _0812B04C adds r0, r5, 0 bl move_anim_related_task_del _0812B04C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812B054: .4byte gTasks thumb_func_end sub_812B004 thumb_func_start sub_812B058 sub_812B058: @ 812B058 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r8, r0 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, _0812B0FC ldrh r1, [r0] str r1, [sp] ldrb r5, [r0, 0x4] ldrb r6, [r0, 0x6] ldrb r3, [r0, 0x8] mov r10, r3 ldrb r7, [r0, 0xA] ldrb r1, [r0, 0xC] mov r9, r1 ldrb r0, [r0, 0x2] lsls r0, 24 asrs r0, 24 bl sub_8076F98 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 asrs r5, 24 adds r0, r5, 0 bl sub_8076F98 adds r5, r0, 0 lsls r4, 24 asrs r4, 24 lsls r5, 24 asrs r5, 24 lsls r6, 24 asrs r6, 24 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_807712C ldr r2, _0812B100 mov r3, r8 lsls r1, r3, 2 add r1, r8 lsls r1, 3 adds r1, r2 movs r2, 0 mov r6, sp ldrh r6, [r6] strh r6, [r1, 0x8] strh r4, [r1, 0xA] strh r5, [r1, 0xC] lsls r0, 24 asrs r0, 24 strh r0, [r1, 0xE] mov r0, r10 strh r0, [r1, 0x10] strh r7, [r1, 0x12] mov r3, r9 strh r3, [r1, 0x14] strh r2, [r1, 0x1C] strh r4, [r1, 0x1E] strh r3, [r1, 0x20] ldr r2, _0812B104 str r2, [r1] mov r0, r8 bl _call_via_r2 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812B0FC: .4byte gUnknown_03004B00 _0812B100: .4byte gTasks _0812B104: .4byte sub_812B108 thumb_func_end sub_812B058 thumb_func_start sub_812B108 sub_812B108: @ 812B108 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0812B14C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x20] adds r1, r0, 0x1 strh r1, [r4, 0x20] lsls r0, 16 asrs r0, 16 movs r2, 0x14 ldrsh r1, [r4, r2] cmp r0, r1 bne _0812B150 movs r0, 0 strh r0, [r4, 0x20] ldrh r0, [r4, 0x8] movs r1, 0x1E ldrsb r1, [r4, r1] bl PlaySE12WithPanning ldrh r0, [r4, 0x10] subs r0, 0x1 strh r0, [r4, 0x10] lsls r0, 16 cmp r0, 0 bne _0812B150 adds r0, r5, 0 bl move_anim_related_task_del b _0812B182 .align 2, 0 _0812B14C: .4byte gTasks _0812B150: ldr r1, _0812B188 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x1C] adds r1, r0, 0x1 strh r1, [r4, 0x1C] lsls r0, 16 asrs r0, 16 movs r2, 0x12 ldrsh r1, [r4, r2] cmp r0, r1 bne _0812B182 movs r0, 0 strh r0, [r4, 0x1C] ldrh r0, [r4, 0xE] ldrh r1, [r4, 0x1E] adds r0, r1 strh r0, [r4, 0x1E] movs r2, 0x1E ldrsh r0, [r4, r2] bl sub_8077104 strh r0, [r4, 0x1E] _0812B182: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812B188: .4byte gTasks thumb_func_end sub_812B108 thumb_func_start sub_812B18C sub_812B18C: @ 812B18C push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 movs r0, 0x40 negs r0, r0 bl sub_8076F98 lsls r0, 24 lsrs r6, r0, 24 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _0812B1CC ldr r0, _0812B1BC movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _0812B1C4 ldr r0, _0812B1C0 ldrh r4, [r0] b _0812B272 .align 2, 0 _0812B1BC: .4byte gUnknown_03004B00 _0812B1C0: .4byte 0x02019348 _0812B1C4: adds r0, r5, 0 bl move_anim_task_del b _0812B272 _0812B1CC: ldr r0, _0812B1E0 movs r2, 0 ldrsh r1, [r0, r2] adds r2, r0, 0 cmp r1, 0 bne _0812B1E8 ldr r0, _0812B1E4 ldrb r4, [r0] b _0812B20E .align 2, 0 _0812B1E0: .4byte gUnknown_03004B00 _0812B1E4: .4byte gUnknown_0202F7C8 _0812B1E8: cmp r1, 0x1 bne _0812B1F8 ldr r0, _0812B1F4 ldrb r4, [r0] b _0812B20E .align 2, 0 _0812B1F4: .4byte gUnknown_0202F7C9 _0812B1F8: cmp r1, 0x2 bne _0812B204 ldr r0, _0812B200 b _0812B206 .align 2, 0 _0812B200: .4byte gUnknown_0202F7C8 _0812B204: ldr r0, _0812B230 _0812B206: ldrb r1, [r0] movs r0, 0x2 adds r4, r0, 0 eors r4, r1 _0812B20E: movs r1, 0 ldrsh r0, [r2, r1] cmp r0, 0x1 beq _0812B21A cmp r0, 0x3 bne _0812B234 _0812B21A: adds r0, r4, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 bne _0812B234 adds r0, r5, 0 bl move_anim_task_del b _0812B2B0 .align 2, 0 _0812B230: .4byte gUnknown_0202F7C9 _0812B234: adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0812B258 ldr r1, _0812B250 lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0812B254 b _0812B266 .align 2, 0 _0812B250: .4byte gUnknown_02024A6A _0812B254: .4byte gEnemyParty _0812B258: ldr r1, _0812B290 lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0812B294 _0812B266: adds r0, r1 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r4, r0, 16 _0812B272: cmp r4, 0 beq _0812B2AA ldr r0, _0812B298 ldrh r2, [r0, 0x2] movs r1, 0x2 ldrsh r0, [r0, r1] cmp r0, 0xFF bne _0812B29C lsls r1, r6, 24 asrs r1, 24 adds r0, r4, 0 bl PlayCry1 b _0812B2AA .align 2, 0 _0812B290: .4byte gUnknown_02024A6A _0812B294: .4byte gPlayerParty _0812B298: .4byte gUnknown_03004B00 _0812B29C: lsls r1, r6, 24 asrs r1, 24 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 bl PlayCry3 _0812B2AA: adds r0, r5, 0 bl move_anim_task_del _0812B2B0: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_812B18C thumb_func_start sub_812B2B8 sub_812B2B8: @ 812B2B8 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x40 negs r0, r0 bl sub_8076F98 lsls r0, 24 lsrs r4, r0, 24 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _0812B2DC ldr r0, _0812B2D8 b _0812B2E6 .align 2, 0 _0812B2D8: .4byte 0x02019348 _0812B2DC: ldr r1, _0812B304 ldr r0, _0812B308 ldrb r0, [r0] lsls r0, 1 adds r0, r1 _0812B2E6: ldrh r0, [r0] cmp r0, 0 beq _0812B2F6 lsls r1, r4, 24 asrs r1, 24 movs r2, 0x4 bl PlayCry3 _0812B2F6: adds r0, r5, 0 bl move_anim_task_del pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812B304: .4byte gUnknown_0202F7CA _0812B308: .4byte gUnknown_0202F7C8 thumb_func_end sub_812B2B8 thumb_func_start sub_812B30C sub_812B30C: @ 812B30C push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0812B33C ldrh r5, [r0] ldrb r0, [r0, 0x2] lsls r0, 24 asrs r0, 24 bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 adds r0, r5, 0 bl PlaySE1WithPanning adds r0, r4, 0 bl move_anim_task_del pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812B33C: .4byte gUnknown_03004B00 thumb_func_end sub_812B30C thumb_func_start sub_812B340 sub_812B340: @ 812B340 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0812B370 ldrh r5, [r0] ldrb r0, [r0, 0x2] lsls r0, 24 asrs r0, 24 bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 adds r0, r5, 0 bl PlaySE2WithPanning adds r0, r4, 0 bl move_anim_task_del pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812B370: .4byte gUnknown_03004B00 thumb_func_end sub_812B340 thumb_func_start sub_812B374 sub_812B374: @ 812B374 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} mov r8, r0 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, _0812B3F8 ldrb r5, [r0, 0x2] ldrb r6, [r0, 0x4] ldrh r1, [r0, 0x6] mov r9, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 bl sub_8076F98 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 asrs r5, 24 adds r0, r5, 0 bl sub_8076F98 adds r5, r0, 0 lsls r4, 24 asrs r4, 24 lsls r5, 24 asrs r5, 24 lsls r6, 24 asrs r6, 24 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_807712C ldr r2, _0812B3FC mov r3, r8 lsls r1, r3, 2 add r1, r8 lsls r1, 3 adds r1, r2 movs r2, 0 strh r4, [r1, 0xA] strh r5, [r1, 0xC] lsls r0, 24 asrs r0, 24 strh r0, [r1, 0xE] mov r0, r9 strh r0, [r1, 0x12] strh r2, [r1, 0x1C] strh r4, [r1, 0x1E] ldr r2, _0812B400 str r2, [r1] mov r0, r8 bl _call_via_r2 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812B3F8: .4byte gUnknown_03004B00 _0812B3FC: .4byte gTasks _0812B400: .4byte sub_812B404 thumb_func_end sub_812B374 thumb_func_start sub_812B404 sub_812B404: @ 812B404 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r1, _0812B45C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r2, [r4, 0xE] ldrh r0, [r4, 0x1C] adds r1, r0, 0x1 strh r1, [r4, 0x1C] lsls r0, 16 asrs r0, 16 movs r3, 0x12 ldrsh r1, [r4, r3] cmp r0, r1 bne _0812B43E movs r0, 0 strh r0, [r4, 0x1C] ldrh r1, [r4, 0x1E] adds r0, r2, r1 strh r0, [r4, 0x1E] movs r2, 0x1E ldrsh r0, [r4, r2] bl sub_8077104 strh r0, [r4, 0x1E] _0812B43E: ldr r1, _0812B460 ldrh r0, [r4, 0x1E] strb r0, [r1] movs r3, 0x1E ldrsh r1, [r4, r3] movs r2, 0xC ldrsh r0, [r4, r2] cmp r1, r0 bne _0812B456 adds r0, r5, 0 bl move_anim_task_del _0812B456: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812B45C: .4byte gTasks _0812B460: .4byte gUnknown_0202F7D2 thumb_func_end sub_812B404 thumb_func_start unref_sub_812B464 unref_sub_812B464: @ 812B464 bx lr thumb_func_end unref_sub_812B464 thumb_func_start sub_812B468 sub_812B468: @ 812B468 ldr r1, _0812B478 ldr r0, _0812B47C ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _0812B480 str r1, [r0] bx lr .align 2, 0 _0812B478: .4byte gUnknown_03004330 _0812B47C: .4byte gUnknown_02024A60 _0812B480: .4byte sub_812B484 thumb_func_end sub_812B468 thumb_func_start sub_812B484 sub_812B484: @ 812B484 push {lr} ldr r2, _0812B4B8 ldr r1, _0812B4BC ldr r0, _0812B4C0 ldrb r3, [r0] lsls r0, r3, 2 adds r0, r1 ldr r1, [r2] ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _0812B4D0 ldr r0, _0812B4C4 lsls r1, r3, 9 adds r1, r0 ldrb r0, [r1] cmp r0, 0x38 bhi _0812B4CC ldr r0, _0812B4C8 ldrb r1, [r1] lsls r1, 2 adds r1, r0 ldr r0, [r1] bl _call_via_r0 b _0812B4D0 .align 2, 0 _0812B4B8: .4byte gUnknown_02024A64 _0812B4BC: .4byte gBitTable _0812B4C0: .4byte gUnknown_02024A60 _0812B4C4: .4byte gUnknown_02023A60 _0812B4C8: .4byte gUnknown_08402080 _0812B4CC: bl dp01_tbl6_exec_completed _0812B4D0: pop {r0} bx r0 thumb_func_end sub_812B484 thumb_func_start bx_battle_menu_t6_2 bx_battle_menu_t6_2: @ 812B4D4 push {r4,r5,lr} ldr r0, _0812B508 ldrh r1, [r0, 0x2E] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0812B546 movs r0, 0x5 bl PlaySE bl sub_814A7FC ldr r1, _0812B50C ldr r0, _0812B510 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 beq _0812B524 cmp r0, 0x1 bgt _0812B514 cmp r0, 0 beq _0812B51E b _0812B540 .align 2, 0 _0812B508: .4byte gMain _0812B50C: .4byte gUnknown_02024E60 _0812B510: .4byte gUnknown_02024A60 _0812B514: cmp r0, 0x2 beq _0812B52A cmp r0, 0x3 beq _0812B536 b _0812B540 _0812B51E: movs r0, 0x1 movs r1, 0x5 b _0812B52E _0812B524: movs r0, 0x1 movs r1, 0x6 b _0812B52E _0812B52A: movs r0, 0x1 movs r1, 0x7 _0812B52E: movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb b _0812B540 _0812B536: movs r0, 0x1 movs r1, 0x8 movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb _0812B540: bl dp01_tbl6_exec_completed b _0812B64E _0812B546: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0812B584 ldr r5, _0812B57C ldr r4, _0812B580 ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0812B64E movs r0, 0x5 bl PlaySE ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl nullsub_8 ldrb r1, [r4] adds r1, r5 ldrb r0, [r1] movs r2, 0x1 b _0812B5F2 .align 2, 0 _0812B57C: .4byte gUnknown_02024E60 _0812B580: .4byte gUnknown_02024A60 _0812B584: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0812B5C0 ldr r5, _0812B5B8 ldr r4, _0812B5BC ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0812B64E movs r0, 0x5 bl PlaySE ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl nullsub_8 ldrb r1, [r4] adds r1, r5 ldrb r0, [r1] movs r2, 0x1 b _0812B5F2 .align 2, 0 _0812B5B8: .4byte gUnknown_02024E60 _0812B5BC: .4byte gUnknown_02024A60 _0812B5C0: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0812B60C ldr r5, _0812B604 ldr r4, _0812B608 ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0812B64E movs r0, 0x5 bl PlaySE ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl nullsub_8 ldrb r1, [r4] adds r1, r5 ldrb r0, [r1] movs r2, 0x2 _0812B5F2: eors r0, r2 strb r0, [r1] ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl sub_802E3E4 b _0812B64E .align 2, 0 _0812B604: .4byte gUnknown_02024E60 _0812B608: .4byte gUnknown_02024A60 _0812B60C: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0812B64E ldr r5, _0812B654 ldr r4, _0812B658 ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0812B64E movs r0, 0x5 bl PlaySE ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl nullsub_8 ldrb r1, [r4] adds r1, r5 ldrb r0, [r1] movs r2, 0x2 eors r0, r2 strb r0, [r1] ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl sub_802E3E4 _0812B64E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812B654: .4byte gUnknown_02024E60 _0812B658: .4byte gUnknown_02024A60 thumb_func_end bx_battle_menu_t6_2 thumb_func_start sub_812B65C sub_812B65C: @ 812B65C push {lr} ldr r2, _0812B684 ldr r1, _0812B688 ldr r0, _0812B68C ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _0812B690 cmp r1, r0 bne _0812B680 bl dp01_tbl6_exec_completed _0812B680: pop {r0} bx r0 .align 2, 0 _0812B684: .4byte gSprites _0812B688: .4byte gUnknown_02024BE0 _0812B68C: .4byte gUnknown_02024A60 _0812B690: .4byte SpriteCallbackDummy thumb_func_end sub_812B65C thumb_func_start sub_812B694 sub_812B694: @ 812B694 push {lr} ldr r0, _0812B6A8 ldrh r0, [r0, 0x16] cmp r0, 0 bne _0812B6A2 bl dp01_tbl6_exec_completed _0812B6A2: pop {r0} bx r0 .align 2, 0 _0812B6A8: .4byte gUnknown_03004210 thumb_func_end sub_812B694 thumb_func_start sub_812B6AC sub_812B6AC: @ 812B6AC push {lr} ldr r0, _0812B6DC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0812B6D6 ldr r2, _0812B6E0 ldr r0, _0812B6E4 adds r3, r2, r0 ldrb r1, [r3] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r3] ldr r0, _0812B6E8 ldr r0, [r0] str r0, [r2] ldr r0, [r2, 0x8] bl SetMainCallback2 _0812B6D6: pop {r0} bx r0 .align 2, 0 _0812B6DC: .4byte gPaletteFade _0812B6E0: .4byte gMain _0812B6E4: .4byte 0x0000043d _0812B6E8: .4byte gUnknown_030042D0 thumb_func_end sub_812B6AC thumb_func_start bx_wait_t6 bx_wait_t6: @ 812B6EC push {lr} ldr r0, _0812B718 ldrb r0, [r0] cmp r0, 0 beq _0812B70E ldr r0, _0812B71C ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0812B720 adds r0, r1 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _0812B712 _0812B70E: bl dp01_tbl6_exec_completed _0812B712: pop {r0} bx r0 .align 2, 0 _0812B718: .4byte gUnknown_02024E6D _0812B71C: .4byte gUnknown_02024A60 _0812B720: .4byte 0x02017810 thumb_func_end bx_wait_t6 thumb_func_start sub_812B724 sub_812B724: @ 812B724 push {lr} ldr r0, _0812B748 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0812B744 ldr r1, _0812B74C ldr r0, _0812B750 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _0812B754 str r1, [r0] bl sub_810BADC _0812B744: pop {r0} bx r0 .align 2, 0 _0812B748: .4byte gPaletteFade _0812B74C: .4byte gUnknown_03004330 _0812B750: .4byte gUnknown_02024A60 _0812B754: .4byte sub_812B758 thumb_func_end sub_812B724 thumb_func_start sub_812B758 sub_812B758: @ 812B758 push {lr} ldr r0, _0812B784 ldr r1, [r0, 0x4] ldr r0, _0812B788 cmp r1, r0 bne _0812B77E ldr r0, _0812B78C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0812B77E ldr r0, _0812B790 ldrh r1, [r0] movs r0, 0x1 bl dp01_build_cmdbuf_x23_aa_0 bl dp01_tbl6_exec_completed _0812B77E: pop {r0} bx r0 .align 2, 0 _0812B784: .4byte gMain _0812B788: .4byte sub_800F808 _0812B78C: .4byte gPaletteFade _0812B790: .4byte word_203855E thumb_func_end sub_812B758 thumb_func_start sub_812B794 sub_812B794: @ 812B794 push {lr} ldr r0, _0812B7B8 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0812B7BC adds r0, r1 ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0812B7B2 bl dp01_tbl6_exec_completed _0812B7B2: pop {r0} bx r0 .align 2, 0 _0812B7B8: .4byte gUnknown_02024A60 _0812B7BC: .4byte 0x02017810 thumb_func_end sub_812B794 thumb_func_start dp01_tbl6_exec_completed dp01_tbl6_exec_completed: @ 812B7C0 push {r4,lr} sub sp, 0x4 ldr r1, _0812B800 ldr r4, _0812B804 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _0812B808 str r1, [r0] ldr r0, _0812B80C ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0812B814 bl GetMultiplayerId mov r1, sp strb r0, [r1] movs r0, 0x2 movs r1, 0x4 mov r2, sp bl dp01_prepare_buffer_wireless_probably ldr r1, _0812B810 ldrb r0, [r4] lsls r0, 9 adds r0, r1 movs r1, 0x38 strb r1, [r0] b _0812B826 .align 2, 0 _0812B800: .4byte gUnknown_03004330 _0812B804: .4byte gUnknown_02024A60 _0812B808: .4byte sub_812B484 _0812B80C: .4byte gUnknown_020239F8 _0812B810: .4byte gUnknown_02023A60 _0812B814: ldr r2, _0812B830 ldr r1, _0812B834 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r0, [r2] bics r0, r1 str r0, [r2] _0812B826: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0812B830: .4byte gUnknown_02024A64 _0812B834: .4byte gBitTable thumb_func_end dp01_tbl6_exec_completed thumb_func_start unref_sub_812B838 unref_sub_812B838: @ 812B838 push {lr} ldr r0, _0812B85C ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0812B860 adds r0, r1 ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0812B856 bl dp01_tbl6_exec_completed _0812B856: pop {r0} bx r0 .align 2, 0 _0812B85C: .4byte gUnknown_02024A60 _0812B860: .4byte 0x02017810 thumb_func_end unref_sub_812B838 thumb_func_start sub_812B864 sub_812B864: @ 812B864 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812B864 thumb_func_start sub_812B870 sub_812B870: @ 812B870 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812B870 thumb_func_start sub_812B87C sub_812B87C: @ 812B87C push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812B87C thumb_func_start sub_812B888 sub_812B888: @ 812B888 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812B888 thumb_func_start sub_812B894 sub_812B894: @ 812B894 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812B894 thumb_func_start sub_812B8A0 sub_812B8A0: @ 812B8A0 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812B8A0 thumb_func_start sub_812B8AC sub_812B8AC: @ 812B8AC push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812B8AC thumb_func_start sub_812B8B8 sub_812B8B8: @ 812B8B8 push {r4-r6,lr} ldr r4, _0812B96C ldrb r0, [r4, 0x8] ldr r5, _0812B970 ldrb r1, [r5] bl sub_8031AF4 ldrb r6, [r4, 0x8] ldrb r0, [r5] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl GetMonSpriteTemplate_803C5A0 ldr r0, _0812B974 ldr r2, _0812B978 ldrb r1, [r4, 0x8] lsls r1, 2 adds r1, r2 ldrb r1, [r1] movs r2, 0x8 subs r2, r1 lsls r2, 18 movs r1, 0xA0 lsls r1, 15 adds r2, r1 asrs r2, 16 movs r1, 0x50 movs r3, 0x1E bl CreateSprite ldr r6, _0812B97C ldrb r1, [r5] adds r1, r6 strb r0, [r1] ldr r4, _0812B980 ldrb r3, [r5] adds r0, r3, r6 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 lsls r3, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0xF0 strh r1, [r0, 0x24] ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _0812B984 strh r1, [r0, 0x2E] ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, 0x1C adds r0, r4 ldr r1, _0812B988 str r1, [r0] ldr r1, _0812B98C ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _0812B990 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812B96C: .4byte gSaveBlock2 _0812B970: .4byte gUnknown_02024A60 _0812B974: .4byte gUnknown_02024E8C _0812B978: .4byte gTrainerBackPicCoords _0812B97C: .4byte gUnknown_02024BE0 _0812B980: .4byte gSprites _0812B984: .4byte 0x0000fffe _0812B988: .4byte sub_80313A0 _0812B98C: .4byte gUnknown_03004330 _0812B990: .4byte sub_812B65C thumb_func_end sub_812B8B8 thumb_func_start sub_812B994 sub_812B994: @ 812B994 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812B994 thumb_func_start sub_812B9A0 sub_812B9A0: @ 812B9A0 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812B9A0 thumb_func_start sub_812B9AC sub_812B9AC: @ 812B9AC push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812B9AC thumb_func_start sub_812B9B8 sub_812B9B8: @ 812B9B8 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812B9B8 thumb_func_start sub_812B9C4 sub_812B9C4: @ 812B9C4 push {r4,r5,lr} ldr r1, _0812BA00 movs r0, 0x4 strb r0, [r1, 0x8] ldr r1, _0812BA04 movs r0, 0x1 strb r0, [r1] ldr r5, _0812BA08 ldrb r4, [r5] movs r0, 0x1 bl battle_get_side_with_given_state adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r4, 0 movs r3, 0x4 bl move_anim_start_t4 ldr r1, _0812BA0C ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _0812BA10 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812BA00: .4byte 0x02017840 _0812BA04: .4byte gUnknown_02024E6D _0812BA08: .4byte gUnknown_02024A60 _0812BA0C: .4byte gUnknown_03004330 _0812BA10: .4byte bx_wait_t6 thumb_func_end sub_812B9C4 thumb_func_start sub_812BA14 sub_812BA14: @ 812BA14 push {r4,r5,lr} ldr r1, _0812BA58 ldr r5, _0812BA5C ldrb r0, [r5] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r1, [r0] ldr r0, _0812BA60 strb r1, [r0, 0x8] ldr r1, _0812BA64 movs r0, 0x1 strb r0, [r1] ldrb r4, [r5] movs r0, 0x1 bl battle_get_side_with_given_state adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r4, 0 movs r3, 0x4 bl move_anim_start_t4 ldr r1, _0812BA68 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _0812BA6C str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812BA58: .4byte gUnknown_02023A60 _0812BA5C: .4byte gUnknown_02024A60 _0812BA60: .4byte 0x02017840 _0812BA64: .4byte gUnknown_02024E6D _0812BA68: .4byte gUnknown_03004330 _0812BA6C: .4byte bx_wait_t6 thumb_func_end sub_812BA14 thumb_func_start sub_812BA70 sub_812BA70: @ 812BA70 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BA70 thumb_func_start sub_812BA7C sub_812BA7C: @ 812BA7C push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BA7C thumb_func_start dp01t_10_6_message dp01t_10_6_message: @ 812BA88 push {r4,lr} sub sp, 0x4 ldr r0, _0812BACC movs r1, 0 strh r1, [r0] ldr r0, _0812BAD0 strh r1, [r0] ldr r4, _0812BAD4 ldrb r0, [r4] lsls r0, 9 ldr r1, _0812BAD8 adds r0, r1 ldrh r0, [r0] bl sub_8120AA8 ldr r0, _0812BADC ldr r1, _0812BAE0 movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r1, _0812BAE4 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _0812BAE8 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0812BACC: .4byte gUnknown_030042A4 _0812BAD0: .4byte gUnknown_030042A0 _0812BAD4: .4byte gUnknown_02024A60 _0812BAD8: .4byte gUnknown_02023A62 _0812BADC: .4byte gUnknown_03004210 _0812BAE0: .4byte gUnknown_020238CC _0812BAE4: .4byte gUnknown_03004330 _0812BAE8: .4byte sub_812B694 thumb_func_end dp01t_10_6_message thumb_func_start dp01t_11_6_message_for_player_only dp01t_11_6_message_for_player_only: @ 812BAEC push {lr} ldr r0, _0812BB04 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0812BB08 bl dp01t_10_6_message b _0812BB0C .align 2, 0 _0812BB04: .4byte gUnknown_02024A60 _0812BB08: bl dp01_tbl6_exec_completed _0812BB0C: pop {r0} bx r0 thumb_func_end dp01t_11_6_message_for_player_only thumb_func_start sub_812BB10 sub_812BB10: @ 812BB10 push {r4,r5,lr} sub sp, 0x8 ldr r0, _0812BBCC movs r2, 0 strh r2, [r0] ldr r1, _0812BBD0 movs r0, 0xA0 strh r0, [r1] ldr r4, _0812BBD4 movs r5, 0 strb r2, [r4, 0x6] movs r0, 0x1B str r0, [sp] movs r0, 0x12 str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0xA movs r2, 0x2 movs r3, 0xF bl FillWindowRect_DefaultPalette movs r0, 0x10 str r0, [sp] movs r0, 0x24 str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0xA movs r2, 0x2 movs r3, 0x23 bl FillWindowRect_DefaultPalette ldr r1, _0812BBD8 ldr r0, _0812BBDC ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _0812BBE0 str r1, [r0] ldr r1, _0812BBE4 movs r2, 0xC8 lsls r2, 1 movs r0, 0x23 str r0, [sp] adds r0, r4, 0 movs r3, 0x12 bl InitWindow adds r0, r4, 0 bl sub_8002F44 ldr r1, _0812BBE8 ldr r3, _0812BBEC str r5, [sp] movs r0, 0 movs r2, 0xC bl sub_814A5C0 movs r4, 0 _0812BB84: lsls r0, r4, 24 lsrs r0, 24 bl nullsub_8 adds r4, 0x1 cmp r4, 0x3 ble _0812BB84 ldr r1, _0812BBF0 ldr r0, _0812BBDC ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_802E3E4 ldr r0, _0812BBF4 bl get_battle_strings_ ldr r4, _0812BBD4 ldr r1, _0812BBF8 movs r2, 0xDC lsls r2, 1 movs r0, 0x23 str r0, [sp] adds r0, r4, 0 movs r3, 0x2 bl InitWindow adds r0, r4, 0 bl sub_8002F44 add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812BBCC: .4byte gUnknown_030042A4 _0812BBD0: .4byte gUnknown_030042A0 _0812BBD4: .4byte gUnknown_03004210 _0812BBD8: .4byte gUnknown_03004330 _0812BBDC: .4byte gUnknown_02024A60 _0812BBE0: .4byte bx_battle_menu_t6_2 _0812BBE4: .4byte gUnknown_08400D15 _0812BBE8: .4byte 0x0000ffff _0812BBEC: .4byte 0x00002d9f _0812BBF0: .4byte gUnknown_02024E60 _0812BBF4: .4byte gUnknown_08400CBB _0812BBF8: .4byte gUnknown_020238CC thumb_func_end sub_812BB10 thumb_func_start sub_812BBFC sub_812BBFC: @ 812BBFC push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BBFC thumb_func_start sub_812BC08 sub_812BC08: @ 812BC08 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BC08 thumb_func_start sub_812BC14 sub_812BC14: @ 812BC14 push {lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0812BC44 ldr r2, _0812BC48 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _0812BC4C str r1, [r0] ldr r1, _0812BC50 ldrb r0, [r2] strb r0, [r1] add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0812BC44: .4byte gUnknown_03004330 _0812BC48: .4byte gUnknown_02024A60 _0812BC4C: .4byte sub_812B724 _0812BC50: .4byte gUnknown_02024E6C thumb_func_end sub_812BC14 thumb_func_start sub_812BC54 sub_812BC54: @ 812BC54 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BC54 thumb_func_start sub_812BC60 sub_812BC60: @ 812BC60 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BC60 thumb_func_start sub_812BC6C sub_812BC6C: @ 812BC6C push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BC6C thumb_func_start sub_812BC78 sub_812BC78: @ 812BC78 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BC78 thumb_func_start sub_812BC84 sub_812BC84: @ 812BC84 push {lr} ldr r0, _0812BCB0 ldr r1, _0812BCB4 ldrb r1, [r1] adds r0, r1, r0 ldrb r0, [r0] ldr r2, _0812BCB8 lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _0812BCBC adds r1, r2 movs r2, 0xB bl sub_8045A5C bl dp01_tbl6_exec_completed pop {r0} bx r0 .align 2, 0 _0812BCB0: .4byte gUnknown_03004340 _0812BCB4: .4byte gUnknown_02024A60 _0812BCB8: .4byte gUnknown_02024A6A _0812BCBC: .4byte gPlayerParty thumb_func_end sub_812BC84 thumb_func_start sub_812BCC0 sub_812BCC0: @ 812BCC0 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BCC0 thumb_func_start sub_812BCCC sub_812BCCC: @ 812BCCC push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BCCC thumb_func_start sub_812BCD8 sub_812BCD8: @ 812BCD8 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BCD8 thumb_func_start sub_812BCE4 sub_812BCE4: @ 812BCE4 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BCE4 thumb_func_start sub_812BCF0 sub_812BCF0: @ 812BCF0 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BCF0 thumb_func_start sub_812BCFC sub_812BCFC: @ 812BCFC push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BCFC thumb_func_start sub_812BD08 sub_812BD08: @ 812BD08 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BD08 thumb_func_start sub_812BD14 sub_812BD14: @ 812BD14 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BD14 thumb_func_start sub_812BD20 sub_812BD20: @ 812BD20 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BD20 thumb_func_start sub_812BD2C sub_812BD2C: @ 812BD2C push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BD2C thumb_func_start sub_812BD38 sub_812BD38: @ 812BD38 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BD38 thumb_func_start sub_812BD44 sub_812BD44: @ 812BD44 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BD44 thumb_func_start sub_812BD50 sub_812BD50: @ 812BD50 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BD50 thumb_func_start sub_812BD5C sub_812BD5C: @ 812BD5C push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BD5C thumb_func_start sub_812BD68 sub_812BD68: @ 812BD68 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BD68 thumb_func_start sub_812BD74 sub_812BD74: @ 812BD74 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BD74 thumb_func_start sub_812BD80 sub_812BD80: @ 812BD80 push {r4,lr} ldr r4, _0812BDBC ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 movs r3, 0x3F cmp r0, 0 bne _0812BD94 movs r3, 0xC0 _0812BD94: ldr r2, _0812BDC0 ldrb r1, [r4] lsls r1, 9 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r0, [r0] adds r2, 0x2 adds r1, r2 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 lsls r1, r3, 24 asrs r1, 24 bl PlaySE12WithPanning bl dp01_tbl6_exec_completed pop {r4} pop {r0} bx r0 .align 2, 0 _0812BDBC: .4byte gUnknown_02024A60 _0812BDC0: .4byte gUnknown_02023A60 thumb_func_end sub_812BD80 thumb_func_start sub_812BDC4 sub_812BDC4: @ 812BDC4 push {lr} ldr r2, _0812BDEC ldr r0, _0812BDF0 ldrb r1, [r0] lsls r1, 9 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r0, [r0] adds r2, 0x2 adds r1, r2 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 bl PlayFanfare bl dp01_tbl6_exec_completed pop {r0} bx r0 .align 2, 0 _0812BDEC: .4byte gUnknown_02023A60 _0812BDF0: .4byte gUnknown_02024A60 thumb_func_end sub_812BDC4 thumb_func_start sub_812BDF4 sub_812BDF4: @ 812BDF4 push {lr} ldr r1, _0812BE24 ldr r0, _0812BE28 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0812BE2C adds r0, r1 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 movs r1, 0x19 bl PlayCry1 bl dp01_tbl6_exec_completed pop {r0} bx r0 .align 2, 0 _0812BE24: .4byte gUnknown_02024A6A _0812BE28: .4byte gUnknown_02024A60 _0812BE2C: .4byte gPlayerParty thumb_func_end sub_812BDF4 thumb_func_start dp01t_2E_6_battle_intro dp01t_2E_6_battle_intro: @ 812BE30 push {lr} ldr r1, _0812BE58 ldr r0, _0812BE5C ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] bl sub_80E43C0 ldr r2, _0812BE60 ldrh r0, [r2] movs r1, 0x1 orrs r0, r1 strh r0, [r2] bl dp01_tbl6_exec_completed pop {r0} bx r0 .align 2, 0 _0812BE58: .4byte gUnknown_02023A60 _0812BE5C: .4byte gUnknown_02024A60 _0812BE60: .4byte gUnknown_02024DE8 thumb_func_end dp01t_2E_6_battle_intro thumb_func_start sub_812BE64 sub_812BE64: @ 812BE64 push {r4,r5,lr} ldr r5, _0812BEA0 ldr r4, _0812BEA4 ldrb r1, [r4] adds r0, r1, r5 ldrb r0, [r0] ldr r2, _0812BEA8 lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _0812BEAC adds r1, r2 movs r2, 0xA bl sub_8045A5C ldrb r0, [r4] bl sub_804777C ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl sub_8043DFC bl dp01_tbl6_exec_completed pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812BEA0: .4byte gUnknown_03004340 _0812BEA4: .4byte gUnknown_02024A60 _0812BEA8: .4byte gUnknown_02024A6A _0812BEAC: .4byte gPlayerParty thumb_func_end sub_812BE64 thumb_func_start sub_812BEB0 sub_812BEB0: @ 812BEB0 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BEB0 thumb_func_start sub_812BEBC sub_812BEBC: @ 812BEBC push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BEBC thumb_func_start sub_812BEC8 sub_812BEC8: @ 812BEC8 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BEC8 thumb_func_start sub_812BED4 sub_812BED4: @ 812BED4 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BED4 thumb_func_start sub_812BEE0 sub_812BEE0: @ 812BEE0 push {r4-r6,lr} sub sp, 0x4 ldr r5, _0812BF18 ldr r6, _0812BF1C ldrb r2, [r6] lsls r1, r2, 9 adds r0, r5, 0x1 adds r0, r1, r0 ldrb r3, [r0] adds r0, r5, 0x2 adds r0, r1, r0 ldrb r4, [r0] adds r5, 0x3 adds r1, r5 ldrb r0, [r1] lsls r0, 8 orrs r4, r0 str r4, [sp] adds r0, r2, 0 adds r1, r2, 0 bl move_anim_start_t3 lsls r0, 24 cmp r0, 0 beq _0812BF20 bl dp01_tbl6_exec_completed b _0812BF2C .align 2, 0 _0812BF18: .4byte gUnknown_02023A60 _0812BF1C: .4byte gUnknown_02024A60 _0812BF20: ldr r0, _0812BF34 ldrb r1, [r6] lsls r1, 2 adds r1, r0 ldr r0, _0812BF38 str r0, [r1] _0812BF2C: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812BF34: .4byte gUnknown_03004330 _0812BF38: .4byte sub_812B794 thumb_func_end sub_812BEE0 thumb_func_start sub_812BF3C sub_812BF3C: @ 812BF3C push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BF3C thumb_func_start sub_812BF48 sub_812BF48: @ 812BF48 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BF48 thumb_func_start sub_812BF54 sub_812BF54: @ 812BF54 push {r4,lr} ldr r2, _0812BF98 ldr r1, _0812BF9C ldr r4, _0812BFA0 ldrb r0, [r4] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] strb r0, [r2] movs r0, 0x5 bl FadeOutMapMusic movs r0, 0x3 bl BeginFastPaletteFade bl dp01_tbl6_exec_completed ldr r0, _0812BFA4 ldrh r1, [r0] movs r0, 0x6 ands r0, r1 cmp r0, 0x2 bne _0812BF90 ldr r0, _0812BFA8 ldrb r1, [r4] lsls r1, 2 adds r1, r0 ldr r0, _0812BFAC str r0, [r1] _0812BF90: pop {r4} pop {r0} bx r0 .align 2, 0 _0812BF98: .4byte gUnknown_02024D26 _0812BF9C: .4byte gUnknown_02023A60 _0812BFA0: .4byte gUnknown_02024A60 _0812BFA4: .4byte gUnknown_020239F8 _0812BFA8: .4byte gUnknown_03004330 _0812BFAC: .4byte sub_812B6AC thumb_func_end sub_812BF54 thumb_func_start nullsub_78 nullsub_78: @ 812BFB0 bx lr thumb_func_end nullsub_78 thumb_func_start sub_812BFB4 sub_812BFB4: @ 812BFB4 ldr r1, _0812BFC4 ldr r0, _0812BFC8 str r0, [r1] ldr r1, _0812BFCC ldr r0, _0812BFD0 str r0, [r1] movs r0, 0x1 bx lr .align 2, 0 _0812BFC4: .4byte gUnknown_0300485C _0812BFC8: .4byte sub_808AB90 _0812BFCC: .4byte gUnknown_03005CE4 _0812BFD0: .4byte sub_812BFD4 thumb_func_end sub_812BFB4 thumb_func_start sub_812BFD4 sub_812BFD4: @ 812BFD4 push {lr} movs r0, 0x33 bl FieldEffectStart ldr r0, _0812BFE8 ldr r1, _0812BFEC ldrb r1, [r1] str r1, [r0] pop {r0} bx r0 .align 2, 0 _0812BFE8: .4byte gUnknown_0202FF84 _0812BFEC: .4byte gUnknown_03005CE0 thumb_func_end sub_812BFD4 thumb_func_start sub_812BFF0 sub_812BFF0: @ 812BFF0 push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _0812C014 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _0812C018 lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] movs r0, 0 pop {r1} bx r1 .align 2, 0 _0812C014: .4byte gTasks _0812C018: .4byte sub_812C01C thumb_func_end sub_812BFF0 thumb_func_start sub_812C01C sub_812C01C: @ 812C01C push {lr} sub sp, 0x4 movs r0, 0xEC bl PlaySE bl GetPlayerAvatarObjectId ldr r2, _0812C078 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r1, [r1, 0x5] lsrs r1, 4 adds r1, 0x10 movs r0, 0x1 lsls r0, r1 mvns r0, r0 movs r1, 0x1F str r1, [sp] movs r1, 0x4 movs r2, 0 movs r3, 0x8 bl BeginNormalPaletteFade ldr r0, _0812C07C movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0812C080 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r0, [r1, 0x8] movs r0, 0x33 bl FieldEffectActiveListRemove add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0812C078: .4byte gSprites _0812C07C: .4byte sub_812C084 _0812C080: .4byte gTasks thumb_func_end sub_812C01C thumb_func_start sub_812C084 sub_812C084: @ 812C084 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0812C0C8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _0812C110 ldr r0, _0812C0CC lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r4, r1, r0 ldrh r1, [r4, 0x8] movs r3, 0x8 ldrsh r0, [r4, r3] cmp r0, 0x40 bne _0812C10C strh r2, [r4, 0x8] bl sub_80852FC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812C0D0 adds r0, r5, 0 bl DestroyTask b _0812C110 .align 2, 0 _0812C0C8: .4byte gPaletteFade _0812C0CC: .4byte gTasks _0812C0D0: ldr r0, _0812C104 str r0, [r4] bl GetPlayerAvatarObjectId ldr r2, _0812C108 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r1, [r1, 0x5] lsrs r1, 4 adds r1, 0x10 movs r0, 0x1 lsls r0, r1 mvns r0, r0 movs r1, 0x1F str r1, [sp] movs r1, 0x4 movs r2, 0x8 movs r3, 0 bl BeginNormalPaletteFade b _0812C110 .align 2, 0 _0812C104: .4byte sub_812C118 _0812C108: .4byte gSprites _0812C10C: adds r0, r1, 0x1 strh r0, [r4, 0x8] _0812C110: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_812C084 thumb_func_start sub_812C118 sub_812C118: @ 812C118 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0812C13C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0812C136 ldr r0, _0812C140 bl ScriptContext1_SetupScript adds r0, r4, 0 bl DestroyTask _0812C136: pop {r4} pop {r0} bx r0 .align 2, 0 _0812C13C: .4byte gPaletteFade _0812C140: .4byte SweetScentNothingHereScript thumb_func_end sub_812C118 thumb_func_start sub_812C144 sub_812C144: @ 812C144 push {lr} adds r2, r0, 0 ldr r1, _0812C168 ldrh r0, [r1] ldrh r3, [r2, 0x20] adds r0, r3 strh r0, [r2, 0x20] ldrh r0, [r1, 0x2] ldrh r3, [r2, 0x22] adds r0, r3 strh r0, [r2, 0x22] movs r3, 0x6 ldrsh r0, [r1, r3] cmp r0, 0 bne _0812C16C ldrh r0, [r1, 0x4] b _0812C170 .align 2, 0 _0812C168: .4byte gUnknown_03004B00 _0812C16C: ldrh r0, [r1, 0x4] negs r0, r0 _0812C170: strh r0, [r2, 0x2E] ldrh r0, [r1, 0x8] strh r0, [r2, 0x30] ldr r0, _0812C180 str r0, [r2, 0x1C] pop {r0} bx r0 .align 2, 0 _0812C180: .4byte sub_812C184 thumb_func_end sub_812C144 thumb_func_start sub_812C184 sub_812C184: @ 812C184 push {lr} adds r3, r0, 0 movs r1, 0x30 ldrsh r0, [r3, r1] cmp r0, 0 ble _0812C1C4 ldrh r1, [r3, 0x32] lsls r0, r1, 16 asrs r0, 24 strh r0, [r3, 0x24] ldrh r0, [r3, 0x2E] adds r1, r0 strh r1, [r3, 0x32] movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r2, [r0] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] ldrh r0, [r3, 0x30] subs r0, 0x1 strh r0, [r3, 0x30] b _0812C1CA _0812C1C4: adds r0, r3, 0 bl move_anim_8072740 _0812C1CA: pop {r0} bx r0 thumb_func_end sub_812C184 thumb_func_start sub_812C1D0 sub_812C1D0: @ 812C1D0 push {r4-r6,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r6, _0812C21C ldrb r0, [r6] movs r1, 0x2 bl sub_8077ABC adds r4, r0, 0 lsls r4, 24 lsrs r4, 8 movs r0, 0x80 lsls r0, 12 adds r4, r0 asrs r4, 16 ldrb r0, [r6] movs r1, 0x3 bl sub_8077ABC adds r1, r0, 0 lsls r1, 24 lsrs r1, 8 movs r0, 0x80 lsls r0, 12 adds r1, r0 asrs r1, 16 adds r0, r4, 0 movs r2, 0 bl sub_8046234 adds r0, r5, 0 bl move_anim_task_del pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812C21C: .4byte gUnknown_0202F7C9 thumb_func_end sub_812C1D0 thumb_func_start sub_812C220 sub_812C220: @ 812C220 push {r4,lr} adds r4, r0, 0 movs r0, 0x5A strh r0, [r4, 0x2E] ldr r0, _0812C258 str r0, [r4, 0x1C] movs r0, 0x7 strh r0, [r4, 0x30] ldr r1, _0812C25C adds r0, r4, 0 bl oamt_set_x3A_32 ldr r1, _0812C260 movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] ldr r2, _0812C264 ldrh r1, [r4, 0x30] movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r0, r1 strh r0, [r2] pop {r4} pop {r0} bx r0 .align 2, 0 _0812C258: .4byte sub_80782D8 _0812C25C: .4byte sub_812C268 _0812C260: .4byte REG_BLDCNT _0812C264: .4byte REG_BLDALPHA thumb_func_end sub_812C220 thumb_func_start sub_812C268 sub_812C268: @ 812C268 push {lr} adds r3, r0, 0 ldr r2, _0812C29C ldrh r1, [r3, 0x30] movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r0, r1 strh r0, [r2] ldrh r0, [r3, 0x30] subs r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 cmp r0, 0 bge _0812C296 adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _0812C2A0 str r0, [r3, 0x1C] _0812C296: pop {r0} bx r0 .align 2, 0 _0812C29C: .4byte REG_BLDALPHA _0812C2A0: .4byte sub_812C2A4 thumb_func_end sub_812C268 thumb_func_start sub_812C2A4 sub_812C2A4: @ 812C2A4 push {lr} ldr r1, _0812C2B8 movs r2, 0 strh r2, [r1] adds r1, 0x2 strh r2, [r1] bl move_anim_8072740 pop {r0} bx r0 .align 2, 0 _0812C2B8: .4byte REG_BLDCNT thumb_func_end sub_812C2A4 thumb_func_start sub_812C2BC sub_812C2BC: @ 812C2BC push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 ldr r4, _0812C348 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 adds r0, r5, 0 movs r1, 0x1 bl sub_8078764 ldrh r0, [r5, 0x20] subs r0, r7 lsls r0, 16 asrs r0, 16 ldrh r1, [r5, 0x22] subs r1, r6 lsls r1, 16 asrs r1, 16 bl sub_80790F0 lsls r0, 16 movs r1, 0xC0 lsls r1, 23 adds r0, r1 lsrs r4, r0, 16 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _0812C31A movs r1, 0x80 lsls r1, 7 adds r0, r4, r1 lsls r0, 16 lsrs r4, r0, 16 _0812C31A: movs r3, 0x80 lsls r3, 1 str r4, [sp] adds r0, r5, 0 movs r1, 0 adds r2, r3, 0 bl sub_8078FDC ldr r0, _0812C34C ldrh r0, [r0, 0x4] strh r0, [r5, 0x2E] strh r7, [r5, 0x32] strh r6, [r5, 0x36] ldr r0, _0812C350 str r0, [r5, 0x1C] ldr r1, _0812C354 adds r0, r5, 0 bl oamt_set_x3A_32 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812C348: .4byte gUnknown_0202F7C9 _0812C34C: .4byte gUnknown_03004B00 _0812C350: .4byte sub_8078B34 _0812C354: .4byte move_anim_8072740 thumb_func_end sub_812C2BC thumb_func_start sub_812C358 sub_812C358: @ 812C358 ldr r2, _0812C378 movs r3, 0xFD lsls r3, 6 adds r1, r3, 0 strh r1, [r2] adds r2, 0x2 movs r3, 0x80 lsls r3, 5 adds r1, r3, 0 strh r1, [r2] movs r1, 0x4 strh r1, [r0, 0x2E] ldr r1, _0812C37C str r1, [r0, 0x1C] bx lr .align 2, 0 _0812C378: .4byte REG_BLDCNT _0812C37C: .4byte sub_812C380 thumb_func_end sub_812C358 thumb_func_start sub_812C380 sub_812C380: @ 812C380 push {r4,lr} adds r4, r0, 0 ldr r2, _0812C3A0 ldrh r1, [r4, 0x2E] movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r0, r1 strh r0, [r2] movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0 beq _0812C3A4 ldrh r0, [r4, 0x2E] subs r0, 0x1 b _0812C3A8 .align 2, 0 _0812C3A0: .4byte REG_BLDALPHA _0812C3A4: ldrh r0, [r4, 0x2E] adds r0, 0x1 _0812C3A8: strh r0, [r4, 0x2E] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0xF beq _0812C3B6 cmp r0, 0x4 bne _0812C3BE _0812C3B6: ldrh r0, [r4, 0x30] movs r1, 0x1 eors r0, r1 strh r0, [r4, 0x30] _0812C3BE: ldrh r0, [r4, 0x32] adds r1, r0, 0x1 strh r1, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x46 ble _0812C3FC ldr r0, _0812C404 movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim movs r0, 0 strh r0, [r4, 0x32] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] subs r2, 0x12 ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldr r0, _0812C408 str r0, [r4, 0x1C] _0812C3FC: pop {r4} pop {r0} bx r0 .align 2, 0 _0812C404: .4byte REG_BLDCNT _0812C408: .4byte sub_812C40C thumb_func_end sub_812C380 thumb_func_start sub_812C40C sub_812C40C: @ 812C40C push {lr} adds r3, r0, 0 ldrh r0, [r3, 0x32] adds r1, r0, 0x1 strh r1, [r3, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 ble _0812C448 adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] subs r2, 0x12 ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] adds r0, r3, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0812C448 ldr r0, _0812C44C str r0, [r3, 0x1C] _0812C448: pop {r0} bx r0 .align 2, 0 _0812C44C: .4byte sub_812C450 thumb_func_end sub_812C40C thumb_func_start sub_812C450 sub_812C450: @ 812C450 push {lr} adds r2, r0, 0 movs r1, 0x34 ldrsh r0, [r2, r1] cmp r0, 0x6 bhi _0812C4A8 lsls r0, 2 ldr r1, _0812C468 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0812C468: .4byte _0812C46C .align 2, 0 _0812C46C: .4byte _0812C488 .4byte _0812C488 .4byte _0812C492 .4byte _0812C492 .4byte _0812C4A0 .4byte _0812C4A0 .4byte _0812C4A8 _0812C488: movs r1, 0 movs r0, 0x1 strh r0, [r2, 0x24] strh r1, [r2, 0x26] b _0812C4B0 _0812C492: ldr r0, _0812C49C strh r0, [r2, 0x24] movs r0, 0 b _0812C4AE .align 2, 0 _0812C49C: .4byte 0x0000ffff _0812C4A0: movs r0, 0 strh r0, [r2, 0x24] movs r0, 0x1 b _0812C4AE _0812C4A8: movs r0, 0 strh r0, [r2, 0x24] ldr r0, _0812C4F0 _0812C4AE: strh r0, [r2, 0x26] _0812C4B0: ldrh r0, [r2, 0x34] adds r0, 0x1 movs r3, 0 strh r0, [r2, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _0812C4C2 strh r3, [r2, 0x34] _0812C4C2: ldrh r0, [r2, 0x36] adds r1, r0, 0x1 strh r1, [r2, 0x36] lsls r0, 16 asrs r0, 16 cmp r0, 0xF ble _0812C4EA movs r0, 0x10 strh r0, [r2, 0x2E] strh r3, [r2, 0x30] ldr r1, _0812C4F4 movs r3, 0xFD lsls r3, 6 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 ldrh r0, [r2, 0x2E] strh r0, [r1] ldr r0, _0812C4F8 str r0, [r2, 0x1C] _0812C4EA: pop {r0} bx r0 .align 2, 0 _0812C4F0: .4byte 0x0000ffff _0812C4F4: .4byte REG_BLDCNT _0812C4F8: .4byte sub_812C4FC thumb_func_end sub_812C450 thumb_func_start sub_812C4FC sub_812C4FC: @ 812C4FC push {r4,lr} adds r2, r0, 0 ldr r4, _0812C558 ldrh r1, [r2, 0x2E] movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r0, r1 strh r0, [r4] ldrh r0, [r2, 0x30] adds r1, r0, 0x1 strh r1, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _0812C526 ldrh r0, [r2, 0x2E] subs r0, 0x1 movs r1, 0 strh r0, [r2, 0x2E] strh r1, [r2, 0x30] _0812C526: movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0 bne _0812C53A adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 strb r0, [r3] _0812C53A: movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0 bge _0812C550 ldr r1, _0812C55C movs r0, 0 strh r0, [r1] strh r0, [r4] adds r0, r2, 0 bl move_anim_8072740 _0812C550: pop {r4} pop {r0} bx r0 .align 2, 0 _0812C558: .4byte REG_BLDALPHA _0812C55C: .4byte REG_BLDCNT thumb_func_end sub_812C4FC thumb_func_start sub_812C560 sub_812C560: @ 812C560 lsls r0, 24 lsrs r0, 24 ldr r2, _0812C57C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _0812C580 str r0, [r1] ldr r1, _0812C584 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] bx lr .align 2, 0 _0812C57C: .4byte gTasks _0812C580: .4byte sub_812C588 _0812C584: .4byte gUnknown_0202F7B2 thumb_func_end sub_812C560 thumb_func_start sub_812C588 sub_812C588: @ 812C588 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r4, r0, 24 bl sub_80789BC lsls r0, 24 lsrs r6, r0, 24 ldr r7, _0812C614 lsls r5, r4, 2 adds r1, r5, r4 lsls r1, 3 adds r1, r7 ldrh r0, [r1, 0x12] adds r0, 0x1 strh r0, [r1, 0x12] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _0812C5F8 ldr r0, _0812C618 lsls r2, r6, 4 adds r1, r2, 0 adds r1, 0xB lsls r1, 1 adds r1, r0 ldrh r3, [r1] mov r8, r3 movs r3, 0xA mov r9, r7 adds r7, r5, 0 mov r12, r0 adds r5, r2, 0 lsls r0, r6, 5 add r0, r12 adds r2, r0, 0 adds r2, 0x14 _0812C5D6: ldrh r0, [r2] strh r0, [r1] subs r2, 0x2 subs r1, 0x2 subs r3, 0x1 cmp r3, 0 bgt _0812C5D6 adds r0, r5, 0x1 lsls r0, 1 add r0, r12 movs r1, 0 mov r2, r8 strh r2, [r0] adds r0, r7, r4 lsls r0, 3 add r0, r9 strh r1, [r0, 0x12] _0812C5F8: ldr r0, _0812C61C ldrh r1, [r0, 0xE] ldr r0, _0812C620 cmp r1, r0 bne _0812C608 adds r0, r4, 0 bl DestroyTask _0812C608: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812C614: .4byte gTasks _0812C618: .4byte gPlttBufferFaded _0812C61C: .4byte gUnknown_03004B00 _0812C620: .4byte 0x0000ffff thumb_func_end sub_812C588 thumb_func_start sub_812C624 sub_812C624: @ 812C624 lsls r0, 24 lsrs r0, 24 ldr r2, _0812C640 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _0812C644 str r0, [r1] ldr r1, _0812C648 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] bx lr .align 2, 0 _0812C640: .4byte gTasks _0812C644: .4byte sub_812C64C _0812C648: .4byte gUnknown_0202F7B2 thumb_func_end sub_812C624 thumb_func_start sub_812C64C sub_812C64C: @ 812C64C 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 bl sub_80789BC lsls r0, 24 lsrs r7, r0, 24 ldr r5, _0812C70C mov r0, r8 lsls r3, r0, 2 adds r1, r3, r0 lsls r1, 3 adds r1, r5 ldrh r0, [r1, 0x12] adds r0, 0x1 strh r0, [r1, 0x12] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _0812C6EE ldr r0, _0812C710 lsls r2, r7, 4 adds r1, r2, 0 adds r1, 0xB lsls r1, 1 adds r1, r0 ldrh r6, [r1] movs r4, 0xA mov r10, r3 mov r9, r0 adds r5, r2, 0 ldr r2, _0812C714 mov r12, r2 lsls r0, r7, 5 add r0, r9 adds r3, r0, 0 adds r3, 0x14 _0812C6A0: ldrh r0, [r3] strh r0, [r1] subs r3, 0x2 subs r1, 0x2 subs r4, 0x1 cmp r4, 0 bgt _0812C6A0 adds r0, r5, 0x1 lsls r0, 1 add r0, r9 strh r6, [r0] adds r1, r5, 0 adds r1, 0xB lsls r1, 1 add r1, r12 ldrh r6, [r1] movs r4, 0xA lsls r0, r7, 5 add r0, r12 adds r2, r0, 0 adds r2, 0x14 _0812C6CA: ldrh r0, [r2] strh r0, [r1] subs r2, 0x2 subs r1, 0x2 subs r4, 0x1 cmp r4, 0 bgt _0812C6CA adds r0, r5, 0x1 lsls r0, 1 add r0, r12 movs r1, 0 strh r6, [r0] mov r0, r10 add r0, r8 lsls r0, 3 ldr r2, _0812C70C adds r0, r2 strh r1, [r0, 0x12] _0812C6EE: ldr r0, _0812C718 ldrh r1, [r0, 0xE] ldr r0, _0812C71C cmp r1, r0 bne _0812C6FE mov r0, r8 bl DestroyTask _0812C6FE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812C70C: .4byte gTasks _0812C710: .4byte gPlttBufferFaded _0812C714: .4byte gPlttBufferUnfaded _0812C718: .4byte gUnknown_03004B00 _0812C71C: .4byte 0x0000ffff thumb_func_end sub_812C64C thumb_func_start sub_812C720 sub_812C720: @ 812C720 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _0812C784 ldrb r0, [r0] mov r5, sp adds r5, 0x2 movs r1, 0 mov r2, sp adds r3, r5, 0 bl sub_807A3FC ldr r0, _0812C788 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0812C754 ldr r1, _0812C78C ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _0812C754: ldr r1, _0812C78C ldrh r0, [r1, 0x8] strh r0, [r4, 0x2E] mov r2, sp ldrh r0, [r1, 0x4] ldrh r2, [r2] adds r0, r2 strh r0, [r4, 0x32] ldrh r0, [r1, 0x6] ldrh r5, [r5] adds r0, r5 strh r0, [r4, 0x36] ldr r0, _0812C790 strh r0, [r4, 0x38] adds r0, r4, 0 bl sub_80786EC ldr r0, _0812C794 str r0, [r4, 0x1C] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812C784: .4byte gUnknown_0202F7C9 _0812C788: .4byte gUnknown_0202F7C8 _0812C78C: .4byte gUnknown_03004B00 _0812C790: .4byte 0x0000ffce _0812C794: .4byte sub_812C798 thumb_func_end sub_812C720 thumb_func_start sub_812C798 sub_812C798: @ 812C798 push {r4,lr} adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _0812C7BA movs r1, 0 movs r0, 0x1E strh r0, [r4, 0x2E] strh r1, [r4, 0x30] ldr r0, _0812C7C0 str r0, [r4, 0x1C] ldr r1, _0812C7C4 adds r0, r4, 0 bl oamt_set_x3A_32 _0812C7BA: pop {r4} pop {r0} bx r0 .align 2, 0 _0812C7C0: .4byte sub_80782D8 _0812C7C4: .4byte sub_812C7C8 thumb_func_end sub_812C798 thumb_func_start sub_812C7C8 sub_812C7C8: @ 812C7C8 push {lr} adds r3, r0, 0 ldrh r1, [r3, 0x30] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0812C7F4 movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r2, [r0] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] _0812C7F4: ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 bne _0812C808 adds r0, r3, 0 bl move_anim_8072740 _0812C808: pop {r0} bx r0 thumb_func_end sub_812C7C8 thumb_func_start sub_812C80C sub_812C80C: @ 812C80C push {r4,r5,lr} adds r4, r0, 0 bl sub_8078650 ldr r5, _0812C83C movs r0, 0 ldrsh r1, [r5, r0] adds r0, r4, 0 bl sub_807867C ldrh r0, [r5, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldr r0, _0812C840 str r0, [r4, 0x1C] ldr r1, _0812C844 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812C83C: .4byte gUnknown_03004B00 _0812C840: .4byte sub_8078600 _0812C844: .4byte move_anim_8072740 thumb_func_end sub_812C80C thumb_func_start sub_812C848 sub_812C848: @ 812C848 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _0812C8A8 adds r0, r4, 0 bl sub_8078650 ldr r5, _0812C884 movs r2, 0 ldrsh r1, [r5, r2] adds r0, r4, 0 bl sub_807867C bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _0812C89C ldr r0, _0812C888 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0812C88C ldrh r0, [r5, 0x4] b _0812C8A2 .align 2, 0 _0812C884: .4byte gUnknown_03004B00 _0812C888: .4byte gUnknown_0202F7C8 _0812C88C: movs r1, 0x4 ldrsh r0, [r5, r1] negs r0, r0 strh r0, [r4, 0x30] movs r2, 0x6 ldrsh r0, [r5, r2] negs r0, r0 b _0812C8A6 _0812C89C: movs r1, 0x4 ldrsh r0, [r5, r1] negs r0, r0 _0812C8A2: strh r0, [r4, 0x30] ldrh r0, [r5, 0x6] _0812C8A6: strh r0, [r4, 0x32] _0812C8A8: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] movs r2, 0x2E ldrsh r1, [r4, r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 movs r3, 0xFF ldrh r1, [r4, 0x30] ldrh r2, [r4, 0x34] adds r1, r2 strh r1, [r4, 0x34] ldrh r1, [r4, 0x32] ldrh r2, [r4, 0x36] adds r1, r2 strh r1, [r4, 0x36] movs r2, 0x34 ldrsh r1, [r4, r2] lsrs r2, r1, 31 adds r1, r2 asrs r1, 1 strh r1, [r4, 0x24] ands r0, r3 movs r1, 0x5 bl Sin movs r2, 0x36 ldrsh r1, [r4, r2] lsrs r2, r1, 31 adds r1, r2 asrs r1, 1 adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 lsls r0, 16 lsrs r0, 16 cmp r0, 0xF0 bls _0812C900 adds r0, r4, 0 bl move_anim_8072740 _0812C900: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_812C848 thumb_func_start sub_812C908 sub_812C908: @ 812C908 push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0812C91E adds r0, r2, 0 bl move_anim_8072740 _0812C91E: pop {r0} bx r0 thumb_func_end sub_812C908 thumb_func_start sub_812C924 sub_812C924: @ 812C924 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0812C940 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812C948 ldr r1, _0812C944 movs r0, 0 b _0812C94C .align 2, 0 _0812C940: .4byte gUnknown_0202F7C9 _0812C944: .4byte gUnknown_03004B00 _0812C948: ldr r1, _0812C95C movs r0, 0x1 _0812C94C: strh r0, [r1, 0xE] adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _0812C95C: .4byte gUnknown_03004B00 thumb_func_end sub_812C924 thumb_func_start sub_812C960 sub_812C960: @ 812C960 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0812C974 ldr r0, [r0] cmp r0, 0 ble _0812C97C ldr r1, _0812C978 movs r0, 0 b _0812C980 .align 2, 0 _0812C974: .4byte gUnknown_0202F7B8 _0812C978: .4byte gUnknown_03004B00 _0812C97C: ldr r1, _0812C98C movs r0, 0x1 _0812C980: strh r0, [r1, 0xE] adds r0, r2, 0 bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _0812C98C: .4byte gUnknown_03004B00 thumb_func_end sub_812C960 thumb_func_start sub_812C990 sub_812C990: @ 812C990 push {r4,lr} adds r4, r0, 0 ldr r1, _0812C9EC ldr r2, _0812C9F0 adds r0, r2, 0 strh r0, [r1] movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] ldr r0, _0812C9F4 movs r1, 0 strh r1, [r0] ldr r0, _0812C9F8 strh r1, [r0] ldr r0, _0812C9FC strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, r4, 0 movs r1, 0 bl sub_8078764 ldrb r1, [r4, 0x1] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r4, 0x1] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _0812CA00 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _0812C9EC: .4byte REG_WINOUT _0812C9F0: .4byte 0x00001f3f _0812C9F4: .4byte gUnknown_030042C4 _0812C9F8: .4byte gUnknown_03004240 _0812C9FC: .4byte REG_WIN0H _0812CA00: .4byte sub_812CA04 thumb_func_end sub_812C990 thumb_func_start sub_812CA04 sub_812CA04: @ 812CA04 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x5 bhi _0812CAC4 lsls r0, 2 ldr r1, _0812CA1C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0812CA1C: .4byte _0812CA20 .align 2, 0 _0812CA20: .4byte _0812CA38 .4byte _0812CA56 .4byte _0812CA76 .4byte _0812CA56 .4byte _0812CA96 .4byte _0812CAA6 _0812CA38: adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0812CAC4 b _0812CA9E _0812CA56: ldrh r0, [r4, 0x30] adds r0, 0x75 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x24] ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x15 bne _0812CAC4 movs r0, 0 strh r0, [r4, 0x32] b _0812CA9E _0812CA76: ldrh r0, [r4, 0x30] subs r0, 0x75 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x24] ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x29 bne _0812CAC4 movs r0, 0 strh r0, [r4, 0x32] b _0812CA9E _0812CA96: adds r0, r4, 0 movs r1, 0x1 bl ChangeSpriteAffineAnim _0812CA9E: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _0812CAC4 _0812CAA6: adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0812CAC4 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _0812CACC str r0, [r4, 0x1C] _0812CAC4: pop {r4} pop {r0} bx r0 .align 2, 0 _0812CACC: .4byte sub_812CAD0 thumb_func_end sub_812CA04 thumb_func_start sub_812CAD0 sub_812CAD0: @ 812CAD0 push {r4,lr} ldr r2, _0812CAF4 ldr r3, _0812CAF8 adds r1, r3, 0 strh r1, [r2] movs r3, 0x80 lsls r3, 19 ldrh r1, [r3] movs r4, 0x80 lsls r4, 8 adds r2, r4, 0 eors r1, r2 strh r1, [r3] bl move_anim_8072740 pop {r4} pop {r0} bx r0 .align 2, 0 _0812CAF4: .4byte REG_WINOUT _0812CAF8: .4byte 0x00003f3f thumb_func_end sub_812CAD0 thumb_func_start sub_812CAFC sub_812CAFC: @ 812CAFC push {r4-r6,lr} adds r5, r0, 0 ldr r6, _0812CB70 movs r1, 0x6 ldrsh r0, [r6, r1] cmp r0, 0 bne _0812CB28 ldr r4, _0812CB74 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] _0812CB28: ldrh r0, [r6] ldrh r2, [r5, 0x20] adds r0, r2 movs r3, 0 strh r0, [r5, 0x20] ldrh r0, [r6, 0x2] ldrh r4, [r5, 0x22] adds r0, r4 strh r0, [r5, 0x22] ldrh r2, [r5, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x10 ldr r4, _0812CB78 adds r0, r4, 0 ands r1, r0 ldr r0, _0812CB7C ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] movs r1, 0x4 ldrsh r0, [r6, r1] cmp r0, 0 bne _0812CB84 ldrb r1, [r5, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x10 orrs r0, r1 strb r0, [r5, 0x3] ldr r0, _0812CB80 strh r0, [r5, 0x24] movs r0, 0x2 b _0812CB8A .align 2, 0 _0812CB70: .4byte gUnknown_03004B00 _0812CB74: .4byte gUnknown_0202F7C8 _0812CB78: .4byte 0x000003ff _0812CB7C: .4byte 0xfffffc00 _0812CB80: .4byte 0x0000fff4 _0812CB84: movs r0, 0xC strh r0, [r5, 0x24] ldr r0, _0812CBA8 _0812CB8A: strh r0, [r5, 0x30] ldr r1, _0812CBAC ldrh r0, [r1, 0x8] strh r0, [r5, 0x2E] movs r2, 0x34 ldrsh r0, [r5, r2] cmp r0, 0xFF beq _0812CB9E ldrh r0, [r1, 0x4] strh r0, [r5, 0x34] _0812CB9E: ldr r0, _0812CBB0 str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812CBA8: .4byte 0x0000fffe _0812CBAC: .4byte gUnknown_03004B00 _0812CBB0: .4byte sub_812CBB4 thumb_func_end sub_812CAFC thumb_func_start sub_812CBB4 sub_812CBB4: @ 812CBB4 push {r4,lr} adds r4, r0, 0 ldrh r2, [r4, 0x32] movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 bne _0812CBF2 ldrh r0, [r4, 0x30] ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] lsls r0, 16 cmp r0, 0 bne _0812CC12 adds r0, r2, 0x1 strh r0, [r4, 0x32] movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0 bne _0812CC12 movs r0, 0x40 negs r0, r0 bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xDE bl PlaySE1WithPanning b _0812CC12 _0812CBF2: ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x30] subs r0, r1 strh r0, [r4, 0x24] movs r1, 0x24 ldrsh r0, [r4, r1] cmp r0, 0 bge _0812CC04 negs r0, r0 _0812CC04: cmp r0, 0xC bne _0812CC12 ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] subs r0, r2, 0x1 strh r0, [r4, 0x32] _0812CC12: movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _0812CC20 adds r0, r4, 0 bl move_anim_8072740 _0812CC20: pop {r4} pop {r0} bx r0 thumb_func_end sub_812CBB4 thumb_func_start sub_812CC28 sub_812CC28: @ 812CC28 push {lr} ldrb r2, [r0, 0x1] movs r1, 0xD negs r1, r1 ands r1, r2 movs r2, 0x8 orrs r1, r2 strb r1, [r0, 0x1] movs r1, 0xFF strh r1, [r0, 0x34] bl sub_812CAFC pop {r0} bx r0 thumb_func_end sub_812CC28 thumb_func_start sub_812CC44 sub_812CC44: @ 812CC44 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _0812CC7A ldr r1, _0812CC88 ldr r2, _0812CC8C adds r0, r2, 0 strh r0, [r1] ldr r1, _0812CC90 ldr r2, _0812CC94 adds r0, r2, 0 strh r0, [r1] ldr r1, _0812CC98 movs r0, 0xA0 strh r0, [r1] ldr r1, _0812CC9C ldr r0, _0812CCA0 ldrh r0, [r0] strh r0, [r1] adds r1, 0x4 ldr r0, _0812CCA4 ldrh r0, [r0] strh r0, [r1] _0812CC7A: adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _0812CC88: .4byte REG_WININ _0812CC8C: .4byte 0x00001f3f _0812CC90: .4byte gUnknown_03004200 _0812CC94: .4byte 0x000098f0 _0812CC98: .4byte gUnknown_03004244 _0812CC9C: .4byte REG_WIN1H _0812CCA0: .4byte gUnknown_030042C4 _0812CCA4: .4byte gUnknown_03004240 thumb_func_end sub_812CC44 thumb_func_start sub_812CCA8 sub_812CCA8: @ 812CCA8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _0812CCCA ldr r1, _0812CCD8 ldr r2, _0812CCDC adds r0, r2, 0 strh r0, [r1] ldr r0, _0812CCE0 movs r1, 0 strh r1, [r0] ldr r0, _0812CCE4 strh r1, [r0] _0812CCCA: adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _0812CCD8: .4byte REG_WININ _0812CCDC: .4byte 0x00003f3f _0812CCE0: .4byte gUnknown_03004200 _0812CCE4: .4byte gUnknown_03004244 thumb_func_end sub_812CCA8 thumb_func_start sub_812CCE8 sub_812CCE8: @ 812CCE8 push {r4-r6,lr} adds r5, r0, 0 ldr r6, _0812CCFC movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _0812CD04 ldr r4, _0812CD00 b _0812CD06 .align 2, 0 _0812CCFC: .4byte gUnknown_03004B00 _0812CD00: .4byte gUnknown_0202F7C8 _0812CD04: ldr r4, _0812CD58 _0812CD06: ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x2] adds r0, r6 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r2, _0812CD5C ldrh r0, [r2, 0x4] strh r0, [r5, 0x26] movs r3, 0 lsls r0, 16 asrs r0, 16 ldrh r4, [r2, 0x6] movs r6, 0x6 ldrsh r1, [r2, r6] cmp r0, r1 ble _0812CD3E movs r3, 0x1 _0812CD3E: strh r3, [r5, 0x2E] movs r0, 0 strh r0, [r5, 0x30] ldrh r0, [r2, 0x8] strh r0, [r5, 0x32] ldrh r0, [r2, 0xA] strh r0, [r5, 0x34] strh r4, [r5, 0x36] ldr r0, _0812CD60 str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812CD58: .4byte gUnknown_0202F7C9 _0812CD5C: .4byte gUnknown_03004B00 _0812CD60: .4byte sub_812CD64 thumb_func_end sub_812CCE8 thumb_func_start sub_812CD64 sub_812CD64: @ 812CD64 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x32] ldrh r1, [r2, 0x30] adds r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r2, 0x30] ldr r1, _0812CDAC movs r3, 0x30 ldrsh r0, [r2, r3] lsls r0, 1 adds r0, r1 ldrh r0, [r0] lsls r0, 16 asrs r0, 20 strh r0, [r2, 0x24] ldrh r0, [r2, 0x34] ldrh r3, [r2, 0x26] adds r1, r0, r3 strh r1, [r2, 0x26] movs r3, 0x2E ldrsh r0, [r2, r3] cmp r0, 0 beq _0812CDB0 lsls r0, r1, 16 asrs r0, 16 movs r3, 0x36 ldrsh r1, [r2, r3] cmp r0, r1 bge _0812CDC2 adds r0, r2, 0 bl move_anim_8072740 b _0812CDC2 .align 2, 0 _0812CDAC: .4byte gSineTable _0812CDB0: lsls r0, r1, 16 asrs r0, 16 movs r3, 0x36 ldrsh r1, [r2, r3] cmp r0, r1 ble _0812CDC2 adds r0, r2, 0 bl move_anim_8072740 _0812CDC2: pop {r0} bx r0 thumb_func_end sub_812CD64 thumb_func_start sub_812CDC8 sub_812CDC8: @ 812CDC8 push {r4-r7,lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _0812CDE8 adds r5, r1, r0 ldr r0, _0812CDEC movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _0812CDF4 ldr r4, _0812CDF0 b _0812CDF6 .align 2, 0 _0812CDE8: .4byte gTasks _0812CDEC: .4byte gUnknown_03004B00 _0812CDF0: .4byte gUnknown_0202F7C8 _0812CDF4: ldr r4, _0812CE3C _0812CDF6: ldrb r0, [r4] bl sub_8077FC0 lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r7, r0, 24 adds r0, r6, 0 adds r1, r0, 0 adds r1, 0x24 movs r2, 0 strh r1, [r5, 0x8] strh r1, [r5, 0xA] subs r0, 0x21 strh r0, [r5, 0xC] cmp r0, 0 bge _0812CE20 strh r2, [r5, 0xC] _0812CE20: ldrh r0, [r5, 0x8] strh r0, [r5, 0xE] movs r0, 0x8 strh r0, [r5, 0x10] ldr r1, _0812CE40 ldrh r0, [r1, 0x2] strh r0, [r5, 0x12] strh r2, [r5, 0x14] strh r2, [r5, 0x16] cmp r7, 0x1 bne _0812CE48 ldr r0, _0812CE44 b _0812CE4A .align 2, 0 _0812CE3C: .4byte gUnknown_0202F7C9 _0812CE40: .4byte gUnknown_03004B00 _0812CE44: .4byte gUnknown_030042C0 _0812CE48: ldr r0, _0812CE68 _0812CE4A: ldrh r2, [r0] strh r2, [r5, 0x18] adds r3, r2, 0 adds r3, 0xF0 strh r3, [r5, 0x1A] ldrh r0, [r1, 0x4] strh r0, [r5, 0x1C] movs r4, 0x4 ldrsh r0, [r1, r4] cmp r0, 0 bne _0812CE6C strh r3, [r5, 0x1E] ldrh r3, [r5, 0x18] b _0812CE70 .align 2, 0 _0812CE68: .4byte gUnknown_03004288 _0812CE6C: strh r2, [r5, 0x1E] ldrh r3, [r5, 0x1A] _0812CE70: movs r0, 0 strh r0, [r5, 0x26] ldrh r1, [r5, 0xC] lsls r2, r1, 16 asrs r1, r2, 16 movs r6, 0xE ldrsh r0, [r5, r6] cmp r1, r0 bgt _0812CEA6 ldr r4, _0812CEB0 movs r0, 0xF0 lsls r0, 3 adds r0, r4 mov r12, r0 _0812CE8C: asrs r2, 16 lsls r1, r2, 1 adds r0, r1, r4 strh r3, [r0] add r1, r12 strh r3, [r1] adds r2, 0x1 lsls r2, 16 asrs r1, r2, 16 movs r6, 0xE ldrsh r0, [r5, r6] cmp r1, r0 ble _0812CE8C _0812CEA6: cmp r7, 0x1 bne _0812CEB8 ldr r0, _0812CEB4 b _0812CEBA .align 2, 0 _0812CEB0: .4byte gUnknown_03004DE0 _0812CEB4: .4byte REG_BG1HOFS _0812CEB8: ldr r0, _0812CEE4 _0812CEBA: str r0, [sp] ldr r0, _0812CEE8 str r0, [sp, 0x4] mov r1, sp movs r2, 0 movs r0, 0x1 strb r0, [r1, 0x8] mov r0, sp strb r2, [r0, 0x9] ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] bl sub_80895F8 ldr r0, _0812CEEC str r0, [r5] add sp, 0xC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812CEE4: .4byte REG_BG2HOFS _0812CEE8: .4byte 0xa2600001 _0812CEEC: .4byte sub_812CEF0 thumb_func_end sub_812CDC8 thumb_func_start sub_812CEF0 sub_812CEF0: @ 812CEF0 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, _0812CF40 adds r4, r0, r1 ldrh r0, [r4, 0x8] ldrh r1, [r4, 0x12] subs r0, r1 strh r0, [r4, 0x8] lsls r0, 16 asrs r0, 16 ldrh r2, [r4, 0xC] movs r3, 0xC ldrsh r1, [r4, r3] cmp r0, r1 bge _0812CF18 strh r2, [r4, 0x8] _0812CF18: ldrh r1, [r4, 0x10] movs r2, 0x10 ldrsh r0, [r4, r2] cmp r0, 0 bne _0812CF44 ldrh r0, [r4, 0xA] ldrh r1, [r4, 0x12] subs r0, r1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 ldrh r2, [r4, 0xC] movs r3, 0xC ldrsh r1, [r4, r3] cmp r0, r1 bge _0812CF48 strh r2, [r4, 0xA] movs r0, 0x1 strh r0, [r4, 0x26] b _0812CF48 .align 2, 0 _0812CF40: .4byte gTasks _0812CF44: subs r0, r1, 0x1 strh r0, [r4, 0x10] _0812CF48: ldrh r0, [r4, 0x14] adds r0, 0x1 strh r0, [r4, 0x14] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _0812CF74 movs r0, 0 strh r0, [r4, 0x14] movs r1, 0 movs r2, 0x16 ldrsh r0, [r4, r2] cmp r0, 0 bne _0812CF66 movs r1, 0x1 _0812CF66: strh r1, [r4, 0x16] cmp r1, 0 beq _0812CF70 ldrh r0, [r4, 0x18] b _0812CF72 _0812CF70: ldrh r0, [r4, 0x1A] _0812CF72: strh r0, [r4, 0x20] _0812CF74: ldrh r1, [r4, 0x8] lsls r3, r1, 16 asrs r1, r3, 16 movs r2, 0xA ldrsh r0, [r4, r2] cmp r1, r0 bge _0812CFA8 ldr r5, _0812D000 movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 _0812CF8A: asrs r3, 16 lsls r1, r3, 1 adds r2, r1, r5 ldrh r0, [r4, 0x20] strh r0, [r2] adds r1, r6 ldrh r0, [r4, 0x20] strh r0, [r1] adds r3, 0x1 lsls r3, 16 asrs r1, r3, 16 movs r2, 0xA ldrsh r0, [r4, r2] cmp r1, r0 blt _0812CF8A _0812CFA8: ldrh r1, [r4, 0xA] lsls r3, r1, 16 asrs r1, r3, 16 movs r2, 0xE ldrsh r0, [r4, r2] cmp r1, r0 bgt _0812CFDC ldr r5, _0812D000 movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 _0812CFBE: asrs r3, 16 lsls r1, r3, 1 adds r2, r1, r5 ldrh r0, [r4, 0x1E] strh r0, [r2] adds r1, r6 ldrh r0, [r4, 0x1E] strh r0, [r1] adds r3, 0x1 lsls r3, 16 asrs r1, r3, 16 movs r2, 0xE ldrsh r0, [r4, r2] cmp r1, r0 ble _0812CFBE _0812CFDC: movs r3, 0x26 ldrsh r0, [r4, r3] cmp r0, 0 beq _0812CFF8 movs r1, 0x1C ldrsh r0, [r4, r1] cmp r0, 0 beq _0812CFF2 ldr r1, _0812D004 movs r0, 0x3 strb r0, [r1, 0x15] _0812CFF2: adds r0, r7, 0 bl move_anim_task_del _0812CFF8: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812D000: .4byte gUnknown_03004DE0 _0812D004: .4byte gUnknown_03004DC0 thumb_func_end sub_812CEF0 thumb_func_start sub_812D008 sub_812D008: @ 812D008 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _0812D05C adds r4, r0 movs r5, 0 strh r5, [r4, 0x8] strh r5, [r4, 0xA] ldr r6, _0812D060 ldrb r0, [r6] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xC] ldrb r0, [r6] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xE] movs r0, 0x20 strh r0, [r4, 0x10] ldr r0, _0812D064 strh r0, [r4, 0x12] strh r5, [r4, 0x14] movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] ldr r0, _0812D068 str r0, [r4] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812D05C: .4byte gTasks _0812D060: .4byte gUnknown_0202F7C8 _0812D064: .4byte 0x0000ffec _0812D068: .4byte sub_812D06C thumb_func_end sub_812D008 thumb_func_start sub_812D06C sub_812D06C: @ 812D06C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _0812D098 adds r6, r0, r1 movs r1, 0x8 ldrsh r0, [r6, r1] cmp r0, 0x5 bls _0812D08C b _0812D246 _0812D08C: lsls r0, 2 ldr r1, _0812D09C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0812D098: .4byte gTasks _0812D09C: .4byte _0812D0A0 .align 2, 0 _0812D0A0: .4byte _0812D0B8 .4byte _0812D178 .4byte _0812D1A6 .4byte _0812D1BA .4byte _0812D1D0 .4byte _0812D238 _0812D0B8: movs r0, 0xC ldrsh r2, [r6, r0] ldrh r1, [r6, 0xA] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0812D0CE movs r1, 0x10 ldrsh r0, [r6, r1] subs r0, r2, r0 b _0812D0D4 _0812D0CE: movs r1, 0x10 ldrsh r0, [r6, r1] adds r0, r2, r0 _0812D0D4: lsls r0, 16 lsrs r1, r0, 16 ldrh r2, [r6, 0x12] ldrh r0, [r6, 0xE] adds r2, r0 ldr r0, _0812D168 lsls r1, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 ldrb r4, [r6, 0xA] movs r3, 0x6 subs r3, r4 lsls r3, 24 lsrs r3, 24 bl CreateSprite lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x40 negs r0, r0 bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xBA bl PlaySE12WithPanning cmp r4, 0x40 beq _0812D138 ldr r5, _0812D16C lsls r1, r4, 4 adds r1, r4 lsls r1, 2 adds r3, r1, r5 ldrh r0, [r6, 0xA] movs r2, 0x1 ands r2, r0 adds r3, 0x3F ldrb r4, [r3] movs r0, 0x2 negs r0, r0 ands r0, r4 orrs r0, r2 strb r0, [r3] adds r5, 0x1C adds r1, r5 ldr r0, _0812D170 str r0, [r1] _0812D138: ldrh r1, [r6, 0xA] movs r4, 0x1 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0812D150 ldrh r0, [r6, 0x10] subs r0, 0x6 strh r0, [r6, 0x10] ldrh r0, [r6, 0x12] subs r0, 0x6 strh r0, [r6, 0x12] _0812D150: ldrh r1, [r6, 0x26] lsls r1, 24 lsrs r1, 24 ldr r2, _0812D174 adds r0, r6, 0 bl sub_80798F4 ldrh r0, [r6, 0xA] adds r0, 0x1 strh r0, [r6, 0xA] strh r4, [r6, 0x8] b _0812D246 .align 2, 0 _0812D168: .4byte gBattleAnimSpriteTemplate_83D7220 _0812D16C: .4byte gSprites _0812D170: .4byte SpriteCallbackDummy _0812D174: .4byte gUnknown_08402400 _0812D178: adds r0, r6, 0 bl sub_807992C lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0812D246 movs r2, 0xA ldrsh r1, [r6, r2] cmp r1, 0x6 bne _0812D198 movs r0, 0x8 strh r0, [r6, 0x14] movs r0, 0x3 strh r0, [r6, 0x8] b _0812D246 _0812D198: cmp r1, 0x2 bgt _0812D19E movs r0, 0xA _0812D19E: strh r0, [r6, 0x14] movs r0, 0x2 strh r0, [r6, 0x8] b _0812D246 _0812D1A6: ldrh r0, [r6, 0x14] movs r2, 0x14 ldrsh r1, [r6, r2] cmp r1, 0 beq _0812D1B6 subs r0, 0x1 strh r0, [r6, 0x14] b _0812D246 _0812D1B6: strh r1, [r6, 0x8] b _0812D246 _0812D1BA: ldrh r1, [r6, 0x14] movs r2, 0x14 ldrsh r0, [r6, r2] cmp r0, 0 beq _0812D1CA subs r0, r1, 0x1 strh r0, [r6, 0x14] b _0812D246 _0812D1CA: movs r0, 0x4 strh r0, [r6, 0x8] b _0812D246 _0812D1D0: movs r5, 0 movs r7, 0 ldr r3, _0812D22C movs r0, 0x1C adds r0, r3 mov r8, r0 _0812D1DC: lsls r0, r5, 4 adds r0, r5 lsls r4, r0, 2 adds r0, r3, 0 adds r0, 0x14 adds r0, r4, r0 ldr r1, [r0] ldr r0, _0812D230 cmp r1, r0 bne _0812D218 adds r0, r4, r3 strh r2, [r0, 0x2E] movs r1, 0x6 strh r1, [r0, 0x30] movs r1, 0x2 str r2, [sp] str r3, [sp, 0x4] bl StartSpriteAnim mov r0, r8 adds r1, r4, r0 ldr r0, _0812D234 str r0, [r1] adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 ldr r2, [sp] ldr r3, [sp, 0x4] cmp r7, 0x6 beq _0812D222 _0812D218: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x3F bls _0812D1DC _0812D222: strh r7, [r6, 0x14] movs r0, 0x5 strh r0, [r6, 0x8] b _0812D246 .align 2, 0 _0812D22C: .4byte gSprites _0812D230: .4byte gBattleAnimSpriteTemplate_83D7220 _0812D234: .4byte sub_812D254 _0812D238: movs r1, 0x14 ldrsh r0, [r6, r1] cmp r0, 0 bne _0812D246 adds r0, r2, 0 bl move_anim_task_del _0812D246: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_812D06C thumb_func_start sub_812D254 sub_812D254: @ 812D254 push {r4,lr} adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0812D288 ldr r3, _0812D290 movs r0, 0x30 ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x2E ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 bl DestroySprite _0812D288: pop {r4} pop {r0} bx r0 .align 2, 0 _0812D290: .4byte gTasks thumb_func_end sub_812D254 thumb_func_start sub_812D294 sub_812D294: @ 812D294 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 bne _0812D2A8 adds r0, r5, 0 movs r1, 0 bl sub_80787B0 _0812D2A8: ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x27 bgt _0812D2DA ldrh r0, [r5, 0x2E] movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _0812D2CC adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 b _0812D2D8 _0812D2CC: adds r2, r5, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 _0812D2D8: strb r0, [r2] _0812D2DA: movs r2, 0x2E ldrsh r0, [r5, r2] cmp r0, 0x1E ble _0812D2F0 adds r2, r5, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _0812D2F0: movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0x3D bne _0812D33C ldr r1, _0812D344 adds r0, r5, 0 bl oamt_set_x3A_32 ldrh r0, [r5, 0x24] ldrh r2, [r5, 0x20] adds r0, r2 movs r1, 0 strh r0, [r5, 0x20] ldrh r0, [r5, 0x26] ldrh r2, [r5, 0x22] adds r0, r2 strh r0, [r5, 0x22] strh r1, [r5, 0x24] strh r1, [r5, 0x26] movs r0, 0x14 strh r0, [r5, 0x2E] ldr r4, _0812D348 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] ldr r0, _0812D34C str r0, [r5, 0x1C] _0812D33C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812D344: .4byte move_anim_8072740 _0812D348: .4byte gUnknown_0202F7C9 _0812D34C: .4byte sub_8078B34 thumb_func_end sub_812D294 thumb_func_start sub_812D350 sub_812D350: @ 812D350 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0812D370 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _0812D374 cmp r0, 0x1 beq _0812D394 b _0812D3A6 .align 2, 0 _0812D370: .4byte gTasks _0812D374: movs r0, 0 bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r2, _0812D390 adds r0, r4, 0 bl sub_80798F4 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0812D3A6 .align 2, 0 _0812D390: .4byte gUnknown_084024B0 _0812D394: adds r0, r4, 0 bl sub_807992C lsls r0, 24 cmp r0, 0 bne _0812D3A6 adds r0, r5, 0 bl move_anim_task_del _0812D3A6: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_812D350 thumb_func_start sub_812D3AC sub_812D3AC: @ 812D3AC push {r4-r6,lr} adds r5, r0, 0 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r6, r0, 24 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0x1 beq _0812D40C cmp r0, 0x1 bgt _0812D3CC cmp r0, 0 beq _0812D3D6 b _0812D4AE _0812D3CC: cmp r0, 0x2 beq _0812D43C cmp r0, 0x3 beq _0812D490 b _0812D4AE _0812D3D6: ldr r4, _0812D408 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] adds r0, r6, 0 movs r1, 0 bl sub_8078E70 movs r0, 0x80 lsls r0, 1 strh r0, [r5, 0x30] strh r0, [r5, 0x32] b _0812D484 .align 2, 0 _0812D408: .4byte gUnknown_0202F7C8 _0812D40C: ldrh r0, [r5, 0x30] adds r0, 0x60 strh r0, [r5, 0x30] ldrh r0, [r5, 0x32] subs r0, 0x1A strh r0, [r5, 0x32] movs r2, 0x30 ldrsh r1, [r5, r2] movs r0, 0x32 ldrsh r2, [r5, r0] adds r0, r6, 0 movs r3, 0 bl obj_id_set_rotscale ldrh r0, [r5, 0x34] adds r0, 0x1 strh r0, [r5, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 bne _0812D43C ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] _0812D43C: ldrh r0, [r5, 0x30] adds r0, 0x60 strh r0, [r5, 0x30] ldrh r0, [r5, 0x32] adds r0, 0x30 strh r0, [r5, 0x32] movs r2, 0x30 ldrsh r1, [r5, r2] movs r0, 0x32 ldrsh r2, [r5, r0] adds r0, r6, 0 movs r3, 0 bl obj_id_set_rotscale ldrh r0, [r5, 0x34] adds r0, 0x1 strh r0, [r5, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 bne _0812D4AE movs r0, 0 strh r0, [r5, 0x34] ldr r1, _0812D48C lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r0, r1 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] adds r0, r6, 0 bl sub_8078F40 _0812D484: ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] b _0812D4AE .align 2, 0 _0812D48C: .4byte gSprites _0812D490: ldrh r0, [r5, 0x26] subs r0, 0x6 strh r0, [r5, 0x26] movs r1, 0x22 ldrsh r0, [r5, r1] movs r2, 0x26 ldrsh r1, [r5, r2] adds r0, r1 movs r1, 0x20 negs r1, r1 cmp r0, r1 bge _0812D4AE adds r0, r5, 0 bl move_anim_8072740 _0812D4AE: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_812D3AC thumb_func_start sub_812D4B4 sub_812D4B4: @ 812D4B4 push {r4,lr} adds r4, r0, 0 ldr r0, _0812D4CC ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0812D4D4 ldr r0, _0812D4D0 b _0812D4D8 .align 2, 0 _0812D4CC: .4byte gUnknown_0202F7C8 _0812D4D0: .4byte 0x0000fff0 _0812D4D4: movs r0, 0x80 lsls r0, 1 _0812D4D8: strh r0, [r4, 0x20] movs r0, 0 strh r0, [r4, 0x22] ldr r0, _0812D4E8 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _0812D4E8: .4byte sub_812D4EC thumb_func_end sub_812D4B4 thumb_func_start sub_812D4EC sub_812D4EC: @ 812D4EC push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x48 strh r0, [r4, 0x2E] ldr r0, _0812D50C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0812D510 ldrh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 20 b _0812D518 .align 2, 0 _0812D50C: .4byte gUnknown_0202F7C8 _0812D510: ldrh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 20 negs r0, r0 _0812D518: strh r0, [r4, 0x24] ldrh r0, [r4, 0x30] adds r0, 0x10 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 24 ldrh r1, [r4, 0x26] adds r5, r0, r1 strh r5, [r4, 0x26] ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 movs r1, 0x3 bl __modsi3 lsls r0, 16 cmp r0, 0 bne _0812D564 ldr r0, _0812D584 ldrh r1, [r4, 0x24] ldrh r2, [r4, 0x20] adds r1, r2 lsls r1, 16 asrs r1, 16 ldrh r2, [r4, 0x22] adds r2, r5 lsls r2, 16 asrs r2, 16 adds r3, r4, 0 adds r3, 0x43 ldrb r3, [r3] adds r3, 0x1 lsls r3, 24 lsrs r3, 24 bl CreateSpriteAndAnimate _0812D564: movs r1, 0x20 ldrsh r0, [r4, r1] movs r2, 0x24 ldrsh r1, [r4, r2] adds r0, r1 adds r0, 0x20 movs r1, 0x98 lsls r1, 1 cmp r0, r1 bls _0812D57E adds r0, r4, 0 bl move_anim_8072740 _0812D57E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812D584: .4byte gSpriteTemplate_8402500 thumb_func_end sub_812D4EC thumb_func_start sub_812D588 sub_812D588: @ 812D588 push {r4,lr} adds r4, r0, 0 bl Random movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _0812D5A2 ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x4 b _0812D5AA _0812D5A2: ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x5 _0812D5AA: ldr r3, _0812D5DC adds r0, r3, 0 ands r1, r0 ldr r0, _0812D5E0 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] bl Random movs r1, 0x7 ands r0, r1 adds r1, r0, 0 cmp r1, 0x3 ble _0812D5CC negs r0, r1 lsls r0, 24 lsrs r0, 24 _0812D5CC: lsls r0, 24 asrs r0, 24 strh r0, [r4, 0x26] ldr r0, _0812D5E4 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _0812D5DC: .4byte 0x000003ff _0812D5E0: .4byte 0xfffffc00 _0812D5E4: .4byte sub_812D5E8 thumb_func_end sub_812D588 thumb_func_start sub_812D5E8 sub_812D5E8: @ 812D5E8 push {lr} adds r3, r0, 0 ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1D bgt _0812D62A ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _0812D65E movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r2, [r0] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] movs r0, 0 b _0812D65C _0812D62A: movs r1, 0x30 ldrsh r0, [r3, r1] cmp r0, 0x2 bne _0812D640 adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _0812D640: movs r1, 0x30 ldrsh r0, [r3, r1] cmp r0, 0x3 bne _0812D658 adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _0812D670 strh r0, [r3, 0x30] _0812D658: ldrh r0, [r3, 0x30] adds r0, 0x1 _0812D65C: strh r0, [r3, 0x30] _0812D65E: movs r1, 0x2E ldrsh r0, [r3, r1] cmp r0, 0x3C ble _0812D66C adds r0, r3, 0 bl DestroySprite _0812D66C: pop {r0} bx r0 .align 2, 0 _0812D670: .4byte 0x0000ffff thumb_func_end sub_812D5E8 thumb_func_start sub_812D674 sub_812D674: @ 812D674 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r1, _0812D6AC lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 bne _0812D6B4 movs r0, 0 bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r2, _0812D6B0 adds r0, r4, 0 bl sub_80798F4 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0812D6C6 .align 2, 0 _0812D6AC: .4byte gTasks _0812D6B0: .4byte gUnknown_08402518 _0812D6B4: adds r0, r4, 0 bl sub_807992C lsls r0, 24 cmp r0, 0 bne _0812D6C6 adds r0, r5, 0 bl move_anim_task_del _0812D6C6: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_812D674 thumb_func_start sub_812D6CC sub_812D6CC: @ 812D6CC push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r1, _0812D704 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 bne _0812D70C movs r0, 0 bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r2, _0812D708 adds r0, r4, 0 bl sub_80798F4 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0812D71E .align 2, 0 _0812D704: .4byte gTasks _0812D708: .4byte gUnknown_08402540 _0812D70C: adds r0, r4, 0 bl sub_807992C lsls r0, 24 cmp r0, 0 bne _0812D71E adds r0, r5, 0 bl move_anim_task_del _0812D71E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_812D6CC thumb_func_start sub_812D724 sub_812D724: @ 812D724 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _0812D736 cmp r0, 0x1 beq _0812D760 b _0812D788 _0812D736: adds r0, r4, 0 movs r1, 0 bl sub_80787B0 movs r0, 0x90 lsls r0, 4 strh r0, [r4, 0x30] ldr r0, _0812D75C ldrb r0, [r0] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _0812D788 .align 2, 0 _0812D75C: .4byte gUnknown_0202F7C8 _0812D760: ldrh r2, [r4, 0x30] lsls r1, r2, 16 asrs r1, 24 ldrh r0, [r4, 0x26] subs r0, r1 strh r0, [r4, 0x26] subs r2, 0x60 strh r2, [r4, 0x30] movs r2, 0x22 ldrsh r0, [r4, r2] movs r2, 0x26 ldrsh r1, [r4, r2] adds r0, r1 movs r2, 0x32 ldrsh r1, [r4, r2] cmp r0, r1 ble _0812D788 adds r0, r4, 0 bl move_anim_8072740 _0812D788: pop {r4} pop {r0} bx r0 thumb_func_end sub_812D724 thumb_func_start sub_812D790 sub_812D790: @ 812D790 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r1, _0812D7C8 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 bne _0812D7D0 movs r0, 0 bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r2, _0812D7CC adds r0, r4, 0 bl sub_80798F4 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0812D7E2 .align 2, 0 _0812D7C8: .4byte gTasks _0812D7CC: .4byte gUnknown_08402590 _0812D7D0: adds r0, r4, 0 bl sub_807992C lsls r0, 24 cmp r0, 0 bne _0812D7E2 adds r0, r5, 0 bl move_anim_task_del _0812D7E2: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_812D790 thumb_func_start sub_812D7E8 sub_812D7E8: @ 812D7E8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r1, _0812D818 lsls r0, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r3, r1, 0 cmp r0, 0x4 bls _0812D80E b _0812DAFA _0812D80E: lsls r0, 2 ldr r1, _0812D81C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0812D818: .4byte gTasks _0812D81C: .4byte _0812D820 .align 2, 0 _0812D820: .4byte _0812D834 .4byte _0812D888 .4byte _0812D8C4 .4byte _0812DA48 .4byte _0812DA84 _0812D834: ldr r1, _0812D850 movs r0, 0 strh r0, [r1] ldr r0, _0812D854 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812D85C ldr r0, _0812D858 b _0812D85E .align 2, 0 _0812D850: .4byte REG_MOSAIC _0812D854: .4byte gUnknown_0202F7C8 _0812D858: .4byte REG_BG1CNT _0812D85C: ldr r0, _0812D87C _0812D85E: ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] ldr r0, _0812D880 mov r6, r8 lsls r1, r6, 2 add r1, r8 lsls r1, 3 adds r1, r0 ldr r0, _0812D884 ldrh r0, [r0] strh r0, [r1, 0x1C] b _0812DA2A .align 2, 0 _0812D87C: .4byte REG_BG2CNT _0812D880: .4byte gTasks _0812D884: .4byte gUnknown_03004B00 _0812D888: mov r1, r8 lsls r0, r1, 2 add r0, r8 lsls r0, 3 adds r4, r0, r3 ldrh r0, [r4, 0xC] adds r1, r0, 0x1 strh r1, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bgt _0812D8A2 b _0812DAFA _0812D8A2: movs r0, 0 strh r0, [r4, 0xC] ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] ldrh r2, [r4, 0xA] ldr r1, _0812D8C0 lsls r0, r2, 4 orrs r0, r2 strh r0, [r1] cmp r2, 0xF beq _0812D8BC b _0812DAFA _0812D8BC: b _0812DA78 .align 2, 0 _0812D8C0: .4byte REG_MOSAIC _0812D8C4: ldr r5, _0812D8F4 ldrb r0, [r5] ldr r1, _0812D8F8 ldrb r1, [r1] mov r2, r8 lsls r4, r2, 2 adds r2, r4, r2 lsls r2, 3 adds r2, r3 ldrb r2, [r2, 0x1C] bl sub_8031FC4 ldrb r1, [r5] mov r0, sp bl sub_8078954 bl sub_8076BE0 lsls r0, 24 mov r9, r4 cmp r0, 0 beq _0812D8FC movs r1, 0 b _0812D906 .align 2, 0 _0812D8F4: .4byte gUnknown_0202F7C8 _0812D8F8: .4byte gUnknown_0202F7C9 _0812D8FC: ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 lsrs r1, r0, 24 _0812D906: ldr r0, _0812D9CC lsls r1, 2 adds r1, r0 ldr r2, _0812D9D0 ldr r0, _0812D9D4 ldrb r0, [r0] adds r0, r2 ldrb r0, [r0] lsls r0, 11 ldr r1, [r1] adds r1, r0 ldr r2, [sp] ldr r0, _0812D9D8 str r1, [r0] str r2, [r0, 0x4] ldr r1, _0812D9DC str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _0812DA20 ldr r5, _0812D9E0 ldrh r0, [r5] bl sub_80AEB1C adds r4, r0, 0 ldrh r0, [r5, 0x2] bl sub_80AEB1C lsls r4, 24 lsls r0, 24 cmp r4, r0 beq _0812D9A2 ldr r6, [sp, 0x4] movs r5, 0 movs r0, 0x7 mov r12, r0 movs r7, 0 _0812D956: movs r4, 0 adds r3, r7, r6 mov r1, r12 lsls r0, r1, 1 adds r2, r0, r6 _0812D960: ldrh r1, [r3] ldrh r0, [r2] strh r0, [r3] strh r1, [r2] adds r3, 0x2 subs r2, 0x2 adds r4, 0x1 cmp r4, 0x3 ble _0812D960 movs r2, 0x20 add r12, r2 adds r7, 0x40 adds r5, 0x1 cmp r5, 0x7 ble _0812D956 movs r5, 0 movs r0, 0x80 lsls r0, 3 adds r3, r0, 0 _0812D986: adds r2, r5, 0x1 lsls r0, r5, 6 adds r1, r0, r6 movs r4, 0x7 _0812D98E: ldrh r0, [r1] eors r0, r3 strh r0, [r1] adds r1, 0x2 subs r4, 0x1 cmp r4, 0 bge _0812D98E adds r5, r2, 0 cmp r5, 0x7 ble _0812D986 _0812D9A2: ldr r0, _0812D9E0 ldrh r0, [r0, 0x2] bl sub_80AEB1C lsls r0, 24 cmp r0, 0 beq _0812D9F0 ldr r3, _0812D9E4 ldr r4, _0812D9E8 ldr r2, _0812D9D4 ldrb r0, [r2] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x10 adds r0, r1 ldr r1, _0812D9EC b _0812DA0A .align 2, 0 _0812D9CC: .4byte gUnknown_081FAF4C _0812D9D0: .4byte gUnknown_02024E84 _0812D9D4: .4byte gUnknown_0202F7C8 _0812D9D8: .4byte 0x040000d4 _0812D9DC: .4byte 0x84000200 _0812D9E0: .4byte 0x02019348 _0812D9E4: .4byte gSprites _0812D9E8: .4byte gUnknown_02024BE0 _0812D9EC: .4byte gSpriteAffineAnimTable_81E7C18 _0812D9F0: ldr r3, _0812DA34 ldr r4, _0812DA38 ldr r2, _0812DA3C ldrb r0, [r2] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x10 adds r0, r1 ldr r1, _0812DA40 _0812DA0A: str r1, [r0] ldrb r0, [r2] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0 bl StartSpriteAffineAnim _0812DA20: ldr r0, _0812DA44 mov r1, r9 add r1, r8 lsls r1, 3 adds r1, r0 _0812DA2A: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0812DAFA .align 2, 0 _0812DA34: .4byte gSprites _0812DA38: .4byte gUnknown_02024BE0 _0812DA3C: .4byte gUnknown_0202F7C8 _0812DA40: .4byte gSpriteAffineAnimTable_81E7BEC _0812DA44: .4byte gTasks _0812DA48: mov r1, r8 lsls r0, r1, 2 add r0, r8 lsls r0, 3 adds r4, r0, r3 ldrh r0, [r4, 0xC] adds r1, r0, 0x1 strh r1, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _0812DAFA movs r0, 0 strh r0, [r4, 0xC] ldrh r0, [r4, 0xA] subs r0, 0x1 strh r0, [r4, 0xA] ldrh r2, [r4, 0xA] ldr r1, _0812DA80 lsls r0, r2, 4 orrs r0, r2 strh r0, [r1] cmp r2, 0 bne _0812DAFA _0812DA78: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0812DAFA .align 2, 0 _0812DA80: .4byte REG_MOSAIC _0812DA84: ldr r1, _0812DAA0 movs r0, 0 strh r0, [r1] ldr r0, _0812DAA4 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812DAAC ldr r2, _0812DAA8 b _0812DAAE .align 2, 0 _0812DAA0: .4byte REG_MOSAIC _0812DAA4: .4byte gUnknown_0202F7C8 _0812DAA8: .4byte REG_BG1CNT _0812DAAC: ldr r2, _0812DB08 _0812DAAE: ldrb r1, [r2] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _0812DAF4 ldr r4, _0812DB0C ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812DAF4 ldr r0, _0812DB10 mov r2, r8 lsls r1, r2, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r6, 0x1C ldrsh r0, [r1, r6] cmp r0, 0 bne _0812DAF4 ldrb r0, [r4] lsls r1, r0, 2 ldr r2, _0812DB14 adds r1, r2 ldrh r1, [r1, 0x2] bl sub_8032984 _0812DAF4: mov r0, r8 bl move_anim_task_del _0812DAFA: add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812DB08: .4byte REG_BG2CNT _0812DB0C: .4byte gUnknown_0202F7C8 _0812DB10: .4byte gTasks _0812DB14: .4byte 0x02017800 thumb_func_end sub_812D7E8 thumb_func_start c3_80DFBE4 c3_80DFBE4: @ 812DB18 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r4, _0812DB48 ldr r3, _0812DB4C ldr r2, _0812DB50 ldr r1, _0812DB54 ldrb r1, [r1] adds r1, r2 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r3 adds r1, 0x3E ldrb r1, [r1] lsls r1, 29 lsrs r1, 31 strh r1, [r4, 0xE] bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _0812DB48: .4byte gUnknown_03004B00 _0812DB4C: .4byte gSprites _0812DB50: .4byte gUnknown_02024BE0 _0812DB54: .4byte gUnknown_0202F7C8 thumb_func_end c3_80DFBE4 thumb_func_start sub_812DB58 sub_812DB58: @ 812DB58 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0812DB7C ldrb r0, [r0] ldr r1, _0812DB80 ldrb r1, [r1] movs r2, 0x1 bl sub_8031FC4 adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _0812DB7C: .4byte gUnknown_0202F7C8 _0812DB80: .4byte gUnknown_0202F7C9 thumb_func_end sub_812DB58 thumb_func_start sub_812DB84 sub_812DB84: @ 812DB84 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 ldr r1, _0812DBB4 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r2, r1, 0 cmp r0, 0x4 bls _0812DBA8 b _0812DE80 _0812DBA8: lsls r0, 2 ldr r1, _0812DBB8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0812DBB4: .4byte gTasks _0812DBB8: .4byte _0812DBBC .align 2, 0 _0812DBBC: .4byte _0812DBD0 .4byte _0812DCFC .4byte _0812DD4C .4byte _0812DDB6 .4byte _0812DDEA _0812DBD0: ldr r1, _0812DC70 ldr r4, _0812DC74 adds r0, r4, 0 strh r0, [r1] adds r1, 0x2 movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r4, _0812DC78 ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r4, 0x1] ldrb r1, [r4] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _0812DC12 ldrb r0, [r4] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4] _0812DC12: mov r0, sp bl sub_8078914 ldr r1, [sp, 0x4] movs r4, 0 str r4, [sp, 0xC] ldr r2, _0812DC7C add r0, sp, 0xC str r0, [r2] str r1, [r2, 0x4] ldr r0, _0812DC80 str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _0812DC84 bl LZDecompressVram ldr r0, _0812DC88 ldr r1, [sp] bl LZDecompressVram ldr r0, _0812DC8C mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _0812DC9C mov r0, sp ldrb r0, [r0, 0x8] ldr r1, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_80763FC ldr r1, _0812DC90 ldr r2, _0812DC94 adds r0, r2, 0 strh r0, [r1] ldr r0, _0812DC98 strh r4, [r0] b _0812DCCE .align 2, 0 _0812DC70: .4byte REG_BLDCNT _0812DC74: .4byte 0x00003f42 _0812DC78: .4byte REG_BG1CNT _0812DC7C: .4byte 0x040000d4 _0812DC80: .4byte 0x85000400 _0812DC84: .4byte gUnknown_08D2AA98 _0812DC88: .4byte gUnknown_08D2A9E0 _0812DC8C: .4byte gUnknown_08D2AA80 _0812DC90: .4byte gUnknown_030042C0 _0812DC94: .4byte 0x0000ffc8 _0812DC98: .4byte gUnknown_030041B4 _0812DC9C: ldr r0, _0812DCB4 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0812DCC0 ldr r1, _0812DCB8 ldr r4, _0812DCBC adds r0, r4, 0 b _0812DCC6 .align 2, 0 _0812DCB4: .4byte gUnknown_0202F7C8 _0812DCB8: .4byte gUnknown_030042C0 _0812DCBC: .4byte 0x0000ff79 _0812DCC0: ldr r1, _0812DCEC ldr r2, _0812DCF0 adds r0, r2, 0 _0812DCC6: strh r0, [r1] ldr r1, _0812DCF4 movs r0, 0 strh r0, [r1] _0812DCCE: ldr r0, _0812DCF8 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r0 ldr r0, _0812DCEC ldrh r0, [r0] strh r0, [r1, 0x1C] ldr r0, _0812DCF4 ldrh r0, [r0] strh r0, [r1, 0x1E] ldrh r0, [r1, 0x8] adds r0, 0x1 b _0812DDD2 .align 2, 0 _0812DCEC: .4byte gUnknown_030042C0 _0812DCF0: .4byte 0x0000fff6 _0812DCF4: .4byte gUnknown_030041B4 _0812DCF8: .4byte gTasks _0812DCFC: lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r3, r0, r2 ldrh r0, [r3, 0x10] adds r1, r0, 0x1 strh r1, [r3, 0x10] lsls r0, 16 cmp r0, 0 bgt _0812DD12 b _0812DE80 _0812DD12: movs r0, 0 strh r0, [r3, 0x10] ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0xC ble _0812DD28 movs r0, 0xC strh r0, [r3, 0xA] _0812DD28: ldr r2, _0812DD48 ldrh r1, [r3, 0xA] movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r0, r1 strh r0, [r2] movs r4, 0xA ldrsh r0, [r3, r4] cmp r0, 0xC beq _0812DD40 b _0812DE80 _0812DD40: ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] b _0812DE80 .align 2, 0 _0812DD48: .4byte REG_BLDALPHA _0812DD4C: lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r3, r0, r2 ldrh r0, [r3, 0xA] subs r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 cmp r0, 0 bge _0812DD64 movs r0, 0 strh r0, [r3, 0xA] _0812DD64: ldr r2, _0812DDA4 ldrh r1, [r3, 0xA] movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r0, r1 strh r0, [r2] movs r1, 0xA ldrsh r0, [r3, r1] cmp r0, 0 beq _0812DD7C b _0812DE80 _0812DD7C: ldr r2, _0812DDA8 ldr r1, _0812DDAC movs r4, 0xC ldrsh r0, [r3, r4] adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrh r1, [r3, 0x1C] adds r0, r1 strh r0, [r2] ldrh r0, [r3, 0xC] adds r0, 0x1 strh r0, [r3, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _0812DDB0 strh r0, [r3, 0x8] b _0812DE80 .align 2, 0 _0812DDA4: .4byte REG_BLDALPHA _0812DDA8: .4byte gUnknown_030042C0 _0812DDAC: .4byte gUnknown_084025C0 _0812DDB0: movs r0, 0x3 strh r0, [r3, 0x8] b _0812DE80 _0812DDB6: lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r1, r0, r2 ldrh r0, [r1, 0xE] adds r0, 0x1 strh r0, [r1, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _0812DE80 movs r0, 0 strh r0, [r1, 0xE] movs r0, 0x1 _0812DDD2: strh r0, [r1, 0x8] movs r0, 0x40 negs r0, r0 bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xE4 bl PlaySE12WithPanning b _0812DE80 _0812DDEA: mov r0, sp bl sub_8078914 ldr r2, [sp] movs r3, 0x80 lsls r3, 6 add r5, sp, 0xC movs r6, 0 ldr r1, _0812DE90 movs r4, 0x80 lsls r4, 5 mov r8, r5 ldr r0, _0812DE94 mov r12, r0 movs r0, 0x85 lsls r0, 24 mov r9, r0 _0812DE0C: str r6, [sp, 0xC] mov r0, r8 str r0, [r1] str r2, [r1, 0x4] mov r0, r12 str r0, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _0812DE0C str r6, [sp, 0xC] str r5, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 mov r2, r9 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, [sp, 0x4] movs r4, 0 str r4, [sp, 0xC] ldr r0, _0812DE90 str r5, [r0] str r1, [r0, 0x4] ldr r1, _0812DE98 str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _0812DE5A ldr r2, _0812DE9C ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _0812DE5A: ldr r2, _0812DE9C ldrb r1, [r2] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r0, _0812DEA0 strh r4, [r0] ldr r0, _0812DEA4 strh r4, [r0] ldr r0, _0812DEA8 strh r4, [r0] adds r0, 0x2 strh r4, [r0] adds r0, r7, 0 bl move_anim_task_del _0812DE80: add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812DE90: .4byte 0x040000d4 _0812DE94: .4byte 0x85000400 _0812DE98: .4byte 0x85000200 _0812DE9C: .4byte REG_BG1CNT _0812DEA0: .4byte gUnknown_030042C0 _0812DEA4: .4byte gUnknown_030041B4 _0812DEA8: .4byte REG_BLDCNT thumb_func_end sub_812DB84 thumb_func_start sub_812DEAC sub_812DEAC: @ 812DEAC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r7, r0, 0 bl Random lsls r0, 16 movs r1, 0xFC lsls r1, 14 ands r1, r0 lsrs r5, r1, 16 adds r1, r5, 0 cmp r1, 0x1F ble _0812DED6 movs r0, 0x20 subs r0, r1 lsls r0, 16 lsrs r5, r0, 16 _0812DED6: ldr r4, _0812DFD0 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, r5 strh r0, [r7, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, 0x20 strh r0, [r7, 0x22] ldr r1, _0812DFD4 ldrh r0, [r1] strh r0, [r7, 0x30] ldrh r0, [r1, 0x2] strh r0, [r7, 0x32] ldr r4, _0812DFD8 movs r0, 0x20 ldrsh r1, [r7, r0] movs r0, 0x22 ldrsh r2, [r7, r0] adds r5, r7, 0 adds r5, 0x43 ldrb r3, [r5] adds r3, 0x1 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 bl CreateSprite mov r9, r0 mov r1, r9 lsls r1, 24 lsrs r1, 24 mov r9, r1 movs r0, 0x20 ldrsh r1, [r7, r0] movs r0, 0x22 ldrsh r2, [r7, r0] ldrb r3, [r5] adds r3, 0x1 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 bl CreateSprite mov r8, r0 mov r1, r8 lsls r1, 24 lsrs r1, 24 mov r8, r1 mov r0, r9 lsls r2, r0, 4 add r2, r9 lsls r2, 2 ldr r1, _0812DFDC mov r10, r1 adds r5, r2, r1 adds r0, r5, 0 movs r1, 0x1 str r2, [sp] bl StartSpriteAnim mov r0, r8 lsls r6, r0, 4 add r6, r8 lsls r6, 2 mov r1, r10 adds r4, r6, r1 adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnim ldr r1, _0812DFD4 ldrh r0, [r1] strh r0, [r5, 0x30] ldrh r0, [r1, 0x2] strh r0, [r5, 0x32] ldrh r0, [r1] strh r0, [r4, 0x30] ldrh r0, [r1, 0x2] strh r0, [r4, 0x32] ldr r0, _0812DFE0 strh r0, [r5, 0x3C] movs r0, 0x1 negs r0, r0 strh r0, [r4, 0x3C] adds r5, 0x3E ldrb r0, [r5] movs r1, 0x4 orrs r0, r1 strb r0, [r5] adds r4, 0x3E ldrb r0, [r4] orrs r0, r1 strb r0, [r4] movs r0, 0x1C add r10, r0 ldr r2, [sp] add r2, r10 ldr r0, _0812DFE4 str r0, [r2] add r6, r10 str r0, [r6] mov r1, r9 strh r1, [r7, 0x3A] mov r0, r8 strh r0, [r7, 0x3C] ldr r0, _0812DFE8 str r0, [r7, 0x1C] add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812DFD0: .4byte gUnknown_0202F7C8 _0812DFD4: .4byte gUnknown_03004B00 _0812DFD8: .4byte gBattleAnimSpriteTemplate_84025EC _0812DFDC: .4byte gSprites _0812DFE0: .4byte 0x0000ffff _0812DFE4: .4byte sub_812E0F8 _0812DFE8: .4byte sub_812DFEC thumb_func_end sub_812DEAC thumb_func_start sub_812DFEC sub_812DFEC: @ 812DFEC push {lr} adds r3, r0, 0 ldrh r2, [r3, 0x32] ldrh r0, [r3, 0x34] adds r2, r0 lsls r0, r2, 16 asrs r0, 24 ldrh r1, [r3, 0x26] subs r1, r0 strh r1, [r3, 0x26] movs r0, 0xFF ands r2, r0 strh r2, [r3, 0x34] movs r2, 0x36 ldrsh r0, [r3, r2] cmp r0, 0 bne _0812E03A lsls r0, r1, 16 asrs r0, 16 movs r1, 0x8 negs r1, r1 cmp r0, r1 bge _0812E03A ldr r2, _0812E094 movs r0, 0x3A ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldrh r0, [r3, 0x36] adds r0, 0x1 strh r0, [r3, 0x36] _0812E03A: movs r1, 0x36 ldrsh r0, [r3, r1] cmp r0, 0x1 bne _0812E06E movs r2, 0x26 ldrsh r1, [r3, r2] movs r0, 0x10 negs r0, r0 cmp r1, r0 bge _0812E06E ldr r2, _0812E094 movs r0, 0x3C ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldrh r0, [r3, 0x36] adds r0, 0x1 strh r0, [r3, 0x36] _0812E06E: ldrh r0, [r3, 0x30] subs r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0812E090 adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _0812E098 str r0, [r3, 0x1C] _0812E090: pop {r0} bx r0 .align 2, 0 _0812E094: .4byte gSprites _0812E098: .4byte sub_812E09C thumb_func_end sub_812DFEC thumb_func_start sub_812E09C sub_812E09C: @ 812E09C push {r4-r6,lr} adds r4, r0, 0 ldr r5, _0812E0F0 movs r0, 0x3A ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r3, r0, 2 adds r6, r5, 0 adds r6, 0x1C adds r0, r3, r6 ldr r2, [r0] ldr r0, _0812E0F4 cmp r2, r0 bne _0812E0E8 movs r1, 0x3C ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldr r0, [r1] cmp r0, r2 bne _0812E0E8 adds r0, r3, r5 bl DestroySprite movs r0, 0x3C ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl DestroySprite adds r0, r4, 0 bl move_anim_8072740 _0812E0E8: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812E0F0: .4byte gSprites _0812E0F4: .4byte SpriteCallbackDummy thumb_func_end sub_812E09C thumb_func_start sub_812E0F8 sub_812E0F8: @ 812E0F8 push {lr} adds r3, r0, 0 movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _0812E144 ldrh r2, [r3, 0x32] ldrh r1, [r3, 0x34] adds r2, r1 lsls r1, r2, 16 asrs r1, 24 ldrh r0, [r3, 0x26] subs r0, r1 strh r0, [r3, 0x26] movs r0, 0xFF ands r2, r0 strh r2, [r3, 0x34] ldrh r0, [r3, 0x30] subs r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0812E144 mov r1, r12 ldrb r0, [r1] movs r1, 0x4 orrs r0, r1 mov r1, r12 strb r0, [r1] ldr r0, _0812E148 str r0, [r3, 0x1C] _0812E144: pop {r0} bx r0 .align 2, 0 _0812E148: .4byte SpriteCallbackDummy thumb_func_end sub_812E0F8 thumb_func_start sub_812E14C sub_812E14C: @ 812E14C push {r4-r6,lr} sub sp, 0x10 lsls r0, 24 lsrs r6, r0, 24 ldr r1, _0812E174 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r4, r1, 0 cmp r0, 0x5 bls _0812E16A b _0812E476 _0812E16A: lsls r0, 2 ldr r1, _0812E178 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0812E174: .4byte gTasks _0812E178: .4byte _0812E17C .align 2, 0 _0812E17C: .4byte _0812E194 .4byte _0812E300 .4byte _0812E388 .4byte _0812E3BC .4byte _0812E3E8 .4byte _0812E420 _0812E194: ldr r1, _0812E230 ldr r3, _0812E234 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _0812E238 adds r0, r2, 0 strh r0, [r1] ldr r4, _0812E23C ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r4, 0x1] ldrb r1, [r4] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _0812E1D4 ldrb r0, [r4] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4] _0812E1D4: mov r0, sp bl sub_8078914 ldr r1, [sp, 0x4] movs r4, 0 str r4, [sp, 0xC] ldr r2, _0812E240 add r0, sp, 0xC str r0, [r2] str r1, [r2, 0x4] ldr r0, _0812E244 str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _0812E248 bl LZDecompressVram ldr r0, _0812E24C ldr r1, [sp] bl LZDecompressVram ldr r0, _0812E250 mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _0812E260 mov r0, sp ldrb r0, [r0, 0x8] ldr r1, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_80763FC ldr r1, _0812E254 ldr r3, _0812E258 adds r0, r3, 0 strh r0, [r1] ldr r0, _0812E25C strh r4, [r0] b _0812E2D2 .align 2, 0 _0812E230: .4byte REG_BLDCNT _0812E234: .4byte 0x00003f42 _0812E238: .4byte 0x00000d03 _0812E23C: .4byte REG_BG1CNT _0812E240: .4byte 0x040000d4 _0812E244: .4byte 0x85000400 _0812E248: .4byte gUnknown_08D2AA98 _0812E24C: .4byte gUnknown_08D2A9E0 _0812E250: .4byte gUnknown_08D2AA80 _0812E254: .4byte gUnknown_030042C0 _0812E258: .4byte 0x0000ffc8 _0812E25C: .4byte gUnknown_030041B4 _0812E260: ldr r0, _0812E2A0 ldrb r0, [r0] bl battle_get_per_side_status lsls r0, 24 lsrs r4, r0, 24 bl battle_type_is_double lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812E2B4 ldr r1, _0812E2A4 cmp r4, 0x1 bne _0812E284 ldr r2, _0812E2A8 adds r0, r2, 0 strh r0, [r1] _0812E284: cmp r4, 0x3 bne _0812E28E ldr r3, _0812E2AC adds r0, r3, 0 strh r0, [r1] _0812E28E: cmp r4, 0 bne _0812E296 movs r0, 0xE strh r0, [r1] _0812E296: cmp r4, 0x2 bne _0812E2CC ldr r1, _0812E2A4 ldr r2, _0812E2B0 b _0812E2C8 .align 2, 0 _0812E2A0: .4byte gUnknown_0202F7C9 _0812E2A4: .4byte gUnknown_030042C0 _0812E2A8: .4byte 0x0000ff65 _0812E2AC: .4byte 0x0000ff8d _0812E2B0: .4byte 0x0000ffec _0812E2B4: cmp r4, 0x1 bne _0812E2C0 ldr r1, _0812E2EC ldr r3, _0812E2F0 adds r0, r3, 0 strh r0, [r1] _0812E2C0: cmp r4, 0 bne _0812E2CC ldr r1, _0812E2EC ldr r2, _0812E2F4 _0812E2C8: adds r0, r2, 0 strh r0, [r1] _0812E2CC: ldr r1, _0812E2F8 movs r0, 0 strh r0, [r1] _0812E2D2: ldr r0, _0812E2FC lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, _0812E2EC ldrh r0, [r0] strh r0, [r1, 0x1C] ldr r0, _0812E2F8 ldrh r0, [r0] strh r0, [r1, 0x1E] b _0812E380 .align 2, 0 _0812E2EC: .4byte gUnknown_030042C0 _0812E2F0: .4byte 0x0000ff79 _0812E2F4: .4byte 0x0000fff6 _0812E2F8: .4byte gUnknown_030041B4 _0812E2FC: .4byte gTasks _0812E300: ldr r1, _0812E334 lsls r4, r6, 2 adds r0, r4, r6 lsls r0, 3 adds r5, r0, r1 movs r0, 0 strh r0, [r5, 0xE] ldr r0, _0812E338 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812E344 ldr r2, _0812E33C ldr r1, _0812E340 movs r3, 0xC ldrsh r0, [r5, r3] adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrh r5, [r5, 0x1C] adds r0, r5 b _0812E356 .align 2, 0 _0812E334: .4byte gTasks _0812E338: .4byte gUnknown_0202F7C9 _0812E33C: .4byte gUnknown_030042C0 _0812E340: .4byte gUnknown_08402604 _0812E344: ldr r2, _0812E374 ldr r1, _0812E378 movs r3, 0xC ldrsh r0, [r5, r3] adds r0, r1 movs r1, 0 ldrsb r1, [r0, r1] ldrh r0, [r5, 0x1C] subs r0, r1 _0812E356: strh r0, [r2] ldr r0, _0812E37C adds r1, r4, r6 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0xC] adds r0, 0x1 strh r0, [r1, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 bne _0812E380 strh r0, [r1, 0x8] b _0812E476 .align 2, 0 _0812E374: .4byte gUnknown_030042C0 _0812E378: .4byte gUnknown_08402604 _0812E37C: .4byte gTasks _0812E380: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0812E476 _0812E388: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r4 ldrh r0, [r4, 0xA] subs r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bgt _0812E3A2 movs r0, 0x5 strh r0, [r4, 0xA] _0812E3A2: ldr r2, _0812E3B8 ldrh r0, [r4, 0xA] lsls r0, 8 movs r1, 0x3 orrs r0, r1 strh r0, [r2] movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x5 bne _0812E476 b _0812E3DC .align 2, 0 _0812E3B8: .4byte REG_BLDALPHA _0812E3BC: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r4 ldrh r1, [r4, 0xE] adds r1, 0x1 strh r1, [r4, 0xE] lsls r1, 16 asrs r1, 16 ldr r2, _0812E3E4 movs r3, 0xC ldrsh r0, [r4, r3] adds r0, r2 ldrb r0, [r0] cmp r1, r0 ble _0812E476 _0812E3DC: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0812E476 .align 2, 0 _0812E3E4: .4byte gUnknown_08402608 _0812E3E8: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r4 ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0xD ble _0812E402 movs r0, 0xD strh r0, [r4, 0xA] _0812E402: ldr r2, _0812E41C ldrh r0, [r4, 0xA] lsls r0, 8 movs r1, 0x3 orrs r0, r1 strh r0, [r2] movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0xD bne _0812E476 movs r0, 0x1 strh r0, [r4, 0x8] b _0812E476 .align 2, 0 _0812E41C: .4byte REG_BLDALPHA _0812E420: mov r0, sp bl sub_8078914 ldr r2, [sp, 0x4] movs r4, 0 str r4, [sp, 0xC] ldr r1, _0812E480 add r0, sp, 0xC str r0, [r1] str r2, [r1, 0x4] ldr r0, _0812E484 str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _0812E450 ldr r2, _0812E488 ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _0812E450: ldr r2, _0812E488 ldrb r1, [r2] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r0, _0812E48C strh r4, [r0] ldr r0, _0812E490 strh r4, [r0] ldr r0, _0812E494 strh r4, [r0] adds r0, 0x2 strh r4, [r0] adds r0, r6, 0 bl move_anim_task_del _0812E476: add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812E480: .4byte 0x040000d4 _0812E484: .4byte 0x85000200 _0812E488: .4byte REG_BG1CNT _0812E48C: .4byte gUnknown_030042C0 _0812E490: .4byte gUnknown_030041B4 _0812E494: .4byte REG_BLDCNT thumb_func_end sub_812E14C thumb_func_start sub_812E498 sub_812E498: @ 812E498 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r1, _0812E4D0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 bne _0812E4D8 movs r0, 0 bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r2, _0812E4D4 adds r0, r4, 0 bl sub_80798F4 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0812E4EA .align 2, 0 _0812E4D0: .4byte gTasks _0812E4D4: .4byte gUnknown_08402610 _0812E4D8: adds r0, r4, 0 bl sub_807992C lsls r0, 24 cmp r0, 0 bne _0812E4EA adds r0, r5, 0 bl move_anim_task_del _0812E4EA: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_812E498 thumb_func_start sub_812E4F0 sub_812E4F0: @ 812E4F0 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] movs r2, 0x2E ldrsh r1, [r4, r2] cmp r1, 0 bne _0812E50E adds r0, r4, 0 movs r1, 0 bl sub_80787B0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _0812E562 _0812E50E: adds r0, 0x1 strh r0, [r4, 0x2E] cmp r1, 0x14 ble _0812E562 ldrh r0, [r4, 0x30] adds r0, 0xA0 strh r0, [r4, 0x30] ldrh r0, [r4, 0x32] adds r0, 0x80 strh r0, [r4, 0x32] ldr r0, _0812E53C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0812E540 ldrh r0, [r4, 0x30] lsls r0, 16 asrs r0, 24 negs r0, r0 b _0812E546 .align 2, 0 _0812E53C: .4byte gUnknown_0202F7C8 _0812E540: ldrh r0, [r4, 0x30] lsls r0, 16 asrs r0, 24 _0812E546: strh r0, [r4, 0x24] ldrh r0, [r4, 0x32] lsls r0, 16 asrs r0, 24 ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] lsls r0, 16 asrs r0, 16 cmp r0, 0x40 ble _0812E562 adds r0, r4, 0 bl move_anim_8072740 _0812E562: pop {r4} pop {r0} bx r0 thumb_func_end sub_812E4F0 thumb_func_start sub_812E568 sub_812E568: @ 812E568 push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _0812E58C adds r4, r0, r1 ldr r5, _0812E590 movs r1, 0x2 ldrsh r0, [r5, r1] cmp r0, 0 bne _0812E594 adds r0, r2, 0 bl move_anim_task_del b _0812E628 .align 2, 0 _0812E58C: .4byte gTasks _0812E590: .4byte gUnknown_03004B00 _0812E594: movs r1, 0x4 ldrsh r0, [r5, r1] cmp r0, 0 bge _0812E5A0 movs r0, 0 strh r0, [r5, 0x4] _0812E5A0: movs r1, 0x4 ldrsh r0, [r5, r1] cmp r0, 0x2 ble _0812E5AC movs r0, 0x2 strh r0, [r5, 0x4] _0812E5AC: movs r0, 0 strh r0, [r4, 0x8] strh r0, [r4, 0xA] strh r0, [r4, 0xC] movs r0, 0x4 ldrsh r1, [r5, r0] lsls r1, 1 movs r0, 0x8 subs r0, r1 strh r0, [r4, 0xE] movs r1, 0x4 ldrsh r0, [r5, r1] lsls r0, 7 movs r1, 0x80 lsls r1, 1 adds r0, r1 strh r0, [r4, 0x10] ldrh r0, [r5, 0x4] adds r0, 0x2 strh r0, [r4, 0x12] ldrh r0, [r5, 0x2] subs r0, 0x1 strh r0, [r4, 0x14] ldrb r0, [r5] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] movs r1, 0 ldrsh r0, [r5, r1] cmp r0, 0 bne _0812E5F8 ldr r0, _0812E5F4 b _0812E5FA .align 2, 0 _0812E5F4: .4byte gUnknown_0202F7C8 _0812E5F8: ldr r0, _0812E630 _0812E5FA: ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812E618 movs r1, 0x10 ldrsh r0, [r4, r1] negs r0, r0 strh r0, [r4, 0x10] movs r1, 0x12 ldrsh r0, [r4, r1] negs r0, r0 strh r0, [r4, 0x12] _0812E618: ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_8078E70 ldr r0, _0812E634 str r0, [r4] _0812E628: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812E630: .4byte gUnknown_0202F7C9 _0812E634: .4byte sub_812E638 thumb_func_end sub_812E568 thumb_func_start sub_812E638 sub_812E638: @ 812E638 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0812E65C adds r4, r0, r1 movs r0, 0x8 ldrsh r6, [r4, r0] cmp r6, 0x1 beq _0812E6C0 cmp r6, 0x1 bgt _0812E660 cmp r6, 0 beq _0812E66C b _0812E798 .align 2, 0 _0812E65C: .4byte gTasks _0812E660: cmp r6, 0x2 beq _0812E718 cmp r6, 0x3 bne _0812E66A b _0812E788 _0812E66A: b _0812E798 _0812E66C: ldr r2, _0812E6BC movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r4, 0x12] ldrh r2, [r0, 0x24] adds r1, r2 strh r1, [r0, 0x24] ldrh r0, [r4, 0xC] ldrh r1, [r4, 0x10] subs r0, r1 strh r0, [r4, 0xC] ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 movs r2, 0x80 lsls r2, 1 ldrh r3, [r4, 0xC] adds r1, r2, 0 bl obj_id_set_rotscale ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 bl sub_8078F9C ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 movs r2, 0xE ldrsh r1, [r4, r2] cmp r0, r1 blt _0812E798 strh r6, [r4, 0xA] b _0812E780 .align 2, 0 _0812E6BC: .4byte gSprites _0812E6C0: ldr r2, _0812E714 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x24] ldrh r2, [r4, 0x12] subs r1, r2 strh r1, [r0, 0x24] ldrh r0, [r4, 0x10] ldrh r1, [r4, 0xC] adds r0, r1 strh r0, [r4, 0xC] ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 movs r2, 0x80 lsls r2, 1 ldrh r3, [r4, 0xC] adds r1, r2, 0 bl obj_id_set_rotscale ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 bl sub_8078F9C ldrh r1, [r4, 0xA] adds r1, 0x1 strh r1, [r4, 0xA] lsls r1, 16 asrs r1, 16 movs r2, 0xE ldrsh r0, [r4, r2] lsls r0, 1 cmp r1, r0 blt _0812E798 movs r0, 0 strh r0, [r4, 0xA] b _0812E780 .align 2, 0 _0812E714: .4byte gSprites _0812E718: ldr r2, _0812E77C movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r4, 0x12] ldrh r2, [r0, 0x24] adds r1, r2 movs r5, 0 strh r1, [r0, 0x24] ldrh r0, [r4, 0xC] ldrh r1, [r4, 0x10] subs r0, r1 strh r0, [r4, 0xC] ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 movs r2, 0x80 lsls r2, 1 ldrh r3, [r4, 0xC] adds r1, r2, 0 bl obj_id_set_rotscale ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 bl sub_8078F9C ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 movs r2, 0xE ldrsh r1, [r4, r2] cmp r0, r1 blt _0812E798 ldrh r1, [r4, 0x14] movs r2, 0x14 ldrsh r0, [r4, r2] cmp r0, 0 beq _0812E780 subs r0, r1, 0x1 strh r0, [r4, 0x14] strh r5, [r4, 0xA] strh r5, [r4, 0x8] b _0812E798 .align 2, 0 _0812E77C: .4byte gSprites _0812E780: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0812E798 _0812E788: ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 bl sub_8078F40 adds r0, r5, 0 bl move_anim_task_del _0812E798: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_812E638 thumb_func_start sub_812E7A0 sub_812E7A0: @ 812E7A0 push {r4,lr} adds r4, r0, 0 ldr r0, _0812E7BC ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0812E7C4 strh r0, [r4, 0x20] ldr r1, _0812E7C0 ldrh r0, [r1] b _0812E7CE .align 2, 0 _0812E7BC: .4byte gUnknown_0202F7C8 _0812E7C0: .4byte gUnknown_03004B00 _0812E7C4: movs r0, 0xF0 strh r0, [r4, 0x20] ldr r1, _0812E7E8 ldrh r0, [r1] subs r0, 0x1E _0812E7CE: strh r0, [r4, 0x22] ldrh r0, [r1, 0x4] strh r0, [r4, 0x32] ldrb r1, [r1, 0x2] adds r0, r4, 0 bl StartSpriteAnim ldr r0, _0812E7EC str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _0812E7E8: .4byte gUnknown_03004B00 _0812E7EC: .4byte sub_812E7F0 thumb_func_end sub_812E7A0 thumb_func_start sub_812E7F0 sub_812E7F0: @ 812E7F0 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x3 strh r0, [r4, 0x2E] ldr r0, _0812E830 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0812E834 ldrh r1, [r4, 0x20] adds r1, 0x5 strh r1, [r4, 0x20] ldrh r0, [r4, 0x22] subs r0, 0x1 strh r0, [r4, 0x22] lsls r1, 16 asrs r1, 16 cmp r1, 0xF0 ble _0812E822 adds r0, r4, 0 bl move_anim_8072740 _0812E822: ldrh r1, [r4, 0x2E] movs r0, 0xFF ands r0, r1 movs r1, 0x10 bl Sin b _0812E858 .align 2, 0 _0812E830: .4byte gUnknown_0202F7C8 _0812E834: ldrh r1, [r4, 0x20] subs r1, 0x5 strh r1, [r4, 0x20] ldrh r0, [r4, 0x22] adds r0, 0x1 strh r0, [r4, 0x22] lsls r1, 16 cmp r1, 0 bge _0812E84C adds r0, r4, 0 bl move_anim_8072740 _0812E84C: ldrh r1, [r4, 0x2E] movs r0, 0xFF ands r0, r1 movs r1, 0x10 bl Cos _0812E858: strh r0, [r4, 0x26] pop {r4} pop {r0} bx r0 thumb_func_end sub_812E7F0 thumb_func_start sub_812E860 sub_812E860: @ 812E860 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _0812E8A8 adds r4, r0 movs r0, 0 strh r0, [r4, 0x8] strh r0, [r4, 0xA] strh r0, [r4, 0xC] strh r0, [r4, 0xE] movs r0, 0x20 strh r0, [r4, 0x20] movs r0, 0x40 strh r0, [r4, 0x22] movs r0, 0x80 lsls r0, 4 strh r0, [r4, 0x24] ldr r0, _0812E8AC ldrb r0, [r0] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] movs r1, 0 bl sub_8078E70 ldr r0, _0812E8B0 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0812E8A8: .4byte gTasks _0812E8AC: .4byte gUnknown_03004B00 _0812E8B0: .4byte sub_812E8B4 thumb_func_end sub_812E860 thumb_func_start sub_812E8B4 sub_812E8B4: @ 812E8B4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _0812E8E0 adds r7, r0, r1 movs r1, 0x8 ldrsh r0, [r7, r1] mov r8, r0 cmp r0, 0x1 beq _0812E950 cmp r0, 0x1 bgt _0812E8E4 cmp r0, 0 beq _0812E8EC b _0812E9CA .align 2, 0 _0812E8E0: .4byte gTasks _0812E8E4: mov r2, r8 cmp r2, 0x2 beq _0812E9B8 b _0812E9CA _0812E8EC: movs r3, 0x80 lsls r3, 2 adds r0, r3, 0 ldrh r1, [r7, 0xC] adds r2, r0, r1 strh r2, [r7, 0xC] lsls r0, r2, 16 asrs r0, 16 ldrh r3, [r7, 0x24] mov r8, r3 movs r3, 0x24 ldrsh r1, [r7, r3] cmp r0, r1 blt _0812E9CA mov r0, r8 subs r5, r0, r2 lsls r5, 16 asrs r5, 16 adds r6, r1, 0 lsls r6, 1 adds r0, r5, 0 adds r1, r6, 0 bl __divsi3 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 adds r1, r6, 0 bl __modsi3 lsls r0, 16 lsrs r0, 16 lsls r4, 16 asrs r4, 16 movs r1, 0x1 ands r4, r1 cmp r4, 0 bne _0812E944 lsls r0, 16 asrs r0, 16 mov r2, r8 subs r0, r2, r0 b _0812E9A2 _0812E944: lsls r0, 16 asrs r0, 16 mov r3, r8 subs r0, r3 strh r0, [r7, 0xC] b _0812E9CA _0812E950: ldr r1, _0812E9A8 adds r0, r1, 0 ldrh r2, [r7, 0xC] adds r1, r0, r2 strh r1, [r7, 0xC] movs r3, 0xC ldrsh r0, [r7, r3] movs r2, 0x24 ldrsh r6, [r7, r2] cmn r0, r6 bgt _0812E9CA ldrh r3, [r7, 0x24] mov r9, r3 mov r0, r9 subs r4, r0, r1 lsls r4, 16 asrs r4, 16 lsls r6, 1 adds r0, r4, 0 adds r1, r6, 0 bl __divsi3 adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r4, 0 adds r1, r6, 0 bl __modsi3 lsls r0, 16 lsrs r2, r0, 16 mov r1, r8 ands r1, r5 lsls r0, r1, 16 asrs r1, r0, 16 cmp r1, 0 bne _0812E9AC lsls r0, r2, 16 asrs r0, 16 mov r2, r9 subs r0, r2 _0812E9A2: strh r0, [r7, 0xC] strh r1, [r7, 0x8] b _0812E9CA .align 2, 0 _0812E9A8: .4byte 0xfffffe00 _0812E9AC: lsls r0, r2, 16 asrs r0, 16 mov r3, r9 subs r0, r3, r0 strh r0, [r7, 0xC] b _0812E9CA _0812E9B8: ldrh r0, [r7, 0x26] lsls r0, 24 lsrs r0, 24 bl sub_8078F40 adds r0, r4, 0 bl move_anim_task_del b _0812EA40 _0812E9CA: ldrh r0, [r7, 0x26] lsls r0, 24 lsrs r0, 24 movs r2, 0x80 lsls r2, 1 ldrh r3, [r7, 0xC] adds r1, r2, 0 bl obj_id_set_rotscale ldrh r0, [r7, 0x26] lsls r0, 24 lsrs r0, 24 bl sub_8078F9C ldr r2, _0812EA38 movs r0, 0x26 ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 movs r2, 0xC ldrsh r0, [r7, r2] cmp r0, 0 bge _0812E9FE adds r0, 0x3F _0812E9FE: asrs r0, 6 negs r0, r0 strh r0, [r1, 0x24] ldrh r0, [r7, 0xA] adds r0, 0x1 strh r0, [r7, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _0812EA40 ldrh r1, [r7, 0x20] movs r3, 0x20 ldrsh r0, [r7, r3] cmp r0, 0 beq _0812EA3C subs r0, r1, 0x1 strh r0, [r7, 0x20] ldrh r0, [r7, 0x24] ldrh r1, [r7, 0x22] subs r0, r1 strh r0, [r7, 0x24] lsls r0, 16 asrs r0, 16 cmp r0, 0xF bgt _0812EA40 movs r0, 0x10 strh r0, [r7, 0x24] b _0812EA40 .align 2, 0 _0812EA38: .4byte gSprites _0812EA3C: movs r0, 0x2 strh r0, [r7, 0x8] _0812EA40: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_812E8B4 thumb_func_start sub_812EA4C sub_812EA4C: @ 812EA4C push {r4-r6,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 bne _0812EAAC ldr r6, _0812EAA4 movs r2, 0x4 ldrsh r0, [r6, r2] cmp r0, 0 bne _0812EA80 ldr r4, _0812EAA8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] _0812EA80: ldrh r0, [r6] ldrh r1, [r5, 0x20] adds r0, r1 strh r0, [r5, 0x20] ldrh r1, [r6, 0x2] ldrh r2, [r5, 0x22] adds r0, r1, r2 strh r0, [r5, 0x22] movs r0, 0x80 strh r0, [r5, 0x30] movs r0, 0xC0 lsls r0, 2 strh r0, [r5, 0x32] strh r1, [r5, 0x34] ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] b _0812EB0A .align 2, 0 _0812EAA4: .4byte gUnknown_03004B00 _0812EAA8: .4byte gUnknown_0202F7C8 _0812EAAC: ldrh r1, [r5, 0x30] lsls r0, r1, 16 asrs r0, 24 strh r0, [r5, 0x24] ldrh r0, [r5, 0x32] lsls r0, 16 asrs r0, 24 ldrh r2, [r5, 0x26] adds r0, r2 strh r0, [r5, 0x26] movs r2, 0x36 ldrsh r0, [r5, r2] adds r4, r1, 0 cmp r0, 0 bne _0812EAEA movs r0, 0x26 ldrsh r1, [r5, r0] movs r2, 0x34 ldrsh r0, [r5, r2] cmn r1, r0 ble _0812EAEA movs r0, 0x1 strh r0, [r5, 0x36] movs r1, 0x32 ldrsh r0, [r5, r1] negs r0, r0 movs r1, 0x3 bl __divsi3 lsls r0, 1 strh r0, [r5, 0x32] _0812EAEA: adds r0, r4, 0 adds r0, 0xC0 strh r0, [r5, 0x30] ldrh r0, [r5, 0x32] adds r0, 0x80 strh r0, [r5, 0x32] adds r0, r5, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0812EB0A adds r0, r5, 0 bl move_anim_8072740 _0812EB0A: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_812EA4C thumb_func_start sub_812EB10 sub_812EB10: @ 812EB10 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 ldr r1, _0812EB40 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r2, r0, r1 movs r1, 0x8 ldrsh r0, [r2, r1] cmp r0, 0 bne _0812EC1C ldr r0, _0812EB44 movs r3, 0 ldrsh r1, [r0, r3] mov r8, r0 cmp r1, 0 bne _0812EB4C ldr r0, _0812EB48 b _0812EB4E .align 2, 0 _0812EB40: .4byte gTasks _0812EB44: .4byte gUnknown_03004B00 _0812EB48: .4byte gUnknown_0202F7C8 _0812EB4C: ldr r0, _0812EB88 _0812EB4E: ldrb r0, [r0] strh r0, [r2, 0x1E] mov r1, r8 ldrb r0, [r1] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0812EB8C lsls r4, r7, 2 adds r0, r4, r7 lsls r0, 3 adds r6, r0, r1 strh r5, [r6, 0x1C] adds r0, r5, 0 movs r1, 0 bl sub_8078E70 mov r2, r8 movs r3, 0x2 ldrsh r0, [r2, r3] cmp r0, 0x1 beq _0812EBB0 cmp r0, 0x1 bgt _0812EB90 cmp r0, 0 beq _0812EB98 lsls r2, r5, 4 b _0812EBF8 .align 2, 0 _0812EB88: .4byte gUnknown_0202F7C9 _0812EB8C: .4byte gTasks _0812EB90: cmp r0, 0x2 beq _0812EBBA lsls r2, r5, 4 b _0812EBF8 _0812EB98: movs r2, 0xA0 lsls r2, 1 adds r0, r5, 0 movs r1, 0xE0 movs r3, 0 bl obj_id_set_rotscale adds r0, r5, 0 bl sub_8079A64 lsls r2, r5, 4 b _0812EBF8 _0812EBB0: movs r2, 0x98 lsls r2, 1 movs r3, 0xF0 lsls r3, 4 b _0812EBC2 _0812EBBA: movs r2, 0x98 lsls r2, 1 movs r3, 0xF1 lsls r3, 8 _0812EBC2: adds r0, r5, 0 movs r1, 0xD0 bl obj_id_set_rotscale adds r0, r5, 0 bl sub_8079A64 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _0812EBE8 ldrb r0, [r6, 0x1E] bl battle_side_get_owner lsls r0, 24 lsls r2, r5, 4 cmp r0, 0 bne _0812EBF8 _0812EBE8: ldr r0, _0812EC14 lsls r2, r5, 4 adds r1, r2, r5 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x26] adds r0, 0x10 strh r0, [r1, 0x26] _0812EBF8: ldr r1, _0812EC14 adds r0, r2, r5 lsls r0, 2 adds r0, r1 movs r1, 0x2 strh r1, [r0, 0x24] ldr r0, _0812EC18 adds r1, r4, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0812EC68 .align 2, 0 _0812EC14: .4byte gSprites _0812EC18: .4byte gTasks _0812EC1C: ldrb r5, [r2, 0x1C] ldrh r0, [r2, 0xC] adds r0, 0x1 movs r4, 0 strh r0, [r2, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 bne _0812EC40 strh r4, [r2, 0xC] ldr r0, _0812EC74 lsls r1, r5, 4 adds r1, r5 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x24] negs r0, r0 strh r0, [r1, 0x24] _0812EC40: ldrh r0, [r2, 0xA] adds r0, 0x1 strh r0, [r2, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0xD bne _0812EC68 adds r0, r5, 0 bl sub_8078F40 ldr r1, _0812EC74 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r0, r1 strh r4, [r0, 0x24] strh r4, [r0, 0x26] adds r0, r7, 0 bl move_anim_task_del _0812EC68: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812EC74: .4byte gSprites thumb_func_end sub_812EB10 thumb_func_start sub_812EC78 sub_812EC78: @ 812EC78 push {r4,r5,lr} adds r4, r0, 0 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xC bl __umodsi3 lsls r0, 24 lsrs r0, 24 ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, r0 ldr r3, _0812ECC4 adds r0, r3, 0 ands r1, r0 ldr r0, _0812ECC8 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] bl Random ldr r5, _0812ECCC ands r5, r0 bl Random movs r1, 0xFF ands r1, r0 movs r0, 0x1 ands r0, r5 cmp r0, 0 beq _0812ECD0 movs r2, 0xBC lsls r2, 3 adds r0, r5, r2 b _0812ECD8 .align 2, 0 _0812ECC4: .4byte 0x000003ff _0812ECC8: .4byte 0xfffffc00 _0812ECCC: .4byte 0x000001ff _0812ECD0: movs r3, 0xBC lsls r3, 3 adds r0, r3, 0 subs r0, r5 _0812ECD8: strh r0, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0812ECEA movs r2, 0x90 lsls r2, 3 adds r0, r1, r2 b _0812ECF2 _0812ECEA: movs r3, 0x90 lsls r3, 3 adds r0, r3, 0 subs r0, r1 _0812ECF2: strh r0, [r4, 0x30] ldr r0, _0812ED04 ldrh r0, [r0] strh r0, [r4, 0x32] lsls r0, 16 cmp r0, 0 bne _0812ED0C ldr r0, _0812ED08 b _0812ED0E .align 2, 0 _0812ED04: .4byte gUnknown_03004B00 _0812ED08: .4byte 0x0000fff8 _0812ED0C: movs r0, 0xF8 _0812ED0E: strh r0, [r4, 0x20] movs r0, 0x68 strh r0, [r4, 0x22] ldr r0, _0812ED20 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812ED20: .4byte sub_812ED24 thumb_func_end sub_812EC78 thumb_func_start sub_812ED24 sub_812ED24: @ 812ED24 push {r4,lr} adds r4, r0, 0 movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 bne _0812ED3C ldrh r3, [r4, 0x2E] lsls r0, r3, 16 asrs r0, 24 ldrh r1, [r4, 0x24] adds r0, r1 b _0812ED46 _0812ED3C: ldrh r3, [r4, 0x2E] lsls r1, r3, 16 asrs r1, 24 ldrh r0, [r4, 0x24] subs r0, r1 _0812ED46: strh r0, [r4, 0x24] ldrh r2, [r4, 0x30] lsls r1, r2, 16 asrs r1, 24 ldrh r0, [r4, 0x26] subs r0, r1 strh r0, [r4, 0x26] adds r0, r3, 0 subs r0, 0x16 strh r0, [r4, 0x2E] adds r1, r2, 0 subs r1, 0x30 strh r1, [r4, 0x30] lsls r0, 16 cmp r0, 0 bge _0812ED6A movs r0, 0 strh r0, [r4, 0x2E] _0812ED6A: ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x1F bne _0812ED7E adds r0, r4, 0 bl move_anim_8072740 _0812ED7E: pop {r4} pop {r0} bx r0 thumb_func_end sub_812ED24 thumb_func_start sub_812ED84 sub_812ED84: @ 812ED84 push {r4,lr} adds r4, r0, 0 ldr r1, _0812EDE4 ldr r2, _0812EDE8 adds r0, r2, 0 strh r0, [r1] movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] ldr r0, _0812EDEC movs r1, 0 strh r1, [r0] ldr r0, _0812EDF0 strh r1, [r0] ldr r0, _0812EDF4 strh r1, [r0] adds r0, 0x4 strh r1, [r0] ldr r0, _0812EDF8 ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] adds r0, r4, 0 movs r1, 0 bl sub_8078764 ldrb r1, [r4, 0x1] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r4, 0x1] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _0812EDFC str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _0812EDE4: .4byte REG_WINOUT _0812EDE8: .4byte 0x00001f3f _0812EDEC: .4byte gUnknown_030042C4 _0812EDF0: .4byte gUnknown_03004240 _0812EDF4: .4byte REG_WIN0H _0812EDF8: .4byte gUnknown_03004B00 _0812EDFC: .4byte sub_812EE00 thumb_func_end sub_812ED84 thumb_func_start sub_812EE00 sub_812EE00: @ 812EE00 push {r4,lr} adds r4, r0, 0 movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _0812EE3E cmp r0, 0x1 bgt _0812EE16 cmp r0, 0 beq _0812EE20 b _0812EE94 _0812EE16: cmp r0, 0x2 beq _0812EE54 cmp r0, 0x3 beq _0812EE76 b _0812EE94 _0812EE20: adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0812EE94 b _0812EE6E _0812EE3E: ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 cmp r0, 0 bne _0812EE94 adds r0, r4, 0 movs r1, 0x1 bl ChangeSpriteAffineAnim b _0812EE6E _0812EE54: adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0812EE94 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _0812EE6E: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] b _0812EE94 _0812EE76: ldr r1, _0812EE9C ldr r2, _0812EEA0 adds r0, r2, 0 strh r0, [r1] movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 eors r0, r1 strh r0, [r2] adds r0, r4, 0 bl move_anim_8072740 _0812EE94: pop {r4} pop {r0} bx r0 .align 2, 0 _0812EE9C: .4byte REG_WINOUT _0812EEA0: .4byte 0x00003f3f thumb_func_end sub_812EE00 thumb_func_start sub_812EEA4 sub_812EEA4: @ 812EEA4 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _0812EEE0 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] ldr r1, _0812EEE4 ldrh r0, [r1] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x2] strh r0, [r4, 0x30] ldr r1, _0812EEE8 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812EEE0: .4byte gUnknown_0202F7C8 _0812EEE4: .4byte gUnknown_03004B00 _0812EEE8: .4byte sub_812EEEC thumb_func_end sub_812EEA4 thumb_func_start sub_812EEEC sub_812EEEC: @ 812EEEC push {r4,lr} adds r4, r0, 0 movs r1, 0x30 ldrsh r0, [r4, r1] ldrh r1, [r4, 0x32] lsls r1, 16 asrs r1, 24 bl Sin strh r0, [r4, 0x24] movs r2, 0x30 ldrsh r0, [r4, r2] ldrh r1, [r4, 0x34] lsls r1, 16 asrs r1, 24 bl Cos strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] adds r0, 0x9 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x30] lsls r1, r0, 16 cmp r0, 0x3F bls _0812EF26 asrs r0, r1, 16 cmp r0, 0xC3 ble _0812EF38 _0812EF26: ldr r0, _0812EF34 ldrb r0, [r0] bl sub_8079E90 subs r0, 0x1 b _0812EF42 .align 2, 0 _0812EF34: .4byte gUnknown_0202F7C8 _0812EF38: ldr r0, _0812EF84 ldrb r0, [r0] bl sub_8079E90 adds r0, 0x1 _0812EF42: adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] movs r3, 0x38 ldrsh r2, [r4, r3] cmp r2, 0 bne _0812EF88 movs r1, 0x80 lsls r1, 3 adds r0, r1, 0 ldrh r3, [r4, 0x32] adds r0, r3 strh r0, [r4, 0x32] movs r1, 0x80 lsls r1, 1 adds r0, r1, 0 ldrh r3, [r4, 0x34] adds r0, r3 strh r0, [r4, 0x34] ldrh r0, [r4, 0x36] adds r0, 0x1 strh r0, [r4, 0x36] lsls r0, 16 asrs r0, 16 movs r3, 0x2E ldrsh r1, [r4, r3] cmp r0, r1 bne _0812EFB8 strh r2, [r4, 0x36] movs r0, 0x1 strh r0, [r4, 0x38] b _0812EFB8 .align 2, 0 _0812EF84: .4byte gUnknown_0202F7C8 _0812EF88: cmp r2, 0x1 bne _0812EFB8 ldr r1, _0812EFC0 adds r0, r1, 0 ldrh r2, [r4, 0x32] adds r0, r2 strh r0, [r4, 0x32] ldr r3, _0812EFC4 adds r0, r3, 0 ldrh r1, [r4, 0x34] adds r0, r1 strh r0, [r4, 0x34] ldrh r0, [r4, 0x36] adds r0, 0x1 strh r0, [r4, 0x36] lsls r0, 16 asrs r0, 16 movs r2, 0x2E ldrsh r1, [r4, r2] cmp r0, r1 bne _0812EFB8 adds r0, r4, 0 bl move_anim_8072740 _0812EFB8: pop {r4} pop {r0} bx r0 .align 2, 0 _0812EFC0: .4byte 0xfffffc00 _0812EFC4: .4byte 0xffffff00 thumb_func_end sub_812EEEC thumb_func_start sub_812EFC8 sub_812EFC8: @ 812EFC8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x10] movs r0, 0 bl obj_id_for_side_relative_to_move bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _0812F004 movs r0, 0x1 str r0, [sp, 0x14] ldr r0, _0812F000 ldr r1, [r0, 0x10] mov r9, r1 ldr r2, [r0, 0xC] mov r8, r2 ldrh r6, [r0, 0x2] movs r3, 0x14 b _0812F13C .align 2, 0 _0812F000: .4byte 0x02019348 _0812F004: ldr r0, _0812F070 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0812F0AC movs r0, 0 str r0, [sp, 0x14] ldr r6, _0812F074 ldr r4, _0812F078 ldrb r0, [r4] lsls r0, 1 adds r0, r6 ldrh r0, [r0] movs r5, 0x64 muls r0, r5 ldr r7, _0812F07C adds r0, r7 movs r1, 0 bl GetMonData mov r9, r0 ldrb r0, [r4] lsls r0, 1 adds r0, r6 ldrh r0, [r0] muls r0, r5 adds r0, r7 movs r1, 0x1 bl GetMonData mov r8, r0 ldrb r2, [r4] lsls r1, r2, 2 ldr r0, _0812F080 adds r1, r0 ldrh r0, [r1, 0x2] cmp r0, 0 bne _0812F0A4 adds r0, r2, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0812F084 ldrb r0, [r4] lsls r0, 1 adds r0, r6 ldrh r0, [r0] muls r0, r5 adds r0, r7 b _0812F092 .align 2, 0 _0812F070: .4byte gUnknown_0202F7C8 _0812F074: .4byte gUnknown_02024A6A _0812F078: .4byte gUnknown_0202F7C9 _0812F07C: .4byte gPlayerParty _0812F080: .4byte 0x02017800 _0812F084: ldrb r0, [r4] lsls r0, 1 adds r0, r6 ldrh r0, [r0] muls r0, r5 ldr r1, _0812F0A0 adds r0, r1 _0812F092: movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r6, r0, 16 b _0812F0A6 .align 2, 0 _0812F0A0: .4byte gEnemyParty _0812F0A4: ldrh r6, [r1, 0x2] _0812F0A6: movs r1, 0x14 mov r10, r1 b _0812F13E _0812F0AC: movs r2, 0x1 str r2, [sp, 0x14] ldr r6, _0812F10C ldr r4, _0812F110 ldrb r0, [r4] lsls r0, 1 adds r0, r6 ldrh r0, [r0] movs r5, 0x64 muls r0, r5 ldr r7, _0812F114 adds r0, r7 movs r1, 0 bl GetMonData mov r9, r0 ldrb r0, [r4] lsls r0, 1 adds r0, r6 ldrh r0, [r0] muls r0, r5 adds r0, r7 movs r1, 0x1 bl GetMonData mov r8, r0 ldrb r2, [r4] lsls r1, r2, 2 ldr r0, _0812F118 adds r1, r0 ldrh r0, [r1, 0x2] cmp r0, 0 bne _0812F138 adds r0, r2, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0812F120 ldrb r0, [r4] lsls r0, 1 adds r0, r6 ldrh r0, [r0] muls r0, r5 ldr r1, _0812F11C adds r0, r1 b _0812F12C .align 2, 0 _0812F10C: .4byte gUnknown_02024A6A _0812F110: .4byte gUnknown_0202F7C9 _0812F114: .4byte gEnemyParty _0812F118: .4byte 0x02017800 _0812F11C: .4byte gPlayerParty _0812F120: ldrb r0, [r4] lsls r0, 1 adds r0, r6 ldrh r0, [r0] muls r0, r5 adds r0, r7 _0812F12C: movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r6, r0, 16 b _0812F13A _0812F138: ldrh r6, [r1, 0x2] _0812F13A: ldr r3, _0812F218 _0812F13C: mov r10, r3 _0812F13E: ldr r0, _0812F21C ldrb r0, [r0] bl sub_8079ED4 lsls r0, 24 lsrs r7, r0, 24 ldr r5, _0812F21C ldrb r0, [r5] movs r1, 0 bl sub_8077ABC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r5] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 mov r2, r10 lsls r1, r2, 16 asrs r1, 16 adds r4, r1 lsls r4, 16 asrs r4, 16 lsrs r0, 24 str r0, [sp] movs r0, 0x5 str r0, [sp, 0x4] mov r3, r9 str r3, [sp, 0x8] mov r0, r8 str r0, [sp, 0xC] adds r0, r6, 0 ldr r1, [sp, 0x14] movs r2, 0 adds r3, r4, 0 bl sub_8079F44 adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 ldr r0, _0812F220 lsls r5, r6, 4 adds r5, r6 lsls r5, 2 adds r5, r0 movs r0, 0x3 ands r7, r0 lsls r7, 2 mov r8, r7 ldrb r0, [r5, 0x5] movs r4, 0xD negs r4, r4 adds r1, r4, 0 ands r1, r0 mov r2, r8 orrs r1, r2 strb r1, [r5, 0x5] ldrb r2, [r5, 0x1] adds r0, r4, 0 ands r0, r2 movs r2, 0x4 orrs r0, r2 strb r0, [r5, 0x1] ldr r0, _0812F224 lsrs r1, 4 lsls r1, 4 movs r3, 0x80 lsls r3, 1 adds r2, r3, 0 orrs r1, r2 movs r2, 0x20 bl FillPalette ldrb r0, [r5, 0x5] ands r4, r0 mov r0, r8 orrs r4, r0 strb r4, [r5, 0x5] ldr r1, _0812F228 movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] ldr r3, _0812F22C ldr r0, _0812F230 ldr r2, [sp, 0x10] lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldrh r2, [r1, 0xA] movs r0, 0x10 subs r0, r2 lsls r0, 8 orrs r0, r2 strh r0, [r3] strh r6, [r1, 0x8] ldr r0, _0812F234 str r0, [r1] add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812F218: .4byte 0x0000ffec _0812F21C: .4byte gUnknown_0202F7C8 _0812F220: .4byte gSprites _0812F224: .4byte 0x00007fff _0812F228: .4byte REG_BLDCNT _0812F22C: .4byte REG_BLDALPHA _0812F230: .4byte gTasks _0812F234: .4byte sub_812F238 thumb_func_end sub_812EFC8 thumb_func_start sub_812F238 sub_812F238: @ 812F238 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0812F284 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r3, r1, r2 ldrh r0, [r3, 0x1C] adds r1, r0, 0x1 strh r1, [r3, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _0812F280 movs r0, 0 strh r0, [r3, 0x1C] ldrh r1, [r3, 0xA] adds r1, 0x1 strh r1, [r3, 0xA] ldr r2, _0812F288 movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r1, 0xA ldrsh r0, [r3, r1] cmp r0, 0xA bne _0812F280 movs r0, 0x80 lsls r0, 1 strh r0, [r3, 0x1C] strh r0, [r3, 0x1E] ldr r0, _0812F28C str r0, [r3] _0812F280: pop {r0} bx r0 .align 2, 0 _0812F284: .4byte gTasks _0812F288: .4byte REG_BLDALPHA _0812F28C: .4byte sub_812F290 thumb_func_end sub_812F238 thumb_func_start sub_812F290 sub_812F290: @ 812F290 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r2, _0812F308 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r5, r1, r2 ldrb r2, [r5, 0x8] ldrh r0, [r5, 0x1C] subs r0, 0x10 movs r4, 0 strh r0, [r5, 0x1C] ldrh r0, [r5, 0x1E] adds r0, 0x80 strh r0, [r5, 0x1E] ldr r1, _0812F30C lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r6, r0, r1 ldrb r2, [r6, 0x1] lsls r1, r2, 30 lsrs r1, 30 movs r0, 0x2 orrs r1, r0 subs r0, 0x6 ands r0, r2 orrs r0, r1 strb r0, [r6, 0x1] movs r0, 0x1C ldrsh r2, [r5, r0] movs r0, 0x1E ldrsh r3, [r5, r0] str r4, [sp] adds r0, r6, 0 movs r1, 0x1 bl sub_8078FDC ldrh r0, [r5, 0x20] adds r0, 0x1 strh r0, [r5, 0x20] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 bne _0812F2FE adds r0, r6, 0 bl sub_8079098 adds r0, r6, 0 bl sub_807A0F4 ldr r0, _0812F310 str r0, [r5] _0812F2FE: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812F308: .4byte gTasks _0812F30C: .4byte gSprites _0812F310: .4byte sub_8078634 thumb_func_end sub_812F290 thumb_func_start sub_812F314 sub_812F314: @ 812F314 push {r4-r7,lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _0812F334 adds r4, r1, r0 ldr r0, _0812F338 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _0812F340 ldr r0, _0812F33C b _0812F342 .align 2, 0 _0812F334: .4byte gTasks _0812F338: .4byte gUnknown_03004B00 _0812F33C: .4byte gUnknown_0202F7C8 _0812F340: ldr r0, _0812F3C0 _0812F342: ldrb r5, [r0] movs r6, 0 strh r6, [r4, 0x8] strh r6, [r4, 0xA] strh r6, [r4, 0xC] movs r0, 0x10 strh r0, [r4, 0xE] strh r6, [r4, 0x10] strh r5, [r4, 0x12] movs r0, 0x20 strh r0, [r4, 0x14] strh r6, [r4, 0x16] movs r0, 0x18 strh r0, [r4, 0x18] adds r0, r5, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812F374 movs r2, 0x18 ldrsh r0, [r4, r2] negs r0, r0 strh r0, [r4, 0x18] _0812F374: adds r0, r5, 0 bl sub_8077FC0 lsls r0, 24 lsrs r0, 24 subs r0, 0x22 strh r0, [r4, 0x22] cmp r0, 0 bge _0812F388 strh r6, [r4, 0x22] _0812F388: ldrh r0, [r4, 0x22] adds r0, 0x42 strh r0, [r4, 0x24] ldr r0, _0812F3C4 ldrb r0, [r0] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] adds r0, r5, 0 bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812F3DC ldr r0, _0812F3C8 str r0, [sp] ldr r1, _0812F3CC ldr r2, _0812F3D0 adds r0, r2, 0 strh r0, [r1] ldr r0, _0812F3D4 ldrh r5, [r0] ldr r0, _0812F3D8 b _0812F3EE .align 2, 0 _0812F3C0: .4byte gUnknown_0202F7C9 _0812F3C4: .4byte gUnknown_03004B00 _0812F3C8: .4byte REG_BG1HOFS _0812F3CC: .4byte REG_BLDCNT _0812F3D0: .4byte 0x00003f42 _0812F3D4: .4byte gUnknown_030042C0 _0812F3D8: .4byte gUnknown_030041B4 _0812F3DC: ldr r0, _0812F454 str r0, [sp] ldr r1, _0812F458 ldr r2, _0812F45C adds r0, r2, 0 strh r0, [r1] ldr r0, _0812F460 ldrh r5, [r0] ldr r0, _0812F464 _0812F3EE: ldrh r3, [r0] movs r7, 0 movs r2, 0 ldr r6, _0812F468 movs r0, 0xF0 lsls r0, 3 adds r0, r6 mov r12, r0 _0812F3FE: lsls r2, 16 asrs r2, 16 lsls r1, r2, 1 adds r0, r1, r6 strh r5, [r0] add r1, r12 strh r5, [r1] adds r0, r2, 0x1 lsls r0, 1 adds r1, r0, r6 strh r3, [r1] add r0, r12 strh r3, [r0] lsls r0, r7, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 adds r2, 0x2 lsls r2, 16 lsrs r2, 16 lsrs r7, r0, 16 asrs r0, 16 cmp r0, 0x9F ble _0812F3FE ldr r0, _0812F46C str r0, [sp, 0x4] mov r1, sp movs r2, 0 movs r0, 0x1 strb r0, [r1, 0x8] mov r0, sp strb r2, [r0, 0x9] ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] bl sub_80895F8 ldr r0, _0812F470 str r0, [r4] add sp, 0xC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812F454: .4byte REG_BG2HOFS _0812F458: .4byte REG_BLDCNT _0812F45C: .4byte 0x00003f44 _0812F460: .4byte gUnknown_03004288 _0812F464: .4byte gUnknown_03004280 _0812F468: .4byte gUnknown_03004DE0 _0812F46C: .4byte 0xa6600001 _0812F470: .4byte sub_812F474 thumb_func_end sub_812F314 thumb_func_start sub_812F474 sub_812F474: @ 812F474 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _0812F4A8 adds r6, r0, r1 ldrb r0, [r6, 0x12] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812F4B4 ldr r0, _0812F4AC ldrh r0, [r0] str r0, [sp, 0x4] ldr r0, _0812F4B0 b _0812F4BC .align 2, 0 _0812F4A8: .4byte gTasks _0812F4AC: .4byte gUnknown_030042C0 _0812F4B0: .4byte gUnknown_030041B4 _0812F4B4: ldr r0, _0812F4D4 ldrh r0, [r0] str r0, [sp, 0x4] ldr r0, _0812F4D8 _0812F4BC: ldrh r0, [r0] str r0, [sp, 0x8] movs r1, 0x8 ldrsh r0, [r6, r1] cmp r0, 0x1 bne _0812F4CA b _0812F6A6 _0812F4CA: cmp r0, 0x1 bgt _0812F4DC cmp r0, 0 beq _0812F4EA b _0812F712 .align 2, 0 _0812F4D4: .4byte gUnknown_03004288 _0812F4D8: .4byte gUnknown_03004280 _0812F4DC: cmp r0, 0x2 bne _0812F4E2 b _0812F6C4 _0812F4E2: cmp r0, 0x3 bne _0812F4E8 b _0812F70C _0812F4E8: b _0812F712 _0812F4EA: movs r2, 0x24 ldrsh r0, [r6, r2] lsls r0, 17 lsrs r5, r0, 16 movs r3, 0 str r3, [sp] mov r9, r3 movs r4, 0 ldrh r0, [r6, 0xA] adds r0, 0x2 movs r1, 0xFF ands r0, r1 strh r0, [r6, 0xA] ldrh r7, [r6, 0xA] mov r8, r7 movs r0, 0x14 ldrsh r1, [r6, r0] movs r0, 0xFC lsls r0, 3 bl __divsi3 strh r0, [r6, 0x1A] movs r1, 0x16 ldrsh r0, [r6, r1] lsls r0, 1 movs r2, 0x1A ldrsh r1, [r6, r2] bl __divsi3 negs r0, r0 strh r0, [r6, 0x1C] ldrh r0, [r6, 0x16] strh r0, [r6, 0x1E] lsls r0, 16 asrs r0, 21 lsls r0, 16 lsrs r7, r0, 16 strh r7, [r6, 0x20] ldrh r2, [r6, 0x24] lsls r3, r2, 16 mov r12, r3 asrs r1, r3, 16 movs r3, 0x22 ldrsh r0, [r6, r3] cmp r1, r0 ble _0812F60A ldr r0, _0812F660 mov r10, r0 ldr r1, [sp, 0x4] lsls r0, r1, 16 asrs r0, 16 str r0, [sp, 0x10] ldr r2, [sp, 0x8] lsls r0, r2, 16 asrs r0, 16 str r0, [sp, 0xC] _0812F55A: lsls r5, 16 asrs r5, 16 adds r2, r5, 0x1 lsls r2, 1 mov r3, r10 ldrb r1, [r3, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 ldr r0, _0812F664 adds r2, r0 lsls r4, 16 asrs r4, 16 mov r1, r9 lsls r0, r1, 16 asrs r0, 16 subs r0, r4, r0 ldr r3, [sp, 0xC] adds r0, r3, r0 strh r0, [r2] lsls r3, r5, 1 mov r0, r10 ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r3, r0 ldr r1, _0812F664 adds r3, r1 lsls r1, r7, 16 asrs r1, 16 ldr r2, [sp, 0x10] adds r1, r2, r1 mov r7, r8 lsls r2, r7, 16 asrs r2, 16 lsls r0, r2, 1 ldr r7, _0812F668 adds r0, r7 ldrh r0, [r0] lsls r0, 16 asrs r0, 21 adds r1, r0 strh r1, [r3] adds r2, 0xA mov r8, r2 movs r0, 0xFF mov r1, r8 ands r1, r0 mov r8, r1 ldrh r0, [r6, 0x1C] ldrh r2, [r6, 0x1E] adds r0, r2 strh r0, [r6, 0x1E] lsls r0, 16 asrs r0, 21 lsls r0, 16 lsrs r7, r0, 16 strh r7, [r6, 0x20] adds r4, 0x1 lsls r4, 16 lsrs r4, 16 subs r5, 0x2 lsls r5, 16 lsrs r5, 16 ldr r3, [sp] lsls r0, r3, 16 asrs r0, 16 ldrh r1, [r6, 0x14] adds r0, r1 lsls r0, 16 lsrs r2, r0, 16 str r2, [sp] asrs r0, 21 lsls r0, 16 lsrs r0, 16 mov r9, r0 ldr r0, _0812F66C add r0, r12 lsrs r2, r0, 16 lsls r3, r2, 16 mov r12, r3 asrs r1, r3, 16 movs r3, 0x22 ldrsh r0, [r6, r3] cmp r1, r0 bgt _0812F55A _0812F60A: lsls r1, r2, 17 cmp r1, 0 blt _0812F636 ldr r4, _0812F664 ldr r7, [sp, 0x4] lsls r0, r7, 16 asrs r0, 16 adds r3, r0, 0 adds r3, 0xF0 movs r0, 0xF0 lsls r0, 3 adds r5, r4, r0 _0812F622: asrs r2, r1, 16 lsls r1, r2, 1 adds r0, r1, r4 strh r3, [r0] adds r1, r5 strh r3, [r1] subs r2, 0x2 lsls r1, r2, 16 cmp r1, 0 bge _0812F622 _0812F636: ldrh r0, [r6, 0x14] adds r0, 0x1 strh r0, [r6, 0x14] lsls r0, 16 asrs r0, 16 cmp r0, 0x3F ble _0812F69C movs r0, 0x40 strh r0, [r6, 0x14] ldrh r0, [r6, 0xC] adds r0, 0x1 strh r0, [r6, 0xC] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0812F670 ldrh r0, [r6, 0xE] subs r0, 0x1 strh r0, [r6, 0xE] b _0812F676 .align 2, 0 _0812F660: .4byte gUnknown_03004DC0 _0812F664: .4byte gUnknown_03004DE0 _0812F668: .4byte gSineTable _0812F66C: .4byte 0xffff0000 _0812F670: ldrh r0, [r6, 0x10] adds r0, 0x1 strh r0, [r6, 0x10] _0812F676: ldr r0, _0812F698 ldrh r1, [r6, 0x10] lsls r1, 8 ldrh r2, [r6, 0xE] orrs r1, r2 strh r1, [r0] movs r2, 0xE ldrsh r1, [r6, r2] cmp r1, 0 bne _0812F712 movs r3, 0x10 ldrsh r0, [r6, r3] cmp r0, 0x10 bne _0812F712 strh r1, [r6, 0xC] strh r1, [r6, 0xE] b _0812F700 .align 2, 0 _0812F698: .4byte REG_BLDALPHA _0812F69C: ldrh r0, [r6, 0x18] ldrh r7, [r6, 0x16] adds r0, r7 strh r0, [r6, 0x16] b _0812F712 _0812F6A6: ldrh r0, [r6, 0xC] adds r0, 0x1 strh r0, [r6, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0xC ble _0812F712 ldr r1, _0812F6C0 movs r0, 0x3 strb r0, [r1, 0x15] movs r0, 0 strh r0, [r6, 0xC] b _0812F700 .align 2, 0 _0812F6C0: .4byte gUnknown_03004DC0 _0812F6C4: ldrh r0, [r6, 0xC] adds r0, 0x1 strh r0, [r6, 0xC] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0812F6DA ldrh r0, [r6, 0xE] adds r0, 0x1 strh r0, [r6, 0xE] b _0812F6E0 _0812F6DA: ldrh r0, [r6, 0x10] subs r0, 0x1 strh r0, [r6, 0x10] _0812F6E0: ldr r2, _0812F708 ldrh r0, [r6, 0x10] lsls r0, 8 ldrh r1, [r6, 0xE] orrs r0, r1 strh r0, [r2] movs r1, 0xE ldrsh r0, [r6, r1] cmp r0, 0x10 bne _0812F712 movs r2, 0x10 ldrsh r0, [r6, r2] cmp r0, 0 bne _0812F712 strh r0, [r6, 0xC] strh r0, [r6, 0xE] _0812F700: ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] b _0812F712 .align 2, 0 _0812F708: .4byte REG_BLDALPHA _0812F70C: adds r0, r4, 0 bl move_anim_task_del _0812F712: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_812F474 thumb_func_start sub_812F724 sub_812F724: @ 812F724 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _0812F75C adds r4, r0 movs r0, 0 strh r0, [r4, 0x8] ldr r0, _0812F760 ldrb r0, [r0] bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 strh r1, [r4, 0x26] ldr r2, _0812F764 adds r0, r4, 0 bl sub_80798F4 ldr r0, _0812F768 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0812F75C: .4byte gTasks _0812F760: .4byte gUnknown_03004B00 _0812F764: .4byte gUnknown_08402750 _0812F768: .4byte sub_812F76C thumb_func_end sub_812F724 thumb_func_start sub_812F76C sub_812F76C: @ 812F76C push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r2, _0812F7C4 adds r3, r0, r2 ldrh r0, [r3, 0x8] adds r1, r0, 0x1 movs r5, 0 strh r1, [r3, 0x8] subs r0, 0x14 lsls r0, 16 lsrs r0, 16 adds r6, r2, 0 cmp r0, 0x16 bhi _0812F7D0 ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _0812F7E0 strh r5, [r3, 0xA] ldrh r0, [r3, 0xC] adds r0, 0x1 strh r0, [r3, 0xC] movs r5, 0x1 ands r0, r5 cmp r0, 0 bne _0812F7D0 ldr r2, _0812F7C8 movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _0812F7CC strh r1, [r0, 0x24] b _0812F7E0 .align 2, 0 _0812F7C4: .4byte gTasks _0812F7C8: .4byte gSprites _0812F7CC: .4byte 0x0000ffff _0812F7D0: ldr r2, _0812F800 movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r5, [r0, 0x24] _0812F7E0: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r6 bl sub_807992C lsls r0, 24 cmp r0, 0 bne _0812F7F8 adds r0, r4, 0 bl move_anim_task_del _0812F7F8: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812F800: .4byte gSprites thumb_func_end sub_812F76C thumb_func_start sub_812F804 sub_812F804: @ 812F804 push {r4-r6,lr} mov r6, r8 push {r6} mov r8, r0 adds r5, r2, 0 adds r0, r3, 0 ldr r4, [sp, 0x14] ldr r6, [sp, 0x18] lsls r1, 16 lsrs r1, 16 lsls r5, 16 lsrs r5, 16 lsls r4, 16 lsrs r4, 16 lsls r6, 16 lsrs r6, 16 mov r2, r8 strh r1, [r2, 0x20] strh r5, [r2, 0x22] lsls r1, 16 asrs r1, 16 lsls r2, r1, 4 mov r3, r8 strh r2, [r3, 0x36] lsls r5, 16 asrs r5, 16 lsls r2, r5, 4 strh r2, [r3, 0x38] lsls r0, 16 asrs r0, 16 subs r0, r1 lsls r0, 4 adds r1, r6, 0 bl __divsi3 mov r1, r8 strh r0, [r1, 0x3A] lsls r4, 16 asrs r4, 16 subs r4, r5 lsls r4, 4 adds r0, r4, 0 adds r1, r6, 0 bl __divsi3 mov r2, r8 strh r0, [r2, 0x3C] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_812F804 thumb_func_start sub_812F86C sub_812F86C: @ 812F86C ldrh r1, [r0, 0x3A] ldrh r2, [r0, 0x36] adds r1, r2 strh r1, [r0, 0x36] ldrh r2, [r0, 0x3C] ldrh r3, [r0, 0x38] adds r2, r3 strh r2, [r0, 0x38] lsls r1, 16 asrs r1, 20 strh r1, [r0, 0x20] lsls r2, 16 asrs r2, 20 strh r2, [r0, 0x22] bx lr thumb_func_end sub_812F86C thumb_func_start sub_812F88C sub_812F88C: @ 812F88C push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 ldrh r6, [r4, 0x20] ldrh r5, [r4, 0x22] bl sub_8078650 ldr r0, _0812F8D4 ldrb r1, [r0] adds r0, r4, 0 bl StartSpriteAffineAnim movs r0, 0x20 ldrsh r1, [r4, r0] movs r0, 0x22 ldrsh r2, [r4, r0] lsls r6, 16 asrs r6, 16 lsls r5, 16 asrs r5, 16 str r5, [sp] movs r0, 0x40 str r0, [sp, 0x4] adds r0, r4, 0 adds r3, r6, 0 bl sub_812F804 movs r0, 0 strh r0, [r4, 0x2E] ldr r0, _0812F8D8 str r0, [r4, 0x1C] add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812F8D4: .4byte gUnknown_03004B00 _0812F8D8: .4byte sub_812F8DC thumb_func_end sub_812F88C thumb_func_start sub_812F8DC sub_812F8DC: @ 812F8DC push {r4,r5,lr} adds r5, r0, 0 ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] movs r0, 0x2E ldrsh r4, [r5, r0] lsls r4, 3 movs r0, 0xFF ands r4, r0 adds r0, r5, 0 bl sub_812F86C adds r0, r4, 0 movs r1, 0x8 bl Sin strh r0, [r5, 0x26] movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0x3A ble _0812F942 ldrh r0, [r5, 0x30] adds r0, 0x1 strh r0, [r5, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _0812F942 movs r0, 0 strh r0, [r5, 0x30] ldrh r1, [r5, 0x32] adds r1, 0x1 strh r1, [r5, 0x32] movs r0, 0x1 ands r1, r0 adds r3, r5, 0 adds r3, 0x3E lsls r1, 2 ldrb r2, [r3] subs r0, 0x6 ands r0, r2 orrs r0, r1 strb r0, [r3] movs r1, 0x32 ldrsh r0, [r5, r1] cmp r0, 0x3 ble _0812F942 adds r0, r5, 0 bl move_anim_8074EE0 _0812F942: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_812F8DC thumb_func_start sub_812F948 sub_812F948: @ 812F948 push {r4-r6,lr} adds r5, r0, 0 ldr r6, _0812F9A0 ldrh r0, [r6, 0x6] strh r0, [r5, 0x2E] ldrb r1, [r6] adds r0, r5, 0 bl StartSpriteAffineAnim ldr r0, _0812F9A4 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0812F96E ldrh r0, [r6, 0x2] negs r0, r0 strh r0, [r6, 0x2] _0812F96E: ldr r4, _0812F9A8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x2] adds r0, r1 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x4] adds r0, r6 strh r0, [r5, 0x22] ldr r0, _0812F9AC str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812F9A0: .4byte gUnknown_03004B00 _0812F9A4: .4byte gUnknown_0202F7C9 _0812F9A8: .4byte gUnknown_0202F7C8 _0812F9AC: .4byte sub_80DA48C thumb_func_end sub_812F948 thumb_func_start sub_812F9B0 sub_812F9B0: @ 812F9B0 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 movs r7, 0 ldr r2, _0812FA00 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r3, r0, r2 ldrh r0, [r3, 0x8] subs r0, 0x1 strh r0, [r3, 0x8] movs r1, 0x14 ldrsh r0, [r3, r1] movs r1, 0x80 lsls r1, 8 ands r0, r1 mov r8, r2 cmp r0, 0 beq _0812FA32 ldrh r0, [r3, 0xA] subs r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0812FA32 movs r2, 0x1A ldrsh r0, [r3, r2] cmp r0, 0 bne _0812FA04 ldrh r0, [r3, 0x10] strh r0, [r3, 0x1A] negs r0, r0 strh r0, [r3, 0x10] b _0812FA06 .align 2, 0 _0812FA00: .4byte gTasks _0812FA04: strh r7, [r3, 0x1A] _0812FA06: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 mov r2, r8 adds r1, r0, r2 movs r2, 0x1C ldrsh r0, [r1, r2] cmp r0, 0 bne _0812FA22 ldrh r0, [r1, 0x12] strh r0, [r1, 0x1C] negs r0, r0 strh r0, [r1, 0x12] b _0812FA26 _0812FA22: movs r0, 0 strh r0, [r1, 0x1C] _0812FA26: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 add r0, r8 ldrh r1, [r0, 0x22] strh r1, [r0, 0xA] _0812FA32: lsls r2, r5, 2 adds r0, r2, r5 lsls r0, 3 mov r1, r8 adds r4, r0, r1 ldrh r6, [r4, 0x16] ldrh r7, [r4, 0x18] movs r1, 0xC ldrsh r0, [r4, r1] movs r1, 0x80 lsls r1, 8 ands r0, r1 mov r12, r2 cmp r0, 0 beq _0812FA70 ldr r3, _0812FA6C movs r2, 0x26 ldrsh r0, [r4, r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 lsrs r2, r6, 8 ldrh r0, [r4, 0x1A] subs r0, r2 strh r0, [r1, 0x24] adds r2, r3, 0 b _0812FA86 .align 2, 0 _0812FA6C: .4byte gSprites _0812FA70: ldr r2, _0812FAB4 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 lsrs r1, r6, 8 ldrh r4, [r4, 0x1A] adds r1, r4 strh r1, [r0, 0x24] _0812FA86: mov r1, r12 adds r0, r1, r5 lsls r0, 3 mov r1, r8 adds r4, r0, r1 movs r1, 0xE ldrsh r0, [r4, r1] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 beq _0812FAB8 movs r1, 0x26 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 lsrs r2, r7, 8 ldrh r0, [r4, 0x1C] subs r0, r2 b _0812FACA .align 2, 0 _0812FAB4: .4byte gSprites _0812FAB8: movs r1, 0x26 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 lsrs r0, r7, 8 ldrh r4, [r4, 0x1C] adds r0, r4 _0812FACA: strh r0, [r1, 0x26] mov r2, r12 adds r0, r2, r5 lsls r0, 3 add r0, r8 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0 bgt _0812FAEA adds r0, r5, 0 bl DestroyTask ldr r1, _0812FAF4 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] _0812FAEA: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812FAF4: .4byte gUnknown_0202F7B2 thumb_func_end sub_812F9B0 thumb_func_start sub_812FAF8 sub_812FAF8: @ 812FAF8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r6, r0, 24 movs r7, 0 ldr r2, _0812FB4C lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r3, r0, r2 ldrh r0, [r3, 0x8] subs r0, 0x1 strh r0, [r3, 0x8] movs r1, 0x14 ldrsh r0, [r3, r1] movs r1, 0x80 lsls r1, 8 ands r0, r1 mov r8, r2 cmp r0, 0 beq _0812FB7E ldrh r0, [r3, 0xA] subs r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0812FB7E movs r2, 0x1A ldrsh r0, [r3, r2] cmp r0, 0 bne _0812FB50 ldrh r0, [r3, 0x10] strh r0, [r3, 0x1A] negs r0, r0 strh r0, [r3, 0x10] b _0812FB52 .align 2, 0 _0812FB4C: .4byte gTasks _0812FB50: strh r7, [r3, 0x1A] _0812FB52: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 mov r2, r8 adds r1, r0, r2 movs r2, 0x1C ldrsh r0, [r1, r2] cmp r0, 0 bne _0812FB6E ldrh r0, [r1, 0x12] strh r0, [r1, 0x1C] negs r0, r0 strh r0, [r1, 0x12] b _0812FB72 _0812FB6E: movs r0, 0 strh r0, [r1, 0x1C] _0812FB72: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 add r0, r8 ldrh r1, [r0, 0x22] strh r1, [r0, 0xA] _0812FB7E: lsls r3, r6, 2 adds r0, r3, r6 lsls r0, 3 mov r1, r8 adds r4, r0, r1 ldrh r2, [r4, 0xC] ldr r1, _0812FBD0 adds r0, r1, 0 ands r0, r2 ldrh r2, [r4, 0x16] adds r0, r2 lsls r5, r0, 16 lsrs r0, r5, 16 mov r9, r0 ldrh r0, [r4, 0xE] ands r1, r0 ldrh r2, [r4, 0x18] adds r1, r2 lsls r1, 16 lsrs r7, r1, 16 movs r1, 0xC ldrsh r0, [r4, r1] movs r1, 0x80 lsls r1, 8 ands r0, r1 mov r12, r3 cmp r0, 0 beq _0812FBD8 ldr r3, _0812FBD4 movs r2, 0x26 ldrsh r0, [r4, r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 lsrs r2, r5, 24 ldrh r0, [r4, 0x1A] subs r0, r2 strh r0, [r1, 0x24] adds r2, r3, 0 b _0812FBEE .align 2, 0 _0812FBD0: .4byte 0x00007fff _0812FBD4: .4byte gSprites _0812FBD8: ldr r2, _0812FC1C movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 lsrs r1, r5, 24 ldrh r4, [r4, 0x1A] adds r1, r4 strh r1, [r0, 0x24] _0812FBEE: mov r1, r12 adds r0, r1, r6 lsls r0, 3 mov r1, r8 adds r4, r0, r1 movs r1, 0xE ldrsh r0, [r4, r1] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 beq _0812FC20 movs r1, 0x26 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 lsrs r2, r7, 8 ldrh r0, [r4, 0x1C] subs r0, r2 b _0812FC32 .align 2, 0 _0812FC1C: .4byte gSprites _0812FC20: movs r1, 0x26 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 lsrs r0, r7, 8 ldrh r4, [r4, 0x1C] adds r0, r4 _0812FC32: strh r0, [r1, 0x26] mov r2, r12 adds r0, r2, r6 lsls r0, 3 mov r1, r8 adds r2, r0, r1 mov r0, r9 strh r0, [r2, 0x16] strh r7, [r2, 0x18] movs r1, 0x8 ldrsh r0, [r2, r1] cmp r0, 0 bgt _0812FC58 movs r0, 0x1E strh r0, [r2, 0x8] movs r0, 0 strh r0, [r2, 0x22] ldr r0, _0812FC64 str r0, [r2] _0812FC58: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812FC64: .4byte sub_812F9B0 thumb_func_end sub_812FAF8 thumb_func_start sub_812FC68 sub_812FC68: @ 812FC68 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 ldr r0, _0812FCC8 mov r8, r0 lsls r7, r6, 2 adds r0, r7, r6 lsls r0, 3 mov r1, r8 adds r4, r0, r1 ldr r1, _0812FCCC ldr r2, _0812FCD0 ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] strh r0, [r4, 0x26] ldr r5, _0812FCD4 ldrh r0, [r5] strh r0, [r4, 0x24] ldrh r0, [r5] strh r0, [r4, 0x8] ldrh r0, [r5, 0xC] strh r0, [r4, 0x22] movs r3, 0x6 ldrsh r0, [r5, r3] cmp r0, 0 beq _0812FCAC ldrh r0, [r4, 0x14] ldr r3, _0812FCD8 adds r1, r3, 0 orrs r0, r1 strh r0, [r4, 0x14] _0812FCAC: ldrb r0, [r2] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0812FCDC ldrh r0, [r5, 0x2] strh r0, [r4, 0xC] ldrh r0, [r5, 0x4] strh r0, [r4, 0xE] mov r3, r8 adds r4, r7, 0 b _0812FD4C .align 2, 0 _0812FCC8: .4byte gTasks _0812FCCC: .4byte gUnknown_02024BE0 _0812FCD0: .4byte gUnknown_0202F7C8 _0812FCD4: .4byte gUnknown_03004B00 _0812FCD8: .4byte 0xffff8000 _0812FCDC: movs r7, 0x2 ldrsh r0, [r5, r7] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 beq _0812FCF8 ldrh r1, [r5, 0x2] ldr r0, _0812FCF4 ands r0, r1 b _0812FD00 .align 2, 0 _0812FCF4: .4byte 0x00007fff _0812FCF8: ldrh r0, [r5, 0x2] ldr r2, _0812FD28 adds r1, r2, 0 orrs r0, r1 _0812FD00: strh r0, [r4, 0xC] ldr r0, _0812FD2C movs r3, 0x4 ldrsh r1, [r0, r3] movs r2, 0x80 lsls r2, 8 ands r1, r2 adds r5, r0, 0 cmp r1, 0 beq _0812FD38 ldr r3, _0812FD30 lsls r4, r6, 2 adds r1, r4, r6 lsls r1, 3 adds r1, r3 ldrh r2, [r5, 0x4] ldr r0, _0812FD34 ands r0, r2 b _0812FD4A .align 2, 0 _0812FD28: .4byte 0xffff8000 _0812FD2C: .4byte gUnknown_03004B00 _0812FD30: .4byte gTasks _0812FD34: .4byte 0x00007fff _0812FD38: ldr r3, _0812FD70 lsls r4, r6, 2 adds r1, r4, r6 lsls r1, 3 adds r1, r3 ldrh r2, [r5, 0x4] ldr r7, _0812FD74 adds r0, r7, 0 orrs r0, r2 _0812FD4A: strh r0, [r1, 0xE] _0812FD4C: adds r0, r4, r6 lsls r0, 3 adds r0, r3 movs r1, 0 strh r1, [r0, 0x18] strh r1, [r0, 0x16] ldrh r1, [r5, 0x8] strh r1, [r0, 0x10] ldrh r1, [r5, 0xA] strh r1, [r0, 0x12] ldr r1, _0812FD78 str r1, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812FD70: .4byte gTasks _0812FD74: .4byte 0xffff8000 _0812FD78: .4byte sub_812FAF8 thumb_func_end sub_812FC68 thumb_func_start sub_812FD7C sub_812FD7C: @ 812FD7C push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _0812FDB4 adds r5, r0, r1 ldr r4, _0812FDB8 movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0 bne _0812FD9C adds r0, r2, 0 bl move_anim_task_del _0812FD9C: movs r0, 0 strh r0, [r5, 0x8] strh r0, [r5, 0xA] strh r0, [r5, 0xC] ldrh r0, [r4, 0x2] strh r0, [r5, 0xE] movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 bne _0812FDC0 ldr r0, _0812FDBC b _0812FDC2 .align 2, 0 _0812FDB4: .4byte gTasks _0812FDB8: .4byte gUnknown_03004B00 _0812FDBC: .4byte gUnknown_0202F7C8 _0812FDC0: ldr r0, _0812FE10 _0812FDC2: ldrb r4, [r0] adds r0, r4, 0 movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x10] adds r0, r4, 0 movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x12] adds r0, r4, 0 bl sub_8079E90 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x14] ldr r0, _0812FE14 ldrb r0, [r0] bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 strh r1, [r5, 0x26] ldr r2, _0812FE18 adds r0, r5, 0 bl sub_80798F4 ldr r0, _0812FE1C str r0, [r5] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812FE10: .4byte gUnknown_0202F7C9 _0812FE14: .4byte gUnknown_03004B00 _0812FE18: .4byte gUnknown_084028AC _0812FE1C: .4byte sub_812FE20 thumb_func_end sub_812FD7C thumb_func_start sub_812FE20 sub_812FE20: @ 812FE20 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0812FE40 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _0812FE44 cmp r0, 0x1 beq _0812FEA4 b _0812FEB2 .align 2, 0 _0812FE40: .4byte gTasks _0812FE44: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 bne _0812FE5A adds r0, r5, 0 movs r1, 0x1 bl sub_812FEB8 _0812FE5A: movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x12 bne _0812FE6A adds r0, r5, 0 movs r1, 0 bl sub_812FEB8 _0812FE6A: adds r0, r4, 0 bl sub_807992C lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0812FEB2 ldrh r0, [r4, 0xE] subs r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 cmp r0, 0 bne _0812FE8C ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0812FEB2 _0812FE8C: strh r1, [r4, 0xA] ldrh r1, [r4, 0x26] lsls r1, 24 lsrs r1, 24 ldr r2, _0812FEA0 adds r0, r4, 0 bl sub_80798F4 b _0812FEB2 .align 2, 0 _0812FEA0: .4byte gUnknown_084028AC _0812FEA4: movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0 bne _0812FEB2 adds r0, r5, 0 bl move_anim_task_del _0812FEB2: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_812FE20 thumb_func_start sub_812FEB8 sub_812FEB8: @ 812FEB8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r2, _0812FEDC adds r4, r0, r2 cmp r1, 0 bne _0812FEE0 movs r1, 0x12 movs r3, 0xEC b _0812FEE4 .align 2, 0 _0812FEDC: .4byte gTasks _0812FEE0: movs r1, 0x1E movs r3, 0x14 _0812FEE4: mov r2, sp ldrh r0, [r4, 0x10] subs r0, r1 strh r0, [r2] ldrh r0, [r4, 0x10] subs r0, r1 subs r0, 0x4 strh r0, [r2, 0x2] ldrh r0, [r4, 0x10] adds r0, r1 strh r0, [r2, 0x4] ldrh r0, [r4, 0x10] adds r0, r1 adds r0, 0x4 strh r0, [r2, 0x6] add r2, sp, 0x8 lsls r1, r3, 24 asrs r1, 24 ldrh r0, [r4, 0x12] adds r0, r1 strh r0, [r2] ldrh r0, [r4, 0x12] adds r0, r1 adds r0, 0x6 strh r0, [r2, 0x2] movs r5, 0 mov r8, r2 ldr r7, _0812FF88 _0812FF1C: lsls r0, r5, 1 add r0, sp movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0x1 ands r0, r5 lsls r0, 1 add r0, r8 movs r3, 0 ldrsh r2, [r0, r3] ldrb r3, [r4, 0x14] subs r3, 0x5 lsls r3, 24 lsrs r3, 24 ldr r0, _0812FF8C bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _0812FF70 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r7 movs r0, 0 strh r0, [r1, 0x2E] movs r0, 0x2 cmp r5, 0x1 bhi _0812FF5E movs r2, 0x2 negs r2, r2 adds r0, r2, 0 _0812FF5E: strh r0, [r1, 0x30] ldr r0, _0812FF90 strh r0, [r1, 0x32] strh r6, [r1, 0x34] movs r0, 0x2 strh r0, [r1, 0x36] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] _0812FF70: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _0812FF1C add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812FF88: .4byte gSprites _0812FF8C: .4byte gSpriteTemplate_84028CC _0812FF90: .4byte 0x0000ffff thumb_func_end sub_812FEB8 thumb_func_start sub_812FF94 sub_812FF94: @ 812FF94 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r0, [r4, 0x32] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 ble _0812FFDA ldr r3, _0812FFE0 movs r0, 0x36 ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x34 ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 bl DestroySprite _0812FFDA: pop {r4} pop {r0} bx r0 .align 2, 0 _0812FFE0: .4byte gTasks thumb_func_end sub_812FF94 thumb_func_start sub_812FFE4 sub_812FFE4: @ 812FFE4 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0813002C lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 movs r0, 0 strh r0, [r4, 0x8] ldr r1, _08130030 ldrh r0, [r1, 0x2] strh r0, [r4, 0xA] ldrb r0, [r1] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 ldr r2, _08130034 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x5] lsrs r0, 4 lsls r0, 4 movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 adds r0, r1 strh r0, [r4, 0xC] ldr r0, _08130038 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0813002C: .4byte gTasks _08130030: .4byte gUnknown_03004B00 _08130034: .4byte gSprites _08130038: .4byte sub_813003C thumb_func_end sub_812FFE4 thumb_func_start sub_813003C sub_813003C: @ 813003C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _08130084 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0 beq _0813008C ldrh r0, [r4, 0xC] ldr r2, _08130088 movs r3, 0x8 ldrsh r1, [r4, r3] lsls r1, 1 adds r1, r2 ldrh r3, [r1] movs r1, 0x10 movs r2, 0x8 bl BlendPalette ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x17 ble _0813007C movs r0, 0 strh r0, [r4, 0x8] _0813007C: ldrh r0, [r4, 0xA] subs r0, 0x1 strh r0, [r4, 0xA] b _0813009E .align 2, 0 _08130084: .4byte gTasks _08130088: .4byte gUnknown_084028E4 _0813008C: ldrh r0, [r4, 0xC] movs r1, 0x10 movs r2, 0 movs r3, 0 bl BlendPalette adds r0, r5, 0 bl move_anim_task_del _0813009E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_813003C thumb_func_start sub_81300A4 sub_81300A4: @ 81300A4 push {lr} sub sp, 0x1C lsls r0, 24 lsrs r0, 24 movs r2, 0xD0 lsls r2, 1 ldr r1, _081300E0 ldrb r3, [r1] ldr r1, _081300E4 ldrb r1, [r1] str r1, [sp] movs r1, 0xA str r1, [sp, 0x4] movs r1, 0x2 str r1, [sp, 0x8] movs r1, 0x1E str r1, [sp, 0xC] ldr r1, _081300E8 str r1, [sp, 0x10] ldr r1, _081300EC str r1, [sp, 0x14] ldr r1, _081300F0 str r1, [sp, 0x18] movs r1, 0 bl sub_80E3C4C add sp, 0x1C pop {r0} bx r0 .align 2, 0 _081300E0: .4byte gUnknown_0202F7C8 _081300E4: .4byte gUnknown_03004B00 _081300E8: .4byte gUnknown_08D2E014 _081300EC: .4byte gUnknown_08D2E170 _081300F0: .4byte gUnknown_08D2E150 thumb_func_end sub_81300A4 thumb_func_start sub_81300F4 sub_81300F4: @ 81300F4 push {r4-r6,lr} adds r5, r0, 0 ldr r6, _0813014C ldrb r0, [r6] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08130110 ldr r1, _08130150 ldrh r0, [r1] negs r0, r0 strh r0, [r1] _08130110: ldrb r0, [r6] movs r1, 0 bl sub_8077ABC lsls r0, 24 ldr r4, _08130150 lsrs r0, 24 ldrh r1, [r4] adds r0, r1 strh r0, [r5, 0x20] ldrb r0, [r6] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 strh r0, [r5, 0x22] movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 bne _08130158 movs r0, 0xA0 lsls r0, 2 strh r0, [r5, 0x2E] ldr r0, _08130154 strh r0, [r5, 0x30] b _08130180 .align 2, 0 _0813014C: .4byte gUnknown_0202F7C8 _08130150: .4byte gUnknown_03004B00 _08130154: .4byte 0x0000fd80 _08130158: cmp r0, 0x1 bne _08130172 adds r2, r5, 0 adds r2, 0x3F ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] movs r0, 0xA0 lsls r0, 2 strh r0, [r5, 0x2E] strh r0, [r5, 0x30] b _08130180 _08130172: adds r0, r5, 0 movs r1, 0x1 bl StartSpriteAnim movs r0, 0xA0 lsls r0, 2 strh r0, [r5, 0x2E] _08130180: ldr r0, _081301AC ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _081301A0 ldrh r0, [r5, 0x2E] negs r0, r0 strh r0, [r5, 0x2E] adds r2, r5, 0 adds r2, 0x3F ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] _081301A0: ldr r0, _081301B0 str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081301AC: .4byte gUnknown_0202F7C8 _081301B0: .4byte sub_81301B4 thumb_func_end sub_81300F4 thumb_func_start sub_81301B4 sub_81301B4: @ 81301B4 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x3A] adds r0, r1 strh r0, [r2, 0x3A] ldrh r1, [r2, 0x30] ldrh r3, [r2, 0x3C] adds r1, r3 strh r1, [r2, 0x3C] lsls r0, 16 asrs r0, 24 strh r0, [r2, 0x24] lsls r1, 16 asrs r1, 24 strh r1, [r2, 0x26] ldrh r0, [r2, 0x38] adds r0, 0x1 strh r0, [r2, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0xE bne _081301E8 adds r0, r2, 0 bl move_anim_8072740 _081301E8: pop {r0} bx r0 thumb_func_end sub_81301B4 thumb_func_start sub_81301EC sub_81301EC: @ 81301EC push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08130218 adds r6, r1, r0 bl sub_8076BE0 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _0813021C movs r0, 0x8 strh r0, [r6, 0x12] movs r0, 0x3 strh r0, [r6, 0x14] movs r0, 0x1 strh r0, [r6, 0x16] b _08130226 .align 2, 0 _08130218: .4byte gTasks _0813021C: movs r0, 0xC strh r0, [r6, 0x12] movs r0, 0x3 strh r0, [r6, 0x14] strh r1, [r6, 0x16] _08130226: ldr r5, _0813025C ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08130260 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC adds r4, r0, 0 ldrb r0, [r5] movs r1, 0 bl sub_807A100 lsls r4, 24 lsrs r4, 24 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _08130254 adds r0, 0x3 _08130254: asrs r0, 2 adds r0, r4, r0 b _08130284 .align 2, 0 _0813025C: .4byte gUnknown_0202F7C8 _08130260: ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC adds r4, r0, 0 ldrb r0, [r5] movs r1, 0 bl sub_807A100 lsls r4, 24 lsrs r4, 24 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _08130280 adds r0, 0x3 _08130280: asrs r0, 2 subs r0, r4, r0 _08130284: strh r0, [r6, 0x1E] ldr r5, _081302D8 ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC adds r4, r0, 0 ldrb r0, [r5] movs r1, 0 bl sub_807A100 lsls r4, 24 lsrs r4, 24 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _081302A8 adds r0, 0x3 _081302A8: asrs r0, 2 subs r0, r4, r0 strh r0, [r6, 0x20] ldr r4, _081302DC ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x22] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x24] ldr r0, _081302E0 str r0, [r6] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081302D8: .4byte gUnknown_0202F7C8 _081302DC: .4byte gUnknown_0202F7C9 _081302E0: .4byte sub_81302E4 thumb_func_end sub_81301EC thumb_func_start sub_81302E4 sub_81302E4: @ 81302E4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, _0813030C adds r5, r0, r1 movs r0, 0x8 ldrsh r1, [r5, r0] cmp r1, 0 beq _08130310 cmp r1, 0x1 bne _08130308 b _08130408 _08130308: b _08130416 .align 2, 0 _0813030C: .4byte gTasks _08130310: ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _08130416 strh r1, [r5, 0xA] movs r1, 0x1E ldrsh r0, [r5, r1] movs r2, 0x20 ldrsh r1, [r5, r2] movs r3, 0x22 ldrsh r2, [r5, r3] movs r4, 0x24 ldrsh r3, [r5, r4] ldrb r4, [r5, 0x12] str r4, [sp] ldrb r4, [r5, 0xC] str r4, [sp, 0x4] add r4, sp, 0x10 str r4, [sp, 0x8] adds r4, 0x2 str r4, [sp, 0xC] bl sub_8130424 movs r6, 0 mov r8, r4 ldr r4, _08130384 _0813034A: add r0, sp, 0x10 movs r2, 0 ldrsh r1, [r0, r2] mov r3, r8 movs r0, 0 ldrsh r2, [r3, r0] ldr r0, _08130388 movs r3, 0x23 bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 beq _081303DE movs r1, 0x16 ldrsh r0, [r5, r1] cmp r0, 0 bne _0813039E cmp r6, 0 bne _0813038C lsls r2, r3, 4 adds r1, r2, r3 lsls r1, 2 adds r1, r4 ldrh r0, [r5, 0x14] negs r0, r0 strh r0, [r1, 0x26] strh r0, [r1, 0x24] b _081303C6 .align 2, 0 _08130384: .4byte gSprites _08130388: .4byte gSpriteTemplate_840294C _0813038C: lsls r2, r3, 4 adds r1, r2, r3 lsls r1, 2 adds r1, r4 ldrh r0, [r5, 0x14] strh r0, [r1, 0x26] ldrh r0, [r5, 0x14] strh r0, [r1, 0x24] b _081303C6 _0813039E: cmp r6, 0 bne _081303B4 lsls r2, r3, 4 adds r1, r2, r3 lsls r1, 2 adds r1, r4 ldrh r0, [r5, 0x14] negs r0, r0 strh r0, [r1, 0x24] ldrh r0, [r5, 0x14] b _081303C4 _081303B4: lsls r2, r3, 4 adds r1, r2, r3 lsls r1, 2 adds r1, r4 ldrh r0, [r5, 0x14] strh r0, [r1, 0x24] ldrh r0, [r5, 0x14] negs r0, r0 _081303C4: strh r0, [r1, 0x26] _081303C6: ldr r1, _08130404 adds r0, r2, r3 lsls r0, 2 adds r0, r1 movs r1, 0 strh r1, [r0, 0x2E] strh r7, [r0, 0x30] movs r1, 0xA strh r1, [r0, 0x32] ldrh r0, [r5, 0x1C] adds r0, 0x1 strh r0, [r5, 0x1C] _081303DE: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x1 bls _0813034A ldrh r2, [r5, 0xC] movs r3, 0xC ldrsh r1, [r5, r3] movs r4, 0x12 ldrsh r0, [r5, r4] cmp r1, r0 bne _081303FC ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] _081303FC: adds r0, r2, 0x1 strh r0, [r5, 0xC] b _08130416 .align 2, 0 _08130404: .4byte gSprites _08130408: movs r1, 0x1C ldrsh r0, [r5, r1] cmp r0, 0 bne _08130416 adds r0, r7, 0 bl move_anim_task_del _08130416: add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81302E4 thumb_func_start sub_8130424 sub_8130424: @ 8130424 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 ldr r4, [sp, 0x28] ldr r5, [sp, 0x2C] ldr r6, [sp, 0x30] mov r9, r6 ldr r6, [sp, 0x34] mov r10, r6 lsls r0, 16 lsrs r0, 16 mov r12, r0 lsls r1, 16 lsrs r1, 16 str r1, [sp] lsls r2, 16 lsrs r2, 16 adds r7, r2, 0 lsls r3, 16 lsrs r3, 16 str r3, [sp, 0x4] lsls r4, 24 lsrs r6, r4, 24 lsls r5, 24 lsrs r5, 24 mov r8, r5 cmp r5, 0 bne _0813046C mov r2, r9 strh r0, [r2] mov r6, r10 strh r1, [r6] b _081304CA _0813046C: cmp r5, r6 bcc _0813047A mov r0, r9 strh r2, [r0] mov r1, r10 strh r3, [r1] b _081304CA _0813047A: subs r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 mov r2, r12 lsls r1, r2, 16 asrs r1, 16 lsls r5, r1, 8 lsls r0, r7, 16 asrs r0, 16 subs r0, r1 lsls r0, 8 adds r1, r6, 0 bl __divsi3 mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r5, r0 ldr r2, [sp] lsls r1, r2, 16 asrs r1, 16 lsls r4, r1, 8 ldr r2, [sp, 0x4] lsls r0, r2, 16 asrs r0, 16 subs r0, r1 lsls r0, 8 adds r1, r6, 0 bl __divsi3 mov r6, r8 muls r6, r0 adds r0, r6, 0 adds r4, r0 asrs r5, 8 mov r0, r9 strh r5, [r0] asrs r4, 8 mov r1, r10 strh r4, [r1] _081304CA: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8130424 thumb_func_start sub_81304DC sub_81304DC: @ 81304DC push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x24 ble _08130512 ldr r3, _08130518 movs r0, 0x32 ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x30 ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 bl DestroySprite _08130512: pop {r4} pop {r0} bx r0 .align 2, 0 _08130518: .4byte gTasks thumb_func_end sub_81304DC thumb_func_start sub_813051C sub_813051C: @ 813051C push {r4,lr} adds r4, r0, 0 ldr r1, _08130548 ldrh r0, [r1] strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] strh r0, [r4, 0x22] ldrh r0, [r1, 0x4] strh r0, [r4, 0x32] ldrh r0, [r1, 0x6] strh r0, [r4, 0x36] ldrh r0, [r1, 0x8] strh r0, [r4, 0x2E] ldr r1, _0813054C adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _08130550 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _08130548: .4byte gUnknown_03004B00 _0813054C: .4byte move_anim_8072740 _08130550: .4byte sub_8078CC0 thumb_func_end sub_813051C thumb_func_start sub_8130554 sub_8130554: @ 8130554 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r0, 2 add r0, r9 lsls r0, 3 ldr r1, _08130674 adds r7, r0, r1 ldr r0, _08130678 mov r10, r0 ldrb r0, [r0] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x1E] mov r1, r10 ldrb r0, [r1] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x20] ldr r0, _0813067C mov r8, r0 ldrb r0, [r0] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x22] mov r1, r8 ldrb r0, [r1] movs r1, 0x3 bl sub_8077ABC adds r4, r0, 0 mov r1, r8 ldrb r0, [r1] movs r1, 0 bl sub_807A100 lsls r4, 24 lsrs r4, 24 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _081305C6 adds r0, 0x3 _081305C6: asrs r0, 2 adds r0, r4, r0 strh r0, [r7, 0x24] ldr r4, _08130680 movs r0, 0x1E ldrsh r5, [r7, r0] movs r1, 0x20 ldrsh r6, [r7, r1] mov r1, r8 ldrb r0, [r1] bl sub_8079E90 adds r3, r0, 0 subs r3, 0x5 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x26] cmp r0, 0x40 beq _08130690 ldr r4, _08130684 movs r0, 0x26 ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x10 strh r1, [r0, 0x2E] movs r0, 0x26 ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r7, 0x22] strh r1, [r0, 0x32] movs r0, 0x26 ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r7, 0x24] strh r1, [r0, 0x36] movs r0, 0x26 ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _08130688 strh r1, [r0, 0x38] movs r0, 0x26 ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl sub_80786EC mov r1, r10 ldrb r0, [r1] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0813066E movs r0, 0x26 ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x1 bl StartSpriteAffineAnim _0813066E: ldr r0, _0813068C str r0, [r7] b _08130696 .align 2, 0 _08130674: .4byte gTasks _08130678: .4byte gUnknown_0202F7C8 _0813067C: .4byte gUnknown_0202F7C9 _08130680: .4byte gSpriteTemplate_84029AC _08130684: .4byte gSprites _08130688: .4byte 0x0000ffe0 _0813068C: .4byte sub_81306A4 _08130690: mov r0, r9 bl move_anim_task_del _08130696: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8130554 thumb_func_start sub_81306A4 sub_81306A4: @ 81306A4 push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _081306C8 adds r4, r0, r1 movs r0, 0x8 ldrsh r1, [r4, r0] cmp r1, 0x1 beq _0813070C cmp r1, 0x1 bgt _081306CC cmp r1, 0 beq _081306D6 b _081307AA .align 2, 0 _081306C8: .4byte gTasks _081306CC: cmp r1, 0x2 beq _08130730 cmp r1, 0x3 beq _081307A4 b _081307AA _081306D6: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _081307AA strh r1, [r4, 0xA] movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08130708 adds r0, r1 bl sub_8078718 ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _081307AA b _08130796 .align 2, 0 _08130708: .4byte gSprites _0813070C: movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0813072C adds r0, r1 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _081307AA movs r0, 0 strh r0, [r4, 0xA] strh r0, [r4, 0xC] b _08130796 .align 2, 0 _0813072C: .4byte gSprites _08130730: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _081307AA movs r0, 0 strh r0, [r4, 0xA] ldrh r2, [r4, 0xC] adds r2, 0x1 strh r2, [r4, 0xC] ldr r5, _081307A0 movs r1, 0x26 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 movs r0, 0x1 ands r2, r0 adds r1, 0x3E lsls r2, 2 ldrb r3, [r1] subs r0, 0x6 ands r0, r3 orrs r0, r2 strb r0, [r1] movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0x10 bne _081307AA movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl DestroySprite _08130796: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _081307AA .align 2, 0 _081307A0: .4byte gSprites _081307A4: adds r0, r2, 0 bl move_anim_task_del _081307AA: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81306A4 thumb_func_start sub_81307B0 sub_81307B0: @ 81307B0 push {r4-r6,lr} adds r4, r0, 0 ldr r0, _081307C4 movs r2, 0 ldrsh r1, [r0, r2] adds r6, r0, 0 cmp r1, 0 bne _081307CC ldr r0, _081307C8 b _081307CE .align 2, 0 _081307C4: .4byte gUnknown_03004B00 _081307C8: .4byte gUnknown_0202F7C8 _081307CC: ldr r0, _08130834 _081307CE: ldrb r5, [r0] ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x10 ldr r3, _08130838 adds r0, r3, 0 ands r1, r0 ldr r0, _0813083C ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] adds r1, r6, 0 ldrh r0, [r1, 0x4] strh r0, [r4, 0x3A] movs r2, 0x2 ldrsh r0, [r1, r2] movs r1, 0x1 cmp r0, 0 bne _081307FC movs r3, 0x1 negs r3, r3 adds r1, r3, 0 _081307FC: strh r1, [r4, 0x3C] adds r0, r5, 0 movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] movs r1, 0x2 ldrsh r0, [r6, r1] cmp r0, 0 bne _08130840 ldrb r2, [r4, 0x3] lsls r1, r2, 26 lsrs r1, 27 movs r0, 0x8 orrs r1, r0 lsls r1, 1 subs r0, 0x47 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x3] adds r0, r5, 0 movs r1, 0x4 bl sub_807A100 subs r0, 0x8 b _0813084A .align 2, 0 _08130834: .4byte gUnknown_0202F7C9 _08130838: .4byte 0x000003ff _0813083C: .4byte 0xfffffc00 _08130840: adds r0, r5, 0 movs r1, 0x5 bl sub_807A100 adds r0, 0x8 _0813084A: strh r0, [r4, 0x20] ldr r0, _08130858 str r0, [r4, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08130858: .4byte sub_813085C thumb_func_end sub_81307B0 thumb_func_start sub_813085C sub_813085C: @ 813085C push {lr} adds r2, r0, 0 movs r0, 0x2E ldrsh r1, [r2, r0] cmp r1, 0x1 beq _081308A4 cmp r1, 0x1 bgt _08130872 cmp r1, 0 beq _0813087C b _08130914 _08130872: cmp r1, 0x2 beq _081308B4 cmp r1, 0x3 beq _081308DA b _08130914 _0813087C: ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _08130914 strh r1, [r2, 0x30] ldrh r0, [r2, 0x3C] ldrh r1, [r2, 0x24] adds r0, r1 strh r0, [r2, 0x24] ldrh r0, [r2, 0x32] adds r0, 0x1 strh r0, [r2, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0xC bne _08130914 b _081308D2 _081308A4: ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 bne _08130914 b _081308CE _081308B4: movs r0, 0x3C ldrsh r1, [r2, r0] lsls r1, 2 ldrh r0, [r2, 0x24] subs r0, r1 strh r0, [r2, 0x24] ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 bne _08130914 _081308CE: movs r0, 0 strh r0, [r2, 0x30] _081308D2: ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] b _08130914 _081308DA: movs r0, 0x3C ldrsh r1, [r2, r0] lsls r0, r1, 1 adds r0, r1 ldrh r1, [r2, 0x24] adds r0, r1 strh r0, [r2, 0x24] ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 bne _08130914 ldrh r0, [r2, 0x3A] subs r0, 0x1 strh r0, [r2, 0x3A] lsls r0, 16 cmp r0, 0 beq _0813090E movs r0, 0 strh r0, [r2, 0x30] ldrh r0, [r2, 0x2E] subs r0, 0x1 strh r0, [r2, 0x2E] b _08130914 _0813090E: adds r0, r2, 0 bl move_anim_8072740 _08130914: pop {r0} bx r0 thumb_func_end sub_813085C thumb_func_start sub_8130918 sub_8130918: @ 8130918 push {r4,lr} lsls r0, 24 lsrs r1, r0, 24 ldr r2, _08130930 movs r3, 0 ldrsh r0, [r2, r3] cmp r0, 0 bne _08130934 adds r0, r1, 0 bl move_anim_task_del b _0813095C .align 2, 0 _08130930: .4byte gUnknown_03004B00 _08130934: ldr r0, _08130964 lsls r4, r1, 2 adds r4, r1 lsls r4, 3 adds r4, r0 ldrh r0, [r2, 0x2] strh r0, [r4, 0x8] ldrb r0, [r2] bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 strh r1, [r4, 0x26] ldr r2, _08130968 adds r0, r4, 0 bl sub_80798F4 ldr r0, _0813096C str r0, [r4] _0813095C: pop {r4} pop {r0} bx r0 .align 2, 0 _08130964: .4byte gTasks _08130968: .4byte gUnknown_084029DC _0813096C: .4byte sub_8130970 thumb_func_end sub_8130918 thumb_func_start sub_8130970 sub_8130970: @ 8130970 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _081309B0 adds r4, r0, r1 ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _081309CA movs r0, 0 strh r0, [r4, 0xA] ldrh r1, [r4, 0xC] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _081309B8 ldr r2, _081309B4 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x2 b _081309C8 .align 2, 0 _081309B0: .4byte gTasks _081309B4: .4byte gSprites _081309B8: ldr r2, _08130A10 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _08130A14 _081309C8: strh r1, [r0, 0x24] _081309CA: adds r0, r4, 0 bl sub_807992C lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _08130A26 ldr r2, _08130A10 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r5, [r0, 0x24] ldrh r0, [r4, 0x8] subs r0, 0x1 strh r0, [r4, 0x8] lsls r0, 16 cmp r0, 0 beq _08130A20 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _08130A18 adds r0, r1 ldrh r1, [r0, 0x26] lsls r1, 24 lsrs r1, 24 ldr r2, _08130A1C bl sub_80798F4 strh r5, [r4, 0xA] strh r5, [r4, 0xC] b _08130A26 .align 2, 0 _08130A10: .4byte gSprites _08130A14: .4byte 0x0000fffe _08130A18: .4byte gTasks _08130A1C: .4byte gUnknown_084029DC _08130A20: adds r0, r6, 0 bl move_anim_task_del _08130A26: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8130970 thumb_func_start sub_8130A2C sub_8130A2C: @ 8130A2C push {r4,r5,lr} adds r5, r0, 0 ldr r0, _08130A40 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _08130A48 ldr r4, _08130A44 b _08130A4A .align 2, 0 _08130A40: .4byte gUnknown_03004B00 _08130A44: .4byte gUnknown_0202F7C8 _08130A48: ldr r4, _08130A88 _08130A4A: ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x2 bl sub_807A100 strh r0, [r5, 0x22] movs r1, 0x22 ldrsh r0, [r5, r1] cmp r0, 0x7 bgt _08130A6E movs r0, 0x8 strh r0, [r5, 0x22] _08130A6E: movs r2, 0 strh r2, [r5, 0x2E] ldr r1, _08130A8C ldrh r0, [r1, 0x2] strh r0, [r5, 0x30] strh r2, [r5, 0x32] ldrh r0, [r1, 0x4] strh r0, [r5, 0x34] ldr r0, _08130A90 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08130A88: .4byte gUnknown_0202F7C9 _08130A8C: .4byte gUnknown_03004B00 _08130A90: .4byte sub_8130A94 thumb_func_end sub_8130A2C thumb_func_start sub_8130A94 sub_8130A94: @ 8130A94 push {lr} adds r3, r0, 0 ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 movs r2, 0x30 ldrsh r1, [r3, r2] cmp r0, r1 blt _08130AE8 movs r0, 0 strh r0, [r3, 0x2E] ldrh r1, [r3, 0x32] adds r1, 0x1 movs r0, 0x1 ands r1, r0 strh r1, [r3, 0x32] movs r0, 0x3E adds r0, r3 mov r12, r0 lsls r1, 2 ldrb r2, [r0] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] movs r2, 0x32 ldrsh r0, [r3, r2] cmp r0, 0 beq _08130AE8 ldrh r0, [r3, 0x34] subs r0, 0x1 strh r0, [r3, 0x34] lsls r0, 16 cmp r0, 0 bne _08130AE8 adds r0, r3, 0 bl move_anim_8072740 _08130AE8: pop {r0} bx r0 thumb_func_end sub_8130A94 thumb_func_start sub_8130AEC sub_8130AEC: @ 8130AEC push {lr} adds r3, r0, 0 ldr r0, _08130B18 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _08130B1C ldrb r2, [r3, 0x3] lsls r1, r2, 26 lsrs r1, 27 movs r0, 0x8 orrs r1, r0 lsls r1, 1 subs r0, 0x47 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x3] movs r0, 0x64 strh r0, [r3, 0x20] movs r0, 0x1 b _08130B22 .align 2, 0 _08130B18: .4byte gUnknown_03004B00 _08130B1C: movs r0, 0x8C strh r0, [r3, 0x20] ldr r0, _08130B30 _08130B22: strh r0, [r3, 0x3C] movs r0, 0x38 strh r0, [r3, 0x22] ldr r0, _08130B34 str r0, [r3, 0x1C] pop {r0} bx r0 .align 2, 0 _08130B30: .4byte 0x0000ffff _08130B34: .4byte sub_8130B38 thumb_func_end sub_8130AEC thumb_func_start sub_8130B38 sub_8130B38: @ 8130B38 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x8 bls _08130B46 b _08130D18 _08130B46: lsls r0, 2 ldr r1, _08130B50 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08130B50: .4byte _08130B54 .align 2, 0 _08130B54: .4byte _08130B78 .4byte _08130BAA .4byte _08130BBC .4byte _08130BFC .4byte _08130C0E .4byte _08130C4C .4byte _08130CB0 .4byte _08130CD0 .4byte _08130CF6 _08130B78: movs r3, 0x3C ldrsh r0, [r4, r3] lsls r0, 1 ldrh r1, [r4, 0x22] subs r1, r0 strh r1, [r4, 0x22] ldrh r2, [r4, 0x30] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _08130B9A movs r0, 0x3C ldrsh r1, [r4, r0] lsls r1, 1 ldrh r0, [r4, 0x20] subs r0, r1 strh r0, [r4, 0x20] _08130B9A: adds r0, r2, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 beq _08130BA8 b _08130D18 _08130BA8: b _08130CEA _08130BAA: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 beq _08130BBA b _08130D18 _08130BBA: b _08130CEA _08130BBC: ldrh r2, [r4, 0x30] adds r2, 0x1 strh r2, [r4, 0x30] movs r3, 0x3C ldrsh r1, [r4, r3] lsls r0, r1, 1 adds r0, r1 ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldr r3, _08130BF8 movs r0, 0x30 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0] lsls r0, 16 asrs r0, 19 ldrh r1, [r4, 0x3C] muls r0, r1 strh r0, [r4, 0x24] lsls r2, 16 asrs r2, 16 cmp r2, 0xC beq _08130BF4 b _08130D18 _08130BF4: b _08130CEA .align 2, 0 _08130BF8: .4byte gSineTable _08130BFC: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 beq _08130C0C b _08130D18 _08130C0C: b _08130CEA _08130C0E: ldrh r2, [r4, 0x30] adds r2, 0x1 strh r2, [r4, 0x30] movs r1, 0x3C ldrsh r0, [r4, r1] lsls r1, r0, 1 adds r1, r0 ldrh r0, [r4, 0x22] subs r0, r1 strh r0, [r4, 0x22] ldr r3, _08130C48 movs r0, 0x30 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0] lsls r0, 16 asrs r0, 19 ldrh r1, [r4, 0x3C] muls r0, r1 strh r0, [r4, 0x24] lsls r2, 16 asrs r2, 16 cmp r2, 0xC bne _08130D18 b _08130CEE .align 2, 0 _08130C48: .4byte gSineTable _08130C4C: ldrh r2, [r4, 0x30] adds r2, 0x1 strh r2, [r4, 0x30] movs r3, 0x3C ldrsh r1, [r4, r3] lsls r0, r1, 1 adds r0, r1 ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldr r3, _08130CA4 movs r0, 0x30 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0] lsls r0, 16 asrs r0, 19 ldrh r1, [r4, 0x3C] muls r0, r1 strh r0, [r4, 0x24] lsls r2, 16 asrs r2, 16 cmp r2, 0xF bne _08130C98 ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x10 ldr r3, _08130CA8 adds r0, r3, 0 ands r1, r0 ldr r0, _08130CAC ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] _08130C98: movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0x12 bne _08130D18 b _08130CEA .align 2, 0 _08130CA4: .4byte gSineTable _08130CA8: .4byte 0x000003ff _08130CAC: .4byte 0xfffffc00 _08130CB0: movs r3, 0x3C ldrsh r0, [r4, r3] lsls r1, r0, 1 adds r1, r0 lsls r1, 1 ldrh r0, [r4, 0x20] adds r1, r0 strh r1, [r4, 0x20] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 bne _08130D18 b _08130CEA _08130CD0: movs r1, 0x3C ldrsh r0, [r4, r1] lsls r0, 1 ldrh r3, [r4, 0x20] adds r0, r3 strh r0, [r4, 0x20] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _08130D18 _08130CEA: movs r0, 0 strh r0, [r4, 0x30] _08130CEE: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _08130D18 _08130CF6: movs r1, 0x3C ldrsh r0, [r4, r1] lsls r1, r0, 1 adds r1, r0 ldrh r0, [r4, 0x20] subs r0, r1 strh r0, [r4, 0x20] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 bne _08130D18 adds r0, r4, 0 bl move_anim_8072740 _08130D18: pop {r4} pop {r0} bx r0 thumb_func_end sub_8130B38 thumb_func_start sub_8130D20 sub_8130D20: @ 8130D20 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08130D7C adds r6, r1, r0 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x26] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _08130DA8 bl battle_type_is_double lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x1 bne _08130D8C ldr r5, _08130D80 ldrb r0, [r5] movs r1, 0 bl sub_8077ABC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r1, [r5] movs r0, 0x2 eors r0, r1 movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 cmp r4, r0 ble _08130D84 strh r7, [r6, 0x24] b _08130DAC .align 2, 0 _08130D7C: .4byte gTasks _08130D80: .4byte gUnknown_0202F7C8 _08130D84: ldr r0, _08130D88 b _08130DAA .align 2, 0 _08130D88: .4byte 0x0000ffff _08130D8C: ldr r0, _08130DA0 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08130DA8 ldr r0, _08130DA4 b _08130DAA .align 2, 0 _08130DA0: .4byte gUnknown_0202F7C8 _08130DA4: .4byte 0x0000ffff _08130DA8: movs r0, 0x1 _08130DAA: strh r0, [r6, 0x24] _08130DAC: ldr r0, _08130DB8 str r0, [r6] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08130DB8: .4byte sub_8130DBC thumb_func_end sub_8130D20 thumb_func_start sub_8130DBC sub_8130DBC: @ 8130DBC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _08130DE0 adds r3, r0, r1 movs r1, 0x8 ldrsh r0, [r3, r1] cmp r0, 0x8 bls _08130DD6 b _08130F50 _08130DD6: lsls r0, 2 ldr r1, _08130DE4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08130DE0: .4byte gTasks _08130DE4: .4byte _08130DE8 .align 2, 0 _08130DE8: .4byte _08130E0C .4byte _08130E1E .4byte _08130E50 .4byte _08130E80 .4byte _08130EA6 .4byte _08130ED0 .4byte _08130EE0 .4byte _08130F00 .4byte _08130F38 _08130E0C: ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0xD beq _08130E1C b _08130F50 _08130E1C: b _08130F28 _08130E1E: ldr r2, _08130E4C movs r1, 0x26 ldrsh r0, [r3, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r2, 0x24 ldrsh r0, [r3, r2] lsls r2, r0, 1 adds r2, r0 ldrh r0, [r1, 0x24] subs r0, r2 strh r0, [r1, 0x24] ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 beq _08130E4A b _08130F50 _08130E4A: b _08130F28 .align 2, 0 _08130E4C: .4byte gSprites _08130E50: ldr r2, _08130E7C movs r1, 0x26 ldrsh r0, [r3, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r0, 0x24 ldrsh r2, [r3, r0] lsls r0, r2, 1 adds r0, r2 ldrh r2, [r1, 0x24] adds r0, r2 strh r0, [r1, 0x24] ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 bne _08130F50 b _08130F28 .align 2, 0 _08130E7C: .4byte gSprites _08130E80: ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _08130F50 movs r0, 0 strh r0, [r3, 0xA] ldrh r1, [r3, 0xC] movs r2, 0xC ldrsh r0, [r3, r2] cmp r0, 0 bne _08130F2C adds r0, r1, 0x1 strh r0, [r3, 0xC] movs r0, 0x1 strh r0, [r3, 0x8] b _08130F50 _08130EA6: ldr r2, _08130ECC movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r3, 0x24] ldrh r2, [r0, 0x24] adds r1, r2 strh r1, [r0, 0x24] ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 bne _08130F50 b _08130F28 .align 2, 0 _08130ECC: .4byte gSprites _08130ED0: ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 bne _08130F50 b _08130F28 _08130EE0: ldr r2, _08130EFC movs r1, 0x26 ldrsh r0, [r3, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r0, 0x24 ldrsh r2, [r3, r0] lsls r2, 2 ldrh r0, [r1, 0x24] subs r0, r2 b _08130F18 .align 2, 0 _08130EFC: .4byte gSprites _08130F00: ldr r2, _08130F34 movs r1, 0x26 ldrsh r0, [r3, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r2, 0x24 ldrsh r0, [r3, r2] lsls r0, 2 ldrh r2, [r1, 0x24] adds r0, r2 _08130F18: strh r0, [r1, 0x24] ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 bne _08130F50 _08130F28: movs r0, 0 strh r0, [r3, 0xA] _08130F2C: ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] b _08130F50 .align 2, 0 _08130F34: .4byte gSprites _08130F38: ldr r2, _08130F58 movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0 strh r1, [r0, 0x24] adds r0, r4, 0 bl move_anim_task_del _08130F50: pop {r4} pop {r0} bx r0 .align 2, 0 _08130F58: .4byte gSprites thumb_func_end sub_8130DBC thumb_func_start sub_8130F5C sub_8130F5C: @ 8130F5C push {r4,lr} adds r4, r0, 0 ldr r0, _08130F78 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _08130F80 adds r0, r4, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _08130F7C b _08130F82 .align 2, 0 _08130F78: .4byte gUnknown_03004B00 _08130F7C: .4byte gUnknown_0202F7C8 _08130F80: ldr r0, _08130FD8 _08130F82: ldrb r0, [r0] strh r0, [r4, 0x3C] ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08130FA6 ldrb r0, [r4, 0x3] movs r1, 0x3F negs r1, r1 ands r1, r0 movs r0, 0x10 orrs r1, r0 strb r1, [r4, 0x3] _08130FA6: ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 bl sub_8079ED4 movs r2, 0x3 ands r2, r0 lsls r2, 2 ldrb r3, [r4, 0x5] movs r1, 0xD negs r1, r1 adds r0, r1, 0 ands r0, r3 orrs r0, r2 strb r0, [r4, 0x5] ldrb r0, [r4, 0x1] ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4, 0x1] ldr r0, _08130FDC str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _08130FD8: .4byte gUnknown_0202F7C9 _08130FDC: .4byte sub_8130FE0 thumb_func_end sub_8130F5C thumb_func_start sub_8130FE0 sub_8130FE0: @ 8130FE0 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x38 ldrsh r0, [r4, r1] cmp r0, 0x4 bls _08130FEE b _081311DE _08130FEE: lsls r0, 2 ldr r1, _08130FF8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08130FF8: .4byte _08130FFC .align 2, 0 _08130FFC: .4byte _08131010 .4byte _08131110 .4byte _08131178 .4byte _0813118C .4byte _081311D8 _08131010: movs r2, 0x3A ldrsh r0, [r4, r2] cmp r0, 0x5 bhi _08131040 lsls r0, 2 ldr r1, _08131024 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08131024: .4byte _08131028 .align 2, 0 _08131028: .4byte _08131044 .4byte _08131060 .4byte _08131082 .4byte _0813109E .4byte _08131044 .4byte _081310C4 _08131040: movs r0, 0 strh r0, [r4, 0x3A] _08131044: ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x5 bl sub_807A100 subs r0, 0x4 lsls r0, 16 lsrs r5, r0, 16 ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x3 b _081310B8 _08131060: ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x5 bl sub_807A100 subs r0, 0x4 lsls r0, 16 lsrs r5, r0, 16 ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_807A100 adds r0, 0x4 b _081310BE _08131082: ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x4 bl sub_807A100 adds r0, 0x4 lsls r0, 16 lsrs r5, r0, 16 ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x3 b _081310B8 _0813109E: ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x4 bl sub_807A100 adds r0, 0x4 lsls r0, 16 lsrs r5, r0, 16 ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x2 _081310B8: bl sub_807A100 subs r0, 0x4 _081310BE: lsls r0, 16 lsrs r1, r0, 16 b _081310E4 _081310C4: ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r1, r0, 24 _081310E4: movs r2, 0x3A ldrsh r0, [r4, r2] cmp r0, 0x4 bne _081310F0 movs r0, 0x18 b _081310FA _081310F0: cmp r0, 0x5 bne _081310F8 movs r0, 0x6 b _081310FA _081310F8: movs r0, 0xC _081310FA: strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] strh r5, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] strh r1, [r4, 0x36] adds r0, r4, 0 bl obj_translate_based_on_private_1_2_3_4 b _081311CA _08131110: adds r0, r4, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _081311DE movs r1, 0x3A ldrsh r0, [r4, r1] cmp r0, 0x4 beq _08131148 cmp r0, 0x5 beq _08131168 ldrh r0, [r4, 0x24] ldrh r2, [r4, 0x20] adds r0, r2 movs r1, 0 strh r0, [r4, 0x20] ldrh r0, [r4, 0x26] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] strh r1, [r4, 0x26] strh r1, [r4, 0x24] strh r1, [r4, 0x2E] ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] b _08131160 _08131148: ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 movs r1, 0 strh r0, [r4, 0x20] ldrh r0, [r4, 0x26] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] strh r1, [r4, 0x26] strh r1, [r4, 0x24] strh r1, [r4, 0x38] _08131160: ldrh r0, [r4, 0x3A] adds r0, 0x1 strh r0, [r4, 0x3A] b _081311DE _08131168: movs r0, 0 strh r0, [r4, 0x2E] movs r1, 0x10 strh r1, [r4, 0x30] strh r0, [r4, 0x32] movs r0, 0x3 strh r0, [r4, 0x38] b _081311DE _08131178: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _081311DE movs r0, 0 strh r0, [r4, 0x38] b _081311DE _0813118C: ldrh r1, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0813119E ldrh r0, [r4, 0x30] subs r0, 0x1 strh r0, [r4, 0x30] b _081311A4 _0813119E: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] _081311A4: ldr r2, _081311D4 ldrh r0, [r4, 0x32] lsls r0, 8 ldrh r1, [r4, 0x30] orrs r0, r1 strh r0, [r2] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x20 bne _081311DE adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _081311CA: ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] b _081311DE .align 2, 0 _081311D4: .4byte REG_BLDALPHA _081311D8: adds r0, r4, 0 bl move_anim_8072740 _081311DE: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8130FE0 thumb_func_start sub_81311E4 sub_81311E4: @ 81311E4 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x32 ldrsh r0, [r4, r1] movs r2, 0x2E ldrsh r1, [r4, r2] subs r0, r1 movs r2, 0x38 ldrsh r1, [r4, r2] muls r0, r1 movs r2, 0x36 ldrsh r1, [r4, r2] bl __divsi3 adds r5, r0, 0 strh r5, [r4, 0x24] movs r1, 0x34 ldrsh r0, [r4, r1] movs r2, 0x30 ldrsh r1, [r4, r2] subs r0, r1 movs r2, 0x38 ldrsh r1, [r4, r2] muls r0, r1 movs r2, 0x36 ldrsh r1, [r4, r2] bl __divsi3 adds r3, r0, 0 strh r3, [r4, 0x26] ldrh r1, [r4, 0x38] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08131242 ldr r0, _08131260 ldrh r1, [r4, 0x20] adds r1, r5 lsls r1, 16 asrs r1, 16 ldrh r2, [r4, 0x22] adds r2, r3 lsls r2, 16 asrs r2, 16 movs r3, 0x5 bl CreateSprite _08131242: movs r0, 0x38 ldrsh r1, [r4, r0] movs r2, 0x36 ldrsh r0, [r4, r2] cmp r1, r0 bne _08131254 adds r0, r4, 0 bl move_anim_8072740 _08131254: ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08131260: .4byte gSpriteTemplate_8402500 thumb_func_end sub_81311E4 thumb_func_start sub_8131264 sub_8131264: @ 8131264 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _081312A0 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _08131290 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _081312A8 _08131290: ldr r2, _081312A4 ldrh r1, [r5, 0x20] ldrh r0, [r2] subs r0, r1, r0 strh r0, [r5, 0x2E] ldrh r0, [r2, 0x4] subs r1, r0 b _081312B6 .align 2, 0 _081312A0: .4byte gUnknown_0202F7C9 _081312A4: .4byte gUnknown_03004B00 _081312A8: ldr r2, _081312DC ldrh r1, [r5, 0x20] ldrh r0, [r2] adds r0, r1, r0 strh r0, [r5, 0x2E] ldrh r0, [r2, 0x4] adds r1, r0 _081312B6: strh r1, [r5, 0x32] adds r3, r2, 0 ldrh r1, [r5, 0x22] ldrh r2, [r3, 0x2] adds r2, r1, r2 strh r2, [r5, 0x30] ldrh r0, [r3, 0x6] adds r1, r0 strh r1, [r5, 0x34] ldrh r0, [r3, 0x8] strh r0, [r5, 0x36] ldrh r0, [r5, 0x2E] strh r0, [r5, 0x20] strh r2, [r5, 0x22] ldr r0, _081312E0 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081312DC: .4byte gUnknown_03004B00 _081312E0: .4byte sub_81311E4 thumb_func_end sub_8131264 thumb_func_start sub_81312E4 sub_81312E4: @ 81312E4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r6, r0, 24 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r5, r0, 24 adds r2, r5, 0 ldr r0, _08131328 mov r9, r0 lsls r7, r6, 2 adds r0, r7, r6 lsls r0, 3 mov r8, r0 mov r4, r8 add r4, r9 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 bne _0813132C adds r0, r5, 0 movs r1, 0 bl sub_8078E70 movs r0, 0x80 lsls r0, 1 strh r0, [r4, 0xA] strh r0, [r4, 0xC] b _08131378 .align 2, 0 _08131328: .4byte gTasks _0813132C: cmp r0, 0x1 bne _08131384 ldrh r0, [r4, 0xA] adds r0, 0x60 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] subs r0, 0xD strh r0, [r4, 0xC] movs r2, 0xA ldrsh r1, [r4, r2] movs r0, 0xC ldrsh r2, [r4, r0] adds r0, r5, 0 movs r3, 0 bl obj_id_set_rotscale ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 bne _081313E8 movs r0, 0 strh r0, [r4, 0xE] adds r0, r5, 0 bl sub_8078F40 ldr r1, _08131380 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r0, r1 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _08131378: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _081313E8 .align 2, 0 _08131380: .4byte gSprites _08131384: ldr r4, _081313F4 ldrb r0, [r4] movs r1, 0 bl refresh_graphics_maybe bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _081313C6 ldr r3, _081313F8 ldr r2, _081313FC ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x10 adds r0, r1 ldr r1, _08131400 str r1, [r0] ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0 bl StartSpriteAffineAnim _081313C6: mov r4, r9 adds r3, r7, 0 ldr r5, _08131404 movs r1, 0xF mov r2, r8 adds r0, r4, r2 adds r0, 0x26 movs r2, 0 _081313D6: strh r2, [r0] subs r0, 0x2 subs r1, 0x1 cmp r1, 0 bge _081313D6 adds r0, r3, r6 lsls r0, 3 adds r0, r4 str r5, [r0] _081313E8: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081313F4: .4byte gUnknown_0202F7C8 _081313F8: .4byte gSprites _081313FC: .4byte gUnknown_02024BE0 _08131400: .4byte gSpriteAffineAnimTable_81E7C18 _08131404: .4byte sub_8131408 thumb_func_end sub_81312E4 thumb_func_start sub_8131408 sub_8131408: @ 8131408 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r3, r0, 24 ldr r1, _08131434 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r1 movs r0, 0x8 ldrsh r5, [r4, r0] cmp r5, 0x1 beq _0813146C cmp r5, 0x1 bgt _08131438 cmp r5, 0 beq _08131442 b _0813155A .align 2, 0 _08131434: .4byte gTasks _08131438: cmp r5, 0x2 beq _081314D8 cmp r5, 0x3 beq _08131514 b _0813155A _08131442: ldr r0, _08131464 lsls r1, r3, 4 adds r1, r3 lsls r1, 2 adds r1, r0 ldr r0, _08131468 strh r0, [r1, 0x26] movs r0, 0xC8 strh r0, [r1, 0x24] adds r1, 0x3E ldrb r2, [r1] subs r0, 0xCD ands r0, r2 strb r0, [r1] strh r5, [r4, 0x1C] b _08131506 .align 2, 0 _08131464: .4byte gSprites _08131468: .4byte 0x0000ff38 _0813146C: ldrh r1, [r4, 0x1C] adds r1, 0x70 movs r5, 0 strh r1, [r4, 0x1C] ldr r2, _081314D0 lsls r0, r3, 4 adds r0, r3 lsls r0, 2 adds r2, r0, r2 lsls r1, 16 asrs r1, 24 ldrh r3, [r2, 0x26] adds r1, r3 strh r1, [r2, 0x26] movs r1, 0x22 ldrsh r0, [r2, r1] movs r3, 0x26 ldrsh r1, [r2, r3] adds r0, r1 movs r1, 0x20 negs r1, r1 cmp r0, r1 blt _0813149C strh r5, [r2, 0x24] _0813149C: movs r1, 0x26 ldrsh r0, [r2, r1] cmp r0, 0 ble _081314A6 strh r5, [r2, 0x26] _081314A6: movs r3, 0x26 ldrsh r0, [r2, r3] cmp r0, 0 bne _0813155A movs r0, 0x40 negs r0, r0 bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0x7D bl PlaySE12WithPanning ldr r1, _081314D4 adds r0, r1, 0 ldrh r2, [r4, 0x1C] adds r0, r2 strh r0, [r4, 0x1C] b _08131506 .align 2, 0 _081314D0: .4byte gSprites _081314D4: .4byte 0xfffff800 _081314D8: ldrh r0, [r4, 0x1C] subs r0, 0x70 strh r0, [r4, 0x1C] lsls r0, 16 cmp r0, 0 bge _081314E8 movs r0, 0 strh r0, [r4, 0x1C] _081314E8: ldr r0, _08131510 lsls r1, r3, 4 adds r1, r3 lsls r1, 2 adds r1, r0 ldrh r2, [r4, 0x1C] lsls r2, 16 asrs r2, 24 ldrh r0, [r1, 0x26] subs r0, r2 strh r0, [r1, 0x26] movs r3, 0x1C ldrsh r0, [r4, r3] cmp r0, 0 bne _0813155A _08131506: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0813155A .align 2, 0 _08131510: .4byte gSprites _08131514: ldrh r0, [r4, 0x1C] adds r0, 0x70 strh r0, [r4, 0x1C] ldr r2, _08131560 lsls r1, r3, 4 adds r1, r3 lsls r1, 2 adds r1, r2 lsls r0, 16 asrs r0, 24 ldrh r2, [r1, 0x26] adds r0, r2 strh r0, [r1, 0x26] lsls r0, 16 cmp r0, 0 ble _08131538 movs r0, 0 strh r0, [r1, 0x26] _08131538: movs r3, 0x26 ldrsh r0, [r1, r3] cmp r0, 0 bne _0813155A movs r0, 0x40 negs r0, r0 bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0x7D bl PlaySE12WithPanning adds r0, r6, 0 bl move_anim_task_del _0813155A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08131560: .4byte gSprites thumb_func_end sub_8131408 thumb_func_start sub_8131564 sub_8131564: @ 8131564 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _08131588 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08131590 ldrb r0, [r4] bl sub_8079E90 subs r0, 0x2 adds r1, r5, 0 adds r1, 0x43 strb r0, [r1] ldr r4, _0813158C b _081315A0 .align 2, 0 _08131588: .4byte gUnknown_0202F7C9 _0813158C: .4byte 0x0000ff70 _08131590: ldrb r0, [r4] bl sub_8079E90 adds r0, 0x2 adds r1, r5, 0 adds r1, 0x43 strb r0, [r1] ldr r4, _081315BC _081315A0: ldr r0, _081315C0 ldrb r0, [r0] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] strh r4, [r5, 0x26] ldr r0, _081315C4 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081315BC: .4byte 0x0000ffa0 _081315C0: .4byte gUnknown_0202F7C9 _081315C4: .4byte sub_81315C8 thumb_func_end sub_8131564 thumb_func_start sub_81315C8 sub_81315C8: @ 81315C8 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x4 bls _081315D6 b _081316F2 _081315D6: lsls r0, 2 ldr r1, _081315E0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081315E0: .4byte _081315E4 .align 2, 0 _081315E4: .4byte _081315F8 .4byte _0813161C .4byte _0813165C .4byte _0813168C .4byte _081316B8 _081315F8: ldrh r0, [r4, 0x26] adds r0, 0xA strh r0, [r4, 0x26] lsls r0, 16 cmp r0, 0 blt _081316F2 movs r0, 0x3F bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xCD bl PlaySE12WithPanning movs r0, 0 strh r0, [r4, 0x26] b _081316B0 _0813161C: ldrh r1, [r4, 0x30] adds r1, 0x4 movs r5, 0 strh r1, [r4, 0x30] ldr r2, _08131658 movs r3, 0x30 ldrsh r0, [r4, r3] lsls r0, 1 adds r0, r2 ldrh r0, [r0] lsls r0, 16 asrs r0, 19 negs r0, r0 strh r0, [r4, 0x26] lsls r1, 16 asrs r1, 16 cmp r1, 0x7F ble _081316F2 movs r0, 0x3F bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xCD bl PlaySE12WithPanning strh r5, [r4, 0x30] strh r5, [r4, 0x26] b _081316B0 .align 2, 0 _08131658: .4byte gSineTable _0813165C: ldrh r1, [r4, 0x30] adds r1, 0x6 movs r3, 0 strh r1, [r4, 0x30] ldr r2, _08131688 movs r5, 0x30 ldrsh r0, [r4, r5] lsls r0, 1 adds r0, r2 ldrh r0, [r0] lsls r0, 16 asrs r0, 20 negs r0, r0 strh r0, [r4, 0x26] lsls r1, 16 asrs r1, 16 cmp r1, 0x7F ble _081316F2 strh r3, [r4, 0x30] strh r3, [r4, 0x26] b _081316B0 .align 2, 0 _08131688: .4byte gSineTable _0813168C: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _081316F2 movs r0, 0x3F bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xC0 bl PlaySE12WithPanning movs r0, 0 strh r0, [r4, 0x30] _081316B0: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _081316F2 _081316B8: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _081316F2 movs r0, 0 strh r0, [r4, 0x30] ldrh r1, [r4, 0x32] adds r1, 0x1 strh r1, [r4, 0x32] movs r0, 0x1 ands r1, r0 adds r3, r4, 0 adds r3, 0x3E lsls r1, 2 ldrb r2, [r3] subs r0, 0x6 ands r0, r2 orrs r0, r1 strb r0, [r3] movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0x7 bne _081316F2 adds r0, r4, 0 bl move_anim_8072740 _081316F2: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81315C8 thumb_func_start sub_81316F8 sub_81316F8: @ 81316F8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r4, r0, 24 mov r10, r4 bl sub_8076BE0 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _0813173E movs r0, 0x1 bl duplicate_obj_of_side_rel2move_in_transparent_mode lsls r0, 16 asrs r7, r0, 16 cmp r7, 0 blt _0813173E movs r0, 0x1 bl duplicate_obj_of_side_rel2move_in_transparent_mode lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _0813174C lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r1, _08131748 adds r0, r1 bl obj_delete_but_dont_free_vram _0813173E: adds r0, r4, 0 bl move_anim_task_del b _081317EE .align 2, 0 _08131748: .4byte gSprites _0813174C: ldr r1, _081317FC mov r9, r1 lsls r1, r0, 4 mov r8, r1 add r8, r0 mov r0, r8 lsls r0, 2 mov r8, r0 mov r4, r8 add r4, r9 ldrh r0, [r4, 0x24] adds r0, 0x18 strh r0, [r4, 0x24] lsls r6, r7, 4 adds r6, r7 lsls r6, 2 mov r1, r9 adds r2, r6, r1 ldrh r0, [r2, 0x24] subs r0, 0x18 strh r0, [r2, 0x24] strh r5, [r4, 0x2E] strh r5, [r2, 0x2E] strh r5, [r4, 0x30] strh r5, [r2, 0x30] strh r5, [r4, 0x32] strh r5, [r2, 0x32] movs r0, 0x10 strh r0, [r4, 0x34] ldr r0, _08131800 strh r0, [r2, 0x34] strh r5, [r4, 0x36] movs r0, 0x80 strh r0, [r2, 0x36] movs r0, 0x18 strh r0, [r4, 0x38] strh r0, [r2, 0x38] mov r0, r10 strh r0, [r4, 0x3A] strh r0, [r2, 0x3A] strh r5, [r4, 0x3C] strh r5, [r2, 0x3C] ldr r0, _08131804 mov r1, r10 lsls r3, r1, 2 add r3, r10 lsls r3, 3 adds r3, r0 movs r0, 0x2 strh r0, [r3, 0x8] adds r5, r4, 0 adds r5, 0x3E ldrb r1, [r5] subs r0, 0x7 ands r0, r1 strb r0, [r5] adds r5, r2, 0 adds r5, 0x3E ldrb r0, [r5] movs r1, 0x4 orrs r0, r1 strb r0, [r5] ldrb r5, [r4, 0x1] movs r1, 0xD negs r1, r1 adds r0, r1, 0 ands r0, r5 strb r0, [r4, 0x1] ldrb r0, [r2, 0x1] ands r1, r0 strb r1, [r2, 0x1] movs r0, 0x1C add r9, r0 add r8, r9 ldr r0, _08131808 mov r1, r8 str r0, [r1] add r6, r9 str r0, [r6] ldr r0, _0813180C str r0, [r3] _081317EE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081317FC: .4byte gSprites _08131800: .4byte 0x0000fff0 _08131804: .4byte gTasks _08131808: .4byte sub_8131838 _0813180C: .4byte sub_8131810 thumb_func_end sub_81316F8 thumb_func_start sub_8131810 sub_8131810: @ 8131810 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _08131834 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0 bne _0813182E adds r0, r2, 0 bl move_anim_task_del _0813182E: pop {r0} bx r0 .align 2, 0 _08131834: .4byte gTasks thumb_func_end sub_8131810 thumb_func_start sub_8131838 sub_8131838: @ 8131838 push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] adds r0, 0x1 movs r5, 0 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _08131868 strh r5, [r4, 0x30] adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _08131868: ldrh r0, [r4, 0x34] ldrh r1, [r4, 0x36] adds r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x36] movs r2, 0x36 ldrsh r0, [r4, r2] movs r2, 0x38 ldrsh r1, [r4, r2] bl Cos strh r0, [r4, 0x24] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _08131890 cmp r0, 0x1 beq _081318A8 b _081318E6 _08131890: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x3C bne _081318E6 strh r5, [r4, 0x32] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _081318E6 _081318A8: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 cmp r0, 0 ble _081318E6 strh r5, [r4, 0x32] ldrh r0, [r4, 0x38] subs r0, 0x2 strh r0, [r4, 0x38] lsls r0, 16 cmp r0, 0 bge _081318E6 ldr r3, _081318EC movs r2, 0x3C ldrsh r1, [r4, r2] lsls r1, 1 movs r0, 0x3A ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 bl obj_delete_but_dont_free_vram _081318E6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081318EC: .4byte gTasks thumb_func_end sub_8131838 thumb_func_start sub_81318F0 sub_81318F0: @ 81318F0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r3, _0813193C movs r2, 0 strh r2, [r3, 0xE] ldr r1, _08131940 ldrb r0, [r1] ldrb r1, [r1] adds r0, r1, 0 subs r0, 0x3D lsls r0, 24 lsrs r0, 24 adds r2, r1, 0 cmp r0, 0x1E bhi _08131914 movs r0, 0x1 strh r0, [r3, 0xE] _08131914: adds r0, r2, 0 subs r0, 0x5C lsls r0, 24 lsrs r0, 24 cmp r0, 0x6C bhi _08131924 movs r0, 0x2 strh r0, [r3, 0xE] _08131924: lsls r0, r1, 24 lsrs r0, 24 cmp r0, 0xC8 bls _08131930 movs r0, 0x3 strh r0, [r3, 0xE] _08131930: adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _0813193C: .4byte gUnknown_03004B00 _08131940: .4byte gUnknown_0202F7BE thumb_func_end sub_81318F0 thumb_func_start sub_8131944 sub_8131944: @ 8131944 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r1, _08131974 lsls r0, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0x4 bls _0813196A b _08131EA0 _0813196A: lsls r0, 2 ldr r1, _08131978 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08131974: .4byte gTasks _08131978: .4byte _0813197C .align 2, 0 _0813197C: .4byte _08131990 .4byte _08131A44 .4byte _08131C20 .4byte _08131D40 .4byte _08131DC4 _08131990: movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r7, r0, 24 ldr r1, _081319DC mov r2, r8 lsls r4, r2, 2 adds r0, r4, r2 lsls r0, 3 adds r6, r0, r1 movs r3, 0x80 lsls r3, 4 adds r0, r3, 0 ldrh r1, [r6, 0xA] adds r0, r1 strh r0, [r6, 0xA] ldr r0, _081319E0 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 mov r9, r4 cmp r0, 0 bne _081319E8 ldr r2, _081319E4 lsls r3, r7, 4 adds r1, r3, r7 lsls r1, 2 adds r1, r2 ldrh r0, [r6, 0xA] lsls r0, 16 asrs r0, 24 ldrh r4, [r1, 0x24] adds r0, r4 strh r0, [r1, 0x24] b _08131A02 .align 2, 0 _081319DC: .4byte gTasks _081319E0: .4byte gUnknown_0202F7C8 _081319E4: .4byte gSprites _081319E8: ldr r3, _08131A3C lsls r4, r7, 4 adds r2, r4, r7 lsls r2, 2 adds r2, r3 ldrh r1, [r6, 0xA] lsls r1, 16 asrs r1, 24 ldrh r0, [r2, 0x24] subs r0, r1 strh r0, [r2, 0x24] adds r2, r3, 0 adds r3, r4, 0 _08131A02: ldr r1, _08131A40 mov r0, r9 add r0, r8 lsls r0, 3 adds r4, r0, r1 ldrb r0, [r4, 0xA] strh r0, [r4, 0xA] adds r1, r3, r7 lsls r1, 2 adds r1, r2 ldrh r0, [r1, 0x24] ldrh r1, [r1, 0x20] adds r0, r1 lsls r0, 16 movs r1, 0x80 lsls r1, 14 adds r0, r1 movs r1, 0x98 lsls r1, 17 cmp r0, r1 bhi _08131A2E b _08131EA0 _08131A2E: movs r0, 0 strh r0, [r4, 0xA] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _08131EA0 .align 2, 0 _08131A3C: .4byte gSprites _08131A40: .4byte gTasks _08131A44: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _08131A74 ldr r0, _08131A6C ldr r2, [r0, 0x8] mov r10, r2 ldr r3, [r0, 0xC] mov r9, r3 ldrh r5, [r0] ldr r0, _08131A70 ldrb r0, [r0] bl sub_8079E90 lsls r0, 24 lsrs r4, r0, 24 movs r7, 0 b _08131B92 .align 2, 0 _08131A6C: .4byte 0x02019348 _08131A70: .4byte gUnknown_0202F7C8 _08131A74: ldr r4, _08131AD4 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08131B10 ldr r7, _08131AD8 ldrb r0, [r4] lsls r0, 1 adds r0, r7 ldrh r0, [r0] movs r6, 0x64 muls r0, r6 ldr r5, _08131ADC adds r0, r5 movs r1, 0 bl GetMonData mov r10, r0 ldrb r0, [r4] lsls r0, 1 adds r0, r7 ldrh r0, [r0] muls r0, r6 adds r0, r5 movs r1, 0x1 bl GetMonData mov r9, r0 ldrb r2, [r4] lsls r1, r2, 2 ldr r0, _08131AE0 adds r1, r0 ldrh r0, [r1, 0x2] cmp r0, 0 bne _08131AE4 lsls r0, r2, 1 adds r0, r7 ldrh r0, [r0] muls r0, r6 adds r0, r5 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r5, r0, 16 b _08131AE6 .align 2, 0 _08131AD4: .4byte gUnknown_0202F7C8 _08131AD8: .4byte gUnknown_02024A6A _08131ADC: .4byte gPlayerParty _08131AE0: .4byte 0x02017800 _08131AE4: ldrh r5, [r1, 0x2] _08131AE6: movs r0, 0x1 bl obj_id_for_side_relative_to_move ldr r2, _08131B0C lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x43 ldrb r0, [r1] adds r0, 0x1 lsls r0, 24 lsrs r4, r0, 24 movs r7, 0 movs r6, 0x88 lsls r6, 1 b _08131B94 .align 2, 0 _08131B0C: .4byte gSprites _08131B10: ldr r7, _08131B64 ldrb r0, [r4] lsls r0, 1 adds r0, r7 ldrh r0, [r0] movs r6, 0x64 muls r0, r6 ldr r5, _08131B68 adds r0, r5 movs r1, 0 bl GetMonData mov r10, r0 ldrb r0, [r4] lsls r0, 1 adds r0, r7 ldrh r0, [r0] muls r0, r6 adds r0, r5 movs r1, 0x1 bl GetMonData mov r9, r0 ldrb r2, [r4] lsls r1, r2, 2 ldr r0, _08131B6C adds r1, r0 ldrh r0, [r1, 0x2] cmp r0, 0 bne _08131B70 lsls r0, r2, 1 adds r0, r7 ldrh r0, [r0] muls r0, r6 adds r0, r5 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r5, r0, 16 b _08131B72 .align 2, 0 _08131B64: .4byte gUnknown_02024A6A _08131B68: .4byte gEnemyParty _08131B6C: .4byte 0x02017800 _08131B70: ldrh r5, [r1, 0x2] _08131B72: movs r0, 0x1 bl obj_id_for_side_relative_to_move ldr r2, _08131C04 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x43 ldrb r0, [r1] subs r0, 0x1 lsls r0, 24 lsrs r4, r0, 24 movs r7, 0x1 _08131B92: ldr r6, _08131C08 _08131B94: ldr r0, _08131C0C ldrb r0, [r0] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 lsls r3, r6, 16 asrs r3, 16 str r0, [sp] str r4, [sp, 0x4] mov r4, r10 str r4, [sp, 0x8] mov r0, r9 str r0, [sp, 0xC] adds r0, r5, 0 adds r1, r7, 0 movs r2, 0 bl sub_8079F44 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _08131C10 ldrb r0, [r0] lsls r0, 2 ldr r1, _08131C14 adds r0, r1 ldrh r0, [r0, 0x2] cmp r0, 0 beq _08131BF2 ldr r1, _08131C04 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x5] lsrs r0, 4 lsls r0, 4 movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 orrs r0, r1 ldr r3, _08131C18 movs r1, 0x10 movs r2, 0x6 bl BlendPalette _08131BF2: ldr r0, _08131C1C mov r3, r8 lsls r1, r3, 2 add r1, r8 lsls r1, 3 adds r1, r0 strh r5, [r1, 0x26] b _08131DB6 .align 2, 0 _08131C04: .4byte gSprites _08131C08: .4byte 0x0000ffe0 _08131C0C: .4byte gUnknown_0202F7C9 _08131C10: .4byte gUnknown_0202F7C8 _08131C14: .4byte 0x02017800 _08131C18: .4byte 0x00007fff _08131C1C: .4byte gTasks _08131C20: ldr r1, _08131C6C mov r0, r8 lsls r4, r0, 2 adds r0, r4, r0 lsls r0, 3 adds r6, r0, r1 ldrh r0, [r6, 0x26] lsls r0, 24 lsrs r5, r0, 24 movs r1, 0x80 lsls r1, 4 adds r0, r1, 0 ldrh r2, [r6, 0xA] adds r0, r2 strh r0, [r6, 0xA] ldr r0, _08131C70 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 mov r9, r4 cmp r0, 0 bne _08131C78 ldr r3, _08131C74 lsls r4, r5, 4 adds r2, r4, r5 lsls r2, 2 adds r2, r3 ldrh r1, [r6, 0xA] lsls r1, 16 asrs r1, 24 ldrh r0, [r2, 0x24] subs r0, r1 strh r0, [r2, 0x24] adds r2, r3, 0 adds r3, r4, 0 b _08131C8E .align 2, 0 _08131C6C: .4byte gTasks _08131C70: .4byte gUnknown_0202F7C8 _08131C74: .4byte gSprites _08131C78: ldr r2, _08131CDC lsls r3, r5, 4 adds r1, r3, r5 lsls r1, 2 adds r1, r2 ldrh r0, [r6, 0xA] lsls r0, 16 asrs r0, 24 ldrh r4, [r1, 0x24] adds r0, r4 strh r0, [r1, 0x24] _08131C8E: ldr r1, _08131CE0 mov r0, r9 add r0, r8 lsls r0, 3 adds r6, r0, r1 ldrb r0, [r6, 0xA] strh r0, [r6, 0xA] adds r1, r3, r5 lsls r1, 2 adds r1, r2 ldrh r0, [r1, 0x24] ldrh r1, [r1, 0x20] adds r0, r1 lsls r0, 16 lsrs r5, r0, 16 movs r1, 0x24 ldrsh r0, [r6, r1] cmp r0, 0 bne _08131D0E ldr r0, _08131CE4 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08131CEC lsls r4, r5, 16 asrs r4, 16 ldr r0, _08131CE8 ldrb r0, [r0] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 cmp r4, r0 bge _08131D0E b _08131D02 .align 2, 0 _08131CDC: .4byte gSprites _08131CE0: .4byte gTasks _08131CE4: .4byte gUnknown_0202F7C8 _08131CE8: .4byte gUnknown_0202F7C9 _08131CEC: lsls r4, r5, 16 asrs r4, 16 ldr r0, _08131D30 ldrb r0, [r0] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 cmp r4, r0 ble _08131D0E _08131D02: ldrh r0, [r6, 0x24] adds r0, 0x1 strh r0, [r6, 0x24] ldr r1, _08131D34 ldr r0, _08131D38 strh r0, [r1, 0xE] _08131D0E: lsls r0, r5, 16 movs r2, 0x80 lsls r2, 14 adds r0, r2 movs r1, 0x98 lsls r1, 17 cmp r0, r1 bhi _08131D20 b _08131EA0 _08131D20: ldr r0, _08131D3C mov r1, r9 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0 strh r0, [r1, 0xA] b _08131DB6 .align 2, 0 _08131D30: .4byte gUnknown_0202F7C9 _08131D34: .4byte gUnknown_03004B00 _08131D38: .4byte 0x0000ffff _08131D3C: .4byte gTasks _08131D40: movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08131D8C mov r3, r8 lsls r4, r3, 2 adds r0, r4, r3 lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x26] lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 ldr r5, _08131D90 adds r0, r5 bl sub_807A0F4 ldr r0, _08131D94 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 mov r9, r4 cmp r0, 0 bne _08131D98 lsls r1, r7, 4 adds r1, r7 lsls r1, 2 adds r1, r5 ldrh r0, [r1, 0x20] negs r0, r0 subs r0, 0x20 strh r0, [r1, 0x24] b _08131DAC .align 2, 0 _08131D8C: .4byte gTasks _08131D90: .4byte gSprites _08131D94: .4byte gUnknown_0202F7C8 _08131D98: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 adds r0, r5 ldrh r2, [r0, 0x20] movs r4, 0x88 lsls r4, 1 adds r1, r4, 0 subs r1, r2 strh r1, [r0, 0x24] _08131DAC: ldr r0, _08131DC0 mov r1, r9 add r1, r8 lsls r1, 3 adds r1, r0 _08131DB6: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _08131EA0 .align 2, 0 _08131DC0: .4byte gTasks _08131DC4: movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08131E38 mov r0, r8 lsls r4, r0, 2 adds r0, r4, r0 lsls r0, 3 adds r2, r0, r1 movs r1, 0x80 lsls r1, 4 adds r0, r1, 0 ldrh r3, [r2, 0xA] adds r0, r3 strh r0, [r2, 0xA] ldr r0, _08131E3C mov r10, r0 ldrb r0, [r0] str r2, [sp, 0x10] bl battle_side_get_owner lsls r0, 24 mov r9, r4 ldr r2, [sp, 0x10] cmp r0, 0 bne _08131E44 ldr r1, _08131E40 lsls r5, r7, 4 adds r0, r5, r7 lsls r0, 2 adds r6, r0, r1 ldrh r0, [r2, 0xA] lsls r0, 16 asrs r0, 24 ldrh r1, [r6, 0x24] adds r0, r1 strh r0, [r6, 0x24] movs r2, 0x24 ldrsh r4, [r6, r2] movs r3, 0x20 ldrsh r0, [r6, r3] adds r4, r0 mov r1, r10 ldrb r0, [r1] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r3, r5, 0 cmp r4, r0 blt _08131E7C movs r2, 0 strh r2, [r6, 0x24] b _08131E7C .align 2, 0 _08131E38: .4byte gTasks _08131E3C: .4byte gUnknown_0202F7C8 _08131E40: .4byte gSprites _08131E44: ldr r1, _08131EB0 lsls r5, r7, 4 adds r0, r5, r7 lsls r0, 2 adds r6, r0, r1 ldrh r1, [r2, 0xA] lsls r1, 16 asrs r1, 24 ldrh r0, [r6, 0x24] subs r0, r1 strh r0, [r6, 0x24] movs r3, 0x24 ldrsh r4, [r6, r3] movs r1, 0x20 ldrsh r0, [r6, r1] adds r4, r0 mov r2, r10 ldrb r0, [r2] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r3, r5, 0 cmp r4, r0 bgt _08131E7C movs r4, 0 strh r4, [r6, 0x24] _08131E7C: ldr r1, _08131EB4 mov r0, r9 add r0, r8 lsls r0, 3 adds r0, r1 ldrb r1, [r0, 0xA] strh r1, [r0, 0xA] ldr r1, _08131EB0 adds r0, r3, r7 lsls r0, 2 adds r0, r1 movs r1, 0x24 ldrsh r0, [r0, r1] cmp r0, 0 bne _08131EA0 mov r0, r8 bl move_anim_task_del _08131EA0: 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 _08131EB0: .4byte gSprites _08131EB4: .4byte gTasks thumb_func_end sub_8131944 thumb_func_start sub_8131EB8 sub_8131EB8: @ 8131EB8 push {r4,lr} adds r4, r0, 0 movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0 beq _08131ECA cmp r0, 0x1 beq _08131F72 b _08131FF4 _08131ECA: ldr r0, _08131F50 movs r2, 0xE ldrsh r1, [r0, r2] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _08131F64 movs r0, 0x3F bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0x7A bl PlaySE12WithPanning ldr r0, _08131F54 ldrb r0, [r0] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, 0x10 strh r0, [r4, 0x22] ldr r0, _08131F58 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] ldr r0, _08131F5C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08131FF4 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _08131FF4 movs r0, 0x1 bl obj_id_for_side_relative_to_move ldr r2, _08131F60 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x43 ldrb r0, [r1] subs r0, 0x1 adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] b _08131FF4 .align 2, 0 _08131F50: .4byte gUnknown_03004B00 _08131F54: .4byte gUnknown_0202F7C9 _08131F58: .4byte 0x0000ffe0 _08131F5C: .4byte gUnknown_0202F7C8 _08131F60: .4byte gSprites _08131F64: adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _08131FF4 _08131F72: movs r1, 0x30 ldrsh r0, [r4, r1] movs r2, 0x2E ldrsh r1, [r4, r2] bl Sin strh r0, [r4, 0x26] ldrh r2, [r4, 0x30] adds r0, r2, 0x5 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x7F ble _08131FA6 movs r1, 0x2E ldrsh r0, [r4, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] adds r0, r2, 0 subs r0, 0x7A strh r0, [r4, 0x30] _08131FA6: movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 ldrh r1, [r4, 0x32] adds r0, r1 strh r0, [r4, 0x32] ldr r0, _08131FD0 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08131FD4 ldrh r2, [r4, 0x32] lsls r1, r2, 16 asrs r1, 24 ldrh r0, [r4, 0x24] subs r0, r1 strh r0, [r4, 0x24] adds r1, r2, 0 b _08131FE0 .align 2, 0 _08131FD0: .4byte gUnknown_0202F7C8 _08131FD4: ldrh r1, [r4, 0x32] lsls r0, r1, 16 asrs r0, 24 ldrh r2, [r4, 0x24] adds r0, r2 strh r0, [r4, 0x24] _08131FE0: movs r0, 0xFF ands r0, r1 strh r0, [r4, 0x32] movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0x2 bne _08131FF4 adds r0, r4, 0 bl move_anim_8072740 _08131FF4: pop {r4} pop {r0} bx r0 thumb_func_end sub_8131EB8 thumb_func_start sub_8131FFC sub_8131FFC: @ 8131FFC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08132024 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0x26 ldrsh r0, [r0, r2] adds r3, r1, 0 cmp r0, 0x4 bls _08132018 b _0813216A _08132018: lsls r0, 2 ldr r1, _08132028 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08132024: .4byte gTasks _08132028: .4byte _0813202C .align 2, 0 _0813202C: .4byte _08132040 .4byte _08132090 .4byte _081320EC .4byte _08132104 .4byte _0813216A _08132040: ldr r0, _08132084 ldrb r0, [r0] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r0, _08132088 ldrb r0, [r0] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 ldr r1, _0813208C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 movs r0, 0x6 strh r0, [r1, 0x8] cmp r5, r2 ble _08132076 negs r0, r0 strh r0, [r1, 0x8] _08132076: strh r5, [r1, 0xA] strh r2, [r1, 0xC] ldrh r0, [r1, 0x26] adds r0, 0x1 strh r0, [r1, 0x26] b _08132188 .align 2, 0 _08132084: .4byte gUnknown_0202F7C8 _08132088: .4byte gUnknown_0202F7C9 _0813208C: .4byte gTasks _08132090: ldr r1, _081320CC ldr r0, _081320D0 ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] ldr r1, _081320D4 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, r0, r1 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r3 ldrh r0, [r2, 0x8] ldrh r3, [r1, 0x24] adds r0, r3 strh r0, [r1, 0x24] movs r3, 0x8 ldrsh r0, [r2, r3] cmp r0, 0 ble _081320D8 movs r3, 0x20 ldrsh r0, [r1, r3] movs r3, 0x24 ldrsh r1, [r1, r3] adds r0, r1 movs r3, 0xC ldrsh r1, [r2, r3] b _0813215E .align 2, 0 _081320CC: .4byte gUnknown_02024BE0 _081320D0: .4byte gUnknown_0202F7C8 _081320D4: .4byte gSprites _081320D8: movs r3, 0x20 ldrsh r0, [r1, r3] movs r3, 0x24 ldrsh r1, [r1, r3] adds r0, r1 movs r3, 0xC ldrsh r1, [r2, r3] cmp r0, r1 bgt _08132188 b _08132162 _081320EC: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r3 movs r2, 0x8 ldrsh r1, [r0, r2] negs r1, r1 strh r1, [r0, 0x8] ldrh r1, [r0, 0x26] adds r1, 0x1 strh r1, [r0, 0x26] b _08132188 _08132104: ldr r1, _08132144 ldr r0, _08132148 ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] ldr r1, _0813214C lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, r0, r1 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r3 ldrh r0, [r2, 0x8] ldrh r3, [r1, 0x24] adds r0, r3 strh r0, [r1, 0x24] movs r3, 0x8 ldrsh r0, [r2, r3] cmp r0, 0 bge _08132150 movs r3, 0x20 ldrsh r0, [r1, r3] movs r3, 0x24 ldrsh r1, [r1, r3] adds r0, r1 movs r3, 0xA ldrsh r1, [r2, r3] cmp r0, r1 bgt _08132188 b _08132162 .align 2, 0 _08132144: .4byte gUnknown_02024BE0 _08132148: .4byte gUnknown_0202F7C8 _0813214C: .4byte gSprites _08132150: movs r3, 0x20 ldrsh r0, [r1, r3] movs r3, 0x24 ldrsh r1, [r1, r3] adds r0, r1 movs r3, 0xA ldrsh r1, [r2, r3] _0813215E: cmp r0, r1 blt _08132188 _08132162: ldrh r0, [r2, 0x26] adds r0, 0x1 strh r0, [r2, 0x26] b _08132188 _0813216A: ldr r1, _08132190 ldr r0, _08132194 ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] ldr r1, _08132198 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 movs r1, 0 strh r1, [r0, 0x24] adds r0, r4, 0 bl move_anim_task_del _08132188: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08132190: .4byte gUnknown_02024BE0 _08132194: .4byte gUnknown_0202F7C8 _08132198: .4byte gSprites thumb_func_end sub_8131FFC thumb_func_start sub_813219C sub_813219C: @ 813219C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08132204 adds r4, r1, r0 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0xE] ldr r0, _08132208 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 movs r2, 0x1 negs r2, r2 adds r1, r2, 0 cmp r0, 0 bne _081321D0 movs r1, 0x1 _081321D0: strh r1, [r4, 0x10] ldr r2, _0813220C movs r0, 0xE ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x22] strh r0, [r4, 0x14] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x20] strh r0, [r4, 0x12] strh r5, [r4, 0x1A] strh r5, [r4, 0x1E] movs r0, 0x1 strh r0, [r4, 0x1C] strh r5, [r4, 0x20] ldr r0, _08132210 str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08132204: .4byte gTasks _08132208: .4byte gUnknown_0202F7C8 _0813220C: .4byte gSprites _08132210: .4byte sub_8132214 thumb_func_end sub_813219C thumb_func_start sub_8132214 sub_8132214: @ 8132214 push {r4-r6,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _08132238 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _081322BC cmp r0, 0x1 bgt _0813223C cmp r0, 0 beq _08132242 b _08132312 .align 2, 0 _08132238: .4byte gTasks _0813223C: cmp r0, 0x2 beq _0813230C b _08132312 _08132242: ldrh r0, [r4, 0x1E] adds r0, 0x8 movs r2, 0xFF ands r0, r2 strh r0, [r4, 0x1E] ldr r5, _081322B4 movs r6, 0xE ldrsh r0, [r4, r6] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 ldr r3, _081322B8 movs r6, 0x1E ldrsh r0, [r4, r6] lsls r0, 1 adds r0, r3 ldrh r0, [r0] lsls r0, 16 asrs r0, 21 strh r0, [r1, 0x24] ldrh r0, [r4, 0x1A] adds r0, 0x2 ands r0, r2 strh r0, [r4, 0x1A] movs r1, 0xE ldrsh r0, [r4, r1] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r5 movs r6, 0x1A ldrsh r0, [r4, r6] lsls r0, 1 adds r0, r3 ldrh r0, [r0] lsls r0, 16 asrs r0, 19 ldrh r1, [r4, 0x10] muls r0, r1 ldrh r1, [r4, 0x12] adds r0, r1 strh r0, [r2, 0x20] movs r6, 0x1A ldrsh r0, [r4, r6] cmp r0, 0 bne _08132312 movs r0, 0xE ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r1, [r4, 0x12] strh r1, [r0, 0x20] b _081322FC .align 2, 0 _081322B4: .4byte gSprites _081322B8: .4byte gSineTable _081322BC: ldrh r0, [r4, 0x1E] adds r0, 0x8 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x1E] ldr r3, _08132304 movs r1, 0xE ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldr r2, _08132308 movs r5, 0x1E ldrsh r0, [r4, r5] lsls r0, 1 adds r0, r2 ldrh r0, [r0] lsls r0, 16 asrs r0, 21 strh r0, [r1, 0x24] movs r6, 0x1E ldrsh r2, [r4, r6] cmp r2, 0 bne _08132312 movs r1, 0xE ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 strh r2, [r1, 0x24] _081322FC: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _08132312 .align 2, 0 _08132304: .4byte gSprites _08132308: .4byte gSineTable _0813230C: adds r0, r2, 0 bl move_anim_task_del _08132312: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8132214 thumb_func_start sub_8132318 sub_8132318: @ 8132318 push {r4,lr} adds r4, r0, 0 ldr r0, _0813236C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 ldrh r0, [r4, 0x2E] ldrh r1, [r4, 0x30] adds r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x30] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x14 bl Cos strh r0, [r4, 0x24] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x14 bl Sin strh r0, [r4, 0x26] adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0813235E adds r0, r4, 0 bl move_anim_8072740 _0813235E: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] pop {r4} pop {r0} bx r0 .align 2, 0 _0813236C: .4byte gUnknown_0202F7C9 thumb_func_end sub_8132318 thumb_func_start sub_8132370 sub_8132370: @ 8132370 push {r4,lr} adds r4, r0, 0 ldr r0, _081323A8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _081323B4 ldr r2, _081323AC ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 strh r0, [r4, 0x20] ldrh r0, [r2, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldr r0, _081323B0 strh r0, [r4, 0x2E] movs r0, 0xC0 strh r0, [r4, 0x30] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim b _081323CE .align 2, 0 _081323A8: .4byte gUnknown_0202F7C9 _081323AC: .4byte gUnknown_03004B00 _081323B0: .4byte 0x0000fff5 _081323B4: movs r0, 0xB strh r0, [r4, 0x2E] movs r0, 0xC0 strh r0, [r4, 0x30] ldr r1, _081323D8 ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] _081323CE: ldr r0, _081323DC str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _081323D8: .4byte gUnknown_03004B00 _081323DC: .4byte sub_8132318 thumb_func_end sub_8132370 thumb_func_start sub_81323E0 sub_81323E0: @ 81323E0 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _08132424 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x2 bl sub_807A100 strh r0, [r5, 0x22] lsls r0, 16 asrs r0, 16 cmp r0, 0xF bgt _0813240A movs r0, 0x10 strh r0, [r5, 0x22] _0813240A: movs r0, 0 strh r0, [r5, 0x3A] movs r1, 0x10 strh r1, [r5, 0x3C] ldr r0, _08132428 str r0, [r5, 0x1C] ldr r0, _0813242C lsls r1, 8 strh r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08132424: .4byte gUnknown_0202F7C8 _08132428: .4byte sub_8132430 _0813242C: .4byte REG_BLDALPHA thumb_func_end sub_81323E0 thumb_func_start sub_8132430 sub_8132430: @ 8132430 push {r4,lr} adds r3, r0, 0 movs r0, 0x32 ldrsh r1, [r3, r0] cmp r1, 0x1 beq _081324A8 cmp r1, 0x1 bgt _08132446 cmp r1, 0 beq _08132450 b _08132522 _08132446: cmp r1, 0x2 beq _081324BE cmp r1, 0x3 beq _0813251C b _08132522 _08132450: ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _08132522 strh r1, [r3, 0x2E] ldrh r1, [r3, 0x30] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0813247A ldrh r2, [r3, 0x3A] movs r4, 0x3A ldrsh r0, [r3, r4] cmp r0, 0xF bgt _08132488 adds r0, r2, 0x1 strh r0, [r3, 0x3A] b _08132488 _0813247A: ldrh r2, [r3, 0x3C] movs r4, 0x3C ldrsh r0, [r3, r4] cmp r0, 0 beq _08132488 subs r0, r2, 0x1 strh r0, [r3, 0x3C] _08132488: adds r0, r1, 0x1 strh r0, [r3, 0x30] ldr r2, _081324A4 ldrh r0, [r3, 0x3C] lsls r0, 8 ldrh r1, [r3, 0x3A] orrs r0, r1 strh r0, [r2] movs r1, 0x3C ldrsh r0, [r3, r1] cmp r0, 0 bne _08132522 b _08132510 .align 2, 0 _081324A4: .4byte REG_BLDALPHA _081324A8: ldrh r0, [r3, 0x2E] adds r0, 0x1 movs r1, 0 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _08132522 strh r1, [r3, 0x2E] strh r1, [r3, 0x30] b _08132510 _081324BE: ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _08132522 movs r0, 0 strh r0, [r3, 0x2E] ldrh r1, [r3, 0x30] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _081324EA ldrh r2, [r3, 0x3A] movs r4, 0x3A ldrsh r0, [r3, r4] cmp r0, 0 beq _081324F8 subs r0, r2, 0x1 strh r0, [r3, 0x3A] b _081324F8 _081324EA: ldrh r2, [r3, 0x3C] movs r4, 0x3C ldrsh r0, [r3, r4] cmp r0, 0xF bgt _081324F8 adds r0, r2, 0x1 strh r0, [r3, 0x3C] _081324F8: adds r0, r1, 0x1 strh r0, [r3, 0x30] ldr r2, _08132518 ldrh r0, [r3, 0x3C] lsls r0, 8 ldrh r1, [r3, 0x3A] orrs r0, r1 strh r0, [r2] movs r1, 0x3C ldrsh r0, [r3, r1] cmp r0, 0x10 bne _08132522 _08132510: ldrh r0, [r3, 0x32] adds r0, 0x1 strh r0, [r3, 0x32] b _08132522 .align 2, 0 _08132518: .4byte REG_BLDALPHA _0813251C: adds r0, r3, 0 bl move_anim_8074EE0 _08132522: pop {r4} pop {r0} bx r0 thumb_func_end sub_8132430 thumb_func_start sub_8132528 sub_8132528: @ 8132528 push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r2, _08132544 movs r0, 0 strh r0, [r2, 0xE] ldr r0, _08132548 ldrh r1, [r0] movs r0, 0x60 ands r0, r1 cmp r0, 0 beq _0813254C movs r0, 0x1 b _0813256E .align 2, 0 _08132544: .4byte gUnknown_03004B00 _08132548: .4byte gUnknown_0202F7C0 _0813254C: movs r0, 0x7 ands r0, r1 cmp r0, 0 beq _08132558 movs r0, 0x2 b _0813256E _08132558: movs r0, 0x18 ands r0, r1 cmp r0, 0 beq _08132564 movs r0, 0x3 b _0813256E _08132564: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08132570 movs r0, 0x4 _0813256E: strh r0, [r2, 0xE] _08132570: adds r0, r3, 0 bl move_anim_task_del pop {r0} bx r0 thumb_func_end sub_8132528 thumb_func_start sub_813257C sub_813257C: @ 813257C push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _081325B4 adds r4, r0 movs r0, 0 strh r0, [r4, 0x8] ldr r0, _081325B8 ldrb r0, [r0] bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 strh r1, [r4, 0x26] ldr r2, _081325BC adds r0, r4, 0 bl sub_80798F4 ldr r0, _081325C0 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _081325B4: .4byte gTasks _081325B8: .4byte gUnknown_03004B00 _081325BC: .4byte gUnknown_08402B28 _081325C0: .4byte sub_81325C4 thumb_func_end sub_813257C thumb_func_start sub_81325C4 sub_81325C4: @ 81325C4 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r2, _0813261C adds r3, r0, r2 ldrh r0, [r3, 0x8] adds r1, r0, 0x1 movs r5, 0 strh r1, [r3, 0x8] subs r0, 0x10 lsls r0, 16 lsrs r0, 16 adds r6, r2, 0 cmp r0, 0x16 bhi _08132628 ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _08132638 strh r5, [r3, 0xA] ldrh r0, [r3, 0xC] adds r0, 0x1 strh r0, [r3, 0xC] movs r5, 0x1 ands r0, r5 cmp r0, 0 bne _08132628 ldr r2, _08132620 movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _08132624 strh r1, [r0, 0x24] b _08132638 .align 2, 0 _0813261C: .4byte gTasks _08132620: .4byte gSprites _08132624: .4byte 0x0000ffff _08132628: ldr r2, _08132658 movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r5, [r0, 0x24] _08132638: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r6 bl sub_807992C lsls r0, 24 cmp r0, 0 bne _08132650 adds r0, r4, 0 bl move_anim_task_del _08132650: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08132658: .4byte gSprites thumb_func_end sub_81325C4 thumb_func_start sub_813265C sub_813265C: @ 813265C push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_813265C thumb_func_start sub_8132670 sub_8132670: @ 8132670 push {lr} sub sp, 0x4 bl ScriptContext2_Enable ldr r0, _08132698 movs r1, 0xA bl CreateTask movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08132698: .4byte sub_813269C thumb_func_end sub_8132670 thumb_func_start sub_813269C sub_813269C: @ 813269C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _081326C8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081326C0 ldr r0, _081326CC bl SetMainCallback2 ldr r1, _081326D0 ldr r0, _081326D4 str r0, [r1] adds r0, r4, 0 bl DestroyTask _081326C0: pop {r4} pop {r0} bx r0 .align 2, 0 _081326C8: .4byte gPaletteFade _081326CC: .4byte sub_81326D8 _081326D0: .4byte gUnknown_0300485C _081326D4: .4byte sub_8080990 thumb_func_end sub_813269C thumb_func_start sub_81326D8 sub_81326D8: @ 81326D8 push {r4,r5,lr} movs r1, 0x80 lsls r1, 19 movs r0, 0 strh r0, [r1] bl ResetSpriteData bl FreeAllSpritePalettes bl ResetTasks ldr r4, _08132778 ldr r0, _0813277C str r0, [r4] bl sub_81332A0 ldr r1, [r4] ldr r0, _08132780 ldrh r0, [r0] ldr r2, _08132784 adds r1, r2 movs r5, 0 strb r0, [r1] bl sub_8133558 ldr r0, _08132788 bl SetVBlankCallback ldr r4, _0813278C adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl InitMenuWindow bl MenuZeroFillScreen ldr r4, _08132790 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl InitMenuWindow bl MenuZeroFillScreen ldr r0, _08132794 strh r5, [r0] strh r5, [r0] adds r0, 0x2 strh r5, [r0] strh r5, [r0] ldr r0, _08132798 bl LoadSpriteSheet ldr r0, _0813279C bl LoadSpritePalette bl sub_8133358 movs r0, 0 movs r1, 0 movs r2, 0x2 bl FillPalette bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade ldr r0, _081327A0 bl SetMainCallback2 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08132778: .4byte gUnknown_030007B0 _0813277C: .4byte 0x02017000 _08132780: .4byte gUnknown_0202E8CC _08132784: .4byte 0x000002c5 _08132788: .4byte sub_813265C _0813278C: .4byte gWindowConfig_81E7240 _08132790: .4byte gWindowConfig_81E6CE4 _08132794: .4byte REG_BG0VOFS _08132798: .4byte gUnknown_08402D80 _0813279C: .4byte gUnknown_08402D88 _081327A0: .4byte sub_8132870 thumb_func_end sub_81326D8 thumb_func_start sub_81327A4 sub_81327A4: @ 81327A4 push {r4,r5,lr} bl ResetSpriteData bl FreeAllSpritePalettes bl ResetTasks ldr r4, _08132844 ldr r0, _08132848 str r0, [r4] bl sub_8133558 ldr r1, [r4] ldr r0, _0813284C ldrh r0, [r0] ldr r2, _08132850 adds r1, r2 movs r5, 0 strb r0, [r1] ldr r0, _08132854 bl SetVBlankCallback ldr r4, _08132858 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl InitMenuWindow bl MenuZeroFillScreen ldr r4, _0813285C adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl InitMenuWindow bl MenuZeroFillScreen movs r1, 0x80 lsls r1, 19 movs r2, 0x9A lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r0, _08132860 strh r5, [r0] subs r0, 0x2 strh r5, [r0] adds r0, 0x4 strh r5, [r0] strh r5, [r0] ldr r0, _08132864 bl LoadSpriteSheet ldr r0, _08132868 bl LoadSpritePalette bl sub_8133358 movs r0, 0 movs r1, 0 movs r2, 0x2 bl FillPalette bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade ldr r0, _0813286C bl SetMainCallback2 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08132844: .4byte gUnknown_030007B0 _08132848: .4byte 0x02017000 _0813284C: .4byte gUnknown_0202E8CE _08132850: .4byte 0x000002c6 _08132854: .4byte sub_813265C _08132858: .4byte gWindowConfig_81E7240 _0813285C: .4byte gWindowConfig_81E6CE4 _08132860: .4byte REG_BG0VOFS _08132864: .4byte gUnknown_08402D80 _08132868: .4byte gUnknown_08402D88 _0813286C: .4byte sub_8132870 thumb_func_end sub_81327A4 thumb_func_start sub_8132870 sub_8132870: @ 8132870 push {r4,lr} bl sub_8132908 ldr r4, _081328E0 ldr r1, [r4] ldrb r0, [r1, 0x1D] cmp r0, 0 beq _08132896 movs r0, 0 strb r0, [r1, 0x1D] ldr r0, [r4] ldrb r1, [r0, 0x18] lsls r1, 1 adds r1, 0x1 lsls r1, 27 lsrs r1, 24 movs r0, 0x58 bl sub_814AD7C _08132896: ldr r1, [r4] ldrb r0, [r1, 0x1E] cmp r0, 0 beq _081328A6 movs r0, 0 strb r0, [r1, 0x1E] bl sub_8133800 _081328A6: ldr r1, [r4] ldr r2, _081328E4 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _081328C8 adds r2, 0x1 adds r0, r1, r2 ldrb r0, [r0] movs r1, 0x1 bl sub_8133AEC ldr r0, [r4] ldr r1, _081328E4 adds r0, r1 movs r1, 0 strb r1, [r0] _081328C8: bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r4} pop {r0} bx r0 .align 2, 0 _081328E0: .4byte gUnknown_030007B0 _081328E4: .4byte 0x000002c3 thumb_func_end sub_8132870 thumb_func_start sub_81328E8 sub_81328E8: @ 81328E8 push {r4,lr} adds r1, r0, 0 ldr r4, _08132904 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x3 movs r2, 0xF bl MenuPrintMessage pop {r4} pop {r0} bx r0 .align 2, 0 _08132904: .4byte gStringVar4 thumb_func_end sub_81328E8 thumb_func_start sub_8132908 sub_8132908: @ 8132908 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 ldr r1, _0813292C ldr r0, [r1] ldrb r0, [r0] adds r7, r1, 0 cmp r0, 0x21 bls _08132920 b _08132FD6 _08132920: lsls r0, 2 ldr r1, _08132930 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813292C: .4byte gUnknown_030007B0 _08132930: .4byte _08132934 .align 2, 0 _08132934: .4byte _081329BC .4byte _08132A0C .4byte _08132A24 .4byte _08132A2C .4byte _08132A60 .4byte _08132A66 .4byte _08132A98 .4byte _08132FD6 .4byte _08132AAA .4byte _08132AD0 .4byte _08132FD6 .4byte _08132FD6 .4byte _08132B74 .4byte _08132B98 .4byte _08132DD8 .4byte _08132DF8 .4byte _08132BF0 .4byte _08132C08 .4byte _08132C2C .4byte _08132D40 .4byte _08132D68 .4byte _08132DB8 .4byte _08132DC6 .4byte _08132FD6 .4byte _08132C74 .4byte _08132C8C .4byte _08132CB0 .4byte _08132D0C .4byte _08132E18 .4byte _08132E7C .4byte _08132F58 .4byte _08132F84 .4byte _08132FA4 .4byte _08132FBC _081329BC: ldr r1, [r7] ldrb r0, [r1] adds r0, 0x1 movs r4, 0 strb r0, [r1] bl sub_8132FEC movs r0, 0 bl sub_8133030 bl sub_8133800 ldr r0, _08132A04 adds r0, 0x64 movs r1, 0x48 strh r1, [r0] ldr r0, [r7] ldr r1, _08132A08 adds r0, r1 movs r1, 0x1 strb r1, [r0] movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade movs r1, 0x80 lsls r1, 19 movs r2, 0x9A lsls r2, 5 adds r0, r2, 0 strh r0, [r1] b _08132FD6 .align 2, 0 _08132A04: .4byte gSprites _08132A08: .4byte 0x000002c3 _08132A0C: ldr r0, _08132A20 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08132A1A b _08132FD6 _08132A1A: ldr r1, [r7] movs r0, 0x4 b _08132FD4 .align 2, 0 _08132A20: .4byte gPaletteFade _08132A24: ldr r1, [r7] ldrb r0, [r1] adds r0, 0x1 b _08132FD4 _08132A2C: movs r0, 0 bl sub_8133030 bl sub_8133800 ldr r2, _08132A54 ldr r0, [r2] ldr r1, _08132A58 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r1, [r2] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, _08132A5C adds r0, 0x64 movs r1, 0x48 strh r1, [r0] b _08132FD6 .align 2, 0 _08132A54: .4byte gUnknown_030007B0 _08132A58: .4byte 0x000002c3 _08132A5C: .4byte gSprites _08132A60: bl sub_81330E8 b _08132A9C _08132A66: movs r0, 0 bl sub_8133140 bl sub_8133800 ldr r2, _08132A8C ldr r0, [r2] ldr r1, _08132A90 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, _08132A94 adds r0, 0x64 movs r1, 0x48 strh r1, [r0] ldr r1, [r2] ldrb r0, [r1] adds r0, 0x1 b _08132FD4 .align 2, 0 _08132A8C: .4byte gUnknown_030007B0 _08132A90: .4byte 0x000002c3 _08132A94: .4byte gSprites _08132A98: bl sub_8133248 _08132A9C: lsls r0, 24 cmp r0, 0 beq _08132AA4 b _08132FD6 _08132AA4: bl sub_813362C b _08132FD6 _08132AAA: bl MenuUpdateWindowText lsls r0, 24 cmp r0, 0 bne _08132AB6 b _08132FD6 _08132AB6: movs r0, 0x15 movs r1, 0x7 movs r2, 0x1 bl DisplayYesNoMenu ldr r0, _08132ACC ldr r1, [r0] ldrb r0, [r1] adds r0, 0x1 b _08132FD4 .align 2, 0 _08132ACC: .4byte gUnknown_030007B0 _08132AD0: bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 bne _08132B3A bl sub_8133CA4 ldr r4, _08132B1C ldr r2, [r4] ldr r1, _08132B20 adds r0, r2, r1 ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08132B24 adds r0, r1 ldrb r1, [r2, 0x1B] lsls r1, 1 adds r2, 0x20 adds r2, r1 ldrh r1, [r2] bl GiveMoveToMon lsls r0, 16 ldr r1, _08132B28 cmp r0, r1 beq _08132B34 ldr r0, _08132B2C bl sub_81328E8 ldr r1, _08132B30 movs r0, 0x1 strh r0, [r1] ldr r1, [r4] movs r0, 0x1F b _08132FD4 .align 2, 0 _08132B1C: .4byte gUnknown_030007B0 _08132B20: .4byte 0x000002c5 _08132B24: .4byte gPlayerParty _08132B28: .4byte 0xffff0000 _08132B2C: .4byte gOtherText_PokeLearnedMove _08132B30: .4byte gUnknown_0202E8CC _08132B34: ldr r1, [r4] movs r0, 0x10 b _08132FD4 _08132B3A: movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08132B48 cmp r1, 0x1 beq _08132B48 b _08132FD6 _08132B48: bl sub_8133CA4 ldr r3, _08132B70 ldr r1, [r3] movs r2, 0xB1 lsls r2, 2 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _08132B60 movs r0, 0x3 strb r0, [r1] _08132B60: ldr r1, [r3] adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x1 beq _08132B6C b _08132FD6 _08132B6C: movs r0, 0x5 b _08132FD4 .align 2, 0 _08132B70: .4byte gUnknown_030007B0 _08132B74: bl MenuUpdateWindowText lsls r0, 24 cmp r0, 0 bne _08132B80 b _08132FD6 _08132B80: movs r0, 0x15 movs r1, 0x7 movs r2, 0x1 bl DisplayYesNoMenu ldr r0, _08132B94 ldr r1, [r0] ldrb r0, [r1] adds r0, 0x1 b _08132FD4 .align 2, 0 _08132B94: .4byte gUnknown_030007B0 _08132B98: bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r4, r0, 24 cmp r4, 0 bne _08132BB4 bl sub_8133CA4 ldr r0, _08132BB0 strh r4, [r0] b _08132FCE .align 2, 0 _08132BB0: .4byte gUnknown_0202E8CC _08132BB4: movs r0, 0x1 negs r0, r0 cmp r4, r0 beq _08132BC2 cmp r4, 0x1 beq _08132BC2 b _08132FD6 _08132BC2: bl sub_8133CA4 ldr r3, _08132BEC ldr r1, [r3] movs r2, 0xB1 lsls r2, 2 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _08132BDA movs r0, 0x3 strb r0, [r1] _08132BDA: ldr r1, [r3] adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x1 beq _08132BE6 b _08132FD6 _08132BE6: movs r0, 0x5 b _08132FD4 .align 2, 0 _08132BEC: .4byte gUnknown_030007B0 _08132BF0: ldr r0, _08132C00 bl sub_81328E8 ldr r0, _08132C04 ldr r1, [r0] ldrb r0, [r1] adds r0, 0x1 b _08132FD4 .align 2, 0 _08132C00: .4byte gOtherText_DeleteOlderMove _08132C04: .4byte gUnknown_030007B0 _08132C08: bl MenuUpdateWindowText lsls r0, 24 cmp r0, 0 bne _08132C14 b _08132FD6 _08132C14: movs r0, 0x15 movs r1, 0x7 movs r2, 0x1 bl DisplayYesNoMenu ldr r0, _08132C28 ldr r1, [r0] movs r0, 0x12 b _08132FD4 .align 2, 0 _08132C28: .4byte gUnknown_030007B0 _08132C2C: bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 bne _08132C54 bl sub_8133CA4 ldr r0, _08132C4C bl sub_81328E8 ldr r0, _08132C50 ldr r1, [r0] movs r0, 0x13 b _08132FD4 .align 2, 0 _08132C4C: .4byte gOtherText_WhichMoveToForget _08132C50: .4byte gUnknown_030007B0 _08132C54: movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08132C62 cmp r1, 0x1 beq _08132C62 b _08132FD6 _08132C62: bl sub_8133CA4 ldr r0, _08132C70 ldr r1, [r0] movs r0, 0x18 b _08132FD4 .align 2, 0 _08132C70: .4byte gUnknown_030007B0 _08132C74: ldr r0, _08132C84 bl sub_81328E8 ldr r0, _08132C88 ldr r1, [r0] ldrb r0, [r1] adds r0, 0x1 b _08132FD4 .align 2, 0 _08132C84: .4byte gOtherText_StopLearningMove _08132C88: .4byte gUnknown_030007B0 _08132C8C: bl MenuUpdateWindowText lsls r0, 24 cmp r0, 0 bne _08132C98 b _08132FD6 _08132C98: ldr r0, _08132CAC ldr r1, [r0] movs r0, 0x1A strb r0, [r1] movs r0, 0x15 movs r1, 0x7 movs r2, 0x1 bl DisplayYesNoMenu b _08132FD6 .align 2, 0 _08132CAC: .4byte gUnknown_030007B0 _08132CB0: bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 bne _08132CCC bl sub_8133CA4 ldr r0, _08132CC8 ldr r1, [r0] movs r0, 0x1B b _08132FD4 .align 2, 0 _08132CC8: .4byte gUnknown_030007B0 _08132CCC: movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08132CDA cmp r1, 0x1 beq _08132CDA b _08132FD6 _08132CDA: bl sub_8133CA4 ldr r1, _08132D08 ldr r2, [r1] movs r3, 0xB1 lsls r3, 2 adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0 bne _08132CF2 movs r0, 0x3 strb r0, [r2] _08132CF2: ldr r2, [r1] adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0x1 bne _08132D00 movs r0, 0x5 strb r0, [r2] _08132D00: ldr r1, [r1] movs r0, 0x10 b _08132FD4 .align 2, 0 _08132D08: .4byte gUnknown_030007B0 _08132D0C: bl MenuUpdateWindowText lsls r0, 24 cmp r0, 0 bne _08132D18 b _08132FD6 _08132D18: ldr r3, _08132D3C ldr r1, [r3] movs r2, 0xB1 lsls r2, 2 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _08132D2C movs r0, 0x3 strb r0, [r1] _08132D2C: ldr r1, [r3] adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x1 beq _08132D38 b _08132FD6 _08132D38: movs r0, 0x5 b _08132FD4 .align 2, 0 _08132D3C: .4byte gUnknown_030007B0 _08132D40: bl MenuUpdateWindowText lsls r0, 24 cmp r0, 0 bne _08132D4C b _08132FD6 _08132D4C: ldr r0, _08132D64 ldr r1, [r0] movs r2, 0 movs r0, 0x14 strb r0, [r1] subs r0, 0x15 str r2, [sp] movs r1, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _08132FD6 .align 2, 0 _08132D64: .4byte gUnknown_030007B0 _08132D68: ldr r0, _08132DA4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08132D76 b _08132FD6 _08132D76: ldr r0, _08132DA8 ldr r5, [r7] ldr r2, _08132DAC adds r1, r5, r2 ldrb r1, [r1] ldr r2, _08132DB0 ldrb r2, [r2] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r3, _08132DB4 ldrb r4, [r5, 0x1B] lsls r4, 1 adds r5, 0x20 adds r5, r4 ldrh r4, [r5] str r4, [sp] bl sub_809D9F0 ldr r1, [r7] movs r0, 0x1C b _08132FD4 .align 2, 0 _08132DA4: .4byte gPaletteFade _08132DA8: .4byte gPlayerParty _08132DAC: .4byte 0x000002c5 _08132DB0: .4byte gPlayerPartyCount _08132DB4: .4byte sub_81327A4 _08132DB8: bl MenuUpdateWindowText lsls r0, 24 cmp r0, 0 bne _08132DC4 b _08132FD6 _08132DC4: b _08132FCE _08132DC6: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade b _08132FD6 _08132DD8: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _08132DF4 ldr r1, [r0] ldrb r0, [r1] adds r0, 0x1 b _08132FD4 .align 2, 0 _08132DF4: .4byte gUnknown_030007B0 _08132DF8: ldr r0, _08132E10 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08132E06 b _08132FD6 _08132E06: ldr r0, _08132E14 bl SetMainCallback2 b _08132FD6 .align 2, 0 _08132E10: .4byte gPaletteFade _08132E14: .4byte c2_exit_to_overworld_2_switch _08132E18: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r5, _08132E74 ldr r1, [r5] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] bl sub_8132FEC bl sub_8133800 ldr r0, [r5] movs r4, 0xB1 lsls r4, 2 adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _08132E4E movs r0, 0x1 bl sub_8133030 _08132E4E: ldr r0, [r5] adds r0, r4 ldrb r0, [r0] cmp r0, 0x1 bne _08132E66 ldr r0, _08132E78 adds r0, 0x64 movs r1, 0x48 strh r1, [r0] movs r0, 0x1 bl sub_8133140 _08132E66: ldr r0, [r5] adds r0, r4 ldrb r0, [r0] movs r1, 0x1 bl sub_8133AEC b _08132FD6 .align 2, 0 _08132E74: .4byte gUnknown_030007B0 _08132E78: .4byte gSprites _08132E7C: ldr r0, _08132E9C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08132E8A b _08132FD6 _08132E8A: ldr r1, [r7] ldr r0, _08132EA0 adds r2, r1, r0 ldrb r0, [r2] cmp r0, 0x4 bne _08132EA4 movs r0, 0x18 b _08132FD4 .align 2, 0 _08132E9C: .4byte gPaletteFade _08132EA0: .4byte 0x000002c6 _08132EA4: ldr r4, _08132F38 adds r0, r1, r4 ldrb r0, [r0] movs r6, 0x64 muls r0, r6 ldr r5, _08132F3C adds r0, r5 ldrb r1, [r2] adds r1, 0xD bl GetMonData lsls r0, 16 lsrs r0, 16 ldr r2, _08132F40 movs r1, 0xD mov r9, r1 mov r1, r9 muls r1, r0 ldr r0, _08132F44 mov r8, r0 add r1, r8 adds r0, r2, 0 bl StringCopy ldr r1, [r7] adds r0, r1, r4 ldrb r0, [r0] muls r0, r6 adds r0, r5 ldr r2, _08132F48 adds r1, r2 ldrb r1, [r1] bl RemoveMonPPBonus ldr r3, [r7] adds r4, r3, r4 ldrb r0, [r4] muls r0, r6 adds r0, r5 ldrb r2, [r3, 0x1B] lsls r2, 1 adds r1, r3, 0 adds r1, 0x20 adds r1, r2 ldrh r1, [r1] ldr r2, _08132F48 adds r3, r2 ldrb r2, [r3] bl SetMonMoveSlot ldr r0, _08132F4C ldr r1, [r7] ldrb r2, [r1, 0x1B] lsls r2, 1 adds r1, 0x20 adds r1, r2 ldrh r1, [r1] mov r2, r9 muls r2, r1 adds r1, r2, 0 add r1, r8 bl StringCopy ldr r0, _08132F50 bl sub_81328E8 ldr r1, [r7] movs r0, 0x1E strb r0, [r1] ldr r1, _08132F54 movs r0, 0x1 strh r0, [r1] b _08132FD6 .align 2, 0 _08132F38: .4byte 0x000002c5 _08132F3C: .4byte gPlayerParty _08132F40: .4byte gStringVar3 _08132F44: .4byte gMoveNames _08132F48: .4byte 0x000002c6 _08132F4C: .4byte gStringVar2 _08132F50: .4byte gOtherText_ForgotMove123 _08132F54: .4byte gUnknown_0202E8CC _08132F58: bl MenuUpdateWindowText lsls r0, 24 cmp r0, 0 beq _08132FD6 ldr r0, _08132F78 bl sub_81328E8 ldr r0, _08132F7C ldr r1, [r0] movs r0, 0x1F strb r0, [r1] ldr r0, _08132F80 bl PlayFanfare b _08132FD6 .align 2, 0 _08132F78: .4byte gOtherText_ForgotOrDidNotLearnMove _08132F7C: .4byte gUnknown_030007B0 _08132F80: .4byte 0x0000016f _08132F84: bl MenuUpdateWindowText lsls r0, 24 cmp r0, 0 beq _08132FD6 ldr r0, _08132F9C bl PlayFanfare ldr r0, _08132FA0 ldr r1, [r0] movs r0, 0x20 b _08132FD4 .align 2, 0 _08132F9C: .4byte 0x0000016f _08132FA0: .4byte gUnknown_030007B0 _08132FA4: bl IsFanfareTaskInactive lsls r0, 24 cmp r0, 0 beq _08132FD6 ldr r0, _08132FB8 ldr r1, [r0] movs r0, 0x21 b _08132FD4 .align 2, 0 _08132FB8: .4byte gUnknown_030007B0 _08132FBC: ldr r0, _08132FE4 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08132FD6 movs r0, 0x5 bl PlaySE _08132FCE: ldr r0, _08132FE8 ldr r1, [r0] movs r0, 0xE _08132FD4: strb r0, [r1] _08132FD6: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08132FE4: .4byte gMain _08132FE8: .4byte gUnknown_030007B0 thumb_func_end sub_8132908 thumb_func_start sub_8132FEC sub_8132FEC: @ 8132FEC push {r4-r6,lr} ldr r0, _08133024 bl BasicInitMenuWindow movs r5, 0 ldr r4, _08133028 adds r6, r4, 0 _08132FFA: lsls r3, r5, 2 ldrb r0, [r4] adds r1, r6, 0x1 adds r1, r3, r1 ldrb r1, [r1] adds r2, r6, 0x2 adds r3, r2 ldrb r2, [r3] ldrb r3, [r4, 0x3] bl MenuDrawTextWindow adds r4, 0x4 adds r5, 0x1 cmp r5, 0x3 bls _08132FFA ldr r0, _0813302C bl BasicInitMenuWindow pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08133024: .4byte gWindowConfig_81E7240 _08133028: .4byte gUnknown_08402CF8 _0813302C: .4byte gWindowConfig_81E6CE4 thumb_func_end sub_8132FEC thumb_func_start sub_8133030 sub_8133030: @ 8133030 push {r4-r7,lr} sub sp, 0x8 lsls r0, 24 lsrs r7, r0, 24 ldr r4, _081330D4 ldr r5, _081330D8 ldr r0, [r5] ldrb r0, [r0, 0x3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r1] ldr r0, [r5] ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] movs r2, 0 ldr r6, _081330DC movs r3, 0x4 _08133070: ldr r0, [r5] adds r0, r2 ldrb r1, [r0, 0x7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] orrs r1, r3 strb r1, [r0] adds r2, 0x1 cmp r2, 0xF ble _08133070 ldr r0, [r6] cmp r0, 0 beq _081330B4 ldr r5, _081330E0 adds r4, r6, 0 _08133096: ldr r1, [r4] adds r0, r5, 0 movs r2, 0x40 movs r3, 0x2 bl sub_8072C74 ldrb r1, [r4, 0x4] ldrb r2, [r4, 0x5] adds r0, r5, 0 bl MenuPrint adds r4, 0x8 ldr r0, [r4] cmp r0, 0 bne _08133096 _081330B4: cmp r7, 0 bne _081330CC ldr r0, _081330E4 movs r1, 0x20 str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] movs r1, 0x18 movs r2, 0x78 movs r3, 0xC0 bl sub_8072AB0 _081330CC: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081330D4: .4byte gSprites _081330D8: .4byte gUnknown_030007B0 _081330DC: .4byte gUnknown_08402D08 _081330E0: .4byte gTileBuffer _081330E4: .4byte gOtherText_TeachWhichMove thumb_func_end sub_8133030 thumb_func_start sub_81330E8 sub_81330E8: @ 81330E8 push {r4,lr} ldr r0, _08133134 ldrh r2, [r0, 0x2E] movs r1, 0x30 ands r1, r2 negs r0, r1 orrs r0, r1 lsrs r4, r0, 31 ldr r0, _08133138 ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _0813310C movs r0, 0xC0 lsls r0, 2 ands r0, r2 cmp r0, 0 beq _0813310C adds r4, 0x1 _0813310C: cmp r4, 0 beq _0813312A movs r0, 0x5 bl PlaySE ldr r2, _0813313C ldr r1, [r2] movs r0, 0x5 strb r0, [r1] ldr r0, [r2] movs r1, 0xB1 lsls r1, 2 adds r0, r1 movs r1, 0x1 strb r1, [r0] _0813312A: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08133134: .4byte gMain _08133138: .4byte gSaveBlock2 _0813313C: .4byte gUnknown_030007B0 thumb_func_end sub_81330E8 thumb_func_start sub_8133140 sub_8133140: @ 8133140 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x8] ldr r4, _08133234 ldr r5, _08133238 ldr r0, [r5] ldrb r0, [r0, 0x3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 adds r1, 0x3E ldrb r2, [r1] movs r3, 0x5 negs r3, r3 adds r0, r3, 0 ands r0, r2 strb r0, [r1] ldr r0, [r5] ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r2, [r0] adds r1, r3, 0 ands r1, r2 strb r1, [r0] movs r6, 0 ldr r7, _0813323C _0813318A: ldr r0, [r5] adds r0, r6 ldrb r0, [r0, 0x7] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 adds r1, 0x3E ldrb r2, [r1] adds r0, r3, 0 ands r0, r2 strb r0, [r1] adds r6, 0x1 cmp r6, 0xF ble _0813318A movs r6, 0 ldr r0, [r7] cmp r0, 0 beq _08133208 mov r9, r7 mov r10, r6 movs r0, 0x24 add r0, r9 mov r8, r0 _081331BA: mov r0, r9 adds r0, 0x20 add r0, r10 ldr r1, [r0] ldr r0, _08133240 movs r2, 0x40 movs r3, 0x2 bl sub_8072C74 mov r0, r8 ldrb r5, [r0] ldrb r4, [r0, 0x1] ldr r0, _08133240 adds r1, r5, 0 adds r2, r4, 0 bl MenuPrint cmp r6, 0 beq _081331F8 adds r1, r4, 0x2 lsls r1, 24 lsrs r1, 24 adds r2, r5, 0x7 lsls r2, 24 lsrs r2, 24 adds r3, r4, 0x3 lsls r3, 24 lsrs r3, 24 adds r0, r5, 0 bl MenuZeroFillWindowRect _081331F8: movs r0, 0x8 add r10, r0 add r8, r0 adds r7, 0x8 adds r6, 0x1 ldr r0, [r7] cmp r0, 0 bne _081331BA _08133208: ldr r0, [sp, 0x8] cmp r0, 0 bne _08133222 ldr r0, _08133244 movs r1, 0x20 str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] movs r1, 0x18 movs r2, 0x78 movs r3, 0xC0 bl sub_8072AB0 _08133222: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08133234: .4byte gSprites _08133238: .4byte gUnknown_030007B0 _0813323C: .4byte gUnknown_08402D08 _08133240: .4byte gTileBuffer _08133244: .4byte gOtherText_TeachWhichMove thumb_func_end sub_8133140 thumb_func_start sub_8133248 sub_8133248: @ 8133248 push {r4,lr} ldr r0, _08133294 ldrh r2, [r0, 0x2E] movs r1, 0x30 ands r1, r2 negs r0, r1 orrs r0, r1 lsrs r4, r0, 31 ldr r0, _08133298 ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _0813326C movs r0, 0xC0 lsls r0, 2 ands r0, r2 cmp r0, 0 beq _0813326C adds r4, 0x1 _0813326C: cmp r4, 0 beq _0813328A movs r0, 0x5 bl PlaySE ldr r2, _0813329C ldr r1, [r2] movs r3, 0 movs r0, 0x3 strb r0, [r1] ldr r0, [r2] movs r1, 0xB1 lsls r1, 2 adds r0, r1 strb r3, [r0] _0813328A: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08133294: .4byte gMain _08133298: .4byte gSaveBlock2 _0813329C: .4byte gUnknown_030007B0 thumb_func_end sub_8133248 thumb_func_start sub_81332A0 sub_81332A0: @ 81332A0 push {r4,lr} ldr r2, _081332F8 ldr r0, [r2] movs r1, 0 strb r1, [r0] ldr r0, [r2] strb r1, [r0, 0x2] ldr r0, [r2] strb r1, [r0, 0x19] ldr r0, [r2] strb r1, [r0, 0x18] ldr r0, [r2] strb r1, [r0, 0x1C] ldr r0, [r2] strb r1, [r0, 0x1A] ldr r0, [r2] strb r1, [r0, 0x1B] ldr r0, [r2] strb r1, [r0, 0x1D] ldr r0, [r2] strb r1, [r0, 0x1E] ldr r0, [r2] ldr r3, _081332FC adds r0, r3 strb r1, [r0] ldr r0, [r2] adds r3, 0x1 adds r0, r3 strb r1, [r0] movs r3, 0 adds r4, r2, 0 movs r2, 0 _081332E0: ldr r0, [r4] lsls r1, r3, 1 adds r0, 0x20 adds r0, r1 strh r2, [r0] adds r3, 0x1 cmp r3, 0x13 ble _081332E0 pop {r4} pop {r0} bx r0 .align 2, 0 _081332F8: .4byte gUnknown_030007B0 _081332FC: .4byte 0x000002c3 thumb_func_end sub_81332A0 thumb_func_start sub_8133300 sub_8133300: @ 8133300 push {r4,lr} adds r4, r0, 0 movs r1, 0x30 ldrsh r0, [r4, r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 1 movs r0, 0xFF ands r1, r0 movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0x1 beq _08133324 cmp r0, 0x1 ble _0813334A cmp r0, 0x2 beq _08133338 b _0813334A _08133324: adds r0, r1, 0 movs r1, 0x3 bl Sin ldrh r1, [r4, 0x32] adds r2, r0, 0 muls r2, r1 adds r0, r2, 0 strh r0, [r4, 0x24] b _0813334A _08133338: adds r0, r1, 0 movs r1, 0x1 bl Sin ldrh r1, [r4, 0x32] adds r2, r0, 0 muls r2, r1 adds r0, r2, 0 strh r0, [r4, 0x26] _0813334A: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] pop {r4} pop {r0} bx r0 thumb_func_end sub_8133300 thumb_func_start sub_8133358 sub_8133358: @ 8133358 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 ldr r6, _0813353C adds r0, r6, 0 movs r1, 0x8 movs r2, 0x10 movs r3, 0 bl CreateSprite ldr r4, _08133540 ldr r1, [r4] strb r0, [r1, 0x3] ldr r5, _08133544 ldr r2, [r4] ldrb r1, [r2, 0x3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x1 mov r8, r1 mov r1, r8 strh r1, [r0, 0x2E] ldrb r1, [r2, 0x3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _08133548 strh r1, [r0, 0x32] adds r0, r6, 0 movs r1, 0x48 movs r2, 0x10 movs r3, 0 bl CreateSprite ldr r1, [r4] strb r0, [r1, 0x4] ldr r0, [r4] ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x1 bl StartSpriteAnim ldr r2, [r4] ldrb r1, [r2, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r8 strh r1, [r0, 0x2E] ldrb r1, [r2, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r8 strh r1, [r0, 0x32] ldr r0, _0813354C mov r9, r0 movs r1, 0xA0 movs r2, 0x4 movs r3, 0 bl CreateSprite ldr r1, [r4] strb r0, [r1, 0x5] ldr r0, [r4] ldrb r1, [r0, 0x5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x1 bl StartSpriteAnim ldr r2, [r4] ldrb r1, [r2, 0x5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r6, 0x2 strh r6, [r0, 0x2E] ldrb r1, [r2, 0x5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x1 negs r1, r1 strh r1, [r0, 0x32] mov r0, r9 movs r1, 0xA0 movs r2, 0x3C movs r3, 0 bl CreateSprite ldr r1, [r4] strb r0, [r1, 0x6] ldr r2, [r4] ldrb r1, [r2, 0x6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r6, [r0, 0x2E] ldrb r1, [r2, 0x6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r8 strh r1, [r0, 0x32] movs r5, 0 ldr r6, _08133550 _0813344E: adds r2, r5, 0 cmp r5, 0 bge _08133456 adds r2, r5, 0x3 _08133456: asrs r2, 2 lsls r1, r2, 2 subs r1, r5, r1 lsls r1, 19 movs r0, 0xE0 lsls r0, 13 adds r1, r0 asrs r1, 16 lsls r2, 19 movs r0, 0xD0 lsls r0, 14 adds r2, r0 asrs r2, 16 adds r0, r6, 0 movs r3, 0 bl CreateSprite ldr r1, [r4] adds r2, r5, 0x4 adds r1, 0x3 adds r1, r2 strb r0, [r1] ldr r0, [r4] adds r0, 0x3 adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08133544 adds r0, r1 movs r1, 0x2 bl StartSpriteAnim adds r5, 0x1 cmp r5, 0x7 ble _0813344E movs r5, 0 ldr r7, _08133550 ldr r6, _08133540 _081334A6: adds r2, r5, 0 cmp r5, 0 bge _081334AE adds r2, r5, 0x3 _081334AE: asrs r2, 2 lsls r1, r2, 2 subs r1, r5, r1 lsls r1, 19 movs r0, 0xE0 lsls r0, 13 adds r1, r0 asrs r1, 16 lsls r2, 19 movs r0, 0xB8 lsls r0, 15 adds r2, r0 asrs r2, 16 adds r0, r7, 0 movs r3, 0 bl CreateSprite ldr r1, [r6] adds r2, r5, 0 adds r2, 0xC adds r1, 0x3 adds r1, r2 strb r0, [r1] ldr r0, [r6] adds r0, 0x3 adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _08133544 adds r0, r4 movs r1, 0x2 bl StartSpriteAnim adds r5, 0x1 cmp r5, 0x7 ble _081334A6 movs r5, 0 ldr r3, _08133540 movs r2, 0x4 _08133500: ldr r0, [r3] adds r0, 0x3 adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] adds r5, 0x1 cmp r5, 0x13 ble _08133500 ldr r1, _08133548 ldr r3, _08133554 movs r0, 0x12 str r0, [sp] movs r0, 0x10 movs r2, 0xC bl sub_814AC58 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813353C: .4byte gSpriteTemplate_8402D90 _08133540: .4byte gUnknown_030007B0 _08133544: .4byte gSprites _08133548: .4byte 0x0000ffff _0813354C: .4byte gSpriteTemplate_8402DC0 _08133550: .4byte gSpriteTemplate_8402E08 _08133554: .4byte 0x00002d9f thumb_func_end sub_8133358 thumb_func_start sub_8133558 sub_8133558: @ 8133558 push {r4-r6,lr} sub sp, 0xC ldr r5, _081335F4 ldr r1, [r5] ldr r2, _081335F8 adds r0, r1, r2 ldrb r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, _081335FC adds r0, r2 adds r1, 0x20 bl sub_80403CC ldr r1, [r5] strb r0, [r1, 0x1A] movs r4, 0 ldr r0, [r5] ldrb r0, [r0, 0x1A] cmp r4, r0 bge _081335AA adds r6, r5, 0 movs r5, 0x52 _08133586: lsls r2, r4, 1 ldr r1, [r6] adds r0, r1, r5 adds r1, 0x20 adds r1, r2 ldrh r2, [r1] movs r1, 0xD muls r1, r2 ldr r2, _08133600 adds r1, r2 bl StringCopy adds r5, 0x19 adds r4, 0x1 ldr r0, [r6] ldrb r0, [r0, 0x1A] cmp r4, r0 blt _08133586 _081335AA: ldr r4, _081335F4 ldr r0, [r4] ldr r1, _081335F8 adds r0, r1 ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _081335FC adds r0, r1 movs r1, 0x2 mov r2, sp bl GetMonData ldr r0, _08133604 mov r1, sp bl StringCopy10 ldr r0, [r4] ldrb r2, [r0, 0x1A] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r1, r2 adds r1, 0x52 adds r0, r1 ldr r1, _08133608 bl StringCopy ldr r1, [r4] ldrb r0, [r1, 0x1A] adds r0, 0x1 strb r0, [r1, 0x1A] add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081335F4: .4byte gUnknown_030007B0 _081335F8: .4byte 0x000002c5 _081335FC: .4byte gPlayerParty _08133600: .4byte gMoveNames _08133604: .4byte gStringVar1 _08133608: .4byte gUnknownText_Exit thumb_func_end sub_8133558 thumb_func_start sub_813360C sub_813360C: @ 813360C lsls r0, 24 ldr r3, _08133628 ldr r2, [r3] ldrb r1, [r2, 0x18] strb r1, [r2, 0x1C] ldr r1, [r3] lsrs r0, 24 ldrb r2, [r1, 0x18] adds r0, r2 strb r0, [r1, 0x18] ldr r1, [r3] movs r0, 0x1 strb r0, [r1, 0x1D] bx lr .align 2, 0 _08133628: .4byte gUnknown_030007B0 thumb_func_end sub_813360C thumb_func_start sub_813362C sub_813362C: @ 813362C push {r4,r5,lr} ldr r2, _08133670 ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08133688 ldr r4, _08133674 ldr r0, [r4] ldrb r0, [r0, 0x1B] cmp r0, 0 bne _08133646 b _08133796 _08133646: movs r0, 0x5 bl PlaySE ldr r1, [r4] ldrb r0, [r1, 0x1B] subs r0, 0x1 strb r0, [r1, 0x1B] ldr r0, [r4] ldr r1, _08133678 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r1, [r4] ldrb r0, [r1, 0x18] cmp r0, 0 beq _0813367C movs r0, 0x1 negs r0, r0 bl sub_813360C b _08133796 .align 2, 0 _08133670: .4byte gMain _08133674: .4byte gUnknown_030007B0 _08133678: .4byte 0x000002c3 _0813367C: ldrb r0, [r1, 0x19] cmp r0, 0 bne _08133684 b _08133796 _08133684: subs r0, 0x1 b _081336DC _08133688: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081336E8 ldr r4, _081336C8 ldr r0, [r4] ldrb r1, [r0, 0x1B] ldrb r0, [r0, 0x1A] subs r0, 0x1 cmp r1, r0 blt _081336A0 b _08133796 _081336A0: movs r0, 0x5 bl PlaySE ldr r1, [r4] ldrb r0, [r1, 0x1B] adds r0, 0x1 strb r0, [r1, 0x1B] ldr r0, [r4] ldr r3, _081336CC adds r0, r3 movs r1, 0x1 strb r1, [r0] ldr r1, [r4] ldrb r0, [r1, 0x18] cmp r0, 0x2 beq _081336D0 movs r0, 0x1 bl sub_813360C b _08133796 .align 2, 0 _081336C8: .4byte gUnknown_030007B0 _081336CC: .4byte 0x000002c3 _081336D0: ldrb r2, [r1, 0x19] ldrb r0, [r1, 0x1A] subs r0, 0x3 cmp r2, r0 beq _08133796 adds r0, r2, 0x1 _081336DC: strb r0, [r1, 0x19] ldr r1, [r4] ldrb r0, [r1, 0x1E] adds r0, 0x1 strb r0, [r1, 0x1E] b _08133796 _081336E8: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0813376C movs r0, 0x5 bl PlaySE ldr r5, _08133738 ldr r2, [r5] ldrb r1, [r2, 0x1B] ldrb r0, [r2, 0x1A] subs r0, 0x1 cmp r1, r0 beq _08133748 movs r0, 0x8 strb r0, [r2] ldr r0, _0813373C ldr r1, [r5] ldrb r3, [r1, 0x1B] lsls r2, r3, 1 adds r2, r3 lsls r2, 3 adds r2, r3 adds r2, 0x52 adds r1, r2 bl StringCopy ldr r4, _08133740 ldr r1, _08133744 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x3 movs r2, 0xF bl MenuPrintMessage b _08133796 .align 2, 0 _08133738: .4byte gUnknown_030007B0 _0813373C: .4byte gStringVar2 _08133740: .4byte gStringVar4 _08133744: .4byte gOtherText_TeachSpecificMove _08133748: ldr r4, _08133764 ldr r1, _08133768 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x3 movs r2, 0xF bl MenuPrintMessage ldr r1, [r5] movs r0, 0xC strb r0, [r1] b _08133796 .align 2, 0 _08133764: .4byte gStringVar4 _08133768: .4byte gOtherText_GiveUpTeachingMove _0813376C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08133796 movs r0, 0x5 bl PlaySE ldr r0, _081337D4 ldr r1, [r0] movs r0, 0xC strb r0, [r1] ldr r4, _081337D8 ldr r1, _081337DC adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x3 movs r2, 0xF bl MenuPrintMessage _08133796: ldr r0, _081337D4 ldr r4, [r0] ldrb r0, [r4, 0x1A] cmp r0, 0x3 bls _081337F8 ldr r3, _081337E0 adds r5, r3, 0 adds r5, 0xC6 ldrb r0, [r5] movs r1, 0x5 negs r1, r1 adds r2, r1, 0 ands r2, r0 strb r2, [r5] movs r0, 0x85 lsls r0, 1 adds r0, r3 mov r12, r0 ldrb r0, [r0] adds r3, r1, 0 ands r3, r0 mov r1, r12 strb r3, [r1] ldrb r0, [r4, 0x19] cmp r0, 0 bne _081337E4 movs r1, 0x4 adds r0, r2, 0 orrs r0, r1 strb r0, [r5] b _081337F8 .align 2, 0 _081337D4: .4byte gUnknown_030007B0 _081337D8: .4byte gStringVar4 _081337DC: .4byte gOtherText_GiveUpTeachingMove _081337E0: .4byte gSprites _081337E4: ldrb r1, [r4, 0x19] ldrb r0, [r4, 0x1A] subs r0, 0x3 cmp r1, r0 bne _081337F8 movs r1, 0x4 adds r0, r3, 0 orrs r0, r1 mov r3, r12 strb r0, [r3] _081337F8: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_813362C thumb_func_start sub_8133800 sub_8133800: @ 8133800 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r1, _08133834 ldr r0, [r1] ldrb r6, [r0, 0x19] ldr r3, _08133838 mov r10, r1 ldr r0, _0813383C mov r9, r0 movs r1, 0x2 mov r8, r1 _0813381C: mov r4, r10 ldr r2, [r4] ldrb r0, [r2, 0x1A] cmp r6, r0 bcc _08133844 adds r0, r3, 0 ldr r1, _08133840 movs r2, 0x90 movs r3, 0 bl sub_8072C74 b _081338FA .align 2, 0 _08133834: .4byte gUnknown_030007B0 _08133838: .4byte gTileBuffer _0813383C: .4byte gBattleMoves _08133840: .4byte gEmptyString_81E72B0 _08133844: ldrb r0, [r2, 0x1A] subs r0, 0x1 cmp r6, r0 bne _08133860 adds r0, r3, 0 ldr r1, _0813385C movs r2, 0x90 movs r3, 0 bl sub_8072C74 b _081338FA .align 2, 0 _0813385C: .4byte gUnknownText_Exit _08133860: lsls r1, r6, 1 adds r0, r2, 0 adds r0, 0x20 adds r0, r1 ldrh r5, [r0] movs r4, 0xB1 lsls r4, 2 adds r0, r2, r4 ldrb r0, [r0] adds r7, r1, 0 cmp r0, 0 beq _081338A4 ldr r1, _0813389C lsls r0, r5, 3 adds r0, r1 ldrb r0, [r0, 0x1] lsls r0, 29 lsrs r0, 27 ldr r1, _081338A0 adds r0, r1 ldr r1, [r0] adds r0, r3, 0 movs r2, 0x27 movs r3, 0 bl sub_8072C74 adds r3, r0, 0 lsls r4, r5, 1 b _081338C2 .align 2, 0 _0813389C: .4byte gContestMoves _081338A0: .4byte gUnknown_083CAF70 _081338A4: lsls r4, r5, 1 adds r0, r4, r5 lsls r0, 2 add r0, r9 ldrb r0, [r0, 0x2] lsls r1, r0, 3 subs r1, r0 ldr r0, _08133938 adds r1, r0 adds r0, r3, 0 movs r2, 0x27 movs r3, 0 bl sub_8072C74 adds r3, r0, 0 _081338C2: adds r0, r7, r6 lsls r0, 3 adds r0, r6 adds r0, 0x52 mov r2, r10 ldr r1, [r2] adds r1, r0 adds r0, r3, 0 movs r2, 0x72 movs r3, 0 bl sub_8072C74 adds r3, r0, 0 movs r0, 0xCA strb r0, [r3] strb r0, [r3, 0x1] movs r0, 0xBA strb r0, [r3, 0x2] adds r3, 0x3 adds r0, r4, r5 lsls r0, 2 add r0, r9 ldrb r1, [r0, 0x4] adds r0, r3, 0 movs r2, 0x90 movs r3, 0 bl sub_8072C14 _081338FA: adds r3, r0, 0 movs r0, 0xFE strb r0, [r3] adds r3, 0x1 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 movs r4, 0x1 negs r4, r4 add r8, r4 mov r0, r8 cmp r0, 0 blt _08133916 b _0813381C _08133916: movs r0, 0xFF strb r0, [r3] ldr r0, _0813393C movs r1, 0xB movs r2, 0x1 bl MenuPrint movs r0, 0 bl sub_813360C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08133938: .4byte gTypeNames _0813393C: .4byte gTileBuffer thumb_func_end sub_8133800 thumb_func_start sub_8133940 sub_8133940: @ 8133940 push {r4-r7,lr} sub sp, 0x34 adds r4, r1, 0 lsls r0, 16 lsrs r5, r0, 16 ldr r1, _08133968 mov r0, sp bl StringCopy ldrb r0, [r4, 0x2] subs r0, 0x1 cmp r0, 0x6 bls _0813395C b _08133AE2 _0813395C: lsls r0, 2 ldr r1, _0813396C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08133968: .4byte gExpandedPlaceholder_Empty _0813396C: .4byte _08133970 .align 2, 0 _08133970: .4byte _08133AE2 .4byte _0813398C .4byte _08133AE2 .4byte _081339A4 .4byte _08133AE2 .4byte _081339E4 .4byte _08133A64 _0813398C: ldr r0, _081339A0 lsls r1, r5, 1 adds r1, r5 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] cmp r0, 0x1 bls _081339B4 ldrb r1, [r1, 0x1] b _081339CE .align 2, 0 _081339A0: .4byte gBattleMoves _081339A4: ldr r0, _081339C4 lsls r1, r5, 1 adds r1, r5 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x3] cmp r0, 0 bne _081339CC _081339B4: ldr r1, _081339C8 mov r0, sp movs r2, 0x20 movs r3, 0x2 bl sub_8072C74 b _081339D8 .align 2, 0 _081339C4: .4byte gBattleMoves _081339C8: .4byte gOtherText_ThreeDashes2 _081339CC: ldrb r1, [r1, 0x3] _081339CE: mov r0, sp movs r2, 0x20 movs r3, 0x2 bl sub_8072C14 _081339D8: ldrb r1, [r4] ldrb r2, [r4, 0x1] mov r0, sp bl MenuPrint b _08133AE2 _081339E4: ldrb r2, [r4] ldrb r1, [r4, 0x1] adds r3, r1, 0x1 lsls r3, 24 lsrs r3, 24 adds r0, r2, 0 bl MenuZeroFillWindowRect ldr r2, _08133A34 ldr r1, _08133A38 lsls r0, r5, 3 adds r0, r1 ldrb r0, [r0] lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] movs r1, 0xA bl __udivsi3 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xFF bne _08133A14 movs r5, 0 _08133A14: movs r4, 0 ldr r7, _08133A3C ldr r6, _08133A40 _08133A1A: cmp r4, r5 bcs _08133A44 ldr r0, [r7] adds r0, r4 ldrb r1, [r0, 0x7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x1 bl StartSpriteAnim b _08133A58 .align 2, 0 _08133A34: .4byte gContestEffects _08133A38: .4byte gContestMoves _08133A3C: .4byte gUnknown_030007B0 _08133A40: .4byte gSprites _08133A44: ldr r0, [r7] adds r0, r4 ldrb r1, [r0, 0x7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0 bl StartSpriteAnim _08133A58: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bls _08133A1A b _08133AE2 _08133A64: ldrb r2, [r4] ldrb r1, [r4, 0x1] adds r3, r1, 0x1 lsls r3, 24 lsrs r3, 24 adds r0, r2, 0 bl MenuZeroFillWindowRect ldr r2, _08133AB4 ldr r1, _08133AB8 lsls r0, r5, 3 adds r0, r1 ldrb r0, [r0] lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x2] movs r1, 0xA bl __udivsi3 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xFF bne _08133A94 movs r5, 0 _08133A94: movs r4, 0 ldr r7, _08133ABC ldr r6, _08133AC0 _08133A9A: cmp r4, r5 bcs _08133AC4 ldr r0, [r7] adds r0, r4 ldrb r1, [r0, 0xF] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x3 bl StartSpriteAnim b _08133AD8 .align 2, 0 _08133AB4: .4byte gContestEffects _08133AB8: .4byte gContestMoves _08133ABC: .4byte gUnknown_030007B0 _08133AC0: .4byte gSprites _08133AC4: ldr r0, [r7] adds r0, r4 ldrb r1, [r0, 0xF] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x2 bl StartSpriteAnim _08133AD8: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bls _08133A9A _08133AE2: add sp, 0x34 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8133940 thumb_func_start sub_8133AEC sub_8133AEC: @ 8133AEC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 lsrs r3, r0, 24 ldr r6, _08133B88 ldr r2, [r6] ldrb r1, [r2, 0x1B] ldrb r0, [r2, 0x1A] subs r0, 0x1 cmp r1, r0 bne _08133B08 b _08133C04 _08133B08: lsls r1, 1 adds r0, r2, 0 adds r0, 0x20 adds r0, r1 ldrh r5, [r0] cmp r3, 0 beq _08133BA0 movs r4, 0 lsls r0, r5, 3 mov r8, r0 ldr r7, _08133B8C adds r3, r6, 0 movs r6, 0x5 negs r6, r6 _08133B24: ldr r0, [r3] adds r0, r4 ldrb r0, [r0, 0x7] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 adds r1, 0x3E ldrb r2, [r1] adds r0, r6, 0 ands r0, r2 strb r0, [r1] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0xF bls _08133B24 movs r4, 0 _08133B48: ldr r0, _08133B90 adds r0, r4, r0 ldrb r0, [r0] lsls r1, r0, 1 adds r1, r0 ldr r0, _08133B94 adds r1, r0 adds r0, r5, 0 bl sub_8133940 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x2 bls _08133B48 ldr r1, _08133B98 ldr r0, _08133B9C add r0, r8 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x20 str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] movs r1, 0x58 movs r2, 0x48 movs r3, 0x90 bl sub_8072AB0 b _08133C92 .align 2, 0 _08133B88: .4byte gUnknown_030007B0 _08133B8C: .4byte gSprites _08133B90: .4byte gUnknown_08402E3D _08133B94: .4byte gUnknown_08402E24 _08133B98: .4byte gUnknown_083CADD4 _08133B9C: .4byte gContestMoves _08133BA0: movs r4, 0 subs r6, r5, 0x1 _08133BA4: ldr r0, _08133BF8 adds r0, r4, r0 ldrb r0, [r0] lsls r1, r0, 1 adds r1, r0 ldr r0, _08133BFC adds r1, r0 adds r0, r5, 0 bl sub_8133940 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x3 bls _08133BA4 ldr r1, _08133C00 lsls r0, r6, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x1 str r1, [sp] movs r1, 0x58 movs r2, 0x48 movs r3, 0x90 bl sub_8072A18 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08133C92 lsls r1, r0, 25 movs r0, 0x90 lsls r0, 20 adds r1, r0 lsrs r1, 24 movs r0, 0xB movs r2, 0x1C movs r3, 0xC bl MenuFillWindowRectWithBlankTile b _08133C92 .align 2, 0 _08133BF8: .4byte gUnknown_08402E39 _08133BFC: .4byte gUnknown_08402E24 _08133C00: .4byte gMoveDescriptions _08133C04: cmp r3, 0 beq _08133C5C ldr r4, _08133C54 ldrb r2, [r4, 0xF] ldrb r1, [r4, 0x10] adds r3, r1, 0x1 lsls r3, 24 lsrs r3, 24 adds r0, r2, 0 bl MenuZeroFillWindowRect ldrb r2, [r4, 0x12] ldrb r1, [r4, 0x13] adds r3, r1, 0x1 lsls r3, 24 lsrs r3, 24 adds r0, r2, 0 bl MenuZeroFillWindowRect movs r4, 0 ldr r5, _08133C58 adds r3, r6, 0 movs r2, 0x4 _08133C32: ldr r0, [r3] adds r0, r4 ldrb r1, [r0, 0x7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0xF bls _08133C32 b _08133C86 .align 2, 0 _08133C54: .4byte gUnknown_08402E24 _08133C58: .4byte gSprites _08133C5C: ldr r4, _08133CA0 ldrb r0, [r4, 0x3] ldrb r1, [r4, 0x4] adds r2, r0, 0x3 lsls r2, 24 lsrs r2, 24 adds r3, r1, 0x1 lsls r3, 24 lsrs r3, 24 bl MenuZeroFillWindowRect ldrb r0, [r4, 0x9] ldrb r1, [r4, 0xA] adds r2, r0, 0x3 lsls r2, 24 lsrs r2, 24 adds r3, r1, 0x1 lsls r3, 24 lsrs r3, 24 bl MenuZeroFillWindowRect _08133C86: movs r0, 0xB movs r1, 0x9 movs r2, 0x1C movs r3, 0xC bl MenuZeroFillWindowRect _08133C92: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08133CA0: .4byte gUnknown_08402E24 thumb_func_end sub_8133AEC thumb_func_start sub_8133CA4 sub_8133CA4: @ 8133CA4 push {lr} movs r0, 0x15 movs r1, 0x7 movs r2, 0x1B movs r3, 0xC bl MenuZeroFillWindowRect ldr r0, _08133CC8 ldr r0, [r0] movs r1, 0xB1 lsls r1, 2 adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_8133AEC pop {r0} bx r0 .align 2, 0 _08133CC8: .4byte gUnknown_030007B0 thumb_func_end sub_8133CA4 thumb_func_start sub_8133CCC sub_8133CCC: @ 8133CCC push {r4-r6,lr} mov r6, r8 push {r6} ldr r0, _08133D14 mov r8, r0 ldrb r0, [r0] movs r6, 0x64 muls r0, r6 ldr r4, _08133D18 adds r0, r4 movs r1, 0x3A bl GetMonData adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 mov r1, r8 ldrb r0, [r1] muls r0, r6 adds r0, r4 movs r1, 0x39 bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x5 bl __udivsi3 lsls r0, 16 lsrs r0, 16 cmp r4, r0 bcs _08133D1C movs r0, 0 b _08133D1E .align 2, 0 _08133D14: .4byte gUnknown_03005CE0 _08133D18: .4byte gPlayerParty _08133D1C: movs r0, 0x1 _08133D1E: pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8133CCC thumb_func_start unref_sub_8133D28 unref_sub_8133D28: @ 8133D28 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _08133D44 ldr r2, _08133D48 str r2, [r1, 0xC] ldr r2, _08133D4C adds r1, r2 movs r2, 0x3 strh r2, [r1] bl sub_808A004 pop {r0} bx r0 .align 2, 0 _08133D44: .4byte 0x02001000 _08133D48: .4byte sub_8133D50 _08133D4C: .4byte 0x0001a272 thumb_func_end unref_sub_8133D28 thumb_func_start sub_8133D50 sub_8133D50: @ 8133D50 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r7, r0, 24 ldr r0, _08133DA0 mov r9, r0 ldr r1, _08133DA4 mov r10, r1 ldrb r1, [r1, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r9 ldrh r0, [r0, 0x2E] lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r2, r10 ldrb r1, [r2, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 mov r2, r9 adds r1, r0, r2 ldrh r0, [r1, 0x2E] lsls r0, 24 lsrs r6, r0, 24 mov r0, r8 cmp r0, 0x5 bhi _08133D96 cmp r6, 0x5 bls _08133DA8 _08133D96: adds r0, r7, 0 bl sub_806CD44 b _08133E4E .align 2, 0 _08133DA0: .4byte gSprites _08133DA4: .4byte 0x02001000 _08133DA8: movs r5, 0xD8 lsls r5, 9 add r5, r10 movs r2, 0x2E ldrsh r0, [r1, r2] movs r1, 0x64 muls r0, r1 ldr r2, _08133DE4 adds r0, r2 str r0, [r5] movs r1, 0x39 bl GetMonData lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _08133DDA cmp r8, r6 beq _08133DDA ldr r0, [r5] movs r1, 0x3A bl GetMonData cmp r0, r4 bne _08133DE8 _08133DDA: adds r0, r7, 0 bl sub_8133EB8 b _08133E4E .align 2, 0 _08133DE4: .4byte gPlayerParty _08133DE8: movs r0, 0x1 bl PlaySE mov r0, r10 ldrb r1, [r0, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r9 ldrh r0, [r0, 0x2E] movs r1, 0 strb r0, [r5, 0x5] ldrb r0, [r5, 0x5] movs r2, 0x64 muls r0, r2 ldr r2, _08133E5C adds r0, r2 str r0, [r5] strh r1, [r5, 0x6] ldr r1, _08133E60 str r1, [r5, 0xC] ldr r1, _08133E64 str r1, [r5, 0x10] movs r1, 0x3A bl GetMonData ldr r1, _08133E68 lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r1 strh r0, [r4, 0x1C] ldr r0, [r5] movs r1, 0x39 bl GetMonData strh r0, [r4, 0x1E] movs r1, 0x1C ldrsh r0, [r4, r1] movs r1, 0x5 bl __divsi3 strh r0, [r4, 0x20] bl sub_806D5A4 ldr r0, _08133E6C str r0, [r4] ldrh r1, [r4, 0x1E] ldr r0, _08133E70 add r0, r10 strh r1, [r0] _08133E4E: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08133E5C: .4byte gPlayerParty _08133E60: .4byte 0xffff8000 _08133E64: .4byte sub_8133EF8 _08133E68: .4byte gTasks _08133E6C: .4byte sub_806FA18 _08133E70: .4byte 0x0001a282 thumb_func_end sub_8133D50 thumb_func_start sub_8133E74 sub_8133E74: @ 8133E74 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08133EAC ldrb r0, [r0] cmp r0, 0 bne _08133EA4 movs r0, 0x3 movs r1, 0xE movs r2, 0x1A movs r3, 0x13 bl MenuZeroFillWindowRect movs r0, 0x3 movs r1, 0 bl sub_806D538 ldr r0, _08133EB0 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08133EB4 str r0, [r1] _08133EA4: pop {r4} pop {r0} bx r0 .align 2, 0 _08133EAC: .4byte gUnknown_0202E8F6 _08133EB0: .4byte gTasks _08133EB4: .4byte sub_806CB74 thumb_func_end sub_8133E74 thumb_func_start sub_8133EB8 sub_8133EB8: @ 8133EB8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _08133EE8 movs r0, 0 strb r0, [r1] bl sub_806D5A4 ldr r0, _08133EEC movs r1, 0x1 bl sub_806E834 ldr r1, _08133EF0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08133EF4 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08133EE8: .4byte gUnknown_0202E8F4 _08133EEC: .4byte gOtherText_CantUseOnPoke _08133EF0: .4byte gTasks _08133EF4: .4byte sub_8133E74 thumb_func_end sub_8133EB8 thumb_func_start sub_8133EF8 sub_8133EF8: @ 8133EF8 push {r4,lr} bl sub_806CCE4 ldr r4, _08133F3C ldr r0, _08133F40 adds r1, r4, r0 movs r0, 0x2 strb r0, [r1] ldr r0, _08133F44 adds r4, r0 ldrb r1, [r4, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08133F48 adds r0, r1 bl DestroySprite movs r0, 0x3 movs r1, 0xE movs r2, 0x1A movs r3, 0x13 bl MenuZeroFillWindowRect movs r0, 0 movs r1, 0 bl sub_806D538 ldrb r0, [r4] bl SwitchTaskToFollowupFunc pop {r4} pop {r0} bx r0 .align 2, 0 _08133F3C: .4byte 0x0201b000 _08133F40: .4byte 0x00000261 _08133F44: .4byte 0xfffe6000 _08133F48: .4byte gSprites thumb_func_end sub_8133EF8 thumb_func_start sub_8133F4C sub_8133F4C: @ 8133F4C push {r4,r5,lr} lsls r0, 24 movs r3, 0 ldr r1, _08133F7C lsrs r2, r0, 21 adds r0, r2, r1 ldrb r0, [r0, 0x4] cmp r3, r0 bcs _08133F76 adds r5, r1, 0 movs r4, 0 _08133F62: adds r0, r2, r5 ldr r1, [r0] adds r1, r3 strb r4, [r1] adds r1, r3, 0x1 lsls r1, 24 lsrs r3, r1, 24 ldrb r0, [r0, 0x4] cmp r3, r0 bcc _08133F62 _08133F76: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08133F7C: .4byte gUnknown_08402E40 thumb_func_end sub_8133F4C thumb_func_start sub_8133F80 sub_8133F80: @ 8133F80 push {r4,lr} movs r4, 0 _08133F84: adds r0, r4, 0 bl sub_8133F4C adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bls _08133F84 pop {r4} pop {r0} bx r0 thumb_func_end sub_8133F80 thumb_func_start sub_8133F9C sub_8133F9C: @ 8133F9C push {r4,lr} lsls r0, 24 movs r2, 0 ldr r1, _08133FC8 lsrs r0, 21 adds r0, r1 movs r1, 0x4 ldrsb r1, [r0, r1] cmp r2, r1 bge _08133FD8 adds r4, r0, 0 adds r3, r1, 0 _08133FB4: lsls r0, r2, 24 asrs r1, r0, 24 ldr r0, [r4] adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _08133FCC adds r0, r1, 0 b _08133FDC .align 2, 0 _08133FC8: .4byte gUnknown_08402E40 _08133FCC: adds r0, r1, 0x1 lsls r0, 24 lsrs r2, r0, 24 asrs r0, 24 cmp r0, r3 blt _08133FB4 _08133FD8: movs r0, 0x1 negs r0, r0 _08133FDC: pop {r4} pop {r1} bx r1 thumb_func_end sub_8133F9C thumb_func_start sub_8133FE4 sub_8133FE4: @ 8133FE4 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r1, _08134010 lsls r0, r3, 5 adds r0, r1 ldrb r0, [r0, 0x13] movs r2, 0 ldr r1, _08134014 lsls r0, 3 adds r0, r1 ldrb r1, [r0, 0x4] cmp r2, r1 bcs _08134022 ldr r4, [r0] _08134002: adds r0, r4, r2 ldrb r0, [r0] cmp r0, r3 bne _08134018 movs r0, 0x1 b _08134024 .align 2, 0 _08134010: .4byte gDecorations _08134014: .4byte gUnknown_08402E40 _08134018: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, r1 bcc _08134002 _08134022: movs r0, 0 _08134024: pop {r4} pop {r1} bx r1 thumb_func_end sub_8133FE4 thumb_func_start IsThereStorageSpaceForDecoration IsThereStorageSpaceForDecoration: @ 813402C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 cmp r4, 0 beq _0813406C ldr r1, _08134064 lsls r0, r4, 5 adds r0, r1 ldrb r5, [r0, 0x13] adds r0, r5, 0 bl sub_8133F9C lsls r0, 24 asrs r2, r0, 24 movs r0, 0x1 negs r0, r0 cmp r2, r0 beq _0813406C ldr r0, _08134068 lsls r1, r5, 3 adds r1, r0 ldr r0, [r1] adds r0, r2 strb r4, [r0] movs r0, 0x1 b _0813406E .align 2, 0 _08134064: .4byte gDecorations _08134068: .4byte gUnknown_08402E40 _0813406C: movs r0, 0 _0813406E: pop {r4,r5} pop {r1} bx r1 thumb_func_end IsThereStorageSpaceForDecoration thumb_func_start sub_8134074 sub_8134074: @ 8134074 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _081340A0 ldr r1, _0813409C lsls r0, 5 adds r0, r1 ldrb r0, [r0, 0x13] bl sub_8133F9C lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _081340A0 movs r0, 0x1 b _081340A2 .align 2, 0 _0813409C: .4byte gDecorations _081340A0: movs r0, 0 _081340A2: pop {r1} bx r1 thumb_func_end sub_8134074 thumb_func_start sub_81340A8 sub_81340A8: @ 81340A8 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r3, 0 cmp r5, 0 bne _081340C4 b _081340F2 _081340B6: movs r0, 0 strb r0, [r1] adds r0, r6, 0 bl sub_8134104 movs r0, 0x1 b _081340F4 _081340C4: ldr r2, _081340FC ldr r1, _08134100 lsls r0, r5, 5 adds r0, r1 ldrb r4, [r0, 0x13] lsls r0, r4, 3 adds r0, r2 ldrb r1, [r0, 0x4] cmp r3, r1 bcs _081340F2 adds r6, r4, 0 adds r4, r0, 0 adds r2, r1, 0 _081340DE: ldr r0, [r4] adds r1, r0, r3 ldrb r0, [r1] cmp r0, r5 beq _081340B6 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, r2 bcc _081340DE _081340F2: movs r0, 0 _081340F4: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _081340FC: .4byte gUnknown_08402E40 _08134100: .4byte gDecorations thumb_func_end sub_81340A8 thumb_func_start sub_8134104 sub_8134104: @ 8134104 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 movs r6, 0 ldr r2, _08134190 lsrs r1, r0, 21 adds r0, r1, r2 ldrb r0, [r0, 0x4] cmp r6, r0 bcs _08134180 adds r7, r1, 0 mov r8, r0 str r0, [sp] _08134126: adds r1, r6, 0x1 lsls r0, r1, 24 lsrs r3, r0, 24 adds r2, r7, 0 mov r12, r1 cmp r3, r8 bcs _08134174 ldr r1, _08134190 mov r10, r1 adds r0, r1, 0 mov r9, r0 _0813413C: mov r1, r10 adds r5, r2, r1 ldr r1, [r5] adds r0, r1, r3 ldrb r4, [r0] adds r2, r4, 0 cmp r2, 0 beq _08134162 adds r0, r1, r6 ldrb r1, [r0] cmp r1, 0 beq _08134158 cmp r1, r2 bls _08134162 _08134158: ldrb r1, [r0] strb r4, [r0] ldr r0, [r5] adds r0, r3 strb r1, [r0] _08134162: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 adds r2, r7, 0 mov r1, r9 adds r0, r2, r1 ldrb r0, [r0, 0x4] cmp r3, r0 bcc _0813413C _08134174: mov r1, r12 lsls r0, r1, 24 lsrs r6, r0, 24 ldr r0, [sp] cmp r6, r0 bcc _08134126 _08134180: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08134190: .4byte gUnknown_08402E40 thumb_func_end sub_8134104 thumb_func_start sub_8134194 sub_8134194: @ 8134194 push {r4,r5,lr} lsls r0, 24 movs r4, 0 movs r3, 0 ldr r2, _081341D0 lsrs r1, r0, 21 adds r0, r1, r2 ldrb r0, [r0, 0x4] cmp r4, r0 bcs _081341C8 adds r5, r2, 0 _081341AA: adds r2, r1, r5 ldr r0, [r2] adds r0, r3 ldrb r0, [r0] cmp r0, 0 beq _081341BC adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _081341BC: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 ldrb r2, [r2, 0x4] cmp r3, r2 bcc _081341AA _081341C8: adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _081341D0: .4byte gUnknown_08402E40 thumb_func_end sub_8134194 thumb_func_start sub_81341D4 sub_81341D4: @ 81341D4 push {r4,r5,lr} movs r5, 0 movs r4, 0 _081341DA: adds r0, r4, 0 bl sub_8134194 adds r0, r5, r0 lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bls _081341DA adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81341D4 thumb_func_start sub_81341F8 sub_81341F8: @ 81341F8 push {lr} ldr r0, _08134208 movs r1, 0 movs r2, 0x1C bl memset pop {r0} bx r0 .align 2, 0 _08134208: .4byte gSaveBlock1 + 0x3144 thumb_func_end sub_81341F8 thumb_func_start sub_813420C sub_813420C: @ 813420C push {r4-r6,lr} movs r2, 0 ldr r6, _08134238 ldr r4, _0813423C movs r3, 0 adds r5, r4, 0x1 _08134218: lsls r1, r2, 1 adds r0, r1, r4 strb r3, [r0] adds r1, r5 strb r3, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bls _08134218 movs r0, 0 strb r0, [r6] strb r0, [r6, 0x1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08134238: .4byte gUnknown_02039302 _0813423C: .4byte gUnknown_020392FC thumb_func_end sub_813420C thumb_func_start sub_8134240 sub_8134240: @ 8134240 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x10 ldr r5, _081342FC .ifdef SAPPHIRE ldr r6, _sub_8134240_Latias .else movs r6, 0xCC lsls r6, 1 .endif movs r0, 0 str r0, [sp] str r0, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x28 movs r3, 0x20 bl CreateMon ldr r4, _08134300 movs r0, 0 mov r8, r0 strh r6, [r4, 0x8] movs r0, 0x28 strb r0, [r4, 0xC] mov r0, r8 strb r0, [r4, 0xD] movs r0, 0x1 strb r0, [r4, 0x13] adds r0, r5, 0 movs r1, 0x42 bl GetMonData str r0, [r4] adds r0, r5, 0 movs r1, 0 bl GetMonData str r0, [r4, 0x4] adds r0, r5, 0 movs r1, 0x3A bl GetMonData strh r0, [r4, 0xA] adds r0, r5, 0 movs r1, 0x16 bl GetMonData strb r0, [r4, 0xE] adds r0, r5, 0 movs r1, 0x17 bl GetMonData strb r0, [r4, 0xF] adds r0, r5, 0 movs r1, 0x18 bl GetMonData strb r0, [r4, 0x10] adds r0, r5, 0 movs r1, 0x21 bl GetMonData strb r0, [r4, 0x11] adds r0, r5, 0 movs r1, 0x2F bl GetMonData strb r0, [r4, 0x12] ldr r4, _08134304 mov r0, r8 strb r0, [r4] bl Random ldr r5, _08134308 lsls r0, 16 lsrs r0, 16 movs r1, 0x14 bl __umodsi3 lsls r0, 16 lsrs r0, 16 lsls r1, r0, 1 adds r1, r0 lsls r1, 1 adds r1, r5 ldrb r0, [r1] strb r0, [r4, 0x1] add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081342FC: .4byte gEnemyParty .ifdef SAPPHIRE _sub_8134240_Latias: .4byte 407 .endif _08134300: .4byte gSaveBlock1 + 0x3144 _08134304: .4byte gUnknown_02039302 _08134308: .4byte gUnknown_08402E80 thumb_func_end sub_8134240 thumb_func_start sub_813430C sub_813430C: @ 813430C push {lr} bl sub_81341F8 bl sub_813420C bl sub_8134240 pop {r0} bx r0 thumb_func_end sub_813430C thumb_func_start mapnumbers_history_shift_sav1_0_2_4_out mapnumbers_history_shift_sav1_0_2_4_out: @ 8134320 ldr r0, _08134340 ldrb r1, [r0, 0x2] strb r1, [r0, 0x4] ldrb r1, [r0, 0x3] strb r1, [r0, 0x5] ldrb r1, [r0] strb r1, [r0, 0x2] ldrb r1, [r0, 0x1] strb r1, [r0, 0x3] ldr r2, _08134344 ldrb r1, [r2, 0x4] strb r1, [r0] ldrb r1, [r2, 0x5] strb r1, [r0, 0x1] bx lr .align 2, 0 _08134340: .4byte gUnknown_020392FC _08134344: .4byte gSaveBlock1 thumb_func_end mapnumbers_history_shift_sav1_0_2_4_out thumb_func_start sub_8134348 sub_8134348: @ 8134348 push {r4,r5,lr} movs r1, 0 ldr r0, _08134388 ldrb r0, [r0, 0x13] cmp r0, 0 beq _08134380 ldr r0, _0813438C strb r1, [r0] ldr r5, _08134390 adds r4, r0, 0 _0813435C: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x14 bl __umodsi3 lsls r0, 16 lsrs r0, 16 lsls r1, r0, 1 adds r1, r0 lsls r1, 1 adds r1, r5 ldrb r1, [r1] ldrb r0, [r4, 0x1] cmp r0, r1 beq _0813435C strb r1, [r4, 0x1] _08134380: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08134388: .4byte gSaveBlock1 + 0x3144 _0813438C: .4byte gUnknown_02039302 _08134390: .4byte gUnknown_08402E80 thumb_func_end sub_8134348 thumb_func_start sub_8134394 sub_8134394: @ 8134394 push {r4-r7,lr} movs r4, 0 bl Random lsls r0, 16 movs r1, 0xF0 lsls r1, 12 ands r1, r0 cmp r1, 0 bne _081343AE bl sub_8134348 b _08134416 _081343AE: ldr r0, _081343FC ldrb r0, [r0, 0x13] cmp r0, 0 beq _08134416 ldr r7, _08134400 ldr r3, _08134404 _081343BA: lsls r0, r4, 1 adds r0, r4 lsls r2, r0, 1 adds r1, r2, r3 ldrb r0, [r7, 0x1] ldrb r1, [r1] cmp r0, r1 bne _0813440C ldr r6, _08134404 adds r5, r2, 0x1 ldr r4, _08134408 _081343D0: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x5 bl __umodsi3 lsls r0, 16 lsrs r0, 16 adds r0, r5 adds r0, r6 ldrb r1, [r0] ldrb r0, [r4, 0x4] cmp r0, 0 bne _081343F4 ldrb r0, [r4, 0x5] cmp r0, r1 beq _081343D0 _081343F4: cmp r1, 0xFF beq _081343D0 strb r1, [r7, 0x1] b _08134416 .align 2, 0 _081343FC: .4byte gSaveBlock1 + 0x3144 _08134400: .4byte gUnknown_02039302 _08134404: .4byte gUnknown_08402E80 _08134408: .4byte gUnknown_020392FC _0813440C: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x13 bls _081343BA _08134416: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8134394 thumb_func_start sub_813441C sub_813441C: @ 813441C push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r1, 24 ldr r0, _08134440 ldrb r0, [r0, 0x13] cmp r0, 0 beq _08134448 ldr r0, _08134444 ldrb r3, [r0] cmp r2, r3 bne _08134448 ldrb r0, [r0, 0x1] cmp r1, r0 bne _08134448 movs r0, 0x1 b _0813444A .align 2, 0 _08134440: .4byte gSaveBlock1 + 0x3144 _08134444: .4byte gUnknown_02039302 _08134448: movs r0, 0 _0813444A: pop {r1} bx r1 thumb_func_end sub_813441C thumb_func_start sub_8134450 sub_8134450: @ 8134450 push {r4,r5,lr} sub sp, 0x4 ldr r4, _081344C4 ldr r5, _081344C8 ldrh r1, [r5, 0x8] ldrb r2, [r5, 0xC] ldr r3, [r5] ldr r0, [r5, 0x4] str r0, [sp] adds r0, r4, 0 bl CreateMonWithIVsPersonality adds r2, r5, 0 adds r2, 0xD adds r0, r4, 0 movs r1, 0x37 bl SetMonData adds r2, r5, 0 adds r2, 0xA adds r0, r4, 0 movs r1, 0x39 bl SetMonData adds r2, r5, 0 adds r2, 0xE adds r0, r4, 0 movs r1, 0x16 bl SetMonData adds r2, r5, 0 adds r2, 0xF adds r0, r4, 0 movs r1, 0x17 bl SetMonData adds r2, r5, 0 adds r2, 0x10 adds r0, r4, 0 movs r1, 0x18 bl SetMonData adds r2, r5, 0 adds r2, 0x11 adds r0, r4, 0 movs r1, 0x21 bl SetMonData adds r2, r5, 0 adds r2, 0x12 adds r0, r4, 0 movs r1, 0x2F bl SetMonData add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081344C4: .4byte gEnemyParty _081344C8: .4byte gSaveBlock1 + 0x3144 thumb_func_end sub_8134450 thumb_func_start sub_81344CC sub_81344CC: @ 81344CC push {lr} ldr r1, _081344F8 ldrb r0, [r1, 0x4] ldrb r1, [r1, 0x5] bl sub_813441C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081344FC bl Random lsls r0, 16 movs r1, 0xC0 lsls r1, 10 ands r1, r0 cmp r1, 0 bne _081344FC bl sub_8134450 movs r0, 0x1 b _081344FE .align 2, 0 _081344F8: .4byte gSaveBlock1 _081344FC: movs r0, 0 _081344FE: pop {r1} bx r1 thumb_func_end sub_81344CC thumb_func_start sub_8134504 sub_8134504: @ 8134504 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x39 bl GetMonData ldr r4, _08134528 strh r0, [r4, 0xA] adds r0, r5, 0 movs r1, 0x37 bl GetMonData strb r0, [r4, 0xD] bl sub_8134348 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08134528: .4byte gSaveBlock1 + 0x3144 thumb_func_end sub_8134504 thumb_func_start sub_813452C sub_813452C: @ 813452C ldr r1, _08134534 movs r0, 0 strb r0, [r1, 0x13] bx lr .align 2, 0 _08134534: .4byte gSaveBlock1 + 0x3144 thumb_func_end sub_813452C thumb_func_start sub_8134538 sub_8134538: @ 8134538 ldr r3, _08134544 ldrb r2, [r3] strb r2, [r0] ldrb r0, [r3, 0x1] strb r0, [r1] bx lr .align 2, 0 _08134544: .4byte gUnknown_02039302 thumb_func_end sub_8134538 thumb_func_start sub_8134548 sub_8134548: @ 8134548 push {r4,r5,lr} movs r4, 0 movs r5, 0 _0813454E: ldr r0, _08134568 ldr r1, _0813456C adds r0, r1 adds r0, r5, r0 ldrb r0, [r0] cmp r0, 0x6 bhi _08134590 lsls r0, 2 ldr r1, _08134570 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08134568: .4byte gSaveBlock2 _0813456C: .4byte 0x00000556 _08134570: .4byte _08134574 .align 2, 0 _08134574: .4byte _08134590 .4byte _081345A8 .4byte _081345C8 .4byte _081345D8 .4byte _081345B8 .4byte _081345C0 .4byte _081345D8 _08134590: lsls r0, r5, 24 lsrs r0, 24 bl sub_813461C cmp r4, 0 bne _081345D8 movs r0, 0x80 lsls r0, 7 movs r1, 0x5 bl VarSet b _081345D8 _081345A8: lsls r0, r5, 24 lsrs r0, 24 bl sub_813461C movs r0, 0x80 lsls r0, 7 movs r1, 0x1 b _081345CE _081345B8: movs r0, 0x80 lsls r0, 7 movs r1, 0x2 b _081345CE _081345C0: movs r0, 0x80 lsls r0, 7 movs r1, 0x3 b _081345CE _081345C8: movs r0, 0x80 lsls r0, 7 movs r1, 0x4 _081345CE: bl VarSet adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _081345D8: adds r5, 0x1 cmp r5, 0x1 ble _0813454E ldr r1, _08134610 ldr r2, _08134614 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x3 beq _081345EE cmp r0, 0x6 bne _08134606 _081345EE: ldr r2, _08134618 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x3 beq _081345FC cmp r0, 0x6 bne _08134606 _081345FC: movs r0, 0x80 lsls r0, 7 movs r1, 0x5 bl VarSet _08134606: bl sub_8135C44 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08134610: .4byte gSaveBlock2 _08134614: .4byte 0x00000556 _08134618: .4byte 0x00000557 thumb_func_end sub_8134548 thumb_func_start sub_813461C sub_813461C: @ 813461C lsls r0, 24 lsrs r0, 24 ldr r3, _08134644 ldr r2, _08134648 adds r1, r3, r2 adds r1, r0, r1 movs r2, 0 strb r2, [r1] lsls r0, 1 movs r2, 0xAB lsls r2, 3 adds r1, r3, r2 adds r1, r0, r1 movs r2, 0x1 strh r2, [r1] ldr r1, _0813464C adds r3, r1 adds r0, r3 strh r2, [r0] bx lr .align 2, 0 _08134644: .4byte gSaveBlock2 _08134648: .4byte 0x00000556 _0813464C: .4byte 0x0000055c thumb_func_end sub_813461C thumb_func_start sub_8134650 sub_8134650: @ 8134650 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x2C lsls r0, 24 lsrs r5, r0, 24 lsls r1, 16 lsrs r6, r1, 16 add r4, sp, 0x28 movs r0, 0 strb r0, [r4] bl sub_813601C ldr r0, _08134684 ldrh r0, [r0] adds r7, r4, 0 cmp r0, 0 bne _08134680 ldr r1, _08134688 ldr r2, _0813468C adds r0, r1, r2 ldrh r0, [r0] cmp r0, r6 beq _08134690 _08134680: movs r0, 0 b _081346E2 .align 2, 0 _08134684: .4byte gScriptResult _08134688: .4byte gSaveBlock2 _0813468C: .4byte 0x0000049a _08134690: movs r6, 0x32 cmp r5, 0 beq _08134698 movs r6, 0x64 _08134698: movs r4, 0 mov r8, r1 _0813469C: movs r0, 0x2C muls r0, r4 mov r3, r8 adds r1, r0, r3 movs r2, 0x9B lsls r2, 3 adds r0, r1, r2 ldrb r2, [r0] cmp r2, r6 bne _08134680 ldr r3, _081346F0 adds r0, r1, r3 ldrh r0, [r0] adds r3, 0x2 adds r1, r3 ldrh r1, [r1] str r2, [sp] add r2, sp, 0x10 str r2, [sp, 0x4] add r2, sp, 0x1C str r2, [sp, 0x8] str r7, [sp, 0xC] movs r2, 0x1 adds r3, r5, 0 bl sub_8135200 adds r4, 0x1 cmp r4, 0x2 ble _0813469C movs r1, 0 ldrb r0, [r7] cmp r0, 0x3 bne _081346E0 movs r1, 0x1 _081346E0: adds r0, r1, 0 _081346E2: add sp, 0x2C pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081346F0: .4byte 0x000004cc thumb_func_end sub_8134650 thumb_func_start sub_81346F4 sub_81346F4: @ 81346F4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 movs r0, 0 mov r9, r0 ldr r4, _08134738 ldr r1, _0813473C adds r0, r4, r1 ldrb r0, [r0] lsls r0, 31 lsrs r7, r0, 31 adds r0, r7, 0 bl sub_8135D3C lsls r0, 16 lsrs r0, 16 mov r8, r0 adds r0, r7, 0 mov r1, r8 bl sub_8134650 lsls r0, 24 adds r1, r4, 0 cmp r0, 0 beq _08134744 ldr r2, _08134740 adds r1, r2 movs r0, 0xC8 strb r0, [r1] b _081347DE .align 2, 0 _08134738: .4byte gSaveBlock2 _0813473C: .4byte 0x00000554 _08134740: .4byte 0x00000564 _08134744: movs r5, 0 movs r3, 0xA4 mov r12, r3 mov r10, sp _0813474C: mov r0, r12 muls r0, r5 movs r4, 0 movs r1, 0 movs r2, 0 adds r6, r5, 0x1 str r6, [sp, 0x14] ldr r6, _081347B4 adds r3, r0, r6 _0813475E: ldm r3!, {r0} orrs r4, r0 adds r1, r0 adds r2, 0x1 cmp r2, 0x27 bls _0813475E mov r3, r12 muls r3, r5 ldr r0, _081347B8 adds r2, r3, r0 movs r6, 0xA7 lsls r6, 1 adds r0, r2, r6 ldrh r0, [r0] cmp r0, r8 bne _081347A4 subs r6, 0x2 adds r0, r2, r6 ldrb r0, [r0] cmp r0, r7 bne _081347A4 cmp r4, 0 beq _081347A4 ldr r2, _081347BC adds r0, r3, r2 ldr r0, [r0] cmp r0, r1 bne _081347A4 mov r3, r10 adds r3, 0x4 mov r10, r3 subs r3, 0x4 stm r3!, {r5} movs r6, 0x1 add r9, r6 _081347A4: ldr r5, [sp, 0x14] cmp r5, 0x4 ble _0813474C mov r0, r9 cmp r0, 0 bne _081347C0 movs r0, 0 b _081347E0 .align 2, 0 _081347B4: .4byte gSaveBlock2 + 0x14C _081347B8: .4byte gSaveBlock2 _081347BC: .4byte gSaveBlock2 + 0x1EC _081347C0: bl Random ldr r4, _081347F0 lsls r0, 16 lsrs r0, 16 mov r1, r9 bl __modsi3 lsls r0, 2 add r0, sp ldr r0, [r0] adds r0, 0x64 ldr r1, _081347F4 adds r4, r1 strb r0, [r4] _081347DE: movs r0, 0x1 _081347E0: add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081347F0: .4byte gSaveBlock2 _081347F4: .4byte 0x00000564 thumb_func_end sub_81346F4 thumb_func_start sub_81347F8 sub_81347F8: @ 81347F8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r5, _08134838 ldr r1, _0813483C adds r0, r5, r1 ldrb r0, [r0] lsls r0, 31 lsrs r6, r0, 31 bl sub_81346F4 lsls r0, 24 cmp r0, 0 beq _08134848 ldr r2, _08134840 adds r4, r5, r2 ldrb r0, [r4] bl sub_81349FC lsls r0, r6, 1 movs r3, 0xAB lsls r3, 3 adds r1, r5, r3 adds r0, r1 ldrh r0, [r0] adds r0, r5, r0 ldr r1, _08134844 adds r0, r1 ldrb r1, [r4] b _081349DC .align 2, 0 _08134838: .4byte gSaveBlock2 _0813483C: .4byte 0x00000554 _08134840: .4byte 0x00000564 _08134844: .4byte 0x00000569 _08134848: lsls r0, r6, 1 ldr r2, _081348D8 adds r1, r5, r2 adds r1, r0, r1 ldrh r1, [r1] adds r7, r0, 0 cmp r1, 0x7 bls _0813485A b _0813495C _0813485A: movs r3, 0xAB lsls r3, 3 adds r0, r5, r3 adds r1, r7, r0 ldrh r0, [r1] cmp r0, 0x7 bne _081348E4 adds r6, r5, 0 mov r9, r7 adds r5, r1, 0 ldr r0, _081348DC adds r0, r6 mov r10, r0 mov r8, r5 _08134876: bl Random movs r1, 0xFF ands r1, r0 lsls r2, r1, 2 adds r2, r1 ldr r1, _081348D8 adds r4, r6, r1 mov r3, r9 adds r0, r3, r4 ldrh r1, [r0] subs r1, 0x1 lsls r0, r1, 2 adds r0, r1 lsls r0, 1 adds r0, 0x14 lsrs r2, 7 adds r2, r0 lsls r2, 16 lsrs r2, 16 movs r1, 0 ldrh r0, [r5] subs r0, 0x1 cmp r1, r0 bge _081348C8 mov r3, r10 ldrb r0, [r3] cmp r0, r2 beq _081348C8 subs r0, r4, 0x4 adds r0, r7, r0 ldrh r0, [r0] subs r3, r0, 0x1 adds r4, 0xE _081348BA: adds r1, 0x1 cmp r1, r3 bge _081348C8 adds r0, r1, r4 ldrb r0, [r0] cmp r0, r2 bne _081348BA _081348C8: mov r3, r8 ldrh r0, [r3] subs r0, 0x1 ldr r4, _081348E0 cmp r1, r0 bne _08134876 b _081349B6 .align 2, 0 _081348D8: .4byte 0x0000055c _081348DC: .4byte 0x0000056a _081348E0: .4byte gSaveBlock2 _081348E4: adds r6, r5, 0 mov r9, r7 adds r5, r1, 0 ldr r2, _08134950 adds r2, r6 mov r10, r2 mov r8, r5 _081348F2: bl Random movs r1, 0xFF ands r1, r0 lsls r0, r1, 2 adds r0, r1 lsrs r2, r0, 6 ldr r3, _08134954 adds r4, r6, r3 mov r1, r9 adds r0, r1, r4 ldrh r1, [r0] subs r1, 0x1 lsls r0, r1, 2 adds r0, r1 lsls r0, 1 adds r0, r2, r0 lsls r0, 16 lsrs r2, r0, 16 movs r1, 0 ldrh r0, [r5] subs r0, 0x1 cmp r1, r0 bge _08134942 mov r3, r10 ldrb r0, [r3] cmp r0, r2 beq _08134942 subs r0, r4, 0x4 adds r0, r7, r0 ldrh r0, [r0] subs r3, r0, 0x1 adds r4, 0xE _08134934: adds r1, 0x1 cmp r1, r3 bge _08134942 adds r0, r1, r4 ldrb r0, [r0] cmp r0, r2 bne _08134934 _08134942: mov r3, r8 ldrh r0, [r3] subs r0, 0x1 ldr r4, _08134958 cmp r1, r0 bne _081348F2 b _081349B6 .align 2, 0 _08134950: .4byte 0x0000056a _08134954: .4byte 0x0000055c _08134958: .4byte gSaveBlock2 _0813495C: movs r2, 0xAB lsls r2, 3 adds r0, r5, r2 adds r6, r7, r0 ldr r3, _081349EC adds r3, r5 mov r8, r3 adds r5, r6, 0 _0813496C: bl Random movs r1, 0xFF ands r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 1 asrs r0, 8 adds r0, 0x46 lsls r0, 16 lsrs r2, r0, 16 movs r1, 0 ldrh r0, [r6] subs r0, 0x1 cmp r1, r0 bge _081349AC mov r3, r8 ldrb r0, [r3] ldr r4, _081349F0 cmp r0, r2 beq _081349AC ldrh r0, [r5] subs r3, r0, 0x1 ldr r0, _081349EC adds r4, r0 _0813499E: adds r1, 0x1 cmp r1, r3 bge _081349AC adds r0, r1, r4 ldrb r0, [r0] cmp r0, r2 bne _0813499E _081349AC: ldrh r0, [r6] subs r0, 0x1 ldr r4, _081349F0 cmp r1, r0 bne _0813496C _081349B6: ldr r1, _081349F4 adds r0, r4, r1 strb r2, [r0] ldr r2, _081349F4 adds r5, r4, r2 ldrb r0, [r5] bl sub_81349FC movs r3, 0xAB lsls r3, 3 adds r0, r4, r3 adds r1, r7, r0 ldrh r0, [r1] cmp r0, 0x6 bhi _081349DE adds r0, r4, r0 ldr r1, _081349F8 adds r0, r1 ldrb r1, [r5] _081349DC: strb r1, [r0] _081349DE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081349EC: .4byte 0x0000056a _081349F0: .4byte gSaveBlock2 _081349F4: .4byte 0x00000564 _081349F8: .4byte 0x00000569 thumb_func_end sub_81347F8 thumb_func_start sub_81349FC sub_81349FC: @ 81349FC push {lr} lsls r0, 24 lsrs r2, r0, 24 adds r1, r2, 0 cmp r2, 0x63 bhi _08134A18 ldr r1, _08134A14 lsls r0, r2, 1 adds r0, r2 lsls r0, 3 b _08134A38 .align 2, 0 _08134A14: .4byte gBattleTowerTrainers _08134A18: cmp r1, 0xC7 bhi _08134A34 ldr r2, _08134A2C subs r1, 0x64 movs r0, 0xA4 muls r0, r1 adds r0, r2 ldr r1, _08134A30 b _08134A38 .align 2, 0 _08134A2C: .4byte gSaveBlock2 _08134A30: .4byte 0x0000014d _08134A34: ldr r0, _08134A5C ldr r1, _08134A60 _08134A38: adds r0, r1 ldrb r1, [r0] movs r2, 0 ldr r3, _08134A64 ldrb r0, [r3] cmp r0, r1 beq _08134A54 _08134A46: adds r2, 0x1 cmp r2, 0x1D bhi _08134A54 adds r0, r2, r3 ldrb r0, [r0] cmp r0, r1 bne _08134A46 _08134A54: cmp r2, 0x1E beq _08134A6C ldr r0, _08134A68 b _08134A8A .align 2, 0 _08134A5C: .4byte gSaveBlock2 _08134A60: .4byte 0x00000499 _08134A64: .4byte gUnknown_08405E60 _08134A68: .4byte gUnknown_08405E92 _08134A6C: movs r2, 0 ldr r3, _08134A98 ldrb r0, [r3] cmp r0, r1 beq _08134A84 _08134A76: adds r2, 0x1 cmp r2, 0x13 bhi _08134A84 adds r0, r2, r3 ldrb r0, [r0] cmp r0, r1 bne _08134A76 _08134A84: cmp r2, 0x14 beq _08134AA4 ldr r0, _08134A9C _08134A8A: adds r0, r2, r0 ldrb r1, [r0] ldr r0, _08134AA0 bl VarSet b _08134AAC .align 2, 0 _08134A98: .4byte gUnknown_08405E7E _08134A9C: .4byte gUnknown_08405EB0 _08134AA0: .4byte 0x00004010 _08134AA4: ldr r0, _08134AB0 movs r1, 0x7 bl VarSet _08134AAC: pop {r0} bx r0 .align 2, 0 _08134AB0: .4byte 0x00004010 thumb_func_end sub_81349FC thumb_func_start sub_8134AB4 sub_8134AB4: @ 8134AB4 push {lr} movs r0, 0xC8 bl sub_81349FC pop {r0} bx r0 thumb_func_end sub_8134AB4 thumb_func_start sub_8134AC0 sub_8134AC0: @ 8134AC0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C movs r7, 0 mov r8, r0 movs r5, 0 ldr r0, _08134B3C mov r12, r0 mov r1, r8 ldrb r1, [r1, 0xC] str r1, [sp, 0x18] movs r2, 0xAA lsls r2, 1 add r2, r12 mov r10, r2 mov r9, r5 _08134AE6: movs r6, 0 movs r3, 0 ldr r0, _08134B40 add r0, r9 ldrb r0, [r0] ldr r1, [sp, 0x18] cmp r0, r1 bne _08134B14 movs r0, 0xA4 muls r0, r5 ldr r1, _08134B40 adds r2, r0, r1 mov r4, r8 adds r4, 0xC _08134B02: adds r2, 0x1 adds r3, 0x1 cmp r3, 0x3 bgt _08134B14 adds r1, r4, r3 ldrb r0, [r2] ldrb r1, [r1] cmp r0, r1 beq _08134B02 _08134B14: cmp r3, 0x4 bne _08134B54 movs r6, 0 mov r2, r10 ldrb r0, [r2] mov r3, r8 ldrb r3, [r3, 0x8] cmp r0, r3 bne _08134B54 adds r1, r0, 0 movs r0, 0xA4 muls r0, r5 adds r0, 0x4 ldr r3, _08134B44 adds r2, r0, r3 _08134B32: cmp r1, 0xFF bne _08134B48 movs r6, 0x7 b _08134B54 .align 2, 0 _08134B3C: .4byte gSaveBlock2 _08134B40: .4byte gSaveBlock2 + 0x158 _08134B44: .4byte gSaveBlock2 + 0x150 _08134B48: adds r6, 0x1 cmp r6, 0x6 bgt _08134B54 ldrb r0, [r2] cmp r0, r1 beq _08134B32 _08134B54: cmp r6, 0x7 beq _08134B64 movs r0, 0xA4 add r10, r0 add r9, r0 adds r5, 0x1 cmp r5, 0x4 ble _08134AE6 _08134B64: cmp r5, 0x4 bgt _08134B76 movs r0, 0xA4 muls r0, r5 add r0, r12 movs r1, 0xA6 lsls r1, 1 adds r0, r1 b _08134B9E _08134B76: movs r5, 0 movs r1, 0xA7 lsls r1, 1 add r1, r12 b _08134B88 _08134B80: adds r1, 0xA4 adds r5, 0x1 cmp r5, 0x4 bgt _08134BA8 _08134B88: ldrh r0, [r1] cmp r0, 0 bne _08134B80 cmp r5, 0x4 bgt _08134BA8 movs r0, 0xA4 muls r0, r5 add r0, r12 movs r2, 0xA6 lsls r2, 1 adds r0, r2 _08134B9E: mov r1, r8 movs r2, 0xA4 bl memcpy b _08134C5E _08134BA8: mov r2, sp movs r3, 0xA7 lsls r3, 1 mov r1, r12 adds r0, r1, r3 ldrh r0, [r0] movs r1, 0 strh r0, [r2] add r0, sp, 0xC strh r1, [r0] adds r7, 0x1 movs r5, 0x1 add r2, sp, 0xC mov r9, r2 mov r10, r3 _08134BC6: movs r3, 0 adds r0, r5, 0x1 mov r12, r0 cmp r3, r7 bge _08134C0A movs r1, 0xA4 adds r0, r5, 0 muls r0, r1 ldr r2, _08134BFC adds r0, r2 mov r1, r10 adds r4, r0, r1 mov r6, sp _08134BE0: lsls r0, r3, 1 add r0, sp ldrh r2, [r4] adds r1, r2, 0 ldrh r0, [r0] cmp r1, r0 bcs _08134C00 movs r3, 0 movs r7, 0x1 strh r2, [r6] mov r2, r9 strh r5, [r2] b _08134C0A .align 2, 0 _08134BFC: .4byte gSaveBlock2 _08134C00: cmp r1, r0 bhi _08134C0A adds r3, 0x1 cmp r3, r7 blt _08134BE0 _08134C0A: cmp r3, r7 bne _08134C2A lsls r1, r7, 1 mov r3, sp adds r2, r3, r1 movs r3, 0xA4 adds r0, r5, 0 muls r0, r3 ldr r3, _08134C70 adds r0, r3 add r0, r10 ldrh r0, [r0] strh r0, [r2] add r1, r9 strh r5, [r1] adds r7, 0x1 _08134C2A: mov r5, r12 cmp r5, 0x4 ble _08134BC6 bl Random lsls r0, 16 lsrs r0, 16 adds r1, r7, 0 bl __modsi3 adds r5, r0, 0 ldr r2, _08134C70 lsls r0, r5, 1 add r0, sp adds r0, 0xC ldrh r1, [r0] movs r0, 0xA4 muls r0, r1 adds r0, r2 movs r1, 0xA6 lsls r1, 1 adds r0, r1 mov r1, r8 movs r2, 0xA4 bl memcpy _08134C5E: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08134C70: .4byte gSaveBlock2 thumb_func_end sub_8134AC0 thumb_func_start get_trainer_class_pic_index get_trainer_class_pic_index: @ 8134C74 push {lr} ldr r3, _08134C90 ldr r0, _08134C94 adds r1, r3, r0 ldrb r0, [r1] cmp r0, 0xC8 bne _08134CA0 ldr r1, _08134C98 ldr r2, _08134C9C adds r0, r3, r2 ldrb r0, [r0] adds r0, r1 b _08134CD2 .align 2, 0 _08134C90: .4byte gSaveBlock2 _08134C94: .4byte 0x00000564 _08134C98: .4byte gTrainerClassToPicIndex _08134C9C: .4byte 0x00000499 _08134CA0: cmp r0, 0x63 bls _08134CC0 ldr r2, _08134CBC ldrb r0, [r1] subs r0, 0x64 movs r1, 0xA4 muls r0, r1 adds r0, r3 adds r1, 0xA9 adds r0, r1 ldrb r0, [r0] adds r0, r2 b _08134CD2 .align 2, 0 _08134CBC: .4byte gTrainerClassToPicIndex _08134CC0: ldr r3, _08134CD8 ldr r2, _08134CDC ldrb r1, [r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0] adds r0, r3 _08134CD2: ldrb r0, [r0] pop {r1} bx r1 .align 2, 0 _08134CD8: .4byte gTrainerClassToPicIndex _08134CDC: .4byte gBattleTowerTrainers thumb_func_end get_trainer_class_pic_index thumb_func_start get_trainer_class_name_index get_trainer_class_name_index: @ 8134CE0 push {lr} ldr r3, _08134CFC ldr r0, _08134D00 adds r1, r3, r0 ldrb r0, [r1] cmp r0, 0xC8 bne _08134D0C ldr r1, _08134D04 ldr r2, _08134D08 adds r0, r3, r2 ldrb r0, [r0] adds r0, r1 b _08134D40 .align 2, 0 _08134CFC: .4byte gSaveBlock2 _08134D00: .4byte 0x00000564 _08134D04: .4byte gTrainerClassToNameIndex _08134D08: .4byte 0x00000499 _08134D0C: cmp r0, 0x63 bhi _08134D2C ldr r3, _08134D24 ldr r2, _08134D28 ldrb r1, [r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0] adds r0, r3 b _08134D40 .align 2, 0 _08134D24: .4byte gTrainerClassToNameIndex _08134D28: .4byte gBattleTowerTrainers _08134D2C: ldr r2, _08134D48 ldrb r0, [r1] subs r0, 0x64 movs r1, 0xA4 muls r0, r1 adds r0, r3 adds r1, 0xA9 adds r0, r1 ldrb r0, [r0] adds r0, r2 _08134D40: ldrb r0, [r0] pop {r1} bx r1 .align 2, 0 _08134D48: .4byte gTrainerClassToNameIndex thumb_func_end get_trainer_class_name_index thumb_func_start get_trainer_name get_trainer_name: @ 8134D4C push {r4,r5,lr} adds r4, r0, 0 ldr r2, _08134D74 ldr r0, _08134D78 adds r1, r2, r0 ldrb r0, [r1] cmp r0, 0xC8 bne _08134D80 movs r3, 0 ldr r5, _08134D7C adds r2, r5 _08134D62: adds r0, r4, r3 adds r1, r3, r2 ldrb r1, [r1] strb r1, [r0] adds r3, 0x1 cmp r3, 0x6 ble _08134D62 b _08134DC8 .align 2, 0 _08134D74: .4byte gSaveBlock2 _08134D78: .4byte 0x00000564 _08134D7C: .4byte 0x0000049c _08134D80: cmp r0, 0x63 bhi _08134DA8 movs r3, 0 ldr r2, _08134DA4 ldrb r1, [r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, 0x1 adds r2, r0, r2 _08134D94: adds r1, r4, r3 ldrb r0, [r2] strb r0, [r1] adds r2, 0x1 adds r3, 0x1 cmp r3, 0x6 ble _08134D94 b _08134DC8 .align 2, 0 _08134DA4: .4byte gBattleTowerTrainers _08134DA8: movs r3, 0 ldrb r0, [r1] subs r0, 0x64 movs r1, 0xA4 muls r1, r0 movs r5, 0xA8 lsls r5, 1 adds r0, r2, r5 adds r2, r1, r0 _08134DBA: adds r1, r4, r3 ldrb r0, [r2] strb r0, [r1] adds r2, 0x1 adds r3, 0x1 cmp r3, 0x6 ble _08134DBA _08134DC8: adds r1, r4, r3 movs r0, 0xFF strb r0, [r1] pop {r4,r5} pop {r0} bx r0 thumb_func_end get_trainer_name thumb_func_start sub_8134DD4 sub_8134DD4: @ 8134DD4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 movs r0, 0 str r0, [sp, 0x18] movs r1, 0x3C str r1, [sp, 0x1C] add r4, sp, 0xC movs r0, 0xFF strb r0, [r4] bl ZeroEnemyPartyMons ldr r1, _08134E04 ldr r2, _08134E08 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x13 bhi _08134E0C movs r3, 0x6 str r3, [sp, 0x14] b _08134ED8 .align 2, 0 _08134E04: .4byte gSaveBlock2 _08134E08: .4byte 0x00000564 _08134E0C: cmp r0, 0x1D bhi _08134E1A movs r0, 0x9 str r0, [sp, 0x14] movs r1, 0x1E str r1, [sp, 0x18] b _08134ED8 _08134E1A: cmp r0, 0x27 bhi _08134E28 movs r2, 0xC str r2, [sp, 0x14] movs r3, 0x3C str r3, [sp, 0x18] b _08134ED8 _08134E28: cmp r0, 0x31 bhi _08134E36 movs r0, 0xF str r0, [sp, 0x14] movs r1, 0x5A str r1, [sp, 0x18] b _08134ED8 _08134E36: cmp r0, 0x3B bhi _08134E44 movs r2, 0x12 str r2, [sp, 0x14] movs r3, 0x78 str r3, [sp, 0x18] b _08134ED8 _08134E44: cmp r0, 0x45 bhi _08134E52 movs r0, 0x15 str r0, [sp, 0x14] movs r1, 0x96 str r1, [sp, 0x18] b _08134ED8 _08134E52: cmp r0, 0x4F bhi _08134E60 movs r2, 0x1F str r2, [sp, 0x14] movs r3, 0xB4 str r3, [sp, 0x18] b _08134ED8 _08134E60: cmp r0, 0x63 bhi _08134E72 movs r0, 0x1F str r0, [sp, 0x14] movs r1, 0xC8 str r1, [sp, 0x18] movs r2, 0x64 str r2, [sp, 0x1C] b _08134ED8 _08134E72: cmp r0, 0xC8 bne _08134E9C movs r6, 0 _08134E78: movs r0, 0x64 muls r0, r6 ldr r1, _08134E94 adds r0, r1 movs r1, 0x2C muls r1, r6 ldr r2, _08134E98 adds r1, r2 bl sub_803ADE8 adds r6, 0x1 cmp r6, 0x2 ble _08134E78 b _08135082 .align 2, 0 _08134E94: .4byte gEnemyParty _08134E98: .4byte gSaveBlock2 + 0x4CC _08134E9C: movs r6, 0 adds r4, r1, 0 ldr r3, _08134ECC adds r5, r4, r3 _08134EA4: movs r0, 0x64 muls r0, r6 ldr r1, _08134ED0 adds r0, r1 ldr r2, _08134ED4 adds r1, r4, r2 ldrb r2, [r1] movs r1, 0xA4 muls r1, r2 adds r1, r5 movs r2, 0x2C muls r2, r6 adds r1, r2 bl sub_803ADE8 adds r6, 0x1 cmp r6, 0x2 ble _08134EA4 b _08135082 .align 2, 0 _08134ECC: .4byte 0xffffc158 _08134ED0: .4byte gEnemyParty _08134ED4: .4byte 0x00000564 _08134ED8: ldr r2, _08134EF4 ldr r3, _08134EF8 adds r0, r2, r3 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 adds r1, r2, 0 cmp r0, 0 beq _08134F00 ldr r0, _08134EFC mov r10, r0 movs r2, 0x64 str r2, [sp, 0x10] b _08134F08 .align 2, 0 _08134EF4: .4byte gSaveBlock2 _08134EF8: .4byte 0x00000554 _08134EFC: .4byte gBattleTowerLevel100Mons _08134F00: ldr r3, _08134F54 mov r10, r3 movs r0, 0x32 str r0, [sp, 0x10] _08134F08: ldr r2, _08134F58 ldr r3, _08134F5C adds r0, r1, r3 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x9] str r0, [sp, 0x20] movs r6, 0 _08134F1E: bl Random movs r1, 0xFF ands r1, r0 ldr r2, [sp, 0x1C] adds r0, r1, 0 muls r0, r2 asrs r0, 8 ldr r3, [sp, 0x18] adds r7, r0, r3 ldr r0, [sp, 0x20] cmp r0, 0 beq _08134F48 lsls r0, r7, 4 add r0, r10 ldrb r0, [r0, 0x3] ldr r1, [sp, 0x20] ands r0, r1 cmp r0, r1 beq _08134F48 b _0813507C _08134F48: movs r5, 0 lsls r0, r7, 4 mov r2, r10 adds r3, r0, r2 movs r4, 0 b _08134F64 .align 2, 0 _08134F54: .4byte gBattleTowerLevel50Mons _08134F58: .4byte gBattleTowerTrainers _08134F5C: .4byte 0x00000564 _08134F60: adds r4, 0x64 adds r5, 0x1 _08134F64: cmp r5, r6 bge _08134F7E ldr r1, _08135094 adds r0, r4, r1 movs r1, 0xB movs r2, 0 str r3, [sp, 0x24] bl GetMonData ldr r3, [sp, 0x24] ldrh r2, [r3] cmp r0, r2 bne _08134F60 _08134F7E: cmp r5, r6 bne _0813507C movs r5, 0 cmp r5, r6 bge _08134FCC ldr r3, _08135098 mov r9, r3 lsls r0, r7, 4 add r0, r10 mov r8, r0 movs r3, 0 _08134F94: ldr r0, _08135094 adds r4, r3, r0 adds r0, r4, 0 movs r1, 0xC movs r2, 0 str r3, [sp, 0x24] bl GetMonData ldr r3, [sp, 0x24] cmp r0, 0 beq _08134FC4 adds r0, r4, 0 movs r1, 0xC movs r2, 0 bl GetMonData mov r2, r8 ldrb r1, [r2, 0x2] lsls r1, 1 add r1, r9 ldr r3, [sp, 0x24] ldrh r1, [r1] cmp r0, r1 beq _08134FCC _08134FC4: adds r3, 0x64 adds r5, 0x1 cmp r5, r6 blt _08134F94 _08134FCC: cmp r5, r6 bne _0813507C movs r5, 0 cmp r5, r6 bge _08134FEE add r0, sp, 0x4 ldrh r0, [r0] cmp r0, r7 beq _08134FEE add r1, sp, 0x4 _08134FE0: adds r1, 0x2 adds r5, 0x1 cmp r5, r6 bge _08134FEE ldrh r0, [r1] cmp r0, r7 bne _08134FE0 _08134FEE: cmp r5, r6 bne _0813507C lsls r0, r6, 1 add r0, sp adds r0, 0x4 strh r7, [r0] movs r3, 0x64 adds r0, r6, 0 muls r0, r3 ldr r1, _08135094 adds r0, r1 lsls r4, r7, 4 mov r3, r10 adds r2, r4, r3 ldrh r1, [r2] ldrb r2, [r2, 0xC] str r2, [sp] ldr r2, [sp, 0x10] ldr r3, [sp, 0x14] bl CreateMonWithEVSpread movs r5, 0 adds r0, r6, 0x1 mov r9, r0 mov r8, r4 movs r0, 0x64 adds r7, r6, 0 muls r7, r0 mov r0, r10 adds r0, 0x4 adds r4, r0 ldr r3, _08135094 _0813502E: ldrh r1, [r4] lsls r2, r5, 24 lsrs r2, 24 adds r0, r7, r3 str r3, [sp, 0x24] bl SetMonMoveSlot ldrh r0, [r4] ldr r3, [sp, 0x24] cmp r0, 0xDA bne _0813504A movs r0, 0 mov r1, sp strb r0, [r1, 0xC] _0813504A: adds r4, 0x2 adds r5, 0x1 cmp r5, 0x3 ble _0813502E movs r2, 0x64 adds r4, r6, 0 muls r4, r2 ldr r3, _08135094 adds r4, r3 adds r0, r4, 0 movs r1, 0x20 add r2, sp, 0xC bl SetMonData mov r0, r8 add r0, r10 ldrb r2, [r0, 0x2] lsls r2, 1 ldr r0, _08135098 adds r2, r0 adds r0, r4, 0 movs r1, 0xC bl SetMonData mov r6, r9 _0813507C: cmp r6, 0x3 beq _08135082 b _08134F1E _08135082: add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08135094: .4byte gEnemyParty _08135098: .4byte gBattleTowerHeldItems thumb_func_end sub_8134DD4 thumb_func_start sub_813509C sub_813509C: @ 813509C push {r4-r6,lr} movs r5, 0 ldr r2, _081350D8 ldrh r0, [r2] ldr r1, _081350DC cmp r0, r1 beq _081350CE adds r6, r1, 0 adds r4, r2, 0 _081350AE: ldrh r0, [r4] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x1 bl sub_8090D90 lsls r0, 24 cmp r0, 0 beq _081350C6 adds r5, 0x1 _081350C6: adds r4, 0x2 ldrh r0, [r4] cmp r0, r6 bne _081350AE _081350CE: adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _081350D8: .4byte gBattleTowerBanlist _081350DC: .4byte 0x0000ffff thumb_func_end sub_813509C thumb_func_start sub_81350E0 sub_81350E0: @ 81350E0 push {r4-r6,lr} adds r5, r2, 0 lsls r0, 16 lsrs r6, r0, 16 lsls r1, 24 lsrs r4, r1, 24 adds r0, r6, 0 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x1 bl sub_8090D90 lsls r0, 24 cmp r0, 0 beq _081351E6 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 subs r0, r4, 0x1 cmp r0, 0xA bhi _081351B0 lsls r0, 2 ldr r1, _08135118 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08135118: .4byte _0813511C .align 2, 0 _0813511C: .4byte _08135148 .4byte _08135178 .4byte _08135148 .4byte _081351B0 .4byte _08135148 .4byte _081351B0 .4byte _08135148 .4byte _081351B0 .4byte _08135148 .4byte _081351B0 .4byte _08135148 _08135148: cmp r5, r4 bne _08135160 ldr r0, _08135158 ldr r1, _0813515C bl StringAppend b _081351D8 .align 2, 0 _08135158: .4byte gStringVar1 _0813515C: .4byte gUnknown_08400E23 _08135160: cmp r5, r4 ble _081351D8 ldr r0, _08135170 ldr r1, _08135174 bl StringAppend b _081351D8 .align 2, 0 _08135170: .4byte gStringVar1 _08135174: .4byte gUnknown_08400E29 _08135178: cmp r4, r5 bne _08135190 ldr r0, _08135188 ldr r1, _0813518C bl StringAppend b _08135198 .align 2, 0 _08135188: .4byte gStringVar1 _0813518C: .4byte gUnknown_08400E23 _08135190: ldr r0, _081351A4 ldr r1, _081351A8 bl StringAppend _08135198: ldr r0, _081351A4 ldr r1, _081351AC bl StringAppend b _081351D8 .align 2, 0 _081351A4: .4byte gStringVar1 _081351A8: .4byte gUnknown_08400E29 _081351AC: .4byte gUnknown_08400E30 _081351B0: cmp r4, r5 bne _081351C8 ldr r0, _081351C0 ldr r1, _081351C4 bl StringAppend b _081351D0 .align 2, 0 _081351C0: .4byte gStringVar1 _081351C4: .4byte gUnknown_08400E23 _081351C8: ldr r0, _081351F0 ldr r1, _081351F4 bl StringAppend _081351D0: ldr r0, _081351F0 ldr r1, _081351F8 bl StringAppend _081351D8: ldr r0, _081351F0 movs r1, 0xB muls r1, r6 ldr r2, _081351FC adds r1, r2 bl StringAppend _081351E6: adds r0, r4, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _081351F0: .4byte gStringVar1 _081351F4: .4byte gUnknown_08400E29 _081351F8: .4byte gUnknown_08400E2E _081351FC: .4byte gSpeciesNames thumb_func_end sub_81350E0 thumb_func_start sub_8135200 sub_8135200: @ 8135200 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r2, [sp, 0x20] ldr r4, [sp, 0x24] mov r9, r4 ldr r4, [sp, 0x28] mov r10, r4 ldr r7, [sp, 0x2C] lsls r0, 16 lsrs r4, r0, 16 lsls r1, 16 lsrs r6, r1, 16 lsls r3, 24 lsrs r3, 24 mov r12, r3 lsls r2, 24 lsrs r2, 24 mov r8, r2 movs r2, 0 movs r0, 0xCE lsls r0, 1 cmp r4, r0 beq _081352CE cmp r4, 0 beq _081352CE ldr r0, _081352DC ldrh r1, [r0] ldr r5, _081352E0 adds r3, r0, 0 cmp r1, r5 beq _08135264 cmp r1, r4 beq _08135258 adds r1, r3, 0 _0813524A: adds r1, 0x2 adds r2, 0x1 ldrh r0, [r1] cmp r0, r5 beq _08135264 cmp r0, r4 bne _0813524A _08135258: lsls r0, r2, 1 adds r0, r3 ldrh r1, [r0] ldr r0, _081352E0 cmp r1, r0 bne _081352CE _08135264: mov r0, r12 cmp r0, 0 bne _08135270 mov r1, r8 cmp r1, 0x32 bhi _081352CE _08135270: movs r2, 0 ldrb r3, [r7] cmp r2, r3 bge _08135290 mov r1, r9 ldrh r0, [r1] cmp r0, r4 beq _08135290 adds r5, r3, 0 _08135282: adds r1, 0x2 adds r2, 0x1 cmp r2, r5 bge _08135290 ldrh r0, [r1] cmp r0, r4 bne _08135282 _08135290: cmp r2, r3 bne _081352CE cmp r6, 0 beq _081352BA movs r2, 0 cmp r2, r3 bge _081352B6 mov r1, r10 ldrh r0, [r1] cmp r0, r6 beq _081352B6 adds r5, r3, 0 _081352A8: adds r1, 0x2 adds r2, 0x1 cmp r2, r5 bge _081352B6 ldrh r0, [r1] cmp r0, r6 bne _081352A8 _081352B6: cmp r2, r3 bne _081352CE _081352BA: lsls r0, r3, 1 add r0, r9 strh r4, [r0] ldrb r0, [r7] lsls r0, 1 add r0, r10 strh r6, [r0] ldrb r0, [r7] adds r0, 0x1 strb r0, [r7] _081352CE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081352DC: .4byte gBattleTowerBanlist _081352E0: .4byte 0x0000ffff thumb_func_end sub_8135200 thumb_func_start sub_81352E4 sub_81352E4: @ 81352E4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C add r1, sp, 0x28 movs r0, 0 strb r0, [r1] movs r7, 0 mov r9, r1 add r0, sp, 0x1C mov r10, r0 _081352FE: movs r0, 0x64 adds r5, r7, 0 muls r5, r0 ldr r0, _081353C4 adds r5, r0 adds r0, r5, 0 movs r1, 0x41 bl GetMonData mov r8, r0 mov r1, r8 lsls r1, 16 lsrs r1, 16 mov r8, r1 adds r0, r5, 0 movs r1, 0xC bl GetMonData adds r6, r0, 0 lsls r6, 16 lsrs r6, 16 adds r0, r5, 0 movs r1, 0x38 bl GetMonData adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x39 bl GetMonData adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 ldr r5, _081353C8 ldrb r3, [r5] str r4, [sp] add r0, sp, 0x10 str r0, [sp, 0x4] mov r1, r10 str r1, [sp, 0x8] mov r0, r9 str r0, [sp, 0xC] mov r0, r8 adds r1, r6, 0 bl sub_8135200 adds r7, 0x1 cmp r7, 0x5 ble _081352FE mov r1, r9 ldrb r0, [r1] cmp r0, 0x2 bhi _08135420 ldr r1, _081353CC movs r0, 0xFF strb r0, [r1] ldr r1, _081353D0 movs r0, 0x1 strh r0, [r1] movs r0, 0 mov r1, r9 strb r0, [r1] bl sub_813509C adds r6, r0, 0 ldr r2, _081353D4 ldrh r0, [r2] ldr r1, _081353D8 cmp r0, r1 beq _081353A8 mov r5, r9 adds r7, r1, 0 adds r4, r2, 0 _08135394: ldrh r0, [r4] ldrb r1, [r5] adds r2, r6, 0 bl sub_81350E0 strb r0, [r5] adds r4, 0x2 ldrh r0, [r4] cmp r0, r7 bne _08135394 _081353A8: mov r0, r9 ldrb r1, [r0] cmp r1, 0 bne _081353E4 ldr r4, _081353CC ldr r1, _081353DC adds r0, r4, 0 bl StringAppend ldr r1, _081353E0 adds r0, r4, 0 bl StringAppend b _0813543E .align 2, 0 _081353C4: .4byte gPlayerParty _081353C8: .4byte gScriptResult _081353CC: .4byte gStringVar1 _081353D0: .4byte gUnknown_0202E8CC _081353D4: .4byte gBattleTowerBanlist _081353D8: .4byte 0x0000ffff _081353DC: .4byte gUnknown_08400E2C _081353E0: .4byte gUnknown_08400E32 _081353E4: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08135400 ldr r0, _081353F8 ldr r1, _081353FC bl StringAppend b _08135408 .align 2, 0 _081353F8: .4byte gStringVar1 _081353FC: .4byte gUnknown_08400E2E _08135400: ldr r0, _08135414 ldr r1, _08135418 bl StringAppend _08135408: ldr r0, _08135414 ldr r1, _0813541C bl StringAppend b _0813543E .align 2, 0 _08135414: .4byte gStringVar1 _08135418: .4byte gUnknown_08400E2C _0813541C: .4byte gUnknown_08400E36 _08135420: ldr r1, _08135450 movs r0, 0 strh r0, [r1] ldr r2, _08135454 ldrb r0, [r5] ldr r1, _08135458 adds r2, r1 movs r1, 0x1 ands r1, r0 ldrb r3, [r2] movs r0, 0x2 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] _0813543E: add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08135450: .4byte gUnknown_0202E8CC _08135454: .4byte gSaveBlock2 _08135458: .4byte 0x00000554 thumb_func_end sub_81352E4 thumb_func_start sub_813545C sub_813545C: @ 813545C push {lr} adds r1, r0, 0 ldr r0, _08135470 movs r2, 0x2 movs r3, 0x3 bl sub_80EB544 pop {r0} bx r0 .align 2, 0 _08135470: .4byte gStringVar4 thumb_func_end sub_813545C thumb_func_start sub_8135474 sub_8135474: @ 8135474 push {lr} ldr r2, _08135490 ldr r0, _08135494 adds r1, r2, r0 ldrb r0, [r1] cmp r0, 0xC8 bne _08135498 movs r1, 0x95 lsls r1, 3 adds r0, r2, r1 bl sub_813545C b _081354C4 .align 2, 0 _08135490: .4byte gSaveBlock2 _08135494: .4byte 0x00000564 _08135498: cmp r0, 0x63 bhi _081354B4 ldrb r1, [r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 ldr r1, _081354B0 adds r0, r1 bl sub_813545C b _081354C4 .align 2, 0 _081354B0: .4byte gBattleTowerTrainers + 0xC _081354B4: ldrb r1, [r1] movs r0, 0xA4 muls r0, r1 ldr r3, _081354C8 adds r1, r2, r3 adds r0, r1 bl sub_813545C _081354C4: pop {r0} bx r0 .align 2, 0 _081354C8: .4byte 0xffffc14c thumb_func_end sub_8135474 thumb_func_start sub_81354CC sub_81354CC: @ 81354CC push {r4,r5,lr} sub sp, 0x4 ldr r0, _081354E4 ldrh r0, [r0] cmp r0, 0x1 beq _081354E8 cmp r0, 0x1 ble _08135520 cmp r0, 0x2 beq _0813551C b _08135520 .align 2, 0 _081354E4: .4byte gUnknown_0202E8CC _081354E8: movs r5, 0 _081354EA: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08135514 adds r0, r4, r0 movs r1, 0xC bl GetMonData mov r1, sp strh r0, [r1] ldr r0, _08135518 adds r4, r0 adds r0, r4, 0 movs r1, 0xC mov r2, sp bl SetMonData adds r5, 0x1 cmp r5, 0x5 ble _081354EA b _08135520 .align 2, 0 _08135514: .4byte gSaveBlock1 + 0x238 _08135518: .4byte gPlayerParty _0813551C: bl sub_81360D0 _08135520: ldr r0, _08135530 bl SetMainCallback2 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08135530: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_end sub_81354CC thumb_func_start sub_8135534 sub_8135534: @ 8135534 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_811AAE8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08135558 ldr r0, _08135560 ldr r1, _08135564 str r1, [r0, 0x8] ldr r0, _08135568 bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _08135558: pop {r4} pop {r0} bx r0 .align 2, 0 _08135560: .4byte gMain _08135564: .4byte sub_81354CC _08135568: .4byte sub_800E7C4 thumb_func_end sub_8135534 thumb_func_start sub_813556C sub_813556C: @ 813556C push {r4,r5,lr} sub sp, 0x4 ldr r0, _08135584 ldrh r2, [r0] cmp r2, 0x1 beq _081355AC cmp r2, 0x1 bgt _08135588 cmp r2, 0 beq _0813558E b _08135648 .align 2, 0 _08135584: .4byte gUnknown_0202E8CC _08135588: cmp r2, 0x2 beq _08135600 b _08135648 _0813558E: ldr r1, _081355A4 movs r3, 0x84 lsls r3, 1 adds r0, r3, 0 strh r0, [r1] ldr r0, _081355A8 strh r2, [r0] bl sub_8134DD4 b _081355D6 .align 2, 0 _081355A4: .4byte gUnknown_020239F8 _081355A8: .4byte word_202FF5E _081355AC: movs r5, 0 _081355AE: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _081355F4 adds r0, r4, r0 movs r1, 0xC bl GetMonData mov r1, sp strh r0, [r1] ldr r0, _081355F8 adds r4, r0 adds r0, r4, 0 movs r1, 0xC mov r2, sp bl SetMonData adds r5, 0x1 cmp r5, 0x5 ble _081355AE _081355D6: ldr r0, _081355FC movs r1, 0x1 bl CreateTask movs r0, 0 bl current_map_music_set__default_for_battle bl sub_8082138 lsls r0, 24 lsrs r0, 24 bl sub_811AABC b _08135648 .align 2, 0 _081355F4: .4byte gPlayerParty _081355F8: .4byte gSaveBlock1 + 0x238 _081355FC: .4byte sub_8135534 _08135600: bl ZeroEnemyPartyMons movs r5, 0 _08135606: movs r0, 0x64 muls r0, r5 ldr r1, _08135650 adds r0, r1 movs r1, 0x2C muls r1, r5 ldr r2, _08135654 adds r1, r2 bl sub_803ADE8 adds r5, 0x1 cmp r5, 0x2 ble _08135606 ldr r1, _08135658 ldr r2, _0813565C adds r0, r2, 0 strh r0, [r1] ldr r1, _08135660 movs r0, 0 strh r0, [r1] ldr r0, _08135664 movs r1, 0x1 bl CreateTask movs r0, 0 bl current_map_music_set__default_for_battle bl sub_8082138 lsls r0, 24 lsrs r0, 24 bl sub_811AABC _08135648: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08135650: .4byte gEnemyParty _08135654: .4byte gSaveBlock2 + 0x4CC _08135658: .4byte gUnknown_020239F8 _0813565C: .4byte 0x00000808 _08135660: .4byte word_202FF5E _08135664: .4byte sub_8135534 thumb_func_end sub_813556C thumb_func_start sub_8135668 sub_8135668: @ 8135668 push {r4,r5,lr} ldr r1, _0813568C ldr r2, _08135690 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 31 lsrs r4, r0, 31 ldr r0, _08135694 ldrh r0, [r0] adds r5, r1, 0 cmp r0, 0xE bls _08135682 b _0813589A _08135682: lsls r0, 2 ldr r1, _08135698 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813568C: .4byte gSaveBlock2 _08135690: .4byte 0x00000554 _08135694: .4byte gUnknown_0202E8CC _08135698: .4byte _0813569C .align 2, 0 _0813569C: .4byte _081356D8 .4byte _08135700 .4byte _0813571C .4byte _08135726 .4byte _08135740 .4byte _08135754 .4byte _08135774 .4byte _081357D0 .4byte _081357FC .4byte _0813589A .4byte _08135820 .4byte _08135834 .4byte _0813584C .4byte _0813586C .4byte _08135888 _081356D8: ldr r0, _081356F0 ldr r3, _081356F4 adds r1, r5, r3 adds r1, r4, r1 ldrb r2, [r1] ldr r3, _081356F8 adds r0, r3 strb r2, [r0] ldr r0, _081356FC ldrh r0, [r0] b _08135898 .align 2, 0 _081356F0: .4byte 0x02000000 _081356F4: .4byte 0x00000556 _081356F8: .4byte 0x000160fb _081356FC: .4byte gUnknown_0202E8CE _08135700: ldr r0, _08135714 ldrb r0, [r0] ldr r1, _08135718 adds r3, r5, r1 movs r1, 0x1 ands r1, r0 ldrb r2, [r3] movs r0, 0x2 negs r0, r0 b _08135810 .align 2, 0 _08135714: .4byte gUnknown_0202E8CE _08135718: .4byte 0x00000554 _0813571C: lsls r1, r4, 1 movs r2, 0xAB lsls r2, 3 adds r0, r5, r2 b _0813572C _08135726: lsls r1, r4, 1 ldr r3, _08135738 adds r0, r5, r3 _0813572C: adds r1, r0 ldr r0, _0813573C ldrh r0, [r0] strh r0, [r1] b _0813589A .align 2, 0 _08135738: .4byte 0x0000055c _0813573C: .4byte gUnknown_0202E8CE _08135740: ldr r0, _0813574C ldrh r1, [r0] ldr r2, _08135750 adds r0, r5, r2 strb r1, [r0] b _0813589A .align 2, 0 _0813574C: .4byte gUnknown_0202E8CE _08135750: .4byte 0x00000564 _08135754: movs r2, 0 ldr r4, _0813576C ldr r3, _08135770 _0813575A: adds r0, r2, r4 adds r1, r2, r3 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x2 ble _0813575A b _0813589A .align 2, 0 _0813576C: .4byte gSaveBlock2 + 0x565 _08135770: .4byte gUnknown_02039270 _08135774: ldr r3, _081357C0 adds r0, r5, r3 ldrb r0, [r0] cmp r0, 0xC8 bne _08135788 movs r1, 0x93 lsls r1, 3 adds r0, r5, r1 bl sub_81360AC _08135788: movs r3, 0xAE lsls r3, 3 adds r2, r5, r3 ldrh r1, [r2] ldr r0, _081357C4 cmp r1, r0 bhi _0813579A adds r0, r1, 0x1 strh r0, [r2] _0813579A: lsls r4, 1 movs r1, 0xAB lsls r1, 3 adds r0, r5, r1 adds r4, r0 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] bl sub_8135A3C ldr r1, _081357C8 ldrh r0, [r4] strh r0, [r1] ldr r1, _081357CC adds r0, 0xA1 strb r0, [r1] movs r0, 0xFF strb r0, [r1, 0x1] b _0813589A .align 2, 0 _081357C0: .4byte 0x00000564 _081357C4: .4byte 0x0000270e _081357C8: .4byte gScriptResult _081357CC: .4byte gStringVar1 _081357D0: lsls r0, r4, 1 ldr r2, _081357F0 adds r1, r5, r2 adds r4, r0, r1 ldrh r1, [r4] ldr r0, _081357F4 cmp r1, r0 bhi _081357E4 adds r0, r1, 0x1 strh r0, [r4] _081357E4: bl sub_8135A3C ldr r1, _081357F8 ldrh r0, [r4] strh r0, [r1] b _0813589A .align 2, 0 _081357F0: .4byte 0x0000055c _081357F4: .4byte 0x00000595 _081357F8: .4byte gScriptResult _081357FC: ldr r0, _08135818 ldrb r0, [r0] ldr r1, _0813581C adds r3, r5, r1 movs r1, 0x1 ands r1, r0 lsls r1, 1 ldrb r2, [r3] movs r0, 0x3 negs r0, r0 _08135810: ands r0, r2 orrs r0, r1 strb r0, [r3] b _0813589A .align 2, 0 _08135818: .4byte gUnknown_0202E8CE _0813581C: .4byte 0x00000554 _08135820: ldr r2, _08135830 adds r0, r5, r2 ldrh r1, [r0] movs r0, 0x20 bl sav12_xor_set b _0813589A .align 2, 0 _08135830: .4byte 0x00000572 _08135834: ldr r3, _08135848 adds r0, r5, r3 adds r0, r4, r0 ldrb r0, [r0] cmp r0, 0x3 beq _0813589A adds r0, r4, 0 bl sub_813461C b _0813589A .align 2, 0 _08135848: .4byte 0x00000556 _0813584C: ldr r1, _08135860 adds r0, r5, r1 adds r0, r4, r0 ldr r1, _08135864 ldr r2, _08135868 adds r1, r2 ldrb r1, [r1] strb r1, [r0] b _0813589A .align 2, 0 _08135860: .4byte 0x00000556 _08135864: .4byte 0x02000000 _08135868: .4byte 0x000160fb _0813586C: adds r0, r4, 0 bl sub_8135D3C ldr r1, _08135880 lsls r2, r4, 1 ldr r3, _08135884 adds r1, r3 adds r2, r1 strh r0, [r2] b _0813589A .align 2, 0 _08135880: .4byte gSaveBlock2 _08135884: .4byte 0x00000574 _08135888: ldr r1, _081358A0 adds r0, r5, r1 ldrb r0, [r0] lsls r0, 31 lsrs r0, 31 movs r2, 0xAF lsls r2, 3 adds r1, r5, r2 _08135898: strb r0, [r1] _0813589A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081358A0: .4byte 0x00000554 thumb_func_end sub_8135668 thumb_func_start sub_81358A4 sub_81358A4: @ 81358A4 push {r4,lr} ldr r1, _081358C8 ldr r2, _081358CC adds r0, r1, r2 ldrb r0, [r0] lsls r0, 31 lsrs r4, r0, 31 ldr r0, _081358D0 ldrh r0, [r0] adds r3, r1, 0 cmp r0, 0xE bls _081358BE b _08135A0A _081358BE: lsls r0, 2 ldr r1, _081358D4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081358C8: .4byte gSaveBlock2 _081358CC: .4byte 0x00000554 _081358D0: .4byte gUnknown_0202E8CC _081358D4: .4byte _081358D8 .align 2, 0 _081358D8: .4byte _08135914 .4byte _08135928 .4byte _0813593C .4byte _0813594C .4byte _08135964 .4byte _08135A0A .4byte _08135A0A .4byte _08135A0A .4byte _08135978 .4byte _08135990 .4byte _081359A0 .4byte _081359B4 .4byte _081359BC .4byte _081359DC .4byte _081359F8 _08135914: ldr r0, _08135920 ldr r2, _08135924 adds r1, r3, r2 adds r1, r4, r1 b _0813596A .align 2, 0 _08135920: .4byte gScriptResult _08135924: .4byte 0x00000556 _08135928: ldr r1, _08135934 ldr r4, _08135938 adds r0, r3, r4 ldrb r0, [r0] lsls r0, 31 b _08135982 .align 2, 0 _08135934: .4byte gScriptResult _08135938: .4byte 0x00000554 _0813593C: ldr r2, _08135948 lsls r0, r4, 1 movs r4, 0xAB lsls r4, 3 b _08135952 .align 2, 0 _08135948: .4byte gScriptResult _0813594C: ldr r2, _0813595C lsls r0, r4, 1 ldr r4, _08135960 _08135952: adds r1, r3, r4 adds r0, r1 ldrh r0, [r0] strh r0, [r2] b _08135A0A .align 2, 0 _0813595C: .4byte gScriptResult _08135960: .4byte 0x0000055c _08135964: ldr r0, _08135970 ldr r2, _08135974 adds r1, r3, r2 _0813596A: ldrb r1, [r1] strh r1, [r0] b _08135A0A .align 2, 0 _08135970: .4byte gScriptResult _08135974: .4byte 0x00000564 _08135978: ldr r1, _08135988 ldr r4, _0813598C adds r0, r3, r4 ldrb r0, [r0] lsls r0, 30 _08135982: lsrs r0, 31 strh r0, [r1] b _08135A0A .align 2, 0 _08135988: .4byte gScriptResult _0813598C: .4byte 0x00000554 _08135990: adds r0, r4, 0 bl sub_8135D3C ldr r1, _0813599C strh r0, [r1] b _08135A0A .align 2, 0 _0813599C: .4byte gScriptResult _081359A0: ldr r1, _081359B0 adds r0, r3, r1 ldrh r1, [r0] movs r0, 0x20 bl sav12_xor_set b _08135A0A .align 2, 0 _081359B0: .4byte 0x00000572 _081359B4: adds r0, r4, 0 bl sub_813461C b _08135A0A _081359BC: ldr r2, _081359D0 adds r0, r3, r2 adds r0, r4, r0 ldr r1, _081359D4 ldr r3, _081359D8 adds r1, r3 ldrb r1, [r1] strb r1, [r0] b _08135A0A .align 2, 0 _081359D0: .4byte 0x00000556 _081359D4: .4byte 0x02000000 _081359D8: .4byte 0x000160fb _081359DC: adds r0, r4, 0 bl sub_8135D3C ldr r1, _081359F0 lsls r2, r4, 1 ldr r4, _081359F4 adds r1, r4 adds r2, r1 strh r0, [r2] b _08135A0A .align 2, 0 _081359F0: .4byte gSaveBlock2 _081359F4: .4byte 0x00000574 _081359F8: ldr r1, _08135A10 adds r0, r3, r1 ldrb r0, [r0] lsls r0, 31 lsrs r0, 31 movs r2, 0xAF lsls r2, 3 adds r1, r3, r2 strb r0, [r1] _08135A0A: pop {r4} pop {r0} bx r0 .align 2, 0 _08135A10: .4byte 0x00000554 thumb_func_end sub_81358A4 thumb_func_start sub_8135A14 sub_8135A14: @ 8135A14 push {r4,lr} movs r2, 0 ldr r4, _08135A34 ldr r3, _08135A38 _08135A1C: adds r0, r2, r4 adds r1, r2, r3 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x2 ble _08135A1C bl sub_80C5604 pop {r4} pop {r0} bx r0 .align 2, 0 _08135A34: .4byte gUnknown_02039270 _08135A38: .4byte gSaveBlock2 + 0x565 thumb_func_end sub_8135A14 thumb_func_start sub_8135A3C sub_8135A3C: @ 8135A3C push {r4-r6,lr} ldr r6, _08135A84 ldr r1, _08135A88 adds r0, r6, r1 ldrb r4, [r0] lsls r4, 31 lsrs r4, 31 adds r0, r4, 0 bl sub_8135D3C lsls r0, 16 lsrs r5, r0, 16 lsls r4, 1 movs r3, 0xAC lsls r3, 3 adds r2, r6, r3 adds r4, r2 ldrh r0, [r4] cmp r0, r5 bcs _08135A66 strh r5, [r4] _08135A66: ldr r0, _08135A8C adds r1, r6, r0 ldrh r0, [r2] ldrh r3, [r1] cmp r0, r3 bls _08135A94 adds r5, r0, 0 movs r0, 0x20 adds r1, r5, 0 bl sav12_xor_set ldr r1, _08135A90 cmp r5, r1 bhi _08135AA4 b _08135AB4 .align 2, 0 _08135A84: .4byte gSaveBlock2 _08135A88: .4byte 0x00000554 _08135A8C: .4byte 0x00000562 _08135A90: .4byte 0x0000270f _08135A94: ldrh r5, [r1] movs r0, 0x20 adds r1, r5, 0 bl sav12_xor_set ldr r1, _08135AAC cmp r5, r1 bls _08135AB4 _08135AA4: ldr r2, _08135AB0 adds r0, r6, r2 strh r1, [r0] b _08135ABA .align 2, 0 _08135AAC: .4byte 0x0000270f _08135AB0: .4byte 0x00000572 _08135AB4: ldr r3, _08135AC0 adds r0, r6, r3 strh r5, [r0] _08135ABA: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08135AC0: .4byte 0x00000572 thumb_func_end sub_8135A3C thumb_func_start sub_8135AC4 sub_8135AC4: @ 8135AC4 push {r4-r6,lr} ldr r5, _08135AF0 adds r2, r5, 0 subs r2, 0xA8 ldr r1, _08135AF4 adds r0, r5, r1 ldrb r0, [r0] lsls r0, 31 lsrs r6, r0, 31 ldrb r0, [r2, 0x8] cmp r0, 0 beq _08135AFC ldr r4, _08135AF8 ldrb r0, [r2, 0xA] ldrb r1, [r2, 0xB] adds r0, r1 ldrb r1, [r2, 0xC] adds r0, r1 ldrb r1, [r2, 0xD] adds r0, r1 movs r1, 0x14 b _08135B0E .align 2, 0 _08135AF0: .4byte gSaveBlock2 + 0xA8 _08135AF4: .4byte 0x000004ac _08135AF8: .4byte gUnknown_08405E7E _08135AFC: ldr r4, _08135B84 ldrb r0, [r2, 0xA] ldrb r1, [r2, 0xB] adds r0, r1 ldrb r1, [r2, 0xC] adds r0, r1 ldrb r1, [r2, 0xD] adds r0, r1 movs r1, 0x1E _08135B0E: bl __umodsi3 adds r0, r4 ldrb r0, [r0] strb r6, [r5] strb r0, [r5, 0x1] adds r0, r5, 0 adds r0, 0xC ldr r4, _08135B88 adds r1, r4, 0 bl sub_8052D10 adds r0, r5, 0x4 subs r4, 0xA adds r1, r4, 0 bl StringCopy8 adds r0, r6, 0 bl sub_8135D3C strh r0, [r5, 0x2] ldr r0, _08135B8C ldr r1, _08135B90 adds r2, r0, r1 adds r1, r5, 0 adds r1, 0x10 movs r4, 0x5 _08135B44: ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 adds r1, 0x2 subs r4, 0x1 cmp r4, 0 bge _08135B44 movs r4, 0 ldr r6, _08135B94 _08135B56: adds r0, r4, r6 ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08135B98 adds r0, r1 movs r1, 0x2C muls r1, r4 adds r1, 0x1C adds r1, r5, r1 bl sub_803AF78 adds r4, 0x1 cmp r4, 0x2 ble _08135B56 ldr r0, _08135B9C bl sub_8135CC4 bl sub_8135A3C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08135B84: .4byte gUnknown_08405E60 _08135B88: .4byte gSaveBlock2 + 0xA _08135B8C: .4byte gSaveBlock1 _08135B90: .4byte 0x00002b28 _08135B94: .4byte gSaveBlock2 + 0x565 _08135B98: .4byte gUnknown_030042FC _08135B9C: .4byte gSaveBlock2 + 0xA8 thumb_func_end sub_8135AC4 thumb_func_start sub_8135BA0 sub_8135BA0: @ 8135BA0 push {r4,r5,lr} ldr r2, _08135C1C ldr r1, _08135C20 adds r0, r2, r1 ldrb r0, [r0] lsls r0, 31 lsrs r5, r0, 31 ldr r0, _08135C24 ldrh r0, [r0] cmp r0, 0x3 beq _08135BBA cmp r0, 0 bne _08135BD8 _08135BBA: lsls r1, r5, 1 ldr r3, _08135C28 adds r0, r2, r3 adds r0, r1, r0 ldrh r0, [r0] cmp r0, 0x1 bhi _08135BD4 subs r3, 0x4 adds r0, r2, r3 adds r0, r1, r0 ldrh r0, [r0] cmp r0, 0x1 bls _08135BD8 _08135BD4: bl sub_8135AC4 _08135BD8: bl sub_8135CFC ldr r4, _08135C1C ldr r0, _08135C2C ldrb r1, [r0] ldr r2, _08135C30 adds r0, r4, r2 strb r1, [r0] ldr r0, _08135C24 ldrh r1, [r0] cmp r1, 0x3 beq _08135BF8 ldr r3, _08135C34 adds r0, r4, r3 adds r0, r5, r0 strb r1, [r0] _08135BF8: movs r0, 0x80 lsls r0, 7 movs r1, 0 bl VarSet ldr r0, _08135C20 adds r2, r4, r0 ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] movs r0, 0x2 bl sub_8125D44 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08135C1C: .4byte gSaveBlock2 _08135C20: .4byte 0x00000554 _08135C24: .4byte gUnknown_0202E8CC _08135C28: .4byte 0x0000055c _08135C2C: .4byte gUnknown_02024D26 _08135C30: .4byte 0x00000555 _08135C34: .4byte 0x00000556 thumb_func_end sub_8135BA0 thumb_func_start sub_8135C38 sub_8135C38: @ 8135C38 push {lr} bl DoSoftReset pop {r0} bx r0 thumb_func_end sub_8135C38 thumb_func_start sub_8135C44 sub_8135C44: @ 8135C44 push {r4-r7,lr} mov r7, r8 push {r7} movs r3, 0 movs r1, 0 ldr r2, _08135CBC _08135C50: ldm r2!, {r0} adds r3, r0 adds r1, 0x1 cmp r1, 0x27 bls _08135C50 ldr r5, _08135CC0 movs r1, 0xA4 lsls r1, 1 adds r0, r5, r1 ldr r0, [r0] cmp r0, r3 beq _08135C70 adds r0, r5, 0 adds r0, 0xA8 bl sub_8135CE8 _08135C70: movs r4, 0 movs r7, 0xA4 movs r0, 0xA6 lsls r0, 1 adds r6, r5, r0 mov r8, r5 _08135C7C: adds r0, r4, 0 muls r0, r7 movs r3, 0 movs r1, 0 adds r5, r4, 0x1 adds r2, r0, r6 _08135C88: ldm r2!, {r0} adds r3, r0 adds r1, 0x1 cmp r1, 0x27 bls _08135C88 adds r1, r4, 0 muls r1, r7 movs r0, 0xF6 lsls r0, 1 add r0, r8 adds r0, r1, r0 ldr r0, [r0] cmp r0, r3 beq _08135CAA adds r0, r1, r6 bl sub_8135CE8 _08135CAA: adds r4, r5, 0 cmp r4, 0x4 ble _08135C7C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08135CBC: .4byte gSaveBlock2 + 0xA8 _08135CC0: .4byte gSaveBlock2 thumb_func_end sub_8135C44 thumb_func_start sub_8135CC4 sub_8135CC4: @ 8135CC4 push {r4,lr} adds r2, r0, 0 adds r2, 0xA0 movs r1, 0 str r1, [r2] movs r3, 0 adds r4, r0, 0 _08135CD2: ldr r0, [r2] ldm r4!, {r1} adds r0, r1 str r0, [r2] adds r3, 0x1 cmp r3, 0x27 bls _08135CD2 pop {r4} pop {r0} bx r0 thumb_func_end sub_8135CC4 thumb_func_start sub_8135CE8 sub_8135CE8: @ 8135CE8 push {lr} movs r1, 0 movs r2, 0 _08135CEE: stm r0!, {r2} adds r1, 0x1 cmp r1, 0x28 bls _08135CEE pop {r0} bx r0 thumb_func_end sub_8135CE8 thumb_func_start sub_8135CFC sub_8135CFC: @ 8135CFC push {r4,lr} ldr r4, _08135D34 adds r0, r4, 0 bl get_trainer_name ldr r2, _08135D38 adds r0, r2, 0 adds r0, 0x58 ldrh r1, [r0] subs r0, r4, 0x2 strh r1, [r0] ldrh r1, [r2] subs r0, r4, 0x4 strh r1, [r0] movs r3, 0 adds r4, 0x8 adds r2, 0x30 _08135D1E: adds r0, r3, r4 adds r1, r3, r2 ldrb r1, [r1] strb r1, [r0] adds r3, 0x1 cmp r3, 0x9 ble _08135D1E pop {r4} pop {r0} bx r0 .align 2, 0 _08135D34: .4byte gSaveBlock2 + 0x484 _08135D38: .4byte gBattleMons thumb_func_end sub_8135CFC thumb_func_start sub_8135D3C sub_8135D3C: @ 8135D3C push {lr} lsls r0, 24 ldr r3, _08135D74 lsrs r0, 23 ldr r2, _08135D78 adds r1, r3, r2 adds r1, r0, r1 ldrh r2, [r1] subs r2, 0x1 lsls r1, r2, 3 subs r1, r2 movs r2, 0xAB lsls r2, 3 adds r3, r2 adds r0, r3 ldr r2, _08135D7C adds r1, r2 ldrh r0, [r0] adds r1, r0 lsls r1, 16 lsrs r0, r1, 16 ldr r1, _08135D80 cmp r0, r1 bls _08135D6E adds r0, r1, 0 _08135D6E: pop {r1} bx r1 .align 2, 0 _08135D74: .4byte gSaveBlock2 _08135D78: .4byte 0x0000055c _08135D7C: .4byte 0x0000ffff _08135D80: .4byte 0x0000270f thumb_func_end sub_8135D3C thumb_func_start sub_8135D84 sub_8135D84: @ 8135D84 push {r4,r5,lr} ldr r5, _08135DB0 ldr r1, _08135DB4 adds r0, r5, r1 ldrb r0, [r0] lsls r0, 31 lsrs r0, 31 lsls r0, 1 ldr r2, _08135DB8 adds r1, r5, r2 adds r0, r1 ldrh r0, [r0] subs r0, 0x1 cmp r0, 0x5 ble _08135DC0 bl Random ldr r4, _08135DBC lsls r0, 16 lsrs r0, 16 movs r1, 0x9 b _08135DCC .align 2, 0 _08135DB0: .4byte gSaveBlock2 _08135DB4: .4byte 0x00000554 _08135DB8: .4byte 0x0000055c _08135DBC: .4byte gUnknown_08405EE6 _08135DC0: bl Random ldr r4, _08135DE8 lsls r0, 16 lsrs r0, 16 movs r1, 0x6 _08135DCC: bl __umodsi3 lsls r0, 16 lsrs r0, 15 adds r0, r4 ldrh r1, [r0] movs r2, 0xAD lsls r2, 3 adds r0, r5, r2 strh r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08135DE8: .4byte gUnknown_08405EDA thumb_func_end sub_8135D84 thumb_func_start sub_8135DEC sub_8135DEC: @ 8135DEC push {r4-r7,lr} ldr r5, _08135E20 ldr r1, _08135E24 adds r0, r5, r1 ldrb r0, [r0] lsls r0, 31 lsrs r7, r0, 31 movs r0, 0xAD lsls r0, 3 adds r6, r5, r0 ldrh r0, [r6] movs r1, 0x1 bl sub_80A9424 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bne _08135E30 ldrh r0, [r6] ldr r1, _08135E28 bl itemid_copy_name ldr r0, _08135E2C strh r4, [r0] b _08135E40 .align 2, 0 _08135E20: .4byte gSaveBlock2 _08135E24: .4byte 0x00000554 _08135E28: .4byte gStringVar1 _08135E2C: .4byte gScriptResult _08135E30: ldr r1, _08135E48 movs r0, 0 strh r0, [r1] ldr r1, _08135E4C adds r0, r5, r1 adds r0, r7, r0 movs r1, 0x6 strb r1, [r0] _08135E40: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08135E48: .4byte gScriptResult _08135E4C: .4byte 0x00000556 thumb_func_end sub_8135DEC thumb_func_start sub_8135E50 sub_8135E50: @ 8135E50 push {r4-r7,lr} mov r7, r8 push {r7} ldr r6, _08135ED4 ldr r1, _08135ED8 adds r0, r6, r1 ldrb r0, [r0] lsls r0, 31 lsrs r0, 31 adds r1, r0, 0 movs r7, 0x44 cmp r1, 0 beq _08135E6C movs r7, 0x45 _08135E6C: ldr r4, _08135EDC movs r0, 0 strh r0, [r4] adds r0, r1, 0 bl sub_8135D3C lsls r0, 16 lsrs r0, 16 cmp r0, 0x37 bls _08135EBA movs r5, 0 ldr r0, _08135EE0 adds r0, r6 mov r8, r0 adds r6, r4, 0 _08135E8A: mov r1, r8 adds r0, r5, r1 ldrb r0, [r0] subs r0, 0x1 movs r1, 0x64 muls r1, r0 ldr r0, _08135EE4 adds r4, r1, r0 adds r0, r4, 0 adds r1, r7, 0 bl GetMonData cmp r0, 0 bne _08135EB4 movs r0, 0x1 strh r0, [r6] adds r0, r4, 0 adds r1, r7, 0 adds r2, r6, 0 bl SetMonData _08135EB4: adds r5, 0x1 cmp r5, 0x2 ble _08135E8A _08135EBA: ldr r0, _08135EDC ldrh r0, [r0] cmp r0, 0 beq _08135EC8 movs r0, 0x2A bl sav12_xor_increment _08135EC8: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08135ED4: .4byte gSaveBlock2 _08135ED8: .4byte 0x00000554 _08135EDC: .4byte gScriptResult _08135EE0: .4byte 0x00000565 _08135EE4: .4byte gPlayerParty thumb_func_end sub_8135E50 thumb_func_start unref_sub_8135EE8 unref_sub_8135EE8: @ 8135EE8 push {r4-r7,lr} ldr r7, _08135F0C ldr r0, _08135F10 adds r2, r7, r0 ldrb r0, [r2, 0x8] cmp r0, 0 beq _08135F18 ldr r4, _08135F14 ldrb r0, [r2, 0xA] ldrb r1, [r2, 0xB] adds r0, r1 ldrb r1, [r2, 0xC] adds r0, r1 ldrb r1, [r2, 0xD] adds r0, r1 movs r1, 0x14 b _08135F2A .align 2, 0 _08135F0C: .4byte gSaveBlock2 + 0x498 _08135F10: .4byte 0xfffffb68 _08135F14: .4byte gUnknown_08405E7E _08135F18: ldr r4, _08135FA8 ldrb r0, [r2, 0xA] ldrb r1, [r2, 0xB] adds r0, r1 ldrb r1, [r2, 0xC] adds r0, r1 ldrb r1, [r2, 0xD] adds r0, r1 movs r1, 0x1E _08135F2A: bl __umodsi3 adds r0, r4 ldrb r0, [r0] strb r0, [r7, 0x1] adds r0, r7, 0 adds r0, 0xC ldr r4, _08135FAC adds r1, r4, 0 bl sub_8052D10 adds r0, r7, 0x4 subs r4, 0xA adds r1, r4, 0 bl StringCopy8 movs r0, 0x1 strh r0, [r7, 0x2] movs r5, 0x7 movs r4, 0 ldr r0, _08135FB0 ldr r1, _08135FB4 adds r6, r0, r1 adds r3, r7, 0 adds r3, 0x10 adds r2, r7, 0 adds r2, 0x28 adds r1, r7, 0 adds r1, 0x1C _08135F64: ldrh r0, [r6] strh r0, [r3] strh r5, [r1] adds r0, r5, 0x6 strh r0, [r2] adds r5, 0x1 adds r6, 0x2 adds r3, 0x2 adds r2, 0x2 adds r1, 0x2 adds r4, 0x1 cmp r4, 0x5 ble _08135F64 movs r4, 0 _08135F80: movs r0, 0x64 muls r0, r4 ldr r1, _08135FB8 adds r0, r1 movs r1, 0x2C muls r1, r4 adds r1, 0x34 adds r1, r7, r1 bl sub_803AF78 adds r4, 0x1 cmp r4, 0x2 ble _08135F80 adds r0, r7, 0 bl sub_8136088 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08135FA8: .4byte gUnknown_08405E60 _08135FAC: .4byte gSaveBlock2 + 0xA _08135FB0: .4byte gSaveBlock1 _08135FB4: .4byte 0x00002b28 _08135FB8: .4byte gPlayerParty thumb_func_end unref_sub_8135EE8 thumb_func_start sub_8135FBC sub_8135FBC: @ 8135FBC ldr r1, _08135FCC ldr r0, _08135FD0 ldr r2, _08135FD4 adds r0, r2 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _08135FCC: .4byte gTrainerClassToPicIndex _08135FD0: .4byte gSaveBlock2 _08135FD4: .4byte 0x00000499 thumb_func_end sub_8135FBC thumb_func_start sub_8135FD8 sub_8135FD8: @ 8135FD8 ldr r1, _08135FE8 ldr r0, _08135FEC ldr r2, _08135FF0 adds r0, r2 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _08135FE8: .4byte gTrainerClassToNameIndex _08135FEC: .4byte gSaveBlock2 _08135FF0: .4byte 0x00000499 thumb_func_end sub_8135FD8 thumb_func_start sub_8135FF4 sub_8135FF4: @ 8135FF4 push {r4,lr} adds r3, r0, 0 movs r2, 0 ldr r4, _08136018 _08135FFC: adds r0, r3, r2 adds r1, r2, r4 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x6 ble _08135FFC adds r1, r3, r2 movs r0, 0xFF strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08136018: .4byte gSaveBlock2 + 0x49C thumb_func_end sub_8135FF4 thumb_func_start sub_813601C sub_813601C: @ 813601C push {r4,r5,lr} ldr r1, _08136044 movs r0, 0 strh r0, [r1] ldr r5, _08136048 movs r3, 0 movs r2, 0 adds r4, r1, 0 adds r1, r5, 0 _0813602E: ldm r1!, {r0} orrs r3, r0 adds r2, 0x1 cmp r2, 0x2D bls _0813602E cmp r3, 0 bne _0813604C movs r0, 0x1 strh r0, [r4] b _08136078 .align 2, 0 _08136044: .4byte gScriptResult _08136048: .4byte gSaveBlock2 + 0x498 _0813604C: movs r3, 0 movs r2, 0 ldr r4, _08136080 adds r1, r5, 0 _08136054: ldm r1!, {r0} adds r3, r0 adds r2, 0x1 cmp r2, 0x2D bls _08136054 movs r1, 0xAA lsls r1, 3 adds r0, r4, r1 ldr r0, [r0] cmp r0, r3 beq _08136078 subs r1, 0xB8 adds r0, r4, r1 bl sub_81360AC ldr r1, _08136084 movs r0, 0x1 strh r0, [r1] _08136078: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08136080: .4byte gSaveBlock2 _08136084: .4byte gScriptResult thumb_func_end sub_813601C thumb_func_start sub_8136088 sub_8136088: @ 8136088 push {r4,lr} adds r2, r0, 0 adds r2, 0xB8 movs r1, 0 str r1, [r2] movs r3, 0 adds r4, r0, 0 _08136096: ldr r0, [r2] ldm r4!, {r1} adds r0, r1 str r0, [r2] adds r3, 0x1 cmp r3, 0x2D bls _08136096 pop {r4} pop {r0} bx r0 thumb_func_end sub_8136088 thumb_func_start sub_81360AC sub_81360AC: @ 81360AC push {lr} movs r1, 0 movs r2, 0 _081360B2: stm r0!, {r2} adds r1, 0x1 cmp r1, 0x2E bls _081360B2 pop {r0} bx r0 thumb_func_end sub_81360AC thumb_func_start sub_81360C0 sub_81360C0: @ 81360C0 push {lr} ldr r0, _081360CC bl sub_813545C pop {r0} bx r0 .align 2, 0 _081360CC: .4byte gSaveBlock2 + 0x4A8 thumb_func_end sub_81360C0 thumb_func_start sub_81360D0 sub_81360D0: @ 81360D0 push {lr} ldr r0, _081360E4 ldrb r0, [r0] cmp r0, 0x3 bne _081360EC ldr r1, _081360E8 movs r0, 0xFF strb r0, [r1] b _08136102 .align 2, 0 _081360E4: .4byte gUnknown_02024D26 _081360E8: .4byte gStringVar4 _081360EC: cmp r0, 0x1 bne _081360FC ldr r0, _081360F8 bl sub_813545C b _08136102 .align 2, 0 _081360F8: .4byte gSaveBlock2 + 0x4C0 _081360FC: ldr r0, _08136108 bl sub_813545C _08136102: pop {r0} bx r0 .align 2, 0 _08136108: .4byte gSaveBlock2 + 0x4B4 thumb_func_end sub_81360D0 thumb_func_start sub_813610C sub_813610C: @ 813610C push {r4,r5,lr} movs r4, 0 ldr r5, _0813612C _08136112: adds r0, r4, r5 ldrb r0, [r0] cmp r0, 0x1 bne _0813611E bl sub_80BFD20 _0813611E: adds r4, 0x1 cmp r4, 0x1 ble _08136112 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813612C: .4byte gSaveBlock2 + 0x556 thumb_func_end sub_813610C thumb_func_start sub_8136130 sub_8136130: @ 8136130 push {r4,r5,lr} ldr r4, _0813615C ldr r2, _08136160 ldr r3, [r2] ldr r5, _08136164 adds r2, r3, r5 str r2, [r4] str r0, [r2, 0x8] str r1, [r2, 0x4] ldr r0, _08136168 adds r3, r0 movs r0, 0x2 strb r0, [r3] ldr r0, _0813616C bl launch_c3_walk_stairs_and_run_once ldr r0, _08136170 bl SetMainCallback2 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813615C: .4byte gUnknown_02039304 _08136160: .4byte gUnknown_083DFEC4 _08136164: .4byte 0x0000d164 _08136168: .4byte 0x0000d162 _0813616C: .4byte sub_8136294 _08136170: .4byte sub_8136244 thumb_func_end sub_8136130 thumb_func_start sub_8136174 sub_8136174: @ 8136174 push {r4,r5,lr} ldr r5, _081361C4 ldr r1, [r5] ldr r0, _081361C8 ldr r0, [r0] str r0, [r1, 0x8] ldr r0, _081361CC ldr r0, [r0] str r0, [r1, 0x4] ldr r4, _081361D0 ldrb r0, [r4] bl sub_81370E4 strb r0, [r4] ldr r5, [r5] movs r1, 0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _0813619E movs r1, 0x1 _0813619E: adds r0, r5, 0 adds r0, 0x56 strb r1, [r0] ldr r0, _081361D4 ldr r0, [r0] ldr r1, _081361D8 adds r0, r1 movs r1, 0x2 strb r1, [r0] ldr r0, _081361DC bl launch_c3_walk_stairs_and_run_once ldr r0, _081361E0 bl SetMainCallback2 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081361C4: .4byte gUnknown_02039304 _081361C8: .4byte gUnknown_0203930C _081361CC: .4byte gUnknown_02039308 _081361D0: .4byte gUnknown_02039310 _081361D4: .4byte gUnknown_083DFEC4 _081361D8: .4byte 0x0000d162 _081361DC: .4byte sub_8136294 _081361E0: .4byte sub_81361E4 thumb_func_end sub_8136174 thumb_func_start sub_81361E4 sub_81361E4: @ 81361E4 push {r4,lr} ldr r4, _08136220 ldr r0, [r4] ldr r0, [r0] bl _call_via_r0 bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade ldr r4, [r4] ldr r1, [r4] ldr r0, _08136224 cmp r1, r0 bne _0813621A movs r0, 0x80 lsls r0, 19 movs r1, 0 strh r1, [r0] adds r0, r4, 0 adds r0, 0x50 strb r1, [r0] ldr r0, _08136228 bl SetMainCallback2 _0813621A: pop {r4} pop {r0} bx r0 .align 2, 0 _08136220: .4byte gUnknown_02039304 _08136224: .4byte sub_81365C8 _08136228: .4byte sub_813622C thumb_func_end sub_81361E4 thumb_func_start sub_813622C sub_813622C: @ 813622C push {lr} bl sub_81368A4 bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_813622C thumb_func_start sub_8136244 sub_8136244: @ 8136244 push {lr} ldr r0, _08136260 ldr r0, [r0] ldr r0, [r0] bl _call_via_r0 bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 .align 2, 0 _08136260: .4byte gUnknown_02039304 thumb_func_end sub_8136244 thumb_func_start sub_8136264 sub_8136264: @ 8136264 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer movs r0, 0x6 bl sub_80F5CDC bl sub_8089668 pop {r0} bx r0 thumb_func_end sub_8136264 thumb_func_start launch_c3_walk_stairs_and_run_once launch_c3_walk_stairs_and_run_once: @ 8136280 ldr r1, _08136290 ldr r1, [r1] str r0, [r1] adds r1, 0x50 movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _08136290: .4byte gUnknown_02039304 thumb_func_end launch_c3_walk_stairs_and_run_once thumb_func_start sub_8136294 sub_8136294: @ 8136294 push {r4,r5,lr} sub sp, 0x4 ldr r1, _081362B4 ldr r0, [r1] adds r0, 0x50 ldrb r0, [r0] adds r3, r1, 0 cmp r0, 0x16 bls _081362A8 b _0813657A _081362A8: lsls r0, 2 ldr r1, _081362B8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081362B4: .4byte gUnknown_02039304 _081362B8: .4byte _081362BC .align 2, 0 _081362BC: .4byte _08136318 .4byte _08136354 .4byte _0813635E .4byte _08136366 .4byte _08136374 .4byte _08136380 .4byte _0813638C .4byte _081363B8 .4byte _081363C8 .4byte _081363DC .4byte _081363EE .4byte _08136404 .4byte _08136448 .4byte _08136464 .4byte _08136488 .4byte _08136494 .4byte _0813649A .4byte _081364D8 .4byte _081364FC .4byte _08136508 .4byte _08136520 .4byte _08136538 .4byte _0813656C _08136318: bl is_c1_link_related_active ldr r1, _08136344 ldr r1, [r1] ldr r2, _08136348 adds r1, r2 strb r0, [r1] lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _08136330 b _0813657A _08136330: ldr r4, _0813634C ldr r0, [r4] adds r0, 0x55 strb r1, [r0] ldr r0, _08136350 bl launch_c3_walk_stairs_and_run_once ldr r1, [r4] b _08136528 .align 2, 0 _08136344: .4byte gUnknown_083DFEC4 _08136348: .4byte 0x00006dac _0813634C: .4byte gUnknown_02039304 _08136350: .4byte sub_81365A0 _08136354: bl ResetSpriteData bl FreeAllSpritePalettes b _08136524 _0813635E: movs r0, 0 bl SetVBlankCallback b _08136524 _08136366: ldr r0, _08136370 bl SetUpWindowConfig b _08136524 .align 2, 0 _08136370: .4byte gWindowConfig_81E7080 _08136374: ldr r0, _0813637C bl MultistepInitMenuWindowBegin b _08136524 .align 2, 0 _0813637C: .4byte gWindowConfig_81E7080 _08136380: bl MultistepInitMenuWindowContinue cmp r0, 0 bne _0813638A b _0813657A _0813638A: b _08136524 _0813638C: ldr r0, _081363AC ldr r1, [r0] ldr r4, _081363B0 adds r0, r1, r4 movs r2, 0 strb r2, [r0] ldr r4, _081363B4 adds r0, r1, r4 str r2, [r0] movs r0, 0xC3 lsls r0, 2 adds r1, r0 movs r0, 0x20 strh r0, [r1] ldr r1, [r3] b _08136528 .align 2, 0 _081363AC: .4byte gUnknown_083DFEC4 _081363B0: .4byte 0x000076aa _081363B4: .4byte 0x000087e0 _081363B8: bl sub_80F2688 ldr r0, _081363D8 ldr r1, [r0] adds r1, 0x50 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _081363C8: bl sub_80F26BC lsls r0, 24 cmp r0, 0 beq _081363D4 b _0813657A _081363D4: b _08136524 .align 2, 0 _081363D8: .4byte gUnknown_02039304 _081363DC: movs r0, 0x1 bl sub_80F2C80 ldr r0, _08136400 ldr r1, [r0] adds r1, 0x50 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _081363EE: movs r0, 0x1 bl sub_80F2CBC lsls r0, 24 cmp r0, 0 beq _081363FC b _0813657A _081363FC: b _08136524 .align 2, 0 _08136400: .4byte gUnknown_02039304 _08136404: ldr r1, _08136434 movs r0, 0x14 strh r0, [r1] bl CalculatePlayerPartyCount ldr r1, _08136438 ldr r4, [r1] ldr r2, _0813643C adds r1, r4, r2 movs r5, 0 strb r0, [r1] ldr r1, _08136440 adds r0, r4, r1 strb r5, [r0] subs r2, 0xC0 adds r0, r4, r2 str r5, [r0] bl sub_80F4BD0 ldr r0, _08136444 adds r4, r0 strh r5, [r4] b _08136524 .align 2, 0 _08136434: .4byte gKeyRepeatStartDelay _08136438: .4byte gUnknown_083DFEC4 _0813643C: .4byte 0x00008828 _08136440: .4byte 0x00009344 _08136444: .4byte 0x0000d160 _08136448: bl sub_80F1778 lsls r0, 24 cmp r0, 0 beq _08136454 b _0813657A _08136454: ldr r0, _08136460 movs r1, 0x6 strh r1, [r0] adds r0, 0x4 strh r1, [r0] b _08136524 .align 2, 0 _08136460: .4byte REG_BG2VOFS _08136464: movs r0, 0 bl sub_80F2E18 ldr r0, _0813647C ldr r0, [r0] ldr r1, _08136480 adds r0, r1 ldr r1, [r0] ldr r0, _08136484 strh r0, [r1, 0x26] b _08136524 .align 2, 0 _0813647C: .4byte gUnknown_083DFEC4 _08136480: .4byte 0x00008768 _08136484: .4byte 0x0000ffd8 _08136488: bl sub_80F170C lsls r0, 24 cmp r0, 0 bne _0813657A b _08136524 _08136494: bl sub_80F33A8 b _08136524 _0813649A: ldr r1, _081364C4 movs r2, 0 str r2, [sp] ldr r0, _081364C8 mov r4, sp str r4, [r0] str r1, [r0, 0x4] ldr r1, _081364CC str r1, [r0, 0x8] ldr r0, [r0, 0x8] ldr r0, _081364D0 strh r2, [r0] subs r0, 0x2 strh r2, [r0] ldr r1, _081364D4 movs r2, 0xF8 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r1, [r3] b _08136528 .align 2, 0 _081364C4: .4byte 0x0600f800 _081364C8: .4byte 0x040000d4 _081364CC: .4byte 0x85000200 _081364D0: .4byte REG_BG1VOFS _081364D4: .4byte REG_BG1CNT _081364D8: ldr r0, _081364F0 ldr r1, [r0] ldr r4, _081364F4 adds r0, r1, r4 ldr r2, _081364F8 adds r1, r2 bl sub_80F567C bl sub_80F5B38 b _08136524 .align 2, 0 _081364F0: .4byte gUnknown_083DFEC4 _081364F4: .4byte 0x00008ff0 _081364F8: .4byte 0x00009004 _081364FC: bl sub_80F5B50 lsls r0, 24 cmp r0, 0 bne _0813657A b _08136524 _08136508: ldr r0, _08136518 ldr r0, [r0] ldr r4, _0813651C adds r0, r4 bl sub_80F556C b _08136524 .align 2, 0 _08136518: .4byte gUnknown_083DFEC4 _0813651C: .4byte 0x00009004 _08136520: bl sub_80F1934 _08136524: ldr r0, _08136534 ldr r1, [r0] _08136528: adds r1, 0x50 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0813657A .align 2, 0 _08136534: .4byte gUnknown_02039304 _08136538: ldr r1, _08136584 movs r0, 0xF0 strh r0, [r1] adds r1, 0x2 movs r0, 0x9B strh r0, [r1] ldr r0, _08136588 ldr r2, _0813658C adds r1, r2, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r1, _08136590 ldr r4, _08136594 adds r0, r4, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0x1B strh r0, [r1] subs r1, 0x38 movs r0, 0x28 strh r0, [r1] subs r1, 0x12 ldr r2, _08136598 adds r0, r2, 0 strh r0, [r1] _0813656C: ldr r0, [r3] adds r0, 0x55 movs r1, 0x1 strb r1, [r0] ldr r0, _0813659C bl launch_c3_walk_stairs_and_run_once _0813657A: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08136584: .4byte REG_WIN0H _08136588: .4byte REG_WIN0V _0813658C: .4byte 0x00003273 _08136590: .4byte REG_WININ _08136594: .4byte 0x00003f3f _08136598: .4byte 0x00007f40 _0813659C: .4byte sub_81365C8 thumb_func_end sub_8136294 thumb_func_start sub_81365A0 sub_81365A0: @ 81365A0 push {r4,lr} ldr r1, _081365C4 ldr r0, [r1] adds r0, 0x55 ldrb r0, [r0] cmp r0, 0 bne _081365BE adds r4, r1, 0 _081365B0: bl sub_8136294 ldr r0, [r4] adds r0, 0x55 ldrb r0, [r0] cmp r0, 0 beq _081365B0 _081365BE: pop {r4} pop {r0} bx r0 .align 2, 0 _081365C4: .4byte gUnknown_02039304 thumb_func_end sub_81365A0 thumb_func_start sub_81365C8 sub_81365C8: @ 81365C8 push {r4,lr} sub sp, 0x4 ldr r4, _081365E0 ldr r0, [r4] adds r0, 0x50 ldrb r1, [r0] cmp r1, 0 beq _081365E4 cmp r1, 0x1 beq _0813660C b _08136626 .align 2, 0 _081365E0: .4byte gUnknown_02039304 _081365E4: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _08136608 bl SetVBlankCallback ldr r1, [r4] adds r1, 0x50 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08136626 .align 2, 0 _08136608: .4byte sub_8136264 _0813660C: ldr r0, _08136630 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08136626 bl sub_80F3C94 bl sub_80F3D00 ldr r0, _08136634 bl launch_c3_walk_stairs_and_run_once _08136626: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08136630: .4byte gPaletteFade _08136634: .4byte sub_8136638 thumb_func_end sub_81365C8 thumb_func_start sub_8136638 sub_8136638: @ 8136638 push {r4,lr} ldr r0, _08136654 ldr r0, [r0] adds r0, 0x50 ldrb r0, [r0] cmp r0, 0x7 bls _08136648 b _081367FA _08136648: lsls r0, 2 ldr r1, _08136658 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08136654: .4byte gUnknown_02039304 _08136658: .4byte _0813665C .align 2, 0 _0813665C: .4byte _0813667C .4byte _08136748 .4byte _08136754 .4byte _08136774 .4byte _081367FA .4byte _08136780 .4byte _08136798 .4byte _081367E0 _0813667C: ldr r2, _081366A4 ldrh r1, [r2, 0x2C] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _081366AC movs r0, 0x5 bl PlaySE movs r0, 0x1 bl sub_80F5060 bl move_anim_execute ldr r0, _081366A8 ldr r0, [r0] adds r0, 0x50 movs r1, 0x1 b _081367F8 .align 2, 0 _081366A4: .4byte gMain _081366A8: .4byte gUnknown_02039304 _081366AC: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081366D4 movs r0, 0x5 bl PlaySE movs r0, 0 bl sub_80F5060 bl move_anim_execute ldr r0, _081366D0 ldr r0, [r0] adds r0, 0x50 movs r1, 0x1 b _081367F8 .align 2, 0 _081366D0: .4byte gUnknown_02039304 _081366D4: ldrh r1, [r2, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081366F4 movs r0, 0x5 bl PlaySE ldr r0, _081366F0 ldr r0, [r0] adds r0, 0x50 movs r1, 0x3 b _081367F8 .align 2, 0 _081366F0: .4byte gUnknown_02039304 _081366F4: movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _081366FE b _081367FA _081366FE: movs r0, 0x5 bl PlaySE ldr r0, _08136728 ldr r0, [r0] ldr r2, _0813672C adds r1, r0, r2 movs r2, 0 ldrsh r1, [r1, r2] ldr r2, _08136730 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] subs r0, 0x1 cmp r1, r0 bne _08136738 ldr r0, _08136734 ldr r0, [r0] adds r0, 0x50 movs r1, 0x3 b _081367F8 .align 2, 0 _08136728: .4byte gUnknown_083DFEC4 _0813672C: .4byte 0x000087dc _08136730: .4byte 0x000087da _08136734: .4byte gUnknown_02039304 _08136738: ldr r0, _08136744 ldr r0, [r0] adds r0, 0x50 movs r1, 0x5 b _081367F8 .align 2, 0 _08136744: .4byte gUnknown_02039304 _08136748: bl gpu_sync_bg_show lsls r0, 24 cmp r0, 0 bne _081367FA b _08136784 _08136754: bl sub_8055870 adds r4, r0, 0 cmp r4, 0 bne _081367FA bl sub_80F1934 bl sub_80F3D00 ldr r0, _08136770 ldr r0, [r0] adds r0, 0x50 strb r4, [r0] b _081367FA .align 2, 0 _08136770: .4byte gUnknown_02039304 _08136774: ldr r0, _0813677C bl launch_c3_walk_stairs_and_run_once b _081367FA .align 2, 0 _0813677C: .4byte sub_8136B44 _08136780: bl sub_8136BB8 _08136784: ldr r0, _08136794 ldr r1, [r0] adds r1, 0x50 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _081367FA .align 2, 0 _08136794: .4byte gUnknown_02039304 _08136798: bl sub_8136C40 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _081367B8 cmp r1, 0 bgt _081367B2 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081367F0 b _081367FA _081367B2: cmp r1, 0x1 bne _081367FA b _081367F0 _081367B8: bl sub_8137058 lsls r0, 24 cmp r0, 0 beq _081367D4 bl sub_8136D60 ldr r0, _081367D0 ldr r0, [r0] adds r0, 0x50 movs r1, 0x7 b _081367F8 .align 2, 0 _081367D0: .4byte gUnknown_02039304 _081367D4: ldr r0, _081367DC bl launch_c3_walk_stairs_and_run_once b _081367FA .align 2, 0 _081367DC: .4byte sub_8136808 _081367E0: ldr r0, _08136800 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _081367FA bl sub_8136D8C _081367F0: ldr r0, _08136804 ldr r0, [r0] adds r0, 0x50 movs r1, 0 _081367F8: strb r1, [r0] _081367FA: pop {r4} pop {r0} bx r0 .align 2, 0 _08136800: .4byte gMain _08136804: .4byte gUnknown_02039304 thumb_func_end sub_8136638 thumb_func_start sub_8136808 sub_8136808: @ 8136808 push {r4,r5,lr} sub sp, 0x4 ldr r5, _08136820 ldr r0, [r5] adds r0, 0x50 ldrb r4, [r0] cmp r4, 0 beq _08136824 cmp r4, 0x1 beq _08136874 b _0813688C .align 2, 0 _08136820: .4byte gUnknown_02039304 _08136824: ldr r0, _08136860 ldr r0, [r0] ldr r1, _08136864 adds r0, r1 ldrb r0, [r0] bl sub_81370A4 ldr r1, _08136868 strb r0, [r1] ldr r1, _0813686C ldr r2, [r5] ldr r0, [r2, 0x4] str r0, [r1] ldr r1, _08136870 ldr r0, [r2, 0x8] str r0, [r1] movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, [r5] adds r1, 0x50 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0813688C .align 2, 0 _08136860: .4byte gUnknown_083DFEC4 _08136864: .4byte 0x000087dc _08136868: .4byte gUnknown_02039310 _0813686C: .4byte gUnknown_02039308 _08136870: .4byte gUnknown_0203930C _08136874: ldr r0, _08136894 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0813688C ldr r0, _08136898 ldr r1, _0813689C str r1, [r0, 0x8] ldr r0, _081368A0 bl SetMainCallback2 _0813688C: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08136894: .4byte gPaletteFade _08136898: .4byte gMain _0813689C: .4byte sub_8136174 _081368A0: .4byte sub_8147ADC thumb_func_end sub_8136808 thumb_func_start sub_81368A4 sub_81368A4: @ 81368A4 push {r4,lr} sub sp, 0x4 ldr r1, _081368C4 ldr r0, [r1] adds r0, 0x50 ldrb r0, [r0] adds r4, r1, 0 cmp r0, 0x6 bls _081368B8 b _081369B8 _081368B8: lsls r0, 2 ldr r1, _081368C8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081368C4: .4byte gUnknown_02039304 _081368C8: .4byte _081368CC .align 2, 0 _081368CC: .4byte _081368E8 .4byte _08136922 .4byte _0813692E .4byte _0813694C .4byte _0813695A .4byte _0813696C .4byte _08136998 _081368E8: ldr r0, _0813690C ldr r0, [r0] ldr r1, _08136910 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] ldr r0, _08136914 ldrb r0, [r0] cmp r1, r0 beq _08136918 ldr r0, [r4] adds r0, 0x56 ldrb r0, [r0] bl sub_80F5060 ldr r1, [r4] b _08136986 .align 2, 0 _0813690C: .4byte gUnknown_083DFEC4 _08136910: .4byte 0x000087dc _08136914: .4byte gUnknown_02039310 _08136918: ldr r0, [r4] adds r0, 0x50 movs r1, 0x3 strb r1, [r0] b _081369B8 _08136922: bl gpu_sync_bg_show lsls r0, 24 cmp r0, 0 bne _081369B8 b _08136982 _0813692E: bl sub_8055870 adds r4, r0, 0 cmp r4, 0 bne _081369B8 bl sub_80F1934 ldr r0, _08136948 ldr r0, [r0] adds r0, 0x50 strb r4, [r0] b _081369B8 .align 2, 0 _08136948: .4byte gUnknown_02039304 _0813694C: movs r0, 0x1 negs r0, r0 movs r1, 0x10 movs r2, 0 bl BlendPalettes b _08136982 _0813695A: movs r1, 0x80 lsls r1, 19 ldr r2, _08136968 adds r0, r2, 0 strh r0, [r1] ldr r1, [r4] b _08136986 .align 2, 0 _08136968: .4byte 0x00007f40 _0813696C: ldr r0, _08136990 bl SetVBlankCallback movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade _08136982: ldr r0, _08136994 ldr r1, [r0] _08136986: adds r1, 0x50 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _081369B8 .align 2, 0 _08136990: .4byte sub_8136264 _08136994: .4byte gUnknown_02039304 _08136998: ldr r0, _081369C0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081369B8 bl sub_80F3C94 bl sub_80F3D00 ldr r0, _081369C4 bl launch_c3_walk_stairs_and_run_once ldr r0, _081369C8 bl SetMainCallback2 _081369B8: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _081369C0: .4byte gPaletteFade _081369C4: .4byte sub_81369CC _081369C8: .4byte sub_8136244 thumb_func_end sub_81368A4 thumb_func_start sub_81369CC sub_81369CC: @ 81369CC push {r4-r6,lr} ldr r1, _081369E8 ldr r0, [r1] adds r0, 0x50 ldrb r0, [r0] adds r4, r1, 0 cmp r0, 0x5 bls _081369DE b _08136B32 _081369DE: lsls r0, 2 ldr r1, _081369EC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081369E8: .4byte gUnknown_02039304 _081369EC: .4byte _081369F0 .align 2, 0 _081369F0: .4byte _08136A08 .4byte _08136A48 .4byte _08136A5C .4byte _08136AAC .4byte _08136AEC .4byte _08136B0E _08136A08: ldr r3, [r4] ldr r2, _08136A38 str r2, [r3, 0xC] ldr r0, _08136A3C ldr r1, [r0] ldr r5, _08136A40 adds r0, r1, r5 movs r5, 0 ldrsh r0, [r0, r5] lsls r0, 2 adds r1, r0 ldr r0, _08136A44 adds r1, r0 ldrb r0, [r1] lsls r0, 27 lsrs r0, 27 movs r1, 0x64 muls r0, r1 adds r0, r2 str r0, [r3, 0xC] bl move_anim_execute b _08136B02 .align 2, 0 _08136A38: .4byte gPlayerParty _08136A3C: .4byte gUnknown_083DFEC4 _08136A40: .4byte 0x000087dc _08136A44: .4byte 0x0000893e _08136A48: ldr r0, _08136A58 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08136B32 b _08136B02 .align 2, 0 _08136A58: .4byte gMain _08136A5C: bl sub_8136EF0 ldr r6, _08136A98 ldr r0, [r6] adds r0, 0x5C ldr r1, _08136A9C ldr r4, [r1] ldr r1, _08136AA0 adds r5, r4, r1 adds r1, r5, 0 bl sub_80F567C ldr r1, _08136AA4 adds r0, r4, r1 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 ldr r1, _08136AA8 adds r0, r1 adds r4, r0 adds r0, r4, 0 adds r1, r5, 0 bl sub_80F5550 bl sub_8137138 ldr r1, [r6] b _08136B04 .align 2, 0 _08136A98: .4byte gUnknown_02039304 _08136A9C: .4byte gUnknown_083DFEC4 _08136AA0: .4byte 0x00009040 _08136AA4: .4byte 0x00008fe9 _08136AA8: .4byte 0x00009004 _08136AAC: bl sub_80F555C lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08136B32 ldr r0, _08136AE0 ldr r0, [r0] ldr r5, _08136AE4 adds r0, r5 ldrb r0, [r0] bl sub_81370A4 lsls r0, 24 lsrs r0, 24 bl sub_80F7224 bl sub_80F3D00 ldr r1, _08136AE8 ldr r0, [r1] adds r0, 0x52 strb r4, [r0] ldr r1, [r1] b _08136B04 .align 2, 0 _08136AE0: .4byte gUnknown_083DFEC4 _08136AE4: .4byte 0x000087dc _08136AE8: .4byte gUnknown_02039304 _08136AEC: ldr r1, [r4] adds r1, 0x52 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x10 bls _08136B32 bl sub_8136C6C _08136B02: ldr r1, [r4] _08136B04: adds r1, 0x50 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08136B32 _08136B0E: ldr r0, _08136B38 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08136B32 bl sub_8136D00 lsls r0, 24 cmp r0, 0 bne _08136B32 ldr r0, _08136B3C ldrb r0, [r0] bl sub_810CA6C ldr r0, _08136B40 bl launch_c3_walk_stairs_and_run_once _08136B32: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08136B38: .4byte gMain _08136B3C: .4byte word_203855E _08136B40: .4byte sub_8136B44 thumb_func_end sub_81369CC thumb_func_start sub_8136B44 sub_8136B44: @ 8136B44 push {r4,lr} sub sp, 0x4 ldr r4, _08136B60 ldr r0, [r4] adds r2, r0, 0 adds r2, 0x50 ldrb r1, [r2] cmp r1, 0x1 beq _08136B80 cmp r1, 0x1 bgt _08136B64 cmp r1, 0 beq _08136B6E b _08136BAE .align 2, 0 _08136B60: .4byte gUnknown_02039304 _08136B64: cmp r1, 0x2 beq _08136B98 cmp r1, 0x3 beq _08136BA8 b _08136BAE _08136B6E: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _08136B9C _08136B80: ldr r0, _08136B94 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08136BAE movs r0, 0x2 strb r0, [r2] b _08136BAE .align 2, 0 _08136B94: .4byte gPaletteFade _08136B98: bl sub_80F5BDC _08136B9C: ldr r1, [r4] adds r1, 0x50 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08136BAE _08136BA8: ldr r0, [r0, 0x4] bl SetMainCallback2 _08136BAE: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8136B44 thumb_func_start sub_8136BB8 sub_8136BB8: @ 8136BB8 push {r4,lr} ldr r0, _08136C28 ldr r0, [r0] ldr r1, _08136C2C adds r0, r1 ldrb r0, [r0] bl sub_81370A4 lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _08136C30 adds r0, r1 ldr r4, _08136C34 ldr r2, [r4] adds r2, 0x10 movs r1, 0x2 bl GetMonData ldr r0, [r4] adds r0, 0x10 bl StringGetEnd10 ldr r0, [r4] adds r0, 0x10 ldr r1, _08136C38 bl StringAppend ldr r0, _08136C3C bl BasicInitMenuWindow movs r0, 0 movs r1, 0x10 movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow ldr r0, [r4] adds r0, 0x10 movs r1, 0x1 movs r2, 0x11 bl MenuPrint movs r0, 0x17 movs r1, 0xA movs r2, 0x1 bl DisplayYesNoMenu movs r0, 0 bl MoveMenuCursor pop {r4} pop {r0} bx r0 .align 2, 0 _08136C28: .4byte gUnknown_083DFEC4 _08136C2C: .4byte 0x000087dc _08136C30: .4byte gPlayerParty _08136C34: .4byte gUnknown_02039304 _08136C38: .4byte gOtherText_GetsAPokeBlock _08136C3C: .4byte gWindowConfig_81E709C thumb_func_end sub_8136BB8 thumb_func_start sub_8136C40 sub_8136C40: @ 8136C40 push {r4,lr} bl ProcessMenuInputNoWrap lsls r0, 24 asrs r4, r0, 24 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r0, 24 cmp r0, 0x2 bhi _08136C60 bl MenuZeroFillScreen ldr r0, _08136C68 bl BasicInitMenuWindow _08136C60: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08136C68: .4byte gWindowConfig_81E7080 thumb_func_end sub_8136C40 thumb_func_start sub_8136C6C sub_8136C6C: @ 8136C6C push {lr} ldr r0, _08136C8C bl BasicInitMenuWindow movs r0, 0 movs r1, 0x10 movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow ldr r3, _08136C90 ldr r0, [r3] adds r0, 0x53 movs r1, 0 b _08136C9C .align 2, 0 _08136C8C: .4byte gWindowConfig_81E709C _08136C90: .4byte gUnknown_02039304 _08136C94: ldr r0, [r3] adds r0, 0x53 ldrb r1, [r0] adds r1, 0x1 _08136C9C: strb r1, [r0] ldr r2, [r3] adds r1, r2, 0 adds r1, 0x53 ldrb r0, [r1] cmp r0, 0x4 bhi _08136CDC adds r0, r2, 0 adds r0, 0x61 ldrb r1, [r1] adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08136C94 ldr r0, _08136CD8 ldr r2, [r0] adds r1, r2, 0 adds r1, 0x53 ldrb r0, [r1] cmp r0, 0x4 bhi _08136CDC adds r0, r2, 0 adds r0, 0x10 ldrb r1, [r1] adds r2, 0x61 adds r2, r1 ldrb r2, [r2] bl sub_8136DC0 b _08136CEE .align 2, 0 _08136CD8: .4byte gUnknown_02039304 _08136CDC: ldr r0, _08136CFC ldr r1, [r0] adds r0, r1, 0 adds r0, 0x10 adds r1, 0x53 ldrb r1, [r1] movs r2, 0 bl sub_8136DC0 _08136CEE: ldr r0, _08136CFC ldr r0, [r0] adds r0, 0x10 bl sub_8136DA0 pop {r0} bx r0 .align 2, 0 _08136CFC: .4byte gUnknown_02039304 thumb_func_end sub_8136C6C thumb_func_start sub_8136D00 sub_8136D00: @ 8136D00 push {r4,r5,lr} ldr r4, _08136D30 adds r3, r4, 0 movs r5, 0x5 _08136D08: ldr r0, [r3] adds r0, 0x53 ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] ldr r2, [r3] adds r1, r2, 0 adds r1, 0x53 ldrb r0, [r1] cmp r0, 0x4 bhi _08136D34 adds r0, r2, 0 adds r0, 0x61 ldrb r1, [r1] adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _08136D3A b _08136D08 .align 2, 0 _08136D30: .4byte gUnknown_02039304 _08136D34: strb r5, [r1] movs r0, 0 b _08136D5A _08136D3A: ldr r2, [r4] adds r0, r2, 0 adds r0, 0x10 adds r1, r2, 0 adds r1, 0x53 ldrb r1, [r1] adds r2, 0x61 adds r2, r1 ldrb r2, [r2] bl sub_8136DC0 ldr r0, [r4] adds r0, 0x10 bl sub_8136DA0 movs r0, 0x1 _08136D5A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8136D00 thumb_func_start sub_8136D60 sub_8136D60: @ 8136D60 push {lr} ldr r0, _08136D84 bl BasicInitMenuWindow movs r0, 0 movs r1, 0x10 movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow ldr r0, _08136D88 movs r1, 0x1 movs r2, 0x11 bl MenuPrint pop {r0} bx r0 .align 2, 0 _08136D84: .4byte gWindowConfig_81E709C _08136D88: .4byte gOtherText_WontEat thumb_func_end sub_8136D60 thumb_func_start sub_8136D8C sub_8136D8C: @ 8136D8C push {lr} bl MenuZeroFillScreen ldr r0, _08136D9C bl BasicInitMenuWindow pop {r0} bx r0 .align 2, 0 _08136D9C: .4byte gWindowConfig_81E7080 thumb_func_end sub_8136D8C thumb_func_start sub_8136DA0 sub_8136DA0: @ 8136DA0 push {r4,lr} adds r4, r0, 0 movs r0, 0 movs r1, 0x10 movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow adds r0, r4, 0 movs r1, 0x1 movs r2, 0x11 bl MenuPrint pop {r4} pop {r0} bx r0 thumb_func_end sub_8136DA0 thumb_func_start sub_8136DC0 sub_8136DC0: @ 8136DC0 push {r4,lr} adds r4, r0, 0 lsls r1, 24 lsrs r3, r1, 24 lsls r2, 16 lsrs r0, r2, 16 asrs r2, 16 cmp r2, 0 beq _08136DFC cmp r2, 0 ble _08136DD8 movs r0, 0 _08136DD8: lsls r0, 16 ldr r1, _08136DF4 lsls r0, r3, 2 adds r0, r1 ldr r1, [r0] adds r0, r4, 0 bl StringCopy ldr r1, _08136DF8 adds r0, r4, 0 bl StringAppend b _08136E04 .align 2, 0 _08136DF4: .4byte gUnknown_08406134 _08136DF8: .4byte gOtherText_WasEnhanced _08136DFC: ldr r1, _08136E0C adds r0, r4, 0 bl StringCopy _08136E04: pop {r4} pop {r0} bx r0 .align 2, 0 _08136E0C: .4byte gOtherText_NothingChanged thumb_func_end sub_8136DC0 thumb_func_start sub_8136E10 sub_8136E10: @ 8136E10 push {r4-r7,lr} adds r6, r0, 0 adds r5, r1, 0 movs r4, 0 ldr r7, _08136E3C _08136E1A: lsls r0, r4, 2 adds r0, r7 ldr r1, [r0] adds r0, r6, 0 bl GetMonData adds r1, r5, r4 strb r0, [r1] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x4 bls _08136E1A pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08136E3C: .4byte gUnknown_08406118 thumb_func_end sub_8136E10 thumb_func_start sub_8136E40 sub_8136E40: @ 8136E40 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 mov r8, r0 adds r5, r1, 0 adds r0, r5, 0 movs r1, 0x30 bl GetMonData cmp r0, 0xFF beq _08136EDC mov r0, r8 adds r1, r5, 0 bl sub_8136F74 movs r4, 0 mov r7, sp _08136E64: ldr r1, _08136EE8 lsls r0, r4, 2 adds r0, r1 ldr r6, [r0] adds r0, r5, 0 adds r1, r6, 0 bl GetMonData lsls r0, 24 lsrs r0, 24 strb r0, [r7] ldr r1, _08136EEC ldr r1, [r1] lsls r2, r4, 1 adds r1, 0x66 adds r1, r2 ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r1, r0, 16 cmp r0, 0 bge _08136E92 movs r1, 0 _08136E92: lsls r0, r1, 16 asrs r0, 16 cmp r0, 0xFF ble _08136E9C movs r1, 0xFF _08136E9C: strb r1, [r7] adds r0, r5, 0 adds r1, r6, 0 mov r2, sp bl SetMonData adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x4 bls _08136E64 adds r0, r5, 0 movs r1, 0x30 bl GetMonData lsls r0, 24 lsrs r0, 24 mov r2, r8 ldrb r2, [r2, 0x6] adds r1, r0, r2 lsls r0, r1, 16 asrs r0, 16 cmp r0, 0xFF ble _08136ECE movs r1, 0xFF _08136ECE: mov r0, sp strb r1, [r0] adds r0, r5, 0 movs r1, 0x30 mov r2, sp bl SetMonData _08136EDC: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08136EE8: .4byte gUnknown_08406118 _08136EEC: .4byte gUnknown_02039304 thumb_func_end sub_8136E40 thumb_func_start sub_8136EF0 sub_8136EF0: @ 8136EF0 push {r4,r5,lr} ldr r5, _08136F60 ldr r0, _08136F64 ldr r1, [r0] ldr r2, _08136F68 adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] lsls r0, 2 adds r1, r0 ldr r0, _08136F6C adds r1, r0 ldrb r0, [r1] lsls r0, 27 lsrs r0, 27 movs r1, 0x64 muls r0, r1 adds r5, r0, r5 ldr r4, _08136F70 ldr r1, [r4] adds r1, 0x57 adds r0, r5, 0 bl sub_8136E10 ldr r0, [r4] ldr r0, [r0, 0x8] adds r1, r5, 0 bl sub_8136E40 ldr r1, [r4] adds r1, 0x5C adds r0, r5, 0 bl sub_8136E10 movs r3, 0 _08136F36: ldr r0, [r4] adds r2, r0, 0 adds r2, 0x61 adds r2, r3 adds r1, r0, 0 adds r1, 0x5C adds r1, r3 adds r0, 0x57 adds r0, r3 ldrb r1, [r1] ldrb r0, [r0] subs r1, r0 strb r1, [r2] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x4 bls _08136F36 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08136F60: .4byte gPlayerParty _08136F64: .4byte gUnknown_083DFEC4 _08136F68: .4byte 0x000087dc _08136F6C: .4byte 0x0000893e _08136F70: .4byte gUnknown_02039304 thumb_func_end sub_8136EF0 thumb_func_start sub_8136F74 sub_8136F74: @ 8136F74 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r10, r1 ldr r1, _08136FBC ldr r3, [r1] ldrb r1, [r0, 0x1] adds r2, r3, 0 adds r2, 0x66 strh r1, [r2] ldrb r2, [r0, 0x5] adds r1, r3, 0 adds r1, 0x68 strh r2, [r1] ldrb r1, [r0, 0x4] adds r2, r3, 0 adds r2, 0x6A strh r1, [r2] ldrb r2, [r0, 0x3] adds r1, r3, 0 adds r1, 0x6C strh r2, [r1] ldrb r1, [r0, 0x2] adds r0, r3, 0 adds r0, 0x6E strh r1, [r0] ldr r0, _08136FC0 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 ble _08136FC4 movs r0, 0x1 b _08136FCA .align 2, 0 _08136FBC: .4byte gUnknown_02039304 _08136FC0: .4byte gUnknown_02039312 _08136FC4: cmp r0, 0 bge _08137040 movs r0, 0xFF _08136FCA: movs r2, 0 lsls r0, 24 mov r9, r0 ldr r0, _08137050 mov r8, r0 _08136FD4: mov r0, r8 ldr r1, [r0] lsls r0, r2, 24 asrs r6, r0, 24 lsls r7, r6, 1 adds r1, 0x66 adds r1, r7 movs r2, 0 ldrsh r4, [r1, r2] adds r0, r4, 0 movs r1, 0xA bl __divsi3 lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 movs r1, 0xA bl __modsi3 lsls r0, 16 asrs r0, 16 cmp r0, 0x4 ble _0813700C lsls r0, r5, 24 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r5, r0, 24 _0813700C: ldr r0, _08137054 adds r0, r6, r0 ldrb r1, [r0] mov r0, r10 bl sub_8040A54 lsls r0, 24 asrs r2, r0, 24 cmp r0, r9 bne _08137034 mov r1, r8 ldr r0, [r1] adds r0, 0x66 adds r0, r7 lsls r1, r5, 24 asrs r1, 24 muls r1, r2 ldrh r2, [r0] adds r1, r2 strh r1, [r0] _08137034: adds r0, r6, 0x1 lsls r0, 24 lsrs r2, r0, 24 asrs r0, 24 cmp r0, 0x4 ble _08136FD4 _08137040: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08137050: .4byte gUnknown_02039304 _08137054: .4byte gUnknown_0840612C thumb_func_end sub_8136F74 thumb_func_start sub_8137058 sub_8137058: @ 8137058 push {lr} ldr r0, _0813708C ldr r1, _08137090 ldr r2, [r1] ldr r3, _08137094 adds r1, r2, r3 movs r3, 0 ldrsh r1, [r1, r3] lsls r1, 2 adds r2, r1 ldr r1, _08137098 adds r2, r1 ldrb r1, [r2] lsls r1, 27 lsrs r1, 27 movs r2, 0x64 muls r1, r2 adds r0, r1, r0 movs r1, 0x30 bl GetMonData cmp r0, 0xFF beq _0813709C movs r0, 0 b _0813709E .align 2, 0 _0813708C: .4byte gPlayerParty _08137090: .4byte gUnknown_083DFEC4 _08137094: .4byte 0x000087dc _08137098: .4byte 0x0000893e _0813709C: movs r0, 0x1 _0813709E: pop {r1} bx r1 thumb_func_end sub_8137058 thumb_func_start sub_81370A4 sub_81370A4: @ 81370A4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 _081370AC: movs r0, 0x64 muls r0, r4 ldr r1, _081370C8 adds r0, r1 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _081370D2 cmp r5, 0 bne _081370CC adds r0, r4, 0 b _081370DE .align 2, 0 _081370C8: .4byte gPlayerParty _081370CC: subs r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _081370D2: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _081370AC movs r0, 0 _081370DE: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81370A4 thumb_func_start sub_81370E4 sub_81370E4: @ 81370E4 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 movs r6, 0 cmp r6, r5 bcs _08137114 _081370F2: movs r0, 0x64 muls r0, r4 ldr r1, _08137120 adds r0, r1 movs r1, 0x2D bl GetMonData cmp r0, 0 beq _0813710A adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0813710A: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _081370F2 _08137114: subs r0, r5, r6 lsls r0, 24 lsrs r0, 24 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08137120: .4byte gPlayerParty thumb_func_end sub_81370E4 thumb_func_start sub_8137124 sub_8137124: @ 8137124 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_81370A4 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_8137124 thumb_func_start sub_8137138 sub_8137138: @ 8137138 push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _081371C0 bl LoadSpriteSheet ldr r0, _081371C4 bl LoadSpritePalette ldr r2, _081371C8 ldr r0, [r2] adds r0, 0x54 movs r1, 0 strb r1, [r0] movs r4, 0 adds r5, r2, 0 ldr r6, _081371CC adds r0, r6, 0x2 mov r8, r0 ldr r7, _081371D0 _08137160: ldr r0, [r5] adds r0, 0x61 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _081371AC lsls r2, r4, 2 adds r0, r2, r6 movs r3, 0 ldrsh r1, [r0, r3] add r2, r8 movs r0, 0 ldrsh r2, [r2, r0] ldr r0, _081371D4 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _081371AC ldr r0, [r5] adds r0, 0x61 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _081371A2 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldr r1, _081371D8 str r1, [r0] _081371A2: ldr r1, [r5] adds r1, 0x54 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _081371AC: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x4 bls _08137160 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081371C0: .4byte gSpriteSheet_ConditionUpDown _081371C4: .4byte gSpritePalette_ConditionUpDown _081371C8: .4byte gUnknown_02039304 _081371CC: .4byte gUnknown_08406158 _081371D0: .4byte gSprites + 0x1C _081371D4: .4byte gSpriteTemplate_840618C _081371D8: .4byte sub_81371DC thumb_func_end sub_8137138 thumb_func_start sub_81371DC sub_81371DC: @ 81371DC push {lr} adds r1, r0, 0 movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0x5 bgt _081371EE ldrh r0, [r1, 0x26] subs r0, 0x2 b _081371F6 _081371EE: cmp r0, 0xB bgt _081371F8 ldrh r0, [r1, 0x26] adds r0, 0x2 _081371F6: strh r0, [r1, 0x26] _081371F8: ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x3C ble _08137218 adds r0, r1, 0 bl DestroySprite ldr r0, _0813721C ldr r1, [r0] adds r1, 0x54 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] _08137218: pop {r0} bx r0 .align 2, 0 _0813721C: .4byte gUnknown_02039304 thumb_func_end sub_81371DC thumb_func_start unref_sub_8137220 unref_sub_8137220: @ 8137220 bx lr thumb_func_end unref_sub_8137220 thumb_func_start sub_8137224 sub_8137224: @ 8137224 ldr r1, _08137250 ldr r0, _08137254 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _08137258 str r1, [r0] ldr r1, _0813725C ldr r2, _08137260 adds r0, r1, r2 movs r2, 0 strb r2, [r0] ldr r3, _08137264 adds r0, r1, r3 strb r2, [r0] adds r3, 0x1 adds r0, r1, r3 strb r2, [r0] ldr r0, _08137268 adds r1, r0 strb r2, [r1] bx lr .align 2, 0 _08137250: .4byte gUnknown_03004330 _08137254: .4byte gUnknown_02024A60 _08137258: .4byte sub_813726C _0813725C: .4byte 0x02000000 _08137260: .4byte 0x000160a8 _08137264: .4byte 0x000160a9 _08137268: .4byte 0x000160ab thumb_func_end sub_8137224 thumb_func_start sub_813726C sub_813726C: @ 813726C push {lr} ldr r2, _081372A0 ldr r1, _081372A4 ldr r0, _081372A8 ldrb r3, [r0] lsls r0, r3, 2 adds r0, r1 ldr r1, [r2] ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _081372B8 ldr r0, _081372AC lsls r1, r3, 9 adds r1, r0 ldrb r0, [r1] cmp r0, 0x38 bhi _081372B4 ldr r0, _081372B0 ldrb r1, [r1] lsls r1, 2 adds r1, r0 ldr r0, [r1] bl _call_via_r0 b _081372B8 .align 2, 0 _081372A0: .4byte gUnknown_02024A64 _081372A4: .4byte gBitTable _081372A8: .4byte gUnknown_02024A60 _081372AC: .4byte gUnknown_02023A60 _081372B0: .4byte gUnknown_084061A4 _081372B4: bl dp01_tbl5_exec_completed _081372B8: pop {r0} bx r0 thumb_func_end sub_813726C thumb_func_start sub_81372BC sub_81372BC: @ 81372BC push {r4-r6,lr} ldr r1, _081372D8 ldr r2, _081372DC adds r0, r1, r2 ldrb r0, [r0] adds r5, r1, 0 cmp r0, 0x5 bls _081372CE b _08137410 _081372CE: lsls r0, 2 ldr r1, _081372E0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081372D8: .4byte 0x02000000 _081372DC: .4byte 0x000160a8 _081372E0: .4byte _081372E4 .align 2, 0 _081372E4: .4byte _081372FC .4byte _0813730E .4byte _08137344 .4byte _08137368 .4byte _081373AC .4byte _081373E8 _081372FC: ldr r0, _0813733C adds r1, r5, r0 movs r0, 0x40 strb r0, [r1] ldr r2, _08137340 adds r1, r5, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _0813730E: ldr r0, _0813733C adds r6, r5, r0 ldrb r0, [r6] subs r0, 0x1 strb r0, [r6] lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08137410 movs r0, 0x5 bl PlaySE movs r0, 0x1 movs r1, 0 movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb bl dp01_tbl5_exec_completed ldr r2, _08137340 adds r1, r5, r2 b _0813738C .align 2, 0 _0813733C: .4byte 0x000160aa _08137340: .4byte 0x000160a8 _08137344: ldr r2, _08137364 adds r6, r5, r2 ldrb r0, [r6] subs r0, 0x1 strb r0, [r6] lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08137410 movs r0, 0x5 bl PlaySE movs r0, 0x1 movs r1, 0 b _0813737E .align 2, 0 _08137364: .4byte 0x000160aa _08137368: ldr r2, _081373A0 adds r6, r5, r2 ldrb r0, [r6] subs r0, 0x1 strb r0, [r6] lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08137410 movs r0, 0x1 movs r1, 0x9 _0813737E: movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb bl dp01_tbl5_exec_completed ldr r0, _081373A4 adds r1, r5, r0 _0813738C: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r1, _081373A8 adds r0, r5, r1 strb r4, [r0] movs r0, 0x40 strb r0, [r6] b _08137410 .align 2, 0 _081373A0: .4byte 0x000160aa _081373A4: .4byte 0x000160a8 _081373A8: .4byte 0x000160a9 _081373AC: ldr r2, _081373E0 adds r4, r5, r2 ldrb r0, [r4] subs r0, 0x1 strb r0, [r4] lsls r0, 24 cmp r0, 0 bne _08137410 movs r0, 0x5 bl PlaySE movs r0, 0 bl nullsub_8 movs r0, 0x1 movs r1, 0 bl sub_802E3E4 movs r0, 0x40 strb r0, [r4] ldr r0, _081373E4 adds r1, r5, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08137410 .align 2, 0 _081373E0: .4byte 0x000160aa _081373E4: .4byte 0x000160a8 _081373E8: ldr r2, _08137418 adds r1, r5, r2 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bne _08137410 movs r0, 0x5 bl PlaySE bl sub_814A7FC movs r0, 0x1 movs r1, 0x1 movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb bl dp01_tbl5_exec_completed _08137410: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08137418: .4byte 0x000160aa thumb_func_end sub_81372BC thumb_func_start sub_813741C sub_813741C: @ 813741C push {lr} ldr r2, _08137444 ldr r1, _08137448 ldr r0, _0813744C ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _08137450 cmp r1, r0 bne _08137440 bl dp01_tbl5_exec_completed _08137440: pop {r0} bx r0 .align 2, 0 _08137444: .4byte gSprites _08137448: .4byte gUnknown_02024BE0 _0813744C: .4byte gUnknown_02024A60 _08137450: .4byte SpriteCallbackDummy thumb_func_end sub_813741C thumb_func_start sub_8137454 sub_8137454: @ 8137454 push {lr} ldr r0, _08137468 ldrh r0, [r0, 0x16] cmp r0, 0 bne _08137462 bl dp01_tbl5_exec_completed _08137462: pop {r0} bx r0 .align 2, 0 _08137468: .4byte gUnknown_03004210 thumb_func_end sub_8137454 thumb_func_start sub_813746C sub_813746C: @ 813746C push {lr} ldr r0, _0813749C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08137496 ldr r2, _081374A0 ldr r0, _081374A4 adds r3, r2, r0 ldrb r1, [r3] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r3] ldr r0, _081374A8 ldr r0, [r0] str r0, [r2] ldr r0, [r2, 0x8] bl SetMainCallback2 _08137496: pop {r0} bx r0 .align 2, 0 _0813749C: .4byte gPaletteFade _081374A0: .4byte gMain _081374A4: .4byte 0x0000043d _081374A8: .4byte gUnknown_030042D0 thumb_func_end sub_813746C thumb_func_start bx_wait_t5 bx_wait_t5: @ 81374AC push {lr} ldr r0, _081374C0 ldrb r0, [r0] cmp r0, 0 bne _081374BA bl dp01_tbl5_exec_completed _081374BA: pop {r0} bx r0 .align 2, 0 _081374C0: .4byte gUnknown_02024E6D thumb_func_end bx_wait_t5 thumb_func_start sub_81374C4 sub_81374C4: @ 81374C4 push {lr} ldr r0, _081374EC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081374E8 ldr r1, _081374F0 ldr r0, _081374F4 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _081374F8 str r1, [r0] bl nullsub_14 bl PrepareBagForWallyTutorial _081374E8: pop {r0} bx r0 .align 2, 0 _081374EC: .4byte gPaletteFade _081374F0: .4byte gUnknown_03004330 _081374F4: .4byte gUnknown_02024A60 _081374F8: .4byte sub_81374FC thumb_func_end sub_81374C4 thumb_func_start sub_81374FC sub_81374FC: @ 81374FC push {lr} ldr r0, _08137528 ldr r1, [r0, 0x4] ldr r0, _0813752C cmp r1, r0 bne _08137522 ldr r0, _08137530 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08137522 ldr r0, _08137534 ldrh r1, [r0] movs r0, 0x1 bl dp01_build_cmdbuf_x23_aa_0 bl dp01_tbl5_exec_completed _08137522: pop {r0} bx r0 .align 2, 0 _08137528: .4byte gMain _0813752C: .4byte sub_800F808 _08137530: .4byte gPaletteFade _08137534: .4byte word_203855E thumb_func_end sub_81374FC thumb_func_start sub_8137538 sub_8137538: @ 8137538 push {r4-r7,lr} ldr r5, _0813768C ldrb r2, [r5] lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 ldr r4, _08137690 adds r0, r4 ldrb r1, [r0] movs r7, 0x88 adds r0, r7, 0 ands r0, r1 cmp r0, 0 bne _08137568 ldr r0, _08137694 adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _08137698 adds r1, r0 adds r0, r2, 0 bl sub_8141828 _08137568: ldrb r0, [r5] movs r6, 0x2 adds r2, r6, 0 eors r2, r0 lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 adds r0, r4 ldrb r1, [r0] adds r0, r7, 0 ands r0, r1 cmp r0, 0 bne _08137596 ldr r0, _08137694 adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _08137698 adds r1, r0 adds r0, r2, 0 bl sub_8141828 _08137596: ldrb r2, [r5] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r4 ldrb r1, [r0] movs r3, 0x8 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _08137684 adds r1, r6, 0 eors r1, r2 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0] adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _08137684 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _08137626 ldr r0, _0813769C ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08137626 ldr r1, _081376A0 ldrb r0, [r5] eors r0, r6 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081376A4 adds r0, r1 bl DestroySprite ldr r4, _081376A8 ldrb r0, [r5] adds r1, r6, 0 eors r1, r0 adds r0, r1, r4 ldrb r0, [r0] ldr r2, _08137694 lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _08137698 adds r1, r2 movs r2, 0 bl sub_8045A5C ldrb r0, [r5] eors r0, r6 bl sub_804777C ldrb r0, [r5] eors r0, r6 adds r0, r4 ldrb r0, [r0] bl sub_8043DFC _08137626: ldr r1, _081376A0 ldr r4, _0813768C ldrb r0, [r4] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081376A4 adds r0, r1 bl DestroySprite ldr r5, _081376A8 ldrb r1, [r4] adds r0, r1, r5 ldrb r0, [r0] ldr r2, _08137694 lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _08137698 adds r1, r2 movs r2, 0 bl sub_8045A5C ldrb r0, [r4] bl sub_804777C ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl sub_8043DFC ldr r2, _081376AC ldrb r1, [r2, 0x9] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r2, 0x9] ldr r1, _081376B0 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _081376B4 str r1, [r0] _08137684: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813768C: .4byte gUnknown_02024A60 _08137690: .4byte 0x02017810 _08137694: .4byte gUnknown_02024A6A _08137698: .4byte gPlayerParty _0813769C: .4byte gUnknown_020239F8 _081376A0: .4byte gUnknown_0300434C _081376A4: .4byte gSprites _081376A8: .4byte gUnknown_03004340 _081376AC: .4byte 0x02017840 _081376B0: .4byte gUnknown_03004330 _081376B4: .4byte sub_81376B8 thumb_func_end sub_8137538 thumb_func_start sub_81376B8 sub_81376B8: @ 81376B8 push {r4-r7,lr} movs r4, 0 ldr r2, _0813778C ldr r0, _08137790 ldr r7, _08137794 ldrb r3, [r7] adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _08137798 cmp r1, r0 bne _081376DC movs r4, 0x1 _081376DC: cmp r4, 0 beq _08137784 lsls r0, r3, 1 adds r0, r3 lsls r0, 2 ldr r5, _0813779C adds r2, r0, r5 ldrb r1, [r2, 0x1] movs r4, 0x1 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _08137784 movs r6, 0x2 adds r1, r6, 0 eors r1, r3 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0, 0x1] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _08137784 ldrb r1, [r2] movs r3, 0x7F adds r0, r3, 0 ands r0, r1 strb r0, [r2] ldrb r0, [r7] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r2, [r1, 0x1] subs r4, 0x3 adds r0, r4, 0 ands r0, r2 strb r0, [r1, 0x1] ldrb r0, [r7] adds r1, r6, 0 eors r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0] ands r3, r1 strb r3, [r0] ldrb r0, [r7] adds r1, r6, 0 eors r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0, 0x1] ands r4, r1 strb r4, [r0, 0x1] ldr r4, _081377A0 adds r0, r4, 0 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag ldr r0, _081377A4 movs r1, 0xA bl CreateTask ldr r2, _081377A8 ldrb r1, [r7] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, _081377AC adds r0, r2 bl sub_80324F8 bl dp01_tbl5_exec_completed _08137784: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813778C: .4byte gSprites _08137790: .4byte gUnknown_03004340 _08137794: .4byte gUnknown_02024A60 _08137798: .4byte SpriteCallbackDummy _0813779C: .4byte 0x02017810 _081377A0: .4byte 0x000027f9 _081377A4: .4byte c3_0802FDF4 _081377A8: .4byte gUnknown_02024A6A _081377AC: .4byte gPlayerParty thumb_func_end sub_81376B8 thumb_func_start sub_81377B0 sub_81377B0: @ 81377B0 push {r4-r6,lr} ldr r5, _081377F0 ldrb r0, [r5] ldr r6, _081377F4 adds r1, r0, r6 ldrb r1, [r1] movs r2, 0 movs r3, 0 bl sub_8045C78 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrb r0, [r5] adds r0, r6 ldrb r0, [r0] bl sub_8043DFC lsls r4, 16 asrs r1, r4, 16 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081377F8 ldrb r0, [r5] adds r0, r6 ldrb r0, [r0] movs r2, 0 bl sub_80440EC b _08137812 .align 2, 0 _081377F0: .4byte gUnknown_02024A60 _081377F4: .4byte gUnknown_03004340 _081377F8: ldr r2, _08137818 ldrb r1, [r5] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, _0813781C adds r0, r2 bl sub_80324F8 bl dp01_tbl5_exec_completed _08137812: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08137818: .4byte gUnknown_02024A6A _0813781C: .4byte gPlayerParty thumb_func_end sub_81377B0 thumb_func_start bx_blink_t5 bx_blink_t5: @ 8137820 push {r4,lr} ldr r1, _0813785C ldr r0, _08137860 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] ldr r2, _08137864 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, r0, r2 movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0x20 bne _0813786C movs r3, 0 movs r0, 0 strh r0, [r4, 0x30] adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] subs r0, 0x5 ands r0, r1 strb r0, [r2] ldr r0, _08137868 strb r3, [r0] bl dp01_tbl5_exec_completed b _08137896 .align 2, 0 _0813785C: .4byte gUnknown_02024BE0 _08137860: .4byte gUnknown_02024A60 _08137864: .4byte gSprites _08137868: .4byte gUnknown_02024E6D _0813786C: ldrh r0, [r4, 0x30] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _08137890 adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _08137890: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] _08137896: pop {r4} pop {r0} bx r0 thumb_func_end bx_blink_t5 thumb_func_start sub_813789C sub_813789C: @ 813789C push {r4-r6,lr} ldr r6, _081378F4 ldrb r2, [r6] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r1, _081378F8 adds r0, r1 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _081378EC ldr r5, _081378FC adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _08137900 adds r0, r4 bl FreeSpriteOamMatrix ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldr r1, _08137904 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 bl dp01_tbl5_exec_completed _081378EC: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081378F4: .4byte gUnknown_02024A60 _081378F8: .4byte 0x02017810 _081378FC: .4byte gUnknown_02024BE0 _08137900: .4byte gSprites _08137904: .4byte gUnknown_03004340 thumb_func_end sub_813789C thumb_func_start sub_8137908 sub_8137908: @ 8137908 push {lr} ldr r2, _08137930 ldr r1, _08137934 ldr r0, _08137938 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _0813793C cmp r1, r0 bne _0813792C bl dp01_tbl5_exec_completed _0813792C: pop {r0} bx r0 .align 2, 0 _08137930: .4byte gSprites _08137934: .4byte gUnknown_02024BE0 _08137938: .4byte gUnknown_02024A60 _0813793C: .4byte SpriteCallbackDummy thumb_func_end sub_8137908 thumb_func_start sub_8137940 sub_8137940: @ 8137940 push {lr} ldr r0, _08137964 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _08137968 adds r0, r1 ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0813795E bl dp01_tbl5_exec_completed _0813795E: pop {r0} bx r0 .align 2, 0 _08137964: .4byte gUnknown_02024A60 _08137968: .4byte 0x02017810 thumb_func_end sub_8137940 thumb_func_start dp01_tbl5_exec_completed dp01_tbl5_exec_completed: @ 813796C push {r4,lr} sub sp, 0x4 ldr r1, _081379AC ldr r4, _081379B0 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _081379B4 str r1, [r0] ldr r0, _081379B8 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081379C0 bl GetMultiplayerId mov r1, sp strb r0, [r1] movs r0, 0x2 movs r1, 0x4 mov r2, sp bl dp01_prepare_buffer_wireless_probably ldr r1, _081379BC ldrb r0, [r4] lsls r0, 9 adds r0, r1 movs r1, 0x38 strb r1, [r0] b _081379D2 .align 2, 0 _081379AC: .4byte gUnknown_03004330 _081379B0: .4byte gUnknown_02024A60 _081379B4: .4byte sub_813726C _081379B8: .4byte gUnknown_020239F8 _081379BC: .4byte gUnknown_02023A60 _081379C0: ldr r2, _081379DC ldr r1, _081379E0 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r0, [r2] bics r0, r1 str r0, [r2] _081379D2: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _081379DC: .4byte gUnknown_02024A64 _081379E0: .4byte gBitTable thumb_func_end dp01_tbl5_exec_completed thumb_func_start unref_sub_81379E4 unref_sub_81379E4: @ 81379E4 push {lr} ldr r0, _08137A08 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _08137A0C adds r0, r1 ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08137A02 bl dp01_tbl5_exec_completed _08137A02: pop {r0} bx r0 .align 2, 0 _08137A08: .4byte gUnknown_02024A60 _08137A0C: .4byte 0x02017810 thumb_func_end unref_sub_81379E4 thumb_func_start dp01t_00_5_getattr dp01t_00_5_getattr: @ 8137A10 push {r4-r6,lr} sub sp, 0x100 movs r6, 0 ldr r1, _08137A3C ldr r0, _08137A40 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 bne _08137A48 ldr r0, _08137A44 lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] mov r1, sp bl sub_8137A84 adds r6, r0, 0 b _08137A6A .align 2, 0 _08137A3C: .4byte gUnknown_02023A60 _08137A40: .4byte gUnknown_02024A60 _08137A44: .4byte gUnknown_02024A6A _08137A48: ldrb r4, [r1] movs r5, 0 _08137A4C: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _08137A62 lsls r0, r5, 24 lsrs r0, 24 mov r2, sp adds r1, r2, r6 bl sub_8137A84 adds r6, r0 _08137A62: lsrs r4, 1 adds r5, 0x1 cmp r5, 0x5 ble _08137A4C _08137A6A: lsls r1, r6, 16 lsrs r1, 16 movs r0, 0x1 mov r2, sp bl dp01_build_cmdbuf_x1D_1D_numargs_varargs bl dp01_tbl5_exec_completed add sp, 0x100 pop {r4-r6} pop {r0} bx r0 thumb_func_end dp01t_00_5_getattr thumb_func_start sub_8137A84 sub_8137A84: @ 8137A84 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x90 adds r7, r1, 0 lsls r0, 24 lsrs r5, r0, 24 movs r6, 0 ldr r2, _08137AB8 ldr r3, _08137ABC ldrb r0, [r3] lsls r0, 9 adds r1, r2, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0x3B bls _08137AAE bl _0813821A _08137AAE: lsls r0, 2 ldr r1, _08137AC0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08137AB8: .4byte gUnknown_02023A60 _08137ABC: .4byte gUnknown_02024A60 _08137AC0: .4byte _08137AC4 .align 2, 0 _08137AC4: .4byte _08137BB4 .4byte _08137DD8 .4byte _08137DE8 .4byte _08137DF8 .4byte _08137E60 .4byte _08137E60 .4byte _08137E60 .4byte _08137E60 .4byte _08137E7C .4byte _08137EB8 .4byte _08137EB8 .4byte _08137EB8 .4byte _08137EB8 .4byte _0813821A .4byte _0813821A .4byte _0813821A .4byte _0813821A .4byte _08137ED4 .4byte _08137EE4 .4byte _08137F14 .4byte _08137F24 .4byte _08137F34 .4byte _08137F44 .4byte _08137F54 .4byte _08137F64 .4byte _08137F74 .4byte _08137F84 .4byte _08137F94 .4byte _08137FA4 .4byte _08137FB4 .4byte _08137FC4 .4byte _08137FD4 .4byte _08138024 .4byte _08138034 .4byte _08138044 .4byte _08138054 .4byte _08138064 .4byte _08138074 .4byte _08138084 .4byte _08138094 .4byte _081380A4 .4byte _081380D8 .4byte _081380E8 .4byte _081380F8 .4byte _08138108 .4byte _08138118 .4byte _08138128 .4byte _08138138 .4byte _08138148 .4byte _08138168 .4byte _08138178 .4byte _08138188 .4byte _08138198 .4byte _081381A8 .4byte _081381B8 .4byte _081381C8 .4byte _081381D8 .4byte _081381E8 .4byte _081381F8 .4byte _08138208 _08137BB4: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08137DC8 adds r4, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData mov r1, sp strh r0, [r1] adds r0, r4, 0 movs r1, 0xC bl GetMonData mov r1, sp strh r0, [r1, 0x2E] movs r6, 0 add r0, sp, 0x24 mov r9, r0 movs r1, 0x3B add r1, sp mov r10, r1 mov r2, sp adds r2, 0x2B str r2, [sp, 0x80] mov r0, sp adds r0, 0x2A str r0, [sp, 0x7C] mov r1, sp adds r1, 0x68 str r1, [sp, 0x8C] adds r2, 0x5 str r2, [sp, 0x84] adds r0, 0x12 str r0, [sp, 0x88] mov r8, r4 add r4, sp, 0xC _08137C00: adds r1, r6, 0 adds r1, 0xD mov r0, r8 bl GetMonData strh r0, [r4] adds r1, r6, 0 adds r1, 0x11 mov r0, r8 bl GetMonData mov r2, r9 adds r1, r2, r6 strb r0, [r1] adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _08137C00 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08137DC8 adds r4, r0 adds r0, r4, 0 movs r1, 0x15 bl GetMonData mov r1, r10 strb r0, [r1] adds r0, r4, 0 movs r1, 0x20 bl GetMonData ldr r2, [sp, 0x80] strb r0, [r2] adds r0, r4, 0 movs r1, 0x19 bl GetMonData str r0, [sp, 0x44] adds r0, r4, 0 movs r1, 0x27 bl GetMonData mov r3, sp movs r5, 0x1F ands r0, r5 ldrb r2, [r3, 0x14] movs r1, 0x20 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x14] adds r0, r4, 0 movs r1, 0x28 bl GetMonData mov r3, sp movs r6, 0x1F ands r0, r6 lsls r0, 5 ldrh r2, [r3, 0x14] ldr r1, _08137DCC ands r1, r2 orrs r1, r0 strh r1, [r3, 0x14] adds r0, r4, 0 movs r1, 0x29 bl GetMonData mov r3, sp ands r0, r5 lsls r0, 2 ldrb r2, [r3, 0x15] movs r1, 0x7D negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x15] adds r0, r4, 0 movs r1, 0x2A bl GetMonData movs r1, 0x1F ands r1, r0 lsls r1, 15 ldr r0, [sp, 0x14] ldr r2, _08137DD0 ands r0, r2 orrs r0, r1 str r0, [sp, 0x14] adds r0, r4, 0 movs r1, 0x2B bl GetMonData mov r3, sp ands r0, r6 lsls r0, 4 ldrh r2, [r3, 0x16] ldr r1, _08137DD4 ands r1, r2 orrs r1, r0 strh r1, [r3, 0x16] adds r0, r4, 0 movs r1, 0x2C bl GetMonData mov r3, sp ands r0, r5 lsls r0, 1 ldrb r2, [r3, 0x17] movs r1, 0x3F negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x17] adds r0, r4, 0 movs r1, 0 bl GetMonData str r0, [sp, 0x48] adds r0, r4, 0 movs r1, 0x37 bl GetMonData str r0, [sp, 0x4C] adds r0, r4, 0 movs r1, 0x38 bl GetMonData ldr r1, [sp, 0x7C] strb r0, [r1] adds r0, r4, 0 movs r1, 0x39 bl GetMonData mov r1, sp strh r0, [r1, 0x28] adds r0, r4, 0 movs r1, 0x3A bl GetMonData mov r1, sp strh r0, [r1, 0x2C] adds r0, r4, 0 movs r1, 0x3B bl GetMonData mov r1, sp strh r0, [r1, 0x2] adds r0, r4, 0 movs r1, 0x3C bl GetMonData mov r1, sp strh r0, [r1, 0x4] adds r0, r4, 0 movs r1, 0x3D bl GetMonData mov r1, sp strh r0, [r1, 0x6] adds r0, r4, 0 movs r1, 0x3E bl GetMonData mov r1, sp strh r0, [r1, 0x8] adds r0, r4, 0 movs r1, 0x3F bl GetMonData mov r1, sp strh r0, [r1, 0xA] adds r0, r4, 0 movs r1, 0x2D bl GetMonData mov r3, sp movs r1, 0x1 ands r0, r1 lsls r0, 6 ldrb r2, [r3, 0x17] movs r1, 0x41 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x17] adds r0, r4, 0 movs r1, 0x2E bl GetMonData mov r3, sp lsls r0, 7 ldrb r2, [r3, 0x17] movs r1, 0x7F ands r1, r2 orrs r1, r0 strb r1, [r3, 0x17] adds r0, r4, 0 movs r1, 0x1 bl GetMonData str r0, [sp, 0x54] adds r0, r4, 0 movs r1, 0x2 ldr r2, [sp, 0x8C] bl GetMonData ldr r0, [sp, 0x84] ldr r1, [sp, 0x8C] bl StringCopy10 adds r0, r4, 0 movs r1, 0x7 ldr r2, [sp, 0x88] bl GetMonData mov r2, sp movs r6, 0 _08137DB8: adds r0, r7, r6 adds r1, r2, r6 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 cmp r6, 0x57 bls _08137DB8 b _0813821A .align 2, 0 _08137DC8: .4byte gPlayerParty _08137DCC: .4byte 0xfffffc1f _08137DD0: .4byte 0xfff07fff _08137DD4: .4byte 0xfffffe0f _08137DD8: movs r0, 0x64 muls r0, r5 ldr r1, _08137DE4 adds r0, r1 movs r1, 0xB b _08138152 .align 2, 0 _08137DE4: .4byte gPlayerParty _08137DE8: movs r0, 0x64 muls r0, r5 ldr r1, _08137DF4 adds r0, r1 movs r1, 0xC b _08138152 .align 2, 0 _08137DF4: .4byte gPlayerParty _08137DF8: movs r6, 0 add r2, sp, 0x58 mov r9, r2 add r0, sp, 0x60 mov r10, r0 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _08137E5C adds r4, r1, r0 mov r8, r9 _08137E0E: adds r1, r6, 0 adds r1, 0xD adds r0, r4, 0 bl GetMonData mov r1, r8 strh r0, [r1] adds r1, r6, 0 adds r1, 0x11 adds r0, r4, 0 bl GetMonData mov r2, r10 adds r1, r2, r6 strb r0, [r1] movs r0, 0x2 add r8, r0 adds r6, 0x1 cmp r6, 0x3 ble _08137E0E movs r0, 0x64 muls r0, r5 ldr r1, _08137E5C adds r0, r1 movs r1, 0x15 bl GetMonData mov r1, r9 strb r0, [r1, 0xC] mov r2, r9 movs r6, 0 _08137E4C: adds r0, r7, r6 adds r1, r2, r6 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 cmp r6, 0xF bls _08137E4C b _0813821A .align 2, 0 _08137E5C: .4byte gPlayerParty _08137E60: movs r0, 0x64 muls r0, r5 ldr r1, _08137E78 adds r0, r1 ldrb r1, [r3] lsls r1, 9 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] adds r1, 0x9 b _08138152 .align 2, 0 _08137E78: .4byte gPlayerParty _08137E7C: movs r6, 0 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r2, _08137EB4 mov r8, r2 _08137E88: adds r1, r6, 0 adds r1, 0x11 mov r2, r8 adds r0, r4, r2 bl GetMonData adds r1, r7, r6 strb r0, [r1] adds r6, 0x1 cmp r6, 0x3 ble _08137E88 movs r0, 0x64 muls r0, r5 ldr r1, _08137EB4 adds r0, r1 movs r1, 0x15 bl GetMonData adds r1, r7, r6 strb r0, [r1] adds r6, 0x1 b _0813821A .align 2, 0 _08137EB4: .4byte gPlayerParty _08137EB8: movs r0, 0x64 muls r0, r5 ldr r1, _08137ED0 adds r0, r1 ldrb r1, [r3] lsls r1, 9 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] adds r1, 0x8 b _08138212 .align 2, 0 _08137ED0: .4byte gPlayerParty _08137ED4: movs r0, 0x64 muls r0, r5 ldr r1, _08137EE0 adds r0, r1 movs r1, 0x1 b _08137EEE .align 2, 0 _08137EE0: .4byte gPlayerParty _08137EE4: movs r0, 0x64 muls r0, r5 ldr r1, _08137F10 adds r0, r1 movs r1, 0x19 _08137EEE: bl GetMonData adds r1, r0, 0 strb r1, [r7] movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r0, 8 strb r0, [r7, 0x1] movs r0, 0xFF lsls r0, 16 ands r0, r1 lsrs r0, 16 strb r0, [r7, 0x2] movs r6, 0x3 b _0813821A .align 2, 0 _08137F10: .4byte gPlayerParty _08137F14: movs r0, 0x64 muls r0, r5 ldr r1, _08137F20 adds r0, r1 movs r1, 0x1A b _08138212 .align 2, 0 _08137F20: .4byte gPlayerParty _08137F24: movs r0, 0x64 muls r0, r5 ldr r1, _08137F30 adds r0, r1 movs r1, 0x1B b _08138212 .align 2, 0 _08137F30: .4byte gPlayerParty _08137F34: movs r0, 0x64 muls r0, r5 ldr r1, _08137F40 adds r0, r1 movs r1, 0x1C b _08138212 .align 2, 0 _08137F40: .4byte gPlayerParty _08137F44: movs r0, 0x64 muls r0, r5 ldr r1, _08137F50 adds r0, r1 movs r1, 0x1D b _08138212 .align 2, 0 _08137F50: .4byte gPlayerParty _08137F54: movs r0, 0x64 muls r0, r5 ldr r1, _08137F60 adds r0, r1 movs r1, 0x1E b _08138212 .align 2, 0 _08137F60: .4byte gPlayerParty _08137F64: movs r0, 0x64 muls r0, r5 ldr r1, _08137F70 adds r0, r1 movs r1, 0x1F b _08138212 .align 2, 0 _08137F70: .4byte gPlayerParty _08137F74: movs r0, 0x64 muls r0, r5 ldr r1, _08137F80 adds r0, r1 movs r1, 0x20 b _08138212 .align 2, 0 _08137F80: .4byte gPlayerParty _08137F84: movs r0, 0x64 muls r0, r5 ldr r1, _08137F90 adds r0, r1 movs r1, 0x22 b _08138212 .align 2, 0 _08137F90: .4byte gPlayerParty _08137F94: movs r0, 0x64 muls r0, r5 ldr r1, _08137FA0 adds r0, r1 movs r1, 0x23 b _08138212 .align 2, 0 _08137FA0: .4byte gPlayerParty _08137FA4: movs r0, 0x64 muls r0, r5 ldr r1, _08137FB0 adds r0, r1 movs r1, 0x24 b _08138212 .align 2, 0 _08137FB0: .4byte gPlayerParty _08137FB4: movs r0, 0x64 muls r0, r5 ldr r1, _08137FC0 adds r0, r1 movs r1, 0x25 b _08138212 .align 2, 0 _08137FC0: .4byte gPlayerParty _08137FC4: movs r0, 0x64 muls r0, r5 ldr r1, _08137FD0 adds r0, r1 movs r1, 0x26 b _08138212 .align 2, 0 _08137FD0: .4byte gPlayerParty _08137FD4: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08138020 adds r4, r0 adds r0, r4, 0 movs r1, 0x27 bl GetMonData strb r0, [r7] adds r0, r4, 0 movs r1, 0x28 bl GetMonData strb r0, [r7, 0x1] adds r0, r4, 0 movs r1, 0x29 bl GetMonData strb r0, [r7, 0x2] adds r0, r4, 0 movs r1, 0x2A bl GetMonData strb r0, [r7, 0x3] adds r0, r4, 0 movs r1, 0x2B bl GetMonData strb r0, [r7, 0x4] adds r0, r4, 0 movs r1, 0x2C bl GetMonData strb r0, [r7, 0x5] movs r6, 0x6 b _0813821A .align 2, 0 _08138020: .4byte gPlayerParty _08138024: movs r0, 0x64 muls r0, r5 ldr r1, _08138030 adds r0, r1 movs r1, 0x27 b _08138212 .align 2, 0 _08138030: .4byte gPlayerParty _08138034: movs r0, 0x64 muls r0, r5 ldr r1, _08138040 adds r0, r1 movs r1, 0x28 b _08138212 .align 2, 0 _08138040: .4byte gPlayerParty _08138044: movs r0, 0x64 muls r0, r5 ldr r1, _08138050 adds r0, r1 movs r1, 0x29 b _08138212 .align 2, 0 _08138050: .4byte gPlayerParty _08138054: movs r0, 0x64 muls r0, r5 ldr r1, _08138060 adds r0, r1 movs r1, 0x2A b _08138212 .align 2, 0 _08138060: .4byte gPlayerParty _08138064: movs r0, 0x64 muls r0, r5 ldr r1, _08138070 adds r0, r1 movs r1, 0x2B b _08138212 .align 2, 0 _08138070: .4byte gPlayerParty _08138074: movs r0, 0x64 muls r0, r5 ldr r1, _08138080 adds r0, r1 movs r1, 0x2C b _08138212 .align 2, 0 _08138080: .4byte gPlayerParty _08138084: movs r0, 0x64 muls r0, r5 ldr r1, _08138090 adds r0, r1 movs r1, 0 b _081380AE .align 2, 0 _08138090: .4byte gPlayerParty _08138094: movs r0, 0x64 muls r0, r5 ldr r1, _081380A0 adds r0, r1 movs r1, 0x9 b _08138152 .align 2, 0 _081380A0: .4byte gPlayerParty _081380A4: movs r0, 0x64 muls r0, r5 ldr r1, _081380D4 adds r0, r1 movs r1, 0x37 _081380AE: bl GetMonData adds r1, r0, 0 strb r1, [r7] movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r0, 8 strb r0, [r7, 0x1] movs r0, 0xFF lsls r0, 16 ands r0, r1 lsrs r0, 16 strb r0, [r7, 0x2] lsrs r0, r1, 24 strb r0, [r7, 0x3] movs r6, 0x4 b _0813821A .align 2, 0 _081380D4: .4byte gPlayerParty _081380D8: movs r0, 0x64 muls r0, r5 ldr r1, _081380E4 adds r0, r1 movs r1, 0x38 b _08138212 .align 2, 0 _081380E4: .4byte gPlayerParty _081380E8: movs r0, 0x64 muls r0, r5 ldr r1, _081380F4 adds r0, r1 movs r1, 0x39 b _08138152 .align 2, 0 _081380F4: .4byte gPlayerParty _081380F8: movs r0, 0x64 muls r0, r5 ldr r1, _08138104 adds r0, r1 movs r1, 0x3A b _08138152 .align 2, 0 _08138104: .4byte gPlayerParty _08138108: movs r0, 0x64 muls r0, r5 ldr r1, _08138114 adds r0, r1 movs r1, 0x3B b _08138152 .align 2, 0 _08138114: .4byte gPlayerParty _08138118: movs r0, 0x64 muls r0, r5 ldr r1, _08138124 adds r0, r1 movs r1, 0x3C b _08138152 .align 2, 0 _08138124: .4byte gPlayerParty _08138128: movs r0, 0x64 muls r0, r5 ldr r1, _08138134 adds r0, r1 movs r1, 0x3D b _08138152 .align 2, 0 _08138134: .4byte gPlayerParty _08138138: movs r0, 0x64 muls r0, r5 ldr r1, _08138144 adds r0, r1 movs r1, 0x3E b _08138152 .align 2, 0 _08138144: .4byte gPlayerParty _08138148: movs r0, 0x64 muls r0, r5 ldr r1, _08138164 adds r0, r1 movs r1, 0x3F _08138152: bl GetMonData lsls r0, 16 lsrs r0, 16 strb r0, [r7] lsrs r0, 8 strb r0, [r7, 0x1] movs r6, 0x2 b _0813821A .align 2, 0 _08138164: .4byte gPlayerParty _08138168: movs r0, 0x64 muls r0, r5 ldr r1, _08138174 adds r0, r1 movs r1, 0x16 b _08138212 .align 2, 0 _08138174: .4byte gPlayerParty _08138178: movs r0, 0x64 muls r0, r5 ldr r1, _08138184 adds r0, r1 movs r1, 0x17 b _08138212 .align 2, 0 _08138184: .4byte gPlayerParty _08138188: movs r0, 0x64 muls r0, r5 ldr r1, _08138194 adds r0, r1 movs r1, 0x18 b _08138212 .align 2, 0 _08138194: .4byte gPlayerParty _08138198: movs r0, 0x64 muls r0, r5 ldr r1, _081381A4 adds r0, r1 movs r1, 0x21 b _08138212 .align 2, 0 _081381A4: .4byte gPlayerParty _081381A8: movs r0, 0x64 muls r0, r5 ldr r1, _081381B4 adds r0, r1 movs r1, 0x2F b _08138212 .align 2, 0 _081381B4: .4byte gPlayerParty _081381B8: movs r0, 0x64 muls r0, r5 ldr r1, _081381C4 adds r0, r1 movs r1, 0x30 b _08138212 .align 2, 0 _081381C4: .4byte gPlayerParty _081381C8: movs r0, 0x64 muls r0, r5 ldr r1, _081381D4 adds r0, r1 movs r1, 0x32 b _08138212 .align 2, 0 _081381D4: .4byte gPlayerParty _081381D8: movs r0, 0x64 muls r0, r5 ldr r1, _081381E4 adds r0, r1 movs r1, 0x33 b _08138212 .align 2, 0 _081381E4: .4byte gPlayerParty _081381E8: movs r0, 0x64 muls r0, r5 ldr r1, _081381F4 adds r0, r1 movs r1, 0x34 b _08138212 .align 2, 0 _081381F4: .4byte gPlayerParty _081381F8: movs r0, 0x64 muls r0, r5 ldr r1, _08138204 adds r0, r1 movs r1, 0x35 b _08138212 .align 2, 0 _08138204: .4byte gPlayerParty _08138208: movs r0, 0x64 muls r0, r5 ldr r1, _0813822C adds r0, r1 movs r1, 0x36 _08138212: bl GetMonData strb r0, [r7] movs r6, 0x1 _0813821A: adds r0, r6, 0 add sp, 0x90 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0813822C: .4byte gPlayerParty thumb_func_end sub_8137A84 thumb_func_start sub_8138230 sub_8138230: @ 8138230 push {lr} bl sub_802ECF0 pop {r0} bx r0 thumb_func_end sub_8138230 thumb_func_start sub_813823C sub_813823C: @ 813823C push {r4,r5,lr} ldr r1, _08138260 ldr r0, _08138264 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 bne _0813826C ldr r0, _08138268 lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] bl sub_8138294 b _0813828A .align 2, 0 _08138260: .4byte gUnknown_02023A60 _08138264: .4byte gUnknown_02024A60 _08138268: .4byte gUnknown_02024A6A _0813826C: ldrb r4, [r1] movs r5, 0 _08138270: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _0813827E adds r0, r5, 0 bl sub_8138294 _0813827E: lsrs r4, 1 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _08138270 _0813828A: bl dp01_tbl5_exec_completed pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_813823C thumb_func_start sub_8138294 sub_8138294: @ 8138294 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x34 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _081382CC ldrb r0, [r0] lsls r0, 9 ldr r2, _081382D0 adds r3, r0, r2 adds r6, r3, 0 subs r1, r2, 0x2 adds r0, r1 ldrb r0, [r0] adds r7, r2, 0 cmp r0, 0x3B bls _081382C0 bl _08138C5A _081382C0: lsls r0, 2 ldr r1, _081382D4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081382CC: .4byte gUnknown_02024A60 _081382D0: .4byte gUnknown_02023A63 _081382D4: .4byte _081382D8 .align 2, 0 _081382D8: .4byte _081383C8 .4byte _08138560 .4byte _08138580 .4byte _081385A0 .4byte _081385F8 .4byte _081385F8 .4byte _081385F8 .4byte _081385F8 .4byte _08138620 .4byte _08138684 .4byte _08138684 .4byte _08138684 .4byte _08138684 .4byte _08138C5A .4byte _08138C5A .4byte _08138C5A .4byte _08138C5A .4byte _081386B4 .4byte _081386D4 .4byte _081386F4 .4byte _08138714 .4byte _08138734 .4byte _08138754 .4byte _08138774 .4byte _08138794 .4byte _081387B4 .4byte _081387D4 .4byte _081387F4 .4byte _08138814 .4byte _08138834 .4byte _08138854 .4byte _08138874 .4byte _081388E4 .4byte _08138904 .4byte _08138924 .4byte _08138944 .4byte _08138964 .4byte _08138984 .4byte _081389A4 .4byte _081389C4 .4byte _081389E4 .4byte _08138A04 .4byte _08138A24 .4byte _08138A44 .4byte _08138A64 .4byte _08138A84 .4byte _08138AA4 .4byte _08138AC4 .4byte _08138AE4 .4byte _08138B04 .4byte _08138B24 .4byte _08138B44 .4byte _08138B64 .4byte _08138B84 .4byte _08138BA4 .4byte _08138BC4 .4byte _08138BE4 .4byte _08138C04 .4byte _08138C24 .4byte _08138C44 _081383C8: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0813855C adds r4, r0 adds r0, r4, 0 movs r1, 0xB adds r2, r6, 0 bl SetMonData adds r2, r6, 0 adds r2, 0x2E adds r0, r4, 0 movs r1, 0xC bl SetMonData movs r0, 0 mov r8, r0 movs r0, 0x3B adds r0, r6 mov r10, r0 adds r0, r6, 0 adds r0, 0x2B str r0, [sp, 0x20] adds r0, 0x19 str r0, [sp, 0x28] adds r0, 0x4 str r0, [sp, 0x2C] adds r0, 0x4 str r0, [sp, 0x30] subs r0, 0x22 str r0, [sp, 0x1C] subs r0, 0x2 str r0, [sp, 0x18] adds r0, 0x4 str r0, [sp, 0x24] adds r0, r6, 0x2 str r0, [sp, 0x4] adds r0, r6, 0x4 str r0, [sp, 0x8] adds r0, r6, 0x6 str r0, [sp, 0xC] adds r0, 0x2 str r0, [sp, 0x10] adds r0, 0x2 str r0, [sp, 0x14] mov r9, r4 adds r7, r6, 0 adds r7, 0x24 adds r4, r6, 0 adds r4, 0xC _0813842E: mov r1, r8 adds r1, 0xD mov r0, r9 adds r2, r4, 0 bl SetMonData mov r1, r8 adds r1, 0x11 mov r0, r9 adds r2, r7, 0 bl SetMonData adds r7, 0x1 adds r4, 0x2 movs r0, 0x1 add r8, r0 mov r0, r8 cmp r0, 0x3 ble _0813842E movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0813855C adds r4, r0 adds r0, r4, 0 movs r1, 0x15 mov r2, r10 bl SetMonData adds r0, r4, 0 movs r1, 0x20 ldr r2, [sp, 0x20] bl SetMonData adds r0, r4, 0 movs r1, 0x19 ldr r2, [sp, 0x28] bl SetMonData ldrb r0, [r6, 0x14] lsls r0, 27 lsrs r0, 27 mov r1, sp strb r0, [r1] adds r0, r4, 0 movs r1, 0x27 mov r2, sp bl SetMonData mov r1, sp ldrh r0, [r6, 0x14] lsls r0, 22 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x28 mov r2, sp bl SetMonData mov r1, sp ldrb r0, [r6, 0x15] lsls r0, 25 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x29 mov r2, sp bl SetMonData mov r1, sp ldr r0, [r6, 0x14] lsls r0, 12 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2A mov r2, sp bl SetMonData mov r1, sp ldrh r0, [r6, 0x16] lsls r0, 23 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2B mov r2, sp bl SetMonData mov r1, sp ldrb r0, [r6, 0x17] lsls r0, 26 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2C mov r2, sp bl SetMonData adds r0, r4, 0 movs r1, 0 ldr r2, [sp, 0x2C] bl SetMonData adds r0, r4, 0 movs r1, 0x37 ldr r2, [sp, 0x30] bl SetMonData adds r0, r4, 0 movs r1, 0x38 ldr r2, [sp, 0x1C] bl SetMonData adds r0, r4, 0 movs r1, 0x39 ldr r2, [sp, 0x18] bl SetMonData adds r0, r4, 0 movs r1, 0x3A ldr r2, [sp, 0x24] bl SetMonData adds r0, r4, 0 movs r1, 0x3B ldr r2, [sp, 0x4] bl SetMonData adds r0, r4, 0 movs r1, 0x3C ldr r2, [sp, 0x8] bl SetMonData adds r0, r4, 0 movs r1, 0x3D ldr r2, [sp, 0xC] bl SetMonData adds r0, r4, 0 movs r1, 0x3E ldr r2, [sp, 0x10] bl SetMonData adds r0, r4, 0 movs r1, 0x3F ldr r2, [sp, 0x14] bl SetMonData b _08138C5A .align 2, 0 _0813855C: .4byte gPlayerParty _08138560: movs r0, 0x64 muls r0, r5 ldr r1, _08138578 adds r0, r1 ldr r1, _0813857C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0xB bl SetMonData b _08138C5A .align 2, 0 _08138578: .4byte gPlayerParty _0813857C: .4byte gUnknown_02024A60 _08138580: movs r0, 0x64 muls r0, r5 ldr r1, _08138598 adds r0, r1 ldr r1, _0813859C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0xC bl SetMonData b _08138C5A .align 2, 0 _08138598: .4byte gPlayerParty _0813859C: .4byte gUnknown_02024A60 _081385A0: movs r0, 0 mov r8, r0 movs r0, 0xC adds r0, r3 mov r9, r0 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _081385F4 adds r7, r1, r0 adds r6, r3, 0 adds r6, 0x8 adds r4, r3, 0 _081385BA: mov r1, r8 adds r1, 0xD adds r0, r7, 0 adds r2, r4, 0 bl SetMonData mov r1, r8 adds r1, 0x11 adds r0, r7, 0 adds r2, r6, 0 bl SetMonData adds r6, 0x1 adds r4, 0x2 movs r0, 0x1 add r8, r0 mov r0, r8 cmp r0, 0x3 ble _081385BA movs r0, 0x64 muls r0, r5 ldr r1, _081385F4 adds r0, r1 movs r1, 0x15 mov r2, r9 bl SetMonData b _08138C5A .align 2, 0 _081385F4: .4byte gPlayerParty _081385F8: movs r0, 0x64 muls r0, r5 ldr r1, _08138614 adds r0, r1 ldr r3, _08138618 ldr r1, _0813861C ldrb r2, [r1] lsls r2, 9 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] adds r1, 0x9 b _0813869C .align 2, 0 _08138614: .4byte gPlayerParty _08138618: .4byte gUnknown_02023A60 _0813861C: .4byte gUnknown_02024A60 _08138620: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0813867C adds r4, r0 ldr r5, _08138680 ldrb r2, [r5] lsls r2, 9 adds r2, r7 adds r0, r4, 0 movs r1, 0x11 bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x1 adds r2, r0 adds r0, r4, 0 movs r1, 0x12 bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x2 adds r2, r0 adds r0, r4, 0 movs r1, 0x13 bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x3 adds r2, r0 adds r0, r4, 0 movs r1, 0x14 bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x4 adds r2, r0 adds r0, r4, 0 movs r1, 0x15 bl SetMonData b _08138C5A .align 2, 0 _0813867C: .4byte gPlayerParty _08138680: .4byte gUnknown_02024A60 _08138684: movs r0, 0x64 muls r0, r5 ldr r1, _081386A8 adds r0, r1 ldr r3, _081386AC ldr r1, _081386B0 ldrb r2, [r1] lsls r2, 9 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] adds r1, 0x8 _0813869C: adds r3, 0x3 adds r2, r3 bl SetMonData b _08138C5A .align 2, 0 _081386A8: .4byte gPlayerParty _081386AC: .4byte gUnknown_02023A60 _081386B0: .4byte gUnknown_02024A60 _081386B4: movs r0, 0x64 muls r0, r5 ldr r1, _081386CC adds r0, r1 ldr r1, _081386D0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1 bl SetMonData b _08138C5A .align 2, 0 _081386CC: .4byte gPlayerParty _081386D0: .4byte gUnknown_02024A60 _081386D4: movs r0, 0x64 muls r0, r5 ldr r1, _081386EC adds r0, r1 ldr r1, _081386F0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x19 bl SetMonData b _08138C5A .align 2, 0 _081386EC: .4byte gPlayerParty _081386F0: .4byte gUnknown_02024A60 _081386F4: movs r0, 0x64 muls r0, r5 ldr r1, _0813870C adds r0, r1 ldr r1, _08138710 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1A bl SetMonData b _08138C5A .align 2, 0 _0813870C: .4byte gPlayerParty _08138710: .4byte gUnknown_02024A60 _08138714: movs r0, 0x64 muls r0, r5 ldr r1, _0813872C adds r0, r1 ldr r1, _08138730 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1B bl SetMonData b _08138C5A .align 2, 0 _0813872C: .4byte gPlayerParty _08138730: .4byte gUnknown_02024A60 _08138734: movs r0, 0x64 muls r0, r5 ldr r1, _0813874C adds r0, r1 ldr r1, _08138750 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1C bl SetMonData b _08138C5A .align 2, 0 _0813874C: .4byte gPlayerParty _08138750: .4byte gUnknown_02024A60 _08138754: movs r0, 0x64 muls r0, r5 ldr r1, _0813876C adds r0, r1 ldr r1, _08138770 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1D bl SetMonData b _08138C5A .align 2, 0 _0813876C: .4byte gPlayerParty _08138770: .4byte gUnknown_02024A60 _08138774: movs r0, 0x64 muls r0, r5 ldr r1, _0813878C adds r0, r1 ldr r1, _08138790 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1E bl SetMonData b _08138C5A .align 2, 0 _0813878C: .4byte gPlayerParty _08138790: .4byte gUnknown_02024A60 _08138794: movs r0, 0x64 muls r0, r5 ldr r1, _081387AC adds r0, r1 ldr r1, _081387B0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1F bl SetMonData b _08138C5A .align 2, 0 _081387AC: .4byte gPlayerParty _081387B0: .4byte gUnknown_02024A60 _081387B4: movs r0, 0x64 muls r0, r5 ldr r1, _081387CC adds r0, r1 ldr r1, _081387D0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x20 bl SetMonData b _08138C5A .align 2, 0 _081387CC: .4byte gPlayerParty _081387D0: .4byte gUnknown_02024A60 _081387D4: movs r0, 0x64 muls r0, r5 ldr r1, _081387EC adds r0, r1 ldr r1, _081387F0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x22 bl SetMonData b _08138C5A .align 2, 0 _081387EC: .4byte gPlayerParty _081387F0: .4byte gUnknown_02024A60 _081387F4: movs r0, 0x64 muls r0, r5 ldr r1, _0813880C adds r0, r1 ldr r1, _08138810 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x23 bl SetMonData b _08138C5A .align 2, 0 _0813880C: .4byte gPlayerParty _08138810: .4byte gUnknown_02024A60 _08138814: movs r0, 0x64 muls r0, r5 ldr r1, _0813882C adds r0, r1 ldr r1, _08138830 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x24 bl SetMonData b _08138C5A .align 2, 0 _0813882C: .4byte gPlayerParty _08138830: .4byte gUnknown_02024A60 _08138834: movs r0, 0x64 muls r0, r5 ldr r1, _0813884C adds r0, r1 ldr r1, _08138850 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x25 bl SetMonData b _08138C5A .align 2, 0 _0813884C: .4byte gPlayerParty _08138850: .4byte gUnknown_02024A60 _08138854: movs r0, 0x64 muls r0, r5 ldr r1, _0813886C adds r0, r1 ldr r1, _08138870 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x26 bl SetMonData b _08138C5A .align 2, 0 _0813886C: .4byte gPlayerParty _08138870: .4byte gUnknown_02024A60 _08138874: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _081388DC adds r4, r0 ldr r5, _081388E0 ldrb r2, [r5] lsls r2, 9 adds r2, r7 adds r0, r4, 0 movs r1, 0x27 bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x1 adds r2, r0 adds r0, r4, 0 movs r1, 0x28 bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x2 adds r2, r0 adds r0, r4, 0 movs r1, 0x29 bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x3 adds r2, r0 adds r0, r4, 0 movs r1, 0x2A bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x4 adds r2, r0 adds r0, r4, 0 movs r1, 0x2B bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x5 adds r2, r0 adds r0, r4, 0 b _08138994 .align 2, 0 _081388DC: .4byte gPlayerParty _081388E0: .4byte gUnknown_02024A60 _081388E4: movs r0, 0x64 muls r0, r5 ldr r1, _081388FC adds r0, r1 ldr r1, _08138900 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x27 bl SetMonData b _08138C5A .align 2, 0 _081388FC: .4byte gPlayerParty _08138900: .4byte gUnknown_02024A60 _08138904: movs r0, 0x64 muls r0, r5 ldr r1, _0813891C adds r0, r1 ldr r1, _08138920 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x28 bl SetMonData b _08138C5A .align 2, 0 _0813891C: .4byte gPlayerParty _08138920: .4byte gUnknown_02024A60 _08138924: movs r0, 0x64 muls r0, r5 ldr r1, _0813893C adds r0, r1 ldr r1, _08138940 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x29 bl SetMonData b _08138C5A .align 2, 0 _0813893C: .4byte gPlayerParty _08138940: .4byte gUnknown_02024A60 _08138944: movs r0, 0x64 muls r0, r5 ldr r1, _0813895C adds r0, r1 ldr r1, _08138960 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x2A bl SetMonData b _08138C5A .align 2, 0 _0813895C: .4byte gPlayerParty _08138960: .4byte gUnknown_02024A60 _08138964: movs r0, 0x64 muls r0, r5 ldr r1, _0813897C adds r0, r1 ldr r1, _08138980 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x2B bl SetMonData b _08138C5A .align 2, 0 _0813897C: .4byte gPlayerParty _08138980: .4byte gUnknown_02024A60 _08138984: movs r0, 0x64 muls r0, r5 ldr r1, _0813899C adds r0, r1 ldr r1, _081389A0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 _08138994: movs r1, 0x2C bl SetMonData b _08138C5A .align 2, 0 _0813899C: .4byte gPlayerParty _081389A0: .4byte gUnknown_02024A60 _081389A4: movs r0, 0x64 muls r0, r5 ldr r1, _081389BC adds r0, r1 ldr r1, _081389C0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0 bl SetMonData b _08138C5A .align 2, 0 _081389BC: .4byte gPlayerParty _081389C0: .4byte gUnknown_02024A60 _081389C4: movs r0, 0x64 muls r0, r5 ldr r1, _081389DC adds r0, r1 ldr r1, _081389E0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x9 bl SetMonData b _08138C5A .align 2, 0 _081389DC: .4byte gPlayerParty _081389E0: .4byte gUnknown_02024A60 _081389E4: movs r0, 0x64 muls r0, r5 ldr r1, _081389FC adds r0, r1 ldr r1, _08138A00 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x37 bl SetMonData b _08138C5A .align 2, 0 _081389FC: .4byte gPlayerParty _08138A00: .4byte gUnknown_02024A60 _08138A04: movs r0, 0x64 muls r0, r5 ldr r1, _08138A1C adds r0, r1 ldr r1, _08138A20 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x38 bl SetMonData b _08138C5A .align 2, 0 _08138A1C: .4byte gPlayerParty _08138A20: .4byte gUnknown_02024A60 _08138A24: movs r0, 0x64 muls r0, r5 ldr r1, _08138A3C adds r0, r1 ldr r1, _08138A40 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x39 bl SetMonData b _08138C5A .align 2, 0 _08138A3C: .4byte gPlayerParty _08138A40: .4byte gUnknown_02024A60 _08138A44: movs r0, 0x64 muls r0, r5 ldr r1, _08138A5C adds r0, r1 ldr r1, _08138A60 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3A bl SetMonData b _08138C5A .align 2, 0 _08138A5C: .4byte gPlayerParty _08138A60: .4byte gUnknown_02024A60 _08138A64: movs r0, 0x64 muls r0, r5 ldr r1, _08138A7C adds r0, r1 ldr r1, _08138A80 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3B bl SetMonData b _08138C5A .align 2, 0 _08138A7C: .4byte gPlayerParty _08138A80: .4byte gUnknown_02024A60 _08138A84: movs r0, 0x64 muls r0, r5 ldr r1, _08138A9C adds r0, r1 ldr r1, _08138AA0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3C bl SetMonData b _08138C5A .align 2, 0 _08138A9C: .4byte gPlayerParty _08138AA0: .4byte gUnknown_02024A60 _08138AA4: movs r0, 0x64 muls r0, r5 ldr r1, _08138ABC adds r0, r1 ldr r1, _08138AC0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3D bl SetMonData b _08138C5A .align 2, 0 _08138ABC: .4byte gPlayerParty _08138AC0: .4byte gUnknown_02024A60 _08138AC4: movs r0, 0x64 muls r0, r5 ldr r1, _08138ADC adds r0, r1 ldr r1, _08138AE0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3E bl SetMonData b _08138C5A .align 2, 0 _08138ADC: .4byte gPlayerParty _08138AE0: .4byte gUnknown_02024A60 _08138AE4: movs r0, 0x64 muls r0, r5 ldr r1, _08138AFC adds r0, r1 ldr r1, _08138B00 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3F bl SetMonData b _08138C5A .align 2, 0 _08138AFC: .4byte gPlayerParty _08138B00: .4byte gUnknown_02024A60 _08138B04: movs r0, 0x64 muls r0, r5 ldr r1, _08138B1C adds r0, r1 ldr r1, _08138B20 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x16 bl SetMonData b _08138C5A .align 2, 0 _08138B1C: .4byte gPlayerParty _08138B20: .4byte gUnknown_02024A60 _08138B24: movs r0, 0x64 muls r0, r5 ldr r1, _08138B3C adds r0, r1 ldr r1, _08138B40 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x17 bl SetMonData b _08138C5A .align 2, 0 _08138B3C: .4byte gPlayerParty _08138B40: .4byte gUnknown_02024A60 _08138B44: movs r0, 0x64 muls r0, r5 ldr r1, _08138B5C adds r0, r1 ldr r1, _08138B60 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x18 bl SetMonData b _08138C5A .align 2, 0 _08138B5C: .4byte gPlayerParty _08138B60: .4byte gUnknown_02024A60 _08138B64: movs r0, 0x64 muls r0, r5 ldr r1, _08138B7C adds r0, r1 ldr r1, _08138B80 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x21 bl SetMonData b _08138C5A .align 2, 0 _08138B7C: .4byte gPlayerParty _08138B80: .4byte gUnknown_02024A60 _08138B84: movs r0, 0x64 muls r0, r5 ldr r1, _08138B9C adds r0, r1 ldr r1, _08138BA0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x2F bl SetMonData b _08138C5A .align 2, 0 _08138B9C: .4byte gPlayerParty _08138BA0: .4byte gUnknown_02024A60 _08138BA4: movs r0, 0x64 muls r0, r5 ldr r1, _08138BBC adds r0, r1 ldr r1, _08138BC0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x30 bl SetMonData b _08138C5A .align 2, 0 _08138BBC: .4byte gPlayerParty _08138BC0: .4byte gUnknown_02024A60 _08138BC4: movs r0, 0x64 muls r0, r5 ldr r1, _08138BDC adds r0, r1 ldr r1, _08138BE0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x32 bl SetMonData b _08138C5A .align 2, 0 _08138BDC: .4byte gPlayerParty _08138BE0: .4byte gUnknown_02024A60 _08138BE4: movs r0, 0x64 muls r0, r5 ldr r1, _08138BFC adds r0, r1 ldr r1, _08138C00 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x33 bl SetMonData b _08138C5A .align 2, 0 _08138BFC: .4byte gPlayerParty _08138C00: .4byte gUnknown_02024A60 _08138C04: movs r0, 0x64 muls r0, r5 ldr r1, _08138C1C adds r0, r1 ldr r1, _08138C20 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x34 bl SetMonData b _08138C5A .align 2, 0 _08138C1C: .4byte gPlayerParty _08138C20: .4byte gUnknown_02024A60 _08138C24: movs r0, 0x64 muls r0, r5 ldr r1, _08138C3C adds r0, r1 ldr r1, _08138C40 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x35 bl SetMonData b _08138C5A .align 2, 0 _08138C3C: .4byte gPlayerParty _08138C40: .4byte gUnknown_02024A60 _08138C44: movs r0, 0x64 muls r0, r5 ldr r1, _08138C84 adds r0, r1 ldr r1, _08138C88 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x36 bl SetMonData _08138C5A: ldr r2, _08138C8C ldr r0, _08138C88 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, _08138C84 adds r0, r2 bl sub_80324F8 add sp, 0x34 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08138C84: .4byte gPlayerParty _08138C88: .4byte gUnknown_02024A60 _08138C8C: .4byte gUnknown_02024A6A thumb_func_end sub_8138294 thumb_func_start sub_8138C90 sub_8138C90: @ 8138C90 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8138C90 thumb_func_start sub_8138C9C sub_8138C9C: @ 8138C9C push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8138C9C thumb_func_start sub_8138CA8 sub_8138CA8: @ 8138CA8 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8138CA8 thumb_func_start sub_8138CB4 sub_8138CB4: @ 8138CB4 push {r4-r6,lr} ldr r0, _08138CE0 ldr r6, _08138CE4 ldrb r2, [r6] lsls r1, r2, 9 adds r0, 0x1 adds r1, r0 ldrb r0, [r1] cmp r0, 0 bne _08138CF0 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x1 bl move_anim_start_t4 ldr r0, _08138CE8 ldrb r1, [r6] lsls r1, 2 adds r1, r0 ldr r0, _08138CEC str r0, [r1] b _08138D26 .align 2, 0 _08138CE0: .4byte gUnknown_02023A60 _08138CE4: .4byte gUnknown_02024A60 _08138CE8: .4byte gUnknown_03004330 _08138CEC: .4byte sub_813789C _08138CF0: ldr r5, _08138D2C adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _08138D30 adds r0, r4 bl FreeSpriteOamMatrix ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldr r1, _08138D34 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 bl dp01_tbl5_exec_completed _08138D26: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08138D2C: .4byte gUnknown_02024BE0 _08138D30: .4byte gSprites _08138D34: .4byte gUnknown_03004340 thumb_func_end sub_8138CB4 thumb_func_start sub_8138D38 sub_8138D38: @ 8138D38 push {r4-r6,lr} ldr r4, _08138DE0 ldrb r1, [r4] movs r0, 0x2 bl sub_8031AF4 ldrb r0, [r4] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0x2 bl GetMonSpriteTemplate_803C5A0 ldr r0, _08138DE4 ldr r1, _08138DE8 ldrb r1, [r1, 0x8] movs r2, 0x8 subs r2, r1 lsls r2, 18 movs r1, 0xA0 lsls r1, 15 adds r2, r1 asrs r2, 16 movs r1, 0x50 movs r3, 0x1E bl CreateSprite ldr r6, _08138DEC ldrb r1, [r4] adds r1, r6 strb r0, [r1] ldr r5, _08138DF0 ldrb r3, [r4] adds r0, r3, r6 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 lsls r3, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0xF0 strh r1, [r0, 0x24] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _08138DF4 strh r1, [r0, 0x2E] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r5, 0x1C adds r0, r5 ldr r1, _08138DF8 str r1, [r0] ldr r1, _08138DFC ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08138E00 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08138DE0: .4byte gUnknown_02024A60 _08138DE4: .4byte gUnknown_02024E8C _08138DE8: .4byte gTrainerBackPicCoords _08138DEC: .4byte gUnknown_02024BE0 _08138DF0: .4byte gSprites _08138DF4: .4byte 0x0000fffe _08138DF8: .4byte sub_80313A0 _08138DFC: .4byte gUnknown_03004330 _08138E00: .4byte sub_813741C thumb_func_end sub_8138D38 thumb_func_start sub_8138E04 sub_8138E04: @ 8138E04 push {r4-r6,lr} ldr r4, _08138EAC ldrb r1, [r4] movs r0, 0x2 bl sub_8031AF4 ldrb r0, [r4] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0x2 bl GetMonSpriteTemplate_803C5A0 ldr r0, _08138EB0 ldr r1, _08138EB4 ldrb r1, [r1, 0x8] movs r2, 0x8 subs r2, r1 lsls r2, 18 movs r1, 0xA0 lsls r1, 15 adds r2, r1 asrs r2, 16 movs r1, 0x50 movs r3, 0x1E bl CreateSprite ldr r6, _08138EB8 ldrb r1, [r4] adds r1, r6 strb r0, [r1] ldr r5, _08138EBC ldrb r3, [r4] adds r0, r3, r6 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 lsls r3, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _08138EC0 strh r1, [r0, 0x24] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x2 strh r1, [r0, 0x2E] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r5, 0x1C adds r0, r5 ldr r1, _08138EC4 str r1, [r0] ldr r1, _08138EC8 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08138ECC str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08138EAC: .4byte gUnknown_02024A60 _08138EB0: .4byte gUnknown_02024E8C _08138EB4: .4byte gTrainerBackPicCoords _08138EB8: .4byte gUnknown_02024BE0 _08138EBC: .4byte gSprites _08138EC0: .4byte 0x0000ffa0 _08138EC4: .4byte sub_80313A0 _08138EC8: .4byte gUnknown_03004330 _08138ECC: .4byte sub_8137908 thumb_func_end sub_8138E04 thumb_func_start sub_8138ED0 sub_8138ED0: @ 8138ED0 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8138ED0 thumb_func_start sub_8138EDC sub_8138EDC: @ 8138EDC push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8138EDC thumb_func_start sub_8138EE8 sub_8138EE8: @ 8138EE8 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8138EE8 thumb_func_start sub_8138EF4 sub_8138EF4: @ 8138EF4 push {r4,r5,lr} ldr r1, _08138F30 movs r0, 0x4 strb r0, [r1, 0x8] ldr r1, _08138F34 movs r0, 0x1 strb r0, [r1] ldr r5, _08138F38 ldrb r4, [r5] movs r0, 0x1 bl battle_get_side_with_given_state adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r4, 0 movs r3, 0x4 bl move_anim_start_t4 ldr r1, _08138F3C ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _08138F40 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08138F30: .4byte 0x02017840 _08138F34: .4byte gUnknown_02024E6D _08138F38: .4byte gUnknown_02024A60 _08138F3C: .4byte gUnknown_03004330 _08138F40: .4byte bx_wait_t5 thumb_func_end sub_8138EF4 thumb_func_start sub_8138F44 sub_8138F44: @ 8138F44 push {r4,r5,lr} ldr r1, _08138F88 ldr r5, _08138F8C ldrb r0, [r5] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r1, [r0] ldr r0, _08138F90 strb r1, [r0, 0x8] ldr r1, _08138F94 movs r0, 0x1 strb r0, [r1] ldrb r4, [r5] movs r0, 0x1 bl battle_get_side_with_given_state adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r4, 0 movs r3, 0x4 bl move_anim_start_t4 ldr r1, _08138F98 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _08138F9C str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08138F88: .4byte gUnknown_02023A60 _08138F8C: .4byte gUnknown_02024A60 _08138F90: .4byte 0x02017840 _08138F94: .4byte gUnknown_02024E6D _08138F98: .4byte gUnknown_03004330 _08138F9C: .4byte bx_wait_t5 thumb_func_end sub_8138F44 thumb_func_start sub_8138FA0 sub_8138FA0: @ 8138FA0 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8138FA0 thumb_func_start sub_8138FAC sub_8138FAC: @ 8138FAC push {r4-r6,lr} ldr r0, _08139080 mov r12, r0 ldr r6, _08139084 ldrb r2, [r6] lsls r2, 9 adds r0, 0x1 adds r0, r2, r0 ldrb r0, [r0] mov r1, r12 adds r1, 0x2 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 ldr r5, _08139088 mov r1, r12 adds r1, 0x3 adds r2, r1 ldrb r1, [r2] strb r1, [r5] ldr r4, _0813908C ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x4 adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0x5 adds r2, r1 ldrb r1, [r2] lsls r1, 8 orrs r3, r1 strh r3, [r4] ldr r4, _08139090 ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x6 adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0x7 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 8 orrs r3, r1 mov r1, r12 adds r1, 0x8 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 16 orrs r3, r1 mov r1, r12 adds r1, 0x9 adds r2, r1 ldrb r1, [r2] lsls r1, 24 orrs r3, r1 str r3, [r4] ldr r3, _08139094 ldrb r1, [r6] lsls r1, 9 mov r2, r12 adds r2, 0xA adds r1, r2 ldrb r1, [r1] strb r1, [r3] ldr r4, _08139098 ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0xC adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0xD adds r2, r1 ldrb r1, [r2] lsls r1, 8 orrs r3, r1 strh r3, [r4] ldr r3, _0813909C ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x10 adds r2, r1 str r2, [r3] ldr r3, _081390A0 ldrb r1, [r6] lsls r1, 2 adds r1, r3 ldr r2, [r2] str r2, [r1] ldrb r1, [r5] bl sub_8031720 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _081390A4 bl dp01_tbl5_exec_completed b _081390BE .align 2, 0 _08139080: .4byte gUnknown_02023A60 _08139084: .4byte gUnknown_02024A60 _08139088: .4byte gUnknown_0202F7C4 _0813908C: .4byte gUnknown_0202F7BC _08139090: .4byte gUnknown_0202F7B8 _08139094: .4byte gUnknown_0202F7BE _08139098: .4byte gUnknown_0202F7C0 _0813909C: .4byte gUnknown_0202F7B4 _081390A0: .4byte gUnknown_02024E70 _081390A4: ldrb r1, [r6] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _081390C4 adds r0, r1 strb r2, [r0, 0x4] ldr r1, _081390C8 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _081390CC str r1, [r0] _081390BE: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081390C4: .4byte 0x02017810 _081390C8: .4byte gUnknown_03004330 _081390CC: .4byte sub_81390D0 thumb_func_end sub_8138FAC thumb_func_start sub_81390D0 sub_81390D0: @ 81390D0 push {r4-r7,lr} mov r7, r8 push {r7} ldr r2, _0813910C ldr r5, _08139110 ldrb r3, [r5] lsls r1, r3, 9 adds r0, r2, 0x1 mov r8, r0 adds r0, r1, r0 ldrb r4, [r0] adds r7, r2, 0x2 adds r1, r7 ldrb r0, [r1] lsls r0, 8 orrs r4, r0 lsls r0, r3, 1 adds r0, r3 lsls r0, 2 ldr r6, _08139114 adds r0, r6 ldrb r2, [r0, 0x4] cmp r2, 0x1 beq _08139150 cmp r2, 0x1 bgt _08139118 cmp r2, 0 beq _08139122 b _081391FC .align 2, 0 _0813910C: .4byte gUnknown_02023A60 _08139110: .4byte gUnknown_02024A60 _08139114: .4byte 0x02017810 _08139118: cmp r2, 0x2 beq _08139176 cmp r2, 0x3 beq _081391C4 b _081391FC _08139122: lsls r0, r3, 2 adds r1, r6, 0 subs r1, 0x10 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08139140 adds r0, r3, 0 adds r1, r3, 0 adds r2, r3, 0 movs r3, 0x5 bl move_anim_start_t4 _08139140: ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 movs r0, 0x1 strb r0, [r1, 0x4] b _081391FC _08139150: ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _081391FC movs r0, 0 bl sub_80326EC adds r0, r4, 0 bl move_anim_start_t1 ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 movs r0, 0x2 strb r0, [r1, 0x4] b _081391FC _08139176: ldr r0, _081391BC ldr r0, [r0] bl _call_via_r0 ldr r0, _081391C0 ldrb r0, [r0] cmp r0, 0 bne _081391FC movs r0, 0x1 bl sub_80326EC ldrb r2, [r5] lsls r0, r2, 2 adds r1, r6, 0 subs r1, 0x10 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _081391AA adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x6 bl move_anim_start_t4 _081391AA: ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 movs r0, 0x3 strb r0, [r1, 0x4] b _081391FC .align 2, 0 _081391BC: .4byte gUnknown_0202F7AC _081391C0: .4byte gUnknown_0202F7B1 _081391C4: ldrb r1, [r0] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _081391FC bl sub_8031F24 ldrb r0, [r5] lsls r2, r0, 9 mov r3, r8 adds r1, r2, r3 ldrb r1, [r1] adds r2, r7 ldrb r2, [r2] lsls r2, 8 orrs r1, r2 bl sub_80324BC ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 strb r4, [r0, 0x4] bl dp01_tbl5_exec_completed _081391FC: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81390D0 thumb_func_start sub_8139208 sub_8139208: @ 8139208 push {r4,r5,lr} sub sp, 0x4 ldr r0, _08139254 movs r1, 0 strh r1, [r0] ldr r0, _08139258 strh r1, [r0] ldr r5, _0813925C ldrb r0, [r5] lsls r0, 9 ldr r1, _08139260 adds r4, r0, r1 ldrh r0, [r4] cmp r0, 0x2 bne _0813922A bl sub_814A7FC _0813922A: ldrh r0, [r4] bl sub_8120AA8 ldr r0, _08139264 ldr r1, _08139268 movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r1, _0813926C ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _08139270 str r1, [r0] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08139254: .4byte gUnknown_030042A4 _08139258: .4byte gUnknown_030042A0 _0813925C: .4byte gUnknown_02024A60 _08139260: .4byte gUnknown_02023A62 _08139264: .4byte gUnknown_03004210 _08139268: .4byte gUnknown_020238CC _0813926C: .4byte gUnknown_03004330 _08139270: .4byte sub_8137454 thumb_func_end sub_8139208 thumb_func_start dp01t_11_5_message_for_player_only dp01t_11_5_message_for_player_only: @ 8139274 push {lr} ldr r0, _0813928C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08139290 bl sub_8139208 b _08139294 .align 2, 0 _0813928C: .4byte gUnknown_02024A60 _08139290: bl dp01_tbl5_exec_completed _08139294: pop {r0} bx r0 thumb_func_end dp01t_11_5_message_for_player_only thumb_func_start sub_8139298 sub_8139298: @ 8139298 push {r4,r5,lr} sub sp, 0x8 ldr r0, _0813934C movs r2, 0 strh r2, [r0] ldr r1, _08139350 movs r0, 0xA0 strh r0, [r1] ldr r4, _08139354 movs r5, 0 strb r2, [r4, 0x6] movs r0, 0x1B str r0, [sp] movs r0, 0x12 str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0xA movs r2, 0x2 movs r3, 0xF bl FillWindowRect_DefaultPalette movs r0, 0x10 str r0, [sp] movs r0, 0x24 str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0xA movs r2, 0x2 movs r3, 0x23 bl FillWindowRect_DefaultPalette ldr r1, _08139358 ldr r0, _0813935C ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _08139360 str r1, [r0] ldr r1, _08139364 movs r2, 0xC8 lsls r2, 1 movs r0, 0x23 str r0, [sp] adds r0, r4, 0 movs r3, 0x12 bl InitWindow adds r0, r4, 0 bl sub_8002F44 ldr r1, _08139368 ldr r3, _0813936C str r5, [sp] movs r0, 0 movs r2, 0xC bl sub_814A5C0 movs r4, 0 _0813930C: lsls r0, r4, 24 lsrs r0, 24 bl nullsub_8 adds r4, 0x1 cmp r4, 0x3 ble _0813930C movs r0, 0 movs r1, 0 bl sub_802E3E4 ldr r0, _08139370 bl get_battle_strings_ ldr r4, _08139354 ldr r1, _08139374 movs r2, 0xDC lsls r2, 1 movs r0, 0x23 str r0, [sp] adds r0, r4, 0 movs r3, 0x2 bl InitWindow adds r0, r4, 0 bl sub_8002F44 add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813934C: .4byte gUnknown_030042A4 _08139350: .4byte gUnknown_030042A0 _08139354: .4byte gUnknown_03004210 _08139358: .4byte gUnknown_03004330 _0813935C: .4byte gUnknown_02024A60 _08139360: .4byte sub_81372BC _08139364: .4byte gUnknown_08400CF3 _08139368: .4byte 0x0000ffff _0813936C: .4byte 0x00002d9f _08139370: .4byte gUnknown_08400CCC _08139374: .4byte gUnknown_020238CC thumb_func_end sub_8139298 thumb_func_start sub_8139378 sub_8139378: @ 8139378 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139378 thumb_func_start sub_8139384 sub_8139384: @ 8139384 push {r4,r5,lr} ldr r5, _08139398 ldr r0, _0813939C adds r4, r5, r0 ldrb r0, [r4] cmp r0, 0 beq _081393A0 cmp r0, 0x1 beq _081393B2 b _081393DE .align 2, 0 _08139398: .4byte 0x02000000 _0813939C: .4byte 0x000160a9 _081393A0: bl sub_80304A8 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r0, _081393E4 adds r1, r5, r0 movs r0, 0x50 strb r0, [r1] _081393B2: ldr r1, _081393E8 ldr r0, _081393E4 adds r1, r0 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bne _081393DE bl sub_814A7FC movs r0, 0x5 bl PlaySE movs r2, 0x80 lsls r2, 1 movs r0, 0x1 movs r1, 0xA bl dp01_build_cmdbuf_x21_a_bb bl dp01_tbl5_exec_completed _081393DE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081393E4: .4byte 0x000160ab _081393E8: .4byte 0x02000000 thumb_func_end sub_8139384 thumb_func_start sub_81393EC sub_81393EC: @ 81393EC push {lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0813941C ldr r2, _08139420 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _08139424 str r1, [r0] ldr r1, _08139428 ldrb r0, [r2] strb r0, [r1] add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0813941C: .4byte gUnknown_03004330 _08139420: .4byte gUnknown_02024A60 _08139424: .4byte sub_81374C4 _08139428: .4byte gUnknown_02024E6C thumb_func_end sub_81393EC thumb_func_start sub_813942C sub_813942C: @ 813942C push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_813942C thumb_func_start sub_8139438 sub_8139438: @ 8139438 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139438 thumb_func_start sub_8139444 sub_8139444: @ 8139444 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 movs r0, 0 bl load_gfxc_health_bar ldr r3, _081394BC ldr r0, _081394C0 mov r9, r0 ldrb r4, [r0] lsls r2, r4, 9 adds r0, r3, 0x2 adds r0, r2, r0 ldrb r1, [r0] adds r3, 0x3 adds r2, r3 ldrb r0, [r2] lsls r0, 8 orrs r1, r0 lsls r1, 16 asrs r7, r1, 16 ldr r0, _081394C4 cmp r7, r0 beq _081394D4 ldr r6, _081394C8 lsls r0, r4, 1 adds r0, r6 ldrh r0, [r0] movs r5, 0x64 muls r0, r5 ldr r4, _081394CC adds r0, r4 movs r1, 0x3A bl GetMonData mov r8, r0 mov r1, r9 ldrb r0, [r1] lsls r0, 1 adds r0, r6 ldrh r0, [r0] muls r0, r5 adds r0, r4 movs r1, 0x39 bl GetMonData adds r3, r0, 0 mov r1, r9 ldrb r0, [r1] ldr r1, _081394D0 adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] mov r2, r8 bl sub_8043D84 b _0813950E .align 2, 0 _081394BC: .4byte gUnknown_02023A60 _081394C0: .4byte gUnknown_02024A60 _081394C4: .4byte 0x00007fff _081394C8: .4byte gUnknown_02024A6A _081394CC: .4byte gPlayerParty _081394D0: .4byte gUnknown_03004340 _081394D4: ldr r1, _0813952C lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08139530 adds r0, r1 movs r1, 0x3A bl GetMonData adds r2, r0, 0 mov r1, r9 ldrb r0, [r1] ldr r4, _08139534 adds r1, r0, r4 ldrb r1, [r1] str r7, [sp] movs r3, 0 bl sub_8043D84 mov r1, r9 ldrb r0, [r1] adds r0, r4 ldrb r0, [r0] movs r1, 0 movs r2, 0 bl sub_80440EC _0813950E: ldr r1, _08139538 ldr r0, _0813953C ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _08139540 str r1, [r0] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813952C: .4byte gUnknown_02024A6A _08139530: .4byte gPlayerParty _08139534: .4byte gUnknown_03004340 _08139538: .4byte gUnknown_03004330 _0813953C: .4byte gUnknown_02024A60 _08139540: .4byte sub_81377B0 thumb_func_end sub_8139444 thumb_func_start sub_8139544 sub_8139544: @ 8139544 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139544 thumb_func_start sub_8139550 sub_8139550: @ 8139550 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139550 thumb_func_start sub_813955C sub_813955C: @ 813955C push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_813955C thumb_func_start sub_8139568 sub_8139568: @ 8139568 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139568 thumb_func_start sub_8139574 sub_8139574: @ 8139574 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139574 thumb_func_start sub_8139580 sub_8139580: @ 8139580 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139580 thumb_func_start sub_813958C sub_813958C: @ 813958C push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_813958C thumb_func_start sub_8139598 sub_8139598: @ 8139598 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139598 thumb_func_start sub_81395A4 sub_81395A4: @ 81395A4 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_81395A4 thumb_func_start sub_81395B0 sub_81395B0: @ 81395B0 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_81395B0 thumb_func_start sub_81395BC sub_81395BC: @ 81395BC push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_81395BC thumb_func_start sub_81395C8 sub_81395C8: @ 81395C8 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_81395C8 thumb_func_start sub_81395D4 sub_81395D4: @ 81395D4 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_81395D4 thumb_func_start sub_81395E0 sub_81395E0: @ 81395E0 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_81395E0 thumb_func_start sub_81395EC sub_81395EC: @ 81395EC push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_81395EC thumb_func_start sub_81395F8 sub_81395F8: @ 81395F8 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_81395F8 thumb_func_start sub_8139604 sub_8139604: @ 8139604 push {r4,lr} ldr r3, _0813962C ldr r2, _08139630 ldr r4, _08139634 ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r0, [r0] lsls r0, 29 cmp r0, 0 bge _08139638 bl dp01_tbl5_exec_completed b _08139662 .align 2, 0 _0813962C: .4byte gSprites _08139630: .4byte gUnknown_02024BE0 _08139634: .4byte gUnknown_02024A60 _08139638: ldr r1, _08139668 movs r0, 0x1 strb r0, [r1] ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0 strh r1, [r0, 0x30] ldrb r0, [r4] bl sub_8047858 ldr r1, _0813966C ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08139670 str r1, [r0] _08139662: pop {r4} pop {r0} bx r0 .align 2, 0 _08139668: .4byte gUnknown_02024E6D _0813966C: .4byte gUnknown_03004330 _08139670: .4byte bx_blink_t5 thumb_func_end sub_8139604 thumb_func_start sub_8139674 sub_8139674: @ 8139674 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139674 thumb_func_start sub_8139680 sub_8139680: @ 8139680 push {lr} ldr r2, _081396A8 ldr r0, _081396AC ldrb r1, [r0] lsls r1, 9 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r0, [r0] adds r2, 0x2 adds r1, r2 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 bl PlaySE bl dp01_tbl5_exec_completed pop {r0} bx r0 .align 2, 0 _081396A8: .4byte gUnknown_02023A60 _081396AC: .4byte gUnknown_02024A60 thumb_func_end sub_8139680 thumb_func_start sub_81396B0 sub_81396B0: @ 81396B0 push {lr} ldr r2, _081396D8 ldr r0, _081396DC ldrb r1, [r0] lsls r1, 9 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r0, [r0] adds r2, 0x2 adds r1, r2 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 bl PlayFanfare bl dp01_tbl5_exec_completed pop {r0} bx r0 .align 2, 0 _081396D8: .4byte gUnknown_02023A60 _081396DC: .4byte gUnknown_02024A60 thumb_func_end sub_81396B0 thumb_func_start sub_81396E0 sub_81396E0: @ 81396E0 push {lr} ldr r1, _08139710 ldr r0, _08139714 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08139718 adds r0, r1 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 movs r1, 0x19 bl PlayCry1 bl dp01_tbl5_exec_completed pop {r0} bx r0 .align 2, 0 _08139710: .4byte gUnknown_02024A6A _08139714: .4byte gUnknown_02024A60 _08139718: .4byte gPlayerParty thumb_func_end sub_81396E0 thumb_func_start dp01t_2E_5_battle_intro dp01t_2E_5_battle_intro: @ 813971C push {lr} ldr r1, _08139744 ldr r0, _08139748 ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] bl sub_80E43C0 ldr r2, _0813974C ldrh r0, [r2] movs r1, 0x1 orrs r0, r1 strh r0, [r2] bl dp01_tbl5_exec_completed pop {r0} bx r0 .align 2, 0 _08139744: .4byte gUnknown_02023A60 _08139748: .4byte gUnknown_02024A60 _0813974C: .4byte gUnknown_02024DE8 thumb_func_end dp01t_2E_5_battle_intro thumb_func_start sub_8139750 sub_8139750: @ 8139750 push {r4-r7,lr} ldr r6, _08139880 ldr r7, _08139884 ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _08139888 adds r0, r5 bl oamt_add_pos2_onto_pos1 ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x32 strh r1, [r0, 0x2E] ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _0813988C strh r1, [r0, 0x32] ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r1, [r0, 0x22] strh r1, [r0, 0x36] ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, _08139890 str r1, [r0] ldrb r2, [r7] adds r0, r2, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x38] ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _08139894 bl oamt_set_x3A_32 ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x1 bl StartSpriteAnim ldr r0, _08139898 bl AllocSpritePalette adds r4, r0, 0 lsls r4, 24 ldr r0, _0813989C ldr r0, [r0, 0x10] lsrs r4, 20 movs r2, 0x80 lsls r2, 1 adds r1, r4, r2 movs r2, 0x20 bl LoadCompressedPalette ldrb r0, [r7] adds r0, r6 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r4 strb r0, [r1, 0x5] ldr r0, _081398A0 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r4, _081398A4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r4 ldrb r0, [r7] strh r0, [r1, 0x8] ldrb r3, [r7] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 ldr r2, _081398A8 adds r0, r2 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08139864 ldr r0, _081398AC adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 ldr r1, _081398B0 str r1, [r0] _08139864: adds r2, 0x30 ldrb r0, [r2, 0x9] movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x9] ldr r1, _081398B4 ldrb r0, [r7] lsls r0, 2 adds r0, r1 ldr r1, _081398B8 str r1, [r0] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08139880: .4byte gUnknown_02024BE0 _08139884: .4byte gUnknown_02024A60 _08139888: .4byte gSprites _0813988C: .4byte 0x0000ffd8 _08139890: .4byte sub_8078B34 _08139894: .4byte sub_8030E38 _08139898: .4byte 0x0000d6f8 _0813989C: .4byte gTrainerBackPicPaletteTable _081398A0: .4byte sub_8139A2C _081398A4: .4byte gTasks _081398A8: .4byte 0x02017810 _081398AC: .4byte gUnknown_02024E68 _081398B0: .4byte sub_8044CA0 _081398B4: .4byte gUnknown_03004330 _081398B8: .4byte nullsub_91 thumb_func_end sub_8139750 thumb_func_start sub_81398BC sub_81398BC: @ 81398BC push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 lsls r0, r6, 2 ldr r1, _08139A00 adds r0, r1 movs r1, 0 strh r1, [r0, 0x2] ldr r0, _08139A04 lsls r2, r6, 1 adds r2, r0 ldr r0, _08139A08 lsls r1, r6, 9 adds r0, 0x1 adds r1, r0 ldrb r0, [r1] strh r0, [r2] ldrh r1, [r2] movs r0, 0x64 muls r0, r1 ldr r1, _08139A0C adds r0, r1 movs r1, 0xB bl GetMonData mov r8, r0 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r0, _08139A10 bl object_new_hidden_with_callback ldr r1, _08139A14 mov r9, r1 add r9, r6 mov r1, r9 strb r0, [r1] adds r0, r6, 0 bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r8 bl GetMonSpriteTemplate_803C56C ldr r0, _08139A18 mov r10, r0 adds r0, r6, 0 movs r1, 0x2 bl sub_8077ABC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r6, 0 bl sub_8077F68 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 bl sub_8079E90 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 mov r0, r10 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite ldr r4, _08139A1C adds r4, r6, r4 strb r0, [r4] ldr r5, _08139A20 mov r0, r9 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r4] strh r1, [r0, 0x30] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r6, [r0, 0x2E] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r8 strh r1, [r0, 0x32] ldrb r0, [r4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 lsls r3, r6, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _08139A24 adds r6, r1 ldrb r1, [r6] bl StartSpriteAnim ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, _08139A28 str r1, [r0] movs r0, 0 movs r1, 0xFF bl sub_8046400 mov r1, r9 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r5 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x2E] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08139A00: .4byte 0x02017800 _08139A04: .4byte gUnknown_02024A6A _08139A08: .4byte gUnknown_02023A60 _08139A0C: .4byte gPlayerParty _08139A10: .4byte sub_80312F0 _08139A14: .4byte gUnknown_0300434C _08139A18: .4byte gUnknown_02024E8C _08139A1C: .4byte gUnknown_02024BE0 _08139A20: .4byte gSprites _08139A24: .4byte gUnknown_02024E84 _08139A28: .4byte SpriteCallbackDummy thumb_func_end sub_81398BC thumb_func_start sub_8139A2C sub_8139A2C: @ 8139A2C push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _08139A4C lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r1, r0, r1 ldrh r2, [r1, 0xA] movs r3, 0xA ldrsh r0, [r1, r3] cmp r0, 0x1E bgt _08139A50 adds r0, r2, 0x1 strh r0, [r1, 0xA] b _08139A86 .align 2, 0 _08139A4C: .4byte gTasks _08139A50: ldr r4, _08139A8C ldrb r5, [r4] ldrh r0, [r1, 0x8] strb r0, [r4] ldr r0, _08139A90 ldrb r1, [r4] lsls r2, r1, 9 adds r0, 0x1 adds r2, r0 ldr r0, _08139A94 lsls r1, 1 adds r1, r0 ldrh r0, [r1] strb r0, [r2] ldrb r0, [r4] bl sub_81398BC ldr r1, _08139A98 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08139A9C str r1, [r0] strb r5, [r4] adds r0, r6, 0 bl DestroyTask _08139A86: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08139A8C: .4byte gUnknown_02024A60 _08139A90: .4byte gUnknown_02023A60 _08139A94: .4byte gUnknown_02024A6A _08139A98: .4byte gUnknown_03004330 _08139A9C: .4byte sub_8137538 thumb_func_end sub_8139A2C thumb_func_start sub_8139AA0 sub_8139AA0: @ 8139AA0 push {r4,r5,lr} ldr r1, _08139AC8 ldr r0, _08139ACC ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08139AD0 adds r0, r2, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08139AD0 bl dp01_tbl5_exec_completed b _08139B0A .align 2, 0 _08139AC8: .4byte gUnknown_02023A60 _08139ACC: .4byte gUnknown_02024A60 _08139AD0: ldr r5, _08139B10 ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _08139B14 adds r0, r1 ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] ldrb r0, [r5] lsls r4, r0, 9 ldr r3, _08139B18 adds r1, r4, r3 subs r2, r3, 0x3 adds r2, r4, r2 ldrb r2, [r2] subs r3, 0x2 adds r4, r3 ldrb r3, [r4] bl sub_8044804 ldr r2, _08139B1C ldrb r1, [r5] adds r1, r2 strb r0, [r1] bl dp01_tbl5_exec_completed _08139B0A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08139B10: .4byte gUnknown_02024A60 _08139B14: .4byte 0x02017810 _08139B18: .4byte gUnknown_02023A64 _08139B1C: .4byte gUnknown_02024E68 thumb_func_end sub_8139AA0 thumb_func_start sub_8139B20 sub_8139B20: @ 8139B20 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139B20 thumb_func_start sub_8139B2C sub_8139B2C: @ 8139B2C push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139B2C thumb_func_start sub_8139B38 sub_8139B38: @ 8139B38 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139B38 thumb_func_start sub_8139B44 sub_8139B44: @ 8139B44 push {r4-r6,lr} sub sp, 0x4 ldr r5, _08139B7C ldr r6, _08139B80 ldrb r2, [r6] lsls r1, r2, 9 adds r0, r5, 0x1 adds r0, r1, r0 ldrb r3, [r0] adds r0, r5, 0x2 adds r0, r1, r0 ldrb r4, [r0] adds r5, 0x3 adds r1, r5 ldrb r0, [r1] lsls r0, 8 orrs r4, r0 str r4, [sp] adds r0, r2, 0 adds r1, r2, 0 bl move_anim_start_t3 lsls r0, 24 cmp r0, 0 beq _08139B84 bl dp01_tbl5_exec_completed b _08139B90 .align 2, 0 _08139B7C: .4byte gUnknown_02023A60 _08139B80: .4byte gUnknown_02024A60 _08139B84: ldr r0, _08139B98 ldrb r1, [r6] lsls r1, 2 adds r1, r0 ldr r0, _08139B9C str r0, [r1] _08139B90: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08139B98: .4byte gUnknown_03004330 _08139B9C: .4byte sub_8137940 thumb_func_end sub_8139B44 thumb_func_start sub_8139BA0 sub_8139BA0: @ 8139BA0 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139BA0 thumb_func_start sub_8139BAC sub_8139BAC: @ 8139BAC push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139BAC thumb_func_start sub_8139BB8 sub_8139BB8: @ 8139BB8 push {r4,lr} ldr r2, _08139BFC ldr r1, _08139C00 ldr r4, _08139C04 ldrb r0, [r4] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] strb r0, [r2] movs r0, 0x5 bl FadeOutMapMusic movs r0, 0x3 bl BeginFastPaletteFade bl dp01_tbl5_exec_completed ldr r0, _08139C08 ldrh r1, [r0] movs r0, 0x6 ands r0, r1 cmp r0, 0x2 bne _08139BF4 ldr r0, _08139C0C ldrb r1, [r4] lsls r1, 2 adds r1, r0 ldr r0, _08139C10 str r0, [r1] _08139BF4: pop {r4} pop {r0} bx r0 .align 2, 0 _08139BFC: .4byte gUnknown_02024D26 _08139C00: .4byte gUnknown_02023A60 _08139C04: .4byte gUnknown_02024A60 _08139C08: .4byte gUnknown_020239F8 _08139C0C: .4byte gUnknown_03004330 _08139C10: .4byte sub_813746C thumb_func_end sub_8139BB8 thumb_func_start nullsub_80 nullsub_80: @ 8139C14 bx lr thumb_func_end nullsub_80 thumb_func_start sub_8139C18 sub_8139C18: @ 8139C18 push {r4-r6,lr} movs r4, 0 ldr r0, _08139C6C movs r1, 0x32 bl sub_80A9684 ldr r1, _08139C70 ldrh r0, [r1] cmp r0, 0 beq _08139C64 ldrh r0, [r1, 0x2] cmp r0, 0 beq _08139C64 adds r5, r1, 0 adds r6, r5, 0x2 _08139C36: lsls r1, r4, 2 adds r0, r1, r5 ldrh r0, [r0] adds r1, r6 ldrh r1, [r1] bl sub_80A9760 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08139C64 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 lsls r1, r4, 2 adds r0, r1, r5 ldrh r0, [r0] cmp r0, 0 beq _08139C64 adds r0, r1, r6 ldrh r0, [r0] cmp r0, 0 bne _08139C36 _08139C64: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08139C6C: .4byte gSaveBlock1 + 0x498 _08139C70: .4byte gUnknown_084062F0 thumb_func_end sub_8139C18 thumb_func_start sub_8139C74 sub_8139C74: @ 8139C74 push {lr} ldr r1, _08139C9C ldr r0, _08139CA0 str r0, [r1] ldr r1, _08139CA4 movs r0, 0x4 strb r0, [r1] ldr r0, _08139CA8 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r1, _08139CAC ldr r2, _08139CB0 movs r3, 0 bl DisplayItemMessageOnField pop {r0} bx r0 .align 2, 0 _08139C9C: .4byte gUnknown_02039314 _08139CA0: .4byte gUnknown_084062B8 _08139CA4: .4byte gUnknown_030007B4 _08139CA8: .4byte TaskDummy _08139CAC: .4byte gOtherText_WhatWillYouDo _08139CB0: .4byte sub_8139CF4 thumb_func_end sub_8139C74 thumb_func_start sub_8139CB4 sub_8139CB4: @ 8139CB4 push {lr} ldr r1, _08139CDC ldr r0, _08139CE0 str r0, [r1] ldr r1, _08139CE4 movs r0, 0x3 strb r0, [r1] ldr r0, _08139CE8 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r1, _08139CEC ldr r2, _08139CF0 movs r3, 0 bl DisplayItemMessageOnField pop {r0} bx r0 .align 2, 0 _08139CDC: .4byte gUnknown_02039314 _08139CE0: .4byte gUnknown_084062BC _08139CE4: .4byte gUnknown_030007B4 _08139CE8: .4byte TaskDummy _08139CEC: .4byte gOtherText_WhatWillYouDo _08139CF0: .4byte sub_8139CF4 thumb_func_end sub_8139CB4 thumb_func_start sub_8139CF4 sub_8139CF4: @ 8139CF4 push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _08139D50 ldrb r3, [r5] lsls r3, 1 adds r3, 0x1 lsls r3, 24 lsrs r3, 24 movs r0, 0 movs r1, 0 movs r2, 0xA bl MenuDrawTextWindow ldrb r2, [r5] ldr r3, _08139D54 ldr r0, _08139D58 ldr r0, [r0] str r0, [sp] movs r0, 0x1 movs r1, 0x1 bl PrintMenuItemsReordered ldrb r3, [r5] movs r0, 0 str r0, [sp] movs r0, 0x9 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl InitMenu ldr r1, _08139D5C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08139D60 str r1, [r0] add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08139D50: .4byte gUnknown_030007B4 _08139D54: .4byte gUnknown_08406298 _08139D58: .4byte gUnknown_02039314 _08139D5C: .4byte gTasks _08139D60: .4byte sub_8139D64 thumb_func_end sub_8139CF4 thumb_func_start sub_8139D64 sub_8139D64: @ 8139D64 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 adds r4, r5, 0 ldr r2, _08139D88 ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08139D8C movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 bl MoveMenuCursor b _08139E10 .align 2, 0 _08139D88: .4byte gMain _08139D8C: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08139DA2 movs r0, 0x5 bl PlaySE movs r0, 0x1 bl MoveMenuCursor b _08139E10 _08139DA2: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08139DE0 bl sub_8072DEC movs r0, 0x5 bl PlaySE ldr r4, _08139DD8 bl GetMenuCursorPos lsls r0, 24 lsrs r0, 24 ldr r1, _08139DDC ldr r1, [r1] adds r1, r0 ldrb r0, [r1] lsls r0, 3 adds r4, 0x4 adds r0, r4 ldr r1, [r0] adds r0, r5, 0 bl _call_via_r1 b _08139E10 .align 2, 0 _08139DD8: .4byte gUnknown_08406298 _08139DDC: .4byte gUnknown_02039314 _08139DE0: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08139E10 bl sub_8072DEC movs r0, 0x5 bl PlaySE ldr r2, _08139E18 ldr r0, _08139E1C ldrb r0, [r0] ldr r1, _08139E20 ldr r1, [r1] adds r0, r1 subs r0, 0x1 ldrb r0, [r0] lsls r0, 3 adds r2, 0x4 adds r0, r2 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 _08139E10: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08139E18: .4byte gUnknown_08406298 _08139E1C: .4byte gUnknown_030007B4 _08139E20: .4byte gUnknown_02039314 thumb_func_end sub_8139D64 thumb_func_start sub_8139E24 sub_8139E24: @ 8139E24 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _08139E38 ldr r2, _08139E3C movs r3, 0 bl DisplayItemMessageOnField pop {r0} bx r0 .align 2, 0 _08139E38: .4byte gOtherText_WhatWillYouDo _08139E3C: .4byte sub_8139CF4 thumb_func_end sub_8139E24 thumb_func_start sub_8139E40 sub_8139E40: @ 8139E40 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 bl sub_8139F58 ldr r1, _08139E64 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08139E68 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08139E64: .4byte gTasks _08139E68: .4byte sub_8139FD4 thumb_func_end sub_8139E40 thumb_func_start sub_8139E6C sub_8139E6C: @ 8139E6C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 movs r1, 0 movs r2, 0xA movs r3, 0x9 bl MenuZeroFillWindowRect bl sub_813AF3C ldr r1, _08139E9C movs r2, 0 strb r0, [r1, 0x3] lsls r0, 24 cmp r0, 0 bne _08139EA8 ldr r1, _08139EA0 ldr r2, _08139EA4 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField b _08139ECA .align 2, 0 _08139E9C: .4byte 0x0201fe00 _08139EA0: .4byte gOtherText_NoMailHere _08139EA4: .4byte sub_8139E24 _08139EA8: strb r2, [r1] strb r2, [r1, 0x2] bl sub_813AF78 adds r0, r4, 0 bl sub_813A240 adds r0, r4, 0 bl sub_813B108 ldr r0, _08139ED0 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08139ED4 str r0, [r1] _08139ECA: pop {r4} pop {r0} bx r0 .align 2, 0 _08139ED0: .4byte gTasks _08139ED4: .4byte sub_813B174 thumb_func_end sub_8139E6C thumb_func_start sub_8139ED8 sub_8139ED8: @ 8139ED8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0 movs r2, 0xA movs r3, 0x9 bl MenuZeroFillWindowRect adds r0, r4, 0 bl sub_80FE28C pop {r4} pop {r0} bx r0 thumb_func_end sub_8139ED8 thumb_func_start sub_8139EF8 sub_8139EF8: @ 8139EF8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08139F24 ldrb r0, [r0] cmp r0, 0x4 bne _08139F3C movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect ldr r0, _08139F28 ldrb r0, [r0, 0x8] cmp r0, 0 bne _08139F30 ldr r0, _08139F2C bl ScriptContext1_SetupScript b _08139F4C .align 2, 0 _08139F24: .4byte gUnknown_030007B4 _08139F28: .4byte gSaveBlock2 _08139F2C: .4byte gUnknown_08152850 _08139F30: ldr r0, _08139F38 bl ScriptContext1_SetupScript b _08139F4C .align 2, 0 _08139F38: .4byte gUnknown_08152C75 _08139F3C: movs r0, 0 movs r1, 0 movs r2, 0xA movs r3, 0x9 bl MenuZeroFillWindowRect bl EnableBothScriptContexts _08139F4C: adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 thumb_func_end sub_8139EF8 thumb_func_start sub_8139F58 sub_8139F58: @ 8139F58 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0 movs r2, 0xA movs r3, 0x9 bl MenuZeroFillWindowRect movs r0, 0 movs r1, 0 movs r2, 0xB movs r3, 0x9 bl MenuDrawTextWindow ldr r3, _08139FAC movs r0, 0x1 movs r1, 0x1 movs r2, 0x4 bl PrintMenuItems str r4, [sp] movs r0, 0xA str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 movs r3, 0x4 bl InitMenu ldr r0, _08139FB0 lsls r4, 2 adds r4, r0 ldr r0, [r4] bl sub_8139FB4 add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _08139FAC: .4byte gUnknown_084062C0 _08139FB0: .4byte gUnknown_08406288 thumb_func_end sub_8139F58 thumb_func_start sub_8139FB4 sub_8139FB4: @ 8139FB4 push {r4,lr} adds r4, r0, 0 movs r0, 0x2 movs r1, 0xF movs r2, 0x1B movs r3, 0x12 bl MenuFillWindowRectWithBlankTile adds r0, r4, 0 movs r1, 0x2 movs r2, 0xF bl MenuPrint pop {r4} pop {r0} bx r0 thumb_func_end sub_8139FB4 thumb_func_start sub_8139FD4 sub_8139FD4: @ 8139FD4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 adds r4, r5, 0 ldr r2, _08139FF4 ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08139FF8 movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 b _0813A008 .align 2, 0 _08139FF4: .4byte gMain _08139FF8: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0813A024 movs r0, 0x5 bl PlaySE movs r0, 0x1 _0813A008: bl MoveMenuCursor ldr r4, _0813A020 bl GetMenuCursorPos lsls r0, 24 lsrs r0, 22 adds r0, r4 ldr r0, [r0] bl sub_8139FB4 b _0813A06C .align 2, 0 _0813A020: .4byte gUnknown_08406288 _0813A024: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0813A050 movs r0, 0x5 bl PlaySE ldr r4, _0813A04C bl GetMenuCursorPos lsls r0, 24 lsrs r0, 21 adds r4, 0x4 adds r0, r4 ldr r1, [r0] adds r0, r5, 0 bl _call_via_r1 b _0813A06C .align 2, 0 _0813A04C: .4byte gUnknown_084062C0 _0813A050: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0813A06C bl sub_8072DEC movs r0, 0x5 bl PlaySE ldr r0, _0813A074 ldr r1, [r0, 0x1C] adds r0, r4, 0 bl _call_via_r1 _0813A06C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813A074: .4byte gUnknown_084062C0 thumb_func_end sub_8139FD4 thumb_func_start sub_813A078 sub_813A078: @ 813A078 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0813A09C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0813A094 bl sub_80A6A30 adds r0, r4, 0 bl DestroyTask _0813A094: pop {r4} pop {r0} bx r0 .align 2, 0 _0813A09C: .4byte gPaletteFade thumb_func_end sub_813A078 thumb_func_start sub_813A0A0 sub_813A0A0: @ 813A0A0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0813A0C0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _0813A0C4 str r0, [r1] movs r0, 0x1 movs r1, 0 bl fade_screen pop {r0} bx r0 .align 2, 0 _0813A0C0: .4byte gTasks _0813A0C4: .4byte sub_813A078 thumb_func_end sub_813A0A0 thumb_func_start sub_813A0C8 sub_813A0C8: @ 813A0C8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_807D770 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0813A0E8 ldr r0, _0813A0F0 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0813A0F4 str r0, [r1] _0813A0E8: pop {r4} pop {r0} bx r0 .align 2, 0 _0813A0F0: .4byte gTasks _0813A0F4: .4byte sub_8139FD4 thumb_func_end sub_813A0C8 thumb_func_start sub_813A0F8 sub_813A0F8: @ 813A0F8 push {lr} bl MenuDisplayMessageBox movs r0, 0x1 bl sub_8139F58 ldr r0, _0813A114 movs r1, 0 bl CreateTask bl pal_fill_black pop {r0} bx r0 .align 2, 0 _0813A114: .4byte sub_813A0C8 thumb_func_end sub_813A0F8 thumb_func_start sub_813A118 sub_813A118: @ 813A118 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r6, r0, 3 ldr r7, _0813A174 adds r4, r6, r7 bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0xB movs r3, 0x9 bl MenuZeroFillWindowRect bl sub_80A96E4 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x4] cmp r0, 0 beq _0813A17C movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect movs r0, 0 strh r0, [r4, 0xC] strh r0, [r4] strh r0, [r4, 0x2] adds r0, r5, 0 bl sub_813A240 adds r0, r5, 0 movs r1, 0 bl sub_813AE6C adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, _0813A178 str r1, [r0] b _0813A188 .align 2, 0 _0813A174: .4byte gUnknown_03004B28 _0813A178: .4byte sub_813A280 _0813A17C: ldr r1, _0813A190 ldr r2, _0813A194 adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField _0813A188: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813A190: .4byte gOtherText_NoItems _0813A194: .4byte sub_8139E40 thumb_func_end sub_813A118 thumb_func_start sub_813A198 sub_813A198: @ 813A198 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r6, r0, 3 ldr r7, _0813A1F8 adds r4, r6, r7 bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0xB movs r3, 0x9 bl MenuZeroFillWindowRect bl sub_80A96E4 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x4] cmp r0, 0 beq _0813A200 movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect movs r0, 0x2 strh r0, [r4, 0xC] movs r0, 0 strh r0, [r4] strh r0, [r4, 0x2] adds r0, r5, 0 bl sub_813A240 adds r0, r5, 0 movs r1, 0x2 bl sub_813AE6C adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, _0813A1FC str r1, [r0] b _0813A20C .align 2, 0 _0813A1F8: .4byte gUnknown_03004B28 _0813A1FC: .4byte sub_813A280 _0813A200: ldr r1, _0813A214 ldr r2, _0813A218 adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField _0813A20C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813A214: .4byte gOtherText_NoItems _0813A218: .4byte sub_8139E40 thumb_func_end sub_813A198 thumb_func_start sub_813A21C sub_813A21C: @ 813A21C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0xB movs r3, 0x9 bl MenuZeroFillWindowRect adds r0, r4, 0 bl sub_8139E24 pop {r4} pop {r0} bx r0 thumb_func_end sub_813A21C thumb_func_start sub_813A240 sub_813A240: @ 813A240 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _0813A260 adds r1, r0 ldrh r2, [r1, 0x4] movs r3, 0x4 ldrsh r0, [r1, r3] cmp r0, 0x7 ble _0813A264 movs r0, 0x8 b _0813A266 .align 2, 0 _0813A260: .4byte gUnknown_03004B28 _0813A264: adds r0, r2, 0x1 _0813A266: strh r0, [r1, 0x8] ldr r1, _0813A274 ldrb r0, [r1, 0x3] cmp r0, 0x7 bls _0813A278 movs r0, 0x8 b _0813A27A .align 2, 0 _0813A274: .4byte 0x0201fe00 _0813A278: adds r0, 0x1 _0813A27A: strb r0, [r1, 0x1] pop {r0} bx r0 thumb_func_end sub_813A240 thumb_func_start sub_813A280 sub_813A280: @ 813A280 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0813A2DC adds r4, r0, r1 ldr r2, _0813A2E0 ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0813A306 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 beq _0813A2E4 movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 bl MoveMenuCursor lsls r0, 24 lsrs r0, 24 strh r0, [r4] ldrh r1, [r4, 0x2] adds r1, r0 lsls r1, 16 lsrs r1, 16 movs r2, 0x12 ldrsh r0, [r4, r2] cmp r0, 0 beq _0813A2CC b _0813A460 _0813A2CC: lsls r0, r1, 16 asrs r1, r0, 16 movs r2, 0x4 ldrsh r0, [r4, r2] cmp r1, r0 beq _0813A34C b _0813A358 .align 2, 0 _0813A2DC: .4byte gUnknown_03004B28 _0813A2E0: .4byte gMain _0813A2E4: movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0 bne _0813A2EE b _0813A460 _0813A2EE: movs r0, 0x5 bl PlaySE ldrh r0, [r4, 0x2] subs r0, 0x1 strh r0, [r4, 0x2] adds r0, r5, 0 bl sub_813AE0C movs r2, 0x12 ldrsh r0, [r4, r2] b _0813A394 _0813A306: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0813A3A0 movs r0, 0 ldrsh r1, [r4, r0] movs r2, 0x8 ldrsh r0, [r4, r2] subs r0, 0x1 cmp r1, r0 beq _0813A370 movs r0, 0x5 bl PlaySE movs r0, 0x1 bl MoveMenuCursor lsls r0, 24 lsrs r0, 24 strh r0, [r4] ldrh r1, [r4, 0x2] adds r1, r0 lsls r1, 16 lsrs r1, 16 movs r2, 0x12 ldrsh r0, [r4, r2] cmp r0, 0 beq _0813A340 b _0813A460 _0813A340: lsls r0, r1, 16 asrs r1, r0, 16 movs r2, 0x4 ldrsh r0, [r4, r2] cmp r1, r0 bne _0813A358 _0813A34C: ldr r0, _0813A354 bl sub_813AD58 b _0813A460 .align 2, 0 _0813A354: .4byte 0x0000ffff _0813A358: ldr r0, _0813A36C lsls r1, 2 adds r1, r0 movs r0, 0x93 lsls r0, 3 adds r1, r0 ldrh r0, [r1] bl sub_813AD58 b _0813A460 .align 2, 0 _0813A36C: .4byte gSaveBlock1 _0813A370: movs r2, 0x2 ldrsh r0, [r4, r2] adds r0, r1 movs r2, 0x4 ldrsh r1, [r4, r2] cmp r0, r1 beq _0813A460 movs r0, 0x5 bl PlaySE ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] adds r0, r5, 0 bl sub_813AE0C movs r1, 0x12 ldrsh r0, [r4, r1] _0813A394: cmp r0, 0 beq _0813A460 movs r0, 0 bl MoveMenuCursor b _0813A460 _0813A3A0: ldrh r1, [r2, 0x2E] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0813A3F0 movs r2, 0x12 ldrsh r0, [r4, r2] cmp r0, 0 bne _0813A3E8 movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] adds r0, r1 movs r2, 0x4 ldrsh r1, [r4, r2] cmp r0, r1 beq _0813A3DC movs r0, 0x5 bl PlaySE movs r0, 0x1 strh r0, [r4, 0x12] ldrh r0, [r4] ldrh r1, [r4, 0x2] adds r0, r1 strh r0, [r4, 0x10] ldr r0, _0813A3E4 bl sub_813AD58 _0813A3DC: adds r0, r5, 0 bl sub_813ABE8 b _0813A460 .align 2, 0 _0813A3E4: .4byte 0x0000fff7 _0813A3E8: movs r0, 0x5 bl PlaySE b _0813A420 _0813A3F0: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0813A430 movs r0, 0x5 bl PlaySE movs r2, 0x12 ldrsh r0, [r4, r2] cmp r0, 0 bne _0813A420 movs r1, 0x2 ldrsh r0, [r4, r1] movs r2, 0 ldrsh r1, [r4, r2] adds r0, r1 movs r2, 0x4 ldrsh r1, [r4, r2] cmp r0, r1 beq _0813A44A adds r0, r5, 0 bl sub_813A4B4 b _0813A460 _0813A420: adds r0, r5, 0 movs r1, 0 bl sub_813AA30 adds r0, r5, 0 bl sub_813AE0C b _0813A460 _0813A430: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0813A460 movs r0, 0x5 bl PlaySE movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 bne _0813A452 bl sub_8072DEC _0813A44A: adds r0, r5, 0 bl sub_813A468 b _0813A460 _0813A452: adds r0, r6, 0 movs r1, 0x1 bl sub_813AA30 adds r0, r6, 0 bl sub_813AE0C _0813A460: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_813A280 thumb_func_start sub_813A468 sub_813A468: @ 813A468 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 bl BuyMenuFreeMemory movs r0, 0 bl SetBgTilemapBuffer movs r0, 0x1 bl SetBgTilemapBuffer movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect bl MenuDisplayMessageBox ldr r0, _0813A4AC lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 ldrb r0, [r4, 0x14] bl sub_8139F58 ldr r0, _0813A4B0 str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813A4AC: .4byte gTasks _0813A4B0: .4byte sub_8139FD4 thumb_func_end sub_813A468 thumb_func_start sub_813A4B4 sub_813A4B4: @ 813A4B4 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _0813A500 adds r4, r0, r1 ldrb r0, [r4, 0x2] ldrb r1, [r4] adds r0, r1 lsls r0, 24 lsrs r5, r0, 24 movs r0, 0 bl sub_80F996C movs r0, 0x1 bl sub_80F996C movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0 bne _0813A518 ldr r1, _0813A504 lsls r0, r5, 2 adds r0, r1 ldr r1, _0813A508 adds r0, r1 ldrh r0, [r0] cmp r0, 0x1 bne _0813A50C strh r0, [r4, 0x6] adds r0, r6, 0 bl sub_813A6FC b _0813A570 .align 2, 0 _0813A500: .4byte gUnknown_03004B28 _0813A504: .4byte gSaveBlock1 _0813A508: .4byte 0x0000049a _0813A50C: ldr r0, _0813A514 bl sub_813AD58 b _0813A542 .align 2, 0 _0813A514: .4byte 0x0000fffe _0813A518: ldr r1, _0813A534 lsls r0, r5, 2 adds r0, r1 ldr r1, _0813A538 adds r0, r1 ldrh r0, [r0] cmp r0, 0x1 bne _0813A53C strh r0, [r4, 0x6] adds r0, r6, 0 bl sub_813A794 b _0813A570 .align 2, 0 _0813A534: .4byte gSaveBlock1 _0813A538: .4byte 0x0000049a _0813A53C: ldr r0, _0813A578 bl sub_813AD58 _0813A542: movs r0, 0x1 strh r0, [r4, 0x6] movs r0, 0x6 movs r1, 0x8 movs r2, 0xD movs r3, 0xB bl MenuDrawTextWindow ldrh r0, [r4, 0x6] movs r1, 0x3 str r1, [sp] movs r1, 0x1 movs r2, 0x8 movs r3, 0x9 bl sub_80A418C ldr r1, _0813A57C lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _0813A580 str r1, [r0] _0813A570: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813A578: .4byte 0x0000fffc _0813A57C: .4byte gTasks _0813A580: .4byte sub_813A584 thumb_func_end sub_813A4B4 thumb_func_start sub_813A584 sub_813A584: @ 813A584 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r7, r0, 3 ldr r0, _0813A5D0 mov r8, r0 adds r4, r7, r0 ldrb r0, [r4, 0x2] ldrb r1, [r4] adds r0, r1 lsls r0, 24 lsrs r3, r0, 24 adds r6, r3, 0 ldr r2, _0813A5D4 ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0813A5E4 movs r0, 0x6 ldrsh r2, [r4, r0] ldr r1, _0813A5D8 lsls r0, r3, 2 adds r0, r1 ldr r1, _0813A5DC adds r0, r1 ldrh r0, [r0] cmp r2, r0 beq _0813A5E0 ldrh r0, [r4, 0x6] adds r0, 0x1 b _0813A64A .align 2, 0 _0813A5D0: .4byte gUnknown_03004B28 _0813A5D4: .4byte gMain _0813A5D8: .4byte gSaveBlock1 _0813A5DC: .4byte 0x0000049a _0813A5E0: movs r0, 0x1 b _0813A64A _0813A5E4: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0813A610 ldrh r1, [r4, 0x6] movs r2, 0x6 ldrsh r0, [r4, r2] cmp r0, 0x1 beq _0813A5FA subs r0, r1, 0x1 b _0813A64A _0813A5FA: ldr r0, _0813A608 lsls r1, r3, 2 adds r1, r0 ldr r3, _0813A60C adds r1, r3 ldrh r0, [r1] b _0813A64A .align 2, 0 _0813A608: .4byte gSaveBlock1 _0813A60C: .4byte 0x0000049a _0813A610: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0813A628 ldrh r0, [r4, 0x6] subs r0, 0xA strh r0, [r4, 0x6] lsls r0, 16 cmp r0, 0 bgt _0813A64C movs r0, 0x1 b _0813A64A _0813A628: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0813A668 ldrh r0, [r4, 0x6] adds r0, 0xA strh r0, [r4, 0x6] movs r0, 0x6 ldrsh r2, [r4, r0] ldr r1, _0813A660 lsls r0, r6, 2 adds r0, r1 ldr r1, _0813A664 adds r0, r1 ldrh r0, [r0] cmp r2, r0 ble _0813A64C _0813A64A: strh r0, [r4, 0x6] _0813A64C: ldrh r0, [r4, 0x6] movs r1, 0x3 str r1, [sp] movs r1, 0x1 movs r2, 0x8 movs r3, 0x9 bl sub_80A418C b _0813A6E8 .align 2, 0 _0813A660: .4byte gSaveBlock1 _0813A664: .4byte 0x0000049a _0813A668: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0813A69C movs r0, 0x5 bl PlaySE movs r0, 0x6 movs r1, 0x6 movs r2, 0xD movs r3, 0xB bl MenuZeroFillWindowRect movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0 bne _0813A694 adds r0, r5, 0 bl sub_813A6FC b _0813A6E8 _0813A694: adds r0, r5, 0 bl sub_813A794 b _0813A6E8 _0813A69C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0813A6E8 movs r0, 0x5 bl PlaySE movs r0, 0x6 movs r1, 0x6 movs r2, 0xD movs r3, 0xB bl MenuZeroFillWindowRect movs r0, 0 bl sub_80F98DC movs r0, 0x1 bl sub_80F98DC ldr r2, _0813A6F4 movs r3, 0x2 ldrsh r0, [r4, r3] movs r3, 0 ldrsh r1, [r4, r3] adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x93 lsls r1, 3 adds r0, r1 ldrh r0, [r0] bl sub_813AD58 mov r0, r8 subs r0, 0x8 adds r0, r7, r0 ldr r1, _0813A6F8 str r1, [r0] _0813A6E8: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813A6F4: .4byte gSaveBlock1 _0813A6F8: .4byte sub_813A280 thumb_func_end sub_813A584 thumb_func_start sub_813A6FC sub_813A6FC: @ 813A6FC push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r6, r1, 3 ldr r7, _0813A758 adds r4, r6, r7 ldrb r0, [r4, 0x2] ldrb r1, [r4] adds r0, r1 lsls r0, 24 ldr r1, _0813A75C lsrs r0, 22 adds r0, r1 movs r2, 0x93 lsls r2, 3 adds r5, r0, r2 ldrh r0, [r5] ldrh r1, [r4, 0x6] bl sub_80A9424 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0813A770 ldrh r0, [r5] ldr r1, _0813A760 bl itemid_copy_name ldr r0, _0813A764 movs r2, 0x6 ldrsh r1, [r4, r2] movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r0, _0813A768 bl sub_813AD58 adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, _0813A76C b _0813A782 .align 2, 0 _0813A758: .4byte gUnknown_03004B28 _0813A75C: .4byte gSaveBlock1 _0813A760: .4byte gStringVar1 _0813A764: .4byte gStringVar2 _0813A768: .4byte 0x0000fffd _0813A76C: .4byte sub_813A8F0 _0813A770: movs r0, 0 strh r0, [r4, 0x6] ldr r0, _0813A78C bl sub_813AD58 adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, _0813A790 _0813A782: str r1, [r0] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813A78C: .4byte 0x0000fffa _0813A790: .4byte sub_813A984 thumb_func_end sub_813A6FC thumb_func_start sub_813A794 sub_813A794: @ 813A794 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r7, r0, 3 ldr r0, _0813A7FC mov r8, r0 adds r4, r7, r0 ldrb r0, [r4, 0x2] ldrb r1, [r4] adds r0, r1 lsls r0, 24 ldr r1, _0813A800 lsrs r0, 22 adds r0, r1 movs r2, 0x93 lsls r2, 3 adds r5, r0, r2 ldrh r0, [r5] bl itemid_is_unique lsls r0, 24 cmp r0, 0 bne _0813A814 ldrh r0, [r5] ldr r1, _0813A804 bl itemid_copy_name ldr r0, _0813A808 movs r2, 0x6 ldrsh r1, [r4, r2] movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r0, _0813A80C bl sub_813AD58 movs r0, 0x7 movs r1, 0x6 movs r2, 0x1 bl DisplayYesNoMenu ldr r1, _0813A810 adds r0, r6, 0 bl sub_80F914C b _0813A828 .align 2, 0 _0813A7FC: .4byte gUnknown_03004B28 _0813A800: .4byte gSaveBlock1 _0813A804: .4byte gStringVar1 _0813A808: .4byte gStringVar2 _0813A80C: .4byte 0x0000fff8 _0813A810: .4byte gUnknown_084062E0 _0813A814: movs r0, 0 strh r0, [r4, 0x6] ldr r0, _0813A834 bl sub_813AD58 mov r0, r8 subs r0, 0x8 adds r0, r7, r0 ldr r1, _0813A838 str r1, [r0] _0813A828: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813A834: .4byte 0x0000fff9 _0813A838: .4byte sub_813A8F0 thumb_func_end sub_813A794 thumb_func_start sub_813A83C sub_813A83C: @ 813A83C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x6 movs r1, 0x6 movs r2, 0xD movs r3, 0xB bl MenuZeroFillWindowRect ldr r0, _0813A86C bl sub_813AD58 ldr r1, _0813A870 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0813A874 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0813A86C: .4byte 0x0000fffb _0813A870: .4byte gTasks _0813A874: .4byte sub_813A8F0 thumb_func_end sub_813A83C thumb_func_start sub_813A878 sub_813A878: @ 813A878 push {r4-r6,lr} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r6, _0813A8E4 adds r5, r4, r6 movs r0, 0x6 movs r1, 0x6 movs r2, 0xD movs r3, 0xB bl MenuZeroFillWindowRect ldrb r3, [r5, 0x8] ldrb r0, [r5] str r0, [sp] movs r0, 0xD str r0, [sp, 0x4] movs r0, 0 movs r1, 0x10 movs r2, 0x2 bl InitMenu movs r0, 0 bl sub_80F98DC movs r0, 0x1 bl sub_80F98DC ldr r2, _0813A8E8 movs r1, 0x2 ldrsh r0, [r5, r1] movs r3, 0 ldrsh r1, [r5, r3] adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x93 lsls r1, 3 adds r0, r1 ldrh r0, [r0] bl sub_813AD58 subs r6, 0x8 adds r4, r6 ldr r0, _0813A8EC str r0, [r4] add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813A8E4: .4byte gUnknown_03004B28 _0813A8E8: .4byte gSaveBlock1 _0813A8EC: .4byte sub_813A280 thumb_func_end sub_813A878 thumb_func_start sub_813A8F0 sub_813A8F0: @ 813A8F0 push {r4-r6,lr} sub sp, 0x8 lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _0813A97C adds r5, r0, r1 ldr r0, _0813A980 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0813A912 cmp r1, 0x2 bne _0813A972 _0813A912: ldrb r0, [r5, 0x2] ldrb r1, [r5] adds r0, r1 lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x6] bl sub_80A97F4 ldrh r4, [r5, 0x4] bl sub_80A96E4 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x4] lsls r4, 16 asrs r4, 16 cmp r4, r0 beq _0813A952 movs r2, 0x8 ldrsh r0, [r5, r2] movs r2, 0x2 ldrsh r1, [r5, r2] adds r0, r1 cmp r4, r0 bge _0813A952 ldrh r1, [r5, 0x2] movs r2, 0x2 ldrsh r0, [r5, r2] cmp r0, 0 beq _0813A952 subs r0, r1, 0x1 strh r0, [r5, 0x2] _0813A952: adds r0, r6, 0 bl sub_813A240 adds r0, r6, 0 bl sub_813A9EC ldrb r3, [r5, 0x8] ldrb r0, [r5] str r0, [sp] movs r0, 0xD str r0, [sp, 0x4] movs r0, 0 movs r1, 0x10 movs r2, 0x2 bl InitMenu _0813A972: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813A97C: .4byte gUnknown_03004B28 _0813A980: .4byte gMain thumb_func_end sub_813A8F0 thumb_func_start sub_813A984 sub_813A984: @ 813A984 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r4, r1, 3 ldr r5, _0813A9DC adds r3, r4, r5 ldr r0, _0813A9E0 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0813A9A4 cmp r1, 0x2 bne _0813A9D6 _0813A9A4: ldr r2, _0813A9E4 movs r1, 0x2 ldrsh r0, [r3, r1] movs r6, 0 ldrsh r1, [r3, r6] adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x93 lsls r1, 3 adds r0, r1 ldrh r0, [r0] bl sub_813AD58 movs r0, 0 bl sub_80F98DC movs r0, 0x1 bl sub_80F98DC adds r0, r5, 0 subs r0, 0x8 adds r0, r4, r0 ldr r1, _0813A9E8 str r1, [r0] _0813A9D6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813A9DC: .4byte gUnknown_03004B28 _0813A9E0: .4byte gMain _0813A9E4: .4byte gSaveBlock1 _0813A9E8: .4byte sub_813A280 thumb_func_end sub_813A984 thumb_func_start sub_813A9EC sub_813A9EC: @ 813A9EC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x6 movs r1, 0x6 movs r2, 0xD movs r3, 0xB bl MenuZeroFillWindowRect movs r0, 0 bl sub_80F98DC movs r0, 0x1 bl sub_80F98DC adds r0, r4, 0 bl sub_813AE0C ldr r1, _0813AA28 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0813AA2C str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0813AA28: .4byte gTasks _0813AA2C: .4byte sub_813A280 thumb_func_end sub_813A9EC thumb_func_start sub_813AA30 sub_813AA30: @ 813AA30 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r2, r1, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _0813AA80 adds r4, r1, r0 ldrb r0, [r4] ldrb r1, [r4, 0x2] adds r0, r1 lsls r0, 24 lsrs r5, r0, 24 movs r0, 0 strh r0, [r4, 0x12] ldrb r0, [r4, 0x4] cmp r0, r5 bls _0813AA88 ldrb r0, [r4, 0x10] cmp r0, r5 beq _0813AA88 cmp r2, 0 bne _0813AA88 ldr r1, _0813AA84 movs r0, 0x10 ldrsh r2, [r4, r0] lsls r2, 2 movs r0, 0x93 lsls r0, 3 adds r1, r0 adds r2, r1 ldr r3, [r2] lsls r0, r5, 2 adds r0, r1 ldr r1, [r0] str r1, [r2] str r3, [r0] b _0813AAB8 .align 2, 0 _0813AA80: .4byte gUnknown_03004B28 _0813AA84: .4byte gSaveBlock1 _0813AA88: movs r1, 0x4 ldrsh r0, [r4, r1] cmp r5, r0 bne _0813AA9C ldr r0, _0813AA98 bl sub_813AD58 b _0813AAAE .align 2, 0 _0813AA98: .4byte 0x0000ffff _0813AA9C: ldr r0, _0813AAC0 lsls r1, r5, 2 adds r1, r0 movs r2, 0x93 lsls r2, 3 adds r1, r2 ldrh r0, [r1] bl sub_813AD58 _0813AAAE: movs r0, 0x10 ldrsh r1, [r4, r0] movs r2, 0x2 ldrsh r0, [r4, r2] subs r0, r1, r0 _0813AAB8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813AAC0: .4byte gSaveBlock1 thumb_func_end sub_813AA30 thumb_func_start sub_813AAC4 sub_813AAC4: @ 813AAC4 push {r4-r7,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r6, [sp, 0x14] lsls r4, 16 lsrs r4, 16 lsls r2, 24 lsrs r7, r2, 24 lsls r3, 24 lsrs r3, 24 ldr r0, _0813AAF4 adds r1, r4, 0 adds r2, r5, 0 bl sub_80A4164 cmp r6, 0 beq _0813AAFC ldr r0, _0813AAF8 movs r1, 0x1A adds r2, r7, 0 bl MenuPrint b _0813AB06 .align 2, 0 _0813AAF4: .4byte gStringVar1 _0813AAF8: .4byte gUnknown_0840632A _0813AAFC: ldr r0, _0813AB0C movs r1, 0x1A adds r2, r7, 0 bl MenuPrint _0813AB06: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813AB0C: .4byte gUnknown_08406327 thumb_func_end sub_813AAC4 thumb_func_start sub_813AB10 sub_813AB10: @ 813AB10 push {lr} adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 ldr r0, _0813AB24 movs r1, 0x19 bl MenuPrint pop {r0} bx r0 .align 2, 0 _0813AB24: .4byte gUnknown_08406330 thumb_func_end sub_813AB10 thumb_func_start sub_813AB28 sub_813AB28: @ 813AB28 push {r4,r5,lr} adds r4, r2, 0 lsls r1, 24 lsrs r5, r1, 24 ldrh r0, [r0] ldr r1, _0813AB48 bl itemid_copy_name cmp r4, 0 beq _0813AB50 ldr r0, _0813AB4C movs r1, 0x10 adds r2, r5, 0 bl MenuPrint b _0813AB5A .align 2, 0 _0813AB48: .4byte gStringVar1 _0813AB4C: .4byte gUnknown_0840631E _0813AB50: ldr r0, _0813AB60 movs r1, 0x10 adds r2, r5, 0 bl MenuPrint _0813AB5A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813AB60: .4byte gUnknown_08406318 thumb_func_end sub_813AB28 thumb_func_start sub_813AB64 sub_813AB64: @ 813AB64 push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 adds r4, r1, 0 adds r5, r2, 0 lsls r4, 24 lsrs r4, 24 adds r1, r4, 0 bl sub_813AB28 ldrh r0, [r6, 0x2] str r5, [sp] movs r1, 0x1 adds r2, r4, 0 movs r3, 0x3 bl sub_813AAC4 add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_813AB64 thumb_func_start sub_813AB90 sub_813AB90: @ 813AB90 push {r4,lr} adds r4, r1, 0 lsls r4, 24 lsrs r4, 24 adds r1, r4, 0 bl sub_813AB28 adds r0, r4, 0 bl sub_813AB10 pop {r4} pop {r0} bx r0 thumb_func_end sub_813AB90 thumb_func_start sub_813ABAC sub_813ABAC: @ 813ABAC push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 adds r6, r2, 0 lsls r1, 24 lsrs r5, r1, 24 adds r1, r5, 0 bl sub_813AB28 ldrh r1, [r4] movs r0, 0xA9 lsls r0, 1 cmp r1, r0 bhi _0813ABD8 ldrh r0, [r4, 0x2] str r6, [sp] movs r1, 0x1 adds r2, r5, 0 movs r3, 0x3 bl sub_813AAC4 b _0813ABDE _0813ABD8: adds r0, r5, 0 bl sub_813AB10 _0813ABDE: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_813ABAC thumb_func_start sub_813ABE8 sub_813ABE8: @ 813ABE8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _0813AC0C adds r6, r1, r0 movs r0, 0 mov r8, r0 ldrh r5, [r6, 0x2] movs r2, 0x2 ldrsh r1, [r6, r2] b _0813ACC4 .align 2, 0 _0813AC0C: .4byte gUnknown_03004B28 _0813AC10: subs r0, r5, r1 lsls r0, 17 lsrs r0, 16 mov r8, r0 movs r1, 0x4 ldrsh r0, [r6, r1] cmp r5, r0 beq _0813AD04 movs r7, 0 movs r2, 0x12 ldrsh r0, [r6, r2] cmp r0, 0 beq _0813AC34 movs r1, 0x10 ldrsh r0, [r6, r1] cmp r5, r0 bne _0813AC34 movs r7, 0x1 _0813AC34: ldr r0, _0813AC5C lsls r4, r5, 2 adds r0, r4, r0 movs r2, 0x93 lsls r2, 3 adds r0, r2 ldrh r0, [r0] bl sub_80A9670 lsls r0, 24 lsrs r0, 24 subs r0, 0x1 cmp r0, 0x4 bhi _0813ACBA lsls r0, 2 ldr r1, _0813AC60 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813AC5C: .4byte gSaveBlock1 _0813AC60: .4byte _0813AC64 .align 2, 0 _0813AC64: .4byte _0813AC78 .4byte _0813AC78 .4byte _0813ACA8 .4byte _0813AC78 .4byte _0813AC90 _0813AC78: ldr r0, _0813AC8C adds r0, r4, r0 mov r1, r8 adds r1, 0x2 lsls r1, 24 lsrs r1, 24 adds r2, r7, 0 bl sub_813AB64 b _0813ACBA .align 2, 0 _0813AC8C: .4byte gSaveBlock1 + 0x498 _0813AC90: ldr r0, _0813ACA4 adds r0, r4, r0 mov r1, r8 adds r1, 0x2 lsls r1, 24 lsrs r1, 24 adds r2, r7, 0 bl sub_813AB90 b _0813ACBA .align 2, 0 _0813ACA4: .4byte gSaveBlock1 + 0x498 _0813ACA8: ldr r0, _0813AD00 adds r0, r4, r0 mov r1, r8 adds r1, 0x2 lsls r1, 24 lsrs r1, 24 adds r2, r7, 0 bl sub_813ABAC _0813ACBA: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 movs r0, 0x2 ldrsh r1, [r6, r0] _0813ACC4: movs r2, 0x8 ldrsh r0, [r6, r2] adds r0, r1, r0 cmp r5, r0 blt _0813AC10 _0813ACCE: movs r1, 0x2 ldrsh r0, [r6, r1] subs r0, r5, r0 cmp r0, 0x7 bgt _0813ACEA mov r1, r8 adds r1, 0x4 lsls r1, 24 lsrs r1, 24 movs r0, 0x10 movs r2, 0x1C movs r3, 0x12 bl MenuFillWindowRectWithBlankTile _0813ACEA: movs r2, 0x2 ldrsh r0, [r6, r2] cmp r0, 0 beq _0813AD20 movs r0, 0 movs r1, 0xB8 movs r2, 0x8 bl sub_80F953C b _0813AD26 .align 2, 0 _0813AD00: .4byte gSaveBlock1 + 0x498 _0813AD04: ldr r0, _0813AD1C mov r2, r8 adds r2, 0x2 lsls r2, 19 lsrs r2, 16 movs r1, 0x1 str r1, [sp] movs r1, 0x80 movs r3, 0x68 bl sub_8072A18 b _0813ACCE .align 2, 0 _0813AD1C: .4byte gOtherText_CancelNoTerminator _0813AD20: movs r0, 0 bl SetBgTilemapBuffer _0813AD26: movs r1, 0x2 ldrsh r0, [r6, r1] movs r2, 0x8 ldrsh r1, [r6, r2] adds r0, r1 movs r2, 0x4 ldrsh r1, [r6, r2] cmp r0, r1 bgt _0813AD44 movs r0, 0x1 movs r1, 0xB8 movs r2, 0x98 bl sub_80F953C b _0813AD4A _0813AD44: movs r0, 0x1 bl SetBgTilemapBuffer _0813AD4A: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_813ABE8 thumb_func_start sub_813AD58 sub_813AD58: @ 813AD58 push {lr} sub sp, 0x8 lsls r0, 16 lsrs r1, r0, 16 ldr r2, _0813AD74 adds r0, r1, r2 cmp r0, 0x8 bhi _0813ADE8 lsls r0, 2 ldr r1, _0813AD78 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813AD74: .4byte 0xffff0009 _0813AD78: .4byte _0813AD7C .align 2, 0 _0813AD7C: .4byte _0813ADE0 .4byte _0813ADD8 .4byte _0813ADD0 .4byte _0813ADC8 .4byte _0813ADC0 .4byte _0813ADB8 .4byte _0813ADB0 .4byte _0813ADA8 .4byte _0813ADA0 _0813ADA0: ldr r1, _0813ADA4 b _0813ADF0 .align 2, 0 _0813ADA4: .4byte gMenuText_GoBackToPrev _0813ADA8: ldr r1, _0813ADAC b _0813ADF0 .align 2, 0 _0813ADAC: .4byte gOtherText_HowManyToWithdraw _0813ADB0: ldr r1, _0813ADB4 b _0813ADF0 .align 2, 0 _0813ADB4: .4byte gOtherText_WithdrewThing _0813ADB8: ldr r1, _0813ADBC b _0813ADF0 .align 2, 0 _0813ADBC: .4byte gOtherText_HowManyToToss _0813ADC0: ldr r1, _0813ADC4 b _0813ADF0 .align 2, 0 _0813ADC4: .4byte gOtherText_ThrewAwayItem _0813ADC8: ldr r1, _0813ADCC b _0813ADF0 .align 2, 0 _0813ADCC: .4byte gOtherText_NoMoreRoom _0813ADD0: ldr r1, _0813ADD4 b _0813ADF0 .align 2, 0 _0813ADD4: .4byte gOtherText_TooImportant _0813ADD8: ldr r1, _0813ADDC b _0813ADF0 .align 2, 0 _0813ADDC: .4byte gOtherText_OkayToThrowAwayPrompt _0813ADE0: ldr r1, _0813ADE4 b _0813ADF0 .align 2, 0 _0813ADE4: .4byte gOtherText_SwitchWhichItem _0813ADE8: adds r0, r1, 0 bl itemid_get_description adds r1, r0, 0 _0813ADF0: movs r0, 0x30 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] adds r0, r1, 0 movs r1, 0x8 movs r2, 0x68 movs r3, 0x68 bl sub_8072AB0 add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_813AD58 thumb_func_start sub_813AE0C sub_813AE0C: @ 813AE0C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r2, _0813AE48 adds r4, r1, r2 ldrh r1, [r4] ldrh r2, [r4, 0x2] adds r1, r2 lsls r1, 16 lsrs r5, r1, 16 bl sub_813ABE8 movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 bne _0813AE62 lsls r0, r5, 16 asrs r1, r0, 16 movs r2, 0x4 ldrsh r0, [r4, r2] cmp r1, r0 bne _0813AE50 ldr r0, _0813AE4C bl sub_813AD58 b _0813AE62 .align 2, 0 _0813AE48: .4byte gUnknown_03004B28 _0813AE4C: .4byte 0x0000ffff _0813AE50: ldr r0, _0813AE68 lsls r1, 2 adds r1, r0 movs r0, 0x93 lsls r0, 3 adds r1, r0 ldrh r0, [r1] bl sub_813AD58 _0813AE62: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813AE68: .4byte gSaveBlock1 thumb_func_end sub_813AE0C thumb_func_start sub_813AE6C sub_813AE6C: @ 813AE6C push {r4-r6,lr} sub sp, 0x8 adds r6, r0, 0 adds r4, r1, 0 lsls r6, 24 lsrs r6, 24 lsls r4, 24 lsrs r4, 24 lsls r5, r6, 2 adds r5, r6 lsls r5, 3 ldr r0, _0813AEF8 adds r5, r0 bl sub_80F944C bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed bl sub_813AF04 movs r0, 0xF movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow movs r0, 0 movs r1, 0xC movs r2, 0xE movs r3, 0x13 bl MenuDrawTextWindow movs r0, 0 movs r1, 0 movs r2, 0xB movs r3, 0x3 bl MenuDrawTextWindow ldr r0, _0813AEFC movs r1, 0x93 lsls r1, 3 adds r0, r1 ldrh r0, [r0] bl sub_813AD58 ldr r0, _0813AF00 lsls r4, 3 adds r4, r0 ldr r0, [r4] movs r1, 0x1 movs r2, 0x1 bl MenuPrint adds r0, r6, 0 bl sub_813ABE8 ldrb r3, [r5, 0x8] ldrb r0, [r5] str r0, [sp] movs r0, 0xD str r0, [sp, 0x4] movs r0, 0 movs r1, 0x10 movs r2, 0x2 bl InitMenu add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813AEF8: .4byte gUnknown_03004B28 _0813AEFC: .4byte gSaveBlock1 _0813AF00: .4byte gUnknown_084062C0 thumb_func_end sub_813AE6C thumb_func_start sub_813AF04 sub_813AF04: @ 813AF04 push {lr} sub sp, 0x8 ldr r1, _0813AF38 mov r0, sp movs r2, 0x6 bl memcpy add r0, sp, 0x4 movs r1, 0xDF movs r2, 0x2 bl LoadPalette mov r0, sp adds r0, 0x2 movs r1, 0xD1 movs r2, 0x2 bl LoadPalette mov r0, sp movs r1, 0xD8 movs r2, 0x2 bl LoadPalette add sp, 0x8 pop {r0} bx r0 .align 2, 0 _0813AF38: .4byte gUnknown_08406334 thumb_func_end sub_813AF04 thumb_func_start sub_813AF3C sub_813AF3C: @ 813AF3C push {r4,lr} movs r2, 0 movs r1, 0x6 ldr r4, _0813AF70 ldr r3, _0813AF74 _0813AF46: lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, r3 ldrh r0, [r0] cmp r0, 0 beq _0813AF5C adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 _0813AF5C: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xF bls _0813AF46 adds r0, r2, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0813AF70: .4byte gSaveBlock1 _0813AF74: .4byte 0x00002b6c thumb_func_end sub_813AF3C thumb_func_start sub_813AF78 sub_813AF78: @ 813AF78 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 movs r2, 0x6 _0813AF86: adds r1, r2, 0x1 lsls r0, r1, 24 lsrs r3, r0, 24 mov r10, r1 cmp r3, 0xF bhi _0813AFF4 ldr r0, _0813B010 mov r12, r0 lsls r0, r2, 3 adds r0, r2 lsls r0, 2 add r0, r12 ldr r1, _0813B014 adds r1, r0 mov r8, r1 ldr r2, _0813B018 mov r9, r2 adds r4, r0, r2 _0813AFAA: mov r5, r8 ldrh r0, [r5] cmp r0, 0 bne _0813AFEA mov r1, sp adds r0, r4, 0 ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} lsls r2, r3, 3 adds r2, r3 lsls r2, 2 add r2, r12 add r2, r9 adds r1, r4, 0 adds r0, r2, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} mov r0, sp ldm r0!, {r1,r5,r7} stm r2!, {r1,r5,r7} ldm r0!, {r1,r6,r7} stm r2!, {r1,r6,r7} ldm r0!, {r5-r7} stm r2!, {r5-r7} _0813AFEA: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xF bls _0813AFAA _0813AFF4: mov r1, r10 lsls r0, r1, 24 lsrs r2, r0, 24 cmp r2, 0xE bls _0813AF86 add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813B010: .4byte gSaveBlock1 _0813B014: .4byte 0x00002b6c _0813B018: .4byte 0x00002b4c thumb_func_end sub_813AF78 thumb_func_start sub_813B01C sub_813B01C: @ 813B01C push {r4-r7,lr} mov r7, r8 push {r7} movs r7, 0 ldr r1, _0813B0B8 ldrb r4, [r1, 0x2] ldrb r0, [r1, 0x1] adds r0, r4, r0 cmp r4, r0 bge _0813B08A adds r6, r1, 0 ldr r0, _0813B0BC mov r8, r0 _0813B036: ldrb r0, [r6, 0x2] subs r0, r4, r0 lsls r0, 17 lsrs r7, r0, 16 adds r0, r7, 0x2 lsls r0, 24 lsrs r5, r0, 24 adds r3, r7, 0x3 lsls r3, 24 lsrs r3, 24 movs r0, 0x15 adds r1, r5, 0 movs r2, 0x1C bl MenuFillWindowRectWithBlankTile ldrb r0, [r6, 0x3] cmp r4, r0 beq _0813B0C4 lsls r1, r4, 3 adds r1, r4 lsls r1, 2 ldr r0, _0813B0C0 adds r1, r0 mov r0, r8 bl StringCopy mov r0, r8 bl sub_814A568 mov r0, r8 movs r1, 0x15 adds r2, r5, 0 bl MenuPrint adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldrb r0, [r6, 0x2] ldrb r1, [r6, 0x1] adds r0, r1 cmp r4, r0 blt _0813B036 _0813B08A: ldr r5, _0813B0B8 ldrb r0, [r5, 0x2] subs r0, r4, r0 cmp r0, 0x8 beq _0813B0A4 adds r1, r7, 0x4 lsls r1, 24 lsrs r1, 24 movs r0, 0x15 movs r2, 0x1C movs r3, 0x12 bl MenuFillWindowRectWithBlankTile _0813B0A4: ldrb r0, [r5, 0x2] cmp r0, 0 beq _0813B0D4 movs r0, 0 movs r1, 0xC8 movs r2, 0x8 bl sub_80F953C b _0813B0DA .align 2, 0 _0813B0B8: .4byte 0x0201fe00 _0813B0BC: .4byte gStringVar1 _0813B0C0: .4byte gSaveBlock1 + 0x2C36 _0813B0C4: ldr r0, _0813B0D0 movs r1, 0x15 adds r2, r5, 0 bl MenuPrint b _0813B08A .align 2, 0 _0813B0D0: .4byte gOtherText_CancelNoTerminator _0813B0D4: movs r0, 0 bl SetBgTilemapBuffer _0813B0DA: ldr r0, _0813B0F4 ldrb r1, [r0, 0x2] ldrb r2, [r0, 0x1] adds r1, r2 ldrb r0, [r0, 0x3] cmp r1, r0 bgt _0813B0F8 movs r0, 0x1 movs r1, 0xC8 movs r2, 0x98 bl sub_80F953C b _0813B0FE .align 2, 0 _0813B0F4: .4byte 0x0201fe00 _0813B0F8: movs r0, 0x1 bl SetBgTilemapBuffer _0813B0FE: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_813B01C thumb_func_start sub_813B108 sub_813B108: @ 813B108 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80F944C bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect movs r0, 0 movs r1, 0 movs r2, 0x8 movs r3, 0x3 bl MenuDrawTextWindow ldr r0, _0813B16C movs r1, 0x1 movs r2, 0x1 bl MenuPrint movs r0, 0x14 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow adds r0, r4, 0 bl sub_813B01C ldr r0, _0813B170 ldrb r3, [r0, 0x1] ldrb r0, [r0] str r0, [sp] movs r0, 0x8 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x15 movs r2, 0x2 bl InitMenu add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _0813B16C: .4byte gPCText_Mailbox _0813B170: .4byte 0x0201fe00 thumb_func_end sub_813B108 thumb_func_start sub_813B174 sub_813B174: @ 813B174 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 adds r4, r5, 0 ldr r0, _0813B1AC ldrb r1, [r0, 0x7] movs r3, 0x80 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0813B274 ldr r2, _0813B1B0 ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0813B1CA ldr r4, _0813B1B4 ldrb r0, [r4] cmp r0, 0 beq _0813B1B8 movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 b _0813B1E6 .align 2, 0 _0813B1AC: .4byte gPaletteFade _0813B1B0: .4byte gMain _0813B1B4: .4byte 0x0201fe00 _0813B1B8: ldrb r0, [r4, 0x2] cmp r0, 0 beq _0813B274 movs r0, 0x5 bl PlaySE ldrb r0, [r4, 0x2] subs r0, 0x1 b _0813B208 _0813B1CA: adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0813B212 ldr r4, _0813B1F0 ldrb r1, [r4] ldrb r0, [r4, 0x1] subs r0, 0x1 cmp r1, r0 beq _0813B1F4 movs r0, 0x5 bl PlaySE movs r0, 0x1 _0813B1E6: bl MoveMenuCursor strb r0, [r4] b _0813B274 .align 2, 0 _0813B1F0: .4byte 0x0201fe00 _0813B1F4: ldrb r0, [r4, 0x2] adds r0, r1 ldrb r1, [r4, 0x3] cmp r0, r1 beq _0813B274 movs r0, 0x5 bl PlaySE ldrb r0, [r4, 0x2] adds r0, 0x1 _0813B208: strb r0, [r4, 0x2] adds r0, r5, 0 bl sub_813B01C b _0813B274 _0813B212: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0813B25C bl sub_8072DEC movs r0, 0x5 bl PlaySE ldr r0, _0813B23C ldrb r1, [r0, 0x2] ldrb r2, [r0] adds r1, r2 ldrb r0, [r0, 0x3] cmp r1, r0 bne _0813B240 adds r0, r5, 0 bl sub_813B320 b _0813B274 .align 2, 0 _0813B23C: .4byte 0x0201fe00 _0813B240: bl sub_813B27C ldr r0, _0813B254 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _0813B258 str r0, [r1] b _0813B274 .align 2, 0 _0813B254: .4byte gTasks _0813B258: .4byte sub_813B294 _0813B25C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0813B274 bl sub_8072DEC movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_813B320 _0813B274: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_813B174 thumb_func_start sub_813B27C sub_813B27C: @ 813B27C push {lr} bl BuyMenuFreeMemory movs r0, 0 bl SetBgTilemapBuffer movs r0, 0x1 bl SetBgTilemapBuffer pop {r0} bx r0 thumb_func_end sub_813B27C thumb_func_start sub_813B294 sub_813B294: @ 813B294 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect ldr r4, _0813B2E8 ldr r1, _0813B2EC ldrb r0, [r1] adds r0, 0x6 ldrb r1, [r1, 0x2] adds r0, r1 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _0813B2F0 adds r1, r0 adds r0, r4, 0 bl StringCopy adds r0, r4, 0 bl sub_814A568 ldr r4, _0813B2F4 ldr r1, _0813B2F8 adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, _0813B2FC adds r0, r5, 0 adds r1, r4, 0 movs r3, 0 bl DisplayItemMessageOnField pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813B2E8: .4byte gStringVar1 _0813B2EC: .4byte 0x0201fe00 _0813B2F0: .4byte gSaveBlock1 + 0x2B5E _0813B2F4: .4byte gStringVar4 _0813B2F8: .4byte gOtherText_WhatWillYouDoMail _0813B2FC: .4byte sub_813B348 thumb_func_end sub_813B294 thumb_func_start sub_813B300 sub_813B300: @ 813B300 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect adds r0, r4, 0 bl sub_8139E24 pop {r4} pop {r0} bx r0 thumb_func_end sub_813B300 thumb_func_start sub_813B320 sub_813B320: @ 813B320 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_813B27C ldr r1, _0813B340 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0813B344 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0813B340: .4byte gTasks _0813B344: .4byte sub_813B300 thumb_func_end sub_813B320 thumb_func_start sub_813B348 sub_813B348: @ 813B348 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0 movs r2, 0xC movs r3, 0x9 bl MenuDrawTextWindow ldr r3, _0813B394 movs r0, 0x1 movs r1, 0x1 movs r2, 0x4 bl PrintMenuItems movs r0, 0 str r0, [sp] movs r0, 0xB str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 movs r3, 0x4 bl InitMenu ldr r1, _0813B398 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0813B39C str r1, [r0] add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _0813B394: .4byte gUnknown_084062F8 _0813B398: .4byte gTasks _0813B39C: .4byte sub_813B3A0 thumb_func_end sub_813B348 thumb_func_start sub_813B3A0 sub_813B3A0: @ 813B3A0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 adds r4, r5, 0 ldr r2, _0813B3C4 ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0813B3C8 movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 bl MoveMenuCursor b _0813B420 .align 2, 0 _0813B3C4: .4byte gMain _0813B3C8: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0813B3DE movs r0, 0x5 bl PlaySE movs r0, 0x1 bl MoveMenuCursor b _0813B420 _0813B3DE: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0813B40C movs r0, 0x5 bl PlaySE ldr r4, _0813B408 bl GetMenuCursorPos lsls r0, 24 lsrs r0, 21 adds r4, 0x4 adds r0, r4 ldr r1, [r0] adds r0, r5, 0 bl _call_via_r1 b _0813B420 .align 2, 0 _0813B408: .4byte gUnknown_084062F8 _0813B40C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0813B420 movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_813B734 _0813B420: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_813B3A0 thumb_func_start sub_813B428 sub_813B428: @ 813B428 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 movs r1, 0 bl fade_screen ldr r1, _0813B44C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0813B450 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0813B44C: .4byte gTasks _0813B450: .4byte sub_813B454 thumb_func_end sub_813B428 thumb_func_start sub_813B454 sub_813B454: @ 813B454 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0813B490 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0813B488 ldr r0, _0813B494 ldrb r1, [r0] adds r1, 0x6 ldrb r0, [r0, 0x2] adds r1, r0 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0813B498 adds r0, r1 ldr r1, _0813B49C movs r2, 0x1 bl sub_80F890C adds r0, r4, 0 bl DestroyTask _0813B488: pop {r4} pop {r0} bx r0 .align 2, 0 _0813B490: .4byte gPaletteFade _0813B494: .4byte 0x0201fe00 _0813B498: .4byte gSaveBlock1 + 0x2B4C _0813B49C: .4byte sub_813B4F0 thumb_func_end sub_813B454 thumb_func_start sub_813B4A0 sub_813B4A0: @ 813B4A0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_807D770 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0813B4C0 ldr r0, _0813B4C8 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0813B4CC str r0, [r1] _0813B4C0: pop {r4} pop {r0} bx r0 .align 2, 0 _0813B4C8: .4byte gTasks _0813B4CC: .4byte sub_813B174 thumb_func_end sub_813B4A0 thumb_func_start sub_813B4D0 sub_813B4D0: @ 813B4D0 push {lr} ldr r0, _0813B4EC movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 bl sub_813B108 bl pal_fill_black pop {r0} bx r0 .align 2, 0 _0813B4EC: .4byte sub_813B4A0 thumb_func_end sub_813B4D0 thumb_func_start sub_813B4F0 sub_813B4F0: @ 813B4F0 push {lr} ldr r0, _0813B504 ldr r1, _0813B508 str r1, [r0] ldr r0, _0813B50C bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0813B504: .4byte gUnknown_0300485C _0813B508: .4byte sub_813B4D0 _0813B50C: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_813B4F0 thumb_func_start sub_813B510 sub_813B510: @ 813B510 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8072DEC ldr r0, _0813B540 ldr r1, _0813B544 bl StringCopy ldr r0, _0813B548 movs r1, 0x1 movs r2, 0x3 bl MenuPrint ldr r1, _0813B54C ldr r2, _0813B550 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField pop {r4} pop {r0} bx r0 .align 2, 0 _0813B540: .4byte gStringVar1 _0813B544: .4byte gOtherText_MoveToBag _0813B548: .4byte gUnknown_0840633A _0813B54C: .4byte gOtherText_MessageWillBeLost _0813B550: .4byte sub_813B554 thumb_func_end sub_813B510 thumb_func_start sub_813B554 sub_813B554: @ 813B554 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1 bl DisplayYesNoMenu ldr r1, _0813B574 adds r0, r4, 0 bl sub_80F914C pop {r4} pop {r0} bx r0 .align 2, 0 _0813B574: .4byte gUnknown_084062E8 thumb_func_end sub_813B554 thumb_func_start sub_813B578 sub_813B578: @ 813B578 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, _0813B5BC ldrb r0, [r4] adds r0, 0x6 ldrb r1, [r4, 0x2] adds r0, r1 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _0813B5C0 adds r6, r1, r0 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1A movs r3, 0xD bl MenuZeroFillWindowRect ldrh r0, [r6, 0x20] movs r1, 0x1 bl sub_80A9424 lsls r0, 24 cmp r0, 0 bne _0813B5CC ldr r1, _0813B5C4 ldr r2, _0813B5C8 adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField b _0813B602 .align 2, 0 _0813B5BC: .4byte 0x0201fe00 _0813B5C0: .4byte gSaveBlock1 + 0x2B4C _0813B5C4: .4byte gOtherText_BagIsFull _0813B5C8: .4byte sub_813B758 _0813B5CC: ldr r1, _0813B608 ldr r2, _0813B60C adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField adds r0, r6, 0 bl sub_80A2B40 bl sub_813AF78 ldrb r0, [r4, 0x3] subs r0, 0x1 strb r0, [r4, 0x3] ldrb r1, [r4, 0x3] ldrb r0, [r4, 0x1] ldrb r2, [r4, 0x2] adds r0, r2 cmp r1, r0 bge _0813B5FC cmp r2, 0 beq _0813B5FC subs r0, r2, 0x1 strb r0, [r4, 0x2] _0813B5FC: adds r0, r5, 0 bl sub_813A240 _0813B602: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813B608: .4byte gOtherText_MailWasReturned _0813B60C: .4byte sub_813B758 thumb_func_end sub_813B578 thumb_func_start sub_813B610 sub_813B610: @ 813B610 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1A movs r3, 0xD bl MenuZeroFillWindowRect adds r0, r4, 0 bl sub_813B758 pop {r4} pop {r0} bx r0 thumb_func_end sub_813B610 thumb_func_start sub_813B630 sub_813B630: @ 813B630 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl CalculatePlayerPartyCount lsls r0, 24 cmp r0, 0 bne _0813B648 adds r0, r4, 0 bl sub_813B718 b _0813B65E _0813B648: movs r0, 0x1 movs r1, 0 bl fade_screen ldr r0, _0813B664 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0813B668 str r0, [r1] _0813B65E: pop {r4} pop {r0} bx r0 .align 2, 0 _0813B664: .4byte gTasks _0813B668: .4byte sub_813B66C thumb_func_end sub_813B630 thumb_func_start sub_813B66C sub_813B66C: @ 813B66C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0813B698 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0813B690 ldr r0, _0813B69C bl SetMainCallback2 ldr r1, _0813B6A0 movs r0, 0x3 strb r0, [r1] adds r0, r4, 0 bl DestroyTask _0813B690: pop {r4} pop {r0} bx r0 .align 2, 0 _0813B698: .4byte gPaletteFade _0813B69C: .4byte sub_808B020 _0813B6A0: .4byte gUnknown_02038561 thumb_func_end sub_813B66C thumb_func_start sub_813B6A4 sub_813B6A4: @ 813B6A4 push {r4-r6,lr} ldr r0, _0813B6F0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r6, r0, 24 ldr r5, _0813B6F4 ldrb r4, [r5, 0x3] bl sub_813AF3C strb r0, [r5, 0x3] bl sub_813AF78 ldrb r0, [r5, 0x3] cmp r4, r0 beq _0813B6DA ldrb r1, [r5, 0x3] ldrb r0, [r5, 0x1] ldrb r2, [r5, 0x2] adds r0, r2 cmp r1, r0 bge _0813B6DA cmp r2, 0 beq _0813B6DA subs r0, r2, 0x1 strb r0, [r5, 0x2] _0813B6DA: adds r0, r6, 0 bl sub_813A240 adds r0, r6, 0 bl sub_813B108 bl pal_fill_black pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813B6F0: .4byte sub_813B4A0 _0813B6F4: .4byte 0x0201fe00 thumb_func_end sub_813B6A4 thumb_func_start sub_813B6F8 sub_813B6F8: @ 813B6F8 push {lr} ldr r0, _0813B70C ldr r1, _0813B710 str r1, [r0] ldr r0, _0813B714 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0813B70C: .4byte gUnknown_0300485C _0813B710: .4byte sub_813B6A4 _0813B714: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_813B6F8 thumb_func_start sub_813B718 sub_813B718: @ 813B718 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0813B72C ldr r2, _0813B730 movs r3, 0 bl DisplayItemMessageOnField pop {r0} bx r0 .align 2, 0 _0813B72C: .4byte gOtherText_NoPokemon _0813B730: .4byte sub_813B758 thumb_func_end sub_813B718 thumb_func_start sub_813B734 sub_813B734: @ 813B734 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0xC movs r3, 0x9 bl MenuZeroFillWindowRect adds r0, r4, 0 bl sub_813B758 pop {r4} pop {r0} bx r0 thumb_func_end sub_813B734 thumb_func_start sub_813B758 sub_813B758: @ 813B758 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_813B108 ldr r1, _0813B77C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0813B780 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0813B77C: .4byte gTasks _0813B780: .4byte sub_813B174 thumb_func_end sub_813B758 thumb_func_start sub_813B784 sub_813B784: @ 813B784 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_813B784 thumb_func_start CB2_813B798 CB2_813B798: @ 813B798 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade ldr r0, _0813B7C8 ldrh r0, [r0, 0x2E] cmp r0, 0 beq _0813B7D4 ldr r0, _0813B7CC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0813B7D4 ldr r0, _0813B7D0 bl SetMainCallback2 b _0813B7E4 .align 2, 0 _0813B7C8: .4byte gMain _0813B7CC: .4byte gPaletteFade _0813B7D0: .4byte CB2_813B7EC _0813B7D4: ldr r2, _0813B7E8 ldr r1, [r2] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0813B7E4 adds r0, r1, 0x1 str r0, [r2] _0813B7E4: pop {r0} bx r0 .align 2, 0 _0813B7E8: .4byte gUnknown_03005ED0 thumb_func_end CB2_813B798 thumb_func_start CB2_813B7EC CB2_813B7EC: @ 813B7EC push {lr} bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _0813B7FE ldr r0, _0813B804 bl SetMainCallback2 _0813B7FE: pop {r0} bx r0 .align 2, 0 _0813B804: .4byte CB2_InitTitleScreen thumb_func_end CB2_813B7EC thumb_func_start sub_813B808 sub_813B808: @ 813B808 push {r4-r6,lr} adds r3, r0, 0 adds r4, r1, 0 adds r5, r2, 0 lsls r3, 16 lsrs r3, 16 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 ldr r0, _0813B848 movs r6, 0xC0 lsls r6, 19 adds r3, r6 adds r1, r3, 0 bl LZ77UnCompVram ldr r0, _0813B84C adds r1, r5, 0 movs r2, 0x20 bl LoadPalette ldr r0, _0813B850 adds r4, r6 movs r2, 0xA0 lsls r2, 2 adds r1, r4, 0 bl CpuSet pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813B848: .4byte gIntroCopyright_Gfx _0813B84C: .4byte gIntroCopyright_Pal _0813B850: .4byte gIntroCopyright_Tilemap thumb_func_end sub_813B808 thumb_func_start SerialCb_CopyrightScreen SerialCb_CopyrightScreen: @ 813B854 push {lr} ldr r0, _0813B860 bl GameCubeMultiBoot_HandleSerialInterrupt pop {r0} bx r0 .align 2, 0 _0813B860: .4byte gUnknown_03005EE0 thumb_func_end SerialCb_CopyrightScreen thumb_func_start SetUpCopyrightScreen SetUpCopyrightScreen: @ 813B864 push {r4,r5,lr} sub sp, 0xC ldr r0, _0813B880 ldr r1, _0813B884 adds r5, r0, r1 ldrb r4, [r5] cmp r4, 0x8C bne _0813B876 b _0813B9C4 _0813B876: cmp r4, 0x8C bgt _0813B888 cmp r4, 0 beq _0813B890 b _0813B962 .align 2, 0 _0813B880: .4byte gMain _0813B884: .4byte 0x0000043c _0813B888: cmp r4, 0x8D bne _0813B88E b _0813B9F0 _0813B88E: b _0813B962 _0813B890: movs r0, 0 bl SetVBlankCallback ldr r0, _0813B97C strh r4, [r0] adds r0, 0x2 strh r4, [r0] adds r0, 0x2 strh r4, [r0] movs r1, 0xA0 lsls r1, 19 ldr r2, _0813B980 adds r0, r2, 0 strh r0, [r1] movs r5, 0x80 lsls r5, 19 strh r4, [r5] ldr r0, _0813B984 strh r4, [r0] adds r0, 0x2 strh r4, [r0] add r0, sp, 0x4 strh r4, [r0] ldr r1, _0813B988 str r0, [r1] movs r0, 0xC0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _0813B98C str r0, [r1, 0x8] ldr r0, [r1, 0x8] str r4, [sp, 0x8] add r0, sp, 0x8 str r0, [r1] movs r0, 0xE0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _0813B990 str r0, [r1, 0x8] ldr r0, [r1, 0x8] add r0, sp, 0x4 strh r4, [r0] str r0, [r1] ldr r0, _0813B994 str r0, [r1, 0x4] ldr r0, _0813B998 str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl ResetPaletteFade movs r1, 0xE0 lsls r1, 6 movs r0, 0 movs r2, 0 bl sub_813B808 bl remove_some_task bl ResetTasks bl ResetSpriteData bl FreeAllSpritePalettes movs r0, 0x1 negs r0, r0 ldr r1, _0813B99C str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, _0813B9A0 movs r2, 0xE0 lsls r2, 3 adds r0, r2, 0 strh r0, [r1] ldr r3, _0813B9A4 ldrh r2, [r3] strh r4, [r3] ldr r4, _0813B9A8 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _0813B9AC ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _0813B9B0 bl SetVBlankCallback movs r1, 0xA0 lsls r1, 1 adds r0, r1, 0 strh r0, [r5] ldr r0, _0813B9B4 bl SetSerialCallback ldr r0, _0813B9B8 bl GameCubeMultiBoot_Init _0813B962: bl UpdatePaletteFade ldr r0, _0813B9BC ldr r2, _0813B9C0 adds r0, r2 ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] ldr r0, _0813B9B8 bl GameCubeMultiBoot_Main b _0813BA38 .align 2, 0 _0813B97C: .4byte REG_BLDCNT _0813B980: .4byte 0x00007fff _0813B984: .4byte REG_BG0HOFS _0813B988: .4byte 0x040000d4 _0813B98C: .4byte 0x8100c000 _0813B990: .4byte 0x85000100 _0813B994: .4byte 0x05000002 _0813B998: .4byte 0x810001ff _0813B99C: .4byte 0x0000ffff _0813B9A0: .4byte REG_BG0CNT _0813B9A4: .4byte 0x04000208 _0813B9A8: .4byte 0x04000200 _0813B9AC: .4byte REG_DISPSTAT _0813B9B0: .4byte sub_813B784 _0813B9B4: .4byte SerialCb_CopyrightScreen _0813B9B8: .4byte gUnknown_03005EE0 _0813B9BC: .4byte gMain _0813B9C0: .4byte 0x0000043c _0813B9C4: ldr r4, _0813B9EC adds r0, r4, 0 bl GameCubeMultiBoot_Main ldrb r0, [r4, 0x2] cmp r0, 0x1 beq _0813BA38 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] b _0813BA38 .align 2, 0 _0813B9EC: .4byte gUnknown_03005EE0 _0813B9F0: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _0813BA38 ldr r0, _0813BA18 movs r1, 0 bl CreateTask ldr r0, _0813BA1C bl SetMainCallback2 ldr r1, _0813BA20 ldrb r0, [r1, 0x2] cmp r0, 0 beq _0813BA24 adds r0, r1, 0 bl GameCubeMultiBoot_ExecuteProgram b _0813BA2E .align 2, 0 _0813BA18: .4byte task_intro_1 _0813BA1C: .4byte CB2_813B798 _0813BA20: .4byte gUnknown_03005EE0 _0813BA24: bl GameCubeMultiBoot_Quit ldr r0, _0813BA34 bl SetSerialCallback _0813BA2E: movs r0, 0 b _0813BA3A .align 2, 0 _0813BA34: .4byte SerialCB _0813BA38: movs r0, 0x1 _0813BA3A: add sp, 0xC pop {r4,r5} pop {r1} bx r1 thumb_func_end SetUpCopyrightScreen thumb_func_start c2_copyright_1 c2_copyright_1: @ 813BA44 push {lr} bl SetUpCopyrightScreen lsls r0, 24 cmp r0, 0 bne _0813BA7A bl sub_8052E4C bl sub_81251B8 movs r0, 0 bl sub_8125EC8 ldr r0, _0813BA80 ldrh r0, [r0] cmp r0, 0 beq _0813BA6A cmp r0, 0x2 bne _0813BA6E _0813BA6A: bl ClearSav2 _0813BA6E: ldr r0, _0813BA84 ldrb r0, [r0, 0x15] lsls r0, 31 lsrs r0, 31 bl SetPokemonCryStereo _0813BA7A: pop {r0} bx r0 .align 2, 0 _0813BA80: .4byte gSaveFileStatus _0813BA84: .4byte gSaveBlock2 thumb_func_end c2_copyright_1 thumb_func_start sub_813BA88 sub_813BA88: @ 813BA88 push {lr} bl SetUpCopyrightScreen pop {r0} bx r0 thumb_func_end sub_813BA88 thumb_func_start task_intro_1 task_intro_1: @ 813BA94 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0xC mov r8, r0 lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r0, 0 bl SetVBlankCallback ldr r4, _0813BC18 bl Random movs r1, 0x1 ands r1, r0 strh r1, [r4] bl intro_reset_and_hide_bgs ldr r0, _0813BC1C movs r6, 0 strh r6, [r0] ldr r1, _0813BC20 movs r0, 0x50 strh r0, [r1] subs r1, 0x4 movs r0, 0x18 strh r0, [r1] subs r1, 0x4 movs r0, 0x28 strh r0, [r1] ldr r0, _0813BC24 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _0813BC28 ldr r1, _0813BC2C bl LZ77UnCompVram ldr r1, _0813BC30 add r0, sp, 0x8 strh r6, [r0] ldr r4, _0813BC34 str r0, [r4] str r1, [r4, 0x4] ldr r5, _0813BC38 str r5, [r4, 0x8] ldr r0, [r4, 0x8] ldr r0, _0813BC3C ldr r1, _0813BC40 bl LZ77UnCompVram ldr r1, _0813BC44 add r0, sp, 0x8 strh r6, [r0] str r0, [r4] str r1, [r4, 0x4] str r5, [r4, 0x8] ldr r0, [r4, 0x8] ldr r0, _0813BC48 ldr r1, _0813BC4C bl LZ77UnCompVram ldr r1, _0813BC50 add r0, sp, 0x8 strh r6, [r0] str r0, [r4] str r1, [r4, 0x4] str r5, [r4, 0x8] ldr r0, [r4, 0x8] ldr r0, _0813BC54 ldr r1, _0813BC58 bl LZ77UnCompVram ldr r1, _0813BC5C add r0, sp, 0x8 strh r6, [r0] str r0, [r4] str r1, [r4, 0x4] str r5, [r4, 0x8] ldr r0, [r4, 0x8] ldr r0, _0813BC60 movs r5, 0x80 lsls r5, 2 movs r1, 0 adds r2, r5, 0 bl LoadPalette ldr r1, _0813BC64 ldr r2, _0813BC68 adds r0, r2, 0 strh r0, [r1] subs r1, 0x2 ldr r3, _0813BC6C adds r0, r3, 0 strh r0, [r1] subs r1, 0x2 ldr r2, _0813BC70 adds r0, r2, 0 strh r0, [r1] subs r1, 0x2 movs r3, 0x90 lsls r3, 8 adds r0, r3, 0 strh r0, [r1] ldr r0, _0813BC74 bl LoadCompressedObjectPic ldr r0, _0813BC78 bl LoadCompressedObjectPic ldr r0, _0813BC7C bl LoadSpritePalettes ldr r4, _0813BC80 movs r0, 0xF0 lsls r0, 1 adds r1, r4, r0 adds r0, r4, 0 movs r2, 0x10 bl CpuSet movs r2, 0xE1 lsls r2, 1 adds r1, r4, r2 adds r0, r4, 0 movs r2, 0xF bl CpuSet movs r3, 0xD2 lsls r3, 1 adds r1, r4, r3 adds r0, r4, 0 movs r2, 0xE bl CpuSet movs r0, 0xC3 lsls r0, 1 adds r1, r4, r0 adds r0, r4, 0 movs r2, 0xD bl CpuSet movs r2, 0xB4 lsls r2, 1 adds r1, r4, r2 adds r0, r4, 0 movs r2, 0xC bl CpuSet movs r3, 0xA5 lsls r3, 1 adds r1, r4, r3 adds r0, r4, 0 movs r2, 0xB bl CpuSet movs r0, 0x96 lsls r0, 1 adds r1, r4, r0 adds r0, r4, 0 movs r2, 0xA bl CpuSet movs r1, 0xE negs r1, r1 movs r0, 0x78 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] movs r0, 0xEC adds r2, r5, 0 movs r3, 0x1 bl sub_813D584 ldr r2, _0813BC84 mov r3, r8 lsls r1, r3, 2 add r1, r8 lsls r1, 3 adds r1, r2 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x8] ldr r0, _0813BC88 str r0, [r1] add sp, 0xC pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813BC18: .4byte gUnknown_02039318 _0813BC1C: .4byte REG_BG3VOFS _0813BC20: .4byte REG_BG2VOFS _0813BC24: .4byte gUnknown_08407764 _0813BC28: .4byte gUnknown_08406B74 _0813BC2C: .4byte 0x06008000 _0813BC30: .4byte 0x06008800 _0813BC34: .4byte 0x040000d4 _0813BC38: .4byte 0x81000400 _0813BC3C: .4byte gUnknown_08406F28 _0813BC40: .4byte 0x06009000 _0813BC44: .4byte 0x06009800 _0813BC48: .4byte gUnknown_0840725C _0813BC4C: .4byte 0x0600a000 _0813BC50: .4byte 0x0600a800 _0813BC54: .4byte gUnknown_0840754C _0813BC58: .4byte 0x0600b000 _0813BC5C: .4byte 0x0600b800 _0813BC60: .4byte gUnknown_08406974 _0813BC64: .4byte REG_BG3CNT _0813BC68: .4byte 0x00009603 _0813BC6C: .4byte 0x00009402 _0813BC70: .4byte 0x00009201 _0813BC74: .4byte gUnknown_0840B008 _0813BC78: .4byte gUnknown_0840B018 _0813BC7C: .4byte gUnknown_0840B028 _0813BC80: .4byte gPlttBufferUnfaded + 0x200 _0813BC84: .4byte gTasks _0813BC88: .4byte task_intro_2 thumb_func_end task_intro_1 thumb_func_start task_intro_2 task_intro_2: @ 813BC8C push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 negs r0, r0 movs r5, 0 str r5, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _0813BCE0 bl SetVBlankCallback movs r1, 0x80 lsls r1, 19 movs r2, 0xFA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r1, _0813BCE4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0813BCE8 str r1, [r0] ldr r0, _0813BCEC str r5, [r0] movs r0, 0xCF lsls r0, 1 bl m4aSongNumStart bl ResetSerial add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813BCE0: .4byte sub_813B784 _0813BCE4: .4byte gTasks _0813BCE8: .4byte sub_813BCF0 _0813BCEC: .4byte gUnknown_03005ED0 thumb_func_end task_intro_2 thumb_func_start sub_813BCF0 sub_813BCF0: @ 813BCF0 push {r4-r6,lr} sub sp, 0x8 lsls r0, 24 lsrs r3, r0, 24 adds r5, r3, 0 ldr r4, _0813BDD4 ldr r0, [r4] cmp r0, 0x4C bne _0813BD1E ldr r2, _0813BDD8 ldr r1, _0813BDDC lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r6, 0x8 ldrsh r1, [r0, r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x1 strh r1, [r0, 0x2E] _0813BD1E: ldr r0, [r4] cmp r0, 0xFB bne _0813BD40 ldr r2, _0813BDD8 ldr r1, _0813BDDC lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r3, 0x8 ldrsh r1, [r0, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x2 strh r1, [r0, 0x2E] _0813BD40: ldr r1, [r4] movs r0, 0xB8 lsls r0, 1 cmp r1, r0 bne _0813BD60 movs r2, 0x80 lsls r2, 3 movs r0, 0x70 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] movs r0, 0x30 movs r1, 0 movs r3, 0x5 bl sub_813D584 _0813BD60: ldr r1, [r4] movs r0, 0xC0 lsls r0, 1 cmp r1, r0 bne _0813BD80 movs r2, 0x80 lsls r2, 3 movs r0, 0x80 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] movs r0, 0xC8 movs r1, 0x3C movs r3, 0x9 bl sub_813D584 _0813BD80: ldr r1, [r4] movs r0, 0x8C lsls r0, 2 cmp r1, r0 bne _0813BDA0 ldr r0, _0813BDE0 movs r1, 0 bl CreateTask adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 movs r0, 0x78 movs r1, 0x50 bl sub_813D954 _0813BDA0: ldr r1, [r4] ldr r0, _0813BDE4 cmp r1, r0 bls _0813BDCA ldr r1, _0813BDDC lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r2, 0 movs r1, 0x50 strh r1, [r0, 0xA] strh r2, [r0, 0xC] movs r1, 0x18 strh r1, [r0, 0xE] strh r2, [r0, 0x10] movs r1, 0x28 strh r1, [r0, 0x12] strh r2, [r0, 0x14] ldr r1, _0813BDE8 str r1, [r0] _0813BDCA: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813BDD4: .4byte gUnknown_03005ED0 _0813BDD8: .4byte gSprites _0813BDDC: .4byte gTasks _0813BDE0: .4byte sub_813CCE8 _0813BDE4: .4byte 0x000002e3 _0813BDE8: .4byte task_intro_4 thumb_func_end sub_813BCF0 thumb_func_start task_intro_4 task_intro_4: @ 813BDEC push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r2, r0, 24 adds r4, r2, 0 ldr r0, _0813BE80 ldr r3, [r0] ldr r0, _0813BE84 cmp r3, r0 bhi _0813BEAC ldr r0, _0813BE88 lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 movs r2, 0xA ldrsh r0, [r1, r2] lsls r0, 16 ldrh r2, [r1, 0xC] adds r0, r2 ldr r2, _0813BE8C adds r0, r2 asrs r2, r0, 16 strh r2, [r1, 0xA] strh r0, [r1, 0xC] ldr r0, _0813BE90 strh r2, [r0] movs r2, 0xE ldrsh r0, [r1, r2] lsls r0, 16 ldrh r2, [r1, 0x10] adds r0, r2 ldr r2, _0813BE94 adds r0, r2 asrs r2, r0, 16 strh r2, [r1, 0xE] strh r0, [r1, 0x10] ldr r0, _0813BE98 strh r2, [r0] movs r2, 0x12 ldrsh r0, [r1, r2] lsls r0, 16 ldrh r2, [r1, 0x14] adds r0, r2 ldr r2, _0813BE9C adds r0, r2 asrs r2, r0, 16 strh r2, [r1, 0x12] strh r0, [r1, 0x14] ldr r0, _0813BEA0 strh r2, [r0] movs r0, 0xDC lsls r0, 2 cmp r3, r0 bne _0813BED2 ldr r0, _0813BEA4 movs r1, 0xC8 movs r2, 0xA0 movs r3, 0xA bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, _0813BEA8 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] b _0813BED2 .align 2, 0 _0813BE80: .4byte gUnknown_03005ED0 _0813BE84: .4byte 0x00000387 _0813BE88: .4byte gTasks _0813BE8C: .4byte 0xffff4000 _0813BE90: .4byte REG_BG2VOFS _0813BE94: .4byte 0xffff0000 _0813BE98: .4byte REG_BG1VOFS _0813BE9C: .4byte 0xfffe8000 _0813BEA0: .4byte REG_BG0VOFS _0813BEA4: .4byte gSpriteTemplate_840AFF0 _0813BEA8: .4byte gSprites _0813BEAC: ldr r0, _0813BEDC cmp r3, r0 bls _0813BED2 movs r0, 0x1 negs r0, r0 ldr r1, _0813BEE0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0813BEE4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0813BEE8 str r1, [r0] _0813BED2: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0813BEDC: .4byte 0x000003ef _0813BEE0: .4byte 0x0000ffff _0813BEE4: .4byte gTasks _0813BEE8: .4byte sub_813BEEC thumb_func_end task_intro_4 thumb_func_start sub_813BEEC sub_813BEEC: @ 813BEEC push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0813BF10 ldr r1, [r0] ldr r0, _0813BF14 cmp r1, r0 bls _0813BF0A ldr r0, _0813BF18 lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _0813BF1C str r0, [r1] _0813BF0A: pop {r0} bx r0 .align 2, 0 _0813BF10: .4byte gUnknown_03005ED0 _0813BF14: .4byte 0x00000402 _0813BF18: .4byte gTasks _0813BF1C: .4byte task_intro_6 thumb_func_end sub_813BEEC thumb_func_start task_intro_6 task_intro_6: @ 813BF20 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl intro_reset_and_hide_bgs movs r0, 0 bl SetVBlankCallback bl ResetSpriteData bl FreeAllSpritePalettes ldr r0, _0813BF60 movs r1, 0 strh r1, [r0] ldr r0, _0813BF64 strh r1, [r0] .ifdef SAPPHIRE movs r0, 0 .else movs r0, 0x1 .endif bl load_intro_part2_graphics ldr r1, _0813BF68 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0813BF6C str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0813BF60: .4byte gUnknown_02039358 _0813BF64: .4byte gUnknown_0203935A _0813BF68: .4byte gTasks _0813BF6C: .4byte sub_813BF70 thumb_func_end task_intro_6 thumb_func_start sub_813BF70 sub_813BF70: @ 813BF70 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 ldr r0, _0813BF88 ldrh r0, [r0] cmp r0, 0 bne _0813BF90 ldr r0, _0813BF8C bl LoadCompressedObjectPic b _0813BF96 .align 2, 0 _0813BF88: .4byte gUnknown_02039318 _0813BF8C: .4byte gIntro2BrendanSpriteSheet _0813BF90: ldr r0, _0813BFBC bl LoadCompressedObjectPic _0813BF96: ldr r0, _0813BFC0 bl LoadCompressedObjectPic ldr r0, _0813BFC4 bl LoadCompressedObjectPic ldr r0, _0813BFC8 bl LoadSpritePalettes ldr r0, _0813BFCC ldrh r0, [r0] cmp r0, 0 bne _0813BFD0 movs r0, 0x88 lsls r0, 1 movs r1, 0x64 bl sub_8149310 b _0813BFDA .align 2, 0 _0813BFBC: .4byte gIntro2MaySpriteSheet _0813BFC0: .4byte gIntro2BicycleSpriteSheet .ifdef SAPPHIRE _0813BFC4: .4byte gIntro2LatiasSpriteSheet .else _0813BFC4: .4byte gIntro2LatiosSpriteSheet .endif _0813BFC8: .4byte gIntro2SpritePalettes _0813BFCC: .4byte gUnknown_02039318 _0813BFD0: movs r0, 0x88 lsls r0, 1 movs r1, 0x64 bl sub_8149368 _0813BFDA: lsls r0, 24 lsrs r6, r0, 24 ldr r2, _0813C060 lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r5, r2, 0 adds r5, 0x1C adds r3, r0, r5 ldr r1, _0813C064 str r1, [r3] adds r2, 0x8 adds r0, r2 ldr r1, _0813C068 str r1, [r0] ldr r0, _0813C06C lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r0 strh r6, [r4, 0xA] movs r0, 0x40 negs r0, r0 movs r1, 0x3C .ifdef SAPPHIRE bl sapphire_sub_81494A0 .else bl sub_8149424 .endif lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r0, r5 ldr r1, _0813C070 str r1, [r0] strh r6, [r4, 0xC] movs r0, 0x1 negs r0, r0 ldr r1, _0813C074 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _0813C078 bl SetVBlankCallback movs r1, 0x80 lsls r1, 7 .ifdef SAPPHIRE movs r0, 0 movs r2, 0x40 .else movs r2, 0x80 lsls r2, 3 movs r0, 0x1 .endif movs r3, 0x10 bl sub_8148EC0 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x8] .ifdef SAPPHIRE movs r0, 0 .else movs r0, 0x1 .endif bl sub_8148C78 ldr r0, _0813C07C str r0, [r4] add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813C060: .4byte gSprites _0813C064: .4byte sub_813D788 _0813C068: .4byte gUnknown_0840AE80 _0813C06C: .4byte gTasks _0813C070: .4byte sub_813D880 _0813C074: .4byte 0x0000ffff _0813C078: .4byte sub_813B784 _0813C07C: .4byte sub_813C080 thumb_func_end sub_813BF70 thumb_func_start sub_813C080 sub_813C080: @ 813C080 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 ldr r5, _0813C1BC ldr r1, [r5] ldr r0, _0813C1C0 cmp r1, r0 bls _0813C0B4 movs r0, 0x1 negs r0, r0 ldr r1, _0813C1C4 str r1, [sp] movs r1, 0x10 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0813C1C8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0813C1CC str r1, [r0] _0813C0B4: ldr r1, [r5] ldr r0, _0813C1D0 ldr r3, _0813C1C8 cmp r1, r0 bne _0813C0D8 ldr r2, _0813C1D4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r3 movs r7, 0xA ldrsh r1, [r0, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x1 strh r1, [r0, 0x2E] _0813C0D8: ldr r1, [r5] ldr r0, _0813C1D8 cmp r1, r0 bne _0813C0FA ldr r2, _0813C1D4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r3 movs r7, 0xA ldrsh r1, [r0, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0 strh r1, [r0, 0x2E] _0813C0FA: ldr r1, [r5] ldr r0, _0813C1DC cmp r1, r0 bne _0813C11C ldr r2, _0813C1D4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r3 movs r7, 0xC ldrsh r1, [r0, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x1 strh r1, [r0, 0x2E] _0813C11C: ldr r1, [r5] ldr r0, _0813C1E0 cmp r1, r0 bne _0813C13E ldr r2, _0813C1D4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r3 movs r7, 0xA ldrsh r1, [r0, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x2 strh r1, [r0, 0x2E] _0813C13E: ldr r1, [r5] ldr r0, _0813C1E4 cmp r1, r0 bne _0813C160 ldr r2, _0813C1D4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r3 movs r7, 0xA ldrsh r1, [r0, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x3 strh r1, [r0, 0x2E] _0813C160: ldr r1, [r5] ldr r0, _0813C1E8 cmp r1, r0 bne _0813C182 ldr r2, _0813C1D4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r3 movs r4, 0xA ldrsh r1, [r0, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x4 strh r1, [r0, 0x2E] _0813C182: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r3 ldrh r0, [r4, 0xE] lsls r0, 16 asrs r0, 18 movs r1, 0x7F ands r0, r1 movs r1, 0x30 bl Sin ldr r1, _0813C1EC strh r0, [r1] ldrh r2, [r4, 0xE] movs r7, 0xE ldrsh r1, [r4, r7] ldr r0, _0813C1F0 cmp r1, r0 bgt _0813C1AE adds r0, r2, 0x1 strh r0, [r4, 0xE] _0813C1AE: .ifdef SAPPHIRE movs r0, 0 .else movs r0, 0x1 .endif bl sub_8149020 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813C1BC: .4byte gUnknown_03005ED0 _0813C1C0: .4byte 0x0000071f _0813C1C4: .4byte 0x0000ffff _0813C1C8: .4byte gTasks _0813C1CC: .4byte sub_813C1F4 _0813C1D0: .4byte 0x00000455 _0813C1D4: .4byte gSprites _0813C1D8: .4byte 0x000004be _0813C1DC: .4byte 0x00000572 _0813C1E0: .4byte 0x00000576 _0813C1E4: .4byte 0x00000632 _0813C1E8: .4byte 0x000006bf _0813C1EC: .4byte gUnknown_0203935A _0813C1F0: .4byte 0x000001ff thumb_func_end sub_813C080 thumb_func_start sub_813C1F4 sub_813C1F4: @ 813C1F4 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0813C220 ldr r1, [r0] ldr r0, _0813C224 cmp r1, r0 bls _0813C218 ldr r0, _0813C228 lsls r4, r2, 2 adds r4, r2 lsls r4, 3 adds r4, r0 ldrb r0, [r4, 0x8] bl DestroyTask ldr r0, _0813C22C str r0, [r4] _0813C218: pop {r4} pop {r0} bx r0 .align 2, 0 _0813C220: .4byte gUnknown_03005ED0 _0813C224: .4byte 0x00000814 _0813C228: .4byte gTasks _0813C22C: .4byte task_intro_10 thumb_func_end sub_813C1F4 thumb_func_start task_intro_10 task_intro_10: @ 813C230 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 bl intro_reset_and_hide_bgs ldr r0, _0813C2C0 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _0813C2C4 ldr r1, _0813C2C8 bl LZ77UnCompVram ldr r0, _0813C2CC movs r2, 0x80 lsls r2, 2 movs r1, 0 bl LoadPalette ldr r0, _0813C2D0 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 movs r5, 0 strh r5, [r4, 0x8] strh r5, [r4, 0xA] strh r5, [r4, 0xC] strh r5, [r4, 0xE] movs r0, 0x78 movs r1, 0x50 movs r2, 0 movs r3, 0 bl sub_813CE30 bl ResetSpriteData bl FreeAllSpritePalettes movs r0, 0x1 negs r0, r0 ldr r1, _0813C2D4 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, _0813C2D8 ldr r2, _0813C2DC adds r0, r2, 0 strh r0, [r1] subs r1, 0xC ldr r2, _0813C2E0 adds r0, r2, 0 strh r0, [r1] ldr r0, _0813C2E4 str r0, [r4] ldr r0, _0813C2E8 str r5, [r0] movs r0, 0xDD lsls r0, 1 bl m4aSongNumStart add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813C2C0: .4byte gUnknown_08409C04 _0813C2C4: .4byte gUnknown_08409AD4 _0813C2C8: .4byte 0x06004000 _0813C2CC: .4byte gUnknown_084098D4 _0813C2D0: .4byte gTasks _0813C2D4: .4byte 0x0000ffff _0813C2D8: .4byte REG_BG2CNT _0813C2DC: .4byte 0x00004883 _0813C2E0: .4byte 0x00001441 _0813C2E4: .4byte task_intro_11 _0813C2E8: .4byte gUnknown_03005ED0 thumb_func_end task_intro_10 thumb_func_start task_intro_11 task_intro_11: @ 813C2EC push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r2, _0813C324 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r3, r0, r2 movs r1, 0x80 lsls r1, 3 adds r0, r1, 0 ldrh r1, [r3, 0x8] adds r0, r1 strh r0, [r3, 0x8] ldrh r4, [r3, 0xA] movs r0, 0xA ldrsh r1, [r3, r0] ldr r0, _0813C328 cmp r1, r0 bgt _0813C32C ldrh r0, [r3, 0xC] adds r1, r4, r0 strh r1, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xC] b _0813C330 .align 2, 0 _0813C324: .4byte gTasks _0813C328: .4byte 0x000006bf _0813C32C: ldr r0, _0813C378 str r0, [r3] _0813C330: lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r2 movs r0, 0xA ldrsh r1, [r4, r0] movs r0, 0x80 lsls r0, 9 bl __divsi3 adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 ldrh r3, [r4, 0x8] movs r0, 0x78 movs r1, 0x50 bl sub_813CE30 ldr r0, _0813C37C ldr r0, [r0] cmp r0, 0x2C bne _0813C36E movs r0, 0x1 negs r0, r0 ldr r1, _0813C380 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade _0813C36E: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813C378: .4byte sub_813C384 _0813C37C: .4byte gUnknown_03005ED0 _0813C380: .4byte 0x0000ffff thumb_func_end task_intro_11 thumb_func_start sub_813C384 sub_813C384: @ 813C384 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0813C3A4 ldr r0, [r0] cmp r0, 0x3B bls _0813C3A0 ldr r0, _0813C3A8 lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _0813C3AC str r0, [r1] _0813C3A0: pop {r0} bx r0 .align 2, 0 _0813C3A4: .4byte gUnknown_03005ED0 _0813C3A8: .4byte gTasks _0813C3AC: .4byte sub_813C3B0 thumb_func_end sub_813C384 thumb_func_start sub_813C3B0 sub_813C3B0: @ 813C3B0 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 bl intro_reset_and_hide_bgs movs r1, 0 ldr r2, _0813C4E4 movs r7, 0 adds r6, r2, 0 adds r6, 0x20 adds r5, r2, 0 adds r5, 0x40 mov r12, r2 movs r4, 0x11 movs r3, 0x22 _0813C3D4: adds r0, r1, r2 strb r7, [r0] adds r0, r1, r6 strb r4, [r0] adds r0, r1, r5 strb r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x1F bls _0813C3D4 movs r1, 0xC0 lsls r1, 19 ldr r0, _0813C4E8 mov r2, r12 str r2, [r0] str r1, [r0, 0x4] ldr r1, _0813C4EC str r1, [r0, 0x8] ldr r0, [r0, 0x8] movs r1, 0 ldr r5, _0813C4F0 ldr r6, _0813C4F4 mov r0, r8 lsls r7, r0, 2 ldr r4, _0813C4F8 ldr r2, _0813C4FC adds r3, r2, 0 ldr r2, _0813C500 _0813C40E: lsls r0, r1, 1 adds r0, r4 strh r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r2 bls _0813C40E movs r1, 0 ldr r3, _0813C504 ldr r0, _0813C508 adds r2, r0, 0 _0813C426: lsls r0, r1, 1 adds r0, r3 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x7F bls _0813C426 movs r1, 0 ldr r4, _0813C50C movs r2, 0xF0 lsls r2, 8 adds r3, r2, 0 ldr r2, _0813C510 _0813C442: lsls r0, r1, 1 adds r0, r4 strh r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r2 bls _0813C442 movs r1, 0 ldr r3, _0813C514 ldr r0, _0813C508 adds r2, r0, 0 _0813C45A: lsls r0, r1, 1 adds r0, r3 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x7F bls _0813C45A movs r0, 0xF0 lsls r0, 1 adds r2, r5, r0 movs r4, 0 ldr r1, _0813C518 strh r1, [r2] adds r0, r6, r0 strh r1, [r0] movs r0, 0x1 bl sub_813D084 movs r0, 0xF2 lsls r0, 1 adds r1, r5, r0 strh r4, [r1] adds r0, r6, r0 strh r4, [r0] ldr r0, _0813C51C ldr r1, _0813C520 bl LZ77UnCompVram ldr r0, _0813C524 ldr r1, _0813C528 bl LZ77UnCompVram ldr r0, _0813C52C movs r1, 0 movs r2, 0x20 bl LoadPalette bl ResetSpriteData bl FreeAllSpritePalettes ldr r1, _0813C530 movs r0, 0x8 strb r0, [r1] ldr r0, _0813C534 bl LoadCompressedObjectPic ldr r0, _0813C538 bl LoadCompressedObjectPic ldr r0, _0813C53C bl LoadCompressedObjectPalette ldr r0, _0813C540 bl LoadSpritePalettes ldr r1, _0813C544 mov r2, r8 adds r0, r7, r2 lsls r0, 3 adds r0, r1 ldr r1, _0813C548 str r1, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813C4E4: .4byte 0x02000000 _0813C4E8: .4byte 0x040000d4 _0813C4EC: .4byte 0x80000030 _0813C4F0: .4byte gPlttBufferUnfaded _0813C4F4: .4byte gPlttBufferFaded _0813C4F8: .4byte 0x06003000 _0813C4FC: .4byte 0x0000f001 _0813C500: .4byte 0x0000027f _0813C504: .4byte 0x06003800 _0813C508: .4byte 0x0000f002 _0813C50C: .4byte 0x06003900 _0813C510: .4byte 0x0000017f _0813C514: .4byte 0x06003c00 _0813C518: .4byte 0x00007fff _0813C51C: .4byte gUnknown_0840A778 _0813C520: .4byte 0x06004000 _0813C524: .4byte gUnknown_0840A7E4 _0813C528: .4byte 0x06007000 _0813C52C: .4byte gUnknown_0840A758 _0813C530: .4byte gReservedSpritePaletteCount _0813C534: .4byte gUnknown_0840B20C _0813C538: .4byte gUnknown_0840B21C _0813C53C: .4byte gUnknown_0840B22C _0813C540: .4byte gUnknown_0840B23C _0813C544: .4byte gTasks _0813C548: .4byte sub_813C54C thumb_func_end sub_813C3B0 thumb_func_start sub_813C54C sub_813C54C: @ 813C54C push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _0813C5BC movs r0, 0xF0 strh r0, [r1] adds r1, 0x4 movs r0, 0xA0 strh r0, [r1] adds r1, 0x4 movs r0, 0x1C strh r0, [r1] adds r1, 0x2 movs r0, 0x1D strh r0, [r1] subs r1, 0x3C ldr r2, _0813C5C0 adds r0, r2, 0 strh r0, [r1] subs r1, 0x6 adds r2, 0xFD adds r0, r2, 0 strh r0, [r1] subs r1, 0x8 movs r2, 0xE5 lsls r2, 6 adds r0, r2, 0 strh r0, [r1] ldr r0, _0813C5C4 movs r1, 0 bl CreateTask ldr r5, _0813C5C8 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r5 lsls r0, 24 lsrs r0, 24 movs r3, 0 strh r0, [r1, 0x26] movs r0, 0x26 ldrsh r2, [r1, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r5 strh r3, [r0, 0x8] strh r3, [r1, 0x8] ldr r0, _0813C5CC str r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813C5BC: .4byte REG_WIN0H _0813C5C0: .4byte 0x00000603 _0813C5C4: .4byte sub_813CAF4 _0813C5C8: .4byte gTasks _0813C5CC: .4byte sub_813C5D0 thumb_func_end sub_813C54C thumb_func_start sub_813C5D0 sub_813C5D0: @ 813C5D0 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0813C600 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r3, r1, r2 ldrh r1, [r3, 0x8] movs r2, 0x8 ldrsh r0, [r3, r2] cmp r0, 0x20 beq _0813C608 adds r0, r1, 0x4 strh r0, [r3, 0x8] ldr r2, _0813C604 movs r4, 0x8 ldrsh r0, [r3, r4] lsls r0, 8 subs r1, 0x9C subs r0, r1 strh r0, [r2] b _0813C616 .align 2, 0 _0813C600: .4byte gTasks _0813C604: .4byte REG_WIN0V _0813C608: ldr r0, _0813C61C movs r2, 0x82 lsls r2, 6 adds r1, r2, 0 strh r1, [r0] ldr r0, _0813C620 str r0, [r3] _0813C616: pop {r4} pop {r0} bx r0 .align 2, 0 _0813C61C: .4byte REG_WIN0V _0813C620: .4byte sub_813C624 thumb_func_end sub_813C5D0 thumb_func_start sub_813C624 sub_813C624: @ 813C624 lsls r0, 24 lsrs r0, 24 ldr r2, _0813C638 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _0813C63C str r0, [r1] bx lr .align 2, 0 _0813C638: .4byte gTasks _0813C63C: .4byte sub_813C640 thumb_func_end sub_813C624 thumb_func_start sub_813C640 sub_813C640: @ 813C640 lsls r0, 24 lsrs r0, 24 ldr r2, _0813C65C movs r1, 0 strh r1, [r2] ldr r2, _0813C660 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _0813C664 str r0, [r1] bx lr .align 2, 0 _0813C65C: .4byte gUnknown_0203931A _0813C660: .4byte gTasks _0813C664: .4byte sub_813C668 thumb_func_end sub_813C640 thumb_func_start sub_813C668 sub_813C668: @ 813C668 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 ldr r0, _0813CA24 mov r8, r0 ldr r0, [r0] cmp r0, 0x50 bne _0813C6AC ldr r0, _0813CA28 movs r4, 0x1 str r4, [sp] movs r1, 0xF0 movs r2, 0xA0 movs r3, 0x5 bl sub_813CE88 lsls r0, 24 lsrs r2, r0, 24 ldr r3, _0813CA2C lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, r3, 0 adds r1, 0x1C adds r1, r0, r1 ldr r2, _0813CA30 str r2, [r1] adds r0, r3 movs r1, 0 strh r4, [r0, 0x30] strh r1, [r0, 0x32] _0813C6AC: mov r1, r8 ldr r0, [r1] cmp r0, 0x98 bne _0813C6E2 ldr r0, _0813CA34 movs r4, 0x1 str r4, [sp] movs r1, 0 movs r2, 0xA0 movs r3, 0x4 bl sub_813CE88 lsls r0, 24 lsrs r2, r0, 24 ldr r3, _0813CA2C lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, r3, 0 adds r1, 0x1C adds r1, r0, r1 ldr r2, _0813CA30 str r2, [r1] adds r0, r3 movs r1, 0x2 strh r1, [r0, 0x30] strh r4, [r0, 0x32] _0813C6E2: mov r3, r8 ldr r0, [r3] cmp r0, 0xDB bne _0813C720 movs r0, 0 bl sub_813D084 ldr r0, _0813CA38 ldrh r0, [r0] movs r1, 0x88 lsls r1, 1 movs r2, 0x60 movs r3, 0x6 bl sub_813CFA8 lsls r0, 24 lsrs r2, r0, 24 ldr r1, _0813CA2C lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, 0x1C adds r0, r1 ldr r1, _0813CA3C str r1, [r0] ldr r1, _0813CA40 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 strh r2, [r0, 0xA] _0813C720: mov r0, r8 ldr r1, [r0] movs r0, 0x98 lsls r0, 1 cmp r1, r0 bne _0813C758 ldr r3, _0813CA40 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r3 movs r0, 0x26 ldrsh r2, [r1, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r3 movs r2, 0x4 strh r2, [r0, 0x8] ldr r2, _0813CA2C movs r3, 0xA ldrsh r1, [r1, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x2 strh r1, [r0, 0x2E] _0813C758: mov r0, r8 ldr r1, [r0] movs r0, 0xC0 lsls r0, 1 cmp r1, r0 bne _0813C790 ldr r3, _0813CA40 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r3 movs r0, 0x26 ldrsh r2, [r1, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r3 movs r2, 0 strh r2, [r0, 0x8] ldr r2, _0813CA2C movs r3, 0xA ldrsh r1, [r1, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x4 strh r1, [r0, 0x2E] _0813C790: mov r0, r8 ldr r1, [r0] movs r0, 0xC8 lsls r0, 1 cmp r1, r0 bne _0813C7AE movs r0, 0xFF lsls r0, 16 ldr r1, _0813CA44 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade _0813C7AE: mov r3, r8 ldr r1, [r3] movs r0, 0xD8 lsls r0, 1 cmp r1, r0 bne _0813C7D6 ldr r2, _0813CA2C ldr r1, _0813CA40 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 movs r3, 0xA ldrsh r1, [r0, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x5 strh r1, [r0, 0x2E] _0813C7D6: mov r0, r8 ldr r1, [r0] movs r0, 0xE7 lsls r0, 1 cmp r1, r0 bne _0813C80E ldr r3, _0813CA2C ldr r4, _0813CA40 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r4 movs r0, 0xA ldrsh r2, [r1, r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 movs r2, 0x6 strh r2, [r0, 0x2E] movs r3, 0x26 ldrsh r1, [r1, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x8] _0813C80E: mov r0, r8 ldr r1, [r0] ldr r0, _0813CA48 cmp r1, r0 bne _0813C854 movs r0, 0x1 bl sub_813D084 ldr r0, _0813CA28 movs r1, 0x1 str r1, [sp] movs r1, 0xD0 movs r2, 0x8 movs r3, 0x5 bl sub_813CE88 lsls r0, 24 lsrs r2, r0, 24 ldr r1, _0813CA2C lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, 0x1C adds r0, r1 ldr r1, _0813CA4C str r1, [r0] ldr r1, _0813CA40 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 strh r2, [r0, 0xC] adds r0, r2, 0 bl sub_813E7C0 _0813C854: mov r3, r8 ldr r1, [r3] ldr r0, _0813CA50 cmp r1, r0 bne _0813C894 subs r0, 0xB2 movs r1, 0x1 str r1, [sp] movs r1, 0xF8 movs r2, 0x10 movs r3, 0x4 bl sub_813CE88 lsls r0, 24 lsrs r2, r0, 24 ldr r1, _0813CA2C lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, 0x1C adds r0, r1 ldr r1, _0813CA4C str r1, [r0] ldr r1, _0813CA40 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 strh r2, [r0, 0xE] adds r0, r2, 0 bl sub_813E930 _0813C894: mov r0, r8 ldr r1, [r0] ldr r0, _0813CA54 cmp r1, r0 bne _0813C8D8 ldr r4, _0813CA2C ldr r5, _0813CA40 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r5 movs r3, 0xC ldrsh r2, [r1, r3] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r4 movs r3, 0x2 strh r3, [r0, 0x2E] movs r0, 0xE ldrsh r2, [r1, r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r4 strh r3, [r0, 0x2E] movs r3, 0x26 ldrsh r1, [r1, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r1, 0x3 strh r1, [r0, 0x8] _0813C8D8: mov r0, r8 ldr r1, [r0] movs r0, 0x9C lsls r0, 2 cmp r1, r0 bne _0813C920 movs r0, 0 bl sub_813D084 ldr r0, _0813CA58 movs r1, 0 str r1, [sp] movs r1, 0x20 movs r2, 0x98 movs r3, 0 bl sub_813CE88 lsls r0, 24 lsrs r2, r0, 24 ldr r1, _0813CA2C lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, 0x1C adds r0, r1 ldr r1, _0813CA5C str r1, [r0] ldr r1, _0813CA40 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 strh r2, [r0, 0x10] adds r0, r2, 0 bl sub_813EDBC _0813C920: mov r3, r8 ldr r1, [r3] movs r0, 0xAF lsls r0, 2 cmp r1, r0 bne _0813C966 movs r0, 0x8C lsls r0, 1 movs r1, 0x8 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x90 movs r3, 0x1 bl sub_813CE88 lsls r0, 24 lsrs r2, r0, 24 ldr r1, _0813CA2C lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, 0x1C adds r0, r1 ldr r1, _0813CA5C str r1, [r0] ldr r1, _0813CA40 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 strh r2, [r0, 0x12] adds r0, r2, 0 bl sub_813EB4C _0813C966: mov r0, r8 ldr r1, [r0] movs r0, 0xC2 lsls r0, 2 cmp r1, r0 bne _0813C9B2 ldr r1, _0813CA60 movs r0, 0x1 strh r0, [r1] ldr r4, _0813CA2C ldr r6, _0813CA40 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r6 movs r3, 0x10 ldrsh r2, [r1, r3] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r4 movs r5, 0 movs r3, 0x2 strh r3, [r0, 0x2E] movs r0, 0x12 ldrsh r2, [r1, r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r4 strh r3, [r0, 0x2E] movs r3, 0x26 ldrsh r1, [r1, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 strh r5, [r0, 0x8] _0813C9B2: mov r0, r8 ldr r1, [r0] ldr r0, _0813CA64 cmp r1, r0 bne _0813CA76 movs r0, 0x2 bl sub_813D084 ldr r4, _0813CA2C ldr r0, _0813CA40 lsls r2, r7, 2 adds r2, r7 lsls r2, 3 adds r2, r0 movs r3, 0xC ldrsh r1, [r2, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r3, 0x3 strh r3, [r0, 0x2E] movs r0, 0xE ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r3, [r0, 0x2E] movs r0, 0x10 ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r3, [r0, 0x2E] movs r0, 0x12 ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r3, [r0, 0x2E] ldr r0, _0813CA68 movs r1, 0x78 movs r2, 0x50 movs r3, 0xF bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r4 b _0813CA6C .align 2, 0 _0813CA24: .4byte gUnknown_03005ED0 _0813CA28: .4byte 0x0000014b _0813CA2C: .4byte gSprites _0813CA30: .4byte sub_813DB9C _0813CA34: .4byte 0x00000169 _0813CA38: .4byte gUnknown_02039318 _0813CA3C: .4byte sub_813DE70 _0813CA40: .4byte gTasks _0813CA44: .4byte 0x00007eff _0813CA48: .4byte 0x000001cf _0813CA4C: .4byte sub_813E10C _0813CA50: .4byte 0x0000021b _0813CA54: .4byte 0x0000026f _0813CA58: .4byte 0x0000011b _0813CA5C: .4byte sub_813E210 _0813CA60: .4byte gUnknown_0203931A _0813CA64: .4byte 0x0000030d _0813CA68: .4byte gSpriteTemplate_840B1F4 _0813CA6C: adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _0813CA76: mov r3, r8 ldr r1, [r3] movs r0, 0xC8 lsls r0, 2 cmp r1, r0 bne _0813CA88 movs r0, 0x67 bl PlaySE _0813CA88: mov r0, r8 ldr r1, [r0] ldr r0, _0813CAC8 cmp r1, r0 bne _0813CAA4 movs r0, 0x1 negs r0, r0 ldr r1, _0813CACC str r1, [sp] movs r1, 0x4 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade _0813CAA4: mov r3, r8 ldr r1, [r3] ldr r0, _0813CAD0 cmp r1, r0 bne _0813CABC ldr r0, _0813CAD4 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r0 ldr r0, _0813CAD8 str r0, [r1] _0813CABC: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813CAC8: .4byte 0x00000352 _0813CACC: .4byte 0x0000ffff _0813CAD0: .4byte 0x000003b2 _0813CAD4: .4byte gTasks _0813CAD8: .4byte sub_813CADC thumb_func_end sub_813C668 thumb_func_start sub_813CADC sub_813CADC: @ 813CADC push {lr} lsls r0, 24 lsrs r0, 24 bl DestroyTask ldr r0, _0813CAF0 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0813CAF0: .4byte CB2_813B7EC thumb_func_end sub_813CADC thumb_func_start sub_813CAF4 sub_813CAF4: @ 813CAF4 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0813CB2C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x26] adds r0, 0x1 movs r6, 0 strh r0, [r4, 0x26] movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x4 bne _0813CB18 b _0813CC28 _0813CB18: cmp r0, 0x4 bgt _0813CB30 cmp r0, 0x2 beq _0813CB60 cmp r0, 0x2 bgt _0813CBC4 cmp r0, 0 beq _0813CB46 b _0813CC8E .align 2, 0 _0813CB2C: .4byte gTasks _0813CB30: cmp r0, 0x1E beq _0813CBEE cmp r0, 0x1E bgt _0813CB3E cmp r0, 0x14 beq _0813CB8A b _0813CC8E _0813CB3E: cmp r0, 0x28 bne _0813CB44 b _0813CC56 _0813CB44: b _0813CC8E _0813CB46: movs r1, 0x80 lsls r1, 19 movs r2, 0xE5 lsls r2, 6 adds r0, r2, 0 strh r0, [r1] ldr r0, _0813CB5C strh r6, [r0] movs r0, 0xFF strh r0, [r4, 0x8] b _0813CC8E .align 2, 0 _0813CB5C: .4byte REG_BG2CNT _0813CB60: ldr r0, _0813CBB0 str r0, [sp] movs r0, 0x1 movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, _0813CBB4 ldr r2, _0813CBB8 adds r0, r2, 0 strh r0, [r1] subs r1, 0xC movs r2, 0xF5 lsls r2, 6 adds r0, r2, 0 strh r0, [r1] strh r6, [r4, 0xA] strh r6, [r4, 0xC] movs r0, 0x14 strh r0, [r4, 0x8] _0813CB8A: ldr r2, _0813CBBC ldr r0, _0813CBC0 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0xA] strh r0, [r2] subs r2, 0x2 ldrh r0, [r1, 0xC] strh r0, [r2] ldrh r0, [r1, 0xA] adds r0, 0x6 strh r0, [r1, 0xA] ldrh r0, [r1, 0xC] subs r0, 0x8 strh r0, [r1, 0xC] b _0813CC8E .align 2, 0 _0813CBB0: .4byte 0x0000ffff _0813CBB4: .4byte REG_BG2CNT _0813CBB8: .4byte 0x00000e07 _0813CBBC: .4byte REG_BG2VOFS _0813CBC0: .4byte gTasks _0813CBC4: ldr r0, _0813CC14 str r0, [sp] movs r0, 0x1 movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, _0813CC18 ldr r2, _0813CC1C adds r0, r2, 0 strh r0, [r1] subs r1, 0xC movs r2, 0xF5 lsls r2, 6 adds r0, r2, 0 strh r0, [r1] strh r6, [r4, 0xA] strh r6, [r4, 0xC] movs r0, 0x1E strh r0, [r4, 0x8] _0813CBEE: ldr r2, _0813CC20 ldr r0, _0813CC24 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0xA] strh r0, [r2] subs r2, 0x2 ldrh r0, [r1, 0xC] strh r0, [r2] ldrh r0, [r1, 0xA] subs r0, 0x6 strh r0, [r1, 0xA] ldrh r0, [r1, 0xC] adds r0, 0x8 strh r0, [r1, 0xC] b _0813CC8E .align 2, 0 _0813CC14: .4byte 0x0000ffff _0813CC18: .4byte REG_BG2CNT _0813CC1C: .4byte 0x00000e07 _0813CC20: .4byte REG_BG2VOFS _0813CC24: .4byte gTasks _0813CC28: ldr r0, _0813CC98 str r0, [sp] movs r0, 0x1 movs r1, 0x5 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0813CC9C ldr r2, _0813CCA0 adds r0, r2, 0 strh r0, [r1] subs r1, 0xC movs r2, 0xF5 lsls r2, 6 adds r0, r2, 0 strh r0, [r1] strh r6, [r4, 0xA] strh r6, [r4, 0xC] movs r0, 0x8 strh r0, [r4, 0xE] movs r0, 0x28 strh r0, [r4, 0x8] _0813CC56: ldr r2, _0813CCA4 ldr r1, _0813CCA8 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r3, r0, r1 ldrh r0, [r3, 0xA] strh r0, [r2] ldr r1, _0813CCAC ldrh r0, [r3, 0xC] strh r0, [r1] ldrh r0, [r3, 0xA] ldrh r2, [r3, 0xE] subs r0, r2 strh r0, [r3, 0xA] ldrh r1, [r3, 0xC] adds r0, r2, r1 strh r0, [r3, 0xC] ldrh r1, [r3, 0x26] movs r0, 0x7 ands r0, r1 cmp r0, 0 bne _0813CC8E lsls r0, r2, 16 cmp r0, 0 beq _0813CC8E subs r0, r2, 0x1 strh r0, [r3, 0xE] _0813CC8E: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813CC98: .4byte 0x000037f7 _0813CC9C: .4byte REG_BG2CNT _0813CCA0: .4byte 0x00000e07 _0813CCA4: .4byte REG_BG2VOFS _0813CCA8: .4byte gTasks _0813CCAC: .4byte REG_BG2HOFS thumb_func_end sub_813CAF4 thumb_func_start intro_reset_and_hide_bgs intro_reset_and_hide_bgs: @ 813CCB0 movs r0, 0x80 lsls r0, 19 movs r1, 0 strh r1, [r0] adds r0, 0x1C strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x3E strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] bx lr thumb_func_end intro_reset_and_hide_bgs thumb_func_start sub_813CCE8 sub_813CCE8: @ 813CCE8 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r1, _0813CD0C lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r2, r1, 0 cmp r0, 0x4 bhi _0813CD28 lsls r0, 2 ldr r1, _0813CD10 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813CD0C: .4byte gTasks _0813CD10: .4byte _0813CD14 .align 2, 0 _0813CD14: .4byte _0813CD28 .4byte _0813CD5C .4byte _0813CD8C .4byte _0813CDA8 .4byte _0813CDFC _0813CD28: ldr r1, _0813CD54 ldr r4, _0813CD58 adds r0, r4, 0 strh r0, [r1] adds r1, 0x2 movs r4, 0x80 lsls r4, 5 adds r0, r4, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0 strh r0, [r1] lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r2 movs r1, 0x40 strh r1, [r0, 0xA] movs r1, 0x1 strh r1, [r0, 0x8] b _0813CE26 .align 2, 0 _0813CD54: .4byte REG_BLDCNT _0813CD58: .4byte 0x00003f50 _0813CD5C: lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r2, r0, r2 ldrh r1, [r2, 0xA] movs r3, 0xA ldrsh r0, [r2, r3] cmp r0, 0 beq _0813CD78 subs r0, r1, 0x1 strh r0, [r2, 0xA] movs r4, 0xA ldrsh r0, [r2, r4] b _0813CDC2 _0813CD78: ldr r1, _0813CD84 ldr r0, _0813CD88 ldrh r0, [r0] strh r0, [r1] movs r0, 0x80 b _0813CDEA .align 2, 0 _0813CD84: .4byte REG_BLDALPHA _0813CD88: .4byte gUnknown_08393E64 _0813CD8C: lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r1, r0, r2 ldrh r0, [r1, 0xA] movs r3, 0xA ldrsh r2, [r1, r3] cmp r2, 0 bne _0813CE0E strh r2, [r1, 0xA] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0813CE26 _0813CDA8: lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r2, r0, r2 ldrh r1, [r2, 0xA] movs r4, 0xA ldrsh r0, [r2, r4] cmp r0, 0x3D bgt _0813CDE0 adds r0, r1, 0x1 strh r0, [r2, 0xA] movs r1, 0xA ldrsh r0, [r2, r1] _0813CDC2: lsrs r1, r0, 31 adds r0, r1 movs r2, 0xFF lsls r2, 1 ldr r3, _0813CDD8 ldr r1, _0813CDDC ands r0, r2 adds r0, r1 ldrh r0, [r0] strh r0, [r3] b _0813CE26 .align 2, 0 _0813CDD8: .4byte REG_BLDALPHA _0813CDDC: .4byte gUnknown_08393E64 _0813CDE0: ldr r1, _0813CDF4 ldr r0, _0813CDF8 ldrh r0, [r0, 0x3E] strh r0, [r1] movs r0, 0x10 _0813CDEA: strh r0, [r2, 0xA] ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] b _0813CE26 .align 2, 0 _0813CDF4: .4byte REG_BLDALPHA _0813CDF8: .4byte gUnknown_08393E64 _0813CDFC: lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r1, r0, r2 ldrh r0, [r1, 0xA] movs r4, 0xA ldrsh r2, [r1, r4] cmp r2, 0 beq _0813CE14 _0813CE0E: subs r0, 0x1 strh r0, [r1, 0xA] b _0813CE26 _0813CE14: ldr r0, _0813CE2C strh r2, [r0] adds r0, 0x2 strh r2, [r0] adds r0, 0x2 strh r2, [r0] adds r0, r3, 0 bl DestroyTask _0813CE26: pop {r4} pop {r0} bx r0 .align 2, 0 _0813CE2C: .4byte REG_BLDCNT thumb_func_end sub_813CCE8 thumb_func_start sub_813CE30 sub_813CE30: @ 813CE30 push {r4,lr} sub sp, 0x24 lsls r2, 16 lsrs r2, 16 movs r4, 0x80 lsls r4, 8 str r4, [sp] str r4, [sp, 0x4] mov r4, sp strh r0, [r4, 0x8] mov r0, sp strh r1, [r0, 0xA] strh r2, [r0, 0xC] strh r2, [r0, 0xE] strh r3, [r0, 0x10] add r4, sp, 0x14 adds r1, r4, 0 movs r2, 0x1 bl BgAffineSet ldr r1, _0813CE84 ldrh r0, [r4] strh r0, [r1] adds r1, 0x2 ldrh r0, [r4, 0x2] strh r0, [r1] adds r1, 0x2 ldrh r0, [r4, 0x4] strh r0, [r1] adds r1, 0x2 ldrh r0, [r4, 0x6] strh r0, [r1] adds r1, 0x2 ldr r0, [r4, 0x8] str r0, [r1] adds r1, 0x4 ldr r0, [r4, 0xC] str r0, [r1] add sp, 0x24 pop {r4} pop {r0} bx r0 .align 2, 0 _0813CE84: .4byte REG_BG2PA thumb_func_end sub_813CE30 thumb_func_start sub_813CE88 sub_813CE88: @ 813CE88 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 ldr r4, [sp, 0x30] lsls r0, 16 lsrs r7, r0, 16 lsls r1, 16 lsrs r1, 16 mov r9, r1 lsls r2, 16 lsrs r2, 16 mov r10, r2 lsls r3, 16 lsrs r3, 16 mov r8, r3 lsls r4, 24 lsrs r6, r4, 24 cmp r6, 0 beq _0813CEF0 lsls r0, r7, 3 ldr r1, _0813CEE4 adds r0, r1 ldr r1, _0813CEE8 lsls r2, r7, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r5, _0813CEEC mov r6, r8 lsls r4, r6, 2 adds r4, r5 ldr r4, [r4] str r4, [sp] str r7, [sp, 0x4] movs r4, 0 str r4, [sp, 0x8] movs r4, 0x1 str r4, [sp, 0xC] bl sub_800D378 b _0813CF1C .align 2, 0 _0813CEE4: .4byte gMonFrontPicTable _0813CEE8: .4byte gMonFrontPicCoords _0813CEEC: .4byte gUnknown_0840B5A0 _0813CEF0: lsls r0, r7, 3 ldr r1, _0813CF90 adds r0, r1 ldr r1, _0813CF94 lsls r2, r7, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _0813CF98 mov r12, r4 mov r5, r8 lsls r4, r5, 2 add r4, r12 ldr r4, [r4] str r4, [sp] str r7, [sp, 0x4] str r6, [sp, 0x8] str r6, [sp, 0xC] bl sub_800D378 _0813CF1C: ldr r2, _0813CF9C adds r0, r7, 0 movs r1, 0 bl species_and_otid_get_pal mov r6, r8 lsls r4, r6, 4 movs r2, 0x80 lsls r2, 1 adds r1, r4, r2 lsls r1, 16 lsrs r1, 16 movs r2, 0x20 bl LoadCompressedPalette lsls r1, r6, 24 lsrs r1, 24 mov r0, r8 bl sub_8143648 ldr r0, _0813CFA0 mov r3, r9 lsls r1, r3, 16 asrs r1, 16 mov r5, r10 lsls r2, r5, 16 asrs r2, 16 mov r3, r8 adds r3, 0x1 lsls r3, 26 lsrs r3, 24 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _0813CFA4 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 ldrb r3, [r2, 0x5] movs r1, 0xF ands r1, r3 orrs r1, r4 movs r3, 0xD negs r3, r3 ands r1, r3 movs r3, 0x4 orrs r1, r3 strb r1, [r2, 0x5] add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0813CF90: .4byte gMonBackPicTable _0813CF94: .4byte gMonBackPicCoords _0813CF98: .4byte gUnknown_0840B5A0 _0813CF9C: .4byte 0x0000ffff _0813CFA0: .4byte gUnknown_02024E8C _0813CFA4: .4byte gSprites thumb_func_end sub_813CE88 thumb_func_start sub_813CFA8 sub_813CFA8: @ 813CFA8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r9, r1 mov r10, r2 adds r6, r3, 0 lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 mov r9, r1 lsls r2, 16 lsrs r2, 16 mov r10, r2 lsls r6, 16 lsrs r6, 16 lsls r7, r0, 3 ldr r1, _0813D068 mov r8, r1 add r8, r7 ldr r1, _0813D06C lsls r2, r0, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r5, _0813D070 lsls r4, r6, 2 adds r4, r5 ldr r4, [r4] str r4, [sp] str r0, [sp, 0x4] mov r0, r8 bl DecompressPicFromTable_2 ldr r0, _0813D074 adds r0, r7, r0 ldr r0, [r0] lsls r4, r6, 4 movs r2, 0x80 lsls r2, 1 adds r1, r4, r2 lsls r1, 16 lsrs r1, 16 movs r2, 0x20 bl LoadCompressedPalette lsls r1, r6, 24 lsrs r1, 24 adds r0, r6, 0 bl sub_8143680 ldr r0, _0813D078 ldr r1, _0813D07C str r1, [r0, 0x8] mov r1, r9 lsls r1, 16 asrs r1, 16 mov r9, r1 mov r2, r10 lsls r2, 16 asrs r2, 16 mov r10, r2 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _0813D080 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 ldrb r3, [r2, 0x5] movs r1, 0xF ands r1, r3 orrs r1, r4 movs r3, 0xD negs r3, r3 ands r1, r3 movs r3, 0x4 orrs r1, r3 strb r1, [r2, 0x5] add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0813D068: .4byte gTrainerBackPicTable _0813D06C: .4byte gTrainerBackPicCoords _0813D070: .4byte gUnknown_0840B5A0 _0813D074: .4byte gTrainerBackPicPaletteTable _0813D078: .4byte gUnknown_02024E8C _0813D07C: .4byte gUnknown_0840B064 _0813D080: .4byte gSprites thumb_func_end sub_813CFA8 thumb_func_start sub_813D084 sub_813D084: @ 813D084 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0813D0A0 cmp r0, 0x1 ble _0813D096 cmp r0, 0x2 beq _0813D0A8 _0813D096: ldr r2, _0813D09C b _0813D0AA .align 2, 0 _0813D09C: .4byte 0x00003ff6 _0813D0A0: ldr r2, _0813D0A4 b _0813D0AA .align 2, 0 _0813D0A4: .4byte 0x000031df _0813D0A8: ldr r2, _0813D0C0 _0813D0AA: ldr r0, _0813D0C4 movs r1, 0xF1 lsls r1, 1 adds r0, r1 strh r2, [r0] ldr r0, _0813D0C8 adds r0, r1 strh r2, [r0] pop {r0} bx r0 .align 2, 0 _0813D0C0: .4byte 0x0000518c _0813D0C4: .4byte gPlttBufferUnfaded _0813D0C8: .4byte gPlttBufferFaded thumb_func_end sub_813D084 thumb_func_start sub_813D0CC sub_813D0CC: @ 813D0CC push {r4,lr} sub sp, 0x4 adds r4, r0, 0 movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0xBF ble _0813D148 ldrh r1, [r4, 0x34] movs r2, 0x34 ldrsh r0, [r4, r2] cmp r0, 0 beq _0813D0EA subs r0, r1, 0x1 strh r0, [r4, 0x34] b _0813D14E _0813D0EA: adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x32] str r1, [sp] movs r2, 0 movs r3, 0 bl SetOamMatrix movs r0, 0x32 ldrsh r1, [r4, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 5 subs r0, r1 movs r1, 0x64 bl __divsi3 strh r0, [r4, 0x32] movs r2, 0x32 ldrsh r1, [r4, r2] adds r0, r1, 0 subs r0, 0xC0 cmp r0, 0 bge _0813D12C adds r0, 0x7F _0813D12C: asrs r0, 7 adds r0, 0x9 lsls r0, 24 lsrs r0, 24 cmp r0, 0xF bls _0813D13A movs r0, 0xF _0813D13A: lsls r2, r0, 4 ldrb r1, [r4, 0x5] movs r0, 0xF ands r0, r1 orrs r0, r2 strb r0, [r4, 0x5] b _0813D14E _0813D148: adds r0, r4, 0 bl DestroySprite _0813D14E: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_813D0CC thumb_func_start sub_813D158 sub_813D158: @ 813D158 push {r4,lr} adds r4, r0, 0 ldr r2, _0813D1CC movs r1, 0x3C ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r3, 0x3C ldrsh r0, [r1, r3] cmp r0, 0 beq _0813D1D4 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r0, [r4, 0x26] ldrh r3, [r4, 0x22] adds r0, r3 strh r0, [r4, 0x22] adds r0, r4, 0 movs r1, 0x3 bl StartSpriteAnim movs r0, 0x80 lsls r0, 3 strh r0, [r4, 0x32] ldrh r1, [r4, 0x30] movs r0, 0x3 ands r0, r1 lsls r0, 3 strh r0, [r4, 0x34] ldr r0, _0813D1D0 str r0, [r4, 0x1C] ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 movs r1, 0x40 orrs r0, r1 strb r0, [r4, 0x1] ldrb r0, [r4, 0x3] movs r1, 0xC0 orrs r0, r1 strb r0, [r4, 0x3] adds r0, r4, 0 movs r1, 0x1 movs r2, 0x3 movs r3, 0x2 bl CalcCenterToCornerVec b _0813D200 .align 2, 0 _0813D1CC: .4byte gSprites _0813D1D0: .4byte sub_813D0CC _0813D1D4: ldrh r0, [r1, 0x24] strh r0, [r4, 0x24] movs r0, 0x3C ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x26] strh r0, [r4, 0x26] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x20] strh r0, [r4, 0x20] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x22] strh r0, [r4, 0x22] _0813D200: pop {r4} pop {r0} bx r0 thumb_func_end sub_813D158 thumb_func_start sub_813D208 sub_813D208: @ 813D208 push {lr} adds r1, r0, 0 movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0 beq _0813D218 ldr r0, _0813D21C str r0, [r1, 0x1C] _0813D218: pop {r0} bx r0 .align 2, 0 _0813D21C: .4byte sub_813D220 thumb_func_end sub_813D208 thumb_func_start sub_813D220 sub_813D220: @ 813D220 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r7, r0, 0 ldrh r4, [r7, 0x20] movs r1, 0x20 ldrsh r0, [r7, r1] cmp r0, 0x74 bgt _0813D260 ldrh r0, [r7, 0x26] ldrh r1, [r7, 0x22] adds r0, r1 movs r1, 0 strh r0, [r7, 0x22] strh r1, [r7, 0x26] adds r0, r4, 0x4 strh r0, [r7, 0x20] ldr r0, _0813D258 strh r0, [r7, 0x24] movs r0, 0x80 strh r0, [r7, 0x36] ldr r0, _0813D25C str r0, [r7, 0x1C] b _0813D352 .align 2, 0 _0813D258: .4byte 0x0000fffc _0813D25C: .4byte sub_813D368 _0813D260: ldrh r1, [r7, 0x36] ldr r5, _0813D364 lsls r0, r1, 24 lsrs r0, 23 adds r0, r5 ldrh r2, [r0] adds r0, r1, 0 adds r0, 0x40 lsls r0, 24 lsrs r0, 23 adds r0, r5 ldrh r3, [r0] adds r1, 0x2 strh r1, [r7, 0x36] lsls r2, 16 asrs r0, r2, 16 cmp r0, 0 bge _0813D286 adds r0, 0x1F _0813D286: asrs r0, 5 strh r0, [r7, 0x26] subs r0, r4, 0x1 strh r0, [r7, 0x20] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0813D29C ldrh r0, [r7, 0x22] adds r0, 0x1 strh r0, [r7, 0x22] _0813D29C: lsls r0, r3, 16 asrs r0, 16 negs r0, r0 cmp r0, 0 bge _0813D2A8 adds r0, 0xF _0813D2A8: lsls r1, r0, 12 lsrs r1, 16 ldrh r4, [r7, 0x32] ldrh r3, [r7, 0x34] adds r0, r1, 0 subs r0, 0x10 lsls r0, 24 lsrs r0, 23 adds r0, r5 ldrh r2, [r0] adds r1, 0x30 lsls r1, 24 lsrs r1, 23 adds r1, r5 movs r0, 0 ldrsh r1, [r1, r0] adds r0, r1, 0 muls r0, r4 cmp r0, 0 bge _0813D2D2 adds r0, 0xFF _0813D2D2: lsls r0, 8 lsrs r0, 16 mov r8, r0 lsls r0, r2, 16 asrs r2, r0, 16 negs r0, r2 muls r0, r3 cmp r0, 0 bge _0813D2E6 adds r0, 0xFF _0813D2E6: lsls r0, 8 lsrs r0, 16 mov r10, r0 adds r0, r2, 0 muls r0, r4 cmp r0, 0 bge _0813D2F6 adds r0, 0xFF _0813D2F6: lsls r0, 8 lsrs r5, r0, 16 adds r0, r1, 0 muls r0, r3 cmp r0, 0 bge _0813D304 adds r0, 0xFF _0813D304: lsls r6, r0, 8 lsrs r6, 16 ldrh r0, [r7, 0x30] lsls r0, 24 lsrs r0, 24 str r3, [sp] adds r1, r4, 0 movs r2, 0 movs r3, 0 bl SetOamMatrix ldrh r0, [r7, 0x30] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r5 mov r1, r10 lsls r5, r1, 16 lsrs r3, r5, 16 lsls r4, r6, 16 str r6, [sp] mov r1, r8 mov r2, r9 bl SetOamMatrix ldrh r0, [r7, 0x30] adds r0, 0x2 lsls r0, 24 lsrs r0, 24 lsls r5, 1 lsrs r5, 16 lsls r4, 1 lsrs r4, 16 str r4, [sp] mov r1, r8 mov r2, r9 adds r3, r5, 0 bl SetOamMatrix _0813D352: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813D364: .4byte gSineTable thumb_func_end sub_813D220 thumb_func_start sub_813D368 sub_813D368: @ 813D368 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x3A] adds r1, 0x40 lsls r1, 16 lsrs r1, 16 str r1, [sp] movs r2, 0 movs r3, 0 bl SetOamMatrix ldrh r0, [r4, 0x30] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x3A] adds r1, 0x40 lsls r1, 16 lsrs r1, 16 str r1, [sp] movs r2, 0 movs r3, 0 bl SetOamMatrix ldrh r0, [r4, 0x30] adds r0, 0x2 lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x3A] adds r1, 0x40 lsls r1, 16 lsrs r1, 16 str r1, [sp] movs r2, 0 movs r3, 0 bl SetOamMatrix ldrh r1, [r4, 0x36] movs r2, 0x36 ldrsh r0, [r4, r2] cmp r0, 0x40 beq _0813D400 adds r0, r1, 0 subs r0, 0x8 strh r0, [r4, 0x36] ldrh r0, [r4, 0x36] adds r1, r0, 0 ldr r2, _0813D3FC adds r0, 0x40 lsls r0, 24 lsrs r0, 23 adds r0, r2 movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0 bge _0813D3E2 adds r0, 0x3F _0813D3E2: asrs r0, 6 strh r0, [r4, 0x24] lsls r0, r1, 24 lsrs r0, 23 adds r0, r2 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bge _0813D3F6 adds r0, 0x3F _0813D3F6: asrs r0, 6 strh r0, [r4, 0x26] b _0813D408 .align 2, 0 _0813D3FC: .4byte gSineTable _0813D400: movs r0, 0 strh r0, [r4, 0x36] ldr r0, _0813D410 str r0, [r4, 0x1C] _0813D408: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0813D410: .4byte sub_813D414 thumb_func_end sub_813D368 thumb_func_start sub_813D414 sub_813D414: @ 813D414 push {r4,lr} adds r1, r0, 0 movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0x2 beq _0813D474 ldrh r0, [r1, 0x36] adds r0, 0x8 strh r0, [r1, 0x36] ldr r3, _0813D470 lsls r0, 24 lsrs r0, 23 adds r0, r3 movs r4, 0 ldrsh r0, [r0, r4] cmp r0, 0 bge _0813D438 adds r0, 0xF _0813D438: asrs r0, 4 adds r0, 0x40 lsls r0, 16 lsrs r2, r0, 16 adds r0, r2, 0 adds r0, 0x40 lsls r0, 24 lsrs r0, 23 adds r0, r3 movs r4, 0 ldrsh r0, [r0, r4] cmp r0, 0 bge _0813D454 adds r0, 0x3F _0813D454: asrs r0, 6 strh r0, [r1, 0x24] lsls r0, r2, 24 lsrs r0, 23 adds r0, r3 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 bge _0813D468 adds r0, 0x3F _0813D468: asrs r0, 6 strh r0, [r1, 0x26] b _0813D478 .align 2, 0 _0813D470: .4byte gSineTable _0813D474: ldr r0, _0813D480 str r0, [r1, 0x1C] _0813D478: pop {r4} pop {r0} bx r0 .align 2, 0 _0813D480: .4byte sub_813D484 thumb_func_end sub_813D414 thumb_func_start sub_813D484 sub_813D484: @ 813D484 push {r4,lr} adds r4, r0, 0 ldrh r2, [r4, 0x22] movs r0, 0x22 ldrsh r1, [r4, r0] movs r3, 0x38 ldrsh r0, [r4, r3] cmp r1, r0 bge _0813D49C adds r0, r2, 0x4 strh r0, [r4, 0x22] b _0813D4F8 _0813D49C: movs r0, 0x1 strh r0, [r4, 0x3C] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r0, [r4, 0x26] ldrh r3, [r4, 0x22] adds r0, r3 strh r0, [r4, 0x22] adds r0, r4, 0 movs r1, 0x3 bl StartSpriteAnim movs r0, 0x80 lsls r0, 3 strh r0, [r4, 0x32] ldrh r1, [r4, 0x30] movs r0, 0x3 ands r0, r1 lsls r0, 3 strh r0, [r4, 0x34] ldr r0, _0813D500 str r0, [r4, 0x1C] ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 movs r1, 0x40 orrs r0, r1 strb r0, [r4, 0x1] ldrb r0, [r4, 0x3] movs r1, 0xC0 orrs r0, r1 strb r0, [r4, 0x3] adds r0, r4, 0 movs r1, 0x1 movs r2, 0x3 movs r3, 0x2 bl CalcCenterToCornerVec _0813D4F8: pop {r4} pop {r0} bx r0 .align 2, 0 _0813D500: .4byte sub_813D0CC thumb_func_end sub_813D484 thumb_func_start sub_813D504 sub_813D504: @ 813D504 push {r4,lr} adds r4, r0, 0 ldrh r2, [r4, 0x22] movs r0, 0x22 ldrsh r1, [r4, r0] movs r3, 0x38 ldrsh r0, [r4, r3] cmp r1, r0 bge _0813D51C adds r0, r2, 0x4 strh r0, [r4, 0x22] b _0813D578 _0813D51C: movs r0, 0x1 strh r0, [r4, 0x3C] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r0, [r4, 0x26] ldrh r3, [r4, 0x22] adds r0, r3 strh r0, [r4, 0x22] adds r0, r4, 0 movs r1, 0x3 bl StartSpriteAnim movs r0, 0x80 lsls r0, 3 strh r0, [r4, 0x32] ldrh r1, [r4, 0x30] movs r0, 0x3 ands r0, r1 lsls r0, 3 strh r0, [r4, 0x34] ldr r0, _0813D580 str r0, [r4, 0x1C] ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 movs r1, 0x40 orrs r0, r1 strb r0, [r4, 0x1] ldrb r0, [r4, 0x3] movs r1, 0xC0 orrs r0, r1 strb r0, [r4, 0x3] adds r0, r4, 0 movs r1, 0x1 movs r2, 0x3 movs r3, 0x2 bl CalcCenterToCornerVec _0813D578: pop {r4} pop {r0} bx r0 .align 2, 0 _0813D580: .4byte sub_813D0CC thumb_func_end sub_813D504 thumb_func_start sub_813D584 sub_813D584: @ 813D584 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 adds r4, r0, 0 adds r5, r1, 0 ldr r6, [sp, 0x34] ldr r0, [sp, 0x38] mov r8, r0 lsls r4, 16 lsls r5, 16 lsls r2, 16 lsrs r2, 16 str r2, [sp, 0x8] lsls r3, 16 lsrs r3, 16 str r3, [sp, 0xC] lsls r6, 16 lsrs r6, 16 mov r1, r8 lsls r1, 24 lsrs r1, 24 mov r8, r1 ldr r0, _0813D640 lsrs r2, r4, 16 mov r10, r2 asrs r4, 16 lsrs r1, r5, 16 str r1, [sp, 0x4] asrs r5, 16 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r2, _0813D644 mov r9, r2 lsls r0, r7, 4 adds r0, r7 lsls r5, r0, 2 adds r4, r5, r2 movs r0, 0 strh r0, [r4, 0x2E] strh r0, [r4, 0x3C] mov r0, sp ldrh r0, [r0, 0xC] strh r0, [r4, 0x30] mov r1, sp ldrh r1, [r1, 0x8] strh r1, [r4, 0x32] mov r2, sp ldrh r2, [r2, 0x8] strh r2, [r4, 0x34] strh r6, [r4, 0x38] mov r0, sp ldrh r0, [r0, 0x8] strh r0, [r4, 0x3A] ldrb r0, [r4, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r4, 0x1] movs r0, 0x1F ldr r1, [sp, 0xC] ands r1, r0 lsls r1, 1 ldrb r2, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x3] adds r0, r4, 0 movs r1, 0 movs r2, 0x2 movs r3, 0x2 bl CalcCenterToCornerVec adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnim mov r1, r8 cmp r1, 0 bne _0813D64C mov r0, r9 adds r0, 0x1C adds r0, r5, r0 ldr r1, _0813D648 b _0813D654 .align 2, 0 _0813D640: .4byte gSpriteTemplate_840AE20 _0813D644: .4byte gSprites _0813D648: .4byte sub_813D208 _0813D64C: mov r0, r9 adds r0, 0x1C adds r0, r5, r0 ldr r1, _0813D774 _0813D654: str r1, [r0] str r7, [sp, 0x10] mov r2, r10 lsls r2, 16 asrs r2, 16 mov r10, r2 ldr r0, [sp, 0x4] lsls r0, 16 asrs r0, 16 mov r8, r0 ldr r0, _0813D778 mov r1, r10 mov r2, r8 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r5, _0813D77C lsls r4, r7, 4 adds r4, r7 lsls r4, 2 adds r0, r4, r5 mov r1, sp ldrh r1, [r1, 0x10] strh r1, [r0, 0x3C] ldr r2, [sp, 0xC] adds r2, 0x1 mov r9, r2 strh r2, [r0, 0x30] ldrb r1, [r0, 0x1] movs r2, 0x3 orrs r1, r2 strb r1, [r0, 0x1] mov r2, r9 movs r1, 0x1F ands r2, r1 lsls r2, 1 ldrb r3, [r0, 0x3] movs r6, 0x3F negs r6, r6 adds r1, r6, 0 ands r1, r3 orrs r1, r2 strb r1, [r0, 0x3] movs r1, 0 movs r2, 0x2 movs r3, 0x2 bl CalcCenterToCornerVec ldr r2, _0813D780 adds r4, r2 ldr r0, _0813D784 str r0, [r4] ldr r0, _0813D778 mov r1, r10 mov r2, r8 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r4, r7, 4 adds r4, r7 lsls r4, 2 adds r5, r4, r5 mov r1, sp ldrh r1, [r1, 0x10] strh r1, [r5, 0x3C] ldr r2, [sp, 0xC] adds r2, 0x2 mov r8, r2 strh r2, [r5, 0x30] adds r0, r5, 0 movs r1, 0x1 bl StartSpriteAnim ldrb r0, [r5, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r5, 0x1] mov r0, r8 movs r2, 0x1F ands r0, r2 lsls r0, 1 ldrb r1, [r5, 0x3] ands r6, r1 orrs r6, r0 strb r6, [r5, 0x3] adds r0, r5, 0 movs r1, 0 movs r2, 0x2 movs r3, 0x2 bl CalcCenterToCornerVec ldr r0, _0813D780 adds r4, r0 ldr r1, _0813D784 str r1, [r4] ldr r2, [sp, 0xC] lsls r0, r2, 24 lsrs r0, 24 ldr r5, [sp, 0x8] adds r5, 0x20 lsls r4, r5, 16 lsrs r4, 16 str r4, [sp] adds r1, r4, 0 movs r2, 0 movs r3, 0 bl SetOamMatrix mov r0, r9 lsls r0, 24 lsrs r0, 24 mov r9, r0 str r4, [sp] adds r1, r4, 0 movs r2, 0 movs r3, 0 bl SetOamMatrix mov r1, r8 lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r5, 17 lsrs r5, 16 str r5, [sp] mov r0, r8 adds r1, r4, 0 movs r2, 0 movs r3, 0 bl SetOamMatrix ldr r0, [sp, 0x10] add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0813D774: .4byte sub_813D504 _0813D778: .4byte gSpriteTemplate_840AE20 _0813D77C: .4byte gSprites _0813D780: .4byte gSprites + 0x1C _0813D784: .4byte sub_813D158 thumb_func_end sub_813D584 thumb_func_start sub_813D788 sub_813D788: @ 813D788 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x4 bhi _0813D830 lsls r0, 2 ldr r1, _0813D7A0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813D7A0: .4byte _0813D7A4 .align 2, 0 _0813D7A4: .4byte _0813D7B8 .4byte _0813D7C6 .4byte _0813D7E4 .4byte _0813D80C .4byte _0813D816 _0813D7B8: adds r0, r4, 0 movs r1, 0 bl StartSpriteAnimIfDifferent ldrh r0, [r4, 0x20] subs r0, 0x1 b _0813D82E _0813D7C6: adds r0, r4, 0 movs r1, 0 bl StartSpriteAnimIfDifferent ldr r0, _0813D7E0 ldr r0, [r0] movs r1, 0x7 ands r0, r1 cmp r0, 0 bne _0813D87A ldrh r0, [r4, 0x20] adds r0, 0x1 b _0813D82E .align 2, 0 _0813D7E0: .4byte gUnknown_03005ED0 _0813D7E4: adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnimIfDifferent ldrh r2, [r4, 0x20] movs r1, 0x20 ldrsh r0, [r4, r1] cmp r0, 0x78 ble _0813D802 ldr r0, _0813D808 ldr r0, [r0] movs r1, 0x7 ands r0, r1 cmp r0, 0 beq _0813D83C _0813D802: adds r0, r2, 0x1 b _0813D82E .align 2, 0 _0813D808: .4byte gUnknown_03005ED0 _0813D80C: adds r0, r4, 0 movs r1, 0x3 bl StartSpriteAnimIfDifferent b _0813D830 _0813D816: adds r0, r4, 0 movs r1, 0 bl StartSpriteAnimIfDifferent ldrh r2, [r4, 0x20] movs r0, 0x20 ldrsh r1, [r4, r0] movs r0, 0x20 negs r0, r0 cmp r1, r0 ble _0813D830 subs r0, r2, 0x2 _0813D82E: strh r0, [r4, 0x20] _0813D830: ldr r0, _0813D84C ldr r0, [r0] movs r1, 0x7 ands r0, r1 cmp r0, 0 bne _0813D87A _0813D83C: movs r1, 0x26 ldrsh r5, [r4, r1] cmp r5, 0 beq _0813D850 movs r0, 0 strh r0, [r4, 0x26] b _0813D87A .align 2, 0 _0813D84C: .4byte gUnknown_03005ED0 _0813D850: bl Random movs r1, 0x3 ands r1, r0 cmp r1, 0x1 beq _0813D878 cmp r1, 0x1 bgt _0813D866 cmp r1, 0 beq _0813D86E b _0813D87A _0813D866: cmp r1, 0x3 bgt _0813D87A strh r5, [r4, 0x26] b _0813D87A _0813D86E: ldr r0, _0813D874 strh r0, [r4, 0x26] b _0813D87A .align 2, 0 _0813D874: .4byte 0x0000ffff _0813D878: strh r1, [r4, 0x26] _0813D87A: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_813D788 thumb_func_start sub_813D880 sub_813D880: @ 813D880 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1 beq _0813D89A cmp r0, 0x1 ble _0813D8E2 cmp r0, 0x2 beq _0813D8BA cmp r0, 0x3 beq _0813D8D4 b _0813D8E2 _0813D89A: movs r2, 0x24 ldrsh r0, [r4, r2] movs r2, 0x20 ldrsh r1, [r4, r2] adds r0, r1 ldr r1, _0813D8B0 cmp r0, r1 bgt _0813D8B4 ldrh r0, [r4, 0x24] adds r0, 0x8 b _0813D8E0 .align 2, 0 _0813D8B0: .4byte 0x0000012f _0813D8B4: movs r0, 0x2 strh r0, [r4, 0x2E] b _0813D8E2 _0813D8BA: movs r1, 0x24 ldrsh r0, [r4, r1] movs r2, 0x20 ldrsh r1, [r4, r2] adds r0, r1 cmp r0, 0x78 ble _0813D8CE ldrh r0, [r4, 0x24] subs r0, 0x1 b _0813D8E0 _0813D8CE: movs r0, 0x3 strh r0, [r4, 0x2E] b _0813D8E2 _0813D8D4: ldrh r1, [r4, 0x24] movs r2, 0x24 ldrsh r0, [r4, r2] cmp r0, 0 ble _0813D8E2 subs r0, r1, 0x2 _0813D8E0: strh r0, [r4, 0x24] _0813D8E2: ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r0, 24 movs r1, 0x8 bl Sin ldr r1, _0813D904 ldrh r1, [r1] subs r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] adds r0, 0x4 strh r0, [r4, 0x30] pop {r4} pop {r0} bx r0 .align 2, 0 _0813D904: .4byte gUnknown_0203935A thumb_func_end sub_813D880 thumb_func_start sub_813D908 sub_813D908: @ 813D908 push {lr} adds r3, r0, 0 ldr r2, _0813D930 movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0 bne _0813D934 adds r0, r3, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _0813D94E .align 2, 0 _0813D930: .4byte gTasks _0813D934: cmp r0, 0x4 beq _0813D948 adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] b _0813D94E _0813D948: adds r0, r3, 0 bl DestroySprite _0813D94E: pop {r0} bx r0 thumb_func_end sub_813D908 thumb_func_start sub_813D954 sub_813D954: @ 813D954 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r1, 16 lsrs r6, r1, 16 lsls r2, 24 lsrs r2, 24 mov r8, r2 movs r5, 0 ldr r7, _0813DA48 lsls r0, 16 mov r9, r0 lsls r0, r6, 16 str r0, [sp, 0x4] mov r1, r9 asrs r1, 16 str r1, [sp] _0813D97C: lsls r4, r5, 2 adds r0, r7, 0x2 adds r0, r4, r0 ldrh r1, [r0] ldr r2, [sp] adds r1, r2, r1 lsls r1, 16 asrs r1, 16 lsls r2, r6, 16 asrs r3, r2, 16 mov r10, r3 ldr r0, _0813DA4C adds r2, r0 ldr r0, _0813DA50 asrs r2, 16 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 ldr r1, _0813DA54 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 mov r1, r8 strh r1, [r0, 0x2E] adds r4, r7 ldrb r1, [r4] bl StartSpriteAnim adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x8 bls _0813D97C movs r5, 0 ldr r7, _0813DA58 mov r0, r10 adds r0, 0xC lsls r0, 16 mov r10, r0 _0813D9D0: lsls r4, r5, 2 adds r0, r7, 0x2 adds r0, r4, r0 mov r2, r9 asrs r1, r2, 16 ldrh r0, [r0] adds r1, r0 lsls r1, 16 asrs r1, 16 ldr r0, _0813DA5C mov r3, r10 asrs r2, r3, 16 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 ldr r6, _0813DA54 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r6 mov r1, r8 strh r1, [r0, 0x2E] adds r4, r7 ldrb r1, [r4] bl StartSpriteAnim adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x7 bls _0813D9D0 ldr r0, _0813DA60 ldr r3, [sp, 0x4] ldr r1, _0813DA4C adds r2, r3, r1 asrs r2, 16 movs r1, 0x78 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r6 mov r3, r8 strh r3, [r0, 0x2E] adds r0, r2, 0 add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0813DA48: .4byte gUnknown_0840AF50 _0813DA4C: .4byte 0xfffc0000 _0813DA50: .4byte gSpriteTemplate_840AF94 _0813DA54: .4byte gSprites _0813DA58: .4byte gUnknown_0840AF74 _0813DA5C: .4byte gSpriteTemplate_840AFAC _0813DA60: .4byte gSpriteTemplate_840AFC4 thumb_func_end sub_813D954 thumb_func_start sub_813DA64 sub_813DA64: @ 813DA64 push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _0813DA7C cmp r0, 0x1 beq _0813DAC0 _0813DA7C: ldrb r0, [r4, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r4, 0x1] ldrb r1, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x2 orrs r0, r1 strb r0, [r4, 0x3] adds r0, r4, 0 movs r1, 0x1 movs r2, 0x3 movs r3, 0x3 bl CalcCenterToCornerVec adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] movs r0, 0x1 strh r0, [r4, 0x2E] movs r0, 0x80 strh r0, [r4, 0x30] ldr r0, _0813DABC strh r0, [r4, 0x32] movs r0, 0 b _0813DB92 .align 2, 0 _0813DABC: .4byte 0x0000ffe8 _0813DAC0: ldrh r1, [r4, 0x34] movs r2, 0x34 ldrsh r0, [r4, r2] cmp r0, 0x4F bgt _0813DAF8 lsls r0, r1, 24 lsrs r0, 24 movs r1, 0x78 bl Sin negs r0, r0 strh r0, [r4, 0x26] ldrh r0, [r4, 0x34] lsls r0, 24 lsrs r0, 24 movs r1, 0x8C bl Sin negs r0, r0 strh r0, [r4, 0x24] movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0x40 ble _0813DAF8 ldrb r0, [r4, 0x5] movs r1, 0xC orrs r0, r1 strb r0, [r4, 0x5] _0813DAF8: ldr r2, _0813DB60 ldrh r1, [r4, 0x32] lsls r0, r1, 24 lsrs r0, 23 adds r0, r2 ldrh r3, [r0] adds r1, 0x40 lsls r1, 24 lsrs r1, 23 adds r1, r2 movs r2, 0 ldrsh r0, [r1, r2] movs r1, 0x30 ldrsh r2, [r4, r1] adds r1, r0, 0 muls r1, r2 adds r0, r1, 0 cmp r1, 0 bge _0813DB20 adds r0, 0xFF _0813DB20: lsls r0, 8 lsrs r6, r0, 16 lsls r0, r3, 16 asrs r3, r0, 16 negs r0, r3 muls r0, r2 cmp r0, 0 bge _0813DB32 adds r0, 0xFF _0813DB32: lsls r0, 8 lsrs r5, r0, 16 adds r0, r3, 0 muls r0, r2 cmp r0, 0 bge _0813DB40 adds r0, 0xFF _0813DB40: lsls r0, 8 lsrs r2, r0, 16 adds r1, r6, 0 adds r3, r5, 0 str r1, [sp] movs r0, 0x1 bl SetOamMatrix ldrh r1, [r4, 0x30] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r0, 0xFF bgt _0813DB64 adds r0, r1, 0 adds r0, 0x8 b _0813DB68 .align 2, 0 _0813DB60: .4byte gSineTable _0813DB64: adds r0, r1, 0 adds r0, 0x20 _0813DB68: strh r0, [r4, 0x30] ldrh r1, [r4, 0x32] movs r2, 0x32 ldrsh r0, [r4, r2] cmp r0, 0x17 bgt _0813DB78 adds r0, r1, 0x1 strh r0, [r4, 0x32] _0813DB78: ldrh r2, [r4, 0x34] movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0x3F bgt _0813DB86 adds r0, r2, 0x2 b _0813DB92 _0813DB86: ldrh r1, [r4, 0x3C] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _0813DB94 adds r0, r2, 0x1 _0813DB92: strh r0, [r4, 0x34] _0813DB94: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_813DA64 thumb_func_start sub_813DB9C sub_813DB9C: @ 813DB9C push {r4,lr} sub sp, 0x4 adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x4 bhi _0813DBCC lsls r0, 2 ldr r1, _0813DBB4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813DBB4: .4byte _0813DBB8 .align 2, 0 _0813DBB8: .4byte _0813DBCC .4byte _0813DBF2 .4byte _0813DC24 .4byte _0813DC3E .4byte _0813DCAA _0813DBCC: movs r2, 0x32 ldrsh r0, [r4, r2] cmp r0, 0 beq _0813DBE0 adds r2, r4, 0 adds r2, 0x3F ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 b _0813DBEC _0813DBE0: adds r2, r4, 0 adds r2, 0x3F ldrb r1, [r2] movs r0, 0x2 negs r0, r0 ands r0, r1 _0813DBEC: strb r0, [r2] movs r0, 0x1 strh r0, [r4, 0x2E] _0813DBF2: ldrh r1, [r4, 0x22] movs r3, 0x22 ldrsh r0, [r4, r3] cmp r0, 0x60 ble _0813DC18 subs r0, r1, 0x4 strh r0, [r4, 0x22] movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 beq _0813DC10 ldrh r0, [r4, 0x20] adds r0, 0x2 strh r0, [r4, 0x20] b _0813DD4E _0813DC10: ldrh r0, [r4, 0x20] subs r0, 0x2 strh r0, [r4, 0x20] b _0813DD4E _0813DC18: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] movs r0, 0x8 strh r0, [r4, 0x34] b _0813DD4E _0813DC24: ldrh r0, [r4, 0x34] movs r2, 0x34 ldrsh r1, [r4, r2] cmp r1, 0 beq _0813DC34 subs r0, 0x1 strh r0, [r4, 0x34] b _0813DD4E _0813DC34: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] strh r1, [r4, 0x34] b _0813DD4E _0813DC3E: ldrb r0, [r4, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r4, 0x1] movs r3, 0x30 ldrsh r1, [r4, r3] movs r0, 0x1F ands r1, r0 lsls r1, 1 ldrb r2, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x3] adds r0, r4, 0 movs r1, 0 movs r2, 0x3 movs r3, 0x3 bl CalcCenterToCornerVec movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 beq _0813DC8A ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r0, 24 movs r1, 0xFF lsls r1, 8 movs r2, 0x80 lsls r2, 1 str r2, [sp] movs r2, 0 movs r3, 0 bl SetOamMatrix b _0813DC9E _0813DC8A: ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r0, 24 movs r1, 0x80 lsls r1, 1 str r1, [sp] movs r2, 0 movs r3, 0 bl SetOamMatrix _0813DC9E: ldrh r0, [r4, 0x2E] adds r0, 0x1 movs r1, 0 strh r0, [r4, 0x2E] strh r1, [r4, 0x36] b _0813DD4E _0813DCAA: ldrh r0, [r4, 0x36] adds r2, r0, 0x1 strh r2, [r4, 0x36] movs r3, 0x22 ldrsh r0, [r4, r3] movs r3, 0x26 ldrsh r1, [r4, r3] adds r0, r1 movs r1, 0x20 negs r1, r1 cmp r0, r1 ble _0813DD48 movs r1, 0x20 ldrsh r0, [r4, r1] movs r3, 0x24 ldrsh r1, [r4, r3] adds r0, r1 movs r1, 0x40 negs r1, r1 cmp r0, r1 ble _0813DD48 movs r1, 0x36 ldrsh r0, [r4, r1] adds r3, r0, 0 muls r3, r0 adds r0, r3, 0 negs r0, r0 cmp r0, 0 bge _0813DCE6 adds r0, 0x7 _0813DCE6: asrs r0, 3 strh r0, [r4, 0x26] movs r1, 0x32 ldrsh r0, [r4, r1] ldrh r3, [r4, 0x32] cmp r0, 0 beq _0813DCFA ldrh r0, [r4, 0x24] adds r0, r2 b _0813DCFE _0813DCFA: ldrh r0, [r4, 0x24] subs r0, r2 _0813DCFE: strh r0, [r4, 0x24] ldrh r1, [r4, 0x34] movs r2, 0x34 ldrsh r0, [r4, r2] cmp r0, 0x7F bgt _0813DD10 adds r0, r1, 0 adds r0, 0x8 strh r0, [r4, 0x34] _0813DD10: ldrh r0, [r4, 0x34] movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 subs r1, r0 lsls r1, 16 lsrs r2, r1, 16 lsls r0, r3, 16 cmp r0, 0 beq _0813DD34 ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r0, 24 negs r1, r2 lsls r1, 16 lsrs r1, 16 str r2, [sp] b _0813DD3E _0813DD34: ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r0, 24 str r2, [sp] adds r1, r2, 0 _0813DD3E: movs r2, 0 movs r3, 0 bl SetOamMatrix b _0813DD4E _0813DD48: adds r0, r4, 0 bl DestroySprite _0813DD4E: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_813DB9C thumb_func_start sub_813DD58 sub_813DD58: @ 813DD58 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1 beq _0813DDAE cmp r0, 0x1 ble _0813DD72 cmp r0, 0x2 beq _0813DE66 cmp r0, 0x3 beq _0813DE26 _0813DD72: adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4, 0x1] movs r2, 0x30 ldrsh r1, [r4, r2] movs r0, 0x1F ands r1, r0 lsls r1, 1 ldrb r2, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x3] movs r0, 0x80 lsls r0, 4 strh r0, [r4, 0x34] movs r0, 0x1 strh r0, [r4, 0x2E] _0813DDAE: ldrh r1, [r4, 0x34] movs r2, 0x34 ldrsh r0, [r4, r2] movs r2, 0x80 lsls r2, 1 cmp r0, r2 ble _0813DDEE subs r1, 0x80 strh r1, [r4, 0x34] movs r2, 0x32 ldrsh r0, [r4, r2] cmp r0, 0 beq _0813DDDA ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r0, 24 negs r1, r1 lsls r1, 16 lsrs r1, 16 ldrh r2, [r4, 0x34] str r2, [sp] b _0813DDE4 _0813DDDA: ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x34] str r1, [sp] _0813DDE4: movs r2, 0 movs r3, 0 bl SetOamMatrix b _0813DE66 _0813DDEE: movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 beq _0813DE0C ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r0, 24 movs r1, 0xFF lsls r1, 8 str r2, [sp] movs r2, 0 movs r3, 0 bl SetOamMatrix b _0813DE1E _0813DE0C: ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r0, 24 str r2, [sp] adds r1, r2, 0 movs r2, 0 movs r3, 0 bl SetOamMatrix _0813DE1E: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _0813DE66 _0813DE26: ldrh r0, [r4, 0x36] adds r0, 0x1 strh r0, [r4, 0x36] movs r2, 0x36 ldrsh r0, [r4, r2] adds r1, r0, 0 muls r1, r0 adds r0, r1, 0 cmp r0, 0 bge _0813DE3C adds r0, 0x1F _0813DE3C: asrs r0, 5 strh r0, [r4, 0x26] movs r2, 0x32 ldrsh r0, [r4, r2] cmp r0, 0 beq _0813DE56 movs r1, 0x36 ldrsh r0, [r4, r1] cmp r0, 0 bge _0813DE52 adds r0, 0x3 _0813DE52: asrs r0, 2 b _0813DE64 _0813DE56: movs r2, 0x36 ldrsh r0, [r4, r2] cmp r0, 0 bge _0813DE60 adds r0, 0x3 _0813DE60: asrs r0, 2 negs r0, r0 _0813DE64: strh r0, [r4, 0x24] _0813DE66: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_813DD58 thumb_func_start sub_813DE70 sub_813DE70: @ 813DE70 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r7, r0, 0 movs r1, 0x2E ldrsh r0, [r7, r1] cmp r0, 0x6 bhi _0813DEB0 lsls r0, 2 ldr r1, _0813DE90 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813DE90: .4byte _0813DE94 .align 2, 0 _0813DE94: .4byte _0813DEB0 .4byte _0813E0F8 .4byte _0813DEF4 .4byte _0813DF2C .4byte _0813DF54 .4byte _0813E0A8 .4byte _0813E0D0 _0813DEB0: ldrh r1, [r7, 0x20] movs r2, 0x20 ldrsh r0, [r7, r2] cmp r0, 0x28 ble _0813DEC0 subs r0, r1, 0x4 strh r0, [r7, 0x20] b _0813E0F8 _0813DEC0: adds r0, r7, 0 movs r1, 0x1 bl StartSpriteAnim ldr r4, _0813DEF0 adds r0, r4, 0 movs r1, 0x10 movs r2, 0x68 movs r3, 0x64 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x3A] adds r0, r4, 0 movs r1, 0xC movs r2, 0x6A movs r3, 0x65 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x3C] b _0813DF42 .align 2, 0 _0813DEF0: .4byte gSpriteTemplate_840B084 _0813DEF4: adds r0, r7, 0 movs r1, 0x2 bl StartSpriteAnim ldr r2, _0813DF28 movs r3, 0x3A ldrsh r1, [r7, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x1 strh r1, [r0, 0x2E] movs r0, 0x3C ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x2 strh r1, [r0, 0x2E] ldrh r0, [r7, 0x2E] adds r0, 0x1 strh r0, [r7, 0x2E] b _0813E0F8 .align 2, 0 _0813DF28: .4byte gSprites _0813DF2C: ldrh r1, [r7, 0x22] movs r2, 0x22 ldrsh r0, [r7, r2] cmp r0, 0xA0 ble _0813DF48 adds r2, r7, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _0813DF42: movs r0, 0x1 strh r0, [r7, 0x2E] b _0813E0F8 _0813DF48: adds r0, r1, 0x2 strh r0, [r7, 0x22] ldrh r0, [r7, 0x20] subs r0, 0x1 strh r0, [r7, 0x20] b _0813E0F8 _0813DF54: ldr r6, _0813E094 movs r3, 0x3A ldrsh r1, [r7, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrh r5, [r0, 0x24] ldrh r1, [r0, 0x20] adds r5, r1 lsls r5, 16 lsrs r5, 16 ldrh r4, [r0, 0x26] ldrh r2, [r0, 0x22] adds r4, r2 lsls r4, 16 lsrs r4, 16 bl DestroySprite movs r0, 0x8C lsls r0, 1 lsls r5, 16 asrs r1, r5, 16 lsls r4, 16 asrs r2, r4, 16 movs r3, 0x1 mov r8, r3 str r3, [sp] movs r3, 0x2 bl sub_813CE88 strh r0, [r7, 0x3A] movs r0, 0x3A ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0813E098 adds r0, r1 ldr r2, _0813E09C mov r10, r2 str r2, [r0] movs r3, 0x3A ldrsh r1, [r7, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 mov r9, r2 mov r3, r9 orrs r1, r3 strb r1, [r0] movs r0, 0x3A ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 mov r1, r8 strh r1, [r0, 0x30] movs r2, 0x3A ldrsh r1, [r7, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 mov r3, r8 strh r3, [r0, 0x32] lsrs r5, 16 lsrs r4, 16 adds r0, r5, 0 adds r1, r4, 0 bl sub_813E580 movs r0, 0x3C ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrh r5, [r0, 0x24] ldrh r1, [r0, 0x20] adds r5, r1 lsls r5, 16 lsrs r5, 16 ldrh r4, [r0, 0x26] ldrh r2, [r0, 0x22] adds r4, r2 lsls r4, 16 lsrs r4, 16 bl DestroySprite ldr r0, _0813E0A0 lsls r5, 16 asrs r1, r5, 16 lsls r4, 16 asrs r2, r4, 16 mov r3, r8 str r3, [sp] movs r3, 0x3 bl sub_813CE88 strh r0, [r7, 0x3C] movs r0, 0x3C ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0813E098 adds r0, r1 mov r2, r10 str r2, [r0] movs r3, 0x3C ldrsh r1, [r7, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] mov r2, r9 orrs r1, r2 strb r1, [r0] movs r3, 0x3C ldrsh r1, [r7, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x2 strh r1, [r0, 0x30] movs r0, 0x3C ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0 strh r1, [r0, 0x32] lsrs r5, 16 lsrs r4, 16 adds r0, r5, 0 adds r1, r4, 0 bl sub_813E580 movs r0, 0xFF lsls r0, 16 ldr r1, _0813E0A4 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0x10 bl BeginNormalPaletteFade mov r2, r8 strh r2, [r7, 0x2E] b _0813E0F8 .align 2, 0 _0813E094: .4byte gSprites _0813E098: .4byte gSprites + 0x1C _0813E09C: .4byte sub_813DD58 _0813E0A0: .4byte 0x0000011b _0813E0A4: .4byte 0x00007eff _0813E0A8: ldr r3, _0813E0CC movs r0, 0x3A ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r2, 0x3 strh r2, [r0, 0x2E] movs r0, 0x3C ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r2, [r0, 0x2E] b _0813E0F8 .align 2, 0 _0813E0CC: .4byte gSprites _0813E0D0: movs r2, 0x3A ldrsh r1, [r7, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _0813E108 adds r0, r4 bl DestroySprite movs r3, 0x3C ldrsh r1, [r7, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite adds r0, r7, 0 bl DestroySprite _0813E0F8: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813E108: .4byte gSprites thumb_func_end sub_813DE70 thumb_func_start sub_813E10C sub_813E10C: @ 813E10C push {r4,lr} adds r3, r0, 0 movs r1, 0x2E ldrsh r0, [r3, r1] cmp r0, 0x4 bhi _0813E13C lsls r0, 2 ldr r1, _0813E124 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813E124: .4byte _0813E128 .align 2, 0 _0813E128: .4byte _0813E13C .4byte _0813E178 .4byte _0813E1A6 .4byte _0813E1C2 .4byte _0813E1D6 _0813E13C: ldrh r4, [r3, 0x24] movs r2, 0x24 ldrsh r1, [r3, r2] movs r0, 0x38 negs r0, r0 cmp r1, r0 ble _0813E158 adds r0, r4, 0 subs r0, 0x8 strh r0, [r3, 0x24] ldrh r0, [r3, 0x26] adds r0, 0x6 strh r0, [r3, 0x26] b _0813E208 _0813E158: ldrh r0, [r3, 0x20] movs r2, 0 strh r0, [r3, 0x3A] ldrh r1, [r3, 0x22] strh r1, [r3, 0x3C] adds r0, r4 strh r0, [r3, 0x20] ldrh r0, [r3, 0x26] adds r1, r0 strh r1, [r3, 0x22] strh r2, [r3, 0x24] strh r2, [r3, 0x26] movs r0, 0x1 strh r0, [r3, 0x2E] strh r2, [r3, 0x30] b _0813E208 _0813E178: ldrh r1, [r3, 0x30] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0813E1A0 movs r0, 0x2 ands r0, r1 lsls r0, 16 asrs r0, 16 cmp r0, 0 beq _0813E19C ldr r0, _0813E198 strh r0, [r3, 0x24] strh r2, [r3, 0x26] b _0813E1A0 .align 2, 0 _0813E198: .4byte 0x0000ffff _0813E19C: strh r0, [r3, 0x24] strh r0, [r3, 0x26] _0813E1A0: adds r0, r1, 0x1 strh r0, [r3, 0x30] b _0813E208 _0813E1A6: adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldrh r0, [r3, 0x3A] movs r1, 0 strh r0, [r3, 0x20] ldrh r0, [r3, 0x3C] strh r0, [r3, 0x22] strh r1, [r3, 0x24] strh r1, [r3, 0x26] b _0813E208 _0813E1C2: adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x5 negs r1, r1 ands r1, r0 strb r1, [r2] ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] _0813E1D6: ldrh r2, [r3, 0x24] movs r0, 0x24 ldrsh r1, [r3, r0] movs r0, 0x38 negs r0, r0 cmp r1, r0 ble _0813E1F0 subs r0, r2, 0x4 strh r0, [r3, 0x24] ldrh r0, [r3, 0x26] adds r0, 0x3 strh r0, [r3, 0x26] b _0813E208 _0813E1F0: ldrh r1, [r3, 0x20] adds r0, r2, r1 movs r1, 0 strh r0, [r3, 0x20] ldrh r0, [r3, 0x26] ldrh r2, [r3, 0x22] adds r0, r2 strh r0, [r3, 0x22] strh r1, [r3, 0x24] strh r1, [r3, 0x26] movs r0, 0x1 strh r0, [r3, 0x2E] _0813E208: pop {r4} pop {r0} bx r0 thumb_func_end sub_813E10C thumb_func_start sub_813E210 sub_813E210: @ 813E210 push {r4,lr} adds r3, r0, 0 movs r1, 0x2E ldrsh r0, [r3, r1] cmp r0, 0x4 bhi _0813E240 lsls r0, 2 ldr r1, _0813E228 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813E228: .4byte _0813E22C .align 2, 0 _0813E22C: .4byte _0813E240 .4byte _0813E278 .4byte _0813E2A6 .4byte _0813E2C2 .4byte _0813E2D6 _0813E240: ldrh r4, [r3, 0x24] movs r2, 0x24 ldrsh r0, [r3, r2] cmp r0, 0x37 bgt _0813E258 adds r0, r4, 0 adds r0, 0x8 strh r0, [r3, 0x24] ldrh r0, [r3, 0x26] subs r0, 0x6 strh r0, [r3, 0x26] b _0813E304 _0813E258: ldrh r0, [r3, 0x20] movs r2, 0 strh r0, [r3, 0x3A] ldrh r1, [r3, 0x22] strh r1, [r3, 0x3C] adds r0, r4 strh r0, [r3, 0x20] ldrh r0, [r3, 0x26] adds r1, r0 strh r1, [r3, 0x22] strh r2, [r3, 0x24] strh r2, [r3, 0x26] movs r0, 0x1 strh r0, [r3, 0x2E] strh r2, [r3, 0x30] b _0813E304 _0813E278: ldrh r1, [r3, 0x30] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0813E2A0 movs r0, 0x2 ands r0, r1 lsls r0, 16 asrs r0, 16 cmp r0, 0 beq _0813E29C strh r2, [r3, 0x24] ldr r0, _0813E298 b _0813E29E .align 2, 0 _0813E298: .4byte 0x0000ffff _0813E29C: strh r0, [r3, 0x24] _0813E29E: strh r0, [r3, 0x26] _0813E2A0: adds r0, r1, 0x1 strh r0, [r3, 0x30] b _0813E304 _0813E2A6: adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldrh r0, [r3, 0x3A] movs r1, 0 strh r0, [r3, 0x20] ldrh r0, [r3, 0x3C] strh r0, [r3, 0x22] strh r1, [r3, 0x24] strh r1, [r3, 0x26] b _0813E304 _0813E2C2: adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x5 negs r1, r1 ands r1, r0 strb r1, [r2] ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] _0813E2D6: ldrh r1, [r3, 0x24] movs r2, 0x24 ldrsh r0, [r3, r2] cmp r0, 0x37 bgt _0813E2EC adds r0, r1, 0x4 strh r0, [r3, 0x24] ldrh r0, [r3, 0x26] subs r0, 0x3 strh r0, [r3, 0x26] b _0813E304 _0813E2EC: ldrh r2, [r3, 0x20] adds r0, r1, r2 movs r1, 0 strh r0, [r3, 0x20] ldrh r0, [r3, 0x26] ldrh r2, [r3, 0x22] adds r0, r2 strh r0, [r3, 0x22] strh r1, [r3, 0x24] strh r1, [r3, 0x26] movs r0, 0x1 strh r0, [r3, 0x2E] _0813E304: pop {r4} pop {r0} bx r0 thumb_func_end sub_813E210 thumb_func_start sub_813E30C sub_813E30C: @ 813E30C push {r4,lr} sub sp, 0x4 adds r4, r0, 0 ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x14 bls _0813E322 b _0813E4AC _0813E322: lsls r0, 2 ldr r1, _0813E32C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813E32C: .4byte _0813E330 .align 2, 0 _0813E330: .4byte _0813E4AC .4byte _0813E384 .4byte _0813E41C .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E3A8 .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E440 _0813E384: ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4, 0x1] ldrb r1, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x2 orrs r0, r1 strb r0, [r4, 0x3] movs r0, 0xA strh r0, [r4, 0x2E] movs r0, 0x24 strh r0, [r4, 0x36] _0813E3A8: ldrh r1, [r4, 0x20] movs r2, 0x20 ldrsh r0, [r4, r2] cmp r0, 0x90 bgt _0813E3D2 adds r0, r1, 0x4 strh r0, [r4, 0x20] ldrh r0, [r4, 0x22] subs r0, 0x1 strh r0, [r4, 0x22] ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 movs r1, 0x18 bl Sin negs r0, r0 strh r0, [r4, 0x26] ldrh r0, [r4, 0x32] adds r0, 0x4 strh r0, [r4, 0x32] _0813E3D2: ldrh r0, [r4, 0x34] ldrh r2, [r4, 0x36] subs r0, r2 strh r0, [r4, 0x34] ldrh r1, [r4, 0x3C] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0813E3EE lsls r0, r2, 16 cmp r0, 0 beq _0813E3EE subs r0, r2, 0x1 strh r0, [r4, 0x36] _0813E3EE: ldr r2, _0813E418 ldrh r1, [r4, 0x34] lsls r0, r1, 24 lsrs r0, 23 adds r0, r2 ldrh r4, [r0] adds r1, 0x40 lsls r1, 24 lsrs r1, 23 adds r1, r2 ldrh r1, [r1] negs r3, r4 lsls r3, 16 lsrs r3, 16 str r1, [sp] movs r0, 0x1 adds r2, r4, 0 bl SetOamMatrix b _0813E4AC .align 2, 0 _0813E418: .4byte gSineTable _0813E41C: ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4, 0x1] ldrb r1, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r4, 0x3] movs r0, 0x14 strh r0, [r4, 0x2E] movs r0, 0x24 strh r0, [r4, 0x36] _0813E440: ldrh r1, [r4, 0x20] movs r2, 0x20 ldrsh r0, [r4, r2] cmp r0, 0x60 bgt _0813E46A adds r0, r1, 0x3 strh r0, [r4, 0x20] ldrh r0, [r4, 0x22] subs r0, 0x1 strh r0, [r4, 0x22] ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 movs r1, 0x18 bl Sin negs r0, r0 strh r0, [r4, 0x26] ldrh r0, [r4, 0x32] adds r0, 0x4 strh r0, [r4, 0x32] _0813E46A: ldrh r0, [r4, 0x34] ldrh r2, [r4, 0x36] subs r0, r2 strh r0, [r4, 0x34] ldrh r1, [r4, 0x3C] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0813E486 lsls r0, r2, 16 cmp r0, 0 beq _0813E486 subs r0, r2, 0x1 strh r0, [r4, 0x36] _0813E486: ldr r2, _0813E4B4 ldrh r1, [r4, 0x34] lsls r0, r1, 24 lsrs r0, 23 adds r0, r2 ldrh r4, [r0] adds r1, 0x40 lsls r1, 24 lsrs r1, 23 adds r1, r2 ldrh r1, [r1] negs r3, r4 lsls r3, 16 lsrs r3, 16 str r1, [sp] movs r0, 0x2 adds r2, r4, 0 bl SetOamMatrix _0813E4AC: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0813E4B4: .4byte gSineTable thumb_func_end sub_813E30C thumb_func_start sub_813E4B8 sub_813E4B8: @ 813E4B8 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 ldrh r0, [r5, 0x3C] adds r0, 0x1 strh r0, [r5, 0x3C] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0813E4DA adds r2, r5, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 b _0813E4E4 _0813E4DA: adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 _0813E4E4: strb r0, [r2] ldrh r1, [r5, 0x32] movs r2, 0x32 ldrsh r0, [r5, r2] cmp r0, 0x3F ble _0813E4F8 adds r0, r5, 0 bl DestroySprite b _0813E574 _0813E4F8: adds r0, r1, 0x2 strh r0, [r5, 0x32] lsls r0, 24 lsrs r0, 24 movs r1, 0x28 bl Sin adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] lsls r0, 29 lsrs r0, 24 lsls r4, 16 asrs r4, 16 adds r1, r4, 0 bl Cos strh r0, [r5, 0x24] movs r2, 0x2E ldrsh r0, [r5, r2] lsls r0, 29 lsrs r0, 24 adds r1, r4, 0 bl Sin strh r0, [r5, 0x26] movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 bne _0813E574 ldrh r0, [r5, 0x34] ldrh r2, [r5, 0x30] subs r0, r2 strh r0, [r5, 0x34] ldrh r1, [r5, 0x3C] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0813E550 lsls r0, r2, 16 cmp r0, 0 beq _0813E550 subs r0, r2, 0x1 strh r0, [r5, 0x30] _0813E550: ldr r3, _0813E57C ldrh r1, [r5, 0x34] lsls r0, r1, 24 lsrs r0, 23 adds r0, r3 ldrh r2, [r0] adds r1, 0x40 lsls r1, 24 lsrs r1, 23 adds r1, r3 ldrh r1, [r1] negs r3, r2 lsls r3, 16 lsrs r3, 16 str r1, [sp] movs r0, 0x10 bl SetOamMatrix _0813E574: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813E57C: .4byte gSineTable thumb_func_end sub_813E4B8 thumb_func_start sub_813E580 sub_813E580: @ 813E580 push {r4-r7,lr} movs r4, 0 ldr r7, _0813E5D8 lsls r6, r0, 16 lsls r5, r1, 16 _0813E58A: ldr r0, _0813E5DC asrs r1, r6, 16 asrs r2, r5, 16 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r7 ldrb r1, [r2, 0x1] movs r3, 0x4 negs r3, r3 adds r0, r3, 0 ands r1, r0 movs r0, 0x1 orrs r1, r0 strb r1, [r2, 0x1] ldrb r1, [r2, 0x3] subs r3, 0x3B adds r0, r3, 0 ands r1, r0 movs r0, 0x20 orrs r1, r0 strb r1, [r2, 0x3] strh r4, [r2, 0x2E] movs r0, 0x20 strh r0, [r2, 0x30] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bls _0813E58A pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813E5D8: .4byte gSprites _0813E5DC: .4byte gSpriteTemplate_840B0B0 thumb_func_end sub_813E580 thumb_func_start sub_813E5E0 sub_813E5E0: @ 813E5E0 push {r4,lr} adds r3, r0, 0 ldr r0, _0813E5F4 ldrh r0, [r0] cmp r0, 0 beq _0813E5F8 adds r0, r3, 0 bl DestroySprite b _0813E6B2 .align 2, 0 _0813E5F4: .4byte gUnknown_0203931A _0813E5F8: ldr r2, _0813E6B8 movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r0, [r0] movs r1, 0x3E adds r1, r3 mov r12, r1 movs r1, 0x4 ands r1, r0 mov r4, r12 ldrb r2, [r4] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4] ldrh r1, [r3, 0x3C] movs r2, 0x3C ldrsh r0, [r3, r2] cmp r0, 0xB bgt _0813E630 adds r0, r1, 0x1 strh r0, [r3, 0x3C] _0813E630: ldrh r0, [r3, 0x3A] adds r0, 0x4 strh r0, [r3, 0x3A] ldr r4, _0813E6BC ldrh r0, [r3, 0x34] adds r0, 0x40 lsls r0, 24 lsrs r0, 23 adds r0, r4 movs r2, 0 ldrsh r1, [r0, r2] movs r2, 0x3A ldrsh r0, [r3, r2] muls r0, r1 cmp r0, 0 bge _0813E652 adds r0, 0xFF _0813E652: asrs r0, 8 ldrh r1, [r3, 0x36] adds r0, r1 strh r0, [r3, 0x20] movs r2, 0x34 ldrsh r0, [r3, r2] lsls r0, 24 lsrs r0, 23 adds r0, r4 movs r2, 0 ldrsh r1, [r0, r2] movs r2, 0x3A ldrsh r0, [r3, r2] muls r0, r1 cmp r0, 0 bge _0813E674 adds r0, 0xFF _0813E674: asrs r0, 8 ldrh r1, [r3, 0x38] adds r2, r0, r1 strh r2, [r3, 0x22] movs r1, 0x30 ldrsh r0, [r3, r1] lsls r0, 24 lsrs r0, 23 adds r0, r4 movs r4, 0 ldrsh r1, [r0, r4] movs r4, 0x3C ldrsh r0, [r3, r4] muls r0, r1 cmp r0, 0 bge _0813E696 adds r0, 0xFF _0813E696: asrs r0, 8 strh r0, [r3, 0x26] ldrh r0, [r3, 0x30] adds r0, 0x10 strh r0, [r3, 0x30] lsls r0, r2, 16 asrs r0, 16 movs r2, 0x32 ldrsh r1, [r3, r2] cmp r0, r1 ble _0813E6B2 adds r0, r3, 0 bl DestroySprite _0813E6B2: pop {r4} pop {r0} bx r0 .align 2, 0 _0813E6B8: .4byte gSprites _0813E6BC: .4byte gSineTable thumb_func_end sub_813E5E0 thumb_func_start sub_813E6C0 sub_813E6C0: @ 813E6C0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r4, r0, 0 ldr r0, _0813E6E0 ldrh r0, [r0] cmp r0, 0 beq _0813E6E4 adds r0, r4, 0 bl DestroySprite b _0813E7A8 .align 2, 0 _0813E6E0: .4byte gUnknown_0203931A _0813E6E4: ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r3, _0813E7B8 movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, r0, r3 movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0x1 bne _0813E7A8 ldrh r1, [r4, 0x3C] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _0813E7A8 ldrh r0, [r2, 0x20] ldrh r7, [r4, 0x30] adds r0, r7 lsls r0, 16 lsrs r0, 16 str r0, [sp] ldrh r0, [r2, 0x22] ldrh r1, [r4, 0x32] adds r0, r1 lsls r0, 16 lsrs r6, r0, 16 movs r5, 0 mov r8, r3 ldr r2, [sp] lsls r2, 16 mov r10, r2 lsls r7, r6, 16 mov r9, r7 _0813E73A: movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 adds r0, 0x43 ldrb r3, [r0] subs r3, 0x1 lsls r3, 24 lsrs r3, 24 ldr r0, _0813E7BC mov r2, r10 asrs r1, r2, 16 mov r7, r9 asrs r2, r7, 16 bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0813E79E lsls r3, r0, 4 adds r3, r0 lsls r3, 2 add r3, r8 ldrh r0, [r4, 0x2E] strh r0, [r3, 0x2E] ldrh r1, [r4, 0x3C] lsls r1, 16 asrs r1, 18 movs r0, 0x7 ands r1, r0 lsls r1, 5 lsls r0, r5, 2 adds r0, r5 lsls r2, r0, 4 adds r0, r2 adds r1, r0 strh r1, [r3, 0x30] ldrh r0, [r4, 0x34] strh r0, [r3, 0x32] movs r0, 0x68 strh r0, [r3, 0x34] mov r0, sp ldrh r0, [r0] strh r0, [r3, 0x36] strh r6, [r3, 0x38] movs r1, 0 strh r1, [r3, 0x3A] _0813E79E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _0813E73A _0813E7A8: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813E7B8: .4byte gSprites _0813E7BC: .4byte gSpriteTemplate_840B0DC thumb_func_end sub_813E6C0 thumb_func_start sub_813E7C0 sub_813E7C0: @ 813E7C0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0813E7F8 movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _0813E7F2 ldr r1, _0813E7FC lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 movs r2, 0 strh r4, [r0, 0x2E] ldr r1, _0813E800 strh r1, [r0, 0x30] strh r2, [r0, 0x32] movs r1, 0x88 strh r1, [r0, 0x34] _0813E7F2: pop {r4} pop {r0} bx r0 .align 2, 0 _0813E7F8: .4byte gSpriteTemplate_840B0F4 _0813E7FC: .4byte gSprites _0813E800: .4byte 0x0000fff4 thumb_func_end sub_813E7C0 thumb_func_start sub_813E804 sub_813E804: @ 813E804 push {r4-r7,lr} adds r3, r0, 0 ldr r0, _0813E818 ldrh r0, [r0] cmp r0, 0 beq _0813E81C adds r0, r3, 0 bl DestroySprite b _0813E928 .align 2, 0 _0813E818: .4byte gUnknown_0203931A _0813E81C: ldr r6, _0813E904 movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r0, [r0] movs r1, 0x3E adds r1, r3 mov r12, r1 movs r1, 0x4 ands r1, r0 mov r7, r12 ldrb r2, [r7] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r7] ldrh r0, [r3, 0x3C] adds r0, 0x1 strh r0, [r3, 0x3C] ldrh r1, [r3, 0x34] movs r2, 0x34 ldrsh r0, [r3, r2] cmp r0, 0x27 bgt _0813E85A adds r0, r1, 0x2 strh r0, [r3, 0x34] _0813E85A: movs r7, 0x2E ldrsh r1, [r3, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrh r1, [r0, 0x24] ldrh r0, [r0, 0x20] adds r2, r1, r0 ldr r4, _0813E908 ldrh r5, [r3, 0x30] adds r0, r5, 0 adds r0, 0x40 lsls r0, 24 lsrs r0, 23 adds r0, r4 movs r7, 0 ldrsh r1, [r0, r7] movs r7, 0x34 ldrsh r0, [r3, r7] muls r0, r1 cmp r0, 0 bge _0813E88A adds r0, 0xFF _0813E88A: asrs r0, 8 adds r0, r2, r0 strh r0, [r3, 0x20] movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrh r1, [r0, 0x26] ldrh r0, [r0, 0x22] adds r2, r1, r0 movs r1, 0x30 ldrsh r0, [r3, r1] lsls r0, 24 lsrs r0, 23 adds r0, r4 movs r7, 0 ldrsh r1, [r0, r7] movs r7, 0x34 ldrsh r0, [r3, r7] muls r0, r1 cmp r0, 0 bge _0813E8BE ldr r1, _0813E90C adds r0, r1 _0813E8BE: asrs r0, 9 adds r0, r2, r0 strh r0, [r3, 0x22] adds r1, r5, 0x2 strh r1, [r3, 0x30] movs r2, 0x32 ldrsh r0, [r3, r2] lsls r0, 24 lsrs r0, 23 adds r0, r4 movs r7, 0 ldrsh r0, [r0, r7] cmp r0, 0 bge _0813E8DC adds r0, 0x1F _0813E8DC: asrs r0, 5 strh r0, [r3, 0x26] ldrh r0, [r3, 0x32] adds r0, 0x8 strh r0, [r3, 0x32] movs r0, 0xFF ands r1, r0 cmp r1, 0x7F bgt _0813E910 movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x43 ldrb r0, [r0] subs r0, 0x1 b _0813E922 .align 2, 0 _0813E904: .4byte gSprites _0813E908: .4byte gSineTable _0813E90C: .4byte 0x000001ff _0813E910: movs r2, 0x2E ldrsh r1, [r3, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x43 ldrb r0, [r0] adds r0, 0x1 _0813E922: adds r1, r3, 0 adds r1, 0x43 strb r0, [r1] _0813E928: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_813E804 thumb_func_start sub_813E930 sub_813E930: @ 813E930 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 ldr r7, _0813E978 lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r5, r0, r7 _0813E942: movs r0, 0x20 ldrsh r1, [r5, r0] movs r0, 0x22 ldrsh r2, [r5, r0] ldr r0, _0813E97C movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _0813E968 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r6, [r0, 0x2E] lsls r1, r4, 5 strh r1, [r0, 0x30] _0813E968: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bls _0813E942 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813E978: .4byte gSprites _0813E97C: .4byte gSpriteTemplate_840B124 thumb_func_end sub_813E930 thumb_func_start GetCurrentTrainerHillMapId GetCurrentTrainerHillMapId: @ 813E980 push {r4,r5,lr} adds r3, r0, 0 ldr r0, _0813E994 ldrh r0, [r0] cmp r0, 0 beq _0813E998 adds r0, r3, 0 bl DestroySprite b _0813EA50 .align 2, 0 _0813E994: .4byte gUnknown_0203931A _0813E998: ldr r2, _0813EA58 movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r0, [r0] movs r1, 0x3E adds r1, r3 mov r12, r1 movs r1, 0x4 ands r1, r0 mov r5, r12 ldrb r2, [r5] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5] ldrh r0, [r3, 0x3C] adds r0, 0x1 strh r0, [r3, 0x3C] ldrh r0, [r3, 0x3A] adds r4, r0, 0 adds r4, 0x8 strh r4, [r3, 0x3A] ldr r2, _0813EA5C ldrh r0, [r3, 0x34] adds r0, 0x40 lsls r0, 24 lsrs r0, 23 adds r0, r2 movs r5, 0 ldrsh r1, [r0, r5] movs r5, 0x3A ldrsh r0, [r3, r5] muls r0, r1 cmp r0, 0 bge _0813E9EC adds r0, 0xFF _0813E9EC: asrs r0, 8 ldrh r1, [r3, 0x36] adds r0, r1 strh r0, [r3, 0x20] movs r5, 0x34 ldrsh r0, [r3, r5] lsls r0, 24 lsrs r0, 23 adds r0, r2 movs r2, 0 ldrsh r1, [r0, r2] movs r5, 0x3A ldrsh r0, [r3, r5] muls r0, r1 cmp r0, 0 bge _0813EA0E adds r0, 0xFF _0813EA0E: asrs r0, 8 ldrh r1, [r3, 0x38] adds r0, r1 strh r0, [r3, 0x22] movs r2, 0x3A ldrsh r0, [r3, r2] cmp r0, 0 bge _0813EA20 adds r0, 0xF _0813EA20: asrs r0, 4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x9 bls _0813EA2C movs r0, 0x9 _0813EA2C: adds r1, r0, 0 adds r1, 0x12 movs r0, 0x1F ands r1, r0 lsls r1, 1 ldrb r2, [r3, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x3] lsls r0, r4, 16 asrs r0, 16 cmp r0, 0xA0 ble _0813EA50 adds r0, r3, 0 bl DestroySprite _0813EA50: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813EA58: .4byte gSprites _0813EA5C: .4byte gSineTable thumb_func_end GetCurrentTrainerHillMapId thumb_func_start sub_813EA60 sub_813EA60: @ 813EA60 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r5, r0, 0 ldr r0, _0813EA7C ldrh r0, [r0] cmp r0, 0 beq _0813EA80 adds r0, r5, 0 bl DestroySprite b _0813EB32 .align 2, 0 _0813EA7C: .4byte gUnknown_0203931A _0813EA80: ldrh r0, [r5, 0x3C] adds r0, 0x1 strh r0, [r5, 0x3C] adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _0813EB40 mov r9, r0 movs r4, 0x2E ldrsh r1, [r5, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 mov r1, r9 adds r3, r0, r1 movs r4, 0x2E ldrsh r1, [r3, r4] cmp r1, 0x1 bne _0813EB32 ldrh r0, [r5, 0x3C] ands r1, r0 lsls r0, r1, 16 asrs r6, r0, 16 cmp r6, 0 bne _0813EB32 ldrh r1, [r3, 0x20] ldrh r0, [r5, 0x30] adds r1, r0 lsls r1, 16 ldrh r2, [r3, 0x22] ldrh r4, [r5, 0x32] adds r2, r4 lsls r2, 16 ldr r0, _0813EB44 lsrs r4, r1, 16 mov r8, r4 asrs r1, 16 lsrs r7, r2, 16 asrs r2, 16 adds r3, 0x43 ldrb r3, [r3] adds r3, 0x1 lsls r3, 24 lsrs r3, 24 bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0813EB32 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 add r4, r9 ldrb r0, [r4, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r4, 0x1] ldrb r1, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x24 orrs r0, r1 strb r0, [r4, 0x3] adds r0, r4, 0 movs r1, 0 movs r2, 0x1 movs r3, 0x3 bl CalcCenterToCornerVec ldrh r0, [r5, 0x2E] strh r0, [r4, 0x2E] ldr r2, _0813EB48 ldrh r0, [r5, 0x3C] lsls r0, 16 asrs r0, 17 movs r1, 0x7 ands r0, r1 adds r0, r2 ldrb r0, [r0] strh r0, [r4, 0x34] mov r0, r8 strh r0, [r4, 0x36] strh r7, [r4, 0x38] strh r6, [r4, 0x3A] _0813EB32: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813EB40: .4byte gSprites _0813EB44: .4byte gSpriteTemplate_840B150 _0813EB48: .4byte gUnknown_0840B168 thumb_func_end sub_813EA60 thumb_func_start sub_813EB4C sub_813EB4C: @ 813EB4C push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0813EBB0 movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _0813EB80 ldr r1, _0813EBB4 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 movs r1, 0 strh r4, [r0, 0x2E] strh r1, [r0, 0x30] movs r1, 0x8 strh r1, [r0, 0x32] movs r1, 0x18 strh r1, [r0, 0x34] _0813EB80: movs r4, 0 ldr r5, _0813EBB8 _0813EB84: adds r0, r4, 0 adds r0, 0x12 lsls r0, 24 lsrs r0, 24 lsls r1, r4, 1 adds r1, r5 ldrh r1, [r1] str r1, [sp] movs r2, 0 movs r3, 0 bl SetOamMatrix adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x9 bls _0813EB84 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813EBB0: .4byte gSpriteTemplate_840B170 _0813EBB4: .4byte gSprites _0813EBB8: .4byte gUnknown_0840B188 thumb_func_end sub_813EB4C thumb_func_start sub_813EBBC sub_813EBBC: @ 813EBBC push {r4,lr} adds r3, r0, 0 ldr r0, _0813EBD0 ldrh r0, [r0] cmp r0, 0 beq _0813EBD4 adds r0, r3, 0 bl DestroySprite b _0813EC80 .align 2, 0 _0813EBD0: .4byte gUnknown_0203931A _0813EBD4: ldr r2, _0813EC88 movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r0, [r0] movs r1, 0x3E adds r1, r3 mov r12, r1 movs r1, 0x4 ands r1, r0 mov r4, r12 ldrb r2, [r4] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4] ldrh r0, [r3, 0x3C] adds r0, 0x1 strh r0, [r3, 0x3C] ldrh r0, [r3, 0x3A] adds r0, 0x8 strh r0, [r3, 0x3A] ldr r2, _0813EC8C ldrh r0, [r3, 0x34] adds r0, 0x40 lsls r0, 24 lsrs r0, 23 adds r0, r2 movs r4, 0 ldrsh r1, [r0, r4] movs r4, 0x3A ldrsh r0, [r3, r4] muls r0, r1 cmp r0, 0 bge _0813EC26 adds r0, 0xFF _0813EC26: asrs r0, 8 ldrh r1, [r3, 0x36] adds r0, r1 strh r0, [r3, 0x20] movs r4, 0x34 ldrsh r0, [r3, r4] lsls r0, 24 lsrs r0, 23 adds r0, r2 movs r4, 0 ldrsh r1, [r0, r4] movs r4, 0x3A ldrsh r0, [r3, r4] muls r0, r1 cmp r0, 0 bge _0813EC48 adds r0, 0xFF _0813EC48: asrs r0, 8 ldrh r4, [r3, 0x38] adds r1, r0, r4 strh r1, [r3, 0x22] movs r4, 0x30 ldrsh r0, [r3, r4] lsls r0, 24 lsrs r0, 23 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 bge _0813EC64 adds r0, 0x3F _0813EC64: asrs r0, 6 strh r0, [r3, 0x26] ldrh r0, [r3, 0x30] adds r0, 0x10 strh r0, [r3, 0x30] lsls r0, r1, 16 asrs r0, 16 movs r4, 0x32 ldrsh r1, [r3, r4] cmp r0, r1 bge _0813EC80 adds r0, r3, 0 bl DestroySprite _0813EC80: pop {r4} pop {r0} bx r0 .align 2, 0 _0813EC88: .4byte gSprites _0813EC8C: .4byte gSineTable thumb_func_end sub_813EBBC thumb_func_start sub_813EC90 sub_813EC90: @ 813EC90 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r5, r0, 0 ldr r0, _0813ECAC ldrh r0, [r0] cmp r0, 0 beq _0813ECB0 adds r0, r5, 0 bl DestroySprite b _0813EDA0 .align 2, 0 _0813ECAC: .4byte gUnknown_0203931A _0813ECB0: ldrh r0, [r5, 0x3C] adds r0, 0x1 strh r0, [r5, 0x3C] adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _0813EDB0 mov r9, r0 movs r2, 0x2E ldrsh r1, [r5, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 mov r4, r9 adds r3, r0, r4 movs r0, 0x2E ldrsh r1, [r3, r0] cmp r1, 0x1 bne _0813ED74 ldrh r0, [r5, 0x3C] ands r1, r0 lsls r0, r1, 16 asrs r6, r0, 16 cmp r6, 0 bne _0813ED66 ldrh r1, [r3, 0x20] ldrh r2, [r5, 0x30] adds r1, r2 lsls r1, 16 ldrh r2, [r3, 0x22] ldrh r4, [r5, 0x32] adds r2, r4 lsls r2, 16 ldr r0, _0813EDB4 lsrs r4, r1, 16 mov r8, r4 asrs r1, 16 lsrs r7, r2, 16 asrs r2, 16 adds r3, 0x43 ldrb r3, [r3] adds r3, 0x1 lsls r3, 24 lsrs r3, 24 bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0813ED66 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 add r4, r9 ldrb r0, [r4, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r4, 0x1] ldrb r1, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x22 orrs r0, r1 strb r0, [r4, 0x3] adds r0, r4, 0 movs r1, 0 movs r2, 0x1 movs r3, 0x3 bl CalcCenterToCornerVec ldrh r0, [r5, 0x2E] strh r0, [r4, 0x2E] ldrh r0, [r5, 0x3C] lsls r0, 16 asrs r0, 18 movs r1, 0x7 ands r0, r1 lsls r0, 5 strh r0, [r4, 0x30] ldrh r0, [r5, 0x34] strh r0, [r4, 0x32] movs r0, 0xE8 strh r0, [r4, 0x34] mov r0, r8 strh r0, [r4, 0x36] strh r7, [r4, 0x38] strh r6, [r4, 0x3A] _0813ED66: ldrh r1, [r5, 0x3A] movs r2, 0x3A ldrsh r0, [r5, r2] cmp r0, 0x6F bgt _0813ED74 adds r0, r1, 0x4 strh r0, [r5, 0x3A] _0813ED74: ldr r1, _0813EDB8 ldrh r0, [r5, 0x3A] lsls r0, 24 lsrs r0, 23 adds r0, r1 movs r4, 0 ldrsh r0, [r0, r4] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 subs r1, r0 lsls r1, 16 lsrs r1, 16 str r1, [sp] movs r0, 0x11 movs r2, 0 movs r3, 0 bl SetOamMatrix _0813EDA0: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813EDB0: .4byte gSprites _0813EDB4: .4byte gSpriteTemplate_840B1B0 _0813EDB8: .4byte gSineTable thumb_func_end sub_813EC90 thumb_func_start sub_813EDBC sub_813EDBC: @ 813EDBC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0813EDF4 movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _0813EDEE ldr r1, _0813EDF8 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 movs r1, 0 strh r4, [r0, 0x2E] strh r1, [r0, 0x30] movs r1, 0xC strh r1, [r0, 0x32] movs r1, 0x18 strh r1, [r0, 0x34] _0813EDEE: pop {r4} pop {r0} bx r0 .align 2, 0 _0813EDF4: .4byte gSpriteTemplate_840B1C8 _0813EDF8: .4byte gSprites thumb_func_end sub_813EDBC thumb_func_start sub_813EDFC sub_813EDFC: @ 813EDFC push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 beq _0813EE12 adds r4, r5, 0 adds r4, 0x3E cmp r0, 0x1 beq _0813EE4A _0813EE12: adds r4, r5, 0 adds r4, 0x3E ldrb r1, [r4] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r4] ldrb r0, [r5, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r5, 0x1] ldrb r1, [r5, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x24 orrs r0, r1 strb r0, [r5, 0x3] adds r0, r5, 0 movs r1, 0 movs r2, 0x3 movs r3, 0x3 bl CalcCenterToCornerVec movs r0, 0 strh r0, [r5, 0x30] movs r0, 0x1 strh r0, [r5, 0x2E] _0813EE4A: ldrh r0, [r5, 0x3C] adds r0, 0x1 strh r0, [r5, 0x3C] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0813EE62 ldrb r0, [r4] movs r1, 0x4 orrs r0, r1 strb r0, [r4] b _0813EE7A _0813EE62: ldrb r0, [r4] movs r1, 0x5 negs r1, r1 ands r1, r0 strb r1, [r4] ldrh r1, [r5, 0x30] movs r2, 0x30 ldrsh r0, [r5, r2] cmp r0, 0x3F bgt _0813EE7A adds r0, r1, 0x1 strh r0, [r5, 0x30] _0813EE7A: ldr r1, _0813EEB0 ldrh r0, [r5, 0x30] lsls r0, 24 lsrs r0, 23 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 subs r1, r0 lsls r1, 16 lsrs r1, 16 str r1, [sp] movs r0, 0x12 movs r2, 0 movs r3, 0 bl SetOamMatrix add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813EEB0: .4byte gSineTable thumb_func_end sub_813EDFC thumb_func_start sub_813EEB4 sub_813EEB4: @ 813EEB4 push {r4,lr} adds r4, r0, 0 movs r0, 0 bl SetVBlankCallback ldr r2, _0813EED8 ldr r0, _0813EEDC adds r1, r2, r0 movs r0, 0 strh r0, [r1] str r4, [r2] ldr r0, _0813EEE0 bl SetMainCallback2 pop {r4} pop {r0} bx r0 .align 2, 0 _0813EED8: .4byte 0x02000000 _0813EEDC: .4byte 0x00000888 _0813EEE0: .4byte sub_813EEE4 thumb_func_end sub_813EEB4 thumb_func_start sub_813EEE4 sub_813EEE4: @ 813EEE4 push {r4,lr} sub sp, 0x4 movs r0, 0x80 lsls r0, 19 movs r1, 0 strh r1, [r0] adds r0, 0x10 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] bl ResetSpriteData bl FreeAllSpritePalettes ldr r0, _0813EF98 movs r1, 0 bl sub_80FA8EC movs r0, 0 movs r1, 0 bl sub_80FBCF0 movs r0, 0x1 movs r1, 0x1 bl sub_80FBB3C ldr r4, _0813EF9C adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl InitMenuWindow bl MenuZeroFillScreen ldr r1, _0813EFA0 movs r2, 0xF8 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] movs r0, 0x15 movs r1, 0 movs r2, 0x1D movs r3, 0x3 bl MenuDrawTextWindow ldr r0, _0813EFA4 movs r1, 0x16 movs r2, 0x1 movs r3, 0x38 bl sub_8072BD8 movs r0, 0x10 movs r1, 0x10 movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow bl sub_813F0C8 ldr r0, _0813EFA8 bl SetMainCallback2 ldr r0, _0813EFAC bl SetVBlankCallback movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0813EF98: .4byte 0x02000008 _0813EF9C: .4byte gWindowConfig_81E709C _0813EFA0: .4byte REG_BG0CNT _0813EFA4: .4byte gOtherText_Hoenn _0813EFA8: .4byte sub_813EFC4 _0813EFAC: .4byte sub_813EFB0 thumb_func_end sub_813EEE4 thumb_func_start sub_813EFB0 sub_813EFB0: @ 813EFB0 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_813EFB0 thumb_func_start sub_813EFC4 sub_813EFC4: @ 813EFC4 push {lr} bl sub_813EFDC bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_813EFC4 thumb_func_start sub_813EFDC sub_813EFDC: @ 813EFDC push {lr} sub sp, 0x4 ldr r1, _0813EFF8 ldr r2, _0813EFFC adds r0, r1, r2 ldrh r0, [r0] adds r2, r1, 0 cmp r0, 0x4 bhi _0813F0B8 lsls r0, 2 ldr r1, _0813F000 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813EFF8: .4byte 0x02000000 _0813EFFC: .4byte 0x00000888 _0813F000: .4byte _0813F004 .align 2, 0 _0813F004: .4byte _0813F018 .4byte _0813F030 .4byte _0813F04C .4byte _0813F078 .4byte _0813F0A0 _0813F018: movs r1, 0x80 lsls r1, 19 ldr r3, _0813F028 adds r0, r3, 0 strh r0, [r1] ldr r0, _0813F02C adds r1, r2, r0 b _0813F08E .align 2, 0 _0813F028: .4byte 0x00001541 _0813F02C: .4byte 0x00000888 _0813F030: ldr r0, _0813F044 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0813F0B8 ldr r3, _0813F048 adds r1, r2, r3 b _0813F08E .align 2, 0 _0813F044: .4byte gPaletteFade _0813F048: .4byte 0x00000888 _0813F04C: bl sub_80FAB60 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _0813F05E bl sub_813F0C8 b _0813F0B8 _0813F05E: cmp r0, 0x3 blt _0813F0B8 cmp r0, 0x5 bgt _0813F0B8 ldr r1, _0813F070 ldr r0, _0813F074 adds r1, r0 b _0813F08E .align 2, 0 _0813F070: .4byte 0x02000000 _0813F074: .4byte 0x00000888 _0813F078: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0813F098 ldr r2, _0813F09C adds r1, r2 _0813F08E: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _0813F0B8 .align 2, 0 _0813F098: .4byte 0x02000000 _0813F09C: .4byte 0x00000888 _0813F0A0: ldr r0, _0813F0C0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0813F0B8 bl sub_80FAB10 ldr r0, _0813F0C4 ldr r0, [r0] bl SetMainCallback2 _0813F0B8: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0813F0C0: .4byte gPaletteFade _0813F0C4: .4byte 0x02000000 thumb_func_end sub_813EFDC thumb_func_start sub_813F0C8 sub_813F0C8: @ 813F0C8 push {lr} movs r0, 0x11 movs r1, 0x11 movs r2, 0x1C movs r3, 0x12 bl MenuFillWindowRectWithBlankTile ldr r1, _0813F0F0 ldrb r0, [r1, 0x1E] cmp r0, 0 beq _0813F0EA adds r0, r1, 0 adds r0, 0x8 movs r1, 0x11 movs r2, 0x11 bl MenuPrint _0813F0EA: pop {r0} bx r0 .align 2, 0 _0813F0F0: .4byte 0x02000000 thumb_func_end sub_813F0C8 thumb_func_start unref_sub_813F0F4 unref_sub_813F0F4: @ 813F0F4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x10] ldr r0, _0813F2AC ldrb r3, [r0] ldr r0, _0813F2B0 movs r1, 0 strh r1, [r0] ldr r0, _0813F2B4 strh r1, [r0] ldr r1, _0813F2B8 ldr r2, _0813F2BC adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r4, _0813F2C0 adds r0, r4, 0 strh r0, [r1] movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r4, 0x80 lsls r4, 8 adds r1, r4, 0 orrs r0, r1 strh r0, [r2] ldr r1, _0813F2C4 ldr r2, _0813F2C8 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r4, 0x80 lsls r4, 5 adds r0, r4, 0 strh r0, [r1] ldr r2, _0813F2CC ldrb r1, [r2] movs r0, 0x4 negs r0, r0 ands r0, r1 strb r0, [r2] ldrb r1, [r2, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r2, 0x1] ldrb r0, [r2, 0x1] movs r1, 0x20 orrs r0, r1 strb r0, [r2, 0x1] ldrb r1, [r2] movs r0, 0xD negs r0, r0 mov r9, r0 ands r0, r1 movs r1, 0x4 mov r8, r1 mov r4, r8 orrs r0, r4 strb r0, [r2] ldr r0, _0813F2D0 adds r3, r0 ldrb r0, [r3] ldr r1, _0813F2D4 mov r10, r1 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 add r4, r10 ldrb r7, [r4, 0x6] ldrh r6, [r4, 0x38] lsls r6, 24 lsrs r6, 24 ldr r0, _0813F2D8 bl object_new_hidden_with_callback lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x14] ldr r0, _0813F2D8 bl object_new_hidden_with_callback lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x18] ldrb r1, [r4, 0x5] mov r0, r9 ands r0, r1 mov r2, r8 orrs r0, r2 strb r0, [r4, 0x5] lsls r5, r7, 4 adds r5, r7 lsls r5, 2 add r5, r10 ldrb r1, [r5, 0x5] mov r0, r9 ands r0, r1 orrs r0, r2 strb r0, [r5, 0x5] lsls r1, r6, 4 adds r1, r6 lsls r1, 2 add r1, r10 ldrb r2, [r1, 0x5] mov r0, r9 ands r0, r2 mov r2, r8 orrs r0, r2 strb r0, [r1, 0x5] ldr r0, [sp, 0x14] lsls r6, r0, 4 adds r6, r0 lsls r6, 2 mov r1, r10 adds r7, r6, r1 adds r0, r7, 0 adds r1, r4, 0 movs r2, 0x44 bl memcpy ldr r2, [sp, 0x18] lsls r4, r2, 4 adds r4, r2 lsls r4, 2 adds r0, r4, 0 add r0, r10 mov r8, r0 adds r1, r5, 0 movs r2, 0x44 bl memcpy ldrb r1, [r7, 0x1] mov r0, r9 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r7, 0x1] mov r2, r8 ldrb r0, [r2, 0x1] mov r2, r9 ands r2, r0 orrs r2, r1 mov r0, r8 strb r2, [r0, 0x1] movs r1, 0x1C add r10, r1 add r6, r10 ldr r2, _0813F2D8 str r2, [r6] add r4, r10 str r2, [r4] mov r0, sp bl sub_8078914 ldr r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] ldr r2, _0813F2DC add r0, sp, 0xC str r0, [r2] str r1, [r2, 0x4] ldr r0, _0813F2E0 str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _0813F2E4 bl LZDecompressVram ldr r0, _0813F2E8 ldr r1, [sp] bl LZDecompressVram ldr r0, _0813F2EC mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette ldr r1, _0813F2F0 ldrh r0, [r7, 0x20] negs r0, r0 adds r0, 0x20 strh r0, [r1] ldr r1, _0813F2F4 ldrh r0, [r7, 0x22] negs r0, r0 subs r0, 0x20 strh r0, [r1] ldr r1, _0813F2F8 ldr r4, [sp, 0x10] lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0xA0 lsls r1, 2 strh r1, [r0, 0xA] mov r1, sp ldrh r1, [r1, 0x14] strh r1, [r0, 0x8] mov r2, sp ldrh r2, [r2, 0x18] strh r2, [r0, 0xC] ldr r1, _0813F2FC str r1, [r0] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813F2AC: .4byte gUnknown_0202F7C8 _0813F2B0: .4byte gUnknown_030042C4 _0813F2B4: .4byte gUnknown_03004240 _0813F2B8: .4byte REG_WININ _0813F2BC: .4byte 0x00003f3f _0813F2C0: .4byte 0x00003f3d _0813F2C4: .4byte REG_BLDCNT _0813F2C8: .4byte 0x00003f42 _0813F2CC: .4byte REG_BG1CNT _0813F2D0: .4byte gUnknown_03004340 _0813F2D4: .4byte gSprites _0813F2D8: .4byte SpriteCallbackDummy _0813F2DC: .4byte 0x040000d4 _0813F2E0: .4byte 0x85000400 _0813F2E4: .4byte gUnknown_08D2EE48 _0813F2E8: .4byte gUnknown_08D2EDFC _0813F2EC: .4byte gUnknown_08D2E150 _0813F2F0: .4byte gUnknown_030042C0 _0813F2F4: .4byte gUnknown_030041B4 _0813F2F8: .4byte gTasks _0813F2FC: .4byte sub_813F300 thumb_func_end unref_sub_813F0F4 thumb_func_start sub_813F300 sub_813F300: @ 813F300 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 ldr r0, _0813F34C ldrb r0, [r0] mov r9, r0 ldr r1, _0813F350 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r4, r0, r1 ldrh r1, [r4, 0xA] ldrh r0, [r4, 0x22] adds r1, r0 movs r3, 0 strh r1, [r4, 0x22] ldr r2, _0813F354 lsls r0, r1, 16 lsrs r0, 24 ldrh r5, [r2] adds r0, r5 strh r0, [r2] movs r0, 0xFF ands r1, r0 strh r1, [r4, 0x22] movs r1, 0x26 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _0813F394 cmp r0, 0x1 bgt _0813F358 cmp r0, 0 beq _0813F35E b _0813F4B2 .align 2, 0 _0813F34C: .4byte gUnknown_0202F7C8 _0813F350: .4byte gTasks _0813F354: .4byte gUnknown_030041B4 _0813F358: cmp r0, 0x2 beq _0813F3AC b _0813F4B2 _0813F35E: ldrh r0, [r4, 0x1E] adds r1, r0, 0x1 strh r1, [r4, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bgt _0813F36E b _0813F4B2 _0813F36E: strh r3, [r4, 0x1E] ldrh r1, [r4, 0x20] adds r1, 0x1 strh r1, [r4, 0x20] ldr r2, _0813F390 movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r2, 0x20 ldrsh r0, [r4, r2] cmp r0, 0x8 beq _0813F38C b _0813F4B2 _0813F38C: b _0813F3A4 .align 2, 0 _0813F390: .4byte REG_BLDALPHA _0813F394: ldrh r0, [r4, 0x1C] adds r0, 0x1 strh r0, [r4, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x1E beq _0813F3A4 b _0813F4B2 _0813F3A4: ldrh r0, [r4, 0x26] adds r0, 0x1 strh r0, [r4, 0x26] b _0813F4B2 _0813F3AC: ldrh r0, [r4, 0x1E] adds r1, r0, 0x1 strh r1, [r4, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _0813F4B2 strh r3, [r4, 0x1E] ldrh r1, [r4, 0x20] subs r1, 0x1 strh r1, [r4, 0x20] ldr r6, _0813F4C0 movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r6] movs r3, 0x20 ldrsh r5, [r4, r3] cmp r5, 0 bne _0813F4B2 movs r0, 0 bl sub_8076464 ldr r0, _0813F4C4 strh r5, [r0] ldr r0, _0813F4C8 strh r5, [r0] ldr r0, _0813F4CC ldr r2, _0813F4D0 adds r1, r2, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _0813F406 ldr r2, _0813F4D4 ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _0813F406: movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 eors r0, r1 strh r0, [r2] ldr r0, _0813F4D8 strh r5, [r0] strh r5, [r6] movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0813F4DC mov r8, r1 add r0, r8 bl DestroySprite movs r2, 0xC ldrsh r1, [r4, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 bl DestroySprite mov r0, sp bl sub_8078914 ldr r2, [sp, 0x4] str r5, [sp, 0xC] ldr r1, _0813F4E0 add r0, sp, 0xC str r0, [r1] str r2, [r1, 0x4] ldr r0, _0813F4E4 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r2, _0813F4D4 ldrb r1, [r2, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r1 strb r0, [r2, 0x1] ldr r0, _0813F4E8 add r0, r9 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r8 ldrb r6, [r1, 0x6] ldrh r4, [r1, 0x38] lsls r4, 24 lsrs r4, 24 ldrb r3, [r1, 0x5] movs r2, 0xD negs r2, r2 adds r0, r2, 0 ands r0, r3 movs r5, 0x4 orrs r0, r5 strb r0, [r1, 0x5] lsls r1, r6, 4 adds r1, r6 lsls r1, 2 add r1, r8 ldrb r3, [r1, 0x5] adds r0, r2, 0 ands r0, r3 orrs r0, r5 strb r0, [r1, 0x5] lsls r0, r4, 4 adds r0, r4 lsls r0, 2 add r0, r8 ldrb r1, [r0, 0x5] ands r2, r1 orrs r2, r5 strb r2, [r0, 0x5] adds r0, r7, 0 bl move_anim_task_del _0813F4B2: add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813F4C0: .4byte REG_BLDALPHA _0813F4C4: .4byte gUnknown_030042C4 _0813F4C8: .4byte gUnknown_03004240 _0813F4CC: .4byte REG_WININ _0813F4D0: .4byte 0x00003f3f _0813F4D4: .4byte REG_BG1CNT _0813F4D8: .4byte REG_BLDCNT _0813F4DC: .4byte gSprites _0813F4E0: .4byte 0x040000d4 _0813F4E4: .4byte 0x85000200 _0813F4E8: .4byte gUnknown_03004340 thumb_func_end sub_813F300 thumb_func_start sub_813F4EC sub_813F4EC: @ 813F4EC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r0, 24 lsrs r0, 24 str r0, [sp] ldr r1, _0813F5D0 ldr r0, _0813F5D4 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] ldr r7, _0813F5D8 lsls r6, r0, 4 adds r6, r0 lsls r6, 2 adds r6, r7 ldrb r0, [r6, 0x6] str r0, [sp, 0x4] ldrh r4, [r6, 0x38] lsls r4, 24 lsrs r4, 24 ldr r0, _0813F5DC bl AllocSpritePalette mov r8, r0 mov r1, r8 lsls r1, 24 lsrs r1, 24 mov r8, r1 ldr r0, _0813F5E0 bl AllocSpritePalette mov r9, r0 mov r2, r9 lsls r2, 24 lsrs r2, 24 mov r9, r2 ldrb r0, [r6, 0x5] lsrs r0, 4 lsls r0, 4 movs r1, 0x80 lsls r1, 1 adds r3, r1, 0 orrs r0, r3 lsls r5, r4, 4 adds r5, r4 lsls r5, 2 adds r5, r7 ldrb r4, [r5, 0x5] lsrs r4, 4 lsls r4, 4 orrs r4, r3 lsls r0, 1 ldr r2, _0813F5E4 mov r10, r2 add r0, r10 mov r1, r8 lsls r1, 4 mov r8, r1 adds r1, r3, r1 movs r2, 0x20 str r3, [sp, 0x8] bl LoadPalette lsls r4, 1 add r4, r10 mov r2, r9 lsls r2, 4 mov r9, r2 ldr r3, [sp, 0x8] add r3, r9 adds r0, r4, 0 adds r1, r3, 0 movs r2, 0x20 bl LoadPalette ldrb r1, [r6, 0x5] movs r2, 0xF adds r0, r2, 0 ands r0, r1 mov r3, r8 orrs r0, r3 strb r0, [r6, 0x5] ldr r0, [sp, 0x4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 ldrb r3, [r1, 0x5] adds r0, r2, 0 ands r0, r3 mov r3, r8 orrs r0, r3 strb r0, [r1, 0x5] ldrb r0, [r5, 0x5] ands r2, r0 mov r0, r9 orrs r2, r0 strb r2, [r5, 0x5] ldr r0, [sp] bl move_anim_task_del add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813F5D0: .4byte gUnknown_03004340 _0813F5D4: .4byte gUnknown_0202F7C8 _0813F5D8: .4byte gSprites _0813F5DC: .4byte 0x0000d709 _0813F5E0: .4byte 0x0000d70a _0813F5E4: .4byte gPlttBufferUnfaded thumb_func_end sub_813F4EC thumb_func_start sub_813F5E8 sub_813F5E8: @ 813F5E8 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} mov r8, r0 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r1, _0813F684 ldr r0, _0813F688 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] ldr r1, _0813F68C mov r9, r1 lsls r5, r0, 4 adds r5, r0 lsls r5, 2 add r5, r9 ldrb r0, [r5, 0x6] mov r10, r0 ldrh r6, [r5, 0x38] lsls r6, 24 lsrs r6, 24 ldr r0, _0813F690 bl FreeSpritePaletteByTag ldr r0, _0813F694 bl FreeSpritePaletteByTag ldr r0, _0813F698 bl IndexOfSpritePaletteTag adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0813F69C bl IndexOfSpritePaletteTag lsls r0, 24 lsls r4, 4 ldrb r2, [r5, 0x5] movs r3, 0xF adds r1, r3, 0 ands r1, r2 orrs r1, r4 strb r1, [r5, 0x5] mov r1, r10 lsls r2, r1, 4 add r2, r10 lsls r2, 2 add r2, r9 ldrb r5, [r2, 0x5] adds r1, r3, 0 ands r1, r5 orrs r1, r4 strb r1, [r2, 0x5] lsls r1, r6, 4 adds r1, r6 lsls r1, 2 add r1, r9 lsrs r0, 20 ldrb r2, [r1, 0x5] ands r3, r2 orrs r3, r0 strb r3, [r1, 0x5] mov r0, r8 bl move_anim_task_del pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813F684: .4byte gUnknown_03004340 _0813F688: .4byte gUnknown_0202F7C8 _0813F68C: .4byte gSprites _0813F690: .4byte 0x0000d709 _0813F694: .4byte 0x0000d70a _0813F698: .4byte 0x0000d6ff _0813F69C: .4byte 0x0000d704 thumb_func_end sub_813F5E8 thumb_func_start sub_813F6A0 sub_813F6A0: @ 813F6A0 lsls r0, 24 lsrs r0, 24 ldr r2, _0813F6C0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _0813F6C4 ldrh r0, [r2] strh r0, [r1, 0x1C] ldrh r0, [r2, 0x2] strh r0, [r1, 0x1E] ldr r0, _0813F6C8 str r0, [r1] bx lr .align 2, 0 _0813F6C0: .4byte gTasks _0813F6C4: .4byte gUnknown_03004B00 _0813F6C8: .4byte sub_813F6CC thumb_func_end sub_813F6A0 thumb_func_start sub_813F6CC sub_813F6CC: @ 813F6CC push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0813F718 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x8] adds r0, 0x1 movs r6, 0 adds r1, r0, 0x1 strh r1, [r4, 0x8] lsls r0, 16 asrs r0, 16 movs r2, 0x1E ldrsh r1, [r4, r2] cmp r0, r1 blt _0813F78C strh r6, [r4, 0x8] ldr r0, _0813F71C bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r2, r0, 24 movs r3, 0x1C ldrsh r0, [r4, r3] movs r1, 0x2 cmp r0, 0 bne _0813F70A movs r1, 0x6 _0813F70A: movs r3, 0xA ldrsh r0, [r4, r3] cmp r0, 0 beq _0813F720 cmp r0, 0x1 beq _0813F75C b _0813F78C .align 2, 0 _0813F718: .4byte gTasks _0813F71C: .4byte 0x0000d709 _0813F720: ldrh r0, [r4, 0xC] adds r0, 0x2 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 ble _0813F732 movs r0, 0x10 strh r0, [r4, 0xC] _0813F732: lsls r0, r2, 4 movs r2, 0x80 lsls r2, 1 adds r0, r2 orrs r0, r1 ldrb r2, [r4, 0xC] ldr r3, _0813F758 movs r1, 0x1 bl BlendPalette movs r3, 0xC ldrsh r0, [r4, r3] cmp r0, 0x10 bne _0813F78C ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] b _0813F78C .align 2, 0 _0813F758: .4byte 0x00007f74 _0813F75C: ldrh r0, [r4, 0xC] subs r0, 0x2 strh r0, [r4, 0xC] lsls r0, 16 cmp r0, 0 bge _0813F76A strh r6, [r4, 0xC] _0813F76A: lsls r0, r2, 4 movs r2, 0x80 lsls r2, 1 adds r0, r2 orrs r0, r1 ldrb r2, [r4, 0xC] ldr r3, _0813F794 movs r1, 0x1 bl BlendPalette movs r3, 0xC ldrsh r0, [r4, r3] cmp r0, 0 bne _0813F78C adds r0, r5, 0 bl move_anim_task_del _0813F78C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813F794: .4byte 0x00007f74 thumb_func_end sub_813F6CC thumb_func_start sub_813F798 sub_813F798: @ 813F798 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _0813F7C4 ldr r0, _0813F7C8 ldrb r0, [r0] adds r0, r1 ldrb r5, [r0] ldr r1, _0813F7CC lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _0813F7E6 cmp r0, 0x1 bgt _0813F7D0 cmp r0, 0 beq _0813F7D6 b _0813F838 .align 2, 0 _0813F7C4: .4byte gUnknown_02024BE0 _0813F7C8: .4byte gUnknown_0202F7C8 _0813F7CC: .4byte gTasks _0813F7D0: cmp r0, 0x2 beq _0813F818 b _0813F838 _0813F7D6: adds r0, r5, 0 movs r1, 0 bl sub_8078E70 movs r0, 0x80 lsls r0, 1 strh r0, [r4, 0x1C] b _0813F80A _0813F7E6: ldrh r0, [r4, 0x1C] adds r0, 0x30 strh r0, [r4, 0x1C] movs r0, 0x1C ldrsh r2, [r4, r0] adds r0, r5, 0 adds r1, r2, 0 movs r3, 0 bl obj_id_set_rotscale adds r0, r5, 0 bl sub_8079A64 movs r0, 0x1C ldrsh r1, [r4, r0] ldr r0, _0813F814 cmp r1, r0 ble _0813F838 _0813F80A: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0813F838 .align 2, 0 _0813F814: .4byte 0x000002cf _0813F818: adds r0, r5, 0 bl sub_8078F40 ldr r1, _0813F840 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r0, r1 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] adds r0, r6, 0 bl move_anim_task_del _0813F838: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813F840: .4byte gSprites thumb_func_end sub_813F798 thumb_func_start sub_813F844 sub_813F844: @ 813F844 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0813F87C ldr r4, _0813F880 ldrb r0, [r4] adds r1, r0, r1 ldrb r1, [r1] mov r9, r1 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0813F88C ldr r1, _0813F884 ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0813F888 b _0813F89C .align 2, 0 _0813F87C: .4byte gUnknown_02024BE0 _0813F880: .4byte gUnknown_0202F7C8 _0813F884: .4byte gUnknown_02024A6A _0813F888: .4byte gPlayerParty _0813F88C: ldr r1, _0813F8CC ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0813F8D0 _0813F89C: adds r0, r1 movs r1, 0x26 bl GetMonData lsls r0, 16 lsrs r0, 16 bl ball_number_to_ball_processing_index lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r2, _0813F8D4 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r6, r0, r2 movs r0, 0x8 ldrsh r7, [r6, r0] cmp r7, 0 beq _0813F8D8 cmp r7, 0x1 beq _0813F958 b _0813F982 .align 2, 0 _0813F8CC: .4byte gUnknown_02024A6A _0813F8D0: .4byte gEnemyParty _0813F8D4: .4byte gTasks _0813F8D8: ldr r5, _0813F950 ldrb r0, [r5] movs r1, 0 bl sub_8077ABC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r5] movs r1, 0x1 bl sub_8077ABC adds r1, r0, 0 lsls r1, 24 ldr r2, _0813F954 mov r3, r9 lsls r0, r3, 4 add r0, r9 lsls r0, 2 adds r0, r2 ldrb r2, [r0, 0x5] lsls r2, 28 lsrs r2, 30 adds r0, 0x43 ldrb r3, [r0] movs r0, 0x80 lsls r0, 22 adds r1, r0 lsrs r1, 24 mov r0, r8 str r0, [sp] adds r0, r4, 0 bl sub_814086C lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x1C] str r7, [sp] str r7, [sp, 0x4] str r7, [sp, 0x8] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80791A8 adds r2, r0, 0 ldrb r1, [r5] movs r0, 0 mov r3, r8 bl sub_8141314 lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x1E] ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] b _0813F982 .align 2, 0 _0813F950: .4byte gUnknown_0202F7C8 _0813F954: .4byte gSprites _0813F958: movs r1, 0x1C ldrsh r0, [r6, r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r0, [r1, 0x4] cmp r0, 0 bne _0813F982 movs r3, 0x1E ldrsh r0, [r6, r3] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r0, [r1, 0x4] cmp r0, 0 bne _0813F982 adds r0, r5, 0 bl move_anim_task_del _0813F982: add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_813F844 thumb_func_start sub_813F990 sub_813F990: @ 813F990 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0813F9B4 ldrh r0, [r0] bl ball_number_to_ball_processing_index lsls r0, 24 lsrs r0, 24 bl sub_80478DC adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _0813F9B4: .4byte gUnknown_02024C04 thumb_func_end sub_813F990 thumb_func_start sub_813F9B8 sub_813F9B8: @ 813F9B8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0813F9DC ldrh r0, [r0] bl ball_number_to_ball_processing_index lsls r0, 24 lsrs r0, 24 bl sub_804794C adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _0813F9DC: .4byte gUnknown_02024C04 thumb_func_end sub_813F9B8 thumb_func_start sub_813F9E0 sub_813F9E0: @ 813F9E0 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0813F9F4 ldrb r0, [r0, 0x8] cmp r0, 0x5 bne _0813FA00 ldr r1, _0813F9F8 ldr r0, _0813F9FC b _0813FA04 .align 2, 0 _0813F9F4: .4byte 0x02017840 _0813F9F8: .4byte gUnknown_03004B00 _0813F9FC: .4byte 0x0000ffff _0813FA00: ldr r1, _0813FA10 movs r0, 0 _0813FA04: strh r0, [r1, 0xE] adds r0, r2, 0 bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _0813FA10: .4byte gUnknown_03004B00 thumb_func_end sub_813F9E0 thumb_func_start ball_number_to_ball_processing_index ball_number_to_ball_processing_index: @ 813FA14 push {lr} lsls r0, 16 lsrs r0, 16 subs r0, 0x1 cmp r0, 0xB bhi _0813FA8C lsls r0, 2 ldr r1, _0813FA2C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813FA2C: .4byte _0813FA30 .align 2, 0 _0813FA30: .4byte _0813FA60 .4byte _0813FA64 .4byte _0813FA68 .4byte _0813FA8C .4byte _0813FA6C .4byte _0813FA70 .4byte _0813FA74 .4byte _0813FA78 .4byte _0813FA7C .4byte _0813FA80 .4byte _0813FA84 .4byte _0813FA88 _0813FA60: movs r0, 0x4 b _0813FA8E _0813FA64: movs r0, 0x3 b _0813FA8E _0813FA68: movs r0, 0x1 b _0813FA8E _0813FA6C: movs r0, 0x2 b _0813FA8E _0813FA70: movs r0, 0x5 b _0813FA8E _0813FA74: movs r0, 0x6 b _0813FA8E _0813FA78: movs r0, 0x7 b _0813FA8E _0813FA7C: movs r0, 0x8 b _0813FA8E _0813FA80: movs r0, 0x9 b _0813FA8E _0813FA84: movs r0, 0xA b _0813FA8E _0813FA88: movs r0, 0xB b _0813FA8E _0813FA8C: movs r0, 0 _0813FA8E: pop {r1} bx r1 thumb_func_end ball_number_to_ball_processing_index thumb_func_start sub_813FA94 sub_813FA94: @ 813FA94 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} mov r10, r0 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r0, _0813FB58 ldrh r0, [r0] bl ball_number_to_ball_processing_index adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 ldr r1, _0813FB5C adds r0, r1 movs r1, 0x20 movs r2, 0x50 movs r3, 0x1D bl CreateSprite adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r1, _0813FB60 mov r9, r1 lsls r4, r5, 4 adds r4, r5 lsls r4, 2 adds r6, r4, r1 movs r0, 0x22 strh r0, [r6, 0x2E] ldr r2, _0813FB64 mov r8, r2 ldrb r0, [r2] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x30] mov r1, r8 ldrb r0, [r1] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 subs r0, 0x10 strh r0, [r6, 0x32] mov r0, r9 adds r0, 0x1C adds r4, r0 ldr r0, _0813FB68 str r0, [r4] ldr r3, _0813FB6C ldr r1, _0813FB70 mov r2, r8 ldrb r0, [r2] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r9 adds r0, 0x3E ldrb r1, [r0] lsls r1, 29 lsrs r1, 31 lsls r1, 1 ldrb r2, [r3, 0x9] movs r0, 0x3 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x9] ldr r1, _0813FB74 mov r2, r10 lsls r0, r2, 2 add r0, r10 lsls r0, 3 adds r0, r1 strh r5, [r0, 0x8] ldr r1, _0813FB78 str r1, [r0] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813FB58: .4byte gUnknown_02024C04 _0813FB5C: .4byte gSpriteTemplate_820AAB4 _0813FB60: .4byte gSprites _0813FB64: .4byte gUnknown_0202F7C9 _0813FB68: .4byte sub_813FD90 _0813FB6C: .4byte 0x02017840 _0813FB70: .4byte gUnknown_02024BE0 _0813FB74: .4byte gTasks _0813FB78: .4byte sub_813FB7C thumb_func_end sub_813FA94 thumb_func_start sub_813FB7C sub_813FB7C: @ 813FB7C push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r1, _0813FBAC lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 ldrb r1, [r0, 0x8] ldr r2, _0813FBB0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x2E] ldr r0, _0813FBB4 cmp r1, r0 bne _0813FBA6 adds r0, r3, 0 bl move_anim_task_del _0813FBA6: pop {r0} bx r0 .align 2, 0 _0813FBAC: .4byte gTasks _0813FBB0: .4byte gSprites _0813FBB4: .4byte 0x0000ffff thumb_func_end sub_813FB7C thumb_func_start sub_813FBB8 sub_813FBB8: @ 813FBB8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r7, r0, 24 ldr r0, _0813FBD8 ldrh r1, [r0] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _0813FBDC movs r6, 0x20 movs r5, 0xB b _0813FBE0 .align 2, 0 _0813FBD8: .4byte gUnknown_020239F8 _0813FBDC: movs r6, 0x17 movs r5, 0x5 _0813FBE0: ldr r0, _0813FC9C ldrh r0, [r0] bl ball_number_to_ball_processing_index adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 bl sub_8079E90 adds r3, r0, 0 adds r3, 0x1 lsls r3, 24 lsrs r3, 24 lsls r0, r4, 1 adds r0, r4 lsls r0, 3 ldr r1, _0813FCA0 adds r0, r1 adds r1, r6, 0 adds r1, 0x20 movs r2, 0x50 orrs r5, r2 adds r2, r5, 0 bl CreateSprite adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, _0813FCA4 mov r9, r0 lsls r4, r5, 4 adds r4, r5 lsls r4, 2 adds r6, r4, r0 movs r0, 0x22 strh r0, [r6, 0x2E] ldr r1, _0813FCA8 mov r8, r1 ldrb r0, [r1] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x30] mov r1, r8 ldrb r0, [r1] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 subs r0, 0x10 strh r0, [r6, 0x32] mov r0, r9 adds r0, 0x1C adds r4, r0 ldr r0, _0813FCAC str r0, [r4] movs r0, 0 bl battle_get_side_with_given_state ldr r1, _0813FCB0 lsls r0, 24 lsrs r0, 24 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r9 movs r1, 0x1 bl StartSpriteAnim ldr r1, _0813FCB4 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 strh r5, [r0, 0x8] ldr r1, _0813FCB8 str r1, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813FC9C: .4byte gUnknown_02024C04 _0813FCA0: .4byte gSpriteTemplate_820AAB4 _0813FCA4: .4byte gSprites _0813FCA8: .4byte gUnknown_0202F7C9 _0813FCAC: .4byte SpriteCallbackDummy _0813FCB0: .4byte gUnknown_02024BE0 _0813FCB4: .4byte gTasks _0813FCB8: .4byte sub_813FCBC thumb_func_end sub_813FBB8 thumb_func_start sub_813FCBC sub_813FCBC: @ 813FCBC push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r6, _0813FD1C movs r0, 0 bl battle_get_side_with_given_state ldr r1, _0813FD20 lsls r0, 24 lsrs r0, 24 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0x1 bne _0813FD16 movs r0, 0x3D movs r1, 0 bl PlaySE12WithPanning ldr r0, _0813FD24 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r6, 0 adds r1, 0x1C adds r0, r1 ldr r1, _0813FD28 str r1, [r0] ldr r0, _0813FD2C movs r1, 0xA bl CreateTask ldr r0, _0813FD30 str r0, [r4] _0813FD16: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813FD1C: .4byte gSprites _0813FD20: .4byte gUnknown_02024BE0 _0813FD24: .4byte gTasks _0813FD28: .4byte sub_813FD90 _0813FD2C: .4byte sub_813FD34 _0813FD30: .4byte sub_813FB7C thumb_func_end sub_813FCBC thumb_func_start sub_813FD34 sub_813FD34: @ 813FD34 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r6, _0813FD88 movs r0, 0 bl battle_get_side_with_given_state ldr r4, _0813FD8C lsls r0, 24 lsrs r0, 24 adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3F ldrb r0, [r0] lsls r0, 27 cmp r0, 0 bge _0813FD80 movs r0, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0 bl StartSpriteAnim adds r0, r5, 0 bl DestroyTask _0813FD80: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813FD88: .4byte gSprites _0813FD8C: .4byte gUnknown_02024BE0 thumb_func_end sub_813FD34 thumb_func_start sub_813FD90 sub_813FD90: @ 813FD90 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x30] ldrh r2, [r4, 0x32] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] strh r1, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] strh r2, [r4, 0x36] ldr r0, _0813FDB8 strh r0, [r4, 0x38] adds r0, r4, 0 bl sub_80786EC ldr r0, _0813FDBC str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _0813FDB8: .4byte 0x0000ffd8 _0813FDBC: .4byte sub_813FDC0 thumb_func_end sub_813FD90 thumb_func_start sub_813FDC0 sub_813FDC0: @ 813FDC0 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _0813FE5A ldr r0, _0813FDE0 ldrb r0, [r0, 0x8] cmp r0, 0x5 bne _0813FDE8 ldr r0, _0813FDE4 str r0, [r4, 0x1C] b _0813FE5A .align 2, 0 _0813FDE0: .4byte 0x02017840 _0813FDE4: .4byte sub_81407B8 _0813FDE8: adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 movs r1, 0 strh r0, [r4, 0x20] ldrh r0, [r4, 0x26] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] strh r1, [r4, 0x24] strh r1, [r4, 0x26] adds r1, r4, 0 adds r1, 0x2E movs r2, 0 adds r0, r4, 0 adds r0, 0x3C _0813FE10: strh r2, [r0] subs r0, 0x2 cmp r0, r1 bge _0813FE10 movs r0, 0 strh r0, [r4, 0x38] ldr r0, _0813FE64 str r0, [r4, 0x1C] ldr r0, _0813FE68 ldrh r0, [r0] bl ball_number_to_ball_processing_index lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xB bgt _0813FE5A cmp r5, 0 blt _0813FE5A ldrh r0, [r4, 0x20] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x22] subs r1, 0x5 lsls r1, 24 lsrs r1, 24 str r5, [sp] movs r2, 0x1 movs r3, 0x1C bl sub_814086C ldr r0, _0813FE6C ldrb r1, [r0] movs r0, 0 movs r2, 0xE adds r3, r5, 0 bl sub_8141314 _0813FE5A: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813FE64: .4byte sub_813FE70 _0813FE68: .4byte gUnknown_02024C04 _0813FE6C: .4byte gUnknown_0202F7C9 thumb_func_end sub_813FDC0 thumb_func_start sub_813FE70 sub_813FE70: @ 813FE70 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _0813FEAC ldr r0, _0813FEB4 movs r1, 0x32 bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x38] ldr r0, _0813FEB8 str r0, [r4, 0x1C] ldr r2, _0813FEBC ldr r1, _0813FEC0 ldr r0, _0813FEC4 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0 strh r1, [r0, 0x30] _0813FEAC: pop {r4} pop {r0} bx r0 .align 2, 0 _0813FEB4: .4byte TaskDummy _0813FEB8: .4byte sub_813FEC8 _0813FEBC: .4byte gSprites _0813FEC0: .4byte gUnknown_02024BE0 _0813FEC4: .4byte gUnknown_0202F7C9 thumb_func_end sub_813FE70 thumb_func_start sub_813FEC8 sub_813FEC8: @ 813FEC8 push {r4-r7,lr} adds r7, r0, 0 ldr r1, _0813FF0C ldr r0, _0813FF10 ldrb r0, [r0] adds r0, r1 ldrb r4, [r0] ldrh r0, [r7, 0x38] lsls r0, 24 lsrs r6, r0, 24 ldr r1, _0813FF14 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r5, r0, r1 ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0xB bne _0813FEFA movs r0, 0x3C bl PlaySE _0813FEFA: movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x1 beq _0813FF70 cmp r0, 0x1 bgt _0813FF18 cmp r0, 0 beq _0813FF1E b _0813FFDC .align 2, 0 _0813FF0C: .4byte gUnknown_02024BE0 _0813FF10: .4byte gUnknown_0202F7C9 _0813FF14: .4byte gTasks _0813FF18: cmp r0, 0x2 beq _0813FFB4 b _0813FFDC _0813FF1E: adds r0, r4, 0 movs r1, 0 bl sub_8078E70 movs r0, 0x80 lsls r0, 1 strh r0, [r5, 0x1C] ldr r1, _0813FF60 movs r0, 0x1C str r0, [r1] ldr r2, _0813FF64 ldr r1, _0813FF68 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 ldrh r1, [r0, 0x26] ldrh r0, [r0, 0x22] adds r1, r0 ldrh r0, [r7, 0x26] ldrh r7, [r7, 0x22] adds r0, r7 subs r1, r0 strh r1, [r2] ldr r4, _0813FF6C ldrh r0, [r2] lsls r0, 8 movs r1, 0x1C bl __udivsi3 strh r0, [r4] strh r0, [r5, 0xC] b _0813FFCE .align 2, 0 _0813FF60: .4byte gUnknown_03005F0C _0813FF64: .4byte gUnknown_03005F14 _0813FF68: .4byte gSprites _0813FF6C: .4byte gUnknown_03005F10 _0813FF70: ldrh r0, [r5, 0x1C] adds r0, 0x20 strh r0, [r5, 0x1C] movs r0, 0x1C ldrsh r2, [r5, r0] adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 bl obj_id_set_rotscale ldrh r0, [r5, 0xC] ldrh r1, [r5, 0xE] adds r0, r1 strh r0, [r5, 0xE] ldr r0, _0813FFAC lsls r1, r4, 4 adds r1, r4 lsls r1, 2 adds r1, r0 movs r2, 0xE ldrsh r0, [r5, r2] negs r0, r0 asrs r0, 8 strh r0, [r1, 0x26] movs r0, 0x1C ldrsh r1, [r5, r0] ldr r0, _0813FFB0 cmp r1, r0 ble _08140004 b _0813FFCE .align 2, 0 _0813FFAC: .4byte gSprites _0813FFB0: .4byte 0x0000047f _0813FFB4: adds r0, r4, 0 bl sub_8078F40 ldr r1, _0813FFD8 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _0813FFCE: ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] b _08140004 .align 2, 0 _0813FFD8: .4byte gSprites _0813FFDC: ldr r0, _0814000C lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 movs r2, 0xA ldrsh r0, [r1, r2] cmp r0, 0xA ble _08140004 adds r0, r6, 0 bl DestroyTask adds r0, r7, 0 movs r1, 0x2 bl StartSpriteAnim movs r0, 0 strh r0, [r7, 0x38] ldr r0, _08140010 str r0, [r7, 0x1C] _08140004: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0814000C: .4byte gTasks _08140010: .4byte sub_8140014 thumb_func_end sub_813FEC8 thumb_func_start sub_8140014 sub_8140014: @ 8140014 push {r4,lr} adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0814004E movs r1, 0 strh r1, [r4, 0x34] movs r0, 0x20 strh r0, [r4, 0x36] strh r1, [r4, 0x38] movs r0, 0 movs r1, 0x20 bl Cos ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] movs r0, 0x36 ldrsh r1, [r4, r0] movs r0, 0 bl Cos negs r0, r0 strh r0, [r4, 0x26] ldr r0, _08140054 str r0, [r4, 0x1C] _0814004E: pop {r4} pop {r0} bx r0 .align 2, 0 _08140054: .4byte sub_8140058 thumb_func_end sub_8140014 thumb_func_start sub_8140058 sub_8140058: @ 8140058 push {r4,r5,lr} adds r4, r0, 0 movs r5, 0 ldrh r0, [r4, 0x34] movs r1, 0xFF ands r1, r0 cmp r1, 0 beq _0814006E cmp r1, 0x1 beq _081400E2 b _0814010E _0814006E: movs r1, 0x38 ldrsh r0, [r4, r1] movs r2, 0x36 ldrsh r1, [r4, r2] bl Cos negs r0, r0 strh r0, [r4, 0x26] ldrh r1, [r4, 0x38] adds r1, 0x4 ldrh r2, [r4, 0x34] lsls r0, r2, 16 asrs r0, 24 adds r1, r0 strh r1, [r4, 0x38] lsls r1, 16 asrs r1, 16 cmp r1, 0x3F ble _0814010E ldrh r0, [r4, 0x36] subs r0, 0xA strh r0, [r4, 0x36] ldr r1, _081400B8 adds r0, r2, r1 strh r0, [r4, 0x34] lsls r0, 16 asrs r0, 24 cmp r0, 0x4 bne _081400AA movs r5, 0x1 _081400AA: cmp r0, 0x2 beq _081400CA cmp r0, 0x2 bgt _081400BC cmp r0, 0x1 beq _081400C2 b _081400DA .align 2, 0 _081400B8: .4byte 0x00000101 _081400BC: cmp r0, 0x3 beq _081400D2 b _081400DA _081400C2: movs r0, 0x38 bl PlaySE b _0814010E _081400CA: movs r0, 0x39 bl PlaySE b _0814010E _081400D2: movs r0, 0x3A bl PlaySE b _0814010E _081400DA: movs r0, 0x3B bl PlaySE b _0814010E _081400E2: movs r2, 0x38 ldrsh r0, [r4, r2] movs r2, 0x36 ldrsh r1, [r4, r2] bl Cos negs r0, r0 strh r0, [r4, 0x26] ldrh r1, [r4, 0x38] subs r1, 0x4 ldrh r2, [r4, 0x34] lsls r0, r2, 16 asrs r0, 24 subs r1, r0 strh r1, [r4, 0x38] lsls r1, 16 cmp r1, 0 bgt _0814010E strh r5, [r4, 0x38] ldr r0, _08140138 ands r0, r2 strh r0, [r4, 0x34] _0814010E: cmp r5, 0 beq _0814014E movs r5, 0 strh r5, [r4, 0x34] movs r0, 0x40 movs r1, 0x20 bl Cos ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] strh r5, [r4, 0x26] ldr r0, _0814013C ldrb r0, [r0, 0x8] cmp r0, 0 bne _08140144 strh r5, [r4, 0x38] ldr r0, _08140140 str r0, [r4, 0x1C] b _0814014E .align 2, 0 _08140138: .4byte 0xffffff00 _0814013C: .4byte 0x02017840 _08140140: .4byte sub_8140410 _08140144: ldr r0, _08140154 str r0, [r4, 0x1C] movs r0, 0x1 strh r0, [r4, 0x36] strh r5, [r4, 0x38] _0814014E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08140154: .4byte sub_8140158 thumb_func_end sub_8140058 thumb_func_start sub_8140158 sub_8140158: @ 8140158 push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x34] adds r0, 0x1 movs r5, 0 strh r0, [r4, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x1F bne _08140190 strh r5, [r4, 0x34] adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim ldr r0, _08140198 strh r5, [r0, 0xC] ldr r0, _0814019C str r0, [r4, 0x1C] movs r0, 0x17 bl PlaySE _08140190: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08140198: .4byte 0x02017840 _0814019C: .4byte sub_81401A0 thumb_func_end sub_8140158 thumb_func_start sub_81401A0 sub_81401A0: @ 81401A0 push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x34] movs r1, 0xFF ands r1, r0 cmp r1, 0x6 bls _081401B0 b _081403C4 _081401B0: lsls r0, r1, 2 ldr r1, _081401BC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081401BC: .4byte _081401C0 .align 2, 0 _081401C0: .4byte _081401DC .4byte _08140226 .4byte _0814026C .4byte _081402C0 .4byte _08140310 .4byte _08140368 .4byte _081403C4 _081401DC: ldr r0, _081401F8 ldrh r2, [r0, 0xC] movs r3, 0xC ldrsh r1, [r0, r3] adds r5, r0, 0 cmp r1, 0xFF ble _081401FC ldrh r0, [r4, 0x36] ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] movs r0, 0xFF ands r0, r2 b _08140200 .align 2, 0 _081401F8: .4byte 0x02017840 _081401FC: adds r0, r2, 0 adds r0, 0xB0 _08140200: strh r0, [r5, 0xC] ldrh r0, [r4, 0x38] adds r0, 0x1 movs r3, 0 strh r0, [r4, 0x38] adds r2, r4, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] ldrh r0, [r4, 0x38] adds r0, 0x7 lsls r0, 16 lsrs r0, 16 cmp r0, 0xE bhi _08140224 b _0814040A _08140224: b _081402B4 _08140226: ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _081402CC movs r0, 0 strh r0, [r4, 0x38] ldrh r0, [r4, 0x36] negs r0, r0 strh r0, [r4, 0x36] ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] adds r2, r4, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] movs r3, 0x36 ldrsh r0, [r4, r3] cmp r0, 0 bge _08140262 adds r0, r4, 0 movs r1, 0x2 bl ChangeSpriteAffineAnim b _0814040A _08140262: adds r0, r4, 0 movs r1, 0x1 bl ChangeSpriteAffineAnim b _0814040A _0814026C: ldr r0, _08140288 ldrh r2, [r0, 0xC] movs r3, 0xC ldrsh r1, [r0, r3] adds r5, r0, 0 cmp r1, 0xFF ble _0814028C ldrh r0, [r4, 0x36] ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] movs r0, 0xFF ands r0, r2 b _08140290 .align 2, 0 _08140288: .4byte 0x02017840 _0814028C: adds r0, r2, 0 adds r0, 0xB0 _08140290: strh r0, [r5, 0xC] ldrh r0, [r4, 0x38] adds r0, 0x1 movs r3, 0 strh r0, [r4, 0x38] adds r2, r4, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] ldrh r0, [r4, 0x38] adds r0, 0xC lsls r0, 16 lsrs r0, 16 cmp r0, 0x18 bhi _081402B4 b _0814040A _081402B4: strh r3, [r5, 0xC] ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] strh r3, [r4, 0x38] b _0814040A _081402C0: ldrh r0, [r4, 0x38] adds r1, r0, 0x1 strh r1, [r4, 0x38] lsls r0, 16 cmp r0, 0 bge _081402DA _081402CC: adds r0, r4, 0 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x80 orrs r1, r2 strb r1, [r0] b _0814040A _081402DA: movs r0, 0 strh r0, [r4, 0x38] ldrh r0, [r4, 0x36] negs r0, r0 strh r0, [r4, 0x36] ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] adds r2, r4, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] movs r3, 0x36 ldrsh r0, [r4, r3] cmp r0, 0 bge _08140308 adds r0, r4, 0 movs r1, 0x2 bl ChangeSpriteAffineAnim b _08140310 _08140308: adds r0, r4, 0 movs r1, 0x1 bl ChangeSpriteAffineAnim _08140310: ldr r0, _0814032C ldrh r2, [r0, 0xC] movs r3, 0xC ldrsh r1, [r0, r3] adds r5, r0, 0 cmp r1, 0xFF ble _08140330 ldrh r0, [r4, 0x36] ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] movs r0, 0xFF ands r0, r2 b _08140334 .align 2, 0 _0814032C: .4byte 0x02017840 _08140330: adds r0, r2, 0 adds r0, 0xB0 _08140334: strh r0, [r5, 0xC] ldrh r0, [r4, 0x38] adds r0, 0x1 movs r3, 0 strh r0, [r4, 0x38] adds r2, r4, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] ldrh r0, [r4, 0x38] adds r0, 0x4 lsls r0, 16 lsrs r0, 16 cmp r0, 0x8 bls _0814040A strh r3, [r5, 0xC] ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] strh r3, [r4, 0x38] ldrh r0, [r4, 0x36] negs r0, r0 strh r0, [r4, 0x36] b _0814040A _08140368: movs r3, 0x80 lsls r3, 1 adds r0, r3, 0 ldrh r1, [r4, 0x34] adds r0, r1 strh r0, [r4, 0x34] lsls r0, 16 asrs r1, r0, 24 ldr r0, _08140394 ldrb r0, [r0, 0x8] cmp r1, r0 bne _0814039C adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldr r0, _08140398 str r0, [r4, 0x1C] b _0814040A .align 2, 0 _08140394: .4byte 0x02017840 _08140398: .4byte sub_8140410 _0814039C: cmp r0, 0x4 bne _081403B0 cmp r1, 0x3 bne _081403B0 ldr r0, _081403AC str r0, [r4, 0x1C] b _081403B6 .align 2, 0 _081403AC: .4byte sub_8140434 _081403B0: ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] _081403B6: adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] b _0814040A _081403C4: ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0x1F bne _0814040A movs r0, 0 strh r0, [r4, 0x38] ldrh r1, [r4, 0x34] ldr r0, _081403F8 ands r0, r1 strh r0, [r4, 0x34] adds r0, r4, 0 movs r1, 0x3 bl StartSpriteAffineAnim movs r3, 0x36 ldrsh r0, [r4, r3] cmp r0, 0 bge _081403FC adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAffineAnim b _08140404 .align 2, 0 _081403F8: .4byte 0xffffff00 _081403FC: adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim _08140404: movs r0, 0x17 bl PlaySE _0814040A: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81401A0 thumb_func_start sub_8140410 sub_8140410: @ 8140410 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x38] adds r0, 0x1 strh r0, [r1, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0x1F bne _0814042A movs r0, 0 strh r0, [r1, 0x38] ldr r0, _08140430 str r0, [r1, 0x1C] _0814042A: pop {r0} bx r0 .align 2, 0 _08140430: .4byte sub_81405F4 thumb_func_end sub_8140410 thumb_func_start sub_8140434 sub_8140434: @ 8140434 adds r3, r0, 0 adds r3, 0x2C ldrb r1, [r3] movs r2, 0x40 orrs r1, r2 strb r1, [r3] ldr r1, _08140450 str r1, [r0, 0x1C] movs r1, 0 strh r1, [r0, 0x34] strh r1, [r0, 0x36] strh r1, [r0, 0x38] bx lr .align 2, 0 _08140450: .4byte sub_8140454 thumb_func_end sub_8140434 thumb_func_start sub_8140454 sub_8140454: @ 8140454 push {r4-r7,lr} adds r6, r0, 0 ldr r7, _08140484 ldrh r0, [r6, 0x36] adds r0, 0x1 strh r0, [r6, 0x36] lsls r0, 16 asrs r1, r0, 16 cmp r1, 0x28 beq _081404CC cmp r1, 0x5F bne _08140490 ldr r0, _08140488 movs r1, 0 strb r1, [r0] movs r0, 0x1 bl sub_8043EB4 bl m4aMPlayAllStop ldr r0, _0814048C bl PlaySE b _081404CC .align 2, 0 _08140484: .4byte gUnknown_0202F7C9 _08140488: .4byte gUnknown_02024E6D _0814048C: .4byte 0x00000173 _08140490: ldr r0, _081404D4 cmp r1, r0 bne _081404CC ldr r5, _081404D8 ldr r4, _081404DC ldrb r0, [r7] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldrb r0, [r7] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl DestroySprite movs r0, 0 strh r0, [r6, 0x2E] ldr r0, _081404E0 str r0, [r6, 0x1C] _081404CC: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081404D4: .4byte 0x0000013b _081404D8: .4byte gSprites _081404DC: .4byte gUnknown_02024BE0 _081404E0: .4byte sub_81404E4 thumb_func_end sub_8140454 thumb_func_start sub_81404E4 sub_81404E4: @ 81404E4 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1 beq _08140550 cmp r0, 0x1 bgt _081404FC cmp r0, 0 beq _08140502 b _08140594 _081404FC: cmp r0, 0x2 beq _08140580 b _08140594 _08140502: strh r0, [r4, 0x30] strh r0, [r4, 0x32] ldrb r1, [r4, 0x1] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r4, 0x1] ldr r1, _08140548 movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0x10 strh r0, [r1] ldr r0, [r4, 0x14] ldrh r0, [r0, 0x2] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 adds r0, 0x10 movs r1, 0x1 lsls r1, r0 ldr r0, _0814054C str r0, [sp] adds r0, r1, 0 movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _0814058C .align 2, 0 _08140548: .4byte REG_BLDCNT _0814054C: .4byte 0x00007fff _08140550: ldrh r0, [r4, 0x30] adds r1, r0, 0x1 strh r1, [r4, 0x30] lsls r0, 16 cmp r0, 0 ble _081405B2 movs r0, 0 strh r0, [r4, 0x30] ldrh r1, [r4, 0x32] adds r1, 0x1 strh r1, [r4, 0x32] ldr r3, _0814057C lsls r2, r1, 8 movs r0, 0x10 subs r0, r1 orrs r2, r0 strh r2, [r3] movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0x10 bne _081405B2 b _0814058C .align 2, 0 _0814057C: .4byte REG_BLDALPHA _08140580: adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _0814058C: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _081405B2 _08140594: ldr r0, _081405BC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _081405B2 ldr r0, _081405C0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] strh r1, [r4, 0x2E] ldr r0, _081405C4 str r0, [r4, 0x1C] _081405B2: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _081405BC: .4byte gPaletteFade _081405C0: .4byte REG_BLDCNT _081405C4: .4byte sub_81405C8 thumb_func_end sub_81404E4 thumb_func_start sub_81405C8 sub_81405C8: @ 81405C8 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x2E] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0 bne _081405E0 ldr r0, _081405DC strh r0, [r4, 0x2E] b _081405EC .align 2, 0 _081405DC: .4byte 0x0000ffff _081405E0: adds r0, r4, 0 bl FreeSpriteOamMatrix adds r0, r4, 0 bl DestroySprite _081405EC: pop {r4} pop {r0} bx r0 thumb_func_end sub_81405C8 thumb_func_start sub_81405F4 sub_81405F4: @ 81405F4 push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 movs r1, 0x1 bl StartSpriteAnim adds r0, r4, 0 movs r1, 0 bl StartSpriteAffineAnim ldr r0, _081406A8 str r0, [r4, 0x1C] ldr r0, _081406AC ldrh r0, [r0] bl ball_number_to_ball_processing_index lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xB bgt _08140646 cmp r5, 0 blt _08140646 ldrh r0, [r4, 0x20] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x22] subs r1, 0x5 lsls r1, 24 lsrs r1, 24 str r5, [sp] movs r2, 0x1 movs r3, 0x1C bl sub_814086C ldr r0, _081406B0 ldrb r1, [r0] movs r0, 0x1 movs r2, 0xE adds r3, r5, 0 bl sub_8141314 _08140646: ldr r6, _081406B4 ldr r5, _081406B8 ldr r4, _081406B0 ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x1 bl StartSpriteAffineAnim ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 bl AnimateSprite ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x80 lsls r1, 5 strh r1, [r0, 0x30] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081406A8: .4byte sub_81406BC _081406AC: .4byte gUnknown_02024C04 _081406B0: .4byte gUnknown_0202F7C9 _081406B4: .4byte gSprites _081406B8: .4byte gUnknown_02024BE0 thumb_func_end sub_81405F4 thumb_func_start sub_81406BC sub_81406BC: @ 81406BC push {r4-r7,lr} adds r7, r0, 0 movs r5, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _081406DA adds r2, r7, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _081406DA: ldr r4, _08140708 ldr r3, _0814070C ldr r2, _08140710 ldrb r0, [r2] adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r4 adds r0, r1, 0 adds r0, 0x3F ldrb r0, [r0] lsls r0, 26 cmp r0, 0 bge _08140714 adds r0, r1, 0 movs r1, 0 bl StartSpriteAffineAnim movs r5, 0x1 b _08140734 .align 2, 0 _08140708: .4byte gSprites _0814070C: .4byte gUnknown_02024BE0 _08140710: .4byte gUnknown_0202F7C9 _08140714: ldr r6, _0814079C adds r0, r6, 0 ldrh r6, [r1, 0x30] adds r0, r6 strh r0, [r1, 0x30] ldrb r0, [r2] adds r0, r3 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrh r0, [r1, 0x30] lsls r0, 16 asrs r0, 24 strh r0, [r1, 0x26] _08140734: adds r0, r7, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08140796 cmp r5, 0 beq _08140796 ldr r4, _081407A0 ldr r3, _081407A4 ldr r2, _081407A8 ldrb r0, [r2] adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r6, 0 movs r5, 0 strh r5, [r0, 0x26] ldrb r0, [r2] adds r0, r3 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r4 ldr r0, _081407AC ldrb r1, [r0, 0x9] lsls r1, 30 adds r2, 0x3E lsrs r1, 31 lsls r1, 2 ldrb r3, [r2] movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] strh r5, [r7, 0x2E] ldr r0, _081407B0 str r0, [r7, 0x1C] ldr r0, _081407B4 strb r6, [r0] movs r0, 0x1 bl sub_8043EB4 _08140796: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0814079C: .4byte 0xfffffee0 _081407A0: .4byte gSprites _081407A4: .4byte gUnknown_02024BE0 _081407A8: .4byte gUnknown_0202F7C9 _081407AC: .4byte 0x02017840 _081407B0: .4byte sub_81405C8 _081407B4: .4byte gUnknown_02024E6D thumb_func_end sub_81406BC thumb_func_start sub_81407B8 sub_81407B8: @ 81407B8 push {r4,lr} adds r2, r0, 0 ldrh r0, [r2, 0x24] ldrh r1, [r2, 0x20] adds r0, r1 movs r1, 0 strh r0, [r2, 0x20] ldrh r0, [r2, 0x26] ldrh r3, [r2, 0x22] adds r0, r3 strh r0, [r2, 0x22] strh r1, [r2, 0x26] strh r1, [r2, 0x24] ldr r4, _081407F0 movs r3, 0 movs r1, 0x5 adds r0, r2, 0 adds r0, 0x38 _081407DC: strh r3, [r0] subs r0, 0x2 subs r1, 0x1 cmp r1, 0 bge _081407DC str r4, [r2, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _081407F0: .4byte sub_81407F4 thumb_func_end sub_81407B8 thumb_func_start sub_81407F4 sub_81407F4: @ 81407F4 push {r4,lr} adds r4, r0, 0 movs r0, 0x80 lsls r0, 4 adds r2, r0, 0 ldrh r1, [r4, 0x2E] adds r2, r1 movs r0, 0xD0 lsls r0, 3 adds r3, r0, 0 ldrh r1, [r4, 0x30] adds r3, r1 lsls r1, r3, 16 asrs r1, 24 ldrh r0, [r4, 0x24] subs r0, r1 strh r0, [r4, 0x24] lsls r0, r2, 16 asrs r0, 24 ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] movs r0, 0xFF ands r2, r0 strh r2, [r4, 0x2E] ands r3, r0 strh r3, [r4, 0x30] movs r2, 0x22 ldrsh r0, [r4, r2] movs r2, 0x26 ldrsh r1, [r4, r2] adds r0, r1 cmp r0, 0xA0 bgt _0814084A movs r1, 0x20 ldrsh r0, [r4, r1] movs r2, 0x24 ldrsh r1, [r4, r2] adds r0, r1 movs r1, 0x8 negs r1, r1 cmp r0, r1 bge _0814085E _0814084A: movs r0, 0 strh r0, [r4, 0x2E] ldr r0, _08140864 str r0, [r4, 0x1C] ldr r1, _08140868 movs r0, 0 strb r0, [r1] movs r0, 0x1 bl sub_8043EB4 _0814085E: pop {r4} pop {r0} bx r0 .align 2, 0 _08140864: .4byte sub_81405C8 _08140868: .4byte gUnknown_02024E6D thumb_func_end sub_81407F4 thumb_func_start sub_814086C sub_814086C: @ 814086C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, [sp, 0x20] lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r1, 24 lsrs r1, 24 mov r9, r1 lsls r2, 24 lsrs r2, 24 mov r8, r2 lsls r3, 24 lsrs r7, r3, 24 lsls r4, 24 lsrs r4, 24 adds r5, r4, 0 ldr r0, _08140910 lsls r6, r5, 3 adds r4, r6, r0 ldrh r0, [r4, 0x6] bl GetSpriteTileStartByTag lsls r0, 16 ldr r1, _08140914 cmp r0, r1 bne _081408B6 adds r0, r4, 0 bl LoadCompressedObjectPic ldr r0, _08140918 adds r0, r6, r0 bl LoadCompressedObjectPalette _081408B6: ldr r1, _0814091C lsls r0, r5, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08140920 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 mov r1, r10 strh r1, [r0, 0xA] mov r1, r9 strh r1, [r0, 0xC] mov r1, r8 strh r1, [r0, 0xE] strh r7, [r0, 0x10] strh r5, [r0, 0x26] movs r0, 0xF bl PlaySE ldr r0, _08140924 ldr r1, _08140928 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08140900 ldr r1, _0814092C ldrb r0, [r1, 0xA] adds r0, 0x1 strb r0, [r1, 0xA] _08140900: adds r0, r4, 0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08140910: .4byte gUnknown_0840B258 _08140914: .4byte 0xffff0000 _08140918: .4byte gUnknown_0840B2B8 _0814091C: .4byte gUnknown_0840B384 _08140920: .4byte gTasks _08140924: .4byte gMain _08140928: .4byte 0x0000043d _0814092C: .4byte 0x02017840 thumb_func_end sub_814086C thumb_func_start sub_8140930 sub_8140930: @ 8140930 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r1, _081409D0 lsls r0, 2 add r0, r9 lsls r0, 3 adds r7, r0, r1 ldrh r0, [r7, 0x26] lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r1, 0x8 ldrsh r0, [r7, r1] cmp r0, 0xF bgt _081409E4 ldrb r1, [r7, 0xA] ldrb r2, [r7, 0xC] ldrb r6, [r7, 0xE] ldrb r3, [r7, 0x10] mov r4, r8 lsls r0, r4, 1 add r0, r8 lsls r0, 3 ldr r4, _081409D4 adds r0, r4 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r5, _081409D8 adds r2, r4, r5 ldr r0, _081409DC add r0, r8 ldrb r1, [r0] adds r0, r2, 0 str r2, [sp] bl StartSpriteAnim adds r5, 0x1C adds r4, r5 ldr r0, _081409E0 str r0, [r4] movs r0, 0x3 ands r6, r0 lsls r6, 2 ldr r2, [sp] ldrb r1, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 orrs r0, r6 strb r0, [r2, 0x5] ldrb r0, [r7, 0x8] cmp r0, 0x7 bls _081409B6 subs r0, 0x8 lsls r0, 24 lsrs r0, 24 _081409B6: lsls r0, 5 strh r0, [r2, 0x2E] movs r1, 0x8 ldrsh r0, [r7, r1] cmp r0, 0xF bne _081409E4 movs r0, 0x1 strh r0, [r2, 0x3C] mov r0, r9 bl DestroyTask b _081409F6 .align 2, 0 _081409D0: .4byte gTasks _081409D4: .4byte gSpriteTemplate_840B3B4 _081409D8: .4byte gSprites _081409DC: .4byte gUnknown_0840B378 _081409E0: .4byte sub_8140A08 _081409E4: ldr r0, _08140A04 mov r2, r9 lsls r1, r2, 2 add r1, r9 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _081409F6: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08140A04: .4byte gTasks thumb_func_end sub_8140930 thumb_func_start sub_8140A08 sub_8140A08: @ 8140A08 push {lr} adds r1, r0, 0 ldrh r2, [r1, 0x30] movs r3, 0x30 ldrsh r0, [r1, r3] cmp r0, 0 bne _08140A20 ldr r0, _08140A1C str r0, [r1, 0x1C] b _08140A24 .align 2, 0 _08140A1C: .4byte sub_8140A28 _08140A20: subs r0, r2, 0x1 strh r0, [r1, 0x30] _08140A24: pop {r0} bx r0 thumb_func_end sub_8140A08 thumb_func_start sub_8140A28 sub_8140A28: @ 8140A28 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] movs r2, 0x30 ldrsh r1, [r4, r2] bl Sin strh r0, [r4, 0x24] movs r1, 0x2E ldrsh r0, [r4, r1] movs r2, 0x30 ldrsh r1, [r4, r2] bl Cos strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] adds r0, 0x2 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x32 bne _08140A5C adds r0, r4, 0 bl sub_8141294 _08140A5C: pop {r4} pop {r0} bx r0 thumb_func_end sub_8140A28 thumb_func_start sub_8140A64 sub_8140A64: @ 8140A64 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08140B24 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x26] lsls r1, 24 lsrs r1, 24 ldrb r2, [r0, 0xA] str r2, [sp] ldrb r3, [r0, 0xC] str r3, [sp, 0x4] ldrb r2, [r0, 0xE] str r2, [sp, 0x8] ldrb r0, [r0, 0x10] str r0, [sp, 0xC] movs r6, 0 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 mov r10, r0 ldr r3, _08140B28 mov r8, r3 ldr r0, _08140B2C adds r1, r0 mov r9, r1 _08140AA8: ldr r0, _08140B30 add r0, r10 ldr r1, [sp] ldr r2, [sp, 0x4] ldr r3, [sp, 0xC] bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r5, r1, 2 mov r0, r8 adds r4, r5, r0 mov r2, r9 ldrb r1, [r2] adds r0, r4, 0 bl StartSpriteAnim ldr r3, _08140B34 adds r1, r5, r3 ldr r0, _08140B38 str r0, [r1] movs r0, 0x3 ldr r2, [sp, 0x8] ands r2, r0 lsls r2, 2 ldrb r0, [r4, 0x5] movs r3, 0xD negs r3, r3 adds r1, r3, 0 ands r0, r1 orrs r0, r2 strb r0, [r4, 0x5] lsls r0, r6, 5 strh r0, [r4, 0x2E] movs r0, 0xA strh r0, [r4, 0x36] movs r0, 0x2 strh r0, [r4, 0x38] movs r2, 0x1 strh r2, [r4, 0x3A] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x7 bls _08140AA8 ldr r0, _08140B28 adds r0, r5, r0 strh r2, [r0, 0x3C] adds r0, r7, 0 bl DestroyTask add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08140B24: .4byte gTasks _08140B28: .4byte gSprites _08140B2C: .4byte gUnknown_0840B378 _08140B30: .4byte gSpriteTemplate_840B3B4 _08140B34: .4byte gSprites + 0x1C _08140B38: .4byte sub_8140ECC thumb_func_end sub_8140A64 thumb_func_start sub_8140B3C sub_8140B3C: @ 8140B3C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08140BFC lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x26] lsls r1, 24 lsrs r1, 24 ldrb r2, [r0, 0xA] str r2, [sp] ldrb r3, [r0, 0xC] str r3, [sp, 0x4] ldrb r2, [r0, 0xE] str r2, [sp, 0x8] ldrb r0, [r0, 0x10] str r0, [sp, 0xC] movs r6, 0 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 mov r10, r0 ldr r3, _08140C00 mov r8, r3 ldr r0, _08140C04 adds r1, r0 mov r9, r1 _08140B80: ldr r0, _08140C08 add r0, r10 ldr r1, [sp] ldr r2, [sp, 0x4] ldr r3, [sp, 0xC] bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r5, r1, 2 mov r0, r8 adds r4, r5, r0 mov r2, r9 ldrb r1, [r2] adds r0, r4, 0 bl StartSpriteAnim ldr r3, _08140C0C adds r1, r5, r3 ldr r0, _08140C10 str r0, [r1] movs r0, 0x3 ldr r2, [sp, 0x8] ands r2, r0 lsls r2, 2 ldrb r0, [r4, 0x5] movs r3, 0xD negs r3, r3 adds r1, r3, 0 ands r0, r1 orrs r0, r2 strb r0, [r4, 0x5] lsls r0, r6, 5 strh r0, [r4, 0x2E] movs r0, 0xA strh r0, [r4, 0x36] movs r1, 0x1 strh r1, [r4, 0x38] movs r0, 0x2 strh r0, [r4, 0x3A] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x7 bls _08140B80 ldr r0, _08140C00 adds r0, r5, r0 strh r1, [r0, 0x3C] adds r0, r7, 0 bl DestroyTask add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08140BFC: .4byte gTasks _08140C00: .4byte gSprites _08140C04: .4byte gUnknown_0840B378 _08140C08: .4byte gSpriteTemplate_840B3B4 _08140C0C: .4byte gSprites + 0x1C _08140C10: .4byte sub_8140ECC thumb_func_end sub_8140B3C thumb_func_start sub_8140C14 sub_8140C14: @ 8140C14 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08140CD0 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x26] lsls r1, 24 lsrs r1, 24 ldrb r2, [r0, 0xA] str r2, [sp] ldrb r3, [r0, 0xC] str r3, [sp, 0x4] ldrb r2, [r0, 0xE] str r2, [sp, 0x8] ldrb r0, [r0, 0x10] str r0, [sp, 0xC] movs r6, 0 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 mov r10, r0 ldr r3, _08140CD4 mov r8, r3 ldr r0, _08140CD8 adds r1, r0 mov r9, r1 _08140C58: ldr r0, _08140CDC add r0, r10 ldr r1, [sp] ldr r2, [sp, 0x4] ldr r3, [sp, 0xC] bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r5, r1, 2 mov r0, r8 adds r4, r5, r0 mov r2, r9 ldrb r1, [r2] adds r0, r4, 0 bl StartSpriteAnim ldr r3, _08140CE0 adds r1, r5, r3 ldr r0, _08140CE4 str r0, [r1] movs r0, 0x3 ldr r2, [sp, 0x8] ands r2, r0 lsls r2, 2 ldrb r0, [r4, 0x5] movs r3, 0xD negs r3, r3 adds r1, r3, 0 ands r0, r1 orrs r0, r2 strb r0, [r4, 0x5] lsls r0, r6, 5 strh r0, [r4, 0x2E] movs r0, 0x4 strh r0, [r4, 0x36] movs r2, 0x1 strh r2, [r4, 0x38] strh r2, [r4, 0x3A] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x7 bls _08140C58 ldr r0, _08140CD4 adds r0, r5, r0 strh r2, [r0, 0x3C] adds r0, r7, 0 bl DestroyTask add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08140CD0: .4byte gTasks _08140CD4: .4byte gSprites _08140CD8: .4byte gUnknown_0840B378 _08140CDC: .4byte gSpriteTemplate_840B3B4 _08140CE0: .4byte gSprites + 0x1C _08140CE4: .4byte sub_8140ECC thumb_func_end sub_8140C14 thumb_func_start sub_8140CE8 sub_8140CE8: @ 8140CE8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08140DAC lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x26] lsls r1, 24 lsrs r1, 24 ldrb r2, [r0, 0xA] str r2, [sp] ldrb r3, [r0, 0xC] str r3, [sp, 0x4] ldrb r2, [r0, 0xE] str r2, [sp, 0x8] ldrb r0, [r0, 0x10] str r0, [sp, 0xC] movs r6, 0 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 mov r10, r0 ldr r3, _08140DB0 mov r8, r3 ldr r0, _08140DB4 adds r1, r0 mov r9, r1 _08140D2C: ldr r0, _08140DB8 add r0, r10 ldr r1, [sp] ldr r2, [sp, 0x4] ldr r3, [sp, 0xC] bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r5, r1, 2 mov r0, r8 adds r4, r5, r0 mov r2, r9 ldrb r1, [r2] adds r0, r4, 0 bl StartSpriteAnim ldr r3, _08140DBC adds r1, r5, r3 ldr r0, _08140DC0 str r0, [r1] movs r0, 0x3 ldr r2, [sp, 0x8] ands r2, r0 lsls r2, 2 ldrb r0, [r4, 0x5] movs r3, 0xD negs r3, r3 adds r1, r3, 0 ands r0, r1 orrs r0, r2 strb r0, [r4, 0x5] lsls r0, r6, 1 adds r0, r6 lsls r0, 3 adds r0, r6 strh r0, [r4, 0x2E] movs r0, 0x5 strh r0, [r4, 0x36] movs r2, 0x1 strh r2, [r4, 0x38] strh r2, [r4, 0x3A] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x9 bls _08140D2C ldr r0, _08140DB0 adds r0, r5, r0 strh r2, [r0, 0x3C] adds r0, r7, 0 bl DestroyTask add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08140DAC: .4byte gTasks _08140DB0: .4byte gSprites _08140DB4: .4byte gUnknown_0840B378 _08140DB8: .4byte gSpriteTemplate_840B3B4 _08140DBC: .4byte gSprites + 0x1C _08140DC0: .4byte sub_8140ECC thumb_func_end sub_8140CE8 thumb_func_start sub_8140DC4 sub_8140DC4: @ 8140DC4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08140DF0 lsls r2, r7, 2 adds r0, r2, r7 lsls r0, 3 adds r3, r0, r1 ldrh r1, [r3, 0x16] movs r4, 0x16 ldrsh r0, [r3, r4] cmp r0, 0 beq _08140DF4 subs r0, r1, 0x1 strh r0, [r3, 0x16] b _08140EA4 .align 2, 0 _08140DF0: .4byte gTasks _08140DF4: ldrh r0, [r3, 0x26] lsls r0, 24 lsrs r0, 24 ldrb r1, [r3, 0xA] str r1, [sp] ldrb r4, [r3, 0xC] str r4, [sp, 0x4] ldrb r1, [r3, 0xE] str r1, [sp, 0x8] ldrb r3, [r3, 0x10] str r3, [sp, 0xC] movs r6, 0 str r2, [sp, 0x10] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 mov r10, r1 ldr r3, _08140EB4 mov r8, r3 ldr r1, _08140EB8 adds r0, r1 mov r9, r0 _08140E20: ldr r0, _08140EBC add r0, r10 ldr r1, [sp] ldr r2, [sp, 0x4] ldr r3, [sp, 0xC] bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r5, r1, 2 mov r0, r8 adds r4, r5, r0 mov r3, r9 ldrb r1, [r3] adds r0, r4, 0 bl StartSpriteAnim ldr r0, _08140EC0 adds r1, r5, r0 ldr r0, _08140EC4 str r0, [r1] movs r0, 0x3 ldr r2, [sp, 0x8] ands r2, r0 lsls r2, 2 ldrb r0, [r4, 0x5] movs r3, 0xD negs r3, r3 adds r1, r3, 0 ands r0, r1 orrs r0, r2 strb r0, [r4, 0x5] lsls r0, r6, 5 strh r0, [r4, 0x2E] movs r2, 0x8 strh r2, [r4, 0x36] movs r0, 0x2 strh r0, [r4, 0x38] strh r0, [r4, 0x3A] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x7 bls _08140E20 ldr r0, _08140EC8 ldr r4, [sp, 0x10] adds r1, r4, r7 lsls r1, 3 adds r1, r0 strh r2, [r1, 0x16] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _08140EA4 ldr r0, _08140EB4 adds r0, r5, r0 movs r1, 0x1 strh r1, [r0, 0x3C] adds r0, r7, 0 bl DestroyTask _08140EA4: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08140EB4: .4byte gSprites _08140EB8: .4byte gUnknown_0840B378 _08140EBC: .4byte gSpriteTemplate_840B3B4 _08140EC0: .4byte gSprites + 0x1C _08140EC4: .4byte sub_8140ECC _08140EC8: .4byte gTasks thumb_func_end sub_8140DC4 thumb_func_start sub_8140ECC sub_8140ECC: @ 8140ECC push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] movs r2, 0x30 ldrsh r1, [r4, r2] bl Sin strh r0, [r4, 0x24] movs r1, 0x2E ldrsh r0, [r4, r1] movs r2, 0x32 ldrsh r1, [r4, r2] bl Cos strh r0, [r4, 0x26] ldrh r0, [r4, 0x36] ldrh r1, [r4, 0x2E] adds r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x38] ldrh r2, [r4, 0x30] adds r0, r2 strh r0, [r4, 0x30] ldrh r0, [r4, 0x3A] ldrh r1, [r4, 0x32] adds r0, r1 strh r0, [r4, 0x32] ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x33 bne _08140F1C adds r0, r4, 0 bl sub_8141294 _08140F1C: pop {r4} pop {r0} bx r0 thumb_func_end sub_8140ECC thumb_func_start sub_8140F24 sub_8140F24: @ 8140F24 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08140FE0 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x26] lsls r1, 24 lsrs r1, 24 ldrb r2, [r0, 0xA] str r2, [sp] ldrb r3, [r0, 0xC] str r3, [sp, 0x4] ldrb r2, [r0, 0xE] str r2, [sp, 0x8] ldrb r0, [r0, 0x10] str r0, [sp, 0xC] movs r6, 0 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 mov r10, r0 ldr r3, _08140FE4 mov r8, r3 ldr r0, _08140FE8 adds r1, r0 mov r9, r1 _08140F68: ldr r0, _08140FEC add r0, r10 ldr r1, [sp] ldr r2, [sp, 0x4] ldr r3, [sp, 0xC] bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r5, r1, 2 mov r0, r8 adds r4, r5, r0 mov r2, r9 ldrb r1, [r2] adds r0, r4, 0 bl StartSpriteAnim ldr r3, _08140FF0 adds r1, r5, r3 ldr r0, _08140FF4 str r0, [r1] movs r0, 0x3 ldr r2, [sp, 0x8] ands r2, r0 lsls r2, 2 ldrb r0, [r4, 0x5] movs r3, 0xD negs r3, r3 adds r1, r3, 0 ands r0, r1 orrs r0, r2 strb r0, [r4, 0x5] lsls r0, r6, 2 adds r0, r6 lsls r0, 2 adds r0, r6 strh r0, [r4, 0x2E] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0xB bls _08140F68 ldr r0, _08140FE4 adds r0, r5, r0 movs r1, 0x1 strh r1, [r0, 0x3C] adds r0, r7, 0 bl DestroyTask add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08140FE0: .4byte gTasks _08140FE4: .4byte gSprites _08140FE8: .4byte gUnknown_0840B378 _08140FEC: .4byte gSpriteTemplate_840B3B4 _08140FF0: .4byte gSprites + 0x1C _08140FF4: .4byte sub_8140FF8 thumb_func_end sub_8140F24 thumb_func_start sub_8140FF8 sub_8140FF8: @ 8140FF8 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] movs r2, 0x30 ldrsh r1, [r5, r2] bl Sin strh r0, [r5, 0x24] movs r0, 0x2E ldrsh r4, [r5, r0] movs r2, 0x32 ldrsh r1, [r5, r2] adds r0, r4, 0 bl Sin adds r1, r0, 0 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl Cos strh r0, [r5, 0x26] ldrh r0, [r5, 0x2E] adds r0, 0x6 movs r1, 0xFF ands r0, r1 strh r0, [r5, 0x2E] ldrh r0, [r5, 0x30] adds r0, 0x1 strh r0, [r5, 0x30] ldrh r0, [r5, 0x32] adds r0, 0x1 strh r0, [r5, 0x32] ldrh r0, [r5, 0x34] adds r0, 0x1 strh r0, [r5, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x33 bne _08141050 adds r0, r5, 0 bl sub_8141294 _08141050: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8140FF8 thumb_func_start sub_8141058 sub_8141058: @ 8141058 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 lsls r0, 24 lsrs r0, 24 str r0, [sp] ldr r1, _08141104 lsls r0, 2 ldr r2, [sp] adds r0, r2 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x26] lsls r1, 24 lsrs r1, 24 ldrb r3, [r0, 0xA] str r3, [sp, 0x4] ldrb r2, [r0, 0xC] str r2, [sp, 0x8] ldrb r3, [r0, 0xE] str r3, [sp, 0xC] ldrb r0, [r0, 0x10] str r0, [sp, 0x10] movs r0, 0 mov r8, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 str r0, [sp, 0x14] ldr r0, _08141108 adds r1, r0 mov r10, r1 _0814109E: movs r7, 0 movs r1, 0x1 add r1, r8 mov r9, r1 _081410A6: ldr r0, _0814110C ldr r2, [sp, 0x14] adds r0, r2, r0 ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] ldr r3, [sp, 0x10] bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 lsls r4, r6, 4 adds r4, r6 lsls r4, 2 ldr r3, _08141110 adds r5, r4, r3 mov r0, r10 ldrb r1, [r0] adds r0, r5, 0 bl StartSpriteAnim ldr r1, _08141114 adds r4, r1 ldr r0, _08141118 str r0, [r4] movs r0, 0x3 ldr r1, [sp, 0xC] ands r1, r0 lsls r1, 2 ldrb r0, [r5, 0x5] movs r3, 0xD negs r3, r3 adds r2, r3, 0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] lsls r0, r7, 5 strh r0, [r5, 0x2E] movs r0, 0x8 strh r0, [r5, 0x36] mov r0, r8 cmp r0, 0 bne _0814111C movs r0, 0x2 strh r0, [r5, 0x38] movs r0, 0x1 b _08141122 .align 2, 0 _08141104: .4byte gTasks _08141108: .4byte gUnknown_0840B378 _0814110C: .4byte gSpriteTemplate_840B3B4 _08141110: .4byte gSprites _08141114: .4byte gSprites + 0x1C _08141118: .4byte sub_8140ECC _0814111C: movs r0, 0x1 strh r0, [r5, 0x38] movs r0, 0x2 _08141122: strh r0, [r5, 0x3A] adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x7 bls _081410A6 mov r1, r9 lsls r0, r1, 24 lsrs r0, 24 mov r8, r0 cmp r0, 0x1 bls _0814109E ldr r0, _08141160 lsls r1, r6, 4 adds r1, r6 lsls r1, 2 adds r1, r0 movs r0, 0x1 strh r0, [r1, 0x3C] ldr r0, [sp] bl DestroyTask add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08141160: .4byte gSprites thumb_func_end sub_8141058 thumb_func_start sub_8141164 sub_8141164: @ 8141164 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08141218 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x26] lsls r1, 24 lsrs r1, 24 ldrb r2, [r0, 0xA] str r2, [sp] ldrb r3, [r0, 0xC] str r3, [sp, 0x4] ldrb r2, [r0, 0xE] str r2, [sp, 0x8] ldrb r0, [r0, 0x10] str r0, [sp, 0xC] movs r6, 0 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 mov r10, r0 ldr r3, _0814121C mov r8, r3 ldr r0, _08141220 adds r1, r0 mov r9, r1 _081411A8: ldr r0, _08141224 add r0, r10 ldr r1, [sp] ldr r2, [sp, 0x4] ldr r3, [sp, 0xC] bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r5, r1, 2 mov r0, r8 adds r4, r5, r0 mov r2, r9 ldrb r1, [r2] adds r0, r4, 0 bl StartSpriteAnim ldr r3, _08141228 adds r1, r5, r3 ldr r0, _0814122C str r0, [r1] movs r0, 0x3 ldr r2, [sp, 0x8] ands r2, r0 lsls r2, 2 ldrb r0, [r4, 0x5] movs r3, 0xD negs r3, r3 adds r1, r3, 0 ands r0, r1 orrs r0, r2 strb r0, [r4, 0x5] lsls r0, r6, 5 strh r0, [r4, 0x2E] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x7 bls _081411A8 ldr r0, _0814121C adds r0, r5, r0 movs r1, 0x1 strh r1, [r0, 0x3C] adds r0, r7, 0 bl DestroyTask add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08141218: .4byte gTasks _0814121C: .4byte gSprites _08141220: .4byte gUnknown_0840B378 _08141224: .4byte gSpriteTemplate_840B3B4 _08141228: .4byte gSprites + 0x1C _0814122C: .4byte sub_8141230 thumb_func_end sub_8141164 thumb_func_start sub_8141230 sub_8141230: @ 8141230 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] movs r2, 0x30 ldrsh r1, [r5, r2] bl Sin strh r0, [r5, 0x24] movs r0, 0x2E ldrsh r4, [r5, r0] ldrh r1, [r5, 0x2E] movs r0, 0x3F ands r0, r1 movs r2, 0x32 ldrsh r1, [r5, r2] bl Sin adds r1, r0, 0 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl Cos strh r0, [r5, 0x26] ldrh r0, [r5, 0x2E] adds r0, 0xA movs r1, 0xFF ands r0, r1 strh r0, [r5, 0x2E] ldrh r0, [r5, 0x30] adds r0, 0x1 strh r0, [r5, 0x30] ldrh r0, [r5, 0x32] adds r0, 0x1 strh r0, [r5, 0x32] ldrh r0, [r5, 0x34] adds r0, 0x1 strh r0, [r5, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x33 bne _0814128C adds r0, r5, 0 bl sub_8141294 _0814128C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8141230 thumb_func_start sub_8141294 sub_8141294: @ 8141294 push {r4-r7,lr} adds r5, r0, 0 ldr r0, _081412B8 ldr r1, _081412BC adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _081412C0 movs r1, 0x3C ldrsh r0, [r5, r1] cmp r0, 0x1 bne _081412F2 adds r0, r5, 0 bl DestroySpriteAndFreeResources b _0814130E .align 2, 0 _081412B8: .4byte gMain _081412BC: .4byte 0x0000043d _081412C0: movs r1, 0x3C ldrsh r0, [r5, r1] cmp r0, 0x1 bne _08141308 ldr r1, _081412FC ldrb r0, [r1, 0xA] subs r0, 0x1 strb r0, [r1, 0xA] lsls r0, 24 cmp r0, 0 bne _081412F2 movs r7, 0 ldr r6, _08141300 ldr r4, _08141304 _081412DC: ldrh r0, [r6, 0x6] bl FreeSpriteTilesByTag ldrh r0, [r4, 0x4] bl FreeSpritePaletteByTag adds r6, 0x8 adds r4, 0x8 adds r7, 0x1 cmp r7, 0xB ble _081412DC _081412F2: adds r0, r5, 0 bl DestroySprite b _0814130E .align 2, 0 _081412FC: .4byte 0x02017840 _08141300: .4byte gUnknown_0840B258 _08141304: .4byte gUnknown_0840B2B8 _08141308: adds r0, r5, 0 bl DestroySprite _0814130E: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8141294 thumb_func_start sub_8141314 sub_8141314: @ 8141314 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r4, r0, 0 mov r9, r2 lsls r4, 24 lsrs r4, 24 lsls r1, 24 lsrs r6, r1, 24 lsls r3, 24 lsrs r7, r3, 24 ldr r0, _08141378 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r1, _0814137C lsls r0, 2 add r0, r8 lsls r0, 3 adds r5, r0, r1 strh r7, [r5, 0x26] strh r6, [r5, 0xE] mov r0, r9 strh r0, [r5, 0x1C] mov r1, r9 lsrs r0, r1, 16 strh r0, [r5, 0x1E] cmp r4, 0 bne _08141384 lsls r0, r6, 20 movs r2, 0x80 lsls r2, 17 adds r0, r2 lsrs r0, 16 ldr r2, _08141380 lsls r1, r7, 1 adds r1, r2 ldrh r3, [r1] movs r1, 0x10 movs r2, 0 bl BlendPalette movs r0, 0x1 strh r0, [r5, 0xA] b _081413AA .align 2, 0 _08141378: .4byte sub_81413DC _0814137C: .4byte gTasks _08141380: .4byte gUnknown_0840B4D4 _08141384: lsls r0, r6, 20 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r0, 16 ldr r2, _081413CC lsls r1, r7, 1 adds r1, r2 ldrh r3, [r1] movs r1, 0x10 movs r2, 0x10 bl BlendPalette movs r0, 0x10 strh r0, [r5, 0x8] ldr r0, _081413D0 strh r0, [r5, 0xA] ldr r0, _081413D4 str r0, [r5] _081413AA: ldr r0, _081413D8 str r0, [sp] mov r0, r9 movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade mov r0, r8 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081413CC: .4byte gUnknown_0840B4D4 _081413D0: .4byte 0x0000ffff _081413D4: .4byte sub_814146C _081413D8: .4byte 0x00007fff thumb_func_end sub_8141314 thumb_func_start sub_81413DC sub_81413DC: @ 81413DC push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r1, _0814142C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r1, r0, 24 movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0x10 bgt _08141434 movs r2, 0xE ldrsh r0, [r4, r2] lsls r0, 20 movs r2, 0x80 lsls r2, 17 adds r0, r2 lsrs r0, 16 ldrb r2, [r4, 0x8] ldr r3, _08141430 lsls r1, 1 adds r1, r3 ldrh r3, [r1] movs r1, 0x10 bl BlendPalette ldrh r0, [r4, 0xA] ldrh r1, [r4, 0x8] adds r0, r1 strh r0, [r4, 0x8] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] b _0814145C .align 2, 0 _0814142C: .4byte gTasks _08141430: .4byte gUnknown_0840B4D4 _08141434: ldr r0, _08141464 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0814145C ldrh r0, [r4, 0x1C] ldrh r1, [r4, 0x1E] lsls r1, 16 orrs r0, r1 ldr r1, _08141468 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade adds r0, r5, 0 bl DestroyTask _0814145C: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08141464: .4byte gPaletteFade _08141468: .4byte 0x00007fff thumb_func_end sub_81413DC thumb_func_start sub_814146C sub_814146C: @ 814146C push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r2, r0, 24 ldr r0, _081414AC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081414A4 ldr r0, _081414B0 lsls r4, r2, 2 adds r4, r2 lsls r4, 3 adds r4, r0 ldrh r0, [r4, 0x1C] ldrh r1, [r4, 0x1E] lsls r1, 16 orrs r0, r1 ldr r1, _081414B4 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _081414B8 str r0, [r4] _081414A4: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _081414AC: .4byte gPaletteFade _081414B0: .4byte gTasks _081414B4: .4byte 0x00007fff _081414B8: .4byte sub_81414BC thumb_func_end sub_814146C thumb_func_start sub_81414BC sub_81414BC: @ 81414BC push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _08141508 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r1, r0, 24 movs r3, 0xC ldrsh r0, [r4, r3] cmp r0, 0x10 bgt _08141510 movs r2, 0xE ldrsh r0, [r4, r2] lsls r0, 20 movs r3, 0x80 lsls r3, 17 adds r0, r3 lsrs r0, 16 ldrb r2, [r4, 0x8] ldr r3, _0814150C lsls r1, 1 adds r1, r3 ldrh r3, [r1] movs r1, 0x10 bl BlendPalette ldrh r0, [r4, 0xA] ldrh r1, [r4, 0x8] adds r0, r1 strh r0, [r4, 0x8] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] b _08141516 .align 2, 0 _08141508: .4byte gTasks _0814150C: .4byte gUnknown_0840B4D4 _08141510: adds r0, r2, 0 bl DestroyTask _08141516: pop {r4} pop {r0} bx r0 thumb_func_end sub_81414BC thumb_func_start sub_814151C sub_814151C: @ 814151C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r7, r0, 24 movs r0, 0 mov r8, r0 ldr r0, _08141550 ldr r3, _08141554 ldrb r2, [r3] adds r0, r2, r0 ldrb r6, [r0] ldr r1, _08141558 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r5, r0, r1 movs r1, 0x1C ldrsh r0, [r5, r1] cmp r0, 0x1 beq _081415F4 cmp r0, 0x1 bgt _0814155C cmp r0, 0 beq _08141562 b _081416B6 .align 2, 0 _08141550: .4byte gUnknown_02024BE0 _08141554: .4byte gUnknown_0202F7C8 _08141558: .4byte gTasks _0814155C: cmp r0, 0x2 beq _08141606 b _081416B6 _08141562: ldr r0, _0814159C ldrh r0, [r0] strh r0, [r5, 0x1E] movs r2, 0xA0 lsls r2, 3 adds r0, r2, 0 ldrh r4, [r5, 0x8] adds r0, r4 strh r0, [r5, 0x8] ldrb r0, [r3] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _081415A4 ldr r2, _081415A0 lsls r3, r6, 4 adds r1, r3, r6 lsls r1, 2 adds r1, r2 ldrh r0, [r5, 0x8] lsls r0, 16 asrs r0, 24 ldrh r4, [r1, 0x24] adds r0, r4 strh r0, [r1, 0x24] adds r4, r3, 0 b _081415BC .align 2, 0 _0814159C: .4byte gUnknown_03004B00 _081415A0: .4byte gSprites _081415A4: ldr r3, _081415EC lsls r4, r6, 4 adds r2, r4, r6 lsls r2, 2 adds r2, r3 ldrh r1, [r5, 0x8] lsls r1, 16 asrs r1, 24 ldrh r0, [r2, 0x24] subs r0, r1 strh r0, [r2, 0x24] adds r2, r3, 0 _081415BC: ldr r1, _081415F0 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r3, r0, r1 ldrb r0, [r3, 0x8] strh r0, [r3, 0x8] adds r0, r4, r6 lsls r0, 2 adds r0, r2 movs r2, 0x20 ldrsh r1, [r0, r2] movs r4, 0x24 ldrsh r0, [r0, r4] adds r1, r0 adds r1, 0x20 movs r0, 0x98 lsls r0, 1 cmp r1, r0 bls _081416B6 ldrh r0, [r3, 0x1C] adds r0, 0x1 strh r0, [r3, 0x1C] b _081416B6 .align 2, 0 _081415EC: .4byte gSprites _081415F0: .4byte gTasks _081415F4: ldrb r1, [r5, 0x1E] adds r0, r2, 0 adds r2, r6, 0 bl refresh_graphics_maybe ldrh r0, [r5, 0x1C] adds r0, 0x1 strh r0, [r5, 0x1C] b _081416B6 _08141606: movs r1, 0xA0 lsls r1, 3 adds r0, r1, 0 ldrh r2, [r5, 0x8] adds r0, r2 strh r0, [r5, 0x8] ldrb r0, [r3] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0814163C ldr r0, _08141638 lsls r3, r6, 4 adds r2, r3, r6 lsls r2, 2 adds r2, r0 ldrh r1, [r5, 0x8] lsls r1, 16 asrs r1, 24 ldrh r0, [r2, 0x24] subs r0, r1 strh r0, [r2, 0x24] adds r4, r3, 0 b _08141654 .align 2, 0 _08141638: .4byte gSprites _0814163C: ldr r0, _08141688 lsls r2, r6, 4 adds r1, r2, r6 lsls r1, 2 adds r1, r0 ldrh r0, [r5, 0x8] lsls r0, 16 asrs r0, 24 ldrh r3, [r1, 0x24] adds r0, r3 strh r0, [r1, 0x24] adds r4, r2, 0 _08141654: ldr r1, _0814168C lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrb r1, [r0, 0x8] strh r1, [r0, 0x8] ldr r0, _08141690 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _08141694 ldr r0, _08141688 adds r1, r4, r6 lsls r1, 2 adds r1, r0 movs r4, 0x24 ldrsh r0, [r1, r4] cmp r0, 0 bgt _081416AA movs r0, 0 strh r0, [r1, 0x24] b _081416B0 .align 2, 0 _08141688: .4byte gSprites _0814168C: .4byte gTasks _08141690: .4byte gUnknown_0202F7C8 _08141694: ldr r0, _081416C0 adds r1, r4, r6 lsls r1, 2 adds r1, r0 movs r3, 0x24 ldrsh r0, [r1, r3] cmp r0, 0 blt _081416AA strh r2, [r1, 0x24] movs r4, 0x1 mov r8, r4 _081416AA: mov r0, r8 cmp r0, 0 beq _081416B6 _081416B0: adds r0, r7, 0 bl move_anim_task_del _081416B6: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081416C0: .4byte gSprites thumb_func_end sub_814151C thumb_func_start sub_81416C4 sub_81416C4: @ 81416C4 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _081416E8 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x26 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _08141744 cmp r0, 0x1 bgt _081416EC cmp r0, 0 beq _081416F2 b _081417B8 .align 2, 0 _081416E8: .4byte gTasks _081416EC: cmp r0, 0x2 beq _0814177C b _081417B8 _081416F2: ldr r0, _08141708 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08141714 ldr r1, _0814170C ldr r2, _08141710 b _08141718 .align 2, 0 _08141708: .4byte gUnknown_0202F7C8 _0814170C: .4byte REG_BLDCNT _08141710: .4byte 0x00003f42 _08141714: ldr r1, _08141734 ldr r2, _08141738 _08141718: adds r0, r2, 0 strh r0, [r1] ldr r1, _0814173C movs r0, 0x10 strh r0, [r1] ldr r1, _08141740 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x26] adds r1, 0x1 strh r1, [r0, 0x26] b _081417B8 .align 2, 0 _08141734: .4byte REG_BLDCNT _08141738: .4byte 0x00003f44 _0814173C: .4byte REG_BLDALPHA _08141740: .4byte gTasks _08141744: ldrh r0, [r4, 0xA] adds r1, r0, 0x1 strh r1, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _081417B8 movs r0, 0 strh r0, [r4, 0xA] ldrh r1, [r4, 0x8] adds r1, 0x1 strh r1, [r4, 0x8] ldr r3, _08141778 lsls r2, r1, 8 movs r0, 0x10 subs r0, r1 orrs r2, r0 strh r2, [r3] movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x10 bne _081417B8 ldrh r0, [r4, 0x26] adds r0, 0x1 strh r0, [r4, 0x26] b _081417B8 .align 2, 0 _08141778: .4byte REG_BLDALPHA _0814177C: ldr r1, _081417C0 ldr r3, _081417C4 ldrb r0, [r3] adds r0, r1 ldrb r1, [r0] ldr r2, _081417C8 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x4] lsls r0, 22 lsrs r0, 17 ldr r1, _081417CC adds r0, r1 movs r1, 0 str r1, [sp] ldr r1, _081417D0 mov r2, sp str r2, [r1] str r0, [r1, 0x4] ldr r0, _081417D4 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldrb r0, [r3] bl sub_80324E0 adds r0, r5, 0 bl move_anim_task_del _081417B8: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081417C0: .4byte gUnknown_02024BE0 _081417C4: .4byte gUnknown_0202F7C8 _081417C8: .4byte gSprites _081417CC: .4byte 0x06010000 _081417D0: .4byte 0x040000d4 _081417D4: .4byte 0x85000200 thumb_func_end sub_81416C4 thumb_func_start sub_81417D8 sub_81417D8: @ 81417D8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r3, _081417FC ldr r1, _08141800 ldrb r1, [r1] lsls r1, 2 ldr r2, _08141804 adds r1, r2 ldr r1, [r1] lsls r1, 29 lsrs r1, 31 strh r1, [r3, 0xE] bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _081417FC: .4byte gUnknown_03004B00 _08141800: .4byte gUnknown_0202F7C8 _08141804: .4byte 0x02017800 thumb_func_end sub_81417D8 thumb_func_start sub_8141808 sub_8141808: @ 8141808 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _08141820 ldr r1, _08141824 ldrb r1, [r1] strb r1, [r2] bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _08141820: .4byte gUnknown_0202F7C9 _08141824: .4byte gUnknown_02024C0A thumb_func_end sub_8141808 thumb_func_start sub_8141828 sub_8141828: @ 8141828 push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r1, 0 lsls r0, 24 lsrs r6, r0, 24 movs r0, 0 mov r8, r0 lsls r0, r6, 1 adds r0, r6 lsls r0, 2 ldr r1, _081418E0 adds r0, r1 ldrb r1, [r0] movs r2, 0x80 orrs r1, r2 strb r1, [r0] adds r0, r4, 0 movs r1, 0x1 bl GetMonData adds r5, r0, 0 adds r0, r4, 0 movs r1, 0 bl GetMonData adds r4, r0, 0 adds r0, r6, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _081418FC lsrs r0, r5, 16 ldr r7, _081418E4 ands r5, r7 eors r0, r5 lsrs r1, r4, 16 eors r0, r1 ands r4, r7 eors r0, r4 cmp r0, 0x7 bhi _08141882 movs r0, 0x1 mov r8, r0 _08141882: mov r0, r8 cmp r0, 0 beq _081418FC ldr r0, _081418E8 bl GetSpriteTileStartByTag lsls r0, 16 lsrs r0, 16 cmp r0, r7 bne _081418A2 ldr r0, _081418EC bl LoadCompressedObjectPic ldr r0, _081418F0 bl LoadCompressedObjectPalette _081418A2: ldr r5, _081418F4 adds r0, r5, 0 movs r1, 0xA bl CreateTask adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r3, _081418F8 lsls r2, r4, 2 adds r2, r4 lsls r2, 3 adds r2, r3 movs r4, 0 strh r6, [r2, 0x8] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r3 strh r6, [r1, 0x8] strh r4, [r2, 0xA] movs r0, 0x1 strh r0, [r1, 0xA] b _0814190E .align 2, 0 _081418E0: .4byte 0x02017810 _081418E4: .4byte 0x0000ffff _081418E8: .4byte 0x000027f9 _081418EC: .4byte gBattleAnimPicTable + (233 * 8) _081418F0: .4byte gBattleAnimPaletteTable + (233 * 8) _081418F4: .4byte sub_814191C _081418F8: .4byte gTasks _081418FC: lsls r0, r6, 1 adds r0, r6 lsls r0, 2 ldr r1, _08141918 adds r0, r1 ldrb r1, [r0, 0x1] movs r2, 0x1 orrs r1, r2 strb r1, [r0, 0x1] _0814190E: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08141918: .4byte 0x02017810 thumb_func_end sub_8141828 thumb_func_start sub_814191C sub_814191C: @ 814191C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08141944 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r4, r0, r1 ldrh r1, [r4, 0x22] movs r2, 0x22 ldrsh r0, [r4, r2] cmp r0, 0x3B bgt _08141948 adds r0, r1, 0x1 strh r0, [r4, 0x22] b _08141AB8 .align 2, 0 _08141944: .4byte gTasks _08141948: ldr r0, _08141998 ldrb r0, [r0, 0xA] cmp r0, 0 beq _08141952 b _08141AB8 _08141952: ldrh r0, [r4, 0x1C] adds r1, r0, 0x1 strh r1, [r4, 0x1C] lsls r0, 16 movs r1, 0xC0 lsls r1, 10 ands r1, r0 cmp r1, 0 beq _08141966 b _08141AB8 _08141966: ldrb r0, [r4, 0x8] mov r8, r0 movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r5, r0, 24 mov r0, r8 movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r2, r0, 24 movs r1, 0x1E ldrsh r0, [r4, r1] cmp r0, 0 bne _081419A0 ldr r0, _0814199C adds r1, r5, 0 movs r3, 0x5 bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 b _08141A02 .align 2, 0 _08141998: .4byte 0x02017840 _0814199C: .4byte gBattleAnimSpriteTemplate_84024E8 _081419A0: cmp r0, 0 blt _081419D4 cmp r0, 0x3 bgt _081419D4 ldr r0, _081419CC adds r1, r5, 0 movs r3, 0x5 bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 ldr r0, _081419D0 lsls r2, r5, 4 adds r2, r5 lsls r2, 2 adds r2, r0 ldrh r3, [r2, 0x4] lsls r1, r3, 22 lsrs r1, 22 adds r1, 0x4 b _081419F4 .align 2, 0 _081419CC: .4byte gSpriteTemplate_8402500 _081419D0: .4byte gSprites _081419D4: ldr r0, _08141A2C adds r1, r5, 0 movs r3, 0x5 bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 ldr r0, _08141A30 lsls r2, r5, 4 adds r2, r5 lsls r2, 2 adds r2, r0 ldrh r3, [r2, 0x4] lsls r1, r3, 22 lsrs r1, 22 adds r1, 0x5 _081419F4: ldr r4, _08141A34 adds r0, r4, 0 ands r1, r0 ldr r0, _08141A38 ands r0, r3 orrs r0, r1 strh r0, [r2, 0x4] _08141A02: ldr r2, _08141A3C lsls r1, r7, 2 adds r0, r1, r7 lsls r0, 3 adds r6, r0, r2 movs r2, 0xA ldrsh r0, [r6, r2] mov r9, r1 cmp r0, 0 bne _08141A44 ldr r1, _08141A30 lsls r2, r5, 4 adds r0, r2, r5 lsls r0, 2 adds r1, 0x1C adds r0, r1 ldr r1, _08141A40 str r1, [r0] adds r4, r2, 0 b _08141A8C .align 2, 0 _08141A2C: .4byte gSpriteTemplate_8402500 _08141A30: .4byte gSprites _08141A34: .4byte 0x000003ff _08141A38: .4byte 0xfffffc00 _08141A3C: .4byte gTasks _08141A40: .4byte sub_8141B20 _08141A44: ldr r3, _08141AC4 lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 adds r0, r3, 0 adds r0, 0x1C adds r0, r1, r0 ldr r2, _08141AC8 str r2, [r0] adds r1, r3 ldr r0, _08141ACC strh r0, [r1, 0x24] movs r0, 0x20 strh r0, [r1, 0x26] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] movs r1, 0x1E ldrsh r0, [r6, r1] cmp r0, 0 bne _08141A8C mov r0, r8 bl battle_side_get_owner lsls r0, 24 movs r1, 0x3F cmp r0, 0 bne _08141A82 movs r1, 0xC0 _08141A82: lsls r1, 24 asrs r1, 24 movs r0, 0x66 bl PlaySE12WithPanning _08141A8C: ldr r1, _08141AC4 adds r0, r4, r5 lsls r0, 2 adds r0, r1 strh r7, [r0, 0x2E] ldr r1, _08141AD0 mov r2, r9 adds r0, r2, r7 lsls r0, 3 adds r2, r0, r1 ldrh r1, [r2, 0x1E] adds r1, 0x1 strh r1, [r2, 0x1E] ldrh r0, [r2, 0x20] adds r0, 0x1 strh r0, [r2, 0x20] lsls r1, 16 asrs r1, 16 cmp r1, 0x5 bne _08141AB8 ldr r0, _08141AD4 str r0, [r2] _08141AB8: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08141AC4: .4byte gSprites _08141AC8: .4byte sub_8141B74 _08141ACC: .4byte 0x0000ffe0 _08141AD0: .4byte gTasks _08141AD4: .4byte sub_8141AD8 thumb_func_end sub_814191C thumb_func_start sub_8141AD8 sub_8141AD8: @ 8141AD8 push {lr} lsls r0, 24 lsrs r0, 24 adds r3, r0, 0 ldr r1, _08141B18 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r1, r0, r1 movs r2, 0x20 ldrsh r0, [r1, r2] cmp r0, 0 bne _08141B14 movs r2, 0xA ldrsh r0, [r1, r2] cmp r0, 0x1 bne _08141B0E ldrb r1, [r1, 0x8] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _08141B1C adds r0, r1 ldrb r1, [r0, 0x1] movs r2, 0x1 orrs r1, r2 strb r1, [r0, 0x1] _08141B0E: adds r0, r3, 0 bl DestroyTask _08141B14: pop {r0} bx r0 .align 2, 0 _08141B18: .4byte gTasks _08141B1C: .4byte 0x02017810 thumb_func_end sub_8141AD8 thumb_func_start sub_8141B20 sub_8141B20: @ 8141B20 push {r4,lr} adds r4, r0, 0 movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x18 bl Sin strh r0, [r4, 0x24] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x18 bl Cos strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] adds r0, 0xC strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0xFF ble _08141B6A ldr r2, _08141B70 movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r1, [r0, 0x20] subs r1, 0x1 strh r1, [r0, 0x20] adds r0, r4, 0 bl FreeSpriteOamMatrix adds r0, r4, 0 bl DestroySprite _08141B6A: pop {r4} pop {r0} bx r0 .align 2, 0 _08141B70: .4byte gTasks thumb_func_end sub_8141B20 thumb_func_start sub_8141B74 sub_8141B74: @ 8141B74 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x30] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r0, 0x3 bgt _08141B88 adds r0, r1, 0x1 strh r0, [r4, 0x30] b _08141BCA _08141B88: adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] ldrh r1, [r4, 0x24] adds r1, 0x5 strh r1, [r4, 0x24] ldrh r0, [r4, 0x26] subs r0, 0x5 strh r0, [r4, 0x26] lsls r1, 16 asrs r1, 16 cmp r1, 0x20 ble _08141BCA ldr r2, _08141BD0 movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r1, [r0, 0x20] subs r1, 0x1 strh r1, [r0, 0x20] adds r0, r4, 0 bl FreeSpriteOamMatrix adds r0, r4, 0 bl DestroySprite _08141BCA: pop {r4} pop {r0} bx r0 .align 2, 0 _08141BD0: .4byte gTasks thumb_func_end sub_8141B74 thumb_func_start sub_8141BD4 sub_8141BD4: @ 8141BD4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _08141BFC bl LoadCompressedObjectPic ldr r0, _08141C00 bl LoadCompressedObjectPalette ldr r0, _08141C04 bl IndexOfSpritePaletteTag adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _08141BFC: .4byte gBattleAnimPicTable + (269 * 8) _08141C00: .4byte gBattleAnimPaletteTable + (269 * 8) _08141C04: .4byte 0x0000281d thumb_func_end sub_8141BD4 thumb_func_start sub_8141C08 sub_8141C08: @ 8141C08 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _08141C2C adds r0, r5, 0 bl FreeSpriteTilesByTag adds r0, r5, 0 bl FreeSpritePaletteByTag adds r0, r4, 0 bl move_anim_task_del pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08141C2C: .4byte 0x0000281d thumb_func_end sub_8141C08 thumb_func_start sub_8141C30 sub_8141C30: @ 8141C30 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0 bl sub_80787B0 movs r0, 0x1E strh r0, [r4, 0x2E] movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_8077ABC lsls r0, 24 ldr r5, _08141CA4 lsrs r0, 24 ldrh r1, [r5, 0x4] adds r0, r1 strh r0, [r4, 0x32] movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x6] adds r0, r5 strh r0, [r4, 0x36] ldr r0, _08141CA8 strh r0, [r4, 0x38] adds r0, r4, 0 bl sub_80786EC ldr r1, _08141CAC ldr r0, _08141CB0 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08141CB4 adds r0, r1 movs r1, 0x1 bl StartSpriteAnim ldr r0, _08141CB8 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08141CA4: .4byte gUnknown_03004B00 _08141CA8: .4byte 0x0000ffe0 _08141CAC: .4byte gUnknown_02024BE0 _08141CB0: .4byte gUnknown_0202F7C8 _08141CB4: .4byte gSprites _08141CB8: .4byte sub_8141CBC thumb_func_end sub_8141C30 thumb_func_start sub_8141CBC sub_8141CBC: @ 8141CBC push {lr} adds r3, r0, 0 ldr r2, _08141CE4 ldr r1, _08141CE8 ldr r0, _08141CEC ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0x1 bne _08141CE0 ldr r0, _08141CF0 str r0, [r3, 0x1C] _08141CE0: pop {r0} bx r0 .align 2, 0 _08141CE4: .4byte gSprites _08141CE8: .4byte gUnknown_02024BE0 _08141CEC: .4byte gUnknown_0202F7C8 _08141CF0: .4byte sub_8141CF4 thumb_func_end sub_8141CBC thumb_func_start sub_8141CF4 sub_8141CF4: @ 8141CF4 push {r4,lr} adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _08141D16 movs r0, 0 strh r0, [r4, 0x2E] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _08141D1C str r0, [r4, 0x1C] _08141D16: pop {r4} pop {r0} bx r0 .align 2, 0 _08141D1C: .4byte sub_8141D20 thumb_func_end sub_8141CF4 thumb_func_start sub_8141D20 sub_8141D20: @ 8141D20 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _08141D70 ldr r3, _08141D74 ldr r2, _08141D78 ldrb r0, [r2] adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3F ldrb r0, [r0] lsls r0, 27 cmp r0, 0 bge _08141D68 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 cmp r0, 0 ble _08141D68 ldrb r0, [r2] adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0 bl StartSpriteAnim adds r0, r4, 0 bl move_anim_8072740 _08141D68: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08141D70: .4byte gSprites _08141D74: .4byte gUnknown_02024BE0 _08141D78: .4byte gUnknown_0202F7C8 thumb_func_end sub_8141D20 thumb_func_start sub_8141D7C sub_8141D7C: @ 8141D7C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 bl battle_get_side_with_given_state ldr r1, _08141DA4 strb r0, [r1] movs r0, 0x1 bl battle_get_side_with_given_state ldr r1, _08141DA8 strb r0, [r1] adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _08141DA4: .4byte gUnknown_0202F7C8 _08141DA8: .4byte gUnknown_0202F7C9 thumb_func_end sub_8141D7C thumb_func_start sub_8141DAC sub_8141DAC: @ 8141DAC push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _08141DC0 ldrh r1, [r0] cmp r1, 0x53 bne _08141DC8 ldr r1, _08141DC4 movs r0, 0x1 b _08141E00 .align 2, 0 _08141DC0: .4byte 0x02017840 _08141DC4: .4byte gUnknown_03004B00 _08141DC8: cmp r1, 0xFA bne _08141DD8 ldr r1, _08141DD4 movs r0, 0x2 b _08141E00 .align 2, 0 _08141DD4: .4byte gUnknown_03004B00 _08141DD8: cmp r1, 0x80 bne _08141DE8 ldr r1, _08141DE4 movs r0, 0x3 b _08141E00 .align 2, 0 _08141DE4: .4byte gUnknown_03004B00 _08141DE8: movs r0, 0xA4 lsls r0, 1 cmp r1, r0 bne _08141DFC ldr r1, _08141DF8 movs r0, 0x4 b _08141E00 .align 2, 0 _08141DF8: .4byte gUnknown_03004B00 _08141DFC: ldr r1, _08141E0C movs r0, 0 _08141E00: strh r0, [r1] adds r0, r2, 0 bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _08141E0C: .4byte gUnknown_03004B00 thumb_func_end sub_8141DAC thumb_func_start sub_8141E10 sub_8141E10: @ 8141E10 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _08141E2C ldr r1, _08141E30 ldrh r1, [r1] strb r1, [r2] ldr r2, _08141E34 lsrs r1, 8 strb r1, [r2] bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _08141E2C: .4byte gUnknown_0202F7C8 _08141E30: .4byte 0x02017840 _08141E34: .4byte gUnknown_0202F7C9 thumb_func_end sub_8141E10 thumb_func_start sub_8141E38 sub_8141E38: @ 8141E38 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8141E38 thumb_func_start sub_8141E4C sub_8141E4C: @ 8141E4C push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8141E4C thumb_func_start sub_8141E64 sub_8141E64: @ 8141E64 push {r4,lr} sub sp, 0x4 ldr r0, _08141E80 ldr r1, _08141E84 adds r0, r1 ldrb r0, [r0] cmp r0, 0x4 bhi _08141EA0 lsls r0, 2 ldr r1, _08141E88 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08141E80: .4byte gMain _08141E84: .4byte 0x0000043c _08141E88: .4byte _08141E8C .align 2, 0 _08141E8C: .4byte _08141EA0 .4byte _08141EC0 .4byte _08141EC6 .4byte _08141F1C .4byte _08141F58 _08141EA0: movs r0, 0 bl SetVBlankCallback bl sub_81433E0 ldr r0, _08141EB8 ldr r2, _08141EBC adds r0, r2 movs r1, 0x1 strb r1, [r0] b _08141F84 .align 2, 0 _08141EB8: .4byte gMain _08141EBC: .4byte 0x0000043c _08141EC0: bl sub_8143570 b _08141F38 _08141EC6: movs r0, 0x1 negs r0, r0 movs r4, 0 str r4, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _08141F04 bl SetVBlankCallback ldr r3, _08141F08 ldrh r2, [r3] strh r4, [r3] ldr r4, _08141F0C ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _08141F10 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r1, _08141F14 ldr r2, _08141F18 adds r1, r2 b _08141F3E .align 2, 0 _08141F04: .4byte sub_8141E38 _08141F08: .4byte 0x04000208 _08141F0C: .4byte 0x04000200 _08141F10: .4byte REG_DISPSTAT _08141F14: .4byte gMain _08141F18: .4byte 0x0000043c _08141F1C: ldr r1, _08141F48 ldr r2, _08141F4C adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r2, 0xE2 lsls r2, 3 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0 strh r0, [r1] bl sub_81435B8 _08141F38: ldr r1, _08141F50 ldr r0, _08141F54 adds r1, r0 _08141F3E: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08141F84 .align 2, 0 _08141F48: .4byte REG_BLDCNT _08141F4C: .4byte 0x00003f42 _08141F50: .4byte gMain _08141F54: .4byte 0x0000043c _08141F58: bl UpdatePaletteFade ldr r0, _08141F7C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08141F84 ldr r0, _08141F80 bl SetMainCallback2 movs r0, 0xDA lsls r0, 1 bl PlayBGM movs r0, 0 b _08141F86 .align 2, 0 _08141F7C: .4byte gPaletteFade _08141F80: .4byte sub_8141E4C _08141F84: movs r0, 0x1 _08141F86: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_8141E64 thumb_func_start sub_8141F90 sub_8141F90: @ 8141F90 push {r4,lr} bl sub_8141E64 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08141FB6 ldr r0, _08141FBC movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08141FC0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] _08141FB6: pop {r4} pop {r0} bx r0 .align 2, 0 _08141FBC: .4byte sub_8141FF8 _08141FC0: .4byte gTasks thumb_func_end sub_8141F90 thumb_func_start sub_8141FC4 sub_8141FC4: @ 8141FC4 push {lr} bl sub_8141E64 lsls r0, 24 cmp r0, 0 bne _08141FEA ldr r0, _08141FF0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08141FF4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0x1 strh r0, [r1, 0x8] _08141FEA: pop {r0} bx r0 .align 2, 0 _08141FF0: .4byte sub_8141FF8 _08141FF4: .4byte gTasks thumb_func_end sub_8141FC4 thumb_func_start sub_8141FF8 sub_8141FF8: @ 8141FF8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, _081420C8 mov r9, r0 ldr r1, _081420CC mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] movs r7, 0 ldr r4, _081420D0 mov r10, r4 _08142024: movs r0, 0x64 adds r1, r7, 0 muls r1, r0 ldr r0, _081420D4 adds r6, r1, r0 adds r0, r6, 0 movs r1, 0xB bl GetMonData adds r3, r0, 0 cmp r3, 0 beq _081420DC adds r0, r6, 0 movs r1, 0x41 bl GetMonData lsls r4, r7, 2 adds r4, r7 lsls r4, 2 mov r1, r9 adds r5, r1, r4 ldr r2, _081420D8 adds r1, r2, 0 ands r0, r1 ldrh r1, [r5, 0x8] mov r2, r10 ands r1, r2 orrs r1, r0 strh r1, [r5, 0x8] adds r0, r6, 0 movs r1, 0x1 bl GetMonData str r0, [r5] adds r0, r6, 0 movs r1, 0 bl GetMonData mov r1, r9 adds r1, 0x4 adds r1, r4 str r0, [r1] adds r0, r6, 0 movs r1, 0x38 bl GetMonData lsls r0, 1 ldrb r2, [r5, 0x9] movs r1, 0x1 ands r1, r2 orrs r1, r0 strb r1, [r5, 0x9] adds r0, r6, 0 movs r1, 0x2 mov r2, sp bl GetMonData movs r2, 0 mov r6, r8 lsls r5, r6, 2 mov r3, r9 adds r3, 0xA _081420A0: adds r1, r2, r4 adds r1, r3, r1 mov r6, sp adds r0, r6, r2 ldrb r0, [r0] strb r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x9 bls _081420A0 ldr r0, _081420CC mov r2, r8 adds r1, r5, r2 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0xC] adds r0, 0x1 strh r0, [r1, 0xC] b _08142108 .align 2, 0 _081420C8: .4byte 0x0201c000 _081420CC: .4byte gTasks _081420D0: .4byte 0xfffffe00 _081420D4: .4byte gPlayerParty _081420D8: .4byte 0x000001ff _081420DC: lsls r1, r7, 2 adds r1, r7 lsls r1, 2 mov r4, r9 adds r2, r4, r1 ldrh r0, [r2, 0x8] mov r6, r10 ands r0, r6 strh r0, [r2, 0x8] str r3, [r2] mov r0, r9 adds r0, 0x4 adds r0, r1 str r3, [r0] ldrb r1, [r2, 0x9] movs r0, 0x1 ands r0, r1 strb r0, [r2, 0x9] movs r0, 0xFF strb r0, [r2, 0xA] mov r0, r8 lsls r5, r0, 2 _08142108: adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0x5 bls _08142024 ldr r0, _08142158 movs r3, 0 str r3, [r0] ldr r4, _0814215C mov r2, r8 adds r1, r5, r2 lsls r1, 3 adds r2, r1, r4 strh r3, [r2, 0xA] movs r0, 0xFF strh r0, [r2, 0x10] movs r7, 0 adds r3, r4, 0 adds r3, 0x8 movs r2, 0xFF _08142130: adds r0, r7, 0x5 lsls r0, 1 adds r0, r1 adds r0, r3 strh r2, [r0] adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0x5 bls _08142130 mov r6, r8 adds r0, r5, r6 lsls r0, 3 adds r1, r0, r4 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 beq _08142164 ldr r0, _08142160 b _08142166 .align 2, 0 _08142158: .4byte gUnknown_0203931C _0814215C: .4byte gTasks _08142160: .4byte sub_81422E8 _08142164: ldr r0, _08142178 _08142166: str r0, [r1] add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08142178: .4byte sub_814217C thumb_func_end sub_8141FF8 thumb_func_start sub_814217C sub_814217C: @ 814217C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, _081421C4 mov r9, r0 movs r7, 0x80 lsls r7, 6 add r7, r9 ldr r0, _081421C8 ldrb r0, [r0] cmp r0, 0 bne _081421D4 movs r4, 0 mov r0, r8 lsls r0, 2 mov r10, r0 ldr r5, _081421CC add r5, r9 movs r3, 0xF0 lsls r3, 9 movs r2, 0 ldr r1, _081421D0 _081421B2: adds r0, r4, r3 adds r0, r5 strb r2, [r0] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r1 bls _081421B2 b _081421E0 .align 2, 0 _081421C4: .4byte 0x0201c000 _081421C8: .4byte gUnknown_02039324 _081421CC: .4byte 0xfffe4000 _081421D0: .4byte 0x00001fff _081421D4: movs r0, 0x3 bl sub_8125EC8 mov r0, r8 lsls r0, 2 mov r10, r0 _081421E0: movs r4, 0 ldrh r1, [r7, 0x8] ldr r2, _081421E8 b _081421FA .align 2, 0 _081421E8: .4byte 0x000001ff _081421EC: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 adds r7, 0x78 cmp r4, 0x31 bhi _08142206 ldrh r1, [r7, 0x8] _081421FA: adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _081421EC cmp r4, 0x31 bls _08142228 _08142206: ldr r5, _08142264 adds r6, r5, 0 adds r5, 0x78 movs r4, 0 subs r7, 0x78 _08142210: adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x78 bl memcpy adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 adds r6, 0x78 adds r5, 0x78 cmp r4, 0x30 bls _08142210 _08142228: adds r0, r7, 0 mov r1, r9 movs r2, 0x78 bl memcpy movs r0, 0x2 movs r1, 0xE movs r2, 0x1B movs r3, 0x13 bl MenuDrawTextWindow ldr r0, _08142268 movs r1, 0x3 movs r2, 0xF bl MenuPrint ldr r1, _0814226C mov r0, r10 add r0, r8 lsls r0, 3 adds r0, r1 ldr r1, _08142270 str r1, [r0] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08142264: .4byte 0x0201e000 _08142268: .4byte gMenuText_HOFSaving _0814226C: .4byte gTasks _08142270: .4byte sub_8142274 thumb_func_end sub_814217C thumb_func_start sub_8142274 sub_8142274: @ 8142274 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _081422A8 ldr r0, _081422AC str r0, [r1] movs r0, 0x3 bl sub_8125D44 movs r0, 0x37 bl PlaySE ldr r1, _081422B0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _081422B4 str r1, [r0] movs r1, 0x20 strh r1, [r0, 0xE] pop {r4} pop {r0} bx r0 .align 2, 0 _081422A8: .4byte gUnknown_03005EBC _081422AC: .4byte sub_8141FC4 _081422B0: .4byte gTasks _081422B4: .4byte sub_81422B8 thumb_func_end sub_8142274 thumb_func_start sub_81422B8 sub_81422B8: @ 81422B8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _081422D8 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrh r2, [r1, 0xE] movs r3, 0xE ldrsh r0, [r1, r3] cmp r0, 0 beq _081422DC subs r0, r2, 0x1 strh r0, [r1, 0xE] b _081422E0 .align 2, 0 _081422D8: .4byte gTasks _081422DC: ldr r0, _081422E4 str r0, [r1] _081422E0: pop {r0} bx r0 .align 2, 0 _081422E4: .4byte sub_81422E8 thumb_func_end sub_81422B8 thumb_func_start sub_81422E8 sub_81422E8: @ 81422E8 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _08142314 adds r0, r5, 0 bl SetUpWindowConfig adds r0, r5, 0 bl InitMenuWindow ldr r1, _08142318 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0814231C str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08142314: .4byte gWindowConfig_81E7198 _08142318: .4byte gTasks _0814231C: .4byte sub_8142320 thumb_func_end sub_81422E8 thumb_func_start sub_8142320 sub_8142320: @ 8142320 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 lsls r0, 24 lsrs r7, r0, 24 ldr r2, _08142350 ldr r0, _08142354 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r0 ldrh r6, [r1, 0xA] lsls r0, r6, 2 adds r0, r6 lsls r0, 2 adds r4, r0, r2 movs r2, 0xC ldrsh r0, [r1, r2] cmp r0, 0x3 ble _0814235C ldr r1, _08142358 b _0814235E .align 2, 0 _08142350: .4byte 0x0201c000 _08142354: .4byte gTasks _08142358: .4byte gUnknown_0840B534 _0814235C: ldr r1, _081423F0 _0814235E: lsls r2, r6, 3 adds r0, r2, r1 ldrh r5, [r0] adds r0, r1, 0x2 adds r0, r2, r0 ldrh r3, [r0] adds r0, r1, 0x4 adds r0, r2, r0 ldrh r0, [r0] mov r9, r0 adds r1, 0x6 adds r2, r1 ldrh r2, [r2] mov r8, r2 ldrh r0, [r4, 0x8] lsls r0, 23 lsrs r0, 23 lsls r1, r5, 16 asrs r1, 16 lsls r2, r3, 16 asrs r2, 16 ldr r3, [r4] str r3, [sp] ldr r3, [r4, 0x4] str r3, [sp, 0x4] adds r3, r6, 0 bl sub_81436BC lsls r0, 24 lsrs r0, 24 ldr r3, _081423F4 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r2, r1, r3 movs r4, 0 mov r5, r9 strh r5, [r2, 0x30] mov r5, r8 strh r5, [r2, 0x32] strh r4, [r2, 0x2E] adds r3, 0x1C adds r1, r3 ldr r2, _081423F8 str r2, [r1] ldr r5, _081423FC adds r1, r6, 0x5 lsls r1, 1 lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r1, r4 adds r2, r5, 0 adds r2, 0x8 adds r1, r2 strh r0, [r1] movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect adds r4, r5 ldr r0, _08142400 str r0, [r4] add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081423F0: .4byte gUnknown_0840B564 _081423F4: .4byte gSprites _081423F8: .4byte sub_81435DC _081423FC: .4byte gTasks _08142400: .4byte sub_8142404 thumb_func_end sub_8142320 thumb_func_start sub_8142404 sub_8142404: @ 8142404 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r4, _08142470 ldr r3, _08142474 lsls r2, r0, 2 adds r2, r0 lsls r2, 3 adds r5, r2, r3 ldrh r1, [r5, 0xA] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r6, r0, r4 ldr r4, _08142478 adds r1, 0x5 lsls r1, 1 adds r1, r2 adds r3, 0x8 adds r1, r3 movs r0, 0 ldrsh r1, [r1, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x2E ldrsh r0, [r0, r1] cmp r0, 0 beq _0814246A ldrh r2, [r6, 0x8] ldr r0, _0814247C ands r0, r2 movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _08142458 lsls r0, r2, 23 lsrs r0, 23 movs r1, 0 bl PlayCry1 _08142458: adds r0, r6, 0 movs r1, 0 movs r2, 0xE bl sub_8143088 movs r0, 0x78 strh r0, [r5, 0xE] ldr r0, _08142480 str r0, [r5] _0814246A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08142470: .4byte 0x0201c000 _08142474: .4byte gTasks _08142478: .4byte gSprites _0814247C: .4byte 0x000001ff _08142480: .4byte sub_8142484 thumb_func_end sub_8142404 thumb_func_start sub_8142484 sub_8142484: @ 8142484 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r2, _081424BC ldr r1, _081424C0 lsls r0, r5, 2 adds r0, r5 lsls r6, r0, 3 adds r4, r6, r1 ldrh r3, [r4, 0xA] lsls r0, r3, 2 adds r0, r3 lsls r0, 2 adds r0, r2 mov r9, r0 ldrh r2, [r4, 0xE] movs r7, 0xE ldrsh r0, [r4, r7] mov r12, r1 cmp r0, 0 beq _081424C4 subs r0, r2, 0x1 strh r0, [r4, 0xE] b _0814255C .align 2, 0 _081424BC: .4byte 0x0201c000 _081424C0: .4byte gTasks _081424C4: ldr r2, _0814253C ldr r0, _08142540 mov r8, r0 adds r0, r3, 0x5 lsls r0, 1 adds r0, r6 mov r1, r12 adds r1, 0x8 adds r6, r0, r1 movs r7, 0 ldrsh r1, [r6, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 ldrb r0, [r0, 0x5] lsrs r0, 4 movs r1, 0x80 lsls r1, 9 lsls r1, r0 ldr r3, [r2] orrs r3, r1 str r3, [r2] ldrh r2, [r4, 0xA] movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x4 bgt _08142550 mov r7, r9 ldrh r1, [r7, 0x1C] ldr r0, _08142544 ands r0, r1 cmp r0, 0 beq _08142550 adds r0, r2, 0x1 strh r0, [r4, 0xA] ldr r0, _08142548 str r0, [sp] adds r0, r3, 0 movs r1, 0 movs r2, 0xC movs r3, 0xC bl BeginNormalPaletteFade movs r0, 0 ldrsh r1, [r6, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 movs r2, 0x4 orrs r1, r2 strb r1, [r0, 0x5] ldr r0, _0814254C str r0, [r4] b _0814255C .align 2, 0 _0814253C: .4byte gUnknown_0203931C _08142540: .4byte gSprites _08142544: .4byte 0x000001ff _08142548: .4byte 0x0000735f _0814254C: .4byte sub_8142320 _08142550: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 add r0, r12 ldr r1, _0814256C str r1, [r0] _0814255C: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0814256C: .4byte sub_8142570 thumb_func_end sub_8142484 thumb_func_start sub_8142570 sub_8142570: @ 8142570 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08142604 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0 bl BeginNormalPaletteFade movs r3, 0 lsls r1, r4, 2 adds r0, r1, r4 lsls r5, r0, 3 ldr r0, _08142608 mov r12, r0 mov r8, r1 ldr r6, _0814260C movs r7, 0xD negs r7, r7 _0814259E: adds r0, r3, 0x5 lsls r0, 1 adds r0, r5 mov r2, r12 adds r1, r0, r2 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0xFF beq _081425C0 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r2, [r1, 0x5] adds r0, r7, 0 ands r0, r2 strb r0, [r1, 0x5] _081425C0: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x5 bls _0814259E movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect movs r0, 0 movs r1, 0xF bl sub_8143068 movs r0, 0x69 bl PlaySE ldr r1, _08142610 mov r2, r8 adds r0, r2, r4 lsls r0, 3 adds r0, r1 movs r1, 0xC8 lsls r1, 1 strh r1, [r0, 0xE] ldr r1, _08142614 str r1, [r0] add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08142604: .4byte 0xffff0000 _08142608: .4byte gUnknown_03004B28 _0814260C: .4byte gSprites _08142610: .4byte gTasks _08142614: .4byte sub_8142618 thumb_func_end sub_8142570 thumb_func_start sub_8142618 sub_8142618: @ 8142618 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r7, _08142658 lsls r4, r6, 2 adds r0, r4, r6 lsls r5, r0, 3 adds r1, r5, r7 ldrh r2, [r1, 0xE] movs r3, 0xE ldrsh r0, [r1, r3] cmp r0, 0 beq _0814265C subs r2, 0x1 strh r2, [r1, 0xE] movs r0, 0x3 ands r0, r2 cmp r0, 0 bne _081426D2 lsls r0, r2, 16 asrs r0, 16 cmp r0, 0x6E ble _081426D2 bl sub_81438C4 b _081426D2 .align 2, 0 _08142658: .4byte gTasks _0814265C: movs r3, 0 mov r9, r4 ldr r0, _081426E4 mov r10, r0 adds r4, r5, 0 adds r7, 0x8 mov r8, r7 ldr r7, _081426E8 movs r1, 0xD negs r1, r1 mov r12, r1 movs r5, 0x4 _08142674: adds r0, r3, 0x5 lsls r0, 1 adds r0, r4 mov r2, r8 adds r1, r0, r2 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0xFF beq _08142698 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 ldrb r2, [r1, 0x5] mov r0, r12 ands r0, r2 orrs r0, r5 strb r0, [r1, 0x5] _08142698: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x5 bls _08142674 mov r3, r10 ldr r0, [r3] ldr r1, _081426EC str r1, [sp] movs r1, 0 movs r2, 0xC movs r3, 0xC bl BeginNormalPaletteFade movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect ldr r1, _081426F0 mov r2, r9 adds r0, r2, r6 lsls r0, 3 adds r0, r1 movs r1, 0x7 strh r1, [r0, 0xE] ldr r1, _081426F4 str r1, [r0] _081426D2: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081426E4: .4byte gUnknown_0203931C _081426E8: .4byte gSprites _081426EC: .4byte 0x0000735f _081426F0: .4byte gTasks _081426F4: .4byte sub_81426F8 thumb_func_end sub_8142618 thumb_func_start sub_81426F8 sub_81426F8: @ 81426F8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _08142718 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r2, r1, r2 ldrh r1, [r2, 0xE] movs r3, 0xE ldrsh r0, [r2, r3] cmp r0, 0xF ble _08142720 ldr r0, _0814271C str r0, [r2] b _0814272E .align 2, 0 _08142718: .4byte gTasks _0814271C: .4byte sub_8142738 _08142720: adds r0, r1, 0x1 strh r0, [r2, 0xE] ldr r1, _08142734 movs r3, 0xE ldrsh r0, [r2, r3] lsls r0, 8 strh r0, [r1] _0814272E: pop {r0} bx r0 .align 2, 0 _08142734: .4byte REG_BLDALPHA thumb_func_end sub_81426F8 thumb_func_start sub_8142738 sub_8142738: @ 8142738 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r1, 0x80 lsls r1, 19 movs r2, 0xCA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r4, _08142784 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl InitMenuWindow ldr r0, _08142788 ldrb r0, [r0, 0x8] movs r1, 0x78 movs r2, 0x48 movs r3, 0x6 bl sub_81437A4 ldr r2, _0814278C lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r2 strh r0, [r1, 0x10] movs r0, 0x78 strh r0, [r1, 0xE] ldr r0, _08142790 str r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08142784: .4byte gWindowConfig_81E71B4 _08142788: .4byte gSaveBlock2 _0814278C: .4byte gTasks _08142790: .4byte sub_8142794 thumb_func_end sub_8142738 thumb_func_start sub_8142794 sub_8142794: @ 8142794 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _081427B4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r1, [r4, 0xE] movs r2, 0xE ldrsh r0, [r4, r2] cmp r0, 0 beq _081427B8 subs r0, r1, 0x1 strh r0, [r4, 0xE] b _0814280A .align 2, 0 _081427B4: .4byte gTasks _081427B8: ldr r2, _081427D8 movs r3, 0x10 ldrsh r1, [r4, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 ldrh r2, [r1, 0x20] movs r3, 0x20 ldrsh r0, [r1, r3] cmp r0, 0xA0 beq _081427DC adds r0, r2, 0x1 strh r0, [r1, 0x20] b _0814280A .align 2, 0 _081427D8: .4byte gSprites _081427DC: movs r0, 0x1 movs r1, 0x2 movs r2, 0xF movs r3, 0x9 bl MenuDrawTextWindow movs r0, 0x1 movs r1, 0x2 bl sub_8143300 movs r0, 0x2 movs r1, 0xE movs r2, 0x1B movs r3, 0x13 bl MenuDrawTextWindow ldr r0, _08142810 movs r1, 0x4 movs r2, 0xF bl MenuPrint ldr r0, _08142814 str r0, [r4] _0814280A: pop {r4} pop {r0} bx r0 .align 2, 0 _08142810: .4byte gMenuText_HOFCongratulations _08142814: .4byte sub_8142818 thumb_func_end sub_8142794 thumb_func_start sub_8142818 sub_8142818: @ 8142818 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08142844 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0814283E movs r0, 0x4 bl FadeOutBGM ldr r0, _08142848 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0814284C str r0, [r1] _0814283E: pop {r4} pop {r0} bx r0 .align 2, 0 _08142844: .4byte gMain _08142848: .4byte gTasks _0814284C: .4byte sub_8142850 thumb_func_end sub_8142818 thumb_func_start sub_8142850 sub_8142850: @ 8142850 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _08142890 ldr r1, _08142894 movs r2, 0x80 lsls r2, 2 bl CpuSet movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r1, 0x8 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _08142898 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0814289C str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08142890: .4byte gPlttBufferFaded _08142894: .4byte gPlttBufferUnfaded _08142898: .4byte gTasks _0814289C: .4byte sub_81428A0 thumb_func_end sub_8142850 thumb_func_start sub_81428A0 sub_81428A0: @ 81428A0 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _081428C4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081428BE adds r0, r2, 0 bl DestroyTask ldr r0, _081428C8 bl SetMainCallback2 _081428BE: pop {r0} bx r0 .align 2, 0 _081428C4: .4byte gPaletteFade _081428C8: .4byte sub_81439D0 thumb_func_end sub_81428A0 thumb_func_start sub_81428CC sub_81428CC: @ 81428CC push {r4,r5,lr} ldr r0, _081428E4 ldr r1, _081428E8 adds r0, r1 ldrb r0, [r0] cmp r0, 0x5 bhi _08142908 lsls r0, 2 ldr r1, _081428EC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081428E4: .4byte gMain _081428E8: .4byte 0x0000043c _081428EC: .4byte _081428F0 .align 2, 0 _081428F0: .4byte _08142908 .4byte _08142928 .4byte _0814293C .4byte _08142980 .4byte _081429C0 .4byte _081429EC _08142908: movs r0, 0 bl SetVBlankCallback bl sub_81433E0 ldr r0, _08142920 ldr r2, _08142924 adds r0, r2 movs r1, 0x1 strb r1, [r0] b _08142A12 .align 2, 0 _08142920: .4byte gMain _08142924: .4byte 0x0000043c _08142928: bl sub_8143570 ldr r1, _08142934 ldr r3, _08142938 adds r1, r3 b _081429DC .align 2, 0 _08142934: .4byte gMain _08142938: .4byte 0x0000043c _0814293C: ldr r0, _08142968 bl SetVBlankCallback ldr r3, _0814296C ldrh r2, [r3] movs r0, 0 strh r0, [r3] ldr r4, _08142970 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _08142974 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r1, _08142978 ldr r4, _0814297C adds r1, r4 b _081429DC .align 2, 0 _08142968: .4byte sub_8141E38 _0814296C: .4byte 0x04000208 _08142970: .4byte 0x04000200 _08142974: .4byte REG_DISPSTAT _08142978: .4byte gMain _0814297C: .4byte 0x0000043c _08142980: ldr r0, _081429AC movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] bl sub_81435B8 ldr r0, _081429B0 adds r2, r0, 0 ldr r1, _081429B4 ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3,r5} stm r2!, {r3,r5} bl sub_80C5CD4 ldr r1, _081429B8 ldr r4, _081429BC adds r1, r4 b _081429DC .align 2, 0 _081429AC: .4byte REG_BLDCNT _081429B0: .4byte 0x0201c000 _081429B4: .4byte gUnknown_0840B57C _081429B8: .4byte gMain _081429BC: .4byte 0x0000043c _081429C0: bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade bl sub_80C5DCC lsls r0, 24 cmp r0, 0 beq _08142A12 ldr r1, _081429E4 ldr r5, _081429E8 adds r1, r5 _081429DC: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08142A12 .align 2, 0 _081429E4: .4byte gMain _081429E8: .4byte 0x0000043c _081429EC: ldr r1, _08142A18 ldr r2, _08142A1C adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r3, 0xE2 lsls r3, 3 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0 strh r0, [r1] ldr r0, _08142A20 movs r1, 0 bl CreateTask ldr r0, _08142A24 bl SetMainCallback2 _08142A12: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08142A18: .4byte REG_BLDCNT _08142A1C: .4byte 0x00003f42 _08142A20: .4byte sub_8142A28 _08142A24: .4byte sub_8141E4C thumb_func_end sub_81428CC thumb_func_start sub_8142A28 sub_8142A28: @ 8142A28 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x3 bl sub_8125EC8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08142A54 ldr r0, _08142A4C lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _08142A50 str r0, [r1] b _08142AEA .align 2, 0 _08142A4C: .4byte gTasks _08142A50: .4byte sub_8142FEC _08142A54: ldr r2, _08142A8C movs r3, 0 ldrh r1, [r2, 0x8] ldr r4, _08142A90 adds r0, r4, 0 ands r0, r1 ldr r7, _08142A94 lsls r6, r5, 2 cmp r0, 0 beq _08142A7E _08142A68: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 adds r2, 0x78 cmp r3, 0x31 bhi _08142A98 ldrh r1, [r2, 0x8] adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _08142A68 _08142A7E: cmp r3, 0x31 bhi _08142A98 adds r0, r6, r5 lsls r0, 3 adds r0, r7 subs r1, r3, 0x1 b _08142AA0 .align 2, 0 _08142A8C: .4byte 0x0201e000 _08142A90: .4byte 0x000001ff _08142A94: .4byte gTasks _08142A98: adds r0, r6, r5 lsls r0, 3 adds r0, r7 movs r1, 0x31 _08142AA0: strh r1, [r0, 0x8] movs r0, 0xA bl sub_8053108 ldr r2, _08142AF0 adds r1, r6, r5 lsls r1, 3 adds r1, r2 strh r0, [r1, 0xA] movs r3, 0 ldr r7, _08142AF4 ldr r4, _08142AF8 _08142AB8: lsls r1, r3, 1 adds r2, r1, r7 adds r0, r3, 0x3 strh r0, [r2] adds r1, r4 adds r0, 0x11 strh r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x10 bls _08142AB8 ldr r4, _08142AFC adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl InitMenuWindow ldr r1, _08142AF0 adds r0, r6, r5 lsls r0, 3 adds r0, r1 ldr r1, _08142B00 str r1, [r0] _08142AEA: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08142AF0: .4byte gTasks _08142AF4: .4byte 0x0600381a _08142AF8: .4byte 0x0600385a _08142AFC: .4byte gWindowConfig_81E7198 _08142B00: .4byte sub_8142B04 thumb_func_end sub_8142A28 thumb_func_start sub_8142B04 sub_8142B04: @ 8142B04 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r3, _08142BB8 movs r5, 0 ldr r1, _08142BBC lsls r0, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r6, r1, 0 ldr r2, _08142BC0 cmp r5, r0 bge _08142B3E adds r1, r0, 0 _08142B32: adds r3, 0x78 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r1 blt _08142B32 _08142B3E: adds r4, r3, 0 movs r0, 0 str r0, [r2] mov r5, r8 lsls r2, r5, 2 adds r1, r2, r5 lsls r1, 3 adds r1, r6 strh r0, [r1, 0xC] strh r0, [r1, 0x10] movs r5, 0 str r2, [sp, 0xC] ldr r6, _08142BC4 adds r2, r1, 0 _08142B5A: ldrh r1, [r4, 0x8] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08142B6A ldrh r0, [r2, 0x10] adds r0, 0x1 strh r0, [r2, 0x10] _08142B6A: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 adds r4, 0x14 cmp r5, 0x5 bls _08142B5A adds r4, r3, 0 movs r5, 0 ldr r1, _08142BBC ldr r0, [sp, 0xC] add r0, r8 lsls r7, r0, 3 adds r6, r7, r1 str r6, [sp, 0x8] adds r1, 0x8 mov r9, r1 ldr r0, _08142BC8 mov r10, r0 _08142B8E: ldrh r1, [r4, 0x8] ldr r2, _08142BC4 adds r0, r2, 0 ands r0, r1 adds r6, r1, 0 cmp r0, 0 beq _08142C30 ldr r1, [sp, 0x8] movs r2, 0x10 ldrsh r0, [r1, r2] cmp r0, 0x3 ble _08142BD4 lsls r1, r5, 3 ldr r0, _08142BCC adds r0, 0x4 adds r0, r1, r0 ldrh r3, [r0] ldr r0, _08142BD0 adds r1, r0 b _08142BE2 .align 2, 0 _08142BB8: .4byte 0x0201e000 _08142BBC: .4byte gTasks _08142BC0: .4byte gUnknown_0203931C _08142BC4: .4byte 0x000001ff _08142BC8: .4byte gUnknown_0840B564 _08142BCC: .4byte gUnknown_0840B534 _08142BD0: .4byte gUnknown_0840B53A _08142BD4: lsls r1, r5, 3 mov r0, r10 adds r0, 0x4 adds r0, r1, r0 ldrh r3, [r0] ldr r2, _08142C28 adds r1, r2 _08142BE2: ldrh r2, [r1] lsls r0, r6, 23 lsrs r0, 23 lsls r1, r3, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 ldr r3, [r4] str r3, [sp] ldr r3, [r4, 0x4] str r3, [sp, 0x4] adds r3, r5, 0 bl sub_81436BC lsls r0, 16 lsrs r0, 16 ldr r2, _08142C2C lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r3, [r1, 0x5] movs r6, 0xD negs r6, r6 adds r2, r6, 0 ands r3, r2 movs r2, 0x4 orrs r3, r2 strb r3, [r1, 0x5] adds r1, r5, 0x5 lsls r1, 1 adds r1, r7 add r1, r9 strh r0, [r1] b _08142C3C .align 2, 0 _08142C28: .4byte gUnknown_0840B56A _08142C2C: .4byte gSprites _08142C30: adds r0, r5, 0x5 lsls r0, 1 adds r0, r7 add r0, r9 movs r1, 0xFF strh r1, [r0] _08142C3C: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 adds r4, 0x14 cmp r5, 0x5 bls _08142B8E ldr r0, _08142CB0 ldr r2, _08142CB4 movs r1, 0xC bl BlendPalettes ldr r3, _08142CB8 ldr r1, _08142CBC adds r0, r3, 0 bl StringCopy adds r3, r0, 0 movs r5, 0xFC strb r5, [r3] movs r0, 0x14 strb r0, [r3, 0x1] movs r0, 0x6 strb r0, [r3, 0x2] adds r3, 0x3 ldr r0, _08142CC0 ldr r4, [sp, 0xC] add r4, r8 lsls r4, 3 adds r4, r0 movs r0, 0xA ldrsh r1, [r4, r0] adds r0, r3, 0 bl ConvertIntToDecimalString adds r3, r0, 0 strb r5, [r3] movs r0, 0x13 strb r0, [r3, 0x1] movs r0, 0xF0 strb r0, [r3, 0x2] movs r0, 0xFF strb r0, [r3, 0x3] ldr r0, _08142CB8 movs r1, 0 movs r2, 0 bl MenuPrint ldr r0, _08142CC4 str r0, [r4] add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08142CB0: .4byte 0xffff0000 _08142CB4: .4byte 0x0000735f _08142CB8: .4byte gStringVar1 _08142CBC: .4byte gMenuText_HOFNumber _08142CC0: .4byte gTasks _08142CC4: .4byte sub_8142CC8 thumb_func_end sub_8142B04 thumb_func_start sub_8142CC8 sub_8142CC8: @ 8142CC8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08142DD0 mov r8, r0 movs r3, 0 ldr r1, _08142DD4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] cmp r3, r0 bge _08142CFE adds r1, r0, 0 _08142CF0: movs r0, 0x78 add r8, r0 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r1 blt _08142CF0 _08142CFE: movs r3, 0 lsls r6, r4, 2 adds r0, r6, r4 lsls r5, r0, 3 ldr r1, _08142DD8 mov r10, r1 ldr r2, _08142DDC mov r12, r2 movs r0, 0xD negs r0, r0 mov r9, r0 movs r7, 0x4 _08142D16: adds r0, r3, 0x5 lsls r0, 1 adds r0, r5 add r0, r10 ldrh r1, [r0] cmp r1, 0xFF beq _08142D36 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r12 ldrb r2, [r0, 0x5] mov r1, r9 ands r1, r2 orrs r1, r7 strb r1, [r0, 0x5] _08142D36: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x5 bls _08142D16 adds r1, r6, r4 lsls r1, 3 ldr r2, _08142DD4 adds r5, r1, r2 movs r2, 0xC ldrsh r0, [r5, r2] adds r0, 0x5 lsls r0, 1 adds r0, r1 ldr r1, _08142DD4 adds r1, 0x8 adds r0, r1 ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08142DDC adds r0, r1 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 strb r1, [r0, 0x5] lsrs r1, 4 movs r0, 0x80 lsls r0, 9 lsls r0, r1 ldr r1, _08142DE0 eors r0, r1 ldr r2, _08142DE4 str r0, [r2] ldr r2, _08142DE8 movs r1, 0xC bl BlendPalettesUnfaded movs r0, 0xC ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 mov r1, r8 adds r4, r1, r0 ldrh r1, [r4, 0x8] ldr r0, _08142DEC ands r0, r1 movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _08142DB2 bl StopCryAndClearCrySongs ldrh r0, [r4, 0x8] lsls r0, 23 lsrs r0, 23 movs r1, 0 bl PlayCry1 _08142DB2: adds r0, r4, 0 movs r1, 0 movs r2, 0xE bl sub_8143088 ldr r0, _08142DF0 str r0, [r5] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08142DD0: .4byte 0x0201e000 _08142DD4: .4byte gTasks _08142DD8: .4byte gUnknown_03004B28 _08142DDC: .4byte gSprites _08142DE0: .4byte 0xffff0000 _08142DE4: .4byte gUnknown_0203931C _08142DE8: .4byte 0x0000735f _08142DEC: .4byte 0x000001ff _08142DF0: .4byte sub_8142DF4 thumb_func_end sub_8142CC8 thumb_func_start sub_8142DF4 sub_8142DF4: @ 8142DF4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _08142E88 ldrh r2, [r1, 0x2E] movs r0, 0x1 ands r0, r2 adds r3, r1, 0 cmp r0, 0 beq _08142EC4 ldr r7, _08142E8C lsls r0, r6, 2 adds r1, r0, r6 lsls r3, r1, 3 adds r4, r3, r7 ldrh r2, [r4, 0x8] movs r5, 0x8 ldrsh r1, [r4, r5] mov r8, r0 cmp r1, 0 beq _08142E98 subs r0, r2, 0x1 strh r0, [r4, 0x8] movs r5, 0 adds r7, 0x8 mov r9, r7 adds r7, r3, 0 _08142E30: adds r0, r5, 0x5 lsls r0, 1 adds r0, r7 add r0, r9 ldrb r1, [r0] cmp r1, 0xFF beq _08142E5E ldr r0, _08142E90 lsls r4, r1, 4 adds r4, r1 lsls r4, 2 adds r4, r0 ldrb r0, [r4, 0x5] lsrs r0, 4 bl GetSpritePaletteTagByPaletteNum lsls r0, 16 lsrs r0, 16 bl FreeSpritePaletteByTag adds r0, r4, 0 bl DestroySprite _08142E5E: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x5 bls _08142E30 ldr r0, _08142E8C mov r2, r8 adds r1, r2, r6 lsls r1, 3 adds r1, r0 ldrh r2, [r1, 0xA] movs r3, 0xA ldrsh r0, [r1, r3] cmp r0, 0 beq _08142E80 subs r0, r2, 0x1 strh r0, [r1, 0xA] _08142E80: ldr r0, _08142E94 str r0, [r1] b _08142F64 .align 2, 0 _08142E88: .4byte gMain _08142E8C: .4byte gTasks _08142E90: .4byte gSprites _08142E94: .4byte sub_8142B04 _08142E98: bl IsCryPlayingOrClearCrySongs lsls r0, 24 cmp r0, 0 beq _08142EB2 bl StopCryAndClearCrySongs ldr r0, _08142EB8 ldr r1, _08142EBC movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl _08142EB2: ldr r0, _08142EC0 str r0, [r4] b _08142F64 .align 2, 0 _08142EB8: .4byte gMPlay_BGM _08142EBC: .4byte 0x0000ffff _08142EC0: .4byte sub_8142F78 _08142EC4: movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _08142F08 bl IsCryPlayingOrClearCrySongs lsls r0, 24 cmp r0, 0 beq _08142EE6 bl StopCryAndClearCrySongs ldr r0, _08142EF8 ldr r1, _08142EFC movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl _08142EE6: ldr r0, _08142F00 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, _08142F04 str r0, [r1] b _08142F64 .align 2, 0 _08142EF8: .4byte gMPlay_BGM _08142EFC: .4byte 0x0000ffff _08142F00: .4byte gTasks _08142F04: .4byte sub_8142F78 _08142F08: movs r0, 0x40 ands r0, r2 cmp r0, 0 beq _08142F38 ldr r0, _08142F30 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldrh r2, [r1, 0xC] movs r4, 0xC ldrsh r0, [r1, r4] cmp r0, 0 beq _08142F38 subs r0, r2, 0x1 strh r0, [r1, 0xC] ldr r0, _08142F34 str r0, [r1] b _08142F64 .align 2, 0 _08142F30: .4byte gTasks _08142F34: .4byte sub_8142CC8 _08142F38: ldrh r1, [r3, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08142F64 ldr r1, _08142F70 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r2, r0, r1 movs r5, 0xC ldrsh r1, [r2, r5] movs r3, 0x10 ldrsh r0, [r2, r3] subs r0, 0x1 cmp r1, r0 bge _08142F64 ldrh r0, [r2, 0xC] adds r0, 0x1 strh r0, [r2, 0xC] ldr r0, _08142F74 str r0, [r2] _08142F64: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08142F70: .4byte gTasks _08142F74: .4byte sub_8142CC8 thumb_func_end sub_8142DF4 thumb_func_start sub_8142F78 sub_8142F78: @ 8142F78 push {r4-r6,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _08142FB4 ldr r1, _08142FB8 movs r2, 0x80 lsls r2, 2 bl CpuSet ldr r0, _08142FBC adds r2, r0, 0 ldr r1, _08142FC0 ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldm r1!, {r3,r5} stm r2!, {r3,r5} bl sub_80C5E38 ldr r1, _08142FC4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08142FC8 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08142FB4: .4byte gPlttBufferFaded _08142FB8: .4byte gPlttBufferUnfaded _08142FBC: .4byte 0x0201c000 _08142FC0: .4byte gUnknown_0840B57C _08142FC4: .4byte gTasks _08142FC8: .4byte sub_8142FCC thumb_func_end sub_8142F78 thumb_func_start sub_8142FCC sub_8142FCC: @ 8142FCC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_80C5F98 lsls r0, 24 cmp r0, 0 beq _08142FE6 adds r0, r4, 0 bl DestroyTask bl sub_810D62C _08142FE6: pop {r4} pop {r0} bx r0 thumb_func_end sub_8142FCC thumb_func_start sub_8142FEC sub_8142FEC: @ 8142FEC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x2 movs r1, 0xE movs r2, 0x1B movs r3, 0x13 bl MenuDrawTextWindow ldr r0, _08143020 movs r1, 0x3 movs r2, 0xF bl MenuPrintMessage ldr r1, _08143024 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08143028 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08143020: .4byte gMenuText_HOFCorrupt _08143024: .4byte gTasks _08143028: .4byte sub_814302C thumb_func_end sub_8142FEC thumb_func_start sub_814302C sub_814302C: @ 814302C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl MenuUpdateWindowText lsls r0, 24 cmp r0, 0 beq _08143056 ldr r0, _0814305C ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08143056 ldr r0, _08143060 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08143064 str r0, [r1] _08143056: pop {r4} pop {r0} bx r0 .align 2, 0 _0814305C: .4byte gMain _08143060: .4byte gTasks _08143064: .4byte sub_8142F78 thumb_func_end sub_814302C thumb_func_start sub_8143068 sub_8143068: @ 8143068 push {lr} lsls r2, r1, 24 ldr r0, _08143084 movs r1, 0x80 lsls r1, 17 adds r2, r1 lsrs r2, 24 movs r1, 0 movs r3, 0xF0 bl sub_8072BD8 pop {r0} bx r0 .align 2, 0 _08143084: .4byte gMenuText_WelcomeToHOFAndDexRating thumb_func_end sub_8143068 thumb_func_start sub_8143088 sub_8143088: @ 8143088 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 mov r9, r0 lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r2, 24 lsrs r2, 24 mov r10, r2 ldr r7, _08143188 movs r0, 0xFC strb r0, [r7] movs r0, 0x13 strb r0, [r7, 0x1] movs r0, 0x28 strb r0, [r7, 0x2] movs r0, 0xFF strb r0, [r7, 0x3] mov r0, r9 ldrh r2, [r0, 0x8] ldr r0, _0814318C ands r0, r2 movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _081430EA lsls r0, r2, 23 lsrs r0, 23 bl sub_80406D8 lsls r0, 16 lsrs r6, r0, 16 ldr r0, _08143190 cmp r6, r0 beq _081430EA ldr r1, _08143194 adds r0, r7, 0 bl StringCopy adds r7, r0, 0 adds r1, r6, 0 movs r2, 0x2 movs r3, 0x3 bl ConvertIntToDecimalStringN _081430EA: ldr r5, _08143188 mov r1, r8 adds r1, 0x4 lsls r1, 24 lsrs r1, 24 mov r4, r10 adds r4, 0x1 lsls r2, r4, 24 lsrs r2, 24 adds r0, r5, 0 bl MenuPrint adds r7, r5, 0 movs r3, 0 mov r1, r9 ldrb r0, [r1, 0xA] str r4, [sp] mov r2, r8 adds r2, 0x9 str r2, [sp, 0xC] mov r6, r10 adds r6, 0x3 str r6, [sp, 0x8] cmp r0, 0xFF beq _0814313A mov r2, r9 adds r2, 0xA _08143120: adds r1, r7, r3 adds r0, r2, r3 ldrb r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x9 bhi _0814313A adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0xFF bne _08143120 _0814313A: adds r7, r3 movs r2, 0xFF strb r2, [r7] mov r1, r9 ldrh r0, [r1, 0x8] ldr r1, _0814318C ands r1, r0 movs r0, 0xCE lsls r0, 1 cmp r1, r0 bne _08143198 movs r0, 0xFC strb r0, [r7] movs r0, 0x13 strb r0, [r7, 0x1] movs r0, 0xA0 strb r0, [r7, 0x2] strb r2, [r7, 0x3] ldr r0, _08143188 ldr r2, [sp, 0xC] lsls r1, r2, 24 lsrs r1, 24 ldr r3, [sp] lsls r2, r3, 24 lsrs r2, 24 bl MenuPrint ldr r6, [sp, 0x8] lsls r1, r6, 24 lsrs r1, 24 mov r3, r10 adds r3, 0x4 lsls r3, 24 lsrs r3, 24 movs r0, 0 movs r2, 0x1D bl MenuZeroFillWindowRect b _081432E4 .align 2, 0 _08143188: .4byte gStringVar1 _0814318C: .4byte 0x000001ff _08143190: .4byte 0x0000ffff _08143194: .4byte gOtherText_Number2 _08143198: movs r0, 0xFC strb r0, [r7] movs r0, 0x13 strb r0, [r7, 0x1] movs r0, 0x3E strb r0, [r7, 0x2] adds r7, 0x3 movs r0, 0xBA strb r0, [r7] adds r7, 0x1 movs r3, 0 ldr r2, _08143238 mov r1, r9 ldrh r0, [r1, 0x8] lsls r0, 23 lsrs r0, 23 movs r1, 0xB muls r0, r1 adds r0, r2 ldrb r0, [r0] mov r6, r8 adds r6, 0x7 str r6, [sp, 0x4] mov r1, r8 adds r1, 0xD str r1, [sp, 0x10] cmp r0, 0xFF beq _08143204 adds r5, r2, 0 movs r4, 0xB _081431D4: adds r1, r7, r3 mov r6, r9 ldrh r0, [r6, 0x8] lsls r0, 23 lsrs r0, 23 muls r0, r4 adds r0, r3, r0 adds r0, r5 ldrb r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x9 bhi _08143204 ldrh r0, [r6, 0x8] lsls r0, 23 lsrs r0, 23 muls r0, r4 adds r0, r3, r0 adds r0, r2 ldrb r0, [r0] cmp r0, 0xFF bne _081431D4 _08143204: adds r7, r3 movs r0, 0 strb r0, [r7] adds r7, 0x1 mov r1, r9 ldrh r0, [r1, 0x8] ldr r1, _0814323C ands r1, r0 cmp r1, 0x20 beq _0814324A cmp r1, 0x1D beq _0814324A lsls r0, 23 lsrs r0, 23 mov r2, r9 ldr r1, [r2, 0x4] bl GetGenderFromSpeciesAndPersonality lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08143240 cmp r0, 0xFE beq _08143244 b _0814324A .align 2, 0 _08143238: .4byte gSpeciesNames _0814323C: .4byte 0x000001ff _08143240: movs r0, 0xB5 b _08143246 _08143244: movs r0, 0xB6 _08143246: strb r0, [r7] adds r7, 0x1 _0814324A: movs r4, 0xFC strb r4, [r7] movs r3, 0x13 mov r8, r3 strb r3, [r7, 0x1] movs r0, 0xA0 strb r0, [r7, 0x2] movs r6, 0xFF mov r10, r6 strb r6, [r7, 0x3] ldr r5, _081432F4 ldr r0, [sp, 0xC] lsls r1, r0, 24 lsrs r1, 24 ldr r3, [sp] lsls r2, r3, 24 lsrs r2, 24 adds r0, r5, 0 bl MenuPrint mov r6, r9 ldrb r0, [r6, 0x9] lsrs r6, r0, 1 ldr r1, _081432F8 adds r0, r5, 0 bl StringCopy adds r7, r0, 0 strb r4, [r7] movs r0, 0x14 strb r0, [r7, 0x1] movs r0, 0x6 strb r0, [r7, 0x2] adds r7, 0x3 adds r0, r7, 0 adds r1, r6, 0 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN adds r7, r0, 0 strb r4, [r7] mov r0, r8 strb r0, [r7, 0x1] movs r0, 0x30 strb r0, [r7, 0x2] mov r1, r10 strb r1, [r7, 0x3] ldr r2, [sp, 0x4] lsls r1, r2, 24 lsrs r1, 24 ldr r3, [sp, 0x8] lsls r4, r3, 24 lsrs r4, 24 adds r0, r5, 0 adds r2, r4, 0 bl MenuPrint mov r0, r9 ldrh r6, [r0] ldr r1, _081432FC adds r0, r5, 0 bl StringCopy adds r7, r0, 0 adds r1, r6, 0 movs r2, 0x2 movs r3, 0x5 bl ConvertIntToDecimalStringN ldr r2, [sp, 0x10] lsls r1, r2, 24 lsrs r1, 24 adds r0, r5, 0 adds r2, r4, 0 bl MenuPrint _081432E4: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081432F4: .4byte gStringVar1 _081432F8: .4byte gOtherText_Level3 _081432FC: .4byte gOtherText_IDNumber thumb_func_end sub_8143088 thumb_func_start sub_8143300 sub_8143300: @ 8143300 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} adds r5, r0, 0 adds r4, r1, 0 lsls r5, 24 lsls r4, 24 ldr r0, _081433CC lsrs r1, r5, 24 mov r8, r1 movs r2, 0x80 lsls r2, 17 adds r5, r2 lsrs r5, 24 lsrs r6, r4, 24 adds r4, r2 lsrs r4, 24 adds r1, r5, 0 adds r2, r4, 0 bl MenuPrint ldr r0, _081433D0 mov r10, r0 movs r1, 0xE add r8, r1 mov r2, r8 lsls r2, 24 lsrs r2, 24 mov r8, r2 mov r1, r8 adds r2, r4, 0 bl sub_8072B4C ldr r0, _081433D4 adds r4, r6, 0x3 lsls r4, 24 lsrs r4, 24 adds r1, r5, 0 adds r2, r4, 0 bl MenuPrint mov r0, r10 ldrb r1, [r0, 0xA] ldrb r0, [r0, 0xB] lsls r0, 8 orrs r1, r0 ldr r2, _081433D8 mov r9, r2 mov r0, r9 movs r2, 0x2 movs r3, 0x5 bl ConvertIntToDecimalStringN mov r0, r9 mov r1, r8 adds r2, r4, 0 bl sub_8072B4C ldr r0, _081433DC adds r6, 0x5 lsls r6, 24 lsrs r6, 24 adds r1, r5, 0 adds r2, r6, 0 bl MenuPrint mov r0, r10 ldrh r1, [r0, 0xE] mov r0, r9 bl ConvertIntToDecimalString adds r2, r0, 0 movs r1, 0 strb r1, [r2] movs r0, 0xF0 strb r0, [r2, 0x1] strb r1, [r2, 0x2] adds r2, 0x3 mov r0, r10 ldrb r1, [r0, 0x10] adds r0, r2, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN adds r2, r0, 0 movs r0, 0xFF strb r0, [r2] mov r0, r9 mov r1, r8 adds r2, r6, 0 bl sub_8072B4C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081433CC: .4byte gOtherText_Name _081433D0: .4byte gSaveBlock2 _081433D4: .4byte gOtherText_IDNumber2 _081433D8: .4byte gStringVar1 _081433DC: .4byte gMainMenuString_Time thumb_func_end sub_8143300 thumb_func_start sub_81433E0 sub_81433E0: @ 81433E0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 movs r0, 0x80 lsls r0, 19 movs r1, 0 strh r1, [r0] adds r0, 0x8 strh r1, [r0] adds r0, 0x8 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x8 strh r1, [r0] adds r0, 0xA strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0xA strh r1, [r0] adds r0, 0xC strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0xC strh r1, [r0] adds r0, 0xE strh r1, [r0] adds r0, 0x2 strh r1, [r0] movs r3, 0xC0 lsls r3, 19 movs r4, 0xC0 lsls r4, 9 add r0, sp, 0x4 mov r8, r0 ldr r1, _0814354C mov r9, r1 mov r2, sp movs r6, 0 ldr r1, _08143550 movs r5, 0x80 lsls r5, 5 ldr r7, _08143554 movs r0, 0x81 lsls r0, 24 mov r12, r0 _08143444: strh r6, [r2] mov r0, sp str r0, [r1] str r3, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r5 subs r4, r5 cmp r4, r5 bhi _08143444 strh r6, [r2] mov r2, sp str r2, [r1] str r3, [r1, 0x4] lsrs r0, r4, 1 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0xE0 lsls r0, 19 movs r3, 0x80 lsls r3, 3 movs r4, 0 str r4, [sp, 0x4] ldr r2, _08143550 mov r1, r8 str r1, [r2] str r0, [r2, 0x4] lsrs r0, r3, 2 movs r1, 0x85 lsls r1, 24 orrs r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r1, 0xA0 lsls r1, 19 mov r0, sp strh r4, [r0] str r0, [r2] str r1, [r2, 0x4] lsrs r3, 1 movs r0, 0x81 lsls r0, 24 orrs r3, r0 str r3, [r2, 0x8] ldr r0, [r2, 0x8] movs r1, 0xC0 lsls r1, 19 mov r0, r9 bl LZ77UnCompVram movs r1, 0 ldr r3, _08143558 movs r2, 0x1 _081434B2: lsls r0, r1, 1 adds r0, r3 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x3F bls _081434B2 movs r1, 0 ldr r5, _0814355C ldr r3, _08143560 movs r2, 0x1 _081434CA: lsls r0, r1, 1 adds r0, r3 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0xBF bls _081434CA movs r1, 0 ldr r4, _08143564 movs r3, 0x2 ldr r2, _08143568 _081434E2: lsls r0, r1, 1 adds r0, r4 strh r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r2 bls _081434E2 adds r2, r5, 0 movs r3, 0x80 lsls r3, 7 mov r4, sp movs r6, 0 ldr r1, _08143550 movs r5, 0x80 lsls r5, 5 ldr r7, _08143554 movs r0, 0x81 lsls r0, 24 mov r12, r0 _0814350A: strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r5 subs r3, r5 cmp r3, r5 bhi _0814350A strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 1 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl ResetPaletteFade ldr r0, _0814356C movs r1, 0 movs r2, 0x20 bl LoadPalette add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0814354C: .4byte gHallOfFame_Gfx _08143550: .4byte 0x040000d4 _08143554: .4byte 0x81000800 _08143558: .4byte 0x06003800 _0814355C: .4byte 0x02000000 _08143560: .4byte 0x06003b80 _08143564: .4byte 0x06003000 _08143568: .4byte 0x000003ff _0814356C: .4byte gHallOfFame_Pal thumb_func_end sub_81433E0 thumb_func_start sub_8143570 sub_8143570: @ 8143570 push {r4,lr} bl remove_some_task bl ResetTasks bl ResetSpriteData bl FreeAllSpritePalettes ldr r1, _081435A8 movs r0, 0x8 strb r0, [r1] ldr r0, _081435AC bl LoadCompressedObjectPic ldr r0, _081435B0 bl LoadCompressedObjectPalette ldr r4, _081435B4 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl InitMenuWindow pop {r4} pop {r0} bx r0 .align 2, 0 _081435A8: .4byte gReservedSpritePaletteCount _081435AC: .4byte gUnknown_0840B514 _081435B0: .4byte gUnknown_0840B524 _081435B4: .4byte gWindowConfig_81E71B4 thumb_func_end sub_8143570 thumb_func_start sub_81435B8 sub_81435B8: @ 81435B8 ldr r1, _081435D8 movs r2, 0xE0 lsls r2, 3 adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 subs r2, 0xFD adds r0, r2, 0 strh r0, [r1] subs r1, 0xE movs r2, 0xDA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] bx lr .align 2, 0 _081435D8: .4byte REG_BG1CNT thumb_func_end sub_81435B8 thumb_func_start sub_81435DC sub_81435DC: @ 81435DC push {r4,lr} adds r2, r0, 0 ldr r1, [r2, 0x20] ldr r0, [r2, 0x30] cmp r1, r0 beq _08143632 ldrh r3, [r2, 0x20] movs r1, 0x20 ldrsh r0, [r2, r1] movs r4, 0x30 ldrsh r1, [r2, r4] cmp r0, r1 bge _081435FC adds r0, r3, 0 adds r0, 0xF strh r0, [r2, 0x20] _081435FC: ldrh r3, [r2, 0x20] movs r4, 0x20 ldrsh r0, [r2, r4] cmp r0, r1 ble _0814360C adds r0, r3, 0 subs r0, 0xF strh r0, [r2, 0x20] _0814360C: ldrh r3, [r2, 0x22] movs r1, 0x22 ldrsh r0, [r2, r1] movs r4, 0x32 ldrsh r1, [r2, r4] cmp r0, r1 bge _08143620 adds r0, r3, 0 adds r0, 0xA strh r0, [r2, 0x22] _08143620: ldrh r3, [r2, 0x22] movs r4, 0x22 ldrsh r0, [r2, r4] cmp r0, r1 ble _0814363A adds r0, r3, 0 subs r0, 0xA strh r0, [r2, 0x22] b _0814363A _08143632: movs r0, 0x1 strh r0, [r2, 0x2E] ldr r0, _08143640 str r0, [r2, 0x1C] _0814363A: pop {r4} pop {r0} bx r0 .align 2, 0 _08143640: .4byte nullsub_81 thumb_func_end sub_81435DC thumb_func_start nullsub_81 nullsub_81: @ 8143644 bx lr thumb_func_end nullsub_81 thumb_func_start sub_8143648 sub_8143648: @ 8143648 push {r4-r7,lr} lsls r1, 24 ldr r4, _08143670 adds r3, r4, 0 ldr r2, _08143674 ldm r2!, {r5-r7} stm r3!, {r5-r7} ldm r2!, {r5-r7} stm r3!, {r5-r7} strh r0, [r4, 0x2] ldr r0, _08143678 lsrs r1, 22 adds r1, r0 ldr r0, [r1] str r0, [r4, 0xC] ldr r0, _0814367C str r0, [r4, 0x8] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08143670: .4byte gUnknown_02024E8C _08143674: .4byte gUnknown_0840B6B8 _08143678: .4byte gUnknown_0840B69C _0814367C: .4byte gSpriteAnimTable_81E7C64 thumb_func_end sub_8143648 thumb_func_start sub_8143680 sub_8143680: @ 8143680 push {r4-r7,lr} lsls r1, 24 ldr r4, _081436AC adds r3, r4, 0 ldr r2, _081436B0 ldm r2!, {r5-r7} stm r3!, {r5-r7} ldm r2!, {r5-r7} stm r3!, {r5-r7} strh r0, [r4, 0x2] ldr r0, _081436B4 lsrs r1, 22 adds r1, r0 ldr r0, [r1] str r0, [r4, 0xC] ldr r0, _081436B8 ldr r0, [r0] str r0, [r4, 0x8] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081436AC: .4byte gUnknown_02024E8C _081436B0: .4byte gUnknown_0840B6B8 _081436B4: .4byte gUnknown_0840B69C _081436B8: .4byte gUnknown_081EC2A4 thumb_func_end sub_8143680 thumb_func_start sub_81436BC sub_81436BC: @ 81436BC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 adds r6, r0, 0 mov r9, r1 mov r10, r2 mov r8, r3 ldr r7, [sp, 0x34] lsls r6, 16 lsrs r6, 16 mov r0, r9 lsls r0, 16 lsrs r0, 16 mov r9, r0 mov r1, r10 lsls r1, 16 lsrs r1, 16 mov r10, r1 mov r2, r8 lsls r2, 16 lsrs r2, 16 mov r8, r2 lsls r0, r6, 3 ldr r1, _08143790 adds r0, r1 ldr r1, _08143794 lsls r2, r6, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08143798 mov r12, r4 mov r5, r8 lsls r4, r5, 2 add r4, r12 ldr r4, [r4] str r4, [sp] str r6, [sp, 0x4] str r7, [sp, 0x8] movs r4, 0x1 str r4, [sp, 0xC] bl sub_800D378 adds r0, r6, 0 ldr r1, [sp, 0x30] adds r2, r7, 0 bl species_and_otid_get_pal lsls r4, r5, 4 movs r2, 0x80 lsls r2, 1 adds r1, r4, r2 lsls r1, 16 lsrs r1, 16 movs r2, 0x20 bl LoadCompressedPalette lsls r1, r5, 24 lsrs r1, 24 mov r0, r8 bl sub_8143648 ldr r0, _0814379C mov r5, r9 lsls r5, 16 asrs r5, 16 mov r9, r5 mov r1, r10 lsls r1, 16 asrs r1, 16 mov r10, r1 movs r3, 0xA mov r2, r8 subs r3, r2 lsls r3, 24 lsrs r3, 24 mov r1, r9 mov r2, r10 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _081437A0 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 ldrb r3, [r2, 0x5] movs r1, 0xF ands r1, r3 orrs r1, r4 strb r1, [r2, 0x5] add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08143790: .4byte gMonFrontPicTable _08143794: .4byte gMonFrontPicCoords _08143798: .4byte gUnknown_0840B5A0 _0814379C: .4byte gUnknown_02024E8C _081437A0: .4byte gSprites thumb_func_end sub_81436BC thumb_func_start sub_81437A4 sub_81437A4: @ 81437A4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r9, r1 mov r10, r2 adds r6, r3, 0 lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 mov r9, r1 lsls r2, 16 lsrs r2, 16 mov r10, r2 lsls r6, 16 lsrs r6, 16 lsls r7, r0, 3 ldr r1, _08143854 mov r8, r1 add r8, r7 ldr r1, _08143858 lsls r2, r0, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r5, _0814385C lsls r4, r6, 2 adds r4, r5 ldr r4, [r4] str r4, [sp] str r0, [sp, 0x4] mov r0, r8 bl DecompressPicFromTable_2 ldr r0, _08143860 adds r0, r7, r0 ldr r0, [r0] lsls r4, r6, 4 movs r2, 0x80 lsls r2, 1 adds r1, r4, r2 lsls r1, 16 lsrs r1, 16 movs r2, 0x20 bl LoadCompressedPalette lsls r1, r6, 24 lsrs r1, 24 adds r0, r6, 0 bl sub_8143680 ldr r0, _08143864 mov r1, r9 lsls r1, 16 asrs r1, 16 mov r9, r1 mov r2, r10 lsls r2, 16 asrs r2, 16 mov r10, r2 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _08143868 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 ldrb r3, [r2, 0x5] movs r1, 0xF ands r1, r3 orrs r1, r4 strb r1, [r2, 0x5] add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08143854: .4byte gTrainerFrontPicTable _08143858: .4byte gTrainerFrontPicCoords _0814385C: .4byte gUnknown_0840B5A0 _08143860: .4byte gTrainerFrontPicPaletteTable _08143864: .4byte gUnknown_02024E8C _08143868: .4byte gSprites thumb_func_end sub_81437A4 thumb_func_start sub_814386C sub_814386C: @ 814386C push {r4,r5,lr} adds r5, r0, 0 ldrh r1, [r5, 0x26] movs r2, 0x26 ldrsh r0, [r5, r2] cmp r0, 0x78 ble _08143882 adds r0, r5, 0 bl DestroySprite b _081438BA _08143882: adds r0, r1, 0x1 ldrh r1, [r5, 0x30] adds r0, r1 strh r0, [r5, 0x26] ldrh r4, [r5, 0x2E] lsls r4, 24 lsrs r4, 24 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 ands r0, r1 adds r0, 0x8 ldr r1, _081438C0 lsls r4, 1 adds r4, r1 movs r2, 0 ldrsh r1, [r4, r2] muls r0, r1 cmp r0, 0 bge _081438B0 adds r0, 0xFF _081438B0: asrs r0, 8 strh r0, [r5, 0x24] ldrh r0, [r5, 0x2E] adds r0, 0x4 strh r0, [r5, 0x2E] _081438BA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081438C0: .4byte gSineTable thumb_func_end sub_814386C thumb_func_start sub_81438C4 sub_81438C4: @ 81438C4 push {r4,lr} bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xF0 bl __umodsi3 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 bl Random adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 movs r0, 0x7 ands r2, r0 negs r2, r2 ldr r0, _08143934 lsls r4, 16 asrs r4, 16 lsls r2, 16 asrs r2, 16 adds r1, r4, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _08143938 adds r4, r1, r0 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x11 bl __umodsi3 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim bl Random movs r1, 0x3 ands r1, r0 cmp r1, 0 beq _0814393C movs r0, 0 b _0814393E .align 2, 0 _08143934: .4byte gSpriteTemplate_840B7A4 _08143938: .4byte gSprites _0814393C: movs r0, 0x1 _0814393E: strh r0, [r4, 0x30] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_81438C4 thumb_func_start sub_8143948 sub_8143948: @ 8143948 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8143948 thumb_func_start sub_814395C sub_814395C: @ 814395C push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade ldr r0, _081439B8 ldrh r1, [r0, 0x2C] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081439B2 ldr r0, _081439BC ldrb r0, [r0] cmp r0, 0 beq _081439B2 ldr r2, _081439C0 ldr r0, _081439C4 ldrh r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, [r0] ldr r0, _081439C8 cmp r1, r0 bne _081439B2 bl sub_8143948 bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade ldr r1, _081439CC movs r0, 0x1 strb r0, [r1] _081439B2: pop {r0} bx r0 .align 2, 0 _081439B8: .4byte gMain _081439BC: .4byte gUnknown_02039324 _081439C0: .4byte gTasks _081439C4: .4byte gUnknown_02039322 _081439C8: .4byte sub_8143B68 _081439CC: .4byte gUnknown_02039325 thumb_func_end sub_814395C thumb_func_start sub_81439D0 sub_81439D0: @ 81439D0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 bl sub_8144130 movs r0, 0 bl SetVBlankCallback bl ResetPaletteFade bl ResetTasks ldr r0, _08143AF0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08143AF4 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x10] strh r1, [r0, 0x16] strh r1, [r0, 0x1E] movs r1, 0x1 strh r1, [r0, 0x22] _08143A0E: movs r0, 0 adds r1, r7, 0 bl sub_8144ECC lsls r0, 24 cmp r0, 0 beq _08143A0E ldr r6, _08143AF4 lsls r5, r7, 2 adds r5, r7 lsls r5, 3 adds r5, r6 movs r0, 0xA ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 movs r1, 0 mov r9, r1 movs r2, 0 mov r8, r2 movs r1, 0x28 strh r1, [r0, 0x8] ldr r4, _08143AF8 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl InitMenuWindow ldr r0, _08143AFC movs r1, 0x80 movs r2, 0x40 bl LoadPalette ldr r0, _08143B00 ldr r1, _08143B04 movs r2, 0x20 bl CpuSet ldr r1, _08143B08 ldr r2, _08143B0C adds r0, r2, 0 strh r0, [r1] ldr r0, _08143B10 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r6 strh r7, [r1, 0xA] strh r0, [r5, 0x26] movs r0, 0x1 negs r0, r0 mov r1, r8 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r3, _08143B14 ldrh r2, [r3] mov r0, r8 strh r0, [r3] ldr r4, _08143B18 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _08143B1C ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _08143B20 bl SetVBlankCallback ldr r0, _08143B24 bl m4aSongNumStart ldr r0, _08143B28 bl SetMainCallback2 ldr r0, _08143B2C mov r1, r9 strb r1, [r0] ldr r4, _08143B30 bl sub_81458DC adds r0, r4, 0 adds r0, 0x88 mov r2, r8 strh r2, [r0] adds r0, 0x2 strh r2, [r0] adds r0, 0x2 strh r2, [r0] ldr r0, _08143B34 strh r7, [r0] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08143AF0: .4byte sub_8143B38 _08143AF4: .4byte gTasks _08143AF8: .4byte gWindowConfig_81E7208 _08143AFC: .4byte gUnknown_0840B7BC _08143B00: .4byte gUnknown_0840B7FC _08143B04: .4byte 0x0600bee0 _08143B08: .4byte REG_BG0VOFS _08143B0C: .4byte 0x0000fffc _08143B10: .4byte sub_81441B8 _08143B14: .4byte 0x04000208 _08143B18: .4byte 0x04000200 _08143B1C: .4byte REG_DISPSTAT _08143B20: .4byte sub_8143948 _08143B24: .4byte 0x000001c7 _08143B28: .4byte sub_814395C _08143B2C: .4byte gUnknown_02039325 _08143B30: .4byte 0x0201c000 _08143B34: .4byte gUnknown_02039322 thumb_func_end sub_81439D0 thumb_func_start sub_8143B38 sub_8143B38: @ 8143B38 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _08143B5C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08143B58 ldr r0, _08143B60 lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _08143B64 str r0, [r1] _08143B58: pop {r0} bx r0 .align 2, 0 _08143B5C: .4byte gPaletteFade _08143B60: .4byte gTasks _08143B64: .4byte sub_8143B68 thumb_func_end sub_8143B38 thumb_func_start sub_8143B68 sub_8143B68: @ 8143B68 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r2, _08143B9C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 movs r0, 0x10 ldrsh r1, [r4, r0] cmp r1, 0 beq _08143BA4 movs r3, 0xA ldrsh r1, [r4, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r1, 0x1E strh r1, [r0, 0x8] movs r0, 0x80 lsls r0, 1 strh r0, [r4, 0x20] ldr r0, _08143BA0 b _08143BEE .align 2, 0 _08143B9C: .4byte gTasks _08143BA0: .4byte sub_8143EBC _08143BA4: ldr r0, _08143BCC strh r1, [r0] ldrh r2, [r4, 0x1E] movs r3, 0x1E ldrsh r0, [r4, r3] cmp r0, 0x1 bne _08143BD4 strh r2, [r4, 0x22] strh r1, [r4, 0x1E] movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _08143BD0 b _08143BEE .align 2, 0 _08143BCC: .4byte gUnknown_02039320 _08143BD0: .4byte sub_8143BFC _08143BD4: cmp r0, 0x2 bne _08143BF0 strh r2, [r4, 0x22] strh r1, [r4, 0x1E] movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _08143BF8 _08143BEE: str r0, [r4] _08143BF0: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08143BF8: .4byte sub_8143CC0 thumb_func_end sub_8143B68 thumb_func_start sub_8143BFC sub_8143BFC: @ 8143BFC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08143C34 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _08143C2C movs r0, 0x80 lsls r0, 19 strh r1, [r0] adds r0, r4, 0 bl sub_81450AC ldr r1, _08143C38 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08143C3C str r1, [r0] _08143C2C: pop {r4} pop {r0} bx r0 .align 2, 0 _08143C34: .4byte gPaletteFade _08143C38: .4byte gTasks _08143C3C: .4byte c2_080C9BFC thumb_func_end sub_8143BFC thumb_func_start c2_080C9BFC c2_080C9BFC: @ 8143C40 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 bl SetVBlankCallback ldr r1, _08143CA8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r5, r0, r1 ldrb r0, [r5, 0x16] adds r1, r4, 0 bl sub_8144ECC lsls r0, 24 cmp r0, 0 beq _08143CA0 movs r0, 0x1 negs r0, r0 movs r4, 0 str r4, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r3, _08143CAC ldrh r2, [r3] strh r4, [r3] ldr r4, _08143CB0 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _08143CB4 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _08143CB8 bl SetVBlankCallback ldr r0, _08143CBC str r0, [r5] _08143CA0: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08143CA8: .4byte gTasks _08143CAC: .4byte 0x04000208 _08143CB0: .4byte 0x04000200 _08143CB4: .4byte REG_DISPSTAT _08143CB8: .4byte sub_8143948 _08143CBC: .4byte sub_8143B38 thumb_func_end c2_080C9BFC thumb_func_start sub_8143CC0 sub_8143CC0: @ 8143CC0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08143CF8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _08143CF0 movs r0, 0x80 lsls r0, 19 strh r1, [r0] adds r0, r4, 0 bl sub_81450AC ldr r1, _08143CFC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08143D00 str r1, [r0] _08143CF0: pop {r4} pop {r0} bx r0 .align 2, 0 _08143CF8: .4byte gPaletteFade _08143CFC: .4byte gTasks _08143D00: .4byte sub_8143D04 thumb_func_end sub_8143CC0 thumb_func_start sub_8143D04 sub_8143D04: @ 8143D04 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _08143DC8 ldr r1, _08143DCC adds r1, r0 mov r8, r1 ldrb r7, [r1] cmp r7, 0 beq _08143D24 cmp r7, 0x1 beq _08143E0C _08143D24: bl ResetSpriteData bl FreeAllSpritePalettes ldr r1, _08143DD0 movs r0, 0x8 strb r0, [r1] ldr r0, _08143DD4 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _08143DD8 ldr r1, _08143DDC bl LZ77UnCompVram ldr r0, _08143DE0 movs r1, 0x1 movs r2, 0x3E bl LoadPalette movs r1, 0 ldr r4, _08143DE4 movs r3, 0x11 ldr r2, _08143DE8 _08143D56: adds r0, r1, r4 strb r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r2 bls _08143D56 movs r1, 0 ldr r2, _08143DEC ldr r6, _08143DF0 ldr r0, _08143DF4 adds r5, r2, r0 movs r4, 0x22 ldr r3, _08143DE8 _08143D72: adds r0, r1, r5 strb r4, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r3 bls _08143D72 movs r1, 0 ldr r5, _08143DF8 movs r4, 0x33 ldr r3, _08143DE8 _08143D88: adds r0, r1, r5 strb r4, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r3 bls _08143D88 movs r0, 0 strh r0, [r2] ldr r1, _08143DFC adds r0, r1, 0 strh r0, [r2, 0x2] ldr r1, _08143E00 adds r0, r1, 0 strh r0, [r2, 0x4] ldr r1, _08143E04 adds r0, r1, 0 strh r0, [r2, 0x6] adds r0, r6, 0 bl LoadSpriteSheet ldr r0, _08143E08 bl LoadSpritePalette ldr r1, _08143DC8 ldr r2, _08143DCC adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08143E90 .align 2, 0 _08143DC8: .4byte gMain _08143DCC: .4byte 0x0000043c _08143DD0: .4byte gReservedSpritePaletteCount _08143DD4: .4byte gUnknown_083F66F0 _08143DD8: .4byte gBirchGrassTilemap _08143DDC: .4byte 0x06003800 _08143DE0: .4byte gUnknown_083F62EC + 0x2 _08143DE4: .4byte 0x0201e000 _08143DE8: .4byte 0x000007ff _08143DEC: .4byte 0x0201f800 _08143DF0: .4byte gUnknown_0840CAA0 _08143DF4: .4byte 0xfffff000 _08143DF8: .4byte 0x0201f000 _08143DFC: .4byte 0x000053ff _08143E00: .4byte 0x0000529f _08143E04: .4byte 0x00007e94 _08143E08: .4byte gUnknown_0840CAB0 _08143E0C: ldr r0, _08143EA0 movs r1, 0 bl CreateTask ldr r2, _08143EA4 lsls r4, r6, 2 adds r4, r6 lsls r4, 3 adds r4, r2 lsls r0, 24 lsrs r0, 24 movs r1, 0 mov r9, r1 movs r5, 0 strh r0, [r4, 0xE] movs r0, 0xE ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 strh r7, [r0, 0x8] movs r0, 0xE ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 strh r6, [r0, 0xA] movs r0, 0xE ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r1, [r4, 0x16] strh r1, [r0, 0xC] movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _08143EA8 strh r5, [r0] ldr r1, _08143EAC movs r0, 0x20 strh r0, [r1] subs r1, 0x10 ldr r2, _08143EB0 adds r0, r2, 0 strh r0, [r1] subs r1, 0xE movs r2, 0xCA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] mov r1, r9 mov r0, r8 strb r1, [r0] ldr r0, _08143EB4 strh r5, [r0] ldr r0, _08143EB8 str r0, [r4] _08143E90: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08143EA0: .4byte sub_8144514 _08143EA4: .4byte gTasks _08143EA8: .4byte REG_BG3HOFS _08143EAC: .4byte REG_BG3VOFS _08143EB0: .4byte 0x00000703 _08143EB4: .4byte gUnknown_0203935C _08143EB8: .4byte sub_8143B38 thumb_func_end sub_8143D04 thumb_func_start sub_8143EBC sub_8143EBC: @ 8143EBC push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r2, _08143EE0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0x20] movs r2, 0x20 ldrsh r1, [r4, r2] cmp r1, 0 beq _08143EE4 subs r0, 0x1 strh r0, [r4, 0x20] b _08143EF8 .align 2, 0 _08143EE0: .4byte gTasks _08143EE4: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0xC movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _08143F00 str r0, [r4] _08143EF8: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08143F00: .4byte sub_8143F04 thumb_func_end sub_8143EBC thumb_func_start sub_8143F04 sub_8143F04: @ 8143F04 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08143F30 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08143F2A adds r0, r4, 0 bl sub_81450AC ldr r0, _08143F34 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08143F38 str r0, [r1] _08143F2A: pop {r4} pop {r0} bx r0 .align 2, 0 _08143F30: .4byte gPaletteFade _08143F34: .4byte gTasks _08143F38: .4byte sub_8143F3C thumb_func_end sub_8143F04 thumb_func_start sub_8143F3C sub_8143F3C: @ 8143F3C push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 bl sub_8144130 bl ResetPaletteFade movs r1, 0xE0 lsls r1, 6 movs r0, 0 movs r2, 0 bl sub_8145128 bl ResetSpriteData bl FreeAllSpritePalettes movs r0, 0x1 negs r0, r0 movs r4, 0 str r4, [sp] movs r1, 0x8 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, _08143FC4 movs r2, 0xE0 lsls r2, 3 adds r0, r2, 0 strh r0, [r1] ldr r3, _08143FC8 ldrh r2, [r3] strh r4, [r3] ldr r4, _08143FCC ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _08143FD0 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] movs r1, 0x80 lsls r1, 19 movs r2, 0xA0 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] ldr r1, _08143FD4 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0x80 lsls r1, 1 strh r1, [r0, 0x8] ldr r1, _08143FD8 str r1, [r0] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08143FC4: .4byte REG_BG0CNT _08143FC8: .4byte 0x04000208 _08143FCC: .4byte 0x04000200 _08143FD0: .4byte REG_DISPSTAT _08143FD4: .4byte gTasks _08143FD8: .4byte sub_8143FDC thumb_func_end sub_8143F3C thumb_func_start sub_8143FDC sub_8143FDC: @ 8143FDC push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r2, _08144000 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0x8] movs r2, 0x8 ldrsh r1, [r4, r2] cmp r1, 0 beq _08144004 subs r0, 0x1 strh r0, [r4, 0x8] b _08144018 .align 2, 0 _08144000: .4byte gTasks _08144004: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0x6 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _08144020 str r0, [r4] _08144018: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08144020: .4byte sub_8144024 thumb_func_end sub_8143FDC thumb_func_start sub_8144024 sub_8144024: @ 8144024 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _08144074 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0814406A movs r0, 0xE0 lsls r0, 6 movs r1, 0 bl sub_81452D0 movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0 movs r3, 0 bl BeginNormalPaletteFade ldr r1, _08144078 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0xE1 lsls r1, 5 strh r1, [r0, 0x8] ldr r1, _0814407C str r1, [r0] _0814406A: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08144074: .4byte gPaletteFade _08144078: .4byte gTasks _0814407C: .4byte sub_8144080 thumb_func_end sub_8144024 thumb_func_start sub_8144080 sub_8144080: @ 8144080 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r2, r0, 24 ldr r0, _081440CC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08144104 ldr r1, _081440D0 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r4, r0, r1 movs r0, 0x8 ldrsh r1, [r4, r0] cmp r1, 0 beq _081440AE ldr r0, _081440D4 ldrh r0, [r0, 0x2E] cmp r0, 0 beq _081440E0 _081440AE: movs r0, 0x4 bl FadeOutBGM movs r0, 0x1 negs r0, r0 ldr r1, _081440D8 str r1, [sp] movs r1, 0x8 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _081440DC str r0, [r4] b _08144104 .align 2, 0 _081440CC: .4byte gPaletteFade _081440D0: .4byte gTasks _081440D4: .4byte gMain _081440D8: .4byte 0x0000ffff _081440DC: .4byte sub_8144114 _081440E0: ldr r0, _0814410C cmp r1, r0 bne _081440EC movs r0, 0x8 bl FadeOutBGM _081440EC: movs r0, 0x8 ldrsh r1, [r4, r0] ldr r0, _08144110 cmp r1, r0 bne _081440FE movs r0, 0xE4 lsls r0, 1 bl m4aSongNumStart _081440FE: ldrh r0, [r4, 0x8] subs r0, 0x1 strh r0, [r4, 0x8] _08144104: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0814410C: .4byte 0x00001be8 _08144110: .4byte 0x00001ab8 thumb_func_end sub_8144080 thumb_func_start sub_8144114 sub_8144114: @ 8144114 push {lr} ldr r0, _0814412C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08144128 movs r0, 0xFF bl SoftReset _08144128: pop {r0} bx r0 .align 2, 0 _0814412C: .4byte gPaletteFade thumb_func_end sub_8144114 thumb_func_start sub_8144130 sub_8144130: @ 8144130 sub sp, 0x8 movs r0, 0x80 lsls r0, 19 movs r1, 0 strh r1, [r0] adds r0, 0x1C strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x3E strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] mov r0, sp strh r1, [r0] ldr r1, _081441A4 str r0, [r1] movs r0, 0xC0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _081441A8 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r2, 0 str r2, [sp, 0x4] add r0, sp, 0x4 str r0, [r1] movs r0, 0xE0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _081441AC str r0, [r1, 0x8] ldr r0, [r1, 0x8] mov r0, sp strh r2, [r0] str r0, [r1] ldr r0, _081441B0 str r0, [r1, 0x4] ldr r0, _081441B4 str r0, [r1, 0x8] ldr r0, [r1, 0x8] add sp, 0x8 bx lr .align 2, 0 _081441A4: .4byte 0x040000d4 _081441A8: .4byte 0x8100c000 _081441AC: .4byte 0x85000100 _081441B0: .4byte 0x05000002 _081441B4: .4byte 0x810001ff thumb_func_end sub_8144130 thumb_func_start sub_81441B8 sub_81441B8: @ 81441B8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _081441E4 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r6, r1, 0 cmp r0, 0xA bhi _08144218 lsls r0, 2 ldr r1, _081441E8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081441E4: .4byte gTasks _081441E8: .4byte _081441EC .align 2, 0 _081441EC: .4byte _08144218 .4byte _08144258 .4byte _08144278 .4byte _08144358 .4byte _0814438C .4byte _081443F8 .4byte _08144218 .4byte _08144218 .4byte _08144218 .4byte _08144218 .4byte _08144428 _08144218: ldr r0, _08144250 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _0814422A b _08144446 _0814422A: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r6 movs r1, 0x1 strh r1, [r0, 0x8] movs r1, 0x58 strh r1, [r0, 0xE] movs r3, 0xA ldrsh r1, [r0, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 strh r2, [r0, 0x24] ldr r0, _08144254 strh r2, [r0] b _08144446 .align 2, 0 _08144250: .4byte gPaletteFade _08144254: .4byte gUnknown_02039320 _08144258: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r1, r0, r6 ldrh r2, [r1, 0xE] movs r3, 0xE ldrsh r0, [r1, r3] cmp r0, 0 beq _08144270 subs r0, r2, 0x1 strh r0, [r1, 0xE] b _08144446 _08144270: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _08144446 _08144278: movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _08144320 ands r0, r1 strh r0, [r2] lsls r2, r5, 2 adds r0, r2, r5 lsls r0, 3 adds r3, r0, r6 movs r0, 0xA ldrsh r1, [r3, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r4, r0, r6 ldr r1, [r4] ldr r0, _08144324 mov r8, r2 cmp r1, r0 bne _08144352 movs r1, 0xC ldrsh r0, [r3, r1] cmp r0, 0x33 bgt _0814434C movs r4, 0 ldr r7, _08144328 adds r6, r3, 0 _081442B0: movs r2, 0xC ldrsh r1, [r6, r2] lsls r0, r1, 2 adds r0, r1 adds r0, r4 lsls r0, 2 adds r0, r7 ldr r0, [r0] ldr r0, [r0, 0x4] lsls r2, r4, 25 movs r3, 0x90 lsls r3, 20 adds r2, r3 lsrs r2, 24 movs r1, 0 movs r3, 0xF0 bl sub_8072BD8 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x4 bls _081442B0 ldr r3, _0814432C mov r0, r8 adds r1, r0, r5 lsls r1, 3 adds r1, r3 ldrh r0, [r1, 0xC] adds r0, 0x1 strh r0, [r1, 0xC] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] movs r0, 0xA ldrsh r2, [r1, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r3 movs r2, 0x1 strh r2, [r0, 0x24] movs r2, 0xA ldrsh r1, [r1, r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r3 movs r3, 0x22 ldrsh r0, [r0, r3] cmp r0, 0x1 bne _08144334 movs r0, 0xC0 lsls r0, 2 ldr r1, _08144330 b _0814433A .align 2, 0 _08144320: .4byte 0x0000feff _08144324: .4byte sub_8143B68 _08144328: .4byte gCreditsEntryPointerTable _0814432C: .4byte gTasks _08144330: .4byte 0x0000328d _08144334: movs r0, 0xC0 lsls r0, 2 ldr r1, _08144348 _0814433A: str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade b _08144446 .align 2, 0 _08144348: .4byte 0x00001967 _0814434C: movs r0, 0xA strh r0, [r3, 0x8] b _08144446 _08144352: movs r0, 0 strh r0, [r4, 0x24] b _08144446 _08144358: movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 1 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] ldr r0, _08144388 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08144446 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r6 movs r1, 0x82 strh r1, [r0, 0xE] ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] b _08144446 .align 2, 0 _08144388: .4byte gPaletteFade _0814438C: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r6 ldrh r1, [r4, 0xE] movs r2, 0xE ldrsh r0, [r4, r2] cmp r0, 0 beq _081443A4 subs r0, r1, 0x1 strh r0, [r4, 0xE] b _08144446 _081443A4: ldrb r0, [r4, 0xC] ldrb r1, [r4, 0xA] bl sub_8144454 lsls r0, 24 cmp r0, 0 beq _081443BA ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _08144446 _081443BA: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r3, 0xA ldrsh r1, [r4, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 movs r1, 0x22 ldrsh r0, [r0, r1] cmp r0, 0x1 bne _081443E0 movs r0, 0xC0 lsls r0, 2 ldr r1, _081443DC b _081443E6 .align 2, 0 _081443DC: .4byte 0x0000328d _081443E0: movs r0, 0xC0 lsls r0, 2 ldr r1, _081443F4 _081443E6: str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _08144446 .align 2, 0 _081443F4: .4byte 0x00001967 _081443F8: ldr r0, _08144420 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08144446 movs r0, 0 movs r1, 0x9 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect ldr r0, _08144424 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 movs r0, 0x2 strh r0, [r1, 0x8] b _08144446 .align 2, 0 _08144420: .4byte gPaletteFade _08144424: .4byte gTasks _08144428: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r6 movs r2, 0xA ldrsh r1, [r0, r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 movs r1, 0x1 strh r1, [r0, 0x10] adds r0, r5, 0 bl DestroyTask _08144446: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81441B8 thumb_func_start sub_8144454 sub_8144454: @ 8144454 push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 adds r6, r3, 0 lsls r1, 24 lsrs r2, r1, 24 adds r5, r2, 0 ldr r4, _08144508 cmp r3, 0x6 bne _08144474 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x1E] _08144474: cmp r3, 0xC bne _08144486 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r4 movs r1, 0x1 strh r1, [r0, 0x16] strh r1, [r0, 0x1E] _08144486: cmp r3, 0x12 bne _08144496 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x1E] _08144496: cmp r3, 0x18 bne _081444AA lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x16] movs r1, 0x1 strh r1, [r0, 0x1E] _081444AA: cmp r3, 0x1E bne _081444BA lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x1E] _081444BA: cmp r3, 0x23 bne _081444CE lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r4 movs r1, 0x3 strh r1, [r0, 0x16] movs r1, 0x1 strh r1, [r0, 0x1E] _081444CE: cmp r3, 0x28 bne _081444DE lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x1E] _081444DE: cmp r6, 0x2E bne _081444F2 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r4 movs r1, 0x4 strh r1, [r0, 0x16] movs r1, 0x1 strh r1, [r0, 0x1E] _081444F2: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r4 movs r1, 0x1E ldrsh r0, [r0, r1] cmp r0, 0 bne _0814450C movs r0, 0 b _0814450E .align 2, 0 _08144508: .4byte gTasks _0814450C: movs r0, 0x1 _0814450E: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8144454 thumb_func_start sub_8144514 sub_8144514: @ 8144514 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r6, _08144548 ldr r3, _0814454C lsls r0, 2 add r0, r8 lsls r0, 3 adds r2, r0, r3 movs r1, 0x8 ldrsh r0, [r2, r1] cmp r0, 0x1 beq _08144550 cmp r0, 0x1 bgt _0814453C b _08144658 _0814453C: cmp r0, 0x2 beq _08144584 cmp r0, 0x3 bne _08144546 b _08144644 _08144546: b _08144658 .align 2, 0 _08144548: .4byte 0x0201c000 _0814454C: .4byte gTasks _08144550: adds r0, r6, 0 adds r0, 0x8A ldrh r0, [r0] cmp r0, 0 bne _0814456E movs r4, 0xA ldrsh r0, [r2, r4] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r3 movs r4, 0x24 ldrsh r0, [r1, r4] cmp r0, 0 beq _08144658 _0814456E: movs r0, 0xA ldrsh r1, [r2, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r3 movs r1, 0 strh r1, [r0, 0x24] ldrh r0, [r2, 0x8] adds r0, 0x1 b _08144656 _08144584: adds r0, r6, 0 adds r0, 0x88 ldrh r1, [r0] mov r9, r0 cmp r1, 0x44 beq _08144658 movs r4, 0xA ldrsh r1, [r2, r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r3 ldr r1, [r0] ldr r0, _081445EC cmp r1, r0 bne _08144658 adds r7, r6, 0 adds r7, 0x8C ldrh r0, [r7] lsls r0, 1 adds r0, r6 ldrh r0, [r0] ldr r4, _081445F0 adds r5, r6, 0 adds r5, 0x8A ldrh r3, [r5] lsls r2, r3, 1 adds r1, r2, r4 ldrb r1, [r1] adds r4, 0x1 adds r2, r4 ldrb r2, [r2] bl sub_81456B4 lsls r0, 24 lsrs r2, r0, 24 ldrh r1, [r7] adds r0, r6, 0 adds r0, 0x8E ldrh r0, [r0] subs r0, 0x1 cmp r1, r0 bge _081445F8 adds r0, r1, 0x1 strh r0, [r7] ldr r1, _081445F4 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 movs r1, 0x32 b _0814460A .align 2, 0 _081445EC: .4byte sub_8143B68 _081445F0: .4byte gUnknown_0840CA00 _081445F4: .4byte gSprites _081445F8: movs r0, 0 strh r0, [r7] ldr r1, _08144620 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 movs r1, 0x80 lsls r1, 2 _0814460A: strh r1, [r0, 0x34] mov r1, r9 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] ldrh r0, [r5] cmp r0, 0x2 bne _08144624 movs r0, 0 b _08144626 .align 2, 0 _08144620: .4byte gSprites _08144624: adds r0, 0x1 _08144626: strh r0, [r5] ldr r0, _08144640 mov r2, r8 lsls r1, r2, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x32 strh r0, [r1, 0xE] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _08144658 .align 2, 0 _08144640: .4byte gTasks _08144644: ldrh r1, [r2, 0xE] movs r3, 0xE ldrsh r0, [r2, r3] cmp r0, 0 beq _08144654 subs r0, r1, 0x1 strh r0, [r2, 0xE] b _08144658 _08144654: movs r0, 0x1 _08144656: strh r0, [r2, 0x8] _08144658: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8144514 thumb_func_start sub_8144664 sub_8144664: @ 8144664 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0814468C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r6, r1, 0 cmp r0, 0x32 bls _08144680 b _0814492C _08144680: lsls r0, 2 ldr r1, _08144690 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0814468C: .4byte gTasks _08144690: .4byte _08144694 .align 2, 0 _08144694: .4byte _08144760 .4byte _08144784 .4byte _081447D8 .4byte _081447F0 .4byte _0814482C .4byte _08144850 .4byte _0814489C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _081448A8 .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _081448C8 .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _081448EC .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _08144920 _08144760: lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r6 ldrh r0, [r4, 0x12] lsls r0, 16 asrs r0, 17 movs r1, 0x7F ands r0, r1 movs r1, 0xC bl Sin ldr r1, _08144780 strh r0, [r1] b _081447A8 .align 2, 0 _08144780: .4byte gUnknown_0203935A _08144784: ldr r7, _081447B0 movs r3, 0 ldrsh r4, [r7, r3] cmp r4, 0 beq _081447B4 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r6 ldrh r0, [r4, 0x12] lsls r0, 16 asrs r0, 17 movs r1, 0x7F ands r0, r1 movs r1, 0xC bl Sin strh r0, [r7] _081447A8: ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] b _0814492C .align 2, 0 _081447B0: .4byte gUnknown_0203935A _081447B4: ldr r3, _081447D4 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r6 movs r0, 0xC ldrsh r2, [r1, r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 movs r2, 0x2 strh r2, [r0, 0x2E] strh r4, [r1, 0x12] b _08144848 .align 2, 0 _081447D4: .4byte gSprites _081447D8: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r1, r0, r6 ldrh r2, [r1, 0x12] movs r3, 0x12 ldrsh r0, [r1, r3] cmp r0, 0x3F bgt _08144848 adds r0, r2, 0x1 strh r0, [r1, 0x12] b _08144866 _081447F0: ldr r3, _08144828 lsls r2, r5, 2 adds r2, r5 lsls r2, 3 adds r2, r6 movs r0, 0xC ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0x3 strh r1, [r0, 0x2E] movs r0, 0xE ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0x1 strh r1, [r0, 0x2E] movs r0, 0x78 strh r0, [r2, 0x10] ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] b _0814492C .align 2, 0 _08144828: .4byte gSprites _0814482C: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r1, r0, r6 ldrh r2, [r1, 0x10] movs r3, 0x10 ldrsh r0, [r1, r3] cmp r0, 0 beq _08144844 subs r0, r2, 0x1 strh r0, [r1, 0x10] b _0814492C _08144844: movs r0, 0x40 strh r0, [r1, 0x12] _08144848: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0814492C _08144850: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r6 ldrh r1, [r4, 0x12] movs r2, 0x12 ldrsh r0, [r4, r2] cmp r0, 0 ble _0814487C subs r0, r1, 0x1 strh r0, [r4, 0x12] _08144866: movs r1, 0x7F ands r0, r1 movs r1, 0x14 bl Sin ldr r1, _08144878 strh r0, [r1] b _0814492C .align 2, 0 _08144878: .4byte gUnknown_0203935A _0814487C: ldr r2, _08144898 movs r3, 0xC ldrsh r1, [r4, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x1 strh r1, [r0, 0x2E] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0814492C .align 2, 0 _08144898: .4byte gSprites _0814489C: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r6 movs r1, 0x32 b _0814492A _081448A8: ldr r3, _081448C4 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r6 movs r0, 0xE ldrsh r2, [r1, r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 movs r2, 0x2 b _081448E0 .align 2, 0 _081448C4: .4byte gSprites _081448C8: ldr r3, _081448E8 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r6 movs r0, 0xC ldrsh r2, [r1, r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 movs r2, 0x4 _081448E0: strh r2, [r0, 0x2E] movs r0, 0x32 strh r0, [r1, 0x8] b _0814492C .align 2, 0 _081448E8: .4byte gSprites _081448EC: ldr r3, _0814491C lsls r2, r5, 2 adds r2, r5 lsls r2, 3 adds r2, r6 movs r0, 0xC ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0x5 strh r1, [r0, 0x2E] movs r0, 0xE ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0x3 strh r1, [r0, 0x2E] movs r0, 0x32 strh r0, [r2, 0x8] b _0814492C .align 2, 0 _0814491C: .4byte gSprites _08144920: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r6 movs r1, 0 _0814492A: strh r1, [r0, 0x8] _0814492C: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8144664 thumb_func_start sub_8144934 sub_8144934: @ 8144934 push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _08144958 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 movs r3, 0x8 ldrsh r0, [r0, r3] adds r4, r1, 0 cmp r0, 0x4 bhi _08144974 lsls r0, 2 ldr r1, _0814495C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08144958: .4byte gTasks _0814495C: .4byte _08144960 .align 2, 0 _08144960: .4byte _08144974 .4byte _081449B8 .4byte _081449C4 .4byte _08144A0C .4byte _08144A5C _08144974: lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r2, r0, r4 movs r1, 0xA ldrsh r0, [r2, r1] ldr r5, _081449C0 cmp r0, r5 beq _081449B8 movs r3, 0xC ldrsh r1, [r2, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r3, r0, r4 movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 movs r1, 0xC ldrsh r0, [r0, r1] cmp r0, 0x2 bne _081449B8 movs r1, 0xA ldrsh r0, [r3, r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r4 movs r0, 0x14 strh r0, [r1, 0x8] strh r5, [r2, 0xA] _081449B8: movs r0, 0 bl sub_8149020 b _08144A62 .align 2, 0 _081449C0: .4byte 0x00007fff _081449C4: lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r2, r0, r4 movs r3, 0xA ldrsh r0, [r2, r3] ldr r5, _08144A08 cmp r0, r5 beq _08144A54 movs r0, 0xC ldrsh r1, [r2, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 movs r3, 0xA ldrsh r1, [r0, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r3, r0, r4 ldrh r1, [r3, 0x12] movs r0, 0x80 negs r0, r0 ands r0, r1 movs r1, 0xA0 lsls r1, 2 cmp r0, r1 bne _08144A54 movs r0, 0x1 strh r0, [r3, 0x8] strh r5, [r2, 0xA] b _08144A54 .align 2, 0 _08144A08: .4byte 0x00007fff _08144A0C: lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r2, r0, r4 ldrh r3, [r2, 0xA] movs r0, 0xA ldrsh r1, [r2, r0] ldr r5, _08144A48 cmp r1, r5 beq _08144A54 ldr r0, _08144A4C cmp r1, r0 bne _08144A50 movs r3, 0xC ldrsh r1, [r2, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 movs r3, 0xA ldrsh r1, [r0, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 movs r1, 0xA strh r1, [r0, 0x8] strh r5, [r2, 0xA] b _08144A54 .align 2, 0 _08144A48: .4byte 0x00007fff _08144A4C: .4byte 0x000001f3 _08144A50: adds r0, r3, 0x1 strh r0, [r2, 0xA] _08144A54: movs r0, 0x1 bl sub_8149020 b _08144A62 _08144A5C: movs r0, 0x2 bl sub_8149020 _08144A62: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8144934 thumb_func_start sub_8144A68 sub_8144A68: @ 8144A68 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r7, r1, 24 cmp r0, 0x4 bls _08144A7E b _08144DFC _08144A7E: lsls r0, 2 ldr r1, _08144A88 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08144A88: .4byte _08144A8C .align 2, 0 _08144A8C: .4byte _08144AA0 .4byte _08144B48 .4byte _08144BF4 .4byte _08144CA0 .4byte _08144D50 _08144AA0: ldr r5, _08144B40 ldr r0, _08144B44 lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r0 movs r1, 0x12 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r1] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r3, 0 movs r2, 0x88 lsls r2, 1 strh r2, [r0, 0x20] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x20] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r2, 0x2E strh r2, [r0, 0x22] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x22] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r1, 0x80 lsls r1, 6 movs r0, 0 movs r2, 0x20 b _08144DF0 .align 2, 0 _08144B40: .4byte gSprites _08144B44: .4byte gTasks _08144B48: ldr r5, _08144BEC ldr r0, _08144BF0 lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r0 movs r1, 0x12 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r1] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r3, 0 movs r1, 0x78 strh r1, [r0, 0x20] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x88 lsls r1, 1 strh r1, [r0, 0x20] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r2, 0x2E strh r2, [r0, 0x22] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x22] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r1, 0x80 lsls r1, 6 movs r0, 0 movs r2, 0x20 b _08144DF0 .align 2, 0 _08144BEC: .4byte gSprites _08144BF0: .4byte gTasks _08144BF4: ldr r5, _08144C98 ldr r0, _08144C9C lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r0 movs r1, 0x12 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r1] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r3, 0 movs r1, 0x78 strh r1, [r0, 0x20] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x88 lsls r1, 1 strh r1, [r0, 0x20] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r2, 0x2E strh r2, [r0, 0x22] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x22] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r1, 0x80 lsls r1, 6 movs r2, 0x80 lsls r2, 2 movs r0, 0x1 b _08144DF0 .align 2, 0 _08144C98: .4byte gSprites _08144C9C: .4byte gTasks _08144CA0: ldr r5, _08144D44 ldr r0, _08144D48 lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r0 movs r1, 0x12 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r1] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r3, 0 movs r1, 0x78 strh r1, [r0, 0x20] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _08144D4C strh r1, [r0, 0x20] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r2, 0x2E strh r2, [r0, 0x22] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x22] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r1, 0x80 lsls r1, 6 movs r2, 0x80 lsls r2, 2 movs r0, 0x1 b _08144DF0 .align 2, 0 _08144D44: .4byte gSprites _08144D48: .4byte gTasks _08144D4C: .4byte 0x0000ffe0 _08144D50: ldr r5, _08144EBC ldr r0, _08144EC0 lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r0 movs r1, 0x12 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r1] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r3, 0 movs r1, 0x58 strh r1, [r0, 0x20] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x98 strh r1, [r0, 0x20] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r2, 0x2E strh r2, [r0, 0x22] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x22] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r1, 0x80 lsls r1, 6 movs r2, 0x80 lsls r2, 2 movs r0, 0x2 _08144DF0: movs r3, 0x8 bl sub_8148EC0 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x8] _08144DFC: ldr r0, _08144EC4 movs r1, 0 bl CreateTask ldr r6, _08144EC0 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r5, r1, r6 lsls r0, 24 lsrs r0, 24 movs r4, 0 strh r0, [r5, 0xC] movs r0, 0xC ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 mov r1, r8 strh r1, [r0, 0x8] movs r0, 0xC ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 strh r4, [r0, 0xA] movs r0, 0xC ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 strh r7, [r0, 0xC] ldr r0, _08144EC8 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xA] movs r0, 0xA ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 strh r4, [r0, 0x8] movs r0, 0xA ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 strh r7, [r0, 0xA] movs r0, 0xA ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 ldrh r1, [r5, 0x12] strh r1, [r0, 0xC] movs r0, 0xA ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 ldrh r1, [r5, 0x14] strh r1, [r0, 0xE] movs r0, 0xA ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 strh r4, [r0, 0x10] mov r1, r8 cmp r1, 0x2 bne _08144EB0 movs r1, 0xA ldrsh r0, [r5, r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r6 movs r0, 0x45 strh r0, [r1, 0x12] _08144EB0: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08144EBC: .4byte gSprites _08144EC0: .4byte gTasks _08144EC4: .4byte sub_8144934 _08144EC8: .4byte sub_8144664 thumb_func_end sub_8144A68 thumb_func_start sub_8144ECC sub_8144ECC: @ 8144ECC push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 ldr r0, _08144F28 ldr r1, _08144F2C adds r6, r0, r1 ldrb r0, [r6] cmp r0, 0x1 beq _08144F38 cmp r0, 0x1 ble _08144EF0 cmp r0, 0x2 beq _08144F5C cmp r0, 0x3 bne _08144EF0 b _0814508C _08144EF0: movs r0, 0x80 lsls r0, 19 movs r1, 0 strh r1, [r0] ldr r2, _08144F30 movs r0, 0x8 strh r0, [r2] ldr r0, _08144F34 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x3A strh r1, [r0] adds r0, 0x2 strh r1, [r0] bl ResetSpriteData bl FreeAllSpritePalettes movs r0, 0x1 strb r0, [r6] b _081450A2 .align 2, 0 _08144F28: .4byte gMain _08144F2C: .4byte 0x0000043c _08144F30: .4byte REG_BG3HOFS _08144F34: .4byte REG_BG3VOFS _08144F38: ldr r1, _08144F54 movs r0, 0x22 strh r0, [r1] ldr r1, _08144F58 movs r0, 0 strh r0, [r1] adds r0, r4, 0 bl sub_8148CB0 ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] b _081450A2 .align 2, 0 _08144F54: .4byte gUnknown_02039358 _08144F58: .4byte gUnknown_0203935A _08144F5C: ldr r0, _08144FBC ldrb r0, [r0, 0x8] cmp r0, 0 bne _08144FE0 ldr r0, _08144FC0 bl LoadCompressedObjectPic ldr r0, _08144FC4 bl LoadCompressedObjectPic ldr r0, _08144FC8 bl LoadCompressedObjectPic ldr r0, _08144FCC bl LoadSpritePalettes movs r0, 0x78 movs r1, 0x2E bl sub_8149310 lsls r0, 24 lsrs r2, r0, 24 ldr r0, _08144FD0 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 strh r2, [r4, 0x12] ldr r6, _08144FD4 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r5, r6, 0 adds r5, 0x1C adds r2, r0, r5 ldr r1, _08144FD8 str r1, [r2] adds r6, 0x8 adds r0, r6 ldr r1, _08144FDC str r1, [r0] movs r0, 0x88 lsls r0, 1 movs r1, 0x2E bl sub_8149368 b _08145034 .align 2, 0 _08144FBC: .4byte gSaveBlock2 _08144FC0: .4byte gIntro2BrendanSpriteSheet _08144FC4: .4byte gUnknown_08416E34 _08144FC8: .4byte gIntro2BicycleSpriteSheet _08144FCC: .4byte gIntro2SpritePalettes _08144FD0: .4byte gTasks _08144FD4: .4byte gSprites _08144FD8: .4byte sub_8145378 _08144FDC: .4byte gUnknown_0840CA54 _08144FE0: ldr r0, _0814505C bl LoadCompressedObjectPic ldr r0, _08145060 bl LoadCompressedObjectPic ldr r0, _08145064 bl LoadCompressedObjectPic ldr r0, _08145068 bl LoadSpritePalettes movs r0, 0x78 movs r1, 0x2E bl sub_8149368 lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0814506C lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 strh r2, [r4, 0x12] ldr r6, _08145070 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r5, r6, 0 adds r5, 0x1C adds r2, r0, r5 ldr r1, _08145074 str r1, [r2] adds r6, 0x8 adds r0, r6 ldr r1, _08145078 str r1, [r0] movs r0, 0x88 lsls r0, 1 movs r1, 0x2E bl sub_8149310 _08145034: lsls r0, 24 lsrs r2, r0, 24 strh r2, [r4, 0x14] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r5, r0, r5 ldr r1, _0814507C str r1, [r5] adds r0, r6 ldr r1, _08145080 str r1, [r0] ldr r1, _08145084 ldr r0, _08145088 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _081450A2 .align 2, 0 _0814505C: .4byte gIntro2MaySpriteSheet _08145060: .4byte gUnknown_08416E24 _08145064: .4byte gIntro2BicycleSpriteSheet _08145068: .4byte gIntro2SpritePalettes _0814506C: .4byte gTasks _08145070: .4byte gSprites _08145074: .4byte sub_8145378 _08145078: .4byte gUnknown_0840CA54 _0814507C: .4byte sub_8145420 _08145080: .4byte gUnknown_0840CA94 _08145084: .4byte gMain _08145088: .4byte 0x0000043c _0814508C: adds r0, r4, 0 adds r1, r5, 0 bl sub_8144A68 adds r0, r4, 0 bl sub_8148E90 movs r0, 0 strb r0, [r6] movs r0, 0x1 b _081450A4 _081450A2: movs r0, 0 _081450A4: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8144ECC thumb_func_start sub_81450AC sub_81450AC: @ 81450AC push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _08145120 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r1, [r4, 0x8] movs r2, 0x8 ldrsh r0, [r4, r2] cmp r0, 0 beq _081450D2 lsls r0, r1, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 strh r0, [r4, 0x8] _081450D2: ldrh r1, [r4, 0xA] movs r2, 0xA ldrsh r0, [r4, r2] cmp r0, 0 beq _081450E8 lsls r0, r1, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 strh r0, [r4, 0xA] _081450E8: ldrh r1, [r4, 0xC] movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0 beq _081450FE lsls r0, r1, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 strh r0, [r4, 0xC] _081450FE: ldrh r1, [r4, 0xE] movs r2, 0xE ldrsh r0, [r4, r2] cmp r0, 0 beq _08145114 lsls r0, r1, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 strh r0, [r4, 0xE] _08145114: ldr r1, _08145124 movs r0, 0x1 strh r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08145120: .4byte gTasks _08145124: .4byte gUnknown_0203935C thumb_func_end sub_81450AC thumb_func_start sub_8145128 sub_8145128: @ 8145128 push {r4-r7,lr} adds r3, r0, 0 adds r4, r2, 0 lsls r3, 16 lsrs r3, 16 lsls r1, 16 lsrs r7, r1, 16 lsls r4, 16 lsrs r5, r4, 16 ldr r0, _081451EC movs r6, 0xC0 lsls r6, 19 adds r3, r6 adds r1, r3, 0 bl LZ77UnCompVram ldr r0, _081451F0 adds r1, r5, 0 movs r2, 0x20 bl LoadPalette lsrs r4, 20 lsls r4, 28 lsrs r4, 16 movs r2, 0 adds r1, r4, 0x1 ldr r3, _081451F4 _0814515E: lsls r0, r2, 1 adds r0, r7 adds r0, r6 strh r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r3 bls _0814515E movs r2, 0 adds r0, r4, 0x2 adds r6, r4, 0 adds r6, 0x17 movs r1, 0x2B adds r1, r4 mov r12, r1 adds r4, 0x42 ldr r5, _081451F8 adds r3, r0, 0 _08145184: lsls r0, r2, 1 adds r0, r7 adds r0, r5 adds r1, r2, r3 strh r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x14 bls _08145184 movs r2, 0 ldr r5, _081451FC adds r3, r6, 0 _0814519E: lsls r0, r2, 1 adds r0, r7 adds r0, r5 adds r1, r2, r3 strh r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x13 bls _0814519E movs r2, 0 ldr r5, _08145200 mov r3, r12 _081451B8: lsls r0, r2, 1 adds r0, r7 adds r0, r5 adds r1, r2, r3 strh r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x16 bls _081451B8 movs r2, 0 ldr r3, _08145204 _081451D0: lsls r0, r2, 1 adds r0, r7 adds r0, r3 adds r1, r2, r4 strh r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0xB bls _081451D0 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081451EC: .4byte gCreditsCopyrightEnd_Gfx _081451F0: .4byte gIntroCopyright_Pal _081451F4: .4byte 0x000003ff _081451F8: .4byte 0x060001c8 _081451FC: .4byte 0x06000248 _08145200: .4byte 0x060002c8 _08145204: .4byte 0x06000348 thumb_func_end sub_8145128 thumb_func_start sub_8145208 sub_8145208: @ 8145208 push {lr} lsls r0, 24 lsrs r2, r0, 24 adds r3, r2, 0 movs r0, 0x3F ands r0, r2 adds r1, r0, 0 adds r1, 0x50 cmp r2, 0xFF bne _08145220 movs r0, 0x1 b _08145246 _08145220: movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _08145230 movs r2, 0x80 lsls r2, 4 adds r0, r2, 0 orrs r1, r0 _08145230: movs r0, 0x40 ands r3, r0 cmp r3, 0 beq _08145244 movs r2, 0x80 lsls r2, 3 adds r0, r2, 0 orrs r1, r0 lsls r0, r1, 16 lsrs r1, r0, 16 _08145244: adds r0, r1, 0 _08145246: pop {r1} bx r1 thumb_func_end sub_8145208 thumb_func_start sub_814524C sub_814524C: @ 814524C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC str r0, [sp] ldr r0, [sp, 0x2C] lsls r1, 24 lsrs r1, 24 mov r10, r1 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x4] lsls r3, 16 lsrs r3, 16 str r3, [sp, 0x8] lsls r0, 16 lsrs r0, 20 lsls r0, 28 lsrs r0, 16 mov r9, r0 movs r5, 0 _0814527A: movs r4, 0 lsls r7, r5, 1 ldr r1, [sp, 0x4] adds r0, r1, r5 adds r2, r5, 0x1 mov r8, r2 lsls r0, 6 ldr r1, [sp, 0x8] adds r6, r0, r1 _0814528C: adds r0, r7, r5 adds r0, r4 ldr r2, [sp] adds r0, r2, r0 ldrb r0, [r0] bl sub_8145208 mov r2, r10 adds r1, r2, r4 lsls r1, 1 adds r1, r6 movs r2, 0xC0 lsls r2, 19 adds r1, r2 add r0, r9 strh r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _0814528C mov r1, r8 lsls r0, r1, 24 lsrs r5, r0, 24 cmp r5, 0x4 bls _0814527A add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_814524C thumb_func_start sub_81452D0 sub_81452D0: @ 81452D0 push {r4-r7,lr} sub sp, 0x4 lsls r0, 16 lsrs r5, r0, 16 lsls r1, 16 lsrs r6, r1, 16 lsrs r1, 20 lsls r1, 28 lsrs r1, 16 movs r2, 0 ldr r7, _08145360 movs r4, 0xC0 lsls r4, 19 adds r1, 0x1 ldr r3, _08145364 _081452EE: lsls r0, r2, 1 adds r0, r5 adds r0, r4 strh r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r3 bls _081452EE str r6, [sp] adds r0, r7, 0 movs r1, 0x3 movs r2, 0x7 adds r3, r5, 0 bl sub_814524C ldr r0, _08145368 str r6, [sp] movs r1, 0x7 movs r2, 0x7 adds r3, r5, 0 bl sub_814524C ldr r4, _0814536C str r6, [sp] adds r0, r4, 0 movs r1, 0xB movs r2, 0x7 adds r3, r5, 0 bl sub_814524C str r6, [sp] adds r0, r4, 0 movs r1, 0x10 movs r2, 0x7 adds r3, r5, 0 bl sub_814524C ldr r0, _08145370 str r6, [sp] movs r1, 0x14 movs r2, 0x7 adds r3, r5, 0 bl sub_814524C ldr r0, _08145374 str r6, [sp] movs r1, 0x18 movs r2, 0x7 adds r3, r5, 0 bl sub_814524C add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08145360: .4byte gUnknown_0840B83C _08145364: .4byte 0x000003ff _08145368: .4byte gUnknown_0840B84B _0814536C: .4byte gUnknown_0840B85A _08145370: .4byte gUnknown_0840B869 _08145374: .4byte gUnknown_0840B878 thumb_func_end sub_81452D0 thumb_func_start sub_8145378 sub_8145378: @ 8145378 push {r4,lr} adds r4, r0, 0 ldr r0, _08145390 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _08145394 adds r0, r4, 0 bl DestroySprite b _08145418 .align 2, 0 _08145390: .4byte gUnknown_0203935C _08145394: movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0x5 bhi _08145418 lsls r0, 2 ldr r1, _081453A8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081453A8: .4byte _081453AC .align 2, 0 _081453AC: .4byte _081453C4 .4byte _081453CE .4byte _081453D4 .4byte _081453DE .4byte _081453E8 .4byte _081453FE _081453C4: adds r0, r4, 0 movs r1, 0 bl StartSpriteAnimIfDifferent b _08145418 _081453CE: adds r0, r4, 0 movs r1, 0x1 b _08145402 _081453D4: adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnimIfDifferent b _08145418 _081453DE: adds r0, r4, 0 movs r1, 0x3 bl StartSpriteAnimIfDifferent b _08145418 _081453E8: adds r0, r4, 0 movs r1, 0 bl StartSpriteAnimIfDifferent ldrh r1, [r4, 0x20] movs r2, 0x20 ldrsh r0, [r4, r2] cmp r0, 0x78 ble _08145418 subs r0, r1, 0x1 b _08145416 _081453FE: adds r0, r4, 0 movs r1, 0 _08145402: bl StartSpriteAnimIfDifferent ldrh r2, [r4, 0x20] movs r0, 0x20 ldrsh r1, [r4, r0] movs r0, 0x20 negs r0, r0 cmp r1, r0 ble _08145418 subs r0, r2, 0x1 _08145416: strh r0, [r4, 0x20] _08145418: pop {r4} pop {r0} bx r0 thumb_func_end sub_8145378 thumb_func_start sub_8145420 sub_8145420: @ 8145420 push {r4,lr} adds r4, r0, 0 ldr r0, _08145438 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _0814543C adds r0, r4, 0 bl DestroySprite b _081454D8 .align 2, 0 _08145438: .4byte gUnknown_0203935C _0814543C: movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1 beq _08145464 cmp r0, 0x1 bgt _0814544E cmp r0, 0 beq _08145458 b _081454D8 _0814544E: cmp r0, 0x2 beq _081454A0 cmp r0, 0x3 beq _081454BE b _081454D8 _08145458: strh r0, [r4, 0x26] adds r0, r4, 0 movs r1, 0 bl StartSpriteAnimIfDifferent b _081454D8 _08145464: movs r1, 0x20 ldrsh r0, [r4, r1] cmp r0, 0xC8 ble _08145476 adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnimIfDifferent b _0814547E _08145476: adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnimIfDifferent _0814547E: ldrh r2, [r4, 0x20] movs r0, 0x20 ldrsh r1, [r4, r0] movs r0, 0x20 negs r0, r0 cmp r1, r0 ble _08145490 subs r0, r2, 0x2 strh r0, [r4, 0x20] _08145490: ldr r0, _0814549C ldrh r0, [r0] negs r0, r0 strh r0, [r4, 0x26] b _081454D8 .align 2, 0 _0814549C: .4byte gUnknown_0203935A _081454A0: ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] adds r0, r4, 0 movs r1, 0 bl StartSpriteAnimIfDifferent ldrh r1, [r4, 0x3C] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _081454D8 ldrh r0, [r4, 0x20] adds r0, 0x1 b _081454D6 _081454BE: adds r0, r4, 0 movs r1, 0 bl StartSpriteAnimIfDifferent ldrh r2, [r4, 0x20] movs r0, 0x20 ldrsh r1, [r4, r0] movs r0, 0x20 negs r0, r0 cmp r1, r0 ble _081454D8 subs r0, r2, 0x1 _081454D6: strh r0, [r4, 0x20] _081454D8: pop {r4} pop {r0} bx r0 thumb_func_end sub_8145420 thumb_func_start sub_81454E0 sub_81454E0: @ 81454E0 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 ldr r0, _081454F8 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _081454FC adds r0, r5, 0 bl DestroySprite b _081456A6 .align 2, 0 _081454F8: .4byte gUnknown_0203935C _081454FC: ldrh r0, [r5, 0x3C] adds r0, 0x1 strh r0, [r5, 0x3C] movs r2, 0x2E ldrsh r0, [r5, r2] cmp r0, 0xA bhi _08145544 lsls r0, 2 ldr r1, _08145514 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08145514: .4byte _08145518 .align 2, 0 _08145518: .4byte _08145544 .4byte _0814559E .4byte _08145620 .4byte _08145660 .4byte _08145544 .4byte _08145544 .4byte _08145544 .4byte _08145544 .4byte _08145544 .4byte _08145544 .4byte _08145696 _08145544: ldrb r1, [r5, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r5, 0x1] movs r0, 0x30 ldrsh r1, [r5, r0] movs r0, 0x1F ands r1, r0 lsls r1, 1 ldrb r2, [r5, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x3] movs r0, 0x10 strh r0, [r5, 0x32] ldrh r4, [r5, 0x30] lsls r4, 24 lsrs r4, 24 movs r0, 0x80 lsls r0, 9 movs r1, 0x10 bl __divsi3 adds r1, r0, 0 str r1, [sp] adds r0, r4, 0 movs r2, 0 movs r3, 0 bl SetOamMatrix adds r2, r5, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] movs r0, 0x1 strh r0, [r5, 0x2E] b _081456A6 _0814559E: ldrh r1, [r5, 0x32] movs r2, 0x32 ldrsh r0, [r5, r2] cmp r0, 0xFF bgt _081455D4 adds r0, r1, 0 adds r0, 0x8 strh r0, [r5, 0x32] ldrh r4, [r5, 0x30] lsls r4, 24 lsrs r4, 24 movs r0, 0x32 ldrsh r1, [r5, r0] movs r0, 0x80 lsls r0, 9 bl __divsi3 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 str r1, [sp] adds r0, r4, 0 movs r2, 0 movs r3, 0 bl SetOamMatrix b _081455DA _081455D4: ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] _081455DA: movs r2, 0x30 ldrsh r1, [r5, r2] cmp r1, 0x2 beq _081456A6 cmp r1, 0x2 bgt _081455EC cmp r1, 0x1 beq _081455F2 b _081456A6 _081455EC: cmp r1, 0x3 beq _0814560A b _081456A6 _081455F2: ldrh r1, [r5, 0x3C] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _08145602 ldrh r0, [r5, 0x22] adds r0, 0x1 strh r0, [r5, 0x22] _08145602: ldrh r0, [r5, 0x20] subs r0, 0x2 strh r0, [r5, 0x20] b _081456A6 _0814560A: ldrh r0, [r5, 0x3C] ands r1, r0 cmp r1, 0 bne _08145618 ldrh r0, [r5, 0x22] adds r0, 0x1 strh r0, [r5, 0x22] _08145618: ldrh r0, [r5, 0x20] adds r0, 0x2 strh r0, [r5, 0x20] b _081456A6 _08145620: ldrh r1, [r5, 0x34] movs r2, 0x34 ldrsh r0, [r5, r2] cmp r0, 0 beq _08145630 subs r0, r1, 0x1 strh r0, [r5, 0x34] b _081456A6 _08145630: ldr r1, _0814565C movs r2, 0xF4 lsls r2, 4 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0x10 strh r0, [r1] ldrb r1, [r5, 0x1] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r5, 0x1] movs r0, 0x10 strh r0, [r5, 0x34] ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] b _081456A6 .align 2, 0 _0814565C: .4byte REG_BLDCNT _08145660: ldrh r1, [r5, 0x34] movs r2, 0x34 ldrsh r0, [r5, r2] cmp r0, 0 beq _08145684 subs r1, 0x1 strh r1, [r5, 0x34] ldr r3, _08145680 movs r0, 0x34 ldrsh r2, [r5, r0] movs r0, 0x10 subs r0, r2 lsls r0, 8 adds r1, r0 strh r1, [r3] b _081456A6 .align 2, 0 _08145680: .4byte REG_BLDALPHA _08145684: adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] movs r0, 0xA strh r0, [r5, 0x2E] b _081456A6 _08145696: ldr r0, _081456B0 movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, r5, 0 bl DestroySprite _081456A6: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081456B0: .4byte REG_BLDCNT thumb_func_end sub_81454E0 thumb_func_start sub_81456B4 sub_81456B4: @ 81456B4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 16 lsrs r6, r0, 16 lsls r1, 16 lsrs r1, 16 mov r10, r1 lsls r2, 16 lsrs r2, 16 str r2, [sp, 0x10] lsls r3, 16 lsrs r3, 16 mov r9, r3 adds r0, r6, 0 bl NationalPokedexNumToSpecies adds r6, r0, 0 cmp r6, 0xC9 beq _081456F8 movs r0, 0x9A lsls r0, 1 cmp r6, r0 beq _081456EE movs r7, 0 b _081456FC _081456EE: ldr r0, _081456F4 ldr r7, [r0, 0x20] b _081456FC .align 2, 0 _081456F4: .4byte gSaveBlock2 _081456F8: ldr r0, _081457E8 ldr r7, [r0, 0x1C] _081456FC: lsls r0, r6, 3 ldr r1, _081457EC adds r0, r1 ldr r1, _081457F0 lsls r2, r6, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _081457F4 mov r8, r4 mov r5, r9 lsls r4, r5, 2 add r4, r8 ldr r4, [r4] str r4, [sp] str r6, [sp, 0x4] str r7, [sp, 0x8] movs r4, 0x1 str r4, [sp, 0xC] bl sub_800D378 ldr r2, _081457F8 adds r0, r6, 0 movs r1, 0 bl species_and_otid_get_pal lsls r5, 4 mov r8, r5 movs r1, 0x80 lsls r1, 1 add r1, r8 lsls r1, 16 lsrs r1, 16 movs r2, 0x20 bl LoadCompressedPalette mov r7, r9 lsls r6, r7, 24 lsrs r6, 24 mov r0, r9 adds r1, r6, 0 bl sub_8143648 ldr r0, _081457FC mov r2, r10 lsls r1, r2, 16 asrs r1, 16 ldr r3, [sp, 0x10] lsls r2, r3, 16 asrs r2, 16 movs r3, 0 bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _08145800 lsls r2, r4, 4 adds r2, r4 lsls r2, 2 adds r3, r2, r5 ldrb r1, [r3, 0x5] movs r0, 0xF ands r0, r1 mov r7, r8 orrs r0, r7 movs r1, 0xD negs r1, r1 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r3, 0x5] mov r0, r9 adds r0, 0x1 strh r0, [r3, 0x30] movs r0, 0x3E adds r0, r3 mov r8, r0 ldrb r0, [r0] orrs r0, r1 mov r1, r8 strb r0, [r1] adds r0, r5, 0 adds r0, 0x1C adds r2, r0 ldr r0, _08145804 str r0, [r2] ldr r0, _08145808 movs r2, 0x20 ldrsh r1, [r3, r2] movs r7, 0x22 ldrsh r2, [r3, r7] movs r3, 0x1 bl CreateSprite adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r4, [r0, 0x2E] adds r1, r6, 0 bl StartSpriteAnimIfDifferent adds r0, r4, 0 add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081457E8: .4byte gSaveBlock2 _081457EC: .4byte gMonFrontPicTable _081457F0: .4byte gMonFrontPicCoords _081457F4: .4byte gUnknown_0840B5A0 _081457F8: .4byte 0x0000ffff _081457FC: .4byte gUnknown_02024E8C _08145800: .4byte gSprites _08145804: .4byte sub_81454E0 _08145808: .4byte gSpriteTemplate_840CAEC thumb_func_end sub_81456B4 thumb_func_start sub_814580C sub_814580C: @ 814580C push {r4,lr} adds r3, r0, 0 ldr r4, _08145838 movs r1, 0x2E ldrsh r0, [r3, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0xA beq _08145830 ldr r0, _0814583C movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 beq _08145840 _08145830: adds r0, r3, 0 bl DestroySprite b _081458D4 .align 2, 0 _08145838: .4byte gSprites _0814583C: .4byte gUnknown_0203935C _08145840: adds r0, r1, 0 adds r0, 0x3E ldrb r0, [r0] movs r1, 0x3E adds r1, r3 mov r12, r1 movs r1, 0x4 ands r1, r0 mov r0, r12 ldrb r2, [r0] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] movs r2, 0x2E ldrsh r1, [r3, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0, 0x1] movs r0, 0xC ands r0, r1 ldrb r2, [r3, 0x1] movs r1, 0xD negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x1] movs r0, 0x2E ldrsh r2, [r3, r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x1] lsls r0, 30 lsrs r0, 30 movs r2, 0x4 negs r2, r2 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x1] movs r2, 0x2E ldrsh r1, [r3, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x3] movs r1, 0x3E ands r1, r0 ldrb r2, [r3, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x3] movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x20] strh r0, [r3, 0x20] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x22] strh r0, [r3, 0x22] _081458D4: pop {r4} pop {r0} bx r0 thumb_func_end sub_814580C thumb_func_start sub_81458DC sub_81458DC: @ 81458DC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r7, _0814597C ldr r0, _08145980 bl VarGet lsls r0, 16 lsrs r0, 16 bl GetStarterPokemon lsls r0, 16 lsrs r0, 16 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 mov r10, r0 movs r4, 0x1 movs r5, 0 ldr r0, _08145984 mov r8, r0 _0814590E: adds r0, r4, 0 movs r1, 0x1 bl sub_8090D90 lsls r0, 24 adds r6, r7, 0 adds r6, 0x90 cmp r0, 0 beq _0814592C lsls r0, r5, 1 adds r0, r6, r0 strh r4, [r0] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _0814592C: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r8 bls _0814590E adds r4, r5, 0 ldr r0, _08145984 lsls r1, r4, 16 mov r9, r1 movs r2, 0x8E adds r2, r7 mov r8, r2 adds r1, r7, 0 adds r1, 0x86 str r1, [sp] cmp r4, r0 bhi _08145964 adds r1, r6, 0 movs r3, 0 adds r2, r0, 0 _08145954: lsls r0, r4, 1 adds r0, r1, r0 strh r3, [r0] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r2 bls _08145954 _08145964: movs r2, 0xE5 lsls r2, 2 adds r0, r7, r2 strh r5, [r0] mov r1, r9 lsrs r0, r1, 16 cmp r0, 0x43 bhi _08145988 mov r2, r8 strh r5, [r2] b _0814598E .align 2, 0 _0814597C: .4byte 0x0201c000 _08145980: .4byte 0x00004023 _08145984: .4byte 0x00000181 _08145988: movs r0, 0x44 mov r1, r8 strh r0, [r1] _0814598E: movs r5, 0 movs r2, 0xE5 lsls r2, 2 adds r4, r7, r2 mov r9, r5 b _0814599E _0814599A: cmp r5, 0x43 bhi _081459EE _0814599E: bl Random lsls r0, 16 lsrs r0, 16 ldrh r1, [r4] bl __umodsi3 lsls r0, 16 lsrs r2, r0, 16 lsls r1, r5, 1 adds r1, r7, r1 lsls r0, r2, 1 adds r3, r6, r0 ldrh r0, [r3] strh r0, [r1] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 mov r0, r9 strh r0, [r3] ldrh r0, [r4] subs r0, 0x1 strh r0, [r4] lsls r0, 16 lsrs r0, 16 cmp r2, r0 beq _081459E8 ldrh r0, [r4] lsls r0, 1 adds r0, r6, r0 ldrh r0, [r0] strh r0, [r3] ldrh r0, [r4] lsls r0, 1 adds r0, r6, r0 mov r1, r9 strh r1, [r0] _081459E8: ldrh r0, [r4] cmp r0, 0 bne _0814599A _081459EE: mov r2, r8 ldrh r0, [r2] cmp r0, 0x43 bhi _08145A26 adds r5, r0, 0 movs r2, 0 cmp r5, 0x43 bhi _08145A5C mov r3, r8 _08145A00: lsls r1, r5, 1 adds r1, r7, r1 lsls r0, r2, 1 adds r0, r7, r0 ldrh r0, [r0] strh r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldrh r0, [r3] cmp r2, r0 bne _08145A1A movs r2, 0 _08145A1A: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x43 bls _08145A00 b _08145A5C _08145A26: movs r4, 0 ldrh r0, [r7] cmp r0, r10 beq _08145A42 _08145A2E: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 lsls r0, r4, 1 adds r0, r7, r0 ldrh r0, [r0] cmp r0, r10 beq _08145A42 cmp r4, 0x43 bls _08145A2E _08145A42: mov r1, r8 ldrh r0, [r1] subs r0, 0x1 cmp r4, r0 bge _08145A5C lsls r0, r4, 1 adds r0, r7, r0 ldr r2, [sp] ldrh r1, [r2] strh r1, [r0] mov r0, r10 strh r0, [r2] b _08145A62 _08145A5C: mov r2, r10 ldr r1, [sp] strh r2, [r1] _08145A62: movs r0, 0x44 mov r1, r8 strh r0, [r1] add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81458DC thumb_func_start sub_8145A78 sub_8145A78: @ 8145A78 push {r4,lr} bl Random adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 bl Random lsls r0, 16 orrs r0, r4 bl sub_8145D14 ldr r0, _08145AA0 movs r1, 0 bl VarSet pop {r4} pop {r0} bx r0 .align 2, 0 _08145AA0: .4byte 0x00004045 thumb_func_end sub_8145A78 thumb_func_start sub_8145AA4 sub_8145AA4: @ 8145AA4 push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 bl Random lsls r0, 16 lsrs r1, r0, 16 subs r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldr r0, _08145AE0 cmp r4, r0 beq _08145AD4 ldr r5, _08145AE4 ldr r3, _08145AE8 adds r2, r0, 0 _08145AC4: adds r0, r1, 0 muls r0, r5 adds r1, r0, r3 subs r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r2 bne _08145AC4 _08145AD4: adds r0, r1, 0 bl sub_8145D14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08145AE0: .4byte 0x0000ffff _08145AE4: .4byte 0x41c64e6d _08145AE8: .4byte 0x00003039 thumb_func_end sub_8145AA4 thumb_func_start sub_8145AEC sub_8145AEC: @ 8145AEC push {lr} bl sub_8145D3C ldr r1, _08145AFC strh r0, [r1] pop {r0} bx r0 .align 2, 0 _08145AFC: .4byte gScriptResult thumb_func_end sub_8145AEC thumb_func_start sub_8145B00 sub_8145B00: @ 8145B00 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r1, _08145C24 movs r0, 0 strh r0, [r1] movs r0, 0 mov r10, r0 mov r9, r0 movs r6, 0 _08145B18: movs r0, 0x64 adds r1, r6, 0 muls r1, r0 ldr r0, _08145C28 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _08145B74 adds r0, r4, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _08145B6A adds r0, r4, 0 movs r1, 0x1 bl GetMonData adds r1, r0, 0 ldr r0, _08145C2C ldrh r0, [r0] lsls r1, 16 lsrs r1, 16 bl sub_8145C8C lsls r0, 24 lsrs r0, 24 ldr r1, _08145C24 ldrh r2, [r1] cmp r0, r2 bls _08145B6A cmp r0, 0x1 bls _08145B6A subs r0, 0x1 strh r0, [r1] movs r0, 0xE mov r9, r0 mov r10, r6 _08145B6A: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x5 bls _08145B18 _08145B74: movs r6, 0 _08145B76: movs r5, 0 adds r1, r6, 0x1 mov r8, r1 lsls r0, r6, 2 adds r7, r0, r6 _08145B80: lsls r2, r7, 4 subs r2, r7 lsls r2, 5 lsls r0, r5, 2 adds r0, r5 lsls r0, 4 ldr r1, _08145C30 adds r0, r1 adds r4, r2, r0 adds r0, r4, 0 movs r1, 0xB bl GetBoxMonData cmp r0, 0 beq _08145BD8 adds r0, r4, 0 movs r1, 0x2D bl GetBoxMonData cmp r0, 0 bne _08145BD8 adds r0, r4, 0 movs r1, 0x1 bl GetBoxMonData adds r1, r0, 0 ldr r0, _08145C2C ldrh r0, [r0] lsls r1, 16 lsrs r1, 16 bl sub_8145C8C lsls r0, 24 lsrs r0, 24 ldr r1, _08145C24 ldrh r2, [r1] cmp r0, r2 bls _08145BD8 cmp r0, 0x1 bls _08145BD8 subs r0, 0x1 strh r0, [r1] mov r9, r6 mov r10, r5 _08145BD8: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x1D bls _08145B80 mov r1, r8 lsls r0, r1, 16 lsrs r6, r0, 16 cmp r6, 0xD bls _08145B76 ldr r3, _08145C24 ldrh r0, [r3] cmp r0, 0 beq _08145C72 ldr r2, _08145C34 ldr r1, _08145C38 subs r0, 0x1 lsls r0, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r2] mov r2, r9 cmp r2, 0xE bne _08145C44 ldr r1, _08145C3C movs r0, 0 strh r0, [r1] movs r0, 0x64 mov r1, r10 muls r1, r0 adds r0, r1, 0 ldr r1, _08145C28 adds r0, r1 ldr r2, _08145C40 movs r1, 0x2 bl GetMonData b _08145C6C .align 2, 0 _08145C24: .4byte gUnknown_0202E8CC _08145C28: .4byte gPlayerParty _08145C2C: .4byte gScriptResult _08145C30: .4byte gUnknown_020300A4 _08145C34: .4byte gUnknown_0202E8CE _08145C38: .4byte gUnknown_0840CB04 _08145C3C: .4byte gUnknown_0202E8D0 _08145C40: .4byte gStringVar1 _08145C44: ldr r1, _08145C80 movs r0, 0x1 strh r0, [r1] mov r2, r9 lsls r1, r2, 2 add r1, r9 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 mov r2, r10 lsls r1, r2, 2 add r1, r10 lsls r1, 4 ldr r2, _08145C84 adds r1, r2 adds r0, r1 ldr r2, _08145C88 movs r1, 0x2 bl GetBoxMonData _08145C6C: ldr r0, _08145C88 bl StringGetEnd10 _08145C72: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08145C80: .4byte gUnknown_0202E8D0 _08145C84: .4byte gUnknown_020300A4 _08145C88: .4byte gStringVar1 thumb_func_end sub_8145B00 thumb_func_start sub_8145C8C sub_8145C8C: @ 8145C8C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 16 lsrs r6, r0, 16 lsls r1, 16 lsrs r5, r1, 16 movs r0, 0 mov r8, r0 movs r7, 0 ldr r1, _08145D0C mov r10, r1 ldr r0, _08145D10 mov r9, r0 _08145CAC: adds r0, r6, 0 movs r1, 0xA bl __umodsi3 adds r4, r0, 0 mov r1, r10 strh r4, [r1] adds r0, r5, 0 movs r1, 0xA bl __umodsi3 mov r1, r9 strh r0, [r1] lsls r4, 16 lsls r0, 16 cmp r4, r0 bne _08145CFA adds r0, r6, 0 movs r1, 0xA bl __udivsi3 lsls r0, 16 lsrs r6, r0, 16 adds r0, r5, 0 movs r1, 0xA bl __udivsi3 lsls r0, 16 lsrs r5, r0, 16 mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x4 bls _08145CAC _08145CFA: mov r0, r8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08145D0C: .4byte gUnknown_02039328 _08145D10: .4byte gUnknown_0203932A thumb_func_end sub_8145C8C thumb_func_start sub_8145D14 sub_8145D14: @ 8145D14 push {r4,lr} adds r1, r0, 0 lsrs r4, r1, 16 lsls r1, 16 lsrs r1, 16 ldr r0, _08145D34 bl VarSet ldr r0, _08145D38 adds r1, r4, 0 bl VarSet pop {r4} pop {r0} bx r0 .align 2, 0 _08145D34: .4byte 0x0000404b _08145D38: .4byte 0x0000404c thumb_func_end sub_8145D14 thumb_func_start sub_8145D3C sub_8145D3C: @ 8145D3C push {r4,lr} ldr r0, _08145D5C bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _08145D60 bl VarGet lsls r0, 16 orrs r0, r4 pop {r4} pop {r1} bx r1 .align 2, 0 _08145D5C: .4byte 0x0000404b _08145D60: .4byte 0x0000404c thumb_func_end sub_8145D3C thumb_func_start unref_sub_8145D64 unref_sub_8145D64: @ 8145D64 push {lr} lsls r0, 16 lsrs r0, 16 bl sub_8145D14 pop {r0} bx r0 thumb_func_end unref_sub_8145D64 thumb_func_start sub_8145D74 sub_8145D74: @ 8145D74 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8145D74 thumb_func_start sub_8145D88 sub_8145D88: @ 8145D88 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0xC movs r0, 0 bl SetVBlankCallback movs r0, 0x80 lsls r0, 19 mov r8, r0 movs r1, 0 strh r1, [r0] ldr r6, _08145EB0 strh r1, [r6] adds r0, 0xC strh r1, [r0] subs r0, 0x2 strh r1, [r0] subs r0, 0x2 strh r1, [r0] adds r0, 0x14 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] add r0, sp, 0x4 strh r1, [r0] ldr r2, _08145EB4 str r0, [r2] movs r1, 0xC0 lsls r1, 19 str r1, [r2, 0x4] ldr r0, _08145EB8 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r5, 0 str r5, [sp, 0x8] add r0, sp, 0x8 str r0, [r2] movs r0, 0xE0 lsls r0, 19 str r0, [r2, 0x4] ldr r0, _08145EBC str r0, [r2, 0x8] ldr r0, [r2, 0x8] add r0, sp, 0x4 strh r5, [r0] str r0, [r2] movs r0, 0xA0 lsls r0, 19 str r0, [r2, 0x4] ldr r0, _08145EC0 str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _08145EC4 bl LZ77UnCompVram ldr r0, _08145EC8 ldr r1, _08145ECC bl LZ77UnCompVram bl remove_some_task bl ResetTasks bl ResetSpriteData bl ResetPaletteFade bl FreeAllSpritePalettes ldr r0, _08145ED0 movs r1, 0 movs r2, 0x40 bl LoadPalette ldr r0, _08145ED4 bl SetUpWindowConfig ldr r0, _08145ED8 bl InitMenuWindow bl pokedex_diploma_something movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r3, _08145EDC ldrh r2, [r3] strh r5, [r3] ldr r4, _08145EE0 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _08145EE4 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _08145EE8 bl SetVBlankCallback ldr r0, _08145EEC bl SetMainCallback2 ldr r0, _08145EF0 strh r5, [r0] adds r0, 0x2 strh r5, [r0] adds r0, 0x2 strh r5, [r0] ldr r1, _08145EF4 adds r0, r1, 0 strh r0, [r6] movs r1, 0xCA lsls r1, 5 adds r0, r1, 0 mov r1, r8 strh r0, [r1] ldr r0, _08145EF8 movs r1, 0 bl CreateTask add sp, 0xC pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08145EB0: .4byte REG_BG3CNT _08145EB4: .4byte 0x040000d4 _08145EB8: .4byte 0x8100c000 _08145EBC: .4byte 0x85000100 _08145EC0: .4byte 0x81000200 _08145EC4: .4byte gUnknown_0840D288 _08145EC8: .4byte gUnknown_0840CB4C _08145ECC: .4byte 0x06003000 _08145ED0: .4byte gUnknown_0840CB0C _08145ED4: .4byte gWindowConfig_81E6C3C _08145ED8: .4byte gWindowConfig_81E6CE4 _08145EDC: .4byte 0x04000208 _08145EE0: .4byte 0x04000200 _08145EE4: .4byte REG_DISPSTAT _08145EE8: .4byte sub_8145D74 _08145EEC: .4byte sub_8145EFC _08145EF0: .4byte REG_BLDCNT _08145EF4: .4byte 0x00004603 _08145EF8: .4byte sub_8145F14 thumb_func_end sub_8145D88 thumb_func_start sub_8145EFC sub_8145EFC: @ 8145EFC push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8145EFC thumb_func_start sub_8145F14 sub_8145F14: @ 8145F14 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _08145F38 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08145F34 ldr r0, _08145F3C lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _08145F40 str r0, [r1] _08145F34: pop {r0} bx r0 .align 2, 0 _08145F38: .4byte gPaletteFade _08145F3C: .4byte gTasks _08145F40: .4byte sub_8145F44 thumb_func_end sub_8145F14 thumb_func_start sub_8145F44 sub_8145F44: @ 8145F44 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08145F80 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08145F76 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _08145F84 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08145F88 str r1, [r0] _08145F76: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08145F80: .4byte gMain _08145F84: .4byte gTasks _08145F88: .4byte sub_8145F8C thumb_func_end sub_8145F44 thumb_func_start sub_8145F8C sub_8145F8C: @ 8145F8C push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _08145FB0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08145FAA adds r0, r2, 0 bl DestroyTask ldr r0, _08145FB4 bl SetMainCallback2 _08145FAA: pop {r0} bx r0 .align 2, 0 _08145FB0: .4byte gPaletteFade _08145FB4: .4byte sub_80546F0 thumb_func_end sub_8145F8C thumb_func_start pokedex_diploma_something pokedex_diploma_something: @ 8145FB8 push {lr} bl sub_8090FF4 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _08145FE8 ldr r1, _08145FDC movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] ldr r0, _08145FE0 ldr r1, _08145FE4 bl StringCopy b _08145FF4 .align 2, 0 _08145FDC: .4byte REG_BG3HOFS _08145FE0: .4byte gStringVar1 _08145FE4: .4byte gOtherText_NationalDex _08145FE8: ldr r0, _08146004 strh r1, [r0] ldr r0, _08146008 ldr r1, _0814600C bl StringCopy _08145FF4: ldr r0, _08146010 movs r1, 0x6 movs r2, 0x2 bl MenuPrint pop {r0} bx r0 .align 2, 0 _08146004: .4byte REG_BG3HOFS _08146008: .4byte gStringVar1 _0814600C: .4byte gOtherText_HoennDex _08146010: .4byte gOtherText_DiplomaCertificationGameFreak thumb_func_end pokedex_diploma_something thumb_func_start sub_8146014 sub_8146014: @ 8146014 push {lr} bl AnimateSprites bl BuildOamBuffer bl RunTasks bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8146014 thumb_func_start sub_814602C sub_814602C: @ 814602C push {lr} ldr r2, _0814604C ldr r0, _08146050 ldrh r1, [r0] strh r1, [r2] ldr r0, _08146054 strh r1, [r0] bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 .align 2, 0 _0814604C: .4byte REG_BG0VOFS _08146050: .4byte gUnknown_030041B4 _08146054: .4byte REG_BG1VOFS thumb_func_end sub_814602C thumb_func_start sub_8146058 sub_8146058: @ 8146058 push {r4,lr} sub sp, 0x4 ldr r0, _08146074 ldr r1, _08146078 adds r0, r1 ldrb r0, [r0] cmp r0, 0xC bls _0814606A b _08146250 _0814606A: lsls r0, 2 ldr r1, _0814607C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08146074: .4byte gMain _08146078: .4byte 0x0000043c _0814607C: .4byte _08146080 .align 2, 0 _08146080: .4byte _081460B4 .4byte _081460CC .4byte _081460F0 .4byte _081460F6 .4byte _08146110 .4byte _0814611C .4byte _0814613C .4byte _0814615C .4byte _08146170 .4byte _08146190 .4byte _081461B4 .4byte _08146204 .4byte _08146224 _081460B4: bl sub_80F9438 bl sub_80F9368 bl sub_8146288 ldr r1, _081460C8 movs r0, 0 strh r0, [r1] b _0814620C .align 2, 0 _081460C8: .4byte REG_BLDCNT _081460CC: bl ResetPaletteFade ldr r2, _081460E4 ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r1, _081460E8 ldr r0, _081460EC adds r1, r0 b _08146212 .align 2, 0 _081460E4: .4byte gPaletteFade _081460E8: .4byte gMain _081460EC: .4byte 0x0000043c _081460F0: bl ResetSpriteData b _0814620C _081460F6: ldr r0, _08146104 bl SetUpWindowConfig ldr r1, _08146108 ldr r0, _0814610C adds r1, r0 b _08146212 .align 2, 0 _08146104: .4byte gWindowConfig_81E6E18 _08146108: .4byte gMain _0814610C: .4byte 0x0000043c _08146110: ldr r0, _08146118 bl MultistepInitMenuWindowBegin b _0814620C .align 2, 0 _08146118: .4byte gWindowConfig_81E6E18 _0814611C: bl MultistepInitMenuWindowContinue cmp r0, 0 bne _08146126 b _08146250 _08146126: ldr r0, _08146134 ldr r1, _08146138 adds r0, r1 movs r1, 0 strb r1, [r0] b _0814620C .align 2, 0 _08146134: .4byte 0x02000000 _08146138: .4byte 0x0001ffff _0814613C: bl sub_81462B8 lsls r0, 24 cmp r0, 0 bne _08146148 b _08146250 _08146148: ldr r0, _08146154 ldr r1, _08146158 adds r0, r1 movs r1, 0 strb r1, [r0] b _0814620C .align 2, 0 _08146154: .4byte 0x02000000 _08146158: .4byte 0x0001ffff _0814615C: bl sub_81464E4 ldr r1, _08146168 ldr r0, _0814616C adds r1, r0 b _08146212 .align 2, 0 _08146168: .4byte gMain _0814616C: .4byte 0x0000043c _08146170: ldr r0, _08146188 ldrb r0, [r0] adds r0, 0x7B lsls r0, 24 lsrs r0, 24 movs r1, 0x38 movs r2, 0x40 bl sub_80A7D8C ldr r1, _0814618C strb r0, [r1] b _0814620C .align 2, 0 _08146188: .4byte word_203855E _0814618C: .4byte gUnknown_0203932C _08146190: ldr r0, _081461A8 ldrb r0, [r0] adds r0, 0x7B lsls r0, 24 lsrs r0, 24 bl sub_8146600 ldr r1, _081461AC ldr r0, _081461B0 adds r1, r0 b _08146212 .align 2, 0 _081461A8: .4byte word_203855E _081461AC: .4byte gMain _081461B0: .4byte 0x0000043c _081461B4: ldr r3, _081461EC ldrh r2, [r3] movs r0, 0 strh r0, [r3] ldr r4, _081461F0 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _081461F4 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _081461F8 bl SetVBlankCallback movs r1, 0x80 lsls r1, 19 movs r2, 0xFA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r1, _081461FC ldr r0, _08146200 adds r1, r0 b _08146212 .align 2, 0 _081461EC: .4byte 0x04000208 _081461F0: .4byte 0x04000200 _081461F4: .4byte REG_DISPSTAT _081461F8: .4byte sub_814602C _081461FC: .4byte gMain _08146200: .4byte 0x0000043c _08146204: bl sub_8055870 cmp r0, 0x1 beq _08146250 _0814620C: ldr r1, _0814621C ldr r2, _08146220 adds r1, r2 _08146212: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08146250 .align 2, 0 _0814621C: .4byte gMain _08146220: .4byte 0x0000043c _08146224: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r2, _08146248 ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] ldr r0, _0814624C bl SetMainCallback2 movs r0, 0x1 b _08146252 .align 2, 0 _08146248: .4byte gPaletteFade _0814624C: .4byte sub_8146014 _08146250: movs r0, 0 _08146252: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_8146058 thumb_func_start sub_814625C sub_814625C: @ 814625C push {lr} _0814625E: bl sub_8146058 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08146278 ldr r0, _08146274 movs r1, 0 bl CreateTask b _08146284 .align 2, 0 _08146274: .4byte sub_8146480 _08146278: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0814625E _08146284: pop {r0} bx r0 thumb_func_end sub_814625C thumb_func_start sub_8146288 sub_8146288: @ 8146288 ldr r1, _081462A8 ldr r2, _081462AC adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 adds r2, 0xFE adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _081462B0 adds r0, r2, 0 strh r0, [r1] ldr r1, _081462B4 movs r0, 0 strh r0, [r1] bx lr .align 2, 0 _081462A8: .4byte REG_BG1CNT _081462AC: .4byte 0x00000502 _081462B0: .4byte 0x00000703 _081462B4: .4byte gUnknown_030041B4 thumb_func_end sub_8146288 thumb_func_start sub_81462B8 sub_81462B8: @ 81462B8 push {r4-r7,lr} ldr r1, _081462D4 ldr r2, _081462D8 adds r0, r1, r2 ldrb r0, [r0] mov r12, r1 cmp r0, 0x6 bls _081462CA b _08146404 _081462CA: lsls r0, 2 ldr r1, _081462DC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081462D4: .4byte 0x02000000 _081462D8: .4byte 0x0001ffff _081462DC: .4byte _081462E0 .align 2, 0 _081462E0: .4byte _081462FC .4byte _0814630C .4byte _0814632C .4byte _08146340 .4byte _081463A4 .4byte _081463C4 .4byte _081463E4 _081462FC: ldr r0, _08146308 movs r1, 0xC0 lsls r1, 19 bl LZDecompressVram b _081463CA .align 2, 0 _08146308: .4byte gBerryCheck_Gfx _0814630C: ldr r0, _0814631C ldr r1, _08146320 bl LZDecompressVram ldr r1, _08146324 ldr r2, _08146328 adds r1, r2 b _081463D0 .align 2, 0 _0814631C: .4byte gUnknown_08E788E4 _08146320: .4byte 0x06002800 _08146324: .4byte 0x02000000 _08146328: .4byte 0x0001ffff _0814632C: ldr r0, _08146338 ldr r1, _0814633C bl LZDecompressVram b _081463CA .align 2, 0 _08146338: .4byte gUnknown_08E78A84 _0814633C: .4byte 0x06003000 _08146340: movs r1, 0 ldr r7, _0814635C adds r2, r7, 0 ldr r6, _08146360 ldr r5, _08146364 ldr r4, _08146368 ldr r3, _0814636C _0814634E: ldrb r0, [r5, 0x8] cmp r0, 0 bne _08146370 lsls r0, r1, 1 adds r0, r2 strh r6, [r0] b _08146376 .align 2, 0 _0814635C: .4byte gBG2TilemapBuffer _08146360: .4byte 0x00004042 _08146364: .4byte gSaveBlock2 _08146368: .4byte 0x00005042 _0814636C: .4byte 0x000003ff _08146370: lsls r0, r1, 1 adds r0, r2 strh r4, [r0] _08146376: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r3 bls _0814634E ldr r1, _08146394 ldr r0, _08146398 str r7, [r0] str r1, [r0, 0x4] ldr r1, _0814639C str r1, [r0, 0x8] ldr r0, [r0, 0x8] ldr r1, _081463A0 add r1, r12 b _081463D0 .align 2, 0 _08146394: .4byte 0x06003800 _08146398: .4byte 0x040000d4 _0814639C: .4byte 0x80000400 _081463A0: .4byte 0x0001ffff _081463A4: ldr r0, _081463B8 movs r1, 0 movs r2, 0xC0 bl LoadCompressedPalette ldr r1, _081463BC ldr r2, _081463C0 adds r1, r2 b _081463D0 .align 2, 0 _081463B8: .4byte gBerryCheck_Pal _081463BC: .4byte 0x02000000 _081463C0: .4byte 0x0001ffff _081463C4: ldr r0, _081463D8 bl LoadCompressedObjectPic _081463CA: ldr r1, _081463DC ldr r0, _081463E0 adds r1, r0 _081463D0: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08146404 .align 2, 0 _081463D8: .4byte gUnknown_083C1F74 _081463DC: .4byte 0x02000000 _081463E0: .4byte 0x0001ffff _081463E4: ldr r0, _081463F8 bl LoadCompressedObjectPalette ldr r0, _081463FC ldr r1, _08146400 adds r0, r1 movs r1, 0 strb r1, [r0] movs r0, 0x1 b _08146406 .align 2, 0 _081463F8: .4byte gUnknown_083C1F7C _081463FC: .4byte 0x02000000 _08146400: .4byte 0x0001ffff _08146404: movs r0, 0 _08146406: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81462B8 thumb_func_start sub_814640C sub_814640C: @ 814640C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08146438 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08146432 ldr r0, _0814643C bl SetMainCallback2 bl sub_80A7DD4 bl gpu_pal_allocator_reset__manage_upper_four adds r0, r4, 0 bl DestroyTask _08146432: pop {r4} pop {r0} bx r0 .align 2, 0 _08146438: .4byte gPaletteFade _0814643C: .4byte sub_80A5B40 thumb_func_end sub_814640C thumb_func_start sub_8146440 sub_8146440: @ 8146440 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _08146478 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0814647C str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08146478: .4byte gTasks _0814647C: .4byte sub_814640C thumb_func_end sub_8146440 thumb_func_start sub_8146480 sub_8146480: @ 8146480 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 adds r7, r4, 0 ldr r0, _081464DC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081464D6 ldr r5, _081464E0 ldrh r1, [r5, 0x30] movs r6, 0xF0 adds r0, r6, 0 ands r0, r1 cmp r0, 0x40 bne _081464AC movs r1, 0x1 negs r1, r1 adds r0, r4, 0 bl sub_81466E8 _081464AC: ldrh r1, [r5, 0x30] adds r0, r6, 0 ands r0, r1 cmp r0, 0x80 bne _081464BE adds r0, r4, 0 movs r1, 0x1 bl sub_81466E8 _081464BE: ldrh r1, [r5, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _081464D0 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081464D6 _081464D0: adds r0, r7, 0 bl sub_8146440 _081464D6: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081464DC: .4byte gPaletteFade _081464E0: .4byte gMain thumb_func_end sub_8146480 thumb_func_start sub_81464E4 sub_81464E4: @ 81464E4 push {r4-r7,lr} ldr r4, _0814659C ldrb r0, [r4] adds r0, 0x7C lsls r0, 24 lsrs r0, 24 bl GetBerryInfo adds r5, r0, 0 ldr r7, _081465A0 ldrh r1, [r4] subs r1, 0x84 adds r0, r7, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN adds r0, r7, 0 movs r1, 0xC movs r2, 0x4 bl MenuPrint adds r0, r5, 0 movs r1, 0xE movs r2, 0x4 bl MenuPrint ldr r0, [r5, 0xC] movs r1, 0x4 movs r2, 0xE bl MenuPrint ldr r0, [r5, 0x10] movs r1, 0x4 movs r2, 0x10 bl MenuPrint ldrh r1, [r5, 0x8] lsls r0, r1, 5 subs r0, r1 lsls r0, 2 adds r0, r1 lsls r0, 3 movs r1, 0xFE bl __divsi3 adds r4, r0, 0 movs r1, 0xA bl __umodsi3 cmp r0, 0x4 bls _0814654E adds r4, 0xA _0814654E: adds r0, r4, 0 movs r1, 0x64 bl __umodsi3 movs r1, 0xA bl __udivsi3 adds r6, r0, 0 adds r0, r4, 0 movs r1, 0x64 bl __udivsi3 adds r4, r0, 0 ldr r0, _081465A4 movs r1, 0xB movs r2, 0x7 bl MenuPrint ldrh r0, [r5, 0x8] cmp r0, 0 beq _081465B0 adds r0, r7, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r0, _081465A8 adds r1, r6, 0 movs r2, 0 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r0, _081465AC movs r1, 0x10 movs r2, 0x7 bl MenuPrint b _081465BA .align 2, 0 _0814659C: .4byte word_203855E _081465A0: .4byte gStringVar1 _081465A4: .4byte gOtherText_Size _081465A8: .4byte gStringVar2 _081465AC: .4byte gContestStatsText_Unknown1 _081465B0: ldr r0, _081465E0 movs r1, 0x10 movs r2, 0x7 bl MenuPrint _081465BA: ldr r0, _081465E4 movs r1, 0xB movs r2, 0x9 bl MenuPrint ldrb r0, [r5, 0x7] cmp r0, 0 beq _081465EC ldr r0, _081465E8 ldrb r1, [r5, 0x7] subs r1, 0x1 lsls r1, 2 adds r1, r0 ldr r0, [r1] movs r1, 0x10 movs r2, 0x9 bl MenuPrint b _081465F6 .align 2, 0 _081465E0: .4byte gOtherText_ThreeQuestions2 _081465E4: .4byte gOtherText_Firm _081465E8: .4byte gUnknown_0841192C _081465EC: ldr r0, _081465FC movs r1, 0x10 movs r2, 0x9 bl MenuPrint _081465F6: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081465FC: .4byte gOtherText_ThreeQuestions2 thumb_func_end sub_81464E4 thumb_func_start sub_8146600 sub_8146600: @ 8146600 push {r4,r5,lr} lsls r0, 24 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r0, 24 bl GetBerryInfo adds r4, r0, 0 movs r2, 0 ldr r5, _08146698 ldr r0, _0814669C adds r3, r0, 0 _0814661A: lsls r0, r2, 1 adds r0, r5 ldrh r1, [r0] orrs r1, r3 strh r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x4 bls _0814661A ldrb r0, [r4, 0x15] cmp r0, 0 beq _08146642 movs r0, 0x30 bl sub_80A7E5C ldr r1, _08146698 lsls r0, 24 lsrs r0, 24 strh r0, [r1] _08146642: ldrb r0, [r4, 0x16] cmp r0, 0 beq _08146656 movs r0, 0x58 bl sub_80A7E5C ldr r1, _08146698 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x2] _08146656: ldrb r0, [r4, 0x17] cmp r0, 0 beq _0814666A movs r0, 0x80 bl sub_80A7E5C ldr r1, _08146698 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x4] _0814666A: ldrb r0, [r4, 0x18] cmp r0, 0 beq _0814667E movs r0, 0xA8 bl sub_80A7E5C ldr r1, _08146698 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x6] _0814667E: ldrb r0, [r4, 0x19] cmp r0, 0 beq _08146692 movs r0, 0xD0 bl sub_80A7E5C ldr r1, _08146698 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x8] _08146692: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08146698: .4byte gUnknown_0203932E _0814669C: .4byte 0x0000ffff thumb_func_end sub_8146600 thumb_func_start sub_81466A0 sub_81466A0: @ 81466A0 push {r4-r7,lr} movs r5, 0 movs r7, 0x1 negs r7, r7 ldr r6, _081466DC _081466AA: lsls r0, r5, 1 adds r4, r0, r6 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, r7 beq _081466CA adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081466E0 adds r0, r1 bl DestroySprite ldr r0, _081466E4 strh r0, [r4] _081466CA: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x4 bls _081466AA pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081466DC: .4byte gUnknown_0203932E _081466E0: .4byte gSprites _081466E4: .4byte 0x0000ffff thumb_func_end sub_81466A0 thumb_func_start sub_81466E8 sub_81466E8: @ 81466E8 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r2, r1, 24 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, _08146748 adds r6, r0, r1 ldr r4, _0814674C movs r0, 0xC adds r0, r4 mov r8, r0 ldrb r1, [r0, 0x1] ldrb r0, [r4, 0xC] adds r1, r0 cmp r1, 0 bne _08146718 lsls r0, r2, 24 cmp r0, 0 blt _0814678C _08146718: adds r0, r1, 0x1 lsls r5, r2, 24 mov r1, r8 ldrb r1, [r1, 0x2] cmp r0, r1 bne _08146728 cmp r5, 0 bgt _0814678C _08146728: movs r0, 0x5 bl PlaySE mov r2, r8 ldrb r3, [r2, 0x1] ldrb r4, [r4, 0xC] mov r12, r4 adds r0, r3, r4 asrs r2, r5, 24 adds r1, r0, r2 cmp r1, 0 bge _08146750 negs r0, r0 strh r0, [r6, 0x2] b _08146766 .align 2, 0 _08146748: .4byte gUnknown_03004B28 _0814674C: .4byte gUnknown_03005D10 _08146750: mov r4, r8 ldrb r0, [r4, 0x2] cmp r1, r0 blt _08146764 subs r0, r3 mov r1, r12 subs r0, r1 subs r0, 0x1 strh r0, [r6, 0x2] b _08146766 _08146764: strh r2, [r6, 0x2] _08146766: ldr r0, _08146780 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r0 ldr r0, _08146784 str r0, [r1] cmp r5, 0 bge _08146788 movs r2, 0x10 negs r2, r2 adds r0, r2, 0 b _0814678A .align 2, 0 _08146780: .4byte gTasks _08146784: .4byte sub_8146798 _08146788: movs r0, 0x10 _0814678A: strh r0, [r6] _0814678C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81466E8 thumb_func_start sub_8146798 sub_8146798: @ 8146798 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _08146800 adds r0, r1 ldr r2, _08146804 ldrh r1, [r0] ldrh r5, [r2] adds r3, r1, r5 movs r1, 0xFF ands r3, r1 strh r3, [r2] movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 ble _081467C2 cmp r3, 0x90 beq _081467CA _081467C2: cmp r0, 0 bge _081467E0 cmp r3, 0x70 bne _081467E0 _081467CA: ldr r0, _08146808 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0xA ldrsb r0, [r1, r0] bl sub_8146810 bl sub_81468BC _081467E0: ldr r0, _08146804 ldrh r2, [r0] cmp r2, 0 bne _081467FA ldr r0, _08146808 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 strh r2, [r1, 0x8] strh r2, [r1, 0xA] ldr r0, _0814680C str r0, [r1] _081467FA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08146800: .4byte gUnknown_03004B28 _08146804: .4byte gUnknown_030041B4 _08146808: .4byte gTasks _0814680C: .4byte sub_8146480 thumb_func_end sub_8146798 thumb_func_start sub_8146810 sub_8146810: @ 8146810 push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 adds r4, r3, 0 lsls r0, r3, 24 asrs r1, r0, 24 cmp r1, 0 ble _08146848 ldr r0, _08146840 adds r4, r0, 0 adds r4, 0xC ldrb r2, [r0, 0xC] adds r1, r2, r1 adds r6, r0, 0 cmp r1, 0x7 ble _08146844 adds r0, r3, 0 adds r0, 0xF9 adds r0, r2, r0 ldrb r1, [r4, 0x1] adds r0, r1 strb r0, [r4, 0x1] movs r0, 0x7 b _0814686E .align 2, 0 _08146840: .4byte gUnknown_03005D10 _08146844: adds r0, r2, r3 b _0814686E _08146848: ldr r0, _08146868 adds r5, r0, 0 adds r5, 0xC ldrb r2, [r0, 0xC] adds r1, r2, r1 adds r6, r0, 0 cmp r1, 0 bge _0814686C adds r0, r2, r3 ldrb r1, [r5, 0x1] adds r0, r1 movs r1, 0 strb r0, [r5, 0x1] strb r1, [r6, 0xC] b _08146870 .align 2, 0 _08146868: .4byte gUnknown_03005D10 _0814686C: adds r0, r2, r4 _0814686E: strb r0, [r6, 0xC] _08146870: ldr r2, _081468AC movs r0, 0x3 lsls r0, 2 adds r0, r6 ldrb r1, [r0, 0x1] ldrb r0, [r0] adds r1, r0 ldr r0, _081468B0 ldr r0, [r0] lsls r1, 2 adds r1, r0 ldrh r0, [r1] strh r0, [r2] ldr r0, _081468B4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081468B8 adds r0, r1 bl DestroySprite bl sub_81466A0 bl sub_80A7DD4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081468AC: .4byte word_203855E _081468B0: .4byte gUnknown_03005D24 _081468B4: .4byte gUnknown_0203932C _081468B8: .4byte gSprites thumb_func_end sub_8146810 thumb_func_start sub_81468BC sub_81468BC: @ 81468BC push {r4,lr} movs r0, 0 movs r1, 0x4 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect bl sub_81464E4 ldr r4, _081468F8 ldrb r0, [r4] adds r0, 0x7B lsls r0, 24 lsrs r0, 24 movs r1, 0x38 movs r2, 0x40 bl sub_80A7D8C ldr r1, _081468FC strb r0, [r1] ldrb r0, [r4] adds r0, 0x7B lsls r0, 24 lsrs r0, 24 bl sub_8146600 pop {r4} pop {r0} bx r0 .align 2, 0 _081468F8: .4byte word_203855E _081468FC: .4byte gUnknown_0203932C thumb_func_end sub_81468BC thumb_func_start sub_8146900 sub_8146900: @ 8146900 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8146900 thumb_func_start sub_8146914 sub_8146914: @ 8146914 push {lr} movs r2, 0 ldr r1, _0814692C ldrh r0, [r1, 0x1A] ldrh r1, [r1, 0x36] cmp r0, r1 bne _08146924 movs r2, 0x1 _08146924: adds r0, r2, 0 pop {r1} bx r1 .align 2, 0 _0814692C: .4byte gLinkPlayers thumb_func_end sub_8146914 thumb_func_start CB2_InitMysteryEventMenu CB2_InitMysteryEventMenu: @ 8146930 push {r4,lr} bl ResetSpriteData bl FreeAllSpritePalettes bl ResetTasks ldr r0, _0814699C bl SetVBlankCallback ldr r4, _081469A0 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl InitMenuWindow bl MenuZeroFillScreen movs r1, 0x80 lsls r1, 19 movs r2, 0xA0 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] adds r1, 0x50 movs r0, 0 strh r0, [r1] ldr r0, _081469A4 movs r1, 0 bl CreateTask bl StopMapMusic bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade movs r0, 0 movs r1, 0 movs r2, 0x2 bl FillPalette ldr r0, _081469A8 bl SetMainCallback2 pop {r4} pop {r0} bx r0 .align 2, 0 _0814699C: .4byte sub_8146900 _081469A0: .4byte gWindowConfig_81E6CE4 _081469A4: .4byte Task_DestroySelf _081469A8: .4byte sub_81469E4 thumb_func_end CB2_InitMysteryEventMenu thumb_func_start sub_81469AC sub_81469AC: @ 81469AC push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 movs r5, 0x1 cmp r4, 0 bne _081469C0 ldr r1, _081469DC bl StringCopy movs r5, 0 _081469C0: cmp r4, 0x2 bne _081469C6 movs r5, 0 _081469C6: cmp r4, 0x1 bne _081469D2 ldr r1, _081469E0 adds r0, r6, 0 bl StringCopy _081469D2: adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _081469DC: .4byte gSystemText_EventLoadSuccess _081469E0: .4byte gSystemText_LoadingError thumb_func_end sub_81469AC thumb_func_start sub_81469E4 sub_81469E4: @ 81469E4 push {r4-r6,lr} sub sp, 0x8 ldr r1, _08146A04 ldr r2, _08146A08 adds r0, r1, r2 ldrb r0, [r0] adds r4, r1, 0 cmp r0, 0x10 bls _081469F8 b _08146DA4 _081469F8: lsls r0, 2 ldr r1, _08146A0C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08146A04: .4byte gMain _08146A08: .4byte 0x0000043c _08146A0C: .4byte _08146A10 .align 2, 0 _08146A10: .4byte _08146A54 .4byte _08146A6E .4byte _08146A9C .4byte _08146AD4 .4byte _08146B18 .4byte _08146B26 .4byte _08146B90 .4byte _08146C64 .4byte _08146C72 .4byte _08146C94 .4byte _08146CA0 .4byte _08146CB4 .4byte _08146CFC .4byte _08146D18 .4byte _08146D50 .4byte _08146D6C .4byte _08146D94 _08146A54: movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 b _08146D78 _08146A6E: ldr r0, _08146A8C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08146A7C b _08146DA4 _08146A7C: ldr r0, _08146A90 bl sub_8072044 ldr r1, _08146A94 ldr r2, _08146A98 adds r1, r2 b _08146D82 .align 2, 0 _08146A8C: .4byte gPaletteFade _08146A90: .4byte gSystemText_LinkStandby _08146A94: .4byte gMain _08146A98: .4byte 0x0000043c _08146A9C: bl MenuUpdateWindowText lsls r0, 24 cmp r0, 0 bne _08146AA8 b _08146DA4 _08146AA8: ldr r1, _08146AC4 ldr r0, _08146AC8 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r1, _08146ACC ldr r2, _08146AD0 adds r0, r2, 0 strh r0, [r1] bl OpenLink b _08146DA4 .align 2, 0 _08146AC4: .4byte gMain _08146AC8: .4byte 0x0000043c _08146ACC: .4byte gLinkType _08146AD0: .4byte 0x00005501 _08146AD4: ldr r0, _08146B08 ldr r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _08146AE2 b _08146C38 _08146AE2: movs r0, 0x1C ands r1, r0 cmp r1, 0x4 bhi _08146AEC b _08146C38 _08146AEC: movs r0, 0x15 bl PlaySE ldr r0, _08146B0C bl sub_8072044 ldr r1, _08146B10 ldr r0, _08146B14 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08146C38 .align 2, 0 _08146B08: .4byte gLinkStatus _08146B0C: .4byte gSystemText_LoadEventPressA _08146B10: .4byte gMain _08146B14: .4byte 0x0000043c _08146B18: bl MenuUpdateWindowText lsls r0, 24 cmp r0, 0 bne _08146B24 b _08146DA4 _08146B24: b _08146D7C _08146B26: bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bne _08146C10 ldr r4, _08146B64 ldrh r1, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08146B70 movs r0, 0x5 bl PlaySE bl sub_8007F4C movs r0, 0x6 movs r1, 0x5 movs r2, 0x17 movs r3, 0x8 bl MenuDrawTextWindow ldr r0, _08146B68 movs r1, 0x7 movs r2, 0x6 bl MenuPrint ldr r2, _08146B6C adds r1, r4, r2 b _08146D82 .align 2, 0 _08146B64: .4byte gMain _08146B68: .4byte gSystemText_LoadingEvent _08146B6C: .4byte 0x0000043c _08146B70: adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08146B7A b _08146DA4 _08146B7A: movs r0, 0x5 bl PlaySE bl CloseLink ldr r0, _08146B8C adds r1, r4, r0 b _08146C54 .align 2, 0 _08146B8C: .4byte 0x0000043c _08146B90: bl IsLinkConnectionEstablished lsls r0, 24 cmp r0, 0 beq _08146C38 ldr r0, _08146BD8 ldrb r0, [r0] cmp r0, 0 bne _08146BA4 b _08146DA4 _08146BA4: bl GetLinkPlayerDataExchangeStatusTimed lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _08146BE8 bl sub_800832C movs r0, 0x6 movs r1, 0x5 movs r2, 0x17 movs r3, 0x8 bl MenuZeroFillWindowRect ldr r4, _08146BDC adds r0, r4, 0 movs r1, 0x1 bl sub_81469AC adds r0, r4, 0 bl sub_8072044 ldr r0, _08146BE0 ldr r2, _08146BE4 adds r0, r2 b _08146C26 .align 2, 0 _08146BD8: .4byte gReceivedRemoteLinkPlayers _08146BDC: .4byte gStringVar4 _08146BE0: .4byte gMain _08146BE4: .4byte 0x0000043c _08146BE8: bl sub_8146914 lsls r0, 24 cmp r0, 0 beq _08146C00 ldr r0, _08146BFC bl sub_8072044 b _08146D7C .align 2, 0 _08146BFC: .4byte gSystemText_DontCutLink _08146C00: bl CloseLink movs r0, 0x6 movs r1, 0x5 movs r2, 0x17 movs r3, 0x8 bl MenuZeroFillWindowRect _08146C10: ldr r4, _08146C2C adds r0, r4, 0 movs r1, 0x1 bl sub_81469AC adds r0, r4, 0 bl sub_8072044 ldr r0, _08146C30 ldr r1, _08146C34 adds r0, r1 _08146C26: movs r1, 0xD strb r1, [r0] b _08146DA4 .align 2, 0 _08146C2C: .4byte gStringVar4 _08146C30: .4byte gMain _08146C34: .4byte 0x0000043c _08146C38: ldr r4, _08146C5C ldrh r1, [r4, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08146C46 b _08146DA4 _08146C46: movs r0, 0x5 bl PlaySE bl CloseLink ldr r2, _08146C60 adds r1, r4, r2 _08146C54: movs r0, 0xF strb r0, [r1] b _08146DA4 .align 2, 0 _08146C5C: .4byte gMain _08146C60: .4byte 0x0000043c _08146C64: bl MenuUpdateWindowText lsls r0, 24 cmp r0, 0 bne _08146C70 b _08146DA4 _08146C70: b _08146D7C _08146C72: bl GetBlockRecievedStatus lsls r0, 24 cmp r0, 0 bne _08146C7E b _08146DA4 _08146C7E: bl ResetBlockReceivedFlags ldr r1, _08146C8C ldr r2, _08146C90 adds r1, r2 b _08146D82 .align 2, 0 _08146C8C: .4byte gMain _08146C90: .4byte 0x0000043c _08146C94: ldr r0, _08146C9C adds r1, r4, r0 b _08146D82 .align 2, 0 _08146C9C: .4byte 0x0000043c _08146CA0: bl sub_800832C ldr r1, _08146CAC ldr r2, _08146CB0 adds r1, r2 b _08146D82 .align 2, 0 _08146CAC: .4byte gMain _08146CB0: .4byte 0x0000043c _08146CB4: ldr r0, _08146CEC ldrb r6, [r0] cmp r6, 0 bne _08146DA4 ldr r5, _08146CF0 adds r0, r5, 0 bl sub_812613C adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 str r6, [sp, 0x4] ldr r2, _08146CF4 add r0, sp, 0x4 adds r1, r5, 0 bl CpuSet ldr r0, _08146CF8 adds r1, r4, 0 bl sub_81469AC lsls r0, 24 cmp r0, 0 bne _08146D7C movs r0, 0 bl sub_8125D44 b _08146D7C .align 2, 0 _08146CEC: .4byte gReceivedRemoteLinkPlayers _08146CF0: .4byte 0x02000000 _08146CF4: .4byte 0x050001f5 _08146CF8: .4byte gStringVar4 _08146CFC: ldr r0, _08146D0C bl sub_8072044 ldr r1, _08146D10 ldr r2, _08146D14 adds r1, r2 b _08146D82 .align 2, 0 _08146D0C: .4byte gStringVar4 _08146D10: .4byte gMain _08146D14: .4byte 0x0000043c _08146D18: movs r0, 0x6 movs r1, 0x5 movs r2, 0x17 movs r3, 0x8 bl MenuZeroFillWindowRect bl MenuUpdateWindowText lsls r0, 24 cmp r0, 0 beq _08146DA4 ldr r1, _08146D44 ldr r0, _08146D48 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 movs r2, 0 strb r0, [r1] ldr r0, _08146D4C strb r2, [r0] b _08146DA4 .align 2, 0 _08146D44: .4byte gMain _08146D48: .4byte 0x0000043c _08146D4C: .4byte gUnknown_02039338 _08146D50: ldrh r1, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08146DA4 movs r0, 0x5 bl PlaySE ldr r2, _08146D68 adds r1, r4, r2 b _08146D82 .align 2, 0 _08146D68: .4byte 0x0000043c _08146D6C: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 _08146D78: bl BeginNormalPaletteFade _08146D7C: ldr r1, _08146D8C ldr r0, _08146D90 adds r1, r0 _08146D82: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08146DA4 .align 2, 0 _08146D8C: .4byte gMain _08146D90: .4byte 0x0000043c _08146D94: ldr r0, _08146DFC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08146DA4 bl DoSoftReset _08146DA4: ldr r0, _08146E00 ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _08146DE4 bl IsLinkMaster lsls r0, 24 cmp r0, 0 bne _08146DE4 bl CloseLink movs r0, 0x6 movs r1, 0x5 movs r2, 0x17 movs r3, 0x8 bl MenuZeroFillWindowRect ldr r4, _08146E04 adds r0, r4, 0 movs r1, 0x1 bl sub_81469AC adds r0, r4, 0 bl sub_8072044 ldr r0, _08146E08 ldr r1, _08146E0C adds r0, r1 movs r1, 0xD strb r1, [r0] _08146DE4: bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08146DFC: .4byte gPaletteFade _08146E00: .4byte gLinkStatus _08146E04: .4byte gStringVar4 _08146E08: .4byte gMain _08146E0C: .4byte 0x0000043c thumb_func_end sub_81469E4 thumb_func_start fullscreen_save_activate fullscreen_save_activate: @ 8146E10 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _08146E30 bl SetMainCallback2 ldr r0, _08146E34 strh r4, [r0] ldr r1, _08146E38 movs r0, 0 strh r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08146E30: .4byte sub_8146E50 _08146E34: .4byte gUnknown_0203933C _08146E38: .4byte gUnknown_0203933E thumb_func_end fullscreen_save_activate thumb_func_start sub_8146E3C sub_8146E3C: @ 8146E3C push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8146E3C thumb_func_start sub_8146E50 sub_8146E50: @ 8146E50 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC ldr r0, _08146FB0 ldr r1, _08146FB4 adds r7, r0, r1 ldrb r0, [r7] cmp r0, 0 beq _08146E6C cmp r0, 0x1 bne _08146E6C b _0814701C _08146E6C: movs r0, 0 bl SetVBlankCallback movs r0, 0x80 lsls r0, 19 mov r9, r0 movs r1, 0 strh r1, [r0] ldr r6, _08146FB8 strh r1, [r6] adds r0, 0xC mov r8, r0 strh r1, [r0] subs r0, 0x2 strh r1, [r0] ldr r5, _08146FBC strh r1, [r5] adds r0, 0x12 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] add r0, sp, 0x4 strh r1, [r0] ldr r2, _08146FC0 str r0, [r2] movs r1, 0xC0 lsls r1, 19 str r1, [r2, 0x4] ldr r0, _08146FC4 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r4, 0 str r4, [sp, 0x8] add r0, sp, 0x8 str r0, [r2] movs r0, 0xE0 lsls r0, 19 str r0, [r2, 0x4] ldr r0, _08146FC8 str r0, [r2, 0x8] ldr r0, [r2, 0x8] add r0, sp, 0x4 strh r4, [r0] str r0, [r2] movs r0, 0xA0 lsls r0, 19 str r0, [r2, 0x4] ldr r0, _08146FCC str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _08146FD0 bl LZ77UnCompVram ldr r0, _08146FD4 ldr r1, _08146FD8 bl LZ77UnCompVram ldr r0, _08146FDC ldr r1, _08146FE0 bl LZ77UnCompVram ldr r0, _08146FE4 ldr r1, _08146FE8 bl LZ77UnCompVram bl ResetSpriteData bl ResetTasks bl ResetPaletteFade ldr r0, _08146FEC movs r1, 0 movs r2, 0x40 bl LoadPalette ldr r0, _08146FF0 movs r1, 0x80 lsls r1, 1 movs r2, 0x20 bl LoadPalette ldr r0, _08146FF4 bl SetUpWindowConfig ldr r0, _08146FF8 bl InitMenuWindow .if REVISION >= 1 movs r0, 0xD movs r1, 0x6 movs r2, 0x10 movs r3, 0x9 .else movs r0, 0xD movs r1, 0x8 movs r2, 0x10 movs r3, 0xB .endif bl MenuDrawTextWindow .if REVISION >= 1 movs r0, 0x1 movs r1, 0xA movs r2, 0x1C movs r3, 0x13 .else movs r0, 0x1 movs r1, 0xC movs r2, 0x1C movs r3, 0x13 .endif bl MenuDrawTextWindow ldr r0, _08146FFC .if REVISION >= 1 movs r1, 0x2 movs r2, 0xB .else movs r1, 0x2 movs r2, 0xD .endif bl MenuPrint movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r3, _08147000 ldrh r2, [r3] strh r4, [r3] ldr r4, _08147004 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _08147008 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _0814700C bl SetVBlankCallback ldr r1, _08147010 adds r0, r1, 0 strh r0, [r6] ldr r1, _08147014 adds r0, r1, 0 mov r1, r8 strh r0, [r1] ldr r1, _08147018 adds r0, r1, 0 strh r0, [r5] movs r1, 0xEA lsls r1, 5 adds r0, r1, 0 mov r1, r9 strh r0, [r1] ldrb r0, [r7] adds r0, 0x1 strb r0, [r7] b _08147032 .align 2, 0 _08146FB0: .4byte gMain _08146FB4: .4byte 0x0000043c _08146FB8: .4byte REG_BG3CNT _08146FBC: .4byte REG_BG0CNT _08146FC0: .4byte 0x040000d4 _08146FC4: .4byte 0x8100c000 _08146FC8: .4byte 0x85000100 _08146FCC: .4byte 0x81000200 _08146FD0: .4byte gUnknown_083F66F0 _08146FD4: .4byte gBirchBagTilemap _08146FD8: .4byte 0x06003000 _08146FDC: .4byte gBirchGrassTilemap _08146FE0: .4byte 0x06003800 _08146FE4: .4byte gUnknown_08411980 _08146FE8: .4byte 0x06010020 _08146FEC: .4byte gUnknown_083F62EC _08146FF0: .4byte gUnknown_08411960 _08146FF4: .4byte gWindowConfig_81E6C3C _08146FF8: .4byte gWindowConfig_81E6CE4 _08146FFC: .4byte gSystemText_SaveFailedBackupCheck _08147000: .4byte 0x04000208 _08147004: .4byte 0x04000200 _08147008: .4byte REG_DISPSTAT _0814700C: .4byte sub_8146E3C _08147010: .4byte 0x00000703 _08147014: .4byte 0x00000602 _08147018: .4byte 0x00001f08 _0814701C: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _08147032 ldr r0, _08147040 bl SetMainCallback2 ldr r0, _08147044 bl SetVBlankCallback _08147032: add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08147040: .4byte sub_8147048 _08147044: .4byte sub_8147218 thumb_func_end sub_8146E50 thumb_func_start sub_8147048 sub_8147048: @ 8147048 push {r4,r5,lr} movs r4, 0 ldr r0, _081470C8 movs r1, 0x1 strh r1, [r0] ldr r1, _081470CC ldr r0, [r1] cmp r0, 0 beq _081470A6 adds r5, r1, 0 _0814705C: ldr r0, [r5] bl sub_814737C lsls r0, 24 cmp r0, 0 bne _0814710C .if REVISION >= 1 movs r0, 0x1 movs r1, 0xA movs r2, 0x1C movs r3, 0x13 .else movs r0, 0x1 movs r1, 0xC movs r2, 0x1C movs r3, 0x13 .endif bl MenuDrawTextWindow ldr r0, _081470D0 .if REVISION >= 1 movs r1, 0x2 movs r2, 0xB .else movs r1, 0x2 movs r2, 0xD .endif bl MenuPrint ldr r0, _081470D4 ldrb r0, [r0] bl sub_8125C3C ldr r0, [r5] cmp r0, 0 beq _08147096 ldr r0, _081470D8 .if REVISION >= 1 movs r1, 0x2 movs r2, 0xB .else movs r1, 0x2 movs r2, 0xD .endif bl MenuPrint _08147096: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldr r0, [r5] cmp r0, 0 beq _081470A6 cmp r4, 0x2 bls _0814705C _081470A6: cmp r4, 0x3 bne _081470E4 .if REVISION >= 1 movs r0, 0x1 movs r1, 0xA movs r2, 0x1C movs r3, 0x13 .else movs r0, 0x1 movs r1, 0xC movs r2, 0x1C movs r3, 0x13 .endif bl MenuDrawTextWindow ldr r0, _081470DC .if REVISION >= 1 movs r1, 0x2 movs r2, 0xB .else movs r1, 0x2 movs r2, 0xD .endif bl MenuPrint ldr r0, _081470E0 bl SetMainCallback2 b _0814713E .align 2, 0 _081470C8: .4byte gUnknown_0203933E _081470CC: .4byte gUnknown_03005EA8 _081470D0: .4byte gSystemText_CheckCompleteSaveAttempt _081470D4: .4byte gUnknown_0203933C _081470D8: .4byte gSystemText_SaveFailedBackupCheck _081470DC: .4byte gSystemText_BackupDamagedGameContinue _081470E0: .4byte sub_81471A4 _081470E4: .if REVISION >= 1 movs r0, 0x1 movs r1, 0xA movs r2, 0x1C movs r3, 0x13 .else movs r0, 0x1 movs r1, 0xC movs r2, 0x1C movs r3, 0x13 .endif bl MenuDrawTextWindow ldr r0, _08147104 ldr r0, [r0] cmp r0, 0 bne _08147134 ldr r0, _08147108 .if REVISION >= 1 movs r1, 0x2 movs r2, 0xB .else movs r1, 0x2 movs r2, 0xD .endif bl MenuPrint b _0814713E .align 2, 0 _08147104: .4byte gUnknown_03005EBC _08147108: .4byte gSystemText_SaveCompletedGameEnd _0814710C: .if REVISION >= 1 movs r0, 0x1 movs r1, 0xA movs r2, 0x1C movs r3, 0x13 .else movs r0, 0x1 movs r1, 0xC movs r2, 0x1C movs r3, 0x13 .endif bl MenuDrawTextWindow ldr r0, _0814712C .if REVISION >= 1 movs r1, 0x2 movs r2, 0xB .else movs r1, 0x2 movs r2, 0xD .endif bl MenuPrint ldr r0, _08147130 bl SetMainCallback2 b _08147144 .align 2, 0 _0814712C: .4byte gSystemText_BackupDamagedGameContinue _08147130: .4byte sub_8147154 _08147134: ldr r0, _0814714C .if REVISION >= 1 movs r1, 0x2 movs r2, 0xB .else movs r1, 0x2 movs r2, 0xD .endif bl MenuPrint _0814713E: ldr r0, _08147150 bl SetMainCallback2 _08147144: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0814714C: .4byte gSystemText_SaveCompletedPressA _08147150: .4byte sub_81471A4 thumb_func_end sub_8147048 thumb_func_start sub_8147154 sub_8147154: @ 8147154 push {lr} ldr r1, _08147190 movs r0, 0 strh r0, [r1] ldr r0, _08147194 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0814718A .if REVISION >= 1 movs r0, 0x1 movs r1, 0xA movs r2, 0x1C movs r3, 0x13 .else movs r0, 0x1 movs r1, 0xC movs r2, 0x1C movs r3, 0x13 .endif bl MenuDrawTextWindow ldr r0, _08147198 .if REVISION >= 1 movs r1, 0x2 movs r2, 0xB .else movs r1, 0x2 movs r2, 0xD .endif bl MenuPrint ldr r0, _0814719C bl SetVBlankCallback ldr r0, _081471A0 bl SetMainCallback2 _0814718A: pop {r0} bx r0 .align 2, 0 _08147190: .4byte gUnknown_0203933E _08147194: .4byte gMain _08147198: .4byte gSystemText_GameplayEnded _0814719C: .4byte sub_8146E3C _081471A0: .4byte sub_81471A4 thumb_func_end sub_8147154 thumb_func_start sub_81471A4 sub_81471A4: @ 81471A4 push {lr} sub sp, 0x4 ldr r0, _081471DC movs r2, 0 strh r2, [r0] ldr r0, _081471E0 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _081471D4 movs r0, 0x1 negs r0, r0 str r2, [sp] movs r1, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _081471E4 bl SetVBlankCallback ldr r0, _081471E8 bl SetMainCallback2 _081471D4: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _081471DC: .4byte gUnknown_0203933E _081471E0: .4byte gMain _081471E4: .4byte sub_8146E3C _081471E8: .4byte sub_81471EC thumb_func_end sub_81471A4 thumb_func_start sub_81471EC sub_81471EC: @ 81471EC push {r4,r5,lr} bl UpdatePaletteFade lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08147212 ldr r5, _08147208 ldr r0, [r5] cmp r0, 0 bne _0814720C bl DoSoftReset b _08147212 .align 2, 0 _08147208: .4byte gUnknown_03005EBC _0814720C: bl SetMainCallback2 str r4, [r5] _08147212: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81471EC thumb_func_start sub_8147218 sub_8147218: @ 8147218 push {r4,r5,lr} ldr r0, _08147290 mov r12, r0 ldr r0, [r0, 0x24] lsrs r4, r0, 3 movs r0, 0x7 ands r4, r0 ldr r0, _08147294 ldr r1, [r0, 0x4] ldr r0, [r0] mov r2, r12 str r0, [r2, 0x3C] str r1, [r2, 0x40] ldrh r1, [r2, 0x3E] ldr r0, _08147298 ands r0, r1 movs r1, 0x70 orrs r0, r1 strh r0, [r2, 0x3E] mov r1, r12 adds r1, 0x3C .if REVISION >= 1 movs r0, 0x38 .else movs r0, 0x48 .endif strb r0, [r1] ldr r0, _0814729C ldrh r0, [r0] cmp r0, 0 beq _081472A8 ldr r3, _081472A0 lsls r2, r4, 1 adds r2, r4 adds r0, r2, r3 mov r4, r12 adds r4, 0x40 ldrb r5, [r0] ldrh r1, [r4] ldr r0, _081472A4 ands r0, r1 orrs r0, r5 strh r0, [r4] adds r0, r3, 0x2 adds r0, r2, r0 ldrb r1, [r0] lsls r1, 4 adds r3, 0x1 adds r2, r3 ldrb r0, [r2] lsls r0, 3 orrs r1, r0 mov r3, r12 adds r3, 0x3F movs r0, 0x1F ands r1, r0 lsls r1, 1 ldrb r2, [r3] movs r0, 0x3F negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] b _081472B8 .align 2, 0 _08147290: .4byte gMain _08147294: .4byte gUnknown_08411940 _08147298: .4byte 0xfffffe00 _0814729C: .4byte gUnknown_0203933E _081472A0: .4byte gUnknown_08411948 _081472A4: .4byte 0xfffffc00 _081472A8: mov r2, r12 adds r2, 0x40 ldrh r1, [r2] ldr r0, _081472D8 ands r0, r1 movs r1, 0x1 orrs r0, r1 strh r0, [r2] _081472B8: ldr r0, _081472DC movs r1, 0xE0 lsls r1, 19 movs r2, 0x1 bl CpuFastSet ldr r1, _081472E0 ldrh r0, [r1, 0x2] cmp r0, 0 beq _081472D0 subs r0, 0x1 strh r0, [r1, 0x2] _081472D0: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081472D8: .4byte 0xfffffc00 _081472DC: .4byte gMain + 0x3C _081472E0: .4byte gUnknown_0203933E thumb_func_end sub_8147218 thumb_func_start sub_81472E4 sub_81472E4: @ 81472E4 push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, _08147308 movs r3, 0x80 lsls r3, 5 movs r1, 0 adds r2, r4, 0 bl ReadFlash movs r1, 0 ldr r2, _0814730C _081472FC: ldr r0, [r4] cmp r0, 0 beq _08147310 movs r0, 0x1 b _0814731E .align 2, 0 _08147308: .4byte 0x02000000 _0814730C: .4byte 0x000003ff _08147310: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 adds r4, 0x4 cmp r1, r2 bls _081472FC movs r0, 0 _0814731E: pop {r4} pop {r1} bx r1 thumb_func_end sub_81472E4 thumb_func_start sub_8147324 sub_8147324: @ 8147324 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 lsrs r6, r0, 16 movs r0, 0 ldr r1, _08147374 mov r8, r1 ldr r7, _08147378 _08147336: movs r4, 0 adds r5, r0, 0x1 _0814733A: ldr r3, [r7] adds r0, r6, 0 adds r1, r4, 0 movs r2, 0 bl _call_via_r3 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r8 bls _0814733A adds r0, r6, 0 bl sub_81472E4 lsls r0, 24 lsrs r1, r0, 24 lsls r0, r5, 16 lsrs r0, 16 cmp r1, 0 beq _08147366 cmp r0, 0x81 bls _08147336 _08147366: adds r0, r1, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08147374: .4byte 0x00000fff _08147378: .4byte ProgramFlashByte thumb_func_end sub_8147324 thumb_func_start sub_814737C sub_814737C: @ 814737C push {r4-r6,lr} adds r5, r0, 0 movs r6, 0 _08147382: movs r4, 0x1 lsls r4, r6 adds r0, r5, 0 ands r0, r4 cmp r0, 0 beq _0814739C adds r0, r6, 0 bl sub_8147324 lsls r0, 24 cmp r0, 0 bne _0814739C bics r5, r4 _0814739C: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x1F bls _08147382 cmp r5, 0 beq _081473AE movs r0, 0x1 b _081473B0 _081473AE: movs r0, 0 _081473B0: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_814737C thumb_func_start sub_81473B8 sub_81473B8: @ 81473B8 push {lr} ldr r0, _081473E8 bl FlagGet lsls r0, 24 cmp r0, 0 bne _08147400 ldr r2, _081473EC ldrh r1, [r2, 0x4] ldr r0, _081473F0 cmp r1, r0 bne _08147400 ldr r1, [r2] ldr r0, _081473F4 cmp r1, r0 beq _081473E4 ldr r0, _081473F8 cmp r1, r0 beq _081473E4 ldr r0, _081473FC cmp r1, r0 bne _08147400 _081473E4: movs r0, 0x1 b _08147402 .align 2, 0 _081473E8: .4byte 0x0000084f _081473EC: .4byte gSaveBlock1 _081473F0: .4byte 0x00004718 _081473F4: .4byte 0x0003000a _081473F8: .4byte 0x00030009 _081473FC: .4byte 0x0003000b _08147400: movs r0, 0 _08147402: pop {r1} bx r1 thumb_func_end sub_81473B8 thumb_func_start sub_8147408 sub_8147408: @ 8147408 push {lr} ldr r2, _08147460 movs r0, 0x10 movs r1, 0x8 bl MapGridSetMetatileIdAt ldr r2, _08147464 movs r0, 0x11 movs r1, 0x8 bl MapGridSetMetatileIdAt movs r2, 0x8B lsls r2, 2 movs r0, 0x12 movs r1, 0x8 bl MapGridSetMetatileIdAt ldr r2, _08147468 movs r0, 0x10 movs r1, 0x9 bl MapGridSetMetatileIdAt ldr r2, _0814746C movs r0, 0x11 movs r1, 0x9 bl MapGridSetMetatileIdAt ldr r2, _08147470 movs r0, 0x12 movs r1, 0x9 bl MapGridSetMetatileIdAt bl DrawWholeMapView movs r0, 0x14 bl PlaySE ldr r0, _08147474 bl FlagSet bl ScriptContext2_Disable pop {r0} bx r0 .align 2, 0 _08147460: .4byte 0x0000022a _08147464: .4byte 0x0000022b _08147468: .4byte 0x00000e32 _0814746C: .4byte 0x00000233 _08147470: .4byte 0x00000e34 _08147474: .4byte 0x0000084f thumb_func_end sub_8147408 thumb_func_start sub_8147478 sub_8147478: @ 8147478 push {r4,lr} ldr r4, _081474B4 adds r0, r4, 0 movs r1, 0x41 movs r2, 0 bl GetMonData ldr r1, _081474B8 cmp r0, r1 bne _081474C0 bl CalculatePlayerPartyCount ldr r0, _081474BC ldrb r1, [r0] movs r0, 0x64 muls r0, r1 adds r1, r4, 0 subs r1, 0x64 adds r0, r1 movs r1, 0x41 movs r2, 0 bl GetMonData movs r1, 0x9D lsls r1, 1 cmp r0, r1 bne _081474C0 movs r0, 0x1 b _081474C2 .align 2, 0 _081474B4: .4byte gPlayerParty _081474B8: .4byte 0x0000017d _081474BC: .4byte gPlayerPartyCount _081474C0: movs r0, 0 _081474C2: pop {r4} pop {r1} bx r1 thumb_func_end sub_8147478 thumb_func_start sub_81474C8 sub_81474C8: @ 81474C8 push {lr} movs r0, 0x85 lsls r0, 4 bl FlagGet lsls r0, 24 cmp r0, 0 bne _0814750C ldr r2, _081474FC ldrh r1, [r2, 0x4] movs r0, 0xC3 lsls r0, 3 cmp r1, r0 bne _0814750C ldr r1, [r2] ldr r0, _08147500 cmp r1, r0 beq _081474F8 ldr r0, _08147504 cmp r1, r0 beq _081474F8 ldr r0, _08147508 cmp r1, r0 bne _0814750C _081474F8: movs r0, 0x1 b _0814750E .align 2, 0 _081474FC: .4byte gSaveBlock1 _08147500: .4byte 0x0017000a _08147504: .4byte 0x00170009 _08147508: .4byte 0x0017000b _0814750C: movs r0, 0 _0814750E: pop {r1} bx r1 thumb_func_end sub_81474C8 thumb_func_start sub_8147514 sub_8147514: @ 8147514 push {lr} movs r0, 0x28 bl FieldEffectActiveListRemove ldr r2, _08147574 movs r0, 0xE movs r1, 0x1A bl MapGridSetMetatileIdAt ldr r2, _08147578 movs r0, 0xF movs r1, 0x1A bl MapGridSetMetatileIdAt movs r2, 0x8B lsls r2, 2 movs r0, 0x10 movs r1, 0x1A bl MapGridSetMetatileIdAt ldr r2, _0814757C movs r0, 0xE movs r1, 0x1B bl MapGridSetMetatileIdAt ldr r2, _08147580 movs r0, 0xF movs r1, 0x1B bl MapGridSetMetatileIdAt ldr r2, _08147584 movs r0, 0x10 movs r1, 0x1B bl MapGridSetMetatileIdAt bl DrawWholeMapView movs r0, 0x14 bl PlaySE movs r0, 0x85 lsls r0, 4 bl FlagSet bl ScriptContext2_Disable pop {r0} bx r0 .align 2, 0 _08147574: .4byte 0x0000022a _08147578: .4byte 0x0000022b _0814757C: .4byte 0x00000e32 _08147580: .4byte 0x00000233 _08147584: .4byte 0x00000e34 thumb_func_end sub_8147514 thumb_func_start sub_8147588 sub_8147588: @ 8147588 push {lr} ldr r0, _081475AC bl FlagGet lsls r0, 24 cmp r0, 0 bne _081475BC ldr r2, _081475B0 ldrh r1, [r2, 0x4] ldr r0, _081475B4 cmp r1, r0 bne _081475BC ldr r1, [r2] ldr r0, _081475B8 cmp r1, r0 bne _081475BC movs r0, 0x1 b _081475BE .align 2, 0 _081475AC: .4byte 0x00000852 _081475B0: .4byte gSaveBlock1 _081475B4: .4byte 0x00004418 _081475B8: .4byte 0x00190008 _081475BC: movs r0, 0 _081475BE: pop {r1} bx r1 thumb_func_end sub_8147588 thumb_func_start sub_81475C4 sub_81475C4: @ 81475C4 push {lr} ldr r0, _081475D8 ldr r1, _081475DC ldrb r1, [r1] str r1, [r0] movs r0, 0x3C bl FieldEffectStart pop {r0} bx r0 .align 2, 0 _081475D8: .4byte gUnknown_0202FF84 _081475DC: .4byte gUnknown_03005CE0 thumb_func_end sub_81475C4 thumb_func_start sub_81475E0 sub_81475E0: @ 81475E0 push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _08147604 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _08147608 lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] movs r0, 0 pop {r1} bx r1 .align 2, 0 _08147604: .4byte gTasks _08147608: .4byte sub_814760C thumb_func_end sub_81475E0 thumb_func_start sub_814760C sub_814760C: @ 814760C push {lr} movs r0, 0x3C bl FieldEffectActiveListRemove bl sub_814761C pop {r0} bx r0 thumb_func_end sub_814760C thumb_func_start sub_814761C sub_814761C: @ 814761C push {lr} ldr r2, _08147674 movs r0, 0xE movs r1, 0x1A bl MapGridSetMetatileIdAt ldr r2, _08147678 movs r0, 0xF movs r1, 0x1A bl MapGridSetMetatileIdAt movs r2, 0x8B lsls r2, 2 movs r0, 0x10 movs r1, 0x1A bl MapGridSetMetatileIdAt ldr r2, _0814767C movs r0, 0xE movs r1, 0x1B bl MapGridSetMetatileIdAt ldr r2, _08147680 movs r0, 0xF movs r1, 0x1B bl MapGridSetMetatileIdAt ldr r2, _08147684 movs r0, 0x10 movs r1, 0x1B bl MapGridSetMetatileIdAt bl DrawWholeMapView movs r0, 0x14 bl PlaySE ldr r0, _08147688 bl FlagSet bl ScriptContext2_Disable pop {r0} bx r0 .align 2, 0 _08147674: .4byte 0x0000022a _08147678: .4byte 0x0000022b _0814767C: .4byte 0x00000e32 _08147680: .4byte 0x00000233 _08147684: .4byte 0x00000e34 _08147688: .4byte 0x00000852 thumb_func_end sub_814761C thumb_func_start sub_814768C sub_814768C: @ 814768C push {lr} ldr r0, _081476A8 bl FlagGet lsls r0, 24 cmp r0, 0 bne _081476A2 ldr r0, _081476AC movs r1, 0x50 bl CreateTask _081476A2: pop {r0} bx r0 .align 2, 0 _081476A8: .4byte 0x00000851 _081476AC: .4byte sub_81476B0 thumb_func_end sub_814768C thumb_func_start sub_81476B0 sub_81476B0: @ 81476B0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _081476D4 adds r4, r0, r1 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x4 bhi _0814776A lsls r0, 2 ldr r1, _081476D8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081476D4: .4byte gUnknown_03004B28 _081476D8: .4byte _081476DC .align 2, 0 _081476DC: .4byte _081476F0 .4byte _081476FE .4byte _08147730 .4byte _08147748 .4byte _0814775A _081476F0: movs r1, 0xE1 lsls r1, 5 adds r0, r1, 0 strh r0, [r4, 0x2] movs r0, 0x1 strh r0, [r4] b _0814776A _081476FE: bl sub_8147774 cmp r0, 0 beq _08147716 bl MenuZeroFillScreen movs r0, 0x5 bl PlaySE movs r0, 0x2 strh r0, [r4] b _0814776A _08147716: ldrh r0, [r4, 0x2] subs r0, 0x1 strh r0, [r4, 0x2] lsls r0, 16 cmp r0, 0 bne _0814776A bl MenuZeroFillScreen movs r0, 0x3 strh r0, [r4] movs r0, 0x1E strh r0, [r4, 0x2] b _0814776A _08147730: bl sub_8147774 cmp r0, 0 beq _08147748 bl sub_8064E2C adds r0, r5, 0 bl DestroyTask bl ScriptContext2_Disable b _0814776A _08147748: ldrh r0, [r4, 0x2] subs r0, 0x1 strh r0, [r4, 0x2] lsls r0, 16 cmp r0, 0 bne _0814776A movs r0, 0x4 strh r0, [r4] b _0814776A _0814775A: bl sub_8064E2C ldr r0, _08147770 bl ScriptContext1_SetupScript adds r0, r5, 0 bl DestroyTask _0814776A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08147770: .4byte gUnknown_0815EF19 thumb_func_end sub_81476B0 thumb_func_start sub_8147774 sub_8147774: @ 8147774 push {lr} movs r1, 0xFF ldr r0, _081477A4 ldrb r2, [r0, 0x13] cmp r2, 0x1 bne _08147788 movs r3, 0xC0 lsls r3, 2 adds r0, r3, 0 orrs r1, r0 _08147788: cmp r2, 0x2 bne _08147794 movs r2, 0x80 lsls r2, 2 adds r0, r2, 0 orrs r1, r0 _08147794: ldr r0, _081477A8 ldrh r0, [r0, 0x2E] ands r1, r0 cmp r1, 0 bne _081477AC movs r0, 0 b _081477AE .align 2, 0 _081477A4: .4byte gSaveBlock2 _081477A8: .4byte gMain _081477AC: movs r0, 0x1 _081477AE: pop {r1} bx r1 thumb_func_end sub_8147774 thumb_func_start sub_81477B4 sub_81477B4: @ 81477B4 push {lr} ldr r0, _081477E8 movs r1, 0x9 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _081477EC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r0, [r1, 0xA] strh r0, [r1, 0xC] movs r0, 0x2 strh r0, [r1, 0x10] movs r0, 0x5 strh r0, [r1, 0x12] movs r0, 0x32 strh r0, [r1, 0x14] movs r0, 0 bl SetCameraPanningCallback pop {r0} bx r0 .align 2, 0 _081477E8: .4byte sub_814782C _081477EC: .4byte gTasks thumb_func_end sub_81477B4 thumb_func_start sub_81477F0 sub_81477F0: @ 81477F0 push {lr} ldr r0, _08147824 movs r1, 0x9 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08147828 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r0, [r1, 0xA] strh r0, [r1, 0xC] movs r0, 0x3 strh r0, [r1, 0x10] movs r0, 0x5 strh r0, [r1, 0x12] movs r0, 0x2 strh r0, [r1, 0x14] movs r0, 0 bl SetCameraPanningCallback pop {r0} bx r0 .align 2, 0 _08147824: .4byte sub_814782C _08147828: .4byte gTasks thumb_func_end sub_81477F0 thumb_func_start sub_814782C sub_814782C: @ 814782C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0814788C adds r4, r0, r1 ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] movs r1, 0xA ldrsh r0, [r4, r1] movs r2, 0x12 ldrsh r1, [r4, r2] bl __modsi3 cmp r0, 0 bne _08147884 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] ldrh r0, [r4, 0x10] negs r0, r0 strh r0, [r4, 0x10] movs r0, 0x10 ldrsh r1, [r4, r0] movs r0, 0 bl SetCameraPanning movs r2, 0xC ldrsh r1, [r4, r2] movs r2, 0x14 ldrsh r0, [r4, r2] cmp r1, r0 bne _08147884 adds r0, r5, 0 bl DestroyTask bl EnableBothScriptContexts bl InstallCameraPanAheadCallback _08147884: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0814788C: .4byte gTasks thumb_func_end sub_814782C thumb_func_start sub_8147890 sub_8147890: @ 8147890 push {lr} bl AnimateSprites bl BuildOamBuffer bl RunTasks bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8147890 thumb_func_start sub_81478A8 sub_81478A8: @ 81478A8 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_81478A8 thumb_func_start sub_81478BC sub_81478BC: @ 81478BC push {r4,lr} sub sp, 0x4 ldr r0, _081478D8 ldr r1, _081478DC adds r0, r1 ldrb r0, [r0] cmp r0, 0xD bls _081478CE b _08147AD0 _081478CE: lsls r0, 2 ldr r1, _081478E0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081478D8: .4byte gMain _081478DC: .4byte 0x0000043c _081478E0: .4byte _081478E4 .align 2, 0 _081478E4: .4byte _0814791C .4byte _08147938 .4byte _0814794C .4byte _08147960 .4byte _08147966 .4byte _08147980 .4byte _0814798C .4byte _081479B8 .4byte _081479DC .4byte _081479F4 .4byte _08147A20 .4byte _08147A3C .4byte _08147A5C .4byte _08147A8C _0814791C: bl sub_80F9438 bl sub_80F9368 bl sub_8147B04 ldr r1, _08147930 ldr r2, _08147934 adds r1, r2 b _08147A4A .align 2, 0 _08147930: .4byte gMain _08147934: .4byte 0x0000043c _08147938: bl ResetPaletteFade ldr r2, _08147948 ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] b _08147A44 .align 2, 0 _08147948: .4byte gPaletteFade _0814794C: bl ResetSpriteData ldr r1, _08147958 ldr r2, _0814795C adds r1, r2 b _08147A4A .align 2, 0 _08147958: .4byte gMain _0814795C: .4byte 0x0000043c _08147960: bl FreeAllSpritePalettes b _08147A44 _08147966: ldr r0, _08147974 bl SetUpWindowConfig ldr r1, _08147978 ldr r2, _0814797C adds r1, r2 b _08147A4A .align 2, 0 _08147974: .4byte gWindowConfig_81E6E50 _08147978: .4byte gMain _0814797C: .4byte 0x0000043c _08147980: ldr r0, _08147988 bl MultistepInitMenuWindowBegin b _08147A44 .align 2, 0 _08147988: .4byte gWindowConfig_81E6E50 _0814798C: bl MultistepInitMenuWindowContinue cmp r0, 0 bne _08147996 b _08147AD0 _08147996: ldr r0, _081479A8 ldr r1, _081479AC adds r0, r1 movs r1, 0 strb r1, [r0] ldr r1, _081479B0 ldr r2, _081479B4 adds r1, r2 b _08147A4A .align 2, 0 _081479A8: .4byte 0x02000000 _081479AC: .4byte 0x0001ffff _081479B0: .4byte gMain _081479B4: .4byte 0x0000043c _081479B8: ldr r0, _081479D4 ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _081479D8 adds r0, r1 bl sub_8147B20 lsls r0, 24 cmp r0, 0 bne _081479D0 b _08147AD0 _081479D0: b _08147A44 .align 2, 0 _081479D4: .4byte gUnknown_02039310 _081479D8: .4byte gPlayerParty _081479DC: bl sub_81480B4 ldr r1, _081479EC ldr r2, _081479F0 adds r1, r2 strb r0, [r1] b _08147A44 .align 2, 0 _081479EC: .4byte 0x02000000 _081479F0: .4byte 0x0001fffd _081479F4: ldr r0, _08147A10 ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08147A14 adds r0, r1 bl sub_8147F84 ldr r1, _08147A18 ldr r2, _08147A1C adds r1, r2 strb r0, [r1] b _08147A44 .align 2, 0 _08147A10: .4byte gUnknown_02039310 _08147A14: .4byte gPlayerParty _08147A18: .4byte 0x02000000 _08147A1C: .4byte 0x0001fffe _08147A20: movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow ldr r1, _08147A34 ldr r2, _08147A38 adds r1, r2 b _08147A4A .align 2, 0 _08147A34: .4byte gMain _08147A38: .4byte 0x0000043c _08147A3C: bl sub_8055870 cmp r0, 0x1 beq _08147AD0 _08147A44: ldr r1, _08147A54 ldr r0, _08147A58 adds r1, r0 _08147A4A: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08147AD0 .align 2, 0 _08147A54: .4byte gMain _08147A58: .4byte 0x0000043c _08147A5C: ldr r3, _08147AB0 ldrh r2, [r3] movs r0, 0 strh r0, [r3] ldr r4, _08147AB4 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _08147AB8 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _08147ABC bl SetVBlankCallback ldr r1, _08147AC0 ldr r2, _08147AC4 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _08147A8C: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r2, _08147AC8 ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] ldr r0, _08147ACC bl SetMainCallback2 movs r0, 0x1 b _08147AD2 .align 2, 0 _08147AB0: .4byte 0x04000208 _08147AB4: .4byte 0x04000200 _08147AB8: .4byte REG_DISPSTAT _08147ABC: .4byte sub_81478A8 _08147AC0: .4byte gMain _08147AC4: .4byte 0x0000043c _08147AC8: .4byte gPaletteFade _08147ACC: .4byte sub_8147890 _08147AD0: movs r0, 0 _08147AD2: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_81478BC thumb_func_start sub_8147ADC sub_8147ADC: @ 8147ADC push {lr} _08147ADE: bl sub_81478BC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08147AF2 movs r0, 0x1 bl sub_8147DDC b _08147AFE _08147AF2: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08147ADE _08147AFE: pop {r0} bx r0 thumb_func_end sub_8147ADC thumb_func_start sub_8147B04 sub_8147B04: @ 8147B04 ldr r1, _08147B18 ldr r2, _08147B1C adds r0, r2, 0 strh r0, [r1] subs r1, 0xA movs r2, 0x9A lsls r2, 5 adds r0, r2, 0 strh r0, [r1] bx lr .align 2, 0 _08147B18: .4byte REG_BG1CNT _08147B1C: .4byte 0x00001d02 thumb_func_end sub_8147B04 thumb_func_start sub_8147B20 sub_8147B20: @ 8147B20 push {r4-r6,lr} sub sp, 0xC adds r4, r0, 0 ldr r0, _08147B40 ldr r1, _08147B44 adds r0, r1 ldrb r0, [r0] cmp r0, 0x8 bls _08147B34 b _08147C84 _08147B34: lsls r0, 2 ldr r1, _08147B48 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08147B40: .4byte 0x02000000 _08147B44: .4byte 0x0001ffff _08147B48: .4byte _08147B4C .align 2, 0 _08147B4C: .4byte _08147B70 .4byte _08147BB8 .4byte _08147BF0 .4byte _08147BFC .4byte _08147C08 .4byte _08147C14 .4byte _08147C2C .4byte _08147C38 .4byte _08147C60 _08147B70: adds r0, r4, 0 movs r1, 0x41 bl GetMonData lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0 bl GetMonData adds r6, r0, 0 lsls r0, r5, 3 ldr r1, _08147BAC adds r0, r1 ldr r1, _08147BB0 lsls r2, r5, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08147BB4 ldr r4, [r4, 0x4] str r4, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] bl sub_800D334 b _08147C40 .align 2, 0 _08147BAC: .4byte gMonFrontPicTable _08147BB0: .4byte gMonFrontPicCoords _08147BB4: .4byte gUnknown_081FAF4C _08147BB8: adds r0, r4, 0 movs r1, 0x41 bl GetMonData lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0 bl GetMonData adds r6, r0, 0 adds r0, r4, 0 movs r1, 0x1 bl GetMonData adds r1, r0, 0 adds r0, r5, 0 adds r2, r6, 0 bl sub_80409C8 adds r4, r0, 0 bl LoadCompressedObjectPalette ldrh r0, [r4, 0x4] movs r1, 0x1 bl GetMonSpriteTemplate_803C56C b _08147C40 _08147BF0: ldr r0, _08147BF8 bl LoadCompressedObjectPic b _08147C40 .align 2, 0 _08147BF8: .4byte gUnknown_083F7F74 _08147BFC: ldr r0, _08147C04 bl LoadCompressedObjectPalette b _08147C40 .align 2, 0 _08147C04: .4byte gUnknown_083F7F7C _08147C08: ldr r0, _08147C10 bl LoadCompressedObjectPic b _08147C40 .align 2, 0 _08147C10: .4byte gUnknown_084121DC _08147C14: ldr r0, _08147C24 ldrb r0, [r0] bl sub_8147C90 ldr r0, _08147C28 bl LoadCompressedObjectPalette b _08147C40 .align 2, 0 _08147C24: .4byte word_203855E _08147C28: .4byte gUnknown_02039350 _08147C2C: ldr r0, _08147C34 movs r1, 0xC0 lsls r1, 19 b _08147C3C .align 2, 0 _08147C34: .4byte gBattleTerrainTiles_Building _08147C38: ldr r0, _08147C50 ldr r1, _08147C54 _08147C3C: bl LZDecompressVram _08147C40: ldr r1, _08147C58 ldr r0, _08147C5C adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08147C84 .align 2, 0 _08147C50: .4byte gUnknown_08E782FC _08147C54: .4byte 0x0600e800 _08147C58: .4byte 0x02000000 _08147C5C: .4byte 0x0001ffff _08147C60: ldr r0, _08147C78 movs r1, 0x20 movs r2, 0x60 bl LoadCompressedPalette ldr r0, _08147C7C ldr r1, _08147C80 adds r0, r1 movs r1, 0 strb r1, [r0] movs r0, 0x1 b _08147C86 .align 2, 0 _08147C78: .4byte gBattleTerrainPalette_BattleTower _08147C7C: .4byte 0x02000000 _08147C80: .4byte 0x0001ffff _08147C84: movs r0, 0 _08147C86: add sp, 0xC pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8147B20 thumb_func_start sub_8147C90 sub_8147C90: @ 8147C90 push {lr} lsls r0, 24 lsrs r0, 21 ldr r1, _08147CB8 adds r0, r1 movs r1, 0 bl sub_810CA9C lsls r0, 24 ldr r2, _08147CBC ldr r1, _08147CC0 lsrs r0, 22 subs r0, 0x4 adds r0, r1 ldr r0, [r0] str r0, [r2] ldr r0, _08147CC4 strh r0, [r2, 0x4] pop {r0} bx r0 .align 2, 0 _08147CB8: .4byte gSaveBlock1 + 0x7F8 _08147CBC: .4byte gUnknown_02039350 _08147CC0: .4byte gUnknown_084120A4 _08147CC4: .4byte 0x000039e2 thumb_func_end sub_8147C90 thumb_func_start sub_8147CC8 sub_8147CC8: @ 8147CC8 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08147D00 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08147CDC b _08147DCE _08147CDC: ldr r0, _08147D04 lsls r2, r4, 2 adds r1, r2, r4 lsls r1, 3 adds r1, r0 movs r0, 0x8 ldrsh r3, [r1, r0] ldr r0, _08147D08 adds r5, r2, 0 cmp r3, r0 beq _08147D50 cmp r3, r0 bgt _08147D0C cmp r3, 0 beq _08147D20 cmp r3, 0xFF beq _08147D38 b _08147D8C .align 2, 0 _08147D00: .4byte gPaletteFade _08147D04: .4byte gTasks _08147D08: .4byte 0x0000010d _08147D0C: ldr r0, _08147D1C cmp r3, r0 beq _08147D68 adds r0, 0x10 cmp r3, r0 beq _08147D80 b _08147D8C .align 2, 0 _08147D1C: .4byte 0x00000119 _08147D20: ldr r0, _08147D30 strb r3, [r0] ldr r0, _08147D34 strh r3, [r0] bl sub_81481DC b _08147D8C .align 2, 0 _08147D30: .4byte gUnknown_03005F3C _08147D34: .4byte gUnknown_03005F94 _08147D38: ldr r0, _08147D48 ldr r2, _08147D4C adds r0, r2 ldrb r0, [r0] ldrb r1, [r1, 0xA] bl sub_8148108 b _08147D8C .align 2, 0 _08147D48: .4byte 0x02000000 _08147D4C: .4byte 0x0001fffd _08147D50: bl sub_814817C ldr r1, _08147D60 ldr r2, _08147D64 adds r1, r2 strb r0, [r1] b _08147D8C .align 2, 0 _08147D60: .4byte 0x02000000 _08147D64: .4byte 0x0001fffc _08147D68: ldr r0, _08147D78 ldr r1, _08147D7C adds r0, r1 ldrb r0, [r0] bl sub_8148044 b _08147D8C .align 2, 0 _08147D78: .4byte 0x02000000 _08147D7C: .4byte 0x0001fffe _08147D80: ldr r0, _08147D88 str r0, [r1] b _08147DCE .align 2, 0 _08147D88: .4byte sub_8147E40 _08147D8C: ldr r0, _08147DA0 ldr r1, _08147DA4 ldrh r2, [r0] ldrh r0, [r1] cmp r2, r0 bcs _08147DA8 bl sub_814825C b _08147DB8 .align 2, 0 _08147DA0: .4byte gUnknown_03005F94 _08147DA4: .4byte gUnknown_03005F34 _08147DA8: cmp r2, r0 bne _08147DB8 ldr r0, _08147DD4 adds r1, r5, r4 lsls r1, 3 adds r1, r0 movs r0, 0xFE strh r0, [r1, 0x8] _08147DB8: ldr r1, _08147DD8 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] ldr r0, _08147DD4 adds r1, r5, r4 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _08147DCE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08147DD4: .4byte gTasks _08147DD8: .4byte gUnknown_03005F94 thumb_func_end sub_8147CC8 thumb_func_start sub_8147DDC sub_8147DDC: @ 8147DDC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _08147E08 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08147E0C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r0, [r1, 0x8] strh r4, [r1, 0xA] pop {r4} pop {r0} bx r0 .align 2, 0 _08147E08: .4byte sub_8147CC8 _08147E0C: .4byte gTasks thumb_func_end sub_8147DDC thumb_func_start sub_8147E10 sub_8147E10: @ 8147E10 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl MenuUpdateWindowText lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08147E30 ldr r0, _08147E38 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08147E3C str r0, [r1] _08147E30: pop {r4} pop {r0} bx r0 .align 2, 0 _08147E38: .4byte gTasks _08147E3C: .4byte sub_8147F4C thumb_func_end sub_8147E10 thumb_func_start sub_8147E40 sub_8147E40: @ 8147E40 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 ldr r0, _08147E94 ldrb r1, [r0] movs r0, 0x64 adds r5, r1, 0 muls r5, r0 ldr r0, _08147E98 adds r5, r0 ldr r0, _08147E9C ldrh r4, [r0] lsls r4, 3 ldr r0, _08147EA0 adds r4, r0 adds r0, r5, 0 bl GetNature lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 bl sub_810CAE4 ldr r6, _08147EA4 strh r0, [r6] ldr r1, _08147EA8 adds r0, r5, 0 bl GetMonNickname ldr r1, _08147EAC adds r0, r4, 0 bl sub_810CB44 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _08147EB8 ldr r0, _08147EB0 ldr r1, _08147EB4 bl StringExpandPlaceholders b _08147ED8 .align 2, 0 _08147E94: .4byte gUnknown_02039310 _08147E98: .4byte gPlayerParty _08147E9C: .4byte word_203855E _08147EA0: .4byte gSaveBlock1 + 0x7F8 _08147EA4: .4byte gUnknown_02039312 _08147EA8: .4byte gStringVar1 _08147EAC: .4byte gStringVar2 _08147EB0: .4byte gStringVar4 _08147EB4: .4byte gContestStatsText_NormallyAte _08147EB8: cmp r0, 0 ble _08147ED0 ldr r0, _08147EC8 ldr r1, _08147ECC bl StringExpandPlaceholders b _08147ED8 .align 2, 0 _08147EC8: .4byte gStringVar4 _08147ECC: .4byte gContestStatsText_HappilyAte _08147ED0: ldr r0, _08147EF8 ldr r1, _08147EFC bl StringExpandPlaceholders _08147ED8: ldr r0, _08147EF8 movs r1, 0x1 movs r2, 0xF bl MenuPrintMessage ldr r1, _08147F00 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, _08147F04 str r1, [r0] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08147EF8: .4byte gStringVar4 _08147EFC: .4byte gContestStatsText_DisdainfullyAte _08147F00: .4byte gTasks _08147F04: .4byte sub_8147E10 thumb_func_end sub_8147E40 thumb_func_start sub_8147F08 sub_8147F08: @ 8147F08 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08147F3C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08147F34 ldr r0, _08147F40 ldr r1, _08147F44 movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl ldr r0, _08147F48 ldr r0, [r0, 0x8] bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _08147F34: pop {r4} pop {r0} bx r0 .align 2, 0 _08147F3C: .4byte gPaletteFade _08147F40: .4byte gMPlay_BGM _08147F44: .4byte 0x0000ffff _08147F48: .4byte gMain thumb_func_end sub_8147F08 thumb_func_start sub_8147F4C sub_8147F4C: @ 8147F4C 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, _08147F7C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08147F80 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08147F7C: .4byte gTasks _08147F80: .4byte sub_8147F08 thumb_func_end sub_8147F4C thumb_func_start sub_8147F84 sub_8147F84: @ 8147F84 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r5, r0, 0 movs r1, 0x41 bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _08148024 movs r1, 0x30 movs r2, 0x50 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, _08148028 strh r4, [r0] ldr r0, _0814802C mov r1, r8 strb r1, [r0] adds r0, r5, 0 bl GetNature ldr r1, _08148030 strb r0, [r1] ldr r7, _08148034 mov r1, r8 lsls r0, r1, 4 add r0, r8 lsls r5, r0, 2 adds r6, r5, r7 strh r4, [r6, 0x32] adds r0, r7, 0 adds r0, 0x1C adds r0, r5, r0 ldr r1, _08148038 str r1, [r0] ldr r0, _0814803C mov r9, r0 movs r0, 0x1 mov r1, r9 strb r0, [r1] adds r0, r4, 0 bl sub_8040A3C lsls r0, 24 cmp r0, 0 bne _08148016 adds r0, r7, 0 adds r0, 0x10 adds r0, r5, r0 ldr r1, _08148040 str r1, [r0] ldrb r3, [r6, 0x1] movs r0, 0x3 orrs r3, r0 strb r3, [r6, 0x1] lsrs r1, r3, 6 ldrb r2, [r6, 0x3] lsrs r2, 6 lsls r3, 30 lsrs r3, 30 adds r0, r6, 0 bl CalcCenterToCornerVec movs r0, 0 mov r1, r9 strb r0, [r1] _08148016: mov r0, r8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08148024: .4byte gUnknown_02024E8C _08148028: .4byte gUnknown_03005F24 _0814802C: .4byte gUnknown_03005F2C _08148030: .4byte gUnknown_03005F30 _08148034: .4byte gSprites _08148038: .4byte SpriteCallbackDummy _0814803C: .4byte gUnknown_03005F28 _08148040: .4byte gSpriteAffineAnimTable_84120EC thumb_func_end sub_8147F84 thumb_func_start sub_8148044 sub_8148044: @ 8148044 lsls r0, 24 lsrs r0, 24 ldr r3, _0814806C lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r2, r1, r3 movs r0, 0x30 strh r0, [r2, 0x20] movs r0, 0x50 strh r0, [r2, 0x22] ldr r0, _08148070 strh r0, [r2, 0x2E] movs r0, 0x1 strh r0, [r2, 0x30] adds r3, 0x1C adds r1, r3 ldr r0, _08148074 str r0, [r1] bx lr .align 2, 0 _0814806C: .4byte gSprites _08148070: .4byte 0x0000fff8 _08148074: .4byte sub_8148078 thumb_func_end sub_8148044 thumb_func_start sub_8148078 sub_8148078: @ 8148078 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x20] adds r0, 0x4 strh r0, [r4, 0x20] ldrh r0, [r4, 0x2E] ldrh r2, [r4, 0x22] adds r1, r0, r2 strh r1, [r4, 0x22] ldrh r1, [r4, 0x30] adds r0, r1 strh r0, [r4, 0x2E] lsls r0, 16 cmp r0, 0 bne _0814809E ldrh r0, [r4, 0x32] movs r1, 0 bl PlayCry1 _0814809E: movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x9 bne _081480AA ldr r0, _081480B0 str r0, [r4, 0x1C] _081480AA: pop {r4} pop {r0} bx r0 .align 2, 0 _081480B0: .4byte SpriteCallbackDummy thumb_func_end sub_8148078 thumb_func_start sub_81480B4 sub_81480B4: @ 81480B4 push {r4,r5,lr} movs r0, 0xBC movs r1, 0x64 movs r2, 0x2 bl sub_810BA50 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _081480FC lsls r3, r4, 4 adds r3, r4 lsls r3, 2 adds r0, r3, r5 ldrb r2, [r0, 0x1] movs r1, 0x4 negs r1, r1 ands r1, r2 movs r2, 0x1 orrs r1, r2 strb r1, [r0, 0x1] adds r1, r5, 0 adds r1, 0x10 adds r1, r3, r1 ldr r2, _08148100 str r2, [r1] adds r5, 0x1C adds r3, r5 ldr r1, _08148104 str r1, [r3] bl InitSpriteAffineAnim adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _081480FC: .4byte gSprites _08148100: .4byte gSpriteAffineAnimTable_84121A0 _08148104: .4byte SpriteCallbackDummy thumb_func_end sub_81480B4 thumb_func_start sub_8148108 sub_8148108: @ 8148108 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r1, 0 lsls r0, 24 lsrs r7, r0, 24 lsls r5, 24 lsrs r5, 24 ldr r0, _08148148 mov r8, r0 lsls r0, r7, 4 adds r0, r7 lsls r6, r0, 2 mov r0, r8 adds r4, r6, r0 ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldrb r0, [r4, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r4, 0x1] cmp r5, 0 bne _08148150 mov r0, r8 adds r0, 0x10 adds r0, r6, r0 ldr r1, _0814814C b _08148158 .align 2, 0 _08148148: .4byte gSprites _0814814C: .4byte gSpriteAffineAnimTable_84121A4 _08148150: mov r0, r8 adds r0, 0x10 adds r0, r6, r0 ldr r1, _08148174 _08148158: str r1, [r0] lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r1, _08148178 adds r0, r1 bl InitSpriteAffineAnim pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08148174: .4byte gSpriteAffineAnimTable_84121A8 _08148178: .4byte gSprites thumb_func_end sub_8148108 thumb_func_start sub_814817C sub_814817C: @ 814817C push {lr} ldr r0, _081481A4 movs r1, 0xAE movs r2, 0x54 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, _081481A8 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldr r2, _081481AC strh r2, [r1, 0x2E] movs r2, 0x1 strh r2, [r1, 0x30] pop {r1} bx r1 .align 2, 0 _081481A4: .4byte gSpriteTemplate_84121E4 _081481A8: .4byte gSprites _081481AC: .4byte 0x0000fff4 thumb_func_end sub_814817C thumb_func_start sub_81481B0 sub_81481B0: @ 81481B0 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x20] subs r0, 0x4 strh r0, [r2, 0x20] ldrh r0, [r2, 0x2E] ldrh r3, [r2, 0x22] adds r1, r0, r3 strh r1, [r2, 0x22] ldrh r1, [r2, 0x30] adds r0, r1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _081481D6 adds r0, r2, 0 bl DestroySprite _081481D6: pop {r0} bx r0 thumb_func_end sub_81481B0 thumb_func_start sub_81481DC sub_81481DC: @ 81481DC push {r4-r7,lr} ldr r6, _0814824C movs r0, 0x1 strh r0, [r6] ldr r1, _08148250 ldr r0, _08148254 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrb r3, [r0] movs r4, 0 ldr r2, _08148258 lsls r1, r3, 2 adds r1, r3 lsls r1, 2 adds r7, r2, 0 adds r7, 0x8 adds r0, r1, r7 ldrh r0, [r0] adds r0, 0x1 strh r0, [r6] adds r5, r2, 0 adds r5, 0x12 adds r1, r5 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0x1 beq _08148244 adds r2, r6, 0 adds r6, r5, 0 adds r5, r7, 0 _0814821A: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r4, 0x7 bhi _08148244 lsls r1, r3, 2 adds r1, r3 lsls r1, 2 adds r0, r1, r5 ldrh r0, [r0] ldrh r7, [r2] adds r0, r7 strh r0, [r2] adds r1, r6 movs r7, 0 ldrsh r0, [r1, r7] cmp r0, 0x1 bne _0814821A _08148244: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0814824C: .4byte gUnknown_03005F34 _08148250: .4byte gNatureToMonPokeblockAnim _08148254: .4byte gUnknown_03005F30 _08148258: .4byte gMonPokeblockAnims thumb_func_end sub_81481DC thumb_func_start sub_814825C sub_814825C: @ 814825C push {lr} ldr r0, _08148274 ldrb r0, [r0] cmp r0, 0x5A bls _08148268 b _08148532 _08148268: lsls r0, 2 ldr r1, _08148278 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08148274: .4byte gUnknown_03005F3C _08148278: .4byte _0814827C .align 2, 0 _0814827C: .4byte _081483E8 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _0814843C .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _0814847A .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _081484CC .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148524 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 _081483E8: ldr r2, _0814841C ldr r1, _08148420 ldr r0, _08148424 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrb r0, [r0] strb r0, [r2] ldr r2, _08148428 ldr r0, _0814842C ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _08148430 adds r1, r0 str r1, [r2] ldr r0, _08148434 movs r2, 0x44 bl memcpy ldr r1, _08148438 movs r0, 0xA strb r0, [r1] b _08148532 .align 2, 0 _0814841C: .4byte gUnknown_03005F40 _08148420: .4byte gNatureToMonPokeblockAnim _08148424: .4byte gUnknown_03005F30 _08148428: .4byte gUnknown_03005F20 _0814842C: .4byte gUnknown_03005F2C _08148430: .4byte gSprites _08148434: .4byte gUnknown_03005F50 _08148438: .4byte gUnknown_03005F3C _0814843C: bl sub_8148540 ldr r1, _081484A4 ldr r0, _081484A8 ldrb r0, [r0] lsls r0, 1 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08148474 ldr r3, _081484AC ldr r2, [r3] ldrb r0, [r2, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r2, 0x1] ldr r2, [r3] ldrb r1, [r2, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 strb r0, [r2, 0x3] ldr r0, [r3] ldr r1, _081484B0 str r1, [r0, 0x10] bl InitSpriteAffineAnim _08148474: ldr r1, _081484B4 movs r0, 0x32 strb r0, [r1] _0814847A: ldr r1, _081484A4 ldr r0, _081484A8 ldrb r0, [r0] lsls r0, 1 adds r1, 0x1 adds r2, r0, r1 ldrb r1, [r2] cmp r1, 0 beq _081484EE ldr r0, _081484B8 ldrb r0, [r0] cmp r0, 0 bne _081484BC ldr r0, _081484AC ldr r0, [r0] adds r1, 0xA lsls r1, 24 lsrs r1, 24 bl StartSpriteAffineAnim b _081484EE .align 2, 0 _081484A4: .4byte gNatureToMonPokeblockAnim _081484A8: .4byte gUnknown_03005F30 _081484AC: .4byte gUnknown_03005F20 _081484B0: .4byte gSpriteAffineAnimTable_8412050 _081484B4: .4byte gUnknown_03005F3C _081484B8: .4byte gUnknown_03005F28 _081484BC: ldr r0, _081484C8 ldr r0, [r0] ldrb r1, [r2] bl StartSpriteAffineAnim b _081484EE .align 2, 0 _081484C8: .4byte gUnknown_03005F20 _081484CC: bl sub_81485CC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08148532 ldr r0, _081484F8 movs r1, 0x12 ldrsh r0, [r0, r1] cmp r0, 0 bne _08148504 ldr r1, _081484FC ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] bl sub_8148540 _081484EE: ldr r1, _08148500 movs r0, 0x3C strb r0, [r1] b _08148532 .align 2, 0 _081484F8: .4byte gUnknown_03005FA0 _081484FC: .4byte gUnknown_03005F40 _08148500: .4byte gUnknown_03005F3C _08148504: ldr r0, _0814851C ldr r0, [r0] ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldr r1, _08148520 movs r0, 0x46 strb r0, [r1] b _08148532 .align 2, 0 _0814851C: .4byte gUnknown_03005F20 _08148520: .4byte gUnknown_03005F3C _08148524: bl sub_8148618 ldr r0, _08148538 movs r1, 0 strb r1, [r0] ldr r0, _0814853C strb r1, [r0] _08148532: pop {r0} bx r0 .align 2, 0 _08148538: .4byte gUnknown_03005F40 _0814853C: .4byte gUnknown_03005F3C thumb_func_end sub_814825C thumb_func_start sub_8148540 sub_8148540: @ 8148540 push {r4-r7,lr} movs r4, 0 ldr r5, _081485B4 mov r12, r5 ldr r7, _081485B8 ldr r6, _081485BC _0814854C: lsls r2, r4, 1 mov r0, r12 adds r3, r2, r0 ldrb r1, [r6] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, r0 adds r2, r7 ldrh r0, [r2] strh r0, [r3] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x9 bls _0814854C movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0 beq _081485C4 movs r2, 0 ldrsh r0, [r5, r2] movs r2, 0x4 ldrsh r1, [r5, r2] bl Sin strh r0, [r5, 0x14] movs r1, 0 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] bl Cos strh r0, [r5, 0x16] ldrh r0, [r5, 0x8] strh r0, [r5, 0x18] ldr r0, _081485C0 ldr r1, [r0] ldrh r0, [r1, 0x24] strh r0, [r5, 0x1A] ldrh r0, [r1, 0x26] strh r0, [r5, 0x1C] bl sub_8148710 ldrh r0, [r5, 0x18] strh r0, [r5, 0x8] bl sub_814862C ldrh r0, [r5, 0x18] strh r0, [r5, 0x8] movs r0, 0 b _081485C6 .align 2, 0 _081485B4: .4byte gUnknown_03005FA0 _081485B8: .4byte gMonPokeblockAnims _081485BC: .4byte gUnknown_03005F40 _081485C0: .4byte gUnknown_03005F20 _081485C4: movs r0, 0x1 _081485C6: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8148540 thumb_func_start sub_81485CC sub_81485CC: @ 81485CC push {r4,lr} ldr r3, _08148604 ldrh r0, [r3, 0x18] ldrh r1, [r3, 0x8] subs r0, r1 lsls r0, 16 ldr r1, _08148608 ldr r4, [r1] lsrs r0, 15 ldr r1, _0814860C adds r2, r0, r1 ldrh r2, [r2] strh r2, [r4, 0x24] movs r2, 0x80 lsls r2, 3 adds r1, r2 adds r0, r1 ldrh r0, [r0] strh r0, [r4, 0x26] ldrh r0, [r3, 0x8] subs r0, 0x1 strh r0, [r3, 0x8] lsls r0, 16 cmp r0, 0 beq _08148610 movs r0, 0 b _08148612 .align 2, 0 _08148604: .4byte gUnknown_03005FA0 _08148608: .4byte gUnknown_03005F20 _0814860C: .4byte 0x0201d000 _08148610: movs r0, 0x1 _08148612: pop {r4} pop {r1} bx r1 thumb_func_end sub_81485CC thumb_func_start sub_8148618 sub_8148618: @ 8148618 push {lr} ldr r0, _08148628 ldr r0, [r0] bl FreeSpriteOamMatrix movs r0, 0 pop {r1} bx r1 .align 2, 0 _08148628: .4byte gUnknown_03005F20 thumb_func_end sub_8148618 thumb_func_start sub_814862C sub_814862C: @ 814862C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 ldr r1, _08148700 ldrh r0, [r1, 0x10] mov r8, r0 ldrh r0, [r1, 0x18] mov r2, r8 subs r0, r2 lsls r0, 16 lsrs r7, r0, 16 ldrh r0, [r1, 0xC] ldrh r3, [r1, 0x1A] adds r0, r3 lsls r0, 16 lsrs r0, 16 str r0, [sp] ldrh r0, [r1, 0xE] ldrh r1, [r1, 0x1C] adds r0, r1 lsls r0, 16 lsrs r0, 16 mov r9, r0 movs r6, 0 subs r0, r7, 0x1 ldr r4, _08148704 mov r10, r4 cmp r6, r0 bge _081486D4 ldr r1, [sp] lsls r0, r1, 16 asrs r0, 16 str r0, [sp, 0x4] _08148674: mov r2, r8 adds r5, r2, r6 lsls r5, 1 ldr r4, _08148708 adds r3, r5, r4 ldrh r2, [r3] ldr r0, [sp, 0x4] subs r1, r2, r0 ldr r4, _0814870C adds r5, r4 ldrh r0, [r5] mov r12, r0 mov r4, r9 lsls r0, r4, 16 asrs r0, 16 mov r4, r12 subs r0, r4, r0 lsls r4, r0, 16 lsrs r4, 16 lsls r1, 16 asrs r1, 16 adds r6, 0x1 adds r0, r1, 0 muls r0, r6 adds r1, r7, 0 str r2, [sp, 0x8] str r3, [sp, 0xC] bl __divsi3 ldr r2, [sp, 0x8] subs r2, r0 ldr r3, [sp, 0xC] strh r2, [r3] lsls r4, 16 asrs r4, 16 adds r0, r4, 0 muls r0, r6 adds r1, r7, 0 bl __divsi3 ldrh r1, [r5] subs r1, r0 strh r1, [r5] lsls r6, 16 lsrs r6, 16 subs r0, r7, 0x1 cmp r6, r0 blt _08148674 _081486D4: mov r1, r8 adds r0, r1, r7 lsls r0, 1 mov r2, r10 adds r1, r0, r2 mov r3, sp ldrh r3, [r3] strh r3, [r1] movs r1, 0x80 lsls r1, 3 add r1, r10 adds r0, r1 mov r4, r9 strh r4, [r0] add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08148700: .4byte gUnknown_03005FA0 _08148704: .4byte 0x0201cffe _08148708: .4byte 0x0201d000 _0814870C: .4byte 0x0201d400 thumb_func_end sub_814862C thumb_func_start sub_8148710 sub_8148710: @ 8148710 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 movs r0, 0 str r0, [sp] ldr r1, _081487A4 ldrh r2, [r1, 0x1A] ldrh r0, [r1, 0x14] subs r2, r0 ldrh r3, [r1, 0x1C] ldrh r0, [r1, 0x16] subs r3, r0 adds r6, r1, 0 ldr r1, _081487A8 mov r9, r1 lsls r2, 16 asrs r2, 16 mov r8, r2 movs r2, 0x80 lsls r2, 3 add r2, r9 mov r10, r2 lsls r3, 16 asrs r7, r3, 16 _08148746: movs r1, 0xA ldrsh r0, [r6, r1] cmp r0, 0 bge _08148750 negs r0, r0 _08148750: lsls r0, 16 lsrs r0, 16 ldrh r2, [r6, 0x6] adds r0, r2 lsls r5, r0, 16 strh r0, [r6, 0x6] ldrh r2, [r6, 0x4] movs r1, 0x4 ldrsh r0, [r6, r1] cmp r0, 0 bge _0814876A movs r0, 0x1 str r0, [sp] _0814876A: ldrh r0, [r6, 0x18] ldrh r1, [r6, 0x8] subs r0, r1 lsls r0, 16 lsrs r4, r0, 16 cmp r1, 0 beq _081487F0 ldr r1, [sp] cmp r1, 0 bne _081487AC movs r1, 0 ldrsh r0, [r6, r1] lsrs r5, 24 adds r1, r2, r5 lsls r1, 16 asrs r1, 16 bl Sin lsls r4, 1 mov r2, r9 adds r1, r4, r2 add r0, r8 strh r0, [r1] movs r1, 0 ldrsh r0, [r6, r1] ldrh r1, [r6, 0x6] adds r1, r5 b _081487CE .align 2, 0 _081487A4: .4byte gUnknown_03005FA0 _081487A8: .4byte 0x0201d000 _081487AC: movs r1, 0 ldrsh r0, [r6, r1] lsrs r5, 24 subs r1, r2, r5 lsls r1, 16 asrs r1, 16 bl Sin lsls r4, 1 mov r2, r9 adds r1, r4, r2 add r0, r8 strh r0, [r1] movs r1, 0 ldrsh r0, [r6, r1] ldrh r1, [r6, 0x6] subs r1, r5 _081487CE: lsls r1, 16 asrs r1, 16 bl Cos add r4, r10 adds r0, r7, r0 strh r0, [r4] ldrh r0, [r6, 0x2] ldrh r2, [r6] adds r0, r2 movs r1, 0xFF ands r0, r1 strh r0, [r6] ldrh r0, [r6, 0x8] subs r0, 0x1 strh r0, [r6, 0x8] b _08148746 _081487F0: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8148710 thumb_func_start c2_clear_save_data_screen_2 c2_clear_save_data_screen_2: @ 8148800 push {lr} bl sub_8148970 lsls r0, 24 cmp r0, 0 beq _08148814 ldr r0, _08148818 movs r1, 0 bl CreateTask _08148814: pop {r0} bx r0 .align 2, 0 _08148818: .4byte sub_8148830 thumb_func_end c2_clear_save_data_screen_2 thumb_func_start sub_814881C sub_814881C: @ 814881C push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_814881C thumb_func_start sub_8148830 sub_8148830: @ 8148830 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl ResetSpriteData movs r1, 0x80 lsls r1, 19 movs r2, 0xCA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r0, _081488A8 bl SetVBlankCallback movs r0, 0x2 movs r1, 0xE movs r2, 0x1B movs r3, 0x13 bl MenuDrawTextWindow ldr r0, _081488AC movs r1, 0x3 movs r2, 0xF bl MenuPrint movs r0, 0x2 movs r1, 0x1 movs r2, 0x8 movs r3, 0x6 bl MenuDrawTextWindow ldr r3, _081488B0 movs r0, 0x3 movs r1, 0x2 movs r2, 0x2 bl PrintMenuItems movs r0, 0x1 str r0, [sp] movs r0, 0x5 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x3 movs r2, 0x2 movs r3, 0x2 bl InitMenu ldr r1, _081488B4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _081488B8 str r1, [r0] add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _081488A8: .4byte sub_814881C _081488AC: .4byte gSystemText_ClearAllSaveDataPrompt _081488B0: .4byte gUnknown_08376D74 _081488B4: .4byte gTasks _081488B8: .4byte sub_81488BC thumb_func_end sub_8148830 thumb_func_start sub_81488BC sub_81488BC: @ 81488BC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _081488E2 cmp r1, 0 bgt _081488DC movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0814890C b _0814891E _081488DC: cmp r1, 0x1 beq _0814890C b _0814891E _081488E2: movs r0, 0x5 bl PlaySE ldr r0, _08148900 bl sub_8071F40 ldr r1, _08148904 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08148908 str r1, [r0] b _0814891E .align 2, 0 _08148900: .4byte gSystemText_ClearingData _08148904: .4byte gTasks _08148908: .4byte sub_8148930 _0814890C: movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl DestroyTask ldr r0, _0814892C bl SetMainCallback2 _0814891E: bl AnimateSprites bl BuildOamBuffer pop {r4} pop {r0} bx r0 .align 2, 0 _0814892C: .4byte sub_8148B34 thumb_func_end sub_81488BC thumb_func_start sub_8148930 sub_8148930: @ 8148930 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl calls_flash_erase_block adds r0, r4, 0 bl DestroyTask ldr r0, _08148950 bl SetMainCallback2 pop {r4} pop {r0} bx r0 .align 2, 0 _08148950: .4byte sub_8148B34 thumb_func_end sub_8148930 thumb_func_start sub_8148954 sub_8148954: @ 8148954 push {lr} bl RunTasks bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8148954 thumb_func_start sub_8148964 sub_8148964: @ 8148964 push {lr} bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8148964 thumb_func_start sub_8148970 sub_8148970: @ 8148970 push {r4,lr} sub sp, 0xC ldr r0, _08148AA4 ldr r1, _08148AA8 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08148986 cmp r0, 0x1 bne _08148986 b _08148B04 _08148986: movs r0, 0 bl SetVBlankCallback movs r0, 0x80 lsls r0, 19 movs r4, 0 strh r4, [r0] adds r0, 0x10 strh r4, [r0] adds r0, 0x2 strh r4, [r0] adds r0, 0xA strh r4, [r0] adds r0, 0x2 strh r4, [r0] adds r0, 0x22 strh r4, [r0] adds r0, 0x4 strh r4, [r0] adds r0, 0x4 strh r4, [r0] adds r0, 0x2 strh r4, [r0] adds r0, 0x6 strh r4, [r0] adds r0, 0x2 strh r4, [r0] adds r0, 0x2 strh r4, [r0] add r0, sp, 0x4 strh r4, [r0] ldr r1, _08148AAC str r0, [r1] movs r0, 0xC0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _08148AB0 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r2, 0 str r2, [sp, 0x8] add r0, sp, 0x8 str r0, [r1] movs r0, 0xE0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _08148AB4 str r0, [r1, 0x8] ldr r0, [r1, 0x8] add r0, sp, 0x4 strh r2, [r0] str r0, [r1] ldr r0, _08148AB8 str r0, [r1, 0x4] ldr r0, _08148ABC str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl ResetPaletteFade ldr r2, _08148AC0 ldr r0, _08148AC4 strh r0, [r2] ldr r1, _08148AC8 strh r0, [r1] ldr r0, _08148ACC strh r0, [r2, 0x2] strh r0, [r1, 0x2] movs r1, 0 ldr r3, _08148AD0 ldr r0, _08148AD4 adds r2, r0, 0 _08148A14: lsls r0, r1, 1 adds r0, r3 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0xF bls _08148A14 movs r1, 0 ldr r4, _08148AD8 movs r3, 0x1 ldr r2, _08148ADC _08148A2C: lsls r0, r1, 1 adds r0, r4 strh r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r2 bls _08148A2C bl ResetTasks bl ResetSpriteData ldr r0, _08148AE0 bl SetUpWindowConfig ldr r0, _08148AE4 bl InitMenuWindow movs r0, 0x1 negs r0, r0 ldr r1, _08148AE8 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r2, _08148AEC ldrh r1, [r2] movs r0, 0 strh r0, [r2] ldr r3, _08148AF0 ldrh r0, [r3] movs r4, 0x1 orrs r0, r4 strh r0, [r3] strh r1, [r2] ldr r2, _08148AF4 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _08148AF8 bl SetVBlankCallback ldr r1, _08148AFC ldr r2, _08148B00 adds r0, r2, 0 strh r0, [r1] subs r1, 0xE movs r2, 0x90 lsls r2, 4 adds r0, r2, 0 strh r0, [r1] ldr r0, _08148AA4 ldr r1, _08148AA8 adds r0, r1 strb r4, [r0] b _08148B28 .align 2, 0 _08148AA4: .4byte gMain _08148AA8: .4byte 0x0000043c _08148AAC: .4byte 0x040000d4 _08148AB0: .4byte 0x8100c000 _08148AB4: .4byte 0x85000100 _08148AB8: .4byte 0x05000002 _08148ABC: .4byte 0x810001ff _08148AC0: .4byte gPlttBufferUnfaded _08148AC4: .4byte 0x00007fff _08148AC8: .4byte gPlttBufferFaded _08148ACC: .4byte 0x00003945 _08148AD0: .4byte 0x06000020 _08148AD4: .4byte 0x00001111 _08148AD8: .4byte 0x06003800 _08148ADC: .4byte 0x000004ff _08148AE0: .4byte gWindowConfig_81E6C3C _08148AE4: .4byte gWindowConfig_81E6CE4 _08148AE8: .4byte 0x0000ffff _08148AEC: .4byte 0x04000208 _08148AF0: .4byte 0x04000200 _08148AF4: .4byte REG_DISPSTAT _08148AF8: .4byte sub_8148964 _08148AFC: .4byte REG_BG3CNT _08148B00: .4byte 0x00000703 _08148B04: bl UpdatePaletteFade ldr r0, _08148B20 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08148B28 ldr r0, _08148B24 bl SetMainCallback2 movs r0, 0x1 b _08148B2A .align 2, 0 _08148B20: .4byte gPaletteFade _08148B24: .4byte sub_8148954 _08148B28: movs r0, 0 _08148B2A: add sp, 0xC pop {r4} pop {r1} bx r1 thumb_func_end sub_8148970 thumb_func_start sub_8148B34 sub_8148B34: @ 8148B34 push {r4,lr} sub sp, 0x4 ldr r0, _08148B60 ldr r1, _08148B64 adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0 beq _08148B48 cmp r0, 0x1 beq _08148B6C _08148B48: movs r0, 0x1 negs r0, r0 ldr r1, _08148B68 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r0, 0x1 strb r0, [r4] b _08148B80 .align 2, 0 _08148B60: .4byte gMain _08148B64: .4byte 0x0000043c _08148B68: .4byte 0x0000ffff _08148B6C: bl UpdatePaletteFade ldr r0, _08148B88 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08148B80 bl DoSoftReset _08148B80: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08148B88: .4byte gPaletteFade thumb_func_end sub_8148B34 thumb_func_start load_intro_part2_graphics load_intro_part2_graphics: @ 8148B8C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08148BE8 ldr r1, _08148BEC bl LZ77UnCompVram ldr r0, _08148BF0 ldr r1, _08148BF4 bl LZ77UnCompVram ldr r0, _08148BF8 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette cmp r4, 0 beq _08148BB4 cmp r4, 0x1 beq _08148C14 _08148BB4: ldr r0, _08148BFC movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _08148C00 ldr r1, _08148C04 bl LZ77UnCompVram ldr r0, _08148C08 movs r1, 0 movs r2, 0x60 bl LoadPalette ldr r0, _08148C0C bl LoadCompressedObjectPic ldr r0, _08148C10 movs r1, 0x80 lsls r1, 1 movs r2, 0x20 bl LoadPalette bl sub_8149248 b _08148C46 .align 2, 0 _08148BE8: .4byte gUnknown_0841225C _08148BEC: .4byte 0x06004000 _08148BF0: .4byte gUnknown_084126DC _08148BF4: .4byte 0x06007800 _08148BF8: .4byte gUnknown_084121FC _08148BFC: .4byte gUnknown_084128D8 _08148C00: .4byte gUnknown_08412EB4 _08148C04: .4byte 0x06003000 _08148C08: .4byte gUnknown_08412818 _08148C0C: .4byte gUnknown_08416B54 _08148C10: .4byte gUnknown_08413184 _08148C14: ldr r0, _08148C58 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _08148C5C ldr r1, _08148C60 bl LZ77UnCompVram ldr r0, _08148C64 movs r1, 0 movs r2, 0x20 bl LoadPalette ldr r0, _08148C68 bl LoadCompressedObjectPic ldr r0, _08148C6C movs r1, 0x80 lsls r1, 1 movs r2, 0x20 bl LoadPalette bl sub_8149264 _08148C46: ldr r1, _08148C70 movs r0, 0 strh r0, [r1] ldr r1, _08148C74 movs r0, 0x8 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08148C58: .4byte gUnknown_08413340 _08148C5C: .4byte gUnknown_084139C8 _08148C60: .4byte 0x06003000 _08148C64: .4byte gUnknown_08413300 _08148C68: .4byte gUnknown_08416BDC _08148C6C: .4byte gUnknown_08413CCC _08148C70: .4byte gUnknown_0203935C _08148C74: .4byte gReservedSpritePaletteCount thumb_func_end load_intro_part2_graphics thumb_func_start sub_8148C78 sub_8148C78: @ 8148C78 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _08148CA4 ldr r2, _08148CA8 adds r0, r2, 0 strh r0, [r1] subs r1, 0x2 adds r2, 0xFF adds r0, r2, 0 strh r0, [r1] subs r1, 0x2 ldr r2, _08148CAC adds r0, r2, 0 strh r0, [r1] subs r1, 0xA movs r2, 0xF2 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] pop {r0} bx r0 .align 2, 0 _08148CA4: .4byte REG_BG3CNT _08148CA8: .4byte 0x00000603 _08148CAC: .4byte 0x00000f05 thumb_func_end sub_8148C78 thumb_func_start sub_8148CB0 sub_8148CB0: @ 8148CB0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08148CD4 ldr r1, _08148CD8 bl LZ77UnCompVram ldr r0, _08148CDC ldr r1, _08148CE0 bl LZ77UnCompVram cmp r4, 0x4 bhi _08148CFC lsls r0, r4, 2 ldr r1, _08148CE4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08148CD4: .4byte gUnknown_0841225C _08148CD8: .4byte 0x06004000 _08148CDC: .4byte gUnknown_084126DC _08148CE0: .4byte 0x06007800 _08148CE4: .4byte _08148CE8 .align 2, 0 _08148CE8: .4byte _08148CFC .4byte _08148D58 .4byte _08148DC4 .4byte _08148DC4 .4byte _08148E1C _08148CFC: ldr r0, _08148D34 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldr r0, _08148D38 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _08148D3C ldr r1, _08148D40 bl LZ77UnCompVram ldr r0, _08148D44 movs r1, 0 movs r2, 0x60 bl LoadPalette ldr r0, _08148D48 bl LoadCompressedObjectPic ldr r0, _08148D4C ldr r1, _08148D50 bl LZ77UnCompVram ldr r0, _08148D54 b _08148D8E .align 2, 0 _08148D34: .4byte gUnknown_084121FC _08148D38: .4byte gUnknown_084128D8 _08148D3C: .4byte gUnknown_08412EB4 _08148D40: .4byte 0x06003000 _08148D44: .4byte gUnknown_08412818 _08148D48: .4byte gUnknown_08416B54 _08148D4C: .4byte gUnknown_084131C4 _08148D50: .4byte 0x06010000 _08148D54: .4byte gUnknown_08413184 _08148D58: ldr r0, _08148DA0 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldr r0, _08148DA4 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _08148DA8 ldr r1, _08148DAC bl LZ77UnCompVram ldr r0, _08148DB0 movs r1, 0 movs r2, 0x60 bl LoadPalette ldr r0, _08148DB4 bl LoadCompressedObjectPic ldr r0, _08148DB8 ldr r1, _08148DBC bl LZ77UnCompVram ldr r0, _08148DC0 _08148D8E: movs r1, 0x80 lsls r1, 1 movs r2, 0x20 bl LoadPalette bl sub_8149248 b _08148E58 .align 2, 0 _08148DA0: .4byte gUnknown_0841221C _08148DA4: .4byte gUnknown_084128D8 _08148DA8: .4byte gUnknown_08412EB4 _08148DAC: .4byte 0x06003000 _08148DB0: .4byte gUnknown_08412878 _08148DB4: .4byte gUnknown_08416B54 _08148DB8: .4byte gUnknown_084131C4 _08148DBC: .4byte 0x06010000 _08148DC0: .4byte gUnknown_084131A4 _08148DC4: ldr r0, _08148E04 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldr r0, _08148E08 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _08148E0C ldr r1, _08148E10 bl LZ77UnCompVram ldr r4, _08148E14 adds r0, r4, 0 movs r1, 0 movs r2, 0x20 bl LoadPalette ldr r0, _08148E18 bl LoadCompressedObjectPic movs r1, 0x80 lsls r1, 1 adds r0, r4, 0 movs r2, 0x20 bl LoadPalette bl sub_8149264 b _08148E58 .align 2, 0 _08148E04: .4byte gUnknown_0841221C _08148E08: .4byte gUnknown_08413340 _08148E0C: .4byte gUnknown_084139C8 _08148E10: .4byte 0x06003000 _08148E14: .4byte gUnknown_08413320 _08148E18: .4byte gUnknown_08416BDC _08148E1C: ldr r0, _08148E6C movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldr r0, _08148E70 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _08148E74 ldr r1, _08148E78 bl LZ77UnCompVram ldr r0, _08148E7C movs r1, 0 movs r2, 0x40 bl LoadPalette ldr r0, _08148E80 bl LoadCompressedObjectPic ldr r0, _08148E84 movs r1, 0x80 lsls r1, 1 movs r2, 0x20 bl LoadPalette bl sub_8149280 _08148E58: ldr r1, _08148E88 movs r0, 0x8 strb r0, [r1] ldr r1, _08148E8C movs r0, 0 strh r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08148E6C: .4byte gUnknown_0841223C _08148E70: .4byte gUnknown_08413E78 _08148E74: .4byte gUnknown_08414084 _08148E78: .4byte 0x06003000 _08148E7C: .4byte gUnknown_08413E38 _08148E80: .4byte gUnknown_08416C70 _08148E84: .4byte gUnknown_08414064 _08148E88: .4byte gReservedSpritePaletteCount _08148E8C: .4byte gUnknown_0203935C thumb_func_end sub_8148CB0 thumb_func_start sub_8148E90 sub_8148E90: @ 8148E90 ldr r1, _08148EB4 ldr r2, _08148EB8 adds r0, r2, 0 strh r0, [r1] subs r1, 0x2 adds r2, 0xFF adds r0, r2, 0 strh r0, [r1] subs r1, 0x2 ldr r2, _08148EBC adds r0, r2, 0 strh r0, [r1] subs r1, 0xA movs r2, 0xFA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] bx lr .align 2, 0 _08148EB4: .4byte REG_BG3CNT _08148EB8: .4byte 0x00000603 _08148EBC: .4byte 0x00000f05 thumb_func_end sub_8148E90 thumb_func_start sub_8148EC0 sub_8148EC0: @ 8148EC0 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 mov r8, r2 lsls r5, 24 lsrs r5, 24 lsls r6, 16 lsrs r6, 16 mov r0, r8 lsls r0, 16 lsrs r0, 16 mov r8, r0 lsls r3, 16 lsrs r3, 16 ldr r1, _08148F34 mov r9, r1 mov r0, r9 movs r1, 0 str r3, [sp] bl CreateTask adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _08148F38 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0 strh r5, [r0, 0x8] strh r6, [r0, 0xA] strh r2, [r0, 0xC] strh r2, [r0, 0xE] mov r1, r8 strh r1, [r0, 0x10] strh r2, [r0, 0x12] strh r2, [r0, 0x14] ldr r3, [sp] strh r3, [r0, 0x16] movs r1, 0x8 strh r1, [r0, 0x18] strh r2, [r0, 0x1A] adds r0, r4, 0 bl _call_via_r9 adds r0, r4, 0 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08148F34: .4byte sub_8148F3C _08148F38: .4byte gTasks thumb_func_end sub_8148EC0 thumb_func_start sub_8148F3C sub_8148F3C: @ 8148F3C push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _08148FB4 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r3, r0, r1 ldrh r0, [r3, 0xA] lsls r4, r0, 16 adds r6, r1, 0 cmp r4, 0 beq _08148F7C movs r1, 0xC ldrsh r0, [r3, r1] lsls r0, 16 ldrh r1, [r3, 0xE] adds r2, r0, r1 lsrs r0, r4, 12 subs r2, r0 asrs r1, r2, 16 strh r1, [r3, 0xC] strh r2, [r3, 0xE] ldr r0, _08148FB8 strh r1, [r0] ldr r2, _08148FBC ldr r1, _08148FC0 ldr r0, _08148FC4 ldrh r0, [r0] ldrh r1, [r1] adds r0, r1 strh r0, [r2] _08148F7C: ldrh r0, [r3, 0x10] lsls r4, r0, 16 cmp r4, 0 beq _08148FD8 movs r1, 0x12 ldrsh r0, [r3, r1] lsls r0, 16 ldrh r1, [r3, 0x14] adds r2, r0, r1 lsrs r0, r4, 12 subs r2, r0 asrs r1, r2, 16 strh r1, [r3, 0x12] strh r2, [r3, 0x14] ldr r0, _08148FC8 strh r1, [r0] movs r1, 0x8 ldrsh r0, [r3, r1] cmp r0, 0 beq _08148FD0 ldr r2, _08148FCC ldr r1, _08148FC0 ldr r0, _08148FC4 ldrh r0, [r0] ldrh r1, [r1] adds r0, r1 strh r0, [r2] b _08148FD8 .align 2, 0 _08148FB4: .4byte gTasks _08148FB8: .4byte REG_BG1HOFS _08148FBC: .4byte REG_BG1VOFS _08148FC0: .4byte gUnknown_02039358 _08148FC4: .4byte gUnknown_0203935A _08148FC8: .4byte REG_BG2HOFS _08148FCC: .4byte REG_BG2VOFS _08148FD0: ldr r0, _08149010 ldr r1, _08149014 ldrh r1, [r1] strh r1, [r0] _08148FD8: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r3, r0, r6 ldrh r0, [r3, 0x16] lsls r4, r0, 16 cmp r4, 0 beq _08149008 movs r1, 0x18 ldrsh r0, [r3, r1] lsls r0, 16 ldrh r1, [r3, 0x1A] adds r2, r0, r1 lsrs r0, r4, 12 subs r2, r0 asrs r1, r2, 16 strh r1, [r3, 0x18] strh r2, [r3, 0x1A] ldr r0, _08149018 strh r1, [r0] ldr r1, _0814901C ldr r0, _08149014 ldrh r0, [r0] strh r0, [r1] _08149008: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08149010: .4byte REG_BG2VOFS _08149014: .4byte gUnknown_02039358 _08149018: .4byte REG_BG3HOFS _0814901C: .4byte REG_BG3VOFS thumb_func_end sub_8148F3C thumb_func_start sub_8149020 sub_8149020: @ 8149020 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08149100 cmp r0, 0x1 ble _08149034 cmp r0, 0x2 beq _08149098 _08149034: ldr r0, _08149060 ldr r2, [r0, 0x20] movs r0, 0x3 ands r0, r2 cmp r0, 0 bne _08149100 ldr r0, _08149064 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08149100 movs r0, 0x4 ands r2, r0 cmp r2, 0 beq _0814906C ldr r2, _08149068 ldrh r1, [r2, 0x12] mov r0, sp strh r1, [r0] ldrh r1, [r2, 0x14] b _08149076 .align 2, 0 _08149060: .4byte gMain _08149064: .4byte gPaletteFade _08149068: .4byte gPlttBufferUnfaded _0814906C: ldr r2, _08149094 ldrh r1, [r2, 0x14] mov r0, sp strh r1, [r0] ldrh r1, [r2, 0x12] _08149076: adds r0, 0x2 strh r1, [r0] adds r4, r0, 0 mov r0, sp movs r1, 0x9 movs r2, 0x2 bl LoadPalette adds r0, r4, 0 movs r1, 0xA movs r2, 0x2 bl LoadPalette b _08149100 .align 2, 0 _08149094: .4byte gPlttBufferUnfaded _08149098: ldr r0, _081490C8 ldr r2, [r0, 0x20] movs r0, 0x3 ands r0, r2 cmp r0, 0 bne _08149100 ldr r0, _081490CC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08149100 movs r0, 0x4 ands r2, r0 cmp r2, 0 beq _081490D8 mov r1, sp ldr r2, _081490D0 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _081490D4 b _081490E6 .align 2, 0 _081490C8: .4byte gMain _081490CC: .4byte gPaletteFade _081490D0: .4byte 0x00003d27 _081490D4: .4byte 0x00000295 _081490D8: mov r1, sp movs r2, 0xC7 lsls r2, 2 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _08149108 _081490E6: adds r0, r2, 0 strh r0, [r1] adds r4, r1, 0 mov r0, sp movs r1, 0xC movs r2, 0x2 bl LoadPalette adds r0, r4, 0 movs r1, 0xD movs r2, 0x2 bl LoadPalette _08149100: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08149108: .4byte 0x00003d27 thumb_func_end sub_8149020 thumb_func_start sub_814910C sub_814910C: @ 814910C push {lr} adds r2, r0, 0 ldr r0, _08149124 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _08149128 adds r0, r2, 0 bl DestroySprite b _0814916C .align 2, 0 _08149124: .4byte gUnknown_0203935C _08149128: movs r1, 0x20 ldrsh r0, [r2, r1] lsls r0, 16 ldrh r1, [r2, 0x32] orrs r0, r1 ldrh r1, [r2, 0x30] adds r0, r1 asrs r1, r0, 16 strh r1, [r2, 0x20] strh r0, [r2, 0x32] cmp r1, 0xFF ble _08149144 ldr r0, _08149158 strh r0, [r2, 0x20] _08149144: movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0 beq _08149164 ldr r1, _0814915C ldr r0, _08149160 ldrh r0, [r0] ldrh r1, [r1] adds r0, r1 b _08149168 .align 2, 0 _08149158: .4byte 0x0000ffe0 _0814915C: .4byte gUnknown_02039358 _08149160: .4byte gUnknown_0203935A _08149164: ldr r0, _08149170 ldrh r0, [r0] _08149168: negs r0, r0 strh r0, [r2, 0x26] _0814916C: pop {r0} bx r0 .align 2, 0 _08149170: .4byte gUnknown_02039358 thumb_func_end sub_814910C thumb_func_start sub_8149174 sub_8149174: @ 8149174 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC str r1, [sp, 0x4] str r2, [sp, 0x8] lsls r0, 24 lsrs r0, 24 str r0, [sp] lsls r3, 24 lsrs r3, 24 mov r8, r3 movs r7, 0 cmp r7, r8 bcs _0814922A ldr r0, _0814923C mov r10, r0 movs r2, 0x3F mov r9, r2 _0814919E: lsls r6, r7, 3 ldr r0, [sp, 0x4] adds r6, r0 ldrb r1, [r6, 0x1] ldrb r2, [r6, 0x2] ldrb r3, [r6, 0x3] ldr r0, _08149240 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r5, r0, 4 adds r5, r0 lsls r5, 2 mov r2, r10 adds r4, r5, r2 ldrb r2, [r6] lsls r1, r2, 26 lsrs r1, 30 lsrs r2, 6 adds r0, r4, 0 movs r3, 0 bl CalcCenterToCornerVec ldrb r3, [r4, 0x5] movs r0, 0xC orrs r3, r0 strb r3, [r4, 0x5] ldrb r1, [r6] lsls r1, 26 lsrs r1, 30 lsls r1, 6 ldrb r2, [r4, 0x1] mov r0, r9 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x1] ldrb r1, [r6] lsrs r1, 6 lsls r1, 6 ldrb r2, [r4, 0x3] mov r0, r9 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x3] movs r0, 0xF ands r3, r0 strb r3, [r4, 0x5] ldr r0, _08149244 adds r5, r0 ldr r2, [sp, 0x8] str r2, [r5] ldrb r1, [r6] lsls r1, 28 lsrs r1, 28 adds r0, r4, 0 bl StartSpriteAnim movs r1, 0 mov r0, sp ldrh r0, [r0] strh r0, [r4, 0x2E] ldrh r0, [r6, 0x4] strh r0, [r4, 0x30] strh r1, [r4, 0x32] adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, r8 bcc _0814919E _0814922A: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0814923C: .4byte gSprites _08149240: .4byte gSpriteTemplate_8416B3C _08149244: .4byte gSprites + 0x8 thumb_func_end sub_8149174 thumb_func_start sub_8149248 sub_8149248: @ 8149248 push {lr} ldr r1, _0814925C ldr r2, _08149260 movs r0, 0 movs r3, 0x9 bl sub_8149174 pop {r0} bx r0 .align 2, 0 _0814925C: .4byte gUnknown_08416B94 _08149260: .4byte gSpriteAnimTable_8416B84 thumb_func_end sub_8149248 thumb_func_start sub_8149264 sub_8149264: @ 8149264 push {lr} ldr r1, _08149278 ldr r2, _0814927C movs r0, 0x1 movs r3, 0xC bl sub_8149174 pop {r0} bx r0 .align 2, 0 _08149278: .4byte gUnknown_08416C10 _0814927C: .4byte gSpriteAnimTable_8416C04 thumb_func_end sub_8149264 thumb_func_start sub_8149280 sub_8149280: @ 8149280 push {lr} ldr r1, _08149294 ldr r2, _08149298 movs r0, 0x1 movs r3, 0x6 bl sub_8149174 pop {r0} bx r0 .align 2, 0 _08149294: .4byte gUnknown_08416C8C _08149298: .4byte gSpriteAnimTable_8416C88 thumb_func_end sub_8149280 thumb_func_start nullsub_82 nullsub_82: @ 814929C bx lr thumb_func_end nullsub_82 thumb_func_start sub_81492A0 sub_81492A0: @ 81492A0 push {r4,lr} ldr r4, _0814930C movs r1, 0x2E ldrsh r2, [r0, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 adds r1, 0x3E ldrb r1, [r1] movs r2, 0x3E adds r2, r0 mov r12, r2 movs r2, 0x4 ands r2, r1 mov r1, r12 ldrb r3, [r1] movs r1, 0x5 negs r1, r1 ands r1, r3 orrs r1, r2 mov r2, r12 strb r1, [r2] movs r1, 0x2E ldrsh r2, [r0, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldrh r1, [r1, 0x20] strh r1, [r0, 0x20] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldrh r1, [r1, 0x22] adds r1, 0x8 strh r1, [r0, 0x22] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldrh r1, [r1, 0x24] strh r1, [r0, 0x24] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldrh r1, [r1, 0x26] strh r1, [r0, 0x26] pop {r4} pop {r0} bx r0 .align 2, 0 _0814930C: .4byte gSprites thumb_func_end sub_81492A0 thumb_func_start sub_8149310 sub_8149310: @ 8149310 push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 ldr r0, _0814935C lsls r5, 16 asrs r5, 16 lsls r4, 16 asrs r4, 16 adds r1, r5, 0 adds r2, r4, 0 movs r3, 0 bl CreateSprite adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 ldr r0, _08149360 adds r4, 0x8 lsls r4, 16 asrs r4, 16 adds r1, r5, 0 adds r2, r4, 0 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, _08149364 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 strh r6, [r1, 0x2E] adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0814935C: .4byte gSpriteTemplate_8416CDC _08149360: .4byte gSpriteTemplate_8416D2C _08149364: .4byte gSprites thumb_func_end sub_8149310 thumb_func_start sub_8149368 sub_8149368: @ 8149368 push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 ldr r0, _081493B4 lsls r5, 16 asrs r5, 16 lsls r4, 16 asrs r4, 16 adds r1, r5, 0 adds r2, r4, 0 movs r3, 0 bl CreateSprite adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 ldr r0, _081493B8 adds r4, 0x8 lsls r4, 16 asrs r4, 16 adds r1, r5, 0 adds r2, r4, 0 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, _081493BC lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 strh r6, [r1, 0x2E] adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _081493B4: .4byte gSpriteTemplate_8416CF4 _081493B8: .4byte gSpriteTemplate_8416D44 _081493BC: .4byte gSprites thumb_func_end sub_8149368 thumb_func_start nullsub_83 nullsub_83: @ 81493C0 bx lr thumb_func_end nullsub_83 thumb_func_start sub_81493C4 sub_81493C4: @ 81493C4 push {r4,lr} ldr r4, _08149420 movs r1, 0x2E ldrsh r2, [r0, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 adds r1, 0x3E ldrb r1, [r1] movs r2, 0x3E adds r2, r0 mov r12, r2 movs r2, 0x4 ands r2, r1 mov r1, r12 ldrb r3, [r1] movs r1, 0x5 negs r1, r1 ands r1, r3 orrs r1, r2 mov r2, r12 strb r1, [r2] movs r1, 0x2E ldrsh r2, [r0, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldrh r1, [r1, 0x22] strh r1, [r0, 0x22] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldrh r1, [r1, 0x24] strh r1, [r0, 0x24] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldrh r1, [r1, 0x26] strh r1, [r0, 0x26] pop {r4} pop {r0} bx r0 .align 2, 0 _08149420: .4byte gSprites thumb_func_end sub_81493C4 thumb_func_start sub_8149424 sub_8149424: @ 8149424 push {r4-r6,lr} mov r6, r8 push {r6} adds r2, r0, 0 adds r5, r1, 0 ldr r0, _08149490 mov r8, r0 lsls r2, 16 asrs r4, r2, 16 ldr r0, _08149494 adds r2, r0 asrs r2, 16 lsls r5, 16 asrs r5, 16 mov r0, r8 adds r1, r2, 0 adds r2, r5, 0 movs r3, 0x2 bl CreateSprite adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 adds r4, 0x20 lsls r4, 16 asrs r4, 16 mov r0, r8 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r5, _08149498 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 adds r0, r4, r5 strh r6, [r0, 0x2E] movs r1, 0x1 bl StartSpriteAnim adds r5, 0x1C adds r4, r5 ldr r0, _0814949C str r0, [r4] adds r0, r6, 0 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08149490: .4byte gSpriteTemplate_8416D7C _08149494: .4byte 0xffe00000 _08149498: .4byte gSprites _0814949C: .4byte sub_81493C4 thumb_func_end sub_8149424 thumb_func_start sapphire_sub_81494A0 sapphire_sub_81494A0: @ 81494A0 push {r4-r6,lr} mov r6, r8 push {r6} adds r2, r0, 0 adds r5, r1, 0 ldr r0, _0814950C mov r8, r0 lsls r2, 16 asrs r4, r2, 16 ldr r0, _08149510 adds r2, r0 asrs r2, 16 lsls r5, 16 asrs r5, 16 mov r0, r8 adds r1, r2, 0 adds r2, r5, 0 movs r3, 0x2 bl CreateSprite adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 adds r4, 0x20 lsls r4, 16 asrs r4, 16 mov r0, r8 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r5, _08149514 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 adds r0, r4, r5 strh r6, [r0, 0x2E] movs r1, 0x1 bl StartSpriteAnim adds r5, 0x1C adds r4, r5 ldr r0, _08149518 str r0, [r4] adds r0, r6, 0 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0814950C: .4byte gSpriteTemplate_8416D94 _08149510: .4byte 0xffe00000 _08149514: .4byte gSprites _08149518: .4byte sub_81493C4 thumb_func_end sapphire_sub_81494A0 thumb_func_start nullsub_84 nullsub_84: @ 814951C bx lr thumb_func_end nullsub_84 thumb_func_start sub_8149520 sub_8149520: @ 8149520 push {r4,r5,lr} sub sp, 0x4 movs r4, 0 ldr r5, _08149554 _08149528: adds r0, r4, 0 adds r0, 0x14 lsls r0, 24 lsrs r0, 24 lsls r1, r4, 1 adds r1, r5 ldrh r1, [r1] str r1, [sp] movs r2, 0 movs r3, 0 bl SetOamMatrix adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0xB bls _08149528 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08149554: .4byte gUnknown_08416ED0 thumb_func_end sub_8149520 thumb_func_start sub_8149558 sub_8149558: @ 8149558 push {r4,lr} adds r4, r0, 0 movs r1, 0x22 ldrsh r0, [r4, r1] cmp r0, 0x8 ble _08149606 movs r2, 0x3C ldrsh r0, [r4, r2] adds r1, r0, 0 muls r1, r0 adds r0, r1, 0 movs r1, 0x50 bl __divsi3 movs r1, 0x58 subs r1, r0 strh r1, [r4, 0x22] ldrh r0, [r4, 0x3A] lsls r0, 24 lsrs r0, 24 movs r2, 0x38 ldrsh r1, [r4, r2] bl Sin lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _08149592 adds r0, 0x3 _08149592: asrs r0, 2 strh r0, [r4, 0x26] ldrh r0, [r4, 0x3A] lsls r0, 24 lsrs r0, 24 movs r2, 0x38 ldrsh r1, [r4, r2] bl Cos strh r0, [r4, 0x24] ldrh r0, [r4, 0x3A] adds r0, 0x4 strh r0, [r4, 0x3A] ldrh r1, [r4, 0x3C] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _081495BC ldrh r0, [r4, 0x38] subs r0, 0x1 strh r0, [r4, 0x38] _081495BC: ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] movs r1, 0x26 ldrsh r0, [r4, r1] cmp r0, 0 ble _081495D2 adds r1, r4, 0 adds r1, 0x43 movs r0, 0x1 b _081495D8 _081495D2: adds r1, r4, 0 adds r1, 0x43 movs r0, 0x14 _081495D8: strb r0, [r1] movs r2, 0x38 ldrsh r0, [r4, r2] cmp r0, 0 bge _081495E4 adds r0, 0x3 _081495E4: asrs r0, 2 adds r0, 0x14 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x1F bls _081495F2 movs r2, 0x1F _081495F2: movs r0, 0x1F ands r2, r0 lsls r2, 1 ldrb r1, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 orrs r0, r2 strb r0, [r4, 0x3] b _0814960C _08149606: adds r0, r4, 0 bl DestroySprite _0814960C: pop {r4} pop {r0} bx r0 thumb_func_end sub_8149558 thumb_func_start sub_8149614 sub_8149614: @ 8149614 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _08149664 movs r1, 0x78 movs r2, 0x58 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0814965E ldr r4, _08149668 lsls r3, r0, 4 adds r3, r0 lsls r3, 2 adds r2, r3, r4 movs r1, 0 movs r0, 0x30 strh r0, [r2, 0x38] strh r5, [r2, 0x3A] strh r1, [r2, 0x3C] ldrb r1, [r2, 0x1] subs r0, 0x34 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x1] ldrb r0, [r2, 0x3] movs r1, 0x3E orrs r0, r1 strb r0, [r2, 0x3] adds r4, 0x1C adds r3, r4 ldr r0, _0814966C str r0, [r3] _0814965E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08149664: .4byte gSpriteTemplate_8416EB8 _08149668: .4byte gSprites _0814966C: .4byte sub_8149558 thumb_func_end sub_8149614 thumb_func_start sub_8149670 sub_8149670: @ 8149670 push {r4,lr} adds r4, r0, 0 movs r1, 0x22 ldrsh r0, [r4, r1] cmp r0, 0x57 bgt _081496D6 movs r2, 0x3C ldrsh r0, [r4, r2] adds r1, r0, 0 muls r1, r0 adds r0, r1, 0 movs r1, 0x5 bl __divsi3 adds r0, 0x8 strh r0, [r4, 0x22] ldrh r0, [r4, 0x3A] lsls r0, 24 lsrs r0, 24 movs r2, 0x38 ldrsh r1, [r4, r2] bl Sin lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _081496A8 adds r0, 0x3 _081496A8: asrs r0, 2 strh r0, [r4, 0x26] ldrh r0, [r4, 0x3A] lsls r0, 24 lsrs r0, 24 movs r2, 0x38 ldrsh r1, [r4, r2] bl Cos strh r0, [r4, 0x24] movs r1, 0x3C ldrsh r0, [r4, r1] lsls r0, 26 lsrs r0, 24 movs r1, 0x28 bl Sin adds r0, 0x8 strh r0, [r4, 0x38] ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] b _081496DC _081496D6: adds r0, r4, 0 bl DestroySprite _081496DC: pop {r4} pop {r0} bx r0 thumb_func_end sub_8149670 thumb_func_start sub_81496E4 sub_81496E4: @ 81496E4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _08149740 movs r1, 0x78 movs r2, 0x8 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0814973A ldr r4, _08149744 lsls r3, r0, 4 adds r3, r0 lsls r3, 2 adds r2, r3, r4 movs r1, 0 movs r0, 0x8 strh r0, [r2, 0x38] strh r5, [r2, 0x3A] strh r1, [r2, 0x3C] ldrb r1, [r2, 0x1] subs r0, 0xC ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x1] ldrb r1, [r2, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x32 orrs r0, r1 strb r0, [r2, 0x3] adds r2, 0x43 movs r0, 0x1 strb r0, [r2] adds r4, 0x1C adds r3, r4 ldr r0, _08149748 str r0, [r3] _0814973A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08149740: .4byte gSpriteTemplate_8416EB8 _08149744: .4byte gSprites _08149748: .4byte sub_8149670 thumb_func_end sub_81496E4 thumb_func_start sub_814974C sub_814974C: @ 814974C push {r4,lr} adds r4, r0, 0 movs r1, 0x38 ldrsh r0, [r4, r1] cmp r0, 0x8 ble _08149788 ldrh r0, [r4, 0x3A] lsls r0, 24 lsrs r0, 24 movs r2, 0x38 ldrsh r1, [r4, r2] bl Sin strh r0, [r4, 0x26] ldrh r0, [r4, 0x3A] lsls r0, 24 lsrs r0, 24 movs r2, 0x38 ldrsh r1, [r4, r2] bl Cos strh r0, [r4, 0x24] ldrh r0, [r4, 0x38] ldrh r1, [r4, 0x34] subs r0, r1 strh r0, [r4, 0x38] ldrh r0, [r4, 0x3A] adds r0, 0x4 strh r0, [r4, 0x3A] b _0814978E _08149788: adds r0, r4, 0 bl DestroySprite _0814978E: pop {r4} pop {r0} bx r0 thumb_func_end sub_814974C thumb_func_start sub_8149794 sub_8149794: @ 8149794 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r5, r1, 24 ldr r0, _081497F0 movs r1, 0x78 movs r2, 0x38 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _081497EA ldr r4, _081497F4 lsls r3, r0, 4 adds r3, r0 lsls r3, 2 adds r2, r3, r4 movs r1, 0 strh r5, [r2, 0x34] movs r0, 0x78 strh r0, [r2, 0x38] strh r6, [r2, 0x3A] strh r1, [r2, 0x3C] ldrb r1, [r2, 0x1] subs r0, 0x7C ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x1] ldrb r0, [r2, 0x3] movs r1, 0x3E orrs r0, r1 strb r0, [r2, 0x3] adds r2, 0x43 movs r0, 0x1 strb r0, [r2] adds r4, 0x1C adds r3, r4 ldr r0, _081497F8 str r0, [r3] _081497EA: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081497F0: .4byte gSpriteTemplate_8416EB8 _081497F4: .4byte gSprites _081497F8: .4byte sub_814974C thumb_func_end sub_8149794 thumb_func_start sub_81497FC sub_81497FC: @ 81497FC push {r4,r5,lr} adds r4, r0, 0 ldrh r1, [r4, 0x3C] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _08149810 ldrh r0, [r4, 0x22] adds r0, 0x1 strh r0, [r4, 0x22] _08149810: ldrh r1, [r4, 0x3A] movs r2, 0x3A ldrsh r0, [r4, r2] cmp r0, 0x7F bgt _081498C0 lsls r0, r1, 24 lsrs r0, 24 movs r5, 0x38 ldrsh r1, [r4, r5] bl Sin negs r0, r0 strh r0, [r4, 0x26] movs r0, 0x34 ldrsh r1, [r4, r0] movs r2, 0x3C ldrsh r0, [r4, r2] muls r0, r1 movs r1, 0x3 bl __divsi3 adds r0, 0x78 strh r0, [r4, 0x20] ldrh r0, [r4, 0x3A] adds r3, r0, 0x1 strh r3, [r4, 0x3A] movs r5, 0x3A ldrsh r1, [r4, r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 cmp r0, 0 bge _08149854 adds r0, 0x7F _08149854: asrs r0, 7 movs r1, 0x1F subs r1, r0 lsls r1, 24 lsrs r2, r1, 24 lsls r0, r3, 16 asrs r0, 16 cmp r0, 0x40 ble _08149870 adds r1, r4, 0 adds r1, 0x43 movs r0, 0x1 strb r0, [r1] b _081498A0 _08149870: adds r3, r4, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] adds r1, r4, 0 adds r1, 0x43 movs r0, 0x14 strb r0, [r1] ldrh r1, [r4, 0x3A] movs r5, 0x3A ldrsh r0, [r4, r5] cmp r0, 0x70 ble _081498A0 movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _081498A0 ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 strb r0, [r3] _081498A0: cmp r2, 0x13 bhi _081498A6 movs r2, 0x14 _081498A6: movs r0, 0x1F ands r2, r0 lsls r2, 1 ldrb r1, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 orrs r0, r2 strb r0, [r4, 0x3] ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] b _081498C6 _081498C0: adds r0, r4, 0 bl DestroySprite _081498C6: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81497FC thumb_func_start sub_81498CC sub_81498CC: @ 81498CC push {r4-r6,lr} mov r6, r8 push {r6} ldr r0, _08149948 movs r1, 0x78 movs r2, 0x38 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x40 beq _0814993C bl Random ldr r6, _0814994C lsls r5, r4, 4 adds r5, r4 lsls r5, 2 adds r4, r5, r6 lsls r0, 16 lsrs r0, 16 movs r1, 0x7 bl __umodsi3 movs r1, 0x3 subs r1, r0 movs r0, 0 mov r8, r0 strh r1, [r4, 0x34] bl Random movs r1, 0x3F ands r1, r0 adds r1, 0x30 strh r1, [r4, 0x38] mov r0, r8 strh r0, [r4, 0x3C] ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4, 0x1] ldrb r0, [r4, 0x3] movs r1, 0x3E orrs r0, r1 strb r0, [r4, 0x3] adds r4, 0x43 movs r0, 0x14 strb r0, [r4] adds r6, 0x1C adds r5, r6 ldr r0, _08149950 str r0, [r5] _0814993C: pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08149948: .4byte gSpriteTemplate_8416EB8 _0814994C: .4byte gSprites _08149950: .4byte sub_81497FC thumb_func_end sub_81498CC thumb_func_start sub_8149954 sub_8149954: @ 8149954 push {lr} ldr r0, _08149968 bl LoadCompressedObjectPic ldr r0, _0814996C bl LoadSpritePalettes pop {r0} bx r0 .align 2, 0 _08149968: .4byte gUnknown_08416E84 _0814996C: .4byte gUnknown_08416E94 thumb_func_end sub_8149954 thumb_func_start sub_8149970 sub_8149970: @ 8149970 push {r4,lr} adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _08149998 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0814999C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0xA] pop {r4} pop {r1} bx r1 .align 2, 0 _08149998: .4byte sub_81499A0 _0814999C: .4byte gTasks thumb_func_end sub_8149970 thumb_func_start sub_81499A0 sub_81499A0: @ 81499A0 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8149520 ldr r0, _081499E4 lsls r5, r4, 2 adds r5, r4 lsls r5, 3 adds r5, r0 movs r0, 0 strh r0, [r5, 0x26] movs r0, 0xA ldrsh r1, [r5, r0] movs r0, 0x3 lsls r0, r1 ldr r1, _081499E8 str r1, [sp] movs r1, 0xA movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _081499EC str r0, [r5] movs r0, 0x8C bl PlaySE add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081499E4: .4byte gTasks _081499E8: .4byte 0x00007fff _081499EC: .4byte sub_81499F0 thumb_func_end sub_81499A0 thumb_func_start sub_81499F0 sub_81499F0: @ 81499F0 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _08149A48 lsls r3, r5, 2 adds r0, r3, r5 lsls r0, 3 adds r1, r0, r1 ldrh r2, [r1, 0x26] movs r4, 0x26 ldrsh r0, [r1, r4] cmp r0, 0x3F bgt _08149A4C movs r0, 0x7 ands r0, r2 adds r7, r3, 0 cmp r0, 0 bne _08149A36 movs r4, 0 adds r6, r1, 0 _08149A18: ldrh r1, [r6, 0x26] movs r0, 0x78 ands r0, r1 lsls r0, 1 lsls r1, r4, 6 adds r0, r1 lsls r0, 24 lsrs r0, 24 bl sub_8149614 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _08149A18 _08149A36: ldr r0, _08149A48 adds r1, r7, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x26] adds r0, 0x1 strh r0, [r1, 0x26] b _08149A54 .align 2, 0 _08149A48: .4byte gTasks _08149A4C: movs r0, 0x60 strh r0, [r1, 0x26] ldr r0, _08149A5C str r0, [r1] _08149A54: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08149A5C: .4byte sub_8149A60 thumb_func_end sub_81499F0 thumb_func_start sub_8149A60 sub_8149A60: @ 8149A60 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _08149A80 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0, r1 ldrh r3, [r1, 0x26] movs r4, 0x26 ldrsh r0, [r1, r4] cmp r0, 0 beq _08149A84 subs r0, r3, 0x1 strh r0, [r1, 0x26] b _08149A8A .align 2, 0 _08149A80: .4byte gTasks _08149A84: adds r0, r2, 0 bl DestroyTask _08149A8A: pop {r4} pop {r0} bx r0 thumb_func_end sub_8149A60 thumb_func_start sub_8149A90 sub_8149A90: @ 8149A90 push {lr} ldr r0, _08149AA4 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08149AA4: .4byte sub_8149AA8 thumb_func_end sub_8149A90 thumb_func_start sub_8149AA8 sub_8149AA8: @ 8149AA8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8149520 ldr r1, _08149AD4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x26] ldr r1, _08149AD8 str r1, [r0] movs r0, 0xB7 bl PlaySE pop {r4} pop {r0} bx r0 .align 2, 0 _08149AD4: .4byte gTasks _08149AD8: .4byte sub_8149ADC thumb_func_end sub_8149AA8 thumb_func_start sub_8149ADC sub_8149ADC: @ 8149ADC push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _08149B20 lsls r2, r5, 2 adds r0, r2, r5 lsls r0, 3 adds r1, r0, r1 movs r3, 0x26 ldrsh r0, [r1, r3] cmp r0, 0x5F bgt _08149B24 adds r6, r2, 0 cmp r0, 0x5 bgt _08149B0E movs r4, 0 _08149AFC: lsls r0, r4, 28 lsrs r0, 24 bl sub_81496E4 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x8 bls _08149AFC _08149B0E: ldr r0, _08149B20 adds r1, r6, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x26] adds r0, 0x1 strh r0, [r1, 0x26] b _08149B28 .align 2, 0 _08149B20: .4byte gTasks _08149B24: ldr r0, _08149B30 str r0, [r1] _08149B28: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08149B30: .4byte sub_8149B34 thumb_func_end sub_8149ADC thumb_func_start sub_8149B34 sub_8149B34: @ 8149B34 push {lr} lsls r0, 24 lsrs r0, 24 bl DestroyTask pop {r0} bx r0 thumb_func_end sub_8149B34 thumb_func_start sub_8149B44 sub_8149B44: @ 8149B44 push {lr} ldr r0, _08149B58 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08149B58: .4byte sub_8149B5C thumb_func_end sub_8149B44 thumb_func_start sub_8149B5C sub_8149B5C: @ 8149B5C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8149520 ldr r1, _08149B88 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x26] ldr r1, _08149B8C str r1, [r0] movs r0, 0x66 bl PlaySE pop {r4} pop {r0} bx r0 .align 2, 0 _08149B88: .4byte gTasks _08149B8C: .4byte sub_8149B90 thumb_func_end sub_8149B5C thumb_func_start sub_8149B90 sub_8149B90: @ 8149B90 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _08149BFC lsls r2, r5, 2 adds r0, r2, r5 lsls r0, 3 adds r1, r0, r1 movs r3, 0x26 ldrsh r0, [r1, r3] cmp r0, 0x2F bgt _08149C00 adds r6, r2, 0 cmp r0, 0 bne _08149BC4 movs r4, 0 _08149BB0: lsls r0, r4, 28 lsrs r0, 24 movs r1, 0x4 bl sub_8149794 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF bls _08149BB0 _08149BC4: ldr r0, _08149BFC adds r1, r6, r5 lsls r1, 3 adds r1, r0 movs r2, 0x26 ldrsh r0, [r1, r2] cmp r0, 0x20 bne _08149BEA movs r4, 0 _08149BD6: lsls r0, r4, 28 lsrs r0, 24 movs r1, 0x8 bl sub_8149794 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF bls _08149BD6 _08149BEA: ldr r0, _08149BFC adds r1, r6, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x26] adds r0, 0x1 strh r0, [r1, 0x26] b _08149C04 .align 2, 0 _08149BFC: .4byte gTasks _08149C00: ldr r0, _08149C0C str r0, [r1] _08149C04: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08149C0C: .4byte sub_8149C10 thumb_func_end sub_8149B90 thumb_func_start sub_8149C10 sub_8149C10: @ 8149C10 push {lr} lsls r0, 24 lsrs r0, 24 bl DestroyTask pop {r0} bx r0 thumb_func_end sub_8149C10 thumb_func_start sub_8149C20 sub_8149C20: @ 8149C20 push {r4,lr} adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _08149C48 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08149C4C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0xC] pop {r4} pop {r1} bx r1 .align 2, 0 _08149C48: .4byte sub_8149C50 _08149C4C: .4byte gTasks thumb_func_end sub_8149C20 thumb_func_start sub_8149C50 sub_8149C50: @ 8149C50 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8149520 ldr r0, _08149C98 lsls r5, r4, 2 adds r5, r4 lsls r5, 3 adds r5, r0 movs r0, 0 strh r0, [r5, 0x26] ldr r0, _08149C9C ldr r1, _08149CA0 movs r2, 0x30 bl CpuSet ldr r0, _08149CA4 ldr r1, _08149CA8 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _08149CAC str r0, [r5] movs r0, 0xCA bl PlaySE add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08149C98: .4byte gTasks _08149C9C: .4byte gPlttBufferFaded + 0x40 _08149CA0: .4byte gPlttBufferUnfaded + 0x40 _08149CA4: .4byte 0xfff9001c _08149CA8: .4byte 0x00007fff _08149CAC: .4byte sub_8149CB0 thumb_func_end sub_8149C50 thumb_func_start sub_8149CB0 sub_8149CB0: @ 8149CB0 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r1, _08149CE8 lsls r5, r6, 2 adds r0, r5, r6 lsls r0, 3 adds r1, r0, r1 movs r0, 0x26 ldrsh r2, [r1, r0] cmp r2, 0x7F bgt _08149D2C adds r0, r2, 0 cmp r0, 0 beq _08149CEC cmp r0, 0x20 beq _08149D00 cmp r2, 0x31 bgt _08149D10 bl Random movs r1, 0x7 ands r0, r1 bl sub_81498CC b _08149D10 .align 2, 0 _08149CE8: .4byte gTasks _08149CEC: movs r4, 0 _08149CEE: adds r0, r4, 0 bl sub_81498CC adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bls _08149CEE b _08149D10 _08149D00: ldr r0, _08149D20 ldr r1, _08149D24 str r1, [sp] movs r1, 0x10 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade _08149D10: ldr r0, _08149D28 adds r1, r5, r6 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x26] adds r0, 0x1 strh r0, [r1, 0x26] b _08149D30 .align 2, 0 _08149D20: .4byte 0xffff001c _08149D24: .4byte 0x00007fff _08149D28: .4byte gTasks _08149D2C: ldr r0, _08149D38 str r0, [r1] _08149D30: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08149D38: .4byte sub_8149D3C thumb_func_end sub_8149CB0 thumb_func_start sub_8149D3C sub_8149D3C: @ 8149D3C push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _08149D58 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08149D54 adds r0, r2, 0 bl DestroyTask _08149D54: pop {r0} bx r0 .align 2, 0 _08149D58: .4byte gPaletteFade thumb_func_end sub_8149D3C thumb_func_start sub_8149D5C sub_8149D5C: @ 8149D5C push {r4,lr} adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _08149D84 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08149D88 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0xC] pop {r4} pop {r1} bx r1 .align 2, 0 _08149D84: .4byte sub_8149D8C _08149D88: .4byte gTasks thumb_func_end sub_8149D5C thumb_func_start sub_8149D8C sub_8149D8C: @ 8149D8C push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8149520 ldr r0, _08149DD4 lsls r5, r4, 2 adds r5, r4 lsls r5, 3 adds r5, r0 movs r0, 0 strh r0, [r5, 0x26] ldr r0, _08149DD8 ldr r1, _08149DDC movs r2, 0x30 bl CpuSet ldr r0, _08149DE0 ldr r1, _08149DE4 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _08149DE8 str r0, [r5] movs r0, 0xCA bl PlaySE add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08149DD4: .4byte gTasks _08149DD8: .4byte gPlttBufferFaded + 0x40 _08149DDC: .4byte gPlttBufferUnfaded + 0x40 _08149DE0: .4byte 0xfff90001 _08149DE4: .4byte 0x00007fff _08149DE8: .4byte sub_8149DEC thumb_func_end sub_8149D8C thumb_func_start sub_8149DEC sub_8149DEC: @ 8149DEC push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r1, _08149E24 lsls r5, r6, 2 adds r0, r5, r6 lsls r0, 3 adds r1, r0, r1 movs r0, 0x26 ldrsh r2, [r1, r0] cmp r2, 0x7F bgt _08149E68 adds r0, r2, 0 cmp r0, 0 beq _08149E28 cmp r0, 0x20 beq _08149E3C cmp r2, 0x31 bgt _08149E4C bl Random movs r1, 0x7 ands r0, r1 bl sub_81498CC b _08149E4C .align 2, 0 _08149E24: .4byte gTasks _08149E28: movs r4, 0 _08149E2A: adds r0, r4, 0 bl sub_81498CC adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bls _08149E2A b _08149E4C _08149E3C: ldr r0, _08149E5C ldr r1, _08149E60 str r1, [sp] movs r1, 0x10 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade _08149E4C: ldr r0, _08149E64 adds r1, r5, r6 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x26] adds r0, 0x1 strh r0, [r1, 0x26] b _08149E6C .align 2, 0 _08149E5C: .4byte 0xffff0001 _08149E60: .4byte 0x00007fff _08149E64: .4byte gTasks _08149E68: ldr r0, _08149E74 str r0, [r1] _08149E6C: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08149E74: .4byte sub_8149D3C thumb_func_end sub_8149DEC thumb_func_start nullsub_85 nullsub_85: @ 8149E78 bx lr thumb_func_end nullsub_85 thumb_func_start sub_8149E7C sub_8149E7C: @ 8149E7C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r7, r1, 24 movs r1, 0 ldr r3, _08149FB0 ldr r2, _08149FB4 _08149E96: lsls r0, r1, 1 add r0, sp adds r0, 0x4 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0xF bls _08149E96 adds r0, r3, 0 movs r1, 0 bl CreateTask mov r8, r0 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, _08149FB8 mov r1, r8 lsls r6, r1, 2 add r6, r8 lsls r6, 3 adds r6, r0 strh r5, [r6, 0xA] strh r7, [r6, 0xC] movs r1, 0x80 lsls r1, 1 strh r1, [r6, 0xE] movs r0, 0x10 strh r0, [r6, 0x10] movs r4, 0x80 lsls r4, 9 str r1, [sp] movs r0, 0x1E movs r2, 0 movs r3, 0 bl SetOamMatrix movs r0, 0x10 ldrsh r1, [r6, r0] adds r0, r4, 0 bl __divsi3 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 str r1, [sp] movs r0, 0x1F movs r2, 0 movs r3, 0 bl SetOamMatrix ldr r1, _08149FBC mov r9, r1 lsls r2, r5, 4 adds r2, r5 lsls r2, 2 mov r3, r9 adds r3, 0x1C adds r0, r2, r3 ldr r1, _08149FC0 str r1, [r0] add r2, r9 ldrb r1, [r2, 0x1] movs r4, 0x4 negs r4, r4 adds r0, r4, 0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x1] ldrb r1, [r2, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x3C orrs r0, r1 strb r0, [r2, 0x3] movs r0, 0x3E adds r0, r2 mov r10, r0 ldrb r1, [r0] movs r5, 0x5 negs r5, r5 adds r0, r5, 0 ands r0, r1 mov r1, r10 strb r0, [r1] ldrb r1, [r2, 0x5] lsrs r1, 4 lsls r1, 5 ldr r0, _08149FC4 mov r10, r0 add r1, r10 add r0, sp, 0x4 movs r2, 0x10 str r3, [sp, 0x24] bl CpuSet lsls r1, r7, 4 adds r1, r7 lsls r1, 2 ldr r3, [sp, 0x24] adds r3, r1, r3 ldr r0, _08149FC0 str r0, [r3] add r1, r9 ldrb r0, [r1, 0x1] ands r4, r0 movs r0, 0x1 orrs r4, r0 strb r4, [r1, 0x1] ldrb r0, [r1, 0x3] movs r2, 0x3E orrs r0, r2 strb r0, [r1, 0x3] adds r2, r1, 0 adds r2, 0x3E ldrb r0, [r2] ands r5, r0 strb r5, [r2] ldrb r1, [r1, 0x5] lsrs r1, 4 lsls r1, 5 add r1, r10 add r0, sp, 0x4 movs r2, 0x10 bl CpuSet movs r1, 0 strh r1, [r6, 0x18] mov r0, r8 add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08149FB0: .4byte sub_8149FC8 _08149FB4: .4byte 0x00007fff _08149FB8: .4byte gTasks _08149FBC: .4byte gSprites _08149FC0: .4byte nullsub_85 _08149FC4: .4byte gPlttBufferFaded + 0x200 thumb_func_end sub_8149E7C thumb_func_start sub_8149FC8 sub_8149FC8: @ 8149FC8 lsls r0, 24 lsrs r0, 24 ldr r2, _08149FE4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r0, [r1, 0x12] movs r0, 0x8 strh r0, [r1, 0x14] ldr r0, _08149FE8 str r0, [r1] bx lr .align 2, 0 _08149FE4: .4byte gTasks _08149FE8: .4byte sub_8149FEC thumb_func_end sub_8149FC8 thumb_func_start sub_8149FEC sub_8149FEC: @ 8149FEC push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r1, _0814A00C lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r2, r0, r1 movs r1, 0x18 ldrsh r0, [r2, r1] cmp r0, 0 beq _0814A010 adds r0, r3, 0 bl sub_814A208 b _0814A032 .align 2, 0 _0814A00C: .4byte gTasks _0814A010: ldrh r1, [r2, 0x14] movs r4, 0x14 ldrsh r0, [r2, r4] cmp r0, 0x80 bne _0814A022 adds r0, r3, 0 bl sub_814A158 b _0814A032 _0814A022: adds r0, r1, 0x2 strh r0, [r2, 0x14] ldrh r0, [r2, 0x12] movs r1, 0x1 eors r0, r1 strh r0, [r2, 0x12] ldr r0, _0814A038 str r0, [r2] _0814A032: pop {r4} pop {r0} bx r0 .align 2, 0 _0814A038: .4byte sub_814A03C thumb_func_end sub_8149FEC thumb_func_start sub_814A03C sub_814A03C: @ 814A03C push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _0814A060 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r1 movs r3, 0x18 ldrsh r0, [r2, r3] adds r5, r1, 0 cmp r0, 0 beq _0814A068 ldr r0, _0814A064 str r0, [r2] b _0814A14C .align 2, 0 _0814A060: .4byte gTasks _0814A064: .4byte sub_814A208 _0814A068: movs r6, 0 movs r7, 0x12 ldrsh r0, [r2, r7] cmp r0, 0 bne _0814A0B8 movs r0, 0xE ldrsh r1, [r2, r0] movs r3, 0x14 ldrsh r0, [r2, r3] movs r3, 0x80 lsls r3, 1 subs r0, r3, r0 cmp r1, r0 bge _0814A08E ldrh r0, [r2, 0x14] ldrh r7, [r2, 0xE] adds r0, r7 strh r0, [r2, 0xE] b _0814A092 _0814A08E: strh r3, [r2, 0xE] movs r6, 0x1 _0814A092: lsls r2, r4, 2 adds r0, r2, r4 lsls r0, 3 adds r3, r0, r5 movs r0, 0x10 ldrsh r1, [r3, r0] movs r7, 0x14 ldrsh r0, [r3, r7] adds r0, 0x10 cmp r1, r0 ble _0814A0B2 ldrh r0, [r3, 0x10] ldrh r1, [r3, 0x14] subs r0, r1 strh r0, [r3, 0x10] b _0814A102 _0814A0B2: movs r0, 0x10 strh r0, [r3, 0x10] b _0814A0FC _0814A0B8: movs r0, 0x10 ldrsh r1, [r2, r0] movs r3, 0x14 ldrsh r0, [r2, r3] movs r3, 0x80 lsls r3, 1 subs r0, r3, r0 cmp r1, r0 bge _0814A0D4 ldrh r0, [r2, 0x14] ldrh r7, [r2, 0x10] adds r0, r7 strh r0, [r2, 0x10] b _0814A0D8 _0814A0D4: strh r3, [r2, 0x10] movs r6, 0x1 _0814A0D8: lsls r2, r4, 2 adds r0, r2, r4 lsls r0, 3 adds r3, r0, r5 movs r0, 0xE ldrsh r1, [r3, r0] movs r7, 0x14 ldrsh r0, [r3, r7] adds r0, 0x10 cmp r1, r0 ble _0814A0F8 ldrh r0, [r3, 0xE] ldrh r1, [r3, 0x14] subs r0, r1 strh r0, [r3, 0xE] b _0814A102 _0814A0F8: movs r0, 0x10 strh r0, [r3, 0xE] _0814A0FC: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0814A102: adds r0, r2, r4 lsls r0, 3 adds r5, r0, r5 movs r0, 0xE ldrsh r1, [r5, r0] movs r4, 0x80 lsls r4, 9 adds r0, r4, 0 bl __divsi3 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 str r1, [sp] movs r0, 0x1E movs r2, 0 movs r3, 0 bl SetOamMatrix movs r3, 0x10 ldrsh r1, [r5, r3] adds r0, r4, 0 bl __divsi3 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 str r1, [sp] movs r0, 0x1F movs r2, 0 movs r3, 0 bl SetOamMatrix cmp r6, 0x2 bne _0814A14C ldr r0, _0814A154 str r0, [r5] _0814A14C: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0814A154: .4byte sub_8149FEC thumb_func_end sub_814A03C thumb_func_start sub_814A158 sub_814A158: @ 814A158 push {r4-r6,lr} mov r6, r8 push {r6} lsls r0, 24 lsrs r0, 24 ldr r1, _0814A200 mov r8, r1 ldr r1, _0814A204 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 movs r2, 0xA ldrsh r1, [r4, r2] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 add r2, r8 ldrb r3, [r2, 0x1] movs r6, 0x4 negs r6, r6 adds r1, r6, 0 ands r1, r3 strb r1, [r2, 0x1] movs r2, 0xA ldrsh r1, [r4, r2] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 add r2, r8 ldrb r3, [r2, 0x3] movs r5, 0x3F negs r5, r5 adds r1, r5, 0 ands r1, r3 strb r1, [r2, 0x3] movs r1, 0xA ldrsh r2, [r4, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 add r1, r8 adds r1, 0x3E ldrb r2, [r1] movs r3, 0x4 orrs r2, r3 strb r2, [r1] movs r1, 0xC ldrsh r2, [r4, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 add r1, r8 ldrb r2, [r1, 0x1] ands r6, r2 strb r6, [r1, 0x1] movs r1, 0xC ldrsh r2, [r4, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 add r1, r8 ldrb r2, [r1, 0x3] ands r5, r2 strb r5, [r1, 0x3] movs r1, 0xC ldrsh r2, [r4, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 add r1, r8 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 ands r2, r3 strb r2, [r1] bl DestroyTask pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0814A200: .4byte gSprites _0814A204: .4byte gTasks thumb_func_end sub_814A158 thumb_func_start sub_814A208 sub_814A208: @ 814A208 push {r4-r6,lr} mov r6, r8 push {r6} lsls r0, 24 lsrs r0, 24 ldr r1, _0814A2B0 mov r8, r1 ldr r1, _0814A2B4 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 movs r2, 0xA ldrsh r1, [r4, r2] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 add r2, r8 ldrb r3, [r2, 0x1] movs r6, 0x4 negs r6, r6 adds r1, r6, 0 ands r1, r3 strb r1, [r2, 0x1] movs r2, 0xA ldrsh r1, [r4, r2] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 add r2, r8 ldrb r3, [r2, 0x3] movs r5, 0x3F negs r5, r5 adds r1, r5, 0 ands r1, r3 strb r1, [r2, 0x3] movs r1, 0xA ldrsh r2, [r4, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 add r1, r8 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 ands r2, r3 strb r2, [r1] movs r1, 0xC ldrsh r2, [r4, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 add r1, r8 ldrb r2, [r1, 0x1] ands r6, r2 strb r6, [r1, 0x1] movs r1, 0xC ldrsh r2, [r4, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 add r1, r8 ldrb r2, [r1, 0x3] ands r5, r2 strb r5, [r1, 0x3] movs r1, 0xC ldrsh r2, [r4, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 add r1, r8 adds r1, 0x3E ldrb r2, [r1] movs r3, 0x4 orrs r2, r3 strb r2, [r1] bl DestroyTask pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0814A2B0: .4byte gSprites _0814A2B4: .4byte gTasks thumb_func_end sub_814A208 thumb_func_start sub_814A2B8 sub_814A2B8: @ 814A2B8 ldr r2, _0814A2CC lsls r0, 2 adds r0, r2 ldr r0, [r0] lsls r1, 1 adds r1, r0 movs r2, 0 ldrsh r0, [r1, r2] bx lr .align 2, 0 _0814A2CC: .4byte gUnknown_08417068 thumb_func_end sub_814A2B8 thumb_func_start sub_814A2D0 sub_814A2D0: @ 814A2D0 lsls r0, 16 lsls r1, 16 lsrs r1, 16 ldr r2, _0814A2E8 lsrs r0, 14 adds r0, r2 ldr r0, [r0] lsls r2, r1, 1 adds r2, r1 lsls r2, 4 adds r0, r2 bx lr .align 2, 0 _0814A2E8: .4byte gBardMusicTable thumb_func_end sub_814A2D0 thumb_func_start sub_814A2EC sub_814A2EC: @ 814A2EC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r6, r0, 0 lsls r2, 16 lsrs r2, 16 mov r9, r2 ldr r4, _0814A370 adds r2, r1, 0 adds r3, r6, 0 adds r3, 0x18 movs r7, 0x5 _0814A306: ldrb r0, [r2] strh r0, [r3] ldrb r0, [r2] cmp r0, 0xFF beq _0814A328 movs r1, 0x1 ldrsb r1, [r2, r1] lsls r0, 2 adds r0, r4 ldr r0, [r0] adds r1, r0 strh r1, [r3, 0x2] ldrh r0, [r2, 0x4] strh r0, [r3, 0x6] ldrh r0, [r6, 0x4] adds r0, r1 strh r0, [r6, 0x4] _0814A328: adds r2, 0x8 adds r3, 0x8 subs r7, 0x1 cmp r7, 0 bge _0814A306 movs r7, 0x6 movs r5, 0 movs r0, 0x1E mov r8, r0 adds r4, r6, 0 _0814A33C: mov r0, r8 add r0, r9 adds r1, r5, 0 bl sub_814A2B8 adds r1, r0, 0 strh r1, [r4, 0x1C] adds r4, 0x8 adds r5, 0x1 cmp r5, r7 blt _0814A33C ldrb r1, [r6] adds r1, 0x1 movs r2, 0 strb r1, [r6] strb r2, [r6, 0x1] strb r2, [r6, 0x2] strb r2, [r6, 0x3] strh r2, [r6, 0xA] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0814A370: .4byte gUnknown_084170F4 thumb_func_end sub_814A2EC thumb_func_start sub_814A374 sub_814A374: @ 814A374 push {lr} ldr r0, _0814A38C ldrb r0, [r0, 0x17] bl is_light_level_1_2_3_or_6 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0814A390 movs r0, 0 b _0814A39E .align 2, 0 _0814A38C: .4byte gMapHeader _0814A390: ldr r1, _0814A3A4 ldr r0, _0814A3A8 str r0, [r1] ldr r1, _0814A3AC ldr r0, _0814A3B0 str r0, [r1] movs r0, 0x1 _0814A39E: pop {r1} bx r1 .align 2, 0 _0814A3A4: .4byte gUnknown_0300485C _0814A3A8: .4byte sub_808AB90 _0814A3AC: .4byte gUnknown_03005CE4 _0814A3B0: .4byte hm_teleport_run_dp02scr thumb_func_end sub_814A374 thumb_func_start hm_teleport_run_dp02scr hm_teleport_run_dp02scr: @ 814A3B4 push {lr} bl new_game movs r0, 0x3F bl FieldEffectStart ldr r0, _0814A3CC ldr r1, _0814A3D0 ldrb r1, [r1] str r1, [r0] pop {r0} bx r0 .align 2, 0 _0814A3CC: .4byte gUnknown_0202FF84 _0814A3D0: .4byte gUnknown_03005CE0 thumb_func_end hm_teleport_run_dp02scr thumb_func_start sub_814A3D4 sub_814A3D4: @ 814A3D4 push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _0814A3FC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _0814A400 lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] movs r0, 0x1 bl SetPlayerAvatarTransitionFlags movs r0, 0 pop {r1} bx r1 .align 2, 0 _0814A3FC: .4byte gTasks _0814A400: .4byte sub_814A404 thumb_func_end sub_814A3D4 thumb_func_start sub_814A404 sub_814A404: @ 814A404 push {lr} movs r0, 0x3F bl FieldEffectActiveListRemove bl sub_8087BA8 pop {r0} bx r0 thumb_func_end sub_814A404 thumb_func_start unref_sub_814A414 unref_sub_814A414: @ 814A414 push {lr} sub sp, 0x8 bl MenuZeroFillScreen movs r0, 0 movs r1, 0 movs r2, 0x10 movs r3, 0x12 bl MenuDrawTextWindow ldr r3, _0814A458 movs r0, 0x2 movs r1, 0x1 movs r2, 0x8 bl PrintMenuItems movs r0, 0 str r0, [sp] movs r0, 0xF str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 movs r3, 0x8 bl InitMenu ldr r1, _0814A45C ldr r0, _0814A460 str r0, [r1] movs r0, 0 add sp, 0x8 pop {r1} bx r1 .align 2, 0 _0814A458: .4byte gUnknown_0842C29C _0814A45C: .4byte gUnknown_03004AE8 _0814A460: .4byte sub_814A464 thumb_func_end unref_sub_814A414 thumb_func_start sub_814A464 sub_814A464: @ 814A464 push {lr} bl ProcessMenuInput lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 lsls r0, r2, 24 asrs r1, r0, 24 movs r0, 0x2 negs r0, r0 cmp r1, r0 bne _0814A480 movs r0, 0 b _0814A4B2 _0814A480: movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0814A4AC ldr r0, _0814A4A0 strb r2, [r0] ldr r2, _0814A4A4 ldr r0, _0814A4A8 lsls r1, 3 adds r0, 0x4 adds r1, r0 ldr r0, [r1] str r0, [r2] movs r0, 0 b _0814A4B2 .align 2, 0 _0814A4A0: .4byte gUnknown_02024D1E _0814A4A4: .4byte gUnknown_03004AE8 _0814A4A8: .4byte gUnknown_0842C29C _0814A4AC: bl sub_8071C20 movs r0, 0x1 _0814A4B2: pop {r1} bx r1 thumb_func_end sub_814A464 thumb_func_start sub_814A4B8 sub_814A4B8: @ 814A4B8 push {r4,lr} ldr r2, _0814A4FC ldr r1, _0814A500 adds r0, r2, r1 movs r1, 0x3 strb r1, [r0] ldr r3, _0814A504 adds r0, r2, r3 strb r1, [r0] ldr r3, _0814A508 ldrb r0, [r3] adds r0, 0x1 ldr r4, _0814A50C adds r1, r2, r4 strh r0, [r1] ldrb r0, [r3] adds r0, 0x1 ldr r3, _0814A510 adds r1, r2, r3 strh r0, [r1] subs r4, 0x4 adds r0, r2, r4 movs r1, 0x1 strh r1, [r0] ldr r0, _0814A514 adds r2, r0 strh r1, [r2] bl sub_8071C20 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0814A4FC: .4byte gSaveBlock2 _0814A500: .4byte 0x00000556 _0814A504: .4byte 0x00000557 _0814A508: .4byte gUnknown_02024D1E _0814A50C: .4byte 0x0000055c _0814A510: .4byte 0x0000055e _0814A514: .4byte 0x0000055a thumb_func_end sub_814A4B8 thumb_func_start sub_814A518 sub_814A518: @ 814A518 push {r4,r5,lr} adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 bl SkipExtCtrlCodes adds r0, r4, 0 bl StringLength lsls r0, 24 lsrs r1, r0, 24 cmp r5, 0xFC bne _0814A556 cmp r1, 0x5 bhi _0814A55A movs r3, 0xFC movs r2, 0x7 _0814A53A: adds r0, r4, r1 strb r3, [r0] strb r2, [r0, 0x1] adds r0, r1, 0x2 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x5 bls _0814A53A b _0814A55A _0814A54C: adds r0, r4, r1 strb r5, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 _0814A556: cmp r1, 0x5 bls _0814A54C _0814A55A: adds r1, r4, r1 movs r0, 0xFF strb r0, [r1] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_814A518 thumb_func_start sub_814A568 sub_814A568: @ 814A568 push {r4,lr} adds r4, r0, 0 bl StringLength lsls r0, 16 lsrs r0, 16 cmp r0, 0x5 bhi _0814A582 adds r0, r4, 0 movs r1, 0x1 bl ConvertInternationalString b _0814A588 _0814A582: adds r0, r4, 0 bl SkipExtCtrlCodes _0814A588: pop {r4} pop {r0} bx r0 thumb_func_end sub_814A568 thumb_func_start sub_814A590 sub_814A590: @ 814A590 ldr r0, _0814A5AC movs r1, 0x40 strb r1, [r0] ldr r0, _0814A5B0 strb r1, [r0] ldr r0, _0814A5B4 strb r1, [r0] ldr r0, _0814A5B8 movs r1, 0 strb r1, [r0] ldr r0, _0814A5BC strb r1, [r0] bx lr .align 2, 0 _0814A5AC: .4byte gUnknown_0203A3D0 _0814A5B0: .4byte gUnknown_0203A3D1 _0814A5B4: .4byte gUnknown_0203A3D2 _0814A5B8: .4byte gUnknown_0203A3D3 _0814A5BC: .4byte gUnknown_0203A3D4 thumb_func_end sub_814A590 thumb_func_start sub_814A5C0 sub_814A5C0: @ 814A5C0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r4, [sp, 0x1C] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 16 lsrs r6, r1, 16 lsls r2, 24 lsrs r5, r2, 24 lsls r3, 16 lsrs r7, r3, 16 lsls r4, 24 lsrs r4, 24 mov r9, r4 ldr r0, _0814A678 ldrb r0, [r0] cmp r0, 0x40 bne _0814A5F2 ldr r0, _0814A67C ldrb r0, [r0] cmp r0, 0x40 beq _0814A5F6 _0814A5F2: bl sub_814A7FC _0814A5F6: movs r4, 0x1 ldr r0, _0814A680 cmp r6, r0 bne _0814A61C ldr r1, _0814A684 movs r0, 0xF ands r0, r5 lsls r0, 1 adds r0, r1 strh r7, [r0] ldr r0, _0814A688 bl LoadSpritePalette lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _0814A61C ldr r6, _0814A68C movs r4, 0 _0814A61C: movs r7, 0xF adds r0, r5, 0 ands r0, r7 lsls r0, 3 ldr r1, _0814A690 adds r0, r1 bl LoadSpriteSheetDeferred lsls r0, r4, 1 adds r0, r4 lsls r0, 3 ldr r4, _0814A694 adds r0, r4 movs r1, 0 movs r2, 0xA0 mov r3, r8 bl CreateSprite ldr r5, _0814A678 strb r0, [r5] adds r4, 0x30 adds r0, r4, 0 movs r1, 0 movs r2, 0xA0 mov r3, r8 bl CreateSprite ldr r1, _0814A67C strb r0, [r1] ldrb r0, [r5] cmp r0, 0x40 beq _0814A6AE adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814A698 adds r4, r0, r1 ldr r0, _0814A680 cmp r6, r0 bne _0814A69C ldrb r1, [r4, 0x5] adds r0, r7, 0 ands r0, r1 strb r0, [r4, 0x5] b _0814A6AE .align 2, 0 _0814A678: .4byte gUnknown_0203A3D0 _0814A67C: .4byte gUnknown_0203A3D1 _0814A680: .4byte 0x0000ffff _0814A684: .4byte gUnknown_0203A360 _0814A688: .4byte gUnknown_0842F240 _0814A68C: .4byte 0x0000fff0 _0814A690: .4byte gUnknown_0842F140 _0814A694: .4byte gSpriteTemplate_842F250 _0814A698: .4byte gSprites _0814A69C: adds r0, r6, 0 bl IndexOfSpritePaletteTag lsls r0, 4 ldrb r2, [r4, 0x5] adds r1, r7, 0 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x5] _0814A6AE: ldr r1, _0814A6D4 ldrb r0, [r1] cmp r0, 0x40 beq _0814A72C adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814A6D8 adds r4, r0, r1 ldr r0, _0814A6DC cmp r6, r0 bne _0814A6E0 ldrb r1, [r4, 0x5] movs r0, 0xF ands r0, r1 strb r0, [r4, 0x5] b _0814A6F2 .align 2, 0 _0814A6D4: .4byte gUnknown_0203A3D1 _0814A6D8: .4byte gSprites _0814A6DC: .4byte 0x0000ffff _0814A6E0: adds r0, r6, 0 bl IndexOfSpritePaletteTag lsls r0, 4 ldrb r2, [r4, 0x5] movs r1, 0xF ands r1, r2 orrs r1, r0 strb r1, [r4, 0x5] _0814A6F2: movs r3, 0x80 lsls r3, 19 ldrh r1, [r3] movs r0, 0xC0 lsls r0, 7 ands r0, r1 cmp r0, 0 bne _0814A70C ldr r0, _0814A744 ldrb r1, [r0] movs r2, 0x1F orrs r1, r2 strb r1, [r0] _0814A70C: ldr r1, _0814A748 ldrh r0, [r3] lsrs r0, 15 strb r0, [r1] ldr r1, _0814A74C ldr r2, _0814A750 ldrb r0, [r2] strb r0, [r1] ldrh r0, [r3] movs r4, 0x80 lsls r4, 8 adds r1, r4, 0 orrs r0, r1 strh r0, [r3] movs r0, 0x10 strb r0, [r2] _0814A72C: mov r0, r9 bl sub_814A958 ldr r0, _0814A754 ldrb r0, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0814A744: .4byte REG_WINOUT _0814A748: .4byte gUnknown_0203A3D3 _0814A74C: .4byte gUnknown_0203A3D4 _0814A750: .4byte 0x0400004b _0814A754: .4byte gUnknown_0203A3D0 thumb_func_end sub_814A5C0 thumb_func_start sub_814A758 sub_814A758: @ 814A758 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 str r3, [sp] movs r1, 0 movs r3, 0 bl sub_814A5C0 lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 cmp r4, 0x40 beq _0814A79A ldr r0, _0814A7A4 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _0814A7A8 adds r1, r0 lsls r3, r5, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] _0814A79A: adds r0, r4, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0814A7A4: .4byte gUnknown_0203A3D0 _0814A7A8: .4byte gSprites thumb_func_end sub_814A758 thumb_func_start unref_sub_814A7AC unref_sub_814A7AC: @ 814A7AC push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 mov r12, r0 lsls r1, 16 lsrs r4, r1, 16 lsls r2, 24 lsrs r7, r2, 24 movs r3, 0 movs r2, 0xF movs r1, 0 ldr r6, _0814A7F8 movs r5, 0xF _0814A7C6: lsls r0, r1, 1 adds r0, r6 ldrh r0, [r0] cmp r0, r4 bne _0814A7DA lsrs r0, r1, 4 lsls r0, 24 lsrs r3, r0, 24 adds r2, r1, 0 ands r2, r5 _0814A7DA: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0xFF bls _0814A7C6 mov r0, r12 adds r1, r3, 0 adds r3, r7, 0 bl sub_814A758 lsls r0, 24 lsrs r0, 24 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0814A7F8: .4byte gPlttBufferUnfaded thumb_func_end unref_sub_814A7AC thumb_func_start sub_814A7FC sub_814A7FC: @ 814A7FC push {r4,lr} ldr r4, _0814A860 ldrb r0, [r4] cmp r0, 0x40 beq _0814A820 ldr r0, _0814A864 bl LoadTilesForSpriteSheet ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814A868 adds r0, r1 bl DestroySpriteAndFreeResources movs r0, 0x40 strb r0, [r4] _0814A820: ldr r4, _0814A86C ldrb r0, [r4] cmp r0, 0x40 beq _0814A858 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814A868 adds r0, r1 bl DestroySpriteAndFreeResources movs r0, 0x40 strb r0, [r4] ldr r0, _0814A870 ldrb r0, [r0] cmp r0, 0 bne _0814A850 movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _0814A874 ands r0, r1 strh r0, [r2] _0814A850: ldr r0, _0814A878 ldr r1, _0814A87C ldrb r1, [r1] strb r1, [r0] _0814A858: pop {r4} pop {r0} bx r0 .align 2, 0 _0814A860: .4byte gUnknown_0203A3D0 _0814A864: .4byte gUnknown_0842F140 _0814A868: .4byte gSprites _0814A86C: .4byte gUnknown_0203A3D1 _0814A870: .4byte gUnknown_0203A3D3 _0814A874: .4byte 0x00007fff _0814A878: .4byte 0x0400004b _0814A87C: .4byte gUnknown_0203A3D4 thumb_func_end sub_814A7FC thumb_func_start sub_814A880 sub_814A880: @ 814A880 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 adds r7, r5, 0 lsls r1, 24 lsrs r4, r1, 24 adds r6, r4, 0 ldr r1, _0814A8F8 ldrb r0, [r1] cmp r0, 0x40 beq _0814A8C0 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814A8FC adds r2, r0, r1 adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] adds r0, r2, 0 adds r0, 0x28 movs r1, 0 strb r1, [r0] adds r0, 0x1 strb r1, [r0] strh r5, [r2, 0x20] strh r4, [r2, 0x22] _0814A8C0: ldr r1, _0814A900 ldrb r0, [r1] cmp r0, 0x40 beq _0814A8F2 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814A8FC adds r2, r0, r1 adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] adds r0, r2, 0 adds r0, 0x28 movs r1, 0 strb r1, [r0] adds r0, 0x1 strb r1, [r0] strh r7, [r2, 0x20] strh r6, [r2, 0x22] _0814A8F2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0814A8F8: .4byte gUnknown_0203A3D0 _0814A8FC: .4byte gSprites _0814A900: .4byte gUnknown_0203A3D1 thumb_func_end sub_814A880 thumb_func_start sub_814A904 sub_814A904: @ 814A904 push {lr} ldr r1, _0814A94C ldrb r0, [r1] cmp r0, 0x40 beq _0814A926 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814A950 adds r0, r1 adds r2, r0, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _0814A926: ldr r1, _0814A954 ldrb r0, [r1] cmp r0, 0x40 beq _0814A946 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814A950 adds r0, r1 adds r2, r0, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _0814A946: pop {r0} bx r0 .align 2, 0 _0814A94C: .4byte gUnknown_0203A3D0 _0814A950: .4byte gSprites _0814A954: .4byte gUnknown_0203A3D1 thumb_func_end sub_814A904 thumb_func_start sub_814A958 sub_814A958: @ 814A958 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 ldr r4, _0814A9C4 ldr r2, _0814A9C8 lsrs r0, 24 str r0, [sp] movs r0, 0 movs r1, 0 movs r1, 0x2 str r0, [r4] str r1, [r4, 0x4] strh r2, [r4] adds r4, 0x8 movs r7, 0x1 movs r2, 0x1 ldr r1, [sp] subs r0, r1, 0x1 lsls r0, 16 lsrs r3, r0, 16 asrs r0, 16 cmp r0, 0x7 ble _0814AA3A ldr r0, _0814A9CC mov r12, r0 mov r8, r1 movs r1, 0x8 negs r1, r1 mov r10, r1 ldr r5, _0814A9D0 mov r9, r5 _0814A99E: lsls r0, r3, 16 asrs r3, r0, 16 cmp r3, 0x1F ble _0814A9D4 mov r6, r12 ldr r0, [r6] ldr r1, [r6, 0x4] str r0, [r4] str r1, [r4, 0x4] strh r2, [r4] lsls r0, r2, 16 movs r1, 0x80 lsls r1, 14 adds r0, r1 lsrs r2, r0, 16 ldr r3, [sp] lsls r5, r3, 16 b _0814AA20 .align 2, 0 _0814A9C4: .4byte gSubspriteTable_203A380 _0814A9C8: .4byte 0x0000ffff _0814A9CC: .4byte gUnknown_0842F780 _0814A9D0: .4byte gUnknown_0842F788 _0814A9D4: ldr r6, [sp] lsls r5, r6, 16 mov r0, r8 cmp r0, 0x27 ble _0814AA0A cmp r3, 0x8 ble _0814AA0A mov r6, r12 ldr r0, [r6] ldr r1, [r6, 0x4] str r0, [r4] str r1, [r4, 0x4] lsls r1, r2, 16 asrs r1, 16 adds r2, r1, 0 subs r2, 0x20 adds r0, r3, 0 mov r6, r10 ands r0, r6 adds r2, r0 strh r2, [r4] movs r0, 0x18 ands r0, r3 adds r1, r0 lsls r1, 16 lsrs r2, r1, 16 b _0814AA20 _0814AA0A: mov r3, r9 ldr r0, [r3] ldr r1, [r3, 0x4] str r0, [r4] str r1, [r4, 0x4] strh r2, [r4] lsls r0, r2, 16 movs r6, 0x80 lsls r6, 12 adds r0, r6 lsrs r2, r0, 16 _0814AA20: adds r4, 0x8 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 asrs r1, r5, 16 lsls r0, r2, 16 asrs r0, 16 subs r1, r0 lsls r1, 16 lsrs r3, r1, 16 asrs r1, 16 cmp r1, 0x7 bgt _0814A99E _0814AA3A: ldr r5, _0814AAA8 ldr r0, [r5] ldr r1, [r5, 0x4] str r0, [r4] str r1, [r4, 0x4] lsls r1, r2, 16 asrs r1, 16 subs r1, 0x7 lsls r0, r3, 16 asrs r0, 16 adds r0, r1 strh r0, [r4] adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 ldr r6, _0814AAAC ldrb r0, [r6] cmp r0, 0x40 beq _0814AA78 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814AAB0 adds r2, r0, r1 lsls r1, r7, 3 ldr r0, _0814AAB4 adds r1, r0 adds r0, r2, 0 bl SetSubspriteTables _0814AA78: ldr r1, _0814AAB8 ldrb r0, [r1] cmp r0, 0x40 beq _0814AA98 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814AAB0 adds r2, r0, r1 lsls r1, r7, 3 ldr r0, _0814AAB4 adds r1, r0 adds r0, r2, 0 bl SetSubspriteTables _0814AA98: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0814AAA8: .4byte gUnknown_0842F790 _0814AAAC: .4byte gUnknown_0203A3D0 _0814AAB0: .4byte gSprites _0814AAB4: .4byte gSubspriteTables_842F5C0 _0814AAB8: .4byte gUnknown_0203A3D1 thumb_func_end sub_814A958 thumb_func_start sub_814AABC sub_814AABC: @ 814AABC push {lr} adds r2, r0, 0 ldr r1, _0814AAEC ldrb r0, [r1] cmp r0, 0x40 beq _0814AAD4 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _0814AAF0 adds r1, r0 str r2, [r1, 0x1C] _0814AAD4: ldr r1, _0814AAF4 ldrb r0, [r1] cmp r0, 0x40 beq _0814AAE8 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _0814AAF0 adds r1, r0 str r2, [r1, 0x1C] _0814AAE8: pop {r0} bx r0 .align 2, 0 _0814AAEC: .4byte gUnknown_0203A3D0 _0814AAF0: .4byte gSprites _0814AAF4: .4byte gUnknown_0203A3D1 thumb_func_end sub_814AABC thumb_func_start sub_814AAF8 sub_814AAF8: @ 814AAF8 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 lsrs r0, 16 mov r12, r0 ldr r1, _0814AB70 ldrb r0, [r1] cmp r0, 0x40 beq _0814AB66 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814AB74 adds r4, r0, r1 ldr r0, [r4, 0x14] ldrh r1, [r0, 0x2] ldr r0, _0814AB78 cmp r1, r0 bne _0814AB66 movs r2, 0 movs r3, 0xF movs r1, 0 ldrb r5, [r4, 0x5] ldr r0, _0814AB7C mov r8, r0 ldr r7, _0814AB80 movs r6, 0xF _0814AB32: lsls r0, r1, 1 adds r0, r7 ldrh r0, [r0] cmp r0, r12 bne _0814AB46 lsrs r0, r1, 4 lsls r0, 24 lsrs r2, r0, 24 adds r3, r1, 0 ands r3, r6 _0814AB46: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0xFF bls _0814AB32 lsls r2, 4 movs r1, 0xF adds r0, r1, 0 ands r0, r5 orrs r0, r2 strb r0, [r4, 0x5] ands r3, r1 lsls r0, r3, 3 add r0, r8 bl RequestSpriteSheetCopy _0814AB66: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0814AB70: .4byte gUnknown_0203A3D0 _0814AB74: .4byte gSprites _0814AB78: .4byte 0x0000ffff _0814AB7C: .4byte gUnknown_0842F140 _0814AB80: .4byte gPlttBufferUnfaded thumb_func_end sub_814AAF8 thumb_func_start sub_814AB84 sub_814AB84: @ 814AB84 push {r4,r5,lr} ldr r5, _0814ABCC ldrb r0, [r5] cmp r0, 0x40 beq _0814ABC4 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _0814ABD0 adds r4, r0 adds r0, r4, 0 bl FreeSpriteOamMatrix adds r0, r4, 0 bl DestroySprite movs r0, 0x40 strb r0, [r5] ldr r0, _0814ABD4 ldrb r0, [r0] cmp r0, 0 bne _0814ABBC movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _0814ABD8 ands r0, r1 strh r0, [r2] _0814ABBC: ldr r0, _0814ABDC ldr r1, _0814ABE0 ldrb r1, [r1] strb r1, [r0] _0814ABC4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0814ABCC: .4byte gUnknown_0203A3D1 _0814ABD0: .4byte gSprites _0814ABD4: .4byte gUnknown_0203A3D3 _0814ABD8: .4byte 0x00007fff _0814ABDC: .4byte 0x0400004b _0814ABE0: .4byte gUnknown_0203A3D4 thumb_func_end sub_814AB84 thumb_func_start unref_sub_814ABE4 unref_sub_814ABE4: @ 814ABE4 push {r4,lr} adds r4, r0, 0 ldr r1, _0814AC40 lsls r0, r4, 2 adds r0, r1 ldr r0, [r0] ldr r1, _0814AC44 movs r2, 0x28 bl CpuSet ldr r1, _0814AC48 ldrb r0, [r1] cmp r0, 0x40 beq _0814AC18 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814AC4C adds r2, r0, r1 lsls r1, r4, 3 ldr r0, _0814AC50 adds r1, r0 adds r0, r2, 0 bl SetSubspriteTables _0814AC18: ldr r1, _0814AC54 ldrb r0, [r1] cmp r0, 0x40 beq _0814AC38 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814AC4C adds r2, r0, r1 lsls r1, r4, 3 ldr r0, _0814AC50 adds r1, r0 adds r0, r2, 0 bl SetSubspriteTables _0814AC38: pop {r4} pop {r0} bx r0 .align 2, 0 _0814AC40: .4byte gUnknown_0842F5BC _0814AC44: .4byte gSubspriteTable_203A380 _0814AC48: .4byte gUnknown_0203A3D0 _0814AC4C: .4byte gSprites _0814AC50: .4byte gUnknown_0842F758 _0814AC54: .4byte gUnknown_0203A3D1 thumb_func_end unref_sub_814ABE4 thumb_func_start sub_814AC58 sub_814AC58: @ 814AC58 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r4, [sp, 0x1C] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 16 lsrs r5, r1, 16 lsls r2, 24 lsrs r7, r2, 24 lsls r3, 16 lsrs r6, r3, 16 lsls r4, 24 lsrs r4, 24 mov r9, r4 ldr r0, _0814ACF8 ldrb r0, [r0] cmp r0, 0x40 beq _0814AC86 bl sub_814AD44 _0814AC86: movs r4, 0x1 ldr r0, _0814ACFC cmp r5, r0 bne _0814ACAC ldr r1, _0814AD00 movs r0, 0xF ands r0, r7 lsls r0, 1 adds r0, r1 strh r6, [r0] ldr r0, _0814AD04 bl LoadSpritePalette lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _0814ACAC ldr r5, _0814AD08 movs r4, 0 _0814ACAC: movs r6, 0xF adds r0, r7, 0 ands r0, r6 lsls r0, 3 ldr r1, _0814AD0C adds r0, r1 bl LoadSpriteSheetDeferred lsls r0, r4, 1 adds r0, r4 lsls r0, 3 ldr r1, _0814AD10 adds r0, r1 movs r1, 0 movs r2, 0xA0 mov r3, r8 bl CreateSprite ldr r1, _0814ACF8 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0814AD2A ldrb r1, [r1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814AD14 adds r4, r0, r1 ldr r0, _0814ACFC cmp r5, r0 bne _0814AD18 ldrb r1, [r4, 0x5] adds r0, r6, 0 ands r0, r1 strb r0, [r4, 0x5] b _0814AD2A .align 2, 0 _0814ACF8: .4byte gUnknown_0203A3D2 _0814ACFC: .4byte 0x0000ffff _0814AD00: .4byte gUnknown_0203A360 _0814AD04: .4byte gUnknown_0842F248 _0814AD08: .4byte 0x0000fff1 _0814AD0C: .4byte gUnknown_0842F1C0 _0814AD10: .4byte gSpriteTemplate_842F298 _0814AD14: .4byte gSprites _0814AD18: adds r0, r5, 0 bl IndexOfSpritePaletteTag lsls r0, 4 ldrb r2, [r4, 0x5] adds r1, r6, 0 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x5] _0814AD2A: mov r0, r9 bl sub_814ADF4 ldr r0, _0814AD40 ldrb r0, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0814AD40: .4byte gUnknown_0203A3D2 thumb_func_end sub_814AC58 thumb_func_start sub_814AD44 sub_814AD44: @ 814AD44 push {r4,lr} ldr r4, _0814AD70 ldrb r0, [r4] cmp r0, 0x40 beq _0814AD68 ldr r0, _0814AD74 bl LoadTilesForSpriteSheet ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814AD78 adds r0, r1 bl DestroySpriteAndFreeResources movs r0, 0x40 strb r0, [r4] _0814AD68: pop {r4} pop {r0} bx r0 .align 2, 0 _0814AD70: .4byte gUnknown_0203A3D2 _0814AD74: .4byte gUnknown_0842F1C0 _0814AD78: .4byte gSprites thumb_func_end sub_814AD44 thumb_func_start sub_814AD7C sub_814AD7C: @ 814AD7C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r4, r1, 24 ldr r1, _0814ADC0 ldrb r0, [r1] cmp r0, 0x40 beq _0814ADB8 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814ADC4 adds r2, r0, r1 adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] adds r0, r2, 0 adds r0, 0x28 movs r1, 0 strb r1, [r0] adds r0, 0x1 strb r1, [r0] strh r5, [r2, 0x20] strh r4, [r2, 0x22] _0814ADB8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0814ADC0: .4byte gUnknown_0203A3D2 _0814ADC4: .4byte gSprites thumb_func_end sub_814AD7C thumb_func_start sub_814ADC8 sub_814ADC8: @ 814ADC8 push {lr} ldr r1, _0814ADEC ldrb r0, [r1] cmp r0, 0x40 beq _0814ADE8 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814ADF0 adds r0, r1 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _0814ADE8: pop {r0} bx r0 .align 2, 0 _0814ADEC: .4byte gUnknown_0203A3D2 _0814ADF0: .4byte gSprites thumb_func_end sub_814ADC8 thumb_func_start sub_814ADF4 sub_814ADF4: @ 814ADF4 push {lr} lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x12 bls _0814AE00 movs r2, 0 _0814AE00: ldr r1, _0814AE24 ldrb r0, [r1] cmp r0, 0x40 beq _0814AE1E adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814AE28 adds r0, r1 lsls r1, r2, 3 ldr r2, _0814AE2C adds r1, r2 bl SetSubspriteTables _0814AE1E: pop {r0} bx r0 .align 2, 0 _0814AE24: .4byte gUnknown_0203A3D2 _0814AE28: .4byte gSprites _0814AE2C: .4byte gUnknown_0842F6C0 thumb_func_end sub_814ADF4