diff options
author | camthesaxman <cameronghall@cox.net> | 2016-10-02 15:41:16 -0500 |
---|---|---|
committer | YamaArashi <YamaArashi@users.noreply.github.com> | 2016-10-02 13:41:16 -0700 |
commit | 6ce4ed25d6565aa359d94442f47fa3c20f7bf356 (patch) | |
tree | 3680fa4c9c7f1193caadfaeb1e933fdcba97e69e /asm/rom6.s | |
parent | 179c2e5041b922fb5370e0188c90acf9f82bdf66 (diff) |
Decompile wall clock routines (#49)
Diffstat (limited to 'asm/rom6.s')
-rw-r--r-- | asm/rom6.s | 129510 |
1 files changed, 129510 insertions, 0 deletions
diff --git a/asm/rom6.s b/asm/rom6.s new file mode 100644 index 000000000..165c8b229 --- /dev/null +++ b/asm/rom6.s @@ -0,0 +1,129510 @@ + .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 sub_8109E50 + 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 sub_8109E50 + 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 |