summaryrefslogtreecommitdiff
path: root/asm/rom6.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/rom6.s')
-rw-r--r--asm/rom6.s129510
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