summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--asm/rom5.s18156
-rw-r--r--asm/rom_807C828.s16904
-rw-r--r--asm/title_screen.s1270
-rw-r--r--ld_script.txt2
5 files changed, 18177 insertions, 18157 deletions
diff --git a/Makefile b/Makefile
index 3d04266bf..1315692e4 100644
--- a/Makefile
+++ b/Makefile
@@ -52,7 +52,7 @@ asm/tileset.o asm/rom_8065394.o asm/rom_803D1FC.o asm/calculate_base_damage.o \
asm/rom_813BA94.o asm/rom_81258BC.o asm/mystery_event_script.o \
asm/field_effect_helpers.o asm/contest_ai.o asm/berry.o asm/rom_80B5054.o \
asm/party_menu.o asm/rom_806D7F8.o asm/wild_encounter.o asm/rom_80859BC.o \
-asm/field_effect.o
+asm/field_effect.o asm/title_screen.o asm/rom_807C828.o
DATA_ASM_OBJS := data/data2.o data/graphics.o data/sound_data.o \
data/event_scripts.o data/battle_anim_scripts.o \
diff --git a/asm/rom5.s b/asm/rom5.s
index aa6f0f486..b921afba9 100644
--- a/asm/rom5.s
+++ b/asm/rom5.s
@@ -2045,18160 +2045,4 @@ _0807BDF8: .4byte gTasks
_0807BDFC: .4byte 0x02017810
thumb_func_end sub_807BDAC
- thumb_func_start item_menu_type_2
-item_menu_type_2: @ 807BE00
- push {r4,lr}
- adds r2, r0, 0
- movs r0, 0x30
- ldrsh r1, [r2, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _0807BE34
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0807BE38
- ldrb r1, [r2, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x1]
- movs r0, 0x42
- strh r0, [r2, 0x22]
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x47
- ands r0, r1
- strb r0, [r2]
- b _0807BE80
- .align 2, 0
-_0807BE34: .4byte gTasks
-_0807BE38:
- ldrh r1, [r4, 0x12]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _0807BE46
- subs r0, r1, 0x1
- strh r0, [r4, 0x12]
-_0807BE46:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0x3F
- bgt _0807BE80
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r3]
- ldrh r1, [r2, 0x22]
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- cmp r0, 0x42
- beq _0807BE6A
- adds r0, r1, 0x1
- strh r0, [r2, 0x22]
-_0807BE6A:
- ldr r3, _0807BE88
- ldr r2, _0807BE8C
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r3]
-_0807BE80:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BE88: .4byte REG_BLDALPHA
-_0807BE8C: .4byte gUnknown_08393E64
- thumb_func_end item_menu_type_2
-
- thumb_func_start sub_807BE90
-sub_807BE90: @ 807BE90
- push {lr}
- adds r2, r0, 0
- movs r0, 0x30
- ldrsh r1, [r2, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _0807BEC4
- adds r1, r0, r1
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0807BEC8
- ldrb r1, [r2, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x1]
- movs r0, 0x42
- strh r0, [r2, 0x22]
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x47
- ands r0, r1
- strb r0, [r2]
- b _0807BEEC
- .align 2, 0
-_0807BEC4: .4byte gTasks
-_0807BEC8:
- movs r3, 0x12
- ldrsh r0, [r1, r3]
- cmp r0, 0x3F
- bgt _0807BEEC
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r3]
- ldrh r1, [r2, 0x22]
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- cmp r0, 0x42
- beq _0807BEEC
- adds r0, r1, 0x1
- strh r0, [r2, 0x22]
-_0807BEEC:
- pop {r0}
- bx r0
- thumb_func_end sub_807BE90
-
- thumb_func_start sub_807BEF0
-sub_807BEF0: @ 807BEF0
- push {lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _0807BF18
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0807BF18
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0807BF24
-_0807BF18:
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0807BF24:
- pop {r0}
- bx r0
- thumb_func_end sub_807BEF0
-
- thumb_func_start sub_807BF28
-sub_807BF28: @ 807BF28
- push {r4-r7,lr}
- lsls r0, 16
- ldr r2, _0807BF78
- adds r0, r2
- lsrs r0, 16
- movs r6, 0
- lsls r7, r1, 16
-_0807BF36:
- lsls r5, r0, 16
- asrs r5, 16
- ldr r0, _0807BF7C
- adds r1, r5, 0
- asrs r2, r7, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0807BF80
- adds r4, r0
- adds r0, r4, 0
- adds r1, r6, 0
- bl StartSpriteAnim
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r5, 0x20
- lsls r5, 16
- lsrs r0, r5, 16
- cmp r6, 0x2
- bls _0807BF36
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BF78: .4byte 0xffe00000
-_0807BF7C: .4byte gSpriteTemplate_8393F74
-_0807BF80: .4byte gSprites
- thumb_func_end sub_807BF28
-
- thumb_func_start sub_807BF84
-sub_807BF84: @ 807BF84
- push {r4-r6,lr}
- lsls r0, 16
- ldr r2, _0807BFD4
- adds r0, r2
- lsrs r0, 16
- movs r5, 0
- lsls r6, r1, 16
-_0807BF92:
- lsls r4, r0, 16
- asrs r4, 16
- ldr r0, _0807BFD8
- adds r1, r4, 0
- asrs r2, r6, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _0807BFDC
- adds r2, r0
- adds r1, r5, 0x3
- lsls r1, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl StartSpriteAnim
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x20
- lsls r4, 16
- lsrs r0, r4, 16
- cmp r5, 0x4
- bls _0807BF92
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BFD4: .4byte 0xffc00000
-_0807BFD8: .4byte gSpriteTemplate_8393F74
-_0807BFDC: .4byte gSprites
- thumb_func_end sub_807BF84
-
- thumb_func_start sub_807BFE0
-sub_807BFE0: @ 807BFE0
- push {r4,lr}
- adds r3, r0, 0
- ldr r2, _0807C02C
- ldr r0, _0807C030
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0xA
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0807C070
- movs r2, 0x20
- ldrsh r1, [r3, r2]
- ldr r0, _0807C034
- ldrh r4, [r3, 0x20]
- cmp r1, r0
- bgt _0807C070
- movs r2, 0x2E
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _0807C064
- cmp r1, 0x77
- bgt _0807C038
- ldrh r1, [r3, 0x30]
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r0, 0x1E
- bgt _0807C050
- adds r1, 0x1
- strh r1, [r3, 0x30]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x1E
- bgt _0807C050
- adds r0, r1, 0x1
- b _0807C04E
- .align 2, 0
-_0807C02C: .4byte gTasks
-_0807C030: .4byte gUnknown_0202F7E4
-_0807C034: .4byte 0x0000010f
-_0807C038:
- ldrh r1, [r3, 0x30]
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _0807C050
- subs r0, r1, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- cmp r0, 0
- beq _0807C050
- subs r0, r1, 0x2
-_0807C04E:
- strh r0, [r3, 0x30]
-_0807C050:
- ldrh r1, [r3, 0x30]
- movs r0, 0x1F
- ands r0, r1
- lsls r1, r0, 10
- lsls r2, r0, 5
- adds r1, r2
- orrs r1, r0
- ldr r0, _0807C06C
- strh r1, [r0]
- .ifdef SAPPHIRE
- strh r1, [r0, 0x34]
- .else
- strh r1, [r0, 0x2A]
- .endif
-_0807C064:
- adds r0, r4, 0x4
- strh r0, [r3, 0x20]
- b _0807C07E
- .align 2, 0
-_0807C06C: .4byte gPlttBufferFaded
-_0807C070:
- ldr r1, _0807C084
- movs r0, 0
- strh r0, [r1]
- .ifdef SAPPHIRE
- strh r0, [r1, 0x34]
- .else
- strh r0, [r1, 0x2A]
- .endif
- adds r0, r3, 0
- bl DestroySprite
-_0807C07E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C084: .4byte gPlttBufferFaded
- thumb_func_end sub_807BFE0
-
- thumb_func_start sub_807C088
-sub_807C088: @ 807C088
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0807C0C0
- movs r1, 0
- movs r2, 0x44
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807C0C4
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x8
- orrs r0, r2
- strb r0, [r1, 0x1]
- strh r4, [r1, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C0C0: .4byte gSpriteTemplate_8393FC0
-_0807C0C4: .4byte gSprites
- thumb_func_end sub_807C088
-
- thumb_func_start sub_807C0C8
-sub_807C0C8: @ 807C0C8
- push {lr}
- bl sub_8089668
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r0, _0807C0E8
- ldr r1, _0807C0EC
- ldrh r1, [r1]
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0807C0E8: .4byte REG_BG1VOFS
-_0807C0EC: .4byte gUnknown_030041B4
- thumb_func_end sub_807C0C8
-
- thumb_func_start CB2_InitTitleScreen
-CB2_InitTitleScreen: @ 807C0F0
- push {r4,r5,lr}
- sub sp, 0x14
- ldr r0, _0807C10C
- ldr r1, _0807C110
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x5
- bhi _0807C130
- lsls r0, 2
- ldr r1, _0807C114
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807C10C: .4byte gMain
-_0807C110: .4byte 0x0000043c
-_0807C114: .4byte _0807C118
- .align 2, 0
-_0807C118:
- .4byte _0807C130
- .4byte _0807C1E4
- .4byte _0807C2B8
- .4byte _0807C308
- .4byte _0807C33C
- .4byte _0807C418
-_0807C130:
- movs r0, 0
- bl SetVBlankCallback
- ldr r0, _0807C1C0
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- movs r2, 0xA0
- lsls r2, 19
- ldr r3, _0807C1C4
- adds r0, r3, 0
- strh r0, [r2]
- movs r0, 0x80
- lsls r0, 19
- 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]
- add r0, sp, 0xC
- strh r1, [r0]
- ldr r1, _0807C1C8
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _0807C1CC
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r2, 0
- str r2, [sp, 0x10]
- add r0, sp, 0x10
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _0807C1D0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0xC
- strh r2, [r0]
- str r0, [r1]
- ldr r0, _0807C1D4
- str r0, [r1, 0x4]
- ldr r0, _0807C1D8
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- ldr r0, _0807C1DC
- ldr r1, _0807C1E0
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- b _0807C446
- .align 2, 0
-_0807C1C0: .4byte REG_BLDCNT
-_0807C1C4: .4byte 0x00007fff
-_0807C1C8: .4byte 0x040000d4
-_0807C1CC: .4byte 0x8100c000
-_0807C1D0: .4byte 0x85000100
-_0807C1D4: .4byte 0x05000002
-_0807C1D8: .4byte 0x810001ff
-_0807C1DC: .4byte gMain
-_0807C1E0: .4byte 0x0000043c
-_0807C1E4:
- ldr r0, _0807C270
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _0807C274
- ldr r1, _0807C278
- bl LZ77UnCompVram
- ldr r4, _0807C27C
- movs r5, 0xE0
- lsls r5, 1
- adds r0, r4, 0
- movs r1, 0
- adds r2, r5, 0
- bl LoadPalette
- ldr r0, _0807C280
- ldr r1, _0807C284
- bl LZ77UnCompVram
- ldr r0, _0807C288
- ldr r1, _0807C28C
- bl LZ77UnCompVram
- ldr r0, _0807C290
- ldr r1, _0807C294
- bl LZ77UnCompVram
- ldr r0, _0807C298
- movs r1, 0xE0
- movs r2, 0x40
- bl LoadPalette
- bl remove_some_task
- bl ResetTasks
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _0807C29C
- movs r0, 0xE
- strb r0, [r1]
- ldr r0, _0807C2A0
- bl LoadCompressedObjectPic
- ldr r0, _0807C2A4
- bl LoadCompressedObjectPic
- ldr r0, _0807C2A8
- bl LoadCompressedObjectPic
- movs r1, 0x80
- lsls r1, 1
- adds r0, r4, 0
- adds r2, r5, 0
- bl LoadPalette
- ldr r0, _0807C2AC
- bl LoadSpritePalette
- ldr r0, _0807C2B0
- ldr r2, _0807C2B4
- adds r0, r2
- movs r1, 0x2
- strb r1, [r0]
- b _0807C446
- .align 2, 0
-_0807C270: .4byte gUnknown_08E9D8CC
-_0807C274: .4byte gUnknown_08E9F7E4
-_0807C278: .4byte 0x06004800
-_0807C27C: .4byte gUnknown_08E9F624
-_0807C280: .4byte gUnknown_08393250
-_0807C284: .4byte 0x06008000
-_0807C288: .4byte gUnknown_083939EC
-_0807C28C: .4byte 0x0600c000
-_0807C290: .4byte gUnknown_08393BF8
-_0807C294: .4byte 0x0600c800
-_0807C298: .4byte gUnknown_08393210
-_0807C29C: .4byte gReservedSpritePaletteCount
-_0807C2A0: .4byte gUnknown_08393EFC
-_0807C2A4: .4byte gUnknown_08393F8C
-_0807C2A8: .4byte gUnknown_08393FD8
-_0807C2AC: .4byte gUnknown_08393F9C
-_0807C2B0: .4byte gMain
-_0807C2B4: .4byte 0x0000043c
-_0807C2B8:
- ldr r0, _0807C2F0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807C2F4
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r3, 0
- movs r2, 0x80
- lsls r2, 1
- strh r2, [r1, 0x8]
- strh r3, [r1, 0xA]
- ldr r2, _0807C2F8
- strh r2, [r1, 0xC]
- subs r2, 0x10
- strh r2, [r1, 0xE]
- ldr r1, _0807C2FC
- strb r0, [r1]
- ldr r0, _0807C300
- ldr r3, _0807C304
- adds r0, r3
- movs r1, 0x3
- strb r1, [r0]
- b _0807C446
- .align 2, 0
-_0807C2F0: .4byte sub_807C46C
-_0807C2F4: .4byte gTasks
-_0807C2F8: .4byte 0x0000fff0
-_0807C2FC: .4byte gUnknown_0202F7E4
-_0807C300: .4byte gMain
-_0807C304: .4byte 0x0000043c
-_0807C308:
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0807C32C
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _0807C330
- bl SetVBlankCallback
- ldr r0, _0807C334
- ldr r1, _0807C338
- adds r0, r1
- movs r1, 0x4
- strb r1, [r0]
- b _0807C446
- .align 2, 0
-_0807C32C: .4byte 0x0000ffff
-_0807C330: .4byte sub_807C0C8
-_0807C334: .4byte gMain
-_0807C338: .4byte 0x0000043c
-_0807C33C:
- movs r2, 0x80
- lsls r2, 1
- movs r0, 0x78
- movs r1, 0x50
- movs r3, 0
- bl sub_813CE30
- ldr r1, _0807C3D4
- ldr r0, _0807C3D8
- str r0, [r1]
- adds r1, 0x4
- ldr r0, _0807C3DC
- str r0, [r1]
- ldr r0, _0807C3E0
- movs r4, 0
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- subs r0, 0x2
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- adds r1, 0x1C
- ldr r2, _0807C3E4
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _0807C3E8
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x6
- movs r0, 0x84
- strh r0, [r1]
- ldr r0, _0807C3EC
- strh r4, [r0]
- adds r0, 0x2
- movs r5, 0x8
- strh r5, [r0]
- subs r1, 0x48
- ldr r2, _0807C3F0
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _0807C3F4
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0807C3F8
- adds r0, r2, 0
- strh r0, [r1]
- ldr r3, _0807C3FC
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _0807C400
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r1, _0807C404
- ldrh r0, [r1]
- orrs r0, r5
- strh r0, [r1]
- subs r1, 0x4
- ldr r3, _0807C408
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _0807C40C
- bl m4aSongNumStart
- ldr r0, _0807C410
- ldr r1, _0807C414
- adds r0, r1
- movs r1, 0x5
- strb r1, [r0]
- b _0807C446
- .align 2, 0
-_0807C3D4: .4byte REG_BG2X_L
-_0807C3D8: .4byte 0xffffe300
-_0807C3DC: .4byte 0xffffdf00
-_0807C3E0: .4byte REG_WIN0H
-_0807C3E4: .4byte 0x00001f1f
-_0807C3E8: .4byte 0x00003f1f
-_0807C3EC: .4byte REG_BLDALPHA
-_0807C3F0: .4byte 0x0000180b
-_0807C3F4: .4byte 0x0000190a
-_0807C3F8: .4byte 0x00004981
-_0807C3FC: .4byte 0x04000208
-_0807C400: .4byte 0x04000200
-_0807C404: .4byte REG_DISPSTAT
-_0807C408: .4byte 0x0000b441
-_0807C40C: .4byte 0x0000019d
-_0807C410: .4byte gMain
-_0807C414: .4byte 0x0000043c
-_0807C418:
- bl UpdatePaletteFade
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0807C446
- movs r0, 0
- bl sub_807C088
- str r4, [sp]
- movs r0, 0x4
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0xA0
- movs r2, 0x4
- movs r3, 0x4
- bl sub_8089944
- ldr r0, _0807C450
- bl SetMainCallback2
-_0807C446:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C450: .4byte sub_807C454
- thumb_func_end CB2_InitTitleScreen
-
- thumb_func_start sub_807C454
-sub_807C454: @ 807C454
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_807C454
-
- thumb_func_start sub_807C46C
-sub_807C46C: @ 807C46C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0807C4D4
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF
- ands r0, r1
- ldr r5, _0807C4D8
- cmp r0, 0
- bne _0807C492
- lsls r0, r6, 2
- adds r1, r0, r6
- lsls r1, 3
- adds r1, r5
- movs r2, 0xA
- ldrsh r1, [r1, r2]
- adds r4, r0, 0
- cmp r1, 0
- beq _0807C4A4
-_0807C492:
- lsls r3, r6, 2
- adds r0, r3, r6
- lsls r0, 3
- adds r0, r5
- movs r2, 0
- movs r1, 0x1
- strh r1, [r0, 0xA]
- strh r2, [r0, 0x8]
- adds r4, r3, 0
-_0807C4A4:
- adds r0, r4, r6
- lsls r0, 3
- adds r7, r0, r5
- movs r3, 0x8
- ldrsh r2, [r7, r3]
- cmp r2, 0
- beq _0807C4DC
- ldrh r0, [r7, 0x8]
- cmp r0, 0xA0
- beq _0807C4BC
- cmp r0, 0x40
- bne _0807C4C2
-_0807C4BC:
- movs r0, 0x1
- bl sub_807C088
-_0807C4C2:
- ldr r0, _0807C4D8
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- subs r0, 0x1
- strh r0, [r1, 0x8]
- b _0807C558
- .align 2, 0
-_0807C4D4: .4byte gMain
-_0807C4D8: .4byte gTasks
-_0807C4DC:
- movs r1, 0x80
- lsls r1, 19
- ldr r3, _0807C560
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _0807C564
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r1, 0x50
- ldr r3, _0807C568
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1F
- strh r0, [r1]
- ldr r0, _0807C56C
- strh r2, [r0]
- ldr r0, _0807C570
- movs r1, 0x62
- movs r2, 0x1A
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0807C574
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r2, r1, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r4, 0x4
- orrs r0, r4
- strb r0, [r2]
- strh r6, [r1, 0x30]
- ldr r0, _0807C578
- movs r1, 0xA2
- movs r2, 0x1A
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r2, r1, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- orrs r0, r4
- strb r0, [r2]
- strh r6, [r1, 0x30]
- movs r0, 0x58
- strh r0, [r7, 0x12]
- movs r0, 0x90
- strh r0, [r7, 0x8]
- ldr r0, _0807C57C
- str r0, [r7]
-_0807C558:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C560: .4byte 0x00001441
-_0807C564: .4byte REG_WININ
-_0807C568: .4byte 0x00003f50
-_0807C56C: .4byte REG_BLDY
-_0807C570: .4byte gSpriteTemplate_8393ECC
-_0807C574: .4byte gSprites
-_0807C578: .4byte gSpriteTemplate_8393EE4
-_0807C57C: .4byte sub_807C580
- thumb_func_end sub_807C46C
-
- thumb_func_start sub_807C580
-sub_807C580: @ 807C580
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0807C5D0
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF
- ands r0, r1
- ldr r2, _0807C5D4
- cmp r0, 0
- bne _0807C5A6
- lsls r0, r5, 2
- adds r1, r0, r5
- lsls r1, 3
- adds r1, r2
- movs r3, 0xA
- ldrsh r1, [r1, r3]
- adds r7, r0, 0
- cmp r1, 0
- beq _0807C5B8
-_0807C5A6:
- lsls r3, r5, 2
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r2
- movs r2, 0
- movs r1, 0x1
- strh r1, [r0, 0xA]
- strh r2, [r0, 0x8]
- adds r7, r3, 0
-_0807C5B8:
- ldr r1, _0807C5D4
- adds r0, r7, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x8]
- movs r1, 0x8
- ldrsh r6, [r4, r1]
- cmp r6, 0
- beq _0807C5D8
- subs r0, 0x1
- strh r0, [r4, 0x8]
- b _0807C5FC
- .align 2, 0
-_0807C5D0: .4byte gMain
-_0807C5D4: .4byte gTasks
-_0807C5D8:
- movs r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _0807C634
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0x78
- movs r1, 0x6C
- bl sub_807BF28
- movs r0, 0x78
- movs r1, 0x94
- bl sub_807BF84
- strh r6, [r4, 0x10]
- ldr r0, _0807C638
- str r0, [r4]
-_0807C5FC:
- ldr r2, _0807C63C
- adds r0, r7, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r1, [r3, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0807C61C
- ldrh r1, [r3, 0xE]
- movs r4, 0xE
- ldrsh r0, [r3, r4]
- cmp r0, 0
- beq _0807C61C
- adds r0, r1, 0x1
- strh r0, [r3, 0xE]
-_0807C61C:
- ldr r0, _0807C640
- adds r1, r7, r5
- lsls r1, 3
- adds r1, r2
- movs r2, 0xE
- ldrsh r1, [r1, r2]
- lsls r1, 8
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C634: .4byte 0x00001741
-_0807C638: .4byte sub_807C644
-_0807C63C: .4byte gTasks
-_0807C640: .4byte REG_BG2Y_L
- thumb_func_end sub_807C580
-
- thumb_func_start sub_807C644
-sub_807C644: @ 807C644
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0807C69C
- ldr r2, _0807C6A0
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0807C6A4
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0
- strh r0, [r1]
- ldr r4, _0807C6A8
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0807C67A
- movs r0, 0x8
- ands r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _0807C6B4
-_0807C67A:
- movs r0, 0x4
- bl FadeOutBGM
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0807C6AC
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0807C6B0
- bl SetMainCallback2
- b _0807C74E
- .align 2, 0
-_0807C69C: .4byte REG_BLDCNT
-_0807C6A0: .4byte 0x00002142
-_0807C6A4: .4byte 0x00001f0f
-_0807C6A8: .4byte gMain
-_0807C6AC: .4byte 0x0000ffff
-_0807C6B0: .4byte sub_807C774
-_0807C6B4:
- ldrh r1, [r4, 0x2C]
- movs r0, 0x46
- ands r0, r1
- cmp r0, 0x46
- bne _0807C6C4
- ldr r0, _0807C6F4
- bl SetMainCallback2
-_0807C6C4:
- ldrh r1, [r4, 0x2C]
- movs r0, 0x26
- ands r0, r1
- cmp r0, 0x26
- bne _0807C6FC
- bl sub_80691DC
- cmp r0, 0x1
- bne _0807C6FC
- movs r0, 0x4
- bl FadeOutBGM
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0807C6F8
- bl SetMainCallback2
- b _0807C74E
- .align 2, 0
-_0807C6F4: .4byte sub_807C7AC
-_0807C6F8: .4byte sub_807C7C8
-_0807C6FC:
- ldr r0, _0807C758
- movs r3, 0
- str r3, [r0]
- ldr r1, _0807C75C
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0807C728
- ldrh r0, [r2, 0x10]
- adds r0, 0x1
- strh r0, [r2, 0x10]
- ldr r1, _0807C760
- strh r0, [r1]
- ldr r0, _0807C764
- strh r3, [r0]
-_0807C728:
- ldrb r0, [r2, 0x8]
- bl sub_807C7E4
- ldr r0, _0807C768
- ldr r1, _0807C76C
- ldrh r0, [r0, 0x4]
- cmp r0, 0
- bne _0807C74E
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0807C770
- bl SetMainCallback2
-_0807C74E:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C758: .4byte REG_BG2Y_L
-_0807C75C: .4byte gTasks
-_0807C760: .4byte gUnknown_030041B4
-_0807C764: .4byte gUnknown_030042C0
-_0807C768: .4byte gMPlay_BGM
-_0807C76C: .4byte 0x0000ffff
-_0807C770: .4byte sub_807C790
- thumb_func_end sub_807C644
-
- thumb_func_start sub_807C774
-sub_807C774: @ 807C774
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _0807C786
- ldr r0, _0807C78C
- bl SetMainCallback2
-_0807C786:
- pop {r0}
- bx r0
- .align 2, 0
-_0807C78C: .4byte CB2_InitMainMenu
- thumb_func_end sub_807C774
-
- thumb_func_start sub_807C790
-sub_807C790: @ 807C790
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _0807C7A2
- ldr r0, _0807C7A8
- bl SetMainCallback2
-_0807C7A2:
- pop {r0}
- bx r0
- .align 2, 0
-_0807C7A8: .4byte sub_813BA88
- thumb_func_end sub_807C790
-
- thumb_func_start sub_807C7AC
-sub_807C7AC: @ 807C7AC
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _0807C7BE
- ldr r0, _0807C7C4
- bl SetMainCallback2
-_0807C7BE:
- pop {r0}
- bx r0
- .align 2, 0
-_0807C7C4: .4byte c2_clear_save_data_screen_2
- thumb_func_end sub_807C7AC
-
- thumb_func_start sub_807C7C8
-sub_807C7C8: @ 807C7C8
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _0807C7DA
- ldr r0, _0807C7E0
- bl SetMainCallback2
-_0807C7DA:
- pop {r0}
- bx r0
- .align 2, 0
-_0807C7E0: .4byte sub_806AAD8
- thumb_func_end sub_807C7C8
-
- thumb_func_start sub_807C7E4
-sub_807C7E4: @ 807C7E4
- push {lr}
- sub sp, 0x4
- lsls r1, r0, 24
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r1
- cmp r0, 0
- bne _0807C820
- lsrs r0, r1, 26
- movs r1, 0x1F
- adds r2, r0, 0
- ands r2, r1
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0807C80C
- .ifdef SAPPHIRE
- mov r0, sp
- strh r2, [r0]
- .else
- lsls r1, r2, 10
- mov r0, sp
- strh r1, [r0]
- .endif
- b _0807C816
-_0807C80C:
- movs r0, 0x1F
- subs r0, r2
- .ifndef SAPPHIRE
- lsls r0, 10
- .endif
- mov r1, sp
- strh r0, [r1]
-_0807C816:
- mov r0, sp
- movs r1, 0xEF
- movs r2, 0x2
- bl LoadPalette
-_0807C820:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_807C7E4
-
- thumb_func_start sub_807C828
-sub_807C828: @ 807C828
- push {r4-r6,lr}
- ldr r0, _0807C8EC
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _0807C8E4
- movs r0, 0x90
- lsls r0, 5
- bl AllocSpritePalette
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0807C8F0
- lsls r1, r5, 5
- ldr r2, _0807C8F4
- adds r1, r2
- ldr r2, _0807C8F8
- bl CpuSet
- bl sub_807CB10
- ldr r4, _0807C8FC
- ldr r1, _0807C900
- adds r0, r4, r1
- strb r5, [r0]
- ldr r0, _0807C904
- bl AllocSpritePalette
- ldr r2, _0807C908
- adds r1, r4, r2
- strb r0, [r1]
- ldr r1, _0807C90C
- adds r0, r4, r1
- strb r6, [r0]
- adds r2, 0x4
- adds r0, r4, r2
- strb r6, [r0]
- adds r1, 0x4
- adds r0, r4, r1
- strb r6, [r0]
- adds r2, 0xC
- adds r0, r4, r2
- strb r6, [r0]
- adds r1, 0x22
- adds r0, r4, r1
- strb r6, [r0]
- adds r2, 0x17
- adds r0, r4, r2
- strb r6, [r0]
- adds r1, 0x24
- adds r0, r4, r1
- strb r6, [r0]
- adds r2, 0x1B
- adds r0, r4, r2
- strb r6, [r0]
- subs r1, 0xD
- adds r0, r4, r1
- strb r6, [r0]
- adds r2, 0x18
- adds r0, r4, r2
- strb r6, [r0]
- subs r1, 0x1D
- adds r0, r4, r1
- strb r6, [r0]
- movs r0, 0x10
- movs r1, 0
- bl sub_807DB64
- movs r2, 0xDA
- lsls r2, 3
- adds r0, r4, r2
- strb r6, [r0]
- ldr r0, _0807C910
- adds r1, r4, r0
- movs r0, 0x3
- strb r0, [r1]
- movs r1, 0xD9
- lsls r1, 3
- adds r0, r4, r1
- strb r6, [r0]
- adds r2, 0x3
- adds r1, r4, r2
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _0807C914
- movs r1, 0x50
- bl CreateTask
- ldr r1, _0807C918
- adds r4, r1
- strb r0, [r4]
-_0807C8E4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C8EC: .4byte sub_807CA34
-_0807C8F0: .4byte gUnknown_083970E8
-_0807C8F4: .4byte gPlttBufferUnfaded + 0x200
-_0807C8F8: .4byte REG_BG0CNT
-_0807C8FC: .4byte gUnknown_0202F7E8
-_0807C900: .4byte 0x000006d5
-_0807C904: .4byte 0x00001201
-_0807C908: .4byte 0x000006d4
-_0807C90C: .4byte 0x000006da
-_0807C910: .4byte 0x000006c6
-_0807C914: .4byte sub_807C9E4
-_0807C918: .4byte 0x000006c9
- thumb_func_end sub_807C828
-
- thumb_func_start sub_807C91C
-sub_807C91C: @ 807C91C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- beq _0807C932
- cmp r4, 0x5
- beq _0807C932
- cmp r4, 0xD
- beq _0807C932
- bl play_some_sound
-_0807C932:
- ldr r1, _0807C974
- ldr r2, _0807C978
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, r4
- beq _0807C956
- movs r3, 0xDA
- lsls r3, 3
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r4
- bne _0807C956
- ldr r0, _0807C97C
- lsls r1, r4, 4
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
-_0807C956:
- ldr r1, _0807C974
- ldr r2, _0807C980
- adds r0, r1, r2
- movs r2, 0
- strb r2, [r0]
- ldr r3, _0807C978
- adds r0, r1, r3
- strb r4, [r0]
- ldr r0, _0807C984
- adds r1, r0
- strh r2, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C974: .4byte gUnknown_0202F7E8
-_0807C978: .4byte 0x000006d1
-_0807C97C: .4byte gUnknown_08396FC8
-_0807C980: .4byte 0x000006d3
-_0807C984: .4byte 0x000006ce
- thumb_func_end sub_807C91C
-
- thumb_func_start sub_807C988
-sub_807C988: @ 807C988
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl play_some_sound
- ldr r0, _0807C9AC
- movs r2, 0xDA
- lsls r2, 3
- adds r1, r0, r2
- strb r4, [r1]
- ldr r1, _0807C9B0
- adds r0, r1
- strb r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C9AC: .4byte gUnknown_0202F7E8
-_0807C9B0: .4byte 0x000006d1
- thumb_func_end sub_807C988
-
- thumb_func_start sub_807C9B4
-sub_807C9B4: @ 807C9B4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl play_some_sound
- ldr r1, _0807C9E0
- movs r2, 0xDA
- lsls r2, 3
- adds r0, r1, r2
- strb r4, [r0]
- adds r2, 0x1
- adds r0, r1, r2
- strb r4, [r0]
- movs r0, 0xD9
- lsls r0, 3
- adds r1, r0
- movs r0, 0x1
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C9E0: .4byte gUnknown_0202F7E8
- thumb_func_end sub_807C9B4
-
- thumb_func_start sub_807C9E4
-sub_807C9E4: @ 807C9E4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _0807CA24
- movs r1, 0xD9
- lsls r1, 3
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807CA1C
- ldr r1, _0807CA28
- movs r3, 0xDA
- lsls r3, 3
- adds r0, r2, r3
- ldrb r0, [r0]
- lsls r0, 4
- adds r1, 0x8
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- ldr r1, _0807CA2C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0807CA30
- str r1, [r0]
-_0807CA1C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807CA24: .4byte gUnknown_0202F7E8
-_0807CA28: .4byte gUnknown_08396FC8
-_0807CA2C: .4byte gTasks
-_0807CA30: .4byte sub_807CA34
- thumb_func_end sub_807C9E4
-
- thumb_func_start sub_807CA34
-sub_807CA34: @ 807CA34
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r5, _0807CA90
- movs r0, 0xDA
- lsls r0, 3
- adds r6, r5, r0
- ldr r1, _0807CA94
- adds r7, r5, r1
- ldrb r0, [r6]
- ldrb r2, [r7]
- cmp r0, r2
- beq _0807CAA8
- ldr r0, _0807CA98
- mov r8, r0
- ldrb r0, [r6]
- lsls r0, 4
- mov r1, r8
- adds r1, 0xC
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0807CAB8
- ldrb r0, [r7]
- lsls r0, 4
- add r0, r8
- ldr r0, [r0]
- bl _call_via_r0
- ldr r1, _0807CA9C
- adds r0, r5, r1
- strb r4, [r0]
- ldr r2, _0807CAA0
- adds r0, r5, r2
- strb r4, [r0]
- ldrb r0, [r7]
- strb r0, [r6]
- ldr r0, _0807CAA4
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
- b _0807CAB8
- .align 2, 0
-_0807CA90: .4byte gUnknown_0202F7E8
-_0807CA94: .4byte 0x000006d1
-_0807CA98: .4byte gUnknown_08396FC8
-_0807CA9C: .4byte 0x000006c3
-_0807CAA0: .4byte 0x000006c6
-_0807CAA4: .4byte 0x000006d3
-_0807CAA8:
- ldr r0, _0807CAD8
- ldrb r1, [r6]
- lsls r1, 4
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
-_0807CAB8:
- ldr r1, _0807CADC
- ldr r0, _0807CAE0
- ldr r2, _0807CAE4
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807CAD8: .4byte gUnknown_08396FC8
-_0807CADC: .4byte gUnknown_083970B8
-_0807CAE0: .4byte gUnknown_0202F7E8
-_0807CAE4: .4byte 0x000006c6
- thumb_func_end sub_807CA34
-
- thumb_func_start sub_807CAE8
-sub_807CAE8: @ 807CAE8
- ldr r0, _0807CAFC
- ldr r2, _0807CB00
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r1, _0807CB04
- adds r0, r1
- strb r2, [r0]
- bx lr
- .align 2, 0
-_0807CAFC: .4byte gUnknown_0202F7E8
-_0807CB00: .4byte 0x000006c1
-_0807CB04: .4byte 0x000006c2
- thumb_func_end sub_807CAE8
-
- thumb_func_start nullsub_38
-nullsub_38: @ 807CB08
- bx lr
- thumb_func_end nullsub_38
-
- thumb_func_start sub_807CB0C
-sub_807CB0C: @ 807CB0C
- movs r0, 0
- bx lr
- thumb_func_end sub_807CB0C
-
- thumb_func_start sub_807CB10
-sub_807CB10: @ 807CB10
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r1, _0807CB50
- ldr r0, _0807CB54
- str r0, [r1]
- movs r0, 0
- mov r12, r0
- ldr r1, _0807CB58
- mov r10, r1
-_0807CB28:
- mov r7, r10
- mov r0, r12
- cmp r0, 0
- bne _0807CB34
- ldr r1, _0807CB5C
- adds r7, r1
-_0807CB34:
- movs r5, 0
- movs r0, 0x1
- add r0, r12
- mov r9, r0
-_0807CB3C:
- lsls r1, r5, 8
- lsls r0, r5, 24
- lsrs r2, r0, 16
- mov r0, r12
- cmp r0, 0
- bne _0807CB60
- adds r0, r1, 0
- lsls r0, 12
- lsrs r4, r0, 16
- b _0807CB62
- .align 2, 0
-_0807CB50: .4byte gUnknown_030006DC
-_0807CB54: .4byte gUnknown_083970C8
-_0807CB58: .4byte gUnknown_0202FC48
-_0807CB5C: .4byte 0xfffffda0
-_0807CB60:
- movs r4, 0
-_0807CB62:
- movs r3, 0
- adds r1, r5, 0x1
- mov r8, r1
-_0807CB68:
- subs r1, r2, r4
- lsls r1, 16
- lsrs r2, r1, 16
- lsls r0, r3, 5
- adds r0, r7
- adds r0, r5
- lsrs r1, 24
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x2
- bls _0807CB68
- adds r6, r2, 0
- movs r0, 0xF8
- lsls r0, 5
- subs r0, r2
- cmp r0, 0
- bge _0807CB90
- adds r0, 0xF
-_0807CB90:
- lsls r0, 12
- lsrs r4, r0, 16
- cmp r5, 0xB
- bhi _0807CBDA
- cmp r3, 0x12
- bhi _0807CC00
-_0807CB9C:
- adds r0, r2, r4
- lsls r0, 16
- lsrs r2, r0, 16
- subs r0, r2, r6
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- ble _0807CBB8
- lsrs r0, 31
- adds r0, r1, r0
- asrs r0, 1
- subs r0, r2, r0
- lsls r0, 16
- lsrs r2, r0, 16
-_0807CBB8:
- lsls r0, r3, 5
- adds r0, r7
- adds r1, r0, r5
- lsrs r0, r2, 8
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1F
- bls _0807CBCE
- movs r0, 0x1F
- strb r0, [r1]
-_0807CBCE:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x12
- bls _0807CB9C
- b _0807CC00
-_0807CBDA:
- cmp r3, 0x12
- bhi _0807CC00
- movs r6, 0x1F
-_0807CBE0:
- adds r1, r2, r4
- lsls r1, 16
- lsrs r2, r1, 16
- lsls r0, r3, 5
- adds r0, r7
- adds r0, r5
- lsrs r1, 24
- strb r1, [r0]
- cmp r1, 0x1F
- bls _0807CBF6
- strb r6, [r0]
-_0807CBF6:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x12
- bls _0807CBE0
-_0807CC00:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r5, r0, 16
- cmp r5, 0x1F
- bls _0807CB3C
- mov r1, r9
- lsls r0, r1, 16
- lsrs r0, 16
- mov r12, r0
- cmp r0, 0x1
- bls _0807CB28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_807CB10
-
- thumb_func_start sub_807CC24
-sub_807CC24: @ 807CC24
- push {r4-r7,lr}
- ldr r0, _0807CC50
- movs r1, 0xD8
- lsls r1, 3
- adds r4, r0, r1
- ldr r2, _0807CC54
- adds r1, r0, r2
- ldrb r7, [r4]
- mov r12, r7
- movs r6, 0
- ldrsb r6, [r4, r6]
- movs r5, 0
- ldrsb r5, [r1, r5]
- adds r3, r0, 0
- cmp r6, r5
- bne _0807CC5C
- ldr r0, _0807CC58
- adds r1, r3, r0
- movs r0, 0x3
- strb r0, [r1]
- b _0807CCA4
- .align 2, 0
-_0807CC50: .4byte gUnknown_0202F7E8
-_0807CC54: .4byte 0x000006c1
-_0807CC58: .4byte 0x000006c6
-_0807CC5C:
- ldr r1, _0807CC84
- adds r2, r3, r1
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- ldr r7, _0807CC88
- adds r1, r3, r7
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0807CCA4
- movs r0, 0
- strb r0, [r2]
- mov r0, r12
- cmp r6, r5
- bge _0807CC8C
- adds r0, 0x1
- b _0807CC90
- .align 2, 0
-_0807CC84: .4byte 0x000006c3
-_0807CC88: .4byte 0x000006c2
-_0807CC8C:
- mov r0, r12
- subs r0, 0x1
-_0807CC90:
- strb r0, [r4]
- movs r1, 0xD8
- lsls r1, 3
- adds r0, r3, r1
- movs r2, 0
- ldrsb r2, [r0, r2]
- movs r0, 0
- movs r1, 0x20
- bl sub_807CEBC
-_0807CCA4:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_807CC24
-
- thumb_func_start sub_807CCAC
-sub_807CCAC: @ 807CCAC
- push {lr}
- ldr r2, _0807CCE4
- ldr r0, _0807CCE8
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0807CCCA
- ldr r3, _0807CCEC
- adds r1, r2, r3
- movs r0, 0
- strb r0, [r1]
-_0807CCCA:
- movs r1, 0xDA
- lsls r1, 3
- adds r0, r2, r1
- ldrb r0, [r0]
- subs r0, 0x3
- cmp r0, 0xA
- bhi _0807CD94
- lsls r0, 2
- ldr r1, _0807CCF0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807CCE4: .4byte gUnknown_0202F7E8
-_0807CCE8: .4byte 0x000006cb
-_0807CCEC: .4byte 0x000006ca
-_0807CCF0: .4byte _0807CCF4
- .align 2, 0
-_0807CCF4:
- .4byte _0807CD20
- .4byte _0807CD20
- .4byte _0807CD20
- .4byte _0807CD6C
- .4byte _0807CD94
- .4byte _0807CD94
- .4byte _0807CD94
- .4byte _0807CD94
- .4byte _0807CD20
- .4byte _0807CD48
- .4byte _0807CD20
-_0807CD20:
- bl sub_807CDC4
- lsls r0, 24
- cmp r0, 0
- bne _0807CDB4
- ldr r0, _0807CD40
- movs r2, 0xD8
- lsls r2, 3
- adds r1, r0, r2
- movs r2, 0x3
- strb r2, [r1]
- ldr r3, _0807CD44
- adds r0, r3
- strb r2, [r0]
- b _0807CDB4
- .align 2, 0
-_0807CD40: .4byte gUnknown_0202F7E8
-_0807CD44: .4byte 0x000006c6
-_0807CD48:
- bl sub_807CE24
- lsls r0, 24
- cmp r0, 0
- bne _0807CDB4
- ldr r1, _0807CD64
- movs r0, 0xD8
- lsls r0, 3
- adds r2, r1, r0
- movs r0, 0xFA
- strb r0, [r2]
- ldr r2, _0807CD68
- adds r1, r2
- b _0807CDB0
- .align 2, 0
-_0807CD64: .4byte gUnknown_0202F7E8
-_0807CD68: .4byte 0x000006c6
-_0807CD6C:
- bl sub_807CE7C
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _0807CDB4
- ldr r0, _0807CD8C
- movs r3, 0xD8
- lsls r3, 3
- adds r1, r0, r3
- strb r2, [r1]
- ldr r1, _0807CD90
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- b _0807CDB4
- .align 2, 0
-_0807CD8C: .4byte gUnknown_0202F7E8
-_0807CD90: .4byte 0x000006c6
-_0807CD94:
- ldr r0, _0807CDB8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0807CDB4
- ldr r3, _0807CDBC
- adds r0, r2, r3
- ldrb r1, [r0]
- subs r3, 0x1
- adds r0, r2, r3
- strb r1, [r0]
- ldr r0, _0807CDC0
- adds r1, r2, r0
-_0807CDB0:
- movs r0, 0x3
- strb r0, [r1]
-_0807CDB4:
- pop {r0}
- bx r0
- .align 2, 0
-_0807CDB8: .4byte gPaletteFade
-_0807CDBC: .4byte 0x000006c1
-_0807CDC0: .4byte 0x000006c6
- thumb_func_end sub_807CCAC
-
- thumb_func_start sub_807CDC4
-sub_807CDC4: @ 807CDC4
- push {r4,lr}
- sub sp, 0x4
- ldr r2, _0807CE00
- ldr r0, _0807CE04
- adds r4, r2, r0
- ldrb r0, [r4]
- cmp r0, 0x10
- beq _0807CE1A
- adds r1, r0, 0x1
- strb r1, [r4]
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, 0xF
- bhi _0807CE0C
- movs r3, 0x10
- subs r3, r1
- lsls r3, 24
- lsrs r3, 24
- ldr r1, _0807CE08
- adds r0, r2, r1
- ldrh r0, [r0]
- str r0, [sp]
- movs r0, 0
- movs r1, 0x20
- movs r2, 0x3
- bl sub_807D1BC
- movs r0, 0x1
- b _0807CE1C
- .align 2, 0
-_0807CE00: .4byte gUnknown_0202F7E8
-_0807CE04: .4byte 0x000006c7
-_0807CE08: .4byte 0x000006c4
-_0807CE0C:
- movs r0, 0
- movs r1, 0x20
- movs r2, 0x3
- bl sub_807CEBC
- movs r0, 0x10
- strb r0, [r4]
-_0807CE1A:
- movs r0, 0
-_0807CE1C:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_807CDC4
-
- thumb_func_start sub_807CE24
-sub_807CE24: @ 807CE24
- push {r4,lr}
- ldr r2, _0807CE58
- ldr r0, _0807CE5C
- adds r4, r2, r0
- ldrb r0, [r4]
- cmp r0, 0x10
- beq _0807CE74
- adds r3, r0, 0x1
- strb r3, [r4]
- lsls r0, r3, 24
- lsrs r0, 24
- cmp r0, 0xF
- bhi _0807CE64
- movs r0, 0x6
- negs r0, r0
- movs r1, 0x10
- subs r1, r3
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _0807CE60
- adds r2, r3
- ldrh r2, [r2]
- bl sub_807D304
- movs r0, 0x1
- b _0807CE76
- .align 2, 0
-_0807CE58: .4byte gUnknown_0202F7E8
-_0807CE5C: .4byte 0x000006c7
-_0807CE60: .4byte 0x000006c4
-_0807CE64:
- movs r2, 0x6
- negs r2, r2
- movs r0, 0
- movs r1, 0x20
- bl sub_807CEBC
- movs r0, 0x10
- strb r0, [r4]
-_0807CE74:
- movs r0, 0
-_0807CE76:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_807CE24
-
- thumb_func_start sub_807CE7C
-sub_807CE7C: @ 807CE7C
- push {lr}
- ldr r2, _0807CEA4
- ldr r1, _0807CEA8
- adds r0, r2, r1
- ldrb r1, [r0]
- cmp r1, 0x10
- beq _0807CEB0
- adds r1, 0x1
- strb r1, [r0]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0807CEAC
- adds r1, r2, r3
- ldrh r1, [r1]
- bl sub_807D424
- movs r0, 0x1
- b _0807CEB2
- .align 2, 0
-_0807CEA4: .4byte gUnknown_0202F7E8
-_0807CEA8: .4byte 0x000006c7
-_0807CEAC: .4byte 0x000006c4
-_0807CEB0:
- movs r0, 0
-_0807CEB2:
- pop {r1}
- bx r1
- thumb_func_end sub_807CE7C
-
- thumb_func_start nullsub_39
-nullsub_39: @ 807CEB8
- bx lr
- thumb_func_end nullsub_39
-
- thumb_func_start sub_807CEBC
-sub_807CEBC: @ 807CEBC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- asrs r0, r2, 24
- cmp r0, 0
- bgt _0807CEDE
- b _0807D048
-_0807CEDE:
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r5, r3, 4
- adds r0, r1, r3
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r4, r9
- bcc _0807CEF6
- b _0807D1A2
-_0807CEF6:
- ldr r1, [sp]
- lsls r0, r1, 24
- asrs r0, 19
- str r0, [sp, 0x4]
-_0807CEFE:
- ldr r0, _0807CF30
- ldr r0, [r0]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807CF3C
- lsls r1, r5, 1
- ldr r0, _0807CF34
- adds r0, r1, r0
- ldr r2, _0807CF38
- adds r1, r2
- movs r2, 0x8
- bl CpuFastSet
- adds r0, r5, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r5, r0, 16
- mov r2, r9
- lsls r2, 16
- mov r8, r2
- adds r4, 0x1
- mov r12, r4
- b _0807D032
- .align 2, 0
-_0807CF30: .4byte gUnknown_030006DC
-_0807CF34: .4byte gPlttBufferUnfaded
-_0807CF38: .4byte gPlttBufferFaded
-_0807CF3C:
- cmp r0, 0x2
- beq _0807CF50
- adds r1, r4, 0
- subs r1, 0x10
- ldr r2, _0807CF54
- ldr r3, _0807CF58
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r1, r0
- bne _0807CF60
-_0807CF50:
- ldr r0, _0807CF5C
- b _0807CF66
- .align 2, 0
-_0807CF54: .4byte gUnknown_0202F7E8
-_0807CF58: .4byte 0x000006d5
-_0807CF5C: .4byte gUnknown_0202FC48
-_0807CF60:
- movs r3, 0x80
- lsls r3, 2
- adds r0, r2, r3
-_0807CF66:
- ldr r1, [sp, 0x4]
- adds r6, r1, r0
- cmp r4, 0x10
- beq _0807CF72
- cmp r4, 0x1B
- bls _0807CFE2
-_0807CF72:
- movs r7, 0
- mov r2, r9
- lsls r2, 16
- mov r8, r2
- adds r4, 0x1
- mov r12, r4
- ldr r3, _0807CF9C
- mov r10, r3
-_0807CF82:
- adds r2, r5, 0
- lsls r0, r5, 1
- ldr r4, _0807CFA0
- adds r1, r0, r4
- ldrh r0, [r1]
- ldr r3, _0807CFA4
- cmp r0, r3
- bne _0807CFA8
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- b _0807CFD6
- .align 2, 0
-_0807CF9C: .4byte gPlttBufferFaded
-_0807CFA0: .4byte gPlttBufferUnfaded
-_0807CFA4: .4byte 0x00002d9f
-_0807CFA8:
- ldr r1, [r1]
- lsls r0, r1, 27
- lsrs r0, 27
- adds r0, r6, r0
- ldrb r4, [r0]
- lsls r0, r1, 22
- lsrs r0, 27
- adds r0, r6, r0
- ldrb r3, [r0]
- lsls r1, 17
- lsrs r1, 27
- adds r1, r6, r1
- ldrb r1, [r1]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r2, 1
- add r2, r10
- lsls r0, r1, 10
- lsls r1, r3, 5
- orrs r0, r1
- orrs r0, r4
- strh r0, [r2]
-_0807CFD6:
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0xF
- bls _0807CF82
- b _0807D032
-_0807CFE2:
- movs r7, 0
- mov r0, r9
- lsls r0, 16
- mov r8, r0
- adds r4, 0x1
- mov r12, r4
- ldr r1, _0807D040
- mov r10, r1
-_0807CFF2:
- adds r2, r5, 0
- lsls r0, r2, 1
- ldr r3, _0807D044
- adds r0, r3
- ldr r1, [r0]
- lsls r0, r1, 27
- lsrs r0, 27
- adds r0, r6, r0
- ldrb r4, [r0]
- lsls r0, r1, 22
- lsrs r0, 27
- adds r0, r6, r0
- ldrb r3, [r0]
- lsls r1, 17
- lsrs r1, 27
- adds r1, r6, r1
- ldrb r1, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r2, 1
- add r2, r10
- lsls r0, r1, 10
- lsls r1, r3, 5
- orrs r0, r1
- orrs r0, r4
- strh r0, [r2]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0xF
- bls _0807CFF2
-_0807D032:
- mov r4, r12
- lsls r0, r4, 16
- lsrs r4, r0, 16
- cmp r0, r8
- bcs _0807D03E
- b _0807CEFE
-_0807D03E:
- b _0807D1A2
- .align 2, 0
-_0807D040: .4byte gPlttBufferFaded
-_0807D044: .4byte gPlttBufferUnfaded
-_0807D048:
- cmp r0, 0
- blt _0807D04E
- b _0807D190
-_0807D04E:
- mvns r0, r0
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r5, r3, 4
- adds r0, r1, r3
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- adds r4, r3, 0
- cmp r4, r9
- bcc _0807D068
- b _0807D1A2
-_0807D068:
- ldr r0, _0807D098
- ldr r0, [r0]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807D0A4
- lsls r1, r5, 1
- ldr r0, _0807D09C
- adds r0, r1, r0
- ldr r2, _0807D0A0
- adds r1, r2
- movs r2, 0x8
- bl CpuFastSet
- adds r0, r5, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r5, r0, 16
- mov r0, r9
- lsls r0, 16
- mov r8, r0
- adds r4, 0x1
- mov r12, r4
- b _0807D174
- .align 2, 0
-_0807D098: .4byte gUnknown_030006DC
-_0807D09C: .4byte gPlttBufferUnfaded
-_0807D0A0: .4byte gPlttBufferFaded
-_0807D0A4:
- cmp r4, 0x10
- beq _0807D0AC
- cmp r4, 0x1B
- bls _0807D11C
-_0807D0AC:
- movs r7, 0
- mov r1, r9
- lsls r1, 16
- mov r8, r1
- adds r4, 0x1
- mov r12, r4
- ldr r2, _0807D10C
- mov r10, r2
- ldr r3, [sp]
- lsls r0, r3, 24
- asrs r6, r0, 11
-_0807D0C2:
- lsls r1, r5, 1
- ldr r4, _0807D110
- adds r0, r1, r4
- ldrh r0, [r0]
- lsls r4, r0, 16
- ldr r2, _0807D114
- cmp r0, r2
- beq _0807D0FA
- ldr r3, _0807D118
- adds r3, r1, r3
- lsrs r0, r4, 17
- movs r1, 0xF
- ands r0, r1
- lsrs r1, r4, 18
- movs r2, 0xF0
- ands r1, r2
- orrs r0, r1
- lsrs r1, r4, 19
- movs r4, 0xF0
- lsls r4, 4
- adds r2, r4, 0
- ands r1, r2
- orrs r0, r1
- lsls r0, 1
- adds r0, r6
- add r0, r10
- ldrh r0, [r0]
- strh r0, [r3]
-_0807D0FA:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0xF
- bls _0807D0C2
- b _0807D174
- .align 2, 0
-_0807D10C: .4byte 0x02000000
-_0807D110: .4byte gPlttBufferUnfaded
-_0807D114: .4byte 0x00002d9f
-_0807D118: .4byte gPlttBufferFaded
-_0807D11C:
- movs r7, 0
- ldr r1, [sp]
- lsls r0, r1, 24
- mov r2, r9
- lsls r2, 16
- mov r8, r2
- adds r4, 0x1
- mov r12, r4
- ldr r3, _0807D184
- mov r10, r3
- asrs r6, r0, 11
-_0807D132:
- lsls r0, r5, 1
- ldr r1, _0807D188
- adds r4, r0, r1
- ldr r2, _0807D18C
- adds r0, r2
- ldrh r3, [r0]
- lsls r3, 16
- lsrs r0, r3, 17
- movs r1, 0xF
- ands r0, r1
- lsrs r1, r3, 18
- movs r2, 0xF0
- ands r1, r2
- orrs r0, r1
- lsrs r3, 19
- movs r2, 0xF0
- lsls r2, 4
- adds r1, r2, 0
- ands r3, r1
- orrs r0, r3
- lsls r0, 1
- adds r0, r6
- add r0, r10
- ldrh r0, [r0]
- strh r0, [r4]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0xF
- bls _0807D132
-_0807D174:
- mov r3, r12
- lsls r0, r3, 16
- lsrs r4, r0, 16
- cmp r0, r8
- bcs _0807D180
- b _0807D068
-_0807D180:
- b _0807D1A2
- .align 2, 0
-_0807D184: .4byte 0x02000000
-_0807D188: .4byte gPlttBufferFaded
-_0807D18C: .4byte gPlttBufferUnfaded
-_0807D190:
- lsls r1, r4, 5
- ldr r0, _0807D1B4
- adds r0, r1, r0
- ldr r2, _0807D1B8
- adds r1, r2
- mov r4, r9
- lsls r2, r4, 3
- bl CpuFastSet
-_0807D1A2:
- 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
-_0807D1B4: .4byte gPlttBufferUnfaded
-_0807D1B8: .4byte gPlttBufferFaded
- thumb_func_end sub_807CEBC
-
- thumb_func_start sub_807D1BC
-sub_807D1BC: @ 807D1BC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- ldr r4, [sp, 0x34]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- mov r1, sp
- strh r4, [r1]
- ldr r1, [sp]
- lsls r3, r1, 27
- lsrs r3, 27
- str r3, [sp, 0x4]
- lsls r3, r1, 22
- lsrs r3, 27
- str r3, [sp, 0x8]
- lsls r1, 17
- lsrs r1, 27
- str r1, [sp, 0xC]
- lsls r6, r0, 4
- mov r3, r10
- adds r1, r3, r0
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r2, r1
- lsrs r2, 24
- adds r4, r0, 0
- cmp r4, r10
- bcs _0807D2E8
- lsls r0, r2, 24
- asrs r0, 19
- str r0, [sp, 0x10]
-_0807D214:
- ldr r0, _0807D244
- ldr r0, [r0]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807D248
- mov r0, sp
- ldrh r3, [r0]
- adds r0, r6, 0
- movs r1, 0x10
- mov r2, r8
- bl BlendPalette
- adds r0, r6, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r6, r0, 16
- mov r3, r10
- lsls r3, 16
- mov r9, r3
- adds r4, 0x1
- mov r12, r4
- b _0807D2DE
- .align 2, 0
-_0807D244: .4byte gUnknown_030006DC
-_0807D248:
- cmp r0, 0x1
- bne _0807D258
- ldr r0, _0807D254
- ldr r1, [sp, 0x10]
- adds r5, r1, r0
- b _0807D25E
- .align 2, 0
-_0807D254: .4byte gUnknown_0202F9E8
-_0807D258:
- ldr r0, _0807D2F8
- ldr r3, [sp, 0x10]
- adds r5, r3, r0
-_0807D25E:
- movs r7, 0
- mov r0, r10
- lsls r0, 16
- mov r9, r0
- adds r4, 0x1
- mov r12, r4
-_0807D26A:
- adds r4, r6, 0
- lsls r0, r4, 1
- ldr r1, _0807D2FC
- adds r0, r1
- ldr r1, [r0]
- lsls r0, r1, 27
- lsrs r0, 27
- adds r0, r5, r0
- ldrb r3, [r0]
- lsls r0, r1, 22
- lsrs r0, 27
- adds r0, r5, r0
- ldrb r2, [r0]
- lsls r1, 17
- lsrs r1, 27
- adds r1, r5, r1
- ldrb r1, [r1]
- ldr r6, [sp, 0x4]
- subs r0, r6, r3
- mov r6, r8
- muls r6, r0
- adds r0, r6, 0
- asrs r0, 4
- adds r3, r0
- lsls r3, 24
- lsrs r3, 24
- ldr r6, [sp, 0x8]
- subs r0, r6, r2
- mov r6, r8
- muls r6, r0
- adds r0, r6, 0
- asrs r0, 4
- adds r2, r0
- lsls r2, 24
- ldr r6, [sp, 0xC]
- subs r0, r6, r1
- mov r6, r8
- muls r6, r0
- adds r0, r6, 0
- asrs r0, 4
- adds r1, r0
- lsls r1, 24
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r4, 1
- ldr r0, _0807D300
- adds r4, r0
- lsrs r1, 14
- lsrs r2, 19
- orrs r1, r2
- orrs r1, r3
- strh r1, [r4]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0xF
- bls _0807D26A
-_0807D2DE:
- mov r1, r12
- lsls r0, r1, 16
- lsrs r4, r0, 16
- cmp r0, r9
- bcc _0807D214
-_0807D2E8:
- 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
-_0807D2F8: .4byte gUnknown_0202FC48
-_0807D2FC: .4byte gPlttBufferUnfaded
-_0807D300: .4byte gPlttBufferFaded
- thumb_func_end sub_807D1BC
-
- thumb_func_start sub_807D304
-sub_807D304: @ 807D304
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r1, 24
- lsrs r6, r1, 24
- mov r1, sp
- strh r2, [r1]
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- eors r0, r1
- lsrs r0, 24
- str r0, [sp, 0x4]
- ldr r0, [sp]
- lsls r1, r0, 27
- lsrs r1, 27
- str r1, [sp, 0x8]
- lsls r1, r0, 22
- lsrs r1, 27
- str r1, [sp, 0xC]
- lsls r0, 17
- lsrs r0, 27
- mov r10, r0
- movs r5, 0
- movs r4, 0
-_0807D33C:
- ldr r0, _0807D364
- ldr r0, [r0]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807D368
- mov r0, sp
- ldrh r3, [r0]
- adds r0, r5, 0
- movs r1, 0x10
- adds r2, r6, 0
- bl BlendPalette
- adds r0, r5, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, 0x1
- mov r8, r4
- b _0807D3FE
- .align 2, 0
-_0807D364: .4byte gUnknown_030006DC
-_0807D368:
- movs r0, 0
- mov r12, r0
- ldr r1, [sp, 0x4]
- lsls r0, r1, 24
- adds r4, 0x1
- mov r8, r4
- movs r7, 0x1E
- asrs r0, 11
- mov r9, r0
-_0807D37A:
- adds r4, r5, 0
- lsls r0, r4, 1
- ldr r5, _0807D418
- adds r0, r5
- ldr r0, [r0]
- lsls r2, r0, 27
- lsrs r2, 27
- lsls r1, r0, 22
- lsrs r1, 27
- lsls r0, 17
- lsrs r0, 27
- ands r0, r7
- lsls r0, 7
- ands r1, r7
- lsls r1, 3
- orrs r0, r1
- ands r2, r7
- lsls r0, 1
- orrs r0, r2
- add r0, r9
- ldr r1, _0807D41C
- adds r0, r1
- ldr r1, [r0]
- lsls r3, r1, 27
- lsrs r3, 27
- lsls r2, r1, 22
- lsrs r2, 27
- lsls r1, 17
- lsrs r1, 27
- ldr r5, [sp, 0x8]
- subs r0, r5, r3
- muls r0, r6
- asrs r0, 4
- adds r3, r0
- lsls r3, 24
- lsrs r3, 24
- ldr r5, [sp, 0xC]
- subs r0, r5, r2
- muls r0, r6
- asrs r0, 4
- adds r2, r0
- lsls r2, 24
- mov r5, r10
- subs r0, r5, r1
- muls r0, r6
- asrs r0, 4
- adds r1, r0
- lsls r1, 24
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r4, 1
- ldr r0, _0807D420
- adds r4, r0
- lsrs r1, 14
- lsrs r2, 19
- orrs r1, r2
- orrs r1, r3
- strh r1, [r4]
- mov r0, r12
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r12, r0
- cmp r0, 0xF
- bls _0807D37A
-_0807D3FE:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r4, r0, 16
- cmp r4, 0x1F
- bls _0807D33C
- 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
-_0807D418: .4byte gPlttBufferUnfaded
-_0807D41C: .4byte 0x02000000
-_0807D420: .4byte gPlttBufferFaded
- thumb_func_end sub_807D304
-
- thumb_func_start sub_807D424
-sub_807D424: @ 807D424
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- adds r3, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r3, 16
- lsrs r3, 16
- mov r0, sp
- strh r3, [r0]
- movs r1, 0x80
- lsls r1, 1
- movs r0, 0
- adds r2, r7, 0
- bl BlendPalette
- ldr r0, [sp]
- lsls r1, r0, 27
- lsrs r1, 27
- str r1, [sp, 0x4]
- lsls r1, r0, 22
- lsrs r1, 27
- str r1, [sp, 0x8]
- lsls r0, 17
- lsrs r0, 27
- mov r10, r0
- movs r4, 0x10
-_0807D460:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_807D574
- lsls r0, 24
- cmp r0, 0
- beq _0807D510
- adds r0, r4, 0x1
- lsls r1, r0, 20
- lsrs r1, 16
- mov r12, r1
- lsls r1, r4, 20
- lsrs r6, r1, 16
- mov r9, r0
- cmp r6, r12
- bcs _0807D524
- movs r0, 0x1C
- mov r8, r0
-_0807D484:
- lsls r5, r6, 1
- ldr r0, _0807D508
- adds r0, r5, r0
- ldr r2, [r0]
- lsls r4, r2, 27
- lsrs r4, 27
- lsls r3, r2, 22
- lsrs r3, 27
- lsls r2, 17
- lsrs r2, 27
- mov r0, r8
- subs r1, r0, r4
- lsls r0, r1, 1
- adds r0, r1
- asrs r0, 2
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- movs r1, 0x1F
- subs r1, r3
- lsls r0, r1, 1
- adds r0, r1
- asrs r0, 2
- adds r3, r0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- subs r1, r0, r2
- lsls r0, r1, 1
- adds r0, r1
- asrs r0, 2
- adds r2, r0
- lsls r2, 24
- lsrs r2, 24
- ldr r1, [sp, 0x4]
- subs r0, r1, r4
- muls r0, r7
- asrs r0, 4
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, [sp, 0x8]
- subs r0, r1, r3
- muls r0, r7
- asrs r0, 4
- adds r3, r0
- lsls r3, 24
- mov r1, r10
- subs r0, r1, r2
- muls r0, r7
- asrs r0, 4
- adds r2, r0
- lsls r2, 24
- ldr r0, _0807D50C
- adds r5, r0
- lsrs r2, 14
- lsrs r3, 19
- orrs r2, r3
- orrs r2, r4
- strh r2, [r5]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, r12
- bcc _0807D484
- b _0807D524
- .align 2, 0
-_0807D508: .4byte gPlttBufferUnfaded
-_0807D50C: .4byte gPlttBufferFaded
-_0807D510:
- lsls r0, r4, 20
- lsrs r0, 16
- mov r1, sp
- ldrh r3, [r1]
- movs r1, 0x10
- adds r2, r7, 0
- bl BlendPalette
- adds r4, 0x1
- mov r9, r4
-_0807D524:
- mov r1, r9
- lsls r0, r1, 16
- lsrs r4, r0, 16
- cmp r4, 0x1F
- bls _0807D460
- 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_807D424
-
- thumb_func_start sub_807D540
-sub_807D540: @ 807D540
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r3, _0807D568
- ldr r0, _0807D56C
- adds r1, r3, r0
- ldrb r0, [r1]
- cmp r0, 0x5
- bhi _0807D562
- ldr r4, _0807D570
- adds r0, r3, r4
- ldrb r3, [r1]
- adds r0, r3
- strb r2, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0807D562:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D568: .4byte gUnknown_0202F7E8
-_0807D56C: .4byte 0x000006fa
-_0807D570: .4byte 0x000006f4
- thumb_func_end sub_807D540
-
- thumb_func_start sub_807D574
-sub_807D574: @ 807D574
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r1, 0
- ldr r2, _0807D59C
- ldr r4, _0807D5A0
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r1, r0
- bcs _0807D5B2
- ldr r5, _0807D5A4
- adds r4, r2, r5
- adds r2, r0, 0
-_0807D58E:
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, r3
- bne _0807D5A8
- movs r0, 0x1
- b _0807D5B4
- .align 2, 0
-_0807D59C: .4byte gUnknown_0202F7E8
-_0807D5A0: .4byte 0x000006fa
-_0807D5A4: .4byte 0x000006f4
-_0807D5A8:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bcc _0807D58E
-_0807D5B2:
- movs r0, 0
-_0807D5B4:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_807D574
-
- thumb_func_start sub_807D5BC
-sub_807D5BC: @ 807D5BC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _0807D5E8
- ldr r1, _0807D5EC
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _0807D5E2
- lsls r2, r4, 24
- asrs r2, 24
- movs r0, 0
- movs r1, 0x20
- bl sub_807CEBC
- movs r1, 0xD8
- lsls r1, 3
- adds r0, r5, r1
- strb r4, [r0]
-_0807D5E2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D5E8: .4byte gUnknown_0202F7E8
-_0807D5EC: .4byte 0x000006c6
- thumb_func_end sub_807D5BC
-
- thumb_func_start sub_807D5F0
-sub_807D5F0: @ 807D5F0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r3, _0807D638
- ldr r0, _0807D63C
- adds r2, r3, r0
- ldrb r0, [r2]
- cmp r0, 0x3
- bne _0807D630
- movs r1, 0
- strb r1, [r2]
- movs r2, 0xD8
- lsls r2, 3
- adds r0, r3, r2
- strb r4, [r0]
- adds r2, 0x1
- adds r0, r3, r2
- strb r5, [r0]
- adds r2, 0x2
- adds r0, r3, r2
- strb r1, [r0]
- ldr r1, _0807D640
- adds r0, r3, r1
- strb r6, [r0]
- lsls r0, r4, 24
- asrs r0, 24
- bl sub_807D5BC
-_0807D630:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D638: .4byte gUnknown_0202F7E8
-_0807D63C: .4byte 0x000006c6
-_0807D640: .4byte 0x000006c2
- thumb_func_end sub_807D5F0
-
- thumb_func_start fade_screen
-fade_screen: @ 807D644
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r0, 0x1
- beq _0807D67C
- cmp r0, 0x1
- bgt _0807D660
- cmp r0, 0
- beq _0807D66A
- b _0807D758
-_0807D660:
- cmp r2, 0x2
- beq _0807D670
- cmp r2, 0x3
- beq _0807D680
- b _0807D758
-_0807D66A:
- movs r4, 0
- movs r1, 0
- b _0807D684
-_0807D670:
- ldr r4, _0807D678
- movs r1, 0
- b _0807D684
- .align 2, 0
-_0807D678: .4byte 0x0000ffff
-_0807D67C:
- movs r4, 0
- b _0807D682
-_0807D680:
- ldr r4, _0807D6A4
-_0807D682:
- movs r1, 0x1
-_0807D684:
- ldr r0, _0807D6A8
- movs r2, 0xDA
- lsls r2, 3
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x3
- blt _0807D6AC
- cmp r0, 0x6
- ble _0807D69E
- cmp r0, 0xD
- bgt _0807D6AC
- cmp r0, 0xB
- blt _0807D6AC
-_0807D69E:
- movs r2, 0x1
- b _0807D6AE
- .align 2, 0
-_0807D6A4: .4byte 0x0000ffff
-_0807D6A8: .4byte gUnknown_0202F7E8
-_0807D6AC:
- movs r2, 0
-_0807D6AE:
- cmp r1, 0
- beq _0807D6F0
- cmp r2, 0
- beq _0807D6C2
- ldr r0, _0807D6E0
- ldr r1, _0807D6E4
- movs r2, 0x80
- lsls r2, 1
- bl CpuFastSet
-_0807D6C2:
- movs r0, 0x1
- negs r0, r0
- lsls r1, r5, 24
- asrs r1, 24
- str r4, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0807D6E8
- ldr r3, _0807D6EC
- adds r0, r3
- movs r1, 0x2
- strb r1, [r0]
- b _0807D758
- .align 2, 0
-_0807D6E0: .4byte gPlttBufferFaded
-_0807D6E4: .4byte gPlttBufferUnfaded
-_0807D6E8: .4byte gUnknown_0202F7E8
-_0807D6EC: .4byte 0x000006c6
-_0807D6F0:
- ldr r1, _0807D708
- ldr r3, _0807D70C
- adds r0, r1, r3
- strh r4, [r0]
- cmp r2, 0
- beq _0807D714
- ldr r0, _0807D710
- adds r1, r0
- movs r0, 0
- strb r0, [r1]
- b _0807D726
- .align 2, 0
-_0807D708: .4byte gUnknown_0202F7E8
-_0807D70C: .4byte 0x000006c4
-_0807D710: .4byte 0x000006c7
-_0807D714:
- movs r0, 0x1
- negs r0, r0
- lsls r1, r5, 24
- asrs r1, 24
- str r4, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_0807D726:
- ldr r4, _0807D760
- ldr r1, _0807D764
- adds r0, r4, r1
- movs r1, 0
- movs r5, 0x1
- strb r5, [r0]
- ldr r2, _0807D768
- adds r0, r4, r2
- strb r5, [r0]
- ldr r3, _0807D76C
- adds r0, r4, r3
- strb r1, [r0]
- movs r1, 0xE6
- lsls r1, 3
- adds r0, r4, r1
- ldrb r0, [r0]
- adds r2, 0x68
- adds r1, r4, r2
- ldrb r1, [r1]
- bl sub_807DB64
- movs r3, 0xD9
- lsls r3, 3
- adds r4, r3
- strb r5, [r4]
-_0807D758:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D760: .4byte gUnknown_0202F7E8
-_0807D764: .4byte 0x000006c6
-_0807D768: .4byte 0x000006ca
-_0807D76C: .4byte 0x000006cb
- thumb_func_end fade_screen
-
- thumb_func_start sub_807D770
-sub_807D770: @ 807D770
- ldr r0, _0807D784
- ldr r1, _0807D788
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- bx lr
- .align 2, 0
-_0807D784: .4byte gUnknown_0202F7E8
-_0807D788: .4byte 0x000006c6
- thumb_func_end sub_807D770
-
- thumb_func_start sub_807D78C
-sub_807D78C: @ 807D78C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 8
- movs r1, 0x80
- lsls r1, 13
- adds r0, r1
- lsrs r4, r0, 16
- ldr r5, _0807D7CC
- ldr r2, _0807D7D0
- adds r0, r5, r2
- ldrb r0, [r0]
- adds r1, r5, 0
- cmp r0, 0x1
- beq _0807D7D4
- cmp r0, 0x2
- beq _0807D820
- adds r2, 0xA
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x6
- beq _0807D858
- lsls r0, r4, 24
- lsrs r0, 24
- subs r2, 0x10
- adds r1, r2
- movs r2, 0
- ldrsb r2, [r1, r2]
- movs r1, 0x1
- bl sub_807CEBC
- b _0807D868
- .align 2, 0
-_0807D7CC: .4byte gUnknown_0202F7E8
-_0807D7D0: .4byte 0x000006c6
-_0807D7D4:
- ldr r2, _0807D814
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807D868
- adds r2, 0x6
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _0807D7F0
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_807D540
-_0807D7F0:
- lsls r0, r4, 20
- lsrs r4, r0, 16
- movs r2, 0
- ldr r6, _0807D818
- ldr r0, _0807D81C
- adds r3, r5, r0
-_0807D7FC:
- adds r0, r4, r2
- lsls r0, 1
- adds r0, r6
- ldrh r1, [r3]
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xF
- bls _0807D7FC
- b _0807D868
- .align 2, 0
-_0807D814: .4byte 0x000006ca
-_0807D818: .4byte gPlttBufferFaded
-_0807D81C: .4byte 0x000006c4
-_0807D820:
- lsls r0, r4, 20
- lsrs r4, r0, 16
- lsls r1, r4, 1
- ldr r0, _0807D84C
- adds r0, r1, r0
- ldr r2, _0807D850
- adds r1, r2
- movs r2, 0x8
- bl CpuFastSet
- ldr r0, _0807D854
- ldrh r2, [r0, 0x4]
- lsls r2, 21
- lsrs r2, 27
- ldrh r3, [r0, 0x6]
- lsls r3, 17
- lsrs r3, 17
- adds r0, r4, 0
- movs r1, 0x10
- bl BlendPalette
- b _0807D868
- .align 2, 0
-_0807D84C: .4byte gPlttBufferFaded
-_0807D850: .4byte gPlttBufferUnfaded
-_0807D854: .4byte gPaletteFade
-_0807D858:
- lsls r0, r4, 20
- lsrs r4, r0, 16
- ldr r3, _0807D870
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0xC
- bl BlendPalette
-_0807D868:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D870: .4byte 0x000073fc
- thumb_func_end sub_807D78C
-
- thumb_func_start sub_807D874
-sub_807D874: @ 807D874
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0807D890
- movs r2, 0xD8
- lsls r2, 3
- adds r1, r2
- movs r2, 0
- ldrsb r2, [r1, r2]
- movs r1, 0x1
- bl sub_807CEBC
- pop {r0}
- bx r0
- .align 2, 0
-_0807D890: .4byte gUnknown_0202F7E8
- thumb_func_end sub_807D874
-
- thumb_func_start unref_sub_807D894
-unref_sub_807D894: @ 807D894
- push {lr}
- ldr r1, _0807D8A8
- ldr r2, _0807D8AC
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0807D8B0
- movs r0, 0
- b _0807D8B6
- .align 2, 0
-_0807D8A8: .4byte gUnknown_0202F7E8
-_0807D8AC: .4byte 0x000006c6
-_0807D8B0:
- ldr r2, _0807D8BC
- adds r0, r1, r2
- ldrb r0, [r0]
-_0807D8B6:
- pop {r1}
- bx r1
- .align 2, 0
-_0807D8BC: .4byte 0x000006ca
- thumb_func_end unref_sub_807D894
-
- thumb_func_start sub_807D8C0
-sub_807D8C0: @ 807D8C0
- push {r4,lr}
- ldr r4, _0807D8E8
- ldr r1, _0807D8EC
- adds r4, r1
- ldrb r1, [r4]
- lsls r1, 20
- movs r2, 0x80
- lsls r2, 17
- adds r1, r2
- lsrs r1, 16
- movs r2, 0x20
- bl LoadPalette
- ldrb r0, [r4]
- bl sub_807D78C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D8E8: .4byte gUnknown_0202F7E8
-_0807D8EC: .4byte 0x000006d4
- thumb_func_end sub_807D8C0
-
- thumb_func_start sub_807D8F0
-sub_807D8F0: @ 807D8F0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- mov r8, r1
- ldrb r4, [r7]
- cmp r4, 0x6
- bhi _0807D99A
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0807D94C
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r6, r4, 13
- ldr r5, _0807D950
- adds r1, r6, r5
- bl LZ77UnCompWram
- subs r0, r4, 0x1
- cmp r4, 0
- bne _0807D95C
- ldr r0, _0807D954
- strh r0, [r5]
- movs r2, 0x1
- adds r4, r5, 0
- movs r3, 0
- ldr r5, _0807D958
-_0807D92A:
- lsls r1, r2, 1
- adds r1, r3
- adds r1, r4
- subs r0, r2, 0x1
- lsls r0, 1
- adds r0, r3
- adds r0, r4
- ldrh r0, [r0]
- ldrh r6, [r1]
- adds r0, r6
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r5
- bls _0807D92A
- b _0807D984
- .align 2, 0
-_0807D94C: .4byte gUnknown_08396FA8
-_0807D950: .4byte 0x02000000
-_0807D954: .4byte 0x00000421
-_0807D958: .4byte 0x00000fff
-_0807D95C:
- movs r2, 0
- adds r3, r5, 0
- adds r5, r6, 0
- lsls r4, r0, 13
- ldr r0, _0807D9A4
- mov r12, r0
-_0807D968:
- lsls r0, r2, 1
- adds r1, r0, r5
- adds r1, r3
- adds r0, r4
- adds r0, r3
- ldrh r0, [r0]
- ldrh r6, [r1]
- adds r0, r6
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r12
- bls _0807D968
-_0807D984:
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x7
- bne _0807D99A
- movs r0, 0x20
- strb r0, [r7]
- mov r1, r8
- strb r0, [r1]
-_0807D99A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D9A4: .4byte 0x00000fff
- thumb_func_end sub_807D8F0
-
- thumb_func_start sub_807D9A8
-sub_807D9A8: @ 807D9A8
- ldr r0, _0807D9BC
- ldr r2, _0807D9C0
- adds r1, r0, r2
- movs r2, 0x1
- strb r2, [r1]
- ldr r1, _0807D9C4
- adds r0, r1
- strb r2, [r0]
- bx lr
- .align 2, 0
-_0807D9BC: .4byte gUnknown_0202F7E8
-_0807D9C0: .4byte 0x0000074d
-_0807D9C4: .4byte 0x0000074e
- thumb_func_end sub_807D9A8
-
- thumb_func_start sub_807D9C8
-sub_807D9C8: @ 807D9C8
- push {r4,lr}
- ldr r1, _0807D9F0
- ldr r0, _0807D9F4
- adds r4, r1, r0
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r0, 0x1F
- bgt _0807D9FC
- ldr r0, _0807D9F8
- adds r1, r0
- adds r0, r4, 0
- bl sub_807D8F0
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r0, 0x1F
- bgt _0807D9FC
- movs r0, 0x1
- b _0807D9FE
- .align 2, 0
-_0807D9F0: .4byte gUnknown_0202F7E8
-_0807D9F4: .4byte 0x0000074d
-_0807D9F8: .4byte 0x0000074e
-_0807D9FC:
- movs r0, 0
-_0807D9FE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_807D9C8
-
- thumb_func_start sub_807DA04
-sub_807DA04: @ 807DA04
- push {lr}
- lsls r0, 24
- asrs r0, 24
- mvns r0, r0
- bl sub_807D5BC
- pop {r0}
- bx r0
- thumb_func_end sub_807DA04
-
- thumb_func_start sub_807DA14
-sub_807DA14: @ 807DA14
- ldr r1, _0807DA3C
- ldr r2, _0807DA40
- adds r0, r1, r2
- movs r2, 0
- strh r2, [r0]
- movs r3, 0xE8
- lsls r3, 3
- adds r0, r1, r3
- strh r2, [r0]
- adds r3, 0x2
- adds r0, r1, r3
- strh r2, [r0]
- ldr r0, _0807DA44
- adds r1, r0
- strh r2, [r1]
- ldr r1, _0807DA48
- movs r0, 0x5
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0807DA3C: .4byte gUnknown_0202F7E8
-_0807DA40: .4byte 0x0000073c
-_0807DA44: .4byte 0x0000073e
-_0807DA48: .4byte gUnknown_0202FF58
- thumb_func_end sub_807DA14
-
- thumb_func_start sub_807DA4C
-sub_807DA4C: @ 807DA4C
- push {r4-r7,lr}
- ldr r5, _0807DA68
- ldr r0, _0807DA6C
- adds r7, r5, r0
- movs r1, 0
- ldrsh r2, [r7, r1]
- cmp r2, 0x1
- beq _0807DAC8
- cmp r2, 0x1
- bgt _0807DA70
- cmp r2, 0
- beq _0807DA76
- b _0807DB54
- .align 2, 0
-_0807DA68: .4byte gUnknown_0202F7E8
-_0807DA6C: .4byte 0x00000742
-_0807DA70:
- cmp r2, 0x2
- beq _0807DB1C
- b _0807DB54
-_0807DA76:
- movs r3, 0xE8
- lsls r3, 3
- adds r6, r5, r3
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0807DABC
- ldrh r1, [r1]
- cmp r0, r1
- ble _0807DB54
- strh r2, [r6]
- ldr r0, _0807DAC0
- adds r4, r5, r0
- ldrh r0, [r4]
- adds r1, r0, 0x1
- strh r1, [r4]
- lsls r0, 24
- asrs r0, 24
- bl sub_807DA04
- ldrh r1, [r4]
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0x5
- ble _0807DB54
- ldr r3, _0807DAC4
- adds r0, r5, r3
- strh r1, [r0]
- movs r0, 0x1
- strh r0, [r7]
- movs r0, 0x3C
- strh r0, [r6]
- b _0807DB54
- .align 2, 0
-_0807DABC: .4byte gUnknown_0202FF58
-_0807DAC0: .4byte 0x0000073c
-_0807DAC4: .4byte 0x0000073e
-_0807DAC8:
- movs r0, 0xE8
- lsls r0, 3
- adds r2, r5, r0
- ldrh r0, [r2]
- adds r0, 0x3
- movs r1, 0x7F
- ands r0, r1
- strh r0, [r2]
- ldr r1, _0807DB10
- movs r3, 0
- ldrsh r0, [r2, r3]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- subs r0, 0x1
- asrs r0, 6
- adds r0, 0x2
- ldr r2, _0807DB14
- adds r6, r5, r2
- adds r2, r0, 0
- strh r0, [r6]
- ldr r3, _0807DB18
- adds r4, r5, r3
- movs r3, 0
- ldrsh r1, [r4, r3]
- cmp r0, r1
- beq _0807DB08
- lsls r0, r2, 24
- asrs r0, 24
- bl sub_807DA04
-_0807DB08:
- ldrh r0, [r6]
- strh r0, [r4]
- b _0807DB54
- .align 2, 0
-_0807DB10: .4byte gSineTable
-_0807DB14: .4byte 0x0000073c
-_0807DB18: .4byte 0x0000073e
-_0807DB1C:
- movs r0, 0xE8
- lsls r0, 3
- adds r2, r5, r0
- ldrh r0, [r2]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r2]
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0807DB5C
- ldrh r1, [r1]
- cmp r0, r1
- ble _0807DB54
- strh r6, [r2]
- ldr r1, _0807DB60
- adds r4, r5, r1
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- lsls r0, 24
- asrs r0, 24
- bl sub_807DA04
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- bne _0807DB54
- strh r6, [r7]
-_0807DB54:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807DB5C: .4byte gUnknown_0202FF58
-_0807DB60: .4byte 0x0000073c
- thumb_func_end sub_807DA4C
-
- thumb_func_start sub_807DB64
-sub_807DB64: @ 807DB64
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _0807DB98
- movs r4, 0xE6
- lsls r4, 3
- adds r2, r3, r4
- strh r0, [r2]
- adds r4, 0x2
- adds r2, r3, r4
- strh r1, [r2]
- adds r4, 0x2
- adds r2, r3, r4
- strh r0, [r2]
- ldr r2, _0807DB9C
- adds r3, r2
- strh r1, [r3]
- ldr r2, _0807DBA0
- lsls r1, 8
- orrs r1, r0
- strh r1, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807DB98: .4byte gUnknown_0202F7E8
-_0807DB9C: .4byte 0x00000736
-_0807DBA0: .4byte REG_BLDALPHA
- thumb_func_end sub_807DB64
-
- thumb_func_start sub_807DBA4
-sub_807DBA4: @ 807DBA4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _0807DBD8
- ldr r5, _0807DBDC
- adds r4, r3, r5
- movs r5, 0
- strh r0, [r4]
- ldr r4, _0807DBE0
- adds r0, r3, r4
- strh r1, [r0]
- ldr r1, _0807DBE4
- adds r0, r3, r1
- strb r2, [r0]
- adds r4, 0x3
- adds r0, r3, r4
- strb r5, [r0]
- movs r0, 0xE7
- lsls r0, 3
- adds r3, r0
- strb r5, [r3]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807DBD8: .4byte gUnknown_0202F7E8
-_0807DBDC: .4byte 0x00000734
-_0807DBE0: .4byte 0x00000736
-_0807DBE4: .4byte 0x0000073a
- thumb_func_end sub_807DBA4
-
- thumb_func_start sub_807DBE8
-sub_807DBE8: @ 807DBE8
- push {r4-r6,lr}
- ldr r0, _0807DC40
- movs r1, 0xE6
- lsls r1, 3
- adds r3, r0, r1
- ldr r2, [r3]
- ldr r6, _0807DC44
- adds r5, r0, r6
- ldr r1, [r5]
- adds r4, r0, 0
- cmp r2, r1
- beq _0807DCAC
- ldr r0, _0807DC48
- adds r2, r4, r0
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- ldr r6, _0807DC4C
- adds r1, r4, r6
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bls _0807DC78
- movs r0, 0
- strb r0, [r2]
- movs r0, 0xE7
- lsls r0, 3
- adds r1, r4, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0807DC50
- ldrh r1, [r3]
- adds r2, r1, 0
- ldrh r0, [r5]
- cmp r2, r0
- bcs _0807DC70
- adds r0, r1, 0x1
- b _0807DC76
- .align 2, 0
-_0807DC40: .4byte gUnknown_0202F7E8
-_0807DC44: .4byte 0x00000734
-_0807DC48: .4byte 0x00000739
-_0807DC4C: .4byte 0x0000073a
-_0807DC50:
- ldr r1, _0807DC68
- adds r3, r4, r1
- ldr r2, _0807DC6C
- adds r0, r4, r2
- ldrh r1, [r3]
- adds r2, r1, 0
- ldrh r0, [r0]
- cmp r2, r0
- bcs _0807DC70
- adds r0, r1, 0x1
- b _0807DC76
- .align 2, 0
-_0807DC68: .4byte 0x00000732
-_0807DC6C: .4byte 0x00000736
-_0807DC70:
- cmp r2, r0
- bls _0807DC78
- subs r0, r1, 0x1
-_0807DC76:
- strh r0, [r3]
-_0807DC78:
- ldr r3, _0807DCA0
- ldr r6, _0807DCA4
- adds r0, r4, r6
- ldrh r0, [r0]
- lsls r0, 8
- movs r1, 0xE6
- lsls r1, 3
- adds r2, r4, r1
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r3]
- ldr r1, [r2]
- ldr r2, _0807DCA8
- adds r0, r4, r2
- ldr r0, [r0]
- cmp r1, r0
- beq _0807DCAC
- movs r0, 0
- b _0807DCAE
- .align 2, 0
-_0807DCA0: .4byte REG_BLDALPHA
-_0807DCA4: .4byte 0x00000732
-_0807DCA8: .4byte 0x00000734
-_0807DCAC:
- movs r0, 0x1
-_0807DCAE:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_807DBE8
-
- thumb_func_start unref_sub_807DCB4
-unref_sub_807DCB4: @ 807DCB4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0x9
- bhi _0807DD46
- lsls r0, 2
- ldr r1, _0807DCCC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807DCCC: .4byte _0807DCD0
- .align 2, 0
-_0807DCD0:
- .4byte _0807DCF8
- .4byte _0807DD00
- .4byte _0807DD08
- .4byte _0807DD10
- .4byte _0807DD18
- .4byte _0807DD20
- .4byte _0807DD28
- .4byte _0807DD30
- .4byte _0807DD38
- .4byte _0807DD40
-_0807DCF8:
- movs r0, 0x1
- bl sub_808070C
- b _0807DD46
-_0807DD00:
- movs r0, 0x2
- bl sub_808070C
- b _0807DD46
-_0807DD08:
- movs r0, 0x3
- bl sub_808070C
- b _0807DD46
-_0807DD10:
- movs r0, 0x4
- bl sub_808070C
- b _0807DD46
-_0807DD18:
- movs r0, 0x5
- bl sub_808070C
- b _0807DD46
-_0807DD20:
- movs r0, 0x6
- bl sub_808070C
- b _0807DD46
-_0807DD28:
- movs r0, 0x9
- bl sub_808070C
- b _0807DD46
-_0807DD30:
- movs r0, 0x7
- bl sub_808070C
- b _0807DD46
-_0807DD38:
- movs r0, 0x8
- bl sub_808070C
- b _0807DD46
-_0807DD40:
- movs r0, 0xB
- bl sub_808070C
-_0807DD46:
- pop {r0}
- bx r0
- thumb_func_end unref_sub_807DCB4
-
- thumb_func_start weather_get_current
-weather_get_current: @ 807DD4C
- ldr r0, _0807DD58
- movs r1, 0xDA
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0807DD58: .4byte gUnknown_0202F7E8
- thumb_func_end weather_get_current
-
- thumb_func_start sub_807DD5C
-sub_807DD5C: @ 807DD5C
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, _0807DD7C
- ldr r3, _0807DD80
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _0807DDAE
- cmp r2, 0x53
- beq _0807DD94
- cmp r2, 0x53
- bgt _0807DD84
- cmp r2, 0x51
- beq _0807DDA0
- b _0807DDAE
- .align 2, 0
-_0807DD7C: .4byte gUnknown_0202F7E8
-_0807DD80: .4byte 0x000006c6
-_0807DD84:
- cmp r2, 0x55
- bne _0807DDAE
- ldr r0, _0807DD90
- adds r1, r0
- movs r0, 0
- b _0807DDA6
- .align 2, 0
-_0807DD90: .4byte 0x000006dd
-_0807DD94:
- ldr r3, _0807DD9C
- adds r1, r3
- movs r0, 0x1
- b _0807DDA6
- .align 2, 0
-_0807DD9C: .4byte 0x000006dd
-_0807DDA0:
- ldr r0, _0807DDB4
- adds r1, r0
- movs r0, 0x2
-_0807DDA6:
- strb r0, [r1]
- adds r0, r2, 0
- bl PlaySE
-_0807DDAE:
- pop {r0}
- bx r0
- .align 2, 0
-_0807DDB4: .4byte 0x000006dd
- thumb_func_end sub_807DD5C
-
- thumb_func_start play_some_sound
-play_some_sound: @ 807DDB8
- push {lr}
- bl IsSpecialSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _0807DDF6
- ldr r0, _0807DDE0
- ldr r1, _0807DDE4
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0807DDE8
- cmp r0, 0x1
- bgt _0807DDF0
- cmp r0, 0
- bne _0807DDF0
- movs r0, 0x56
- bl PlaySE
- b _0807DDF6
- .align 2, 0
-_0807DDE0: .4byte gUnknown_0202F7E8
-_0807DDE4: .4byte 0x000006dd
-_0807DDE8:
- movs r0, 0x54
- bl PlaySE
- b _0807DDF6
-_0807DDF0:
- movs r0, 0x52
- bl PlaySE
-_0807DDF6:
- pop {r0}
- bx r0
- thumb_func_end play_some_sound
-
- thumb_func_start sub_807DDFC
-sub_807DDFC: @ 807DDFC
- ldr r0, _0807DE08
- ldr r1, _0807DE0C
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0807DE08: .4byte gUnknown_0202F7E8
-_0807DE0C: .4byte 0x000006d3
- thumb_func_end sub_807DDFC
-
- thumb_func_start sub_807DE10
-sub_807DE10: @ 807DE10
- ldr r0, _0807DE1C
- ldr r1, _0807DE20
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- bx lr
- .align 2, 0
-_0807DE1C: .4byte gUnknown_0202F7E8
-_0807DE20: .4byte 0x000006c6
- thumb_func_end sub_807DE10
-
- thumb_func_start unref_sub_807DE24
-unref_sub_807DE24: @ 807DE24
- ldr r0, _0807DE30
- ldr r1, _0807DE34
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- bx lr
- .align 2, 0
-_0807DE30: .4byte gUnknown_0202F7E8
-_0807DE34: .4byte 0x000006c6
- thumb_func_end unref_sub_807DE24
-
- thumb_func_start sub_807DE38
-sub_807DE38: @ 807DE38
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0807DE5C
- ldr r5, _0807DE60
- adds r1, r5, 0
- movs r2, 0x10
- bl CpuSet
- adds r4, r5
- movs r0, 0
- strb r0, [r4]
- ldr r0, _0807DE64
- str r5, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807DE5C: .4byte gUnknown_083970C8
-_0807DE60: .4byte gUnknown_0202FF38
-_0807DE64: .4byte gUnknown_030006DC
- thumb_func_end sub_807DE38
-
- thumb_func_start sub_807DE68
-sub_807DE68: @ 807DE68
- ldr r1, _0807DE70
- ldr r0, _0807DE74
- str r0, [r1]
- bx lr
- .align 2, 0
-_0807DE70: .4byte gUnknown_030006DC
-_0807DE74: .4byte gUnknown_083970C8
- thumb_func_end sub_807DE68
-
- thumb_func_start sub_807DE78
-sub_807DE78: @ 807DE78
- push {lr}
- ldr r0, _0807DEB0
- ldr r0, [r0]
- ldr r2, _0807DEB4
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r1, _0807DEB8
- adds r3, r0, r1
- movs r1, 0x14
- strb r1, [r3]
- ldr r3, _0807DEBC
- adds r1, r0, r3
- strb r2, [r1]
- subs r3, 0x6
- adds r1, r0, r3
- strh r2, [r1]
- ldr r1, _0807DEC0
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807DEAC
- movs r0, 0
- movs r1, 0x10
- bl sub_807DB64
-_0807DEAC:
- pop {r0}
- bx r0
- .align 2, 0
-_0807DEB0: .4byte gUnknown_08396FC4
-_0807DEB4: .4byte 0x000006c1
-_0807DEB8: .4byte 0x000006c2
-_0807DEBC: .4byte 0x000006d2
-_0807DEC0: .4byte 0x000006de
- thumb_func_end sub_807DE78
-
- thumb_func_start sub_807DEC4
-sub_807DEC4: @ 807DEC4
- push {r4,lr}
- bl sub_807DE78
- ldr r0, _0807DEEC
- ldr r1, [r0]
- ldr r2, _0807DEF0
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807DEE4
- adds r4, r1, r2
-_0807DEDA:
- bl sub_807DEF4
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807DEDA
-_0807DEE4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807DEEC: .4byte gUnknown_08396FC4
-_0807DEF0: .4byte 0x000006d2
- thumb_func_end sub_807DEC4
-
- thumb_func_start sub_807DEF4
-sub_807DEF4: @ 807DEF4
- push {r4,r5,lr}
- ldr r0, _0807DF10
- ldr r5, [r0]
- ldr r0, _0807DF14
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _0807DF24
- cmp r0, 0x1
- bgt _0807DF18
- cmp r0, 0
- beq _0807DF1E
- b _0807DF48
- .align 2, 0
-_0807DF10: .4byte gUnknown_08396FC4
-_0807DF14: .4byte 0x000006cc
-_0807DF18:
- cmp r0, 0x2
- beq _0807DF30
- b _0807DF48
-_0807DF1E:
- bl sub_807DFD4
- b _0807DF42
-_0807DF24:
- movs r0, 0xC
- movs r1, 0x8
- movs r2, 0x1
- bl sub_807DBA4
- b _0807DF42
-_0807DF30:
- bl sub_807DBE8
- lsls r0, 24
- cmp r0, 0
- beq _0807DF48
- ldr r0, _0807DF50
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
-_0807DF42:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0807DF48:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807DF50: .4byte 0x000006d2
- thumb_func_end sub_807DEF4
-
- thumb_func_start sub_807DF54
-sub_807DF54: @ 807DF54
- push {r4,lr}
- ldr r0, _0807DF6C
- ldr r0, [r0]
- ldr r1, _0807DF70
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0
- beq _0807DF74
- cmp r0, 0x1
- beq _0807DF80
- movs r0, 0
- b _0807DF96
- .align 2, 0
-_0807DF6C: .4byte gUnknown_08396FC4
-_0807DF70: .4byte 0x000006ce
-_0807DF74:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1
- bl sub_807DBA4
- b _0807DF8E
-_0807DF80:
- bl sub_807DBE8
- lsls r0, 24
- cmp r0, 0
- beq _0807DF94
- bl sub_807E0A0
-_0807DF8E:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0807DF94:
- movs r0, 0x1
-_0807DF96:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_807DF54
-
- thumb_func_start sub_807DF9C
-sub_807DF9C: @ 807DF9C
- ldr r0, _0807DFB4
- ldr r1, [r0]
- ldr r0, _0807DFB8
- adds r2, r1, r0
- movs r0, 0
- strb r0, [r2]
- ldr r0, _0807DFBC
- adds r1, r0
- movs r0, 0x14
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0807DFB4: .4byte gUnknown_08396FC4
-_0807DFB8: .4byte 0x000006c1
-_0807DFBC: .4byte 0x000006c2
- thumb_func_end sub_807DF9C
-
- thumb_func_start sub_807DFC0
-sub_807DFC0: @ 807DFC0
- push {lr}
- bl sub_807DF9C
- pop {r0}
- bx r0
- thumb_func_end sub_807DFC0
-
- thumb_func_start nullsub_55
-nullsub_55: @ 807DFCC
- bx lr
- thumb_func_end nullsub_55
-
- thumb_func_start sub_807DFD0
-sub_807DFD0: @ 807DFD0
- movs r0, 0
- bx lr
- thumb_func_end sub_807DFD0
-
- thumb_func_start sub_807DFD4
-sub_807DFD4: @ 807DFD4
- push {r4,r5,lr}
- ldr r0, _0807E04C
- ldr r0, [r0]
- ldr r1, _0807E050
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0807E090
- ldr r0, _0807E054
- bl LoadSpriteSheet
- ldr r0, _0807E058
- bl sub_807D8C0
- movs r5, 0
-_0807DFF2:
- ldr r0, _0807E05C
- movs r1, 0
- movs r2, 0
- movs r3, 0xFF
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _0807E068
- ldr r0, _0807E04C
- ldr r1, [r0]
- lsls r2, r5, 2
- movs r0, 0xFA
- lsls r0, 1
- adds r1, r0
- adds r1, r2
- lsls r4, r3, 4
- adds r4, r3
- lsls r4, 2
- ldr r0, _0807E060
- adds r4, r0
- str r4, [r1]
- ldr r0, _0807E064
- adds r2, r0
- ldrh r0, [r2]
- adds r0, 0x7
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r2, 0x2]
- adds r1, 0x7
- lsls r1, 16
- asrs r1, 16
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- bl sub_80603CC
- adds r4, 0x3E
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- b _0807E07A
- .align 2, 0
-_0807E04C: .4byte gUnknown_08396FC4
-_0807E050: .4byte 0x000006de
-_0807E054: .4byte gUnknown_0839A9D4
-_0807E058: .4byte gUnknown_08397108
-_0807E05C: .4byte gSpriteTemplate_839A9F0
-_0807E060: .4byte gSprites
-_0807E064: .4byte gUnknown_0839A9C8
-_0807E068:
- ldr r0, _0807E098
- ldr r1, [r0]
- lsls r0, r5, 2
- movs r2, 0xFA
- lsls r2, 1
- adds r1, r2
- adds r1, r0
- movs r0, 0
- str r0, [r1]
-_0807E07A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x2
- bls _0807DFF2
- ldr r0, _0807E098
- ldr r0, [r0]
- ldr r1, _0807E09C
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_0807E090:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807E098: .4byte gUnknown_08396FC4
-_0807E09C: .4byte 0x000006de
- thumb_func_end sub_807DFD4
-
- thumb_func_start sub_807E0A0
-sub_807E0A0: @ 807E0A0
- push {r4,r5,lr}
- ldr r0, _0807E0EC
- ldr r1, [r0]
- ldr r2, _0807E0F0
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807E0E4
- movs r4, 0
- movs r0, 0xFA
- lsls r0, 1
- adds r5, r1, r0
-_0807E0B8:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0807E0C6
- bl DestroySprite
-_0807E0C6:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x2
- bls _0807E0B8
- movs r0, 0x90
- lsls r0, 5
- bl FreeSpriteTilesByTag
- ldr r0, _0807E0EC
- ldr r0, [r0]
- ldr r1, _0807E0F0
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0807E0E4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807E0EC: .4byte gUnknown_08396FC4
-_0807E0F0: .4byte 0x000006de
- thumb_func_end sub_807E0A0
-
- thumb_func_start sub_807E0F4
-sub_807E0F4: @ 807E0F4
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- movs r1, 0x1
- ands r0, r1
- strh r0, [r2, 0x2E]
- cmp r0, 0
- beq _0807E10C
- ldrh r0, [r2, 0x20]
- subs r0, 0x1
- strh r0, [r2, 0x20]
-_0807E10C:
- pop {r0}
- bx r0
- thumb_func_end sub_807E0F4
-
- thumb_func_start sub_807E110
-sub_807E110: @ 807E110
- ldr r0, _0807E134
- ldr r1, [r0]
- ldr r0, _0807E138
- adds r3, r1, r0
- movs r2, 0
- movs r0, 0
- strh r0, [r3]
- ldr r3, _0807E13C
- adds r0, r1, r3
- strb r2, [r0]
- subs r3, 0x11
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _0807E140
- adds r1, r0
- strb r2, [r1]
- bx lr
- .align 2, 0
-_0807E134: .4byte gUnknown_08396FC4
-_0807E138: .4byte 0x000006cc
-_0807E13C: .4byte 0x000006d2
-_0807E140: .4byte 0x000006c2
- thumb_func_end sub_807E110
-
- thumb_func_start sub_807E144
-sub_807E144: @ 807E144
- push {r4,lr}
- bl sub_807E110
- ldr r0, _0807E16C
- ldr r1, [r0]
- ldr r2, _0807E170
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807E164
- adds r4, r1, r2
-_0807E15A:
- bl sub_807E174
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807E15A
-_0807E164:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807E16C: .4byte gUnknown_08396FC4
-_0807E170: .4byte 0x000006d2
- thumb_func_end sub_807E144
-
- thumb_func_start sub_807E174
-sub_807E174: @ 807E174
- push {lr}
- ldr r1, _0807E190
- ldr r0, [r1]
- ldr r2, _0807E194
- adds r0, r2
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x4
- bhi _0807E250
- lsls r0, 2
- ldr r1, _0807E198
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807E190: .4byte gUnknown_08396FC4
-_0807E194: .4byte 0x000006cc
-_0807E198: .4byte _0807E19C
- .align 2, 0
-_0807E19C:
- .4byte _0807E1B0
- .4byte _0807E1CC
- .4byte _0807E1E4
- .4byte _0807E200
- .4byte _0807E218
-_0807E1B0:
- ldr r1, [r2]
- ldr r2, _0807E1C4
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807E254
- ldr r0, _0807E1C8
- adds r1, r0
- b _0807E238
- .align 2, 0
-_0807E1C4: .4byte 0x000006c6
-_0807E1C8: .4byte 0x000006cc
-_0807E1CC:
- bl sub_807D9A8
- ldr r0, _0807E1DC
- ldr r1, [r0]
- ldr r2, _0807E1E0
- adds r1, r2
- b _0807E238
- .align 2, 0
-_0807E1DC: .4byte gUnknown_08396FC4
-_0807E1E0: .4byte 0x000006cc
-_0807E1E4:
- bl sub_807D9C8
- lsls r0, 24
- cmp r0, 0
- bne _0807E254
- ldr r0, _0807E1F8
- ldr r1, [r0]
- ldr r0, _0807E1FC
- adds r1, r0
- b _0807E238
- .align 2, 0
-_0807E1F8: .4byte gUnknown_08396FC4
-_0807E1FC: .4byte 0x000006cc
-_0807E200:
- bl sub_807DA14
- ldr r0, _0807E210
- ldr r1, [r0]
- ldr r2, _0807E214
- adds r1, r2
- b _0807E238
- .align 2, 0
-_0807E210: .4byte gUnknown_08396FC4
-_0807E214: .4byte 0x000006cc
-_0807E218:
- bl sub_807DA4C
- ldr r0, _0807E240
- ldr r2, [r0]
- ldr r1, _0807E244
- adds r0, r2, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x6
- bne _0807E254
- ldr r0, _0807E248
- adds r1, r2, r0
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _0807E24C
- adds r1, r2, r0
-_0807E238:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _0807E254
- .align 2, 0
-_0807E240: .4byte gUnknown_08396FC4
-_0807E244: .4byte 0x0000073c
-_0807E248: .4byte 0x000006d2
-_0807E24C: .4byte 0x000006cc
-_0807E250:
- bl sub_807DA4C
-_0807E254:
- pop {r0}
- bx r0
- thumb_func_end sub_807E174
-
- thumb_func_start sub_807E258
-sub_807E258: @ 807E258
- movs r0, 0
- bx lr
- thumb_func_end sub_807E258
-
- thumb_func_start sub_807E25C
-sub_807E25C: @ 807E25C
- push {lr}
- ldr r0, _0807E26C
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0807E26C: .4byte task50_0807B6D4
- thumb_func_end sub_807E25C
-
- thumb_func_start task50_0807B6D4
-task50_0807B6D4: @ 807E270
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0807E294
- adds r3, r0, r1
- movs r1, 0x8
- ldrsh r0, [r3, r1]
- cmp r0, 0x4
- bhi _0807E35E
- lsls r0, 2
- ldr r1, _0807E298
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807E294: .4byte gTasks
-_0807E298: .4byte _0807E29C
- .align 2, 0
-_0807E29C:
- .4byte _0807E2B0
- .4byte _0807E2D2
- .4byte _0807E300
- .4byte _0807E334
- .4byte _0807E354
-_0807E2B0:
- movs r2, 0
- strh r2, [r3, 0xA]
- strh r2, [r3, 0xC]
- ldr r1, _0807E2F4
- ldrh r0, [r1]
- strh r0, [r3, 0xE]
- ldr r4, _0807E2F8
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x8
- movs r0, 0x9E
- strh r0, [r1]
- ldr r0, _0807E2FC
- strh r2, [r0]
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_0807E2D2:
- ldrh r0, [r3, 0xA]
- adds r0, 0x3
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _0807E2E4
- movs r0, 0x10
- strh r0, [r3, 0xA]
-_0807E2E4:
- ldr r0, _0807E2FC
- ldrh r1, [r3, 0xA]
- strh r1, [r0]
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0xF
- ble _0807E35E
- b _0807E344
- .align 2, 0
-_0807E2F4: .4byte REG_WININ
-_0807E2F8: .4byte 0x00003f3f
-_0807E2FC: .4byte REG_BLDY
-_0807E300:
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r3, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _0807E35E
- strh r1, [r3, 0xC]
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- cmp r0, 0
- bgt _0807E326
- strh r1, [r3, 0xA]
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_0807E326:
- ldr r1, _0807E330
- ldrh r0, [r3, 0xA]
- strh r0, [r1]
- b _0807E35E
- .align 2, 0
-_0807E330: .4byte REG_BLDY
-_0807E334:
- ldr r0, _0807E34C
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- ldr r1, _0807E350
- ldrh r0, [r3, 0xE]
- strh r0, [r1]
-_0807E344:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _0807E35E
- .align 2, 0
-_0807E34C: .4byte REG_BLDCNT
-_0807E350: .4byte REG_WININ
-_0807E354:
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
-_0807E35E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end task50_0807B6D4
-
- thumb_func_start sub_807E364
-sub_807E364: @ 807E364
- push {r4,lr}
- ldr r0, _0807E3B4
- ldr r1, [r0]
- ldr r2, _0807E3B8
- adds r0, r1, r2
- movs r3, 0
- movs r2, 0
- strh r2, [r0]
- ldr r4, _0807E3BC
- adds r0, r1, r4
- strb r3, [r0]
- adds r4, 0x4
- adds r0, r1, r4
- strh r2, [r0]
- ldr r0, _0807E3C0
- adds r2, r1, r0
- movs r0, 0x8
- strb r0, [r2]
- ldr r2, _0807E3C4
- adds r0, r1, r2
- strb r3, [r0]
- adds r4, 0x3
- adds r2, r1, r4
- movs r0, 0xA
- strb r0, [r2]
- ldr r0, _0807E3C8
- adds r2, r1, r0
- movs r0, 0x3
- strb r0, [r2]
- ldr r2, _0807E3CC
- adds r1, r2
- movs r0, 0x14
- strb r0, [r1]
- movs r0, 0x55
- bl sub_807DD5C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807E3B4: .4byte gUnknown_08396FC4
-_0807E3B8: .4byte 0x000006cc
-_0807E3BC: .4byte 0x000006d2
-_0807E3C0: .4byte 0x000006db
-_0807E3C4: .4byte 0x000006dc
-_0807E3C8: .4byte 0x000006c1
-_0807E3CC: .4byte 0x000006c2
- thumb_func_end sub_807E364
-
- thumb_func_start sub_807E3D0
-sub_807E3D0: @ 807E3D0
- push {r4,lr}
- bl sub_807E364
- ldr r0, _0807E3F8
- ldr r1, [r0]
- ldr r2, _0807E3FC
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807E3F0
- adds r4, r1, r2
-_0807E3E6:
- bl sub_807E400
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807E3E6
-_0807E3F0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807E3F8: .4byte gUnknown_08396FC4
-_0807E3FC: .4byte 0x000006d2
- thumb_func_end sub_807E3D0
-
- thumb_func_start sub_807E400
-sub_807E400: @ 807E400
- push {r4,r5,lr}
- ldr r0, _0807E41C
- ldr r5, [r0]
- ldr r0, _0807E420
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _0807E430
- cmp r0, 0x1
- bgt _0807E424
- cmp r0, 0
- beq _0807E42A
- b _0807E454
- .align 2, 0
-_0807E41C: .4byte gUnknown_08396FC4
-_0807E420: .4byte 0x000006cc
-_0807E424:
- cmp r0, 0x2
- beq _0807E43C
- b _0807E454
-_0807E42A:
- bl sub_807E7A4
- b _0807E44E
-_0807E430:
- bl sub_807E7B4
- lsls r0, 24
- cmp r0, 0
- bne _0807E454
- b _0807E44E
-_0807E43C:
- bl sub_807E8E8
- lsls r0, 24
- cmp r0, 0
- bne _0807E454
- ldr r0, _0807E45C
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
-_0807E44E:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0807E454:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807E45C: .4byte 0x000006d2
- thumb_func_end sub_807E400
-
- thumb_func_start sub_807E460
-sub_807E460: @ 807E460
- push {r4,r5,lr}
- ldr r0, _0807E47C
- ldr r2, [r0]
- ldr r1, _0807E480
- adds r3, r2, r1
- ldrh r1, [r3]
- adds r4, r0, 0
- cmp r1, 0
- beq _0807E484
- cmp r1, 0x1
- beq _0807E4B8
- movs r0, 0
- b _0807E4E6
- .align 2, 0
-_0807E47C: .4byte gUnknown_08396FC4
-_0807E480: .4byte 0x000006ce
-_0807E484:
- ldr r5, _0807E4A4
- adds r0, r2, r5
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0807E496
- cmp r0, 0x5
- beq _0807E496
- cmp r0, 0xD
- bne _0807E4AC
-_0807E496:
- ldr r0, [r4]
- ldr r1, _0807E4A8
- adds r0, r1
- movs r1, 0xFF
- strh r1, [r0]
- movs r0, 0
- b _0807E4E6
- .align 2, 0
-_0807E4A4: .4byte 0x000006d1
-_0807E4A8: .4byte 0x000006ce
-_0807E4AC:
- ldr r4, _0807E4D8
- adds r0, r2, r4
- strb r1, [r0]
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
-_0807E4B8:
- bl sub_807E8E8
- lsls r0, 24
- cmp r0, 0
- bne _0807E4E4
- bl sub_807E974
- ldr r0, _0807E4DC
- ldr r1, [r0]
- ldr r5, _0807E4E0
- adds r1, r5
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0
- b _0807E4E6
- .align 2, 0
-_0807E4D8: .4byte 0x000006d9
-_0807E4DC: .4byte gUnknown_08396FC4
-_0807E4E0: .4byte 0x000006ce
-_0807E4E4:
- movs r0, 0x1
-_0807E4E6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_807E460
-
- thumb_func_start sub_807E4EC
-sub_807E4EC: @ 807E4EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- movs r1, 0x30
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bne _0807E500
- ldr r0, _0807E5A4
- strh r0, [r7, 0x30]
-_0807E500:
- movs r2, 0x30
- ldrsh r1, [r7, r2]
- ldr r0, _0807E5A8
- muls r0, r1
- ldr r3, _0807E5AC
- adds r0, r3
- lsls r0, 1
- lsrs r0, 17
- movs r1, 0x96
- lsls r1, 2
- bl __umodsi3
- movs r1, 0
- mov r8, r1
- strh r0, [r7, 0x30]
- ldr r1, _0807E5B0
- ldr r0, _0807E5B4
- ldr r5, [r0]
- ldr r2, _0807E5B8
- adds r5, r2
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldrh r6, [r0]
- movs r3, 0x30
- ldrsh r0, [r7, r3]
- movs r1, 0x1E
- bl __modsi3
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- lsls r0, r4, 3
- strh r0, [r7, 0x32]
- movs r1, 0x30
- ldrsh r0, [r7, r1]
- movs r1, 0x1E
- bl __divsi3
- lsls r0, 16
- lsls r4, 7
- strh r4, [r7, 0x32]
- asrs r0, 9
- strh r0, [r7, 0x34]
- ldr r2, _0807E5BC
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r2
- movs r3, 0
- ldrsh r1, [r1, r3]
- muls r1, r6
- subs r4, r1
- strh r4, [r7, 0x32]
- ldrb r1, [r5]
- lsls r1, 2
- adds r2, 0x2
- adds r1, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- muls r1, r6
- subs r0, r1
- strh r0, [r7, 0x34]
- adds r0, r7, 0
- movs r1, 0
- bl StartSpriteAnim
- mov r3, r8
- strh r3, [r7, 0x36]
- adds r2, r7, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- strh r6, [r7, 0x2E]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807E5A4: .4byte 0x00000169
-_0807E5A8: .4byte 0x41c64e6d
-_0807E5AC: .4byte 0x00003039
-_0807E5B0: .4byte gUnknown_0839AAC4
-_0807E5B4: .4byte gUnknown_08396FC4
-_0807E5B8: .4byte 0x000006dc
-_0807E5BC: .4byte gUnknown_0839AABC
- thumb_func_end sub_807E4EC
-
- thumb_func_start sub_807E5C0
-sub_807E5C0: @ 807E5C0
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x36
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0807E69C
- ldr r3, _0807E634
- ldr r4, _0807E638
- ldr r2, [r4]
- ldr r0, _0807E63C
- adds r2, r0
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0]
- ldrh r0, [r5, 0x32]
- adds r1, r0
- strh r1, [r5, 0x32]
- ldrb r0, [r2]
- lsls r0, 2
- adds r3, 0x2
- adds r0, r3
- ldrh r0, [r0]
- ldrh r2, [r5, 0x34]
- adds r0, r2
- strh r0, [r5, 0x34]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r5, 0x20]
- lsls r0, 16
- asrs r2, r0, 20
- strh r2, [r5, 0x22]
- movs r3, 0x38
- ldrsh r0, [r5, r3]
- adds r3, r4, 0
- cmp r0, 0
- beq _0807E640
- adds r0, r1, 0
- adds r0, 0x8
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bhi _0807E640
- adds r1, r2, 0
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- blt _0807E640
- cmp r1, 0xB0
- bgt _0807E640
- adds r0, r5, 0
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- b _0807E64A
- .align 2, 0
-_0807E634: .4byte gUnknown_0839AABC
-_0807E638: .4byte gUnknown_08396FC4
-_0807E63C: .4byte 0x000006dc
-_0807E640:
- adds r0, r5, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
-_0807E64A:
- strb r1, [r0]
- adds r4, r0, 0
- ldrh r0, [r5, 0x2E]
- subs r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _0807E6BC
- ldr r0, [r3]
- ldr r1, _0807E690
- adds r0, r1
- ldrb r1, [r0]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- movs r0, 0x1
- strh r0, [r5, 0x36]
- ldr r1, _0807E694
- ldrh r0, [r5, 0x20]
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r5, 0x20]
- ldr r1, _0807E698
- ldrh r0, [r5, 0x22]
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- b _0807E6BC
- .align 2, 0
-_0807E690: .4byte 0x000006dc
-_0807E694: .4byte gSpriteCoordOffsetX
-_0807E698: .4byte gSpriteCoordOffsetY
-_0807E69C:
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0807E6BC
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- adds r0, r5, 0
- bl sub_807E4EC
-_0807E6BC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_807E5C0
-
- thumb_func_start sub_807E6C4
-sub_807E6C4: @ 807E6C4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0807E6E4
- adds r0, r4, 0
- bl sub_807E4EC
- ldr r0, _0807E6E0
- str r0, [r4, 0x1C]
- b _0807E6E8
- .align 2, 0
-_0807E6E0: .4byte sub_807E5C0
-_0807E6E4:
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
-_0807E6E8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_807E6C4
-
- thumb_func_start sub_807E6F0
-sub_807E6F0: @ 807E6F0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- lsls r5, r1, 16
- lsrs r5, 16
- ldr r2, _0807E774
- ldr r0, _0807E778
- ldr r0, [r0]
- ldr r1, _0807E77C
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r1, r0, r2
- ldrh r1, [r1]
- mov r8, r1
- adds r2, 0x2
- adds r0, r2
- ldrh r4, [r0]
- add r4, r8
- adds r0, r5, 0
- adds r1, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 16
- lsrs r4, r0, 16
- subs r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _0807E780
- cmp r6, r0
- beq _0807E74E
- adds r5, r0, 0
-_0807E73E:
- adds r0, r7, 0
- bl sub_807E4EC
- subs r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, r5
- bne _0807E73E
-_0807E74E:
- cmp r4, r8
- bcs _0807E784
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _0807E780
- cmp r4, r0
- beq _0807E770
- adds r5, r0, 0
-_0807E760:
- adds r0, r7, 0
- bl sub_807E5C0
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r5
- bne _0807E760
-_0807E770:
- movs r0, 0
- b _0807E798
- .align 2, 0
-_0807E774: .4byte gUnknown_0839AAC4
-_0807E778: .4byte gUnknown_08396FC4
-_0807E77C: .4byte 0x000006dc
-_0807E780: .4byte 0x0000ffff
-_0807E784:
- mov r1, r8
- subs r0, r4, r1
- strh r0, [r7, 0x2E]
- adds r2, r7, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
-_0807E798:
- strh r0, [r7, 0x3A]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_807E6F0
-
- thumb_func_start sub_807E7A4
-sub_807E7A4: @ 807E7A4
- push {lr}
- ldr r0, _0807E7B0
- bl LoadSpriteSheet
- pop {r0}
- bx r0
- .align 2, 0
-_0807E7B0: .4byte gUnknown_0839AACC
- thumb_func_end sub_807E7A4
-
- thumb_func_start sub_807E7B4
-sub_807E7B4: @ 807E7B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _0807E860
- ldr r4, [r0]
- ldr r0, _0807E864
- adds r2, r4, r0
- ldrb r0, [r2]
- cmp r0, 0x18
- bne _0807E7CE
- b _0807E8D4
-_0807E7CE:
- ldrb r7, [r2]
- ldr r0, _0807E868
- ldr r2, _0807E86C
- lsls r6, r7, 2
- adds r2, r6, r2
- movs r3, 0
- ldrsh r1, [r2, r3]
- movs r3, 0x2
- ldrsh r2, [r2, r3]
- movs r3, 0x4E
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _0807E87C
- ldr r3, _0807E870
- lsls r4, r5, 4
- adds r1, r4, r5
- lsls r1, 2
- adds r1, r3
- movs r0, 0
- strh r0, [r1, 0x38]
- lsls r2, r7, 3
- adds r0, r2, r7
- lsls r0, 4
- adds r0, r7
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0807E874
- mov r10, r6
- mov r9, r3
- mov r12, r4
- mov r8, r2
- cmp r0, r1
- ble _0807E832
- adds r2, r1, 0
-_0807E81A:
- adds r0, r4, r5
- lsls r0, 2
- ldr r6, _0807E870
- adds r0, r6
- ldr r3, _0807E878
- ldrh r6, [r0, 0x30]
- adds r1, r3, r6
- strh r1, [r0, 0x30]
- lsls r1, 16
- asrs r1, 16
- cmp r1, r2
- bgt _0807E81A
-_0807E832:
- mov r0, r12
- adds r4, r0, r5
- lsls r4, 2
- add r4, r9
- adds r0, r4, 0
- bl sub_807E4EC
- mov r3, r8
- adds r1, r3, r7
- adds r0, r4, 0
- bl sub_807E6F0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0807E860
- ldr r0, [r0]
- add r0, r10
- str r4, [r0]
- b _0807E882
- .align 2, 0
-_0807E860: .4byte gUnknown_08396FC4
-_0807E864: .4byte 0x000006da
-_0807E868: .4byte gSpriteTemplate_839AAA4
-_0807E86C: .4byte gUnknown_0839AA08
-_0807E870: .4byte gSprites
-_0807E874: .4byte 0x00000257
-_0807E878: .4byte 0xfffffda8
-_0807E87C:
- adds r1, r4, r6
- movs r0, 0
- str r0, [r1]
-_0807E882:
- ldr r0, _0807E8B8
- ldr r2, [r0]
- ldr r6, _0807E8BC
- adds r1, r2, r6
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x18
- bne _0807E8D8
- movs r3, 0
- adds r1, r2, 0
- ldr r5, _0807E8C0
- ldr r4, _0807E8C4
-_0807E8A0:
- lsls r0, r3, 2
- adds r0, r1, r0
- ldr r2, [r0]
- cmp r2, 0
- beq _0807E8CA
- movs r6, 0x3A
- ldrsh r0, [r2, r6]
- cmp r0, 0
- bne _0807E8C8
- str r5, [r2, 0x1C]
- b _0807E8CA
- .align 2, 0
-_0807E8B8: .4byte gUnknown_08396FC4
-_0807E8BC: .4byte 0x000006da
-_0807E8C0: .4byte sub_807E5C0
-_0807E8C4: .4byte sub_807E6C4
-_0807E8C8:
- str r4, [r2, 0x1C]
-_0807E8CA:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x17
- bls _0807E8A0
-_0807E8D4:
- movs r0, 0
- b _0807E8DA
-_0807E8D8:
- movs r0, 0x1
-_0807E8DA:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_807E7B4
-
- thumb_func_start sub_807E8E8
-sub_807E8E8: @ 807E8E8
- push {r4-r7,lr}
- ldr r0, _0807E904
- ldr r3, [r0]
- movs r0, 0xDB
- lsls r0, 3
- adds r4, r3, r0
- ldr r1, _0807E908
- adds r5, r3, r1
- ldrb r0, [r4]
- ldrb r7, [r5]
- cmp r0, r7
- bne _0807E90C
- movs r0, 0
- b _0807E96E
- .align 2, 0
-_0807E904: .4byte gUnknown_08396FC4
-_0807E908: .4byte 0x000006d9
-_0807E90C:
- ldr r0, _0807E944
- adds r2, r3, r0
- ldrh r0, [r2]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r2]
- ldr r7, _0807E948
- adds r1, r3, r7
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r1]
- cmp r0, r1
- bls _0807E96C
- strh r6, [r2]
- ldrb r0, [r4]
- adds r1, r0, 0
- ldrb r5, [r5]
- cmp r1, r5
- bcs _0807E94C
- adds r0, 0x1
- strb r0, [r4]
- lsls r0, r1, 2
- adds r0, r3, r0
- ldr r1, [r0]
- movs r0, 0x1
- strh r0, [r1, 0x38]
- b _0807E96C
- .align 2, 0
-_0807E944: .4byte 0x000006d6
-_0807E948: .4byte 0x000006db
-_0807E94C:
- subs r0, 0x1
- strb r0, [r4]
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r3, r0
- ldr r0, [r0]
- strh r6, [r0, 0x38]
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r3, r0
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
-_0807E96C:
- movs r0, 0x1
-_0807E96E:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_807E8E8
-
- thumb_func_start sub_807E974
-sub_807E974: @ 807E974
- push {r4-r7,lr}
- movs r4, 0
- ldr r0, _0807E9BC
- ldr r2, [r0]
- ldr r3, _0807E9C0
- adds r1, r2, r3
- adds r7, r0, 0
- ldrb r1, [r1]
- cmp r4, r1
- bcs _0807E9A6
- adds r5, r2, 0
- adds r6, r5, r3
-_0807E98C:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0807E99A
- bl DestroySprite
-_0807E99A:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrb r0, [r6]
- cmp r4, r0
- bcc _0807E98C
-_0807E9A6:
- ldr r0, [r7]
- ldr r1, _0807E9C0
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0807E9C4
- bl FreeSpriteTilesByTag
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807E9BC: .4byte gUnknown_08396FC4
-_0807E9C0: .4byte 0x000006da
-_0807E9C4: .4byte 0x00001206
- thumb_func_end sub_807E974
-
- thumb_func_start sub_807E9C8
-sub_807E9C8: @ 807E9C8
- push {r4,lr}
- ldr r0, _0807EA04
- ldr r1, [r0]
- ldr r2, _0807EA08
- adds r0, r1, r2
- movs r2, 0
- movs r3, 0
- strh r3, [r0]
- ldr r4, _0807EA0C
- adds r0, r1, r4
- strb r2, [r0]
- ldr r0, _0807EA10
- adds r2, r1, r0
- movs r0, 0x3
- strb r0, [r2]
- subs r4, 0x10
- adds r2, r1, r4
- movs r0, 0x14
- strb r0, [r2]
- ldr r0, _0807EA14
- adds r2, r1, r0
- movs r0, 0x10
- strb r0, [r2]
- movs r2, 0xDC
- lsls r2, 3
- adds r1, r2
- strh r3, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807EA04: .4byte gUnknown_08396FC4
-_0807EA08: .4byte 0x000006cc
-_0807EA0C: .4byte 0x000006d2
-_0807EA10: .4byte 0x000006c1
-_0807EA14: .4byte 0x000006e5
- thumb_func_end sub_807E9C8
-
- thumb_func_start sub_807EA18
-sub_807EA18: @ 807EA18
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- bl sub_807E9C8
- ldr r2, _0807EA78
- ldr r1, [r2]
- ldr r3, _0807EA7C
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807EA6E
- mov r8, r2
- adds r7, r1, r3
-_0807EA34:
- bl snowflakes_progress2
- movs r4, 0
- mov r1, r8
- ldr r0, [r1]
- ldr r3, _0807EA80
- adds r0, r3
- ldrb r0, [r0]
- cmp r4, r0
- bcs _0807EA68
- ldr r0, _0807EA78
- ldr r5, [r0]
- adds r6, r5, r3
-_0807EA4E:
- lsls r1, r4, 2
- adds r0, r5, 0
- adds r0, 0x60
- adds r0, r1
- ldr r0, [r0]
- bl sub_807ED48
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrb r0, [r6]
- cmp r4, r0
- bcc _0807EA4E
-_0807EA68:
- ldrb r0, [r7]
- cmp r0, 0
- beq _0807EA34
-_0807EA6E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807EA78: .4byte gUnknown_08396FC4
-_0807EA7C: .4byte 0x000006d2
-_0807EA80: .4byte 0x000006e4
- thumb_func_end sub_807EA18
-
- thumb_func_start snowflakes_progress2
-snowflakes_progress2: @ 807EA84
- push {r4,r5,lr}
- ldr r0, _0807EAB4
- ldr r5, [r0]
- ldr r0, _0807EAB8
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0
- bne _0807EAAC
- bl snowflakes_progress
- lsls r0, 24
- cmp r0, 0
- bne _0807EAAC
- ldr r0, _0807EABC
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0807EAAC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807EAB4: .4byte gUnknown_08396FC4
-_0807EAB8: .4byte 0x000006cc
-_0807EABC: .4byte 0x000006d2
- thumb_func_end snowflakes_progress2
-
- thumb_func_start sub_807EAC0
-sub_807EAC0: @ 807EAC0
- push {r4,lr}
- ldr r0, _0807EAD8
- ldr r2, [r0]
- ldr r0, _0807EADC
- adds r3, r2, r0
- ldrh r1, [r3]
- cmp r1, 0
- beq _0807EAE0
- cmp r1, 0x1
- beq _0807EAF2
- movs r0, 0
- b _0807EB1E
- .align 2, 0
-_0807EAD8: .4byte gUnknown_08396FC4
-_0807EADC: .4byte 0x000006ce
-_0807EAE0:
- ldr r4, _0807EB10
- adds r0, r2, r4
- strb r1, [r0]
- subs r4, 0x5
- adds r0, r2, r4
- strh r1, [r0]
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
-_0807EAF2:
- bl snowflakes_progress
- lsls r0, 24
- cmp r0, 0
- bne _0807EB1C
- ldr r0, _0807EB14
- ldr r1, [r0]
- ldr r0, _0807EB18
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0
- b _0807EB1E
- .align 2, 0
-_0807EB10: .4byte 0x000006e5
-_0807EB14: .4byte gUnknown_08396FC4
-_0807EB18: .4byte 0x000006ce
-_0807EB1C:
- movs r0, 0x1
-_0807EB1E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_807EAC0
-
- thumb_func_start snowflakes_progress
-snowflakes_progress: @ 807EB24
- push {r4,lr}
- ldr r0, _0807EB40
- ldr r1, [r0]
- ldr r0, _0807EB44
- adds r3, r1, r0
- ldr r4, _0807EB48
- adds r2, r1, r4
- ldrb r0, [r3]
- ldrb r4, [r2]
- cmp r0, r4
- bne _0807EB4C
- movs r0, 0
- b _0807EB8E
- .align 2, 0
-_0807EB40: .4byte gUnknown_08396FC4
-_0807EB44: .4byte 0x000006e4
-_0807EB48: .4byte 0x000006e5
-_0807EB4C:
- movs r0, 0xDC
- lsls r0, 3
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x24
- bls _0807EB76
- movs r0, 0
- strh r0, [r1]
- ldrb r0, [r3]
- ldrb r2, [r2]
- cmp r0, r2
- bcs _0807EB72
- bl snowflake_add
- b _0807EB76
-_0807EB72:
- bl snowflake_remove
-_0807EB76:
- ldr r0, _0807EB94
- ldr r0, [r0]
- ldr r2, _0807EB98
- adds r1, r0, r2
- ldr r4, _0807EB9C
- adds r0, r4
- ldrb r1, [r1]
- ldrb r0, [r0]
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
-_0807EB8E:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0807EB94: .4byte gUnknown_08396FC4
-_0807EB98: .4byte 0x000006e4
-_0807EB9C: .4byte 0x000006e5
- thumb_func_end snowflakes_progress
-
- thumb_func_start snowflake_add
-snowflake_add: @ 807EBA0
- push {r4-r6,lr}
- ldr r0, _0807EBF4
- movs r1, 0
- movs r2, 0
- movs r3, 0x4E
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _0807EC04
- ldr r0, _0807EBF8
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- adds r4, r0
- ldr r0, _0807EBFC
- ldr r5, [r0]
- ldr r0, _0807EC00
- adds r6, r5, r0
- ldrb r0, [r6]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_807EC40
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r6]
- adds r1, r0, 0x1
- strb r1, [r6]
- lsls r0, 24
- lsrs r0, 22
- adds r5, 0x60
- adds r5, r0
- str r4, [r5]
- movs r0, 0x1
- b _0807EC06
- .align 2, 0
-_0807EBF4: .4byte gSpriteTemplate_839AB04
-_0807EBF8: .4byte gSprites
-_0807EBFC: .4byte gUnknown_08396FC4
-_0807EC00: .4byte 0x000006e4
-_0807EC04:
- movs r0, 0
-_0807EC06:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end snowflake_add
-
- thumb_func_start snowflake_remove
-snowflake_remove: @ 807EC0C
- push {lr}
- ldr r0, _0807EC20
- ldr r1, [r0]
- ldr r0, _0807EC24
- adds r2, r1, r0
- ldrb r0, [r2]
- cmp r0, 0
- bne _0807EC28
- movs r0, 0
- b _0807EC3C
- .align 2, 0
-_0807EC20: .4byte gUnknown_08396FC4
-_0807EC24: .4byte 0x000006e4
-_0807EC28:
- subs r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 22
- adds r1, 0x60
- adds r1, r0
- ldr r0, [r1]
- bl DestroySprite
- movs r0, 0x1
-_0807EC3C:
- pop {r1}
- bx r1
- thumb_func_end snowflake_remove
-
- thumb_func_start sub_807EC40
-sub_807EC40: @ 807EC40
- push {r4-r7,lr}
- adds r5, r0, 0
- bl Random
- movs r1, 0x36
- ldrsh r2, [r5, r1]
- lsls r1, r2, 2
- adds r1, r2
- movs r2, 0x7
- ands r1, r2
- lsls r4, r1, 4
- subs r4, r1
- lsls r4, 1
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1E
- bl __umodsi3
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- ldr r1, _0807ECE4
- adds r0, r5, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r1]
- adds r0, r1
- movs r2, 0x3
- negs r2, r2
- adds r1, r2, 0
- subs r1, r0
- movs r7, 0
- strh r1, [r5, 0x22]
- ldr r1, _0807ECE8
- adds r0, r5, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r1]
- adds r0, r1
- subs r4, r0
- strh r4, [r5, 0x20]
- movs r1, 0x22
- ldrsh r0, [r5, r1]
- lsls r0, 7
- strh r0, [r5, 0x2E]
- strh r7, [r5, 0x24]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r6, r0, 0
- movs r4, 0x3
- ands r4, r6
- lsls r0, r4, 2
- adds r0, r4
- adds r0, 0x40
- strh r0, [r5, 0x30]
- strh r0, [r5, 0x3C]
- movs r1, 0x1
- bics r1, r6
- adds r0, r5, 0
- bl StartSpriteAnim
- strh r7, [r5, 0x34]
- movs r0, 0x1
- cmp r4, 0
- bne _0807ECD0
- movs r0, 0x2
-_0807ECD0:
- strh r0, [r5, 0x32]
- movs r0, 0x1F
- ands r0, r6
- adds r0, 0xD2
- strh r0, [r5, 0x3A]
- strh r7, [r5, 0x38]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807ECE4: .4byte gSpriteCoordOffsetY
-_0807ECE8: .4byte gSpriteCoordOffsetX
- thumb_func_end sub_807EC40
-
- thumb_func_start sub_807ECEC
-sub_807ECEC: @ 807ECEC
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _0807ED38
- ldr r0, [r0]
- ldr r1, _0807ED3C
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0x12
- bls _0807ED32
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _0807ED40
- str r0, [r3, 0x1C]
- ldr r1, _0807ED44
- adds r0, r3, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r1]
- adds r0, r1
- movs r1, 0xFA
- subs r1, r0
- movs r2, 0
- strh r1, [r3, 0x22]
- movs r1, 0x22
- ldrsh r0, [r3, r1]
- lsls r0, 7
- strh r0, [r3, 0x2E]
- strh r2, [r4]
-_0807ED32:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807ED38: .4byte gUnknown_08396FC4
-_0807ED3C: .4byte 0x000006e2
-_0807ED40: .4byte sub_807ED48
-_0807ED44: .4byte gSpriteCoordOffsetY
- thumb_func_end sub_807ECEC
-
- thumb_func_start sub_807ED48
-sub_807ED48: @ 807ED48
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x2E]
- adds r0, r1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 23
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x34]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- ldr r1, _0807EDC0
- movs r3, 0x34
- ldrsh r0, [r4, r3]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _0807ED7A
- adds r0, 0x3F
-_0807ED7A:
- asrs r0, 6
- strh r0, [r4, 0x24]
- adds r0, r4, 0
- adds r0, 0x28
- movs r5, 0
- ldrsb r5, [r0, r5]
- ldrh r0, [r4, 0x20]
- adds r0, r5
- ldr r1, _0807EDC4
- ldrh r1, [r1]
- adds r3, r1, r0
- ldr r2, _0807EDC8
- adds r0, r2, 0
- ands r3, r0
- adds r2, r3, 0
- movs r0, 0x80
- lsls r0, 1
- ands r0, r2
- cmp r0, 0
- beq _0807EDAC
- ldr r3, _0807EDCC
- adds r0, r3, 0
- orrs r2, r0
- lsls r0, r2, 16
- lsrs r3, r0, 16
-_0807EDAC:
- lsls r0, r3, 16
- asrs r0, 16
- movs r2, 0x3
- negs r2, r2
- cmp r0, r2
- bge _0807EDD0
- adds r1, r5
- movs r0, 0xF2
- subs r0, r1
- b _0807EDD8
- .align 2, 0
-_0807EDC0: .4byte gSineTable
-_0807EDC4: .4byte gSpriteCoordOffsetX
-_0807EDC8: .4byte 0x000001ff
-_0807EDCC: .4byte 0xffffff00
-_0807EDD0:
- cmp r0, 0xF2
- ble _0807EDDA
- adds r0, r1, r5
- subs r0, r2, r0
-_0807EDD8:
- strh r0, [r4, 0x20]
-_0807EDDA:
- adds r0, r4, 0
- adds r0, 0x29
- movs r3, 0
- ldrsb r3, [r0, r3]
- ldrh r0, [r4, 0x22]
- adds r0, r3
- ldr r1, _0807EE18
- ldrh r1, [r1]
- adds r2, r1, r0
- movs r0, 0xFF
- ands r2, r0
- adds r0, r2, 0
- subs r0, 0xA4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x6
- bhi _0807EE1C
- adds r1, r3
- movs r0, 0xFA
- subs r0, r1
- movs r1, 0
- strh r0, [r4, 0x22]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- lsls r0, 7
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x38]
- movs r0, 0xDC
- strh r0, [r4, 0x3A]
- b _0807EE48
- .align 2, 0
-_0807EE18: .4byte gSpriteCoordOffsetY
-_0807EE1C:
- adds r0, r2, 0
- subs r0, 0xF3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x6
- bhi _0807EE48
- movs r1, 0
- movs r0, 0xA3
- strh r0, [r4, 0x22]
- lsls r0, 7
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x38]
- movs r0, 0xDC
- strh r0, [r4, 0x3A]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0807EE7C
- str r0, [r4, 0x1C]
-_0807EE48:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x3A
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _0807EE74
- adds r0, r4, 0
- bl sub_807EC40
- movs r0, 0xFA
- strh r0, [r4, 0x22]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0807EE7C
- str r0, [r4, 0x1C]
-_0807EE74:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807EE7C: .4byte sub_807ECEC
- thumb_func_end sub_807ED48
-
- thumb_func_start sub_807EE80
-sub_807EE80: @ 807EE80
- push {r4,r5,lr}
- ldr r0, _0807EED8
- ldr r1, [r0]
- ldr r2, _0807EEDC
- adds r0, r1, r2
- movs r3, 0
- movs r2, 0
- strh r2, [r0]
- ldr r5, _0807EEE0
- adds r4, r1, r5
- strb r3, [r4]
- adds r5, 0x4
- adds r0, r1, r5
- strh r2, [r0]
- ldr r0, _0807EEE4
- adds r2, r1, r0
- movs r0, 0x4
- strb r0, [r2]
- ldr r2, _0807EEE8
- adds r0, r1, r2
- strb r3, [r0]
- adds r5, 0x3
- adds r2, r1, r5
- movs r0, 0x10
- strb r0, [r2]
- ldr r0, _0807EEEC
- adds r2, r1, r0
- movs r0, 0x3
- strb r0, [r2]
- subs r5, 0x17
- adds r2, r1, r5
- movs r0, 0x14
- strb r0, [r2]
- strb r3, [r4]
- ldr r0, _0807EEF0
- adds r1, r0
- strb r3, [r1]
- movs r0, 0x51
- bl sub_807DD5C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807EED8: .4byte gUnknown_08396FC4
-_0807EEDC: .4byte 0x000006cc
-_0807EEE0: .4byte 0x000006d2
-_0807EEE4: .4byte 0x000006db
-_0807EEE8: .4byte 0x000006dc
-_0807EEEC: .4byte 0x000006c1
-_0807EEF0: .4byte 0x000006ed
- thumb_func_end sub_807EE80
-
- thumb_func_start sub_807EEF4
-sub_807EEF4: @ 807EEF4
- push {r4,lr}
- bl sub_807EE80
- ldr r0, _0807EF1C
- ldr r1, [r0]
- ldr r2, _0807EF20
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807EF14
- adds r4, r1, r2
-_0807EF0A:
- bl sub_807EFC0
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807EF0A
-_0807EF14:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807EF1C: .4byte gUnknown_08396FC4
-_0807EF20: .4byte 0x000006d2
- thumb_func_end sub_807EEF4
-
- thumb_func_start sub_807EF24
-sub_807EF24: @ 807EF24
- push {r4,r5,lr}
- ldr r0, _0807EF78
- ldr r1, [r0]
- ldr r2, _0807EF7C
- adds r0, r1, r2
- movs r4, 0
- movs r2, 0
- strh r2, [r0]
- ldr r5, _0807EF80
- adds r3, r1, r5
- strb r4, [r3]
- adds r5, 0x4
- adds r0, r1, r5
- strh r2, [r0]
- ldr r0, _0807EF84
- adds r2, r1, r0
- movs r0, 0x4
- strb r0, [r2]
- adds r5, 0x6
- adds r2, r1, r5
- movs r0, 0x1
- strb r0, [r2]
- ldr r0, _0807EF88
- adds r2, r1, r0
- movs r0, 0x18
- strb r0, [r2]
- subs r5, 0x1B
- adds r2, r1, r5
- movs r0, 0x3
- strb r0, [r2]
- ldr r0, _0807EF8C
- adds r1, r0
- movs r0, 0x14
- strb r0, [r1]
- strb r4, [r3]
- movs r0, 0x53
- bl sub_807DD5C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807EF78: .4byte gUnknown_08396FC4
-_0807EF7C: .4byte 0x000006cc
-_0807EF80: .4byte 0x000006d2
-_0807EF84: .4byte 0x000006db
-_0807EF88: .4byte 0x000006d9
-_0807EF8C: .4byte 0x000006c2
- thumb_func_end sub_807EF24
-
- thumb_func_start sub_807EF90
-sub_807EF90: @ 807EF90
- push {r4,lr}
- bl sub_807EF24
- ldr r0, _0807EFB8
- ldr r1, [r0]
- ldr r2, _0807EFBC
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807EFB0
- adds r4, r1, r2
-_0807EFA6:
- bl sub_807EFC0
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807EFA6
-_0807EFB0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807EFB8: .4byte gUnknown_08396FC4
-_0807EFBC: .4byte 0x000006d2
- thumb_func_end sub_807EF90
-
- thumb_func_start sub_807EFC0
-sub_807EFC0: @ 807EFC0
- push {r4,r5,lr}
- bl sub_807F434
- ldr r0, _0807EFE0
- ldr r0, [r0]
- ldr r1, _0807EFE4
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0xE
- bls _0807EFD6
- b _0807F336
-_0807EFD6:
- lsls r0, 2
- ldr r1, _0807EFE8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807EFE0: .4byte gUnknown_08396FC4
-_0807EFE4: .4byte 0x000006cc
-_0807EFE8: .4byte _0807EFEC
- .align 2, 0
-_0807EFEC:
- .4byte _0807F028
- .4byte _0807F044
- .4byte _0807F068
- .4byte _0807F098
- .4byte _0807F0BC
- .4byte _0807F0EC
- .4byte _0807F11C
- .4byte _0807F148
- .4byte _0807F166
- .4byte _0807F1C4
- .4byte _0807F248
- .4byte _0807F270
- .4byte _0807F2A0
- .4byte _0807F2E4
- .4byte _0807F318
-_0807F028:
- bl sub_807E7A4
- ldr r0, _0807F03C
- ldr r1, [r0]
- ldr r2, _0807F040
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- b _0807F334
- .align 2, 0
-_0807F03C: .4byte gUnknown_08396FC4
-_0807F040: .4byte 0x000006cc
-_0807F044:
- bl sub_807E7B4
- lsls r0, 24
- cmp r0, 0
- beq _0807F050
- b _0807F336
-_0807F050:
- ldr r0, _0807F060
- ldr r1, [r0]
- ldr r3, _0807F064
- adds r1, r3
- ldrh r0, [r1]
- adds r0, 0x1
- b _0807F334
- .align 2, 0
-_0807F060: .4byte gUnknown_08396FC4
-_0807F064: .4byte 0x000006cc
-_0807F068:
- bl sub_807E8E8
- lsls r0, 24
- cmp r0, 0
- beq _0807F074
- b _0807F336
-_0807F074:
- ldr r0, _0807F08C
- ldr r1, [r0]
- ldr r0, _0807F090
- adds r2, r1, r0
- movs r0, 0x1
- strb r0, [r2]
- ldr r2, _0807F094
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- b _0807F334
- .align 2, 0
-_0807F08C: .4byte gUnknown_08396FC4
-_0807F090: .4byte 0x000006d2
-_0807F094: .4byte 0x000006cc
-_0807F098:
- ldr r0, _0807F0B0
- ldr r1, [r0]
- ldr r3, _0807F0B4
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807F0A8
- b _0807F336
-_0807F0A8:
- ldr r0, _0807F0B8
- adds r1, r0
- movs r0, 0x6
- b _0807F334
- .align 2, 0
-_0807F0B0: .4byte gUnknown_08396FC4
-_0807F0B4: .4byte 0x000006c6
-_0807F0B8: .4byte 0x000006cc
-_0807F0BC:
- ldr r0, _0807F10C
- ldr r4, [r0]
- ldr r2, _0807F110
- adds r1, r4, r2
- movs r0, 0x1
- strb r0, [r1]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r5, 0xB4
- lsls r5, 1
- adds r1, r5, 0
- bl __umodsi3
- adds r0, r5
- ldr r3, _0807F114
- adds r1, r4, r3
- strh r0, [r1]
- ldr r0, _0807F118
- adds r4, r0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0807F0EC:
- ldr r0, _0807F10C
- ldr r2, [r0]
- ldr r3, _0807F114
- adds r1, r2, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _0807F102
- b _0807F336
-_0807F102:
- ldr r0, _0807F118
- adds r1, r2, r0
- ldrh r0, [r1]
- adds r0, 0x1
- b _0807F334
- .align 2, 0
-_0807F10C: .4byte gUnknown_08396FC4
-_0807F110: .4byte 0x000006ea
-_0807F114: .4byte 0x000006e6
-_0807F118: .4byte 0x000006cc
-_0807F11C:
- ldr r0, _0807F13C
- ldr r4, [r0]
- ldr r1, _0807F140
- adds r0, r4, r1
- movs r5, 0x1
- strb r5, [r0]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ands r0, r5
- ldr r2, _0807F144
- adds r1, r4, r2
- strb r0, [r1]
- b _0807F1A4
- .align 2, 0
-_0807F13C: .4byte gUnknown_08396FC4
-_0807F140: .4byte 0x000006ea
-_0807F144: .4byte 0x000006eb
-_0807F148:
- bl Random
- ldr r1, _0807F1B0
- ldr r2, [r1]
- movs r1, 0x1
- ands r1, r0
- adds r1, 0x1
- ldr r3, _0807F1B4
- adds r0, r2, r3
- strb r1, [r0]
- ldr r0, _0807F1B8
- adds r2, r0
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
-_0807F166:
- movs r0, 0x13
- bl sub_807D5BC
- ldr r0, _0807F1B0
- ldr r1, [r0]
- ldr r2, _0807F1BC
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807F18A
- ldr r3, _0807F1B4
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0807F18A
- movs r0, 0x14
- bl sub_807F3F8
-_0807F18A:
- bl Random
- ldr r1, _0807F1B0
- ldr r4, [r1]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- adds r0, 0x6
- ldr r2, _0807F1C0
- adds r1, r4, r2
- strh r0, [r1]
-_0807F1A4:
- ldr r3, _0807F1B8
- adds r4, r3
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0807F336
- .align 2, 0
-_0807F1B0: .4byte gUnknown_08396FC4
-_0807F1B4: .4byte 0x000006ec
-_0807F1B8: .4byte 0x000006cc
-_0807F1BC: .4byte 0x000006eb
-_0807F1C0: .4byte 0x000006e6
-_0807F1C4:
- ldr r0, _0807F210
- ldr r4, [r0]
- ldr r0, _0807F214
- adds r5, r4, r0
- ldrh r0, [r5]
- subs r0, 0x1
- strh r0, [r5]
- lsls r0, 16
- cmp r0, 0
- beq _0807F1DA
- b _0807F336
-_0807F1DA:
- movs r0, 0x3
- bl sub_807D5BC
- ldr r2, _0807F218
- adds r1, r4, r2
- movs r0, 0x1
- strb r0, [r1]
- ldr r3, _0807F21C
- adds r1, r4, r3
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- beq _0807F224
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- adds r0, 0x3C
- strh r0, [r5]
- ldr r0, _0807F220
- adds r1, r4, r0
- movs r0, 0xA
- b _0807F334
- .align 2, 0
-_0807F210: .4byte gUnknown_08396FC4
-_0807F214: .4byte 0x000006e6
-_0807F218: .4byte 0x000006ea
-_0807F21C: .4byte 0x000006ec
-_0807F220: .4byte 0x000006cc
-_0807F224:
- ldr r1, _0807F234
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807F23C
- ldr r2, _0807F238
- adds r1, r4, r2
- b _0807F332
- .align 2, 0
-_0807F234: .4byte 0x000006eb
-_0807F238: .4byte 0x000006cc
-_0807F23C:
- ldr r3, _0807F244
- adds r1, r4, r3
- movs r0, 0xB
- b _0807F334
- .align 2, 0
-_0807F244: .4byte 0x000006cc
-_0807F248:
- ldr r0, _0807F264
- ldr r2, [r0]
- ldr r0, _0807F268
- adds r1, r2, r0
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bne _0807F336
- ldr r3, _0807F26C
- adds r1, r2, r3
- movs r0, 0x8
- b _0807F334
- .align 2, 0
-_0807F264: .4byte gUnknown_08396FC4
-_0807F268: .4byte 0x000006e6
-_0807F26C: .4byte 0x000006cc
-_0807F270:
- bl Random
- ldr r1, _0807F294
- ldr r2, [r1]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- adds r0, 0x3C
- ldr r3, _0807F298
- adds r1, r2, r3
- strh r0, [r1]
- ldr r0, _0807F29C
- adds r2, r0
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- b _0807F336
- .align 2, 0
-_0807F294: .4byte gUnknown_08396FC4
-_0807F298: .4byte 0x000006e6
-_0807F29C: .4byte 0x000006cc
-_0807F2A0:
- ldr r0, _0807F2D8
- ldr r5, [r0]
- ldr r1, _0807F2DC
- adds r4, r5, r1
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- lsls r0, 16
- cmp r0, 0
- bne _0807F336
- movs r0, 0x64
- bl sub_807F3F8
- movs r0, 0x13
- bl sub_807D5BC
- bl Random
- movs r1, 0xF
- ands r1, r0
- adds r1, 0x1E
- strh r1, [r4]
- ldr r2, _0807F2E0
- adds r1, r5, r2
- ldrh r0, [r1]
- adds r0, 0x1
- b _0807F334
- .align 2, 0
-_0807F2D8: .4byte gUnknown_08396FC4
-_0807F2DC: .4byte 0x000006e6
-_0807F2E0: .4byte 0x000006cc
-_0807F2E4:
- ldr r0, _0807F30C
- ldr r4, [r0]
- ldr r3, _0807F310
- adds r1, r4, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bne _0807F336
- movs r0, 0x13
- movs r1, 0x3
- movs r2, 0x5
- bl sub_807D5F0
- ldr r0, _0807F314
- adds r1, r4, r0
- ldrh r0, [r1]
- adds r0, 0x1
- b _0807F334
- .align 2, 0
-_0807F30C: .4byte gUnknown_08396FC4
-_0807F310: .4byte 0x000006e6
-_0807F314: .4byte 0x000006cc
-_0807F318:
- ldr r0, _0807F33C
- ldr r2, [r0]
- ldr r1, _0807F340
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _0807F336
- ldr r3, _0807F344
- adds r1, r2, r3
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _0807F348
- adds r1, r2, r0
-_0807F332:
- movs r0, 0x4
-_0807F334:
- strh r0, [r1]
-_0807F336:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807F33C: .4byte gUnknown_08396FC4
-_0807F340: .4byte 0x000006c6
-_0807F344: .4byte 0x000006ea
-_0807F348: .4byte 0x000006cc
- thumb_func_end sub_807EFC0
-
- thumb_func_start sub_807F34C
-sub_807F34C: @ 807F34C
- push {r4-r6,lr}
- ldr r0, _0807F368
- ldr r6, [r0]
- ldr r0, _0807F36C
- adds r5, r6, r0
- ldrh r1, [r5]
- cmp r1, 0x1
- beq _0807F382
- cmp r1, 0x1
- bgt _0807F370
- cmp r1, 0
- beq _0807F376
- b _0807F3E8
- .align 2, 0
-_0807F368: .4byte gUnknown_08396FC4
-_0807F36C: .4byte 0x000006ce
-_0807F370:
- cmp r1, 0x2
- beq _0807F3CC
- b _0807F3E8
-_0807F376:
- ldr r2, _0807F3BC
- adds r0, r6, r2
- strb r1, [r0]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_0807F382:
- bl sub_807EFC0
- ldr r0, _0807F3C0
- ldr r2, [r0]
- ldr r1, _0807F3BC
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807F3F0
- subs r1, 0x19
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0807F3E8
- cmp r0, 0x5
- beq _0807F3E8
- cmp r0, 0xD
- beq _0807F3E8
- ldr r0, _0807F3C4
- adds r1, r2, r0
- movs r0, 0
- strb r0, [r1]
- ldr r0, _0807F3C8
- adds r1, r2, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _0807F3F0
- .align 2, 0
-_0807F3BC: .4byte 0x000006ea
-_0807F3C0: .4byte gUnknown_08396FC4
-_0807F3C4: .4byte 0x000006d9
-_0807F3C8: .4byte 0x000006ce
-_0807F3CC:
- bl sub_807E8E8
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0807F3F0
- bl sub_807E974
- ldr r1, _0807F3EC
- adds r0, r6, r1
- strb r4, [r0]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_0807F3E8:
- movs r0, 0
- b _0807F3F2
- .align 2, 0
-_0807F3EC: .4byte 0x000006ed
-_0807F3F0:
- movs r0, 0x1
-_0807F3F2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_807F34C
-
- thumb_func_start sub_807F3F8
-sub_807F3F8: @ 807F3F8
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _0807F42C
- ldr r4, [r0]
- ldr r0, _0807F430
- adds r5, r4, r0
- ldrb r0, [r5]
- cmp r0, 0
- bne _0807F426
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- bl __umodsi3
- movs r2, 0xDD
- lsls r2, 3
- adds r1, r4, r2
- strh r0, [r1]
- movs r0, 0x1
- strb r0, [r5]
-_0807F426:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807F42C: .4byte gUnknown_08396FC4
-_0807F430: .4byte 0x000006ed
- thumb_func_end sub_807F3F8
-
- thumb_func_start sub_807F434
-sub_807F434: @ 807F434
- push {r4,lr}
- ldr r0, _0807F46C
- ldr r1, [r0]
- ldr r2, _0807F470
- adds r0, r1, r2
- ldrb r4, [r0]
- cmp r4, 0x1
- bne _0807F494
- movs r0, 0xDD
- lsls r0, 3
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _0807F490
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _0807F494
- bl Random
- ands r4, r0
- cmp r4, 0
- beq _0807F474
- movs r0, 0x57
- bl PlaySE
- b _0807F47A
- .align 2, 0
-_0807F46C: .4byte gUnknown_08396FC4
-_0807F470: .4byte 0x000006ed
-_0807F474:
- movs r0, 0x58
- bl PlaySE
-_0807F47A:
- ldr r0, _0807F488
- ldr r0, [r0]
- ldr r1, _0807F48C
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- b _0807F494
- .align 2, 0
-_0807F488: .4byte gUnknown_08396FC4
-_0807F48C: .4byte 0x000006ed
-_0807F490:
- subs r0, 0x1
- strh r0, [r1]
-_0807F494:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_807F434
-
- thumb_func_start sub_807F49C
-sub_807F49C: @ 807F49C
- push {lr}
- ldr r0, _0807F4E8
- ldr r3, [r0]
- ldr r0, _0807F4EC
- adds r1, r3, r0
- movs r2, 0
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0807F4F0
- adds r0, r3, r1
- strb r2, [r0]
- subs r1, 0x11
- adds r0, r3, r1
- strb r2, [r0]
- ldr r2, _0807F4F4
- adds r1, r3, r2
- movs r0, 0x14
- strb r0, [r1]
- ldr r1, _0807F4F8
- adds r0, r3, r1
- ldrb r1, [r0]
- cmp r1, 0
- bne _0807F4E4
- adds r2, 0x2E
- adds r0, r3, r2
- strh r1, [r0]
- adds r2, 0x2
- adds r0, r3, r2
- strh r1, [r0]
- subs r2, 0x4
- adds r0, r3, r2
- strh r1, [r0]
- movs r0, 0
- movs r1, 0x10
- bl sub_807DB64
-_0807F4E4:
- pop {r0}
- bx r0
- .align 2, 0
-_0807F4E8: .4byte gUnknown_08396FC4
-_0807F4EC: .4byte 0x000006cc
-_0807F4F0: .4byte 0x000006d2
-_0807F4F4: .4byte 0x000006c2
-_0807F4F8: .4byte 0x000006fb
- thumb_func_end sub_807F49C
-
- thumb_func_start sub_807F4FC
-sub_807F4FC: @ 807F4FC
- push {r4,lr}
- bl sub_807F49C
- ldr r0, _0807F524
- ldr r1, [r0]
- ldr r2, _0807F528
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807F51C
- adds r4, r1, r2
-_0807F512:
- bl sub_807F52C
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807F512
-_0807F51C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807F524: .4byte gUnknown_08396FC4
-_0807F528: .4byte 0x000006d2
- thumb_func_end sub_807F4FC
-
- thumb_func_start sub_807F52C
-sub_807F52C: @ 807F52C
- push {r4-r6,lr}
- ldr r0, _0807F578
- ldr r6, [r0]
- ldr r0, _0807F57C
- ldr r1, _0807F580
- adds r2, r6, r1
- ldrh r0, [r0]
- ldrh r1, [r2]
- subs r0, r1
- movs r1, 0xFF
- ands r0, r1
- ldr r3, _0807F584
- adds r1, r6, r3
- strh r0, [r1]
- movs r0, 0xDE
- lsls r0, 3
- adds r1, r6, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x3
- bls _0807F566
- movs r0, 0
- strh r0, [r1]
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
-_0807F566:
- ldr r1, _0807F588
- adds r5, r6, r1
- ldrh r4, [r5]
- cmp r4, 0
- beq _0807F58C
- cmp r4, 0x1
- beq _0807F5CC
- b _0807F5E2
- .align 2, 0
-_0807F578: .4byte gUnknown_08396FC4
-_0807F57C: .4byte gSpriteCoordOffsetX
-_0807F580: .4byte 0x000006f2
-_0807F584: .4byte 0x000006ee
-_0807F588: .4byte 0x000006cc
-_0807F58C:
- bl sub_807F6E8
- movs r3, 0xDA
- lsls r3, 3
- adds r0, r6, r3
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _0807F5A8
- movs r0, 0xC
- movs r1, 0x8
- movs r2, 0x3
- bl sub_807DBA4
- b _0807F5B2
-_0807F5A8:
- movs r0, 0x4
- movs r1, 0x10
- movs r2, 0
- bl sub_807DBA4
-_0807F5B2:
- ldr r0, _0807F5C4
- ldr r1, [r0]
- ldr r0, _0807F5C8
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _0807F5E2
- .align 2, 0
-_0807F5C4: .4byte gUnknown_08396FC4
-_0807F5C8: .4byte 0x000006cc
-_0807F5CC:
- bl sub_807DBE8
- lsls r0, 24
- cmp r0, 0
- beq _0807F5E2
- ldr r1, _0807F5E8
- adds r0, r6, r1
- strb r4, [r0]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_0807F5E2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807F5E8: .4byte 0x000006d2
- thumb_func_end sub_807F52C
-
- thumb_func_start sub_807F5EC
-sub_807F5EC: @ 807F5EC
- push {r4,lr}
- ldr r0, _0807F63C
- ldr r2, [r0]
- ldr r0, _0807F640
- ldr r1, _0807F644
- adds r3, r2, r1
- ldrh r0, [r0]
- ldrh r1, [r3]
- subs r0, r1
- movs r1, 0xFF
- ands r0, r1
- ldr r4, _0807F648
- adds r1, r2, r4
- strh r0, [r1]
- movs r0, 0xDE
- lsls r0, 3
- adds r1, r2, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x3
- bls _0807F626
- movs r0, 0
- strh r0, [r1]
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
-_0807F626:
- ldr r1, _0807F64C
- adds r4, r2, r1
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _0807F662
- cmp r0, 0x1
- bgt _0807F650
- cmp r0, 0
- beq _0807F656
- b _0807F67A
- .align 2, 0
-_0807F63C: .4byte gUnknown_08396FC4
-_0807F640: .4byte gSpriteCoordOffsetX
-_0807F644: .4byte 0x000006f2
-_0807F648: .4byte 0x000006ee
-_0807F64C: .4byte 0x000006ce
-_0807F650:
- cmp r0, 0x2
- beq _0807F66E
- b _0807F67A
-_0807F656:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x3
- bl sub_807DBA4
- b _0807F672
-_0807F662:
- bl sub_807DBE8
- lsls r0, 24
- cmp r0, 0
- beq _0807F67E
- b _0807F672
-_0807F66E:
- bl sub_807F7A4
-_0807F672:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0807F67E
-_0807F67A:
- movs r0, 0
- b _0807F680
-_0807F67E:
- movs r0, 0x1
-_0807F680:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_807F5EC
-
- thumb_func_start sub_807F688
-sub_807F688: @ 807F688
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _0807F6D4
- ldrb r0, [r0]
- strh r0, [r3, 0x26]
- ldr r0, _0807F6D8
- ldr r0, [r0]
- ldr r1, _0807F6DC
- adds r2, r0, r1
- ldrh r1, [r2]
- adds r1, 0x20
- movs r4, 0x2E
- ldrsh r0, [r3, r4]
- lsls r0, 6
- adds r1, r0
- strh r1, [r3, 0x20]
- lsls r1, 16
- ldr r0, _0807F6E0
- cmp r1, r0
- ble _0807F6CC
- movs r0, 0xF0
- lsls r0, 1
- adds r1, r0, 0
- ldrh r2, [r2]
- adds r1, r2
- movs r4, 0x2E
- ldrsh r2, [r3, r4]
- movs r0, 0x4
- subs r0, r2
- lsls r0, 6
- subs r1, r0
- ldr r0, _0807F6E4
- ands r1, r0
- strh r1, [r3, 0x20]
-_0807F6CC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807F6D4: .4byte gSpriteCoordOffsetY
-_0807F6D8: .4byte gUnknown_08396FC4
-_0807F6DC: .4byte 0x000006ee
-_0807F6E0: .4byte 0x010f0000
-_0807F6E4: .4byte 0x000001ff
- thumb_func_end sub_807F688
-
- thumb_func_start sub_807F6E8
-sub_807F6E8: @ 807F6E8
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, _0807F75C
- ldr r0, [r0]
- ldr r1, _0807F760
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807F792
- ldr r0, _0807F764
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- movs r5, 0
-_0807F70C:
- ldr r0, _0807F768
- movs r1, 0
- movs r2, 0
- movs r3, 0xFF
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0807F770
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0807F76C
- adds r4, r0
- adds r0, r5, 0
- movs r1, 0x5
- bl __umodsi3
- strh r0, [r4, 0x2E]
- lsls r0, 16
- lsrs r0, 10
- adds r0, 0x20
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x5
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 10
- adds r0, 0x20
- strh r0, [r4, 0x22]
- ldr r2, _0807F75C
- ldr r0, [r2]
- lsls r1, r5, 2
- adds r0, 0xA0
- adds r0, r1
- str r4, [r0]
- b _0807F77E
- .align 2, 0
-_0807F75C: .4byte gUnknown_08396FC4
-_0807F760: .4byte 0x000006fb
-_0807F764: .4byte gUnknown_0839ABA8
-_0807F768: .4byte gSpriteTemplate_839AB90
-_0807F76C: .4byte gSprites
-_0807F770:
- ldr r2, _0807F79C
- ldr r1, [r2]
- lsls r0, r5, 2
- adds r1, 0xA0
- adds r1, r0
- movs r0, 0
- str r0, [r1]
-_0807F77E:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x13
- bls _0807F70C
- ldr r0, [r2]
- ldr r1, _0807F7A0
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_0807F792:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807F79C: .4byte gUnknown_08396FC4
-_0807F7A0: .4byte 0x000006fb
- thumb_func_end sub_807F6E8
-
- thumb_func_start sub_807F7A4
-sub_807F7A4: @ 807F7A4
- push {r4,r5,lr}
- ldr r0, _0807F7EC
- ldr r1, [r0]
- ldr r2, _0807F7F0
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807F7E4
- movs r4, 0
- adds r5, r1, 0
- adds r5, 0xA0
-_0807F7BA:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0807F7C8
- bl DestroySprite
-_0807F7C8:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x13
- bls _0807F7BA
- ldr r0, _0807F7F4
- bl FreeSpriteTilesByTag
- ldr r0, _0807F7EC
- ldr r0, [r0]
- ldr r1, _0807F7F0
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0807F7E4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807F7EC: .4byte gUnknown_08396FC4
-_0807F7F0: .4byte 0x000006fb
-_0807F7F4: .4byte 0x00001201
- thumb_func_end sub_807F7A4
-
- thumb_func_start sub_807F7F8
-sub_807F7F8: @ 807F7F8
- push {lr}
- ldr r0, _0807F844
- ldr r1, [r0]
- ldr r0, _0807F848
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0
- strh r0, [r2]
- ldr r2, _0807F84C
- adds r0, r1, r2
- strb r3, [r0]
- subs r2, 0x11
- adds r0, r1, r2
- strb r3, [r0]
- ldr r3, _0807F850
- adds r0, r1, r3
- movs r2, 0x14
- strb r2, [r0]
- adds r3, 0x3C
- adds r0, r1, r3
- strh r2, [r0]
- movs r0, 0xE0
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _0807F840
- movs r0, 0
- movs r1, 0x10
- bl sub_807DB64
- ldr r1, _0807F854
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
-_0807F840:
- pop {r0}
- bx r0
- .align 2, 0
-_0807F844: .4byte gUnknown_08396FC4
-_0807F848: .4byte 0x000006cc
-_0807F84C: .4byte 0x000006d2
-_0807F850: .4byte 0x000006c2
-_0807F854: .4byte REG_BLDALPHA
- thumb_func_end sub_807F7F8
-
- thumb_func_start sub_807F858
-sub_807F858: @ 807F858
- push {r4,lr}
- bl sub_807F7F8
- ldr r0, _0807F880
- ldr r1, [r0]
- ldr r2, _0807F884
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807F878
- adds r4, r1, r2
-_0807F86E:
- bl sub_807F888
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807F86E
-_0807F878:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807F880: .4byte gUnknown_08396FC4
-_0807F884: .4byte 0x000006d2
- thumb_func_end sub_807F858
-
- thumb_func_start sub_807F888
-sub_807F888: @ 807F888
- push {r4,r5,lr}
- ldr r2, _0807F8CC
- ldr r1, [r2]
- ldr r0, _0807F8D0
- ldrh r0, [r0]
- ldr r3, _0807F8D4
- ands r3, r0
- ldr r0, _0807F8D8
- adds r1, r0
- strh r3, [r1]
- cmp r3, 0xEF
- bls _0807F8B4
- adds r4, r1, 0
- adds r1, r3, 0
-_0807F8A4:
- adds r3, r1, 0
- subs r3, 0xF0
- adds r1, r3, 0
- lsls r0, r3, 16
- lsrs r0, 16
- cmp r0, 0xEF
- bhi _0807F8A4
- strh r3, [r4]
-_0807F8B4:
- ldr r5, [r2]
- ldr r1, _0807F8DC
- adds r4, r5, r1
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _0807F8EC
- cmp r0, 0x1
- bgt _0807F8E0
- cmp r0, 0
- beq _0807F8E6
- b _0807F928
- .align 2, 0
-_0807F8CC: .4byte gUnknown_08396FC4
-_0807F8D0: .4byte gSpriteCoordOffsetX
-_0807F8D4: .4byte 0x000001ff
-_0807F8D8: .4byte 0x000006fc
-_0807F8DC: .4byte 0x000006cc
-_0807F8E0:
- cmp r0, 0x2
- beq _0807F908
- b _0807F928
-_0807F8E6:
- bl sub_807F99C
- b _0807F91A
-_0807F8EC:
- movs r1, 0xE0
- lsls r1, 3
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807F8FC
- bl sub_807F9AC
-_0807F8FC:
- movs r0, 0x10
- movs r1, 0
- movs r2, 0x1
- bl sub_807DBA4
- b _0807F91A
-_0807F908:
- bl sub_807DBE8
- lsls r0, 24
- cmp r0, 0
- beq _0807F92C
- ldr r0, _0807F924
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
-_0807F91A:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0807F92C
- .align 2, 0
-_0807F924: .4byte 0x000006d2
-_0807F928:
- bl sub_807DBE8
-_0807F92C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_807F888
-
- thumb_func_start sub_807F934
-sub_807F934: @ 807F934
- push {r4,lr}
- ldr r0, _0807F950
- ldr r0, [r0]
- ldr r1, _0807F954
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _0807F96A
- cmp r0, 0x1
- bgt _0807F958
- cmp r0, 0
- beq _0807F95E
- b _0807F98C
- .align 2, 0
-_0807F950: .4byte gUnknown_08396FC4
-_0807F954: .4byte 0x000006ce
-_0807F958:
- cmp r0, 0x2
- beq _0807F980
- b _0807F98C
-_0807F95E:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1
- bl sub_807DBA4
- b _0807F978
-_0807F96A:
- bl sub_807DBE8
- lsls r0, 24
- cmp r0, 0
- beq _0807F994
- bl sub_807FA54
-_0807F978:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0807F994
-_0807F980:
- ldr r1, _0807F990
- movs r0, 0
- strh r0, [r1]
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0807F98C:
- movs r0, 0
- b _0807F996
- .align 2, 0
-_0807F990: .4byte REG_BLDALPHA
-_0807F994:
- movs r0, 0x1
-_0807F996:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_807F934
-
- thumb_func_start sub_807F99C
-sub_807F99C: @ 807F99C
- push {lr}
- ldr r0, _0807F9A8
- bl LoadSpriteSheet
- pop {r0}
- bx r0
- .align 2, 0
-_0807F9A8: .4byte gUnknown_0839ABB0
- thumb_func_end sub_807F99C
-
- thumb_func_start sub_807F9AC
-sub_807F9AC: @ 807F9AC
- push {r4,r5,lr}
- ldr r0, _0807FA18
- ldr r0, [r0]
- movs r1, 0xE0
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807FA48
- movs r5, 0
-_0807F9C0:
- ldr r0, _0807FA1C
- movs r1, 0
- movs r2, 0
- movs r3, 0x4E
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0807FA24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0807FA20
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r0, r5, 0
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- adds r0, r5, 0
- movs r1, 0x5
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x34]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 6
- adds r0, 0x20
- strh r0, [r4, 0x2E]
- ldr r2, _0807FA18
- ldr r0, [r2]
- lsls r1, r5, 2
- adds r0, 0xF0
- adds r0, r1
- str r4, [r0]
- b _0807FA32
- .align 2, 0
-_0807FA18: .4byte gUnknown_08396FC4
-_0807FA1C: .4byte gSpriteTemplate_839ABD0
-_0807FA20: .4byte gSprites
-_0807FA24:
- ldr r2, _0807FA50
- ldr r1, [r2]
- lsls r0, r5, 2
- adds r1, 0xF0
- adds r1, r0
- movs r0, 0
- str r0, [r1]
-_0807FA32:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _0807F9C0
- ldr r0, [r2]
- movs r1, 0xE0
- lsls r1, 3
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_0807FA48:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FA50: .4byte gUnknown_08396FC4
- thumb_func_end sub_807F9AC
-
- thumb_func_start sub_807FA54
-sub_807FA54: @ 807FA54
- push {r4,r5,lr}
- ldr r0, _0807FAA0
- ldr r1, [r0]
- movs r2, 0xE0
- lsls r2, 3
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807FA98
- movs r4, 0
- adds r5, r1, 0
- adds r5, 0xF0
-_0807FA6C:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0807FA7A
- bl DestroySprite
-_0807FA7A:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x13
- bls _0807FA6C
- ldr r0, _0807FAA4
- bl FreeSpriteTilesByTag
- ldr r0, _0807FAA0
- ldr r0, [r0]
- movs r1, 0xE0
- lsls r1, 3
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0807FA98:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FAA0: .4byte gUnknown_08396FC4
-_0807FAA4: .4byte 0x00001202
- thumb_func_end sub_807FA54
-
- thumb_func_start sub_807FAA8
-sub_807FAA8: @ 807FAA8
- push {r4,lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _0807FAC4
- movs r0, 0
- strh r0, [r3, 0x30]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
-_0807FAC4:
- ldr r1, _0807FB10
- ldrh r0, [r3, 0x2E]
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r3, 0x22]
- ldr r0, _0807FB14
- ldr r0, [r0]
- ldr r1, _0807FB18
- adds r2, r0, r1
- ldrh r1, [r2]
- adds r1, 0x20
- movs r4, 0x32
- ldrsh r0, [r3, r4]
- lsls r0, 6
- adds r1, r0
- strh r1, [r3, 0x20]
- lsls r1, 16
- ldr r0, _0807FB1C
- cmp r1, r0
- ble _0807FB08
- movs r0, 0xF0
- lsls r0, 1
- adds r1, r0, 0
- ldrh r2, [r2]
- adds r1, r2
- movs r4, 0x32
- ldrsh r2, [r3, r4]
- movs r0, 0x4
- subs r0, r2
- lsls r0, 6
- subs r1, r0
- ldr r0, _0807FB20
- ands r1, r0
- strh r1, [r3, 0x20]
-_0807FB08:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FB10: .4byte gSpriteCoordOffsetY
-_0807FB14: .4byte gUnknown_08396FC4
-_0807FB18: .4byte 0x000006fc
-_0807FB1C: .4byte 0x010f0000
-_0807FB20: .4byte 0x000001ff
- thumb_func_end sub_807FAA8
-
- thumb_func_start sub_807FB24
-sub_807FB24: @ 807FB24
- push {r4,lr}
- ldr r0, _0807FB94
- ldr r3, [r0]
- ldr r1, _0807FB98
- adds r0, r3, r1
- movs r1, 0
- movs r2, 0
- strh r2, [r0]
- ldr r4, _0807FB9C
- adds r0, r3, r4
- strb r1, [r0]
- subs r4, 0x11
- adds r0, r3, r4
- strb r1, [r0]
- ldr r0, _0807FBA0
- adds r1, r3, r0
- movs r0, 0x14
- strb r0, [r1]
- movs r1, 0xDE
- lsls r1, 3
- adds r0, r3, r1
- strh r2, [r0]
- adds r4, 0x31
- adds r1, r3, r4
- movs r0, 0x1
- strh r0, [r1]
- ldr r1, _0807FBA4
- adds r0, r3, r1
- ldrb r2, [r0]
- cmp r2, 0
- bne _0807FB8E
- adds r4, 0x2A
- adds r0, r3, r4
- strh r2, [r0]
- subs r1, 0x6
- adds r0, r3, r1
- strh r2, [r0]
- adds r4, 0x4
- adds r0, r3, r4
- strh r2, [r0]
- adds r1, 0x4
- adds r0, r3, r1
- strh r2, [r0]
- subs r4, 0x8
- adds r0, r3, r4
- strh r2, [r0]
- subs r1, 0x8
- adds r0, r3, r1
- strh r2, [r0]
- movs r0, 0
- movs r1, 0x10
- bl sub_807DB64
-_0807FB8E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FB94: .4byte gUnknown_08396FC4
-_0807FB98: .4byte 0x000006cc
-_0807FB9C: .4byte 0x000006d2
-_0807FBA0: .4byte 0x000006c2
-_0807FBA4: .4byte 0x00000724
- thumb_func_end sub_807FB24
-
- thumb_func_start sub_807FBA8
-sub_807FBA8: @ 807FBA8
- push {r4,lr}
- bl sub_807FB24
- ldr r0, _0807FBD0
- ldr r1, [r0]
- ldr r2, _0807FBD4
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807FBC8
- adds r4, r1, r2
-_0807FBBE:
- bl sub_807FBD8
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807FBBE
-_0807FBC8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FBD0: .4byte gUnknown_08396FC4
-_0807FBD4: .4byte 0x000006d2
- thumb_func_end sub_807FBA8
-
- thumb_func_start sub_807FBD8
-sub_807FBD8: @ 807FBD8
- push {r4,r5,lr}
- bl sub_807FC9C
- ldr r0, _0807FBF8
- ldr r5, [r0]
- ldr r0, _0807FBFC
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _0807FC0C
- cmp r0, 0x1
- bgt _0807FC00
- cmp r0, 0
- beq _0807FC06
- b _0807FC30
- .align 2, 0
-_0807FBF8: .4byte gUnknown_08396FC4
-_0807FBFC: .4byte 0x000006cc
-_0807FC00:
- cmp r0, 0x2
- beq _0807FC18
- b _0807FC30
-_0807FC06:
- bl sub_807FD30
- b _0807FC2A
-_0807FC0C:
- movs r0, 0xC
- movs r1, 0x8
- movs r2, 0x8
- bl sub_807DBA4
- b _0807FC2A
-_0807FC18:
- bl sub_807DBE8
- lsls r0, 24
- cmp r0, 0
- beq _0807FC30
- ldr r0, _0807FC38
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
-_0807FC2A:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0807FC30:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FC38: .4byte 0x000006d2
- thumb_func_end sub_807FBD8
-
- thumb_func_start sub_807FC3C
-sub_807FC3C: @ 807FC3C
- push {r4,lr}
- bl sub_807FC9C
- ldr r0, _0807FC5C
- ldr r0, [r0]
- ldr r1, _0807FC60
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _0807FC76
- cmp r0, 0x1
- bgt _0807FC64
- cmp r0, 0
- beq _0807FC6A
- b _0807FC8E
- .align 2, 0
-_0807FC5C: .4byte gUnknown_08396FC4
-_0807FC60: .4byte 0x000006ce
-_0807FC64:
- cmp r0, 0x2
- beq _0807FC82
- b _0807FC8E
-_0807FC6A:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1
- bl sub_807DBA4
- b _0807FC86
-_0807FC76:
- bl sub_807DBE8
- lsls r0, 24
- cmp r0, 0
- beq _0807FC92
- b _0807FC86
-_0807FC82:
- bl sub_807FDE8
-_0807FC86:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0807FC92
-_0807FC8E:
- movs r0, 0
- b _0807FC94
-_0807FC92:
- movs r0, 0x1
-_0807FC94:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_807FC3C
-
- thumb_func_start sub_807FC9C
-sub_807FC9C: @ 807FC9C
- push {r4,r5,lr}
- ldr r0, _0807FD14
- ldr r3, [r0]
- ldr r0, _0807FD18
- adds r2, r3, r0
- ldrh r0, [r2]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r2]
- ldr r1, _0807FD1C
- adds r4, r1, 0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bls _0807FCC8
- movs r0, 0xE4
- lsls r0, 3
- adds r1, r3, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- strh r5, [r2]
-_0807FCC8:
- ldr r1, _0807FD20
- adds r2, r3, r1
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- ands r0, r4
- cmp r0, 0x4
- bls _0807FCE4
- ldr r0, _0807FD24
- adds r1, r3, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- strh r5, [r2]
-_0807FCE4:
- ldr r0, _0807FD28
- movs r2, 0xE4
- lsls r2, 3
- adds r1, r3, r2
- ldrh r0, [r0]
- ldrh r1, [r1]
- subs r0, r1
- movs r1, 0xFF
- ands r0, r1
- subs r2, 0x8
- adds r1, r3, r2
- strh r0, [r1]
- ldr r1, _0807FD2C
- adds r2, 0xA
- adds r0, r3, r2
- ldrh r0, [r0]
- ldrh r1, [r1]
- adds r0, r1
- subs r2, 0x8
- adds r1, r3, r2
- strh r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FD14: .4byte gUnknown_08396FC4
-_0807FD18: .4byte 0x0000071c
-_0807FD1C: .4byte 0x0000ffff
-_0807FD20: .4byte 0x0000071e
-_0807FD24: .4byte 0x00000722
-_0807FD28: .4byte gSpriteCoordOffsetX
-_0807FD2C: .4byte gSpriteCoordOffsetY
- thumb_func_end sub_807FC9C
-
- thumb_func_start sub_807FD30
-sub_807FD30: @ 807FD30
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r0, _0807FD9C
- ldr r0, [r0]
- ldr r1, _0807FDA0
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807FDD6
- ldr r0, _0807FDA4
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- movs r6, 0
-_0807FD54:
- adds r0, r6, 0
- movs r1, 0x5
- bl __udivsi3
- adds r5, r0, 0
- lsls r2, r5, 22
- asrs r2, 16
- ldr r0, _0807FDA8
- movs r1, 0
- movs r3, 0xFF
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0807FDB0
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0807FDAC
- adds r4, r0
- adds r0, r6, 0
- movs r1, 0x5
- bl __umodsi3
- strh r0, [r4, 0x2E]
- strh r5, [r4, 0x30]
- ldr r2, _0807FD9C
- ldr r0, [r2]
- lsls r1, r6, 2
- movs r3, 0xA0
- lsls r3, 1
- adds r0, r3
- adds r0, r1
- str r4, [r0]
- b _0807FDC2
- .align 2, 0
-_0807FD9C: .4byte gUnknown_08396FC4
-_0807FDA0: .4byte 0x00000724
-_0807FDA4: .4byte gUnknown_0839ABE8
-_0807FDA8: .4byte gSpriteTemplate_839AC04
-_0807FDAC: .4byte gSprites
-_0807FDB0:
- ldr r2, _0807FDE0
- ldr r1, [r2]
- lsls r0, r6, 2
- movs r3, 0xA0
- lsls r3, 1
- adds r1, r3
- adds r1, r0
- movs r0, 0
- str r0, [r1]
-_0807FDC2:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x13
- bls _0807FD54
- ldr r0, [r2]
- ldr r1, _0807FDE4
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_0807FDD6:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FDE0: .4byte gUnknown_08396FC4
-_0807FDE4: .4byte 0x00000724
- thumb_func_end sub_807FD30
-
- thumb_func_start sub_807FDE8
-sub_807FDE8: @ 807FDE8
- push {r4,r5,lr}
- ldr r0, _0807FE30
- ldr r1, [r0]
- ldr r2, _0807FE34
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807FE2A
- movs r4, 0
- movs r0, 0xA0
- lsls r0, 1
- adds r5, r1, r0
-_0807FE00:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0807FE0E
- bl DestroySprite
-_0807FE0E:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x13
- bls _0807FE00
- ldr r0, _0807FE38
- bl FreeSpriteTilesByTag
- ldr r0, _0807FE30
- ldr r0, [r0]
- ldr r1, _0807FE34
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0807FE2A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FE30: .4byte gUnknown_08396FC4
-_0807FE34: .4byte 0x00000724
-_0807FE38: .4byte 0x00001203
- thumb_func_end sub_807FDE8
-
- thumb_func_start sub_807FE3C
-sub_807FE3C: @ 807FE3C
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _0807FE8C
- ldr r1, [r0]
- ldr r2, _0807FE90
- adds r0, r1, r2
- ldrh r0, [r0]
- strh r0, [r3, 0x26]
- movs r4, 0xE3
- lsls r4, 3
- adds r2, r1, r4
- ldrh r1, [r2]
- adds r1, 0x20
- movs r4, 0x2E
- ldrsh r0, [r3, r4]
- lsls r0, 6
- adds r1, r0
- strh r1, [r3, 0x20]
- lsls r1, 16
- ldr r0, _0807FE94
- cmp r1, r0
- ble _0807FE84
- movs r0, 0xF0
- lsls r0, 1
- adds r1, r0, 0
- ldrh r2, [r2]
- adds r1, r2
- movs r4, 0x2E
- ldrsh r2, [r3, r4]
- movs r0, 0x4
- subs r0, r2
- lsls r0, 6
- subs r1, r0
- ldr r0, _0807FE98
- ands r1, r0
- strh r1, [r3, 0x20]
-_0807FE84:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FE8C: .4byte gUnknown_08396FC4
-_0807FE90: .4byte 0x0000071a
-_0807FE94: .4byte 0x010f0000
-_0807FE98: .4byte 0x000001ff
- thumb_func_end sub_807FE3C
-
- thumb_func_start sub_807FE9C
-sub_807FE9C: @ 807FE9C
- push {r4,lr}
- ldr r0, _0807FF00
- ldr r3, [r0]
- ldr r0, _0807FF04
- adds r1, r3, r0
- movs r2, 0
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0807FF08
- adds r0, r3, r1
- strb r2, [r0]
- ldr r4, _0807FF0C
- adds r0, r3, r4
- strb r2, [r0]
- ldr r0, _0807FF10
- adds r1, r3, r0
- movs r0, 0x14
- strb r0, [r1]
- ldr r1, _0807FF14
- adds r0, r3, r1
- ldrb r2, [r0]
- cmp r2, 0
- bne _0807FEF8
- adds r4, 0x43
- adds r1, r3, r4
- adds r4, 0x4
- adds r0, r3, r4
- str r2, [r0]
- str r2, [r1]
- ldr r0, _0807FF18
- adds r1, r3, r0
- movs r0, 0x8
- strh r0, [r1]
- adds r4, 0xC
- adds r0, r3, r4
- strh r2, [r0]
- ldrh r2, [r1]
- cmp r2, 0x5F
- bls _0807FEF0
- movs r0, 0x80
- subs r0, r2
- strh r0, [r1]
-_0807FEF0:
- movs r0, 0
- movs r1, 0x10
- bl sub_807DB64
-_0807FEF8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FF00: .4byte gUnknown_08396FC4
-_0807FF04: .4byte 0x000006cc
-_0807FF08: .4byte 0x000006d2
-_0807FF0C: .4byte 0x000006c1
-_0807FF10: .4byte 0x000006c2
-_0807FF14: .4byte 0x00000716
-_0807FF18: .4byte 0x00000712
- thumb_func_end sub_807FE9C
-
- thumb_func_start sub_807FF1C
-sub_807FF1C: @ 807FF1C
- push {r4,lr}
- bl sub_807FE9C
- ldr r0, _0807FF44
- ldr r1, [r0]
- ldr r2, _0807FF48
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807FF3C
- adds r4, r1, r2
-_0807FF32:
- bl sub_807FF4C
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807FF32
-_0807FF3C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FF44: .4byte gUnknown_08396FC4
-_0807FF48: .4byte 0x000006d2
- thumb_func_end sub_807FF1C
-
- thumb_func_start sub_807FF4C
-sub_807FF4C: @ 807FF4C
- push {r4,r5,lr}
- bl sub_8080064
- bl sub_808002C
- ldr r0, _0807FF7C
- ldr r5, [r0]
- ldr r0, _0807FF80
- adds r1, r5, r0
- ldrh r0, [r1]
- cmp r0, 0x5F
- bls _0807FF68
- movs r0, 0x20
- strh r0, [r1]
-_0807FF68:
- ldr r0, _0807FF84
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _0807FF98
- cmp r0, 0x1
- bgt _0807FF88
- cmp r0, 0
- beq _0807FF8E
- b _0807FFBC
- .align 2, 0
-_0807FF7C: .4byte gUnknown_08396FC4
-_0807FF80: .4byte 0x00000712
-_0807FF84: .4byte 0x000006cc
-_0807FF88:
- cmp r0, 0x2
- beq _0807FFA4
- b _0807FFBC
-_0807FF8E:
- bl sub_8080178
- bl sub_8080238
- b _0807FFB6
-_0807FF98:
- movs r0, 0x10
- movs r1, 0
- movs r2, 0
- bl sub_807DBA4
- b _0807FFB6
-_0807FFA4:
- bl sub_807DBE8
- lsls r0, 24
- cmp r0, 0
- beq _0807FFBC
- ldr r0, _0807FFC4
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
-_0807FFB6:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0807FFBC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FFC4: .4byte 0x000006d2
- thumb_func_end sub_807FF4C
-
- thumb_func_start sub_807FFC8
-sub_807FFC8: @ 807FFC8
- push {r4,lr}
- bl sub_8080064
- bl sub_808002C
- ldr r0, _0807FFEC
- ldr r0, [r0]
- ldr r1, _0807FFF0
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _08080006
- cmp r0, 0x1
- bgt _0807FFF4
- cmp r0, 0
- beq _0807FFFA
- b _0808001E
- .align 2, 0
-_0807FFEC: .4byte gUnknown_08396FC4
-_0807FFF0: .4byte 0x000006ce
-_0807FFF4:
- cmp r0, 0x2
- beq _08080012
- b _0808001E
-_0807FFFA:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0
- bl sub_807DBA4
- b _08080016
-_08080006:
- bl sub_807DBE8
- lsls r0, 24
- cmp r0, 0
- beq _08080022
- b _08080016
-_08080012:
- bl sub_80800E4
-_08080016:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _08080022
-_0808001E:
- movs r0, 0
- b _08080024
-_08080022:
- movs r0, 0x1
-_08080024:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_807FFC8
-
- thumb_func_start sub_808002C
-sub_808002C: @ 808002C
- push {lr}
- ldr r0, _08080058
- ldr r2, [r0]
- ldr r0, _0808005C
- adds r3, r2, r0
- ldrh r0, [r3]
- adds r1, r0, 0x1
- strh r1, [r3]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bls _08080052
- ldr r1, _08080060
- adds r0, r2, r1
- ldrh r1, [r0]
- adds r1, 0x1
- movs r2, 0
- strh r1, [r0]
- strh r2, [r3]
-_08080052:
- pop {r0}
- bx r0
- .align 2, 0
-_08080058: .4byte gUnknown_08396FC4
-_0808005C: .4byte 0x00000714
-_08080060: .4byte 0x00000712
- thumb_func_end sub_808002C
-
- thumb_func_start sub_8080064
-sub_8080064: @ 8080064
- push {r4-r6,lr}
- ldr r0, _080800C8
- ldr r2, [r0]
- ldr r0, _080800CC
- adds r4, r2, r0
- ldr r6, _080800D0
- ldr r1, _080800D4
- adds r5, r2, r1
- ldrh r0, [r5]
- lsls r0, 1
- adds r0, r6
- movs r3, 0
- ldrsh r1, [r0, r3]
- lsls r1, 2
- ldr r0, [r4]
- subs r0, r1
- str r0, [r4]
- movs r0, 0xE1
- lsls r0, 3
- adds r3, r2, r0
- ldrh r0, [r5]
- lsls r0, 1
- adds r0, r6
- movs r5, 0
- ldrsh r1, [r0, r5]
- ldr r0, [r3]
- subs r0, r1
- str r0, [r3]
- ldr r1, _080800D8
- ldr r0, [r4]
- lsrs r0, 8
- ldrh r1, [r1]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- ldr r4, _080800DC
- adds r1, r2, r4
- strh r0, [r1]
- ldr r1, _080800E0
- ldr r0, [r3]
- lsrs r0, 8
- ldrh r1, [r1]
- adds r0, r1
- movs r5, 0xE2
- lsls r5, 3
- adds r2, r5
- strh r0, [r2]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080800C8: .4byte gUnknown_08396FC4
-_080800CC: .4byte 0x00000704
-_080800D0: .4byte gSineTable
-_080800D4: .4byte 0x00000712
-_080800D8: .4byte gSpriteCoordOffsetX
-_080800DC: .4byte 0x0000070e
-_080800E0: .4byte gSpriteCoordOffsetY
- thumb_func_end sub_8080064
-
- thumb_func_start sub_80800E4
-sub_80800E4: @ 80800E4
- push {r4,r5,lr}
- ldr r0, _08080168
- ldr r1, [r0]
- ldr r2, _0808016C
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _08080126
- movs r4, 0
- movs r0, 0xC8
- lsls r0, 1
- adds r5, r1, r0
-_080800FC:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0808010A
- bl DestroySprite
-_0808010A:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x13
- bls _080800FC
- ldr r0, _08080168
- ldr r0, [r0]
- ldr r1, _0808016C
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r0, _08080170
- bl FreeSpriteTilesByTag
-_08080126:
- ldr r0, _08080168
- ldr r1, [r0]
- ldr r2, _08080174
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _08080160
- movs r4, 0
- movs r0, 0xF0
- lsls r0, 1
- adds r5, r1, r0
-_0808013C:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0808014A
- bl DestroySprite
-_0808014A:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _0808013C
- ldr r0, _08080168
- ldr r0, [r0]
- ldr r1, _08080174
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_08080160:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08080168: .4byte gUnknown_08396FC4
-_0808016C: .4byte 0x00000716
-_08080170: .4byte 0x00001204
-_08080174: .4byte 0x00000717
- thumb_func_end sub_80800E4
-
- thumb_func_start sub_8080178
-sub_8080178: @ 8080178
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r0, _080801E8
- ldr r0, [r0]
- ldr r1, _080801EC
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08080226
- ldr r0, _080801F0
- bl LoadSpriteSheet
- ldr r0, _080801F4
- bl sub_807D8C0
- movs r7, 0
-_08080198:
- adds r0, r7, 0
- movs r1, 0x5
- bl __udivsi3
- adds r6, r0, 0
- lsls r2, r6, 22
- asrs r2, 16
- ldr r0, _080801F8
- movs r1, 0
- movs r3, 0x1
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _08080200
- ldr r2, _080801E8
- ldr r5, [r2]
- lsls r0, r7, 2
- movs r3, 0xC8
- lsls r3, 1
- adds r5, r3
- adds r5, r0
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- ldr r0, _080801FC
- adds r4, r0
- str r4, [r5]
- adds r0, r7, 0
- movs r1, 0x5
- str r2, [sp]
- bl __umodsi3
- strh r0, [r4, 0x2E]
- ldr r0, [r5]
- strh r6, [r0, 0x30]
- ldr r2, [sp]
- b _08080212
- .align 2, 0
-_080801E8: .4byte gUnknown_08396FC4
-_080801EC: .4byte 0x00000716
-_080801F0: .4byte gUnknown_0839AC54
-_080801F4: .4byte gUnknown_08397128
-_080801F8: .4byte gSpriteTemplate_839AC3C
-_080801FC: .4byte gSprites
-_08080200:
- ldr r2, _08080230
- ldr r1, [r2]
- lsls r0, r7, 2
- movs r3, 0xC8
- lsls r3, 1
- adds r1, r3
- adds r1, r0
- movs r0, 0
- str r0, [r1]
-_08080212:
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x13
- bls _08080198
- ldr r0, [r2]
- ldr r1, _08080234
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_08080226:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08080230: .4byte gUnknown_08396FC4
-_08080234: .4byte 0x00000716
- thumb_func_end sub_8080178
-
- thumb_func_start sub_8080238
-sub_8080238: @ 8080238
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _080802E0
- ldr r0, [r4]
- ldr r1, _080802E4
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08080324
- movs r7, 0
- mov r9, r4
- movs r2, 0
- mov r10, r2
-_08080258:
- lsls r0, r7, 1
- mov r8, r0
- adds r6, r0, r7
- lsls r5, r6, 4
- adds r1, r5, 0
- adds r1, 0x18
- lsls r1, 16
- asrs r1, 16
- ldr r0, _080802E8
- movs r2, 0xD0
- movs r3, 0x1
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080802FC
- mov r2, r9
- ldr r4, [r2]
- lsls r0, r7, 2
- movs r2, 0xF0
- lsls r2, 1
- adds r4, r2
- adds r4, r0
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- ldr r0, _080802EC
- adds r2, r0
- str r2, [r4]
- ldrb r1, [r2, 0x3]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x3]
- ldr r1, [r4]
- adds r0, r6, r5
- strh r0, [r1, 0x30]
- ldr r1, [r4]
- movs r0, 0x8
- strh r0, [r1, 0x2E]
- ldr r0, [r4]
- mov r1, r10
- strh r1, [r0, 0x32]
- ldr r1, [r4]
- ldr r0, _080802F0
- strh r0, [r1, 0x36]
- ldr r1, [r4]
- ldr r0, _080802F4
- add r0, r8
- ldrh r0, [r0]
- strh r0, [r1, 0x34]
- ldr r0, [r4]
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, [r4]
- movs r1, 0
- movs r2, 0x2
- movs r3, 0
- bl CalcCenterToCornerVec
- ldr r1, [r4]
- ldr r0, _080802F8
- str r0, [r1, 0x1C]
- b _0808030E
- .align 2, 0
-_080802E0: .4byte gUnknown_08396FC4
-_080802E4: .4byte 0x00000717
-_080802E8: .4byte gSpriteTemplate_839AC3C
-_080802EC: .4byte gSprites
-_080802F0: .4byte 0x00006730
-_080802F4: .4byte gUnknown_0839AC5C
-_080802F8: .4byte sub_8080398
-_080802FC:
- mov r2, r9
- ldr r0, [r2]
- lsls r1, r7, 2
- movs r2, 0xF0
- lsls r2, 1
- adds r0, r2
- adds r0, r1
- mov r1, r10
- str r1, [r0]
-_0808030E:
- mov r2, r9
- ldr r0, [r2]
- ldr r1, _08080334
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x4
- bls _08080258
-_08080324:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08080334: .4byte 0x00000717
- thumb_func_end sub_8080238
-
- thumb_func_start sub_8080338
-sub_8080338: @ 8080338
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _08080388
- ldr r1, [r0]
- movs r2, 0xE2
- lsls r2, 3
- adds r0, r1, r2
- ldrh r0, [r0]
- strh r0, [r3, 0x26]
- ldr r4, _0808038C
- adds r2, r1, r4
- ldrh r1, [r2]
- adds r1, 0x20
- movs r4, 0x2E
- ldrsh r0, [r3, r4]
- lsls r0, 6
- adds r1, r0
- strh r1, [r3, 0x20]
- lsls r1, 16
- ldr r0, _08080390
- cmp r1, r0
- ble _08080380
- movs r0, 0xF0
- lsls r0, 1
- adds r1, r0, 0
- ldrh r2, [r2]
- adds r1, r2
- movs r4, 0x2E
- ldrsh r2, [r3, r4]
- movs r0, 0x4
- subs r0, r2
- lsls r0, 6
- subs r1, r0
- ldr r0, _08080394
- ands r1, r0
- strh r1, [r3, 0x20]
-_08080380:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08080388: .4byte gUnknown_08396FC4
-_0808038C: .4byte 0x0000070e
-_08080390: .4byte 0x010f0000
-_08080394: .4byte 0x000001ff
- thumb_func_end sub_8080338
-
- thumb_func_start sub_8080398
-sub_8080398: @ 8080398
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x34]
- subs r0, 0x1
- strh r0, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080803B2
- ldr r0, _080803B8
- str r0, [r2, 0x1C]
-_080803B2:
- pop {r0}
- bx r0
- .align 2, 0
-_080803B8: .4byte sub_80803BC
- thumb_func_end sub_8080398
-
- thumb_func_start sub_80803BC
-sub_80803BC: @ 80803BC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x22]
- subs r0, 0x1
- strh r0, [r5, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x30
- negs r1, r1
- cmp r0, r1
- bge _080803DA
- movs r0, 0xD0
- strh r0, [r5, 0x22]
- movs r0, 0x4
- strh r0, [r5, 0x2E]
-_080803DA:
- movs r0, 0x2E
- ldrsh r4, [r5, r0]
- ldr r3, _0808042C
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- lsls r0, r1, 1
- adds r0, r3
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r2, r4, 0
- muls r2, r0
- adds r1, 0x40
- lsls r1, 1
- adds r1, r3
- movs r3, 0
- ldrsh r0, [r1, r3]
- muls r0, r4
- lsrs r2, 8
- strh r2, [r5, 0x24]
- lsrs r0, 8
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x30]
- adds r0, 0xA
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _08080426
- movs r0, 0
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
-_08080426:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808042C: .4byte gSineTable
- thumb_func_end sub_80803BC
-
- thumb_func_start sub_8080430
-sub_8080430: @ 8080430
- ldr r0, _08080450
- ldr r1, [r0]
- ldr r0, _08080454
- adds r2, r1, r0
- movs r0, 0
- strh r0, [r2]
- ldr r0, _08080458
- adds r2, r1, r0
- movs r0, 0x3
- strb r0, [r2]
- ldr r0, _0808045C
- adds r1, r0
- movs r0, 0x14
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08080450: .4byte gUnknown_08396FC4
-_08080454: .4byte 0x000006cc
-_08080458: .4byte 0x000006c1
-_0808045C: .4byte 0x000006c2
- thumb_func_end sub_8080430
-
- thumb_func_start sub_8080460
-sub_8080460: @ 8080460
- push {lr}
- bl sub_8080430
- pop {r0}
- bx r0
- thumb_func_end sub_8080460
-
- thumb_func_start nullsub_56
-nullsub_56: @ 808046C
- bx lr
- thumb_func_end nullsub_56
-
- thumb_func_start sub_8080470
-sub_8080470: @ 8080470
- movs r0, 0
- bx lr
- thumb_func_end sub_8080470
-
- thumb_func_start sub_8080474
-sub_8080474: @ 8080474
- push {r4,r5,lr}
- bl sub_807F49C
- ldr r0, _080804B4
- ldr r4, [r0]
- ldr r1, _080804B8
- adds r0, r4, r1
- ldrb r5, [r0]
- cmp r5, 0
- bne _080804AC
- ldr r0, _080804BC
- bl LoadSpriteSheet
- movs r2, 0xE5
- lsls r2, 3
- adds r0, r4, r2
- strh r5, [r0]
- ldr r0, _080804C0
- ldrb r1, [r0]
- subs r2, 0x2
- adds r0, r4, r2
- strh r1, [r0]
- ldr r1, _080804C4
- adds r0, r4, r1
- strh r5, [r0]
- adds r2, 0x6
- adds r0, r4, r2
- strh r5, [r0]
-_080804AC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080804B4: .4byte gUnknown_08396FC4
-_080804B8: .4byte 0x0000072e
-_080804BC: .4byte gUnknown_0839AC70
-_080804C0: .4byte gUnknown_0839AC68
-_080804C4: .4byte 0x0000072a
- thumb_func_end sub_8080474
-
- thumb_func_start sub_80804C8
-sub_80804C8: @ 80804C8
- push {r4,lr}
- bl sub_8080474
- ldr r0, _080804F0
- ldr r1, [r0]
- ldr r2, _080804F4
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080804E8
- adds r4, r1, r2
-_080804DE:
- bl sub_80804F8
- ldrb r0, [r4]
- cmp r0, 0
- beq _080804DE
-_080804E8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080804F0: .4byte gUnknown_08396FC4
-_080804F4: .4byte 0x000006d2
- thumb_func_end sub_80804C8
-
- thumb_func_start sub_80804F8
-sub_80804F8: @ 80804F8
- push {r4-r7,lr}
- bl sub_807F52C
- ldr r0, _08080558
- ldr r5, [r0]
- ldr r0, _0808055C
- adds r4, r5, r0
- ldrh r0, [r4]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r4]
- ldr r1, _08080560
- adds r7, r1, 0
- ldr r2, _08080564
- movs r1, 0xE5
- lsls r1, 3
- adds r3, r5, r1
- ldrh r1, [r3]
- adds r1, r2
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r1]
- cmp r0, r1
- bls _08080550
- strh r6, [r4]
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
- ands r0, r7
- cmp r0, 0x7
- bls _08080538
- strh r6, [r3]
-_08080538:
- ldr r0, _08080568
- adds r4, r5, r0
- ldrh r0, [r4]
- bl sub_8080588
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- ands r0, r7
- cmp r0, 0xC
- bls _08080550
- strh r6, [r4]
-_08080550:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08080558: .4byte gUnknown_08396FC4
-_0808055C: .4byte 0x00000726
-_08080560: .4byte 0x0000ffff
-_08080564: .4byte gUnknown_0839AC68
-_08080568: .4byte 0x0000072a
- thumb_func_end sub_80804F8
-
- thumb_func_start sub_808056C
-sub_808056C: @ 808056C
- push {lr}
- bl sub_807F5EC
- lsls r0, 24
- cmp r0, 0
- beq _0808057C
- movs r0, 0x1
- b _08080582
-_0808057C:
- bl sub_8080610
- movs r0, 0
-_08080582:
- pop {r1}
- bx r1
- thumb_func_end sub_808056C
-
- thumb_func_start sub_8080588
-sub_8080588: @ 8080588
- push {r4,lr}
- lsls r0, 16
- ldr r1, _080805F8
- lsrs r0, 14
- adds r3, r0, r1
- adds r1, 0x2
- adds r0, r1
- ldr r1, _080805FC
- ldrh r2, [r0]
- ldrh r0, [r1]
- subs r2, r0
- ldr r0, _08080600
- movs r4, 0
- ldrsh r1, [r3, r4]
- lsls r2, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080805F0
- ldr r0, _08080604
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1, 0x5]
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r3]
- movs r0, 0
- strh r0, [r1, 0x2E]
- strh r0, [r1, 0x30]
- strh r0, [r1, 0x32]
- ldr r0, _08080608
- ldr r1, [r0]
- ldr r0, _0808060C
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080805F0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080805F8: .4byte gUnknown_0839AC78
-_080805FC: .4byte gSpriteCoordOffsetY
-_08080600: .4byte gSpriteTemplate_839ACBC
-_08080604: .4byte gSprites
-_08080608: .4byte gUnknown_08396FC4
-_0808060C: .4byte 0x0000072c
- thumb_func_end sub_8080588
-
- thumb_func_start sub_8080610
-sub_8080610: @ 8080610
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _08080648
-_08080616:
- lsls r0, r4, 4
- adds r0, r4
- lsls r2, r0, 2
- adds r0, r5, 0
- adds r0, 0x14
- adds r0, r2, r0
- ldr r1, [r0]
- ldr r0, _0808064C
- cmp r1, r0
- bne _08080630
- adds r0, r2, r5
- bl DestroySprite
-_08080630:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3F
- bls _08080616
- ldr r0, _08080650
- bl FreeSpriteTilesByTag
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08080648: .4byte gSprites
-_0808064C: .4byte gSpriteTemplate_839ACBC
-_08080650: .4byte 0x00001205
- thumb_func_end sub_8080610
-
- thumb_func_start unc_0807DAB4
-unc_0807DAB4: @ 8080654
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x2E]
- movs r2, 0
- adds r0, 0x2
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _08080694
- strh r2, [r1, 0x2E]
- movs r3, 0x30
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _08080686
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _08080694
- movs r0, 0x1
- strh r0, [r1, 0x30]
- b _08080694
-_08080686:
- ldrh r0, [r1, 0x24]
- subs r0, 0x1
- strh r0, [r1, 0x24]
- lsls r0, 16
- cmp r0, 0
- bgt _08080694
- strh r2, [r1, 0x30]
-_08080694:
- ldrh r0, [r1, 0x22]
- subs r0, 0x3
- strh r0, [r1, 0x22]
- ldrh r0, [r1, 0x32]
- adds r0, 0x1
- strh r0, [r1, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x77
- ble _080806AE
- adds r0, r1, 0
- bl DestroySprite
-_080806AE:
- pop {r0}
- bx r0
- thumb_func_end unc_0807DAB4
-
- thumb_func_start sub_80806B4
-sub_80806B4: @ 80806B4
- push {r4,r5,lr}
- ldr r4, _080806D4
- adds r4, 0x2E
- ldrb r5, [r4]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8080764
- strb r0, [r4]
- ldrb r0, [r4]
- adds r1, r5, 0
- bl sub_8080854
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080806D4: .4byte gSaveBlock1
- thumb_func_end sub_80806B4
-
- thumb_func_start sav1_get_weather_probably
-sav1_get_weather_probably: @ 80806D8
- ldr r0, _080806E0
- adds r0, 0x2E
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080806E0: .4byte gSaveBlock1
- thumb_func_end sav1_get_weather_probably
-
- thumb_func_start sub_80806E4
-sub_80806E4: @ 80806E4
- push {r4,r5,lr}
- ldr r4, _08080704
- adds r4, 0x2E
- ldrb r5, [r4]
- ldr r0, _08080708
- ldrb r0, [r0, 0x16]
- bl sub_8080764
- strb r0, [r4]
- ldrb r0, [r4]
- adds r1, r5, 0
- bl sub_8080854
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08080704: .4byte gSaveBlock1
-_08080708: .4byte gMapHeader
- thumb_func_end sub_80806E4
-
- thumb_func_start sub_808070C
-sub_808070C: @ 808070C
- push {lr}
- bl sub_80806B4
- bl sav1_get_weather_probably
- lsls r0, 24
- lsrs r0, 24
- bl sub_807C91C
- pop {r0}
- bx r0
- thumb_func_end sub_808070C
-
- thumb_func_start sub_8080724
-sub_8080724: @ 8080724
- push {lr}
- bl sub_80806B4
- bl sav1_get_weather_probably
- lsls r0, 24
- lsrs r0, 24
- bl sub_807C988
- pop {r0}
- bx r0
- thumb_func_end sub_8080724
-
- thumb_func_start sub_808073C
-sub_808073C: @ 808073C
- push {lr}
- bl sav1_get_weather_probably
- lsls r0, 24
- lsrs r0, 24
- bl sub_807C91C
- pop {r0}
- bx r0
- thumb_func_end sub_808073C
-
- thumb_func_start sub_8080750
-sub_8080750: @ 8080750
- push {lr}
- bl sav1_get_weather_probably
- lsls r0, 24
- lsrs r0, 24
- bl sub_807C988
- pop {r0}
- bx r0
- thumb_func_end sub_8080750
-
- thumb_func_start sub_8080764
-sub_8080764: @ 8080764
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x15
- bhi _0808082C
- lsls r0, 2
- ldr r1, _08080778
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08080778: .4byte _0808077C
- .align 2, 0
-_0808077C:
- .4byte _0808082C
- .4byte _080807D4
- .4byte _080807D8
- .4byte _080807DC
- .4byte _080807E0
- .4byte _080807E4
- .4byte _080807E8
- .4byte _080807EC
- .4byte _080807F0
- .4byte _080807F4
- .4byte _080807F8
- .4byte _080807FC
- .4byte _08080800
- .4byte _08080804
- .4byte _08080808
- .4byte _0808082C
- .4byte _0808082C
- .4byte _0808082C
- .4byte _0808082C
- .4byte _0808082C
- .4byte _0808080C
- .4byte _08080814
-_080807D4:
- movs r0, 0x1
- b _0808082E
-_080807D8:
- movs r0, 0x2
- b _0808082E
-_080807DC:
- movs r0, 0x3
- b _0808082E
-_080807E0:
- movs r0, 0x4
- b _0808082E
-_080807E4:
- movs r0, 0x5
- b _0808082E
-_080807E8:
- movs r0, 0x6
- b _0808082E
-_080807EC:
- movs r0, 0x7
- b _0808082E
-_080807F0:
- movs r0, 0x8
- b _0808082E
-_080807F4:
- movs r0, 0x9
- b _0808082E
-_080807F8:
- movs r0, 0xA
- b _0808082E
-_080807FC:
- movs r0, 0xB
- b _0808082E
-_08080800:
- movs r0, 0xC
- b _0808082E
-_08080804:
- movs r0, 0xD
- b _0808082E
-_08080808:
- movs r0, 0xE
- b _0808082E
-_0808080C:
- ldr r1, _08080810
- b _08080816
- .align 2, 0
-_08080810: .4byte gUnknown_0839ACD4
-_08080814:
- ldr r1, _08080824
-_08080816:
- ldr r0, _08080828
- adds r0, 0x2F
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- b _0808082E
- .align 2, 0
-_08080824: .4byte gUnknown_0839ACD8
-_08080828: .4byte gSaveBlock1
-_0808082C:
- movs r0, 0
-_0808082E:
- pop {r1}
- bx r1
- thumb_func_end sub_8080764
-
- thumb_func_start sub_8080834
-sub_8080834: @ 8080834
- lsls r0, 16
- ldr r2, _08080850
- adds r2, 0x2F
- lsrs r0, 16
- ldrb r1, [r2]
- adds r0, r1
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- lsrs r1, 16
- strb r1, [r2]
- bx lr
- .align 2, 0
-_08080850: .4byte gSaveBlock1
- thumb_func_end sub_8080834
-
- thumb_func_start sub_8080854
-sub_8080854: @ 8080854
- push {lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r2, r0, 24
- cmp r0, r1
- beq _0808086E
- cmp r2, 0x3
- beq _08080868
- cmp r2, 0x5
- bne _0808086E
-_08080868:
- movs r0, 0x28
- bl sav12_xor_increment
-_0808086E:
- pop {r0}
- bx r0
- thumb_func_end sub_8080854
-
- thumb_func_start palette_bg_faded_fill_black
-palette_bg_faded_fill_black: @ 8080874
- push {lr}
- sub sp, 0x4
- ldr r0, _0808088C
- str r0, [sp]
- ldr r1, _08080890
- ldr r2, _08080894
- mov r0, sp
- bl CpuFastSet
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0808088C: .4byte 0x7fff7fff
-_08080890: .4byte gPlttBufferFaded
-_08080894: .4byte 0x01000100
- thumb_func_end palette_bg_faded_fill_black
-
- thumb_func_start palette_bg_faded_fill_white
-palette_bg_faded_fill_white: @ 8080898
- push {lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- ldr r1, _080808B0
- ldr r2, _080808B4
- mov r0, sp
- bl CpuFastSet
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080808B0: .4byte gPlttBufferFaded
-_080808B4: .4byte 0x01000100
- thumb_func_end palette_bg_faded_fill_white
-
- thumb_func_start pal_fill_for_maplights
-pal_fill_for_maplights: @ 80808B8
- push {r4,lr}
- bl get_map_light_from_warp0
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sav1_map_get_light_level
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl fade_type_for_given_maplight_pair
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080808E2
- cmp r0, 0x1
- beq _080808F0
- b _080808FC
-_080808E2:
- movs r0, 0
- movs r1, 0
- bl fade_screen
- bl palette_bg_faded_fill_white
- b _080808FC
-_080808F0:
- movs r0, 0x2
- movs r1, 0
- bl fade_screen
- bl palette_bg_faded_fill_black
-_080808FC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pal_fill_for_maplights
-
- thumb_func_start pal_fill_black
-pal_fill_black: @ 8080904
- push {lr}
- movs r0, 0
- movs r1, 0
- bl fade_screen
- bl palette_bg_faded_fill_white
- pop {r0}
- bx r0
- thumb_func_end pal_fill_black
-
- thumb_func_start sub_8080918
-sub_8080918: @ 8080918
- push {r4,lr}
- bl sav1_map_get_light_level
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl warp1_get_mapheader
- ldrb r1, [r0, 0x17]
- adds r0, r4, 0
- bl sub_810CDB8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0808093E
- cmp r0, 0x1
- beq _08080948
- b _08080950
-_0808093E:
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- b _08080950
-_08080948:
- movs r0, 0x3
- movs r1, 0
- bl fade_screen
-_08080950:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8080918
-
- thumb_func_start sub_8080958
-sub_8080958: @ 8080958
- push {lr}
- lsls r0, 24
- movs r1, 0
- cmp r0, 0
- bne _08080964
- movs r1, 0x1
-_08080964:
- adds r0, r1, 0
- bl sub_8059B88
- pop {r0}
- bx r0
- thumb_func_end sub_8080958
-
- thumb_func_start task0A_asap_script_env_2_enable_and_set_ctx_running
-task0A_asap_script_env_2_enable_and_set_ctx_running: @ 8080970
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8080E70
- cmp r0, 0x1
- bne _08080988
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_08080988:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end task0A_asap_script_env_2_enable_and_set_ctx_running
-
- thumb_func_start sub_8080990
-sub_8080990: @ 8080990
- push {lr}
- bl ScriptContext2_Enable
- bl sub_8053E90
- bl pal_fill_black
- ldr r0, _080809AC
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080809AC: .4byte task0A_asap_script_env_2_enable_and_set_ctx_running
- thumb_func_end sub_8080990
-
- thumb_func_start sub_80809B0
-sub_80809B0: @ 80809B0
- push {lr}
- bl ScriptContext2_Enable
- bl pal_fill_black
- ldr r0, _080809C8
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080809C8: .4byte task0A_asap_script_env_2_enable_and_set_ctx_running
- thumb_func_end sub_80809B0
-
- thumb_func_start task_mpl_807DD60
-task_mpl_807DD60: @ 80809CC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r2, _080809F0
- adds r4, r0, r2
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08080A06
- cmp r0, 0x1
- bgt _080809F4
- cmp r0, 0
- beq _080809FA
- b _08080A36
- .align 2, 0
-_080809F0: .4byte gTasks
-_080809F4:
- cmp r0, 0x2
- beq _08080A24
- b _08080A36
-_080809FA:
- bl sub_8083664
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- b _08080A1C
-_08080A06:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x4]
- cmp r0, 0x1
- beq _08080A36
- bl pal_fill_for_maplights
-_08080A1C:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08080A36
-_08080A24:
- bl sub_8080E70
- cmp r0, 0x1
- bne _08080A36
- bl ScriptContext2_Disable
- adds r0, r5, 0
- bl DestroyTask
-_08080A36:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end task_mpl_807DD60
-
- thumb_func_start sub_8080A3C
-sub_8080A3C: @ 8080A3C
- push {lr}
- bl ScriptContext2_Enable
- bl sub_8053E90
- bl palette_bg_faded_fill_white
- ldr r0, _08080A58
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08080A58: .4byte task_mpl_807DD60
- thumb_func_end sub_8080A3C
-
- thumb_func_start sub_8080A5C
-sub_8080A5C: @ 8080A5C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08080A80
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08080A90
- cmp r0, 0x1
- bgt _08080A84
- cmp r0, 0
- beq _08080A8A
- b _08080ABC
- .align 2, 0
-_08080A80: .4byte gTasks
-_08080A84:
- cmp r0, 0x2
- beq _08080AA6
- b _08080ABC
-_08080A8A:
- bl sub_80084A4
- b _08080A9E
-_08080A90:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _08080ABC
- bl pal_fill_for_maplights
-_08080A9E:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08080ABC
-_08080AA6:
- bl sub_8080E70
- cmp r0, 0x1
- bne _08080ABC
- bl sub_8007B14
- bl ScriptContext2_Disable
- adds r0, r5, 0
- bl DestroyTask
-_08080ABC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8080A5C
-
- thumb_func_start sub_8080AC4
-sub_8080AC4: @ 8080AC4
- push {lr}
- bl ScriptContext2_Enable
- bl sub_8053E90
- bl palette_bg_faded_fill_white
- ldr r0, _08080AE0
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08080AE0: .4byte sub_8080A5C
- thumb_func_end sub_8080AC4
-
- thumb_func_start sub_8080AE4
-sub_8080AE4: @ 8080AE4
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8056EAC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08080B1C
- ldr r1, _08080B18
- b _08080B2E
- .align 2, 0
-_08080B18: .4byte sub_8080B9C
-_08080B1C:
- adds r0, r4, 0
- bl sub_8056F08
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08080B40
- cmp r0, 0x1
- bne _08080B2E
- ldr r1, _08080B44
-_08080B2E:
- adds r0, r1, 0
- movs r1, 0xA
- bl CreateTask
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08080B40: .4byte task_map_chg_seq_0807E2CC
-_08080B44: .4byte task_map_chg_seq_0807E20C
- thumb_func_end sub_8080AE4
-
- thumb_func_start mapldr_default
-mapldr_default: @ 8080B48
- push {lr}
- bl sub_8053E90
- bl pal_fill_for_maplights
- bl sub_8080AE4
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- thumb_func_end mapldr_default
-
- thumb_func_start sub_8080B60
-sub_8080B60: @ 8080B60
- push {lr}
- bl sub_8053E90
- bl pal_fill_black
- bl sub_8080AE4
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- thumb_func_end sub_8080B60
-
- thumb_func_start sub_8080B78
-sub_8080B78: @ 8080B78
- push {lr}
- bl sub_8053E90
- bl pal_fill_for_maplights
- movs r0, 0x2E
- bl PlaySE
- ldr r0, _08080B98
- movs r1, 0xA
- bl CreateTask
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_08080B98: .4byte task_map_chg_seq_0807E2CC
- thumb_func_end sub_8080B78
-
- thumb_func_start sub_8080B9C
-sub_8080B9C: @ 8080B9C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08080BC8
- adds r5, r0, r1
- adds r6, r5, 0
- adds r6, 0xC
- adds r7, r5, 0
- adds r7, 0xE
- movs r2, 0x8
- ldrsh r0, [r5, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bhi _08080CAE
- lsls r0, 2
- ldr r1, _08080BCC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08080BC8: .4byte gTasks
-_08080BCC: .4byte _08080BD0
- .align 2, 0
-_08080BD0:
- .4byte _08080BE4
- .4byte _08080C08
- .4byte _08080C40
- .4byte _08080C84
- .4byte _08080CA4
-_08080BE4:
- movs r0, 0
- bl sub_8080958
- bl player_bitmagic
- adds r0, r6, 0
- adds r1, r7, 0
- bl PlayerGetDestCoords
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r2, 0
- ldrsh r1, [r7, r2]
- bl sub_80586B4
- movs r0, 0x1
- strh r0, [r5, 0x8]
- b _08080CAE
-_08080C08:
- bl sub_8080E70
- cmp r0, 0
- beq _08080CAE
- movs r0, 0x1
- bl sub_8080958
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08080C3C
- adds r0, r1
- movs r1, 0x8
- bl FieldObjectSetSpecialAnim
- movs r0, 0x2
- strh r0, [r5, 0x8]
- b _08080CAE
- .align 2, 0
-_08080C3C: .4byte gMapObjects
-_08080C40:
- bl walkrun_is_standing_still
- lsls r0, 24
- cmp r0, 0
- beq _08080CAE
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r2, 0
- ldrsh r1, [r7, r2]
- bl sub_805870C
- lsls r0, 24
- asrs r0, 24
- strh r0, [r5, 0xA]
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08080C80
- adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
- movs r0, 0x3
- strh r0, [r5, 0x8]
- b _08080CAE
- .align 2, 0
-_08080C80: .4byte gMapObjects
-_08080C84:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0
- blt _08080C9A
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x4]
- cmp r0, 0x1
- beq _08080CAE
-_08080C9A:
- bl sub_806451C
- movs r0, 0x4
- strh r0, [r5, 0x8]
- b _08080CAE
-_08080CA4:
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
-_08080CAE:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8080B9C
-
- thumb_func_start task_map_chg_seq_0807E20C
-task_map_chg_seq_0807E20C: @ 8080CB4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08080CE0
- adds r5, r0, r1
- adds r6, r5, 0
- adds r6, 0xC
- adds r7, r5, 0
- adds r7, 0xE
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _08080D06
- cmp r0, 0x1
- bgt _08080CE4
- cmp r0, 0
- beq _08080CEE
- b _08080D6E
- .align 2, 0
-_08080CE0: .4byte gTasks
-_08080CE4:
- cmp r0, 0x2
- beq _08080D50
- cmp r0, 0x3
- beq _08080D64
- b _08080D6E
-_08080CEE:
- movs r0, 0
- bl sub_8080958
- bl player_bitmagic
- adds r0, r6, 0
- adds r1, r7, 0
- bl PlayerGetDestCoords
- movs r0, 0x1
- strh r0, [r5, 0x8]
- b _08080D6E
-_08080D06:
- bl sub_8080E70
- cmp r0, 0
- beq _08080D6E
- movs r0, 0x1
- bl sub_8080958
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08080D4C
- adds r4, r0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl GetGoSpeed0AnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- movs r0, 0x2
- strh r0, [r5, 0x8]
- b _08080D6E
- .align 2, 0
-_08080D4C: .4byte gMapObjects
-_08080D50:
- bl walkrun_is_standing_still
- lsls r0, 24
- cmp r0, 0
- beq _08080D6E
- bl sub_806451C
- movs r0, 0x3
- strh r0, [r5, 0x8]
- b _08080D6E
-_08080D64:
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
-_08080D6E:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end task_map_chg_seq_0807E20C
-
- thumb_func_start task_map_chg_seq_0807E2CC
-task_map_chg_seq_0807E2CC: @ 8080D74
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08080D94
- 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 _08080D98
- cmp r0, 0x1
- beq _08080DA8
- b _08080DBE
- .align 2, 0
-_08080D94: .4byte gTasks
-_08080D98:
- bl player_bitmagic
- bl ScriptContext2_Enable
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08080DBE
-_08080DA8:
- bl sub_8080E70
- cmp r0, 0
- beq _08080DBE
- bl sub_806451C
- bl ScriptContext2_Disable
- adds r0, r5, 0
- bl DestroyTask
-_08080DBE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end task_map_chg_seq_0807E2CC
-
- thumb_func_start sub_8080DC4
-sub_8080DC4: @ 8080DC4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8080E70
- cmp r0, 0x1
- bne _08080DE0
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, _08080DE8
- movs r1, 0x50
- bl CreateTask
-_08080DE0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08080DE8: .4byte sub_80712B4
- thumb_func_end sub_8080DC4
-
- thumb_func_start atk17_seteffectuser
-atk17_seteffectuser: @ 8080DEC
- push {lr}
- bl pal_fill_black
- ldr r0, _08080E00
- bl CreateStartMenuTask
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_08080E00: .4byte sub_8080DC4
- thumb_func_end atk17_seteffectuser
-
- thumb_func_start task_mpl_807E3C8
-task_mpl_807E3C8: @ 8080E04
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8080E70
- cmp r0, 0x1
- bne _08080E20
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
- bl sub_8064E2C
-_08080E20:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end task_mpl_807E3C8
-
- thumb_func_start sub_8080E28
-sub_8080E28: @ 8080E28
- push {lr}
- bl ScriptContext2_Enable
- bl pal_fill_black
- ldr r0, _08080E40
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08080E40: .4byte task_mpl_807E3C8
- thumb_func_end sub_8080E28
-
- thumb_func_start sub_8080E44
-sub_8080E44: @ 8080E44
- push {lr}
- bl ScriptContext2_Enable
- bl sub_8053E90
- bl pal_fill_black
- ldr r0, _08080E60
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08080E60: .4byte task_mpl_807E3C8
- thumb_func_end sub_8080E44
-
- thumb_func_start sub_8080E64
-sub_8080E64: @ 8080E64
- ldr r0, _08080E6C
- ldrb r0, [r0, 0x7]
- lsrs r0, 7
- bx lr
- .align 2, 0
-_08080E6C: .4byte gPaletteFade
- thumb_func_end sub_8080E64
-
- thumb_func_start sub_8080E70
-sub_8080E70: @ 8080E70
- push {lr}
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08080E82
- movs r0, 0
- b _08080E84
-_08080E82:
- movs r0, 0x1
-_08080E84:
- pop {r1}
- bx r1
- thumb_func_end sub_8080E70
-
- thumb_func_start sub_8080E88
-sub_8080E88: @ 8080E88
- push {lr}
- bl ScriptContext2_Enable
- bl sub_8053FF8
- bl sub_8080918
- bl play_some_sound
- movs r0, 0x9
- bl PlaySE
- ldr r0, _08080EB4
- ldr r1, _08080EB8
- str r1, [r0]
- ldr r0, _08080EBC
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08080EB4: .4byte gUnknown_0300485C
-_08080EB8: .4byte mapldr_default
-_08080EBC: .4byte task0A_fade_n_map_maybe
- thumb_func_end sub_8080E88
-
- thumb_func_start sp13E_warp_to_last_warp
-sp13E_warp_to_last_warp: @ 8080EC0
- push {lr}
- bl ScriptContext2_Enable
- bl sub_8053FF8
- bl sub_8080918
- bl play_some_sound
- ldr r0, _08080EE4
- ldr r1, _08080EE8
- str r1, [r0]
- ldr r0, _08080EEC
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08080EE4: .4byte gUnknown_0300485C
-_08080EE8: .4byte mapldr_default
-_08080EEC: .4byte task0A_fade_n_map_maybe
- thumb_func_end sp13E_warp_to_last_warp
-
- thumb_func_start sub_8080EF0
-sub_8080EF0: @ 8080EF0
- push {lr}
- bl ScriptContext2_Enable
- ldr r0, _08080F08
- ldr r1, _08080F0C
- str r1, [r0]
- ldr r0, _08080F10
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08080F08: .4byte gUnknown_0300485C
-_08080F0C: .4byte mapldr_default
-_08080F10: .4byte sub_808115C
- thumb_func_end sub_8080EF0
-
- thumb_func_start sp13F_fall_to_last_warp
-sp13F_fall_to_last_warp: @ 8080F14
- push {lr}
- bl sp13E_warp_to_last_warp
- ldr r1, _08080F24
- ldr r0, _08080F28
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08080F24: .4byte gUnknown_0300485C
-_08080F28: .4byte sub_8086748
- thumb_func_end sp13F_fall_to_last_warp
-
- thumb_func_start sub_8080F2C
-sub_8080F2C: @ 8080F2C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ScriptContext2_Enable
- adds r0, r4, 0
- movs r1, 0xA
- bl sub_8086A2C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8080F2C
-
- thumb_func_start sub_8080F48
-sub_8080F48: @ 8080F48
- push {lr}
- bl ScriptContext2_Enable
- movs r0, 0xA
- bl sub_80871B8
- pop {r0}
- bx r0
- thumb_func_end sub_8080F48
-
- thumb_func_start sub_8080F58
-sub_8080F58: @ 8080F58
- push {lr}
- bl ScriptContext2_Enable
- movs r0, 0xA
- bl sub_8087654
- pop {r0}
- bx r0
- thumb_func_end sub_8080F58
-
- thumb_func_start sub_8080F68
-sub_8080F68: @ 8080F68
- push {lr}
- bl ScriptContext2_Enable
- bl sub_8053FF8
- bl sub_8080918
- movs r0, 0x2D
- bl PlaySE
- ldr r0, _08080F90
- movs r1, 0xA
- bl CreateTask
- ldr r1, _08080F94
- ldr r0, _08080F98
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08080F90: .4byte task0A_fade_n_map_maybe
-_08080F94: .4byte gUnknown_0300485C
-_08080F98: .4byte sub_8080B78
- thumb_func_end sub_8080F68
-
- thumb_func_start sub_8080F9C
-sub_8080F9C: @ 8080F9C
- push {lr}
- bl ScriptContext2_Enable
- bl sub_8080918
- ldr r0, _08080FB8
- movs r1, 0xA
- bl CreateTask
- ldr r1, _08080FBC
- ldr r0, _08080FC0
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08080FB8: .4byte task0A_fade_n_map_maybe
-_08080FBC: .4byte gUnknown_0300485C
-_08080FC0: .4byte sub_80C791C
- thumb_func_end sub_8080F9C
-
- thumb_func_start sub_8080FC4
-sub_8080FC4: @ 8080FC4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08080FE8
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08080FF8
- cmp r0, 0x1
- bgt _08080FEC
- cmp r0, 0
- beq _08080FF2
- b _08081022
- .align 2, 0
-_08080FE8: .4byte gTasks
-_08080FEC:
- cmp r0, 0x2
- beq _08081012
- b _08081022
-_08080FF2:
- bl ScriptContext2_Enable
- b _0808100A
-_08080FF8:
- bl sub_8080E64
- cmp r0, 0
- bne _08081022
- bl sub_8054034
- lsls r0, 24
- cmp r0, 0
- beq _08081022
-_0808100A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08081022
-_08081012:
- bl warp_in
- ldr r0, _08081028
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_08081022:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08081028: .4byte sub_8054588
- thumb_func_end sub_8080FC4
-
- thumb_func_start sub_808102C
-sub_808102C: @ 808102C
- push {lr}
- bl ScriptContext2_Enable
- bl sub_8053FF8
- bl sub_8080918
- movs r0, 0x9
- bl PlaySE
- ldr r0, _0808104C
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0808104C: .4byte sub_8080FC4
- thumb_func_end sub_808102C
-
- thumb_func_start sub_8081050
-sub_8081050: @ 8081050
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08081074
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08081096
- cmp r0, 0x1
- bgt _08081078
- cmp r0, 0
- beq _0808107E
- b _080810CC
- .align 2, 0
-_08081074: .4byte gUnknown_03004B28
-_08081078:
- cmp r0, 0x2
- beq _080810B4
- b _080810CC
-_0808107E:
- bl ClearLinkCallback_2
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- bl sub_8053FF8
- movs r0, 0x9
- bl PlaySE
- b _080810AC
-_08081096:
- bl sub_8080E64
- cmp r0, 0
- bne _080810CC
- bl sub_8054034
- lsls r0, 24
- cmp r0, 0
- beq _080810CC
- bl sub_800832C
-_080810AC:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080810CC
-_080810B4:
- ldr r0, _080810D4
- ldrb r0, [r0]
- cmp r0, 0
- bne _080810CC
- bl warp_in
- ldr r0, _080810D8
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_080810CC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080810D4: .4byte gReceivedRemoteLinkPlayers
-_080810D8: .4byte CB2_LoadMap
- thumb_func_end sub_8081050
-
- thumb_func_start sub_80810DC
-sub_80810DC: @ 80810DC
- push {lr}
- ldr r0, _080810EC
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080810EC: .4byte sub_8081050
- thumb_func_end sub_80810DC
-
- thumb_func_start task0A_fade_n_map_maybe
-task0A_fade_n_map_maybe: @ 80810F0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08081114
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08081128
- cmp r0, 0x1
- bgt _08081118
- cmp r0, 0
- beq _0808111E
- b _08081152
- .align 2, 0
-_08081114: .4byte gTasks
-_08081118:
- cmp r0, 0x2
- beq _08081142
- b _08081152
-_0808111E:
- bl player_bitmagic
- bl ScriptContext2_Enable
- b _0808113A
-_08081128:
- bl sub_8080E64
- cmp r0, 0
- bne _08081152
- bl sub_8054034
- lsls r0, 24
- cmp r0, 0
- beq _08081152
-_0808113A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08081152
-_08081142:
- bl warp_in
- ldr r0, _08081158
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_08081152:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08081158: .4byte CB2_LoadMap
- thumb_func_end task0A_fade_n_map_maybe
-
- thumb_func_start sub_808115C
-sub_808115C: @ 808115C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0808118C
- adds r5, r1, r0
- adds r4, r5, 0
- adds r4, 0xC
- adds r6, r5, 0
- adds r6, 0xE
- movs r2, 0x8
- ldrsh r1, [r5, r2]
- adds r2, r0, 0
- cmp r1, 0x4
- bls _08081180
- b _080812BC
-_08081180:
- lsls r0, r1, 2
- ldr r1, _08081190
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0808118C: .4byte gTasks
-_08081190: .4byte _08081194
- .align 2, 0
-_08081194:
- .4byte _080811A8
- .4byte _080811E4
- .4byte _08081240
- .4byte _0808128C
- .4byte _080812A8
-_080811A8:
- bl player_bitmagic
- adds r0, r4, 0
- adds r1, r6, 0
- bl PlayerGetDestCoords
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0
- ldrsh r1, [r6, r2]
- subs r1, 0x1
- bl sub_8058790
- lsls r0, 16
- lsrs r0, 16
- bl PlaySE
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0
- ldrsh r1, [r6, r2]
- subs r1, 0x1
- bl task_overworld_door_add_if_role_69_for_opening_door_at
- lsls r0, 24
- asrs r0, 24
- strh r0, [r5, 0xA]
- movs r0, 0x1
- strh r0, [r5, 0x8]
- b _080812BC
-_080811E4:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0
- blt _080811FA
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x4]
- cmp r0, 0x1
- beq _080812BC
-_080811FA:
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r4, _0808123C
- adds r0, r4
- bl FieldObjectClearAnimIfSpecialAnimActive
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x9
- bl FieldObjectSetSpecialAnim
- movs r0, 0x2
- strh r0, [r5, 0x8]
- b _080812BC
- .align 2, 0
-_0808123C: .4byte gMapObjects
-_08081240:
- bl walkrun_is_standing_still
- lsls r0, 24
- cmp r0, 0
- beq _080812BC
- movs r2, 0
- ldrsh r0, [r4, r2]
- movs r2, 0
- ldrsh r1, [r6, r2]
- subs r1, 0x1
- bl sub_805870C
- lsls r0, 24
- asrs r0, 24
- strh r0, [r5, 0xA]
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08081288
- adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
- movs r0, 0
- bl sub_8080958
- movs r0, 0x3
- strh r0, [r5, 0x8]
- b _080812BC
- .align 2, 0
-_08081288: .4byte gMapObjects
-_0808128C:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0
- blt _080812A2
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x4]
- cmp r0, 0x1
- beq _080812BC
-_080812A2:
- movs r0, 0x4
- strh r0, [r5, 0x8]
- b _080812BC
-_080812A8:
- bl sub_8053FF8
- bl sub_8080918
- bl play_some_sound
- movs r0, 0
- strh r0, [r5, 0x8]
- ldr r0, _080812C4
- str r0, [r5]
-_080812BC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080812C4: .4byte task0A_fade_n_map_maybe
- thumb_func_end sub_808115C
-
- thumb_func_start sub_80812C8
-sub_80812C8: @ 80812C8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080812EC
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08081300
- cmp r0, 0x1
- bgt _080812F0
- cmp r0, 0
- beq _080812F6
- b _0808132A
- .align 2, 0
-_080812EC: .4byte gTasks
-_080812F0:
- cmp r0, 0x2
- beq _0808131A
- b _0808132A
-_080812F6:
- bl player_bitmagic
- bl ScriptContext2_Enable
- b _08081312
-_08081300:
- bl sub_8080E64
- cmp r0, 0
- bne _0808132A
- bl sub_8054034
- lsls r0, 24
- cmp r0, 0
- beq _0808132A
-_08081312:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0808132A
-_0808131A:
- bl warp_in
- ldr r0, _08081330
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_0808132A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08081330: .4byte sub_8054534
- thumb_func_end sub_80812C8
-
- thumb_func_start sub_8081334
-sub_8081334: @ 8081334
- push {lr}
- bl ScriptContext2_Enable
- bl sub_8053FF8
- bl sub_8080918
- bl play_some_sound
- movs r0, 0x9
- bl PlaySE
- ldr r0, _08081360
- ldr r1, _08081364
- str r1, [r0]
- ldr r0, _08081368
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08081360: .4byte gUnknown_0300485C
-_08081364: .4byte sub_8080B60
-_08081368: .4byte sub_80812C8
- thumb_func_end sub_8081334
-
- thumb_func_start sub_808136C
-sub_808136C: @ 808136C
- push {lr}
- cmp r1, 0xA0
- bhi _08081394
- cmp r2, 0
- bge _08081378
- movs r2, 0
-_08081378:
- cmp r2, 0xFF
- ble _0808137E
- movs r2, 0xFF
-_0808137E:
- cmp r3, 0
- bge _08081384
- movs r3, 0
-_08081384:
- cmp r3, 0xFF
- ble _0808138A
- movs r3, 0xFF
-_0808138A:
- lsls r1, 1
- adds r1, r0
- lsls r0, r2, 8
- orrs r0, r3
- strh r0, [r1]
-_08081394:
- pop {r0}
- bx r0
- thumb_func_end sub_808136C
-
- thumb_func_start sub_8081398
-sub_8081398: @ 8081398
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- str r0, [sp]
- mov r10, r1
- mov r9, r2
- adds r6, r3, 0
- mov r8, r6
- movs r7, 0
- cmp r6, 0
- blt _08081414
-_080813B4:
- mov r0, r9
- subs r1, r0, r7
- mov r0, r10
- subs r4, r0, r6
- adds r5, r0, r6
- ldr r0, [sp]
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_808136C
- mov r0, r9
- adds r1, r0, r7
- ldr r0, [sp]
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_808136C
- mov r0, r9
- subs r1, r0, r6
- mov r0, r10
- subs r4, r0, r7
- adds r5, r0, r7
- ldr r0, [sp]
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_808136C
- mov r0, r9
- adds r1, r0, r6
- ldr r0, [sp]
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_808136C
- mov r1, r8
- adds r1, 0x1
- lsls r0, r7, 1
- subs r1, r0
- mov r8, r1
- adds r7, 0x1
- cmp r1, 0
- bge _08081410
- subs r1, r6, 0x1
- lsls r0, r1, 1
- add r8, r0
- adds r6, r1, 0
-_08081410:
- cmp r6, r7
- bge _080813B4
-_08081414:
- 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_8081398
-
- thumb_func_start sub_8081424
-sub_8081424: @ 8081424
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08081448
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08081480
- cmp r0, 0x1
- bgt _0808144C
- cmp r0, 0
- beq _08081452
- b _080814E2
- .align 2, 0
-_08081448: .4byte gUnknown_03004B28
-_0808144C:
- cmp r0, 0x2
- beq _080814D8
- b _080814E2
-_08081452:
- ldr r0, _08081478
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- ldr r1, _0808147C
- adds r0, r1
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r5, 0x6
- ldrsh r3, [r4, r5]
- bl sub_8081398
- movs r0, 0x1
- strh r0, [r4]
- b _080814E2
- .align 2, 0
-_08081478: .4byte gUnknown_03004DC0
-_0808147C: .4byte gUnknown_03004DE0
-_08081480:
- ldr r0, _080814C8
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- ldr r1, _080814CC
- adds r0, r1
- movs r6, 0x2
- ldrsh r1, [r4, r6]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r6, 0x6
- ldrsh r3, [r4, r6]
- bl sub_8081398
- movs r0, 0
- strh r0, [r4]
- ldrh r0, [r4, 0xA]
- ldrh r1, [r4, 0x6]
- adds r0, r1
- strh r0, [r4, 0x6]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- cmp r0, r1
- ble _080814E2
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- bne _080814D0
- bl remove_some_task
- movs r0, 0x2
- strh r0, [r4]
- b _080814E2
- .align 2, 0
-_080814C8: .4byte gUnknown_03004DC0
-_080814CC: .4byte gUnknown_03004DE0
-_080814D0:
- adds r0, r5, 0
- bl DestroyTask
- b _080814E2
-_080814D8:
- bl dp12_8087EA4
- adds r0, r5, 0
- bl DestroyTask
-_080814E2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8081424
-
- thumb_func_start sub_80814E8
-sub_80814E8: @ 80814E8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808150C
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _08081504
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
-_08081504:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808150C: .4byte sub_8081424
- thumb_func_end sub_80814E8
-
- thumb_func_start sub_8081510
-sub_8081510: @ 8081510
- push {r4,lr}
- ldr r4, _08081530
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _08081528
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
-_08081528:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08081530: .4byte sub_80814E8
- thumb_func_end sub_8081510
-
- thumb_func_start sub_8081534
-sub_8081534: @ 8081534
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r8, r0
- mov r9, r1
- adds r5, r2, 0
- adds r4, r3, 0
- ldr r6, [sp, 0x1C]
- ldr r0, [sp, 0x20]
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08081578
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _0808157C
- adds r1, r0, r1
- strh r5, [r1, 0x6]
- strh r4, [r1, 0x8]
- mov r0, r8
- strh r0, [r1, 0x2]
- mov r0, r9
- strh r0, [r1, 0x4]
- strh r6, [r1, 0xC]
- cmp r5, r4
- bge _08081580
- strh r7, [r1, 0xA]
- b _08081584
- .align 2, 0
-_08081578: .4byte sub_8081424
-_0808157C: .4byte gUnknown_03004B28
-_08081580:
- negs r0, r7
- strh r0, [r1, 0xA]
-_08081584:
- adds r0, r2, 0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8081534
-
- thumb_func_start sub_8081594
-sub_8081594: @ 8081594
- push {r4,r5,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- bl sav1_get_flash_used_on_map
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- cmp r4, 0
- bne _080815AE
- movs r5, 0x1
-_080815AE:
- ldr r1, _080815DC
- lsls r0, 1
- adds r0, r1
- ldrh r2, [r0]
- lsls r0, r4, 1
- adds r0, r1
- ldrh r3, [r0]
- str r5, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0x78
- movs r1, 0x50
- bl sub_8081534
- bl sub_8081510
- bl ScriptContext2_Enable
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080815DC: .4byte gUnknown_0839ACDC
- thumb_func_end sub_8081594
-
- thumb_func_start sub_80815E0
-sub_80815E0: @ 80815E0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0808160E
- ldr r4, _08081614
- ldr r1, _08081618
- lsls r0, 1
- adds r0, r1
- ldrh r3, [r0]
- adds r0, r4, 0
- movs r1, 0x78
- movs r2, 0x50
- bl sub_8081398
- movs r0, 0xF0
- lsls r0, 3
- adds r1, r4, r0
- movs r2, 0xF0
- lsls r2, 1
- adds r0, r4, 0
- bl CpuFastSet
-_0808160E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08081614: .4byte gUnknown_03004DE0
-_08081618: .4byte gUnknown_0839ACDC
- thumb_func_end sub_80815E0
-
- thumb_func_start sub_808161C
-sub_808161C: @ 808161C
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- cmp r0, 0
- bne _0808162A
- movs r1, 0x1F
- b _08081630
-_0808162A:
- movs r0, 0xF8
- lsls r0, 7
- adds r1, r0, 0
-_08081630:
- mov r0, sp
- strh r1, [r0]
- movs r5, 0
- movs r4, 0xF0
- lsls r4, 16
-_0808163A:
- lsrs r1, r4, 16
- mov r0, sp
- movs r2, 0x2
- bl LoadPalette
- movs r0, 0x80
- lsls r0, 9
- adds r4, r0
- adds r5, 0x1
- cmp r5, 0xF
- ble _0808163A
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_808161C
-
- thumb_func_start sub_8081658
-sub_8081658: @ 8081658
- push {lr}
- lsls r0, 16
- ldr r2, _08081678
- ldrh r1, [r2]
- lsls r1, 24
- lsrs r3, r1, 24
- ldrh r1, [r2]
- lsrs r2, r1, 8
- cmp r0, 0
- beq _0808167C
- cmp r3, 0
- beq _08081686
- subs r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- b _08081686
- .align 2, 0
-_08081678: .4byte REG_BLDALPHA
-_0808167C:
- cmp r2, 0xF
- bhi _08081686
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_08081686:
- ldr r1, _0808169C
- lsls r0, r2, 8
- orrs r0, r3
- strh r0, [r1]
- cmp r3, 0
- bne _080816A0
- cmp r2, 0x10
- bne _080816A0
- movs r0, 0x1
- b _080816A2
- .align 2, 0
-_0808169C: .4byte REG_BLDALPHA
-_080816A0:
- movs r0, 0
-_080816A2:
- pop {r1}
- bx r1
- thumb_func_end sub_8081658
-
- thumb_func_start sub_80816A8
-sub_80816A8: @ 80816A8
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080816D0
- adds r7, r0, r1
- movs r1, 0
- ldrsh r0, [r7, r1]
- cmp r0, 0x7
- bls _080816C4
- b _08081892
-_080816C4:
- lsls r0, 2
- ldr r1, _080816D4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080816D0: .4byte gUnknown_03004B28
-_080816D4: .4byte _080816D8
- .align 2, 0
-_080816D8:
- .4byte _080816F8
- .4byte _08081790
- .4byte _080817BC
- .4byte _080817D8
- .4byte _080817EE
- .4byte _08081852
- .4byte _08081818
- .4byte _08081826
-_080816F8:
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- strh r0, [r7, 0xC]
- ldr r3, _0808176C
- ldrh r0, [r3]
- strh r0, [r7, 0xE]
- ldr r6, _08081770
- ldrh r0, [r6]
- strh r0, [r7, 0x10]
- ldr r5, _08081774
- ldrh r0, [r5]
- strh r0, [r7, 0x12]
- ldr r4, _08081778
- ldrh r0, [r4]
- strh r0, [r7, 0x14]
- ldrh r1, [r2]
- ldr r0, _0808177C
- ands r0, r1
- strh r0, [r2]
- ldr r1, _08081780
- ldrh r0, [r3]
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r3]
- ldr r2, _08081784
- adds r0, r2, 0
- strh r0, [r6]
- movs r0, 0x3F
- strh r0, [r5]
- movs r0, 0x1E
- strh r0, [r4]
- ldr r4, _08081788
- movs r0, 0x4
- ldrsh r1, [r7, r0]
- movs r0, 0x6
- ldrsh r2, [r7, r0]
- adds r0, r4, 0
- movs r3, 0x1
- bl sub_8081398
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r4, r2
- movs r2, 0xF0
- lsls r2, 1
- adds r0, r4, 0
- bl CpuFastSet
- ldr r2, _0808178C
- ldr r0, [r2]
- ldr r1, [r2, 0x4]
- ldr r2, [r2, 0x8]
- bl sub_80895F8
- movs r0, 0x1
- strh r0, [r7]
- b _08081892
- .align 2, 0
-_0808176C: .4byte REG_BLDCNT
-_08081770: .4byte REG_BLDALPHA
-_08081774: .4byte REG_WININ
-_08081778: .4byte REG_WINOUT
-_0808177C: .4byte 0x0000bfff
-_08081780: .4byte gUnknown_081E29E8
-_08081784: .4byte 0x0000070c
-_08081788: .4byte gUnknown_03004DE0
-_0808178C: .4byte gUnknown_0839ACEC
-_08081790:
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuFillWindowRectWithBlankTile
- ldrb r0, [r7, 0x2]
- bl sub_808161C
- movs r1, 0x4
- ldrsh r0, [r7, r1]
- movs r2, 0x6
- ldrsh r1, [r7, r2]
- movs r2, 0x1
- str r2, [sp]
- movs r4, 0x2
- str r4, [sp, 0x4]
- movs r3, 0xA0
- bl sub_8081534
- strh r4, [r7]
- b _08081892
-_080817BC:
- ldr r0, _080817D4
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _08081892
- bl EnableBothScriptContexts
- movs r0, 0x3
- strh r0, [r7]
- b _08081892
- .align 2, 0
-_080817D4: .4byte sub_8081424
-_080817D8:
- bl InstallCameraPanAheadCallback
- movs r0, 0
- bl SetCameraPanningCallback
- movs r0, 0
- strh r0, [r7, 0xA]
- movs r0, 0x4
- strh r0, [r7, 0x8]
- strh r0, [r7]
- b _08081892
-_080817EE:
- ldrh r0, [r7, 0x8]
- subs r0, 0x1
- strh r0, [r7, 0x8]
- lsls r0, 16
- cmp r0, 0
- bne _08081892
- movs r0, 0x4
- strh r0, [r7, 0x8]
- ldrh r0, [r7, 0xA]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r7, 0xA]
- movs r1, 0x4
- negs r1, r1
- cmp r0, 0
- beq _08081810
- movs r1, 0x4
-_08081810:
- movs r0, 0
- bl SetCameraPanning
- b _08081892
-_08081818:
- bl InstallCameraPanAheadCallback
- movs r0, 0x8
- strh r0, [r7, 0x8]
- movs r0, 0x7
- strh r0, [r7]
- b _08081892
-_08081826:
- ldrh r0, [r7, 0x8]
- subs r0, 0x1
- strh r0, [r7, 0x8]
- lsls r0, 16
- cmp r0, 0
- bne _08081892
- movs r0, 0x8
- strh r0, [r7, 0x8]
- ldrh r0, [r7, 0xA]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r7, 0xA]
- ldrh r0, [r7, 0xA]
- bl sub_8081658
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08081892
- movs r0, 0x5
- strh r0, [r7]
- b _08081892
-_08081852:
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r0, _0808189C
- bl LoadFontDefaultPalette
- ldr r1, _080818A0
- movs r0, 0xFF
- strh r0, [r1]
- subs r1, 0x40
- ldrh r0, [r7, 0xC]
- strh r0, [r1]
- adds r1, 0x50
- ldrh r0, [r7, 0xE]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r7, 0x10]
- strh r0, [r1]
- subs r1, 0xA
- ldrh r0, [r7, 0x12]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r7, 0x14]
- strh r0, [r1]
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
-_08081892:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808189C: .4byte gWindowConfig_81E6CE4
-_080818A0: .4byte REG_WIN0H
- thumb_func_end sub_80816A8
-
- thumb_func_start sub_80818A4
-sub_80818A4: @ 80818A4
- push {lr}
- ldr r0, _080818CC
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080818D0
- adds r1, r0
- ldr r0, _080818D4
- ldrh r0, [r0]
- cmp r0, 0
- bne _080818D8
- strh r0, [r1, 0x2]
- movs r0, 0x68
- b _080818F0
- .align 2, 0
-_080818CC: .4byte sub_80816A8
-_080818D0: .4byte gUnknown_03004B28
-_080818D4: .4byte gScriptResult
-_080818D8:
- cmp r0, 0x1
- bne _080818E2
- strh r0, [r1, 0x2]
- movs r0, 0x68
- b _080818F0
-_080818E2:
- cmp r0, 0x2
- bne _080818EA
- movs r0, 0
- b _080818EC
-_080818EA:
- movs r0, 0x1
-_080818EC:
- strh r0, [r1, 0x2]
- movs r0, 0x78
-_080818F0:
- strh r0, [r1, 0x4]
- movs r0, 0x50
- strh r0, [r1, 0x6]
- pop {r0}
- bx r0
- thumb_func_end sub_80818A4
-
- thumb_func_start sub_80818FC
-sub_80818FC: @ 80818FC
- push {lr}
- ldr r0, _0808191C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08081920
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0x6
- strh r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_0808191C: .4byte sub_80816A8
-_08081920: .4byte gTasks
- thumb_func_end sub_80818FC
-
- thumb_func_start sub_8081924
-sub_8081924: @ 8081924
- push {lr}
- bl sub_8054044
- ldr r0, _08081938
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08081938: .4byte task50_0807F0C8
- thumb_func_end sub_8081924
-
- thumb_func_start task50_0807F0C8
-task50_0807F0C8: @ 808193C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8054034
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08081958
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_08081958:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end task50_0807F0C8
-
- thumb_func_start task01_battle_start
-task01_battle_start: @ 8081960
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08081980
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08081984
- cmp r0, 0x1
- beq _0808199A
- b _080819BA
- .align 2, 0
-_08081980: .4byte gUnknown_03004B28
-_08081984:
- bl c3_80A0DD8_is_running
- cmp r0, 0
- bne _080819BA
- ldrb r0, [r4, 0x2]
- bl sub_811AABC
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080819BA
-_0808199A:
- bl sub_811AAE8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080819BA
- ldr r0, _080819C0
- bl SetMainCallback2
- bl prev_quest_postbuffer_cursor_backup_reset
- bl overworld_poison_timer_set
- adds r0, r5, 0
- bl DestroyTask
-_080819BA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080819C0: .4byte sub_800E7C4
- thumb_func_end task01_battle_start
-
- thumb_func_start task_add_01_battle_start
-task_add_01_battle_start: @ 80819C4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 16
- lsrs r5, 16
- ldr r0, _080819F8
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080819FC
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xA]
- adds r0, r5, 0
- bl current_map_music_set__default_for_battle
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080819F8: .4byte task01_battle_start
-_080819FC: .4byte gTasks
- thumb_func_end task_add_01_battle_start
-
- thumb_func_start sub_8081A00
-sub_8081A00: @ 8081A00
- push {lr}
- bl GetSafariZoneFlag
- cmp r0, 0
- beq _08081A10
- bl sub_8081AA4
- b _08081A14
-_08081A10:
- bl sub_8081A18
-_08081A14:
- pop {r0}
- bx r0
- thumb_func_end sub_8081A00
-
- thumb_func_start sub_8081A18
-sub_8081A18: @ 8081A18
- push {lr}
- bl ScriptContext2_Enable
- bl player_bitmagic
- bl sub_80597F4
- ldr r1, _08081A50
- ldr r0, _08081A54
- str r0, [r1, 0x8]
- ldr r1, _08081A58
- movs r0, 0
- strh r0, [r1]
- bl sub_8082034
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl task_add_01_battle_start
- movs r0, 0x7
- bl sav12_xor_increment
- movs r0, 0x8
- bl sav12_xor_increment
- pop {r0}
- bx r0
- .align 2, 0
-_08081A50: .4byte gMain
-_08081A54: .4byte sub_8081C8C
-_08081A58: .4byte gUnknown_020239F8
- thumb_func_end sub_8081A18
-
- thumb_func_start sub_8081A5C
-sub_8081A5C: @ 8081A5C
- push {lr}
- bl ScriptContext2_Enable
- bl player_bitmagic
- bl sub_80597F4
- ldr r1, _08081A98
- ldr r0, _08081A9C
- str r0, [r1, 0x8]
- ldr r1, _08081AA0
- movs r2, 0x80
- lsls r2, 3
- adds r0, r2, 0
- strh r0, [r1]
- bl sub_8082034
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl task_add_01_battle_start
- movs r0, 0x7
- bl sav12_xor_increment
- movs r0, 0x8
- bl sav12_xor_increment
- pop {r0}
- bx r0
- .align 2, 0
-_08081A98: .4byte gMain
-_08081A9C: .4byte sub_8081C8C
-_08081AA0: .4byte gUnknown_020239F8
- thumb_func_end sub_8081A5C
-
- thumb_func_start sub_8081AA4
-sub_8081AA4: @ 8081AA4
- push {lr}
- bl ScriptContext2_Enable
- bl player_bitmagic
- bl sub_80597F4
- ldr r1, _08081AD0
- ldr r0, _08081AD4
- str r0, [r1, 0x8]
- ldr r1, _08081AD8
- movs r0, 0x80
- strh r0, [r1]
- bl sub_8082034
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl task_add_01_battle_start
- pop {r0}
- bx r0
- .align 2, 0
-_08081AD0: .4byte gMain
-_08081AD4: .4byte sub_80C824C
-_08081AD8: .4byte gUnknown_020239F8
- thumb_func_end sub_8081AA4
-
- thumb_func_start task_add_01_battle_start_with_music_and_stats
-task_add_01_battle_start_with_music_and_stats: @ 8081ADC
- push {lr}
- bl sub_8082080
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl task_add_01_battle_start
- movs r0, 0x7
- bl sav12_xor_increment
- movs r0, 0x9
- bl sav12_xor_increment
- pop {r0}
- bx r0
- thumb_func_end task_add_01_battle_start_with_music_and_stats
-
- thumb_func_start sub_8081AFC
-sub_8081AFC: @ 8081AFC
- push {lr}
- ldr r0, _08081B2C
- movs r1, 0xC4
- lsls r1, 1
- movs r2, 0x5
- bl CreateMaleMon
- bl ScriptContext2_Enable
- ldr r1, _08081B30
- ldr r0, _08081B34
- str r0, [r1, 0x8]
- ldr r1, _08081B38
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0x8
- movs r1, 0
- bl task_add_01_battle_start
- pop {r0}
- bx r0
- .align 2, 0
-_08081B2C: .4byte gEnemyParty
-_08081B30: .4byte gMain
-_08081B34: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
-_08081B38: .4byte gUnknown_020239F8
- thumb_func_end sub_8081AFC
-
- thumb_func_start sub_8081B3C
-sub_8081B3C: @ 8081B3C
- push {lr}
- bl ScriptContext2_Enable
- ldr r1, _08081B6C
- ldr r0, _08081B70
- str r0, [r1, 0x8]
- ldr r1, _08081B74
- movs r0, 0
- strh r0, [r1]
- bl sub_8082034
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl task_add_01_battle_start
- movs r0, 0x7
- bl sav12_xor_increment
- movs r0, 0x8
- bl sav12_xor_increment
- pop {r0}
- bx r0
- .align 2, 0
-_08081B6C: .4byte gMain
-_08081B70: .4byte sub_8081CEC
-_08081B74: .4byte gUnknown_020239F8
- thumb_func_end sub_8081B3C
-
- thumb_func_start sub_8081B78
-sub_8081B78: @ 8081B78
- push {lr}
- bl ScriptContext2_Enable
- ldr r1, _08081BAC
- ldr r0, _08081BB0
- str r0, [r1, 0x8]
- ldr r1, _08081BB4
- movs r2, 0x80
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- bl sub_8082034
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl task_add_01_battle_start
- movs r0, 0x7
- bl sav12_xor_increment
- movs r0, 0x8
- bl sav12_xor_increment
- pop {r0}
- bx r0
- .align 2, 0
-_08081BAC: .4byte gMain
-_08081BB0: .4byte sub_8081CEC
-_08081BB4: .4byte gUnknown_020239F8
- thumb_func_end sub_8081B78
-
- thumb_func_start sub_8081BB8
-sub_8081BB8: @ 8081BB8
- push {lr}
- bl ScriptContext2_Enable
- ldr r1, _08081BE8
- ldr r0, _08081BEC
- str r0, [r1, 0x8]
- ldr r1, _08081BF0
- movs r2, 0x80
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08081BF4
- movs r0, 0
- bl task_add_01_battle_start
- movs r0, 0x7
- bl sav12_xor_increment
- movs r0, 0x8
- bl sav12_xor_increment
- pop {r0}
- bx r0
- .align 2, 0
-_08081BE8: .4byte gMain
-_08081BEC: .4byte sub_8081CEC
-_08081BF0: .4byte gUnknown_020239F8
-_08081BF4: .4byte 0x000001cf
- thumb_func_end sub_8081BB8
-
- thumb_func_start sub_8081BF8
-sub_8081BF8: @ 8081BF8
- push {lr}
- bl ScriptContext2_Enable
- ldr r1, _08081C20
- ldr r0, _08081C24
- str r0, [r1, 0x8]
- ldr r1, _08081C28
- movs r2, 0xC0
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08081C2C
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _08081C34
- ldr r1, _08081C30
- movs r0, 0xB
- bl task_add_01_battle_start
- b _08081C3C
- .align 2, 0
-_08081C20: .4byte gMain
-_08081C24: .4byte sub_8081CEC
-_08081C28: .4byte gUnknown_020239F8
-_08081C2C: .4byte gGameVersion
-_08081C30: .4byte 0x000001cf
-_08081C34:
- ldr r1, _08081C4C
- movs r0, 0x6
- bl task_add_01_battle_start
-_08081C3C:
- movs r0, 0x7
- bl sav12_xor_increment
- movs r0, 0x8
- bl sav12_xor_increment
- pop {r0}
- bx r0
- .align 2, 0
-_08081C4C: .4byte 0x000001cf
- thumb_func_end sub_8081BF8
-
- thumb_func_start sub_8081C50
-sub_8081C50: @ 8081C50
- push {lr}
- bl ScriptContext2_Enable
- ldr r1, _08081C80
- ldr r0, _08081C84
- str r0, [r1, 0x8]
- ldr r1, _08081C88
- movs r2, 0xC0
- lsls r2, 7
- adds r0, r2, 0
- strh r0, [r1]
- movs r1, 0xE7
- lsls r1, 1
- movs r0, 0xA
- bl task_add_01_battle_start
- movs r0, 0x7
- bl sav12_xor_increment
- movs r0, 0x8
- bl sav12_xor_increment
- pop {r0}
- bx r0
- .align 2, 0
-_08081C80: .4byte gMain
-_08081C84: .4byte sub_8081CEC
-_08081C88: .4byte gUnknown_020239F8
- thumb_func_end sub_8081C50
-
- thumb_func_start sub_8081C8C
-sub_8081C8C: @ 8081C8C
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- movs r1, 0xA0
- lsls r1, 19
- ldr r2, _08081CC0
- mov r0, sp
- bl CpuSet
- movs r0, 0
- movs r1, 0x80
- bl ResetOamRange
- ldr r0, _08081CC4
- ldrb r0, [r0]
- bl battle_exit_is_player_defeat
- cmp r0, 0x1
- bne _08081CCC
- ldr r0, _08081CC8
- bl SetMainCallback2
- b _08081CD8
- .align 2, 0
-_08081CC0: .4byte 0x01000100
-_08081CC4: .4byte gUnknown_02024D26
-_08081CC8: .4byte c2_whiteout
-_08081CCC:
- ldr r0, _08081CE0
- bl SetMainCallback2
- ldr r1, _08081CE4
- ldr r0, _08081CE8
- str r0, [r1]
-_08081CD8:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08081CE0: .4byte c2_exit_to_overworld_2_switch
-_08081CE4: .4byte gUnknown_0300485C
-_08081CE8: .4byte sub_8080E44
- thumb_func_end sub_8081C8C
-
- thumb_func_start sub_8081CEC
-sub_8081CEC: @ 8081CEC
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- movs r1, 0xA0
- lsls r1, 19
- ldr r2, _08081D20
- mov r0, sp
- bl CpuSet
- movs r0, 0
- movs r1, 0x80
- bl ResetOamRange
- ldr r0, _08081D24
- ldrb r0, [r0]
- bl battle_exit_is_player_defeat
- cmp r0, 0x1
- bne _08081D2C
- ldr r0, _08081D28
- bl SetMainCallback2
- b _08081D32
- .align 2, 0
-_08081D20: .4byte 0x01000100
-_08081D24: .4byte gUnknown_02024D26
-_08081D28: .4byte c2_whiteout
-_08081D2C:
- ldr r0, _08081D38
- bl SetMainCallback2
-_08081D32:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08081D38: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_8081CEC
-
- thumb_func_start sub_8081D3C
-sub_8081D3C: @ 8081D3C
- push {r4,r5,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r0, r5, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsTallGrass
- lsls r0, 24
- cmp r0, 0
- beq _08081D72
- movs r0, 0
- b _08081E86
-_08081D72:
- adds r0, r4, 0
- bl MetatileBehavior_IsLongGrass
- lsls r0, 24
- cmp r0, 0
- beq _08081D82
- movs r0, 0x1
- b _08081E86
-_08081D82:
- adds r0, r4, 0
- bl MetatileBehavior_IsSandOrDeepSand
- lsls r0, 24
- cmp r0, 0
- bne _08081E84
- ldr r0, _08081DA4
- ldrb r0, [r0, 0x17]
- subs r0, 0x1
- cmp r0, 0x8
- bhi _08081E08
- lsls r0, 2
- ldr r1, _08081DA8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08081DA4: .4byte gMapHeader
-_08081DA8: .4byte _08081DAC
- .align 2, 0
-_08081DAC:
- .4byte _08081E08
- .4byte _08081E08
- .4byte _08081E08
- .4byte _08081DD0
- .4byte _08081DF4
- .4byte _08081DF8
- .4byte _08081E08
- .4byte _08081DE0
- .4byte _08081DE0
-_08081DD0:
- lsls r0, r5, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80574C4
- lsls r0, 24
- cmp r0, 0
- beq _08081DE4
-_08081DE0:
- movs r0, 0x8
- b _08081E86
-_08081DE4:
- adds r0, r4, 0
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- bne _08081E4C
- movs r0, 0x7
- b _08081E86
-_08081DF4:
- movs r0, 0x3
- b _08081E86
-_08081DF8:
- lsls r0, r5, 24
- lsrs r0, 24
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- bne _08081E5E
- b _08081E7A
-_08081E08:
- lsls r0, r5, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8057568
- lsls r0, 24
- cmp r0, 0
- bne _08081E5E
- adds r0, r4, 0
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- bne _08081E4C
- adds r0, r4, 0
- bl sub_80574D8
- lsls r0, 24
- cmp r0, 0
- beq _08081E34
- movs r0, 0x6
- b _08081E86
-_08081E34:
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _08081E62
- adds r0, r4, 0
- bl sub_8057450
- lsls r0, 24
- cmp r0, 0
- beq _08081E50
-_08081E4C:
- movs r0, 0x5
- b _08081E86
-_08081E50:
- adds r0, r4, 0
- bl sub_8057434
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08081E62
-_08081E5E:
- movs r0, 0x4
- b _08081E86
-_08081E62:
- ldr r0, _08081E80
- ldrh r1, [r0, 0x4]
- movs r0, 0xE0
- lsls r0, 5
- cmp r1, r0
- beq _08081E84
- bl sav1_get_weather_probably
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8
- beq _08081E84
-_08081E7A:
- movs r0, 0x9
- b _08081E86
- .align 2, 0
-_08081E80: .4byte gSaveBlock1
-_08081E84:
- movs r0, 0x2
-_08081E86:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8081D3C
-
- thumb_func_start sub_8081E90
-sub_8081E90: @ 8081E90
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r4, r0, 16
- bl sav1_get_flash_used_on_map
- lsls r0, 24
- cmp r0, 0
- beq _08081EC0
- movs r0, 0x2
- b _08081EEA
-_08081EC0:
- lsls r0, r4, 24
- lsrs r0, 24
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- bne _08081EE8
- ldr r0, _08081EE0
- ldrb r0, [r0, 0x17]
- cmp r0, 0x4
- beq _08081EE4
- cmp r0, 0x5
- beq _08081EE8
- movs r0, 0
- b _08081EEA
- .align 2, 0
-_08081EE0: .4byte gMapHeader
-_08081EE4:
- movs r0, 0x1
- b _08081EEA
-_08081EE8:
- movs r0, 0x3
-_08081EEA:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8081E90
-
- thumb_func_start sub_8081EF4
-sub_8081EF4: @ 8081EF4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r7, 0
- movs r6, 0
-_08081EFE:
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _08081F50
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- adds r1, r0, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- beq _08081F42
- cmp r1, 0
- beq _08081F42
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08081F42
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- adds r0, r7, r0
- lsls r0, 24
- lsrs r7, r0, 24
- subs r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _08081F48
-_08081F42:
- adds r6, 0x1
- cmp r6, 0x5
- ble _08081EFE
-_08081F48:
- adds r0, r7, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08081F50: .4byte gPlayerParty
- thumb_func_end sub_8081EF4
-
- thumb_func_start reads_trainer_data_byte0
-reads_trainer_data_byte0: @ 8081F54
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r5, _08081F88
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r2, r1, r5
- adds r0, r2, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r4
- bcs _08081F74
- adds r4, r0, 0
-_08081F74:
- movs r3, 0
- ldrb r0, [r2]
- cmp r0, 0x1
- beq _08081FBC
- cmp r0, 0x1
- bgt _08081F8C
- cmp r0, 0
- beq _08081F96
- b _0808202C
- .align 2, 0
-_08081F88: .4byte gTrainers
-_08081F8C:
- cmp r0, 0x2
- beq _08081FE2
- cmp r0, 0x3
- beq _08082008
- b _0808202C
-_08081F96:
- adds r0, r5, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r1, [r0]
- movs r2, 0
- cmp r3, r4
- bcs _0808202C
-_08081FA4:
- lsls r0, r2, 3
- adds r0, r1
- ldrb r0, [r0, 0x2]
- adds r0, r3, r0
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r4
- bcc _08081FA4
- b _0808202C
-_08081FBC:
- adds r0, r5, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r1, [r0]
- movs r2, 0
- cmp r3, r4
- bcs _0808202C
-_08081FCA:
- lsls r0, r2, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- adds r0, r3, r0
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r4
- bcc _08081FCA
- b _0808202C
-_08081FE2:
- adds r0, r5, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r1, [r0]
- movs r2, 0
- cmp r3, r4
- bcs _0808202C
-_08081FF0:
- lsls r0, r2, 3
- adds r0, r1
- ldrb r0, [r0, 0x2]
- adds r0, r3, r0
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r4
- bcc _08081FF0
- b _0808202C
-_08082008:
- adds r0, r5, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r1, [r0]
- movs r2, 0
- cmp r3, r4
- bcs _0808202C
-_08082016:
- lsls r0, r2, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- adds r0, r3, r0
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r4
- bcc _08082016
-_0808202C:
- adds r0, r3, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end reads_trainer_data_byte0
-
- thumb_func_start sub_8082034
-sub_8082034: @ 8082034
- push {r4,r5,lr}
- bl sub_8081E90
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08082064
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl sub_8081EF4
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _0808206C
- ldr r0, _08082068
- lsls r1, r5, 1
- adds r0, 0x1
- b _08082070
- .align 2, 0
-_08082064: .4byte gEnemyParty
-_08082068: .4byte gUnknown_0839ACF8
-_0808206C:
- ldr r0, _0808207C
- lsls r1, r5, 1
-_08082070:
- adds r1, r0
- ldrb r0, [r1]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0808207C: .4byte gUnknown_0839ACF8
- thumb_func_end sub_8082034
-
- thumb_func_start sub_8082080
-sub_8082080: @ 8082080
- push {r4-r6,lr}
- ldr r4, _080820AC
- ldrh r1, [r4]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _080820E4
- ldr r1, _080820B0
- ldrh r2, [r4]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x1]
- cmp r1, 0x18
- bne _080820E0
- adds r1, r2, 0
- ldr r0, _080820B4
- cmp r1, r0
- bne _080820B8
- movs r0, 0xC
- b _0808212C
- .align 2, 0
-_080820AC: .4byte word_202FF5E
-_080820B0: .4byte gTrainers
-_080820B4: .4byte 0x00000105
-_080820B8:
- movs r0, 0x83
- lsls r0, 1
- cmp r1, r0
- bne _080820C4
- movs r0, 0xD
- b _0808212C
-_080820C4:
- ldr r0, _080820D0
- cmp r1, r0
- bne _080820D4
- movs r0, 0xE
- b _0808212C
- .align 2, 0
-_080820D0: .4byte 0x00000107
-_080820D4:
- movs r0, 0x84
- lsls r0, 1
- cmp r1, r0
- bne _080820E4
- movs r0, 0xF
- b _0808212C
-_080820E0:
- cmp r1, 0x20
- bne _080820E8
-_080820E4:
- movs r0, 0x10
- b _0808212C
-_080820E8:
- ldrb r0, [r0, 0x18]
- movs r5, 0x1
- cmp r0, 0x1
- bne _080820F2
- movs r5, 0x2
-_080820F2:
- bl sub_8081E90
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r0, [r4]
- adds r1, r5, 0
- bl reads_trainer_data_byte0
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl sub_8081EF4
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _08082124
- ldr r0, _08082120
- lsls r1, r6, 1
- adds r0, 0x1
- b _08082128
- .align 2, 0
-_08082120: .4byte gUnknown_0839AD00
-_08082124:
- ldr r0, _08082134
- lsls r1, r6, 1
-_08082128:
- adds r1, r0
- ldrb r0, [r1]
-_0808212C:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08082134: .4byte gUnknown_0839AD00
- thumb_func_end sub_8082080
-
- thumb_func_start sub_8082138
-sub_8082138: @ 8082138
- push {r4,lr}
- ldr r0, _0808215C
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl sub_8081EF4
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _08082160
- movs r0, 0x3
- b _08082162
- .align 2, 0
-_0808215C: .4byte gEnemyParty
-_08082160:
- movs r0, 0x4
-_08082162:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8082138
-
- thumb_func_start sub_8082168
-sub_8082168: @ 8082168
- push {lr}
- ldr r0, _0808217C
- bl SetMainCallback2
- ldr r1, _08082180
- ldr r0, _08082184
- str r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_0808217C: .4byte CB2_ChooseStarter
-_08082180: .4byte gMain
-_08082184: .4byte sub_8082188
- thumb_func_end sub_8082168
-
- thumb_func_start sub_8082188
-sub_8082188: @ 8082188
- push {lr}
- sub sp, 0x8
- ldr r0, _080821CC
- bl GetVarPointer
- ldr r2, _080821D0
- ldrh r1, [r2]
- strh r1, [r0]
- ldrh r0, [r2]
- bl GetStarterPokemon
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0x5
- movs r2, 0
- movs r3, 0
- bl sub_80C5374
- bl ResetTasks
- bl sub_80408BC
- ldr r0, _080821D4
- bl SetMainCallback2
- movs r0, 0
- bl sub_811AAD8
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080821CC: .4byte 0x00004023
-_080821D0: .4byte gScriptResult
-_080821D4: .4byte sub_80821D8
- thumb_func_end sub_8082188
-
- thumb_func_start sub_80821D8
-sub_80821D8: @ 80821D8
- push {lr}
- bl UpdatePaletteFade
- bl RunTasks
- bl sub_811AAE8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08082214
- ldr r1, _08082218
- movs r0, 0x10
- strh r0, [r1]
- ldr r1, _0808221C
- ldr r0, _08082220
- str r0, [r1, 0x8]
- ldr r0, _08082224
- bl SetMainCallback2
- bl prev_quest_postbuffer_cursor_backup_reset
- bl overworld_poison_timer_set
- movs r0, 0x7
- bl sav12_xor_increment
- movs r0, 0x8
- bl sav12_xor_increment
-_08082214:
- pop {r0}
- bx r0
- .align 2, 0
-_08082218: .4byte gUnknown_020239F8
-_0808221C: .4byte gMain
-_08082220: .4byte sub_8082228
-_08082224: .4byte sub_800E7C4
- thumb_func_end sub_80821D8
-
- thumb_func_start sub_8082228
-sub_8082228: @ 8082228
- push {lr}
- bl sav1_reset_battle_music_maybe
- ldr r0, _08082238
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08082238: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_8082228
-
- thumb_func_start TrainerBattleLoadArg32
-TrainerBattleLoadArg32: @ 808223C
- 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 TrainerBattleLoadArg32
-
- thumb_func_start TrainerBattleLoadArg16
-TrainerBattleLoadArg16: @ 8082254
- adds r1, r0, 0
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- lsls r1, 8
- orrs r0, r1
- bx lr
- thumb_func_end TrainerBattleLoadArg16
-
- thumb_func_start TrainerBattleLoadArg8
-TrainerBattleLoadArg8: @ 8082260
- ldrb r0, [r0]
- bx lr
- thumb_func_end TrainerBattleLoadArg8
-
- thumb_func_start trainerflag_opponent
-trainerflag_opponent: @ 8082264
- ldr r1, _08082278
- movs r2, 0xA0
- lsls r2, 3
- adds r0, r2, 0
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bx lr
- .align 2, 0
-_08082278: .4byte word_202FF5E
- thumb_func_end trainerflag_opponent
-
- thumb_func_start battle_exit_is_player_defeat
-battle_exit_is_player_defeat: @ 808227C
- push {lr}
- subs r0, 0x1
- cmp r0, 0x6
- bhi _080822B4
- lsls r0, 2
- ldr r1, _08082290
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08082290: .4byte _08082294
- .align 2, 0
-_08082294:
- .4byte _080822B4
- .4byte _080822B0
- .4byte _080822B0
- .4byte _080822B4
- .4byte _080822B4
- .4byte _080822B4
- .4byte _080822B4
-_080822B0:
- movs r0, 0x1
- b _080822B6
-_080822B4:
- movs r0, 0
-_080822B6:
- pop {r1}
- bx r1
- thumb_func_end battle_exit_is_player_defeat
-
- thumb_func_start sub_80822BC
-sub_80822BC: @ 80822BC
- ldr r0, _080822E8
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080822EC
- strh r1, [r0]
- ldr r0, _080822F0
- strh r1, [r0]
- ldr r0, _080822F4
- movs r1, 0
- str r1, [r0]
- ldr r0, _080822F8
- str r1, [r0]
- ldr r0, _080822FC
- str r1, [r0]
- ldr r0, _08082300
- str r1, [r0]
- ldr r0, _08082304
- str r1, [r0]
- ldr r0, _08082308
- str r1, [r0]
- bx lr
- .align 2, 0
-_080822E8: .4byte gUnknown_0202FF5C
-_080822EC: .4byte word_202FF5E
-_080822F0: .4byte gUnknown_0202FF60
-_080822F4: .4byte gUnknown_0202FF64
-_080822F8: .4byte gUnknown_0202FF68
-_080822FC: .4byte gUnknown_0202FF6C
-_08082300: .4byte gUnknown_0202FF70
-_08082304: .4byte gUnknown_0202FF74
-_08082308: .4byte gUnknown_0202FF78
- thumb_func_end sub_80822BC
-
- thumb_func_start TrainerBattleLoadArgs
-TrainerBattleLoadArgs: @ 808230C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
-_08082312:
- ldrb r0, [r4, 0x4]
- cmp r0, 0x6
- bhi _08082384
- lsls r0, 2
- ldr r1, _08082324
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08082324: .4byte _08082328
- .align 2, 0
-_08082328:
- .4byte _08082344
- .4byte _08082352
- .4byte _08082360
- .4byte _0808236E
- .4byte _08082376
- .4byte _0808237E
- .4byte _08082388
-_08082344:
- adds r0, r5, 0
- bl TrainerBattleLoadArg8
- ldr r1, [r4]
- strb r0, [r1]
- adds r5, 0x1
- b _08082384
-_08082352:
- adds r0, r5, 0
- bl TrainerBattleLoadArg16
- ldr r1, [r4]
- strh r0, [r1]
- adds r5, 0x2
- b _08082384
-_08082360:
- adds r0, r5, 0
- bl TrainerBattleLoadArg32
- ldr r1, [r4]
- str r0, [r1]
- adds r5, 0x4
- b _08082384
-_0808236E:
- ldr r1, [r4]
- movs r0, 0
- strb r0, [r1]
- b _08082384
-_08082376:
- ldr r1, [r4]
- movs r0, 0
- strh r0, [r1]
- b _08082384
-_0808237E:
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1]
-_08082384:
- adds r4, 0x8
- b _08082312
-_08082388:
- ldr r0, [r4]
- str r5, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end TrainerBattleLoadArgs
-
- thumb_func_start battle_80801F0
-battle_80801F0: @ 8082394
- push {lr}
- ldr r0, _080823B8
- ldrh r1, [r0]
- cmp r1, 0
- beq _080823B4
- ldr r0, _080823BC
- strh r1, [r0]
- lsls r0, r1, 24
- lsrs r0, 24
- ldr r2, _080823C0
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl GetFieldObjectIdByLocalIdAndMap
- ldr r1, _080823C4
- strb r0, [r1]
-_080823B4:
- pop {r0}
- bx r0
- .align 2, 0
-_080823B8: .4byte gUnknown_0202FF60
-_080823BC: .4byte gUnknown_0202E8DE
-_080823C0: .4byte gSaveBlock1
-_080823C4: .4byte gSelectedMapObject
- thumb_func_end battle_80801F0
-
- thumb_func_start sub_80823C8
-sub_80823C8: @ 80823C8
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_80822BC
- ldr r4, _080823F0
- adds r0, r5, 0
- bl TrainerBattleLoadArg8
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldrh r0, [r4]
- subs r0, 0x1
- cmp r0, 0x7
- bhi _080824A4
- lsls r0, 2
- ldr r1, _080823F4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080823F0: .4byte gUnknown_0202FF5C
-_080823F4: .4byte _080823F8
- .align 2, 0
-_080823F8:
- .4byte _08082434
- .4byte _08082434
- .4byte _08082418
- .4byte _0808242C
- .4byte _0808247C
- .4byte _0808243C
- .4byte _08082454
- .4byte _0808243C
-_08082418:
- ldr r0, _08082424
- adds r1, r5, 0
- bl TrainerBattleLoadArgs
- ldr r0, _08082428
- b _080824B2
- .align 2, 0
-_08082424: .4byte gUnknown_0839ADE0
-_08082428: .4byte gUnknown_0819F878
-_0808242C:
- ldr r0, _08082430
- b _0808243E
- .align 2, 0
-_08082430: .4byte gUnknown_0839AD98
-_08082434:
- ldr r0, _08082438
- b _080824A6
- .align 2, 0
-_08082438: .4byte gUnknown_0839AD50
-_0808243C:
- ldr r0, _0808244C
-_0808243E:
- adds r1, r5, 0
- bl TrainerBattleLoadArgs
- bl battle_80801F0
- ldr r0, _08082450
- b _080824B2
- .align 2, 0
-_0808244C: .4byte gUnknown_0839AE28
-_08082450: .4byte gUnknown_0819F840
-_08082454:
- ldr r0, _08082470
- adds r1, r5, 0
- bl TrainerBattleLoadArgs
- bl battle_80801F0
- ldr r4, _08082474
- ldrh r0, [r4]
- bl sub_8082C4C
- strh r0, [r4]
- ldr r0, _08082478
- b _080824B2
- .align 2, 0
-_08082470: .4byte gUnknown_0839AD98
-_08082474: .4byte word_202FF5E
-_08082478: .4byte gUnknown_0819F8AE
-_0808247C:
- ldr r0, _08082498
- adds r1, r5, 0
- bl TrainerBattleLoadArgs
- bl battle_80801F0
- ldr r4, _0808249C
- ldrh r0, [r4]
- bl sub_8082C4C
- strh r0, [r4]
- ldr r0, _080824A0
- b _080824B2
- .align 2, 0
-_08082498: .4byte gUnknown_0839AD08
-_0808249C: .4byte word_202FF5E
-_080824A0: .4byte gUnknown_0819F887
-_080824A4:
- ldr r0, _080824B8
-_080824A6:
- adds r1, r5, 0
- bl TrainerBattleLoadArgs
- bl battle_80801F0
- ldr r0, _080824BC
-_080824B2:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080824B8: .4byte gUnknown_0839AD08
-_080824BC: .4byte gUnknown_0819F818
- thumb_func_end sub_80823C8
-
- thumb_func_start SingleTrainerWantsBattle
-SingleTrainerWantsBattle: @ 80824C0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080824F4
- strb r0, [r2]
- ldr r4, _080824F8
- ldr r3, _080824FC
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrb r0, [r2, 0x8]
- strh r0, [r4]
- adds r1, 0x1
- adds r0, r1, 0
- bl sub_80823C8
- ldr r0, _08082500
- bl ScriptContext1_SetupScript
- bl ScriptContext2_Enable
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080824F4: .4byte gSelectedMapObject
-_080824F8: .4byte gUnknown_0202E8DE
-_080824FC: .4byte gMapObjects
-_08082500: .4byte gUnknown_0819F80B
- thumb_func_end SingleTrainerWantsBattle
-
- thumb_func_start GetTrainerFlagFromScriptPointer
-GetTrainerFlagFromScriptPointer: @ 8082504
- push {lr}
- adds r0, 0x2
- bl TrainerBattleLoadArg16
- lsls r0, 16
- movs r1, 0xA0
- lsls r1, 19
- adds r0, r1
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetTrainerFlagFromScriptPointer
-
- thumb_func_start sub_8082524
-sub_8082524: @ 8082524
- push {r4,lr}
- ldr r0, _08082550
- ldrb r0, [r0]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08082554
- adds r4, r0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl npc_running_behaviour_by_direction
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl npc_set_running_behaviour_etc
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08082550: .4byte gSelectedMapObject
-_08082554: .4byte gMapObjects
- thumb_func_end sub_8082524
-
- thumb_func_start sub_8082558
-sub_8082558: @ 8082558
- ldr r0, _08082560
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08082560: .4byte gUnknown_0202FF5C
- thumb_func_end sub_8082558
-
- thumb_func_start sub_8082564
-sub_8082564: @ 8082564
- push {lr}
- bl trainerflag_opponent
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_8082564
-
- thumb_func_start sub_808257C
-sub_808257C: @ 808257C
- push {lr}
- bl trainerflag_opponent
- lsls r0, 16
- lsrs r0, 16
- bl FlagSet
- pop {r0}
- bx r0
- thumb_func_end sub_808257C
-
- thumb_func_start unref_sub_8082590
-unref_sub_8082590: @ 8082590
- push {lr}
- bl trainerflag_opponent
- lsls r0, 16
- lsrs r0, 16
- bl FlagSet
- pop {r0}
- bx r0
- thumb_func_end unref_sub_8082590
-
- thumb_func_start trainer_flag_check
-trainer_flag_check: @ 80825A4
- push {lr}
- lsls r0, 16
- movs r1, 0xA0
- lsls r1, 19
- adds r0, r1
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end trainer_flag_check
-
- thumb_func_start trainer_flag_set
-trainer_flag_set: @ 80825BC
- push {lr}
- lsls r0, 16
- movs r1, 0xA0
- lsls r1, 19
- adds r0, r1
- lsrs r0, 16
- bl FlagSet
- pop {r0}
- bx r0
- thumb_func_end trainer_flag_set
-
- thumb_func_start trainer_flag_clear
-trainer_flag_clear: @ 80825D0
- push {lr}
- lsls r0, 16
- movs r1, 0xA0
- lsls r1, 19
- adds r0, r1
- lsrs r0, 16
- bl FlagReset
- pop {r0}
- bx r0
- thumb_func_end trainer_flag_clear
-
- thumb_func_start sub_80825E4
-sub_80825E4: @ 80825E4
- push {lr}
- ldr r1, _08082600
- movs r0, 0x8
- strh r0, [r1]
- ldr r1, _08082604
- ldr r0, _08082608
- str r0, [r1, 0x8]
- bl task_add_01_battle_start_with_music_and_stats
- bl ScriptContext1_Stop
- pop {r0}
- bx r0
- .align 2, 0
-_08082600: .4byte gUnknown_020239F8
-_08082604: .4byte gMain
-_08082608: .4byte sub_808260C
- thumb_func_end sub_80825E4
-
- thumb_func_start sub_808260C
-sub_808260C: @ 808260C
- push {lr}
- ldr r0, _08082624
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _0808262C
- ldr r0, _08082628
- bl SetMainCallback2
- b _08082652
- .align 2, 0
-_08082624: .4byte word_202FF5E
-_08082628: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
-_0808262C:
- ldr r0, _08082640
- ldrb r0, [r0]
- bl battle_exit_is_player_defeat
- cmp r0, 0x1
- bne _08082648
- ldr r0, _08082644
- bl SetMainCallback2
- b _08082652
- .align 2, 0
-_08082640: .4byte gUnknown_02024D26
-_08082644: .4byte c2_whiteout
-_08082648:
- ldr r0, _08082658
- bl SetMainCallback2
- bl sub_808257C
-_08082652:
- pop {r0}
- bx r0
- .align 2, 0
-_08082658: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_808260C
-
- thumb_func_start do_choose_name_or_words_screen
-do_choose_name_or_words_screen: @ 808265C
- push {lr}
- ldr r0, _08082674
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _0808267C
- ldr r0, _08082678
- bl SetMainCallback2
- b _080826A6
- .align 2, 0
-_08082674: .4byte word_202FF5E
-_08082678: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
-_0808267C:
- ldr r0, _08082690
- ldrb r0, [r0]
- bl battle_exit_is_player_defeat
- cmp r0, 0x1
- bne _08082698
- ldr r0, _08082694
- bl SetMainCallback2
- b _080826A6
- .align 2, 0
-_08082690: .4byte gUnknown_02024D26
-_08082694: .4byte c2_whiteout
-_08082698:
- ldr r0, _080826AC
- bl SetMainCallback2
- bl sub_808257C
- bl sub_8082CB8
-_080826A6:
- pop {r0}
- bx r0
- .align 2, 0
-_080826AC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end do_choose_name_or_words_screen
-
- thumb_func_start sub_80826B0
-sub_80826B0: @ 80826B0
- push {lr}
- ldr r1, _080826CC
- movs r0, 0x8
- strh r0, [r1]
- ldr r1, _080826D0
- ldr r0, _080826D4
- str r0, [r1, 0x8]
- bl task_add_01_battle_start_with_music_and_stats
- bl ScriptContext1_Stop
- pop {r0}
- bx r0
- .align 2, 0
-_080826CC: .4byte gUnknown_020239F8
-_080826D0: .4byte gMain
-_080826D4: .4byte do_choose_name_or_words_screen
- thumb_func_end sub_80826B0
-
- thumb_func_start sub_80826D8
-sub_80826D8: @ 80826D8
- push {lr}
- bl sub_808281C
- bl ShowFieldMessage
- pop {r0}
- bx r0
- thumb_func_end sub_80826D8
-
- thumb_func_start sub_80826E8
-sub_80826E8: @ 80826E8
- push {lr}
- ldr r0, _080826F8
- ldr r0, [r0]
- cmp r0, 0
- bne _080826F4
- ldr r0, _080826FC
-_080826F4:
- pop {r1}
- bx r1
- .align 2, 0
-_080826F8: .4byte gUnknown_0202FF74
-_080826FC: .4byte gUnknown_081C6C02
- thumb_func_end sub_80826E8
-
- thumb_func_start sub_8082700
-sub_8082700: @ 8082700
- push {lr}
- ldr r0, _08082710
- ldr r0, [r0]
- cmp r0, 0
- bne _0808270C
- ldr r0, _08082714
-_0808270C:
- pop {r1}
- bx r1
- .align 2, 0
-_08082710: .4byte gUnknown_0202FF78
-_08082714: .4byte gUnknown_081C6C02
- thumb_func_end sub_8082700
-
- thumb_func_start sub_8082718
-sub_8082718: @ 8082718
- push {lr}
- bl sub_8082880
- bl ShowFieldMessage
- pop {r0}
- bx r0
- thumb_func_end sub_8082718
-
- thumb_func_start sub_8082728
-sub_8082728: @ 8082728
- push {lr}
- ldr r0, _08082750
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _08082802
- cmp r0, 0x8
- beq _08082802
- ldr r0, _08082754
- ldrh r0, [r0]
- bl sub_803FC58
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD
- bhi _080827FC
- lsls r0, 2
- ldr r1, _08082758
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08082750: .4byte gUnknown_0202FF5C
-_08082754: .4byte word_202FF5E
-_08082758: .4byte _0808275C
- .align 2, 0
-_0808275C:
- .4byte _08082794
- .4byte _0808279A
- .4byte _080827A4
- .4byte _080827FC
- .4byte _080827AC
- .4byte _080827B2
- .4byte _080827BC
- .4byte _080827C4
- .4byte _080827CC
- .4byte _080827D4
- .4byte _080827DC
- .4byte _080827E2
- .4byte _080827EC
- .4byte _080827F4
-_08082794:
- movs r0, 0xBE
- lsls r0, 1
- b _080827FE
-_0808279A:
- ldr r0, _080827A0
- b _080827FE
- .align 2, 0
-_080827A0: .4byte 0x00000197
-_080827A4:
- ldr r0, _080827A8
- b _080827FE
- .align 2, 0
-_080827A8: .4byte 0x0000017b
-_080827AC:
- movs r0, 0xD0
- lsls r0, 1
- b _080827FE
-_080827B2:
- ldr r0, _080827B8
- b _080827FE
- .align 2, 0
-_080827B8: .4byte 0x000001a1
-_080827BC:
- ldr r0, _080827C0
- b _080827FE
- .align 2, 0
-_080827C0: .4byte 0x000001a3
-_080827C4:
- ldr r0, _080827C8
- b _080827FE
- .align 2, 0
-_080827C8: .4byte 0x000001b9
-_080827CC:
- ldr r0, _080827D0
- b _080827FE
- .align 2, 0
-_080827D0: .4byte 0x00000181
-_080827D4:
- ldr r0, _080827D8
- b _080827FE
- .align 2, 0
-_080827D8: .4byte 0x000001c1
-_080827DC:
- movs r0, 0xE1
- lsls r0, 1
- b _080827FE
-_080827E2:
- ldr r0, _080827E8
- b _080827FE
- .align 2, 0
-_080827E8: .4byte 0x000001c3
-_080827EC:
- ldr r0, _080827F0
- b _080827FE
- .align 2, 0
-_080827F0: .4byte 0x000001c5
-_080827F4:
- ldr r0, _080827F8
- b _080827FE
- .align 2, 0
-_080827F8: .4byte 0x0000018d
-_080827FC:
- ldr r0, _08082808
-_080827FE:
- bl PlayNewMapMusic
-_08082802:
- pop {r0}
- bx r0
- .align 2, 0
-_08082808: .4byte 0x000001a7
- thumb_func_end sub_8082728
-
- thumb_func_start ReturnEmptyStringIfNull
-ReturnEmptyStringIfNull: @ 808280C
- push {lr}
- cmp r0, 0
- bne _08082814
- ldr r0, _08082818
-_08082814:
- pop {r1}
- bx r1
- .align 2, 0
-_08082818: .4byte gOtherText_CancelWithTerminator
- thumb_func_end ReturnEmptyStringIfNull
-
- thumb_func_start sub_808281C
-sub_808281C: @ 808281C
- push {lr}
- ldr r0, _0808282C
- ldr r0, [r0]
- bl ReturnEmptyStringIfNull
- pop {r1}
- bx r1
- .align 2, 0
-_0808282C: .4byte gUnknown_0202FF64
- thumb_func_end sub_808281C
-
- thumb_func_start sub_8082830
-sub_8082830: @ 8082830
- push {r4,lr}
- ldr r0, _08082844
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _08082848
- bl sub_80BCCE8
- b _0808284C
- .align 2, 0
-_08082844: .4byte word_202FF5E
-_08082848:
- ldr r0, _08082864
- ldr r0, [r0]
-_0808284C:
- ldr r4, _08082868
- bl ReturnEmptyStringIfNull
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08082864: .4byte gUnknown_0202FF68
-_08082868: .4byte gStringVar4
- thumb_func_end sub_8082830
-
- thumb_func_start unref_sub_808286C
-unref_sub_808286C: @ 808286C
- push {lr}
- ldr r0, _0808287C
- ldr r0, [r0]
- bl ReturnEmptyStringIfNull
- pop {r1}
- bx r1
- .align 2, 0
-_0808287C: .4byte gUnknown_0202FF6C
- thumb_func_end unref_sub_808286C
-
- thumb_func_start sub_8082880
-sub_8082880: @ 8082880
- push {lr}
- ldr r0, _08082890
- ldr r0, [r0]
- bl ReturnEmptyStringIfNull
- pop {r1}
- bx r1
- .align 2, 0
-_08082890: .4byte gUnknown_0202FF70
- thumb_func_end sub_8082880
-
- thumb_func_start sub_8082894
-sub_8082894: @ 8082894
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- movs r3, 0
- adds r2, r0, 0
-_0808289E:
- ldrh r0, [r2]
- cmp r0, r1
- bne _080828A8
- adds r0, r3, 0
- b _080828B4
-_080828A8:
- adds r2, 0x10
- adds r3, 0x1
- cmp r3, 0x37
- ble _0808289E
- movs r0, 0x1
- negs r0, r0
-_080828B4:
- pop {r1}
- bx r1
- thumb_func_end sub_8082894
-
- thumb_func_start sub_80828B8
-sub_80828B8: @ 80828B8
- push {r4,r5,lr}
- lsls r1, 16
- lsrs r5, r1, 16
- movs r4, 0
- adds r2, r0, 0
-_080828C2:
- movs r1, 0
- ldrh r0, [r2]
- cmp r0, 0
- beq _080828E8
- movs r3, 0
-_080828CC:
- adds r0, r2, r3
- ldrh r0, [r0]
- cmp r0, r5
- bne _080828D8
- adds r0, r4, 0
- b _080828F4
-_080828D8:
- adds r3, 0x2
- adds r1, 0x1
- cmp r1, 0x4
- bgt _080828E8
- adds r0, r2, r3
- ldrh r0, [r0]
- cmp r0, 0
- bne _080828CC
-_080828E8:
- adds r2, 0x10
- adds r4, 0x1
- cmp r4, 0x37
- ble _080828C2
- movs r0, 0x1
- negs r0, r0
-_080828F4:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80828B8
-
- thumb_func_start sub_80828FC
-sub_80828FC: @ 80828FC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- lsls r2, 16
- lsrs r2, 16
- mov r10, r2
- movs r4, 0
- movs r5, 0
- ldr r0, _08082968
- mov r9, r0
-_0808291E:
- lsls r0, r5, 4
- adds r2, r0, r7
- ldrh r1, [r2, 0xA]
- adds r6, r0, 0
- adds r0, r5, 0x1
- mov r8, r0
- ldr r0, [sp]
- cmp r1, r0
- bne _08082990
- ldrh r0, [r2, 0xC]
- cmp r0, r10
- bne _08082990
- mov r1, r9
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0808298E
- ldrh r0, [r2]
- bl trainer_flag_check
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08082990
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1E
- bhi _08082990
- movs r4, 0x1
- b _0808296E
- .align 2, 0
-_08082968: .4byte gSaveBlock1 + 0x97A
-_0808296C:
- adds r4, 0x1
-_0808296E:
- cmp r4, 0x4
- bgt _08082988
- adds r0, r6, r7
- lsls r1, r4, 1
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, 0
- beq _08082988
- bl trainer_flag_check
- lsls r0, 24
- cmp r0, 0
- bne _0808296C
-_08082988:
- mov r1, r9
- adds r0, r5, r1
- strb r4, [r0]
-_0808298E:
- movs r4, 0x1
-_08082990:
- mov r5, r8
- cmp r5, 0x37
- ble _0808291E
- adds r0, r4, 0
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80828FC
-
- thumb_func_start sub_80829A8
-sub_80829A8: @ 80829A8
- push {r4,r5,lr}
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 16
- lsrs r2, 16
- movs r1, 0
- ldr r5, _080829D4
- adds r3, r0, 0
- adds r3, 0xA
-_080829BA:
- ldrh r0, [r3]
- cmp r0, r4
- bne _080829D8
- ldrh r0, [r3, 0x2]
- cmp r0, r2
- bne _080829D8
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, 0
- beq _080829D8
- movs r0, 0x1
- b _080829E2
- .align 2, 0
-_080829D4: .4byte gSaveBlock1 + 0x97A
-_080829D8:
- adds r3, 0x10
- adds r1, 0x1
- cmp r1, 0x37
- ble _080829BA
- movs r0, 0
-_080829E2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80829A8
-
- thumb_func_start sub_80829E8
-sub_80829E8: @ 80829E8
- push {r4,lr}
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 16
- lsrs r2, 16
- movs r1, 0
- adds r3, r0, 0
- adds r3, 0xA
-_080829F8:
- ldrh r0, [r3]
- cmp r0, r4
- bne _08082A08
- ldrh r0, [r3, 0x2]
- cmp r0, r2
- bne _08082A08
- movs r0, 0x1
- b _08082A12
-_08082A08:
- adds r3, 0x10
- adds r1, 0x1
- cmp r1, 0x37
- ble _080829F8
- movs r0, 0
-_08082A12:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80829E8
-
- thumb_func_start sub_8082A18
-sub_8082A18: @ 8082A18
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- bl sub_8082894
- adds r1, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08082A4C
- cmp r1, 0x63
- bgt _08082A4C
- ldr r0, _08082A44
- ldr r2, _08082A48
- adds r0, r2
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0
- beq _08082A4C
- movs r0, 0x1
- b _08082A4E
- .align 2, 0
-_08082A44: .4byte gSaveBlock1
-_08082A48: .4byte 0x0000097a
-_08082A4C:
- movs r0, 0
-_08082A4E:
- pop {r1}
- bx r1
- thumb_func_end sub_8082A18
-
- thumb_func_start sub_8082A54
-sub_8082A54: @ 8082A54
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- bl sub_80828B8
- adds r1, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08082A88
- cmp r1, 0x63
- bgt _08082A88
- ldr r0, _08082A80
- ldr r2, _08082A84
- adds r0, r2
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0
- beq _08082A88
- movs r0, 0x1
- b _08082A8A
- .align 2, 0
-_08082A80: .4byte gSaveBlock1
-_08082A84: .4byte 0x0000097a
-_08082A88:
- movs r0, 0
-_08082A8A:
- pop {r1}
- bx r1
- thumb_func_end sub_8082A54
-
- thumb_func_start sub_8082A90
-sub_8082A90: @ 8082A90
- push {r4-r7,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r1, 16
- bl sub_8082894
- adds r1, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _08082AB8
- movs r0, 0
- b _08082ADE
-_08082AAA:
- subs r0, r6, 0x1
- lsls r0, 1
- adds r0, r7, r0
- ldrh r0, [r0]
- b _08082ADE
-_08082AB4:
- ldrh r0, [r5]
- b _08082ADE
-_08082AB8:
- lsls r0, r1, 4
- adds r7, r4, r0
- movs r6, 0x1
- adds r5, r7, 0x2
- adds r4, r5, 0
-_08082AC2:
- ldrh r0, [r4]
- cmp r0, 0
- beq _08082AAA
- bl trainer_flag_check
- lsls r0, 24
- cmp r0, 0
- beq _08082AB4
- adds r4, 0x2
- adds r5, 0x2
- adds r6, 0x1
- cmp r6, 0x4
- ble _08082AC2
- ldrh r0, [r7, 0x8]
-_08082ADE:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8082A90
-
- thumb_func_start sub_8082AE4
-sub_8082AE4: @ 8082AE4
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- bl sub_80828B8
- adds r1, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08082B04
- ldr r0, _08082B08
- ldr r2, _08082B0C
- adds r0, r2
- adds r0, r1, r0
- movs r1, 0
- strb r1, [r0]
-_08082B04:
- pop {r0}
- bx r0
- .align 2, 0
-_08082B08: .4byte gSaveBlock1
-_08082B0C: .4byte 0x0000097a
- thumb_func_end sub_8082AE4
-
- thumb_func_start sub_8082B10
-sub_8082B10: @ 8082B10
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r1, 16
- bl sub_8082894
- adds r1, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08082B3A
- lsls r0, r1, 4
- adds r0, r4
- ldrh r0, [r0, 0x2]
- bl trainer_flag_check
- lsls r0, 24
- cmp r0, 0
- beq _08082B3A
- movs r0, 0x1
- b _08082B3C
-_08082B3A:
- movs r0, 0
-_08082B3C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8082B10
-
- thumb_func_start sub_8082B44
-sub_8082B44: @ 8082B44
- push {r4-r6,lr}
- movs r6, 0
- movs r5, 0
- ldr r4, _08082B64
-_08082B4C:
- ldrh r0, [r4]
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08082B68
- adds r6, 0x1
- cmp r6, 0x4
- ble _08082B68
- movs r0, 0x1
- b _08082B72
- .align 2, 0
-_08082B64: .4byte gUnknown_0839B1F0
-_08082B68:
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x7
- bls _08082B4C
- movs r0, 0
-_08082B72:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8082B44
-
- thumb_func_start sub_8082B78
-sub_8082B78: @ 8082B78
- push {lr}
- bl sub_8082B44
- cmp r0, 0
- beq _08082BA0
- ldr r0, _08082B94
- ldr r2, _08082B98
- adds r1, r0, r2
- ldrh r0, [r1]
- cmp r0, 0xFE
- bls _08082B9C
- movs r0, 0xFF
- b _08082B9E
- .align 2, 0
-_08082B94: .4byte gSaveBlock1
-_08082B98: .4byte 0x00000978
-_08082B9C:
- adds r0, 0x1
-_08082B9E:
- strh r0, [r1]
-_08082BA0:
- pop {r0}
- bx r0
- thumb_func_end sub_8082B78
-
- thumb_func_start sub_8082BA4
-sub_8082BA4: @ 8082BA4
- push {lr}
- bl sub_8082B44
- cmp r0, 0
- beq _08082BC8
- ldr r0, _08082BC0
- ldr r1, _08082BC4
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0xFE
- bls _08082BC8
- movs r0, 0x1
- b _08082BCA
- .align 2, 0
-_08082BC0: .4byte gSaveBlock1
-_08082BC4: .4byte 0x00000978
-_08082BC8:
- movs r0, 0
-_08082BCA:
- pop {r1}
- bx r1
- thumb_func_end sub_8082BA4
-
- thumb_func_start sub_8082BD0
-sub_8082BD0: @ 8082BD0
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- bl sub_8082BA4
- cmp r0, 0
- beq _08082BFA
- ldr r0, _08082C00
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_80828FC
- cmp r0, 0x1
- bne _08082BFA
- ldr r0, _08082C04
- ldr r1, _08082C08
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
-_08082BFA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08082C00: .4byte gTrainerEyeTrainers
-_08082C04: .4byte gSaveBlock1
-_08082C08: .4byte 0x00000978
- thumb_func_end sub_8082BD0
-
- thumb_func_start sub_8082C0C
-sub_8082C0C: @ 8082C0C
- push {lr}
- adds r3, r0, 0
- adds r2, r1, 0
- lsls r3, 16
- lsrs r3, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r0, _08082C28
- adds r1, r3, 0
- bl sub_80829A8
- pop {r1}
- bx r1
- .align 2, 0
-_08082C28: .4byte gTrainerEyeTrainers
- thumb_func_end sub_8082C0C
-
- thumb_func_start unref_sub_8082C2C
-unref_sub_8082C2C: @ 8082C2C
- push {lr}
- adds r3, r0, 0
- adds r2, r1, 0
- lsls r3, 16
- lsrs r3, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r0, _08082C48
- adds r1, r3, 0
- bl sub_80829E8
- pop {r1}
- bx r1
- .align 2, 0
-_08082C48: .4byte gTrainerEyeTrainers
- thumb_func_end unref_sub_8082C2C
-
- thumb_func_start sub_8082C4C
-sub_8082C4C: @ 8082C4C
- push {lr}
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r0, _08082C64
- bl sub_8082A90
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_08082C64: .4byte gTrainerEyeTrainers
- thumb_func_end sub_8082C4C
-
- thumb_func_start sub_8082C68
-sub_8082C68: @ 8082C68
- push {r4,r5,lr}
- ldr r5, _08082C8C
- ldr r4, _08082C90
- ldrh r1, [r4]
- adds r0, r5, 0
- bl sub_8082A18
- lsls r0, 24
- cmp r0, 0
- bne _08082C94
- ldrh r1, [r4]
- adds r0, r5, 0
- bl sub_8082B10
- lsls r0, 24
- lsrs r0, 24
- b _08082C96
- .align 2, 0
-_08082C8C: .4byte gTrainerEyeTrainers
-_08082C90: .4byte word_202FF5E
-_08082C94:
- movs r0, 0x1
-_08082C96:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8082C68
-
- thumb_func_start sub_8082C9C
-sub_8082C9C: @ 8082C9C
- push {lr}
- ldr r0, _08082CB0
- ldr r1, _08082CB4
- ldrh r1, [r1]
- bl sub_8082A54
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08082CB0: .4byte gTrainerEyeTrainers
-_08082CB4: .4byte word_202FF5E
- thumb_func_end sub_8082C9C
-
- thumb_func_start sub_8082CB8
-sub_8082CB8: @ 8082CB8
- push {lr}
- ldr r0, _08082CCC
- ldr r1, _08082CD0
- ldrh r1, [r1]
- bl sub_8082AE4
- bl sub_808257C
- pop {r0}
- bx r0
- .align 2, 0
-_08082CCC: .4byte gTrainerEyeTrainers
-_08082CD0: .4byte word_202FF5E
- thumb_func_end sub_8082CB8
-
- thumb_func_start sub_8082CD4
-sub_8082CD4: @ 8082CD4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r4, _08082D10
- adds r0, r4, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _08082D08
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08082D14
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r6, [r1, 0xA]
- strh r5, [r1, 0xC]
-_08082D08:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08082D10: .4byte sub_8082F20
-_08082D14: .4byte gTasks
- thumb_func_end sub_8082CD4
-
- thumb_func_start sub_8082D18
-sub_8082D18: @ 8082D18
- push {lr}
- adds r1, r0, 0
- ldr r0, _08082D44
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- movs r0, 0x12
- movs r1, 0xA
- movs r2, 0x1C
- movs r3, 0xD
- bl MenuDrawTextWindow
- ldr r0, _08082D48
- movs r1, 0x13
- movs r2, 0xB
- movs r3, 0x48
- bl sub_8072BD8
- pop {r0}
- bx r0
- .align 2, 0
-_08082D44: .4byte gStringVar1
-_08082D48: .4byte gOtherText_PLink
- thumb_func_end sub_8082D18
-
- thumb_func_start sub_8082D4C
-sub_8082D4C: @ 8082D4C
- push {lr}
- movs r0, 0x12
- movs r1, 0xA
- movs r2, 0x1C
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_8082D4C
-
- thumb_func_start sub_8082D60
-sub_8082D60: @ 8082D60
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08082D88
- adds r1, r0
- adds r5, r1, 0x6
- movs r2, 0x6
- ldrsh r0, [r1, r2]
- cmp r4, r0
- beq _08082D94
- cmp r4, 0x1
- bhi _08082D8C
- bl sub_8082D4C
- b _08082D92
- .align 2, 0
-_08082D88: .4byte gUnknown_03004B28
-_08082D8C:
- adds r0, r4, 0
- bl sub_8082D18
-_08082D92:
- strh r4, [r5]
-_08082D94:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8082D60
-
- thumb_func_start sub_8082D9C
-sub_8082D9C: @ 8082D9C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- bl GetLinkPlayerDataExchangeStatusTimed
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _08082DEC
- cmp r0, 0x2
- bgt _08082DBC
- cmp r0, 0x1
- beq _08082DC2
- b _08082DEC
-_08082DBC:
- cmp r0, 0x3
- beq _08082DE8
- b _08082DEC
-_08082DC2:
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r4, r1
- bgt _08082DD6
- cmp r1, r5
- bgt _08082DD6
- movs r0, 0x1
- b _08082DEE
-_08082DD6:
- ldr r0, _08082DE4
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- movs r0, 0x4
- b _08082DEE
- .align 2, 0
-_08082DE4: .4byte gStringVar1
-_08082DE8:
- movs r0, 0x3
- b _08082DEE
-_08082DEC:
- movs r0, 0
-_08082DEE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8082D9C
-
- thumb_func_start sub_8082DF4
-sub_8082DF4: @ 8082DF4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl HasLinkErrorOccurred
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08082E0A
- movs r0, 0
- b _08082E1A
-_08082E0A:
- ldr r0, _08082E20
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08082E24
- str r0, [r1]
- movs r0, 0x1
-_08082E1A:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08082E20: .4byte gTasks
-_08082E24: .4byte sub_8083418
- thumb_func_end sub_8082DF4
-
- thumb_func_start sub_8082E28
-sub_8082E28: @ 8082E28
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08082E58
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08082E64
- bl IsLinkConnectionEstablished
- lsls r0, 24
- cmp r0, 0
- bne _08082E64
- ldr r0, _08082E5C
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08082E60
- str r0, [r1]
- movs r0, 0x1
- b _08082E66
- .align 2, 0
-_08082E58: .4byte gMain
-_08082E5C: .4byte gTasks
-_08082E60: .4byte sub_80833EC
-_08082E64:
- movs r0, 0
-_08082E66:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8082E28
-
- thumb_func_start sub_8082E6C
-sub_8082E6C: @ 8082E6C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsLinkConnectionEstablished
- lsls r0, 24
- cmp r0, 0
- beq _08082E82
- movs r0, 0x1
- bl SetSuppressLinkErrorMessage
-_08082E82:
- ldr r0, _08082E94
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08082E98
- movs r0, 0
- b _08082EA8
- .align 2, 0
-_08082E94: .4byte gMain
-_08082E98:
- ldr r0, _08082EB0
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08082EB4
- str r0, [r1]
- movs r0, 0x1
-_08082EA8:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08082EB0: .4byte gTasks
-_08082EB4: .4byte sub_80833EC
- thumb_func_end sub_8082E6C
-
- thumb_func_start sub_8082EB8
-sub_8082EB8: @ 8082EB8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl GetSioMultiSI
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08082ECE
- movs r0, 0
- b _08082EDE
-_08082ECE:
- ldr r0, _08082EE4
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08082EE8
- str r0, [r1]
- movs r0, 0x1
-_08082EDE:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08082EE4: .4byte gTasks
-_08082EE8: .4byte sub_8083418
- thumb_func_end sub_8082EB8
-
- thumb_func_start unref_sub_8082EEC
-unref_sub_8082EEC: @ 8082EEC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08082F1C
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _08082F16
- movs r0, 0x2
- bl sub_8007E9C
- adds r0, r4, 0
- bl DestroyTask
-_08082F16:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08082F1C: .4byte gTasks
- thumb_func_end unref_sub_8082EEC
-
- thumb_func_start sub_8082F20
-sub_8082F20: @ 8082F20
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08082F48
- adds r4, r1, r0
- movs r3, 0
- ldrsh r2, [r4, r3]
- cmp r2, 0
- bne _08082F4C
- bl OpenLinkTimed
- bl sub_80082EC
- bl ResetLinkPlayers
- b _08082F58
- .align 2, 0
-_08082F48: .4byte gUnknown_03004B28
-_08082F4C:
- cmp r2, 0x9
- ble _08082F58
- subs r0, 0x8
- adds r0, r1, r0
- ldr r1, _08082F64
- str r1, [r0]
-_08082F58:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08082F64: .4byte sub_8082F68
- thumb_func_end sub_8082F20
-
- thumb_func_start sub_8082F68
-sub_8082F68: @ 8082F68
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- bl sub_8082E28
- cmp r0, 0x1
- beq _08082FDC
- adds r0, r4, 0
- bl sub_8082E6C
- cmp r0, 0x1
- beq _08082FDC
- cmp r5, 0x1
- bls _08082FDC
- movs r0, 0x1
- bl SetSuppressLinkErrorMessage
- ldr r1, _08082FC0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0
- strh r0, [r4, 0xE]
- bl IsLinkMaster
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08082FCC
- movs r0, 0x15
- bl PlaySE
- ldr r0, _08082FC4
- bl ShowFieldAutoScrollMessage
- ldr r0, _08082FC8
- b _08082FDA
- .align 2, 0
-_08082FC0: .4byte gTasks
-_08082FC4: .4byte gUnknown_081A4932
-_08082FC8: .4byte sub_8082FEC
-_08082FCC:
- movs r0, 0x16
- bl PlaySE
- ldr r0, _08082FE4
- bl ShowFieldAutoScrollMessage
- ldr r0, _08082FE8
-_08082FDA:
- str r0, [r4]
-_08082FDC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08082FE4: .4byte gUnknown_081A49B6
-_08082FE8: .4byte sub_80831F8
- thumb_func_end sub_8082F68
-
- thumb_func_start sub_8082FEC
-sub_8082FEC: @ 8082FEC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8082E28
- cmp r0, 0x1
- beq _0808302C
- adds r0, r4, 0
- bl sub_8082EB8
- cmp r0, 0x1
- beq _0808302C
- adds r0, r4, 0
- bl sub_8082DF4
- cmp r0, 0x1
- beq _0808302C
- bl GetFieldMessageBoxMode
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _0808302C
- ldr r0, _08083034
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- strh r2, [r1, 0xE]
- ldr r0, _08083038
- str r0, [r1]
-_0808302C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08083034: .4byte gTasks
-_08083038: .4byte sub_808303C
- thumb_func_end sub_8082FEC
-
- thumb_func_start sub_808303C
-sub_808303C: @ 808303C
- 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
- mov r8, r0
- ldr r0, _080830D0
- mov r9, r0
- mov r7, r8
- add r7, r9
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- bl sub_8082E28
- cmp r0, 0x1
- beq _080830C2
- adds r0, r4, 0
- bl sub_8082EB8
- cmp r0, 0x1
- beq _080830C2
- adds r0, r4, 0
- bl sub_8082DF4
- cmp r0, 0x1
- beq _080830C2
- adds r6, r5, 0
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_8082D60
- ldr r0, _080830D4
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080830C2
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r5, r0
- blt _080830C2
- adds r0, r6, 0
- bl sub_80081C8
- bl sub_8082D4C
- ldr r0, _080830D8
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- ldr r0, _080830DC
- bl ShowFieldAutoScrollMessage
- mov r0, r9
- subs r0, 0x8
- add r0, r8
- ldr r1, _080830E0
- str r1, [r0]
-_080830C2:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080830D0: .4byte gUnknown_03004B28
-_080830D4: .4byte gMain
-_080830D8: .4byte gStringVar1
-_080830DC: .4byte gUnknown_081A4975
-_080830E0: .4byte sub_80830E4
- thumb_func_end sub_808303C
-
- thumb_func_start sub_80830E4
-sub_80830E4: @ 80830E4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- adds r0, r5, 0
- bl sub_8082E28
- cmp r0, 0x1
- beq _08083178
- adds r0, r5, 0
- bl sub_8082EB8
- cmp r0, 0x1
- beq _08083178
- adds r0, r5, 0
- bl sub_8082DF4
- cmp r0, 0x1
- beq _08083178
- bl GetFieldMessageBoxMode
- lsls r0, 24
- cmp r0, 0
- bne _08083178
- bl sub_800820C
- adds r4, r0, 0
- bl GetLinkPlayerCount_2
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _08083132
- ldr r0, _08083148
- ldrh r1, [r0, 0x2C]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08083158
-_08083132:
- ldr r0, _0808314C
- bl ShowFieldAutoScrollMessage
- ldr r1, _08083150
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _08083154
- str r1, [r0]
- b _08083178
- .align 2, 0
-_08083148: .4byte gMain
-_0808314C: .4byte gUnknown_081A4932
-_08083150: .4byte gTasks
-_08083154: .4byte sub_8082FEC
-_08083158:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08083178
- movs r0, 0x5
- bl PlaySE
- bl sub_8007F4C
- ldr r0, _08083180
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _08083184
- str r0, [r1]
-_08083178:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08083180: .4byte gTasks
-_08083184: .4byte sub_8083188
- thumb_func_end sub_80830E4
-
- thumb_func_start sub_8083188
-sub_8083188: @ 8083188
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080831CC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- ldrb r7, [r5, 0xA]
- ldrb r6, [r5, 0xC]
- adds r0, r4, 0
- bl sub_8082DF4
- cmp r0, 0x1
- beq _080831EA
- adds r0, r4, 0
- bl sub_8083444
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080831EA
- bl GetLinkPlayerCount_2
- adds r4, r0, 0
- bl sub_800820C
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080831D4
- ldr r0, _080831D0
- b _080831E8
- .align 2, 0
-_080831CC: .4byte gTasks
-_080831D0: .4byte sub_8083418
-_080831D4:
- ldr r4, _080831F0
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_8082D9C
- strh r0, [r4]
- lsls r0, 16
- cmp r0, 0
- beq _080831EA
- ldr r0, _080831F4
-_080831E8:
- str r0, [r5]
-_080831EA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080831F0: .4byte gScriptResult
-_080831F4: .4byte sub_8083288
- thumb_func_end sub_8083188
-
- thumb_func_start sub_80831F8
-sub_80831F8: @ 80831F8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08083244
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- ldrb r7, [r5, 0xA]
- ldrb r6, [r5, 0xC]
- adds r0, r4, 0
- bl sub_8082E28
- cmp r0, 0x1
- beq _08083270
- adds r0, r4, 0
- bl sub_8082DF4
- cmp r0, 0x1
- beq _08083270
- ldr r4, _08083248
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_8082D9C
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _08083270
- cmp r0, 0x3
- bne _08083250
- bl sub_800832C
- bl HideFieldMessageBox
- ldr r0, _0808324C
- b _0808326E
- .align 2, 0
-_08083244: .4byte gTasks
-_08083248: .4byte gScriptResult
-_0808324C: .4byte sub_80833C4
-_08083250:
- bl GetLinkPlayerCount_2
- ldr r4, _08083278
- strb r0, [r4]
- bl GetMultiplayerId
- ldr r1, _0808327C
- strb r0, [r1]
- ldrb r0, [r4]
- bl sub_80081C8
- ldr r0, _08083280
- bl sub_8093390
- ldr r0, _08083284
-_0808326E:
- str r0, [r5]
-_08083270:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08083278: .4byte gUnknown_03004864
-_0808327C: .4byte gUnknown_03004860
-_08083280: .4byte gBlockSendBuffer
-_08083284: .4byte sub_8083314
- thumb_func_end sub_80831F8
-
- thumb_func_start sub_8083288
-sub_8083288: @ 8083288
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- adds r0, r4, 0
- bl sub_8082DF4
- cmp r0, 0x1
- beq _080832F8
- ldr r0, _080832BC
- ldrh r0, [r0]
- cmp r0, 0x3
- bne _080832C8
- bl sub_800832C
- bl HideFieldMessageBox
- ldr r0, _080832C0
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080832C4
- str r0, [r1]
- b _080832F8
- .align 2, 0
-_080832BC: .4byte gScriptResult
-_080832C0: .4byte gTasks
-_080832C4: .4byte sub_80833C4
-_080832C8:
- bl GetLinkPlayerCount_2
- ldr r4, _08083300
- strb r0, [r4]
- bl GetMultiplayerId
- ldr r1, _08083304
- strb r0, [r1]
- ldrb r0, [r4]
- bl sub_80081C8
- ldr r0, _08083308
- bl sub_8093390
- ldr r1, _0808330C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _08083310
- str r1, [r0]
- movs r0, 0x2
- bl sub_8007E9C
-_080832F8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08083300: .4byte gUnknown_03004864
-_08083304: .4byte gUnknown_03004860
-_08083308: .4byte gBlockSendBuffer
-_0808330C: .4byte gTasks
-_08083310: .4byte sub_8083314
- thumb_func_end sub_8083288
-
- thumb_func_start sub_8083314
-sub_8083314: @ 8083314
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_8082DF4
- cmp r0, 0x1
- beq _080833B6
- bl GetBlockRecievedStatus
- adds r4, r0, 0
- bl sub_8008198
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080833B6
- movs r4, 0
- ldr r6, _0808333C
- b _0808335A
- .align 2, 0
-_0808333C: .4byte gUnknown_0202FFC0
-_08083340:
- lsls r1, r4, 8
- ldr r0, _08083394
- adds r1, r0
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 3
- adds r0, r6
- movs r2, 0x38
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_0808335A:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _08083340
- movs r0, 0
- bl SetSuppressLinkErrorMessage
- bl ResetBlockReceivedFlags
- bl HideFieldMessageBox
- ldr r0, _08083398
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _080833A4
- ldr r0, _0808339C
- ldrh r1, [r0]
- ldr r0, _080833A0
- bl sub_8082D4C
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
- b _080833B6
- .align 2, 0
-_08083394: .4byte gBlockRecvBuffer
-_08083398: .4byte gScriptResult
-_0808339C: .4byte gLinkType
-_080833A0: .4byte 0x00004411
-_080833A4:
- bl sub_800832C
- ldr r0, _080833BC
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080833C0
- str r0, [r1]
-_080833B6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080833BC: .4byte gTasks
-_080833C0: .4byte sub_80833C4
- thumb_func_end sub_8083314
-
- thumb_func_start sub_80833C4
-sub_80833C4: @ 80833C4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080833E8
- ldrb r0, [r0]
- cmp r0, 0
- bne _080833E0
- bl sub_8082D4C
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
-_080833E0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080833E8: .4byte gReceivedRemoteLinkPlayers
- thumb_func_end sub_80833C4
-
- thumb_func_start sub_80833EC
-sub_80833EC: @ 80833EC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _08083414
- movs r0, 0x5
- strh r0, [r1]
- bl sub_8082D4C
- bl HideFieldMessageBox
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08083414: .4byte gScriptResult
- thumb_func_end sub_80833EC
-
- thumb_func_start sub_8083418
-sub_8083418: @ 8083418
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _08083440
- movs r0, 0x6
- strh r0, [r1]
- bl sub_8082D4C
- bl HideFieldMessageBox
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08083440: .4byte gScriptResult
- thumb_func_end sub_8083418
-
- thumb_func_start sub_8083444
-sub_8083444: @ 8083444
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08083468
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r2, r1, r2
- ldrh r0, [r2, 0x10]
- adds r0, 0x1
- strh r0, [r2, 0x10]
- lsls r0, 16
- movs r1, 0x96
- lsls r1, 18
- cmp r0, r1
- bgt _0808346C
- movs r0, 0
- b _08083472
- .align 2, 0
-_08083468: .4byte gTasks
-_0808346C:
- ldr r0, _08083478
- str r0, [r2]
- movs r0, 0x1
-_08083472:
- pop {r1}
- bx r1
- .align 2, 0
-_08083478: .4byte sub_8083418
- thumb_func_end sub_8083444
-
- thumb_func_start sub_808347C
-sub_808347C: @ 808347C
- push {r4,lr}
- movs r3, 0x2
- movs r2, 0x2
- ldr r0, _08083494
- ldrh r0, [r0]
- cmp r0, 0x2
- beq _080834B0
- cmp r0, 0x2
- bgt _08083498
- cmp r0, 0x1
- beq _0808349E
- b _080834CC
- .align 2, 0
-_08083494: .4byte gUnknown_0202E8CC
-_08083498:
- cmp r0, 0x5
- beq _080834C0
- b _080834CC
-_0808349E:
- movs r3, 0x2
- ldr r1, _080834A8
- ldr r4, _080834AC
- b _080834C8
- .align 2, 0
-_080834A8: .4byte gLinkType
-_080834AC: .4byte 0x00002233
-_080834B0:
- movs r3, 0x2
- ldr r1, _080834B8
- ldr r4, _080834BC
- b _080834C8
- .align 2, 0
-_080834B8: .4byte gLinkType
-_080834BC: .4byte 0x00002244
-_080834C0:
- movs r3, 0x4
- movs r2, 0x4
- ldr r1, _080834DC
- ldr r4, _080834E0
-_080834C8:
- adds r0, r4, 0
- strh r0, [r1]
-_080834CC:
- adds r0, r3, 0
- adds r1, r2, 0
- bl sub_8082CD4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080834DC: .4byte gLinkType
-_080834E0: .4byte 0x00002255
- thumb_func_end sub_808347C
-
- thumb_func_start sub_80834E4
-sub_80834E4: @ 80834E4
- push {lr}
- ldr r1, _08083500
- ldr r2, _08083504
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08083508
- movs r0, 0
- strh r0, [r1]
- movs r0, 0x2
- movs r1, 0x2
- bl sub_8082CD4
- pop {r0}
- bx r0
- .align 2, 0
-_08083500: .4byte gLinkType
-_08083504: .4byte 0x00001133
-_08083508: .4byte gUnknown_020239F8
- thumb_func_end sub_80834E4
-
- thumb_func_start sub_808350C
-sub_808350C: @ 808350C
- push {lr}
- ldr r0, _0808352C
- movs r2, 0
- strh r2, [r0]
- ldr r1, _08083530
- ldr r3, _08083534
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _08083538
- strh r2, [r0]
- movs r0, 0x2
- movs r1, 0x4
- bl sub_8082CD4
- pop {r0}
- bx r0
- .align 2, 0
-_0808352C: .4byte gScriptResult
-_08083530: .4byte gLinkType
-_08083534: .4byte 0x00003311
-_08083538: .4byte gUnknown_020239F8
- thumb_func_end sub_808350C
-
- thumb_func_start sub_808353C
-sub_808353C: @ 808353C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0808355C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08083560
- cmp r0, 0x1
- beq _080835BC
- b _080835CE
- .align 2, 0
-_0808355C: .4byte gTasks
-_08083560:
- ldr r0, _08083594
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _08083586
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- cmp r1, r0
- bge _08083586
- ldr r2, _08083598
-_08083578:
- ldrh r4, [r2, 0x1A]
- cmp r4, 0x1
- beq _0808359C
- adds r2, 0x1C
- adds r1, 0x1
- cmp r1, r0
- blt _08083578
-_08083586:
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
- b _080835CE
- .align 2, 0
-_08083594: .4byte gScriptResult
-_08083598: .4byte gLinkPlayers
-_0808359C:
- ldr r1, _080835B4
- movs r0, 0x7
- strh r0, [r1]
- bl sub_8008480
- ldr r1, _080835B8
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0x8]
- b _080835CE
- .align 2, 0
-_080835B4: .4byte gScriptResult
-_080835B8: .4byte gTasks
-_080835BC:
- ldr r0, _080835D4
- ldrb r0, [r0]
- cmp r0, 0
- bne _080835CE
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
-_080835CE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080835D4: .4byte gReceivedRemoteLinkPlayers
- thumb_func_end sub_808353C
-
- thumb_func_start sub_80835D8
-sub_80835D8: @ 80835D8
- push {r4,lr}
- ldr r4, _0808360C
- adds r0, r4, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- bne _08083604
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08083610
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
-_08083604:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808360C: .4byte sub_808353C
-_08083610: .4byte gTasks
- thumb_func_end sub_80835D8
-
- thumb_func_start sub_8083614
-sub_8083614: @ 8083614
- push {lr}
- ldr r1, _08083630
- ldr r2, _08083634
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08083638
- movs r0, 0
- strh r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- bl sub_8082CD4
- pop {r0}
- bx r0
- .align 2, 0
-_08083630: .4byte gLinkType
-_08083634: .4byte 0x00004411
-_08083638: .4byte gUnknown_020239F8
- thumb_func_end sub_8083614
-
- thumb_func_start sub_808363C
-sub_808363C: @ 808363C
- push {lr}
- ldr r1, _08083658
- ldr r2, _0808365C
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08083660
- movs r0, 0
- strh r0, [r1]
- movs r0, 0x4
- movs r1, 0x4
- bl sub_8082CD4
- pop {r0}
- bx r0
- .align 2, 0
-_08083658: .4byte gLinkType
-_0808365C: .4byte 0x00006601
-_08083660: .4byte gUnknown_020239F8
- thumb_func_end sub_808363C
-
- thumb_func_start sub_8083664
-sub_8083664: @ 8083664
- push {lr}
- ldr r0, _08083678
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _0808367C
- movs r0, 0xFF
- b _08083700
- .align 2, 0
-_08083678: .4byte sub_8083710
-_0808367C:
- ldr r0, _08083690
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r0, 0x4
- bhi _080836F4
- lsls r0, 2
- ldr r1, _08083694
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08083690: .4byte gUnknown_0202E8CC
-_08083694: .4byte _08083698
- .align 2, 0
-_08083698:
- .4byte _080836AC
- .4byte _080836BC
- .4byte _080836DC
- .4byte _080836EC
- .4byte _080836CC
-_080836AC:
- ldr r1, _080836B4
- ldr r2, _080836B8
- b _080836F0
- .align 2, 0
-_080836B4: .4byte gLinkType
-_080836B8: .4byte 0x00002233
-_080836BC:
- ldr r1, _080836C4
- ldr r2, _080836C8
- b _080836F0
- .align 2, 0
-_080836C4: .4byte gLinkType
-_080836C8: .4byte 0x00002244
-_080836CC:
- ldr r1, _080836D4
- ldr r2, _080836D8
- b _080836F0
- .align 2, 0
-_080836D4: .4byte gLinkType
-_080836D8: .4byte 0x00002255
-_080836DC:
- ldr r1, _080836E4
- ldr r2, _080836E8
- b _080836F0
- .align 2, 0
-_080836E4: .4byte gLinkType
-_080836E8: .4byte 0x00001111
-_080836EC:
- ldr r1, _08083704
- ldr r2, _08083708
-_080836F0:
- adds r0, r2, 0
- strh r0, [r1]
-_080836F4:
- ldr r0, _0808370C
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
-_08083700:
- pop {r1}
- bx r1
- .align 2, 0
-_08083704: .4byte gLinkType
-_08083708: .4byte 0x00003322
-_0808370C: .4byte sub_8083710
- thumb_func_end sub_8083664
-
- thumb_func_start sub_8083710
-sub_8083710: @ 8083710
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0808373C
- adds r4, r1, r0
- movs r3, 0
- ldrsh r2, [r4, r3]
- cmp r2, 0
- bne _08083744
- bl OpenLink
- bl ResetLinkPlayers
- ldr r0, _08083740
- movs r1, 0x50
- bl CreateTask
- b _08083750
- .align 2, 0
-_0808373C: .4byte gUnknown_03004B28
-_08083740: .4byte sub_8083C50
-_08083744:
- cmp r2, 0x9
- ble _08083750
- subs r0, 0x8
- adds r0, r1, r0
- ldr r1, _0808375C
- str r1, [r0]
-_08083750:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808375C: .4byte sub_8083760
- thumb_func_end sub_8083710
-
- thumb_func_start sub_8083760
-sub_8083760: @ 8083760
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _080837A6
- bl IsLinkMaster
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08083798
- ldr r0, _08083790
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08083794
- b _080837A4
- .align 2, 0
-_08083790: .4byte gTasks
-_08083794: .4byte sub_80837B4
-_08083798:
- ldr r0, _080837AC
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080837B0
-_080837A4:
- str r0, [r1]
-_080837A6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080837AC: .4byte gTasks
-_080837B0: .4byte sub_80837EC
- thumb_func_end sub_8083760
-
- thumb_func_start sub_80837B4
-sub_80837B4: @ 80837B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_800820C
- adds r4, r0, 0
- bl GetLinkPlayerCount_2
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080837DE
- bl sub_8007F4C
- ldr r0, _080837E4
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080837E8
- str r0, [r1]
-_080837DE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080837E4: .4byte gTasks
-_080837E8: .4byte sub_80837EC
- thumb_func_end sub_80837B4
-
- thumb_func_start sub_80837EC
-sub_80837EC: @ 80837EC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808381C
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08083814
- bl IsLinkPlayerDataExchangeComplete
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08083814
- bl sub_800826C
- bl sub_8007B14
- adds r0, r4, 0
- bl DestroyTask
-_08083814:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808381C: .4byte gReceivedRemoteLinkPlayers
- thumb_func_end sub_80837EC
-
- thumb_func_start sub_8083820
-sub_8083820: @ 8083820
- push {lr}
- bl InitSaveDialog
- pop {r0}
- bx r0
- thumb_func_end sub_8083820
-
- thumb_func_start sub_808382C
-sub_808382C: @ 808382C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08083850
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bls _08083846
- b _08083940
-_08083846:
- lsls r0, 2
- ldr r1, _08083854
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08083850: .4byte gTasks
-_08083854: .4byte _08083858
- .align 2, 0
-_08083858:
- .4byte _08083870
- .4byte _08083890
- .4byte _080838A0
- .4byte _080838B0
- .4byte _080838B6
- .4byte _080838CC
-_08083870:
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, _08083888
- ldr r2, _0808388C
- adds r0, r2, 0
- strh r0, [r1]
- bl ClearLinkCallback_2
- b _080838BE
- .align 2, 0
-_08083888: .4byte gLinkType
-_0808388C: .4byte 0x00002211
-_08083890:
- ldr r0, _0808389C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- b _080838BA
- .align 2, 0
-_0808389C: .4byte gPaletteFade
-_080838A0:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _08083940
- b _080838BE
-_080838B0:
- bl sub_800832C
- b _080838BE
-_080838B6:
- ldr r0, _080838C8
- ldrb r0, [r0]
-_080838BA:
- cmp r0, 0
- bne _08083940
-_080838BE:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08083940
- .align 2, 0
-_080838C8: .4byte gReceivedRemoteLinkPlayers
-_080838CC:
- ldr r0, _080838E4
- ldr r0, [r0, 0x4]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080838E8
- movs r0, 0xE6
- lsls r0, 1
- bl current_map_music_set__default_for_battle
- b _080838EE
- .align 2, 0
-_080838E4: .4byte gLinkPlayers
-_080838E8:
- ldr r0, _08083900
- bl current_map_music_set__default_for_battle
-_080838EE:
- ldr r0, _08083904
- ldrh r0, [r0]
- cmp r0, 0x2
- beq _08083918
- cmp r0, 0x2
- bgt _08083908
- cmp r0, 0x1
- beq _0808390E
- b _0808392E
- .align 2, 0
-_08083900: .4byte 0x000001cb
-_08083904: .4byte gUnknown_0202E8CC
-_08083908:
- cmp r0, 0x5
- beq _08083924
- b _0808392E
-_0808390E:
- ldr r1, _08083914
- movs r0, 0xA
- b _0808392C
- .align 2, 0
-_08083914: .4byte gUnknown_020239F8
-_08083918:
- ldr r1, _08083920
- movs r0, 0xB
- b _0808392C
- .align 2, 0
-_08083920: .4byte gUnknown_020239F8
-_08083924:
- bl sub_80C5604
- ldr r1, _08083948
- movs r0, 0x4B
-_0808392C:
- strh r0, [r1]
-_0808392E:
- ldr r0, _0808394C
- bl SetMainCallback2
- ldr r1, _08083950
- ldr r0, _08083954
- str r0, [r1, 0x8]
- adds r0, r5, 0
- bl DestroyTask
-_08083940:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08083948: .4byte gUnknown_020239F8
-_0808394C: .4byte sub_800E7C4
-_08083950: .4byte gMain
-_08083954: .4byte sub_8083958
- thumb_func_end sub_808382C
-
- thumb_func_start sub_8083958
-sub_8083958: @ 8083958
- push {lr}
- bl call_map_music_set_to_zero
- bl copy_player_party_from_sav1
- bl copy_bags_and_unk_data_to_save_blocks
- bl sub_810FEFC
- ldr r0, _08083990
- ldrh r0, [r0]
- cmp r0, 0x5
- beq _0808397E
- ldr r0, _08083994
- ldrb r1, [r0]
- movs r0, 0x1
- eors r0, r1
- bl sub_8110290
-_0808397E:
- ldr r0, _08083998
- ldr r1, _0808399C
- str r1, [r0, 0x8]
- ldr r0, _080839A0
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08083990: .4byte gUnknown_0202E8CC
-_08083994: .4byte gUnknown_03004860
-_08083998: .4byte gMain
-_0808399C: .4byte sub_805465C
-_080839A0: .4byte sub_8071B28
- thumb_func_end sub_8083958
-
- thumb_func_start sub_80839A4
-sub_80839A4: @ 80839A4
- push {lr}
- ldr r0, _080839CC
- ldrh r1, [r0]
- subs r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080839B8
- cmp r1, 0x5
- bne _080839C0
-_080839B8:
- bl copy_player_party_from_sav1
- bl copy_bags_and_unk_data_to_save_blocks
-_080839C0:
- movs r0, 0x7F
- bl copy_saved_warp2_bank_and_enter_x_to_warp1
- pop {r0}
- bx r0
- .align 2, 0
-_080839CC: .4byte gUnknown_0202E8CC
- thumb_func_end sub_80839A4
-
- thumb_func_start sub_80839D0
-sub_80839D0: @ 80839D0
- push {lr}
- bl sub_805559C
- pop {r0}
- bx r0
- thumb_func_end sub_80839D0
-
- thumb_func_start sub_80839DC
-sub_80839DC: @ 80839DC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08083A00
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _08083A20
- cmp r0, 0x1
- bgt _08083A04
- cmp r0, 0
- beq _08083A0E
- b _08083A7E
- .align 2, 0
-_08083A00: .4byte gTasks
-_08083A04:
- cmp r0, 0x2
- beq _08083A40
- cmp r0, 0x3
- beq _08083A68
- b _08083A7E
-_08083A0E:
- ldr r0, _08083A1C
- bl ShowFieldMessage
- movs r0, 0x1
- strh r0, [r5, 0x8]
- b _08083A7E
- .align 2, 0
-_08083A1C: .4byte gUnknown_081A490C
-_08083A20:
- bl IsFieldMessageBoxHidden
- lsls r0, 24
- cmp r0, 0
- beq _08083A7E
- bl sub_8055574
- ldr r0, _08083A3C
- ldrb r0, [r0]
- bl sub_8007270
- movs r0, 0x2
- strh r0, [r5, 0x8]
- b _08083A7E
- .align 2, 0
-_08083A3C: .4byte gUnknown_0202E8CE
-_08083A40:
- bl sub_80554F8
- cmp r0, 0x1
- beq _08083A52
- cmp r0, 0x1
- ble _08083A7E
- cmp r0, 0x2
- beq _08083A62
- b _08083A7E
-_08083A52:
- bl HideFieldMessageBox
- movs r0, 0
- strh r0, [r5, 0x8]
- adds r0, r4, 0
- bl SwitchTaskToFollowupFunc
- b _08083A7E
-_08083A62:
- movs r0, 0x3
- strh r0, [r5, 0x8]
- b _08083A7E
-_08083A68:
- bl sub_8055588
- bl HideFieldMessageBox
- bl MenuZeroFillScreen
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_08083A7E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80839DC
-
- thumb_func_start sub_8083A84
-sub_8083A84: @ 8083A84
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _08083AA8
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- adds r2, r5, 0
- bl SetTaskFuncWithFollowupFunc
- bl ScriptContext1_Stop
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08083AA8: .4byte sub_80839DC
- thumb_func_end sub_8083A84
-
- thumb_func_start sub_8083AAC
-sub_8083AAC: @ 8083AAC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08083AD0
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08083AF0
- cmp r0, 0x1
- bgt _08083AD4
- cmp r0, 0
- beq _08083ADE
- b _08083B34
- .align 2, 0
-_08083AD0: .4byte gTasks
-_08083AD4:
- cmp r0, 0x2
- beq _08083B04
- cmp r0, 0x3
- beq _08083B20
- b _08083B34
-_08083ADE:
- bl ScriptContext2_Enable
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- bl ClearLinkCallback_2
- b _08083B14
-_08083AF0:
- ldr r0, _08083B00
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08083B34
- b _08083B14
- .align 2, 0
-_08083B00: .4byte gPaletteFade
-_08083B04:
- ldr r1, _08083B1C
- movs r0, 0
- strb r0, [r1]
- strb r0, [r1, 0x1]
- bl m4aMPlayAllStop
- bl sub_800832C
-_08083B14:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08083B34
- .align 2, 0
-_08083B1C: .4byte gUnknown_020297D8
-_08083B20:
- ldr r0, _08083B3C
- ldrb r0, [r0]
- cmp r0, 0
- bne _08083B34
- ldr r0, _08083B40
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_08083B34:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08083B3C: .4byte gReceivedRemoteLinkPlayers
-_08083B40: .4byte sub_8047CD8
- thumb_func_end sub_8083AAC
-
- thumb_func_start sub_8083B44
-sub_8083B44: @ 8083B44
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8083B6C
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8083B44
-
- thumb_func_start sub_8083B5C
-sub_8083B5C: @ 8083B5C
- push {lr}
- ldr r0, _08083B68
- bl sub_8083A84
- pop {r0}
- bx r0
- .align 2, 0
-_08083B68: .4byte sub_8083B44
- thumb_func_end sub_8083B5C
-
- thumb_func_start sub_8083B6C
-sub_8083B6C: @ 8083B6C
- push {lr}
- ldr r0, _08083B7C
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08083B7C: .4byte sub_8083AAC
- thumb_func_end sub_8083B6C
-
- thumb_func_start sub_8083B80
-sub_8083B80: @ 8083B80
- push {lr}
- bl sub_8083B6C
- bl ScriptContext1_Stop
- pop {r0}
- bx r0
- thumb_func_end sub_8083B80
-
- thumb_func_start sub_8083B90
-sub_8083B90: @ 8083B90
- push {lr}
- ldr r0, _08083BA4
- ldr r2, _08083BA8
- adds r1, r2, 0
- strh r1, [r0]
- ldr r0, _08083BAC
- bl sub_8083A84
- pop {r0}
- bx r0
- .align 2, 0
-_08083BA4: .4byte gLinkType
-_08083BA8: .4byte 0x00002211
-_08083BAC: .4byte sub_808382C
- thumb_func_end sub_8083B90
-
- thumb_func_start unref_sub_8083BB0
-unref_sub_8083BB0: @ 8083BB0
- push {r4,lr}
- ldr r4, _08083BD4
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08083BD8
- adds r1, r4, 0
- bl SetTaskFuncWithFollowupFunc
- bl ScriptContext1_Stop
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08083BD4: .4byte sub_80839DC
-_08083BD8: .4byte sub_80B9484
- thumb_func_end unref_sub_8083BB0
-
- thumb_func_start sub_8083BDC
-sub_8083BDC: @ 8083BDC
- push {lr}
- ldr r0, _08083BEC
- ldrb r0, [r0]
- ldr r1, _08083BF0
- bl sub_8093130
- pop {r0}
- bx r0
- .align 2, 0
-_08083BEC: .4byte gUnknown_0202E8D0
-_08083BF0: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_8083BDC
-
- thumb_func_start sub_8083BF4
-sub_8083BF4: @ 8083BF4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08083C34
- strh r4, [r0]
- ldr r0, _08083C38
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 2
- ldr r2, _08083C3C
- adds r1, r2
- bl StringCopy
- adds r0, r4, 0
- bl sub_80934C4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08083C48
- ldr r0, _08083C40
- ldr r2, _08083C44
- subs r1, 0x1
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- movs r0, 0x1
- b _08083C4A
- .align 2, 0
-_08083C34: .4byte gUnknown_0202E8D0
-_08083C38: .4byte gStringVar1
-_08083C3C: .4byte gLinkPlayers + 0x8
-_08083C40: .4byte gStringVar2
-_08083C44: .4byte gTrainerCardColorNames
-_08083C48:
- movs r0, 0
-_08083C4A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8083BF4
-
- thumb_func_start sub_8083C50
-sub_8083C50: @ 8083C50
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08083C98
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- movs r0, 0x96
- lsls r0, 17
- cmp r1, r0
- ble _08083C82
- bl CloseLink
- ldr r0, _08083C9C
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08083C82:
- ldr r0, _08083CA0
- ldrb r0, [r0]
- cmp r0, 0
- beq _08083C90
- adds r0, r5, 0
- bl DestroyTask
-_08083C90:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08083C98: .4byte gTasks
-_08083C9C: .4byte CB2_LinkError
-_08083CA0: .4byte gReceivedRemoteLinkPlayers
- thumb_func_end sub_8083C50
-
- thumb_func_start sub_8083CA4
-sub_8083CA4: @ 8083CA4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08083CC4
- ldrb r0, [r0]
- cmp r0, 0
- bne _08083CBC
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
-_08083CBC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08083CC4: .4byte gReceivedRemoteLinkPlayers
- thumb_func_end sub_8083CA4
-
- thumb_func_start unref_sub_8083CC8
-unref_sub_8083CC8: @ 8083CC8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_800832C
- ldr r1, _08083CE8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08083CEC
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08083CE8: .4byte gTasks
-_08083CEC: .4byte sub_8083CA4
- thumb_func_end unref_sub_8083CC8
-
- thumb_func_start unref_sub_8083CF0
-unref_sub_8083CF0: @ 8083CF0
- push {r4-r7,lr}
- ldr r0, _08083D38
- ldr r4, [r0]
- lsls r4, 26
- lsrs r4, 30
- ldr r0, _08083D3C
- movs r1, 0xFF
- strb r1, [r0]
- ldr r1, _08083D40
- bl StringAppend
- movs r5, 0
- ldr r0, _08083D44
- movs r6, 0x1
- eors r4, r6
- lsls r4, 1
- adds r7, r4, r0
- movs r4, 0
-_08083D14:
- ldrh r0, [r7]
- asrs r0, r5
- ands r0, r6
- cmp r0, 0
- beq _08083D28
- ldr r1, _08083D48
- adds r1, r4, r1
- ldr r0, _08083D3C
- bl StringAppend
-_08083D28:
- adds r4, 0x3
- adds r5, 0x1
- cmp r5, 0x9
- ble _08083D14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08083D38: .4byte 0x04000128
-_08083D3C: .4byte gUnknown_03004DA0
-_08083D40: .4byte gUnknown_0839B24A
-_08083D44: .4byte word_3002910
-_08083D48: .4byte gUnknown_0839B22C
- thumb_func_end unref_sub_8083CF0
-
- thumb_func_start sub_8083D4C
-sub_8083D4C: @ 8083D4C
- push {lr}
- ldr r0, _08083D60
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08083D64
- movs r0, 0
- b _08083D6A
- .align 2, 0
-_08083D60: .4byte gMain
-_08083D64:
- bl sub_8071C20
- movs r0, 0x1
-_08083D6A:
- pop {r1}
- bx r1
- thumb_func_end sub_8083D4C
-
- thumb_func_start sub_8083D70
-sub_8083D70: @ 8083D70
- push {r4-r6,lr}
- sub sp, 0x34
- ldr r0, _08083DE4
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- bl sub_8041870
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- movs r6, 0xB
- adds r1, r4, 0
- muls r1, r6
- ldr r4, _08083DE8
- adds r1, r4
- mov r0, sp
- bl StringCopy
- ldr r1, _08083DEC
- mov r0, sp
- bl StringAppend
- adds r1, r5, 0
- muls r1, r6
- adds r1, r4
- mov r0, sp
- bl StringAppend
- ldr r1, _08083DF0
- mov r0, sp
- bl StringAppend
- bl MenuZeroFillScreen
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1E
- movs r3, 0x13
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _08083DF4
- ldr r0, _08083DF8
- str r0, [r1]
- movs r0, 0
- add sp, 0x34
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08083DE4: .4byte gPlayerParty
-_08083DE8: .4byte gSpeciesNames
-_08083DEC: .4byte gUnknown_0839B24D
-_08083DF0: .4byte gUnknown_0839B255
-_08083DF4: .4byte gCallback_03004AE8
-_08083DF8: .4byte sub_8083D4C
- thumb_func_end sub_8083D70
-
- thumb_func_start sub_8083DFC
-sub_8083DFC: @ 8083DFC
- push {lr}
- ldr r0, _08083E24
- bl daycare_count_pokemon
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08083E1A
- bl daycare_relationship_score_from_savegame
- lsls r0, 24
- cmp r0, 0
- beq _08083E1A
- bl sub_8041940
-_08083E1A:
- bl sub_8071C20
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_08083E24: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end sub_8083DFC
-
- thumb_func_start sub_8083E28
-sub_8083E28: @ 8083E28
- push {lr}
- ldr r0, _08083E50
- bl daycare_count_pokemon
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08083E46
- bl daycare_relationship_score_from_savegame
- lsls r0, 24
- cmp r0, 0
- beq _08083E46
- bl sub_8041950
-_08083E46:
- bl sub_8071C20
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_08083E50: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end sub_8083E28
-
- thumb_func_start sub_8083E54
-sub_8083E54: @ 8083E54
- push {lr}
- movs r0, 0xFA
- lsls r0, 2
- bl sub_8041790
- bl sub_8071C20
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8083E54
-
- thumb_func_start sub_8083E68
-sub_8083E68: @ 8083E68
- push {lr}
- ldr r0, _08083E7C
- bl sub_8041790
- bl sub_8071C20
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_08083E7C: .4byte 0x00002710
- thumb_func_end sub_8083E68
-
- thumb_func_start sub_8083E80
-sub_8083E80: @ 8083E80
- push {lr}
- bl sub_8132670
- bl sub_8071C20
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8083E80
-
- thumb_func_start sub_8083E90
-sub_8083E90: @ 8083E90
- push {r4-r6,lr}
- sub sp, 0x4
- movs r5, 0
- movs r6, 0
-_08083E98:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08083EE0
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _08083EBC
- mov r0, sp
- strb r6, [r0]
- adds r0, r4, 0
- movs r1, 0x20
- mov r2, sp
- bl SetMonData
-_08083EBC:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08083E98
- ldr r0, _08083EE4
- ldr r1, _08083EE8
- adds r0, r1
- movs r1, 0xFD
- strb r1, [r0]
- bl sub_8071C20
- movs r0, 0x1
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08083EE0: .4byte gPlayerParty
-_08083EE4: .4byte gSaveBlock1
-_08083EE8: .4byte 0x000030b6
- thumb_func_end sub_8083E90
-
- thumb_func_start sub_8083EEC
-sub_8083EEC: @ 8083EEC
- push {lr}
- ldr r0, _08083F04
- ldr r2, _08083F08
- movs r1, 0x2
- bl SetMonData
- bl sub_8071C20
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_08083F04: .4byte gPlayerParty
-_08083F08: .4byte gUnknown_0839B257
- thumb_func_end sub_8083EEC
-
- thumb_func_start sub_8083F0C
-sub_8083F0C: @ 8083F0C
- push {r4,lr}
- movs r4, 0
-_08083F10:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_810CA6C
- adds r4, 0x1
- cmp r4, 0x27
- ble _08083F10
- bl sub_8071C20
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8083F0C
-
- thumb_func_start sub_8083F2C
-sub_8083F2C: @ 8083F2C
- push {lr}
- bl ProcessMenuInput
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _08083F52
- adds r0, 0x1
- cmp r1, r0
- beq _08083F60
- ldr r2, _08083F58
- ldr r0, _08083F5C
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2]
-_08083F52:
- movs r0, 0
- b _08083F66
- .align 2, 0
-_08083F58: .4byte gCallback_03004AE8
-_08083F5C: .4byte gUnknown_0839B2C0
-_08083F60:
- bl sub_8071C20
- movs r0, 0x1
-_08083F66:
- pop {r1}
- bx r1
- thumb_func_end sub_8083F2C
-
- thumb_func_start unref_sub_8083F6C
-unref_sub_8083F6C: @ 8083F6C
- push {lr}
- sub sp, 0x8
- bl MenuZeroFillScreen
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r3, _08083FB0
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x9
- bl PrintMenuItems
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x9
- bl InitMenu
- ldr r1, _08083FB4
- ldr r0, _08083FB8
- str r0, [r1]
- movs r0, 0
- add sp, 0x8
- pop {r1}
- bx r1
- .align 2, 0
-_08083FB0: .4byte gUnknown_0839B2C0
-_08083FB4: .4byte gCallback_03004AE8
-_08083FB8: .4byte sub_8083F2C
- thumb_func_end unref_sub_8083F6C
-
- thumb_func_start sub_8083FBC
-sub_8083FBC: @ 8083FBC
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _08083FEC
-_08083FC2:
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1]
- lsls r0, 31
- cmp r0, 0
- beq _08083FF0
- ldrb r0, [r1, 0x7]
- cmp r0, 0x1
- beq _08083FDC
- cmp r0, 0x3
- bne _08083FF0
-_08083FDC:
- adds r0, r4, 0
- bl sub_8084004
- lsls r0, 24
- cmp r0, 0
- beq _08083FF0
- movs r0, 0x1
- b _08083FFC
- .align 2, 0
-_08083FEC: .4byte gMapObjects
-_08083FF0:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _08083FC2
- movs r0, 0
-_08083FFC:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8083FBC
-
- thumb_func_start sub_8084004
-sub_8084004: @ 8084004
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- adds r0, r4, 0
- bl GetFieldObjectScriptPointerByFieldObjectId
- adds r6, r0, 0
- bl GetTrainerFlagFromScriptPointer
- cmp r0, 0
- bne _08084034
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- ldr r1, _08084038
- adds r5, r0, r1
- adds r0, r5, 0
- bl CheckIfTrainerCanApproachPlayer
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0808403C
-_08084034:
- movs r0, 0
- b _08084052
- .align 2, 0
-_08084038: .4byte gMapObjects
-_0808403C:
- adds r0, r7, 0
- adds r1, r6, 0
- bl SingleTrainerWantsBattle
- subs r1, r4, 0x1
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_80842C8
- movs r0, 0x1
-_08084052:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8084004
-
- thumb_func_start CheckIfTrainerCanApproachPlayer
-CheckIfTrainerCanApproachPlayer: @ 8084058
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r7, r0, 0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- ldrb r0, [r7, 0x7]
- mov r8, r4
- cmp r0, 0x1
- bne _080840B8
- ldr r1, _080840B0
- ldrb r0, [r7, 0x18]
- lsls r0, 28
- lsrs r0, 26
- subs r0, 0x4
- adds r0, r1
- ldrb r1, [r7, 0x1D]
- mov r2, sp
- movs r3, 0
- ldrsh r2, [r2, r3]
- movs r5, 0
- ldrsh r3, [r4, r5]
- ldr r4, [r0]
- adds r0, r7, 0
- bl _call_via_r4
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r2, [r7, 0x18]
- lsls r2, 28
- lsrs r2, 28
- adds r0, r7, 0
- adds r1, r6, 0
- bl CheckPathBetweenTrainerAndPlayer
- lsls r0, 24
- lsrs r0, 24
- b _080840F8
- .align 2, 0
-_080840B0: .4byte gUnknown_0839B488
-_080840B4:
- adds r0, r6, 0
- b _080840F8
-_080840B8:
- movs r5, 0
-_080840BA:
- ldr r0, _08084104
- lsls r4, r5, 2
- adds r4, r0
- ldrb r1, [r7, 0x1D]
- mov r0, sp
- movs r6, 0
- ldrsh r2, [r0, r6]
- mov r0, r8
- movs r6, 0
- ldrsh r3, [r0, r6]
- ldr r4, [r4]
- adds r0, r7, 0
- bl _call_via_r4
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl CheckPathBetweenTrainerAndPlayer
- lsls r0, 24
- cmp r0, 0
- bne _080840B4
- adds r5, r4, 0
- cmp r5, 0x3
- bls _080840BA
- movs r0, 0
-_080840F8:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08084104: .4byte gUnknown_0839B488
- thumb_func_end CheckIfTrainerCanApproachPlayer
-
- thumb_func_start IsTrainerInRangeSouth
-IsTrainerInRangeSouth: @ 8084108
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r3, 16
- lsrs r5, r3, 16
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- lsls r2, 16
- asrs r2, 16
- cmp r0, r2
- bne _08084142
- lsls r0, r5, 16
- asrs r2, r0, 16
- ldrh r3, [r4, 0x12]
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r2, r0
- ble _08084142
- adds r1, r0, 0
- lsls r0, r6, 16
- asrs r0, 16
- adds r1, r0
- cmp r2, r1
- bgt _08084142
- subs r0, r5, r3
- lsls r0, 24
- lsrs r0, 24
- b _08084144
-_08084142:
- movs r0, 0
-_08084144:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end IsTrainerInRangeSouth
-
- thumb_func_start IsTrainerInRangeNorth
-IsTrainerInRangeNorth: @ 808414C
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r3, 16
- lsrs r5, r3, 16
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- lsls r2, 16
- asrs r2, 16
- cmp r0, r2
- bne _08084186
- lsls r0, r5, 16
- asrs r2, r0, 16
- ldrh r3, [r4, 0x12]
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r2, r0
- bge _08084186
- adds r1, r0, 0
- lsls r0, r6, 16
- asrs r0, 16
- subs r1, r0
- cmp r2, r1
- blt _08084186
- subs r0, r3, r5
- lsls r0, 24
- lsrs r0, 24
- b _08084188
-_08084186:
- movs r0, 0
-_08084188:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end IsTrainerInRangeNorth
-
- thumb_func_start IsTrainerInRangeWest
-IsTrainerInRangeWest: @ 8084190
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r5, r2, 16
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsls r3, 16
- asrs r3, 16
- cmp r0, r3
- bne _080841CA
- lsls r0, r5, 16
- asrs r3, r0, 16
- ldrh r2, [r4, 0x10]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- bge _080841CA
- adds r1, r0, 0
- lsls r0, r6, 16
- asrs r0, 16
- subs r1, r0
- cmp r3, r1
- blt _080841CA
- subs r0, r2, r5
- lsls r0, 24
- lsrs r0, 24
- b _080841CC
-_080841CA:
- movs r0, 0
-_080841CC:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end IsTrainerInRangeWest
-
- thumb_func_start IsTrainerInRangeEast
-IsTrainerInRangeEast: @ 80841D4
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r5, r2, 16
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsls r3, 16
- asrs r3, 16
- cmp r0, r3
- bne _0808420E
- lsls r0, r5, 16
- asrs r3, r0, 16
- ldrh r2, [r4, 0x10]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- ble _0808420E
- adds r1, r0, 0
- lsls r0, r6, 16
- asrs r0, 16
- adds r1, r0
- cmp r3, r1
- bgt _0808420E
- subs r0, r5, r2
- lsls r0, 24
- lsrs r0, 24
- b _08084210
-_0808420E:
- movs r0, 0
-_08084210:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end IsTrainerInRangeEast
-
- thumb_func_start CheckPathBetweenTrainerAndPlayer
-CheckPathBetweenTrainerAndPlayer: @ 8084218
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r6, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r7, r2, 24
- cmp r1, 0
- beq _080842B2
- ldrh r1, [r6, 0x10]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r6, 0x12]
- mov r1, sp
- adds r1, 0x2
- strh r0, [r1]
- movs r4, 0
- mov r8, r1
- mov r5, r9
- subs r5, 0x1
- cmp r4, r5
- bgt _08084284
-_0808424C:
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r3, r8
- movs r0, 0
- ldrsh r2, [r3, r0]
- adds r0, r6, 0
- adds r3, r7, 0
- bl sub_8060024
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08084270
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- bne _080842B2
-_08084270:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r7, 0
- mov r1, sp
- mov r2, r8
- bl MoveCoords
- cmp r4, r5
- ble _0808424C
-_08084284:
- ldrb r4, [r6, 0x19]
- lsls r5, r4, 28
- lsrs r5, 28
- lsrs r4, 4
- movs r0, 0
- strb r0, [r6, 0x19]
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r3, r8
- movs r0, 0
- ldrsh r2, [r3, r0]
- adds r0, r6, 0
- adds r3, r7, 0
- bl npc_block_way
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r4, 4
- orrs r5, r4
- strb r5, [r6, 0x19]
- cmp r1, 0x4
- beq _080842B6
-_080842B2:
- movs r0, 0
- b _080842B8
-_080842B6:
- mov r0, r9
-_080842B8:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckPathBetweenTrainerAndPlayer
-
- thumb_func_start sub_80842C8
-sub_80842C8: @ 80842C8
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- ldr r0, _080842F4
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080842F8
- adds r1, r0
- lsrs r0, r5, 16
- strh r0, [r1, 0xA]
- strh r5, [r1, 0xC]
- strh r4, [r1, 0xE]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080842F4: .4byte sub_808433C
-_080842F8: .4byte gTasks
- thumb_func_end sub_80842C8
-
- thumb_func_start sub_80842FC
-sub_80842FC: @ 80842FC
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r5, _08084334
- adds r0, r5, 0
- bl FindTaskIdByFunc
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl SetTaskFuncWithFollowupFunc
- ldr r1, _08084338
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x8]
- adds r0, r4, 0
- bl _call_via_r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08084334: .4byte sub_808433C
-_08084338: .4byte gTasks
- thumb_func_end sub_80842FC
-
- thumb_func_start sub_808433C
-sub_808433C: @ 808433C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _08084368
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- lsls r5, r0, 16
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- orrs r5, r0
- ldrb r0, [r5]
- lsls r0, 31
- cmp r0, 0
- bne _0808436C
- adds r0, r6, 0
- bl SwitchTaskToFollowupFunc
- b _08084388
- .align 2, 0
-_08084368: .4byte gTasks
-_0808436C:
- ldr r7, _08084390
-_0808436E:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r7
- ldr r3, [r0]
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl _call_via_r3
- lsls r0, 24
- cmp r0, 0
- bne _0808436E
-_08084388:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08084390: .4byte gUnknown_0839B498
- thumb_func_end sub_808433C
-
- thumb_func_start sub_8084394
-sub_8084394: @ 8084394
- movs r0, 0
- bx lr
- thumb_func_end sub_8084394
-
- thumb_func_start sub_8084398
-sub_8084398: @ 8084398
- push {r4,r5,lr}
- adds r5, r1, 0
- adds r4, r2, 0
- ldr r1, _080843D8
- adds r2, r1, 0x4
- adds r3, r1, 0
- adds r3, 0x8
- adds r0, r4, 0
- bl FieldObjectGetLocalIdAndMap
- movs r0, 0
- bl FieldEffectStart
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080843D8: .4byte gUnknown_0202FF84
- thumb_func_end sub_8084398
-
- thumb_func_start sub_80843DC
-sub_80843DC: @ 80843DC
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- movs r0, 0
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- beq _080843F2
- movs r0, 0
- b _08084414
-_080843F2:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldrb r0, [r5, 0x6]
- subs r0, 0x39
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08084408
- movs r0, 0x6
- strh r0, [r4, 0x8]
-_08084408:
- ldrb r0, [r5, 0x6]
- cmp r0, 0x3F
- bne _08084412
- movs r0, 0x8
- strh r0, [r4, 0x8]
-_08084412:
- movs r0, 0x1
-_08084414:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80843DC
-
- thumb_func_start sub_808441C
-sub_808441C: @ 808441C
- push {r4,r5,lr}
- adds r5, r1, 0
- adds r4, r2, 0
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _0808443A
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _0808446E
-_0808443A:
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08084460
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetGoSpeed0AnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r5, 0xE]
- subs r0, 0x1
- strh r0, [r5, 0xE]
- b _0808446E
-_08084460:
- adds r0, r4, 0
- movs r1, 0x3E
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_0808446E:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_808441C
-
- thumb_func_start sub_8084478
-sub_8084478: @ 8084478
- push {r4-r6,lr}
- adds r6, r1, 0
- adds r5, r2, 0
- adds r0, r5, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _08084496
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08084524
-_08084496:
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl npc_running_behaviour_by_direction
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl npc_set_running_behaviour_etc
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl npc_running_behaviour_by_direction
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_805C774
- adds r0, r5, 0
- bl sub_805C754
- ldr r0, _0808452C
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08084530
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _080844EE
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08084524
-_080844EE:
- bl sub_80597E8
- ldr r0, _0808452C
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08084530
- adds r4, r0
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetOppositeDirection
- lsls r0, 24
- lsrs r0, 24
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_08084524:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0808452C: .4byte gPlayerAvatar
-_08084530: .4byte gMapObjects
- thumb_func_end sub_8084478
-
- thumb_func_start sub_8084534
-sub_8084534: @ 8084534
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08084570
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08084574
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _08084560
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08084566
-_08084560:
- adds r0, r5, 0
- bl SwitchTaskToFollowupFunc
-_08084566:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08084570: .4byte gPlayerAvatar
-_08084574: .4byte gMapObjects
- thumb_func_end sub_8084534
-
- thumb_func_start sub_8084578
-sub_8084578: @ 8084578
- push {r4,r5,lr}
- adds r5, r1, 0
- adds r4, r2, 0
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _08084596
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080845A4
-_08084596:
- adds r0, r4, 0
- movs r1, 0x59
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_080845A4:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8084578
-
- thumb_func_start sub_80845AC
-sub_80845AC: @ 80845AC
- push {r4,lr}
- adds r4, r1, 0
- adds r0, r2, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080845C0
- movs r0, 0x3
- strh r0, [r4, 0x8]
-_080845C0:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80845AC
-
- thumb_func_start sub_80845C8
-sub_80845C8: @ 80845C8
- push {r4,r5,lr}
- adds r5, r1, 0
- adds r4, r2, 0
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _080845E6
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080845F4
-_080845E6:
- adds r0, r4, 0
- movs r1, 0x3E
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_080845F4:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80845C8
-
- thumb_func_start sub_80845FC
-sub_80845FC: @ 80845FC
- push {r4,r5,lr}
- adds r5, r1, 0
- adds r4, r2, 0
- adds r0, r4, 0
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- cmp r0, 0
- beq _08084642
- ldr r2, _0808464C
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- str r0, [r2]
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- str r0, [r2, 0x4]
- ldr r3, _08084650
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- str r0, [r2, 0x8]
- movs r0, 0x2
- str r0, [r2, 0xC]
- movs r0, 0x31
- bl FieldEffectStart
- strh r0, [r5, 0x10]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_08084642:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0808464C: .4byte gUnknown_0202FF84
-_08084650: .4byte gSprites
- thumb_func_end sub_80845FC
-
- thumb_func_start sub_8084654
-sub_8084654: @ 8084654
- push {r4,r5,lr}
- adds r5, r1, 0
- adds r4, r2, 0
- ldr r2, _080846C4
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x2B
- ldrb r0, [r1]
- cmp r0, 0x2
- bne _080846BC
- ldrb r1, [r4, 0x3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x3]
- ldrb r0, [r4]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x5]
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl sub_806084C
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_080846BC:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080846C4: .4byte gSprites
- thumb_func_end sub_8084654
-
- thumb_func_start sub_80846C8
-sub_80846C8: @ 80846C8
- push {r4,lr}
- adds r4, r1, 0
- movs r0, 0x31
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _080846DC
- movs r0, 0x3
- strh r0, [r4, 0x8]
-_080846DC:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80846C8
-
- thumb_func_start sub_80846E4
-sub_80846E4: @ 80846E4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08084778
- adds r4, r0, r1
- adds r0, r4, 0
- adds r0, 0xA
- mov r1, sp
- bl LoadWordFromTwoHalfwords
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08084716
- ldr r0, [sp]
- bl FieldObjectClearAnim
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
-_08084716:
- ldr r1, _0808477C
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r2, [sp]
- ldr r3, [r0]
- adds r0, r5, 0
- adds r1, r4, 0
- bl _call_via_r3
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- bne _08084780
- movs r0, 0x31
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _08084780
- ldr r4, [sp]
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl npc_running_behaviour_by_direction
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl npc_set_running_behaviour_etc
- ldr r4, [sp]
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl npc_running_behaviour_by_direction
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805C774
- adds r0, r5, 0
- bl DestroyTask
- b _0808478A
- .align 2, 0
-_08084778: .4byte gTasks
-_0808477C: .4byte gUnknown_0839B4C8
-_08084780:
- ldr r2, [sp]
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
-_0808478A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80846E4
-
- thumb_func_start sub_8084794
-sub_8084794: @ 8084794
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080847C0
- movs r1, 0
- bl CreateTask
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _080847C4
- adds r0, r1
- adds r0, 0x2
- adds r1, r4, 0
- bl StoreWordInTwoHalfwords
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080847C0: .4byte sub_80846E4
-_080847C4: .4byte gUnknown_03004B28
- thumb_func_end sub_8084794
-
- thumb_func_start sub_80847C8
-sub_80847C8: @ 80847C8
- push {lr}
- ldr r0, _080847D4
- bl sub_80842FC
- pop {r0}
- bx r0
- .align 2, 0
-_080847D4: .4byte sub_80847D8
- thumb_func_end sub_80847C8
-
- thumb_func_start sub_80847D8
-sub_80847D8: @ 80847D8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80847D8
-
- thumb_func_start oei_exclamation_mark
-oei_exclamation_mark: @ 80847EC
- push {lr}
- ldr r0, _0808481C
- movs r1, 0
- movs r2, 0
- movs r3, 0x53
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _08084814
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08084820
- adds r0, r1
- movs r1, 0
- movs r2, 0
- bl sub_8084894
-_08084814:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0808481C: .4byte gSpriteTemplate_839B510
-_08084820: .4byte gSprites
- thumb_func_end oei_exclamation_mark
-
- thumb_func_start sub_8084824
-sub_8084824: @ 8084824
- push {lr}
- ldr r0, _08084854
- movs r1, 0
- movs r2, 0
- movs r3, 0x52
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _0808484C
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08084858
- adds r0, r1
- movs r1, 0x21
- movs r2, 0x1
- bl sub_8084894
-_0808484C:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08084854: .4byte gSpriteTemplate_839B510
-_08084858: .4byte gSprites
- thumb_func_end sub_8084824
-
- thumb_func_start sub_808485C
-sub_808485C: @ 808485C
- push {lr}
- ldr r0, _0808488C
- movs r1, 0
- movs r2, 0
- movs r3, 0x52
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _08084884
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08084890
- adds r0, r1
- movs r1, 0x2E
- movs r2, 0
- bl sub_8084894
-_08084884:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0808488C: .4byte gSpriteTemplate_839B528
-_08084890: .4byte gSprites
- thumb_func_end sub_808485C
-
- thumb_func_start sub_8084894
-sub_8084894: @ 8084894
- push {r4,lr}
- lsls r2, 24
- lsrs r2, 24
- ldrb r4, [r0, 0x5]
- movs r3, 0xD
- negs r3, r3
- ands r3, r4
- movs r4, 0x4
- orrs r3, r4
- strb r3, [r0, 0x5]
- movs r3, 0x3E
- adds r3, r0
- mov r12, r3
- ldrb r3, [r3]
- movs r4, 0x2
- orrs r3, r4
- mov r4, r12
- strb r3, [r4]
- ldr r4, _080848D8
- ldr r3, [r4]
- strh r3, [r0, 0x2E]
- ldr r3, [r4, 0x4]
- strh r3, [r0, 0x30]
- ldr r3, [r4, 0x8]
- strh r3, [r0, 0x32]
- ldr r3, _080848DC
- strh r3, [r0, 0x34]
- strh r1, [r0, 0x3C]
- adds r1, r2, 0
- bl StartSpriteAnim
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080848D8: .4byte gUnknown_0202FF84
-_080848DC: .4byte 0x0000fffb
- thumb_func_end sub_8084894
-
- thumb_func_start objc_exclamation_mark_probably
-objc_exclamation_mark_probably: @ 80848E0
- push {r4,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 _08084912
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08084920
-_08084912:
- ldrh r1, [r4, 0x3C]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldEffectStop
- b _0808496E
-_08084920:
- ldr r2, _08084964
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08084968
- adds r1, r0
- ldrh r3, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r2, r3, r0
- strh r2, [r4, 0x36]
- ldrh r0, [r1, 0x20]
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x22]
- subs r0, 0x10
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x24]
- strh r0, [r4, 0x24]
- ldrh r0, [r1, 0x26]
- adds r0, r2
- strh r0, [r4, 0x26]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0
- beq _0808496C
- adds r0, r3, 0x1
- strh r0, [r4, 0x34]
- b _0808496E
- .align 2, 0
-_08084964: .4byte gMapObjects
-_08084968: .4byte gSprites
-_0808496C:
- strh r2, [r4, 0x34]
-_0808496E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end objc_exclamation_mark_probably
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_807C828.s b/asm/rom_807C828.s
new file mode 100644
index 000000000..68baca083
--- /dev/null
+++ b/asm/rom_807C828.s
@@ -0,0 +1,16904 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_807C828
+sub_807C828: @ 807C828
+ push {r4-r6,lr}
+ ldr r0, _0807C8EC
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ bne _0807C8E4
+ movs r0, 0x90
+ lsls r0, 5
+ bl AllocSpritePalette
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0807C8F0
+ lsls r1, r5, 5
+ ldr r2, _0807C8F4
+ adds r1, r2
+ ldr r2, _0807C8F8
+ bl CpuSet
+ bl sub_807CB10
+ ldr r4, _0807C8FC
+ ldr r1, _0807C900
+ adds r0, r4, r1
+ strb r5, [r0]
+ ldr r0, _0807C904
+ bl AllocSpritePalette
+ ldr r2, _0807C908
+ adds r1, r4, r2
+ strb r0, [r1]
+ ldr r1, _0807C90C
+ adds r0, r4, r1
+ strb r6, [r0]
+ adds r2, 0x4
+ adds r0, r4, r2
+ strb r6, [r0]
+ adds r1, 0x4
+ adds r0, r4, r1
+ strb r6, [r0]
+ adds r2, 0xC
+ adds r0, r4, r2
+ strb r6, [r0]
+ adds r1, 0x22
+ adds r0, r4, r1
+ strb r6, [r0]
+ adds r2, 0x17
+ adds r0, r4, r2
+ strb r6, [r0]
+ adds r1, 0x24
+ adds r0, r4, r1
+ strb r6, [r0]
+ adds r2, 0x1B
+ adds r0, r4, r2
+ strb r6, [r0]
+ subs r1, 0xD
+ adds r0, r4, r1
+ strb r6, [r0]
+ adds r2, 0x18
+ adds r0, r4, r2
+ strb r6, [r0]
+ subs r1, 0x1D
+ adds r0, r4, r1
+ strb r6, [r0]
+ movs r0, 0x10
+ movs r1, 0
+ bl sub_807DB64
+ movs r2, 0xDA
+ lsls r2, 3
+ adds r0, r4, r2
+ strb r6, [r0]
+ ldr r0, _0807C910
+ adds r1, r4, r0
+ movs r0, 0x3
+ strb r0, [r1]
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r0, r4, r1
+ strb r6, [r0]
+ adds r2, 0x3
+ adds r1, r4, r2
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _0807C914
+ movs r1, 0x50
+ bl CreateTask
+ ldr r1, _0807C918
+ adds r4, r1
+ strb r0, [r4]
+_0807C8E4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C8EC: .4byte sub_807CA34
+_0807C8F0: .4byte gUnknown_083970E8
+_0807C8F4: .4byte gPlttBufferUnfaded + 0x200
+_0807C8F8: .4byte REG_BG0CNT
+_0807C8FC: .4byte gUnknown_0202F7E8
+_0807C900: .4byte 0x000006d5
+_0807C904: .4byte 0x00001201
+_0807C908: .4byte 0x000006d4
+_0807C90C: .4byte 0x000006da
+_0807C910: .4byte 0x000006c6
+_0807C914: .4byte sub_807C9E4
+_0807C918: .4byte 0x000006c9
+ thumb_func_end sub_807C828
+
+ thumb_func_start sub_807C91C
+sub_807C91C: @ 807C91C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ beq _0807C932
+ cmp r4, 0x5
+ beq _0807C932
+ cmp r4, 0xD
+ beq _0807C932
+ bl play_some_sound
+_0807C932:
+ ldr r1, _0807C974
+ ldr r2, _0807C978
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, r4
+ beq _0807C956
+ movs r3, 0xDA
+ lsls r3, 3
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r4
+ bne _0807C956
+ ldr r0, _0807C97C
+ lsls r1, r4, 4
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+_0807C956:
+ ldr r1, _0807C974
+ ldr r2, _0807C980
+ adds r0, r1, r2
+ movs r2, 0
+ strb r2, [r0]
+ ldr r3, _0807C978
+ adds r0, r1, r3
+ strb r4, [r0]
+ ldr r0, _0807C984
+ adds r1, r0
+ strh r2, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C974: .4byte gUnknown_0202F7E8
+_0807C978: .4byte 0x000006d1
+_0807C97C: .4byte gUnknown_08396FC8
+_0807C980: .4byte 0x000006d3
+_0807C984: .4byte 0x000006ce
+ thumb_func_end sub_807C91C
+
+ thumb_func_start sub_807C988
+sub_807C988: @ 807C988
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl play_some_sound
+ ldr r0, _0807C9AC
+ movs r2, 0xDA
+ lsls r2, 3
+ adds r1, r0, r2
+ strb r4, [r1]
+ ldr r1, _0807C9B0
+ adds r0, r1
+ strb r4, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C9AC: .4byte gUnknown_0202F7E8
+_0807C9B0: .4byte 0x000006d1
+ thumb_func_end sub_807C988
+
+ thumb_func_start sub_807C9B4
+sub_807C9B4: @ 807C9B4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl play_some_sound
+ ldr r1, _0807C9E0
+ movs r2, 0xDA
+ lsls r2, 3
+ adds r0, r1, r2
+ strb r4, [r0]
+ adds r2, 0x1
+ adds r0, r1, r2
+ strb r4, [r0]
+ movs r0, 0xD9
+ lsls r0, 3
+ adds r1, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C9E0: .4byte gUnknown_0202F7E8
+ thumb_func_end sub_807C9B4
+
+ thumb_func_start sub_807C9E4
+sub_807C9E4: @ 807C9E4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r2, _0807CA24
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0807CA1C
+ ldr r1, _0807CA28
+ movs r3, 0xDA
+ lsls r3, 3
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r1, 0x8
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r1, _0807CA2C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0807CA30
+ str r1, [r0]
+_0807CA1C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807CA24: .4byte gUnknown_0202F7E8
+_0807CA28: .4byte gUnknown_08396FC8
+_0807CA2C: .4byte gTasks
+_0807CA30: .4byte sub_807CA34
+ thumb_func_end sub_807C9E4
+
+ thumb_func_start sub_807CA34
+sub_807CA34: @ 807CA34
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r5, _0807CA90
+ movs r0, 0xDA
+ lsls r0, 3
+ adds r6, r5, r0
+ ldr r1, _0807CA94
+ adds r7, r5, r1
+ ldrb r0, [r6]
+ ldrb r2, [r7]
+ cmp r0, r2
+ beq _0807CAA8
+ ldr r0, _0807CA98
+ mov r8, r0
+ ldrb r0, [r6]
+ lsls r0, 4
+ mov r1, r8
+ adds r1, 0xC
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _0807CAB8
+ ldrb r0, [r7]
+ lsls r0, 4
+ add r0, r8
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r1, _0807CA9C
+ adds r0, r5, r1
+ strb r4, [r0]
+ ldr r2, _0807CAA0
+ adds r0, r5, r2
+ strb r4, [r0]
+ ldrb r0, [r7]
+ strb r0, [r6]
+ ldr r0, _0807CAA4
+ adds r1, r5, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ b _0807CAB8
+ .align 2, 0
+_0807CA90: .4byte gUnknown_0202F7E8
+_0807CA94: .4byte 0x000006d1
+_0807CA98: .4byte gUnknown_08396FC8
+_0807CA9C: .4byte 0x000006c3
+_0807CAA0: .4byte 0x000006c6
+_0807CAA4: .4byte 0x000006d3
+_0807CAA8:
+ ldr r0, _0807CAD8
+ ldrb r1, [r6]
+ lsls r1, 4
+ adds r0, 0x4
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+_0807CAB8:
+ ldr r1, _0807CADC
+ ldr r0, _0807CAE0
+ ldr r2, _0807CAE4
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807CAD8: .4byte gUnknown_08396FC8
+_0807CADC: .4byte gUnknown_083970B8
+_0807CAE0: .4byte gUnknown_0202F7E8
+_0807CAE4: .4byte 0x000006c6
+ thumb_func_end sub_807CA34
+
+ thumb_func_start sub_807CAE8
+sub_807CAE8: @ 807CAE8
+ ldr r0, _0807CAFC
+ ldr r2, _0807CB00
+ adds r1, r0, r2
+ movs r2, 0
+ strb r2, [r1]
+ ldr r1, _0807CB04
+ adds r0, r1
+ strb r2, [r0]
+ bx lr
+ .align 2, 0
+_0807CAFC: .4byte gUnknown_0202F7E8
+_0807CB00: .4byte 0x000006c1
+_0807CB04: .4byte 0x000006c2
+ thumb_func_end sub_807CAE8
+
+ thumb_func_start nullsub_38
+nullsub_38: @ 807CB08
+ bx lr
+ thumb_func_end nullsub_38
+
+ thumb_func_start sub_807CB0C
+sub_807CB0C: @ 807CB0C
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_807CB0C
+
+ thumb_func_start sub_807CB10
+sub_807CB10: @ 807CB10
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r1, _0807CB50
+ ldr r0, _0807CB54
+ str r0, [r1]
+ movs r0, 0
+ mov r12, r0
+ ldr r1, _0807CB58
+ mov r10, r1
+_0807CB28:
+ mov r7, r10
+ mov r0, r12
+ cmp r0, 0
+ bne _0807CB34
+ ldr r1, _0807CB5C
+ adds r7, r1
+_0807CB34:
+ movs r5, 0
+ movs r0, 0x1
+ add r0, r12
+ mov r9, r0
+_0807CB3C:
+ lsls r1, r5, 8
+ lsls r0, r5, 24
+ lsrs r2, r0, 16
+ mov r0, r12
+ cmp r0, 0
+ bne _0807CB60
+ adds r0, r1, 0
+ lsls r0, 12
+ lsrs r4, r0, 16
+ b _0807CB62
+ .align 2, 0
+_0807CB50: .4byte gUnknown_030006DC
+_0807CB54: .4byte gUnknown_083970C8
+_0807CB58: .4byte gUnknown_0202FC48
+_0807CB5C: .4byte 0xfffffda0
+_0807CB60:
+ movs r4, 0
+_0807CB62:
+ movs r3, 0
+ adds r1, r5, 0x1
+ mov r8, r1
+_0807CB68:
+ subs r1, r2, r4
+ lsls r1, 16
+ lsrs r2, r1, 16
+ lsls r0, r3, 5
+ adds r0, r7
+ adds r0, r5
+ lsrs r1, 24
+ strb r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x2
+ bls _0807CB68
+ adds r6, r2, 0
+ movs r0, 0xF8
+ lsls r0, 5
+ subs r0, r2
+ cmp r0, 0
+ bge _0807CB90
+ adds r0, 0xF
+_0807CB90:
+ lsls r0, 12
+ lsrs r4, r0, 16
+ cmp r5, 0xB
+ bhi _0807CBDA
+ cmp r3, 0x12
+ bhi _0807CC00
+_0807CB9C:
+ adds r0, r2, r4
+ lsls r0, 16
+ lsrs r2, r0, 16
+ subs r0, r2, r6
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ ble _0807CBB8
+ lsrs r0, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ subs r0, r2, r0
+ lsls r0, 16
+ lsrs r2, r0, 16
+_0807CBB8:
+ lsls r0, r3, 5
+ adds r0, r7
+ adds r1, r0, r5
+ lsrs r0, r2, 8
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1F
+ bls _0807CBCE
+ movs r0, 0x1F
+ strb r0, [r1]
+_0807CBCE:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x12
+ bls _0807CB9C
+ b _0807CC00
+_0807CBDA:
+ cmp r3, 0x12
+ bhi _0807CC00
+ movs r6, 0x1F
+_0807CBE0:
+ adds r1, r2, r4
+ lsls r1, 16
+ lsrs r2, r1, 16
+ lsls r0, r3, 5
+ adds r0, r7
+ adds r0, r5
+ lsrs r1, 24
+ strb r1, [r0]
+ cmp r1, 0x1F
+ bls _0807CBF6
+ strb r6, [r0]
+_0807CBF6:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x12
+ bls _0807CBE0
+_0807CC00:
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1F
+ bls _0807CB3C
+ mov r1, r9
+ lsls r0, r1, 16
+ lsrs r0, 16
+ mov r12, r0
+ cmp r0, 0x1
+ bls _0807CB28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807CB10
+
+ thumb_func_start sub_807CC24
+sub_807CC24: @ 807CC24
+ push {r4-r7,lr}
+ ldr r0, _0807CC50
+ movs r1, 0xD8
+ lsls r1, 3
+ adds r4, r0, r1
+ ldr r2, _0807CC54
+ adds r1, r0, r2
+ ldrb r7, [r4]
+ mov r12, r7
+ movs r6, 0
+ ldrsb r6, [r4, r6]
+ movs r5, 0
+ ldrsb r5, [r1, r5]
+ adds r3, r0, 0
+ cmp r6, r5
+ bne _0807CC5C
+ ldr r0, _0807CC58
+ adds r1, r3, r0
+ movs r0, 0x3
+ strb r0, [r1]
+ b _0807CCA4
+ .align 2, 0
+_0807CC50: .4byte gUnknown_0202F7E8
+_0807CC54: .4byte 0x000006c1
+_0807CC58: .4byte 0x000006c6
+_0807CC5C:
+ ldr r1, _0807CC84
+ adds r2, r3, r1
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ ldr r7, _0807CC88
+ adds r1, r3, r7
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _0807CCA4
+ movs r0, 0
+ strb r0, [r2]
+ mov r0, r12
+ cmp r6, r5
+ bge _0807CC8C
+ adds r0, 0x1
+ b _0807CC90
+ .align 2, 0
+_0807CC84: .4byte 0x000006c3
+_0807CC88: .4byte 0x000006c2
+_0807CC8C:
+ mov r0, r12
+ subs r0, 0x1
+_0807CC90:
+ strb r0, [r4]
+ movs r1, 0xD8
+ lsls r1, 3
+ adds r0, r3, r1
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ movs r0, 0
+ movs r1, 0x20
+ bl sub_807CEBC
+_0807CCA4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807CC24
+
+ thumb_func_start sub_807CCAC
+sub_807CCAC: @ 807CCAC
+ push {lr}
+ ldr r2, _0807CCE4
+ ldr r0, _0807CCE8
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _0807CCCA
+ ldr r3, _0807CCEC
+ adds r1, r2, r3
+ movs r0, 0
+ strb r0, [r1]
+_0807CCCA:
+ movs r1, 0xDA
+ lsls r1, 3
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ subs r0, 0x3
+ cmp r0, 0xA
+ bhi _0807CD94
+ lsls r0, 2
+ ldr r1, _0807CCF0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0807CCE4: .4byte gUnknown_0202F7E8
+_0807CCE8: .4byte 0x000006cb
+_0807CCEC: .4byte 0x000006ca
+_0807CCF0: .4byte _0807CCF4
+ .align 2, 0
+_0807CCF4:
+ .4byte _0807CD20
+ .4byte _0807CD20
+ .4byte _0807CD20
+ .4byte _0807CD6C
+ .4byte _0807CD94
+ .4byte _0807CD94
+ .4byte _0807CD94
+ .4byte _0807CD94
+ .4byte _0807CD20
+ .4byte _0807CD48
+ .4byte _0807CD20
+_0807CD20:
+ bl sub_807CDC4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807CDB4
+ ldr r0, _0807CD40
+ movs r2, 0xD8
+ lsls r2, 3
+ adds r1, r0, r2
+ movs r2, 0x3
+ strb r2, [r1]
+ ldr r3, _0807CD44
+ adds r0, r3
+ strb r2, [r0]
+ b _0807CDB4
+ .align 2, 0
+_0807CD40: .4byte gUnknown_0202F7E8
+_0807CD44: .4byte 0x000006c6
+_0807CD48:
+ bl sub_807CE24
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807CDB4
+ ldr r1, _0807CD64
+ movs r0, 0xD8
+ lsls r0, 3
+ adds r2, r1, r0
+ movs r0, 0xFA
+ strb r0, [r2]
+ ldr r2, _0807CD68
+ adds r1, r2
+ b _0807CDB0
+ .align 2, 0
+_0807CD64: .4byte gUnknown_0202F7E8
+_0807CD68: .4byte 0x000006c6
+_0807CD6C:
+ bl sub_807CE7C
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _0807CDB4
+ ldr r0, _0807CD8C
+ movs r3, 0xD8
+ lsls r3, 3
+ adds r1, r0, r3
+ strb r2, [r1]
+ ldr r1, _0807CD90
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0]
+ b _0807CDB4
+ .align 2, 0
+_0807CD8C: .4byte gUnknown_0202F7E8
+_0807CD90: .4byte 0x000006c6
+_0807CD94:
+ ldr r0, _0807CDB8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0807CDB4
+ ldr r3, _0807CDBC
+ adds r0, r2, r3
+ ldrb r1, [r0]
+ subs r3, 0x1
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldr r0, _0807CDC0
+ adds r1, r2, r0
+_0807CDB0:
+ movs r0, 0x3
+ strb r0, [r1]
+_0807CDB4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807CDB8: .4byte gPaletteFade
+_0807CDBC: .4byte 0x000006c1
+_0807CDC0: .4byte 0x000006c6
+ thumb_func_end sub_807CCAC
+
+ thumb_func_start sub_807CDC4
+sub_807CDC4: @ 807CDC4
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r2, _0807CE00
+ ldr r0, _0807CE04
+ adds r4, r2, r0
+ ldrb r0, [r4]
+ cmp r0, 0x10
+ beq _0807CE1A
+ adds r1, r0, 0x1
+ strb r1, [r4]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ cmp r0, 0xF
+ bhi _0807CE0C
+ movs r3, 0x10
+ subs r3, r1
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r1, _0807CE08
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x20
+ movs r2, 0x3
+ bl sub_807D1BC
+ movs r0, 0x1
+ b _0807CE1C
+ .align 2, 0
+_0807CE00: .4byte gUnknown_0202F7E8
+_0807CE04: .4byte 0x000006c7
+_0807CE08: .4byte 0x000006c4
+_0807CE0C:
+ movs r0, 0
+ movs r1, 0x20
+ movs r2, 0x3
+ bl sub_807CEBC
+ movs r0, 0x10
+ strb r0, [r4]
+_0807CE1A:
+ movs r0, 0
+_0807CE1C:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807CDC4
+
+ thumb_func_start sub_807CE24
+sub_807CE24: @ 807CE24
+ push {r4,lr}
+ ldr r2, _0807CE58
+ ldr r0, _0807CE5C
+ adds r4, r2, r0
+ ldrb r0, [r4]
+ cmp r0, 0x10
+ beq _0807CE74
+ adds r3, r0, 0x1
+ strb r3, [r4]
+ lsls r0, r3, 24
+ lsrs r0, 24
+ cmp r0, 0xF
+ bhi _0807CE64
+ movs r0, 0x6
+ negs r0, r0
+ movs r1, 0x10
+ subs r1, r3
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _0807CE60
+ adds r2, r3
+ ldrh r2, [r2]
+ bl sub_807D304
+ movs r0, 0x1
+ b _0807CE76
+ .align 2, 0
+_0807CE58: .4byte gUnknown_0202F7E8
+_0807CE5C: .4byte 0x000006c7
+_0807CE60: .4byte 0x000006c4
+_0807CE64:
+ movs r2, 0x6
+ negs r2, r2
+ movs r0, 0
+ movs r1, 0x20
+ bl sub_807CEBC
+ movs r0, 0x10
+ strb r0, [r4]
+_0807CE74:
+ movs r0, 0
+_0807CE76:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807CE24
+
+ thumb_func_start sub_807CE7C
+sub_807CE7C: @ 807CE7C
+ push {lr}
+ ldr r2, _0807CEA4
+ ldr r1, _0807CEA8
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ cmp r1, 0x10
+ beq _0807CEB0
+ adds r1, 0x1
+ strb r1, [r0]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0807CEAC
+ adds r1, r2, r3
+ ldrh r1, [r1]
+ bl sub_807D424
+ movs r0, 0x1
+ b _0807CEB2
+ .align 2, 0
+_0807CEA4: .4byte gUnknown_0202F7E8
+_0807CEA8: .4byte 0x000006c7
+_0807CEAC: .4byte 0x000006c4
+_0807CEB0:
+ movs r0, 0
+_0807CEB2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807CE7C
+
+ thumb_func_start nullsub_39
+nullsub_39: @ 807CEB8
+ bx lr
+ thumb_func_end nullsub_39
+
+ thumb_func_start sub_807CEBC
+sub_807CEBC: @ 807CEBC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r4, r3, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ asrs r0, r2, 24
+ cmp r0, 0
+ bgt _0807CEDE
+ b _0807D048
+_0807CEDE:
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r5, r3, 4
+ adds r0, r1, r3
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ cmp r4, r9
+ bcc _0807CEF6
+ b _0807D1A2
+_0807CEF6:
+ ldr r1, [sp]
+ lsls r0, r1, 24
+ asrs r0, 19
+ str r0, [sp, 0x4]
+_0807CEFE:
+ ldr r0, _0807CF30
+ ldr r0, [r0]
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807CF3C
+ lsls r1, r5, 1
+ ldr r0, _0807CF34
+ adds r0, r1, r0
+ ldr r2, _0807CF38
+ adds r1, r2
+ movs r2, 0x8
+ bl CpuFastSet
+ adds r0, r5, 0
+ adds r0, 0x10
+ lsls r0, 16
+ lsrs r5, r0, 16
+ mov r2, r9
+ lsls r2, 16
+ mov r8, r2
+ adds r4, 0x1
+ mov r12, r4
+ b _0807D032
+ .align 2, 0
+_0807CF30: .4byte gUnknown_030006DC
+_0807CF34: .4byte gPlttBufferUnfaded
+_0807CF38: .4byte gPlttBufferFaded
+_0807CF3C:
+ cmp r0, 0x2
+ beq _0807CF50
+ adds r1, r4, 0
+ subs r1, 0x10
+ ldr r2, _0807CF54
+ ldr r3, _0807CF58
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0807CF60
+_0807CF50:
+ ldr r0, _0807CF5C
+ b _0807CF66
+ .align 2, 0
+_0807CF54: .4byte gUnknown_0202F7E8
+_0807CF58: .4byte 0x000006d5
+_0807CF5C: .4byte gUnknown_0202FC48
+_0807CF60:
+ movs r3, 0x80
+ lsls r3, 2
+ adds r0, r2, r3
+_0807CF66:
+ ldr r1, [sp, 0x4]
+ adds r6, r1, r0
+ cmp r4, 0x10
+ beq _0807CF72
+ cmp r4, 0x1B
+ bls _0807CFE2
+_0807CF72:
+ movs r7, 0
+ mov r2, r9
+ lsls r2, 16
+ mov r8, r2
+ adds r4, 0x1
+ mov r12, r4
+ ldr r3, _0807CF9C
+ mov r10, r3
+_0807CF82:
+ adds r2, r5, 0
+ lsls r0, r5, 1
+ ldr r4, _0807CFA0
+ adds r1, r0, r4
+ ldrh r0, [r1]
+ ldr r3, _0807CFA4
+ cmp r0, r3
+ bne _0807CFA8
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _0807CFD6
+ .align 2, 0
+_0807CF9C: .4byte gPlttBufferFaded
+_0807CFA0: .4byte gPlttBufferUnfaded
+_0807CFA4: .4byte 0x00002d9f
+_0807CFA8:
+ ldr r1, [r1]
+ lsls r0, r1, 27
+ lsrs r0, 27
+ adds r0, r6, r0
+ ldrb r4, [r0]
+ lsls r0, r1, 22
+ lsrs r0, 27
+ adds r0, r6, r0
+ ldrb r3, [r0]
+ lsls r1, 17
+ lsrs r1, 27
+ adds r1, r6, r1
+ ldrb r1, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r2, 1
+ add r2, r10
+ lsls r0, r1, 10
+ lsls r1, r3, 5
+ orrs r0, r1
+ orrs r0, r4
+ strh r0, [r2]
+_0807CFD6:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0xF
+ bls _0807CF82
+ b _0807D032
+_0807CFE2:
+ movs r7, 0
+ mov r0, r9
+ lsls r0, 16
+ mov r8, r0
+ adds r4, 0x1
+ mov r12, r4
+ ldr r1, _0807D040
+ mov r10, r1
+_0807CFF2:
+ adds r2, r5, 0
+ lsls r0, r2, 1
+ ldr r3, _0807D044
+ adds r0, r3
+ ldr r1, [r0]
+ lsls r0, r1, 27
+ lsrs r0, 27
+ adds r0, r6, r0
+ ldrb r4, [r0]
+ lsls r0, r1, 22
+ lsrs r0, 27
+ adds r0, r6, r0
+ ldrb r3, [r0]
+ lsls r1, 17
+ lsrs r1, 27
+ adds r1, r6, r1
+ ldrb r1, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r2, 1
+ add r2, r10
+ lsls r0, r1, 10
+ lsls r1, r3, 5
+ orrs r0, r1
+ orrs r0, r4
+ strh r0, [r2]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0xF
+ bls _0807CFF2
+_0807D032:
+ mov r4, r12
+ lsls r0, r4, 16
+ lsrs r4, r0, 16
+ cmp r0, r8
+ bcs _0807D03E
+ b _0807CEFE
+_0807D03E:
+ b _0807D1A2
+ .align 2, 0
+_0807D040: .4byte gPlttBufferFaded
+_0807D044: .4byte gPlttBufferUnfaded
+_0807D048:
+ cmp r0, 0
+ blt _0807D04E
+ b _0807D190
+_0807D04E:
+ mvns r0, r0
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r5, r3, 4
+ adds r0, r1, r3
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ adds r4, r3, 0
+ cmp r4, r9
+ bcc _0807D068
+ b _0807D1A2
+_0807D068:
+ ldr r0, _0807D098
+ ldr r0, [r0]
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807D0A4
+ lsls r1, r5, 1
+ ldr r0, _0807D09C
+ adds r0, r1, r0
+ ldr r2, _0807D0A0
+ adds r1, r2
+ movs r2, 0x8
+ bl CpuFastSet
+ adds r0, r5, 0
+ adds r0, 0x10
+ lsls r0, 16
+ lsrs r5, r0, 16
+ mov r0, r9
+ lsls r0, 16
+ mov r8, r0
+ adds r4, 0x1
+ mov r12, r4
+ b _0807D174
+ .align 2, 0
+_0807D098: .4byte gUnknown_030006DC
+_0807D09C: .4byte gPlttBufferUnfaded
+_0807D0A0: .4byte gPlttBufferFaded
+_0807D0A4:
+ cmp r4, 0x10
+ beq _0807D0AC
+ cmp r4, 0x1B
+ bls _0807D11C
+_0807D0AC:
+ movs r7, 0
+ mov r1, r9
+ lsls r1, 16
+ mov r8, r1
+ adds r4, 0x1
+ mov r12, r4
+ ldr r2, _0807D10C
+ mov r10, r2
+ ldr r3, [sp]
+ lsls r0, r3, 24
+ asrs r6, r0, 11
+_0807D0C2:
+ lsls r1, r5, 1
+ ldr r4, _0807D110
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ lsls r4, r0, 16
+ ldr r2, _0807D114
+ cmp r0, r2
+ beq _0807D0FA
+ ldr r3, _0807D118
+ adds r3, r1, r3
+ lsrs r0, r4, 17
+ movs r1, 0xF
+ ands r0, r1
+ lsrs r1, r4, 18
+ movs r2, 0xF0
+ ands r1, r2
+ orrs r0, r1
+ lsrs r1, r4, 19
+ movs r4, 0xF0
+ lsls r4, 4
+ adds r2, r4, 0
+ ands r1, r2
+ orrs r0, r1
+ lsls r0, 1
+ adds r0, r6
+ add r0, r10
+ ldrh r0, [r0]
+ strh r0, [r3]
+_0807D0FA:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0xF
+ bls _0807D0C2
+ b _0807D174
+ .align 2, 0
+_0807D10C: .4byte 0x02000000
+_0807D110: .4byte gPlttBufferUnfaded
+_0807D114: .4byte 0x00002d9f
+_0807D118: .4byte gPlttBufferFaded
+_0807D11C:
+ movs r7, 0
+ ldr r1, [sp]
+ lsls r0, r1, 24
+ mov r2, r9
+ lsls r2, 16
+ mov r8, r2
+ adds r4, 0x1
+ mov r12, r4
+ ldr r3, _0807D184
+ mov r10, r3
+ asrs r6, r0, 11
+_0807D132:
+ lsls r0, r5, 1
+ ldr r1, _0807D188
+ adds r4, r0, r1
+ ldr r2, _0807D18C
+ adds r0, r2
+ ldrh r3, [r0]
+ lsls r3, 16
+ lsrs r0, r3, 17
+ movs r1, 0xF
+ ands r0, r1
+ lsrs r1, r3, 18
+ movs r2, 0xF0
+ ands r1, r2
+ orrs r0, r1
+ lsrs r3, 19
+ movs r2, 0xF0
+ lsls r2, 4
+ adds r1, r2, 0
+ ands r3, r1
+ orrs r0, r3
+ lsls r0, 1
+ adds r0, r6
+ add r0, r10
+ ldrh r0, [r0]
+ strh r0, [r4]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0xF
+ bls _0807D132
+_0807D174:
+ mov r3, r12
+ lsls r0, r3, 16
+ lsrs r4, r0, 16
+ cmp r0, r8
+ bcs _0807D180
+ b _0807D068
+_0807D180:
+ b _0807D1A2
+ .align 2, 0
+_0807D184: .4byte 0x02000000
+_0807D188: .4byte gPlttBufferFaded
+_0807D18C: .4byte gPlttBufferUnfaded
+_0807D190:
+ lsls r1, r4, 5
+ ldr r0, _0807D1B4
+ adds r0, r1, r0
+ ldr r2, _0807D1B8
+ adds r1, r2
+ mov r4, r9
+ lsls r2, r4, 3
+ bl CpuFastSet
+_0807D1A2:
+ 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
+_0807D1B4: .4byte gPlttBufferUnfaded
+_0807D1B8: .4byte gPlttBufferFaded
+ thumb_func_end sub_807CEBC
+
+ thumb_func_start sub_807D1BC
+sub_807D1BC: @ 807D1BC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ ldr r4, [sp, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ mov r1, sp
+ strh r4, [r1]
+ ldr r1, [sp]
+ lsls r3, r1, 27
+ lsrs r3, 27
+ str r3, [sp, 0x4]
+ lsls r3, r1, 22
+ lsrs r3, 27
+ str r3, [sp, 0x8]
+ lsls r1, 17
+ lsrs r1, 27
+ str r1, [sp, 0xC]
+ lsls r6, r0, 4
+ mov r3, r10
+ adds r1, r3, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r2, r1
+ lsrs r2, 24
+ adds r4, r0, 0
+ cmp r4, r10
+ bcs _0807D2E8
+ lsls r0, r2, 24
+ asrs r0, 19
+ str r0, [sp, 0x10]
+_0807D214:
+ ldr r0, _0807D244
+ ldr r0, [r0]
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807D248
+ mov r0, sp
+ ldrh r3, [r0]
+ adds r0, r6, 0
+ movs r1, 0x10
+ mov r2, r8
+ bl BlendPalette
+ adds r0, r6, 0
+ adds r0, 0x10
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r3, r10
+ lsls r3, 16
+ mov r9, r3
+ adds r4, 0x1
+ mov r12, r4
+ b _0807D2DE
+ .align 2, 0
+_0807D244: .4byte gUnknown_030006DC
+_0807D248:
+ cmp r0, 0x1
+ bne _0807D258
+ ldr r0, _0807D254
+ ldr r1, [sp, 0x10]
+ adds r5, r1, r0
+ b _0807D25E
+ .align 2, 0
+_0807D254: .4byte gUnknown_0202F9E8
+_0807D258:
+ ldr r0, _0807D2F8
+ ldr r3, [sp, 0x10]
+ adds r5, r3, r0
+_0807D25E:
+ movs r7, 0
+ mov r0, r10
+ lsls r0, 16
+ mov r9, r0
+ adds r4, 0x1
+ mov r12, r4
+_0807D26A:
+ adds r4, r6, 0
+ lsls r0, r4, 1
+ ldr r1, _0807D2FC
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r0, r1, 27
+ lsrs r0, 27
+ adds r0, r5, r0
+ ldrb r3, [r0]
+ lsls r0, r1, 22
+ lsrs r0, 27
+ adds r0, r5, r0
+ ldrb r2, [r0]
+ lsls r1, 17
+ lsrs r1, 27
+ adds r1, r5, r1
+ ldrb r1, [r1]
+ ldr r6, [sp, 0x4]
+ subs r0, r6, r3
+ mov r6, r8
+ muls r6, r0
+ adds r0, r6, 0
+ asrs r0, 4
+ adds r3, r0
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r6, [sp, 0x8]
+ subs r0, r6, r2
+ mov r6, r8
+ muls r6, r0
+ adds r0, r6, 0
+ asrs r0, 4
+ adds r2, r0
+ lsls r2, 24
+ ldr r6, [sp, 0xC]
+ subs r0, r6, r1
+ mov r6, r8
+ muls r6, r0
+ adds r0, r6, 0
+ asrs r0, 4
+ adds r1, r0
+ lsls r1, 24
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r4, 1
+ ldr r0, _0807D300
+ adds r4, r0
+ lsrs r1, 14
+ lsrs r2, 19
+ orrs r1, r2
+ orrs r1, r3
+ strh r1, [r4]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0xF
+ bls _0807D26A
+_0807D2DE:
+ mov r1, r12
+ lsls r0, r1, 16
+ lsrs r4, r0, 16
+ cmp r0, r9
+ bcc _0807D214
+_0807D2E8:
+ 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
+_0807D2F8: .4byte gUnknown_0202FC48
+_0807D2FC: .4byte gPlttBufferUnfaded
+_0807D300: .4byte gPlttBufferFaded
+ thumb_func_end sub_807D1BC
+
+ thumb_func_start sub_807D304
+sub_807D304: @ 807D304
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r1, 24
+ lsrs r6, r1, 24
+ mov r1, sp
+ strh r2, [r1]
+ lsls r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ eors r0, r1
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ ldr r0, [sp]
+ lsls r1, r0, 27
+ lsrs r1, 27
+ str r1, [sp, 0x8]
+ lsls r1, r0, 22
+ lsrs r1, 27
+ str r1, [sp, 0xC]
+ lsls r0, 17
+ lsrs r0, 27
+ mov r10, r0
+ movs r5, 0
+ movs r4, 0
+_0807D33C:
+ ldr r0, _0807D364
+ ldr r0, [r0]
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807D368
+ mov r0, sp
+ ldrh r3, [r0]
+ adds r0, r5, 0
+ movs r1, 0x10
+ adds r2, r6, 0
+ bl BlendPalette
+ adds r0, r5, 0
+ adds r0, 0x10
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r4, 0x1
+ mov r8, r4
+ b _0807D3FE
+ .align 2, 0
+_0807D364: .4byte gUnknown_030006DC
+_0807D368:
+ movs r0, 0
+ mov r12, r0
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 24
+ adds r4, 0x1
+ mov r8, r4
+ movs r7, 0x1E
+ asrs r0, 11
+ mov r9, r0
+_0807D37A:
+ adds r4, r5, 0
+ lsls r0, r4, 1
+ ldr r5, _0807D418
+ adds r0, r5
+ ldr r0, [r0]
+ lsls r2, r0, 27
+ lsrs r2, 27
+ lsls r1, r0, 22
+ lsrs r1, 27
+ lsls r0, 17
+ lsrs r0, 27
+ ands r0, r7
+ lsls r0, 7
+ ands r1, r7
+ lsls r1, 3
+ orrs r0, r1
+ ands r2, r7
+ lsls r0, 1
+ orrs r0, r2
+ add r0, r9
+ ldr r1, _0807D41C
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r3, r1, 27
+ lsrs r3, 27
+ lsls r2, r1, 22
+ lsrs r2, 27
+ lsls r1, 17
+ lsrs r1, 27
+ ldr r5, [sp, 0x8]
+ subs r0, r5, r3
+ muls r0, r6
+ asrs r0, 4
+ adds r3, r0
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r5, [sp, 0xC]
+ subs r0, r5, r2
+ muls r0, r6
+ asrs r0, 4
+ adds r2, r0
+ lsls r2, 24
+ mov r5, r10
+ subs r0, r5, r1
+ muls r0, r6
+ asrs r0, 4
+ adds r1, r0
+ lsls r1, 24
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r4, 1
+ ldr r0, _0807D420
+ adds r4, r0
+ lsrs r1, 14
+ lsrs r2, 19
+ orrs r1, r2
+ orrs r1, r3
+ strh r1, [r4]
+ mov r0, r12
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r12, r0
+ cmp r0, 0xF
+ bls _0807D37A
+_0807D3FE:
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1F
+ bls _0807D33C
+ 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
+_0807D418: .4byte gPlttBufferUnfaded
+_0807D41C: .4byte 0x02000000
+_0807D420: .4byte gPlttBufferFaded
+ thumb_func_end sub_807D304
+
+ thumb_func_start sub_807D424
+sub_807D424: @ 807D424
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ adds r3, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r3, 16
+ lsrs r3, 16
+ mov r0, sp
+ strh r3, [r0]
+ movs r1, 0x80
+ lsls r1, 1
+ movs r0, 0
+ adds r2, r7, 0
+ bl BlendPalette
+ ldr r0, [sp]
+ lsls r1, r0, 27
+ lsrs r1, 27
+ str r1, [sp, 0x4]
+ lsls r1, r0, 22
+ lsrs r1, 27
+ str r1, [sp, 0x8]
+ lsls r0, 17
+ lsrs r0, 27
+ mov r10, r0
+ movs r4, 0x10
+_0807D460:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_807D574
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807D510
+ adds r0, r4, 0x1
+ lsls r1, r0, 20
+ lsrs r1, 16
+ mov r12, r1
+ lsls r1, r4, 20
+ lsrs r6, r1, 16
+ mov r9, r0
+ cmp r6, r12
+ bcs _0807D524
+ movs r0, 0x1C
+ mov r8, r0
+_0807D484:
+ lsls r5, r6, 1
+ ldr r0, _0807D508
+ adds r0, r5, r0
+ ldr r2, [r0]
+ lsls r4, r2, 27
+ lsrs r4, 27
+ lsls r3, r2, 22
+ lsrs r3, 27
+ lsls r2, 17
+ lsrs r2, 27
+ mov r0, r8
+ subs r1, r0, r4
+ lsls r0, r1, 1
+ adds r0, r1
+ asrs r0, 2
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r1, 0x1F
+ subs r1, r3
+ lsls r0, r1, 1
+ adds r0, r1
+ asrs r0, 2
+ adds r3, r0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r8
+ subs r1, r0, r2
+ lsls r0, r1, 1
+ adds r0, r1
+ asrs r0, 2
+ adds r2, r0
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r1, [sp, 0x4]
+ subs r0, r1, r4
+ muls r0, r7
+ asrs r0, 4
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, [sp, 0x8]
+ subs r0, r1, r3
+ muls r0, r7
+ asrs r0, 4
+ adds r3, r0
+ lsls r3, 24
+ mov r1, r10
+ subs r0, r1, r2
+ muls r0, r7
+ asrs r0, 4
+ adds r2, r0
+ lsls r2, 24
+ ldr r0, _0807D50C
+ adds r5, r0
+ lsrs r2, 14
+ lsrs r3, 19
+ orrs r2, r3
+ orrs r2, r4
+ strh r2, [r5]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, r12
+ bcc _0807D484
+ b _0807D524
+ .align 2, 0
+_0807D508: .4byte gPlttBufferUnfaded
+_0807D50C: .4byte gPlttBufferFaded
+_0807D510:
+ lsls r0, r4, 20
+ lsrs r0, 16
+ mov r1, sp
+ ldrh r3, [r1]
+ movs r1, 0x10
+ adds r2, r7, 0
+ bl BlendPalette
+ adds r4, 0x1
+ mov r9, r4
+_0807D524:
+ mov r1, r9
+ lsls r0, r1, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1F
+ bls _0807D460
+ 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_807D424
+
+ thumb_func_start sub_807D540
+sub_807D540: @ 807D540
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r3, _0807D568
+ ldr r0, _0807D56C
+ adds r1, r3, r0
+ ldrb r0, [r1]
+ cmp r0, 0x5
+ bhi _0807D562
+ ldr r4, _0807D570
+ adds r0, r3, r4
+ ldrb r3, [r1]
+ adds r0, r3
+ strb r2, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0807D562:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D568: .4byte gUnknown_0202F7E8
+_0807D56C: .4byte 0x000006fa
+_0807D570: .4byte 0x000006f4
+ thumb_func_end sub_807D540
+
+ thumb_func_start sub_807D574
+sub_807D574: @ 807D574
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r1, 0
+ ldr r2, _0807D59C
+ ldr r4, _0807D5A0
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _0807D5B2
+ ldr r5, _0807D5A4
+ adds r4, r2, r5
+ adds r2, r0, 0
+_0807D58E:
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, r3
+ bne _0807D5A8
+ movs r0, 0x1
+ b _0807D5B4
+ .align 2, 0
+_0807D59C: .4byte gUnknown_0202F7E8
+_0807D5A0: .4byte 0x000006fa
+_0807D5A4: .4byte 0x000006f4
+_0807D5A8:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r2
+ bcc _0807D58E
+_0807D5B2:
+ movs r0, 0
+_0807D5B4:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807D574
+
+ thumb_func_start sub_807D5BC
+sub_807D5BC: @ 807D5BC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r5, _0807D5E8
+ ldr r1, _0807D5EC
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _0807D5E2
+ lsls r2, r4, 24
+ asrs r2, 24
+ movs r0, 0
+ movs r1, 0x20
+ bl sub_807CEBC
+ movs r1, 0xD8
+ lsls r1, 3
+ adds r0, r5, r1
+ strb r4, [r0]
+_0807D5E2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D5E8: .4byte gUnknown_0202F7E8
+_0807D5EC: .4byte 0x000006c6
+ thumb_func_end sub_807D5BC
+
+ thumb_func_start sub_807D5F0
+sub_807D5F0: @ 807D5F0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldr r3, _0807D638
+ ldr r0, _0807D63C
+ adds r2, r3, r0
+ ldrb r0, [r2]
+ cmp r0, 0x3
+ bne _0807D630
+ movs r1, 0
+ strb r1, [r2]
+ movs r2, 0xD8
+ lsls r2, 3
+ adds r0, r3, r2
+ strb r4, [r0]
+ adds r2, 0x1
+ adds r0, r3, r2
+ strb r5, [r0]
+ adds r2, 0x2
+ adds r0, r3, r2
+ strb r1, [r0]
+ ldr r1, _0807D640
+ adds r0, r3, r1
+ strb r6, [r0]
+ lsls r0, r4, 24
+ asrs r0, 24
+ bl sub_807D5BC
+_0807D630:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D638: .4byte gUnknown_0202F7E8
+_0807D63C: .4byte 0x000006c6
+_0807D640: .4byte 0x000006c2
+ thumb_func_end sub_807D5F0
+
+ thumb_func_start fade_screen
+fade_screen: @ 807D644
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ cmp r0, 0x1
+ beq _0807D67C
+ cmp r0, 0x1
+ bgt _0807D660
+ cmp r0, 0
+ beq _0807D66A
+ b _0807D758
+_0807D660:
+ cmp r2, 0x2
+ beq _0807D670
+ cmp r2, 0x3
+ beq _0807D680
+ b _0807D758
+_0807D66A:
+ movs r4, 0
+ movs r1, 0
+ b _0807D684
+_0807D670:
+ ldr r4, _0807D678
+ movs r1, 0
+ b _0807D684
+ .align 2, 0
+_0807D678: .4byte 0x0000ffff
+_0807D67C:
+ movs r4, 0
+ b _0807D682
+_0807D680:
+ ldr r4, _0807D6A4
+_0807D682:
+ movs r1, 0x1
+_0807D684:
+ ldr r0, _0807D6A8
+ movs r2, 0xDA
+ lsls r2, 3
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ blt _0807D6AC
+ cmp r0, 0x6
+ ble _0807D69E
+ cmp r0, 0xD
+ bgt _0807D6AC
+ cmp r0, 0xB
+ blt _0807D6AC
+_0807D69E:
+ movs r2, 0x1
+ b _0807D6AE
+ .align 2, 0
+_0807D6A4: .4byte 0x0000ffff
+_0807D6A8: .4byte gUnknown_0202F7E8
+_0807D6AC:
+ movs r2, 0
+_0807D6AE:
+ cmp r1, 0
+ beq _0807D6F0
+ cmp r2, 0
+ beq _0807D6C2
+ ldr r0, _0807D6E0
+ ldr r1, _0807D6E4
+ movs r2, 0x80
+ lsls r2, 1
+ bl CpuFastSet
+_0807D6C2:
+ movs r0, 0x1
+ negs r0, r0
+ lsls r1, r5, 24
+ asrs r1, 24
+ str r4, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _0807D6E8
+ ldr r3, _0807D6EC
+ adds r0, r3
+ movs r1, 0x2
+ strb r1, [r0]
+ b _0807D758
+ .align 2, 0
+_0807D6E0: .4byte gPlttBufferFaded
+_0807D6E4: .4byte gPlttBufferUnfaded
+_0807D6E8: .4byte gUnknown_0202F7E8
+_0807D6EC: .4byte 0x000006c6
+_0807D6F0:
+ ldr r1, _0807D708
+ ldr r3, _0807D70C
+ adds r0, r1, r3
+ strh r4, [r0]
+ cmp r2, 0
+ beq _0807D714
+ ldr r0, _0807D710
+ adds r1, r0
+ movs r0, 0
+ strb r0, [r1]
+ b _0807D726
+ .align 2, 0
+_0807D708: .4byte gUnknown_0202F7E8
+_0807D70C: .4byte 0x000006c4
+_0807D710: .4byte 0x000006c7
+_0807D714:
+ movs r0, 0x1
+ negs r0, r0
+ lsls r1, r5, 24
+ asrs r1, 24
+ str r4, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_0807D726:
+ ldr r4, _0807D760
+ ldr r1, _0807D764
+ adds r0, r4, r1
+ movs r1, 0
+ movs r5, 0x1
+ strb r5, [r0]
+ ldr r2, _0807D768
+ adds r0, r4, r2
+ strb r5, [r0]
+ ldr r3, _0807D76C
+ adds r0, r4, r3
+ strb r1, [r0]
+ movs r1, 0xE6
+ lsls r1, 3
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ adds r2, 0x68
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ bl sub_807DB64
+ movs r3, 0xD9
+ lsls r3, 3
+ adds r4, r3
+ strb r5, [r4]
+_0807D758:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D760: .4byte gUnknown_0202F7E8
+_0807D764: .4byte 0x000006c6
+_0807D768: .4byte 0x000006ca
+_0807D76C: .4byte 0x000006cb
+ thumb_func_end fade_screen
+
+ thumb_func_start sub_807D770
+sub_807D770: @ 807D770
+ ldr r0, _0807D784
+ ldr r1, _0807D788
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ bx lr
+ .align 2, 0
+_0807D784: .4byte gUnknown_0202F7E8
+_0807D788: .4byte 0x000006c6
+ thumb_func_end sub_807D770
+
+ thumb_func_start sub_807D78C
+sub_807D78C: @ 807D78C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 8
+ movs r1, 0x80
+ lsls r1, 13
+ adds r0, r1
+ lsrs r4, r0, 16
+ ldr r5, _0807D7CC
+ ldr r2, _0807D7D0
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ adds r1, r5, 0
+ cmp r0, 0x1
+ beq _0807D7D4
+ cmp r0, 0x2
+ beq _0807D820
+ adds r2, 0xA
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ beq _0807D858
+ lsls r0, r4, 24
+ lsrs r0, 24
+ subs r2, 0x10
+ adds r1, r2
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ movs r1, 0x1
+ bl sub_807CEBC
+ b _0807D868
+ .align 2, 0
+_0807D7CC: .4byte gUnknown_0202F7E8
+_0807D7D0: .4byte 0x000006c6
+_0807D7D4:
+ ldr r2, _0807D814
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0807D868
+ adds r2, 0x6
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bne _0807D7F0
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_807D540
+_0807D7F0:
+ lsls r0, r4, 20
+ lsrs r4, r0, 16
+ movs r2, 0
+ ldr r6, _0807D818
+ ldr r0, _0807D81C
+ adds r3, r5, r0
+_0807D7FC:
+ adds r0, r4, r2
+ lsls r0, 1
+ adds r0, r6
+ ldrh r1, [r3]
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0xF
+ bls _0807D7FC
+ b _0807D868
+ .align 2, 0
+_0807D814: .4byte 0x000006ca
+_0807D818: .4byte gPlttBufferFaded
+_0807D81C: .4byte 0x000006c4
+_0807D820:
+ lsls r0, r4, 20
+ lsrs r4, r0, 16
+ lsls r1, r4, 1
+ ldr r0, _0807D84C
+ adds r0, r1, r0
+ ldr r2, _0807D850
+ adds r1, r2
+ movs r2, 0x8
+ bl CpuFastSet
+ ldr r0, _0807D854
+ ldrh r2, [r0, 0x4]
+ lsls r2, 21
+ lsrs r2, 27
+ ldrh r3, [r0, 0x6]
+ lsls r3, 17
+ lsrs r3, 17
+ adds r0, r4, 0
+ movs r1, 0x10
+ bl BlendPalette
+ b _0807D868
+ .align 2, 0
+_0807D84C: .4byte gPlttBufferFaded
+_0807D850: .4byte gPlttBufferUnfaded
+_0807D854: .4byte gPaletteFade
+_0807D858:
+ lsls r0, r4, 20
+ lsrs r4, r0, 16
+ ldr r3, _0807D870
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0xC
+ bl BlendPalette
+_0807D868:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D870: .4byte 0x000073fc
+ thumb_func_end sub_807D78C
+
+ thumb_func_start sub_807D874
+sub_807D874: @ 807D874
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0807D890
+ movs r2, 0xD8
+ lsls r2, 3
+ adds r1, r2
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ movs r1, 0x1
+ bl sub_807CEBC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D890: .4byte gUnknown_0202F7E8
+ thumb_func_end sub_807D874
+
+ thumb_func_start unref_sub_807D894
+unref_sub_807D894: @ 807D894
+ push {lr}
+ ldr r1, _0807D8A8
+ ldr r2, _0807D8AC
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0807D8B0
+ movs r0, 0
+ b _0807D8B6
+ .align 2, 0
+_0807D8A8: .4byte gUnknown_0202F7E8
+_0807D8AC: .4byte 0x000006c6
+_0807D8B0:
+ ldr r2, _0807D8BC
+ adds r0, r1, r2
+ ldrb r0, [r0]
+_0807D8B6:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0807D8BC: .4byte 0x000006ca
+ thumb_func_end unref_sub_807D894
+
+ thumb_func_start sub_807D8C0
+sub_807D8C0: @ 807D8C0
+ push {r4,lr}
+ ldr r4, _0807D8E8
+ ldr r1, _0807D8EC
+ adds r4, r1
+ ldrb r1, [r4]
+ lsls r1, 20
+ movs r2, 0x80
+ lsls r2, 17
+ adds r1, r2
+ lsrs r1, 16
+ movs r2, 0x20
+ bl LoadPalette
+ ldrb r0, [r4]
+ bl sub_807D78C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D8E8: .4byte gUnknown_0202F7E8
+_0807D8EC: .4byte 0x000006d4
+ thumb_func_end sub_807D8C0
+
+ thumb_func_start sub_807D8F0
+sub_807D8F0: @ 807D8F0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ mov r8, r1
+ ldrb r4, [r7]
+ cmp r4, 0x6
+ bhi _0807D99A
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _0807D94C
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+ lsls r6, r4, 13
+ ldr r5, _0807D950
+ adds r1, r6, r5
+ bl LZ77UnCompWram
+ subs r0, r4, 0x1
+ cmp r4, 0
+ bne _0807D95C
+ ldr r0, _0807D954
+ strh r0, [r5]
+ movs r2, 0x1
+ adds r4, r5, 0
+ movs r3, 0
+ ldr r5, _0807D958
+_0807D92A:
+ lsls r1, r2, 1
+ adds r1, r3
+ adds r1, r4
+ subs r0, r2, 0x1
+ lsls r0, 1
+ adds r0, r3
+ adds r0, r4
+ ldrh r0, [r0]
+ ldrh r6, [r1]
+ adds r0, r6
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r5
+ bls _0807D92A
+ b _0807D984
+ .align 2, 0
+_0807D94C: .4byte gUnknown_08396FA8
+_0807D950: .4byte 0x02000000
+_0807D954: .4byte 0x00000421
+_0807D958: .4byte 0x00000fff
+_0807D95C:
+ movs r2, 0
+ adds r3, r5, 0
+ adds r5, r6, 0
+ lsls r4, r0, 13
+ ldr r0, _0807D9A4
+ mov r12, r0
+_0807D968:
+ lsls r0, r2, 1
+ adds r1, r0, r5
+ adds r1, r3
+ adds r0, r4
+ adds r0, r3
+ ldrh r0, [r0]
+ ldrh r6, [r1]
+ adds r0, r6
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r12
+ bls _0807D968
+_0807D984:
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x7
+ bne _0807D99A
+ movs r0, 0x20
+ strb r0, [r7]
+ mov r1, r8
+ strb r0, [r1]
+_0807D99A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D9A4: .4byte 0x00000fff
+ thumb_func_end sub_807D8F0
+
+ thumb_func_start sub_807D9A8
+sub_807D9A8: @ 807D9A8
+ ldr r0, _0807D9BC
+ ldr r2, _0807D9C0
+ adds r1, r0, r2
+ movs r2, 0x1
+ strb r2, [r1]
+ ldr r1, _0807D9C4
+ adds r0, r1
+ strb r2, [r0]
+ bx lr
+ .align 2, 0
+_0807D9BC: .4byte gUnknown_0202F7E8
+_0807D9C0: .4byte 0x0000074d
+_0807D9C4: .4byte 0x0000074e
+ thumb_func_end sub_807D9A8
+
+ thumb_func_start sub_807D9C8
+sub_807D9C8: @ 807D9C8
+ push {r4,lr}
+ ldr r1, _0807D9F0
+ ldr r0, _0807D9F4
+ adds r4, r1, r0
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r0, 0x1F
+ bgt _0807D9FC
+ ldr r0, _0807D9F8
+ adds r1, r0
+ adds r0, r4, 0
+ bl sub_807D8F0
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r0, 0x1F
+ bgt _0807D9FC
+ movs r0, 0x1
+ b _0807D9FE
+ .align 2, 0
+_0807D9F0: .4byte gUnknown_0202F7E8
+_0807D9F4: .4byte 0x0000074d
+_0807D9F8: .4byte 0x0000074e
+_0807D9FC:
+ movs r0, 0
+_0807D9FE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807D9C8
+
+ thumb_func_start sub_807DA04
+sub_807DA04: @ 807DA04
+ push {lr}
+ lsls r0, 24
+ asrs r0, 24
+ mvns r0, r0
+ bl sub_807D5BC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807DA04
+
+ thumb_func_start sub_807DA14
+sub_807DA14: @ 807DA14
+ ldr r1, _0807DA3C
+ ldr r2, _0807DA40
+ adds r0, r1, r2
+ movs r2, 0
+ strh r2, [r0]
+ movs r3, 0xE8
+ lsls r3, 3
+ adds r0, r1, r3
+ strh r2, [r0]
+ adds r3, 0x2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldr r0, _0807DA44
+ adds r1, r0
+ strh r2, [r1]
+ ldr r1, _0807DA48
+ movs r0, 0x5
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_0807DA3C: .4byte gUnknown_0202F7E8
+_0807DA40: .4byte 0x0000073c
+_0807DA44: .4byte 0x0000073e
+_0807DA48: .4byte gUnknown_0202FF58
+ thumb_func_end sub_807DA14
+
+ thumb_func_start sub_807DA4C
+sub_807DA4C: @ 807DA4C
+ push {r4-r7,lr}
+ ldr r5, _0807DA68
+ ldr r0, _0807DA6C
+ adds r7, r5, r0
+ movs r1, 0
+ ldrsh r2, [r7, r1]
+ cmp r2, 0x1
+ beq _0807DAC8
+ cmp r2, 0x1
+ bgt _0807DA70
+ cmp r2, 0
+ beq _0807DA76
+ b _0807DB54
+ .align 2, 0
+_0807DA68: .4byte gUnknown_0202F7E8
+_0807DA6C: .4byte 0x00000742
+_0807DA70:
+ cmp r2, 0x2
+ beq _0807DB1C
+ b _0807DB54
+_0807DA76:
+ movs r3, 0xE8
+ lsls r3, 3
+ adds r6, r5, r3
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+ lsls r0, 16
+ asrs r0, 16
+ ldr r1, _0807DABC
+ ldrh r1, [r1]
+ cmp r0, r1
+ ble _0807DB54
+ strh r2, [r6]
+ ldr r0, _0807DAC0
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ adds r1, r0, 0x1
+ strh r1, [r4]
+ lsls r0, 24
+ asrs r0, 24
+ bl sub_807DA04
+ ldrh r1, [r4]
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x5
+ ble _0807DB54
+ ldr r3, _0807DAC4
+ adds r0, r5, r3
+ strh r1, [r0]
+ movs r0, 0x1
+ strh r0, [r7]
+ movs r0, 0x3C
+ strh r0, [r6]
+ b _0807DB54
+ .align 2, 0
+_0807DABC: .4byte gUnknown_0202FF58
+_0807DAC0: .4byte 0x0000073c
+_0807DAC4: .4byte 0x0000073e
+_0807DAC8:
+ movs r0, 0xE8
+ lsls r0, 3
+ adds r2, r5, r0
+ ldrh r0, [r2]
+ adds r0, 0x3
+ movs r1, 0x7F
+ ands r0, r1
+ strh r0, [r2]
+ ldr r1, _0807DB10
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ subs r0, 0x1
+ asrs r0, 6
+ adds r0, 0x2
+ ldr r2, _0807DB14
+ adds r6, r5, r2
+ adds r2, r0, 0
+ strh r0, [r6]
+ ldr r3, _0807DB18
+ adds r4, r5, r3
+ movs r3, 0
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ beq _0807DB08
+ lsls r0, r2, 24
+ asrs r0, 24
+ bl sub_807DA04
+_0807DB08:
+ ldrh r0, [r6]
+ strh r0, [r4]
+ b _0807DB54
+ .align 2, 0
+_0807DB10: .4byte gSineTable
+_0807DB14: .4byte 0x0000073c
+_0807DB18: .4byte 0x0000073e
+_0807DB1C:
+ movs r0, 0xE8
+ lsls r0, 3
+ adds r2, r5, r0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ movs r6, 0
+ strh r0, [r2]
+ lsls r0, 16
+ asrs r0, 16
+ ldr r1, _0807DB5C
+ ldrh r1, [r1]
+ cmp r0, r1
+ ble _0807DB54
+ strh r6, [r2]
+ ldr r1, _0807DB60
+ adds r4, r5, r1
+ ldrh r0, [r4]
+ subs r0, 0x1
+ strh r0, [r4]
+ lsls r0, 24
+ asrs r0, 24
+ bl sub_807DA04
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ bne _0807DB54
+ strh r6, [r7]
+_0807DB54:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807DB5C: .4byte gUnknown_0202FF58
+_0807DB60: .4byte 0x0000073c
+ thumb_func_end sub_807DA4C
+
+ thumb_func_start sub_807DB64
+sub_807DB64: @ 807DB64
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _0807DB98
+ movs r4, 0xE6
+ lsls r4, 3
+ adds r2, r3, r4
+ strh r0, [r2]
+ adds r4, 0x2
+ adds r2, r3, r4
+ strh r1, [r2]
+ adds r4, 0x2
+ adds r2, r3, r4
+ strh r0, [r2]
+ ldr r2, _0807DB9C
+ adds r3, r2
+ strh r1, [r3]
+ ldr r2, _0807DBA0
+ lsls r1, 8
+ orrs r1, r0
+ strh r1, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807DB98: .4byte gUnknown_0202F7E8
+_0807DB9C: .4byte 0x00000736
+_0807DBA0: .4byte REG_BLDALPHA
+ thumb_func_end sub_807DB64
+
+ thumb_func_start sub_807DBA4
+sub_807DBA4: @ 807DBA4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _0807DBD8
+ ldr r5, _0807DBDC
+ adds r4, r3, r5
+ movs r5, 0
+ strh r0, [r4]
+ ldr r4, _0807DBE0
+ adds r0, r3, r4
+ strh r1, [r0]
+ ldr r1, _0807DBE4
+ adds r0, r3, r1
+ strb r2, [r0]
+ adds r4, 0x3
+ adds r0, r3, r4
+ strb r5, [r0]
+ movs r0, 0xE7
+ lsls r0, 3
+ adds r3, r0
+ strb r5, [r3]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807DBD8: .4byte gUnknown_0202F7E8
+_0807DBDC: .4byte 0x00000734
+_0807DBE0: .4byte 0x00000736
+_0807DBE4: .4byte 0x0000073a
+ thumb_func_end sub_807DBA4
+
+ thumb_func_start sub_807DBE8
+sub_807DBE8: @ 807DBE8
+ push {r4-r6,lr}
+ ldr r0, _0807DC40
+ movs r1, 0xE6
+ lsls r1, 3
+ adds r3, r0, r1
+ ldr r2, [r3]
+ ldr r6, _0807DC44
+ adds r5, r0, r6
+ ldr r1, [r5]
+ adds r4, r0, 0
+ cmp r2, r1
+ beq _0807DCAC
+ ldr r0, _0807DC48
+ adds r2, r4, r0
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ ldr r6, _0807DC4C
+ adds r1, r4, r6
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _0807DC78
+ movs r0, 0
+ strb r0, [r2]
+ movs r0, 0xE7
+ lsls r0, 3
+ adds r1, r4, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0807DC50
+ ldrh r1, [r3]
+ adds r2, r1, 0
+ ldrh r0, [r5]
+ cmp r2, r0
+ bcs _0807DC70
+ adds r0, r1, 0x1
+ b _0807DC76
+ .align 2, 0
+_0807DC40: .4byte gUnknown_0202F7E8
+_0807DC44: .4byte 0x00000734
+_0807DC48: .4byte 0x00000739
+_0807DC4C: .4byte 0x0000073a
+_0807DC50:
+ ldr r1, _0807DC68
+ adds r3, r4, r1
+ ldr r2, _0807DC6C
+ adds r0, r4, r2
+ ldrh r1, [r3]
+ adds r2, r1, 0
+ ldrh r0, [r0]
+ cmp r2, r0
+ bcs _0807DC70
+ adds r0, r1, 0x1
+ b _0807DC76
+ .align 2, 0
+_0807DC68: .4byte 0x00000732
+_0807DC6C: .4byte 0x00000736
+_0807DC70:
+ cmp r2, r0
+ bls _0807DC78
+ subs r0, r1, 0x1
+_0807DC76:
+ strh r0, [r3]
+_0807DC78:
+ ldr r3, _0807DCA0
+ ldr r6, _0807DCA4
+ adds r0, r4, r6
+ ldrh r0, [r0]
+ lsls r0, 8
+ movs r1, 0xE6
+ lsls r1, 3
+ adds r2, r4, r1
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r3]
+ ldr r1, [r2]
+ ldr r2, _0807DCA8
+ adds r0, r4, r2
+ ldr r0, [r0]
+ cmp r1, r0
+ beq _0807DCAC
+ movs r0, 0
+ b _0807DCAE
+ .align 2, 0
+_0807DCA0: .4byte REG_BLDALPHA
+_0807DCA4: .4byte 0x00000732
+_0807DCA8: .4byte 0x00000734
+_0807DCAC:
+ movs r0, 0x1
+_0807DCAE:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807DBE8
+
+ thumb_func_start unref_sub_807DCB4
+unref_sub_807DCB4: @ 807DCB4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ cmp r0, 0x9
+ bhi _0807DD46
+ lsls r0, 2
+ ldr r1, _0807DCCC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0807DCCC: .4byte _0807DCD0
+ .align 2, 0
+_0807DCD0:
+ .4byte _0807DCF8
+ .4byte _0807DD00
+ .4byte _0807DD08
+ .4byte _0807DD10
+ .4byte _0807DD18
+ .4byte _0807DD20
+ .4byte _0807DD28
+ .4byte _0807DD30
+ .4byte _0807DD38
+ .4byte _0807DD40
+_0807DCF8:
+ movs r0, 0x1
+ bl sub_808070C
+ b _0807DD46
+_0807DD00:
+ movs r0, 0x2
+ bl sub_808070C
+ b _0807DD46
+_0807DD08:
+ movs r0, 0x3
+ bl sub_808070C
+ b _0807DD46
+_0807DD10:
+ movs r0, 0x4
+ bl sub_808070C
+ b _0807DD46
+_0807DD18:
+ movs r0, 0x5
+ bl sub_808070C
+ b _0807DD46
+_0807DD20:
+ movs r0, 0x6
+ bl sub_808070C
+ b _0807DD46
+_0807DD28:
+ movs r0, 0x9
+ bl sub_808070C
+ b _0807DD46
+_0807DD30:
+ movs r0, 0x7
+ bl sub_808070C
+ b _0807DD46
+_0807DD38:
+ movs r0, 0x8
+ bl sub_808070C
+ b _0807DD46
+_0807DD40:
+ movs r0, 0xB
+ bl sub_808070C
+_0807DD46:
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_807DCB4
+
+ thumb_func_start weather_get_current
+weather_get_current: @ 807DD4C
+ ldr r0, _0807DD58
+ movs r1, 0xDA
+ lsls r1, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_0807DD58: .4byte gUnknown_0202F7E8
+ thumb_func_end weather_get_current
+
+ thumb_func_start sub_807DD5C
+sub_807DD5C: @ 807DD5C
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r1, _0807DD7C
+ ldr r3, _0807DD80
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _0807DDAE
+ cmp r2, 0x53
+ beq _0807DD94
+ cmp r2, 0x53
+ bgt _0807DD84
+ cmp r2, 0x51
+ beq _0807DDA0
+ b _0807DDAE
+ .align 2, 0
+_0807DD7C: .4byte gUnknown_0202F7E8
+_0807DD80: .4byte 0x000006c6
+_0807DD84:
+ cmp r2, 0x55
+ bne _0807DDAE
+ ldr r0, _0807DD90
+ adds r1, r0
+ movs r0, 0
+ b _0807DDA6
+ .align 2, 0
+_0807DD90: .4byte 0x000006dd
+_0807DD94:
+ ldr r3, _0807DD9C
+ adds r1, r3
+ movs r0, 0x1
+ b _0807DDA6
+ .align 2, 0
+_0807DD9C: .4byte 0x000006dd
+_0807DDA0:
+ ldr r0, _0807DDB4
+ adds r1, r0
+ movs r0, 0x2
+_0807DDA6:
+ strb r0, [r1]
+ adds r0, r2, 0
+ bl PlaySE
+_0807DDAE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807DDB4: .4byte 0x000006dd
+ thumb_func_end sub_807DD5C
+
+ thumb_func_start play_some_sound
+play_some_sound: @ 807DDB8
+ push {lr}
+ bl IsSpecialSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807DDF6
+ ldr r0, _0807DDE0
+ ldr r1, _0807DDE4
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0807DDE8
+ cmp r0, 0x1
+ bgt _0807DDF0
+ cmp r0, 0
+ bne _0807DDF0
+ movs r0, 0x56
+ bl PlaySE
+ b _0807DDF6
+ .align 2, 0
+_0807DDE0: .4byte gUnknown_0202F7E8
+_0807DDE4: .4byte 0x000006dd
+_0807DDE8:
+ movs r0, 0x54
+ bl PlaySE
+ b _0807DDF6
+_0807DDF0:
+ movs r0, 0x52
+ bl PlaySE
+_0807DDF6:
+ pop {r0}
+ bx r0
+ thumb_func_end play_some_sound
+
+ thumb_func_start sub_807DDFC
+sub_807DDFC: @ 807DDFC
+ ldr r0, _0807DE08
+ ldr r1, _0807DE0C
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_0807DE08: .4byte gUnknown_0202F7E8
+_0807DE0C: .4byte 0x000006d3
+ thumb_func_end sub_807DDFC
+
+ thumb_func_start sub_807DE10
+sub_807DE10: @ 807DE10
+ ldr r0, _0807DE1C
+ ldr r1, _0807DE20
+ adds r0, r1
+ movs r1, 0x2
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_0807DE1C: .4byte gUnknown_0202F7E8
+_0807DE20: .4byte 0x000006c6
+ thumb_func_end sub_807DE10
+
+ thumb_func_start unref_sub_807DE24
+unref_sub_807DE24: @ 807DE24
+ ldr r0, _0807DE30
+ ldr r1, _0807DE34
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_0807DE30: .4byte gUnknown_0202F7E8
+_0807DE34: .4byte 0x000006c6
+ thumb_func_end unref_sub_807DE24
+
+ thumb_func_start sub_807DE38
+sub_807DE38: @ 807DE38
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0807DE5C
+ ldr r5, _0807DE60
+ adds r1, r5, 0
+ movs r2, 0x10
+ bl CpuSet
+ adds r4, r5
+ movs r0, 0
+ strb r0, [r4]
+ ldr r0, _0807DE64
+ str r5, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807DE5C: .4byte gUnknown_083970C8
+_0807DE60: .4byte gUnknown_0202FF38
+_0807DE64: .4byte gUnknown_030006DC
+ thumb_func_end sub_807DE38
+
+ thumb_func_start sub_807DE68
+sub_807DE68: @ 807DE68
+ ldr r1, _0807DE70
+ ldr r0, _0807DE74
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0807DE70: .4byte gUnknown_030006DC
+_0807DE74: .4byte gUnknown_083970C8
+ thumb_func_end sub_807DE68
+
+ thumb_func_start sub_807DE78
+sub_807DE78: @ 807DE78
+ push {lr}
+ ldr r0, _0807DEB0
+ ldr r0, [r0]
+ ldr r2, _0807DEB4
+ adds r1, r0, r2
+ movs r2, 0
+ strb r2, [r1]
+ ldr r1, _0807DEB8
+ adds r3, r0, r1
+ movs r1, 0x14
+ strb r1, [r3]
+ ldr r3, _0807DEBC
+ adds r1, r0, r3
+ strb r2, [r1]
+ subs r3, 0x6
+ adds r1, r0, r3
+ strh r2, [r1]
+ ldr r1, _0807DEC0
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807DEAC
+ movs r0, 0
+ movs r1, 0x10
+ bl sub_807DB64
+_0807DEAC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807DEB0: .4byte gUnknown_08396FC4
+_0807DEB4: .4byte 0x000006c1
+_0807DEB8: .4byte 0x000006c2
+_0807DEBC: .4byte 0x000006d2
+_0807DEC0: .4byte 0x000006de
+ thumb_func_end sub_807DE78
+
+ thumb_func_start sub_807DEC4
+sub_807DEC4: @ 807DEC4
+ push {r4,lr}
+ bl sub_807DE78
+ ldr r0, _0807DEEC
+ ldr r1, [r0]
+ ldr r2, _0807DEF0
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807DEE4
+ adds r4, r1, r2
+_0807DEDA:
+ bl sub_807DEF4
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0807DEDA
+_0807DEE4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807DEEC: .4byte gUnknown_08396FC4
+_0807DEF0: .4byte 0x000006d2
+ thumb_func_end sub_807DEC4
+
+ thumb_func_start sub_807DEF4
+sub_807DEF4: @ 807DEF4
+ push {r4,r5,lr}
+ ldr r0, _0807DF10
+ ldr r5, [r0]
+ ldr r0, _0807DF14
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _0807DF24
+ cmp r0, 0x1
+ bgt _0807DF18
+ cmp r0, 0
+ beq _0807DF1E
+ b _0807DF48
+ .align 2, 0
+_0807DF10: .4byte gUnknown_08396FC4
+_0807DF14: .4byte 0x000006cc
+_0807DF18:
+ cmp r0, 0x2
+ beq _0807DF30
+ b _0807DF48
+_0807DF1E:
+ bl sub_807DFD4
+ b _0807DF42
+_0807DF24:
+ movs r0, 0xC
+ movs r1, 0x8
+ movs r2, 0x1
+ bl sub_807DBA4
+ b _0807DF42
+_0807DF30:
+ bl sub_807DBE8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807DF48
+ ldr r0, _0807DF50
+ adds r1, r5, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_0807DF42:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_0807DF48:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807DF50: .4byte 0x000006d2
+ thumb_func_end sub_807DEF4
+
+ thumb_func_start sub_807DF54
+sub_807DF54: @ 807DF54
+ push {r4,lr}
+ ldr r0, _0807DF6C
+ ldr r0, [r0]
+ ldr r1, _0807DF70
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _0807DF74
+ cmp r0, 0x1
+ beq _0807DF80
+ movs r0, 0
+ b _0807DF96
+ .align 2, 0
+_0807DF6C: .4byte gUnknown_08396FC4
+_0807DF70: .4byte 0x000006ce
+_0807DF74:
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x1
+ bl sub_807DBA4
+ b _0807DF8E
+_0807DF80:
+ bl sub_807DBE8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807DF94
+ bl sub_807E0A0
+_0807DF8E:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_0807DF94:
+ movs r0, 0x1
+_0807DF96:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807DF54
+
+ thumb_func_start sub_807DF9C
+sub_807DF9C: @ 807DF9C
+ ldr r0, _0807DFB4
+ ldr r1, [r0]
+ ldr r0, _0807DFB8
+ adds r2, r1, r0
+ movs r0, 0
+ strb r0, [r2]
+ ldr r0, _0807DFBC
+ adds r1, r0
+ movs r0, 0x14
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0807DFB4: .4byte gUnknown_08396FC4
+_0807DFB8: .4byte 0x000006c1
+_0807DFBC: .4byte 0x000006c2
+ thumb_func_end sub_807DF9C
+
+ thumb_func_start sub_807DFC0
+sub_807DFC0: @ 807DFC0
+ push {lr}
+ bl sub_807DF9C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807DFC0
+
+ thumb_func_start nullsub_55
+nullsub_55: @ 807DFCC
+ bx lr
+ thumb_func_end nullsub_55
+
+ thumb_func_start sub_807DFD0
+sub_807DFD0: @ 807DFD0
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_807DFD0
+
+ thumb_func_start sub_807DFD4
+sub_807DFD4: @ 807DFD4
+ push {r4,r5,lr}
+ ldr r0, _0807E04C
+ ldr r0, [r0]
+ ldr r1, _0807E050
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0807E090
+ ldr r0, _0807E054
+ bl LoadSpriteSheet
+ ldr r0, _0807E058
+ bl sub_807D8C0
+ movs r5, 0
+_0807DFF2:
+ ldr r0, _0807E05C
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0xFF
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _0807E068
+ ldr r0, _0807E04C
+ ldr r1, [r0]
+ lsls r2, r5, 2
+ movs r0, 0xFA
+ lsls r0, 1
+ adds r1, r0
+ adds r1, r2
+ lsls r4, r3, 4
+ adds r4, r3
+ lsls r4, 2
+ ldr r0, _0807E060
+ adds r4, r0
+ str r4, [r1]
+ ldr r0, _0807E064
+ adds r2, r0
+ ldrh r0, [r2]
+ adds r0, 0x7
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r2, 0x2]
+ adds r1, 0x7
+ lsls r1, 16
+ asrs r1, 16
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ bl sub_80603CC
+ adds r4, 0x3E
+ ldrb r0, [r4]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r4]
+ b _0807E07A
+ .align 2, 0
+_0807E04C: .4byte gUnknown_08396FC4
+_0807E050: .4byte 0x000006de
+_0807E054: .4byte gUnknown_0839A9D4
+_0807E058: .4byte gUnknown_08397108
+_0807E05C: .4byte gSpriteTemplate_839A9F0
+_0807E060: .4byte gSprites
+_0807E064: .4byte gUnknown_0839A9C8
+_0807E068:
+ ldr r0, _0807E098
+ ldr r1, [r0]
+ lsls r0, r5, 2
+ movs r2, 0xFA
+ lsls r2, 1
+ adds r1, r2
+ adds r1, r0
+ movs r0, 0
+ str r0, [r1]
+_0807E07A:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x2
+ bls _0807DFF2
+ ldr r0, _0807E098
+ ldr r0, [r0]
+ ldr r1, _0807E09C
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+_0807E090:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807E098: .4byte gUnknown_08396FC4
+_0807E09C: .4byte 0x000006de
+ thumb_func_end sub_807DFD4
+
+ thumb_func_start sub_807E0A0
+sub_807E0A0: @ 807E0A0
+ push {r4,r5,lr}
+ ldr r0, _0807E0EC
+ ldr r1, [r0]
+ ldr r2, _0807E0F0
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0807E0E4
+ movs r4, 0
+ movs r0, 0xFA
+ lsls r0, 1
+ adds r5, r1, r0
+_0807E0B8:
+ lsls r0, r4, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0807E0C6
+ bl DestroySprite
+_0807E0C6:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x2
+ bls _0807E0B8
+ movs r0, 0x90
+ lsls r0, 5
+ bl FreeSpriteTilesByTag
+ ldr r0, _0807E0EC
+ ldr r0, [r0]
+ ldr r1, _0807E0F0
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_0807E0E4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807E0EC: .4byte gUnknown_08396FC4
+_0807E0F0: .4byte 0x000006de
+ thumb_func_end sub_807E0A0
+
+ thumb_func_start sub_807E0F4
+sub_807E0F4: @ 807E0F4
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ movs r1, 0x1
+ ands r0, r1
+ strh r0, [r2, 0x2E]
+ cmp r0, 0
+ beq _0807E10C
+ ldrh r0, [r2, 0x20]
+ subs r0, 0x1
+ strh r0, [r2, 0x20]
+_0807E10C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807E0F4
+
+ thumb_func_start sub_807E110
+sub_807E110: @ 807E110
+ ldr r0, _0807E134
+ ldr r1, [r0]
+ ldr r0, _0807E138
+ adds r3, r1, r0
+ movs r2, 0
+ movs r0, 0
+ strh r0, [r3]
+ ldr r3, _0807E13C
+ adds r0, r1, r3
+ strb r2, [r0]
+ subs r3, 0x11
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _0807E140
+ adds r1, r0
+ strb r2, [r1]
+ bx lr
+ .align 2, 0
+_0807E134: .4byte gUnknown_08396FC4
+_0807E138: .4byte 0x000006cc
+_0807E13C: .4byte 0x000006d2
+_0807E140: .4byte 0x000006c2
+ thumb_func_end sub_807E110
+
+ thumb_func_start sub_807E144
+sub_807E144: @ 807E144
+ push {r4,lr}
+ bl sub_807E110
+ ldr r0, _0807E16C
+ ldr r1, [r0]
+ ldr r2, _0807E170
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807E164
+ adds r4, r1, r2
+_0807E15A:
+ bl sub_807E174
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0807E15A
+_0807E164:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807E16C: .4byte gUnknown_08396FC4
+_0807E170: .4byte 0x000006d2
+ thumb_func_end sub_807E144
+
+ thumb_func_start sub_807E174
+sub_807E174: @ 807E174
+ push {lr}
+ ldr r1, _0807E190
+ ldr r0, [r1]
+ ldr r2, _0807E194
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bhi _0807E250
+ lsls r0, 2
+ ldr r1, _0807E198
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0807E190: .4byte gUnknown_08396FC4
+_0807E194: .4byte 0x000006cc
+_0807E198: .4byte _0807E19C
+ .align 2, 0
+_0807E19C:
+ .4byte _0807E1B0
+ .4byte _0807E1CC
+ .4byte _0807E1E4
+ .4byte _0807E200
+ .4byte _0807E218
+_0807E1B0:
+ ldr r1, [r2]
+ ldr r2, _0807E1C4
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0807E254
+ ldr r0, _0807E1C8
+ adds r1, r0
+ b _0807E238
+ .align 2, 0
+_0807E1C4: .4byte 0x000006c6
+_0807E1C8: .4byte 0x000006cc
+_0807E1CC:
+ bl sub_807D9A8
+ ldr r0, _0807E1DC
+ ldr r1, [r0]
+ ldr r2, _0807E1E0
+ adds r1, r2
+ b _0807E238
+ .align 2, 0
+_0807E1DC: .4byte gUnknown_08396FC4
+_0807E1E0: .4byte 0x000006cc
+_0807E1E4:
+ bl sub_807D9C8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807E254
+ ldr r0, _0807E1F8
+ ldr r1, [r0]
+ ldr r0, _0807E1FC
+ adds r1, r0
+ b _0807E238
+ .align 2, 0
+_0807E1F8: .4byte gUnknown_08396FC4
+_0807E1FC: .4byte 0x000006cc
+_0807E200:
+ bl sub_807DA14
+ ldr r0, _0807E210
+ ldr r1, [r0]
+ ldr r2, _0807E214
+ adds r1, r2
+ b _0807E238
+ .align 2, 0
+_0807E210: .4byte gUnknown_08396FC4
+_0807E214: .4byte 0x000006cc
+_0807E218:
+ bl sub_807DA4C
+ ldr r0, _0807E240
+ ldr r2, [r0]
+ ldr r1, _0807E244
+ adds r0, r2, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x6
+ bne _0807E254
+ ldr r0, _0807E248
+ adds r1, r2, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _0807E24C
+ adds r1, r2, r0
+_0807E238:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0807E254
+ .align 2, 0
+_0807E240: .4byte gUnknown_08396FC4
+_0807E244: .4byte 0x0000073c
+_0807E248: .4byte 0x000006d2
+_0807E24C: .4byte 0x000006cc
+_0807E250:
+ bl sub_807DA4C
+_0807E254:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807E174
+
+ thumb_func_start sub_807E258
+sub_807E258: @ 807E258
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_807E258
+
+ thumb_func_start sub_807E25C
+sub_807E25C: @ 807E25C
+ push {lr}
+ ldr r0, _0807E26C
+ movs r1, 0x50
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807E26C: .4byte task50_0807B6D4
+ thumb_func_end sub_807E25C
+
+ thumb_func_start task50_0807B6D4
+task50_0807B6D4: @ 807E270
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0807E294
+ adds r3, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x4
+ bhi _0807E35E
+ lsls r0, 2
+ ldr r1, _0807E298
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0807E294: .4byte gTasks
+_0807E298: .4byte _0807E29C
+ .align 2, 0
+_0807E29C:
+ .4byte _0807E2B0
+ .4byte _0807E2D2
+ .4byte _0807E300
+ .4byte _0807E334
+ .4byte _0807E354
+_0807E2B0:
+ movs r2, 0
+ strh r2, [r3, 0xA]
+ strh r2, [r3, 0xC]
+ ldr r1, _0807E2F4
+ ldrh r0, [r1]
+ strh r0, [r3, 0xE]
+ ldr r4, _0807E2F8
+ adds r0, r4, 0
+ strh r0, [r1]
+ adds r1, 0x8
+ movs r0, 0x9E
+ strh r0, [r1]
+ ldr r0, _0807E2FC
+ strh r2, [r0]
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+_0807E2D2:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x3
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _0807E2E4
+ movs r0, 0x10
+ strh r0, [r3, 0xA]
+_0807E2E4:
+ ldr r0, _0807E2FC
+ ldrh r1, [r3, 0xA]
+ strh r1, [r0]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0xF
+ ble _0807E35E
+ b _0807E344
+ .align 2, 0
+_0807E2F4: .4byte REG_WININ
+_0807E2F8: .4byte 0x00003f3f
+_0807E2FC: .4byte REG_BLDY
+_0807E300:
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r3, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ ble _0807E35E
+ strh r1, [r3, 0xC]
+ ldrh r0, [r3, 0xA]
+ subs r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _0807E326
+ strh r1, [r3, 0xA]
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+_0807E326:
+ ldr r1, _0807E330
+ ldrh r0, [r3, 0xA]
+ strh r0, [r1]
+ b _0807E35E
+ .align 2, 0
+_0807E330: .4byte REG_BLDY
+_0807E334:
+ ldr r0, _0807E34C
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ ldr r1, _0807E350
+ ldrh r0, [r3, 0xE]
+ strh r0, [r1]
+_0807E344:
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _0807E35E
+ .align 2, 0
+_0807E34C: .4byte REG_BLDCNT
+_0807E350: .4byte REG_WININ
+_0807E354:
+ bl EnableBothScriptContexts
+ adds r0, r4, 0
+ bl DestroyTask
+_0807E35E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end task50_0807B6D4
+
+ thumb_func_start sub_807E364
+sub_807E364: @ 807E364
+ push {r4,lr}
+ ldr r0, _0807E3B4
+ ldr r1, [r0]
+ ldr r2, _0807E3B8
+ adds r0, r1, r2
+ movs r3, 0
+ movs r2, 0
+ strh r2, [r0]
+ ldr r4, _0807E3BC
+ adds r0, r1, r4
+ strb r3, [r0]
+ adds r4, 0x4
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldr r0, _0807E3C0
+ adds r2, r1, r0
+ movs r0, 0x8
+ strb r0, [r2]
+ ldr r2, _0807E3C4
+ adds r0, r1, r2
+ strb r3, [r0]
+ adds r4, 0x3
+ adds r2, r1, r4
+ movs r0, 0xA
+ strb r0, [r2]
+ ldr r0, _0807E3C8
+ adds r2, r1, r0
+ movs r0, 0x3
+ strb r0, [r2]
+ ldr r2, _0807E3CC
+ adds r1, r2
+ movs r0, 0x14
+ strb r0, [r1]
+ movs r0, 0x55
+ bl sub_807DD5C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807E3B4: .4byte gUnknown_08396FC4
+_0807E3B8: .4byte 0x000006cc
+_0807E3BC: .4byte 0x000006d2
+_0807E3C0: .4byte 0x000006db
+_0807E3C4: .4byte 0x000006dc
+_0807E3C8: .4byte 0x000006c1
+_0807E3CC: .4byte 0x000006c2
+ thumb_func_end sub_807E364
+
+ thumb_func_start sub_807E3D0
+sub_807E3D0: @ 807E3D0
+ push {r4,lr}
+ bl sub_807E364
+ ldr r0, _0807E3F8
+ ldr r1, [r0]
+ ldr r2, _0807E3FC
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807E3F0
+ adds r4, r1, r2
+_0807E3E6:
+ bl sub_807E400
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0807E3E6
+_0807E3F0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807E3F8: .4byte gUnknown_08396FC4
+_0807E3FC: .4byte 0x000006d2
+ thumb_func_end sub_807E3D0
+
+ thumb_func_start sub_807E400
+sub_807E400: @ 807E400
+ push {r4,r5,lr}
+ ldr r0, _0807E41C
+ ldr r5, [r0]
+ ldr r0, _0807E420
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _0807E430
+ cmp r0, 0x1
+ bgt _0807E424
+ cmp r0, 0
+ beq _0807E42A
+ b _0807E454
+ .align 2, 0
+_0807E41C: .4byte gUnknown_08396FC4
+_0807E420: .4byte 0x000006cc
+_0807E424:
+ cmp r0, 0x2
+ beq _0807E43C
+ b _0807E454
+_0807E42A:
+ bl sub_807E7A4
+ b _0807E44E
+_0807E430:
+ bl sub_807E7B4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807E454
+ b _0807E44E
+_0807E43C:
+ bl sub_807E8E8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807E454
+ ldr r0, _0807E45C
+ adds r1, r5, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_0807E44E:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_0807E454:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807E45C: .4byte 0x000006d2
+ thumb_func_end sub_807E400
+
+ thumb_func_start sub_807E460
+sub_807E460: @ 807E460
+ push {r4,r5,lr}
+ ldr r0, _0807E47C
+ ldr r2, [r0]
+ ldr r1, _0807E480
+ adds r3, r2, r1
+ ldrh r1, [r3]
+ adds r4, r0, 0
+ cmp r1, 0
+ beq _0807E484
+ cmp r1, 0x1
+ beq _0807E4B8
+ movs r0, 0
+ b _0807E4E6
+ .align 2, 0
+_0807E47C: .4byte gUnknown_08396FC4
+_0807E480: .4byte 0x000006ce
+_0807E484:
+ ldr r5, _0807E4A4
+ adds r0, r2, r5
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _0807E496
+ cmp r0, 0x5
+ beq _0807E496
+ cmp r0, 0xD
+ bne _0807E4AC
+_0807E496:
+ ldr r0, [r4]
+ ldr r1, _0807E4A8
+ adds r0, r1
+ movs r1, 0xFF
+ strh r1, [r0]
+ movs r0, 0
+ b _0807E4E6
+ .align 2, 0
+_0807E4A4: .4byte 0x000006d1
+_0807E4A8: .4byte 0x000006ce
+_0807E4AC:
+ ldr r4, _0807E4D8
+ adds r0, r2, r4
+ strb r1, [r0]
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+_0807E4B8:
+ bl sub_807E8E8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807E4E4
+ bl sub_807E974
+ ldr r0, _0807E4DC
+ ldr r1, [r0]
+ ldr r5, _0807E4E0
+ adds r1, r5
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0
+ b _0807E4E6
+ .align 2, 0
+_0807E4D8: .4byte 0x000006d9
+_0807E4DC: .4byte gUnknown_08396FC4
+_0807E4E0: .4byte 0x000006ce
+_0807E4E4:
+ movs r0, 0x1
+_0807E4E6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807E460
+
+ thumb_func_start sub_807E4EC
+sub_807E4EC: @ 807E4EC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bne _0807E500
+ ldr r0, _0807E5A4
+ strh r0, [r7, 0x30]
+_0807E500:
+ movs r2, 0x30
+ ldrsh r1, [r7, r2]
+ ldr r0, _0807E5A8
+ muls r0, r1
+ ldr r3, _0807E5AC
+ adds r0, r3
+ lsls r0, 1
+ lsrs r0, 17
+ movs r1, 0x96
+ lsls r1, 2
+ bl __umodsi3
+ movs r1, 0
+ mov r8, r1
+ strh r0, [r7, 0x30]
+ ldr r1, _0807E5B0
+ ldr r0, _0807E5B4
+ ldr r5, [r0]
+ ldr r2, _0807E5B8
+ adds r5, r2
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldrh r6, [r0]
+ movs r3, 0x30
+ ldrsh r0, [r7, r3]
+ movs r1, 0x1E
+ bl __modsi3
+ adds r4, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ lsls r0, r4, 3
+ strh r0, [r7, 0x32]
+ movs r1, 0x30
+ ldrsh r0, [r7, r1]
+ movs r1, 0x1E
+ bl __divsi3
+ lsls r0, 16
+ lsls r4, 7
+ strh r4, [r7, 0x32]
+ asrs r0, 9
+ strh r0, [r7, 0x34]
+ ldr r2, _0807E5BC
+ ldrb r1, [r5]
+ lsls r1, 2
+ adds r1, r2
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ muls r1, r6
+ subs r4, r1
+ strh r4, [r7, 0x32]
+ ldrb r1, [r5]
+ lsls r1, 2
+ adds r2, 0x2
+ adds r1, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ muls r1, r6
+ subs r0, r1
+ strh r0, [r7, 0x34]
+ adds r0, r7, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ mov r3, r8
+ strh r3, [r7, 0x36]
+ adds r2, r7, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ strh r6, [r7, 0x2E]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807E5A4: .4byte 0x00000169
+_0807E5A8: .4byte 0x41c64e6d
+_0807E5AC: .4byte 0x00003039
+_0807E5B0: .4byte gUnknown_0839AAC4
+_0807E5B4: .4byte gUnknown_08396FC4
+_0807E5B8: .4byte 0x000006dc
+_0807E5BC: .4byte gUnknown_0839AABC
+ thumb_func_end sub_807E4EC
+
+ thumb_func_start sub_807E5C0
+sub_807E5C0: @ 807E5C0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x36
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0807E69C
+ ldr r3, _0807E634
+ ldr r4, _0807E638
+ ldr r2, [r4]
+ ldr r0, _0807E63C
+ adds r2, r0
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0]
+ ldrh r0, [r5, 0x32]
+ adds r1, r0
+ strh r1, [r5, 0x32]
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r3, 0x2
+ adds r0, r3
+ ldrh r0, [r0]
+ ldrh r2, [r5, 0x34]
+ adds r0, r2
+ strh r0, [r5, 0x34]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r5, 0x20]
+ lsls r0, 16
+ asrs r2, r0, 20
+ strh r2, [r5, 0x22]
+ movs r3, 0x38
+ ldrsh r0, [r5, r3]
+ adds r3, r4, 0
+ cmp r0, 0
+ beq _0807E640
+ adds r0, r1, 0
+ adds r0, 0x8
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 17
+ cmp r0, r1
+ bhi _0807E640
+ adds r1, r2, 0
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ blt _0807E640
+ cmp r1, 0xB0
+ bgt _0807E640
+ adds r0, r5, 0
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ b _0807E64A
+ .align 2, 0
+_0807E634: .4byte gUnknown_0839AABC
+_0807E638: .4byte gUnknown_08396FC4
+_0807E63C: .4byte 0x000006dc
+_0807E640:
+ adds r0, r5, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+_0807E64A:
+ strb r1, [r0]
+ adds r4, r0, 0
+ ldrh r0, [r5, 0x2E]
+ subs r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0807E6BC
+ ldr r0, [r3]
+ ldr r1, _0807E690
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ movs r0, 0x1
+ strh r0, [r5, 0x36]
+ ldr r1, _0807E694
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r1]
+ subs r0, r1
+ strh r0, [r5, 0x20]
+ ldr r1, _0807E698
+ ldrh r0, [r5, 0x22]
+ ldrh r1, [r1]
+ subs r0, r1
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r4]
+ b _0807E6BC
+ .align 2, 0
+_0807E690: .4byte 0x000006dc
+_0807E694: .4byte gSpriteCoordOffsetX
+_0807E698: .4byte gSpriteCoordOffsetY
+_0807E69C:
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0807E6BC
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r5, 0
+ bl sub_807E4EC
+_0807E6BC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807E5C0
+
+ thumb_func_start sub_807E6C4
+sub_807E6C4: @ 807E6C4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0807E6E4
+ adds r0, r4, 0
+ bl sub_807E4EC
+ ldr r0, _0807E6E0
+ str r0, [r4, 0x1C]
+ b _0807E6E8
+ .align 2, 0
+_0807E6E0: .4byte sub_807E5C0
+_0807E6E4:
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+_0807E6E8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807E6C4
+
+ thumb_func_start sub_807E6F0
+sub_807E6F0: @ 807E6F0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ lsls r5, r1, 16
+ lsrs r5, 16
+ ldr r2, _0807E774
+ ldr r0, _0807E778
+ ldr r0, [r0]
+ ldr r1, _0807E77C
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r1, r0, r2
+ ldrh r1, [r1]
+ mov r8, r1
+ adds r2, 0x2
+ adds r0, r2
+ ldrh r4, [r0]
+ add r4, r8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl __divsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl __modsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ subs r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _0807E780
+ cmp r6, r0
+ beq _0807E74E
+ adds r5, r0, 0
+_0807E73E:
+ adds r0, r7, 0
+ bl sub_807E4EC
+ subs r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, r5
+ bne _0807E73E
+_0807E74E:
+ cmp r4, r8
+ bcs _0807E784
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _0807E780
+ cmp r4, r0
+ beq _0807E770
+ adds r5, r0, 0
+_0807E760:
+ adds r0, r7, 0
+ bl sub_807E5C0
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r5
+ bne _0807E760
+_0807E770:
+ movs r0, 0
+ b _0807E798
+ .align 2, 0
+_0807E774: .4byte gUnknown_0839AAC4
+_0807E778: .4byte gUnknown_08396FC4
+_0807E77C: .4byte 0x000006dc
+_0807E780: .4byte 0x0000ffff
+_0807E784:
+ mov r1, r8
+ subs r0, r4, r1
+ strh r0, [r7, 0x2E]
+ adds r2, r7, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x1
+_0807E798:
+ strh r0, [r7, 0x3A]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807E6F0
+
+ thumb_func_start sub_807E7A4
+sub_807E7A4: @ 807E7A4
+ push {lr}
+ ldr r0, _0807E7B0
+ bl LoadSpriteSheet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807E7B0: .4byte gUnknown_0839AACC
+ thumb_func_end sub_807E7A4
+
+ thumb_func_start sub_807E7B4
+sub_807E7B4: @ 807E7B4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _0807E860
+ ldr r4, [r0]
+ ldr r0, _0807E864
+ adds r2, r4, r0
+ ldrb r0, [r2]
+ cmp r0, 0x18
+ bne _0807E7CE
+ b _0807E8D4
+_0807E7CE:
+ ldrb r7, [r2]
+ ldr r0, _0807E868
+ ldr r2, _0807E86C
+ lsls r6, r7, 2
+ adds r2, r6, r2
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ movs r3, 0x2
+ ldrsh r2, [r2, r3]
+ movs r3, 0x4E
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x40
+ beq _0807E87C
+ ldr r3, _0807E870
+ lsls r4, r5, 4
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r1, r3
+ movs r0, 0
+ strh r0, [r1, 0x38]
+ lsls r2, r7, 3
+ adds r0, r2, r7
+ lsls r0, 4
+ adds r0, r7
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ ldr r1, _0807E874
+ mov r10, r6
+ mov r9, r3
+ mov r12, r4
+ mov r8, r2
+ cmp r0, r1
+ ble _0807E832
+ adds r2, r1, 0
+_0807E81A:
+ adds r0, r4, r5
+ lsls r0, 2
+ ldr r6, _0807E870
+ adds r0, r6
+ ldr r3, _0807E878
+ ldrh r6, [r0, 0x30]
+ adds r1, r3, r6
+ strh r1, [r0, 0x30]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, r2
+ bgt _0807E81A
+_0807E832:
+ mov r0, r12
+ adds r4, r0, r5
+ lsls r4, 2
+ add r4, r9
+ adds r0, r4, 0
+ bl sub_807E4EC
+ mov r3, r8
+ adds r1, r3, r7
+ adds r0, r4, 0
+ bl sub_807E6F0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0807E860
+ ldr r0, [r0]
+ add r0, r10
+ str r4, [r0]
+ b _0807E882
+ .align 2, 0
+_0807E860: .4byte gUnknown_08396FC4
+_0807E864: .4byte 0x000006da
+_0807E868: .4byte gSpriteTemplate_839AAA4
+_0807E86C: .4byte gUnknown_0839AA08
+_0807E870: .4byte gSprites
+_0807E874: .4byte 0x00000257
+_0807E878: .4byte 0xfffffda8
+_0807E87C:
+ adds r1, r4, r6
+ movs r0, 0
+ str r0, [r1]
+_0807E882:
+ ldr r0, _0807E8B8
+ ldr r2, [r0]
+ ldr r6, _0807E8BC
+ adds r1, r2, r6
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x18
+ bne _0807E8D8
+ movs r3, 0
+ adds r1, r2, 0
+ ldr r5, _0807E8C0
+ ldr r4, _0807E8C4
+_0807E8A0:
+ lsls r0, r3, 2
+ adds r0, r1, r0
+ ldr r2, [r0]
+ cmp r2, 0
+ beq _0807E8CA
+ movs r6, 0x3A
+ ldrsh r0, [r2, r6]
+ cmp r0, 0
+ bne _0807E8C8
+ str r5, [r2, 0x1C]
+ b _0807E8CA
+ .align 2, 0
+_0807E8B8: .4byte gUnknown_08396FC4
+_0807E8BC: .4byte 0x000006da
+_0807E8C0: .4byte sub_807E5C0
+_0807E8C4: .4byte sub_807E6C4
+_0807E8C8:
+ str r4, [r2, 0x1C]
+_0807E8CA:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x17
+ bls _0807E8A0
+_0807E8D4:
+ movs r0, 0
+ b _0807E8DA
+_0807E8D8:
+ movs r0, 0x1
+_0807E8DA:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807E7B4
+
+ thumb_func_start sub_807E8E8
+sub_807E8E8: @ 807E8E8
+ push {r4-r7,lr}
+ ldr r0, _0807E904
+ ldr r3, [r0]
+ movs r0, 0xDB
+ lsls r0, 3
+ adds r4, r3, r0
+ ldr r1, _0807E908
+ adds r5, r3, r1
+ ldrb r0, [r4]
+ ldrb r7, [r5]
+ cmp r0, r7
+ bne _0807E90C
+ movs r0, 0
+ b _0807E96E
+ .align 2, 0
+_0807E904: .4byte gUnknown_08396FC4
+_0807E908: .4byte 0x000006d9
+_0807E90C:
+ ldr r0, _0807E944
+ adds r2, r3, r0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ movs r6, 0
+ strh r0, [r2]
+ ldr r7, _0807E948
+ adds r1, r3, r7
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _0807E96C
+ strh r6, [r2]
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ ldrb r5, [r5]
+ cmp r1, r5
+ bcs _0807E94C
+ adds r0, 0x1
+ strb r0, [r4]
+ lsls r0, r1, 2
+ adds r0, r3, r0
+ ldr r1, [r0]
+ movs r0, 0x1
+ strh r0, [r1, 0x38]
+ b _0807E96C
+ .align 2, 0
+_0807E944: .4byte 0x000006d6
+_0807E948: .4byte 0x000006db
+_0807E94C:
+ subs r0, 0x1
+ strb r0, [r4]
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r3, r0
+ ldr r0, [r0]
+ strh r6, [r0, 0x38]
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r3, r0
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+_0807E96C:
+ movs r0, 0x1
+_0807E96E:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807E8E8
+
+ thumb_func_start sub_807E974
+sub_807E974: @ 807E974
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r0, _0807E9BC
+ ldr r2, [r0]
+ ldr r3, _0807E9C0
+ adds r1, r2, r3
+ adds r7, r0, 0
+ ldrb r1, [r1]
+ cmp r4, r1
+ bcs _0807E9A6
+ adds r5, r2, 0
+ adds r6, r5, r3
+_0807E98C:
+ lsls r0, r4, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0807E99A
+ bl DestroySprite
+_0807E99A:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrb r0, [r6]
+ cmp r4, r0
+ bcc _0807E98C
+_0807E9A6:
+ ldr r0, [r7]
+ ldr r1, _0807E9C0
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _0807E9C4
+ bl FreeSpriteTilesByTag
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807E9BC: .4byte gUnknown_08396FC4
+_0807E9C0: .4byte 0x000006da
+_0807E9C4: .4byte 0x00001206
+ thumb_func_end sub_807E974
+
+ thumb_func_start sub_807E9C8
+sub_807E9C8: @ 807E9C8
+ push {r4,lr}
+ ldr r0, _0807EA04
+ ldr r1, [r0]
+ ldr r2, _0807EA08
+ adds r0, r1, r2
+ movs r2, 0
+ movs r3, 0
+ strh r3, [r0]
+ ldr r4, _0807EA0C
+ adds r0, r1, r4
+ strb r2, [r0]
+ ldr r0, _0807EA10
+ adds r2, r1, r0
+ movs r0, 0x3
+ strb r0, [r2]
+ subs r4, 0x10
+ adds r2, r1, r4
+ movs r0, 0x14
+ strb r0, [r2]
+ ldr r0, _0807EA14
+ adds r2, r1, r0
+ movs r0, 0x10
+ strb r0, [r2]
+ movs r2, 0xDC
+ lsls r2, 3
+ adds r1, r2
+ strh r3, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807EA04: .4byte gUnknown_08396FC4
+_0807EA08: .4byte 0x000006cc
+_0807EA0C: .4byte 0x000006d2
+_0807EA10: .4byte 0x000006c1
+_0807EA14: .4byte 0x000006e5
+ thumb_func_end sub_807E9C8
+
+ thumb_func_start sub_807EA18
+sub_807EA18: @ 807EA18
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ bl sub_807E9C8
+ ldr r2, _0807EA78
+ ldr r1, [r2]
+ ldr r3, _0807EA7C
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807EA6E
+ mov r8, r2
+ adds r7, r1, r3
+_0807EA34:
+ bl snowflakes_progress2
+ movs r4, 0
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r3, _0807EA80
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcs _0807EA68
+ ldr r0, _0807EA78
+ ldr r5, [r0]
+ adds r6, r5, r3
+_0807EA4E:
+ lsls r1, r4, 2
+ adds r0, r5, 0
+ adds r0, 0x60
+ adds r0, r1
+ ldr r0, [r0]
+ bl sub_807ED48
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrb r0, [r6]
+ cmp r4, r0
+ bcc _0807EA4E
+_0807EA68:
+ ldrb r0, [r7]
+ cmp r0, 0
+ beq _0807EA34
+_0807EA6E:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807EA78: .4byte gUnknown_08396FC4
+_0807EA7C: .4byte 0x000006d2
+_0807EA80: .4byte 0x000006e4
+ thumb_func_end sub_807EA18
+
+ thumb_func_start snowflakes_progress2
+snowflakes_progress2: @ 807EA84
+ push {r4,r5,lr}
+ ldr r0, _0807EAB4
+ ldr r5, [r0]
+ ldr r0, _0807EAB8
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ cmp r0, 0
+ bne _0807EAAC
+ bl snowflakes_progress
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807EAAC
+ ldr r0, _0807EABC
+ adds r1, r5, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_0807EAAC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807EAB4: .4byte gUnknown_08396FC4
+_0807EAB8: .4byte 0x000006cc
+_0807EABC: .4byte 0x000006d2
+ thumb_func_end snowflakes_progress2
+
+ thumb_func_start sub_807EAC0
+sub_807EAC0: @ 807EAC0
+ push {r4,lr}
+ ldr r0, _0807EAD8
+ ldr r2, [r0]
+ ldr r0, _0807EADC
+ adds r3, r2, r0
+ ldrh r1, [r3]
+ cmp r1, 0
+ beq _0807EAE0
+ cmp r1, 0x1
+ beq _0807EAF2
+ movs r0, 0
+ b _0807EB1E
+ .align 2, 0
+_0807EAD8: .4byte gUnknown_08396FC4
+_0807EADC: .4byte 0x000006ce
+_0807EAE0:
+ ldr r4, _0807EB10
+ adds r0, r2, r4
+ strb r1, [r0]
+ subs r4, 0x5
+ adds r0, r2, r4
+ strh r1, [r0]
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+_0807EAF2:
+ bl snowflakes_progress
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807EB1C
+ ldr r0, _0807EB14
+ ldr r1, [r0]
+ ldr r0, _0807EB18
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0
+ b _0807EB1E
+ .align 2, 0
+_0807EB10: .4byte 0x000006e5
+_0807EB14: .4byte gUnknown_08396FC4
+_0807EB18: .4byte 0x000006ce
+_0807EB1C:
+ movs r0, 0x1
+_0807EB1E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807EAC0
+
+ thumb_func_start snowflakes_progress
+snowflakes_progress: @ 807EB24
+ push {r4,lr}
+ ldr r0, _0807EB40
+ ldr r1, [r0]
+ ldr r0, _0807EB44
+ adds r3, r1, r0
+ ldr r4, _0807EB48
+ adds r2, r1, r4
+ ldrb r0, [r3]
+ ldrb r4, [r2]
+ cmp r0, r4
+ bne _0807EB4C
+ movs r0, 0
+ b _0807EB8E
+ .align 2, 0
+_0807EB40: .4byte gUnknown_08396FC4
+_0807EB44: .4byte 0x000006e4
+_0807EB48: .4byte 0x000006e5
+_0807EB4C:
+ movs r0, 0xDC
+ lsls r0, 3
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x24
+ bls _0807EB76
+ movs r0, 0
+ strh r0, [r1]
+ ldrb r0, [r3]
+ ldrb r2, [r2]
+ cmp r0, r2
+ bcs _0807EB72
+ bl snowflake_add
+ b _0807EB76
+_0807EB72:
+ bl snowflake_remove
+_0807EB76:
+ ldr r0, _0807EB94
+ ldr r0, [r0]
+ ldr r2, _0807EB98
+ adds r1, r0, r2
+ ldr r4, _0807EB9C
+ adds r0, r4
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+_0807EB8E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0807EB94: .4byte gUnknown_08396FC4
+_0807EB98: .4byte 0x000006e4
+_0807EB9C: .4byte 0x000006e5
+ thumb_func_end snowflakes_progress
+
+ thumb_func_start snowflake_add
+snowflake_add: @ 807EBA0
+ push {r4-r6,lr}
+ ldr r0, _0807EBF4
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x4E
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _0807EC04
+ ldr r0, _0807EBF8
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, _0807EBFC
+ ldr r5, [r0]
+ ldr r0, _0807EC00
+ adds r6, r5, r0
+ ldrb r0, [r6]
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_807EC40
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r6]
+ adds r1, r0, 0x1
+ strb r1, [r6]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r5, 0x60
+ adds r5, r0
+ str r4, [r5]
+ movs r0, 0x1
+ b _0807EC06
+ .align 2, 0
+_0807EBF4: .4byte gSpriteTemplate_839AB04
+_0807EBF8: .4byte gSprites
+_0807EBFC: .4byte gUnknown_08396FC4
+_0807EC00: .4byte 0x000006e4
+_0807EC04:
+ movs r0, 0
+_0807EC06:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end snowflake_add
+
+ thumb_func_start snowflake_remove
+snowflake_remove: @ 807EC0C
+ push {lr}
+ ldr r0, _0807EC20
+ ldr r1, [r0]
+ ldr r0, _0807EC24
+ adds r2, r1, r0
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _0807EC28
+ movs r0, 0
+ b _0807EC3C
+ .align 2, 0
+_0807EC20: .4byte gUnknown_08396FC4
+_0807EC24: .4byte 0x000006e4
+_0807EC28:
+ subs r0, 0x1
+ strb r0, [r2]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r1, 0x60
+ adds r1, r0
+ ldr r0, [r1]
+ bl DestroySprite
+ movs r0, 0x1
+_0807EC3C:
+ pop {r1}
+ bx r1
+ thumb_func_end snowflake_remove
+
+ thumb_func_start sub_807EC40
+sub_807EC40: @ 807EC40
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ bl Random
+ movs r1, 0x36
+ ldrsh r2, [r5, r1]
+ lsls r1, r2, 2
+ adds r1, r2
+ movs r2, 0x7
+ ands r1, r2
+ lsls r4, r1, 4
+ subs r4, r1
+ lsls r4, 1
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1E
+ bl __umodsi3
+ adds r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r1, _0807ECE4
+ adds r0, r5, 0
+ adds r0, 0x29
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r1, [r1]
+ adds r0, r1
+ movs r2, 0x3
+ negs r2, r2
+ adds r1, r2, 0
+ subs r1, r0
+ movs r7, 0
+ strh r1, [r5, 0x22]
+ ldr r1, _0807ECE8
+ adds r0, r5, 0
+ adds r0, 0x28
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r1, [r1]
+ adds r0, r1
+ subs r4, r0
+ strh r4, [r5, 0x20]
+ movs r1, 0x22
+ ldrsh r0, [r5, r1]
+ lsls r0, 7
+ strh r0, [r5, 0x2E]
+ strh r7, [r5, 0x24]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r6, r0, 0
+ movs r4, 0x3
+ ands r4, r6
+ lsls r0, r4, 2
+ adds r0, r4
+ adds r0, 0x40
+ strh r0, [r5, 0x30]
+ strh r0, [r5, 0x3C]
+ movs r1, 0x1
+ bics r1, r6
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ strh r7, [r5, 0x34]
+ movs r0, 0x1
+ cmp r4, 0
+ bne _0807ECD0
+ movs r0, 0x2
+_0807ECD0:
+ strh r0, [r5, 0x32]
+ movs r0, 0x1F
+ ands r0, r6
+ adds r0, 0xD2
+ strh r0, [r5, 0x3A]
+ strh r7, [r5, 0x38]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807ECE4: .4byte gSpriteCoordOffsetY
+_0807ECE8: .4byte gSpriteCoordOffsetX
+ thumb_func_end sub_807EC40
+
+ thumb_func_start sub_807ECEC
+sub_807ECEC: @ 807ECEC
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, _0807ED38
+ ldr r0, [r0]
+ ldr r1, _0807ED3C
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0x12
+ bls _0807ED32
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _0807ED40
+ str r0, [r3, 0x1C]
+ ldr r1, _0807ED44
+ adds r0, r3, 0
+ adds r0, 0x29
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r1, [r1]
+ adds r0, r1
+ movs r1, 0xFA
+ subs r1, r0
+ movs r2, 0
+ strh r1, [r3, 0x22]
+ movs r1, 0x22
+ ldrsh r0, [r3, r1]
+ lsls r0, 7
+ strh r0, [r3, 0x2E]
+ strh r2, [r4]
+_0807ED32:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807ED38: .4byte gUnknown_08396FC4
+_0807ED3C: .4byte 0x000006e2
+_0807ED40: .4byte sub_807ED48
+_0807ED44: .4byte gSpriteCoordOffsetY
+ thumb_func_end sub_807ECEC
+
+ thumb_func_start sub_807ED48
+sub_807ED48: @ 807ED48
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x2E]
+ adds r0, r1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 23
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x34]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ ldr r1, _0807EDC0
+ movs r3, 0x34
+ ldrsh r0, [r4, r3]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _0807ED7A
+ adds r0, 0x3F
+_0807ED7A:
+ asrs r0, 6
+ strh r0, [r4, 0x24]
+ adds r0, r4, 0
+ adds r0, 0x28
+ movs r5, 0
+ ldrsb r5, [r0, r5]
+ ldrh r0, [r4, 0x20]
+ adds r0, r5
+ ldr r1, _0807EDC4
+ ldrh r1, [r1]
+ adds r3, r1, r0
+ ldr r2, _0807EDC8
+ adds r0, r2, 0
+ ands r3, r0
+ adds r2, r3, 0
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r2
+ cmp r0, 0
+ beq _0807EDAC
+ ldr r3, _0807EDCC
+ adds r0, r3, 0
+ orrs r2, r0
+ lsls r0, r2, 16
+ lsrs r3, r0, 16
+_0807EDAC:
+ lsls r0, r3, 16
+ asrs r0, 16
+ movs r2, 0x3
+ negs r2, r2
+ cmp r0, r2
+ bge _0807EDD0
+ adds r1, r5
+ movs r0, 0xF2
+ subs r0, r1
+ b _0807EDD8
+ .align 2, 0
+_0807EDC0: .4byte gSineTable
+_0807EDC4: .4byte gSpriteCoordOffsetX
+_0807EDC8: .4byte 0x000001ff
+_0807EDCC: .4byte 0xffffff00
+_0807EDD0:
+ cmp r0, 0xF2
+ ble _0807EDDA
+ adds r0, r1, r5
+ subs r0, r2, r0
+_0807EDD8:
+ strh r0, [r4, 0x20]
+_0807EDDA:
+ adds r0, r4, 0
+ adds r0, 0x29
+ movs r3, 0
+ ldrsb r3, [r0, r3]
+ ldrh r0, [r4, 0x22]
+ adds r0, r3
+ ldr r1, _0807EE18
+ ldrh r1, [r1]
+ adds r2, r1, r0
+ movs r0, 0xFF
+ ands r2, r0
+ adds r0, r2, 0
+ subs r0, 0xA4
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x6
+ bhi _0807EE1C
+ adds r1, r3
+ movs r0, 0xFA
+ subs r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x22]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ lsls r0, 7
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x38]
+ movs r0, 0xDC
+ strh r0, [r4, 0x3A]
+ b _0807EE48
+ .align 2, 0
+_0807EE18: .4byte gSpriteCoordOffsetY
+_0807EE1C:
+ adds r0, r2, 0
+ subs r0, 0xF3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x6
+ bhi _0807EE48
+ movs r1, 0
+ movs r0, 0xA3
+ strh r0, [r4, 0x22]
+ lsls r0, 7
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x38]
+ movs r0, 0xDC
+ strh r0, [r4, 0x3A]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0807EE7C
+ str r0, [r4, 0x1C]
+_0807EE48:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x3A
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bne _0807EE74
+ adds r0, r4, 0
+ bl sub_807EC40
+ movs r0, 0xFA
+ strh r0, [r4, 0x22]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0807EE7C
+ str r0, [r4, 0x1C]
+_0807EE74:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807EE7C: .4byte sub_807ECEC
+ thumb_func_end sub_807ED48
+
+ thumb_func_start sub_807EE80
+sub_807EE80: @ 807EE80
+ push {r4,r5,lr}
+ ldr r0, _0807EED8
+ ldr r1, [r0]
+ ldr r2, _0807EEDC
+ adds r0, r1, r2
+ movs r3, 0
+ movs r2, 0
+ strh r2, [r0]
+ ldr r5, _0807EEE0
+ adds r4, r1, r5
+ strb r3, [r4]
+ adds r5, 0x4
+ adds r0, r1, r5
+ strh r2, [r0]
+ ldr r0, _0807EEE4
+ adds r2, r1, r0
+ movs r0, 0x4
+ strb r0, [r2]
+ ldr r2, _0807EEE8
+ adds r0, r1, r2
+ strb r3, [r0]
+ adds r5, 0x3
+ adds r2, r1, r5
+ movs r0, 0x10
+ strb r0, [r2]
+ ldr r0, _0807EEEC
+ adds r2, r1, r0
+ movs r0, 0x3
+ strb r0, [r2]
+ subs r5, 0x17
+ adds r2, r1, r5
+ movs r0, 0x14
+ strb r0, [r2]
+ strb r3, [r4]
+ ldr r0, _0807EEF0
+ adds r1, r0
+ strb r3, [r1]
+ movs r0, 0x51
+ bl sub_807DD5C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807EED8: .4byte gUnknown_08396FC4
+_0807EEDC: .4byte 0x000006cc
+_0807EEE0: .4byte 0x000006d2
+_0807EEE4: .4byte 0x000006db
+_0807EEE8: .4byte 0x000006dc
+_0807EEEC: .4byte 0x000006c1
+_0807EEF0: .4byte 0x000006ed
+ thumb_func_end sub_807EE80
+
+ thumb_func_start sub_807EEF4
+sub_807EEF4: @ 807EEF4
+ push {r4,lr}
+ bl sub_807EE80
+ ldr r0, _0807EF1C
+ ldr r1, [r0]
+ ldr r2, _0807EF20
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807EF14
+ adds r4, r1, r2
+_0807EF0A:
+ bl sub_807EFC0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0807EF0A
+_0807EF14:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807EF1C: .4byte gUnknown_08396FC4
+_0807EF20: .4byte 0x000006d2
+ thumb_func_end sub_807EEF4
+
+ thumb_func_start sub_807EF24
+sub_807EF24: @ 807EF24
+ push {r4,r5,lr}
+ ldr r0, _0807EF78
+ ldr r1, [r0]
+ ldr r2, _0807EF7C
+ adds r0, r1, r2
+ movs r4, 0
+ movs r2, 0
+ strh r2, [r0]
+ ldr r5, _0807EF80
+ adds r3, r1, r5
+ strb r4, [r3]
+ adds r5, 0x4
+ adds r0, r1, r5
+ strh r2, [r0]
+ ldr r0, _0807EF84
+ adds r2, r1, r0
+ movs r0, 0x4
+ strb r0, [r2]
+ adds r5, 0x6
+ adds r2, r1, r5
+ movs r0, 0x1
+ strb r0, [r2]
+ ldr r0, _0807EF88
+ adds r2, r1, r0
+ movs r0, 0x18
+ strb r0, [r2]
+ subs r5, 0x1B
+ adds r2, r1, r5
+ movs r0, 0x3
+ strb r0, [r2]
+ ldr r0, _0807EF8C
+ adds r1, r0
+ movs r0, 0x14
+ strb r0, [r1]
+ strb r4, [r3]
+ movs r0, 0x53
+ bl sub_807DD5C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807EF78: .4byte gUnknown_08396FC4
+_0807EF7C: .4byte 0x000006cc
+_0807EF80: .4byte 0x000006d2
+_0807EF84: .4byte 0x000006db
+_0807EF88: .4byte 0x000006d9
+_0807EF8C: .4byte 0x000006c2
+ thumb_func_end sub_807EF24
+
+ thumb_func_start sub_807EF90
+sub_807EF90: @ 807EF90
+ push {r4,lr}
+ bl sub_807EF24
+ ldr r0, _0807EFB8
+ ldr r1, [r0]
+ ldr r2, _0807EFBC
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807EFB0
+ adds r4, r1, r2
+_0807EFA6:
+ bl sub_807EFC0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0807EFA6
+_0807EFB0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807EFB8: .4byte gUnknown_08396FC4
+_0807EFBC: .4byte 0x000006d2
+ thumb_func_end sub_807EF90
+
+ thumb_func_start sub_807EFC0
+sub_807EFC0: @ 807EFC0
+ push {r4,r5,lr}
+ bl sub_807F434
+ ldr r0, _0807EFE0
+ ldr r0, [r0]
+ ldr r1, _0807EFE4
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0xE
+ bls _0807EFD6
+ b _0807F336
+_0807EFD6:
+ lsls r0, 2
+ ldr r1, _0807EFE8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0807EFE0: .4byte gUnknown_08396FC4
+_0807EFE4: .4byte 0x000006cc
+_0807EFE8: .4byte _0807EFEC
+ .align 2, 0
+_0807EFEC:
+ .4byte _0807F028
+ .4byte _0807F044
+ .4byte _0807F068
+ .4byte _0807F098
+ .4byte _0807F0BC
+ .4byte _0807F0EC
+ .4byte _0807F11C
+ .4byte _0807F148
+ .4byte _0807F166
+ .4byte _0807F1C4
+ .4byte _0807F248
+ .4byte _0807F270
+ .4byte _0807F2A0
+ .4byte _0807F2E4
+ .4byte _0807F318
+_0807F028:
+ bl sub_807E7A4
+ ldr r0, _0807F03C
+ ldr r1, [r0]
+ ldr r2, _0807F040
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ b _0807F334
+ .align 2, 0
+_0807F03C: .4byte gUnknown_08396FC4
+_0807F040: .4byte 0x000006cc
+_0807F044:
+ bl sub_807E7B4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807F050
+ b _0807F336
+_0807F050:
+ ldr r0, _0807F060
+ ldr r1, [r0]
+ ldr r3, _0807F064
+ adds r1, r3
+ ldrh r0, [r1]
+ adds r0, 0x1
+ b _0807F334
+ .align 2, 0
+_0807F060: .4byte gUnknown_08396FC4
+_0807F064: .4byte 0x000006cc
+_0807F068:
+ bl sub_807E8E8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807F074
+ b _0807F336
+_0807F074:
+ ldr r0, _0807F08C
+ ldr r1, [r0]
+ ldr r0, _0807F090
+ adds r2, r1, r0
+ movs r0, 0x1
+ strb r0, [r2]
+ ldr r2, _0807F094
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ b _0807F334
+ .align 2, 0
+_0807F08C: .4byte gUnknown_08396FC4
+_0807F090: .4byte 0x000006d2
+_0807F094: .4byte 0x000006cc
+_0807F098:
+ ldr r0, _0807F0B0
+ ldr r1, [r0]
+ ldr r3, _0807F0B4
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807F0A8
+ b _0807F336
+_0807F0A8:
+ ldr r0, _0807F0B8
+ adds r1, r0
+ movs r0, 0x6
+ b _0807F334
+ .align 2, 0
+_0807F0B0: .4byte gUnknown_08396FC4
+_0807F0B4: .4byte 0x000006c6
+_0807F0B8: .4byte 0x000006cc
+_0807F0BC:
+ ldr r0, _0807F10C
+ ldr r4, [r0]
+ ldr r2, _0807F110
+ adds r1, r4, r2
+ movs r0, 0x1
+ strb r0, [r1]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r5, 0xB4
+ lsls r5, 1
+ adds r1, r5, 0
+ bl __umodsi3
+ adds r0, r5
+ ldr r3, _0807F114
+ adds r1, r4, r3
+ strh r0, [r1]
+ ldr r0, _0807F118
+ adds r4, r0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_0807F0EC:
+ ldr r0, _0807F10C
+ ldr r2, [r0]
+ ldr r3, _0807F114
+ adds r1, r2, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0807F102
+ b _0807F336
+_0807F102:
+ ldr r0, _0807F118
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ b _0807F334
+ .align 2, 0
+_0807F10C: .4byte gUnknown_08396FC4
+_0807F110: .4byte 0x000006ea
+_0807F114: .4byte 0x000006e6
+_0807F118: .4byte 0x000006cc
+_0807F11C:
+ ldr r0, _0807F13C
+ ldr r4, [r0]
+ ldr r1, _0807F140
+ adds r0, r4, r1
+ movs r5, 0x1
+ strb r5, [r0]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ands r0, r5
+ ldr r2, _0807F144
+ adds r1, r4, r2
+ strb r0, [r1]
+ b _0807F1A4
+ .align 2, 0
+_0807F13C: .4byte gUnknown_08396FC4
+_0807F140: .4byte 0x000006ea
+_0807F144: .4byte 0x000006eb
+_0807F148:
+ bl Random
+ ldr r1, _0807F1B0
+ ldr r2, [r1]
+ movs r1, 0x1
+ ands r1, r0
+ adds r1, 0x1
+ ldr r3, _0807F1B4
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldr r0, _0807F1B8
+ adds r2, r0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+_0807F166:
+ movs r0, 0x13
+ bl sub_807D5BC
+ ldr r0, _0807F1B0
+ ldr r1, [r0]
+ ldr r2, _0807F1BC
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807F18A
+ ldr r3, _0807F1B4
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0807F18A
+ movs r0, 0x14
+ bl sub_807F3F8
+_0807F18A:
+ bl Random
+ ldr r1, _0807F1B0
+ ldr r4, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ adds r0, 0x6
+ ldr r2, _0807F1C0
+ adds r1, r4, r2
+ strh r0, [r1]
+_0807F1A4:
+ ldr r3, _0807F1B8
+ adds r4, r3
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _0807F336
+ .align 2, 0
+_0807F1B0: .4byte gUnknown_08396FC4
+_0807F1B4: .4byte 0x000006ec
+_0807F1B8: .4byte 0x000006cc
+_0807F1BC: .4byte 0x000006eb
+_0807F1C0: .4byte 0x000006e6
+_0807F1C4:
+ ldr r0, _0807F210
+ ldr r4, [r0]
+ ldr r0, _0807F214
+ adds r5, r4, r0
+ ldrh r0, [r5]
+ subs r0, 0x1
+ strh r0, [r5]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0807F1DA
+ b _0807F336
+_0807F1DA:
+ movs r0, 0x3
+ bl sub_807D5BC
+ ldr r2, _0807F218
+ adds r1, r4, r2
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r3, _0807F21C
+ adds r1, r4, r3
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807F224
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF
+ ands r0, r1
+ adds r0, 0x3C
+ strh r0, [r5]
+ ldr r0, _0807F220
+ adds r1, r4, r0
+ movs r0, 0xA
+ b _0807F334
+ .align 2, 0
+_0807F210: .4byte gUnknown_08396FC4
+_0807F214: .4byte 0x000006e6
+_0807F218: .4byte 0x000006ea
+_0807F21C: .4byte 0x000006ec
+_0807F220: .4byte 0x000006cc
+_0807F224:
+ ldr r1, _0807F234
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807F23C
+ ldr r2, _0807F238
+ adds r1, r4, r2
+ b _0807F332
+ .align 2, 0
+_0807F234: .4byte 0x000006eb
+_0807F238: .4byte 0x000006cc
+_0807F23C:
+ ldr r3, _0807F244
+ adds r1, r4, r3
+ movs r0, 0xB
+ b _0807F334
+ .align 2, 0
+_0807F244: .4byte 0x000006cc
+_0807F248:
+ ldr r0, _0807F264
+ ldr r2, [r0]
+ ldr r0, _0807F268
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0807F336
+ ldr r3, _0807F26C
+ adds r1, r2, r3
+ movs r0, 0x8
+ b _0807F334
+ .align 2, 0
+_0807F264: .4byte gUnknown_08396FC4
+_0807F268: .4byte 0x000006e6
+_0807F26C: .4byte 0x000006cc
+_0807F270:
+ bl Random
+ ldr r1, _0807F294
+ ldr r2, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF
+ ands r0, r1
+ adds r0, 0x3C
+ ldr r3, _0807F298
+ adds r1, r2, r3
+ strh r0, [r1]
+ ldr r0, _0807F29C
+ adds r2, r0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ b _0807F336
+ .align 2, 0
+_0807F294: .4byte gUnknown_08396FC4
+_0807F298: .4byte 0x000006e6
+_0807F29C: .4byte 0x000006cc
+_0807F2A0:
+ ldr r0, _0807F2D8
+ ldr r5, [r0]
+ ldr r1, _0807F2DC
+ adds r4, r5, r1
+ ldrh r0, [r4]
+ subs r0, 0x1
+ strh r0, [r4]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0807F336
+ movs r0, 0x64
+ bl sub_807F3F8
+ movs r0, 0x13
+ bl sub_807D5BC
+ bl Random
+ movs r1, 0xF
+ ands r1, r0
+ adds r1, 0x1E
+ strh r1, [r4]
+ ldr r2, _0807F2E0
+ adds r1, r5, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ b _0807F334
+ .align 2, 0
+_0807F2D8: .4byte gUnknown_08396FC4
+_0807F2DC: .4byte 0x000006e6
+_0807F2E0: .4byte 0x000006cc
+_0807F2E4:
+ ldr r0, _0807F30C
+ ldr r4, [r0]
+ ldr r3, _0807F310
+ adds r1, r4, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0807F336
+ movs r0, 0x13
+ movs r1, 0x3
+ movs r2, 0x5
+ bl sub_807D5F0
+ ldr r0, _0807F314
+ adds r1, r4, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ b _0807F334
+ .align 2, 0
+_0807F30C: .4byte gUnknown_08396FC4
+_0807F310: .4byte 0x000006e6
+_0807F314: .4byte 0x000006cc
+_0807F318:
+ ldr r0, _0807F33C
+ ldr r2, [r0]
+ ldr r1, _0807F340
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _0807F336
+ ldr r3, _0807F344
+ adds r1, r2, r3
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _0807F348
+ adds r1, r2, r0
+_0807F332:
+ movs r0, 0x4
+_0807F334:
+ strh r0, [r1]
+_0807F336:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807F33C: .4byte gUnknown_08396FC4
+_0807F340: .4byte 0x000006c6
+_0807F344: .4byte 0x000006ea
+_0807F348: .4byte 0x000006cc
+ thumb_func_end sub_807EFC0
+
+ thumb_func_start sub_807F34C
+sub_807F34C: @ 807F34C
+ push {r4-r6,lr}
+ ldr r0, _0807F368
+ ldr r6, [r0]
+ ldr r0, _0807F36C
+ adds r5, r6, r0
+ ldrh r1, [r5]
+ cmp r1, 0x1
+ beq _0807F382
+ cmp r1, 0x1
+ bgt _0807F370
+ cmp r1, 0
+ beq _0807F376
+ b _0807F3E8
+ .align 2, 0
+_0807F368: .4byte gUnknown_08396FC4
+_0807F36C: .4byte 0x000006ce
+_0807F370:
+ cmp r1, 0x2
+ beq _0807F3CC
+ b _0807F3E8
+_0807F376:
+ ldr r2, _0807F3BC
+ adds r0, r6, r2
+ strb r1, [r0]
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_0807F382:
+ bl sub_807EFC0
+ ldr r0, _0807F3C0
+ ldr r2, [r0]
+ ldr r1, _0807F3BC
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0807F3F0
+ subs r1, 0x19
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _0807F3E8
+ cmp r0, 0x5
+ beq _0807F3E8
+ cmp r0, 0xD
+ beq _0807F3E8
+ ldr r0, _0807F3C4
+ adds r1, r2, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _0807F3C8
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0807F3F0
+ .align 2, 0
+_0807F3BC: .4byte 0x000006ea
+_0807F3C0: .4byte gUnknown_08396FC4
+_0807F3C4: .4byte 0x000006d9
+_0807F3C8: .4byte 0x000006ce
+_0807F3CC:
+ bl sub_807E8E8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _0807F3F0
+ bl sub_807E974
+ ldr r1, _0807F3EC
+ adds r0, r6, r1
+ strb r4, [r0]
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_0807F3E8:
+ movs r0, 0
+ b _0807F3F2
+ .align 2, 0
+_0807F3EC: .4byte 0x000006ed
+_0807F3F0:
+ movs r0, 0x1
+_0807F3F2:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807F34C
+
+ thumb_func_start sub_807F3F8
+sub_807F3F8: @ 807F3F8
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _0807F42C
+ ldr r4, [r0]
+ ldr r0, _0807F430
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _0807F426
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r6, 0
+ bl __umodsi3
+ movs r2, 0xDD
+ lsls r2, 3
+ adds r1, r4, r2
+ strh r0, [r1]
+ movs r0, 0x1
+ strb r0, [r5]
+_0807F426:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807F42C: .4byte gUnknown_08396FC4
+_0807F430: .4byte 0x000006ed
+ thumb_func_end sub_807F3F8
+
+ thumb_func_start sub_807F434
+sub_807F434: @ 807F434
+ push {r4,lr}
+ ldr r0, _0807F46C
+ ldr r1, [r0]
+ ldr r2, _0807F470
+ adds r0, r1, r2
+ ldrb r4, [r0]
+ cmp r4, 0x1
+ bne _0807F494
+ movs r0, 0xDD
+ lsls r0, 3
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _0807F490
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807F494
+ bl Random
+ ands r4, r0
+ cmp r4, 0
+ beq _0807F474
+ movs r0, 0x57
+ bl PlaySE
+ b _0807F47A
+ .align 2, 0
+_0807F46C: .4byte gUnknown_08396FC4
+_0807F470: .4byte 0x000006ed
+_0807F474:
+ movs r0, 0x58
+ bl PlaySE
+_0807F47A:
+ ldr r0, _0807F488
+ ldr r0, [r0]
+ ldr r1, _0807F48C
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ b _0807F494
+ .align 2, 0
+_0807F488: .4byte gUnknown_08396FC4
+_0807F48C: .4byte 0x000006ed
+_0807F490:
+ subs r0, 0x1
+ strh r0, [r1]
+_0807F494:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807F434
+
+ thumb_func_start sub_807F49C
+sub_807F49C: @ 807F49C
+ push {lr}
+ ldr r0, _0807F4E8
+ ldr r3, [r0]
+ ldr r0, _0807F4EC
+ adds r1, r3, r0
+ movs r2, 0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _0807F4F0
+ adds r0, r3, r1
+ strb r2, [r0]
+ subs r1, 0x11
+ adds r0, r3, r1
+ strb r2, [r0]
+ ldr r2, _0807F4F4
+ adds r1, r3, r2
+ movs r0, 0x14
+ strb r0, [r1]
+ ldr r1, _0807F4F8
+ adds r0, r3, r1
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _0807F4E4
+ adds r2, 0x2E
+ adds r0, r3, r2
+ strh r1, [r0]
+ adds r2, 0x2
+ adds r0, r3, r2
+ strh r1, [r0]
+ subs r2, 0x4
+ adds r0, r3, r2
+ strh r1, [r0]
+ movs r0, 0
+ movs r1, 0x10
+ bl sub_807DB64
+_0807F4E4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807F4E8: .4byte gUnknown_08396FC4
+_0807F4EC: .4byte 0x000006cc
+_0807F4F0: .4byte 0x000006d2
+_0807F4F4: .4byte 0x000006c2
+_0807F4F8: .4byte 0x000006fb
+ thumb_func_end sub_807F49C
+
+ thumb_func_start sub_807F4FC
+sub_807F4FC: @ 807F4FC
+ push {r4,lr}
+ bl sub_807F49C
+ ldr r0, _0807F524
+ ldr r1, [r0]
+ ldr r2, _0807F528
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807F51C
+ adds r4, r1, r2
+_0807F512:
+ bl sub_807F52C
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0807F512
+_0807F51C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807F524: .4byte gUnknown_08396FC4
+_0807F528: .4byte 0x000006d2
+ thumb_func_end sub_807F4FC
+
+ thumb_func_start sub_807F52C
+sub_807F52C: @ 807F52C
+ push {r4-r6,lr}
+ ldr r0, _0807F578
+ ldr r6, [r0]
+ ldr r0, _0807F57C
+ ldr r1, _0807F580
+ adds r2, r6, r1
+ ldrh r0, [r0]
+ ldrh r1, [r2]
+ subs r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ ldr r3, _0807F584
+ adds r1, r6, r3
+ strh r0, [r1]
+ movs r0, 0xDE
+ lsls r0, 3
+ adds r1, r6, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x3
+ bls _0807F566
+ movs r0, 0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+_0807F566:
+ ldr r1, _0807F588
+ adds r5, r6, r1
+ ldrh r4, [r5]
+ cmp r4, 0
+ beq _0807F58C
+ cmp r4, 0x1
+ beq _0807F5CC
+ b _0807F5E2
+ .align 2, 0
+_0807F578: .4byte gUnknown_08396FC4
+_0807F57C: .4byte gSpriteCoordOffsetX
+_0807F580: .4byte 0x000006f2
+_0807F584: .4byte 0x000006ee
+_0807F588: .4byte 0x000006cc
+_0807F58C:
+ bl sub_807F6E8
+ movs r3, 0xDA
+ lsls r3, 3
+ adds r0, r6, r3
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bne _0807F5A8
+ movs r0, 0xC
+ movs r1, 0x8
+ movs r2, 0x3
+ bl sub_807DBA4
+ b _0807F5B2
+_0807F5A8:
+ movs r0, 0x4
+ movs r1, 0x10
+ movs r2, 0
+ bl sub_807DBA4
+_0807F5B2:
+ ldr r0, _0807F5C4
+ ldr r1, [r0]
+ ldr r0, _0807F5C8
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0807F5E2
+ .align 2, 0
+_0807F5C4: .4byte gUnknown_08396FC4
+_0807F5C8: .4byte 0x000006cc
+_0807F5CC:
+ bl sub_807DBE8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807F5E2
+ ldr r1, _0807F5E8
+ adds r0, r6, r1
+ strb r4, [r0]
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_0807F5E2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807F5E8: .4byte 0x000006d2
+ thumb_func_end sub_807F52C
+
+ thumb_func_start sub_807F5EC
+sub_807F5EC: @ 807F5EC
+ push {r4,lr}
+ ldr r0, _0807F63C
+ ldr r2, [r0]
+ ldr r0, _0807F640
+ ldr r1, _0807F644
+ adds r3, r2, r1
+ ldrh r0, [r0]
+ ldrh r1, [r3]
+ subs r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ ldr r4, _0807F648
+ adds r1, r2, r4
+ strh r0, [r1]
+ movs r0, 0xDE
+ lsls r0, 3
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x3
+ bls _0807F626
+ movs r0, 0
+ strh r0, [r1]
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+_0807F626:
+ ldr r1, _0807F64C
+ adds r4, r2, r1
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _0807F662
+ cmp r0, 0x1
+ bgt _0807F650
+ cmp r0, 0
+ beq _0807F656
+ b _0807F67A
+ .align 2, 0
+_0807F63C: .4byte gUnknown_08396FC4
+_0807F640: .4byte gSpriteCoordOffsetX
+_0807F644: .4byte 0x000006f2
+_0807F648: .4byte 0x000006ee
+_0807F64C: .4byte 0x000006ce
+_0807F650:
+ cmp r0, 0x2
+ beq _0807F66E
+ b _0807F67A
+_0807F656:
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x3
+ bl sub_807DBA4
+ b _0807F672
+_0807F662:
+ bl sub_807DBE8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807F67E
+ b _0807F672
+_0807F66E:
+ bl sub_807F7A4
+_0807F672:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _0807F67E
+_0807F67A:
+ movs r0, 0
+ b _0807F680
+_0807F67E:
+ movs r0, 0x1
+_0807F680:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807F5EC
+
+ thumb_func_start sub_807F688
+sub_807F688: @ 807F688
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, _0807F6D4
+ ldrb r0, [r0]
+ strh r0, [r3, 0x26]
+ ldr r0, _0807F6D8
+ ldr r0, [r0]
+ ldr r1, _0807F6DC
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ adds r1, 0x20
+ movs r4, 0x2E
+ ldrsh r0, [r3, r4]
+ lsls r0, 6
+ adds r1, r0
+ strh r1, [r3, 0x20]
+ lsls r1, 16
+ ldr r0, _0807F6E0
+ cmp r1, r0
+ ble _0807F6CC
+ movs r0, 0xF0
+ lsls r0, 1
+ adds r1, r0, 0
+ ldrh r2, [r2]
+ adds r1, r2
+ movs r4, 0x2E
+ ldrsh r2, [r3, r4]
+ movs r0, 0x4
+ subs r0, r2
+ lsls r0, 6
+ subs r1, r0
+ ldr r0, _0807F6E4
+ ands r1, r0
+ strh r1, [r3, 0x20]
+_0807F6CC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807F6D4: .4byte gSpriteCoordOffsetY
+_0807F6D8: .4byte gUnknown_08396FC4
+_0807F6DC: .4byte 0x000006ee
+_0807F6E0: .4byte 0x010f0000
+_0807F6E4: .4byte 0x000001ff
+ thumb_func_end sub_807F688
+
+ thumb_func_start sub_807F6E8
+sub_807F6E8: @ 807F6E8
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r0, _0807F75C
+ ldr r0, [r0]
+ ldr r1, _0807F760
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807F792
+ ldr r0, _0807F764
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ movs r5, 0
+_0807F70C:
+ ldr r0, _0807F768
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0xFF
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0807F770
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0807F76C
+ adds r4, r0
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl __umodsi3
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ lsrs r0, 10
+ adds r0, 0x20
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r0, 10
+ adds r0, 0x20
+ strh r0, [r4, 0x22]
+ ldr r2, _0807F75C
+ ldr r0, [r2]
+ lsls r1, r5, 2
+ adds r0, 0xA0
+ adds r0, r1
+ str r4, [r0]
+ b _0807F77E
+ .align 2, 0
+_0807F75C: .4byte gUnknown_08396FC4
+_0807F760: .4byte 0x000006fb
+_0807F764: .4byte gUnknown_0839ABA8
+_0807F768: .4byte gSpriteTemplate_839AB90
+_0807F76C: .4byte gSprites
+_0807F770:
+ ldr r2, _0807F79C
+ ldr r1, [r2]
+ lsls r0, r5, 2
+ adds r1, 0xA0
+ adds r1, r0
+ movs r0, 0
+ str r0, [r1]
+_0807F77E:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x13
+ bls _0807F70C
+ ldr r0, [r2]
+ ldr r1, _0807F7A0
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+_0807F792:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807F79C: .4byte gUnknown_08396FC4
+_0807F7A0: .4byte 0x000006fb
+ thumb_func_end sub_807F6E8
+
+ thumb_func_start sub_807F7A4
+sub_807F7A4: @ 807F7A4
+ push {r4,r5,lr}
+ ldr r0, _0807F7EC
+ ldr r1, [r0]
+ ldr r2, _0807F7F0
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0807F7E4
+ movs r4, 0
+ adds r5, r1, 0
+ adds r5, 0xA0
+_0807F7BA:
+ lsls r0, r4, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0807F7C8
+ bl DestroySprite
+_0807F7C8:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x13
+ bls _0807F7BA
+ ldr r0, _0807F7F4
+ bl FreeSpriteTilesByTag
+ ldr r0, _0807F7EC
+ ldr r0, [r0]
+ ldr r1, _0807F7F0
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_0807F7E4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807F7EC: .4byte gUnknown_08396FC4
+_0807F7F0: .4byte 0x000006fb
+_0807F7F4: .4byte 0x00001201
+ thumb_func_end sub_807F7A4
+
+ thumb_func_start sub_807F7F8
+sub_807F7F8: @ 807F7F8
+ push {lr}
+ ldr r0, _0807F844
+ ldr r1, [r0]
+ ldr r0, _0807F848
+ adds r2, r1, r0
+ movs r3, 0
+ movs r0, 0
+ strh r0, [r2]
+ ldr r2, _0807F84C
+ adds r0, r1, r2
+ strb r3, [r0]
+ subs r2, 0x11
+ adds r0, r1, r2
+ strb r3, [r0]
+ ldr r3, _0807F850
+ adds r0, r1, r3
+ movs r2, 0x14
+ strb r2, [r0]
+ adds r3, 0x3C
+ adds r0, r1, r3
+ strh r2, [r0]
+ movs r0, 0xE0
+ lsls r0, 3
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0807F840
+ movs r0, 0
+ movs r1, 0x10
+ bl sub_807DB64
+ ldr r1, _0807F854
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+_0807F840:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807F844: .4byte gUnknown_08396FC4
+_0807F848: .4byte 0x000006cc
+_0807F84C: .4byte 0x000006d2
+_0807F850: .4byte 0x000006c2
+_0807F854: .4byte REG_BLDALPHA
+ thumb_func_end sub_807F7F8
+
+ thumb_func_start sub_807F858
+sub_807F858: @ 807F858
+ push {r4,lr}
+ bl sub_807F7F8
+ ldr r0, _0807F880
+ ldr r1, [r0]
+ ldr r2, _0807F884
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807F878
+ adds r4, r1, r2
+_0807F86E:
+ bl sub_807F888
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0807F86E
+_0807F878:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807F880: .4byte gUnknown_08396FC4
+_0807F884: .4byte 0x000006d2
+ thumb_func_end sub_807F858
+
+ thumb_func_start sub_807F888
+sub_807F888: @ 807F888
+ push {r4,r5,lr}
+ ldr r2, _0807F8CC
+ ldr r1, [r2]
+ ldr r0, _0807F8D0
+ ldrh r0, [r0]
+ ldr r3, _0807F8D4
+ ands r3, r0
+ ldr r0, _0807F8D8
+ adds r1, r0
+ strh r3, [r1]
+ cmp r3, 0xEF
+ bls _0807F8B4
+ adds r4, r1, 0
+ adds r1, r3, 0
+_0807F8A4:
+ adds r3, r1, 0
+ subs r3, 0xF0
+ adds r1, r3, 0
+ lsls r0, r3, 16
+ lsrs r0, 16
+ cmp r0, 0xEF
+ bhi _0807F8A4
+ strh r3, [r4]
+_0807F8B4:
+ ldr r5, [r2]
+ ldr r1, _0807F8DC
+ adds r4, r5, r1
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _0807F8EC
+ cmp r0, 0x1
+ bgt _0807F8E0
+ cmp r0, 0
+ beq _0807F8E6
+ b _0807F928
+ .align 2, 0
+_0807F8CC: .4byte gUnknown_08396FC4
+_0807F8D0: .4byte gSpriteCoordOffsetX
+_0807F8D4: .4byte 0x000001ff
+_0807F8D8: .4byte 0x000006fc
+_0807F8DC: .4byte 0x000006cc
+_0807F8E0:
+ cmp r0, 0x2
+ beq _0807F908
+ b _0807F928
+_0807F8E6:
+ bl sub_807F99C
+ b _0807F91A
+_0807F8EC:
+ movs r1, 0xE0
+ lsls r1, 3
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807F8FC
+ bl sub_807F9AC
+_0807F8FC:
+ movs r0, 0x10
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_807DBA4
+ b _0807F91A
+_0807F908:
+ bl sub_807DBE8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807F92C
+ ldr r0, _0807F924
+ adds r1, r5, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_0807F91A:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _0807F92C
+ .align 2, 0
+_0807F924: .4byte 0x000006d2
+_0807F928:
+ bl sub_807DBE8
+_0807F92C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807F888
+
+ thumb_func_start sub_807F934
+sub_807F934: @ 807F934
+ push {r4,lr}
+ ldr r0, _0807F950
+ ldr r0, [r0]
+ ldr r1, _0807F954
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _0807F96A
+ cmp r0, 0x1
+ bgt _0807F958
+ cmp r0, 0
+ beq _0807F95E
+ b _0807F98C
+ .align 2, 0
+_0807F950: .4byte gUnknown_08396FC4
+_0807F954: .4byte 0x000006ce
+_0807F958:
+ cmp r0, 0x2
+ beq _0807F980
+ b _0807F98C
+_0807F95E:
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x1
+ bl sub_807DBA4
+ b _0807F978
+_0807F96A:
+ bl sub_807DBE8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807F994
+ bl sub_807FA54
+_0807F978:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _0807F994
+_0807F980:
+ ldr r1, _0807F990
+ movs r0, 0
+ strh r0, [r1]
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_0807F98C:
+ movs r0, 0
+ b _0807F996
+ .align 2, 0
+_0807F990: .4byte REG_BLDALPHA
+_0807F994:
+ movs r0, 0x1
+_0807F996:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807F934
+
+ thumb_func_start sub_807F99C
+sub_807F99C: @ 807F99C
+ push {lr}
+ ldr r0, _0807F9A8
+ bl LoadSpriteSheet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807F9A8: .4byte gUnknown_0839ABB0
+ thumb_func_end sub_807F99C
+
+ thumb_func_start sub_807F9AC
+sub_807F9AC: @ 807F9AC
+ push {r4,r5,lr}
+ ldr r0, _0807FA18
+ ldr r0, [r0]
+ movs r1, 0xE0
+ lsls r1, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807FA48
+ movs r5, 0
+_0807F9C0:
+ ldr r0, _0807FA1C
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x4E
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0807FA24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0807FA20
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x34]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ lsls r0, 6
+ adds r0, 0x20
+ strh r0, [r4, 0x2E]
+ ldr r2, _0807FA18
+ ldr r0, [r2]
+ lsls r1, r5, 2
+ adds r0, 0xF0
+ adds r0, r1
+ str r4, [r0]
+ b _0807FA32
+ .align 2, 0
+_0807FA18: .4byte gUnknown_08396FC4
+_0807FA1C: .4byte gSpriteTemplate_839ABD0
+_0807FA20: .4byte gSprites
+_0807FA24:
+ ldr r2, _0807FA50
+ ldr r1, [r2]
+ lsls r0, r5, 2
+ adds r1, 0xF0
+ adds r1, r0
+ movs r0, 0
+ str r0, [r1]
+_0807FA32:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _0807F9C0
+ ldr r0, [r2]
+ movs r1, 0xE0
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+_0807FA48:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807FA50: .4byte gUnknown_08396FC4
+ thumb_func_end sub_807F9AC
+
+ thumb_func_start sub_807FA54
+sub_807FA54: @ 807FA54
+ push {r4,r5,lr}
+ ldr r0, _0807FAA0
+ ldr r1, [r0]
+ movs r2, 0xE0
+ lsls r2, 3
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0807FA98
+ movs r4, 0
+ adds r5, r1, 0
+ adds r5, 0xF0
+_0807FA6C:
+ lsls r0, r4, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0807FA7A
+ bl DestroySprite
+_0807FA7A:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x13
+ bls _0807FA6C
+ ldr r0, _0807FAA4
+ bl FreeSpriteTilesByTag
+ ldr r0, _0807FAA0
+ ldr r0, [r0]
+ movs r1, 0xE0
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_0807FA98:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807FAA0: .4byte gUnknown_08396FC4
+_0807FAA4: .4byte 0x00001202
+ thumb_func_end sub_807FA54
+
+ thumb_func_start sub_807FAA8
+sub_807FAA8: @ 807FAA8
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _0807FAC4
+ movs r0, 0
+ strh r0, [r3, 0x30]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+_0807FAC4:
+ ldr r1, _0807FB10
+ ldrh r0, [r3, 0x2E]
+ ldrh r1, [r1]
+ adds r0, r1
+ strh r0, [r3, 0x22]
+ ldr r0, _0807FB14
+ ldr r0, [r0]
+ ldr r1, _0807FB18
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ adds r1, 0x20
+ movs r4, 0x32
+ ldrsh r0, [r3, r4]
+ lsls r0, 6
+ adds r1, r0
+ strh r1, [r3, 0x20]
+ lsls r1, 16
+ ldr r0, _0807FB1C
+ cmp r1, r0
+ ble _0807FB08
+ movs r0, 0xF0
+ lsls r0, 1
+ adds r1, r0, 0
+ ldrh r2, [r2]
+ adds r1, r2
+ movs r4, 0x32
+ ldrsh r2, [r3, r4]
+ movs r0, 0x4
+ subs r0, r2
+ lsls r0, 6
+ subs r1, r0
+ ldr r0, _0807FB20
+ ands r1, r0
+ strh r1, [r3, 0x20]
+_0807FB08:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807FB10: .4byte gSpriteCoordOffsetY
+_0807FB14: .4byte gUnknown_08396FC4
+_0807FB18: .4byte 0x000006fc
+_0807FB1C: .4byte 0x010f0000
+_0807FB20: .4byte 0x000001ff
+ thumb_func_end sub_807FAA8
+
+ thumb_func_start sub_807FB24
+sub_807FB24: @ 807FB24
+ push {r4,lr}
+ ldr r0, _0807FB94
+ ldr r3, [r0]
+ ldr r1, _0807FB98
+ adds r0, r3, r1
+ movs r1, 0
+ movs r2, 0
+ strh r2, [r0]
+ ldr r4, _0807FB9C
+ adds r0, r3, r4
+ strb r1, [r0]
+ subs r4, 0x11
+ adds r0, r3, r4
+ strb r1, [r0]
+ ldr r0, _0807FBA0
+ adds r1, r3, r0
+ movs r0, 0x14
+ strb r0, [r1]
+ movs r1, 0xDE
+ lsls r1, 3
+ adds r0, r3, r1
+ strh r2, [r0]
+ adds r4, 0x31
+ adds r1, r3, r4
+ movs r0, 0x1
+ strh r0, [r1]
+ ldr r1, _0807FBA4
+ adds r0, r3, r1
+ ldrb r2, [r0]
+ cmp r2, 0
+ bne _0807FB8E
+ adds r4, 0x2A
+ adds r0, r3, r4
+ strh r2, [r0]
+ subs r1, 0x6
+ adds r0, r3, r1
+ strh r2, [r0]
+ adds r4, 0x4
+ adds r0, r3, r4
+ strh r2, [r0]
+ adds r1, 0x4
+ adds r0, r3, r1
+ strh r2, [r0]
+ subs r4, 0x8
+ adds r0, r3, r4
+ strh r2, [r0]
+ subs r1, 0x8
+ adds r0, r3, r1
+ strh r2, [r0]
+ movs r0, 0
+ movs r1, 0x10
+ bl sub_807DB64
+_0807FB8E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807FB94: .4byte gUnknown_08396FC4
+_0807FB98: .4byte 0x000006cc
+_0807FB9C: .4byte 0x000006d2
+_0807FBA0: .4byte 0x000006c2
+_0807FBA4: .4byte 0x00000724
+ thumb_func_end sub_807FB24
+
+ thumb_func_start sub_807FBA8
+sub_807FBA8: @ 807FBA8
+ push {r4,lr}
+ bl sub_807FB24
+ ldr r0, _0807FBD0
+ ldr r1, [r0]
+ ldr r2, _0807FBD4
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807FBC8
+ adds r4, r1, r2
+_0807FBBE:
+ bl sub_807FBD8
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0807FBBE
+_0807FBC8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807FBD0: .4byte gUnknown_08396FC4
+_0807FBD4: .4byte 0x000006d2
+ thumb_func_end sub_807FBA8
+
+ thumb_func_start sub_807FBD8
+sub_807FBD8: @ 807FBD8
+ push {r4,r5,lr}
+ bl sub_807FC9C
+ ldr r0, _0807FBF8
+ ldr r5, [r0]
+ ldr r0, _0807FBFC
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _0807FC0C
+ cmp r0, 0x1
+ bgt _0807FC00
+ cmp r0, 0
+ beq _0807FC06
+ b _0807FC30
+ .align 2, 0
+_0807FBF8: .4byte gUnknown_08396FC4
+_0807FBFC: .4byte 0x000006cc
+_0807FC00:
+ cmp r0, 0x2
+ beq _0807FC18
+ b _0807FC30
+_0807FC06:
+ bl sub_807FD30
+ b _0807FC2A
+_0807FC0C:
+ movs r0, 0xC
+ movs r1, 0x8
+ movs r2, 0x8
+ bl sub_807DBA4
+ b _0807FC2A
+_0807FC18:
+ bl sub_807DBE8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807FC30
+ ldr r0, _0807FC38
+ adds r1, r5, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_0807FC2A:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_0807FC30:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807FC38: .4byte 0x000006d2
+ thumb_func_end sub_807FBD8
+
+ thumb_func_start sub_807FC3C
+sub_807FC3C: @ 807FC3C
+ push {r4,lr}
+ bl sub_807FC9C
+ ldr r0, _0807FC5C
+ ldr r0, [r0]
+ ldr r1, _0807FC60
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _0807FC76
+ cmp r0, 0x1
+ bgt _0807FC64
+ cmp r0, 0
+ beq _0807FC6A
+ b _0807FC8E
+ .align 2, 0
+_0807FC5C: .4byte gUnknown_08396FC4
+_0807FC60: .4byte 0x000006ce
+_0807FC64:
+ cmp r0, 0x2
+ beq _0807FC82
+ b _0807FC8E
+_0807FC6A:
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x1
+ bl sub_807DBA4
+ b _0807FC86
+_0807FC76:
+ bl sub_807DBE8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807FC92
+ b _0807FC86
+_0807FC82:
+ bl sub_807FDE8
+_0807FC86:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _0807FC92
+_0807FC8E:
+ movs r0, 0
+ b _0807FC94
+_0807FC92:
+ movs r0, 0x1
+_0807FC94:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807FC3C
+
+ thumb_func_start sub_807FC9C
+sub_807FC9C: @ 807FC9C
+ push {r4,r5,lr}
+ ldr r0, _0807FD14
+ ldr r3, [r0]
+ ldr r0, _0807FD18
+ adds r2, r3, r0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r2]
+ ldr r1, _0807FD1C
+ adds r4, r1, 0
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bls _0807FCC8
+ movs r0, 0xE4
+ lsls r0, 3
+ adds r1, r3, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ strh r5, [r2]
+_0807FCC8:
+ ldr r1, _0807FD20
+ adds r2, r3, r1
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ ands r0, r4
+ cmp r0, 0x4
+ bls _0807FCE4
+ ldr r0, _0807FD24
+ adds r1, r3, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ strh r5, [r2]
+_0807FCE4:
+ ldr r0, _0807FD28
+ movs r2, 0xE4
+ lsls r2, 3
+ adds r1, r3, r2
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ subs r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ subs r2, 0x8
+ adds r1, r3, r2
+ strh r0, [r1]
+ ldr r1, _0807FD2C
+ adds r2, 0xA
+ adds r0, r3, r2
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ adds r0, r1
+ subs r2, 0x8
+ adds r1, r3, r2
+ strh r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807FD14: .4byte gUnknown_08396FC4
+_0807FD18: .4byte 0x0000071c
+_0807FD1C: .4byte 0x0000ffff
+_0807FD20: .4byte 0x0000071e
+_0807FD24: .4byte 0x00000722
+_0807FD28: .4byte gSpriteCoordOffsetX
+_0807FD2C: .4byte gSpriteCoordOffsetY
+ thumb_func_end sub_807FC9C
+
+ thumb_func_start sub_807FD30
+sub_807FD30: @ 807FD30
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r0, _0807FD9C
+ ldr r0, [r0]
+ ldr r1, _0807FDA0
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807FDD6
+ ldr r0, _0807FDA4
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ movs r6, 0
+_0807FD54:
+ adds r0, r6, 0
+ movs r1, 0x5
+ bl __udivsi3
+ adds r5, r0, 0
+ lsls r2, r5, 22
+ asrs r2, 16
+ ldr r0, _0807FDA8
+ movs r1, 0
+ movs r3, 0xFF
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0807FDB0
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0807FDAC
+ adds r4, r0
+ adds r0, r6, 0
+ movs r1, 0x5
+ bl __umodsi3
+ strh r0, [r4, 0x2E]
+ strh r5, [r4, 0x30]
+ ldr r2, _0807FD9C
+ ldr r0, [r2]
+ lsls r1, r6, 2
+ movs r3, 0xA0
+ lsls r3, 1
+ adds r0, r3
+ adds r0, r1
+ str r4, [r0]
+ b _0807FDC2
+ .align 2, 0
+_0807FD9C: .4byte gUnknown_08396FC4
+_0807FDA0: .4byte 0x00000724
+_0807FDA4: .4byte gUnknown_0839ABE8
+_0807FDA8: .4byte gSpriteTemplate_839AC04
+_0807FDAC: .4byte gSprites
+_0807FDB0:
+ ldr r2, _0807FDE0
+ ldr r1, [r2]
+ lsls r0, r6, 2
+ movs r3, 0xA0
+ lsls r3, 1
+ adds r1, r3
+ adds r1, r0
+ movs r0, 0
+ str r0, [r1]
+_0807FDC2:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x13
+ bls _0807FD54
+ ldr r0, [r2]
+ ldr r1, _0807FDE4
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+_0807FDD6:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807FDE0: .4byte gUnknown_08396FC4
+_0807FDE4: .4byte 0x00000724
+ thumb_func_end sub_807FD30
+
+ thumb_func_start sub_807FDE8
+sub_807FDE8: @ 807FDE8
+ push {r4,r5,lr}
+ ldr r0, _0807FE30
+ ldr r1, [r0]
+ ldr r2, _0807FE34
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0807FE2A
+ movs r4, 0
+ movs r0, 0xA0
+ lsls r0, 1
+ adds r5, r1, r0
+_0807FE00:
+ lsls r0, r4, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0807FE0E
+ bl DestroySprite
+_0807FE0E:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x13
+ bls _0807FE00
+ ldr r0, _0807FE38
+ bl FreeSpriteTilesByTag
+ ldr r0, _0807FE30
+ ldr r0, [r0]
+ ldr r1, _0807FE34
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_0807FE2A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807FE30: .4byte gUnknown_08396FC4
+_0807FE34: .4byte 0x00000724
+_0807FE38: .4byte 0x00001203
+ thumb_func_end sub_807FDE8
+
+ thumb_func_start sub_807FE3C
+sub_807FE3C: @ 807FE3C
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, _0807FE8C
+ ldr r1, [r0]
+ ldr r2, _0807FE90
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ strh r0, [r3, 0x26]
+ movs r4, 0xE3
+ lsls r4, 3
+ adds r2, r1, r4
+ ldrh r1, [r2]
+ adds r1, 0x20
+ movs r4, 0x2E
+ ldrsh r0, [r3, r4]
+ lsls r0, 6
+ adds r1, r0
+ strh r1, [r3, 0x20]
+ lsls r1, 16
+ ldr r0, _0807FE94
+ cmp r1, r0
+ ble _0807FE84
+ movs r0, 0xF0
+ lsls r0, 1
+ adds r1, r0, 0
+ ldrh r2, [r2]
+ adds r1, r2
+ movs r4, 0x2E
+ ldrsh r2, [r3, r4]
+ movs r0, 0x4
+ subs r0, r2
+ lsls r0, 6
+ subs r1, r0
+ ldr r0, _0807FE98
+ ands r1, r0
+ strh r1, [r3, 0x20]
+_0807FE84:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807FE8C: .4byte gUnknown_08396FC4
+_0807FE90: .4byte 0x0000071a
+_0807FE94: .4byte 0x010f0000
+_0807FE98: .4byte 0x000001ff
+ thumb_func_end sub_807FE3C
+
+ thumb_func_start sub_807FE9C
+sub_807FE9C: @ 807FE9C
+ push {r4,lr}
+ ldr r0, _0807FF00
+ ldr r3, [r0]
+ ldr r0, _0807FF04
+ adds r1, r3, r0
+ movs r2, 0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _0807FF08
+ adds r0, r3, r1
+ strb r2, [r0]
+ ldr r4, _0807FF0C
+ adds r0, r3, r4
+ strb r2, [r0]
+ ldr r0, _0807FF10
+ adds r1, r3, r0
+ movs r0, 0x14
+ strb r0, [r1]
+ ldr r1, _0807FF14
+ adds r0, r3, r1
+ ldrb r2, [r0]
+ cmp r2, 0
+ bne _0807FEF8
+ adds r4, 0x43
+ adds r1, r3, r4
+ adds r4, 0x4
+ adds r0, r3, r4
+ str r2, [r0]
+ str r2, [r1]
+ ldr r0, _0807FF18
+ adds r1, r3, r0
+ movs r0, 0x8
+ strh r0, [r1]
+ adds r4, 0xC
+ adds r0, r3, r4
+ strh r2, [r0]
+ ldrh r2, [r1]
+ cmp r2, 0x5F
+ bls _0807FEF0
+ movs r0, 0x80
+ subs r0, r2
+ strh r0, [r1]
+_0807FEF0:
+ movs r0, 0
+ movs r1, 0x10
+ bl sub_807DB64
+_0807FEF8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807FF00: .4byte gUnknown_08396FC4
+_0807FF04: .4byte 0x000006cc
+_0807FF08: .4byte 0x000006d2
+_0807FF0C: .4byte 0x000006c1
+_0807FF10: .4byte 0x000006c2
+_0807FF14: .4byte 0x00000716
+_0807FF18: .4byte 0x00000712
+ thumb_func_end sub_807FE9C
+
+ thumb_func_start sub_807FF1C
+sub_807FF1C: @ 807FF1C
+ push {r4,lr}
+ bl sub_807FE9C
+ ldr r0, _0807FF44
+ ldr r1, [r0]
+ ldr r2, _0807FF48
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807FF3C
+ adds r4, r1, r2
+_0807FF32:
+ bl sub_807FF4C
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0807FF32
+_0807FF3C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807FF44: .4byte gUnknown_08396FC4
+_0807FF48: .4byte 0x000006d2
+ thumb_func_end sub_807FF1C
+
+ thumb_func_start sub_807FF4C
+sub_807FF4C: @ 807FF4C
+ push {r4,r5,lr}
+ bl sub_8080064
+ bl sub_808002C
+ ldr r0, _0807FF7C
+ ldr r5, [r0]
+ ldr r0, _0807FF80
+ adds r1, r5, r0
+ ldrh r0, [r1]
+ cmp r0, 0x5F
+ bls _0807FF68
+ movs r0, 0x20
+ strh r0, [r1]
+_0807FF68:
+ ldr r0, _0807FF84
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _0807FF98
+ cmp r0, 0x1
+ bgt _0807FF88
+ cmp r0, 0
+ beq _0807FF8E
+ b _0807FFBC
+ .align 2, 0
+_0807FF7C: .4byte gUnknown_08396FC4
+_0807FF80: .4byte 0x00000712
+_0807FF84: .4byte 0x000006cc
+_0807FF88:
+ cmp r0, 0x2
+ beq _0807FFA4
+ b _0807FFBC
+_0807FF8E:
+ bl sub_8080178
+ bl sub_8080238
+ b _0807FFB6
+_0807FF98:
+ movs r0, 0x10
+ movs r1, 0
+ movs r2, 0
+ bl sub_807DBA4
+ b _0807FFB6
+_0807FFA4:
+ bl sub_807DBE8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807FFBC
+ ldr r0, _0807FFC4
+ adds r1, r5, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_0807FFB6:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_0807FFBC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807FFC4: .4byte 0x000006d2
+ thumb_func_end sub_807FF4C
+
+ thumb_func_start sub_807FFC8
+sub_807FFC8: @ 807FFC8
+ push {r4,lr}
+ bl sub_8080064
+ bl sub_808002C
+ ldr r0, _0807FFEC
+ ldr r0, [r0]
+ ldr r1, _0807FFF0
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _08080006
+ cmp r0, 0x1
+ bgt _0807FFF4
+ cmp r0, 0
+ beq _0807FFFA
+ b _0808001E
+ .align 2, 0
+_0807FFEC: .4byte gUnknown_08396FC4
+_0807FFF0: .4byte 0x000006ce
+_0807FFF4:
+ cmp r0, 0x2
+ beq _08080012
+ b _0808001E
+_0807FFFA:
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0
+ bl sub_807DBA4
+ b _08080016
+_08080006:
+ bl sub_807DBE8
+ lsls r0, 24
+ cmp r0, 0
+ beq _08080022
+ b _08080016
+_08080012:
+ bl sub_80800E4
+_08080016:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _08080022
+_0808001E:
+ movs r0, 0
+ b _08080024
+_08080022:
+ movs r0, 0x1
+_08080024:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807FFC8
+
+ thumb_func_start sub_808002C
+sub_808002C: @ 808002C
+ push {lr}
+ ldr r0, _08080058
+ ldr r2, [r0]
+ ldr r0, _0808005C
+ adds r3, r2, r0
+ ldrh r0, [r3]
+ adds r1, r0, 0x1
+ strh r1, [r3]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4
+ bls _08080052
+ ldr r1, _08080060
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ adds r1, 0x1
+ movs r2, 0
+ strh r1, [r0]
+ strh r2, [r3]
+_08080052:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080058: .4byte gUnknown_08396FC4
+_0808005C: .4byte 0x00000714
+_08080060: .4byte 0x00000712
+ thumb_func_end sub_808002C
+
+ thumb_func_start sub_8080064
+sub_8080064: @ 8080064
+ push {r4-r6,lr}
+ ldr r0, _080800C8
+ ldr r2, [r0]
+ ldr r0, _080800CC
+ adds r4, r2, r0
+ ldr r6, _080800D0
+ ldr r1, _080800D4
+ adds r5, r2, r1
+ ldrh r0, [r5]
+ lsls r0, 1
+ adds r0, r6
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ lsls r1, 2
+ ldr r0, [r4]
+ subs r0, r1
+ str r0, [r4]
+ movs r0, 0xE1
+ lsls r0, 3
+ adds r3, r2, r0
+ ldrh r0, [r5]
+ lsls r0, 1
+ adds r0, r6
+ movs r5, 0
+ ldrsh r1, [r0, r5]
+ ldr r0, [r3]
+ subs r0, r1
+ str r0, [r3]
+ ldr r1, _080800D8
+ ldr r0, [r4]
+ lsrs r0, 8
+ ldrh r1, [r1]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ ldr r4, _080800DC
+ adds r1, r2, r4
+ strh r0, [r1]
+ ldr r1, _080800E0
+ ldr r0, [r3]
+ lsrs r0, 8
+ ldrh r1, [r1]
+ adds r0, r1
+ movs r5, 0xE2
+ lsls r5, 3
+ adds r2, r5
+ strh r0, [r2]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080800C8: .4byte gUnknown_08396FC4
+_080800CC: .4byte 0x00000704
+_080800D0: .4byte gSineTable
+_080800D4: .4byte 0x00000712
+_080800D8: .4byte gSpriteCoordOffsetX
+_080800DC: .4byte 0x0000070e
+_080800E0: .4byte gSpriteCoordOffsetY
+ thumb_func_end sub_8080064
+
+ thumb_func_start sub_80800E4
+sub_80800E4: @ 80800E4
+ push {r4,r5,lr}
+ ldr r0, _08080168
+ ldr r1, [r0]
+ ldr r2, _0808016C
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08080126
+ movs r4, 0
+ movs r0, 0xC8
+ lsls r0, 1
+ adds r5, r1, r0
+_080800FC:
+ lsls r0, r4, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0808010A
+ bl DestroySprite
+_0808010A:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x13
+ bls _080800FC
+ ldr r0, _08080168
+ ldr r0, [r0]
+ ldr r1, _0808016C
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _08080170
+ bl FreeSpriteTilesByTag
+_08080126:
+ ldr r0, _08080168
+ ldr r1, [r0]
+ ldr r2, _08080174
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08080160
+ movs r4, 0
+ movs r0, 0xF0
+ lsls r0, 1
+ adds r5, r1, r0
+_0808013C:
+ lsls r0, r4, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0808014A
+ bl DestroySprite
+_0808014A:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _0808013C
+ ldr r0, _08080168
+ ldr r0, [r0]
+ ldr r1, _08080174
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_08080160:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080168: .4byte gUnknown_08396FC4
+_0808016C: .4byte 0x00000716
+_08080170: .4byte 0x00001204
+_08080174: .4byte 0x00000717
+ thumb_func_end sub_80800E4
+
+ thumb_func_start sub_8080178
+sub_8080178: @ 8080178
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r0, _080801E8
+ ldr r0, [r0]
+ ldr r1, _080801EC
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08080226
+ ldr r0, _080801F0
+ bl LoadSpriteSheet
+ ldr r0, _080801F4
+ bl sub_807D8C0
+ movs r7, 0
+_08080198:
+ adds r0, r7, 0
+ movs r1, 0x5
+ bl __udivsi3
+ adds r6, r0, 0
+ lsls r2, r6, 22
+ asrs r2, 16
+ ldr r0, _080801F8
+ movs r1, 0
+ movs r3, 0x1
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _08080200
+ ldr r2, _080801E8
+ ldr r5, [r2]
+ lsls r0, r7, 2
+ movs r3, 0xC8
+ lsls r3, 1
+ adds r5, r3
+ adds r5, r0
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ ldr r0, _080801FC
+ adds r4, r0
+ str r4, [r5]
+ adds r0, r7, 0
+ movs r1, 0x5
+ str r2, [sp]
+ bl __umodsi3
+ strh r0, [r4, 0x2E]
+ ldr r0, [r5]
+ strh r6, [r0, 0x30]
+ ldr r2, [sp]
+ b _08080212
+ .align 2, 0
+_080801E8: .4byte gUnknown_08396FC4
+_080801EC: .4byte 0x00000716
+_080801F0: .4byte gUnknown_0839AC54
+_080801F4: .4byte gUnknown_08397128
+_080801F8: .4byte gSpriteTemplate_839AC3C
+_080801FC: .4byte gSprites
+_08080200:
+ ldr r2, _08080230
+ ldr r1, [r2]
+ lsls r0, r7, 2
+ movs r3, 0xC8
+ lsls r3, 1
+ adds r1, r3
+ adds r1, r0
+ movs r0, 0
+ str r0, [r1]
+_08080212:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x13
+ bls _08080198
+ ldr r0, [r2]
+ ldr r1, _08080234
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+_08080226:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080230: .4byte gUnknown_08396FC4
+_08080234: .4byte 0x00000716
+ thumb_func_end sub_8080178
+
+ thumb_func_start sub_8080238
+sub_8080238: @ 8080238
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _080802E0
+ ldr r0, [r4]
+ ldr r1, _080802E4
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08080324
+ movs r7, 0
+ mov r9, r4
+ movs r2, 0
+ mov r10, r2
+_08080258:
+ lsls r0, r7, 1
+ mov r8, r0
+ adds r6, r0, r7
+ lsls r5, r6, 4
+ adds r1, r5, 0
+ adds r1, 0x18
+ lsls r1, 16
+ asrs r1, 16
+ ldr r0, _080802E8
+ movs r2, 0xD0
+ movs r3, 0x1
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080802FC
+ mov r2, r9
+ ldr r4, [r2]
+ lsls r0, r7, 2
+ movs r2, 0xF0
+ lsls r2, 1
+ adds r4, r2
+ adds r4, r0
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ ldr r0, _080802EC
+ adds r2, r0
+ str r2, [r4]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x3]
+ ldr r1, [r4]
+ adds r0, r6, r5
+ strh r0, [r1, 0x30]
+ ldr r1, [r4]
+ movs r0, 0x8
+ strh r0, [r1, 0x2E]
+ ldr r0, [r4]
+ mov r1, r10
+ strh r1, [r0, 0x32]
+ ldr r1, [r4]
+ ldr r0, _080802F0
+ strh r0, [r1, 0x36]
+ ldr r1, [r4]
+ ldr r0, _080802F4
+ add r0, r8
+ ldrh r0, [r0]
+ strh r0, [r1, 0x34]
+ ldr r0, [r4]
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r0, [r4]
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0
+ bl CalcCenterToCornerVec
+ ldr r1, [r4]
+ ldr r0, _080802F8
+ str r0, [r1, 0x1C]
+ b _0808030E
+ .align 2, 0
+_080802E0: .4byte gUnknown_08396FC4
+_080802E4: .4byte 0x00000717
+_080802E8: .4byte gSpriteTemplate_839AC3C
+_080802EC: .4byte gSprites
+_080802F0: .4byte 0x00006730
+_080802F4: .4byte gUnknown_0839AC5C
+_080802F8: .4byte sub_8080398
+_080802FC:
+ mov r2, r9
+ ldr r0, [r2]
+ lsls r1, r7, 2
+ movs r2, 0xF0
+ lsls r2, 1
+ adds r0, r2
+ adds r0, r1
+ mov r1, r10
+ str r1, [r0]
+_0808030E:
+ mov r2, r9
+ ldr r0, [r2]
+ ldr r1, _08080334
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x4
+ bls _08080258
+_08080324:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080334: .4byte 0x00000717
+ thumb_func_end sub_8080238
+
+ thumb_func_start sub_8080338
+sub_8080338: @ 8080338
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, _08080388
+ ldr r1, [r0]
+ movs r2, 0xE2
+ lsls r2, 3
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ strh r0, [r3, 0x26]
+ ldr r4, _0808038C
+ adds r2, r1, r4
+ ldrh r1, [r2]
+ adds r1, 0x20
+ movs r4, 0x2E
+ ldrsh r0, [r3, r4]
+ lsls r0, 6
+ adds r1, r0
+ strh r1, [r3, 0x20]
+ lsls r1, 16
+ ldr r0, _08080390
+ cmp r1, r0
+ ble _08080380
+ movs r0, 0xF0
+ lsls r0, 1
+ adds r1, r0, 0
+ ldrh r2, [r2]
+ adds r1, r2
+ movs r4, 0x2E
+ ldrsh r2, [r3, r4]
+ movs r0, 0x4
+ subs r0, r2
+ lsls r0, 6
+ subs r1, r0
+ ldr r0, _08080394
+ ands r1, r0
+ strh r1, [r3, 0x20]
+_08080380:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080388: .4byte gUnknown_08396FC4
+_0808038C: .4byte 0x0000070e
+_08080390: .4byte 0x010f0000
+_08080394: .4byte 0x000001ff
+ thumb_func_end sub_8080338
+
+ thumb_func_start sub_8080398
+sub_8080398: @ 8080398
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x34]
+ subs r0, 0x1
+ strh r0, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080803B2
+ ldr r0, _080803B8
+ str r0, [r2, 0x1C]
+_080803B2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080803B8: .4byte sub_80803BC
+ thumb_func_end sub_8080398
+
+ thumb_func_start sub_80803BC
+sub_80803BC: @ 80803BC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x22]
+ subs r0, 0x1
+ strh r0, [r5, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x30
+ negs r1, r1
+ cmp r0, r1
+ bge _080803DA
+ movs r0, 0xD0
+ strh r0, [r5, 0x22]
+ movs r0, 0x4
+ strh r0, [r5, 0x2E]
+_080803DA:
+ movs r0, 0x2E
+ ldrsh r4, [r5, r0]
+ ldr r3, _0808042C
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 1
+ adds r0, r3
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r2, r4, 0
+ muls r2, r0
+ adds r1, 0x40
+ lsls r1, 1
+ adds r1, r3
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ muls r0, r4
+ lsrs r2, 8
+ strh r2, [r5, 0x24]
+ lsrs r0, 8
+ strh r0, [r5, 0x26]
+ ldrh r0, [r5, 0x30]
+ adds r0, 0xA
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _08080426
+ movs r0, 0
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+_08080426:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808042C: .4byte gSineTable
+ thumb_func_end sub_80803BC
+
+ thumb_func_start sub_8080430
+sub_8080430: @ 8080430
+ ldr r0, _08080450
+ ldr r1, [r0]
+ ldr r0, _08080454
+ adds r2, r1, r0
+ movs r0, 0
+ strh r0, [r2]
+ ldr r0, _08080458
+ adds r2, r1, r0
+ movs r0, 0x3
+ strb r0, [r2]
+ ldr r0, _0808045C
+ adds r1, r0
+ movs r0, 0x14
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_08080450: .4byte gUnknown_08396FC4
+_08080454: .4byte 0x000006cc
+_08080458: .4byte 0x000006c1
+_0808045C: .4byte 0x000006c2
+ thumb_func_end sub_8080430
+
+ thumb_func_start sub_8080460
+sub_8080460: @ 8080460
+ push {lr}
+ bl sub_8080430
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8080460
+
+ thumb_func_start nullsub_56
+nullsub_56: @ 808046C
+ bx lr
+ thumb_func_end nullsub_56
+
+ thumb_func_start sub_8080470
+sub_8080470: @ 8080470
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_8080470
+
+ thumb_func_start sub_8080474
+sub_8080474: @ 8080474
+ push {r4,r5,lr}
+ bl sub_807F49C
+ ldr r0, _080804B4
+ ldr r4, [r0]
+ ldr r1, _080804B8
+ adds r0, r4, r1
+ ldrb r5, [r0]
+ cmp r5, 0
+ bne _080804AC
+ ldr r0, _080804BC
+ bl LoadSpriteSheet
+ movs r2, 0xE5
+ lsls r2, 3
+ adds r0, r4, r2
+ strh r5, [r0]
+ ldr r0, _080804C0
+ ldrb r1, [r0]
+ subs r2, 0x2
+ adds r0, r4, r2
+ strh r1, [r0]
+ ldr r1, _080804C4
+ adds r0, r4, r1
+ strh r5, [r0]
+ adds r2, 0x6
+ adds r0, r4, r2
+ strh r5, [r0]
+_080804AC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080804B4: .4byte gUnknown_08396FC4
+_080804B8: .4byte 0x0000072e
+_080804BC: .4byte gUnknown_0839AC70
+_080804C0: .4byte gUnknown_0839AC68
+_080804C4: .4byte 0x0000072a
+ thumb_func_end sub_8080474
+
+ thumb_func_start sub_80804C8
+sub_80804C8: @ 80804C8
+ push {r4,lr}
+ bl sub_8080474
+ ldr r0, _080804F0
+ ldr r1, [r0]
+ ldr r2, _080804F4
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080804E8
+ adds r4, r1, r2
+_080804DE:
+ bl sub_80804F8
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080804DE
+_080804E8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080804F0: .4byte gUnknown_08396FC4
+_080804F4: .4byte 0x000006d2
+ thumb_func_end sub_80804C8
+
+ thumb_func_start sub_80804F8
+sub_80804F8: @ 80804F8
+ push {r4-r7,lr}
+ bl sub_807F52C
+ ldr r0, _08080558
+ ldr r5, [r0]
+ ldr r0, _0808055C
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ movs r6, 0
+ strh r0, [r4]
+ ldr r1, _08080560
+ adds r7, r1, 0
+ ldr r2, _08080564
+ movs r1, 0xE5
+ lsls r1, 3
+ adds r3, r5, r1
+ ldrh r1, [r3]
+ adds r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _08080550
+ strh r6, [r4]
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+ ands r0, r7
+ cmp r0, 0x7
+ bls _08080538
+ strh r6, [r3]
+_08080538:
+ ldr r0, _08080568
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ bl sub_8080588
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ ands r0, r7
+ cmp r0, 0xC
+ bls _08080550
+ strh r6, [r4]
+_08080550:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080558: .4byte gUnknown_08396FC4
+_0808055C: .4byte 0x00000726
+_08080560: .4byte 0x0000ffff
+_08080564: .4byte gUnknown_0839AC68
+_08080568: .4byte 0x0000072a
+ thumb_func_end sub_80804F8
+
+ thumb_func_start sub_808056C
+sub_808056C: @ 808056C
+ push {lr}
+ bl sub_807F5EC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808057C
+ movs r0, 0x1
+ b _08080582
+_0808057C:
+ bl sub_8080610
+ movs r0, 0
+_08080582:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808056C
+
+ thumb_func_start sub_8080588
+sub_8080588: @ 8080588
+ push {r4,lr}
+ lsls r0, 16
+ ldr r1, _080805F8
+ lsrs r0, 14
+ adds r3, r0, r1
+ adds r1, 0x2
+ adds r0, r1
+ ldr r1, _080805FC
+ ldrh r2, [r0]
+ ldrh r0, [r1]
+ subs r2, r0
+ ldr r0, _08080600
+ movs r4, 0
+ ldrsh r1, [r3, r4]
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080805F0
+ ldr r0, _08080604
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ adds r3, r1, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r3]
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ strh r0, [r1, 0x30]
+ strh r0, [r1, 0x32]
+ ldr r0, _08080608
+ ldr r1, [r0]
+ ldr r0, _0808060C
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080805F0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080805F8: .4byte gUnknown_0839AC78
+_080805FC: .4byte gSpriteCoordOffsetY
+_08080600: .4byte gSpriteTemplate_839ACBC
+_08080604: .4byte gSprites
+_08080608: .4byte gUnknown_08396FC4
+_0808060C: .4byte 0x0000072c
+ thumb_func_end sub_8080588
+
+ thumb_func_start sub_8080610
+sub_8080610: @ 8080610
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _08080648
+_08080616:
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r2, r0, 2
+ adds r0, r5, 0
+ adds r0, 0x14
+ adds r0, r2, r0
+ ldr r1, [r0]
+ ldr r0, _0808064C
+ cmp r1, r0
+ bne _08080630
+ adds r0, r2, r5
+ bl DestroySprite
+_08080630:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3F
+ bls _08080616
+ ldr r0, _08080650
+ bl FreeSpriteTilesByTag
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080648: .4byte gSprites
+_0808064C: .4byte gSpriteTemplate_839ACBC
+_08080650: .4byte 0x00001205
+ thumb_func_end sub_8080610
+
+ thumb_func_start unc_0807DAB4
+unc_0807DAB4: @ 8080654
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x2E]
+ movs r2, 0
+ adds r0, 0x2
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _08080694
+ strh r2, [r1, 0x2E]
+ movs r3, 0x30
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _08080686
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _08080694
+ movs r0, 0x1
+ strh r0, [r1, 0x30]
+ b _08080694
+_08080686:
+ ldrh r0, [r1, 0x24]
+ subs r0, 0x1
+ strh r0, [r1, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _08080694
+ strh r2, [r1, 0x30]
+_08080694:
+ ldrh r0, [r1, 0x22]
+ subs r0, 0x3
+ strh r0, [r1, 0x22]
+ ldrh r0, [r1, 0x32]
+ adds r0, 0x1
+ strh r0, [r1, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x77
+ ble _080806AE
+ adds r0, r1, 0
+ bl DestroySprite
+_080806AE:
+ pop {r0}
+ bx r0
+ thumb_func_end unc_0807DAB4
+
+ thumb_func_start sub_80806B4
+sub_80806B4: @ 80806B4
+ push {r4,r5,lr}
+ ldr r4, _080806D4
+ adds r4, 0x2E
+ ldrb r5, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8080764
+ strb r0, [r4]
+ ldrb r0, [r4]
+ adds r1, r5, 0
+ bl sub_8080854
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080806D4: .4byte gSaveBlock1
+ thumb_func_end sub_80806B4
+
+ thumb_func_start sav1_get_weather_probably
+sav1_get_weather_probably: @ 80806D8
+ ldr r0, _080806E0
+ adds r0, 0x2E
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_080806E0: .4byte gSaveBlock1
+ thumb_func_end sav1_get_weather_probably
+
+ thumb_func_start sub_80806E4
+sub_80806E4: @ 80806E4
+ push {r4,r5,lr}
+ ldr r4, _08080704
+ adds r4, 0x2E
+ ldrb r5, [r4]
+ ldr r0, _08080708
+ ldrb r0, [r0, 0x16]
+ bl sub_8080764
+ strb r0, [r4]
+ ldrb r0, [r4]
+ adds r1, r5, 0
+ bl sub_8080854
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080704: .4byte gSaveBlock1
+_08080708: .4byte gMapHeader
+ thumb_func_end sub_80806E4
+
+ thumb_func_start sub_808070C
+sub_808070C: @ 808070C
+ push {lr}
+ bl sub_80806B4
+ bl sav1_get_weather_probably
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_807C91C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808070C
+
+ thumb_func_start sub_8080724
+sub_8080724: @ 8080724
+ push {lr}
+ bl sub_80806B4
+ bl sav1_get_weather_probably
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_807C988
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8080724
+
+ thumb_func_start sub_808073C
+sub_808073C: @ 808073C
+ push {lr}
+ bl sav1_get_weather_probably
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_807C91C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808073C
+
+ thumb_func_start sub_8080750
+sub_8080750: @ 8080750
+ push {lr}
+ bl sav1_get_weather_probably
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_807C988
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8080750
+
+ thumb_func_start sub_8080764
+sub_8080764: @ 8080764
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x15
+ bhi _0808082C
+ lsls r0, 2
+ ldr r1, _08080778
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08080778: .4byte _0808077C
+ .align 2, 0
+_0808077C:
+ .4byte _0808082C
+ .4byte _080807D4
+ .4byte _080807D8
+ .4byte _080807DC
+ .4byte _080807E0
+ .4byte _080807E4
+ .4byte _080807E8
+ .4byte _080807EC
+ .4byte _080807F0
+ .4byte _080807F4
+ .4byte _080807F8
+ .4byte _080807FC
+ .4byte _08080800
+ .4byte _08080804
+ .4byte _08080808
+ .4byte _0808082C
+ .4byte _0808082C
+ .4byte _0808082C
+ .4byte _0808082C
+ .4byte _0808082C
+ .4byte _0808080C
+ .4byte _08080814
+_080807D4:
+ movs r0, 0x1
+ b _0808082E
+_080807D8:
+ movs r0, 0x2
+ b _0808082E
+_080807DC:
+ movs r0, 0x3
+ b _0808082E
+_080807E0:
+ movs r0, 0x4
+ b _0808082E
+_080807E4:
+ movs r0, 0x5
+ b _0808082E
+_080807E8:
+ movs r0, 0x6
+ b _0808082E
+_080807EC:
+ movs r0, 0x7
+ b _0808082E
+_080807F0:
+ movs r0, 0x8
+ b _0808082E
+_080807F4:
+ movs r0, 0x9
+ b _0808082E
+_080807F8:
+ movs r0, 0xA
+ b _0808082E
+_080807FC:
+ movs r0, 0xB
+ b _0808082E
+_08080800:
+ movs r0, 0xC
+ b _0808082E
+_08080804:
+ movs r0, 0xD
+ b _0808082E
+_08080808:
+ movs r0, 0xE
+ b _0808082E
+_0808080C:
+ ldr r1, _08080810
+ b _08080816
+ .align 2, 0
+_08080810: .4byte gUnknown_0839ACD4
+_08080814:
+ ldr r1, _08080824
+_08080816:
+ ldr r0, _08080828
+ adds r0, 0x2F
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ b _0808082E
+ .align 2, 0
+_08080824: .4byte gUnknown_0839ACD8
+_08080828: .4byte gSaveBlock1
+_0808082C:
+ movs r0, 0
+_0808082E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8080764
+
+ thumb_func_start sub_8080834
+sub_8080834: @ 8080834
+ lsls r0, 16
+ ldr r2, _08080850
+ adds r2, 0x2F
+ lsrs r0, 16
+ ldrb r1, [r2]
+ adds r0, r1
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r0
+ lsrs r1, 16
+ strb r1, [r2]
+ bx lr
+ .align 2, 0
+_08080850: .4byte gSaveBlock1
+ thumb_func_end sub_8080834
+
+ thumb_func_start sub_8080854
+sub_8080854: @ 8080854
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r2, r0, 24
+ cmp r0, r1
+ beq _0808086E
+ cmp r2, 0x3
+ beq _08080868
+ cmp r2, 0x5
+ bne _0808086E
+_08080868:
+ movs r0, 0x28
+ bl sav12_xor_increment
+_0808086E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8080854
+
+ thumb_func_start palette_bg_faded_fill_black
+palette_bg_faded_fill_black: @ 8080874
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _0808088C
+ str r0, [sp]
+ ldr r1, _08080890
+ ldr r2, _08080894
+ mov r0, sp
+ bl CpuFastSet
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808088C: .4byte 0x7fff7fff
+_08080890: .4byte gPlttBufferFaded
+_08080894: .4byte 0x01000100
+ thumb_func_end palette_bg_faded_fill_black
+
+ thumb_func_start palette_bg_faded_fill_white
+palette_bg_faded_fill_white: @ 8080898
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ ldr r1, _080808B0
+ ldr r2, _080808B4
+ mov r0, sp
+ bl CpuFastSet
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080808B0: .4byte gPlttBufferFaded
+_080808B4: .4byte 0x01000100
+ thumb_func_end palette_bg_faded_fill_white
+
+ thumb_func_start pal_fill_for_maplights
+pal_fill_for_maplights: @ 80808B8
+ push {r4,lr}
+ bl get_map_light_from_warp0
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sav1_map_get_light_level
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl fade_type_for_given_maplight_pair
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080808E2
+ cmp r0, 0x1
+ beq _080808F0
+ b _080808FC
+_080808E2:
+ movs r0, 0
+ movs r1, 0
+ bl fade_screen
+ bl palette_bg_faded_fill_white
+ b _080808FC
+_080808F0:
+ movs r0, 0x2
+ movs r1, 0
+ bl fade_screen
+ bl palette_bg_faded_fill_black
+_080808FC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end pal_fill_for_maplights
+
+ thumb_func_start pal_fill_black
+pal_fill_black: @ 8080904
+ push {lr}
+ movs r0, 0
+ movs r1, 0
+ bl fade_screen
+ bl palette_bg_faded_fill_white
+ pop {r0}
+ bx r0
+ thumb_func_end pal_fill_black
+
+ thumb_func_start sub_8080918
+sub_8080918: @ 8080918
+ push {r4,lr}
+ bl sav1_map_get_light_level
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl warp1_get_mapheader
+ ldrb r1, [r0, 0x17]
+ adds r0, r4, 0
+ bl sub_810CDB8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0808093E
+ cmp r0, 0x1
+ beq _08080948
+ b _08080950
+_0808093E:
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ b _08080950
+_08080948:
+ movs r0, 0x3
+ movs r1, 0
+ bl fade_screen
+_08080950:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8080918
+
+ thumb_func_start sub_8080958
+sub_8080958: @ 8080958
+ push {lr}
+ lsls r0, 24
+ movs r1, 0
+ cmp r0, 0
+ bne _08080964
+ movs r1, 0x1
+_08080964:
+ adds r0, r1, 0
+ bl sub_8059B88
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8080958
+
+ thumb_func_start task0A_asap_script_env_2_enable_and_set_ctx_running
+task0A_asap_script_env_2_enable_and_set_ctx_running: @ 8080970
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8080E70
+ cmp r0, 0x1
+ bne _08080988
+ adds r0, r4, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+_08080988:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end task0A_asap_script_env_2_enable_and_set_ctx_running
+
+ thumb_func_start sub_8080990
+sub_8080990: @ 8080990
+ push {lr}
+ bl ScriptContext2_Enable
+ bl sub_8053E90
+ bl pal_fill_black
+ ldr r0, _080809AC
+ movs r1, 0xA
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080809AC: .4byte task0A_asap_script_env_2_enable_and_set_ctx_running
+ thumb_func_end sub_8080990
+
+ thumb_func_start sub_80809B0
+sub_80809B0: @ 80809B0
+ push {lr}
+ bl ScriptContext2_Enable
+ bl pal_fill_black
+ ldr r0, _080809C8
+ movs r1, 0xA
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080809C8: .4byte task0A_asap_script_env_2_enable_and_set_ctx_running
+ thumb_func_end sub_80809B0
+
+ thumb_func_start task_mpl_807DD60
+task_mpl_807DD60: @ 80809CC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r2, _080809F0
+ adds r4, r0, r2
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08080A06
+ cmp r0, 0x1
+ bgt _080809F4
+ cmp r0, 0
+ beq _080809FA
+ b _08080A36
+ .align 2, 0
+_080809F0: .4byte gTasks
+_080809F4:
+ cmp r0, 0x2
+ beq _08080A24
+ b _08080A36
+_080809FA:
+ bl sub_8083664
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xA]
+ b _08080A1C
+_08080A06:
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0x1
+ beq _08080A36
+ bl pal_fill_for_maplights
+_08080A1C:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08080A36
+_08080A24:
+ bl sub_8080E70
+ cmp r0, 0x1
+ bne _08080A36
+ bl ScriptContext2_Disable
+ adds r0, r5, 0
+ bl DestroyTask
+_08080A36:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end task_mpl_807DD60
+
+ thumb_func_start sub_8080A3C
+sub_8080A3C: @ 8080A3C
+ push {lr}
+ bl ScriptContext2_Enable
+ bl sub_8053E90
+ bl palette_bg_faded_fill_white
+ ldr r0, _08080A58
+ movs r1, 0xA
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080A58: .4byte task_mpl_807DD60
+ thumb_func_end sub_8080A3C
+
+ thumb_func_start sub_8080A5C
+sub_8080A5C: @ 8080A5C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _08080A80
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08080A90
+ cmp r0, 0x1
+ bgt _08080A84
+ cmp r0, 0
+ beq _08080A8A
+ b _08080ABC
+ .align 2, 0
+_08080A80: .4byte gTasks
+_08080A84:
+ cmp r0, 0x2
+ beq _08080AA6
+ b _08080ABC
+_08080A8A:
+ bl sub_80084A4
+ b _08080A9E
+_08080A90:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08080ABC
+ bl pal_fill_for_maplights
+_08080A9E:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08080ABC
+_08080AA6:
+ bl sub_8080E70
+ cmp r0, 0x1
+ bne _08080ABC
+ bl sub_8007B14
+ bl ScriptContext2_Disable
+ adds r0, r5, 0
+ bl DestroyTask
+_08080ABC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8080A5C
+
+ thumb_func_start sub_8080AC4
+sub_8080AC4: @ 8080AC4
+ push {lr}
+ bl ScriptContext2_Enable
+ bl sub_8053E90
+ bl palette_bg_faded_fill_white
+ ldr r0, _08080AE0
+ movs r1, 0xA
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080AE0: .4byte sub_8080A5C
+ thumb_func_end sub_8080AC4
+
+ thumb_func_start sub_8080AE4
+sub_8080AE4: @ 8080AE4
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8056EAC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08080B1C
+ ldr r1, _08080B18
+ b _08080B2E
+ .align 2, 0
+_08080B18: .4byte sub_8080B9C
+_08080B1C:
+ adds r0, r4, 0
+ bl sub_8056F08
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08080B40
+ cmp r0, 0x1
+ bne _08080B2E
+ ldr r1, _08080B44
+_08080B2E:
+ adds r0, r1, 0
+ movs r1, 0xA
+ bl CreateTask
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080B40: .4byte task_map_chg_seq_0807E2CC
+_08080B44: .4byte task_map_chg_seq_0807E20C
+ thumb_func_end sub_8080AE4
+
+ thumb_func_start mapldr_default
+mapldr_default: @ 8080B48
+ push {lr}
+ bl sub_8053E90
+ bl pal_fill_for_maplights
+ bl sub_8080AE4
+ bl ScriptContext2_Enable
+ pop {r0}
+ bx r0
+ thumb_func_end mapldr_default
+
+ thumb_func_start sub_8080B60
+sub_8080B60: @ 8080B60
+ push {lr}
+ bl sub_8053E90
+ bl pal_fill_black
+ bl sub_8080AE4
+ bl ScriptContext2_Enable
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8080B60
+
+ thumb_func_start sub_8080B78
+sub_8080B78: @ 8080B78
+ push {lr}
+ bl sub_8053E90
+ bl pal_fill_for_maplights
+ movs r0, 0x2E
+ bl PlaySE
+ ldr r0, _08080B98
+ movs r1, 0xA
+ bl CreateTask
+ bl ScriptContext2_Enable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080B98: .4byte task_map_chg_seq_0807E2CC
+ thumb_func_end sub_8080B78
+
+ thumb_func_start sub_8080B9C
+sub_8080B9C: @ 8080B9C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _08080BC8
+ adds r5, r0, r1
+ adds r6, r5, 0
+ adds r6, 0xC
+ adds r7, r5, 0
+ adds r7, 0xE
+ movs r2, 0x8
+ ldrsh r0, [r5, r2]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bhi _08080CAE
+ lsls r0, 2
+ ldr r1, _08080BCC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08080BC8: .4byte gTasks
+_08080BCC: .4byte _08080BD0
+ .align 2, 0
+_08080BD0:
+ .4byte _08080BE4
+ .4byte _08080C08
+ .4byte _08080C40
+ .4byte _08080C84
+ .4byte _08080CA4
+_08080BE4:
+ movs r0, 0
+ bl sub_8080958
+ bl player_bitmagic
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl PlayerGetDestCoords
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ movs r2, 0
+ ldrsh r1, [r7, r2]
+ bl sub_80586B4
+ movs r0, 0x1
+ strh r0, [r5, 0x8]
+ b _08080CAE
+_08080C08:
+ bl sub_8080E70
+ cmp r0, 0
+ beq _08080CAE
+ movs r0, 0x1
+ bl sub_8080958
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08080C3C
+ adds r0, r1
+ movs r1, 0x8
+ bl FieldObjectSetSpecialAnim
+ movs r0, 0x2
+ strh r0, [r5, 0x8]
+ b _08080CAE
+ .align 2, 0
+_08080C3C: .4byte gMapObjects
+_08080C40:
+ bl walkrun_is_standing_still
+ lsls r0, 24
+ cmp r0, 0
+ beq _08080CAE
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ movs r2, 0
+ ldrsh r1, [r7, r2]
+ bl sub_805870C
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r5, 0xA]
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08080C80
+ adds r0, r1
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ movs r0, 0x3
+ strh r0, [r5, 0x8]
+ b _08080CAE
+ .align 2, 0
+_08080C80: .4byte gMapObjects
+_08080C84:
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ blt _08080C9A
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0x1
+ beq _08080CAE
+_08080C9A:
+ bl sub_806451C
+ movs r0, 0x4
+ strh r0, [r5, 0x8]
+ b _08080CAE
+_08080CA4:
+ bl ScriptContext2_Disable
+ adds r0, r4, 0
+ bl DestroyTask
+_08080CAE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8080B9C
+
+ thumb_func_start task_map_chg_seq_0807E20C
+task_map_chg_seq_0807E20C: @ 8080CB4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _08080CE0
+ adds r5, r0, r1
+ adds r6, r5, 0
+ adds r6, 0xC
+ adds r7, r5, 0
+ adds r7, 0xE
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _08080D06
+ cmp r0, 0x1
+ bgt _08080CE4
+ cmp r0, 0
+ beq _08080CEE
+ b _08080D6E
+ .align 2, 0
+_08080CE0: .4byte gTasks
+_08080CE4:
+ cmp r0, 0x2
+ beq _08080D50
+ cmp r0, 0x3
+ beq _08080D64
+ b _08080D6E
+_08080CEE:
+ movs r0, 0
+ bl sub_8080958
+ bl player_bitmagic
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl PlayerGetDestCoords
+ movs r0, 0x1
+ strh r0, [r5, 0x8]
+ b _08080D6E
+_08080D06:
+ bl sub_8080E70
+ cmp r0, 0
+ beq _08080D6E
+ movs r0, 0x1
+ bl sub_8080958
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _08080D4C
+ adds r4, r0
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetGoSpeed0AnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl FieldObjectSetSpecialAnim
+ movs r0, 0x2
+ strh r0, [r5, 0x8]
+ b _08080D6E
+ .align 2, 0
+_08080D4C: .4byte gMapObjects
+_08080D50:
+ bl walkrun_is_standing_still
+ lsls r0, 24
+ cmp r0, 0
+ beq _08080D6E
+ bl sub_806451C
+ movs r0, 0x3
+ strh r0, [r5, 0x8]
+ b _08080D6E
+_08080D64:
+ bl ScriptContext2_Disable
+ adds r0, r4, 0
+ bl DestroyTask
+_08080D6E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end task_map_chg_seq_0807E20C
+
+ thumb_func_start task_map_chg_seq_0807E2CC
+task_map_chg_seq_0807E2CC: @ 8080D74
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08080D94
+ 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 _08080D98
+ cmp r0, 0x1
+ beq _08080DA8
+ b _08080DBE
+ .align 2, 0
+_08080D94: .4byte gTasks
+_08080D98:
+ bl player_bitmagic
+ bl ScriptContext2_Enable
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08080DBE
+_08080DA8:
+ bl sub_8080E70
+ cmp r0, 0
+ beq _08080DBE
+ bl sub_806451C
+ bl ScriptContext2_Disable
+ adds r0, r5, 0
+ bl DestroyTask
+_08080DBE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end task_map_chg_seq_0807E2CC
+
+ thumb_func_start sub_8080DC4
+sub_8080DC4: @ 8080DC4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8080E70
+ cmp r0, 0x1
+ bne _08080DE0
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r0, _08080DE8
+ movs r1, 0x50
+ bl CreateTask
+_08080DE0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080DE8: .4byte sub_80712B4
+ thumb_func_end sub_8080DC4
+
+ thumb_func_start atk17_seteffectuser
+atk17_seteffectuser: @ 8080DEC
+ push {lr}
+ bl pal_fill_black
+ ldr r0, _08080E00
+ bl CreateStartMenuTask
+ bl ScriptContext2_Enable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080E00: .4byte sub_8080DC4
+ thumb_func_end atk17_seteffectuser
+
+ thumb_func_start task_mpl_807E3C8
+task_mpl_807E3C8: @ 8080E04
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8080E70
+ cmp r0, 0x1
+ bne _08080E20
+ bl ScriptContext2_Disable
+ adds r0, r4, 0
+ bl DestroyTask
+ bl sub_8064E2C
+_08080E20:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end task_mpl_807E3C8
+
+ thumb_func_start sub_8080E28
+sub_8080E28: @ 8080E28
+ push {lr}
+ bl ScriptContext2_Enable
+ bl pal_fill_black
+ ldr r0, _08080E40
+ movs r1, 0xA
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080E40: .4byte task_mpl_807E3C8
+ thumb_func_end sub_8080E28
+
+ thumb_func_start sub_8080E44
+sub_8080E44: @ 8080E44
+ push {lr}
+ bl ScriptContext2_Enable
+ bl sub_8053E90
+ bl pal_fill_black
+ ldr r0, _08080E60
+ movs r1, 0xA
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080E60: .4byte task_mpl_807E3C8
+ thumb_func_end sub_8080E44
+
+ thumb_func_start sub_8080E64
+sub_8080E64: @ 8080E64
+ ldr r0, _08080E6C
+ ldrb r0, [r0, 0x7]
+ lsrs r0, 7
+ bx lr
+ .align 2, 0
+_08080E6C: .4byte gPaletteFade
+ thumb_func_end sub_8080E64
+
+ thumb_func_start sub_8080E70
+sub_8080E70: @ 8080E70
+ push {lr}
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08080E82
+ movs r0, 0
+ b _08080E84
+_08080E82:
+ movs r0, 0x1
+_08080E84:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8080E70
+
+ thumb_func_start sub_8080E88
+sub_8080E88: @ 8080E88
+ push {lr}
+ bl ScriptContext2_Enable
+ bl sub_8053FF8
+ bl sub_8080918
+ bl play_some_sound
+ movs r0, 0x9
+ bl PlaySE
+ ldr r0, _08080EB4
+ ldr r1, _08080EB8
+ str r1, [r0]
+ ldr r0, _08080EBC
+ movs r1, 0xA
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080EB4: .4byte gUnknown_0300485C
+_08080EB8: .4byte mapldr_default
+_08080EBC: .4byte task0A_fade_n_map_maybe
+ thumb_func_end sub_8080E88
+
+ thumb_func_start sp13E_warp_to_last_warp
+sp13E_warp_to_last_warp: @ 8080EC0
+ push {lr}
+ bl ScriptContext2_Enable
+ bl sub_8053FF8
+ bl sub_8080918
+ bl play_some_sound
+ ldr r0, _08080EE4
+ ldr r1, _08080EE8
+ str r1, [r0]
+ ldr r0, _08080EEC
+ movs r1, 0xA
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080EE4: .4byte gUnknown_0300485C
+_08080EE8: .4byte mapldr_default
+_08080EEC: .4byte task0A_fade_n_map_maybe
+ thumb_func_end sp13E_warp_to_last_warp
+
+ thumb_func_start sub_8080EF0
+sub_8080EF0: @ 8080EF0
+ push {lr}
+ bl ScriptContext2_Enable
+ ldr r0, _08080F08
+ ldr r1, _08080F0C
+ str r1, [r0]
+ ldr r0, _08080F10
+ movs r1, 0xA
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080F08: .4byte gUnknown_0300485C
+_08080F0C: .4byte mapldr_default
+_08080F10: .4byte sub_808115C
+ thumb_func_end sub_8080EF0
+
+ thumb_func_start sp13F_fall_to_last_warp
+sp13F_fall_to_last_warp: @ 8080F14
+ push {lr}
+ bl sp13E_warp_to_last_warp
+ ldr r1, _08080F24
+ ldr r0, _08080F28
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080F24: .4byte gUnknown_0300485C
+_08080F28: .4byte sub_8086748
+ thumb_func_end sp13F_fall_to_last_warp
+
+ thumb_func_start sub_8080F2C
+sub_8080F2C: @ 8080F2C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl ScriptContext2_Enable
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl sub_8086A2C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8080F2C
+
+ thumb_func_start sub_8080F48
+sub_8080F48: @ 8080F48
+ push {lr}
+ bl ScriptContext2_Enable
+ movs r0, 0xA
+ bl sub_80871B8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8080F48
+
+ thumb_func_start sub_8080F58
+sub_8080F58: @ 8080F58
+ push {lr}
+ bl ScriptContext2_Enable
+ movs r0, 0xA
+ bl sub_8087654
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8080F58
+
+ thumb_func_start sub_8080F68
+sub_8080F68: @ 8080F68
+ push {lr}
+ bl ScriptContext2_Enable
+ bl sub_8053FF8
+ bl sub_8080918
+ movs r0, 0x2D
+ bl PlaySE
+ ldr r0, _08080F90
+ movs r1, 0xA
+ bl CreateTask
+ ldr r1, _08080F94
+ ldr r0, _08080F98
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080F90: .4byte task0A_fade_n_map_maybe
+_08080F94: .4byte gUnknown_0300485C
+_08080F98: .4byte sub_8080B78
+ thumb_func_end sub_8080F68
+
+ thumb_func_start sub_8080F9C
+sub_8080F9C: @ 8080F9C
+ push {lr}
+ bl ScriptContext2_Enable
+ bl sub_8080918
+ ldr r0, _08080FB8
+ movs r1, 0xA
+ bl CreateTask
+ ldr r1, _08080FBC
+ ldr r0, _08080FC0
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08080FB8: .4byte task0A_fade_n_map_maybe
+_08080FBC: .4byte gUnknown_0300485C
+_08080FC0: .4byte sub_80C791C
+ thumb_func_end sub_8080F9C
+
+ thumb_func_start sub_8080FC4
+sub_8080FC4: @ 8080FC4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _08080FE8
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08080FF8
+ cmp r0, 0x1
+ bgt _08080FEC
+ cmp r0, 0
+ beq _08080FF2
+ b _08081022
+ .align 2, 0
+_08080FE8: .4byte gTasks
+_08080FEC:
+ cmp r0, 0x2
+ beq _08081012
+ b _08081022
+_08080FF2:
+ bl ScriptContext2_Enable
+ b _0808100A
+_08080FF8:
+ bl sub_8080E64
+ cmp r0, 0
+ bne _08081022
+ bl sub_8054034
+ lsls r0, 24
+ cmp r0, 0
+ beq _08081022
+_0808100A:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08081022
+_08081012:
+ bl warp_in
+ ldr r0, _08081028
+ bl SetMainCallback2
+ adds r0, r5, 0
+ bl DestroyTask
+_08081022:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081028: .4byte sub_8054588
+ thumb_func_end sub_8080FC4
+
+ thumb_func_start sub_808102C
+sub_808102C: @ 808102C
+ push {lr}
+ bl ScriptContext2_Enable
+ bl sub_8053FF8
+ bl sub_8080918
+ movs r0, 0x9
+ bl PlaySE
+ ldr r0, _0808104C
+ movs r1, 0xA
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808104C: .4byte sub_8080FC4
+ thumb_func_end sub_808102C
+
+ thumb_func_start sub_8081050
+sub_8081050: @ 8081050
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _08081074
+ adds r4, r0, r1
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08081096
+ cmp r0, 0x1
+ bgt _08081078
+ cmp r0, 0
+ beq _0808107E
+ b _080810CC
+ .align 2, 0
+_08081074: .4byte gUnknown_03004B28
+_08081078:
+ cmp r0, 0x2
+ beq _080810B4
+ b _080810CC
+_0808107E:
+ bl ClearLinkCallback_2
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ bl sub_8053FF8
+ movs r0, 0x9
+ bl PlaySE
+ b _080810AC
+_08081096:
+ bl sub_8080E64
+ cmp r0, 0
+ bne _080810CC
+ bl sub_8054034
+ lsls r0, 24
+ cmp r0, 0
+ beq _080810CC
+ bl sub_800832C
+_080810AC:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080810CC
+_080810B4:
+ ldr r0, _080810D4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080810CC
+ bl warp_in
+ ldr r0, _080810D8
+ bl SetMainCallback2
+ adds r0, r5, 0
+ bl DestroyTask
+_080810CC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080810D4: .4byte gReceivedRemoteLinkPlayers
+_080810D8: .4byte CB2_LoadMap
+ thumb_func_end sub_8081050
+
+ thumb_func_start sub_80810DC
+sub_80810DC: @ 80810DC
+ push {lr}
+ ldr r0, _080810EC
+ movs r1, 0xA
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080810EC: .4byte sub_8081050
+ thumb_func_end sub_80810DC
+
+ thumb_func_start task0A_fade_n_map_maybe
+task0A_fade_n_map_maybe: @ 80810F0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _08081114
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08081128
+ cmp r0, 0x1
+ bgt _08081118
+ cmp r0, 0
+ beq _0808111E
+ b _08081152
+ .align 2, 0
+_08081114: .4byte gTasks
+_08081118:
+ cmp r0, 0x2
+ beq _08081142
+ b _08081152
+_0808111E:
+ bl player_bitmagic
+ bl ScriptContext2_Enable
+ b _0808113A
+_08081128:
+ bl sub_8080E64
+ cmp r0, 0
+ bne _08081152
+ bl sub_8054034
+ lsls r0, 24
+ cmp r0, 0
+ beq _08081152
+_0808113A:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08081152
+_08081142:
+ bl warp_in
+ ldr r0, _08081158
+ bl SetMainCallback2
+ adds r0, r5, 0
+ bl DestroyTask
+_08081152:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081158: .4byte CB2_LoadMap
+ thumb_func_end task0A_fade_n_map_maybe
+
+ thumb_func_start sub_808115C
+sub_808115C: @ 808115C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _0808118C
+ adds r5, r1, r0
+ adds r4, r5, 0
+ adds r4, 0xC
+ adds r6, r5, 0
+ adds r6, 0xE
+ movs r2, 0x8
+ ldrsh r1, [r5, r2]
+ adds r2, r0, 0
+ cmp r1, 0x4
+ bls _08081180
+ b _080812BC
+_08081180:
+ lsls r0, r1, 2
+ ldr r1, _08081190
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0808118C: .4byte gTasks
+_08081190: .4byte _08081194
+ .align 2, 0
+_08081194:
+ .4byte _080811A8
+ .4byte _080811E4
+ .4byte _08081240
+ .4byte _0808128C
+ .4byte _080812A8
+_080811A8:
+ bl player_bitmagic
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl PlayerGetDestCoords
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0
+ ldrsh r1, [r6, r2]
+ subs r1, 0x1
+ bl sub_8058790
+ lsls r0, 16
+ lsrs r0, 16
+ bl PlaySE
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0
+ ldrsh r1, [r6, r2]
+ subs r1, 0x1
+ bl task_overworld_door_add_if_role_69_for_opening_door_at
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r5, 0xA]
+ movs r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080812BC
+_080811E4:
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ blt _080811FA
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0x1
+ beq _080812BC
+_080811FA:
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0808123C
+ adds r0, r4
+ bl FieldObjectClearAnimIfSpecialAnimActive
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x9
+ bl FieldObjectSetSpecialAnim
+ movs r0, 0x2
+ strh r0, [r5, 0x8]
+ b _080812BC
+ .align 2, 0
+_0808123C: .4byte gMapObjects
+_08081240:
+ bl walkrun_is_standing_still
+ lsls r0, 24
+ cmp r0, 0
+ beq _080812BC
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ movs r2, 0
+ ldrsh r1, [r6, r2]
+ subs r1, 0x1
+ bl sub_805870C
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r5, 0xA]
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08081288
+ adds r0, r1
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ movs r0, 0
+ bl sub_8080958
+ movs r0, 0x3
+ strh r0, [r5, 0x8]
+ b _080812BC
+ .align 2, 0
+_08081288: .4byte gMapObjects
+_0808128C:
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ blt _080812A2
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0x1
+ beq _080812BC
+_080812A2:
+ movs r0, 0x4
+ strh r0, [r5, 0x8]
+ b _080812BC
+_080812A8:
+ bl sub_8053FF8
+ bl sub_8080918
+ bl play_some_sound
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ ldr r0, _080812C4
+ str r0, [r5]
+_080812BC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080812C4: .4byte task0A_fade_n_map_maybe
+ thumb_func_end sub_808115C
+
+ thumb_func_start sub_80812C8
+sub_80812C8: @ 80812C8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080812EC
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08081300
+ cmp r0, 0x1
+ bgt _080812F0
+ cmp r0, 0
+ beq _080812F6
+ b _0808132A
+ .align 2, 0
+_080812EC: .4byte gTasks
+_080812F0:
+ cmp r0, 0x2
+ beq _0808131A
+ b _0808132A
+_080812F6:
+ bl player_bitmagic
+ bl ScriptContext2_Enable
+ b _08081312
+_08081300:
+ bl sub_8080E64
+ cmp r0, 0
+ bne _0808132A
+ bl sub_8054034
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808132A
+_08081312:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0808132A
+_0808131A:
+ bl warp_in
+ ldr r0, _08081330
+ bl SetMainCallback2
+ adds r0, r5, 0
+ bl DestroyTask
+_0808132A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081330: .4byte sub_8054534
+ thumb_func_end sub_80812C8
+
+ thumb_func_start sub_8081334
+sub_8081334: @ 8081334
+ push {lr}
+ bl ScriptContext2_Enable
+ bl sub_8053FF8
+ bl sub_8080918
+ bl play_some_sound
+ movs r0, 0x9
+ bl PlaySE
+ ldr r0, _08081360
+ ldr r1, _08081364
+ str r1, [r0]
+ ldr r0, _08081368
+ movs r1, 0xA
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081360: .4byte gUnknown_0300485C
+_08081364: .4byte sub_8080B60
+_08081368: .4byte sub_80812C8
+ thumb_func_end sub_8081334
+
+ thumb_func_start sub_808136C
+sub_808136C: @ 808136C
+ push {lr}
+ cmp r1, 0xA0
+ bhi _08081394
+ cmp r2, 0
+ bge _08081378
+ movs r2, 0
+_08081378:
+ cmp r2, 0xFF
+ ble _0808137E
+ movs r2, 0xFF
+_0808137E:
+ cmp r3, 0
+ bge _08081384
+ movs r3, 0
+_08081384:
+ cmp r3, 0xFF
+ ble _0808138A
+ movs r3, 0xFF
+_0808138A:
+ lsls r1, 1
+ adds r1, r0
+ lsls r0, r2, 8
+ orrs r0, r3
+ strh r0, [r1]
+_08081394:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808136C
+
+ thumb_func_start sub_8081398
+sub_8081398: @ 8081398
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ str r0, [sp]
+ mov r10, r1
+ mov r9, r2
+ adds r6, r3, 0
+ mov r8, r6
+ movs r7, 0
+ cmp r6, 0
+ blt _08081414
+_080813B4:
+ mov r0, r9
+ subs r1, r0, r7
+ mov r0, r10
+ subs r4, r0, r6
+ adds r5, r0, r6
+ ldr r0, [sp]
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_808136C
+ mov r0, r9
+ adds r1, r0, r7
+ ldr r0, [sp]
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_808136C
+ mov r0, r9
+ subs r1, r0, r6
+ mov r0, r10
+ subs r4, r0, r7
+ adds r5, r0, r7
+ ldr r0, [sp]
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_808136C
+ mov r0, r9
+ adds r1, r0, r6
+ ldr r0, [sp]
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_808136C
+ mov r1, r8
+ adds r1, 0x1
+ lsls r0, r7, 1
+ subs r1, r0
+ mov r8, r1
+ adds r7, 0x1
+ cmp r1, 0
+ bge _08081410
+ subs r1, r6, 0x1
+ lsls r0, r1, 1
+ add r8, r0
+ adds r6, r1, 0
+_08081410:
+ cmp r6, r7
+ bge _080813B4
+_08081414:
+ 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_8081398
+
+ thumb_func_start sub_8081424
+sub_8081424: @ 8081424
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _08081448
+ adds r4, r0, r1
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08081480
+ cmp r0, 0x1
+ bgt _0808144C
+ cmp r0, 0
+ beq _08081452
+ b _080814E2
+ .align 2, 0
+_08081448: .4byte gUnknown_03004B28
+_0808144C:
+ cmp r0, 0x2
+ beq _080814D8
+ b _080814E2
+_08081452:
+ ldr r0, _08081478
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ ldr r1, _0808147C
+ adds r0, r1
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ movs r5, 0x6
+ ldrsh r3, [r4, r5]
+ bl sub_8081398
+ movs r0, 0x1
+ strh r0, [r4]
+ b _080814E2
+ .align 2, 0
+_08081478: .4byte gUnknown_03004DC0
+_0808147C: .4byte gUnknown_03004DE0
+_08081480:
+ ldr r0, _080814C8
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ ldr r1, _080814CC
+ adds r0, r1
+ movs r6, 0x2
+ ldrsh r1, [r4, r6]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ movs r6, 0x6
+ ldrsh r3, [r4, r6]
+ bl sub_8081398
+ movs r0, 0
+ strh r0, [r4]
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r4, 0x6]
+ adds r0, r1
+ strh r0, [r4, 0x6]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ ble _080814E2
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ bne _080814D0
+ bl remove_some_task
+ movs r0, 0x2
+ strh r0, [r4]
+ b _080814E2
+ .align 2, 0
+_080814C8: .4byte gUnknown_03004DC0
+_080814CC: .4byte gUnknown_03004DE0
+_080814D0:
+ adds r0, r5, 0
+ bl DestroyTask
+ b _080814E2
+_080814D8:
+ bl dp12_8087EA4
+ adds r0, r5, 0
+ bl DestroyTask
+_080814E2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081424
+
+ thumb_func_start sub_80814E8
+sub_80814E8: @ 80814E8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808150C
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ bne _08081504
+ bl EnableBothScriptContexts
+ adds r0, r4, 0
+ bl DestroyTask
+_08081504:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808150C: .4byte sub_8081424
+ thumb_func_end sub_80814E8
+
+ thumb_func_start sub_8081510
+sub_8081510: @ 8081510
+ push {r4,lr}
+ ldr r4, _08081530
+ adds r0, r4, 0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ bne _08081528
+ adds r0, r4, 0
+ movs r1, 0x50
+ bl CreateTask
+_08081528:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081530: .4byte sub_80814E8
+ thumb_func_end sub_8081510
+
+ thumb_func_start sub_8081534
+sub_8081534: @ 8081534
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r8, r0
+ mov r9, r1
+ adds r5, r2, 0
+ adds r4, r3, 0
+ ldr r6, [sp, 0x1C]
+ ldr r0, [sp, 0x20]
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _08081578
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _0808157C
+ adds r1, r0, r1
+ strh r5, [r1, 0x6]
+ strh r4, [r1, 0x8]
+ mov r0, r8
+ strh r0, [r1, 0x2]
+ mov r0, r9
+ strh r0, [r1, 0x4]
+ strh r6, [r1, 0xC]
+ cmp r5, r4
+ bge _08081580
+ strh r7, [r1, 0xA]
+ b _08081584
+ .align 2, 0
+_08081578: .4byte sub_8081424
+_0808157C: .4byte gUnknown_03004B28
+_08081580:
+ negs r0, r7
+ strh r0, [r1, 0xA]
+_08081584:
+ adds r0, r2, 0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8081534
+
+ thumb_func_start sub_8081594
+sub_8081594: @ 8081594
+ push {r4,r5,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ bl sav1_get_flash_used_on_map
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ cmp r4, 0
+ bne _080815AE
+ movs r5, 0x1
+_080815AE:
+ ldr r1, _080815DC
+ lsls r0, 1
+ adds r0, r1
+ ldrh r2, [r0]
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r3, [r0]
+ str r5, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ movs r0, 0x78
+ movs r1, 0x50
+ bl sub_8081534
+ bl sub_8081510
+ bl ScriptContext2_Enable
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080815DC: .4byte gUnknown_0839ACDC
+ thumb_func_end sub_8081594
+
+ thumb_func_start sub_80815E0
+sub_80815E0: @ 80815E0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0808160E
+ ldr r4, _08081614
+ ldr r1, _08081618
+ lsls r0, 1
+ adds r0, r1
+ ldrh r3, [r0]
+ adds r0, r4, 0
+ movs r1, 0x78
+ movs r2, 0x50
+ bl sub_8081398
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r1, r4, r0
+ movs r2, 0xF0
+ lsls r2, 1
+ adds r0, r4, 0
+ bl CpuFastSet
+_0808160E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081614: .4byte gUnknown_03004DE0
+_08081618: .4byte gUnknown_0839ACDC
+ thumb_func_end sub_80815E0
+
+ thumb_func_start sub_808161C
+sub_808161C: @ 808161C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0808162A
+ movs r1, 0x1F
+ b _08081630
+_0808162A:
+ movs r0, 0xF8
+ lsls r0, 7
+ adds r1, r0, 0
+_08081630:
+ mov r0, sp
+ strh r1, [r0]
+ movs r5, 0
+ movs r4, 0xF0
+ lsls r4, 16
+_0808163A:
+ lsrs r1, r4, 16
+ mov r0, sp
+ movs r2, 0x2
+ bl LoadPalette
+ movs r0, 0x80
+ lsls r0, 9
+ adds r4, r0
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _0808163A
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808161C
+
+ thumb_func_start sub_8081658
+sub_8081658: @ 8081658
+ push {lr}
+ lsls r0, 16
+ ldr r2, _08081678
+ ldrh r1, [r2]
+ lsls r1, 24
+ lsrs r3, r1, 24
+ ldrh r1, [r2]
+ lsrs r2, r1, 8
+ cmp r0, 0
+ beq _0808167C
+ cmp r3, 0
+ beq _08081686
+ subs r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ b _08081686
+ .align 2, 0
+_08081678: .4byte REG_BLDALPHA
+_0808167C:
+ cmp r2, 0xF
+ bhi _08081686
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+_08081686:
+ ldr r1, _0808169C
+ lsls r0, r2, 8
+ orrs r0, r3
+ strh r0, [r1]
+ cmp r3, 0
+ bne _080816A0
+ cmp r2, 0x10
+ bne _080816A0
+ movs r0, 0x1
+ b _080816A2
+ .align 2, 0
+_0808169C: .4byte REG_BLDALPHA
+_080816A0:
+ movs r0, 0
+_080816A2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8081658
+
+ thumb_func_start sub_80816A8
+sub_80816A8: @ 80816A8
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080816D0
+ adds r7, r0, r1
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x7
+ bls _080816C4
+ b _08081892
+_080816C4:
+ lsls r0, 2
+ ldr r1, _080816D4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080816D0: .4byte gUnknown_03004B28
+_080816D4: .4byte _080816D8
+ .align 2, 0
+_080816D8:
+ .4byte _080816F8
+ .4byte _08081790
+ .4byte _080817BC
+ .4byte _080817D8
+ .4byte _080817EE
+ .4byte _08081852
+ .4byte _08081818
+ .4byte _08081826
+_080816F8:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ strh r0, [r7, 0xC]
+ ldr r3, _0808176C
+ ldrh r0, [r3]
+ strh r0, [r7, 0xE]
+ ldr r6, _08081770
+ ldrh r0, [r6]
+ strh r0, [r7, 0x10]
+ ldr r5, _08081774
+ ldrh r0, [r5]
+ strh r0, [r7, 0x12]
+ ldr r4, _08081778
+ ldrh r0, [r4]
+ strh r0, [r7, 0x14]
+ ldrh r1, [r2]
+ ldr r0, _0808177C
+ ands r0, r1
+ strh r0, [r2]
+ ldr r1, _08081780
+ ldrh r0, [r3]
+ ldrh r1, [r1]
+ orrs r0, r1
+ strh r0, [r3]
+ ldr r2, _08081784
+ adds r0, r2, 0
+ strh r0, [r6]
+ movs r0, 0x3F
+ strh r0, [r5]
+ movs r0, 0x1E
+ strh r0, [r4]
+ ldr r4, _08081788
+ movs r0, 0x4
+ ldrsh r1, [r7, r0]
+ movs r0, 0x6
+ ldrsh r2, [r7, r0]
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl sub_8081398
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r4, r2
+ movs r2, 0xF0
+ lsls r2, 1
+ adds r0, r4, 0
+ bl CpuFastSet
+ ldr r2, _0808178C
+ ldr r0, [r2]
+ ldr r1, [r2, 0x4]
+ ldr r2, [r2, 0x8]
+ bl sub_80895F8
+ movs r0, 0x1
+ strh r0, [r7]
+ b _08081892
+ .align 2, 0
+_0808176C: .4byte REG_BLDCNT
+_08081770: .4byte REG_BLDALPHA
+_08081774: .4byte REG_WININ
+_08081778: .4byte REG_WINOUT
+_0808177C: .4byte 0x0000bfff
+_08081780: .4byte gUnknown_081E29E8
+_08081784: .4byte 0x0000070c
+_08081788: .4byte gUnknown_03004DE0
+_0808178C: .4byte gUnknown_0839ACEC
+_08081790:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuFillWindowRectWithBlankTile
+ ldrb r0, [r7, 0x2]
+ bl sub_808161C
+ movs r1, 0x4
+ ldrsh r0, [r7, r1]
+ movs r2, 0x6
+ ldrsh r1, [r7, r2]
+ movs r2, 0x1
+ str r2, [sp]
+ movs r4, 0x2
+ str r4, [sp, 0x4]
+ movs r3, 0xA0
+ bl sub_8081534
+ strh r4, [r7]
+ b _08081892
+_080817BC:
+ ldr r0, _080817D4
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ bne _08081892
+ bl EnableBothScriptContexts
+ movs r0, 0x3
+ strh r0, [r7]
+ b _08081892
+ .align 2, 0
+_080817D4: .4byte sub_8081424
+_080817D8:
+ bl InstallCameraPanAheadCallback
+ movs r0, 0
+ bl SetCameraPanningCallback
+ movs r0, 0
+ strh r0, [r7, 0xA]
+ movs r0, 0x4
+ strh r0, [r7, 0x8]
+ strh r0, [r7]
+ b _08081892
+_080817EE:
+ ldrh r0, [r7, 0x8]
+ subs r0, 0x1
+ strh r0, [r7, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08081892
+ movs r0, 0x4
+ strh r0, [r7, 0x8]
+ ldrh r0, [r7, 0xA]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r7, 0xA]
+ movs r1, 0x4
+ negs r1, r1
+ cmp r0, 0
+ beq _08081810
+ movs r1, 0x4
+_08081810:
+ movs r0, 0
+ bl SetCameraPanning
+ b _08081892
+_08081818:
+ bl InstallCameraPanAheadCallback
+ movs r0, 0x8
+ strh r0, [r7, 0x8]
+ movs r0, 0x7
+ strh r0, [r7]
+ b _08081892
+_08081826:
+ ldrh r0, [r7, 0x8]
+ subs r0, 0x1
+ strh r0, [r7, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08081892
+ movs r0, 0x8
+ strh r0, [r7, 0x8]
+ ldrh r0, [r7, 0xA]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r7, 0xA]
+ ldrh r0, [r7, 0xA]
+ bl sub_8081658
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08081892
+ movs r0, 0x5
+ strh r0, [r7]
+ b _08081892
+_08081852:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r0, _0808189C
+ bl LoadFontDefaultPalette
+ ldr r1, _080818A0
+ movs r0, 0xFF
+ strh r0, [r1]
+ subs r1, 0x40
+ ldrh r0, [r7, 0xC]
+ strh r0, [r1]
+ adds r1, 0x50
+ ldrh r0, [r7, 0xE]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r7, 0x10]
+ strh r0, [r1]
+ subs r1, 0xA
+ ldrh r0, [r7, 0x12]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r7, 0x14]
+ strh r0, [r1]
+ bl EnableBothScriptContexts
+ adds r0, r4, 0
+ bl DestroyTask
+_08081892:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808189C: .4byte gWindowConfig_81E6CE4
+_080818A0: .4byte REG_WIN0H
+ thumb_func_end sub_80816A8
+
+ thumb_func_start sub_80818A4
+sub_80818A4: @ 80818A4
+ push {lr}
+ ldr r0, _080818CC
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080818D0
+ adds r1, r0
+ ldr r0, _080818D4
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080818D8
+ strh r0, [r1, 0x2]
+ movs r0, 0x68
+ b _080818F0
+ .align 2, 0
+_080818CC: .4byte sub_80816A8
+_080818D0: .4byte gUnknown_03004B28
+_080818D4: .4byte gScriptResult
+_080818D8:
+ cmp r0, 0x1
+ bne _080818E2
+ strh r0, [r1, 0x2]
+ movs r0, 0x68
+ b _080818F0
+_080818E2:
+ cmp r0, 0x2
+ bne _080818EA
+ movs r0, 0
+ b _080818EC
+_080818EA:
+ movs r0, 0x1
+_080818EC:
+ strh r0, [r1, 0x2]
+ movs r0, 0x78
+_080818F0:
+ strh r0, [r1, 0x4]
+ movs r0, 0x50
+ strh r0, [r1, 0x6]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80818A4
+
+ thumb_func_start sub_80818FC
+sub_80818FC: @ 80818FC
+ push {lr}
+ ldr r0, _0808191C
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08081920
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0x6
+ strh r0, [r1, 0x8]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808191C: .4byte sub_80816A8
+_08081920: .4byte gTasks
+ thumb_func_end sub_80818FC
+
+ thumb_func_start sub_8081924
+sub_8081924: @ 8081924
+ push {lr}
+ bl sub_8054044
+ ldr r0, _08081938
+ movs r1, 0x50
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081938: .4byte task50_0807F0C8
+ thumb_func_end sub_8081924
+
+ thumb_func_start task50_0807F0C8
+task50_0807F0C8: @ 808193C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8054034
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08081958
+ adds r0, r4, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+_08081958:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end task50_0807F0C8
+
+ thumb_func_start task01_battle_start
+task01_battle_start: @ 8081960
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _08081980
+ adds r4, r0, r1
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08081984
+ cmp r0, 0x1
+ beq _0808199A
+ b _080819BA
+ .align 2, 0
+_08081980: .4byte gUnknown_03004B28
+_08081984:
+ bl c3_80A0DD8_is_running
+ cmp r0, 0
+ bne _080819BA
+ ldrb r0, [r4, 0x2]
+ bl sub_811AABC
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080819BA
+_0808199A:
+ bl sub_811AAE8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080819BA
+ ldr r0, _080819C0
+ bl SetMainCallback2
+ bl prev_quest_postbuffer_cursor_backup_reset
+ bl overworld_poison_timer_set
+ adds r0, r5, 0
+ bl DestroyTask
+_080819BA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080819C0: .4byte sub_800E7C4
+ thumb_func_end task01_battle_start
+
+ thumb_func_start task_add_01_battle_start
+task_add_01_battle_start: @ 80819C4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r0, _080819F8
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080819FC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0xA]
+ adds r0, r5, 0
+ bl current_map_music_set__default_for_battle
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080819F8: .4byte task01_battle_start
+_080819FC: .4byte gTasks
+ thumb_func_end task_add_01_battle_start
+
+ thumb_func_start sub_8081A00
+sub_8081A00: @ 8081A00
+ push {lr}
+ bl GetSafariZoneFlag
+ cmp r0, 0
+ beq _08081A10
+ bl sub_8081AA4
+ b _08081A14
+_08081A10:
+ bl sub_8081A18
+_08081A14:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081A00
+
+ thumb_func_start sub_8081A18
+sub_8081A18: @ 8081A18
+ push {lr}
+ bl ScriptContext2_Enable
+ bl player_bitmagic
+ bl sub_80597F4
+ ldr r1, _08081A50
+ ldr r0, _08081A54
+ str r0, [r1, 0x8]
+ ldr r1, _08081A58
+ movs r0, 0
+ strh r0, [r1]
+ bl sub_8082034
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl task_add_01_battle_start
+ movs r0, 0x7
+ bl sav12_xor_increment
+ movs r0, 0x8
+ bl sav12_xor_increment
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081A50: .4byte gMain
+_08081A54: .4byte sub_8081C8C
+_08081A58: .4byte gUnknown_020239F8
+ thumb_func_end sub_8081A18
+
+ thumb_func_start sub_8081A5C
+sub_8081A5C: @ 8081A5C
+ push {lr}
+ bl ScriptContext2_Enable
+ bl player_bitmagic
+ bl sub_80597F4
+ ldr r1, _08081A98
+ ldr r0, _08081A9C
+ str r0, [r1, 0x8]
+ ldr r1, _08081AA0
+ movs r2, 0x80
+ lsls r2, 3
+ adds r0, r2, 0
+ strh r0, [r1]
+ bl sub_8082034
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl task_add_01_battle_start
+ movs r0, 0x7
+ bl sav12_xor_increment
+ movs r0, 0x8
+ bl sav12_xor_increment
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081A98: .4byte gMain
+_08081A9C: .4byte sub_8081C8C
+_08081AA0: .4byte gUnknown_020239F8
+ thumb_func_end sub_8081A5C
+
+ thumb_func_start sub_8081AA4
+sub_8081AA4: @ 8081AA4
+ push {lr}
+ bl ScriptContext2_Enable
+ bl player_bitmagic
+ bl sub_80597F4
+ ldr r1, _08081AD0
+ ldr r0, _08081AD4
+ str r0, [r1, 0x8]
+ ldr r1, _08081AD8
+ movs r0, 0x80
+ strh r0, [r1]
+ bl sub_8082034
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl task_add_01_battle_start
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081AD0: .4byte gMain
+_08081AD4: .4byte sub_80C824C
+_08081AD8: .4byte gUnknown_020239F8
+ thumb_func_end sub_8081AA4
+
+ thumb_func_start task_add_01_battle_start_with_music_and_stats
+task_add_01_battle_start_with_music_and_stats: @ 8081ADC
+ push {lr}
+ bl sub_8082080
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl task_add_01_battle_start
+ movs r0, 0x7
+ bl sav12_xor_increment
+ movs r0, 0x9
+ bl sav12_xor_increment
+ pop {r0}
+ bx r0
+ thumb_func_end task_add_01_battle_start_with_music_and_stats
+
+ thumb_func_start sub_8081AFC
+sub_8081AFC: @ 8081AFC
+ push {lr}
+ ldr r0, _08081B2C
+ movs r1, 0xC4
+ lsls r1, 1
+ movs r2, 0x5
+ bl CreateMaleMon
+ bl ScriptContext2_Enable
+ ldr r1, _08081B30
+ ldr r0, _08081B34
+ str r0, [r1, 0x8]
+ ldr r1, _08081B38
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0x8
+ movs r1, 0
+ bl task_add_01_battle_start
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081B2C: .4byte gEnemyParty
+_08081B30: .4byte gMain
+_08081B34: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+_08081B38: .4byte gUnknown_020239F8
+ thumb_func_end sub_8081AFC
+
+ thumb_func_start sub_8081B3C
+sub_8081B3C: @ 8081B3C
+ push {lr}
+ bl ScriptContext2_Enable
+ ldr r1, _08081B6C
+ ldr r0, _08081B70
+ str r0, [r1, 0x8]
+ ldr r1, _08081B74
+ movs r0, 0
+ strh r0, [r1]
+ bl sub_8082034
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl task_add_01_battle_start
+ movs r0, 0x7
+ bl sav12_xor_increment
+ movs r0, 0x8
+ bl sav12_xor_increment
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081B6C: .4byte gMain
+_08081B70: .4byte sub_8081CEC
+_08081B74: .4byte gUnknown_020239F8
+ thumb_func_end sub_8081B3C
+
+ thumb_func_start sub_8081B78
+sub_8081B78: @ 8081B78
+ push {lr}
+ bl ScriptContext2_Enable
+ ldr r1, _08081BAC
+ ldr r0, _08081BB0
+ str r0, [r1, 0x8]
+ ldr r1, _08081BB4
+ movs r2, 0x80
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ bl sub_8082034
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl task_add_01_battle_start
+ movs r0, 0x7
+ bl sav12_xor_increment
+ movs r0, 0x8
+ bl sav12_xor_increment
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081BAC: .4byte gMain
+_08081BB0: .4byte sub_8081CEC
+_08081BB4: .4byte gUnknown_020239F8
+ thumb_func_end sub_8081B78
+
+ thumb_func_start sub_8081BB8
+sub_8081BB8: @ 8081BB8
+ push {lr}
+ bl ScriptContext2_Enable
+ ldr r1, _08081BE8
+ ldr r0, _08081BEC
+ str r0, [r1, 0x8]
+ ldr r1, _08081BF0
+ movs r2, 0x80
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _08081BF4
+ movs r0, 0
+ bl task_add_01_battle_start
+ movs r0, 0x7
+ bl sav12_xor_increment
+ movs r0, 0x8
+ bl sav12_xor_increment
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081BE8: .4byte gMain
+_08081BEC: .4byte sub_8081CEC
+_08081BF0: .4byte gUnknown_020239F8
+_08081BF4: .4byte 0x000001cf
+ thumb_func_end sub_8081BB8
+
+ thumb_func_start sub_8081BF8
+sub_8081BF8: @ 8081BF8
+ push {lr}
+ bl ScriptContext2_Enable
+ ldr r1, _08081C20
+ ldr r0, _08081C24
+ str r0, [r1, 0x8]
+ ldr r1, _08081C28
+ movs r2, 0xC0
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08081C2C
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _08081C34
+ ldr r1, _08081C30
+ movs r0, 0xB
+ bl task_add_01_battle_start
+ b _08081C3C
+ .align 2, 0
+_08081C20: .4byte gMain
+_08081C24: .4byte sub_8081CEC
+_08081C28: .4byte gUnknown_020239F8
+_08081C2C: .4byte gGameVersion
+_08081C30: .4byte 0x000001cf
+_08081C34:
+ ldr r1, _08081C4C
+ movs r0, 0x6
+ bl task_add_01_battle_start
+_08081C3C:
+ movs r0, 0x7
+ bl sav12_xor_increment
+ movs r0, 0x8
+ bl sav12_xor_increment
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081C4C: .4byte 0x000001cf
+ thumb_func_end sub_8081BF8
+
+ thumb_func_start sub_8081C50
+sub_8081C50: @ 8081C50
+ push {lr}
+ bl ScriptContext2_Enable
+ ldr r1, _08081C80
+ ldr r0, _08081C84
+ str r0, [r1, 0x8]
+ ldr r1, _08081C88
+ movs r2, 0xC0
+ lsls r2, 7
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r1, 0xE7
+ lsls r1, 1
+ movs r0, 0xA
+ bl task_add_01_battle_start
+ movs r0, 0x7
+ bl sav12_xor_increment
+ movs r0, 0x8
+ bl sav12_xor_increment
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081C80: .4byte gMain
+_08081C84: .4byte sub_8081CEC
+_08081C88: .4byte gUnknown_020239F8
+ thumb_func_end sub_8081C50
+
+ thumb_func_start sub_8081C8C
+sub_8081C8C: @ 8081C8C
+ push {lr}
+ sub sp, 0x4
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ movs r1, 0xA0
+ lsls r1, 19
+ ldr r2, _08081CC0
+ mov r0, sp
+ bl CpuSet
+ movs r0, 0
+ movs r1, 0x80
+ bl ResetOamRange
+ ldr r0, _08081CC4
+ ldrb r0, [r0]
+ bl battle_exit_is_player_defeat
+ cmp r0, 0x1
+ bne _08081CCC
+ ldr r0, _08081CC8
+ bl SetMainCallback2
+ b _08081CD8
+ .align 2, 0
+_08081CC0: .4byte 0x01000100
+_08081CC4: .4byte gUnknown_02024D26
+_08081CC8: .4byte c2_whiteout
+_08081CCC:
+ ldr r0, _08081CE0
+ bl SetMainCallback2
+ ldr r1, _08081CE4
+ ldr r0, _08081CE8
+ str r0, [r1]
+_08081CD8:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081CE0: .4byte c2_exit_to_overworld_2_switch
+_08081CE4: .4byte gUnknown_0300485C
+_08081CE8: .4byte sub_8080E44
+ thumb_func_end sub_8081C8C
+
+ thumb_func_start sub_8081CEC
+sub_8081CEC: @ 8081CEC
+ push {lr}
+ sub sp, 0x4
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ movs r1, 0xA0
+ lsls r1, 19
+ ldr r2, _08081D20
+ mov r0, sp
+ bl CpuSet
+ movs r0, 0
+ movs r1, 0x80
+ bl ResetOamRange
+ ldr r0, _08081D24
+ ldrb r0, [r0]
+ bl battle_exit_is_player_defeat
+ cmp r0, 0x1
+ bne _08081D2C
+ ldr r0, _08081D28
+ bl SetMainCallback2
+ b _08081D32
+ .align 2, 0
+_08081D20: .4byte 0x01000100
+_08081D24: .4byte gUnknown_02024D26
+_08081D28: .4byte c2_whiteout
+_08081D2C:
+ ldr r0, _08081D38
+ bl SetMainCallback2
+_08081D32:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081D38: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_8081CEC
+
+ thumb_func_start sub_8081D3C
+sub_8081D3C: @ 8081D3C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r0, r5, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl MetatileBehavior_IsTallGrass
+ lsls r0, 24
+ cmp r0, 0
+ beq _08081D72
+ movs r0, 0
+ b _08081E86
+_08081D72:
+ adds r0, r4, 0
+ bl MetatileBehavior_IsLongGrass
+ lsls r0, 24
+ cmp r0, 0
+ beq _08081D82
+ movs r0, 0x1
+ b _08081E86
+_08081D82:
+ adds r0, r4, 0
+ bl MetatileBehavior_IsSandOrDeepSand
+ lsls r0, 24
+ cmp r0, 0
+ bne _08081E84
+ ldr r0, _08081DA4
+ ldrb r0, [r0, 0x17]
+ subs r0, 0x1
+ cmp r0, 0x8
+ bhi _08081E08
+ lsls r0, 2
+ ldr r1, _08081DA8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08081DA4: .4byte gMapHeader
+_08081DA8: .4byte _08081DAC
+ .align 2, 0
+_08081DAC:
+ .4byte _08081E08
+ .4byte _08081E08
+ .4byte _08081E08
+ .4byte _08081DD0
+ .4byte _08081DF4
+ .4byte _08081DF8
+ .4byte _08081E08
+ .4byte _08081DE0
+ .4byte _08081DE0
+_08081DD0:
+ lsls r0, r5, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80574C4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08081DE4
+_08081DE0:
+ movs r0, 0x8
+ b _08081E86
+_08081DE4:
+ adds r0, r4, 0
+ bl MetatileBehavior_IsSurfableWaterOrUnderwater
+ lsls r0, 24
+ cmp r0, 0
+ bne _08081E4C
+ movs r0, 0x7
+ b _08081E86
+_08081DF4:
+ movs r0, 0x3
+ b _08081E86
+_08081DF8:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsSurfableWaterOrUnderwater
+ lsls r0, 24
+ cmp r0, 0
+ bne _08081E5E
+ b _08081E7A
+_08081E08:
+ lsls r0, r5, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8057568
+ lsls r0, 24
+ cmp r0, 0
+ bne _08081E5E
+ adds r0, r4, 0
+ bl MetatileBehavior_IsSurfableWaterOrUnderwater
+ lsls r0, 24
+ cmp r0, 0
+ bne _08081E4C
+ adds r0, r4, 0
+ bl sub_80574D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _08081E34
+ movs r0, 0x6
+ b _08081E86
+_08081E34:
+ movs r0, 0x8
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ beq _08081E62
+ adds r0, r4, 0
+ bl sub_8057450
+ lsls r0, 24
+ cmp r0, 0
+ beq _08081E50
+_08081E4C:
+ movs r0, 0x5
+ b _08081E86
+_08081E50:
+ adds r0, r4, 0
+ bl sub_8057434
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08081E62
+_08081E5E:
+ movs r0, 0x4
+ b _08081E86
+_08081E62:
+ ldr r0, _08081E80
+ ldrh r1, [r0, 0x4]
+ movs r0, 0xE0
+ lsls r0, 5
+ cmp r1, r0
+ beq _08081E84
+ bl sav1_get_weather_probably
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ beq _08081E84
+_08081E7A:
+ movs r0, 0x9
+ b _08081E86
+ .align 2, 0
+_08081E80: .4byte gSaveBlock1
+_08081E84:
+ movs r0, 0x2
+_08081E86:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8081D3C
+
+ thumb_func_start sub_8081E90
+sub_8081E90: @ 8081E90
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl sav1_get_flash_used_on_map
+ lsls r0, 24
+ cmp r0, 0
+ beq _08081EC0
+ movs r0, 0x2
+ b _08081EEA
+_08081EC0:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsSurfableWaterOrUnderwater
+ lsls r0, 24
+ cmp r0, 0
+ bne _08081EE8
+ ldr r0, _08081EE0
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x4
+ beq _08081EE4
+ cmp r0, 0x5
+ beq _08081EE8
+ movs r0, 0
+ b _08081EEA
+ .align 2, 0
+_08081EE0: .4byte gMapHeader
+_08081EE4:
+ movs r0, 0x1
+ b _08081EEA
+_08081EE8:
+ movs r0, 0x3
+_08081EEA:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8081E90
+
+ thumb_func_start sub_8081EF4
+sub_8081EF4: @ 8081EF4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r7, 0
+ movs r6, 0
+_08081EFE:
+ movs r0, 0x64
+ adds r1, r6, 0
+ muls r1, r0
+ ldr r0, _08081F50
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ adds r1, r0, 0
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r1, r0
+ beq _08081F42
+ cmp r1, 0
+ beq _08081F42
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08081F42
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ adds r0, r7, r0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ subs r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _08081F48
+_08081F42:
+ adds r6, 0x1
+ cmp r6, 0x5
+ ble _08081EFE
+_08081F48:
+ adds r0, r7, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08081F50: .4byte gPlayerParty
+ thumb_func_end sub_8081EF4
+
+ thumb_func_start reads_trainer_data_byte0
+reads_trainer_data_byte0: @ 8081F54
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldr r5, _08081F88
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r2, r1, r5
+ adds r0, r2, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, r4
+ bcs _08081F74
+ adds r4, r0, 0
+_08081F74:
+ movs r3, 0
+ ldrb r0, [r2]
+ cmp r0, 0x1
+ beq _08081FBC
+ cmp r0, 0x1
+ bgt _08081F8C
+ cmp r0, 0
+ beq _08081F96
+ b _0808202C
+ .align 2, 0
+_08081F88: .4byte gTrainers
+_08081F8C:
+ cmp r0, 0x2
+ beq _08081FE2
+ cmp r0, 0x3
+ beq _08082008
+ b _0808202C
+_08081F96:
+ adds r0, r5, 0
+ adds r0, 0x24
+ adds r0, r1, r0
+ ldr r1, [r0]
+ movs r2, 0
+ cmp r3, r4
+ bcs _0808202C
+_08081FA4:
+ lsls r0, r2, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ adds r0, r3, r0
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r4
+ bcc _08081FA4
+ b _0808202C
+_08081FBC:
+ adds r0, r5, 0
+ adds r0, 0x24
+ adds r0, r1, r0
+ ldr r1, [r0]
+ movs r2, 0
+ cmp r3, r4
+ bcs _0808202C
+_08081FCA:
+ lsls r0, r2, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ adds r0, r3, r0
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r4
+ bcc _08081FCA
+ b _0808202C
+_08081FE2:
+ adds r0, r5, 0
+ adds r0, 0x24
+ adds r0, r1, r0
+ ldr r1, [r0]
+ movs r2, 0
+ cmp r3, r4
+ bcs _0808202C
+_08081FF0:
+ lsls r0, r2, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ adds r0, r3, r0
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r4
+ bcc _08081FF0
+ b _0808202C
+_08082008:
+ adds r0, r5, 0
+ adds r0, 0x24
+ adds r0, r1, r0
+ ldr r1, [r0]
+ movs r2, 0
+ cmp r3, r4
+ bcs _0808202C
+_08082016:
+ lsls r0, r2, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ adds r0, r3, r0
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r4
+ bcc _08082016
+_0808202C:
+ adds r0, r3, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end reads_trainer_data_byte0
+
+ thumb_func_start sub_8082034
+sub_8082034: @ 8082034
+ push {r4,r5,lr}
+ bl sub_8081E90
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _08082064
+ movs r1, 0x38
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ bl sub_8081EF4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bcc _0808206C
+ ldr r0, _08082068
+ lsls r1, r5, 1
+ adds r0, 0x1
+ b _08082070
+ .align 2, 0
+_08082064: .4byte gEnemyParty
+_08082068: .4byte gUnknown_0839ACF8
+_0808206C:
+ ldr r0, _0808207C
+ lsls r1, r5, 1
+_08082070:
+ adds r1, r0
+ ldrb r0, [r1]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808207C: .4byte gUnknown_0839ACF8
+ thumb_func_end sub_8082034
+
+ thumb_func_start sub_8082080
+sub_8082080: @ 8082080
+ push {r4-r6,lr}
+ ldr r4, _080820AC
+ ldrh r1, [r4]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ beq _080820E4
+ ldr r1, _080820B0
+ ldrh r2, [r4]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ cmp r1, 0x18
+ bne _080820E0
+ adds r1, r2, 0
+ ldr r0, _080820B4
+ cmp r1, r0
+ bne _080820B8
+ movs r0, 0xC
+ b _0808212C
+ .align 2, 0
+_080820AC: .4byte word_202FF5E
+_080820B0: .4byte gTrainers
+_080820B4: .4byte 0x00000105
+_080820B8:
+ movs r0, 0x83
+ lsls r0, 1
+ cmp r1, r0
+ bne _080820C4
+ movs r0, 0xD
+ b _0808212C
+_080820C4:
+ ldr r0, _080820D0
+ cmp r1, r0
+ bne _080820D4
+ movs r0, 0xE
+ b _0808212C
+ .align 2, 0
+_080820D0: .4byte 0x00000107
+_080820D4:
+ movs r0, 0x84
+ lsls r0, 1
+ cmp r1, r0
+ bne _080820E4
+ movs r0, 0xF
+ b _0808212C
+_080820E0:
+ cmp r1, 0x20
+ bne _080820E8
+_080820E4:
+ movs r0, 0x10
+ b _0808212C
+_080820E8:
+ ldrb r0, [r0, 0x18]
+ movs r5, 0x1
+ cmp r0, 0x1
+ bne _080820F2
+ movs r5, 0x2
+_080820F2:
+ bl sub_8081E90
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrh r0, [r4]
+ adds r1, r5, 0
+ bl reads_trainer_data_byte0
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl sub_8081EF4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bcc _08082124
+ ldr r0, _08082120
+ lsls r1, r6, 1
+ adds r0, 0x1
+ b _08082128
+ .align 2, 0
+_08082120: .4byte gUnknown_0839AD00
+_08082124:
+ ldr r0, _08082134
+ lsls r1, r6, 1
+_08082128:
+ adds r1, r0
+ ldrb r0, [r1]
+_0808212C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08082134: .4byte gUnknown_0839AD00
+ thumb_func_end sub_8082080
+
+ thumb_func_start sub_8082138
+sub_8082138: @ 8082138
+ push {r4,lr}
+ ldr r0, _0808215C
+ movs r1, 0x38
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ bl sub_8081EF4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bcc _08082160
+ movs r0, 0x3
+ b _08082162
+ .align 2, 0
+_0808215C: .4byte gEnemyParty
+_08082160:
+ movs r0, 0x4
+_08082162:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8082138
+
+ thumb_func_start sub_8082168
+sub_8082168: @ 8082168
+ push {lr}
+ ldr r0, _0808217C
+ bl SetMainCallback2
+ ldr r1, _08082180
+ ldr r0, _08082184
+ str r0, [r1, 0x8]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808217C: .4byte CB2_ChooseStarter
+_08082180: .4byte gMain
+_08082184: .4byte sub_8082188
+ thumb_func_end sub_8082168
+
+ thumb_func_start sub_8082188
+sub_8082188: @ 8082188
+ push {lr}
+ sub sp, 0x8
+ ldr r0, _080821CC
+ bl GetVarPointer
+ ldr r2, _080821D0
+ ldrh r1, [r2]
+ strh r1, [r0]
+ ldrh r0, [r2]
+ bl GetStarterPokemon
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0x5
+ movs r2, 0
+ movs r3, 0
+ bl sub_80C5374
+ bl ResetTasks
+ bl sub_80408BC
+ ldr r0, _080821D4
+ bl SetMainCallback2
+ movs r0, 0
+ bl sub_811AAD8
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080821CC: .4byte 0x00004023
+_080821D0: .4byte gScriptResult
+_080821D4: .4byte sub_80821D8
+ thumb_func_end sub_8082188
+
+ thumb_func_start sub_80821D8
+sub_80821D8: @ 80821D8
+ push {lr}
+ bl UpdatePaletteFade
+ bl RunTasks
+ bl sub_811AAE8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08082214
+ ldr r1, _08082218
+ movs r0, 0x10
+ strh r0, [r1]
+ ldr r1, _0808221C
+ ldr r0, _08082220
+ str r0, [r1, 0x8]
+ ldr r0, _08082224
+ bl SetMainCallback2
+ bl prev_quest_postbuffer_cursor_backup_reset
+ bl overworld_poison_timer_set
+ movs r0, 0x7
+ bl sav12_xor_increment
+ movs r0, 0x8
+ bl sav12_xor_increment
+_08082214:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08082218: .4byte gUnknown_020239F8
+_0808221C: .4byte gMain
+_08082220: .4byte sub_8082228
+_08082224: .4byte sub_800E7C4
+ thumb_func_end sub_80821D8
+
+ thumb_func_start sub_8082228
+sub_8082228: @ 8082228
+ push {lr}
+ bl sav1_reset_battle_music_maybe
+ ldr r0, _08082238
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08082238: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_8082228
+
+ thumb_func_start TrainerBattleLoadArg32
+TrainerBattleLoadArg32: @ 808223C
+ 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 TrainerBattleLoadArg32
+
+ thumb_func_start TrainerBattleLoadArg16
+TrainerBattleLoadArg16: @ 8082254
+ adds r1, r0, 0
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ lsls r1, 8
+ orrs r0, r1
+ bx lr
+ thumb_func_end TrainerBattleLoadArg16
+
+ thumb_func_start TrainerBattleLoadArg8
+TrainerBattleLoadArg8: @ 8082260
+ ldrb r0, [r0]
+ bx lr
+ thumb_func_end TrainerBattleLoadArg8
+
+ thumb_func_start trainerflag_opponent
+trainerflag_opponent: @ 8082264
+ ldr r1, _08082278
+ movs r2, 0xA0
+ lsls r2, 3
+ adds r0, r2, 0
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bx lr
+ .align 2, 0
+_08082278: .4byte word_202FF5E
+ thumb_func_end trainerflag_opponent
+
+ thumb_func_start battle_exit_is_player_defeat
+battle_exit_is_player_defeat: @ 808227C
+ push {lr}
+ subs r0, 0x1
+ cmp r0, 0x6
+ bhi _080822B4
+ lsls r0, 2
+ ldr r1, _08082290
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08082290: .4byte _08082294
+ .align 2, 0
+_08082294:
+ .4byte _080822B4
+ .4byte _080822B0
+ .4byte _080822B0
+ .4byte _080822B4
+ .4byte _080822B4
+ .4byte _080822B4
+ .4byte _080822B4
+_080822B0:
+ movs r0, 0x1
+ b _080822B6
+_080822B4:
+ movs r0, 0
+_080822B6:
+ pop {r1}
+ bx r1
+ thumb_func_end battle_exit_is_player_defeat
+
+ thumb_func_start sub_80822BC
+sub_80822BC: @ 80822BC
+ ldr r0, _080822E8
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080822EC
+ strh r1, [r0]
+ ldr r0, _080822F0
+ strh r1, [r0]
+ ldr r0, _080822F4
+ movs r1, 0
+ str r1, [r0]
+ ldr r0, _080822F8
+ str r1, [r0]
+ ldr r0, _080822FC
+ str r1, [r0]
+ ldr r0, _08082300
+ str r1, [r0]
+ ldr r0, _08082304
+ str r1, [r0]
+ ldr r0, _08082308
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_080822E8: .4byte gUnknown_0202FF5C
+_080822EC: .4byte word_202FF5E
+_080822F0: .4byte gUnknown_0202FF60
+_080822F4: .4byte gUnknown_0202FF64
+_080822F8: .4byte gUnknown_0202FF68
+_080822FC: .4byte gUnknown_0202FF6C
+_08082300: .4byte gUnknown_0202FF70
+_08082304: .4byte gUnknown_0202FF74
+_08082308: .4byte gUnknown_0202FF78
+ thumb_func_end sub_80822BC
+
+ thumb_func_start TrainerBattleLoadArgs
+TrainerBattleLoadArgs: @ 808230C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+_08082312:
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0x6
+ bhi _08082384
+ lsls r0, 2
+ ldr r1, _08082324
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08082324: .4byte _08082328
+ .align 2, 0
+_08082328:
+ .4byte _08082344
+ .4byte _08082352
+ .4byte _08082360
+ .4byte _0808236E
+ .4byte _08082376
+ .4byte _0808237E
+ .4byte _08082388
+_08082344:
+ adds r0, r5, 0
+ bl TrainerBattleLoadArg8
+ ldr r1, [r4]
+ strb r0, [r1]
+ adds r5, 0x1
+ b _08082384
+_08082352:
+ adds r0, r5, 0
+ bl TrainerBattleLoadArg16
+ ldr r1, [r4]
+ strh r0, [r1]
+ adds r5, 0x2
+ b _08082384
+_08082360:
+ adds r0, r5, 0
+ bl TrainerBattleLoadArg32
+ ldr r1, [r4]
+ str r0, [r1]
+ adds r5, 0x4
+ b _08082384
+_0808236E:
+ ldr r1, [r4]
+ movs r0, 0
+ strb r0, [r1]
+ b _08082384
+_08082376:
+ ldr r1, [r4]
+ movs r0, 0
+ strh r0, [r1]
+ b _08082384
+_0808237E:
+ ldr r1, [r4]
+ movs r0, 0
+ str r0, [r1]
+_08082384:
+ adds r4, 0x8
+ b _08082312
+_08082388:
+ ldr r0, [r4]
+ str r5, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end TrainerBattleLoadArgs
+
+ thumb_func_start battle_80801F0
+battle_80801F0: @ 8082394
+ push {lr}
+ ldr r0, _080823B8
+ ldrh r1, [r0]
+ cmp r1, 0
+ beq _080823B4
+ ldr r0, _080823BC
+ strh r1, [r0]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ ldr r2, _080823C0
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ bl GetFieldObjectIdByLocalIdAndMap
+ ldr r1, _080823C4
+ strb r0, [r1]
+_080823B4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080823B8: .4byte gUnknown_0202FF60
+_080823BC: .4byte gUnknown_0202E8DE
+_080823C0: .4byte gSaveBlock1
+_080823C4: .4byte gSelectedMapObject
+ thumb_func_end battle_80801F0
+
+ thumb_func_start sub_80823C8
+sub_80823C8: @ 80823C8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_80822BC
+ ldr r4, _080823F0
+ adds r0, r5, 0
+ bl TrainerBattleLoadArg8
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ ldrh r0, [r4]
+ subs r0, 0x1
+ cmp r0, 0x7
+ bhi _080824A4
+ lsls r0, 2
+ ldr r1, _080823F4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080823F0: .4byte gUnknown_0202FF5C
+_080823F4: .4byte _080823F8
+ .align 2, 0
+_080823F8:
+ .4byte _08082434
+ .4byte _08082434
+ .4byte _08082418
+ .4byte _0808242C
+ .4byte _0808247C
+ .4byte _0808243C
+ .4byte _08082454
+ .4byte _0808243C
+_08082418:
+ ldr r0, _08082424
+ adds r1, r5, 0
+ bl TrainerBattleLoadArgs
+ ldr r0, _08082428
+ b _080824B2
+ .align 2, 0
+_08082424: .4byte gUnknown_0839ADE0
+_08082428: .4byte gUnknown_0819F878
+_0808242C:
+ ldr r0, _08082430
+ b _0808243E
+ .align 2, 0
+_08082430: .4byte gUnknown_0839AD98
+_08082434:
+ ldr r0, _08082438
+ b _080824A6
+ .align 2, 0
+_08082438: .4byte gUnknown_0839AD50
+_0808243C:
+ ldr r0, _0808244C
+_0808243E:
+ adds r1, r5, 0
+ bl TrainerBattleLoadArgs
+ bl battle_80801F0
+ ldr r0, _08082450
+ b _080824B2
+ .align 2, 0
+_0808244C: .4byte gUnknown_0839AE28
+_08082450: .4byte gUnknown_0819F840
+_08082454:
+ ldr r0, _08082470
+ adds r1, r5, 0
+ bl TrainerBattleLoadArgs
+ bl battle_80801F0
+ ldr r4, _08082474
+ ldrh r0, [r4]
+ bl sub_8082C4C
+ strh r0, [r4]
+ ldr r0, _08082478
+ b _080824B2
+ .align 2, 0
+_08082470: .4byte gUnknown_0839AD98
+_08082474: .4byte word_202FF5E
+_08082478: .4byte gUnknown_0819F8AE
+_0808247C:
+ ldr r0, _08082498
+ adds r1, r5, 0
+ bl TrainerBattleLoadArgs
+ bl battle_80801F0
+ ldr r4, _0808249C
+ ldrh r0, [r4]
+ bl sub_8082C4C
+ strh r0, [r4]
+ ldr r0, _080824A0
+ b _080824B2
+ .align 2, 0
+_08082498: .4byte gUnknown_0839AD08
+_0808249C: .4byte word_202FF5E
+_080824A0: .4byte gUnknown_0819F887
+_080824A4:
+ ldr r0, _080824B8
+_080824A6:
+ adds r1, r5, 0
+ bl TrainerBattleLoadArgs
+ bl battle_80801F0
+ ldr r0, _080824BC
+_080824B2:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080824B8: .4byte gUnknown_0839AD08
+_080824BC: .4byte gUnknown_0819F818
+ thumb_func_end sub_80823C8
+
+ thumb_func_start SingleTrainerWantsBattle
+SingleTrainerWantsBattle: @ 80824C0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080824F4
+ strb r0, [r2]
+ ldr r4, _080824F8
+ ldr r3, _080824FC
+ lsls r2, r0, 3
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldrb r0, [r2, 0x8]
+ strh r0, [r4]
+ adds r1, 0x1
+ adds r0, r1, 0
+ bl sub_80823C8
+ ldr r0, _08082500
+ bl ScriptContext1_SetupScript
+ bl ScriptContext2_Enable
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080824F4: .4byte gSelectedMapObject
+_080824F8: .4byte gUnknown_0202E8DE
+_080824FC: .4byte gMapObjects
+_08082500: .4byte gUnknown_0819F80B
+ thumb_func_end SingleTrainerWantsBattle
+
+ thumb_func_start GetTrainerFlagFromScriptPointer
+GetTrainerFlagFromScriptPointer: @ 8082504
+ push {lr}
+ adds r0, 0x2
+ bl TrainerBattleLoadArg16
+ lsls r0, 16
+ movs r1, 0xA0
+ lsls r1, 19
+ adds r0, r1
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end GetTrainerFlagFromScriptPointer
+
+ thumb_func_start sub_8082524
+sub_8082524: @ 8082524
+ push {r4,lr}
+ ldr r0, _08082550
+ ldrb r0, [r0]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _08082554
+ adds r4, r0
+ ldrb r0, [r4, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ bl npc_running_behaviour_by_direction
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl npc_set_running_behaviour_etc
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08082550: .4byte gSelectedMapObject
+_08082554: .4byte gMapObjects
+ thumb_func_end sub_8082524
+
+ thumb_func_start sub_8082558
+sub_8082558: @ 8082558
+ ldr r0, _08082560
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_08082560: .4byte gUnknown_0202FF5C
+ thumb_func_end sub_8082558
+
+ thumb_func_start sub_8082564
+sub_8082564: @ 8082564
+ push {lr}
+ bl trainerflag_opponent
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8082564
+
+ thumb_func_start sub_808257C
+sub_808257C: @ 808257C
+ push {lr}
+ bl trainerflag_opponent
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagSet
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808257C
+
+ thumb_func_start unref_sub_8082590
+unref_sub_8082590: @ 8082590
+ push {lr}
+ bl trainerflag_opponent
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagSet
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_8082590
+
+ thumb_func_start trainer_flag_check
+trainer_flag_check: @ 80825A4
+ push {lr}
+ lsls r0, 16
+ movs r1, 0xA0
+ lsls r1, 19
+ adds r0, r1
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end trainer_flag_check
+
+ thumb_func_start trainer_flag_set
+trainer_flag_set: @ 80825BC
+ push {lr}
+ lsls r0, 16
+ movs r1, 0xA0
+ lsls r1, 19
+ adds r0, r1
+ lsrs r0, 16
+ bl FlagSet
+ pop {r0}
+ bx r0
+ thumb_func_end trainer_flag_set
+
+ thumb_func_start trainer_flag_clear
+trainer_flag_clear: @ 80825D0
+ push {lr}
+ lsls r0, 16
+ movs r1, 0xA0
+ lsls r1, 19
+ adds r0, r1
+ lsrs r0, 16
+ bl FlagReset
+ pop {r0}
+ bx r0
+ thumb_func_end trainer_flag_clear
+
+ thumb_func_start sub_80825E4
+sub_80825E4: @ 80825E4
+ push {lr}
+ ldr r1, _08082600
+ movs r0, 0x8
+ strh r0, [r1]
+ ldr r1, _08082604
+ ldr r0, _08082608
+ str r0, [r1, 0x8]
+ bl task_add_01_battle_start_with_music_and_stats
+ bl ScriptContext1_Stop
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08082600: .4byte gUnknown_020239F8
+_08082604: .4byte gMain
+_08082608: .4byte sub_808260C
+ thumb_func_end sub_80825E4
+
+ thumb_func_start sub_808260C
+sub_808260C: @ 808260C
+ push {lr}
+ ldr r0, _08082624
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ bne _0808262C
+ ldr r0, _08082628
+ bl SetMainCallback2
+ b _08082652
+ .align 2, 0
+_08082624: .4byte word_202FF5E
+_08082628: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+_0808262C:
+ ldr r0, _08082640
+ ldrb r0, [r0]
+ bl battle_exit_is_player_defeat
+ cmp r0, 0x1
+ bne _08082648
+ ldr r0, _08082644
+ bl SetMainCallback2
+ b _08082652
+ .align 2, 0
+_08082640: .4byte gUnknown_02024D26
+_08082644: .4byte c2_whiteout
+_08082648:
+ ldr r0, _08082658
+ bl SetMainCallback2
+ bl sub_808257C
+_08082652:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08082658: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_808260C
+
+ thumb_func_start do_choose_name_or_words_screen
+do_choose_name_or_words_screen: @ 808265C
+ push {lr}
+ ldr r0, _08082674
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ bne _0808267C
+ ldr r0, _08082678
+ bl SetMainCallback2
+ b _080826A6
+ .align 2, 0
+_08082674: .4byte word_202FF5E
+_08082678: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+_0808267C:
+ ldr r0, _08082690
+ ldrb r0, [r0]
+ bl battle_exit_is_player_defeat
+ cmp r0, 0x1
+ bne _08082698
+ ldr r0, _08082694
+ bl SetMainCallback2
+ b _080826A6
+ .align 2, 0
+_08082690: .4byte gUnknown_02024D26
+_08082694: .4byte c2_whiteout
+_08082698:
+ ldr r0, _080826AC
+ bl SetMainCallback2
+ bl sub_808257C
+ bl sub_8082CB8
+_080826A6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080826AC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end do_choose_name_or_words_screen
+
+ thumb_func_start sub_80826B0
+sub_80826B0: @ 80826B0
+ push {lr}
+ ldr r1, _080826CC
+ movs r0, 0x8
+ strh r0, [r1]
+ ldr r1, _080826D0
+ ldr r0, _080826D4
+ str r0, [r1, 0x8]
+ bl task_add_01_battle_start_with_music_and_stats
+ bl ScriptContext1_Stop
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080826CC: .4byte gUnknown_020239F8
+_080826D0: .4byte gMain
+_080826D4: .4byte do_choose_name_or_words_screen
+ thumb_func_end sub_80826B0
+
+ thumb_func_start sub_80826D8
+sub_80826D8: @ 80826D8
+ push {lr}
+ bl sub_808281C
+ bl ShowFieldMessage
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80826D8
+
+ thumb_func_start sub_80826E8
+sub_80826E8: @ 80826E8
+ push {lr}
+ ldr r0, _080826F8
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080826F4
+ ldr r0, _080826FC
+_080826F4:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080826F8: .4byte gUnknown_0202FF74
+_080826FC: .4byte gUnknown_081C6C02
+ thumb_func_end sub_80826E8
+
+ thumb_func_start sub_8082700
+sub_8082700: @ 8082700
+ push {lr}
+ ldr r0, _08082710
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0808270C
+ ldr r0, _08082714
+_0808270C:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08082710: .4byte gUnknown_0202FF78
+_08082714: .4byte gUnknown_081C6C02
+ thumb_func_end sub_8082700
+
+ thumb_func_start sub_8082718
+sub_8082718: @ 8082718
+ push {lr}
+ bl sub_8082880
+ bl ShowFieldMessage
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082718
+
+ thumb_func_start sub_8082728
+sub_8082728: @ 8082728
+ push {lr}
+ ldr r0, _08082750
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _08082802
+ cmp r0, 0x8
+ beq _08082802
+ ldr r0, _08082754
+ ldrh r0, [r0]
+ bl sub_803FC58
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xD
+ bhi _080827FC
+ lsls r0, 2
+ ldr r1, _08082758
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08082750: .4byte gUnknown_0202FF5C
+_08082754: .4byte word_202FF5E
+_08082758: .4byte _0808275C
+ .align 2, 0
+_0808275C:
+ .4byte _08082794
+ .4byte _0808279A
+ .4byte _080827A4
+ .4byte _080827FC
+ .4byte _080827AC
+ .4byte _080827B2
+ .4byte _080827BC
+ .4byte _080827C4
+ .4byte _080827CC
+ .4byte _080827D4
+ .4byte _080827DC
+ .4byte _080827E2
+ .4byte _080827EC
+ .4byte _080827F4
+_08082794:
+ movs r0, 0xBE
+ lsls r0, 1
+ b _080827FE
+_0808279A:
+ ldr r0, _080827A0
+ b _080827FE
+ .align 2, 0
+_080827A0: .4byte 0x00000197
+_080827A4:
+ ldr r0, _080827A8
+ b _080827FE
+ .align 2, 0
+_080827A8: .4byte 0x0000017b
+_080827AC:
+ movs r0, 0xD0
+ lsls r0, 1
+ b _080827FE
+_080827B2:
+ ldr r0, _080827B8
+ b _080827FE
+ .align 2, 0
+_080827B8: .4byte 0x000001a1
+_080827BC:
+ ldr r0, _080827C0
+ b _080827FE
+ .align 2, 0
+_080827C0: .4byte 0x000001a3
+_080827C4:
+ ldr r0, _080827C8
+ b _080827FE
+ .align 2, 0
+_080827C8: .4byte 0x000001b9
+_080827CC:
+ ldr r0, _080827D0
+ b _080827FE
+ .align 2, 0
+_080827D0: .4byte 0x00000181
+_080827D4:
+ ldr r0, _080827D8
+ b _080827FE
+ .align 2, 0
+_080827D8: .4byte 0x000001c1
+_080827DC:
+ movs r0, 0xE1
+ lsls r0, 1
+ b _080827FE
+_080827E2:
+ ldr r0, _080827E8
+ b _080827FE
+ .align 2, 0
+_080827E8: .4byte 0x000001c3
+_080827EC:
+ ldr r0, _080827F0
+ b _080827FE
+ .align 2, 0
+_080827F0: .4byte 0x000001c5
+_080827F4:
+ ldr r0, _080827F8
+ b _080827FE
+ .align 2, 0
+_080827F8: .4byte 0x0000018d
+_080827FC:
+ ldr r0, _08082808
+_080827FE:
+ bl PlayNewMapMusic
+_08082802:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08082808: .4byte 0x000001a7
+ thumb_func_end sub_8082728
+
+ thumb_func_start ReturnEmptyStringIfNull
+ReturnEmptyStringIfNull: @ 808280C
+ push {lr}
+ cmp r0, 0
+ bne _08082814
+ ldr r0, _08082818
+_08082814:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08082818: .4byte gOtherText_CancelWithTerminator
+ thumb_func_end ReturnEmptyStringIfNull
+
+ thumb_func_start sub_808281C
+sub_808281C: @ 808281C
+ push {lr}
+ ldr r0, _0808282C
+ ldr r0, [r0]
+ bl ReturnEmptyStringIfNull
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808282C: .4byte gUnknown_0202FF64
+ thumb_func_end sub_808281C
+
+ thumb_func_start sub_8082830
+sub_8082830: @ 8082830
+ push {r4,lr}
+ ldr r0, _08082844
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ bne _08082848
+ bl sub_80BCCE8
+ b _0808284C
+ .align 2, 0
+_08082844: .4byte word_202FF5E
+_08082848:
+ ldr r0, _08082864
+ ldr r0, [r0]
+_0808284C:
+ ldr r4, _08082868
+ bl ReturnEmptyStringIfNull
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08082864: .4byte gUnknown_0202FF68
+_08082868: .4byte gStringVar4
+ thumb_func_end sub_8082830
+
+ thumb_func_start unref_sub_808286C
+unref_sub_808286C: @ 808286C
+ push {lr}
+ ldr r0, _0808287C
+ ldr r0, [r0]
+ bl ReturnEmptyStringIfNull
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808287C: .4byte gUnknown_0202FF6C
+ thumb_func_end unref_sub_808286C
+
+ thumb_func_start sub_8082880
+sub_8082880: @ 8082880
+ push {lr}
+ ldr r0, _08082890
+ ldr r0, [r0]
+ bl ReturnEmptyStringIfNull
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08082890: .4byte gUnknown_0202FF70
+ thumb_func_end sub_8082880
+
+ thumb_func_start sub_8082894
+sub_8082894: @ 8082894
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ movs r3, 0
+ adds r2, r0, 0
+_0808289E:
+ ldrh r0, [r2]
+ cmp r0, r1
+ bne _080828A8
+ adds r0, r3, 0
+ b _080828B4
+_080828A8:
+ adds r2, 0x10
+ adds r3, 0x1
+ cmp r3, 0x37
+ ble _0808289E
+ movs r0, 0x1
+ negs r0, r0
+_080828B4:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8082894
+
+ thumb_func_start sub_80828B8
+sub_80828B8: @ 80828B8
+ push {r4,r5,lr}
+ lsls r1, 16
+ lsrs r5, r1, 16
+ movs r4, 0
+ adds r2, r0, 0
+_080828C2:
+ movs r1, 0
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _080828E8
+ movs r3, 0
+_080828CC:
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ cmp r0, r5
+ bne _080828D8
+ adds r0, r4, 0
+ b _080828F4
+_080828D8:
+ adds r3, 0x2
+ adds r1, 0x1
+ cmp r1, 0x4
+ bgt _080828E8
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080828CC
+_080828E8:
+ adds r2, 0x10
+ adds r4, 0x1
+ cmp r4, 0x37
+ ble _080828C2
+ movs r0, 0x1
+ negs r0, r0
+_080828F4:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80828B8
+
+ thumb_func_start sub_80828FC
+sub_80828FC: @ 80828FC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r7, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ lsls r2, 16
+ lsrs r2, 16
+ mov r10, r2
+ movs r4, 0
+ movs r5, 0
+ ldr r0, _08082968
+ mov r9, r0
+_0808291E:
+ lsls r0, r5, 4
+ adds r2, r0, r7
+ ldrh r1, [r2, 0xA]
+ adds r6, r0, 0
+ adds r0, r5, 0x1
+ mov r8, r0
+ ldr r0, [sp]
+ cmp r1, r0
+ bne _08082990
+ ldrh r0, [r2, 0xC]
+ cmp r0, r10
+ bne _08082990
+ mov r1, r9
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0808298E
+ ldrh r0, [r2]
+ bl trainer_flag_check
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08082990
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1E
+ bhi _08082990
+ movs r4, 0x1
+ b _0808296E
+ .align 2, 0
+_08082968: .4byte gSaveBlock1 + 0x97A
+_0808296C:
+ adds r4, 0x1
+_0808296E:
+ cmp r4, 0x4
+ bgt _08082988
+ adds r0, r6, r7
+ lsls r1, r4, 1
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08082988
+ bl trainer_flag_check
+ lsls r0, 24
+ cmp r0, 0
+ bne _0808296C
+_08082988:
+ mov r1, r9
+ adds r0, r5, r1
+ strb r4, [r0]
+_0808298E:
+ movs r4, 0x1
+_08082990:
+ mov r5, r8
+ cmp r5, 0x37
+ ble _0808291E
+ adds r0, r4, 0
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80828FC
+
+ thumb_func_start sub_80829A8
+sub_80829A8: @ 80829A8
+ push {r4,r5,lr}
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ movs r1, 0
+ ldr r5, _080829D4
+ adds r3, r0, 0
+ adds r3, 0xA
+_080829BA:
+ ldrh r0, [r3]
+ cmp r0, r4
+ bne _080829D8
+ ldrh r0, [r3, 0x2]
+ cmp r0, r2
+ bne _080829D8
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080829D8
+ movs r0, 0x1
+ b _080829E2
+ .align 2, 0
+_080829D4: .4byte gSaveBlock1 + 0x97A
+_080829D8:
+ adds r3, 0x10
+ adds r1, 0x1
+ cmp r1, 0x37
+ ble _080829BA
+ movs r0, 0
+_080829E2:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80829A8
+
+ thumb_func_start sub_80829E8
+sub_80829E8: @ 80829E8
+ push {r4,lr}
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ movs r1, 0
+ adds r3, r0, 0
+ adds r3, 0xA
+_080829F8:
+ ldrh r0, [r3]
+ cmp r0, r4
+ bne _08082A08
+ ldrh r0, [r3, 0x2]
+ cmp r0, r2
+ bne _08082A08
+ movs r0, 0x1
+ b _08082A12
+_08082A08:
+ adds r3, 0x10
+ adds r1, 0x1
+ cmp r1, 0x37
+ ble _080829F8
+ movs r0, 0
+_08082A12:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80829E8
+
+ thumb_func_start sub_8082A18
+sub_8082A18: @ 8082A18
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_8082894
+ adds r1, r0, 0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08082A4C
+ cmp r1, 0x63
+ bgt _08082A4C
+ ldr r0, _08082A44
+ ldr r2, _08082A48
+ adds r0, r2
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08082A4C
+ movs r0, 0x1
+ b _08082A4E
+ .align 2, 0
+_08082A44: .4byte gSaveBlock1
+_08082A48: .4byte 0x0000097a
+_08082A4C:
+ movs r0, 0
+_08082A4E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8082A18
+
+ thumb_func_start sub_8082A54
+sub_8082A54: @ 8082A54
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80828B8
+ adds r1, r0, 0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08082A88
+ cmp r1, 0x63
+ bgt _08082A88
+ ldr r0, _08082A80
+ ldr r2, _08082A84
+ adds r0, r2
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08082A88
+ movs r0, 0x1
+ b _08082A8A
+ .align 2, 0
+_08082A80: .4byte gSaveBlock1
+_08082A84: .4byte 0x0000097a
+_08082A88:
+ movs r0, 0
+_08082A8A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8082A54
+
+ thumb_func_start sub_8082A90
+sub_8082A90: @ 8082A90
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_8082894
+ adds r1, r0, 0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _08082AB8
+ movs r0, 0
+ b _08082ADE
+_08082AAA:
+ subs r0, r6, 0x1
+ lsls r0, 1
+ adds r0, r7, r0
+ ldrh r0, [r0]
+ b _08082ADE
+_08082AB4:
+ ldrh r0, [r5]
+ b _08082ADE
+_08082AB8:
+ lsls r0, r1, 4
+ adds r7, r4, r0
+ movs r6, 0x1
+ adds r5, r7, 0x2
+ adds r4, r5, 0
+_08082AC2:
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _08082AAA
+ bl trainer_flag_check
+ lsls r0, 24
+ cmp r0, 0
+ beq _08082AB4
+ adds r4, 0x2
+ adds r5, 0x2
+ adds r6, 0x1
+ cmp r6, 0x4
+ ble _08082AC2
+ ldrh r0, [r7, 0x8]
+_08082ADE:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8082A90
+
+ thumb_func_start sub_8082AE4
+sub_8082AE4: @ 8082AE4
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80828B8
+ adds r1, r0, 0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08082B04
+ ldr r0, _08082B08
+ ldr r2, _08082B0C
+ adds r0, r2
+ adds r0, r1, r0
+ movs r1, 0
+ strb r1, [r0]
+_08082B04:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08082B08: .4byte gSaveBlock1
+_08082B0C: .4byte 0x0000097a
+ thumb_func_end sub_8082AE4
+
+ thumb_func_start sub_8082B10
+sub_8082B10: @ 8082B10
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_8082894
+ adds r1, r0, 0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08082B3A
+ lsls r0, r1, 4
+ adds r0, r4
+ ldrh r0, [r0, 0x2]
+ bl trainer_flag_check
+ lsls r0, 24
+ cmp r0, 0
+ beq _08082B3A
+ movs r0, 0x1
+ b _08082B3C
+_08082B3A:
+ movs r0, 0
+_08082B3C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8082B10
+
+ thumb_func_start sub_8082B44
+sub_8082B44: @ 8082B44
+ push {r4-r6,lr}
+ movs r6, 0
+ movs r5, 0
+ ldr r4, _08082B64
+_08082B4C:
+ ldrh r0, [r4]
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08082B68
+ adds r6, 0x1
+ cmp r6, 0x4
+ ble _08082B68
+ movs r0, 0x1
+ b _08082B72
+ .align 2, 0
+_08082B64: .4byte gUnknown_0839B1F0
+_08082B68:
+ adds r4, 0x2
+ adds r5, 0x1
+ cmp r5, 0x7
+ bls _08082B4C
+ movs r0, 0
+_08082B72:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8082B44
+
+ thumb_func_start sub_8082B78
+sub_8082B78: @ 8082B78
+ push {lr}
+ bl sub_8082B44
+ cmp r0, 0
+ beq _08082BA0
+ ldr r0, _08082B94
+ ldr r2, _08082B98
+ adds r1, r0, r2
+ ldrh r0, [r1]
+ cmp r0, 0xFE
+ bls _08082B9C
+ movs r0, 0xFF
+ b _08082B9E
+ .align 2, 0
+_08082B94: .4byte gSaveBlock1
+_08082B98: .4byte 0x00000978
+_08082B9C:
+ adds r0, 0x1
+_08082B9E:
+ strh r0, [r1]
+_08082BA0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082B78
+
+ thumb_func_start sub_8082BA4
+sub_8082BA4: @ 8082BA4
+ push {lr}
+ bl sub_8082B44
+ cmp r0, 0
+ beq _08082BC8
+ ldr r0, _08082BC0
+ ldr r1, _08082BC4
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0xFE
+ bls _08082BC8
+ movs r0, 0x1
+ b _08082BCA
+ .align 2, 0
+_08082BC0: .4byte gSaveBlock1
+_08082BC4: .4byte 0x00000978
+_08082BC8:
+ movs r0, 0
+_08082BCA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8082BA4
+
+ thumb_func_start sub_8082BD0
+sub_8082BD0: @ 8082BD0
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ bl sub_8082BA4
+ cmp r0, 0
+ beq _08082BFA
+ ldr r0, _08082C00
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_80828FC
+ cmp r0, 0x1
+ bne _08082BFA
+ ldr r0, _08082C04
+ ldr r1, _08082C08
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+_08082BFA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08082C00: .4byte gTrainerEyeTrainers
+_08082C04: .4byte gSaveBlock1
+_08082C08: .4byte 0x00000978
+ thumb_func_end sub_8082BD0
+
+ thumb_func_start sub_8082C0C
+sub_8082C0C: @ 8082C0C
+ push {lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r0, _08082C28
+ adds r1, r3, 0
+ bl sub_80829A8
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08082C28: .4byte gTrainerEyeTrainers
+ thumb_func_end sub_8082C0C
+
+ thumb_func_start unref_sub_8082C2C
+unref_sub_8082C2C: @ 8082C2C
+ push {lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r0, _08082C48
+ adds r1, r3, 0
+ bl sub_80829E8
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08082C48: .4byte gTrainerEyeTrainers
+ thumb_func_end unref_sub_8082C2C
+
+ thumb_func_start sub_8082C4C
+sub_8082C4C: @ 8082C4C
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, _08082C64
+ bl sub_8082A90
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08082C64: .4byte gTrainerEyeTrainers
+ thumb_func_end sub_8082C4C
+
+ thumb_func_start sub_8082C68
+sub_8082C68: @ 8082C68
+ push {r4,r5,lr}
+ ldr r5, _08082C8C
+ ldr r4, _08082C90
+ ldrh r1, [r4]
+ adds r0, r5, 0
+ bl sub_8082A18
+ lsls r0, 24
+ cmp r0, 0
+ bne _08082C94
+ ldrh r1, [r4]
+ adds r0, r5, 0
+ bl sub_8082B10
+ lsls r0, 24
+ lsrs r0, 24
+ b _08082C96
+ .align 2, 0
+_08082C8C: .4byte gTrainerEyeTrainers
+_08082C90: .4byte word_202FF5E
+_08082C94:
+ movs r0, 0x1
+_08082C96:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8082C68
+
+ thumb_func_start sub_8082C9C
+sub_8082C9C: @ 8082C9C
+ push {lr}
+ ldr r0, _08082CB0
+ ldr r1, _08082CB4
+ ldrh r1, [r1]
+ bl sub_8082A54
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08082CB0: .4byte gTrainerEyeTrainers
+_08082CB4: .4byte word_202FF5E
+ thumb_func_end sub_8082C9C
+
+ thumb_func_start sub_8082CB8
+sub_8082CB8: @ 8082CB8
+ push {lr}
+ ldr r0, _08082CCC
+ ldr r1, _08082CD0
+ ldrh r1, [r1]
+ bl sub_8082AE4
+ bl sub_808257C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08082CCC: .4byte gTrainerEyeTrainers
+_08082CD0: .4byte word_202FF5E
+ thumb_func_end sub_8082CB8
+
+ thumb_func_start sub_8082CD4
+sub_8082CD4: @ 8082CD4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r4, _08082D10
+ adds r0, r4, 0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _08082D08
+ adds r0, r4, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08082D14
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r6, [r1, 0xA]
+ strh r5, [r1, 0xC]
+_08082D08:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08082D10: .4byte sub_8082F20
+_08082D14: .4byte gTasks
+ thumb_func_end sub_8082CD4
+
+ thumb_func_start sub_8082D18
+sub_8082D18: @ 8082D18
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, _08082D44
+ movs r2, 0
+ movs r3, 0x1
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x12
+ movs r1, 0xA
+ movs r2, 0x1C
+ movs r3, 0xD
+ bl MenuDrawTextWindow
+ ldr r0, _08082D48
+ movs r1, 0x13
+ movs r2, 0xB
+ movs r3, 0x48
+ bl sub_8072BD8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08082D44: .4byte gStringVar1
+_08082D48: .4byte gOtherText_PLink
+ thumb_func_end sub_8082D18
+
+ thumb_func_start sub_8082D4C
+sub_8082D4C: @ 8082D4C
+ push {lr}
+ movs r0, 0x12
+ movs r1, 0xA
+ movs r2, 0x1C
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082D4C
+
+ thumb_func_start sub_8082D60
+sub_8082D60: @ 8082D60
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08082D88
+ adds r1, r0
+ adds r5, r1, 0x6
+ movs r2, 0x6
+ ldrsh r0, [r1, r2]
+ cmp r4, r0
+ beq _08082D94
+ cmp r4, 0x1
+ bhi _08082D8C
+ bl sub_8082D4C
+ b _08082D92
+ .align 2, 0
+_08082D88: .4byte gUnknown_03004B28
+_08082D8C:
+ adds r0, r4, 0
+ bl sub_8082D18
+_08082D92:
+ strh r4, [r5]
+_08082D94:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8082D60
+
+ thumb_func_start sub_8082D9C
+sub_8082D9C: @ 8082D9C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ bl GetLinkPlayerDataExchangeStatusTimed
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _08082DEC
+ cmp r0, 0x2
+ bgt _08082DBC
+ cmp r0, 0x1
+ beq _08082DC2
+ b _08082DEC
+_08082DBC:
+ cmp r0, 0x3
+ beq _08082DE8
+ b _08082DEC
+_08082DC2:
+ bl GetLinkPlayerCount_2
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r4, r1
+ bgt _08082DD6
+ cmp r1, r5
+ bgt _08082DD6
+ movs r0, 0x1
+ b _08082DEE
+_08082DD6:
+ ldr r0, _08082DE4
+ movs r2, 0
+ movs r3, 0x1
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x4
+ b _08082DEE
+ .align 2, 0
+_08082DE4: .4byte gStringVar1
+_08082DE8:
+ movs r0, 0x3
+ b _08082DEE
+_08082DEC:
+ movs r0, 0
+_08082DEE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8082D9C
+
+ thumb_func_start sub_8082DF4
+sub_8082DF4: @ 8082DF4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl HasLinkErrorOccurred
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08082E0A
+ movs r0, 0
+ b _08082E1A
+_08082E0A:
+ ldr r0, _08082E20
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08082E24
+ str r0, [r1]
+ movs r0, 0x1
+_08082E1A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08082E20: .4byte gTasks
+_08082E24: .4byte sub_8083418
+ thumb_func_end sub_8082DF4
+
+ thumb_func_start sub_8082E28
+sub_8082E28: @ 8082E28
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08082E58
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08082E64
+ bl IsLinkConnectionEstablished
+ lsls r0, 24
+ cmp r0, 0
+ bne _08082E64
+ ldr r0, _08082E5C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08082E60
+ str r0, [r1]
+ movs r0, 0x1
+ b _08082E66
+ .align 2, 0
+_08082E58: .4byte gMain
+_08082E5C: .4byte gTasks
+_08082E60: .4byte sub_80833EC
+_08082E64:
+ movs r0, 0
+_08082E66:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8082E28
+
+ thumb_func_start sub_8082E6C
+sub_8082E6C: @ 8082E6C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsLinkConnectionEstablished
+ lsls r0, 24
+ cmp r0, 0
+ beq _08082E82
+ movs r0, 0x1
+ bl SetSuppressLinkErrorMessage
+_08082E82:
+ ldr r0, _08082E94
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08082E98
+ movs r0, 0
+ b _08082EA8
+ .align 2, 0
+_08082E94: .4byte gMain
+_08082E98:
+ ldr r0, _08082EB0
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08082EB4
+ str r0, [r1]
+ movs r0, 0x1
+_08082EA8:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08082EB0: .4byte gTasks
+_08082EB4: .4byte sub_80833EC
+ thumb_func_end sub_8082E6C
+
+ thumb_func_start sub_8082EB8
+sub_8082EB8: @ 8082EB8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl GetSioMultiSI
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08082ECE
+ movs r0, 0
+ b _08082EDE
+_08082ECE:
+ ldr r0, _08082EE4
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08082EE8
+ str r0, [r1]
+ movs r0, 0x1
+_08082EDE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08082EE4: .4byte gTasks
+_08082EE8: .4byte sub_8083418
+ thumb_func_end sub_8082EB8
+
+ thumb_func_start unref_sub_8082EEC
+unref_sub_8082EEC: @ 8082EEC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08082F1C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _08082F16
+ movs r0, 0x2
+ bl sub_8007E9C
+ adds r0, r4, 0
+ bl DestroyTask
+_08082F16:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08082F1C: .4byte gTasks
+ thumb_func_end unref_sub_8082EEC
+
+ thumb_func_start sub_8082F20
+sub_8082F20: @ 8082F20
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08082F48
+ adds r4, r1, r0
+ movs r3, 0
+ ldrsh r2, [r4, r3]
+ cmp r2, 0
+ bne _08082F4C
+ bl OpenLinkTimed
+ bl sub_80082EC
+ bl ResetLinkPlayers
+ b _08082F58
+ .align 2, 0
+_08082F48: .4byte gUnknown_03004B28
+_08082F4C:
+ cmp r2, 0x9
+ ble _08082F58
+ subs r0, 0x8
+ adds r0, r1, r0
+ ldr r1, _08082F64
+ str r1, [r0]
+_08082F58:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08082F64: .4byte sub_8082F68
+ thumb_func_end sub_8082F20
+
+ thumb_func_start sub_8082F68
+sub_8082F68: @ 8082F68
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl GetLinkPlayerCount_2
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ bl sub_8082E28
+ cmp r0, 0x1
+ beq _08082FDC
+ adds r0, r4, 0
+ bl sub_8082E6C
+ cmp r0, 0x1
+ beq _08082FDC
+ cmp r5, 0x1
+ bls _08082FDC
+ movs r0, 0x1
+ bl SetSuppressLinkErrorMessage
+ ldr r1, _08082FC0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ bl IsLinkMaster
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08082FCC
+ movs r0, 0x15
+ bl PlaySE
+ ldr r0, _08082FC4
+ bl ShowFieldAutoScrollMessage
+ ldr r0, _08082FC8
+ b _08082FDA
+ .align 2, 0
+_08082FC0: .4byte gTasks
+_08082FC4: .4byte gUnknown_081A4932
+_08082FC8: .4byte sub_8082FEC
+_08082FCC:
+ movs r0, 0x16
+ bl PlaySE
+ ldr r0, _08082FE4
+ bl ShowFieldAutoScrollMessage
+ ldr r0, _08082FE8
+_08082FDA:
+ str r0, [r4]
+_08082FDC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08082FE4: .4byte gUnknown_081A49B6
+_08082FE8: .4byte sub_80831F8
+ thumb_func_end sub_8082F68
+
+ thumb_func_start sub_8082FEC
+sub_8082FEC: @ 8082FEC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8082E28
+ cmp r0, 0x1
+ beq _0808302C
+ adds r0, r4, 0
+ bl sub_8082EB8
+ cmp r0, 0x1
+ beq _0808302C
+ adds r0, r4, 0
+ bl sub_8082DF4
+ cmp r0, 0x1
+ beq _0808302C
+ bl GetFieldMessageBoxMode
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _0808302C
+ ldr r0, _08083034
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ strh r2, [r1, 0xE]
+ ldr r0, _08083038
+ str r0, [r1]
+_0808302C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08083034: .4byte gTasks
+_08083038: .4byte sub_808303C
+ thumb_func_end sub_8082FEC
+
+ thumb_func_start sub_808303C
+sub_808303C: @ 808303C
+ 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
+ mov r8, r0
+ ldr r0, _080830D0
+ mov r9, r0
+ mov r7, r8
+ add r7, r9
+ bl GetLinkPlayerCount_2
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ bl sub_8082E28
+ cmp r0, 0x1
+ beq _080830C2
+ adds r0, r4, 0
+ bl sub_8082EB8
+ cmp r0, 0x1
+ beq _080830C2
+ adds r0, r4, 0
+ bl sub_8082DF4
+ cmp r0, 0x1
+ beq _080830C2
+ adds r6, r5, 0
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_8082D60
+ ldr r0, _080830D4
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080830C2
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ cmp r5, r0
+ blt _080830C2
+ adds r0, r6, 0
+ bl sub_80081C8
+ bl sub_8082D4C
+ ldr r0, _080830D8
+ adds r1, r5, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080830DC
+ bl ShowFieldAutoScrollMessage
+ mov r0, r9
+ subs r0, 0x8
+ add r0, r8
+ ldr r1, _080830E0
+ str r1, [r0]
+_080830C2:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080830D0: .4byte gUnknown_03004B28
+_080830D4: .4byte gMain
+_080830D8: .4byte gStringVar1
+_080830DC: .4byte gUnknown_081A4975
+_080830E0: .4byte sub_80830E4
+ thumb_func_end sub_808303C
+
+ thumb_func_start sub_80830E4
+sub_80830E4: @ 80830E4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ adds r0, r5, 0
+ bl sub_8082E28
+ cmp r0, 0x1
+ beq _08083178
+ adds r0, r5, 0
+ bl sub_8082EB8
+ cmp r0, 0x1
+ beq _08083178
+ adds r0, r5, 0
+ bl sub_8082DF4
+ cmp r0, 0x1
+ beq _08083178
+ bl GetFieldMessageBoxMode
+ lsls r0, 24
+ cmp r0, 0
+ bne _08083178
+ bl sub_800820C
+ adds r4, r0, 0
+ bl GetLinkPlayerCount_2
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _08083132
+ ldr r0, _08083148
+ ldrh r1, [r0, 0x2C]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08083158
+_08083132:
+ ldr r0, _0808314C
+ bl ShowFieldAutoScrollMessage
+ ldr r1, _08083150
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08083154
+ str r1, [r0]
+ b _08083178
+ .align 2, 0
+_08083148: .4byte gMain
+_0808314C: .4byte gUnknown_081A4932
+_08083150: .4byte gTasks
+_08083154: .4byte sub_8082FEC
+_08083158:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08083178
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8007F4C
+ ldr r0, _08083180
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08083184
+ str r0, [r1]
+_08083178:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08083180: .4byte gTasks
+_08083184: .4byte sub_8083188
+ thumb_func_end sub_80830E4
+
+ thumb_func_start sub_8083188
+sub_8083188: @ 8083188
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080831CC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrb r7, [r5, 0xA]
+ ldrb r6, [r5, 0xC]
+ adds r0, r4, 0
+ bl sub_8082DF4
+ cmp r0, 0x1
+ beq _080831EA
+ adds r0, r4, 0
+ bl sub_8083444
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080831EA
+ bl GetLinkPlayerCount_2
+ adds r4, r0, 0
+ bl sub_800820C
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _080831D4
+ ldr r0, _080831D0
+ b _080831E8
+ .align 2, 0
+_080831CC: .4byte gTasks
+_080831D0: .4byte sub_8083418
+_080831D4:
+ ldr r4, _080831F0
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_8082D9C
+ strh r0, [r4]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080831EA
+ ldr r0, _080831F4
+_080831E8:
+ str r0, [r5]
+_080831EA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080831F0: .4byte gScriptResult
+_080831F4: .4byte sub_8083288
+ thumb_func_end sub_8083188
+
+ thumb_func_start sub_80831F8
+sub_80831F8: @ 80831F8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08083244
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrb r7, [r5, 0xA]
+ ldrb r6, [r5, 0xC]
+ adds r0, r4, 0
+ bl sub_8082E28
+ cmp r0, 0x1
+ beq _08083270
+ adds r0, r4, 0
+ bl sub_8082DF4
+ cmp r0, 0x1
+ beq _08083270
+ ldr r4, _08083248
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_8082D9C
+ strh r0, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _08083270
+ cmp r0, 0x3
+ bne _08083250
+ bl sub_800832C
+ bl HideFieldMessageBox
+ ldr r0, _0808324C
+ b _0808326E
+ .align 2, 0
+_08083244: .4byte gTasks
+_08083248: .4byte gScriptResult
+_0808324C: .4byte sub_80833C4
+_08083250:
+ bl GetLinkPlayerCount_2
+ ldr r4, _08083278
+ strb r0, [r4]
+ bl GetMultiplayerId
+ ldr r1, _0808327C
+ strb r0, [r1]
+ ldrb r0, [r4]
+ bl sub_80081C8
+ ldr r0, _08083280
+ bl sub_8093390
+ ldr r0, _08083284
+_0808326E:
+ str r0, [r5]
+_08083270:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08083278: .4byte gUnknown_03004864
+_0808327C: .4byte gUnknown_03004860
+_08083280: .4byte gBlockSendBuffer
+_08083284: .4byte sub_8083314
+ thumb_func_end sub_80831F8
+
+ thumb_func_start sub_8083288
+sub_8083288: @ 8083288
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ adds r0, r4, 0
+ bl sub_8082DF4
+ cmp r0, 0x1
+ beq _080832F8
+ ldr r0, _080832BC
+ ldrh r0, [r0]
+ cmp r0, 0x3
+ bne _080832C8
+ bl sub_800832C
+ bl HideFieldMessageBox
+ ldr r0, _080832C0
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080832C4
+ str r0, [r1]
+ b _080832F8
+ .align 2, 0
+_080832BC: .4byte gScriptResult
+_080832C0: .4byte gTasks
+_080832C4: .4byte sub_80833C4
+_080832C8:
+ bl GetLinkPlayerCount_2
+ ldr r4, _08083300
+ strb r0, [r4]
+ bl GetMultiplayerId
+ ldr r1, _08083304
+ strb r0, [r1]
+ ldrb r0, [r4]
+ bl sub_80081C8
+ ldr r0, _08083308
+ bl sub_8093390
+ ldr r1, _0808330C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08083310
+ str r1, [r0]
+ movs r0, 0x2
+ bl sub_8007E9C
+_080832F8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08083300: .4byte gUnknown_03004864
+_08083304: .4byte gUnknown_03004860
+_08083308: .4byte gBlockSendBuffer
+_0808330C: .4byte gTasks
+_08083310: .4byte sub_8083314
+ thumb_func_end sub_8083288
+
+ thumb_func_start sub_8083314
+sub_8083314: @ 8083314
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_8082DF4
+ cmp r0, 0x1
+ beq _080833B6
+ bl GetBlockRecievedStatus
+ adds r4, r0, 0
+ bl sub_8008198
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080833B6
+ movs r4, 0
+ ldr r6, _0808333C
+ b _0808335A
+ .align 2, 0
+_0808333C: .4byte gUnknown_0202FFC0
+_08083340:
+ lsls r1, r4, 8
+ ldr r0, _08083394
+ adds r1, r0
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 3
+ adds r0, r6
+ movs r2, 0x38
+ bl memcpy
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0808335A:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bcc _08083340
+ movs r0, 0
+ bl SetSuppressLinkErrorMessage
+ bl ResetBlockReceivedFlags
+ bl HideFieldMessageBox
+ ldr r0, _08083398
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bne _080833A4
+ ldr r0, _0808339C
+ ldrh r1, [r0]
+ ldr r0, _080833A0
+ bl sub_8082D4C
+ bl EnableBothScriptContexts
+ adds r0, r5, 0
+ bl DestroyTask
+ b _080833B6
+ .align 2, 0
+_08083394: .4byte gBlockRecvBuffer
+_08083398: .4byte gScriptResult
+_0808339C: .4byte gLinkType
+_080833A0: .4byte 0x00004411
+_080833A4:
+ bl sub_800832C
+ ldr r0, _080833BC
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080833C0
+ str r0, [r1]
+_080833B6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080833BC: .4byte gTasks
+_080833C0: .4byte sub_80833C4
+ thumb_func_end sub_8083314
+
+ thumb_func_start sub_80833C4
+sub_80833C4: @ 80833C4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080833E8
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080833E0
+ bl sub_8082D4C
+ bl EnableBothScriptContexts
+ adds r0, r4, 0
+ bl DestroyTask
+_080833E0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080833E8: .4byte gReceivedRemoteLinkPlayers
+ thumb_func_end sub_80833C4
+
+ thumb_func_start sub_80833EC
+sub_80833EC: @ 80833EC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _08083414
+ movs r0, 0x5
+ strh r0, [r1]
+ bl sub_8082D4C
+ bl HideFieldMessageBox
+ bl EnableBothScriptContexts
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08083414: .4byte gScriptResult
+ thumb_func_end sub_80833EC
+
+ thumb_func_start sub_8083418
+sub_8083418: @ 8083418
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _08083440
+ movs r0, 0x6
+ strh r0, [r1]
+ bl sub_8082D4C
+ bl HideFieldMessageBox
+ bl EnableBothScriptContexts
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08083440: .4byte gScriptResult
+ thumb_func_end sub_8083418
+
+ thumb_func_start sub_8083444
+sub_8083444: @ 8083444
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08083468
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r2, r1, r2
+ ldrh r0, [r2, 0x10]
+ adds r0, 0x1
+ strh r0, [r2, 0x10]
+ lsls r0, 16
+ movs r1, 0x96
+ lsls r1, 18
+ cmp r0, r1
+ bgt _0808346C
+ movs r0, 0
+ b _08083472
+ .align 2, 0
+_08083468: .4byte gTasks
+_0808346C:
+ ldr r0, _08083478
+ str r0, [r2]
+ movs r0, 0x1
+_08083472:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08083478: .4byte sub_8083418
+ thumb_func_end sub_8083444
+
+ thumb_func_start sub_808347C
+sub_808347C: @ 808347C
+ push {r4,lr}
+ movs r3, 0x2
+ movs r2, 0x2
+ ldr r0, _08083494
+ ldrh r0, [r0]
+ cmp r0, 0x2
+ beq _080834B0
+ cmp r0, 0x2
+ bgt _08083498
+ cmp r0, 0x1
+ beq _0808349E
+ b _080834CC
+ .align 2, 0
+_08083494: .4byte gUnknown_0202E8CC
+_08083498:
+ cmp r0, 0x5
+ beq _080834C0
+ b _080834CC
+_0808349E:
+ movs r3, 0x2
+ ldr r1, _080834A8
+ ldr r4, _080834AC
+ b _080834C8
+ .align 2, 0
+_080834A8: .4byte gLinkType
+_080834AC: .4byte 0x00002233
+_080834B0:
+ movs r3, 0x2
+ ldr r1, _080834B8
+ ldr r4, _080834BC
+ b _080834C8
+ .align 2, 0
+_080834B8: .4byte gLinkType
+_080834BC: .4byte 0x00002244
+_080834C0:
+ movs r3, 0x4
+ movs r2, 0x4
+ ldr r1, _080834DC
+ ldr r4, _080834E0
+_080834C8:
+ adds r0, r4, 0
+ strh r0, [r1]
+_080834CC:
+ adds r0, r3, 0
+ adds r1, r2, 0
+ bl sub_8082CD4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080834DC: .4byte gLinkType
+_080834E0: .4byte 0x00002255
+ thumb_func_end sub_808347C
+
+ thumb_func_start sub_80834E4
+sub_80834E4: @ 80834E4
+ push {lr}
+ ldr r1, _08083500
+ ldr r2, _08083504
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _08083508
+ movs r0, 0
+ strh r0, [r1]
+ movs r0, 0x2
+ movs r1, 0x2
+ bl sub_8082CD4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08083500: .4byte gLinkType
+_08083504: .4byte 0x00001133
+_08083508: .4byte gUnknown_020239F8
+ thumb_func_end sub_80834E4
+
+ thumb_func_start sub_808350C
+sub_808350C: @ 808350C
+ push {lr}
+ ldr r0, _0808352C
+ movs r2, 0
+ strh r2, [r0]
+ ldr r1, _08083530
+ ldr r3, _08083534
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _08083538
+ strh r2, [r0]
+ movs r0, 0x2
+ movs r1, 0x4
+ bl sub_8082CD4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808352C: .4byte gScriptResult
+_08083530: .4byte gLinkType
+_08083534: .4byte 0x00003311
+_08083538: .4byte gUnknown_020239F8
+ thumb_func_end sub_808350C
+
+ thumb_func_start sub_808353C
+sub_808353C: @ 808353C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0808355C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08083560
+ cmp r0, 0x1
+ beq _080835BC
+ b _080835CE
+ .align 2, 0
+_0808355C: .4byte gTasks
+_08083560:
+ ldr r0, _08083594
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bne _08083586
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ cmp r1, r0
+ bge _08083586
+ ldr r2, _08083598
+_08083578:
+ ldrh r4, [r2, 0x1A]
+ cmp r4, 0x1
+ beq _0808359C
+ adds r2, 0x1C
+ adds r1, 0x1
+ cmp r1, r0
+ blt _08083578
+_08083586:
+ bl EnableBothScriptContexts
+ adds r0, r5, 0
+ bl DestroyTask
+ b _080835CE
+ .align 2, 0
+_08083594: .4byte gScriptResult
+_08083598: .4byte gLinkPlayers
+_0808359C:
+ ldr r1, _080835B4
+ movs r0, 0x7
+ strh r0, [r1]
+ bl sub_8008480
+ ldr r1, _080835B8
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ strh r4, [r0, 0x8]
+ b _080835CE
+ .align 2, 0
+_080835B4: .4byte gScriptResult
+_080835B8: .4byte gTasks
+_080835BC:
+ ldr r0, _080835D4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080835CE
+ bl EnableBothScriptContexts
+ adds r0, r5, 0
+ bl DestroyTask
+_080835CE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080835D4: .4byte gReceivedRemoteLinkPlayers
+ thumb_func_end sub_808353C
+
+ thumb_func_start sub_80835D8
+sub_80835D8: @ 80835D8
+ push {r4,lr}
+ ldr r4, _0808360C
+ adds r0, r4, 0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ bne _08083604
+ adds r0, r4, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _08083610
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x8]
+_08083604:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808360C: .4byte sub_808353C
+_08083610: .4byte gTasks
+ thumb_func_end sub_80835D8
+
+ thumb_func_start sub_8083614
+sub_8083614: @ 8083614
+ push {lr}
+ ldr r1, _08083630
+ ldr r2, _08083634
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _08083638
+ movs r0, 0
+ strh r0, [r1]
+ movs r0, 0x2
+ movs r1, 0x4
+ bl sub_8082CD4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08083630: .4byte gLinkType
+_08083634: .4byte 0x00004411
+_08083638: .4byte gUnknown_020239F8
+ thumb_func_end sub_8083614
+
+ thumb_func_start sub_808363C
+sub_808363C: @ 808363C
+ push {lr}
+ ldr r1, _08083658
+ ldr r2, _0808365C
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _08083660
+ movs r0, 0
+ strh r0, [r1]
+ movs r0, 0x4
+ movs r1, 0x4
+ bl sub_8082CD4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08083658: .4byte gLinkType
+_0808365C: .4byte 0x00006601
+_08083660: .4byte gUnknown_020239F8
+ thumb_func_end sub_808363C
+
+ thumb_func_start sub_8083664
+sub_8083664: @ 8083664
+ push {lr}
+ ldr r0, _08083678
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808367C
+ movs r0, 0xFF
+ b _08083700
+ .align 2, 0
+_08083678: .4byte sub_8083710
+_0808367C:
+ ldr r0, _08083690
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x4
+ bhi _080836F4
+ lsls r0, 2
+ ldr r1, _08083694
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08083690: .4byte gUnknown_0202E8CC
+_08083694: .4byte _08083698
+ .align 2, 0
+_08083698:
+ .4byte _080836AC
+ .4byte _080836BC
+ .4byte _080836DC
+ .4byte _080836EC
+ .4byte _080836CC
+_080836AC:
+ ldr r1, _080836B4
+ ldr r2, _080836B8
+ b _080836F0
+ .align 2, 0
+_080836B4: .4byte gLinkType
+_080836B8: .4byte 0x00002233
+_080836BC:
+ ldr r1, _080836C4
+ ldr r2, _080836C8
+ b _080836F0
+ .align 2, 0
+_080836C4: .4byte gLinkType
+_080836C8: .4byte 0x00002244
+_080836CC:
+ ldr r1, _080836D4
+ ldr r2, _080836D8
+ b _080836F0
+ .align 2, 0
+_080836D4: .4byte gLinkType
+_080836D8: .4byte 0x00002255
+_080836DC:
+ ldr r1, _080836E4
+ ldr r2, _080836E8
+ b _080836F0
+ .align 2, 0
+_080836E4: .4byte gLinkType
+_080836E8: .4byte 0x00001111
+_080836EC:
+ ldr r1, _08083704
+ ldr r2, _08083708
+_080836F0:
+ adds r0, r2, 0
+ strh r0, [r1]
+_080836F4:
+ ldr r0, _0808370C
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+_08083700:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08083704: .4byte gLinkType
+_08083708: .4byte 0x00003322
+_0808370C: .4byte sub_8083710
+ thumb_func_end sub_8083664
+
+ thumb_func_start sub_8083710
+sub_8083710: @ 8083710
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _0808373C
+ adds r4, r1, r0
+ movs r3, 0
+ ldrsh r2, [r4, r3]
+ cmp r2, 0
+ bne _08083744
+ bl OpenLink
+ bl ResetLinkPlayers
+ ldr r0, _08083740
+ movs r1, 0x50
+ bl CreateTask
+ b _08083750
+ .align 2, 0
+_0808373C: .4byte gUnknown_03004B28
+_08083740: .4byte sub_8083C50
+_08083744:
+ cmp r2, 0x9
+ ble _08083750
+ subs r0, 0x8
+ adds r0, r1, r0
+ ldr r1, _0808375C
+ str r1, [r0]
+_08083750:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808375C: .4byte sub_8083760
+ thumb_func_end sub_8083710
+
+ thumb_func_start sub_8083760
+sub_8083760: @ 8083760
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl GetLinkPlayerCount_2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _080837A6
+ bl IsLinkMaster
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08083798
+ ldr r0, _08083790
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08083794
+ b _080837A4
+ .align 2, 0
+_08083790: .4byte gTasks
+_08083794: .4byte sub_80837B4
+_08083798:
+ ldr r0, _080837AC
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080837B0
+_080837A4:
+ str r0, [r1]
+_080837A6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080837AC: .4byte gTasks
+_080837B0: .4byte sub_80837EC
+ thumb_func_end sub_8083760
+
+ thumb_func_start sub_80837B4
+sub_80837B4: @ 80837B4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_800820C
+ adds r4, r0, 0
+ bl GetLinkPlayerCount_2
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080837DE
+ bl sub_8007F4C
+ ldr r0, _080837E4
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080837E8
+ str r0, [r1]
+_080837DE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080837E4: .4byte gTasks
+_080837E8: .4byte sub_80837EC
+ thumb_func_end sub_80837B4
+
+ thumb_func_start sub_80837EC
+sub_80837EC: @ 80837EC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808381C
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08083814
+ bl IsLinkPlayerDataExchangeComplete
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08083814
+ bl sub_800826C
+ bl sub_8007B14
+ adds r0, r4, 0
+ bl DestroyTask
+_08083814:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808381C: .4byte gReceivedRemoteLinkPlayers
+ thumb_func_end sub_80837EC
+
+ thumb_func_start sub_8083820
+sub_8083820: @ 8083820
+ push {lr}
+ bl InitSaveDialog
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8083820
+
+ thumb_func_start sub_808382C
+sub_808382C: @ 808382C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _08083850
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bls _08083846
+ b _08083940
+_08083846:
+ lsls r0, 2
+ ldr r1, _08083854
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08083850: .4byte gTasks
+_08083854: .4byte _08083858
+ .align 2, 0
+_08083858:
+ .4byte _08083870
+ .4byte _08083890
+ .4byte _080838A0
+ .4byte _080838B0
+ .4byte _080838B6
+ .4byte _080838CC
+_08083870:
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r1, _08083888
+ ldr r2, _0808388C
+ adds r0, r2, 0
+ strh r0, [r1]
+ bl ClearLinkCallback_2
+ b _080838BE
+ .align 2, 0
+_08083888: .4byte gLinkType
+_0808388C: .4byte 0x00002211
+_08083890:
+ ldr r0, _0808389C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ b _080838BA
+ .align 2, 0
+_0808389C: .4byte gPaletteFade
+_080838A0:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _08083940
+ b _080838BE
+_080838B0:
+ bl sub_800832C
+ b _080838BE
+_080838B6:
+ ldr r0, _080838C8
+ ldrb r0, [r0]
+_080838BA:
+ cmp r0, 0
+ bne _08083940
+_080838BE:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08083940
+ .align 2, 0
+_080838C8: .4byte gReceivedRemoteLinkPlayers
+_080838CC:
+ ldr r0, _080838E4
+ ldr r0, [r0, 0x4]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080838E8
+ movs r0, 0xE6
+ lsls r0, 1
+ bl current_map_music_set__default_for_battle
+ b _080838EE
+ .align 2, 0
+_080838E4: .4byte gLinkPlayers
+_080838E8:
+ ldr r0, _08083900
+ bl current_map_music_set__default_for_battle
+_080838EE:
+ ldr r0, _08083904
+ ldrh r0, [r0]
+ cmp r0, 0x2
+ beq _08083918
+ cmp r0, 0x2
+ bgt _08083908
+ cmp r0, 0x1
+ beq _0808390E
+ b _0808392E
+ .align 2, 0
+_08083900: .4byte 0x000001cb
+_08083904: .4byte gUnknown_0202E8CC
+_08083908:
+ cmp r0, 0x5
+ beq _08083924
+ b _0808392E
+_0808390E:
+ ldr r1, _08083914
+ movs r0, 0xA
+ b _0808392C
+ .align 2, 0
+_08083914: .4byte gUnknown_020239F8
+_08083918:
+ ldr r1, _08083920
+ movs r0, 0xB
+ b _0808392C
+ .align 2, 0
+_08083920: .4byte gUnknown_020239F8
+_08083924:
+ bl sub_80C5604
+ ldr r1, _08083948
+ movs r0, 0x4B
+_0808392C:
+ strh r0, [r1]
+_0808392E:
+ ldr r0, _0808394C
+ bl SetMainCallback2
+ ldr r1, _08083950
+ ldr r0, _08083954
+ str r0, [r1, 0x8]
+ adds r0, r5, 0
+ bl DestroyTask
+_08083940:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08083948: .4byte gUnknown_020239F8
+_0808394C: .4byte sub_800E7C4
+_08083950: .4byte gMain
+_08083954: .4byte sub_8083958
+ thumb_func_end sub_808382C
+
+ thumb_func_start sub_8083958
+sub_8083958: @ 8083958
+ push {lr}
+ bl call_map_music_set_to_zero
+ bl copy_player_party_from_sav1
+ bl copy_bags_and_unk_data_to_save_blocks
+ bl sub_810FEFC
+ ldr r0, _08083990
+ ldrh r0, [r0]
+ cmp r0, 0x5
+ beq _0808397E
+ ldr r0, _08083994
+ ldrb r1, [r0]
+ movs r0, 0x1
+ eors r0, r1
+ bl sub_8110290
+_0808397E:
+ ldr r0, _08083998
+ ldr r1, _0808399C
+ str r1, [r0, 0x8]
+ ldr r0, _080839A0
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08083990: .4byte gUnknown_0202E8CC
+_08083994: .4byte gUnknown_03004860
+_08083998: .4byte gMain
+_0808399C: .4byte sub_805465C
+_080839A0: .4byte sub_8071B28
+ thumb_func_end sub_8083958
+
+ thumb_func_start sub_80839A4
+sub_80839A4: @ 80839A4
+ push {lr}
+ ldr r0, _080839CC
+ ldrh r1, [r0]
+ subs r0, r1, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _080839B8
+ cmp r1, 0x5
+ bne _080839C0
+_080839B8:
+ bl copy_player_party_from_sav1
+ bl copy_bags_and_unk_data_to_save_blocks
+_080839C0:
+ movs r0, 0x7F
+ bl copy_saved_warp2_bank_and_enter_x_to_warp1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080839CC: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_80839A4
+
+ thumb_func_start sub_80839D0
+sub_80839D0: @ 80839D0
+ push {lr}
+ bl sub_805559C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80839D0
+
+ thumb_func_start sub_80839DC
+sub_80839DC: @ 80839DC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _08083A00
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _08083A20
+ cmp r0, 0x1
+ bgt _08083A04
+ cmp r0, 0
+ beq _08083A0E
+ b _08083A7E
+ .align 2, 0
+_08083A00: .4byte gTasks
+_08083A04:
+ cmp r0, 0x2
+ beq _08083A40
+ cmp r0, 0x3
+ beq _08083A68
+ b _08083A7E
+_08083A0E:
+ ldr r0, _08083A1C
+ bl ShowFieldMessage
+ movs r0, 0x1
+ strh r0, [r5, 0x8]
+ b _08083A7E
+ .align 2, 0
+_08083A1C: .4byte gUnknown_081A490C
+_08083A20:
+ bl IsFieldMessageBoxHidden
+ lsls r0, 24
+ cmp r0, 0
+ beq _08083A7E
+ bl sub_8055574
+ ldr r0, _08083A3C
+ ldrb r0, [r0]
+ bl sub_8007270
+ movs r0, 0x2
+ strh r0, [r5, 0x8]
+ b _08083A7E
+ .align 2, 0
+_08083A3C: .4byte gUnknown_0202E8CE
+_08083A40:
+ bl sub_80554F8
+ cmp r0, 0x1
+ beq _08083A52
+ cmp r0, 0x1
+ ble _08083A7E
+ cmp r0, 0x2
+ beq _08083A62
+ b _08083A7E
+_08083A52:
+ bl HideFieldMessageBox
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ adds r0, r4, 0
+ bl SwitchTaskToFollowupFunc
+ b _08083A7E
+_08083A62:
+ movs r0, 0x3
+ strh r0, [r5, 0x8]
+ b _08083A7E
+_08083A68:
+ bl sub_8055588
+ bl HideFieldMessageBox
+ bl MenuZeroFillScreen
+ adds r0, r4, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+_08083A7E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80839DC
+
+ thumb_func_start sub_8083A84
+sub_8083A84: @ 8083A84
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _08083AA8
+ adds r0, r4, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl SetTaskFuncWithFollowupFunc
+ bl ScriptContext1_Stop
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08083AA8: .4byte sub_80839DC
+ thumb_func_end sub_8083A84
+
+ thumb_func_start sub_8083AAC
+sub_8083AAC: @ 8083AAC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _08083AD0
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08083AF0
+ cmp r0, 0x1
+ bgt _08083AD4
+ cmp r0, 0
+ beq _08083ADE
+ b _08083B34
+ .align 2, 0
+_08083AD0: .4byte gTasks
+_08083AD4:
+ cmp r0, 0x2
+ beq _08083B04
+ cmp r0, 0x3
+ beq _08083B20
+ b _08083B34
+_08083ADE:
+ bl ScriptContext2_Enable
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ bl ClearLinkCallback_2
+ b _08083B14
+_08083AF0:
+ ldr r0, _08083B00
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08083B34
+ b _08083B14
+ .align 2, 0
+_08083B00: .4byte gPaletteFade
+_08083B04:
+ ldr r1, _08083B1C
+ movs r0, 0
+ strb r0, [r1]
+ strb r0, [r1, 0x1]
+ bl m4aMPlayAllStop
+ bl sub_800832C
+_08083B14:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08083B34
+ .align 2, 0
+_08083B1C: .4byte gUnknown_020297D8
+_08083B20:
+ ldr r0, _08083B3C
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08083B34
+ ldr r0, _08083B40
+ bl SetMainCallback2
+ adds r0, r5, 0
+ bl DestroyTask
+_08083B34:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08083B3C: .4byte gReceivedRemoteLinkPlayers
+_08083B40: .4byte sub_8047CD8
+ thumb_func_end sub_8083AAC
+
+ thumb_func_start sub_8083B44
+sub_8083B44: @ 8083B44
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8083B6C
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8083B44
+
+ thumb_func_start sub_8083B5C
+sub_8083B5C: @ 8083B5C
+ push {lr}
+ ldr r0, _08083B68
+ bl sub_8083A84
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08083B68: .4byte sub_8083B44
+ thumb_func_end sub_8083B5C
+
+ thumb_func_start sub_8083B6C
+sub_8083B6C: @ 8083B6C
+ push {lr}
+ ldr r0, _08083B7C
+ movs r1, 0x50
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08083B7C: .4byte sub_8083AAC
+ thumb_func_end sub_8083B6C
+
+ thumb_func_start sub_8083B80
+sub_8083B80: @ 8083B80
+ push {lr}
+ bl sub_8083B6C
+ bl ScriptContext1_Stop
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8083B80
+
+ thumb_func_start sub_8083B90
+sub_8083B90: @ 8083B90
+ push {lr}
+ ldr r0, _08083BA4
+ ldr r2, _08083BA8
+ adds r1, r2, 0
+ strh r1, [r0]
+ ldr r0, _08083BAC
+ bl sub_8083A84
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08083BA4: .4byte gLinkType
+_08083BA8: .4byte 0x00002211
+_08083BAC: .4byte sub_808382C
+ thumb_func_end sub_8083B90
+
+ thumb_func_start unref_sub_8083BB0
+unref_sub_8083BB0: @ 8083BB0
+ push {r4,lr}
+ ldr r4, _08083BD4
+ adds r0, r4, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08083BD8
+ adds r1, r4, 0
+ bl SetTaskFuncWithFollowupFunc
+ bl ScriptContext1_Stop
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08083BD4: .4byte sub_80839DC
+_08083BD8: .4byte sub_80B9484
+ thumb_func_end unref_sub_8083BB0
+
+ thumb_func_start sub_8083BDC
+sub_8083BDC: @ 8083BDC
+ push {lr}
+ ldr r0, _08083BEC
+ ldrb r0, [r0]
+ ldr r1, _08083BF0
+ bl sub_8093130
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08083BEC: .4byte gUnknown_0202E8D0
+_08083BF0: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_8083BDC
+
+ thumb_func_start sub_8083BF4
+sub_8083BF4: @ 8083BF4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08083C34
+ strh r4, [r0]
+ ldr r0, _08083C38
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 2
+ ldr r2, _08083C3C
+ adds r1, r2
+ bl StringCopy
+ adds r0, r4, 0
+ bl sub_80934C4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _08083C48
+ ldr r0, _08083C40
+ ldr r2, _08083C44
+ subs r1, 0x1
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ movs r0, 0x1
+ b _08083C4A
+ .align 2, 0
+_08083C34: .4byte gUnknown_0202E8D0
+_08083C38: .4byte gStringVar1
+_08083C3C: .4byte gLinkPlayers + 0x8
+_08083C40: .4byte gStringVar2
+_08083C44: .4byte gTrainerCardColorNames
+_08083C48:
+ movs r0, 0
+_08083C4A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8083BF4
+
+ thumb_func_start sub_8083C50
+sub_8083C50: @ 8083C50
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _08083C98
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ lsls r1, 16
+ movs r0, 0x96
+ lsls r0, 17
+ cmp r1, r0
+ ble _08083C82
+ bl CloseLink
+ ldr r0, _08083C9C
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_08083C82:
+ ldr r0, _08083CA0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08083C90
+ adds r0, r5, 0
+ bl DestroyTask
+_08083C90:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08083C98: .4byte gTasks
+_08083C9C: .4byte CB2_LinkError
+_08083CA0: .4byte gReceivedRemoteLinkPlayers
+ thumb_func_end sub_8083C50
+
+ thumb_func_start sub_8083CA4
+sub_8083CA4: @ 8083CA4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08083CC4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08083CBC
+ bl EnableBothScriptContexts
+ adds r0, r4, 0
+ bl DestroyTask
+_08083CBC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08083CC4: .4byte gReceivedRemoteLinkPlayers
+ thumb_func_end sub_8083CA4
+
+ thumb_func_start unref_sub_8083CC8
+unref_sub_8083CC8: @ 8083CC8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_800832C
+ ldr r1, _08083CE8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08083CEC
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08083CE8: .4byte gTasks
+_08083CEC: .4byte sub_8083CA4
+ thumb_func_end unref_sub_8083CC8
+
+ thumb_func_start unref_sub_8083CF0
+unref_sub_8083CF0: @ 8083CF0
+ push {r4-r7,lr}
+ ldr r0, _08083D38
+ ldr r4, [r0]
+ lsls r4, 26
+ lsrs r4, 30
+ ldr r0, _08083D3C
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r1, _08083D40
+ bl StringAppend
+ movs r5, 0
+ ldr r0, _08083D44
+ movs r6, 0x1
+ eors r4, r6
+ lsls r4, 1
+ adds r7, r4, r0
+ movs r4, 0
+_08083D14:
+ ldrh r0, [r7]
+ asrs r0, r5
+ ands r0, r6
+ cmp r0, 0
+ beq _08083D28
+ ldr r1, _08083D48
+ adds r1, r4, r1
+ ldr r0, _08083D3C
+ bl StringAppend
+_08083D28:
+ adds r4, 0x3
+ adds r5, 0x1
+ cmp r5, 0x9
+ ble _08083D14
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08083D38: .4byte 0x04000128
+_08083D3C: .4byte gUnknown_03004DA0
+_08083D40: .4byte gUnknown_0839B24A
+_08083D44: .4byte word_3002910
+_08083D48: .4byte gUnknown_0839B22C
+ thumb_func_end unref_sub_8083CF0
+
+ thumb_func_start sub_8083D4C
+sub_8083D4C: @ 8083D4C
+ push {lr}
+ ldr r0, _08083D60
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08083D64
+ movs r0, 0
+ b _08083D6A
+ .align 2, 0
+_08083D60: .4byte gMain
+_08083D64:
+ bl sub_8071C20
+ movs r0, 0x1
+_08083D6A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8083D4C
+
+ thumb_func_start sub_8083D70
+sub_8083D70: @ 8083D70
+ push {r4-r6,lr}
+ sub sp, 0x34
+ ldr r0, _08083DE4
+ movs r1, 0xB
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ bl sub_8041870
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ movs r6, 0xB
+ adds r1, r4, 0
+ muls r1, r6
+ ldr r4, _08083DE8
+ adds r1, r4
+ mov r0, sp
+ bl StringCopy
+ ldr r1, _08083DEC
+ mov r0, sp
+ bl StringAppend
+ adds r1, r5, 0
+ muls r1, r6
+ adds r1, r4
+ mov r0, sp
+ bl StringAppend
+ ldr r1, _08083DF0
+ mov r0, sp
+ bl StringAppend
+ bl MenuZeroFillScreen
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1E
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ mov r0, sp
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r1, _08083DF4
+ ldr r0, _08083DF8
+ str r0, [r1]
+ movs r0, 0
+ add sp, 0x34
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08083DE4: .4byte gPlayerParty
+_08083DE8: .4byte gSpeciesNames
+_08083DEC: .4byte gUnknown_0839B24D
+_08083DF0: .4byte gUnknown_0839B255
+_08083DF4: .4byte gCallback_03004AE8
+_08083DF8: .4byte sub_8083D4C
+ thumb_func_end sub_8083D70
+
+ thumb_func_start sub_8083DFC
+sub_8083DFC: @ 8083DFC
+ push {lr}
+ ldr r0, _08083E24
+ bl daycare_count_pokemon
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08083E1A
+ bl daycare_relationship_score_from_savegame
+ lsls r0, 24
+ cmp r0, 0
+ beq _08083E1A
+ bl sub_8041940
+_08083E1A:
+ bl sub_8071C20
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08083E24: .4byte gSaveBlock1 + 0x2F9C
+ thumb_func_end sub_8083DFC
+
+ thumb_func_start sub_8083E28
+sub_8083E28: @ 8083E28
+ push {lr}
+ ldr r0, _08083E50
+ bl daycare_count_pokemon
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08083E46
+ bl daycare_relationship_score_from_savegame
+ lsls r0, 24
+ cmp r0, 0
+ beq _08083E46
+ bl sub_8041950
+_08083E46:
+ bl sub_8071C20
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08083E50: .4byte gSaveBlock1 + 0x2F9C
+ thumb_func_end sub_8083E28
+
+ thumb_func_start sub_8083E54
+sub_8083E54: @ 8083E54
+ push {lr}
+ movs r0, 0xFA
+ lsls r0, 2
+ bl sub_8041790
+ bl sub_8071C20
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8083E54
+
+ thumb_func_start sub_8083E68
+sub_8083E68: @ 8083E68
+ push {lr}
+ ldr r0, _08083E7C
+ bl sub_8041790
+ bl sub_8071C20
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08083E7C: .4byte 0x00002710
+ thumb_func_end sub_8083E68
+
+ thumb_func_start sub_8083E80
+sub_8083E80: @ 8083E80
+ push {lr}
+ bl sub_8132670
+ bl sub_8071C20
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8083E80
+
+ thumb_func_start sub_8083E90
+sub_8083E90: @ 8083E90
+ push {r4-r6,lr}
+ sub sp, 0x4
+ movs r5, 0
+ movs r6, 0
+_08083E98:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08083EE0
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _08083EBC
+ mov r0, sp
+ strb r6, [r0]
+ adds r0, r4, 0
+ movs r1, 0x20
+ mov r2, sp
+ bl SetMonData
+_08083EBC:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _08083E98
+ ldr r0, _08083EE4
+ ldr r1, _08083EE8
+ adds r0, r1
+ movs r1, 0xFD
+ strb r1, [r0]
+ bl sub_8071C20
+ movs r0, 0x1
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08083EE0: .4byte gPlayerParty
+_08083EE4: .4byte gSaveBlock1
+_08083EE8: .4byte 0x000030b6
+ thumb_func_end sub_8083E90
+
+ thumb_func_start sub_8083EEC
+sub_8083EEC: @ 8083EEC
+ push {lr}
+ ldr r0, _08083F04
+ ldr r2, _08083F08
+ movs r1, 0x2
+ bl SetMonData
+ bl sub_8071C20
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08083F04: .4byte gPlayerParty
+_08083F08: .4byte gUnknown_0839B257
+ thumb_func_end sub_8083EEC
+
+ thumb_func_start sub_8083F0C
+sub_8083F0C: @ 8083F0C
+ push {r4,lr}
+ movs r4, 0
+_08083F10:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_810CA6C
+ adds r4, 0x1
+ cmp r4, 0x27
+ ble _08083F10
+ bl sub_8071C20
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8083F0C
+
+ thumb_func_start sub_8083F2C
+sub_8083F2C: @ 8083F2C
+ push {lr}
+ bl ProcessMenuInput
+ lsls r0, 24
+ asrs r1, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ beq _08083F52
+ adds r0, 0x1
+ cmp r1, r0
+ beq _08083F60
+ ldr r2, _08083F58
+ ldr r0, _08083F5C
+ lsls r1, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+_08083F52:
+ movs r0, 0
+ b _08083F66
+ .align 2, 0
+_08083F58: .4byte gCallback_03004AE8
+_08083F5C: .4byte gUnknown_0839B2C0
+_08083F60:
+ bl sub_8071C20
+ movs r0, 0x1
+_08083F66:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8083F2C
+
+ thumb_func_start unref_sub_8083F6C
+unref_sub_8083F6C: @ 8083F6C
+ push {lr}
+ sub sp, 0x8
+ bl MenuZeroFillScreen
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r3, _08083FB0
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x9
+ bl PrintMenuItems
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x9
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x9
+ bl InitMenu
+ ldr r1, _08083FB4
+ ldr r0, _08083FB8
+ str r0, [r1]
+ movs r0, 0
+ add sp, 0x8
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08083FB0: .4byte gUnknown_0839B2C0
+_08083FB4: .4byte gCallback_03004AE8
+_08083FB8: .4byte sub_8083F2C
+ thumb_func_end unref_sub_8083F6C
+
+ thumb_func_start sub_8083FBC
+sub_8083FBC: @ 8083FBC
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _08083FEC
+_08083FC2:
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r0, 2
+ adds r1, r0, r5
+ ldrb r0, [r1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08083FF0
+ ldrb r0, [r1, 0x7]
+ cmp r0, 0x1
+ beq _08083FDC
+ cmp r0, 0x3
+ bne _08083FF0
+_08083FDC:
+ adds r0, r4, 0
+ bl sub_8084004
+ lsls r0, 24
+ cmp r0, 0
+ beq _08083FF0
+ movs r0, 0x1
+ b _08083FFC
+ .align 2, 0
+_08083FEC: .4byte gMapObjects
+_08083FF0:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xF
+ bls _08083FC2
+ movs r0, 0
+_08083FFC:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8083FBC
+
+ thumb_func_start sub_8084004
+sub_8084004: @ 8084004
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r7, r4, 0
+ adds r0, r4, 0
+ bl GetFieldObjectScriptPointerByFieldObjectId
+ adds r6, r0, 0
+ bl GetTrainerFlagFromScriptPointer
+ cmp r0, 0
+ bne _08084034
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _08084038
+ adds r5, r0, r1
+ adds r0, r5, 0
+ bl CheckIfTrainerCanApproachPlayer
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _0808403C
+_08084034:
+ movs r0, 0
+ b _08084052
+ .align 2, 0
+_08084038: .4byte gMapObjects
+_0808403C:
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl SingleTrainerWantsBattle
+ subs r1, r4, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl sub_80842C8
+ movs r0, 0x1
+_08084052:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8084004
+
+ thumb_func_start CheckIfTrainerCanApproachPlayer
+CheckIfTrainerCanApproachPlayer: @ 8084058
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r7, r0, 0
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ ldrb r0, [r7, 0x7]
+ mov r8, r4
+ cmp r0, 0x1
+ bne _080840B8
+ ldr r1, _080840B0
+ ldrb r0, [r7, 0x18]
+ lsls r0, 28
+ lsrs r0, 26
+ subs r0, 0x4
+ adds r0, r1
+ ldrb r1, [r7, 0x1D]
+ mov r2, sp
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ movs r5, 0
+ ldrsh r3, [r4, r5]
+ ldr r4, [r0]
+ adds r0, r7, 0
+ bl _call_via_r4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r2, [r7, 0x18]
+ lsls r2, 28
+ lsrs r2, 28
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl CheckPathBetweenTrainerAndPlayer
+ lsls r0, 24
+ lsrs r0, 24
+ b _080840F8
+ .align 2, 0
+_080840B0: .4byte gUnknown_0839B488
+_080840B4:
+ adds r0, r6, 0
+ b _080840F8
+_080840B8:
+ movs r5, 0
+_080840BA:
+ ldr r0, _08084104
+ lsls r4, r5, 2
+ adds r4, r0
+ ldrb r1, [r7, 0x1D]
+ mov r0, sp
+ movs r6, 0
+ ldrsh r2, [r0, r6]
+ mov r0, r8
+ movs r6, 0
+ ldrsh r3, [r0, r6]
+ ldr r4, [r4]
+ adds r0, r7, 0
+ bl _call_via_r4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl CheckPathBetweenTrainerAndPlayer
+ lsls r0, 24
+ cmp r0, 0
+ bne _080840B4
+ adds r5, r4, 0
+ cmp r5, 0x3
+ bls _080840BA
+ movs r0, 0
+_080840F8:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08084104: .4byte gUnknown_0839B488
+ thumb_func_end CheckIfTrainerCanApproachPlayer
+
+ thumb_func_start IsTrainerInRangeSouth
+IsTrainerInRangeSouth: @ 8084108
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r3, 16
+ lsrs r5, r3, 16
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r0, r2
+ bne _08084142
+ lsls r0, r5, 16
+ asrs r2, r0, 16
+ ldrh r3, [r4, 0x12]
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r2, r0
+ ble _08084142
+ adds r1, r0, 0
+ lsls r0, r6, 16
+ asrs r0, 16
+ adds r1, r0
+ cmp r2, r1
+ bgt _08084142
+ subs r0, r5, r3
+ lsls r0, 24
+ lsrs r0, 24
+ b _08084144
+_08084142:
+ movs r0, 0
+_08084144:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end IsTrainerInRangeSouth
+
+ thumb_func_start IsTrainerInRangeNorth
+IsTrainerInRangeNorth: @ 808414C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r3, 16
+ lsrs r5, r3, 16
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r0, r2
+ bne _08084186
+ lsls r0, r5, 16
+ asrs r2, r0, 16
+ ldrh r3, [r4, 0x12]
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r2, r0
+ bge _08084186
+ adds r1, r0, 0
+ lsls r0, r6, 16
+ asrs r0, 16
+ subs r1, r0
+ cmp r2, r1
+ blt _08084186
+ subs r0, r3, r5
+ lsls r0, 24
+ lsrs r0, 24
+ b _08084188
+_08084186:
+ movs r0, 0
+_08084188:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end IsTrainerInRangeNorth
+
+ thumb_func_start IsTrainerInRangeWest
+IsTrainerInRangeWest: @ 8084190
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r5, r2, 16
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ lsls r3, 16
+ asrs r3, 16
+ cmp r0, r3
+ bne _080841CA
+ lsls r0, r5, 16
+ asrs r3, r0, 16
+ ldrh r2, [r4, 0x10]
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ bge _080841CA
+ adds r1, r0, 0
+ lsls r0, r6, 16
+ asrs r0, 16
+ subs r1, r0
+ cmp r3, r1
+ blt _080841CA
+ subs r0, r2, r5
+ lsls r0, 24
+ lsrs r0, 24
+ b _080841CC
+_080841CA:
+ movs r0, 0
+_080841CC:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end IsTrainerInRangeWest
+
+ thumb_func_start IsTrainerInRangeEast
+IsTrainerInRangeEast: @ 80841D4
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r5, r2, 16
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ lsls r3, 16
+ asrs r3, 16
+ cmp r0, r3
+ bne _0808420E
+ lsls r0, r5, 16
+ asrs r3, r0, 16
+ ldrh r2, [r4, 0x10]
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ ble _0808420E
+ adds r1, r0, 0
+ lsls r0, r6, 16
+ asrs r0, 16
+ adds r1, r0
+ cmp r3, r1
+ bgt _0808420E
+ subs r0, r5, r2
+ lsls r0, 24
+ lsrs r0, 24
+ b _08084210
+_0808420E:
+ movs r0, 0
+_08084210:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end IsTrainerInRangeEast
+
+ thumb_func_start CheckPathBetweenTrainerAndPlayer
+CheckPathBetweenTrainerAndPlayer: @ 8084218
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r7, r2, 24
+ cmp r1, 0
+ beq _080842B2
+ ldrh r1, [r6, 0x10]
+ mov r0, sp
+ strh r1, [r0]
+ ldrh r0, [r6, 0x12]
+ mov r1, sp
+ adds r1, 0x2
+ strh r0, [r1]
+ movs r4, 0
+ mov r8, r1
+ mov r5, r9
+ subs r5, 0x1
+ cmp r4, r5
+ bgt _08084284
+_0808424C:
+ mov r0, sp
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ mov r3, r8
+ movs r0, 0
+ ldrsh r2, [r3, r0]
+ adds r0, r6, 0
+ adds r3, r7, 0
+ bl sub_8060024
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _08084270
+ movs r0, 0x1
+ ands r1, r0
+ cmp r1, 0
+ bne _080842B2
+_08084270:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r7, 0
+ mov r1, sp
+ mov r2, r8
+ bl MoveCoords
+ cmp r4, r5
+ ble _0808424C
+_08084284:
+ ldrb r4, [r6, 0x19]
+ lsls r5, r4, 28
+ lsrs r5, 28
+ lsrs r4, 4
+ movs r0, 0
+ strb r0, [r6, 0x19]
+ mov r0, sp
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ mov r3, r8
+ movs r0, 0
+ ldrsh r2, [r3, r0]
+ adds r0, r6, 0
+ adds r3, r7, 0
+ bl npc_block_way
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r4, 4
+ orrs r5, r4
+ strb r5, [r6, 0x19]
+ cmp r1, 0x4
+ beq _080842B6
+_080842B2:
+ movs r0, 0
+ b _080842B8
+_080842B6:
+ mov r0, r9
+_080842B8:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckPathBetweenTrainerAndPlayer
+
+ thumb_func_start sub_80842C8
+sub_80842C8: @ 80842C8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r4, r1, 24
+ lsrs r4, 24
+ ldr r0, _080842F4
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080842F8
+ adds r1, r0
+ lsrs r0, r5, 16
+ strh r0, [r1, 0xA]
+ strh r5, [r1, 0xC]
+ strh r4, [r1, 0xE]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080842F4: .4byte sub_808433C
+_080842F8: .4byte gTasks
+ thumb_func_end sub_80842C8
+
+ thumb_func_start sub_80842FC
+sub_80842FC: @ 80842FC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r5, _08084334
+ adds r0, r5, 0
+ bl FindTaskIdByFunc
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl SetTaskFuncWithFollowupFunc
+ ldr r1, _08084338
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0, 0x8]
+ adds r0, r4, 0
+ bl _call_via_r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08084334: .4byte sub_808433C
+_08084338: .4byte gTasks
+ thumb_func_end sub_80842FC
+
+ thumb_func_start sub_808433C
+sub_808433C: @ 808433C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _08084368
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ lsls r5, r0, 16
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ orrs r5, r0
+ ldrb r0, [r5]
+ lsls r0, 31
+ cmp r0, 0
+ bne _0808436C
+ adds r0, r6, 0
+ bl SwitchTaskToFollowupFunc
+ b _08084388
+ .align 2, 0
+_08084368: .4byte gTasks
+_0808436C:
+ ldr r7, _08084390
+_0808436E:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r7
+ ldr r3, [r0]
+ adds r0, r6, 0
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl _call_via_r3
+ lsls r0, 24
+ cmp r0, 0
+ bne _0808436E
+_08084388:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08084390: .4byte gUnknown_0839B498
+ thumb_func_end sub_808433C
+
+ thumb_func_start sub_8084394
+sub_8084394: @ 8084394
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_8084394
+
+ thumb_func_start sub_8084398
+sub_8084398: @ 8084398
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ adds r4, r2, 0
+ ldr r1, _080843D8
+ adds r2, r1, 0x4
+ adds r3, r1, 0
+ adds r3, 0x8
+ adds r0, r4, 0
+ bl FieldObjectGetLocalIdAndMap
+ movs r0, 0
+ bl FieldEffectStart
+ ldrb r0, [r4, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ bl GetFaceDirectionAnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl FieldObjectSetSpecialAnim
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080843D8: .4byte gUnknown_0202FF84
+ thumb_func_end sub_8084398
+
+ thumb_func_start sub_80843DC
+sub_80843DC: @ 80843DC
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ movs r0, 0
+ bl FieldEffectActiveListContains
+ lsls r0, 24
+ cmp r0, 0
+ beq _080843F2
+ movs r0, 0
+ b _08084414
+_080843F2:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ ldrb r0, [r5, 0x6]
+ subs r0, 0x39
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08084408
+ movs r0, 0x6
+ strh r0, [r4, 0x8]
+_08084408:
+ ldrb r0, [r5, 0x6]
+ cmp r0, 0x3F
+ bne _08084412
+ movs r0, 0x8
+ strh r0, [r4, 0x8]
+_08084412:
+ movs r0, 0x1
+_08084414:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80843DC
+
+ thumb_func_start sub_808441C
+sub_808441C: @ 808441C
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ adds r4, r2, 0
+ adds r0, r4, 0
+ bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808443A
+ adds r0, r4, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808446E
+_0808443A:
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _08084460
+ ldrb r0, [r4, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ bl GetGoSpeed0AnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl FieldObjectSetSpecialAnim
+ ldrh r0, [r5, 0xE]
+ subs r0, 0x1
+ strh r0, [r5, 0xE]
+ b _0808446E
+_08084460:
+ adds r0, r4, 0
+ movs r1, 0x3E
+ bl FieldObjectSetSpecialAnim
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+_0808446E:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808441C
+
+ thumb_func_start sub_8084478
+sub_8084478: @ 8084478
+ push {r4-r6,lr}
+ adds r6, r1, 0
+ adds r5, r2, 0
+ adds r0, r5, 0
+ bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ lsls r0, 24
+ cmp r0, 0
+ beq _08084496
+ adds r0, r5, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _08084524
+_08084496:
+ ldrb r0, [r5, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ bl npc_running_behaviour_by_direction
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl npc_set_running_behaviour_etc
+ ldrb r0, [r5, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ bl npc_running_behaviour_by_direction
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl sub_805C774
+ adds r0, r5, 0
+ bl sub_805C754
+ ldr r0, _0808452C
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08084530
+ adds r4, r0, r1
+ adds r0, r4, 0
+ bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ lsls r0, 24
+ cmp r0, 0
+ beq _080844EE
+ adds r0, r4, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _08084524
+_080844EE:
+ bl sub_80597E8
+ ldr r0, _0808452C
+ ldrb r0, [r0, 0x5]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _08084530
+ adds r4, r0
+ ldrb r0, [r5, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ bl GetOppositeDirection
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetFaceDirectionAnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl FieldObjectSetSpecialAnim
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+_08084524:
+ movs r0, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808452C: .4byte gPlayerAvatar
+_08084530: .4byte gMapObjects
+ thumb_func_end sub_8084478
+
+ thumb_func_start sub_8084534
+sub_8084534: @ 8084534
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _08084570
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08084574
+ adds r4, r0, r1
+ adds r0, r4, 0
+ bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ lsls r0, 24
+ cmp r0, 0
+ beq _08084560
+ adds r0, r4, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _08084566
+_08084560:
+ adds r0, r5, 0
+ bl SwitchTaskToFollowupFunc
+_08084566:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08084570: .4byte gPlayerAvatar
+_08084574: .4byte gMapObjects
+ thumb_func_end sub_8084534
+
+ thumb_func_start sub_8084578
+sub_8084578: @ 8084578
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ adds r4, r2, 0
+ adds r0, r4, 0
+ bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ lsls r0, 24
+ cmp r0, 0
+ beq _08084596
+ adds r0, r4, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _080845A4
+_08084596:
+ adds r0, r4, 0
+ movs r1, 0x59
+ bl FieldObjectSetSpecialAnim
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+_080845A4:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8084578
+
+ thumb_func_start sub_80845AC
+sub_80845AC: @ 80845AC
+ push {r4,lr}
+ adds r4, r1, 0
+ adds r0, r2, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _080845C0
+ movs r0, 0x3
+ strh r0, [r4, 0x8]
+_080845C0:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80845AC
+
+ thumb_func_start sub_80845C8
+sub_80845C8: @ 80845C8
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ adds r4, r2, 0
+ adds r0, r4, 0
+ bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ lsls r0, 24
+ cmp r0, 0
+ beq _080845E6
+ adds r0, r4, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _080845F4
+_080845E6:
+ adds r0, r4, 0
+ movs r1, 0x3E
+ bl FieldObjectSetSpecialAnim
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+_080845F4:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80845C8
+
+ thumb_func_start sub_80845FC
+sub_80845FC: @ 80845FC
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ adds r4, r2, 0
+ adds r0, r4, 0
+ bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ lsls r0, 24
+ cmp r0, 0
+ beq _08084642
+ ldr r2, _0808464C
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ str r0, [r2]
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ str r0, [r2, 0x4]
+ ldr r3, _08084650
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x43
+ ldrb r0, [r0]
+ subs r0, 0x1
+ str r0, [r2, 0x8]
+ movs r0, 0x2
+ str r0, [r2, 0xC]
+ movs r0, 0x31
+ bl FieldEffectStart
+ strh r0, [r5, 0x10]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+_08084642:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808464C: .4byte gUnknown_0202FF84
+_08084650: .4byte gSprites
+ thumb_func_end sub_80845FC
+
+ thumb_func_start sub_8084654
+sub_8084654: @ 8084654
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ adds r4, r2, 0
+ ldr r2, _080846C4
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x2B
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bne _080846BC
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x3]
+ ldrb r0, [r4]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ adds r0, r4, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ ldrb r0, [r4, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ bl sub_806084C
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl FieldObjectSetSpecialAnim
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+_080846BC:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080846C4: .4byte gSprites
+ thumb_func_end sub_8084654
+
+ thumb_func_start sub_80846C8
+sub_80846C8: @ 80846C8
+ push {r4,lr}
+ adds r4, r1, 0
+ movs r0, 0x31
+ bl FieldEffectActiveListContains
+ lsls r0, 24
+ cmp r0, 0
+ bne _080846DC
+ movs r0, 0x3
+ strh r0, [r4, 0x8]
+_080846DC:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80846C8
+
+ thumb_func_start sub_80846E4
+sub_80846E4: @ 80846E4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _08084778
+ adds r4, r0, r1
+ adds r0, r4, 0
+ adds r0, 0xA
+ mov r1, sp
+ bl LoadWordFromTwoHalfwords
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08084716
+ ldr r0, [sp]
+ bl FieldObjectClearAnim
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+_08084716:
+ ldr r1, _0808477C
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r2, [sp]
+ ldr r3, [r0]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl _call_via_r3
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3
+ bne _08084780
+ movs r0, 0x31
+ bl FieldEffectActiveListContains
+ lsls r0, 24
+ cmp r0, 0
+ bne _08084780
+ ldr r4, [sp]
+ ldrb r0, [r4, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ bl npc_running_behaviour_by_direction
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl npc_set_running_behaviour_etc
+ ldr r4, [sp]
+ ldrb r0, [r4, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ bl npc_running_behaviour_by_direction
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_805C774
+ adds r0, r5, 0
+ bl DestroyTask
+ b _0808478A
+ .align 2, 0
+_08084778: .4byte gTasks
+_0808477C: .4byte gUnknown_0839B4C8
+_08084780:
+ ldr r2, [sp]
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+_0808478A:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80846E4
+
+ thumb_func_start sub_8084794
+sub_8084794: @ 8084794
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080847C0
+ movs r1, 0
+ bl CreateTask
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _080847C4
+ adds r0, r1
+ adds r0, 0x2
+ adds r1, r4, 0
+ bl StoreWordInTwoHalfwords
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080847C0: .4byte sub_80846E4
+_080847C4: .4byte gUnknown_03004B28
+ thumb_func_end sub_8084794
+
+ thumb_func_start sub_80847C8
+sub_80847C8: @ 80847C8
+ push {lr}
+ ldr r0, _080847D4
+ bl sub_80842FC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080847D4: .4byte sub_80847D8
+ thumb_func_end sub_80847C8
+
+ thumb_func_start sub_80847D8
+sub_80847D8: @ 80847D8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80847D8
+
+ thumb_func_start oei_exclamation_mark
+oei_exclamation_mark: @ 80847EC
+ push {lr}
+ ldr r0, _0808481C
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x53
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _08084814
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08084820
+ adds r0, r1
+ movs r1, 0
+ movs r2, 0
+ bl sub_8084894
+_08084814:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808481C: .4byte gSpriteTemplate_839B510
+_08084820: .4byte gSprites
+ thumb_func_end oei_exclamation_mark
+
+ thumb_func_start sub_8084824
+sub_8084824: @ 8084824
+ push {lr}
+ ldr r0, _08084854
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x52
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _0808484C
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08084858
+ adds r0, r1
+ movs r1, 0x21
+ movs r2, 0x1
+ bl sub_8084894
+_0808484C:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08084854: .4byte gSpriteTemplate_839B510
+_08084858: .4byte gSprites
+ thumb_func_end sub_8084824
+
+ thumb_func_start sub_808485C
+sub_808485C: @ 808485C
+ push {lr}
+ ldr r0, _0808488C
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x52
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _08084884
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08084890
+ adds r0, r1
+ movs r1, 0x2E
+ movs r2, 0
+ bl sub_8084894
+_08084884:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808488C: .4byte gSpriteTemplate_839B528
+_08084890: .4byte gSprites
+ thumb_func_end sub_808485C
+
+ thumb_func_start sub_8084894
+sub_8084894: @ 8084894
+ push {r4,lr}
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r4, [r0, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ ands r3, r4
+ movs r4, 0x4
+ orrs r3, r4
+ strb r3, [r0, 0x5]
+ movs r3, 0x3E
+ adds r3, r0
+ mov r12, r3
+ ldrb r3, [r3]
+ movs r4, 0x2
+ orrs r3, r4
+ mov r4, r12
+ strb r3, [r4]
+ ldr r4, _080848D8
+ ldr r3, [r4]
+ strh r3, [r0, 0x2E]
+ ldr r3, [r4, 0x4]
+ strh r3, [r0, 0x30]
+ ldr r3, [r4, 0x8]
+ strh r3, [r0, 0x32]
+ ldr r3, _080848DC
+ strh r3, [r0, 0x34]
+ strh r1, [r0, 0x3C]
+ adds r1, r2, 0
+ bl StartSpriteAnim
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080848D8: .4byte gUnknown_0202FF84
+_080848DC: .4byte 0x0000fffb
+ thumb_func_end sub_8084894
+
+ thumb_func_start objc_exclamation_mark_probably
+objc_exclamation_mark_probably: @ 80848E0
+ push {r4,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 _08084912
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08084920
+_08084912:
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl FieldEffectStop
+ b _0808496E
+_08084920:
+ ldr r2, _08084964
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08084968
+ adds r1, r0
+ ldrh r3, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r2, r3, r0
+ strh r2, [r4, 0x36]
+ ldrh r0, [r1, 0x20]
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x22]
+ subs r0, 0x10
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x24]
+ strh r0, [r4, 0x24]
+ ldrh r0, [r1, 0x26]
+ adds r0, r2
+ strh r0, [r4, 0x26]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0
+ beq _0808496C
+ adds r0, r3, 0x1
+ strh r0, [r4, 0x34]
+ b _0808496E
+ .align 2, 0
+_08084964: .4byte gMapObjects
+_08084968: .4byte gSprites
+_0808496C:
+ strh r2, [r4, 0x34]
+_0808496E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end objc_exclamation_mark_probably
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/title_screen.s b/asm/title_screen.s
new file mode 100644
index 000000000..726a446ee
--- /dev/null
+++ b/asm/title_screen.s
@@ -0,0 +1,1270 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start item_menu_type_2
+item_menu_type_2: @ 807BE00
+ push {r4,lr}
+ adds r2, r0, 0
+ movs r0, 0x30
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _0807BE34
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0807BE38
+ ldrb r1, [r2, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ movs r0, 0x42
+ strh r0, [r2, 0x22]
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ subs r0, 0x47
+ ands r0, r1
+ strb r0, [r2]
+ b _0807BE80
+ .align 2, 0
+_0807BE34: .4byte gTasks
+_0807BE38:
+ ldrh r1, [r4, 0x12]
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _0807BE46
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x12]
+_0807BE46:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3F
+ bgt _0807BE80
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r3]
+ ldrh r1, [r2, 0x22]
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ cmp r0, 0x42
+ beq _0807BE6A
+ adds r0, r1, 0x1
+ strh r0, [r2, 0x22]
+_0807BE6A:
+ ldr r3, _0807BE88
+ ldr r2, _0807BE8C
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r3]
+_0807BE80:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BE88: .4byte REG_BLDALPHA
+_0807BE8C: .4byte gUnknown_08393E64
+ thumb_func_end item_menu_type_2
+
+ thumb_func_start sub_807BE90
+sub_807BE90: @ 807BE90
+ push {lr}
+ adds r2, r0, 0
+ movs r0, 0x30
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _0807BEC4
+ adds r1, r0, r1
+ movs r3, 0xA
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _0807BEC8
+ ldrb r1, [r2, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ movs r0, 0x42
+ strh r0, [r2, 0x22]
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ subs r0, 0x47
+ ands r0, r1
+ strb r0, [r2]
+ b _0807BEEC
+ .align 2, 0
+_0807BEC4: .4byte gTasks
+_0807BEC8:
+ movs r3, 0x12
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x3F
+ bgt _0807BEEC
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r3]
+ ldrh r1, [r2, 0x22]
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ cmp r0, 0x42
+ beq _0807BEEC
+ adds r0, r1, 0x1
+ strh r0, [r2, 0x22]
+_0807BEEC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807BE90
+
+ thumb_func_start sub_807BEF0
+sub_807BEF0: @ 807BEF0
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _0807BF18
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ movs r1, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0807BF18
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0807BF24
+_0807BF18:
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0807BF24:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807BEF0
+
+ thumb_func_start sub_807BF28
+sub_807BF28: @ 807BF28
+ push {r4-r7,lr}
+ lsls r0, 16
+ ldr r2, _0807BF78
+ adds r0, r2
+ lsrs r0, 16
+ movs r6, 0
+ lsls r7, r1, 16
+_0807BF36:
+ lsls r5, r0, 16
+ asrs r5, 16
+ ldr r0, _0807BF7C
+ adds r1, r5, 0
+ asrs r2, r7, 16
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0807BF80
+ adds r4, r0
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl StartSpriteAnim
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r5, 0x20
+ lsls r5, 16
+ lsrs r0, r5, 16
+ cmp r6, 0x2
+ bls _0807BF36
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BF78: .4byte 0xffe00000
+_0807BF7C: .4byte gSpriteTemplate_8393F74
+_0807BF80: .4byte gSprites
+ thumb_func_end sub_807BF28
+
+ thumb_func_start sub_807BF84
+sub_807BF84: @ 807BF84
+ push {r4-r6,lr}
+ lsls r0, 16
+ ldr r2, _0807BFD4
+ adds r0, r2
+ lsrs r0, 16
+ movs r5, 0
+ lsls r6, r1, 16
+_0807BF92:
+ lsls r4, r0, 16
+ asrs r4, 16
+ ldr r0, _0807BFD8
+ adds r1, r4, 0
+ asrs r2, r6, 16
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _0807BFDC
+ adds r2, r0
+ adds r1, r5, 0x3
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r2, 0
+ bl StartSpriteAnim
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x20
+ lsls r4, 16
+ lsrs r0, r4, 16
+ cmp r5, 0x4
+ bls _0807BF92
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BFD4: .4byte 0xffc00000
+_0807BFD8: .4byte gSpriteTemplate_8393F74
+_0807BFDC: .4byte gSprites
+ thumb_func_end sub_807BF84
+
+ thumb_func_start sub_807BFE0
+sub_807BFE0: @ 807BFE0
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r2, _0807C02C
+ ldr r0, _0807C030
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0xA
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0807C070
+ movs r2, 0x20
+ ldrsh r1, [r3, r2]
+ ldr r0, _0807C034
+ ldrh r4, [r3, 0x20]
+ cmp r1, r0
+ bgt _0807C070
+ movs r2, 0x2E
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ beq _0807C064
+ cmp r1, 0x77
+ bgt _0807C038
+ ldrh r1, [r3, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x1E
+ bgt _0807C050
+ adds r1, 0x1
+ strh r1, [r3, 0x30]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ bgt _0807C050
+ adds r0, r1, 0x1
+ b _0807C04E
+ .align 2, 0
+_0807C02C: .4byte gTasks
+_0807C030: .4byte gUnknown_0202F7E4
+_0807C034: .4byte 0x0000010f
+_0807C038:
+ ldrh r1, [r3, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ beq _0807C050
+ subs r0, r1, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0807C050
+ subs r0, r1, 0x2
+_0807C04E:
+ strh r0, [r3, 0x30]
+_0807C050:
+ ldrh r1, [r3, 0x30]
+ movs r0, 0x1F
+ ands r0, r1
+ lsls r1, r0, 10
+ lsls r2, r0, 5
+ adds r1, r2
+ orrs r1, r0
+ ldr r0, _0807C06C
+ strh r1, [r0]
+ .ifdef SAPPHIRE
+ strh r1, [r0, 0x34]
+ .else
+ strh r1, [r0, 0x2A]
+ .endif
+_0807C064:
+ adds r0, r4, 0x4
+ strh r0, [r3, 0x20]
+ b _0807C07E
+ .align 2, 0
+_0807C06C: .4byte gPlttBufferFaded
+_0807C070:
+ ldr r1, _0807C084
+ movs r0, 0
+ strh r0, [r1]
+ .ifdef SAPPHIRE
+ strh r0, [r1, 0x34]
+ .else
+ strh r0, [r1, 0x2A]
+ .endif
+ adds r0, r3, 0
+ bl DestroySprite
+_0807C07E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C084: .4byte gPlttBufferFaded
+ thumb_func_end sub_807BFE0
+
+ thumb_func_start sub_807C088
+sub_807C088: @ 807C088
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0807C0C0
+ movs r1, 0
+ movs r2, 0x44
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0807C0C4
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r2, [r1, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x8
+ orrs r0, r2
+ strb r0, [r1, 0x1]
+ strh r4, [r1, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C0C0: .4byte gSpriteTemplate_8393FC0
+_0807C0C4: .4byte gSprites
+ thumb_func_end sub_807C088
+
+ thumb_func_start sub_807C0C8
+sub_807C0C8: @ 807C0C8
+ push {lr}
+ bl sub_8089668
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ ldr r0, _0807C0E8
+ ldr r1, _0807C0EC
+ ldrh r1, [r1]
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C0E8: .4byte REG_BG1VOFS
+_0807C0EC: .4byte gUnknown_030041B4
+ thumb_func_end sub_807C0C8
+
+ thumb_func_start CB2_InitTitleScreen
+CB2_InitTitleScreen: @ 807C0F0
+ push {r4,r5,lr}
+ sub sp, 0x14
+ ldr r0, _0807C10C
+ ldr r1, _0807C110
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bhi _0807C130
+ lsls r0, 2
+ ldr r1, _0807C114
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0807C10C: .4byte gMain
+_0807C110: .4byte 0x0000043c
+_0807C114: .4byte _0807C118
+ .align 2, 0
+_0807C118:
+ .4byte _0807C130
+ .4byte _0807C1E4
+ .4byte _0807C2B8
+ .4byte _0807C308
+ .4byte _0807C33C
+ .4byte _0807C418
+_0807C130:
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r0, _0807C1C0
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ movs r2, 0xA0
+ lsls r2, 19
+ ldr r3, _0807C1C4
+ adds r0, r3, 0
+ strh r0, [r2]
+ movs r0, 0x80
+ lsls r0, 19
+ 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]
+ add r0, sp, 0xC
+ strh r1, [r0]
+ ldr r1, _0807C1C8
+ str r0, [r1]
+ movs r0, 0xC0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _0807C1CC
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r2, 0
+ str r2, [sp, 0x10]
+ add r0, sp, 0x10
+ str r0, [r1]
+ movs r0, 0xE0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _0807C1D0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add r0, sp, 0xC
+ strh r2, [r0]
+ str r0, [r1]
+ ldr r0, _0807C1D4
+ str r0, [r1, 0x4]
+ ldr r0, _0807C1D8
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl ResetPaletteFade
+ ldr r0, _0807C1DC
+ ldr r1, _0807C1E0
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ b _0807C446
+ .align 2, 0
+_0807C1C0: .4byte REG_BLDCNT
+_0807C1C4: .4byte 0x00007fff
+_0807C1C8: .4byte 0x040000d4
+_0807C1CC: .4byte 0x8100c000
+_0807C1D0: .4byte 0x85000100
+_0807C1D4: .4byte 0x05000002
+_0807C1D8: .4byte 0x810001ff
+_0807C1DC: .4byte gMain
+_0807C1E0: .4byte 0x0000043c
+_0807C1E4:
+ ldr r0, _0807C270
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _0807C274
+ ldr r1, _0807C278
+ bl LZ77UnCompVram
+ ldr r4, _0807C27C
+ movs r5, 0xE0
+ lsls r5, 1
+ adds r0, r4, 0
+ movs r1, 0
+ adds r2, r5, 0
+ bl LoadPalette
+ ldr r0, _0807C280
+ ldr r1, _0807C284
+ bl LZ77UnCompVram
+ ldr r0, _0807C288
+ ldr r1, _0807C28C
+ bl LZ77UnCompVram
+ ldr r0, _0807C290
+ ldr r1, _0807C294
+ bl LZ77UnCompVram
+ ldr r0, _0807C298
+ movs r1, 0xE0
+ movs r2, 0x40
+ bl LoadPalette
+ bl remove_some_task
+ bl ResetTasks
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r1, _0807C29C
+ movs r0, 0xE
+ strb r0, [r1]
+ ldr r0, _0807C2A0
+ bl LoadCompressedObjectPic
+ ldr r0, _0807C2A4
+ bl LoadCompressedObjectPic
+ ldr r0, _0807C2A8
+ bl LoadCompressedObjectPic
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r2, r5, 0
+ bl LoadPalette
+ ldr r0, _0807C2AC
+ bl LoadSpritePalette
+ ldr r0, _0807C2B0
+ ldr r2, _0807C2B4
+ adds r0, r2
+ movs r1, 0x2
+ strb r1, [r0]
+ b _0807C446
+ .align 2, 0
+_0807C270: .4byte gUnknown_08E9D8CC
+_0807C274: .4byte gUnknown_08E9F7E4
+_0807C278: .4byte 0x06004800
+_0807C27C: .4byte gUnknown_08E9F624
+_0807C280: .4byte gUnknown_08393250
+_0807C284: .4byte 0x06008000
+_0807C288: .4byte gUnknown_083939EC
+_0807C28C: .4byte 0x0600c000
+_0807C290: .4byte gUnknown_08393BF8
+_0807C294: .4byte 0x0600c800
+_0807C298: .4byte gUnknown_08393210
+_0807C29C: .4byte gReservedSpritePaletteCount
+_0807C2A0: .4byte gUnknown_08393EFC
+_0807C2A4: .4byte gUnknown_08393F8C
+_0807C2A8: .4byte gUnknown_08393FD8
+_0807C2AC: .4byte gUnknown_08393F9C
+_0807C2B0: .4byte gMain
+_0807C2B4: .4byte 0x0000043c
+_0807C2B8:
+ ldr r0, _0807C2F0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0807C2F4
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r3, 0
+ movs r2, 0x80
+ lsls r2, 1
+ strh r2, [r1, 0x8]
+ strh r3, [r1, 0xA]
+ ldr r2, _0807C2F8
+ strh r2, [r1, 0xC]
+ subs r2, 0x10
+ strh r2, [r1, 0xE]
+ ldr r1, _0807C2FC
+ strb r0, [r1]
+ ldr r0, _0807C300
+ ldr r3, _0807C304
+ adds r0, r3
+ movs r1, 0x3
+ strb r1, [r0]
+ b _0807C446
+ .align 2, 0
+_0807C2F0: .4byte sub_807C46C
+_0807C2F4: .4byte gTasks
+_0807C2F8: .4byte 0x0000fff0
+_0807C2FC: .4byte gUnknown_0202F7E4
+_0807C300: .4byte gMain
+_0807C304: .4byte 0x0000043c
+_0807C308:
+ movs r0, 0x1
+ negs r0, r0
+ ldr r1, _0807C32C
+ str r1, [sp]
+ movs r1, 0x1
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _0807C330
+ bl SetVBlankCallback
+ ldr r0, _0807C334
+ ldr r1, _0807C338
+ adds r0, r1
+ movs r1, 0x4
+ strb r1, [r0]
+ b _0807C446
+ .align 2, 0
+_0807C32C: .4byte 0x0000ffff
+_0807C330: .4byte sub_807C0C8
+_0807C334: .4byte gMain
+_0807C338: .4byte 0x0000043c
+_0807C33C:
+ movs r2, 0x80
+ lsls r2, 1
+ movs r0, 0x78
+ movs r1, 0x50
+ movs r3, 0
+ bl sub_813CE30
+ ldr r1, _0807C3D4
+ ldr r0, _0807C3D8
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, _0807C3DC
+ str r0, [r1]
+ ldr r0, _0807C3E0
+ movs r4, 0
+ strh r4, [r0]
+ adds r0, 0x4
+ strh r4, [r0]
+ subs r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x4
+ strh r4, [r0]
+ adds r1, 0x1C
+ ldr r2, _0807C3E4
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _0807C3E8
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x6
+ movs r0, 0x84
+ strh r0, [r1]
+ ldr r0, _0807C3EC
+ strh r4, [r0]
+ adds r0, 0x2
+ movs r5, 0x8
+ strh r5, [r0]
+ subs r1, 0x48
+ ldr r2, _0807C3F0
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _0807C3F4
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0807C3F8
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r3, _0807C3FC
+ ldrh r2, [r3]
+ strh r4, [r3]
+ ldr r4, _0807C400
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r1, _0807C404
+ ldrh r0, [r1]
+ orrs r0, r5
+ strh r0, [r1]
+ subs r1, 0x4
+ ldr r3, _0807C408
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _0807C40C
+ bl m4aSongNumStart
+ ldr r0, _0807C410
+ ldr r1, _0807C414
+ adds r0, r1
+ movs r1, 0x5
+ strb r1, [r0]
+ b _0807C446
+ .align 2, 0
+_0807C3D4: .4byte REG_BG2X_L
+_0807C3D8: .4byte 0xffffe300
+_0807C3DC: .4byte 0xffffdf00
+_0807C3E0: .4byte REG_WIN0H
+_0807C3E4: .4byte 0x00001f1f
+_0807C3E8: .4byte 0x00003f1f
+_0807C3EC: .4byte REG_BLDALPHA
+_0807C3F0: .4byte 0x0000180b
+_0807C3F4: .4byte 0x0000190a
+_0807C3F8: .4byte 0x00004981
+_0807C3FC: .4byte 0x04000208
+_0807C400: .4byte 0x04000200
+_0807C404: .4byte REG_DISPSTAT
+_0807C408: .4byte 0x0000b441
+_0807C40C: .4byte 0x0000019d
+_0807C410: .4byte gMain
+_0807C414: .4byte 0x0000043c
+_0807C418:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _0807C446
+ movs r0, 0
+ bl sub_807C088
+ str r4, [sp]
+ movs r0, 0x4
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0xA0
+ movs r2, 0x4
+ movs r3, 0x4
+ bl sub_8089944
+ ldr r0, _0807C450
+ bl SetMainCallback2
+_0807C446:
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C450: .4byte sub_807C454
+ thumb_func_end CB2_InitTitleScreen
+
+ thumb_func_start sub_807C454
+sub_807C454: @ 807C454
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807C454
+
+ thumb_func_start sub_807C46C
+sub_807C46C: @ 807C46C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _0807C4D4
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF
+ ands r0, r1
+ ldr r5, _0807C4D8
+ cmp r0, 0
+ bne _0807C492
+ lsls r0, r6, 2
+ adds r1, r0, r6
+ lsls r1, 3
+ adds r1, r5
+ movs r2, 0xA
+ ldrsh r1, [r1, r2]
+ adds r4, r0, 0
+ cmp r1, 0
+ beq _0807C4A4
+_0807C492:
+ lsls r3, r6, 2
+ adds r0, r3, r6
+ lsls r0, 3
+ adds r0, r5
+ movs r2, 0
+ movs r1, 0x1
+ strh r1, [r0, 0xA]
+ strh r2, [r0, 0x8]
+ adds r4, r3, 0
+_0807C4A4:
+ adds r0, r4, r6
+ lsls r0, 3
+ adds r7, r0, r5
+ movs r3, 0x8
+ ldrsh r2, [r7, r3]
+ cmp r2, 0
+ beq _0807C4DC
+ ldrh r0, [r7, 0x8]
+ cmp r0, 0xA0
+ beq _0807C4BC
+ cmp r0, 0x40
+ bne _0807C4C2
+_0807C4BC:
+ movs r0, 0x1
+ bl sub_807C088
+_0807C4C2:
+ ldr r0, _0807C4D8
+ adds r1, r4, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ subs r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0807C558
+ .align 2, 0
+_0807C4D4: .4byte gMain
+_0807C4D8: .4byte gTasks
+_0807C4DC:
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r3, _0807C560
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _0807C564
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r1, 0x50
+ ldr r3, _0807C568
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x1F
+ strh r0, [r1]
+ ldr r0, _0807C56C
+ strh r2, [r0]
+ ldr r0, _0807C570
+ movs r1, 0x62
+ movs r2, 0x1A
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0807C574
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r2, r1, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r4, 0x4
+ orrs r0, r4
+ strb r0, [r2]
+ strh r6, [r1, 0x30]
+ ldr r0, _0807C578
+ movs r1, 0xA2
+ movs r2, 0x1A
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r2, r1, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ orrs r0, r4
+ strb r0, [r2]
+ strh r6, [r1, 0x30]
+ movs r0, 0x58
+ strh r0, [r7, 0x12]
+ movs r0, 0x90
+ strh r0, [r7, 0x8]
+ ldr r0, _0807C57C
+ str r0, [r7]
+_0807C558:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C560: .4byte 0x00001441
+_0807C564: .4byte REG_WININ
+_0807C568: .4byte 0x00003f50
+_0807C56C: .4byte REG_BLDY
+_0807C570: .4byte gSpriteTemplate_8393ECC
+_0807C574: .4byte gSprites
+_0807C578: .4byte gSpriteTemplate_8393EE4
+_0807C57C: .4byte sub_807C580
+ thumb_func_end sub_807C46C
+
+ thumb_func_start sub_807C580
+sub_807C580: @ 807C580
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0807C5D0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF
+ ands r0, r1
+ ldr r2, _0807C5D4
+ cmp r0, 0
+ bne _0807C5A6
+ lsls r0, r5, 2
+ adds r1, r0, r5
+ lsls r1, 3
+ adds r1, r2
+ movs r3, 0xA
+ ldrsh r1, [r1, r3]
+ adds r7, r0, 0
+ cmp r1, 0
+ beq _0807C5B8
+_0807C5A6:
+ lsls r3, r5, 2
+ adds r0, r3, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0
+ movs r1, 0x1
+ strh r1, [r0, 0xA]
+ strh r2, [r0, 0x8]
+ adds r7, r3, 0
+_0807C5B8:
+ ldr r1, _0807C5D4
+ adds r0, r7, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x8]
+ movs r1, 0x8
+ ldrsh r6, [r4, r1]
+ cmp r6, 0
+ beq _0807C5D8
+ subs r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0807C5FC
+ .align 2, 0
+_0807C5D0: .4byte gMain
+_0807C5D4: .4byte gTasks
+_0807C5D8:
+ movs r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r2, _0807C634
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0x78
+ movs r1, 0x6C
+ bl sub_807BF28
+ movs r0, 0x78
+ movs r1, 0x94
+ bl sub_807BF84
+ strh r6, [r4, 0x10]
+ ldr r0, _0807C638
+ str r0, [r4]
+_0807C5FC:
+ ldr r2, _0807C63C
+ adds r0, r7, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r1, [r3, 0x8]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0807C61C
+ ldrh r1, [r3, 0xE]
+ movs r4, 0xE
+ ldrsh r0, [r3, r4]
+ cmp r0, 0
+ beq _0807C61C
+ adds r0, r1, 0x1
+ strh r0, [r3, 0xE]
+_0807C61C:
+ ldr r0, _0807C640
+ adds r1, r7, r5
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0xE
+ ldrsh r1, [r1, r2]
+ lsls r1, 8
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C634: .4byte 0x00001741
+_0807C638: .4byte sub_807C644
+_0807C63C: .4byte gTasks
+_0807C640: .4byte REG_BG2Y_L
+ thumb_func_end sub_807C580
+
+ thumb_func_start sub_807C644
+sub_807C644: @ 807C644
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0807C69C
+ ldr r2, _0807C6A0
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0807C6A4
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0
+ strh r0, [r1]
+ ldr r4, _0807C6A8
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0807C67A
+ movs r0, 0x8
+ ands r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ beq _0807C6B4
+_0807C67A:
+ movs r0, 0x4
+ bl FadeOutBGM
+ movs r0, 0x1
+ negs r0, r0
+ ldr r1, _0807C6AC
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _0807C6B0
+ bl SetMainCallback2
+ b _0807C74E
+ .align 2, 0
+_0807C69C: .4byte REG_BLDCNT
+_0807C6A0: .4byte 0x00002142
+_0807C6A4: .4byte 0x00001f0f
+_0807C6A8: .4byte gMain
+_0807C6AC: .4byte 0x0000ffff
+_0807C6B0: .4byte sub_807C774
+_0807C6B4:
+ ldrh r1, [r4, 0x2C]
+ movs r0, 0x46
+ ands r0, r1
+ cmp r0, 0x46
+ bne _0807C6C4
+ ldr r0, _0807C6F4
+ bl SetMainCallback2
+_0807C6C4:
+ ldrh r1, [r4, 0x2C]
+ movs r0, 0x26
+ ands r0, r1
+ cmp r0, 0x26
+ bne _0807C6FC
+ bl sub_80691DC
+ cmp r0, 0x1
+ bne _0807C6FC
+ movs r0, 0x4
+ bl FadeOutBGM
+ movs r0, 0x1
+ negs r0, r0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _0807C6F8
+ bl SetMainCallback2
+ b _0807C74E
+ .align 2, 0
+_0807C6F4: .4byte sub_807C7AC
+_0807C6F8: .4byte sub_807C7C8
+_0807C6FC:
+ ldr r0, _0807C758
+ movs r3, 0
+ str r3, [r0]
+ ldr r1, _0807C75C
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0807C728
+ ldrh r0, [r2, 0x10]
+ adds r0, 0x1
+ strh r0, [r2, 0x10]
+ ldr r1, _0807C760
+ strh r0, [r1]
+ ldr r0, _0807C764
+ strh r3, [r0]
+_0807C728:
+ ldrb r0, [r2, 0x8]
+ bl sub_807C7E4
+ ldr r0, _0807C768
+ ldr r1, _0807C76C
+ ldrh r0, [r0, 0x4]
+ cmp r0, 0
+ bne _0807C74E
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _0807C770
+ bl SetMainCallback2
+_0807C74E:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C758: .4byte REG_BG2Y_L
+_0807C75C: .4byte gTasks
+_0807C760: .4byte gUnknown_030041B4
+_0807C764: .4byte gUnknown_030042C0
+_0807C768: .4byte gMPlay_BGM
+_0807C76C: .4byte 0x0000ffff
+_0807C770: .4byte sub_807C790
+ thumb_func_end sub_807C644
+
+ thumb_func_start sub_807C774
+sub_807C774: @ 807C774
+ push {lr}
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807C786
+ ldr r0, _0807C78C
+ bl SetMainCallback2
+_0807C786:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C78C: .4byte CB2_InitMainMenu
+ thumb_func_end sub_807C774
+
+ thumb_func_start sub_807C790
+sub_807C790: @ 807C790
+ push {lr}
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807C7A2
+ ldr r0, _0807C7A8
+ bl SetMainCallback2
+_0807C7A2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C7A8: .4byte sub_813BA88
+ thumb_func_end sub_807C790
+
+ thumb_func_start sub_807C7AC
+sub_807C7AC: @ 807C7AC
+ push {lr}
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807C7BE
+ ldr r0, _0807C7C4
+ bl SetMainCallback2
+_0807C7BE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C7C4: .4byte c2_clear_save_data_screen_2
+ thumb_func_end sub_807C7AC
+
+ thumb_func_start sub_807C7C8
+sub_807C7C8: @ 807C7C8
+ push {lr}
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807C7DA
+ ldr r0, _0807C7E0
+ bl SetMainCallback2
+_0807C7DA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C7E0: .4byte sub_806AAD8
+ thumb_func_end sub_807C7C8
+
+ thumb_func_start sub_807C7E4
+sub_807C7E4: @ 807C7E4
+ push {lr}
+ sub sp, 0x4
+ lsls r1, r0, 24
+ movs r0, 0xC0
+ lsls r0, 18
+ ands r0, r1
+ cmp r0, 0
+ bne _0807C820
+ lsrs r0, r1, 26
+ movs r1, 0x1F
+ adds r2, r0, 0
+ ands r2, r1
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0807C80C
+ .ifdef SAPPHIRE
+ mov r0, sp
+ strh r2, [r0]
+ .else
+ lsls r1, r2, 10
+ mov r0, sp
+ strh r1, [r0]
+ .endif
+ b _0807C816
+_0807C80C:
+ movs r0, 0x1F
+ subs r0, r2
+ .ifndef SAPPHIRE
+ lsls r0, 10
+ .endif
+ mov r1, sp
+ strh r0, [r1]
+_0807C816:
+ mov r0, sp
+ movs r1, 0xEF
+ movs r2, 0x2
+ bl LoadPalette
+_0807C820:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807C7E4
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/ld_script.txt b/ld_script.txt
index 33be3bc82..1e1a3837d 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -75,6 +75,8 @@ SECTIONS {
asm/rom_8074BAC.o(.text);
src/task.o(.text);
asm/rom5.o(.text);
+ asm/title_screen.o(.text);
+ asm/rom_807C828.o(.text);
asm/wild_encounter.o(.text);
asm/field_effect.o(.text);
asm/rom_80859BC.o(.text);